@kdcloudjs/kdesign 1.7.51 → 1.7.52

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/kdesign.js CHANGED
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  *
3
- * @kdcloudjs/kdesign v1.7.50
3
+ * @kdcloudjs/kdesign v1.7.51
4
4
  *
5
5
  * Copyright 2020-present, Kingdee, Inc.
6
6
  * All rights reserved.
@@ -9527,8 +9527,8 @@ __webpack_require__.r(__webpack_exports__);
9527
9527
  /* harmony import */ var _constant_defaultColor__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./constant/defaultColor */ "./components/color-picker/constant/defaultColor.ts");
9528
9528
  /* harmony import */ var _utils_validateColor__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./utils/validateColor */ "./components/color-picker/utils/validateColor.ts");
9529
9529
  /* harmony import */ var _utils_convertLetters__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./utils/convertLetters */ "./components/color-picker/utils/convertLetters.ts");
9530
- /* harmony import */ var color_ie__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! color-ie */ "./node_modules/color-ie/lib/index.js");
9531
- /* harmony import */ var color_ie__WEBPACK_IMPORTED_MODULE_16___default = /*#__PURE__*/__webpack_require__.n(color_ie__WEBPACK_IMPORTED_MODULE_16__);
9530
+ /* harmony import */ var color__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! color */ "./node_modules/color/index.js");
9531
+ /* harmony import */ var color__WEBPACK_IMPORTED_MODULE_16___default = /*#__PURE__*/__webpack_require__.n(color__WEBPACK_IMPORTED_MODULE_16__);
9532
9532
  /* harmony import */ var react_color__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! react-color */ "./node_modules/react-color/es/index.js");
9533
9533
  /* harmony import */ var _utils_devwarning__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../_utils/devwarning */ "./components/_utils/devwarning.ts");
9534
9534
  /* harmony import */ var _utils_hooks__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../_utils/hooks */ "./components/_utils/hooks.tsx");
@@ -9678,7 +9678,7 @@ var ColorPickerPanel = function ColorPickerPanel(props) {
9678
9678
  setIsFollow(switchValue);
9679
9679
  if (switchValue) {
9680
9680
  formatArr = Object(_utils_colorFormat__WEBPACK_IMPORTED_MODULE_12__["colorFormat"])(functionalColor, alpha);
9681
- setPanelState(formatArr, formatArr[Object(_utils_colorFormat__WEBPACK_IMPORTED_MODULE_12__["valOfCorrespondingType"])(currentColorType)].value, functionalColorName, Object(_utils_colorFormat__WEBPACK_IMPORTED_MODULE_12__["strFixed"])(color_ie__WEBPACK_IMPORTED_MODULE_16___default()(Object(_utils_colorFormat__WEBPACK_IMPORTED_MODULE_12__["getColorObj"])(functionalColor)).alpha(), 2), Object(_utils_colorFormat__WEBPACK_IMPORTED_MODULE_12__["strFixed"])(color_ie__WEBPACK_IMPORTED_MODULE_16___default()(Object(_utils_colorFormat__WEBPACK_IMPORTED_MODULE_12__["getColorObj"])(functionalColor)).alpha(), 2) * 100 + '%');
9681
+ setPanelState(formatArr, formatArr[Object(_utils_colorFormat__WEBPACK_IMPORTED_MODULE_12__["valOfCorrespondingType"])(currentColorType)].value, functionalColorName, Object(_utils_colorFormat__WEBPACK_IMPORTED_MODULE_12__["strFixed"])(color__WEBPACK_IMPORTED_MODULE_16___default()(Object(_utils_colorFormat__WEBPACK_IMPORTED_MODULE_12__["getColorObj"])(functionalColor)).alpha(), 2), Object(_utils_colorFormat__WEBPACK_IMPORTED_MODULE_12__["strFixed"])(color__WEBPACK_IMPORTED_MODULE_16___default()(Object(_utils_colorFormat__WEBPACK_IMPORTED_MODULE_12__["getColorObj"])(functionalColor)).alpha(), 2) * 100 + '%');
9682
9682
  setClickedColorIndex(Object(_utils_colorFormat__WEBPACK_IMPORTED_MODULE_12__["highlightPresetColorIndex"])(formatArr[0].value, Object(_utils_colorFormat__WEBPACK_IMPORTED_MODULE_12__["presetColorToHEX"])(presetColor || _constant_systemPresetColor__WEBPACK_IMPORTED_MODULE_11__["systemPresetColor"])));
9683
9683
  } else {
9684
9684
  formatArr = Object(_utils_colorFormat__WEBPACK_IMPORTED_MODULE_12__["colorFormat"])(_constant_defaultColor__WEBPACK_IMPORTED_MODULE_13__["defaultSystemColor"], 1, 'all', true);
@@ -9826,8 +9826,8 @@ __webpack_require__.r(__webpack_exports__);
9826
9826
  /* harmony import */ var _utils_colorFormat__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./utils/colorFormat */ "./components/color-picker/utils/colorFormat.ts");
9827
9827
  /* harmony import */ var _utils_convertLetters__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./utils/convertLetters */ "./components/color-picker/utils/convertLetters.ts");
9828
9828
  /* harmony import */ var _constant_defaultColor__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./constant/defaultColor */ "./components/color-picker/constant/defaultColor.ts");
9829
- /* harmony import */ var color_ie__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! color-ie */ "./node_modules/color-ie/lib/index.js");
9830
- /* harmony import */ var color_ie__WEBPACK_IMPORTED_MODULE_20___default = /*#__PURE__*/__webpack_require__.n(color_ie__WEBPACK_IMPORTED_MODULE_20__);
9829
+ /* harmony import */ var color__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! color */ "./node_modules/color/index.js");
9830
+ /* harmony import */ var color__WEBPACK_IMPORTED_MODULE_20___default = /*#__PURE__*/__webpack_require__.n(color__WEBPACK_IMPORTED_MODULE_20__);
9831
9831
  /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ../_utils */ "./components/_utils/index.ts");
9832
9832
  /* harmony import */ var _utils_usePopper__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ../_utils/usePopper */ "./components/_utils/usePopper.tsx");
9833
9833
  /* harmony import */ var _constant_systemPresetColor__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./constant/systemPresetColor */ "./components/color-picker/constant/systemPresetColor.ts");
@@ -9935,8 +9935,8 @@ var ColorPicker = function ColorPicker(props) {
9935
9935
  setAlphaNoVerifyVal(alphaStr);
9936
9936
  };
9937
9937
  if (inputValType) {
9938
- var formatArr = Object(_utils_colorFormat__WEBPACK_IMPORTED_MODULE_17__["colorFormat"])(inpValue, Object(_utils_colorFormat__WEBPACK_IMPORTED_MODULE_17__["strFixed"])(color_ie__WEBPACK_IMPORTED_MODULE_20___default()(Object(_utils_colorFormat__WEBPACK_IMPORTED_MODULE_17__["getColorObj"])(inpValue)).alpha(), 2));
9939
- setState(formatArr, formatArr[Object(_utils_colorFormat__WEBPACK_IMPORTED_MODULE_17__["valOfCorrespondingType"])(currentColorType)].value, color_ie__WEBPACK_IMPORTED_MODULE_20___default()(Object(_utils_colorFormat__WEBPACK_IMPORTED_MODULE_17__["getColorObj"])(inpValue)).alpha(), (Object(_utils_colorFormat__WEBPACK_IMPORTED_MODULE_17__["strFixed"])(color_ie__WEBPACK_IMPORTED_MODULE_20___default()(Object(_utils_colorFormat__WEBPACK_IMPORTED_MODULE_17__["getColorObj"])(inpValue)).alpha(), 2) * 100).toFixed() + '%');
9938
+ var formatArr = Object(_utils_colorFormat__WEBPACK_IMPORTED_MODULE_17__["colorFormat"])(inpValue, Object(_utils_colorFormat__WEBPACK_IMPORTED_MODULE_17__["strFixed"])(color__WEBPACK_IMPORTED_MODULE_20___default()(Object(_utils_colorFormat__WEBPACK_IMPORTED_MODULE_17__["getColorObj"])(inpValue)).alpha(), 2));
9939
+ setState(formatArr, formatArr[Object(_utils_colorFormat__WEBPACK_IMPORTED_MODULE_17__["valOfCorrespondingType"])(currentColorType)].value, color__WEBPACK_IMPORTED_MODULE_20___default()(Object(_utils_colorFormat__WEBPACK_IMPORTED_MODULE_17__["getColorObj"])(inpValue)).alpha(), (Object(_utils_colorFormat__WEBPACK_IMPORTED_MODULE_17__["strFixed"])(color__WEBPACK_IMPORTED_MODULE_20___default()(Object(_utils_colorFormat__WEBPACK_IMPORTED_MODULE_17__["getColorObj"])(inpValue)).alpha(), 2) * 100).toFixed() + '%');
9940
9940
  setClickedColorIndex(Object(_utils_colorFormat__WEBPACK_IMPORTED_MODULE_17__["highlightPresetColorIndex"])(formatArr[0].value, Object(_utils_colorFormat__WEBPACK_IMPORTED_MODULE_17__["presetColorToHEX"])(presetColor || _constant_systemPresetColor__WEBPACK_IMPORTED_MODULE_23__["systemPresetColor"])));
9941
9941
  } else {
9942
9942
  var _formatArr = Object(_utils_colorFormat__WEBPACK_IMPORTED_MODULE_17__["colorFormat"])(_constant_defaultColor__WEBPACK_IMPORTED_MODULE_19__["defaultSystemColor"]);
@@ -10186,8 +10186,8 @@ __webpack_require__.r(__webpack_exports__);
10186
10186
  /* harmony import */ var core_js_modules_es_array_find_index_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_find_index_js__WEBPACK_IMPORTED_MODULE_4__);
10187
10187
  /* harmony import */ var core_js_modules_es_array_map_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! core-js/modules/es.array.map.js */ "./node_modules/core-js/modules/es.array.map.js");
10188
10188
  /* harmony import */ var core_js_modules_es_array_map_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_map_js__WEBPACK_IMPORTED_MODULE_5__);
10189
- /* harmony import */ var color_ie__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! color-ie */ "./node_modules/color-ie/lib/index.js");
10190
- /* harmony import */ var color_ie__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(color_ie__WEBPACK_IMPORTED_MODULE_6__);
10189
+ /* harmony import */ var color__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! color */ "./node_modules/color/index.js");
10190
+ /* harmony import */ var color__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(color__WEBPACK_IMPORTED_MODULE_6__);
10191
10191
  /* harmony import */ var _validateColor__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./validateColor */ "./components/color-picker/utils/validateColor.ts");
10192
10192
  /* harmony import */ var _convertLetters__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./convertLetters */ "./components/color-picker/utils/convertLetters.ts");
10193
10193
 
@@ -10203,7 +10203,7 @@ var colorFormat = function colorFormat(colorStr) {
10203
10203
  var alpha = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
10204
10204
  var outType = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'all';
10205
10205
  var formatHex = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
10206
- var ColorTools = color_ie__WEBPACK_IMPORTED_MODULE_6___default()(getColorObj(colorStr)).alpha(alpha);
10206
+ var ColorTools = color__WEBPACK_IMPORTED_MODULE_6___default()(getColorObj(colorStr)).alpha(alpha);
10207
10207
  var toHex = function toHex() {
10208
10208
  if (/^#([0-9a-fA-F]{8})$/.test(colorStr)) {
10209
10209
  if (formatHex) {
@@ -61704,2039 +61704,1747 @@ function r(e){var t,f,n="";if("string"==typeof e||"number"==typeof e)n+=e;else i
61704
61704
 
61705
61705
  /***/ }),
61706
61706
 
61707
- /***/ "./node_modules/color-convert/conversions.js":
61708
- /*!***************************************************!*\
61709
- !*** ./node_modules/color-convert/conversions.js ***!
61710
- \***************************************************/
61707
+ /***/ "./node_modules/color-name/index.js":
61708
+ /*!******************************************!*\
61709
+ !*** ./node_modules/color-name/index.js ***!
61710
+ \******************************************/
61711
61711
  /*! no static exports found */
61712
61712
  /***/ (function(module, exports, __webpack_require__) {
61713
61713
 
61714
- /* MIT license */
61715
- var cssKeywords = __webpack_require__(/*! color-name */ "./node_modules/color-convert/node_modules/color-name/index.js");
61714
+ "use strict";
61716
61715
 
61717
- // NOTE: conversions should only return primitive values (i.e. arrays, or
61718
- // values that give correct `typeof` results).
61719
- // do not use box values types (i.e. Number(), String(), etc.)
61720
61716
 
61721
- var reverseKeywords = {};
61722
- for (var key in cssKeywords) {
61723
- if (cssKeywords.hasOwnProperty(key)) {
61724
- reverseKeywords[cssKeywords[key]] = key;
61717
+ module.exports = {
61718
+ "aliceblue": [240, 248, 255],
61719
+ "antiquewhite": [250, 235, 215],
61720
+ "aqua": [0, 255, 255],
61721
+ "aquamarine": [127, 255, 212],
61722
+ "azure": [240, 255, 255],
61723
+ "beige": [245, 245, 220],
61724
+ "bisque": [255, 228, 196],
61725
+ "black": [0, 0, 0],
61726
+ "blanchedalmond": [255, 235, 205],
61727
+ "blue": [0, 0, 255],
61728
+ "blueviolet": [138, 43, 226],
61729
+ "brown": [165, 42, 42],
61730
+ "burlywood": [222, 184, 135],
61731
+ "cadetblue": [95, 158, 160],
61732
+ "chartreuse": [127, 255, 0],
61733
+ "chocolate": [210, 105, 30],
61734
+ "coral": [255, 127, 80],
61735
+ "cornflowerblue": [100, 149, 237],
61736
+ "cornsilk": [255, 248, 220],
61737
+ "crimson": [220, 20, 60],
61738
+ "cyan": [0, 255, 255],
61739
+ "darkblue": [0, 0, 139],
61740
+ "darkcyan": [0, 139, 139],
61741
+ "darkgoldenrod": [184, 134, 11],
61742
+ "darkgray": [169, 169, 169],
61743
+ "darkgreen": [0, 100, 0],
61744
+ "darkgrey": [169, 169, 169],
61745
+ "darkkhaki": [189, 183, 107],
61746
+ "darkmagenta": [139, 0, 139],
61747
+ "darkolivegreen": [85, 107, 47],
61748
+ "darkorange": [255, 140, 0],
61749
+ "darkorchid": [153, 50, 204],
61750
+ "darkred": [139, 0, 0],
61751
+ "darksalmon": [233, 150, 122],
61752
+ "darkseagreen": [143, 188, 143],
61753
+ "darkslateblue": [72, 61, 139],
61754
+ "darkslategray": [47, 79, 79],
61755
+ "darkslategrey": [47, 79, 79],
61756
+ "darkturquoise": [0, 206, 209],
61757
+ "darkviolet": [148, 0, 211],
61758
+ "deeppink": [255, 20, 147],
61759
+ "deepskyblue": [0, 191, 255],
61760
+ "dimgray": [105, 105, 105],
61761
+ "dimgrey": [105, 105, 105],
61762
+ "dodgerblue": [30, 144, 255],
61763
+ "firebrick": [178, 34, 34],
61764
+ "floralwhite": [255, 250, 240],
61765
+ "forestgreen": [34, 139, 34],
61766
+ "fuchsia": [255, 0, 255],
61767
+ "gainsboro": [220, 220, 220],
61768
+ "ghostwhite": [248, 248, 255],
61769
+ "gold": [255, 215, 0],
61770
+ "goldenrod": [218, 165, 32],
61771
+ "gray": [128, 128, 128],
61772
+ "green": [0, 128, 0],
61773
+ "greenyellow": [173, 255, 47],
61774
+ "grey": [128, 128, 128],
61775
+ "honeydew": [240, 255, 240],
61776
+ "hotpink": [255, 105, 180],
61777
+ "indianred": [205, 92, 92],
61778
+ "indigo": [75, 0, 130],
61779
+ "ivory": [255, 255, 240],
61780
+ "khaki": [240, 230, 140],
61781
+ "lavender": [230, 230, 250],
61782
+ "lavenderblush": [255, 240, 245],
61783
+ "lawngreen": [124, 252, 0],
61784
+ "lemonchiffon": [255, 250, 205],
61785
+ "lightblue": [173, 216, 230],
61786
+ "lightcoral": [240, 128, 128],
61787
+ "lightcyan": [224, 255, 255],
61788
+ "lightgoldenrodyellow": [250, 250, 210],
61789
+ "lightgray": [211, 211, 211],
61790
+ "lightgreen": [144, 238, 144],
61791
+ "lightgrey": [211, 211, 211],
61792
+ "lightpink": [255, 182, 193],
61793
+ "lightsalmon": [255, 160, 122],
61794
+ "lightseagreen": [32, 178, 170],
61795
+ "lightskyblue": [135, 206, 250],
61796
+ "lightslategray": [119, 136, 153],
61797
+ "lightslategrey": [119, 136, 153],
61798
+ "lightsteelblue": [176, 196, 222],
61799
+ "lightyellow": [255, 255, 224],
61800
+ "lime": [0, 255, 0],
61801
+ "limegreen": [50, 205, 50],
61802
+ "linen": [250, 240, 230],
61803
+ "magenta": [255, 0, 255],
61804
+ "maroon": [128, 0, 0],
61805
+ "mediumaquamarine": [102, 205, 170],
61806
+ "mediumblue": [0, 0, 205],
61807
+ "mediumorchid": [186, 85, 211],
61808
+ "mediumpurple": [147, 112, 219],
61809
+ "mediumseagreen": [60, 179, 113],
61810
+ "mediumslateblue": [123, 104, 238],
61811
+ "mediumspringgreen": [0, 250, 154],
61812
+ "mediumturquoise": [72, 209, 204],
61813
+ "mediumvioletred": [199, 21, 133],
61814
+ "midnightblue": [25, 25, 112],
61815
+ "mintcream": [245, 255, 250],
61816
+ "mistyrose": [255, 228, 225],
61817
+ "moccasin": [255, 228, 181],
61818
+ "navajowhite": [255, 222, 173],
61819
+ "navy": [0, 0, 128],
61820
+ "oldlace": [253, 245, 230],
61821
+ "olive": [128, 128, 0],
61822
+ "olivedrab": [107, 142, 35],
61823
+ "orange": [255, 165, 0],
61824
+ "orangered": [255, 69, 0],
61825
+ "orchid": [218, 112, 214],
61826
+ "palegoldenrod": [238, 232, 170],
61827
+ "palegreen": [152, 251, 152],
61828
+ "paleturquoise": [175, 238, 238],
61829
+ "palevioletred": [219, 112, 147],
61830
+ "papayawhip": [255, 239, 213],
61831
+ "peachpuff": [255, 218, 185],
61832
+ "peru": [205, 133, 63],
61833
+ "pink": [255, 192, 203],
61834
+ "plum": [221, 160, 221],
61835
+ "powderblue": [176, 224, 230],
61836
+ "purple": [128, 0, 128],
61837
+ "rebeccapurple": [102, 51, 153],
61838
+ "red": [255, 0, 0],
61839
+ "rosybrown": [188, 143, 143],
61840
+ "royalblue": [65, 105, 225],
61841
+ "saddlebrown": [139, 69, 19],
61842
+ "salmon": [250, 128, 114],
61843
+ "sandybrown": [244, 164, 96],
61844
+ "seagreen": [46, 139, 87],
61845
+ "seashell": [255, 245, 238],
61846
+ "sienna": [160, 82, 45],
61847
+ "silver": [192, 192, 192],
61848
+ "skyblue": [135, 206, 235],
61849
+ "slateblue": [106, 90, 205],
61850
+ "slategray": [112, 128, 144],
61851
+ "slategrey": [112, 128, 144],
61852
+ "snow": [255, 250, 250],
61853
+ "springgreen": [0, 255, 127],
61854
+ "steelblue": [70, 130, 180],
61855
+ "tan": [210, 180, 140],
61856
+ "teal": [0, 128, 128],
61857
+ "thistle": [216, 191, 216],
61858
+ "tomato": [255, 99, 71],
61859
+ "turquoise": [64, 224, 208],
61860
+ "violet": [238, 130, 238],
61861
+ "wheat": [245, 222, 179],
61862
+ "white": [255, 255, 255],
61863
+ "whitesmoke": [245, 245, 245],
61864
+ "yellow": [255, 255, 0],
61865
+ "yellowgreen": [154, 205, 50]
61866
+ };
61867
+
61868
+ /***/ }),
61869
+
61870
+ /***/ "./node_modules/color-string/index.js":
61871
+ /*!********************************************!*\
61872
+ !*** ./node_modules/color-string/index.js ***!
61873
+ \********************************************/
61874
+ /*! no static exports found */
61875
+ /***/ (function(module, exports, __webpack_require__) {
61876
+
61877
+ /* MIT license */
61878
+ var colorNames = __webpack_require__(/*! color-name */ "./node_modules/color-name/index.js");
61879
+ var swizzle = __webpack_require__(/*! simple-swizzle */ "./node_modules/simple-swizzle/index.js");
61880
+ var hasOwnProperty = Object.hasOwnProperty;
61881
+ var reverseNames = Object.create(null);
61882
+
61883
+ // create a list of reverse color names
61884
+ for (var name in colorNames) {
61885
+ if (hasOwnProperty.call(colorNames, name)) {
61886
+ reverseNames[colorNames[name]] = name;
61725
61887
  }
61726
61888
  }
61727
- var convert = module.exports = {
61728
- rgb: {
61729
- channels: 3,
61730
- labels: 'rgb'
61731
- },
61732
- hsl: {
61733
- channels: 3,
61734
- labels: 'hsl'
61735
- },
61736
- hsv: {
61737
- channels: 3,
61738
- labels: 'hsv'
61739
- },
61740
- hwb: {
61741
- channels: 3,
61742
- labels: 'hwb'
61743
- },
61744
- cmyk: {
61745
- channels: 4,
61746
- labels: 'cmyk'
61747
- },
61748
- xyz: {
61749
- channels: 3,
61750
- labels: 'xyz'
61751
- },
61752
- lab: {
61753
- channels: 3,
61754
- labels: 'lab'
61755
- },
61756
- lch: {
61757
- channels: 3,
61758
- labels: 'lch'
61759
- },
61760
- hex: {
61761
- channels: 1,
61762
- labels: ['hex']
61763
- },
61764
- keyword: {
61765
- channels: 1,
61766
- labels: ['keyword']
61767
- },
61768
- ansi16: {
61769
- channels: 1,
61770
- labels: ['ansi16']
61771
- },
61772
- ansi256: {
61773
- channels: 1,
61774
- labels: ['ansi256']
61775
- },
61776
- hcg: {
61777
- channels: 3,
61778
- labels: ['h', 'c', 'g']
61779
- },
61780
- apple: {
61781
- channels: 3,
61782
- labels: ['r16', 'g16', 'b16']
61783
- },
61784
- gray: {
61785
- channels: 1,
61786
- labels: ['gray']
61889
+ var cs = module.exports = {
61890
+ to: {},
61891
+ get: {}
61892
+ };
61893
+ cs.get = function (string) {
61894
+ var prefix = string.substring(0, 3).toLowerCase();
61895
+ var val;
61896
+ var model;
61897
+ switch (prefix) {
61898
+ case 'hsl':
61899
+ val = cs.get.hsl(string);
61900
+ model = 'hsl';
61901
+ break;
61902
+ case 'hwb':
61903
+ val = cs.get.hwb(string);
61904
+ model = 'hwb';
61905
+ break;
61906
+ default:
61907
+ val = cs.get.rgb(string);
61908
+ model = 'rgb';
61909
+ break;
61910
+ }
61911
+ if (!val) {
61912
+ return null;
61787
61913
  }
61914
+ return {
61915
+ model: model,
61916
+ value: val
61917
+ };
61788
61918
  };
61789
-
61790
- // hide .channels and .labels properties
61791
- for (var model in convert) {
61792
- if (convert.hasOwnProperty(model)) {
61793
- if (!('channels' in convert[model])) {
61794
- throw new Error('missing channels property: ' + model);
61919
+ cs.get.rgb = function (string) {
61920
+ if (!string) {
61921
+ return null;
61922
+ }
61923
+ var abbr = /^#([a-f0-9]{3,4})$/i;
61924
+ var hex = /^#([a-f0-9]{6})([a-f0-9]{2})?$/i;
61925
+ var rgba = /^rgba?\(\s*([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)\s*(?:[,|\/]\s*([+-]?[\d\.]+)(%?)\s*)?\)$/;
61926
+ var per = /^rgba?\(\s*([+-]?[\d\.]+)\%\s*,?\s*([+-]?[\d\.]+)\%\s*,?\s*([+-]?[\d\.]+)\%\s*(?:[,|\/]\s*([+-]?[\d\.]+)(%?)\s*)?\)$/;
61927
+ var keyword = /^(\w+)$/;
61928
+ var rgb = [0, 0, 0, 1];
61929
+ var match;
61930
+ var i;
61931
+ var hexAlpha;
61932
+ if (match = string.match(hex)) {
61933
+ hexAlpha = match[2];
61934
+ match = match[1];
61935
+ for (i = 0; i < 3; i++) {
61936
+ // https://jsperf.com/slice-vs-substr-vs-substring-methods-long-string/19
61937
+ var i2 = i * 2;
61938
+ rgb[i] = parseInt(match.slice(i2, i2 + 2), 16);
61939
+ }
61940
+ if (hexAlpha) {
61941
+ rgb[3] = parseInt(hexAlpha, 16) / 255;
61795
61942
  }
61796
- if (!('labels' in convert[model])) {
61797
- throw new Error('missing channel labels property: ' + model);
61943
+ } else if (match = string.match(abbr)) {
61944
+ match = match[1];
61945
+ hexAlpha = match[3];
61946
+ for (i = 0; i < 3; i++) {
61947
+ rgb[i] = parseInt(match[i] + match[i], 16);
61798
61948
  }
61799
- if (convert[model].labels.length !== convert[model].channels) {
61800
- throw new Error('channel and label counts mismatch: ' + model);
61949
+ if (hexAlpha) {
61950
+ rgb[3] = parseInt(hexAlpha + hexAlpha, 16) / 255;
61801
61951
  }
61802
- var channels = convert[model].channels;
61803
- var labels = convert[model].labels;
61804
- delete convert[model].channels;
61805
- delete convert[model].labels;
61806
- Object.defineProperty(convert[model], 'channels', {
61807
- value: channels
61808
- });
61809
- Object.defineProperty(convert[model], 'labels', {
61810
- value: labels
61811
- });
61952
+ } else if (match = string.match(rgba)) {
61953
+ for (i = 0; i < 3; i++) {
61954
+ rgb[i] = parseInt(match[i + 1], 0);
61955
+ }
61956
+ if (match[4]) {
61957
+ if (match[5]) {
61958
+ rgb[3] = parseFloat(match[4]) * 0.01;
61959
+ } else {
61960
+ rgb[3] = parseFloat(match[4]);
61961
+ }
61962
+ }
61963
+ } else if (match = string.match(per)) {
61964
+ for (i = 0; i < 3; i++) {
61965
+ rgb[i] = Math.round(parseFloat(match[i + 1]) * 2.55);
61966
+ }
61967
+ if (match[4]) {
61968
+ if (match[5]) {
61969
+ rgb[3] = parseFloat(match[4]) * 0.01;
61970
+ } else {
61971
+ rgb[3] = parseFloat(match[4]);
61972
+ }
61973
+ }
61974
+ } else if (match = string.match(keyword)) {
61975
+ if (match[1] === 'transparent') {
61976
+ return [0, 0, 0, 0];
61977
+ }
61978
+ if (!hasOwnProperty.call(colorNames, match[1])) {
61979
+ return null;
61980
+ }
61981
+ rgb = colorNames[match[1]];
61982
+ rgb[3] = 1;
61983
+ return rgb;
61984
+ } else {
61985
+ return null;
61812
61986
  }
61813
- }
61814
- convert.rgb.hsl = function (rgb) {
61815
- var r = rgb[0] / 255;
61816
- var g = rgb[1] / 255;
61817
- var b = rgb[2] / 255;
61818
- var min = Math.min(r, g, b);
61819
- var max = Math.max(r, g, b);
61820
- var delta = max - min;
61821
- var h;
61822
- var s;
61823
- var l;
61824
- if (max === min) {
61825
- h = 0;
61826
- } else if (r === max) {
61827
- h = (g - b) / delta;
61828
- } else if (g === max) {
61829
- h = 2 + (b - r) / delta;
61830
- } else if (b === max) {
61831
- h = 4 + (r - g) / delta;
61987
+ for (i = 0; i < 3; i++) {
61988
+ rgb[i] = clamp(rgb[i], 0, 255);
61832
61989
  }
61833
- h = Math.min(h * 60, 360);
61834
- if (h < 0) {
61835
- h += 360;
61990
+ rgb[3] = clamp(rgb[3], 0, 1);
61991
+ return rgb;
61992
+ };
61993
+ cs.get.hsl = function (string) {
61994
+ if (!string) {
61995
+ return null;
61836
61996
  }
61837
- l = (min + max) / 2;
61838
- if (max === min) {
61839
- s = 0;
61840
- } else if (l <= 0.5) {
61841
- s = delta / (max + min);
61842
- } else {
61843
- s = delta / (2 - max - min);
61997
+ var hsl = /^hsla?\(\s*([+-]?(?:\d{0,3}\.)?\d+)(?:deg)?\s*,?\s*([+-]?[\d\.]+)%\s*,?\s*([+-]?[\d\.]+)%\s*(?:[,|\/]\s*([+-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:[eE][+-]?\d+)?)\s*)?\)$/;
61998
+ var match = string.match(hsl);
61999
+ if (match) {
62000
+ var alpha = parseFloat(match[4]);
62001
+ var h = (parseFloat(match[1]) % 360 + 360) % 360;
62002
+ var s = clamp(parseFloat(match[2]), 0, 100);
62003
+ var l = clamp(parseFloat(match[3]), 0, 100);
62004
+ var a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);
62005
+ return [h, s, l, a];
61844
62006
  }
61845
- return [h, s * 100, l * 100];
62007
+ return null;
61846
62008
  };
61847
- convert.rgb.hsv = function (rgb) {
61848
- var rdif;
61849
- var gdif;
61850
- var bdif;
61851
- var h;
61852
- var s;
61853
- var r = rgb[0] / 255;
61854
- var g = rgb[1] / 255;
61855
- var b = rgb[2] / 255;
61856
- var v = Math.max(r, g, b);
61857
- var diff = v - Math.min(r, g, b);
61858
- var diffc = function diffc(c) {
61859
- return (v - c) / 6 / diff + 1 / 2;
61860
- };
61861
- if (diff === 0) {
61862
- h = s = 0;
61863
- } else {
61864
- s = diff / v;
61865
- rdif = diffc(r);
61866
- gdif = diffc(g);
61867
- bdif = diffc(b);
61868
- if (r === v) {
61869
- h = bdif - gdif;
61870
- } else if (g === v) {
61871
- h = 1 / 3 + rdif - bdif;
61872
- } else if (b === v) {
61873
- h = 2 / 3 + gdif - rdif;
61874
- }
61875
- if (h < 0) {
61876
- h += 1;
61877
- } else if (h > 1) {
61878
- h -= 1;
61879
- }
62009
+ cs.get.hwb = function (string) {
62010
+ if (!string) {
62011
+ return null;
61880
62012
  }
61881
- return [h * 360, s * 100, v * 100];
62013
+ var hwb = /^hwb\(\s*([+-]?\d{0,3}(?:\.\d+)?)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:[eE][+-]?\d+)?)\s*)?\)$/;
62014
+ var match = string.match(hwb);
62015
+ if (match) {
62016
+ var alpha = parseFloat(match[4]);
62017
+ var h = (parseFloat(match[1]) % 360 + 360) % 360;
62018
+ var w = clamp(parseFloat(match[2]), 0, 100);
62019
+ var b = clamp(parseFloat(match[3]), 0, 100);
62020
+ var a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);
62021
+ return [h, w, b, a];
62022
+ }
62023
+ return null;
61882
62024
  };
61883
- convert.rgb.hwb = function (rgb) {
61884
- var r = rgb[0];
61885
- var g = rgb[1];
61886
- var b = rgb[2];
61887
- var h = convert.rgb.hsl(rgb)[0];
61888
- var w = 1 / 255 * Math.min(r, Math.min(g, b));
61889
- b = 1 - 1 / 255 * Math.max(r, Math.max(g, b));
61890
- return [h, w * 100, b * 100];
62025
+ cs.to.hex = function () {
62026
+ var rgba = swizzle(arguments);
62027
+ return '#' + hexDouble(rgba[0]) + hexDouble(rgba[1]) + hexDouble(rgba[2]) + (rgba[3] < 1 ? hexDouble(Math.round(rgba[3] * 255)) : '');
61891
62028
  };
61892
- convert.rgb.cmyk = function (rgb) {
61893
- var r = rgb[0] / 255;
61894
- var g = rgb[1] / 255;
61895
- var b = rgb[2] / 255;
61896
- var c;
61897
- var m;
61898
- var y;
61899
- var k;
61900
- k = Math.min(1 - r, 1 - g, 1 - b);
61901
- c = (1 - r - k) / (1 - k) || 0;
61902
- m = (1 - g - k) / (1 - k) || 0;
61903
- y = (1 - b - k) / (1 - k) || 0;
61904
- return [c * 100, m * 100, y * 100, k * 100];
62029
+ cs.to.rgb = function () {
62030
+ var rgba = swizzle(arguments);
62031
+ return rgba.length < 4 || rgba[3] === 1 ? 'rgb(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ')' : 'rgba(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ', ' + rgba[3] + ')';
62032
+ };
62033
+ cs.to.rgb.percent = function () {
62034
+ var rgba = swizzle(arguments);
62035
+ var r = Math.round(rgba[0] / 255 * 100);
62036
+ var g = Math.round(rgba[1] / 255 * 100);
62037
+ var b = Math.round(rgba[2] / 255 * 100);
62038
+ return rgba.length < 4 || rgba[3] === 1 ? 'rgb(' + r + '%, ' + g + '%, ' + b + '%)' : 'rgba(' + r + '%, ' + g + '%, ' + b + '%, ' + rgba[3] + ')';
62039
+ };
62040
+ cs.to.hsl = function () {
62041
+ var hsla = swizzle(arguments);
62042
+ return hsla.length < 4 || hsla[3] === 1 ? 'hsl(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%)' : 'hsla(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%, ' + hsla[3] + ')';
61905
62043
  };
61906
62044
 
61907
- /**
61908
- * See https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance
61909
- * */
61910
- function comparativeDistance(x, y) {
61911
- return Math.pow(x[0] - y[0], 2) + Math.pow(x[1] - y[1], 2) + Math.pow(x[2] - y[2], 2);
61912
- }
61913
- convert.rgb.keyword = function (rgb) {
61914
- var reversed = reverseKeywords[rgb];
61915
- if (reversed) {
61916
- return reversed;
61917
- }
61918
- var currentClosestDistance = Infinity;
61919
- var currentClosestKeyword;
61920
- for (var keyword in cssKeywords) {
61921
- if (cssKeywords.hasOwnProperty(keyword)) {
61922
- var value = cssKeywords[keyword];
61923
-
61924
- // Compute comparative distance
61925
- var distance = comparativeDistance(rgb, value);
61926
-
61927
- // Check if its less, if so set as closest
61928
- if (distance < currentClosestDistance) {
61929
- currentClosestDistance = distance;
61930
- currentClosestKeyword = keyword;
61931
- }
61932
- }
62045
+ // hwb is a bit different than rgb(a) & hsl(a) since there is no alpha specific syntax
62046
+ // (hwb have alpha optional & 1 is default value)
62047
+ cs.to.hwb = function () {
62048
+ var hwba = swizzle(arguments);
62049
+ var a = '';
62050
+ if (hwba.length >= 4 && hwba[3] !== 1) {
62051
+ a = ', ' + hwba[3];
61933
62052
  }
61934
- return currentClosestKeyword;
62053
+ return 'hwb(' + hwba[0] + ', ' + hwba[1] + '%, ' + hwba[2] + '%' + a + ')';
61935
62054
  };
61936
- convert.keyword.rgb = function (keyword) {
61937
- return cssKeywords[keyword];
62055
+ cs.to.keyword = function (rgb) {
62056
+ return reverseNames[rgb.slice(0, 3)];
61938
62057
  };
61939
- convert.rgb.xyz = function (rgb) {
61940
- var r = rgb[0] / 255;
61941
- var g = rgb[1] / 255;
61942
- var b = rgb[2] / 255;
61943
62058
 
61944
- // assume sRGB
61945
- r = r > 0.04045 ? Math.pow((r + 0.055) / 1.055, 2.4) : r / 12.92;
61946
- g = g > 0.04045 ? Math.pow((g + 0.055) / 1.055, 2.4) : g / 12.92;
61947
- b = b > 0.04045 ? Math.pow((b + 0.055) / 1.055, 2.4) : b / 12.92;
61948
- var x = r * 0.4124 + g * 0.3576 + b * 0.1805;
61949
- var y = r * 0.2126 + g * 0.7152 + b * 0.0722;
61950
- var z = r * 0.0193 + g * 0.1192 + b * 0.9505;
61951
- return [x * 100, y * 100, z * 100];
61952
- };
61953
- convert.rgb.lab = function (rgb) {
61954
- var xyz = convert.rgb.xyz(rgb);
61955
- var x = xyz[0];
61956
- var y = xyz[1];
61957
- var z = xyz[2];
61958
- var l;
61959
- var a;
61960
- var b;
61961
- x /= 95.047;
61962
- y /= 100;
61963
- z /= 108.883;
61964
- x = x > 0.008856 ? Math.pow(x, 1 / 3) : 7.787 * x + 16 / 116;
61965
- y = y > 0.008856 ? Math.pow(y, 1 / 3) : 7.787 * y + 16 / 116;
61966
- z = z > 0.008856 ? Math.pow(z, 1 / 3) : 7.787 * z + 16 / 116;
61967
- l = 116 * y - 16;
61968
- a = 500 * (x - y);
61969
- b = 200 * (y - z);
61970
- return [l, a, b];
61971
- };
61972
- convert.hsl.rgb = function (hsl) {
61973
- var h = hsl[0] / 360;
61974
- var s = hsl[1] / 100;
61975
- var l = hsl[2] / 100;
61976
- var t1;
61977
- var t2;
61978
- var t3;
61979
- var rgb;
61980
- var val;
61981
- if (s === 0) {
61982
- val = l * 255;
61983
- return [val, val, val];
61984
- }
61985
- if (l < 0.5) {
61986
- t2 = l * (1 + s);
61987
- } else {
61988
- t2 = l + s - l * s;
61989
- }
61990
- t1 = 2 * l - t2;
61991
- rgb = [0, 0, 0];
61992
- for (var i = 0; i < 3; i++) {
61993
- t3 = h + 1 / 3 * -(i - 1);
61994
- if (t3 < 0) {
61995
- t3++;
61996
- }
61997
- if (t3 > 1) {
61998
- t3--;
61999
- }
62000
- if (6 * t3 < 1) {
62001
- val = t1 + (t2 - t1) * 6 * t3;
62002
- } else if (2 * t3 < 1) {
62003
- val = t2;
62004
- } else if (3 * t3 < 2) {
62005
- val = t1 + (t2 - t1) * (2 / 3 - t3) * 6;
62006
- } else {
62007
- val = t1;
62008
- }
62009
- rgb[i] = val * 255;
62010
- }
62011
- return rgb;
62012
- };
62013
- convert.hsl.hsv = function (hsl) {
62014
- var h = hsl[0];
62015
- var s = hsl[1] / 100;
62016
- var l = hsl[2] / 100;
62017
- var smin = s;
62018
- var lmin = Math.max(l, 0.01);
62019
- var sv;
62020
- var v;
62021
- l *= 2;
62022
- s *= l <= 1 ? l : 2 - l;
62023
- smin *= lmin <= 1 ? lmin : 2 - lmin;
62024
- v = (l + s) / 2;
62025
- sv = l === 0 ? 2 * smin / (lmin + smin) : 2 * s / (l + s);
62026
- return [h, sv * 100, v * 100];
62027
- };
62028
- convert.hsv.rgb = function (hsv) {
62029
- var h = hsv[0] / 60;
62030
- var s = hsv[1] / 100;
62031
- var v = hsv[2] / 100;
62032
- var hi = Math.floor(h) % 6;
62033
- var f = h - Math.floor(h);
62034
- var p = 255 * v * (1 - s);
62035
- var q = 255 * v * (1 - s * f);
62036
- var t = 255 * v * (1 - s * (1 - f));
62037
- v *= 255;
62038
- switch (hi) {
62039
- case 0:
62040
- return [v, t, p];
62041
- case 1:
62042
- return [q, v, p];
62043
- case 2:
62044
- return [p, v, t];
62045
- case 3:
62046
- return [p, q, v];
62047
- case 4:
62048
- return [t, p, v];
62049
- case 5:
62050
- return [v, p, q];
62051
- }
62052
- };
62053
- convert.hsv.hsl = function (hsv) {
62054
- var h = hsv[0];
62055
- var s = hsv[1] / 100;
62056
- var v = hsv[2] / 100;
62057
- var vmin = Math.max(v, 0.01);
62058
- var lmin;
62059
- var sl;
62060
- var l;
62061
- l = (2 - s) * v;
62062
- lmin = (2 - s) * vmin;
62063
- sl = s * vmin;
62064
- sl /= lmin <= 1 ? lmin : 2 - lmin;
62065
- sl = sl || 0;
62066
- l /= 2;
62067
- return [h, sl * 100, l * 100];
62068
- };
62069
-
62070
- // http://dev.w3.org/csswg/css-color/#hwb-to-rgb
62071
- convert.hwb.rgb = function (hwb) {
62072
- var h = hwb[0] / 360;
62073
- var wh = hwb[1] / 100;
62074
- var bl = hwb[2] / 100;
62075
- var ratio = wh + bl;
62076
- var i;
62077
- var v;
62078
- var f;
62079
- var n;
62059
+ // helpers
62060
+ function clamp(num, min, max) {
62061
+ return Math.min(Math.max(min, num), max);
62062
+ }
62063
+ function hexDouble(num) {
62064
+ var str = Math.round(num).toString(16).toUpperCase();
62065
+ return str.length < 2 ? '0' + str : str;
62066
+ }
62080
62067
 
62081
- // wh + bl cant be > 1
62082
- if (ratio > 1) {
62083
- wh /= ratio;
62084
- bl /= ratio;
62085
- }
62086
- i = Math.floor(6 * h);
62087
- v = 1 - bl;
62088
- f = 6 * h - i;
62089
- if ((i & 0x01) !== 0) {
62090
- f = 1 - f;
62091
- }
62092
- n = wh + f * (v - wh); // linear interpolation
62068
+ /***/ }),
62093
62069
 
62094
- var r;
62095
- var g;
62096
- var b;
62097
- switch (i) {
62098
- default:
62099
- case 6:
62100
- case 0:
62101
- r = v;
62102
- g = n;
62103
- b = wh;
62104
- break;
62105
- case 1:
62106
- r = n;
62107
- g = v;
62108
- b = wh;
62109
- break;
62110
- case 2:
62111
- r = wh;
62112
- g = v;
62113
- b = n;
62114
- break;
62115
- case 3:
62116
- r = wh;
62117
- g = n;
62118
- b = v;
62119
- break;
62120
- case 4:
62121
- r = n;
62122
- g = wh;
62123
- b = v;
62124
- break;
62125
- case 5:
62126
- r = v;
62127
- g = wh;
62128
- b = n;
62129
- break;
62130
- }
62131
- return [r * 255, g * 255, b * 255];
62132
- };
62133
- convert.cmyk.rgb = function (cmyk) {
62134
- var c = cmyk[0] / 100;
62135
- var m = cmyk[1] / 100;
62136
- var y = cmyk[2] / 100;
62137
- var k = cmyk[3] / 100;
62138
- var r;
62139
- var g;
62140
- var b;
62141
- r = 1 - Math.min(1, c * (1 - k) + k);
62142
- g = 1 - Math.min(1, m * (1 - k) + k);
62143
- b = 1 - Math.min(1, y * (1 - k) + k);
62144
- return [r * 255, g * 255, b * 255];
62145
- };
62146
- convert.xyz.rgb = function (xyz) {
62147
- var x = xyz[0] / 100;
62148
- var y = xyz[1] / 100;
62149
- var z = xyz[2] / 100;
62150
- var r;
62151
- var g;
62152
- var b;
62153
- r = x * 3.2406 + y * -1.5372 + z * -0.4986;
62154
- g = x * -0.9689 + y * 1.8758 + z * 0.0415;
62155
- b = x * 0.0557 + y * -0.2040 + z * 1.0570;
62070
+ /***/ "./node_modules/color/index.js":
62071
+ /*!*************************************!*\
62072
+ !*** ./node_modules/color/index.js ***!
62073
+ \*************************************/
62074
+ /*! no static exports found */
62075
+ /***/ (function(module, exports, __webpack_require__) {
62156
62076
 
62157
- // assume sRGB
62158
- r = r > 0.0031308 ? 1.055 * Math.pow(r, 1.0 / 2.4) - 0.055 : r * 12.92;
62159
- g = g > 0.0031308 ? 1.055 * Math.pow(g, 1.0 / 2.4) - 0.055 : g * 12.92;
62160
- b = b > 0.0031308 ? 1.055 * Math.pow(b, 1.0 / 2.4) - 0.055 : b * 12.92;
62161
- r = Math.min(Math.max(0, r), 1);
62162
- g = Math.min(Math.max(0, g), 1);
62163
- b = Math.min(Math.max(0, b), 1);
62164
- return [r * 255, g * 255, b * 255];
62165
- };
62166
- convert.xyz.lab = function (xyz) {
62167
- var x = xyz[0];
62168
- var y = xyz[1];
62169
- var z = xyz[2];
62170
- var l;
62171
- var a;
62172
- var b;
62173
- x /= 95.047;
62174
- y /= 100;
62175
- z /= 108.883;
62176
- x = x > 0.008856 ? Math.pow(x, 1 / 3) : 7.787 * x + 16 / 116;
62177
- y = y > 0.008856 ? Math.pow(y, 1 / 3) : 7.787 * y + 16 / 116;
62178
- z = z > 0.008856 ? Math.pow(z, 1 / 3) : 7.787 * z + 16 / 116;
62179
- l = 116 * y - 16;
62180
- a = 500 * (x - y);
62181
- b = 200 * (y - z);
62182
- return [l, a, b];
62183
- };
62184
- convert.lab.xyz = function (lab) {
62185
- var l = lab[0];
62186
- var a = lab[1];
62187
- var b = lab[2];
62188
- var x;
62189
- var y;
62190
- var z;
62191
- y = (l + 16) / 116;
62192
- x = a / 500 + y;
62193
- z = y - b / 200;
62194
- var y2 = Math.pow(y, 3);
62195
- var x2 = Math.pow(x, 3);
62196
- var z2 = Math.pow(z, 3);
62197
- y = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787;
62198
- x = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787;
62199
- z = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787;
62200
- x *= 95.047;
62201
- y *= 100;
62202
- z *= 108.883;
62203
- return [x, y, z];
62204
- };
62205
- convert.lab.lch = function (lab) {
62206
- var l = lab[0];
62207
- var a = lab[1];
62208
- var b = lab[2];
62209
- var hr;
62210
- var h;
62211
- var c;
62212
- hr = Math.atan2(b, a);
62213
- h = hr * 360 / 2 / Math.PI;
62214
- if (h < 0) {
62215
- h += 360;
62077
+ var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "./node_modules/@babel/runtime/helpers/typeof.js");
62078
+ var _slicedToArray = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "./node_modules/@babel/runtime/helpers/slicedToArray.js");
62079
+ var _toConsumableArray = __webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "./node_modules/@babel/runtime/helpers/toConsumableArray.js");
62080
+ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
62081
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
62082
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
62083
+ var colorString = __webpack_require__(/*! color-string */ "./node_modules/color-string/index.js");
62084
+ var convert = __webpack_require__(/*! color-convert */ "./node_modules/color/node_modules/color-convert/index.js");
62085
+ var skippedModels = [
62086
+ // To be honest, I don't really feel like keyword belongs in color convert, but eh.
62087
+ 'keyword',
62088
+ // Gray conflicts with some method names, and has its own method defined.
62089
+ 'gray',
62090
+ // Shouldn't really be in color-convert either...
62091
+ 'hex'];
62092
+ var hashedModelKeys = {};
62093
+ for (var _i = 0, _Object$keys = Object.keys(convert); _i < _Object$keys.length; _i++) {
62094
+ var model = _Object$keys[_i];
62095
+ hashedModelKeys[_toConsumableArray(convert[model].labels).sort().join('')] = model;
62096
+ }
62097
+ var limiters = {};
62098
+ function Color(object, model) {
62099
+ if (!(this instanceof Color)) {
62100
+ return new Color(object, model);
62216
62101
  }
62217
- c = Math.sqrt(a * a + b * b);
62218
- return [l, c, h];
62219
- };
62220
- convert.lch.lab = function (lch) {
62221
- var l = lch[0];
62222
- var c = lch[1];
62223
- var h = lch[2];
62224
- var a;
62225
- var b;
62226
- var hr;
62227
- hr = h / 360 * 2 * Math.PI;
62228
- a = c * Math.cos(hr);
62229
- b = c * Math.sin(hr);
62230
- return [l, a, b];
62231
- };
62232
- convert.rgb.ansi16 = function (args) {
62233
- var r = args[0];
62234
- var g = args[1];
62235
- var b = args[2];
62236
- var value = 1 in arguments ? arguments[1] : convert.rgb.hsv(args)[2]; // hsv -> ansi16 optimization
62237
-
62238
- value = Math.round(value / 50);
62239
- if (value === 0) {
62240
- return 30;
62102
+ if (model && model in skippedModels) {
62103
+ model = null;
62241
62104
  }
62242
- var ansi = 30 + (Math.round(b / 255) << 2 | Math.round(g / 255) << 1 | Math.round(r / 255));
62243
- if (value === 2) {
62244
- ansi += 60;
62105
+ if (model && !(model in convert)) {
62106
+ throw new Error('Unknown model: ' + model);
62245
62107
  }
62246
- return ansi;
62247
- };
62248
- convert.hsv.ansi16 = function (args) {
62249
- // optimization here; we already know the value and don't need to get
62250
- // it converted for us.
62251
- return convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);
62252
- };
62253
- convert.rgb.ansi256 = function (args) {
62254
- var r = args[0];
62255
- var g = args[1];
62256
- var b = args[2];
62257
-
62258
- // we use the extended greyscale palette here, with the exception of
62259
- // black and white. normal palette only has 4 greyscale shades.
62260
- if (r === g && g === b) {
62261
- if (r < 8) {
62262
- return 16;
62108
+ var i;
62109
+ var channels;
62110
+ if (object == null) {
62111
+ // eslint-disable-line no-eq-null,eqeqeq
62112
+ this.model = 'rgb';
62113
+ this.color = [0, 0, 0];
62114
+ this.valpha = 1;
62115
+ } else if (object instanceof Color) {
62116
+ this.model = object.model;
62117
+ this.color = _toConsumableArray(object.color);
62118
+ this.valpha = object.valpha;
62119
+ } else if (typeof object === 'string') {
62120
+ var result = colorString.get(object);
62121
+ if (result === null) {
62122
+ throw new Error('Unable to parse color from string: ' + object);
62263
62123
  }
62264
- if (r > 248) {
62265
- return 231;
62124
+ this.model = result.model;
62125
+ channels = convert[this.model].channels;
62126
+ this.color = result.value.slice(0, channels);
62127
+ this.valpha = typeof result.value[channels] === 'number' ? result.value[channels] : 1;
62128
+ } else if (object.length > 0) {
62129
+ this.model = model || 'rgb';
62130
+ channels = convert[this.model].channels;
62131
+ var newArray = Array.prototype.slice.call(object, 0, channels);
62132
+ this.color = zeroArray(newArray, channels);
62133
+ this.valpha = typeof object[channels] === 'number' ? object[channels] : 1;
62134
+ } else if (typeof object === 'number') {
62135
+ // This is always RGB - can be converted later on.
62136
+ this.model = 'rgb';
62137
+ this.color = [object >> 16 & 0xFF, object >> 8 & 0xFF, object & 0xFF];
62138
+ this.valpha = 1;
62139
+ } else {
62140
+ this.valpha = 1;
62141
+ var keys = Object.keys(object);
62142
+ if ('alpha' in object) {
62143
+ keys.splice(keys.indexOf('alpha'), 1);
62144
+ this.valpha = typeof object.alpha === 'number' ? object.alpha : 0;
62266
62145
  }
62267
- return Math.round((r - 8) / 247 * 24) + 232;
62146
+ var hashedKeys = keys.sort().join('');
62147
+ if (!(hashedKeys in hashedModelKeys)) {
62148
+ throw new Error('Unable to parse color from object: ' + JSON.stringify(object));
62149
+ }
62150
+ this.model = hashedModelKeys[hashedKeys];
62151
+ var labels = convert[this.model].labels;
62152
+ var color = [];
62153
+ for (i = 0; i < labels.length; i++) {
62154
+ color.push(object[labels[i]]);
62155
+ }
62156
+ this.color = zeroArray(color);
62268
62157
  }
62269
- var ansi = 16 + 36 * Math.round(r / 255 * 5) + 6 * Math.round(g / 255 * 5) + Math.round(b / 255 * 5);
62270
- return ansi;
62271
- };
62272
- convert.ansi16.rgb = function (args) {
62273
- var color = args % 10;
62274
62158
 
62275
- // handle greyscale
62276
- if (color === 0 || color === 7) {
62277
- if (args > 50) {
62278
- color += 3.5;
62159
+ // Perform limitations (clamping, etc.)
62160
+ if (limiters[this.model]) {
62161
+ channels = convert[this.model].channels;
62162
+ for (i = 0; i < channels; i++) {
62163
+ var limit = limiters[this.model][i];
62164
+ if (limit) {
62165
+ this.color[i] = limit(this.color[i]);
62166
+ }
62279
62167
  }
62280
- color = color / 10.5 * 255;
62281
- return [color, color, color];
62282
- }
62283
- var mult = (~~(args > 50) + 1) * 0.5;
62284
- var r = (color & 1) * mult * 255;
62285
- var g = (color >> 1 & 1) * mult * 255;
62286
- var b = (color >> 2 & 1) * mult * 255;
62287
- return [r, g, b];
62288
- };
62289
- convert.ansi256.rgb = function (args) {
62290
- // handle greyscale
62291
- if (args >= 232) {
62292
- var c = (args - 232) * 10 + 8;
62293
- return [c, c, c];
62294
- }
62295
- args -= 16;
62296
- var rem;
62297
- var r = Math.floor(args / 36) / 5 * 255;
62298
- var g = Math.floor((rem = args % 36) / 6) / 5 * 255;
62299
- var b = rem % 6 / 5 * 255;
62300
- return [r, g, b];
62301
- };
62302
- convert.rgb.hex = function (args) {
62303
- var integer = ((Math.round(args[0]) & 0xFF) << 16) + ((Math.round(args[1]) & 0xFF) << 8) + (Math.round(args[2]) & 0xFF);
62304
- var string = integer.toString(16).toUpperCase();
62305
- return '000000'.substring(string.length) + string;
62306
- };
62307
- convert.hex.rgb = function (args) {
62308
- var match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);
62309
- if (!match) {
62310
- return [0, 0, 0];
62311
- }
62312
- var colorString = match[0];
62313
- if (match[0].length === 3) {
62314
- colorString = colorString.split('').map(function (char) {
62315
- return char + char;
62316
- }).join('');
62317
- }
62318
- var integer = parseInt(colorString, 16);
62319
- var r = integer >> 16 & 0xFF;
62320
- var g = integer >> 8 & 0xFF;
62321
- var b = integer & 0xFF;
62322
- return [r, g, b];
62323
- };
62324
- convert.rgb.hcg = function (rgb) {
62325
- var r = rgb[0] / 255;
62326
- var g = rgb[1] / 255;
62327
- var b = rgb[2] / 255;
62328
- var max = Math.max(Math.max(r, g), b);
62329
- var min = Math.min(Math.min(r, g), b);
62330
- var chroma = max - min;
62331
- var grayscale;
62332
- var hue;
62333
- if (chroma < 1) {
62334
- grayscale = min / (1 - chroma);
62335
- } else {
62336
- grayscale = 0;
62337
- }
62338
- if (chroma <= 0) {
62339
- hue = 0;
62340
- } else if (max === r) {
62341
- hue = (g - b) / chroma % 6;
62342
- } else if (max === g) {
62343
- hue = 2 + (b - r) / chroma;
62344
- } else {
62345
- hue = 4 + (r - g) / chroma + 4;
62346
- }
62347
- hue /= 6;
62348
- hue %= 1;
62349
- return [hue * 360, chroma * 100, grayscale * 100];
62350
- };
62351
- convert.hsl.hcg = function (hsl) {
62352
- var s = hsl[1] / 100;
62353
- var l = hsl[2] / 100;
62354
- var c = 1;
62355
- var f = 0;
62356
- if (l < 0.5) {
62357
- c = 2.0 * s * l;
62358
- } else {
62359
- c = 2.0 * s * (1.0 - l);
62360
- }
62361
- if (c < 1.0) {
62362
- f = (l - 0.5 * c) / (1.0 - c);
62363
- }
62364
- return [hsl[0], c * 100, f * 100];
62365
- };
62366
- convert.hsv.hcg = function (hsv) {
62367
- var s = hsv[1] / 100;
62368
- var v = hsv[2] / 100;
62369
- var c = s * v;
62370
- var f = 0;
62371
- if (c < 1.0) {
62372
- f = (v - c) / (1 - c);
62373
- }
62374
- return [hsv[0], c * 100, f * 100];
62375
- };
62376
- convert.hcg.rgb = function (hcg) {
62377
- var h = hcg[0] / 360;
62378
- var c = hcg[1] / 100;
62379
- var g = hcg[2] / 100;
62380
- if (c === 0.0) {
62381
- return [g * 255, g * 255, g * 255];
62382
62168
  }
62383
- var pure = [0, 0, 0];
62384
- var hi = h % 1 * 6;
62385
- var v = hi % 1;
62386
- var w = 1 - v;
62387
- var mg = 0;
62388
- switch (Math.floor(hi)) {
62389
- case 0:
62390
- pure[0] = 1;
62391
- pure[1] = v;
62392
- pure[2] = 0;
62393
- break;
62394
- case 1:
62395
- pure[0] = w;
62396
- pure[1] = 1;
62397
- pure[2] = 0;
62398
- break;
62399
- case 2:
62400
- pure[0] = 0;
62401
- pure[1] = 1;
62402
- pure[2] = v;
62403
- break;
62404
- case 3:
62405
- pure[0] = 0;
62406
- pure[1] = w;
62407
- pure[2] = 1;
62408
- break;
62409
- case 4:
62410
- pure[0] = v;
62411
- pure[1] = 0;
62412
- pure[2] = 1;
62413
- break;
62414
- default:
62415
- pure[0] = 1;
62416
- pure[1] = 0;
62417
- pure[2] = w;
62418
- }
62419
- mg = (1.0 - c) * g;
62420
- return [(c * pure[0] + mg) * 255, (c * pure[1] + mg) * 255, (c * pure[2] + mg) * 255];
62421
- };
62422
- convert.hcg.hsv = function (hcg) {
62423
- var c = hcg[1] / 100;
62424
- var g = hcg[2] / 100;
62425
- var v = c + g * (1.0 - c);
62426
- var f = 0;
62427
- if (v > 0.0) {
62428
- f = c / v;
62429
- }
62430
- return [hcg[0], f * 100, v * 100];
62431
- };
62432
- convert.hcg.hsl = function (hcg) {
62433
- var c = hcg[1] / 100;
62434
- var g = hcg[2] / 100;
62435
- var l = g * (1.0 - c) + 0.5 * c;
62436
- var s = 0;
62437
- if (l > 0.0 && l < 0.5) {
62438
- s = c / (2 * l);
62439
- } else if (l >= 0.5 && l < 1.0) {
62440
- s = c / (2 * (1 - l));
62169
+ this.valpha = Math.max(0, Math.min(1, this.valpha));
62170
+ if (Object.freeze) {
62171
+ Object.freeze(this);
62441
62172
  }
62442
- return [hcg[0], s * 100, l * 100];
62443
- };
62444
- convert.hcg.hwb = function (hcg) {
62445
- var c = hcg[1] / 100;
62446
- var g = hcg[2] / 100;
62447
- var v = c + g * (1.0 - c);
62448
- return [hcg[0], (v - c) * 100, (1 - v) * 100];
62449
- };
62450
- convert.hwb.hcg = function (hwb) {
62451
- var w = hwb[1] / 100;
62452
- var b = hwb[2] / 100;
62453
- var v = 1 - b;
62454
- var c = v - w;
62455
- var g = 0;
62456
- if (c < 1) {
62457
- g = (v - c) / (1 - c);
62173
+ }
62174
+ Color.prototype = {
62175
+ toString: function toString() {
62176
+ return this.string();
62177
+ },
62178
+ toJSON: function toJSON() {
62179
+ return this[this.model]();
62180
+ },
62181
+ string: function string(places) {
62182
+ var self = this.model in colorString.to ? this : this.rgb();
62183
+ self = self.round(typeof places === 'number' ? places : 1);
62184
+ var args = self.valpha === 1 ? self.color : [].concat(_toConsumableArray(self.color), [this.valpha]);
62185
+ return colorString.to[self.model](args);
62186
+ },
62187
+ percentString: function percentString(places) {
62188
+ var self = this.rgb().round(typeof places === 'number' ? places : 1);
62189
+ var args = self.valpha === 1 ? self.color : [].concat(_toConsumableArray(self.color), [this.valpha]);
62190
+ return colorString.to.rgb.percent(args);
62191
+ },
62192
+ array: function array() {
62193
+ return this.valpha === 1 ? _toConsumableArray(this.color) : [].concat(_toConsumableArray(this.color), [this.valpha]);
62194
+ },
62195
+ object: function object() {
62196
+ var result = {};
62197
+ var channels = convert[this.model].channels;
62198
+ var labels = convert[this.model].labels;
62199
+ for (var i = 0; i < channels; i++) {
62200
+ result[labels[i]] = this.color[i];
62201
+ }
62202
+ if (this.valpha !== 1) {
62203
+ result.alpha = this.valpha;
62204
+ }
62205
+ return result;
62206
+ },
62207
+ unitArray: function unitArray() {
62208
+ var rgb = this.rgb().color;
62209
+ rgb[0] /= 255;
62210
+ rgb[1] /= 255;
62211
+ rgb[2] /= 255;
62212
+ if (this.valpha !== 1) {
62213
+ rgb.push(this.valpha);
62214
+ }
62215
+ return rgb;
62216
+ },
62217
+ unitObject: function unitObject() {
62218
+ var rgb = this.rgb().object();
62219
+ rgb.r /= 255;
62220
+ rgb.g /= 255;
62221
+ rgb.b /= 255;
62222
+ if (this.valpha !== 1) {
62223
+ rgb.alpha = this.valpha;
62224
+ }
62225
+ return rgb;
62226
+ },
62227
+ round: function round(places) {
62228
+ places = Math.max(places || 0, 0);
62229
+ return new Color([].concat(_toConsumableArray(this.color.map(roundToPlace(places))), [this.valpha]), this.model);
62230
+ },
62231
+ alpha: function alpha(value) {
62232
+ if (value !== undefined) {
62233
+ return new Color([].concat(_toConsumableArray(this.color), [Math.max(0, Math.min(1, value))]), this.model);
62234
+ }
62235
+ return this.valpha;
62236
+ },
62237
+ // Rgb
62238
+ red: getset('rgb', 0, maxfn(255)),
62239
+ green: getset('rgb', 1, maxfn(255)),
62240
+ blue: getset('rgb', 2, maxfn(255)),
62241
+ hue: getset(['hsl', 'hsv', 'hsl', 'hwb', 'hcg'], 0, function (value) {
62242
+ return (value % 360 + 360) % 360;
62243
+ }),
62244
+ saturationl: getset('hsl', 1, maxfn(100)),
62245
+ lightness: getset('hsl', 2, maxfn(100)),
62246
+ saturationv: getset('hsv', 1, maxfn(100)),
62247
+ value: getset('hsv', 2, maxfn(100)),
62248
+ chroma: getset('hcg', 1, maxfn(100)),
62249
+ gray: getset('hcg', 2, maxfn(100)),
62250
+ white: getset('hwb', 1, maxfn(100)),
62251
+ wblack: getset('hwb', 2, maxfn(100)),
62252
+ cyan: getset('cmyk', 0, maxfn(100)),
62253
+ magenta: getset('cmyk', 1, maxfn(100)),
62254
+ yellow: getset('cmyk', 2, maxfn(100)),
62255
+ black: getset('cmyk', 3, maxfn(100)),
62256
+ x: getset('xyz', 0, maxfn(95.047)),
62257
+ y: getset('xyz', 1, maxfn(100)),
62258
+ z: getset('xyz', 2, maxfn(108.833)),
62259
+ l: getset('lab', 0, maxfn(100)),
62260
+ a: getset('lab', 1),
62261
+ b: getset('lab', 2),
62262
+ keyword: function keyword(value) {
62263
+ if (value !== undefined) {
62264
+ return new Color(value);
62265
+ }
62266
+ return convert[this.model].keyword(this.color);
62267
+ },
62268
+ hex: function hex(value) {
62269
+ if (value !== undefined) {
62270
+ return new Color(value);
62271
+ }
62272
+ return colorString.to.hex(this.rgb().round().color);
62273
+ },
62274
+ hexa: function hexa(value) {
62275
+ if (value !== undefined) {
62276
+ return new Color(value);
62277
+ }
62278
+ var rgbArray = this.rgb().round().color;
62279
+ var alphaHex = Math.round(this.valpha * 255).toString(16).toUpperCase();
62280
+ if (alphaHex.length === 1) {
62281
+ alphaHex = '0' + alphaHex;
62282
+ }
62283
+ return colorString.to.hex(rgbArray) + alphaHex;
62284
+ },
62285
+ rgbNumber: function rgbNumber() {
62286
+ var rgb = this.rgb().color;
62287
+ return (rgb[0] & 0xFF) << 16 | (rgb[1] & 0xFF) << 8 | rgb[2] & 0xFF;
62288
+ },
62289
+ luminosity: function luminosity() {
62290
+ // http://www.w3.org/TR/WCAG20/#relativeluminancedef
62291
+ var rgb = this.rgb().color;
62292
+ var lum = [];
62293
+ var _iterator = _createForOfIteratorHelper(rgb.entries()),
62294
+ _step;
62295
+ try {
62296
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
62297
+ var _step$value = _slicedToArray(_step.value, 2),
62298
+ i = _step$value[0],
62299
+ element = _step$value[1];
62300
+ var chan = element / 255;
62301
+ lum[i] = chan <= 0.04045 ? chan / 12.92 : Math.pow((chan + 0.055) / 1.055, 2.4);
62302
+ }
62303
+ } catch (err) {
62304
+ _iterator.e(err);
62305
+ } finally {
62306
+ _iterator.f();
62307
+ }
62308
+ return 0.2126 * lum[0] + 0.7152 * lum[1] + 0.0722 * lum[2];
62309
+ },
62310
+ contrast: function contrast(color2) {
62311
+ // http://www.w3.org/TR/WCAG20/#contrast-ratiodef
62312
+ var lum1 = this.luminosity();
62313
+ var lum2 = color2.luminosity();
62314
+ if (lum1 > lum2) {
62315
+ return (lum1 + 0.05) / (lum2 + 0.05);
62316
+ }
62317
+ return (lum2 + 0.05) / (lum1 + 0.05);
62318
+ },
62319
+ level: function level(color2) {
62320
+ // https://www.w3.org/TR/WCAG/#contrast-enhanced
62321
+ var contrastRatio = this.contrast(color2);
62322
+ if (contrastRatio >= 7) {
62323
+ return 'AAA';
62324
+ }
62325
+ return contrastRatio >= 4.5 ? 'AA' : '';
62326
+ },
62327
+ isDark: function isDark() {
62328
+ // YIQ equation from http://24ways.org/2010/calculating-color-contrast
62329
+ var rgb = this.rgb().color;
62330
+ var yiq = (rgb[0] * 2126 + rgb[1] * 7152 + rgb[2] * 722) / 10000;
62331
+ return yiq < 128;
62332
+ },
62333
+ isLight: function isLight() {
62334
+ return !this.isDark();
62335
+ },
62336
+ negate: function negate() {
62337
+ var rgb = this.rgb();
62338
+ for (var i = 0; i < 3; i++) {
62339
+ rgb.color[i] = 255 - rgb.color[i];
62340
+ }
62341
+ return rgb;
62342
+ },
62343
+ lighten: function lighten(ratio) {
62344
+ var hsl = this.hsl();
62345
+ hsl.color[2] += hsl.color[2] * ratio;
62346
+ return hsl;
62347
+ },
62348
+ darken: function darken(ratio) {
62349
+ var hsl = this.hsl();
62350
+ hsl.color[2] -= hsl.color[2] * ratio;
62351
+ return hsl;
62352
+ },
62353
+ saturate: function saturate(ratio) {
62354
+ var hsl = this.hsl();
62355
+ hsl.color[1] += hsl.color[1] * ratio;
62356
+ return hsl;
62357
+ },
62358
+ desaturate: function desaturate(ratio) {
62359
+ var hsl = this.hsl();
62360
+ hsl.color[1] -= hsl.color[1] * ratio;
62361
+ return hsl;
62362
+ },
62363
+ whiten: function whiten(ratio) {
62364
+ var hwb = this.hwb();
62365
+ hwb.color[1] += hwb.color[1] * ratio;
62366
+ return hwb;
62367
+ },
62368
+ blacken: function blacken(ratio) {
62369
+ var hwb = this.hwb();
62370
+ hwb.color[2] += hwb.color[2] * ratio;
62371
+ return hwb;
62372
+ },
62373
+ grayscale: function grayscale() {
62374
+ // http://en.wikipedia.org/wiki/Grayscale#Converting_color_to_grayscale
62375
+ var rgb = this.rgb().color;
62376
+ var value = rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11;
62377
+ return Color.rgb(value, value, value);
62378
+ },
62379
+ fade: function fade(ratio) {
62380
+ return this.alpha(this.valpha - this.valpha * ratio);
62381
+ },
62382
+ opaquer: function opaquer(ratio) {
62383
+ return this.alpha(this.valpha + this.valpha * ratio);
62384
+ },
62385
+ rotate: function rotate(degrees) {
62386
+ var hsl = this.hsl();
62387
+ var hue = hsl.color[0];
62388
+ hue = (hue + degrees) % 360;
62389
+ hue = hue < 0 ? 360 + hue : hue;
62390
+ hsl.color[0] = hue;
62391
+ return hsl;
62392
+ },
62393
+ mix: function mix(mixinColor, weight) {
62394
+ // Ported from sass implementation in C
62395
+ // https://github.com/sass/libsass/blob/0e6b4a2850092356aa3ece07c6b249f0221caced/functions.cpp#L209
62396
+ if (!mixinColor || !mixinColor.rgb) {
62397
+ throw new Error('Argument to "mix" was not a Color instance, but rather an instance of ' + _typeof(mixinColor));
62398
+ }
62399
+ var color1 = mixinColor.rgb();
62400
+ var color2 = this.rgb();
62401
+ var p = weight === undefined ? 0.5 : weight;
62402
+ var w = 2 * p - 1;
62403
+ var a = color1.alpha() - color2.alpha();
62404
+ var w1 = ((w * a === -1 ? w : (w + a) / (1 + w * a)) + 1) / 2;
62405
+ var w2 = 1 - w1;
62406
+ return Color.rgb(w1 * color1.red() + w2 * color2.red(), w1 * color1.green() + w2 * color2.green(), w1 * color1.blue() + w2 * color2.blue(), color1.alpha() * p + color2.alpha() * (1 - p));
62458
62407
  }
62459
- return [hwb[0], c * 100, g * 100];
62460
- };
62461
- convert.apple.rgb = function (apple) {
62462
- return [apple[0] / 65535 * 255, apple[1] / 65535 * 255, apple[2] / 65535 * 255];
62463
- };
62464
- convert.rgb.apple = function (rgb) {
62465
- return [rgb[0] / 255 * 65535, rgb[1] / 255 * 65535, rgb[2] / 255 * 65535];
62466
- };
62467
- convert.gray.rgb = function (args) {
62468
- return [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];
62469
- };
62470
- convert.gray.hsl = convert.gray.hsv = function (args) {
62471
- return [0, 0, args[0]];
62472
- };
62473
- convert.gray.hwb = function (gray) {
62474
- return [0, 100, gray[0]];
62475
- };
62476
- convert.gray.cmyk = function (gray) {
62477
- return [0, 0, 0, gray[0]];
62478
- };
62479
- convert.gray.lab = function (gray) {
62480
- return [gray[0], 0, 0];
62481
- };
62482
- convert.gray.hex = function (gray) {
62483
- var val = Math.round(gray[0] / 100 * 255) & 0xFF;
62484
- var integer = (val << 16) + (val << 8) + val;
62485
- var string = integer.toString(16).toUpperCase();
62486
- return '000000'.substring(string.length) + string;
62487
- };
62488
- convert.rgb.gray = function (rgb) {
62489
- var val = (rgb[0] + rgb[1] + rgb[2]) / 3;
62490
- return [val / 255 * 100];
62491
62408
  };
62492
62409
 
62493
- /***/ }),
62494
-
62495
- /***/ "./node_modules/color-convert/index.js":
62496
- /*!*********************************************!*\
62497
- !*** ./node_modules/color-convert/index.js ***!
62498
- \*********************************************/
62499
- /*! no static exports found */
62500
- /***/ (function(module, exports, __webpack_require__) {
62410
+ // Model conversion methods and static constructors
62411
+ var _loop = function _loop() {
62412
+ var model = _Object$keys2[_i2];
62413
+ if (skippedModels.includes(model)) {
62414
+ return "continue";
62415
+ }
62416
+ var channels = convert[model].channels;
62501
62417
 
62502
- var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "./node_modules/@babel/runtime/helpers/typeof.js");
62503
- var conversions = __webpack_require__(/*! ./conversions */ "./node_modules/color-convert/conversions.js");
62504
- var route = __webpack_require__(/*! ./route */ "./node_modules/color-convert/route.js");
62505
- var convert = {};
62506
- var models = Object.keys(conversions);
62507
- function wrapRaw(fn) {
62508
- var wrappedFn = function wrappedFn(args) {
62509
- if (args === undefined || args === null) {
62510
- return args;
62418
+ // Conversion methods
62419
+ Color.prototype[model] = function () {
62420
+ if (this.model === model) {
62421
+ return new Color(this);
62511
62422
  }
62512
- if (arguments.length > 1) {
62513
- args = Array.prototype.slice.call(arguments);
62423
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
62424
+ args[_key] = arguments[_key];
62514
62425
  }
62515
- return fn(args);
62426
+ if (args.length > 0) {
62427
+ return new Color(args, model);
62428
+ }
62429
+ return new Color([].concat(_toConsumableArray(assertArray(convert[this.model][model].raw(this.color))), [this.valpha]), model);
62516
62430
  };
62517
62431
 
62518
- // preserve .conversion property if there is one
62519
- if ('conversion' in fn) {
62520
- wrappedFn.conversion = fn.conversion;
62521
- }
62522
- return wrappedFn;
62523
- }
62524
- function wrapRounded(fn) {
62525
- var wrappedFn = function wrappedFn(args) {
62526
- if (args === undefined || args === null) {
62527
- return args;
62432
+ // 'static' construction methods
62433
+ Color[model] = function () {
62434
+ for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
62435
+ args[_key2] = arguments[_key2];
62528
62436
  }
62529
- if (arguments.length > 1) {
62530
- args = Array.prototype.slice.call(arguments);
62437
+ var color = args[0];
62438
+ if (typeof color === 'number') {
62439
+ color = zeroArray(args, channels);
62531
62440
  }
62532
- var result = fn(args);
62533
-
62534
- // we're assuming the result is an array here.
62535
- // see notice in conversions.js; don't use box types
62536
- // in conversion functions.
62537
- if (_typeof(result) === 'object') {
62538
- for (var len = result.length, i = 0; i < len; i++) {
62539
- result[i] = Math.round(result[i]);
62441
+ return new Color(color, model);
62442
+ };
62443
+ };
62444
+ for (var _i2 = 0, _Object$keys2 = Object.keys(convert); _i2 < _Object$keys2.length; _i2++) {
62445
+ var _ret = _loop();
62446
+ if (_ret === "continue") continue;
62447
+ }
62448
+ function roundTo(number, places) {
62449
+ return Number(number.toFixed(places));
62450
+ }
62451
+ function roundToPlace(places) {
62452
+ return function (number) {
62453
+ return roundTo(number, places);
62454
+ };
62455
+ }
62456
+ function getset(model, channel, modifier) {
62457
+ model = Array.isArray(model) ? model : [model];
62458
+ var _iterator2 = _createForOfIteratorHelper(model),
62459
+ _step2;
62460
+ try {
62461
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
62462
+ var m = _step2.value;
62463
+ (limiters[m] || (limiters[m] = []))[channel] = modifier;
62464
+ }
62465
+ } catch (err) {
62466
+ _iterator2.e(err);
62467
+ } finally {
62468
+ _iterator2.f();
62469
+ }
62470
+ model = model[0];
62471
+ return function (value) {
62472
+ var result;
62473
+ if (value !== undefined) {
62474
+ if (modifier) {
62475
+ value = modifier(value);
62540
62476
  }
62477
+ result = this[model]();
62478
+ result.color[channel] = value;
62479
+ return result;
62480
+ }
62481
+ result = this[model]().color[channel];
62482
+ if (modifier) {
62483
+ result = modifier(result);
62541
62484
  }
62542
62485
  return result;
62543
62486
  };
62544
-
62545
- // preserve .conversion property if there is one
62546
- if ('conversion' in fn) {
62547
- wrappedFn.conversion = fn.conversion;
62548
- }
62549
- return wrappedFn;
62550
62487
  }
62551
- models.forEach(function (fromModel) {
62552
- convert[fromModel] = {};
62553
- Object.defineProperty(convert[fromModel], 'channels', {
62554
- value: conversions[fromModel].channels
62555
- });
62556
- Object.defineProperty(convert[fromModel], 'labels', {
62557
- value: conversions[fromModel].labels
62558
- });
62559
- var routes = route(fromModel);
62560
- var routeModels = Object.keys(routes);
62561
- routeModels.forEach(function (toModel) {
62562
- var fn = routes[toModel];
62563
- convert[fromModel][toModel] = wrapRounded(fn);
62564
- convert[fromModel][toModel].raw = wrapRaw(fn);
62565
- });
62566
- });
62567
- module.exports = convert;
62568
-
62569
- /***/ }),
62570
-
62571
- /***/ "./node_modules/color-convert/node_modules/color-name/index.js":
62572
- /*!*********************************************************************!*\
62573
- !*** ./node_modules/color-convert/node_modules/color-name/index.js ***!
62574
- \*********************************************************************/
62575
- /*! no static exports found */
62576
- /***/ (function(module, exports, __webpack_require__) {
62577
-
62578
- "use strict";
62579
-
62580
-
62581
- module.exports = {
62582
- "aliceblue": [240, 248, 255],
62583
- "antiquewhite": [250, 235, 215],
62584
- "aqua": [0, 255, 255],
62585
- "aquamarine": [127, 255, 212],
62586
- "azure": [240, 255, 255],
62587
- "beige": [245, 245, 220],
62588
- "bisque": [255, 228, 196],
62589
- "black": [0, 0, 0],
62590
- "blanchedalmond": [255, 235, 205],
62591
- "blue": [0, 0, 255],
62592
- "blueviolet": [138, 43, 226],
62593
- "brown": [165, 42, 42],
62594
- "burlywood": [222, 184, 135],
62595
- "cadetblue": [95, 158, 160],
62596
- "chartreuse": [127, 255, 0],
62597
- "chocolate": [210, 105, 30],
62598
- "coral": [255, 127, 80],
62599
- "cornflowerblue": [100, 149, 237],
62600
- "cornsilk": [255, 248, 220],
62601
- "crimson": [220, 20, 60],
62602
- "cyan": [0, 255, 255],
62603
- "darkblue": [0, 0, 139],
62604
- "darkcyan": [0, 139, 139],
62605
- "darkgoldenrod": [184, 134, 11],
62606
- "darkgray": [169, 169, 169],
62607
- "darkgreen": [0, 100, 0],
62608
- "darkgrey": [169, 169, 169],
62609
- "darkkhaki": [189, 183, 107],
62610
- "darkmagenta": [139, 0, 139],
62611
- "darkolivegreen": [85, 107, 47],
62612
- "darkorange": [255, 140, 0],
62613
- "darkorchid": [153, 50, 204],
62614
- "darkred": [139, 0, 0],
62615
- "darksalmon": [233, 150, 122],
62616
- "darkseagreen": [143, 188, 143],
62617
- "darkslateblue": [72, 61, 139],
62618
- "darkslategray": [47, 79, 79],
62619
- "darkslategrey": [47, 79, 79],
62620
- "darkturquoise": [0, 206, 209],
62621
- "darkviolet": [148, 0, 211],
62622
- "deeppink": [255, 20, 147],
62623
- "deepskyblue": [0, 191, 255],
62624
- "dimgray": [105, 105, 105],
62625
- "dimgrey": [105, 105, 105],
62626
- "dodgerblue": [30, 144, 255],
62627
- "firebrick": [178, 34, 34],
62628
- "floralwhite": [255, 250, 240],
62629
- "forestgreen": [34, 139, 34],
62630
- "fuchsia": [255, 0, 255],
62631
- "gainsboro": [220, 220, 220],
62632
- "ghostwhite": [248, 248, 255],
62633
- "gold": [255, 215, 0],
62634
- "goldenrod": [218, 165, 32],
62635
- "gray": [128, 128, 128],
62636
- "green": [0, 128, 0],
62637
- "greenyellow": [173, 255, 47],
62638
- "grey": [128, 128, 128],
62639
- "honeydew": [240, 255, 240],
62640
- "hotpink": [255, 105, 180],
62641
- "indianred": [205, 92, 92],
62642
- "indigo": [75, 0, 130],
62643
- "ivory": [255, 255, 240],
62644
- "khaki": [240, 230, 140],
62645
- "lavender": [230, 230, 250],
62646
- "lavenderblush": [255, 240, 245],
62647
- "lawngreen": [124, 252, 0],
62648
- "lemonchiffon": [255, 250, 205],
62649
- "lightblue": [173, 216, 230],
62650
- "lightcoral": [240, 128, 128],
62651
- "lightcyan": [224, 255, 255],
62652
- "lightgoldenrodyellow": [250, 250, 210],
62653
- "lightgray": [211, 211, 211],
62654
- "lightgreen": [144, 238, 144],
62655
- "lightgrey": [211, 211, 211],
62656
- "lightpink": [255, 182, 193],
62657
- "lightsalmon": [255, 160, 122],
62658
- "lightseagreen": [32, 178, 170],
62659
- "lightskyblue": [135, 206, 250],
62660
- "lightslategray": [119, 136, 153],
62661
- "lightslategrey": [119, 136, 153],
62662
- "lightsteelblue": [176, 196, 222],
62663
- "lightyellow": [255, 255, 224],
62664
- "lime": [0, 255, 0],
62665
- "limegreen": [50, 205, 50],
62666
- "linen": [250, 240, 230],
62667
- "magenta": [255, 0, 255],
62668
- "maroon": [128, 0, 0],
62669
- "mediumaquamarine": [102, 205, 170],
62670
- "mediumblue": [0, 0, 205],
62671
- "mediumorchid": [186, 85, 211],
62672
- "mediumpurple": [147, 112, 219],
62673
- "mediumseagreen": [60, 179, 113],
62674
- "mediumslateblue": [123, 104, 238],
62675
- "mediumspringgreen": [0, 250, 154],
62676
- "mediumturquoise": [72, 209, 204],
62677
- "mediumvioletred": [199, 21, 133],
62678
- "midnightblue": [25, 25, 112],
62679
- "mintcream": [245, 255, 250],
62680
- "mistyrose": [255, 228, 225],
62681
- "moccasin": [255, 228, 181],
62682
- "navajowhite": [255, 222, 173],
62683
- "navy": [0, 0, 128],
62684
- "oldlace": [253, 245, 230],
62685
- "olive": [128, 128, 0],
62686
- "olivedrab": [107, 142, 35],
62687
- "orange": [255, 165, 0],
62688
- "orangered": [255, 69, 0],
62689
- "orchid": [218, 112, 214],
62690
- "palegoldenrod": [238, 232, 170],
62691
- "palegreen": [152, 251, 152],
62692
- "paleturquoise": [175, 238, 238],
62693
- "palevioletred": [219, 112, 147],
62694
- "papayawhip": [255, 239, 213],
62695
- "peachpuff": [255, 218, 185],
62696
- "peru": [205, 133, 63],
62697
- "pink": [255, 192, 203],
62698
- "plum": [221, 160, 221],
62699
- "powderblue": [176, 224, 230],
62700
- "purple": [128, 0, 128],
62701
- "rebeccapurple": [102, 51, 153],
62702
- "red": [255, 0, 0],
62703
- "rosybrown": [188, 143, 143],
62704
- "royalblue": [65, 105, 225],
62705
- "saddlebrown": [139, 69, 19],
62706
- "salmon": [250, 128, 114],
62707
- "sandybrown": [244, 164, 96],
62708
- "seagreen": [46, 139, 87],
62709
- "seashell": [255, 245, 238],
62710
- "sienna": [160, 82, 45],
62711
- "silver": [192, 192, 192],
62712
- "skyblue": [135, 206, 235],
62713
- "slateblue": [106, 90, 205],
62714
- "slategray": [112, 128, 144],
62715
- "slategrey": [112, 128, 144],
62716
- "snow": [255, 250, 250],
62717
- "springgreen": [0, 255, 127],
62718
- "steelblue": [70, 130, 180],
62719
- "tan": [210, 180, 140],
62720
- "teal": [0, 128, 128],
62721
- "thistle": [216, 191, 216],
62722
- "tomato": [255, 99, 71],
62723
- "turquoise": [64, 224, 208],
62724
- "violet": [238, 130, 238],
62725
- "wheat": [245, 222, 179],
62726
- "white": [255, 255, 255],
62727
- "whitesmoke": [245, 245, 245],
62728
- "yellow": [255, 255, 0],
62729
- "yellowgreen": [154, 205, 50]
62730
- };
62488
+ function maxfn(max) {
62489
+ return function (v) {
62490
+ return Math.max(0, Math.min(max, v));
62491
+ };
62492
+ }
62493
+ function assertArray(value) {
62494
+ return Array.isArray(value) ? value : [value];
62495
+ }
62496
+ function zeroArray(array, length) {
62497
+ for (var i = 0; i < length; i++) {
62498
+ if (typeof array[i] !== 'number') {
62499
+ array[i] = 0;
62500
+ }
62501
+ }
62502
+ return array;
62503
+ }
62504
+ module.exports = Color;
62731
62505
 
62732
62506
  /***/ }),
62733
62507
 
62734
- /***/ "./node_modules/color-convert/route.js":
62735
- /*!*********************************************!*\
62736
- !*** ./node_modules/color-convert/route.js ***!
62737
- \*********************************************/
62508
+ /***/ "./node_modules/color/node_modules/color-convert/conversions.js":
62509
+ /*!**********************************************************************!*\
62510
+ !*** ./node_modules/color/node_modules/color-convert/conversions.js ***!
62511
+ \**********************************************************************/
62738
62512
  /*! no static exports found */
62739
62513
  /***/ (function(module, exports, __webpack_require__) {
62740
62514
 
62741
- var conversions = __webpack_require__(/*! ./conversions */ "./node_modules/color-convert/conversions.js");
62742
-
62743
- /*
62744
- this function routes a model to all other models.
62515
+ var _slicedToArray = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "./node_modules/@babel/runtime/helpers/slicedToArray.js");
62516
+ /* MIT license */
62517
+ /* eslint-disable no-mixed-operators */
62518
+ var cssKeywords = __webpack_require__(/*! color-name */ "./node_modules/color-name/index.js");
62745
62519
 
62746
- all functions that are routed have a property `.conversion` attached
62747
- to the returned synthetic function. This property is an array
62748
- of strings, each with the steps in between the 'from' and 'to'
62749
- color models (inclusive).
62520
+ // NOTE: conversions should only return primitive values (i.e. arrays, or
62521
+ // values that give correct `typeof` results).
62522
+ // do not use box values types (i.e. Number(), String(), etc.)
62750
62523
 
62751
- conversions that are not possible simply are not included.
62752
- */
62524
+ var reverseKeywords = {};
62525
+ for (var _i = 0, _Object$keys = Object.keys(cssKeywords); _i < _Object$keys.length; _i++) {
62526
+ var key = _Object$keys[_i];
62527
+ reverseKeywords[cssKeywords[key]] = key;
62528
+ }
62529
+ var convert = {
62530
+ rgb: {
62531
+ channels: 3,
62532
+ labels: 'rgb'
62533
+ },
62534
+ hsl: {
62535
+ channels: 3,
62536
+ labels: 'hsl'
62537
+ },
62538
+ hsv: {
62539
+ channels: 3,
62540
+ labels: 'hsv'
62541
+ },
62542
+ hwb: {
62543
+ channels: 3,
62544
+ labels: 'hwb'
62545
+ },
62546
+ cmyk: {
62547
+ channels: 4,
62548
+ labels: 'cmyk'
62549
+ },
62550
+ xyz: {
62551
+ channels: 3,
62552
+ labels: 'xyz'
62553
+ },
62554
+ lab: {
62555
+ channels: 3,
62556
+ labels: 'lab'
62557
+ },
62558
+ lch: {
62559
+ channels: 3,
62560
+ labels: 'lch'
62561
+ },
62562
+ hex: {
62563
+ channels: 1,
62564
+ labels: ['hex']
62565
+ },
62566
+ keyword: {
62567
+ channels: 1,
62568
+ labels: ['keyword']
62569
+ },
62570
+ ansi16: {
62571
+ channels: 1,
62572
+ labels: ['ansi16']
62573
+ },
62574
+ ansi256: {
62575
+ channels: 1,
62576
+ labels: ['ansi256']
62577
+ },
62578
+ hcg: {
62579
+ channels: 3,
62580
+ labels: ['h', 'c', 'g']
62581
+ },
62582
+ apple: {
62583
+ channels: 3,
62584
+ labels: ['r16', 'g16', 'b16']
62585
+ },
62586
+ gray: {
62587
+ channels: 1,
62588
+ labels: ['gray']
62589
+ }
62590
+ };
62591
+ module.exports = convert;
62753
62592
 
62754
- function buildGraph() {
62755
- var graph = {};
62756
- // https://jsperf.com/object-keys-vs-for-in-with-closure/3
62757
- var models = Object.keys(conversions);
62758
- for (var len = models.length, i = 0; i < len; i++) {
62759
- graph[models[i]] = {
62760
- // http://jsperf.com/1-vs-infinity
62761
- // micro-opt, but this is simple.
62762
- distance: -1,
62763
- parent: null
62764
- };
62593
+ // Hide .channels and .labels properties
62594
+ for (var _i2 = 0, _Object$keys2 = Object.keys(convert); _i2 < _Object$keys2.length; _i2++) {
62595
+ var model = _Object$keys2[_i2];
62596
+ if (!('channels' in convert[model])) {
62597
+ throw new Error('missing channels property: ' + model);
62598
+ }
62599
+ if (!('labels' in convert[model])) {
62600
+ throw new Error('missing channel labels property: ' + model);
62601
+ }
62602
+ if (convert[model].labels.length !== convert[model].channels) {
62603
+ throw new Error('channel and label counts mismatch: ' + model);
62604
+ }
62605
+ var _convert$model = convert[model],
62606
+ channels = _convert$model.channels,
62607
+ labels = _convert$model.labels;
62608
+ delete convert[model].channels;
62609
+ delete convert[model].labels;
62610
+ Object.defineProperty(convert[model], 'channels', {
62611
+ value: channels
62612
+ });
62613
+ Object.defineProperty(convert[model], 'labels', {
62614
+ value: labels
62615
+ });
62616
+ }
62617
+ convert.rgb.hsl = function (rgb) {
62618
+ var r = rgb[0] / 255;
62619
+ var g = rgb[1] / 255;
62620
+ var b = rgb[2] / 255;
62621
+ var min = Math.min(r, g, b);
62622
+ var max = Math.max(r, g, b);
62623
+ var delta = max - min;
62624
+ var h;
62625
+ var s;
62626
+ if (max === min) {
62627
+ h = 0;
62628
+ } else if (r === max) {
62629
+ h = (g - b) / delta;
62630
+ } else if (g === max) {
62631
+ h = 2 + (b - r) / delta;
62632
+ } else if (b === max) {
62633
+ h = 4 + (r - g) / delta;
62765
62634
  }
62766
- return graph;
62635
+ h = Math.min(h * 60, 360);
62636
+ if (h < 0) {
62637
+ h += 360;
62638
+ }
62639
+ var l = (min + max) / 2;
62640
+ if (max === min) {
62641
+ s = 0;
62642
+ } else if (l <= 0.5) {
62643
+ s = delta / (max + min);
62644
+ } else {
62645
+ s = delta / (2 - max - min);
62646
+ }
62647
+ return [h, s * 100, l * 100];
62648
+ };
62649
+ convert.rgb.hsv = function (rgb) {
62650
+ var rdif;
62651
+ var gdif;
62652
+ var bdif;
62653
+ var h;
62654
+ var s;
62655
+ var r = rgb[0] / 255;
62656
+ var g = rgb[1] / 255;
62657
+ var b = rgb[2] / 255;
62658
+ var v = Math.max(r, g, b);
62659
+ var diff = v - Math.min(r, g, b);
62660
+ var diffc = function diffc(c) {
62661
+ return (v - c) / 6 / diff + 1 / 2;
62662
+ };
62663
+ if (diff === 0) {
62664
+ h = 0;
62665
+ s = 0;
62666
+ } else {
62667
+ s = diff / v;
62668
+ rdif = diffc(r);
62669
+ gdif = diffc(g);
62670
+ bdif = diffc(b);
62671
+ if (r === v) {
62672
+ h = bdif - gdif;
62673
+ } else if (g === v) {
62674
+ h = 1 / 3 + rdif - bdif;
62675
+ } else if (b === v) {
62676
+ h = 2 / 3 + gdif - rdif;
62677
+ }
62678
+ if (h < 0) {
62679
+ h += 1;
62680
+ } else if (h > 1) {
62681
+ h -= 1;
62682
+ }
62683
+ }
62684
+ return [h * 360, s * 100, v * 100];
62685
+ };
62686
+ convert.rgb.hwb = function (rgb) {
62687
+ var r = rgb[0];
62688
+ var g = rgb[1];
62689
+ var b = rgb[2];
62690
+ var h = convert.rgb.hsl(rgb)[0];
62691
+ var w = 1 / 255 * Math.min(r, Math.min(g, b));
62692
+ b = 1 - 1 / 255 * Math.max(r, Math.max(g, b));
62693
+ return [h, w * 100, b * 100];
62694
+ };
62695
+ convert.rgb.cmyk = function (rgb) {
62696
+ var r = rgb[0] / 255;
62697
+ var g = rgb[1] / 255;
62698
+ var b = rgb[2] / 255;
62699
+ var k = Math.min(1 - r, 1 - g, 1 - b);
62700
+ var c = (1 - r - k) / (1 - k) || 0;
62701
+ var m = (1 - g - k) / (1 - k) || 0;
62702
+ var y = (1 - b - k) / (1 - k) || 0;
62703
+ return [c * 100, m * 100, y * 100, k * 100];
62704
+ };
62705
+ function comparativeDistance(x, y) {
62706
+ /*
62707
+ See https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance
62708
+ */
62709
+ return Math.pow(x[0] - y[0], 2) + Math.pow(x[1] - y[1], 2) + Math.pow(x[2] - y[2], 2);
62767
62710
  }
62711
+ convert.rgb.keyword = function (rgb) {
62712
+ var reversed = reverseKeywords[rgb];
62713
+ if (reversed) {
62714
+ return reversed;
62715
+ }
62716
+ var currentClosestDistance = Infinity;
62717
+ var currentClosestKeyword;
62718
+ for (var _i3 = 0, _Object$keys3 = Object.keys(cssKeywords); _i3 < _Object$keys3.length; _i3++) {
62719
+ var keyword = _Object$keys3[_i3];
62720
+ var value = cssKeywords[keyword];
62768
62721
 
62769
- // https://en.wikipedia.org/wiki/Breadth-first_search
62770
- function deriveBFS(fromModel) {
62771
- var graph = buildGraph();
62772
- var queue = [fromModel]; // unshift -> queue -> pop
62722
+ // Compute comparative distance
62723
+ var distance = comparativeDistance(rgb, value);
62773
62724
 
62774
- graph[fromModel].distance = 0;
62775
- while (queue.length) {
62776
- var current = queue.pop();
62777
- var adjacents = Object.keys(conversions[current]);
62778
- for (var len = adjacents.length, i = 0; i < len; i++) {
62779
- var adjacent = adjacents[i];
62780
- var node = graph[adjacent];
62781
- if (node.distance === -1) {
62782
- node.distance = graph[current].distance + 1;
62783
- node.parent = current;
62784
- queue.unshift(adjacent);
62785
- }
62725
+ // Check if its less, if so set as closest
62726
+ if (distance < currentClosestDistance) {
62727
+ currentClosestDistance = distance;
62728
+ currentClosestKeyword = keyword;
62786
62729
  }
62787
62730
  }
62788
- return graph;
62789
- }
62790
- function link(from, to) {
62791
- return function (args) {
62792
- return to(from(args));
62793
- };
62794
- }
62795
- function wrapConversion(toModel, graph) {
62796
- var path = [graph[toModel].parent, toModel];
62797
- var fn = conversions[graph[toModel].parent][toModel];
62798
- var cur = graph[toModel].parent;
62799
- while (graph[cur].parent) {
62800
- path.unshift(graph[cur].parent);
62801
- fn = link(conversions[graph[cur].parent][cur], fn);
62802
- cur = graph[cur].parent;
62731
+ return currentClosestKeyword;
62732
+ };
62733
+ convert.keyword.rgb = function (keyword) {
62734
+ return cssKeywords[keyword];
62735
+ };
62736
+ convert.rgb.xyz = function (rgb) {
62737
+ var r = rgb[0] / 255;
62738
+ var g = rgb[1] / 255;
62739
+ var b = rgb[2] / 255;
62740
+
62741
+ // Assume sRGB
62742
+ r = r > 0.04045 ? Math.pow((r + 0.055) / 1.055, 2.4) : r / 12.92;
62743
+ g = g > 0.04045 ? Math.pow((g + 0.055) / 1.055, 2.4) : g / 12.92;
62744
+ b = b > 0.04045 ? Math.pow((b + 0.055) / 1.055, 2.4) : b / 12.92;
62745
+ var x = r * 0.4124 + g * 0.3576 + b * 0.1805;
62746
+ var y = r * 0.2126 + g * 0.7152 + b * 0.0722;
62747
+ var z = r * 0.0193 + g * 0.1192 + b * 0.9505;
62748
+ return [x * 100, y * 100, z * 100];
62749
+ };
62750
+ convert.rgb.lab = function (rgb) {
62751
+ var xyz = convert.rgb.xyz(rgb);
62752
+ var x = xyz[0];
62753
+ var y = xyz[1];
62754
+ var z = xyz[2];
62755
+ x /= 95.047;
62756
+ y /= 100;
62757
+ z /= 108.883;
62758
+ x = x > 0.008856 ? Math.pow(x, 1 / 3) : 7.787 * x + 16 / 116;
62759
+ y = y > 0.008856 ? Math.pow(y, 1 / 3) : 7.787 * y + 16 / 116;
62760
+ z = z > 0.008856 ? Math.pow(z, 1 / 3) : 7.787 * z + 16 / 116;
62761
+ var l = 116 * y - 16;
62762
+ var a = 500 * (x - y);
62763
+ var b = 200 * (y - z);
62764
+ return [l, a, b];
62765
+ };
62766
+ convert.hsl.rgb = function (hsl) {
62767
+ var h = hsl[0] / 360;
62768
+ var s = hsl[1] / 100;
62769
+ var l = hsl[2] / 100;
62770
+ var t2;
62771
+ var t3;
62772
+ var val;
62773
+ if (s === 0) {
62774
+ val = l * 255;
62775
+ return [val, val, val];
62803
62776
  }
62804
- fn.conversion = path;
62805
- return fn;
62806
- }
62807
- module.exports = function (fromModel) {
62808
- var graph = deriveBFS(fromModel);
62809
- var conversion = {};
62810
- var models = Object.keys(graph);
62811
- for (var len = models.length, i = 0; i < len; i++) {
62812
- var toModel = models[i];
62813
- var node = graph[toModel];
62814
- if (node.parent === null) {
62815
- // no possible conversion, or this node is the source model.
62816
- continue;
62777
+ if (l < 0.5) {
62778
+ t2 = l * (1 + s);
62779
+ } else {
62780
+ t2 = l + s - l * s;
62781
+ }
62782
+ var t1 = 2 * l - t2;
62783
+ var rgb = [0, 0, 0];
62784
+ for (var i = 0; i < 3; i++) {
62785
+ t3 = h + 1 / 3 * -(i - 1);
62786
+ if (t3 < 0) {
62787
+ t3++;
62817
62788
  }
62818
- conversion[toModel] = wrapConversion(toModel, graph);
62789
+ if (t3 > 1) {
62790
+ t3--;
62791
+ }
62792
+ if (6 * t3 < 1) {
62793
+ val = t1 + (t2 - t1) * 6 * t3;
62794
+ } else if (2 * t3 < 1) {
62795
+ val = t2;
62796
+ } else if (3 * t3 < 2) {
62797
+ val = t1 + (t2 - t1) * (2 / 3 - t3) * 6;
62798
+ } else {
62799
+ val = t1;
62800
+ }
62801
+ rgb[i] = val * 255;
62819
62802
  }
62820
- return conversion;
62803
+ return rgb;
62804
+ };
62805
+ convert.hsl.hsv = function (hsl) {
62806
+ var h = hsl[0];
62807
+ var s = hsl[1] / 100;
62808
+ var l = hsl[2] / 100;
62809
+ var smin = s;
62810
+ var lmin = Math.max(l, 0.01);
62811
+ l *= 2;
62812
+ s *= l <= 1 ? l : 2 - l;
62813
+ smin *= lmin <= 1 ? lmin : 2 - lmin;
62814
+ var v = (l + s) / 2;
62815
+ var sv = l === 0 ? 2 * smin / (lmin + smin) : 2 * s / (l + s);
62816
+ return [h, sv * 100, v * 100];
62817
+ };
62818
+ convert.hsv.rgb = function (hsv) {
62819
+ var h = hsv[0] / 60;
62820
+ var s = hsv[1] / 100;
62821
+ var v = hsv[2] / 100;
62822
+ var hi = Math.floor(h) % 6;
62823
+ var f = h - Math.floor(h);
62824
+ var p = 255 * v * (1 - s);
62825
+ var q = 255 * v * (1 - s * f);
62826
+ var t = 255 * v * (1 - s * (1 - f));
62827
+ v *= 255;
62828
+ switch (hi) {
62829
+ case 0:
62830
+ return [v, t, p];
62831
+ case 1:
62832
+ return [q, v, p];
62833
+ case 2:
62834
+ return [p, v, t];
62835
+ case 3:
62836
+ return [p, q, v];
62837
+ case 4:
62838
+ return [t, p, v];
62839
+ case 5:
62840
+ return [v, p, q];
62841
+ }
62842
+ };
62843
+ convert.hsv.hsl = function (hsv) {
62844
+ var h = hsv[0];
62845
+ var s = hsv[1] / 100;
62846
+ var v = hsv[2] / 100;
62847
+ var vmin = Math.max(v, 0.01);
62848
+ var sl;
62849
+ var l;
62850
+ l = (2 - s) * v;
62851
+ var lmin = (2 - s) * vmin;
62852
+ sl = s * vmin;
62853
+ sl /= lmin <= 1 ? lmin : 2 - lmin;
62854
+ sl = sl || 0;
62855
+ l /= 2;
62856
+ return [h, sl * 100, l * 100];
62821
62857
  };
62822
62858
 
62823
- /***/ }),
62859
+ // http://dev.w3.org/csswg/css-color/#hwb-to-rgb
62860
+ convert.hwb.rgb = function (hwb) {
62861
+ var h = hwb[0] / 360;
62862
+ var wh = hwb[1] / 100;
62863
+ var bl = hwb[2] / 100;
62864
+ var ratio = wh + bl;
62865
+ var f;
62824
62866
 
62825
- /***/ "./node_modules/color-ie/lib/index.js":
62826
- /*!********************************************!*\
62827
- !*** ./node_modules/color-ie/lib/index.js ***!
62828
- \********************************************/
62829
- /*! no static exports found */
62830
- /***/ (function(module, exports, __webpack_require__) {
62867
+ // Wh + bl cant be > 1
62868
+ if (ratio > 1) {
62869
+ wh /= ratio;
62870
+ bl /= ratio;
62871
+ }
62872
+ var i = Math.floor(6 * h);
62873
+ var v = 1 - bl;
62874
+ f = 6 * h - i;
62875
+ if ((i & 0x01) !== 0) {
62876
+ f = 1 - f;
62877
+ }
62878
+ var n = wh + f * (v - wh); // Linear interpolation
62831
62879
 
62832
- "use strict";
62880
+ var r;
62881
+ var g;
62882
+ var b;
62883
+ /* eslint-disable max-statements-per-line,no-multi-spaces */
62884
+ switch (i) {
62885
+ default:
62886
+ case 6:
62887
+ case 0:
62888
+ r = v;
62889
+ g = n;
62890
+ b = wh;
62891
+ break;
62892
+ case 1:
62893
+ r = n;
62894
+ g = v;
62895
+ b = wh;
62896
+ break;
62897
+ case 2:
62898
+ r = wh;
62899
+ g = v;
62900
+ b = n;
62901
+ break;
62902
+ case 3:
62903
+ r = wh;
62904
+ g = n;
62905
+ b = v;
62906
+ break;
62907
+ case 4:
62908
+ r = n;
62909
+ g = wh;
62910
+ b = v;
62911
+ break;
62912
+ case 5:
62913
+ r = v;
62914
+ g = wh;
62915
+ b = n;
62916
+ break;
62917
+ }
62918
+ /* eslint-enable max-statements-per-line,no-multi-spaces */
62833
62919
 
62920
+ return [r * 255, g * 255, b * 255];
62921
+ };
62922
+ convert.cmyk.rgb = function (cmyk) {
62923
+ var c = cmyk[0] / 100;
62924
+ var m = cmyk[1] / 100;
62925
+ var y = cmyk[2] / 100;
62926
+ var k = cmyk[3] / 100;
62927
+ var r = 1 - Math.min(1, c * (1 - k) + k);
62928
+ var g = 1 - Math.min(1, m * (1 - k) + k);
62929
+ var b = 1 - Math.min(1, y * (1 - k) + k);
62930
+ return [r * 255, g * 255, b * 255];
62931
+ };
62932
+ convert.xyz.rgb = function (xyz) {
62933
+ var x = xyz[0] / 100;
62934
+ var y = xyz[1] / 100;
62935
+ var z = xyz[2] / 100;
62936
+ var r;
62937
+ var g;
62938
+ var b;
62939
+ r = x * 3.2406 + y * -1.5372 + z * -0.4986;
62940
+ g = x * -0.9689 + y * 1.8758 + z * 0.0415;
62941
+ b = x * 0.0557 + y * -0.2040 + z * 1.0570;
62834
62942
 
62835
- var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "./node_modules/@babel/runtime/helpers/typeof.js");
62836
- function _array_like_to_array(arr, len) {
62837
- if (len == null || len > arr.length) len = arr.length;
62838
- for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
62839
- return arr2;
62840
- }
62841
- function _array_with_holes(arr) {
62842
- if (Array.isArray(arr)) return arr;
62843
- }
62844
- function _array_without_holes(arr) {
62845
- if (Array.isArray(arr)) return _array_like_to_array(arr);
62846
- }
62847
- function _instanceof(left, right) {
62848
- if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
62849
- return !!right[Symbol.hasInstance](left);
62850
- } else {
62851
- return left instanceof right;
62943
+ // Assume sRGB
62944
+ r = r > 0.0031308 ? 1.055 * Math.pow(r, 1.0 / 2.4) - 0.055 : r * 12.92;
62945
+ g = g > 0.0031308 ? 1.055 * Math.pow(g, 1.0 / 2.4) - 0.055 : g * 12.92;
62946
+ b = b > 0.0031308 ? 1.055 * Math.pow(b, 1.0 / 2.4) - 0.055 : b * 12.92;
62947
+ r = Math.min(Math.max(0, r), 1);
62948
+ g = Math.min(Math.max(0, g), 1);
62949
+ b = Math.min(Math.max(0, b), 1);
62950
+ return [r * 255, g * 255, b * 255];
62951
+ };
62952
+ convert.xyz.lab = function (xyz) {
62953
+ var x = xyz[0];
62954
+ var y = xyz[1];
62955
+ var z = xyz[2];
62956
+ x /= 95.047;
62957
+ y /= 100;
62958
+ z /= 108.883;
62959
+ x = x > 0.008856 ? Math.pow(x, 1 / 3) : 7.787 * x + 16 / 116;
62960
+ y = y > 0.008856 ? Math.pow(y, 1 / 3) : 7.787 * y + 16 / 116;
62961
+ z = z > 0.008856 ? Math.pow(z, 1 / 3) : 7.787 * z + 16 / 116;
62962
+ var l = 116 * y - 16;
62963
+ var a = 500 * (x - y);
62964
+ var b = 200 * (y - z);
62965
+ return [l, a, b];
62966
+ };
62967
+ convert.lab.xyz = function (lab) {
62968
+ var l = lab[0];
62969
+ var a = lab[1];
62970
+ var b = lab[2];
62971
+ var x;
62972
+ var y;
62973
+ var z;
62974
+ y = (l + 16) / 116;
62975
+ x = a / 500 + y;
62976
+ z = y - b / 200;
62977
+ var y2 = Math.pow(y, 3);
62978
+ var x2 = Math.pow(x, 3);
62979
+ var z2 = Math.pow(z, 3);
62980
+ y = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787;
62981
+ x = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787;
62982
+ z = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787;
62983
+ x *= 95.047;
62984
+ y *= 100;
62985
+ z *= 108.883;
62986
+ return [x, y, z];
62987
+ };
62988
+ convert.lab.lch = function (lab) {
62989
+ var l = lab[0];
62990
+ var a = lab[1];
62991
+ var b = lab[2];
62992
+ var h;
62993
+ var hr = Math.atan2(b, a);
62994
+ h = hr * 360 / 2 / Math.PI;
62995
+ if (h < 0) {
62996
+ h += 360;
62997
+ }
62998
+ var c = Math.sqrt(a * a + b * b);
62999
+ return [l, c, h];
63000
+ };
63001
+ convert.lch.lab = function (lch) {
63002
+ var l = lch[0];
63003
+ var c = lch[1];
63004
+ var h = lch[2];
63005
+ var hr = h / 360 * 2 * Math.PI;
63006
+ var a = c * Math.cos(hr);
63007
+ var b = c * Math.sin(hr);
63008
+ return [l, a, b];
63009
+ };
63010
+ convert.rgb.ansi16 = function (args) {
63011
+ var saturation = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
63012
+ var _args = _slicedToArray(args, 3),
63013
+ r = _args[0],
63014
+ g = _args[1],
63015
+ b = _args[2];
63016
+ var value = saturation === null ? convert.rgb.hsv(args)[2] : saturation; // Hsv -> ansi16 optimization
63017
+
63018
+ value = Math.round(value / 50);
63019
+ if (value === 0) {
63020
+ return 30;
63021
+ }
63022
+ var ansi = 30 + (Math.round(b / 255) << 2 | Math.round(g / 255) << 1 | Math.round(r / 255));
63023
+ if (value === 2) {
63024
+ ansi += 60;
62852
63025
  }
62853
- }
62854
- function _iterable_to_array(iter) {
62855
- if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
62856
- }
62857
- function _iterable_to_array_limit(arr, i) {
62858
- var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
62859
- if (_i == null) return;
62860
- var _arr = [];
62861
- var _n = true;
62862
- var _d = false;
62863
- var _s, _e;
62864
- try {
62865
- for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {
62866
- _arr.push(_s.value);
62867
- if (i && _arr.length === i) break;
63026
+ return ansi;
63027
+ };
63028
+ convert.hsv.ansi16 = function (args) {
63029
+ // Optimization here; we already know the value and don't need to get
63030
+ // it converted for us.
63031
+ return convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);
63032
+ };
63033
+ convert.rgb.ansi256 = function (args) {
63034
+ var r = args[0];
63035
+ var g = args[1];
63036
+ var b = args[2];
63037
+
63038
+ // We use the extended greyscale palette here, with the exception of
63039
+ // black and white. normal palette only has 4 greyscale shades.
63040
+ if (r === g && g === b) {
63041
+ if (r < 8) {
63042
+ return 16;
62868
63043
  }
62869
- } catch (err) {
62870
- _d = true;
62871
- _e = err;
62872
- } finally {
62873
- try {
62874
- if (!_n && _i["return"] != null) _i["return"]();
62875
- } finally {
62876
- if (_d) throw _e;
63044
+ if (r > 248) {
63045
+ return 231;
62877
63046
  }
63047
+ return Math.round((r - 8) / 247 * 24) + 232;
62878
63048
  }
62879
- return _arr;
62880
- }
62881
- function _non_iterable_rest() {
62882
- throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
62883
- }
62884
- function _non_iterable_spread() {
62885
- throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
62886
- }
62887
- function _sliced_to_array(arr, i) {
62888
- return _array_with_holes(arr) || _iterable_to_array_limit(arr, i) || _unsupported_iterable_to_array(arr, i) || _non_iterable_rest();
62889
- }
62890
- function _to_consumable_array(arr) {
62891
- return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
62892
- }
62893
- function _type_of(obj) {
62894
- "@swc/helpers - typeof";
63049
+ var ansi = 16 + 36 * Math.round(r / 255 * 5) + 6 * Math.round(g / 255 * 5) + Math.round(b / 255 * 5);
63050
+ return ansi;
63051
+ };
63052
+ convert.ansi16.rgb = function (args) {
63053
+ var color = args % 10;
62895
63054
 
62896
- return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : _typeof(obj);
62897
- }
62898
- function _unsupported_iterable_to_array(o, minLen) {
62899
- if (!o) return;
62900
- if (typeof o === "string") return _array_like_to_array(o, minLen);
62901
- var n = Object.prototype.toString.call(o).slice(8, -1);
62902
- if (n === "Object" && o.constructor) n = o.constructor.name;
62903
- if (n === "Map" || n === "Set") return Array.from(n);
62904
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
62905
- }
62906
- var colorString = __webpack_require__(/*! color-string */ "./node_modules/color-string/index.js");
62907
- var convert = __webpack_require__(/*! color-convert */ "./node_modules/color-convert/index.js");
62908
- var skippedModels = [
62909
- // To be honest, I don't really feel like keyword belongs in color convert, but eh.
62910
- "keyword",
62911
- // Gray conflicts with some method names, and has its own method defined.
62912
- "gray",
62913
- // Shouldn't really be in color-convert either...
62914
- "hex"];
62915
- var hashedModelKeys = {};
62916
- var _iteratorNormalCompletion = true,
62917
- _didIteratorError = false,
62918
- _iteratorError = undefined;
62919
- try {
62920
- for (var _iterator = Object.keys(convert)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
62921
- var model = _step.value;
62922
- hashedModelKeys[_to_consumable_array(convert[model].labels).sort().join("")] = model;
62923
- }
62924
- } catch (err) {
62925
- _didIteratorError = true;
62926
- _iteratorError = err;
62927
- } finally {
62928
- try {
62929
- if (!_iteratorNormalCompletion && _iterator.return != null) {
62930
- _iterator.return();
62931
- }
62932
- } finally {
62933
- if (_didIteratorError) {
62934
- throw _iteratorError;
63055
+ // Handle greyscale
63056
+ if (color === 0 || color === 7) {
63057
+ if (args > 50) {
63058
+ color += 3.5;
62935
63059
  }
63060
+ color = color / 10.5 * 255;
63061
+ return [color, color, color];
62936
63062
  }
62937
- }
62938
- var limiters = {};
62939
- function Color(object, model) {
62940
- if (!_instanceof(this, Color)) {
62941
- return new Color(object, model);
63063
+ var mult = (~~(args > 50) + 1) * 0.5;
63064
+ var r = (color & 1) * mult * 255;
63065
+ var g = (color >> 1 & 1) * mult * 255;
63066
+ var b = (color >> 2 & 1) * mult * 255;
63067
+ return [r, g, b];
63068
+ };
63069
+ convert.ansi256.rgb = function (args) {
63070
+ // Handle greyscale
63071
+ if (args >= 232) {
63072
+ var c = (args - 232) * 10 + 8;
63073
+ return [c, c, c];
62942
63074
  }
62943
- if (model && model in skippedModels) {
62944
- model = null;
63075
+ args -= 16;
63076
+ var rem;
63077
+ var r = Math.floor(args / 36) / 5 * 255;
63078
+ var g = Math.floor((rem = args % 36) / 6) / 5 * 255;
63079
+ var b = rem % 6 / 5 * 255;
63080
+ return [r, g, b];
63081
+ };
63082
+ convert.rgb.hex = function (args) {
63083
+ var integer = ((Math.round(args[0]) & 0xFF) << 16) + ((Math.round(args[1]) & 0xFF) << 8) + (Math.round(args[2]) & 0xFF);
63084
+ var string = integer.toString(16).toUpperCase();
63085
+ return '000000'.substring(string.length) + string;
63086
+ };
63087
+ convert.hex.rgb = function (args) {
63088
+ var match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);
63089
+ if (!match) {
63090
+ return [0, 0, 0];
62945
63091
  }
62946
- if (model && !(model in convert)) {
62947
- throw new Error("Unknown model: " + model);
63092
+ var colorString = match[0];
63093
+ if (match[0].length === 3) {
63094
+ colorString = colorString.split('').map(function (char) {
63095
+ return char + char;
63096
+ }).join('');
62948
63097
  }
62949
- var i;
62950
- var channels;
62951
- if (object == null) {
62952
- this.model = "rgb";
62953
- this.color = [0, 0, 0];
62954
- this.valpha = 1;
62955
- } else if (_instanceof(object, Color)) {
62956
- this.model = object.model;
62957
- this.color = _to_consumable_array(object.color);
62958
- this.valpha = object.valpha;
62959
- } else if (typeof object === "string") {
62960
- var result = colorString.get(object);
62961
- if (result === null) {
62962
- throw new Error("Unable to parse color from string: " + object);
62963
- }
62964
- this.model = result.model;
62965
- channels = convert[this.model].channels;
62966
- this.color = result.value.slice(0, channels);
62967
- this.valpha = typeof result.value[channels] === "number" ? result.value[channels] : 1;
62968
- } else if (object.length > 0) {
62969
- this.model = model || "rgb";
62970
- channels = convert[this.model].channels;
62971
- var newArray = Array.prototype.slice.call(object, 0, channels);
62972
- this.color = zeroArray(newArray, channels);
62973
- this.valpha = typeof object[channels] === "number" ? object[channels] : 1;
62974
- } else if (typeof object === "number") {
62975
- // This is always RGB - can be converted later on.
62976
- this.model = "rgb";
62977
- this.color = [object >> 16 & 0xFF, object >> 8 & 0xFF, object & 0xFF];
62978
- this.valpha = 1;
63098
+ var integer = parseInt(colorString, 16);
63099
+ var r = integer >> 16 & 0xFF;
63100
+ var g = integer >> 8 & 0xFF;
63101
+ var b = integer & 0xFF;
63102
+ return [r, g, b];
63103
+ };
63104
+ convert.rgb.hcg = function (rgb) {
63105
+ var r = rgb[0] / 255;
63106
+ var g = rgb[1] / 255;
63107
+ var b = rgb[2] / 255;
63108
+ var max = Math.max(Math.max(r, g), b);
63109
+ var min = Math.min(Math.min(r, g), b);
63110
+ var chroma = max - min;
63111
+ var grayscale;
63112
+ var hue;
63113
+ if (chroma < 1) {
63114
+ grayscale = min / (1 - chroma);
62979
63115
  } else {
62980
- this.valpha = 1;
62981
- var keys = Object.keys(object);
62982
- if ("alpha" in object) {
62983
- keys.splice(keys.indexOf("alpha"), 1);
62984
- this.valpha = typeof object.alpha === "number" ? object.alpha : 0;
62985
- }
62986
- var hashedKeys = keys.sort().join("");
62987
- if (!(hashedKeys in hashedModelKeys)) {
62988
- throw new Error("Unable to parse color from object: " + JSON.stringify(object));
62989
- }
62990
- this.model = hashedModelKeys[hashedKeys];
62991
- var labels = convert[this.model].labels;
62992
- var color = [];
62993
- for (i = 0; i < labels.length; i++) {
62994
- color.push(object[labels[i]]);
62995
- }
62996
- this.color = zeroArray(color);
63116
+ grayscale = 0;
62997
63117
  }
62998
- // Perform limitations (clamping, etc.)
62999
- if (limiters[this.model]) {
63000
- channels = convert[this.model].channels;
63001
- for (i = 0; i < channels; i++) {
63002
- var limit = limiters[this.model][i];
63003
- if (limit) {
63004
- this.color[i] = limit(this.color[i]);
63005
- }
63006
- }
63118
+ if (chroma <= 0) {
63119
+ hue = 0;
63120
+ } else if (max === r) {
63121
+ hue = (g - b) / chroma % 6;
63122
+ } else if (max === g) {
63123
+ hue = 2 + (b - r) / chroma;
63124
+ } else {
63125
+ hue = 4 + (r - g) / chroma;
63007
63126
  }
63008
- this.valpha = Math.max(0, Math.min(1, this.valpha));
63009
- if (Object.freeze) {
63010
- Object.freeze(this);
63127
+ hue /= 6;
63128
+ hue %= 1;
63129
+ return [hue * 360, chroma * 100, grayscale * 100];
63130
+ };
63131
+ convert.hsl.hcg = function (hsl) {
63132
+ var s = hsl[1] / 100;
63133
+ var l = hsl[2] / 100;
63134
+ var c = l < 0.5 ? 2.0 * s * l : 2.0 * s * (1.0 - l);
63135
+ var f = 0;
63136
+ if (c < 1.0) {
63137
+ f = (l - 0.5 * c) / (1.0 - c);
63011
63138
  }
63012
- }
63013
- Color.prototype = {
63014
- toString: function toString() {
63015
- return this.string();
63016
- },
63017
- toJSON: function toJSON() {
63018
- return this[this.model]();
63019
- },
63020
- string: function string(places) {
63021
- var self = this.model in colorString.to ? this : this.rgb();
63022
- self = self.round(typeof places === "number" ? places : 1);
63023
- var args = self.valpha === 1 ? self.color : _to_consumable_array(self.color).concat([this.valpha]);
63024
- return colorString.to[self.model](args);
63025
- },
63026
- percentString: function percentString(places) {
63027
- var self = this.rgb().round(typeof places === "number" ? places : 1);
63028
- var args = self.valpha === 1 ? self.color : _to_consumable_array(self.color).concat([this.valpha]);
63029
- return colorString.to.rgb.percent(args);
63030
- },
63031
- array: function array() {
63032
- return this.valpha === 1 ? _to_consumable_array(this.color) : _to_consumable_array(this.color).concat([this.valpha]);
63033
- },
63034
- object: function object() {
63035
- var result = {};
63036
- var channels = convert[this.model].channels;
63037
- var labels = convert[this.model].labels;
63038
- for (var i = 0; i < channels; i++) {
63039
- result[labels[i]] = this.color[i];
63040
- }
63041
- if (this.valpha !== 1) {
63042
- result.alpha = this.valpha;
63043
- }
63044
- return result;
63045
- },
63046
- unitArray: function unitArray() {
63047
- var rgb = this.rgb().color;
63048
- rgb[0] /= 255;
63049
- rgb[1] /= 255;
63050
- rgb[2] /= 255;
63051
- if (this.valpha !== 1) {
63052
- rgb.push(this.valpha);
63053
- }
63054
- return rgb;
63055
- },
63056
- unitObject: function unitObject() {
63057
- var rgb = this.rgb().object();
63058
- rgb.r /= 255;
63059
- rgb.g /= 255;
63060
- rgb.b /= 255;
63061
- if (this.valpha !== 1) {
63062
- rgb.alpha = this.valpha;
63063
- }
63064
- return rgb;
63065
- },
63066
- round: function round(places) {
63067
- places = Math.max(places || 0, 0);
63068
- return new Color(_to_consumable_array(this.color.map(roundToPlace(places))).concat([this.valpha]), this.model);
63069
- },
63070
- alpha: function alpha(value) {
63071
- if (value !== undefined) {
63072
- return new Color(_to_consumable_array(this.color).concat([Math.max(0, Math.min(1, value))]), this.model);
63073
- }
63074
- return this.valpha;
63075
- },
63076
- // Rgb
63077
- red: getset("rgb", 0, maxfn(255)),
63078
- green: getset("rgb", 1, maxfn(255)),
63079
- blue: getset("rgb", 2, maxfn(255)),
63080
- hue: getset(["hsl", "hsv", "hsl", "hwb", "hcg"], 0, function (value) {
63081
- return (value % 360 + 360) % 360;
63082
- }),
63083
- saturationl: getset("hsl", 1, maxfn(100)),
63084
- lightness: getset("hsl", 2, maxfn(100)),
63085
- saturationv: getset("hsv", 1, maxfn(100)),
63086
- value: getset("hsv", 2, maxfn(100)),
63087
- chroma: getset("hcg", 1, maxfn(100)),
63088
- gray: getset("hcg", 2, maxfn(100)),
63089
- white: getset("hwb", 1, maxfn(100)),
63090
- wblack: getset("hwb", 2, maxfn(100)),
63091
- cyan: getset("cmyk", 0, maxfn(100)),
63092
- magenta: getset("cmyk", 1, maxfn(100)),
63093
- yellow: getset("cmyk", 2, maxfn(100)),
63094
- black: getset("cmyk", 3, maxfn(100)),
63095
- x: getset("xyz", 0, maxfn(95.047)),
63096
- y: getset("xyz", 1, maxfn(100)),
63097
- z: getset("xyz", 2, maxfn(108.833)),
63098
- l: getset("lab", 0, maxfn(100)),
63099
- a: getset("lab", 1),
63100
- b: getset("lab", 2),
63101
- keyword: function keyword(value) {
63102
- if (value !== undefined) {
63103
- return new Color(value);
63104
- }
63105
- return convert[this.model].keyword(this.color);
63106
- },
63107
- hex: function hex(value) {
63108
- if (value !== undefined) {
63109
- return new Color(value);
63110
- }
63111
- return colorString.to.hex(this.rgb().round().color);
63112
- },
63113
- hexa: function hexa(value) {
63114
- if (value !== undefined) {
63115
- return new Color(value);
63116
- }
63117
- var rgbArray = this.rgb().round().color;
63118
- var alphaHex = Math.round(this.valpha * 255).toString(16).toUpperCase();
63119
- if (alphaHex.length === 1) {
63120
- alphaHex = "0" + alphaHex;
63121
- }
63122
- return colorString.to.hex(rgbArray) + alphaHex;
63123
- },
63124
- rgbNumber: function rgbNumber() {
63125
- var rgb = this.rgb().color;
63126
- return (rgb[0] & 0xFF) << 16 | (rgb[1] & 0xFF) << 8 | rgb[2] & 0xFF;
63127
- },
63128
- luminosity: function luminosity() {
63129
- // http://www.w3.org/TR/WCAG20/#relativeluminancedef
63130
- var rgb = this.rgb().color;
63131
- var lum = [];
63132
- var _iteratorNormalCompletion = true,
63133
- _didIteratorError = false,
63134
- _iteratorError = undefined;
63135
- try {
63136
- for (var _iterator = rgb.entries()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
63137
- var _step_value = _sliced_to_array(_step.value, 2),
63138
- i = _step_value[0],
63139
- element = _step_value[1];
63140
- var chan = element / 255;
63141
- lum[i] = chan <= 0.04045 ? chan / 12.92 : Math.pow((chan + 0.055) / 1.055, 2.4);
63142
- }
63143
- } catch (err) {
63144
- _didIteratorError = true;
63145
- _iteratorError = err;
63146
- } finally {
63147
- try {
63148
- if (!_iteratorNormalCompletion && _iterator.return != null) {
63149
- _iterator.return();
63150
- }
63151
- } finally {
63152
- if (_didIteratorError) {
63153
- throw _iteratorError;
63154
- }
63155
- }
63156
- }
63157
- return 0.2126 * lum[0] + 0.7152 * lum[1] + 0.0722 * lum[2];
63158
- },
63159
- contrast: function contrast(color2) {
63160
- // http://www.w3.org/TR/WCAG20/#contrast-ratiodef
63161
- var lum1 = this.luminosity();
63162
- var lum2 = color2.luminosity();
63163
- if (lum1 > lum2) {
63164
- return (lum1 + 0.05) / (lum2 + 0.05);
63165
- }
63166
- return (lum2 + 0.05) / (lum1 + 0.05);
63167
- },
63168
- level: function level(color2) {
63169
- // https://www.w3.org/TR/WCAG/#contrast-enhanced
63170
- var contrastRatio = this.contrast(color2);
63171
- if (contrastRatio >= 7) {
63172
- return "AAA";
63173
- }
63174
- return contrastRatio >= 4.5 ? "AA" : "";
63175
- },
63176
- isDark: function isDark() {
63177
- // YIQ equation from http://24ways.org/2010/calculating-color-contrast
63178
- var rgb = this.rgb().color;
63179
- var yiq = (rgb[0] * 2126 + rgb[1] * 7152 + rgb[2] * 722) / 10000;
63180
- return yiq < 128;
63181
- },
63182
- isLight: function isLight() {
63183
- return !this.isDark();
63184
- },
63185
- negate: function negate() {
63186
- var rgb = this.rgb();
63187
- for (var i = 0; i < 3; i++) {
63188
- rgb.color[i] = 255 - rgb.color[i];
63189
- }
63190
- return rgb;
63191
- },
63192
- lighten: function lighten(ratio) {
63193
- var hsl = this.hsl();
63194
- hsl.color[2] += hsl.color[2] * ratio;
63195
- return hsl;
63196
- },
63197
- darken: function darken(ratio) {
63198
- var hsl = this.hsl();
63199
- hsl.color[2] -= hsl.color[2] * ratio;
63200
- return hsl;
63201
- },
63202
- saturate: function saturate(ratio) {
63203
- var hsl = this.hsl();
63204
- hsl.color[1] += hsl.color[1] * ratio;
63205
- return hsl;
63206
- },
63207
- desaturate: function desaturate(ratio) {
63208
- var hsl = this.hsl();
63209
- hsl.color[1] -= hsl.color[1] * ratio;
63210
- return hsl;
63211
- },
63212
- whiten: function whiten(ratio) {
63213
- var hwb = this.hwb();
63214
- hwb.color[1] += hwb.color[1] * ratio;
63215
- return hwb;
63216
- },
63217
- blacken: function blacken(ratio) {
63218
- var hwb = this.hwb();
63219
- hwb.color[2] += hwb.color[2] * ratio;
63220
- return hwb;
63221
- },
63222
- grayscale: function grayscale() {
63223
- // http://en.wikipedia.org/wiki/Grayscale#Converting_colour_to_grayscale
63224
- var rgb = this.rgb().color;
63225
- var value = rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11;
63226
- return Color.rgb(value, value, value);
63227
- },
63228
- fade: function fade(ratio) {
63229
- return this.alpha(this.valpha - this.valpha * ratio);
63230
- },
63231
- opaquer: function opaquer(ratio) {
63232
- return this.alpha(this.valpha + this.valpha * ratio);
63233
- },
63234
- rotate: function rotate(degrees) {
63235
- var hsl = this.hsl();
63236
- var hue = hsl.color[0];
63237
- hue = (hue + degrees) % 360;
63238
- hue = hue < 0 ? 360 + hue : hue;
63239
- hsl.color[0] = hue;
63240
- return hsl;
63241
- },
63242
- mix: function mix(mixinColor, weight) {
63243
- // Ported from sass implementation in C
63244
- // https://github.com/sass/libsass/blob/0e6b4a2850092356aa3ece07c6b249f0221caced/functions.cpp#L209
63245
- if (!mixinColor || !mixinColor.rgb) {
63246
- throw new Error('Argument to "mix" was not a Color instance, but rather an instance of ' + (typeof mixinColor === "undefined" ? "undefined" : _type_of(mixinColor)));
63247
- }
63248
- var color1 = mixinColor.rgb();
63249
- var color2 = this.rgb();
63250
- var p = weight === undefined ? 0.5 : weight;
63251
- var w = 2 * p - 1;
63252
- var a = color1.alpha() - color2.alpha();
63253
- var w1 = ((w * a === -1 ? w : (w + a) / (1 + w * a)) + 1) / 2;
63254
- var w2 = 1 - w1;
63255
- return Color.rgb(w1 * color1.red() + w2 * color2.red(), w1 * color1.green() + w2 * color2.green(), w1 * color1.blue() + w2 * color2.blue(), color1.alpha() * p + color2.alpha() * (1 - p));
63139
+ return [hsl[0], c * 100, f * 100];
63140
+ };
63141
+ convert.hsv.hcg = function (hsv) {
63142
+ var s = hsv[1] / 100;
63143
+ var v = hsv[2] / 100;
63144
+ var c = s * v;
63145
+ var f = 0;
63146
+ if (c < 1.0) {
63147
+ f = (v - c) / (1 - c);
63256
63148
  }
63149
+ return [hsv[0], c * 100, f * 100];
63257
63150
  };
63258
- var _iteratorNormalCompletion1 = true,
63259
- _didIteratorError1 = false,
63260
- _iteratorError1 = undefined;
63261
- try {
63262
- var _loop = function _loop() {
63263
- var model = _step1.value;
63264
- if (skippedModels.includes(model)) {
63265
- return "continue";
63266
- }
63267
- var channels = convert[model].channels;
63268
- // Conversion methods
63269
- Color.prototype[model] = function () {
63270
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
63271
- args[_key] = arguments[_key];
63272
- }
63273
- if (this.model === model) {
63274
- return new Color(this);
63275
- }
63276
- if (args.length > 0) {
63277
- return new Color(args, model);
63278
- }
63279
- return new Color(_to_consumable_array(assertArray(convert[this.model][model].raw(this.color))).concat([this.valpha]), model);
63280
- };
63281
- // 'static' construction methods
63282
- Color[model] = function () {
63283
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
63284
- args[_key] = arguments[_key];
63285
- }
63286
- var color = args[0];
63287
- if (typeof color === "number") {
63288
- color = zeroArray(args, channels);
63289
- }
63290
- return new Color(color, model);
63291
- };
63292
- };
63293
- // Model conversion methods and static constructors
63294
- for (var _iterator1 = Object.keys(convert)[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) _loop();
63295
- } catch (err) {
63296
- _didIteratorError1 = true;
63297
- _iteratorError1 = err;
63298
- } finally {
63299
- try {
63300
- if (!_iteratorNormalCompletion1 && _iterator1.return != null) {
63301
- _iterator1.return();
63151
+ convert.hcg.rgb = function (hcg) {
63152
+ var h = hcg[0] / 360;
63153
+ var c = hcg[1] / 100;
63154
+ var g = hcg[2] / 100;
63155
+ if (c === 0.0) {
63156
+ return [g * 255, g * 255, g * 255];
63157
+ }
63158
+ var pure = [0, 0, 0];
63159
+ var hi = h % 1 * 6;
63160
+ var v = hi % 1;
63161
+ var w = 1 - v;
63162
+ var mg = 0;
63163
+
63164
+ /* eslint-disable max-statements-per-line */
63165
+ switch (Math.floor(hi)) {
63166
+ case 0:
63167
+ pure[0] = 1;
63168
+ pure[1] = v;
63169
+ pure[2] = 0;
63170
+ break;
63171
+ case 1:
63172
+ pure[0] = w;
63173
+ pure[1] = 1;
63174
+ pure[2] = 0;
63175
+ break;
63176
+ case 2:
63177
+ pure[0] = 0;
63178
+ pure[1] = 1;
63179
+ pure[2] = v;
63180
+ break;
63181
+ case 3:
63182
+ pure[0] = 0;
63183
+ pure[1] = w;
63184
+ pure[2] = 1;
63185
+ break;
63186
+ case 4:
63187
+ pure[0] = v;
63188
+ pure[1] = 0;
63189
+ pure[2] = 1;
63190
+ break;
63191
+ default:
63192
+ pure[0] = 1;
63193
+ pure[1] = 0;
63194
+ pure[2] = w;
63195
+ }
63196
+ /* eslint-enable max-statements-per-line */
63197
+
63198
+ mg = (1.0 - c) * g;
63199
+ return [(c * pure[0] + mg) * 255, (c * pure[1] + mg) * 255, (c * pure[2] + mg) * 255];
63200
+ };
63201
+ convert.hcg.hsv = function (hcg) {
63202
+ var c = hcg[1] / 100;
63203
+ var g = hcg[2] / 100;
63204
+ var v = c + g * (1.0 - c);
63205
+ var f = 0;
63206
+ if (v > 0.0) {
63207
+ f = c / v;
63208
+ }
63209
+ return [hcg[0], f * 100, v * 100];
63210
+ };
63211
+ convert.hcg.hsl = function (hcg) {
63212
+ var c = hcg[1] / 100;
63213
+ var g = hcg[2] / 100;
63214
+ var l = g * (1.0 - c) + 0.5 * c;
63215
+ var s = 0;
63216
+ if (l > 0.0 && l < 0.5) {
63217
+ s = c / (2 * l);
63218
+ } else if (l >= 0.5 && l < 1.0) {
63219
+ s = c / (2 * (1 - l));
63220
+ }
63221
+ return [hcg[0], s * 100, l * 100];
63222
+ };
63223
+ convert.hcg.hwb = function (hcg) {
63224
+ var c = hcg[1] / 100;
63225
+ var g = hcg[2] / 100;
63226
+ var v = c + g * (1.0 - c);
63227
+ return [hcg[0], (v - c) * 100, (1 - v) * 100];
63228
+ };
63229
+ convert.hwb.hcg = function (hwb) {
63230
+ var w = hwb[1] / 100;
63231
+ var b = hwb[2] / 100;
63232
+ var v = 1 - b;
63233
+ var c = v - w;
63234
+ var g = 0;
63235
+ if (c < 1) {
63236
+ g = (v - c) / (1 - c);
63237
+ }
63238
+ return [hwb[0], c * 100, g * 100];
63239
+ };
63240
+ convert.apple.rgb = function (apple) {
63241
+ return [apple[0] / 65535 * 255, apple[1] / 65535 * 255, apple[2] / 65535 * 255];
63242
+ };
63243
+ convert.rgb.apple = function (rgb) {
63244
+ return [rgb[0] / 255 * 65535, rgb[1] / 255 * 65535, rgb[2] / 255 * 65535];
63245
+ };
63246
+ convert.gray.rgb = function (args) {
63247
+ return [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];
63248
+ };
63249
+ convert.gray.hsl = function (args) {
63250
+ return [0, 0, args[0]];
63251
+ };
63252
+ convert.gray.hsv = convert.gray.hsl;
63253
+ convert.gray.hwb = function (gray) {
63254
+ return [0, 100, gray[0]];
63255
+ };
63256
+ convert.gray.cmyk = function (gray) {
63257
+ return [0, 0, 0, gray[0]];
63258
+ };
63259
+ convert.gray.lab = function (gray) {
63260
+ return [gray[0], 0, 0];
63261
+ };
63262
+ convert.gray.hex = function (gray) {
63263
+ var val = Math.round(gray[0] / 100 * 255) & 0xFF;
63264
+ var integer = (val << 16) + (val << 8) + val;
63265
+ var string = integer.toString(16).toUpperCase();
63266
+ return '000000'.substring(string.length) + string;
63267
+ };
63268
+ convert.rgb.gray = function (rgb) {
63269
+ var val = (rgb[0] + rgb[1] + rgb[2]) / 3;
63270
+ return [val / 255 * 100];
63271
+ };
63272
+
63273
+ /***/ }),
63274
+
63275
+ /***/ "./node_modules/color/node_modules/color-convert/index.js":
63276
+ /*!****************************************************************!*\
63277
+ !*** ./node_modules/color/node_modules/color-convert/index.js ***!
63278
+ \****************************************************************/
63279
+ /*! no static exports found */
63280
+ /***/ (function(module, exports, __webpack_require__) {
63281
+
63282
+ var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "./node_modules/@babel/runtime/helpers/typeof.js");
63283
+ var conversions = __webpack_require__(/*! ./conversions */ "./node_modules/color/node_modules/color-convert/conversions.js");
63284
+ var route = __webpack_require__(/*! ./route */ "./node_modules/color/node_modules/color-convert/route.js");
63285
+ var convert = {};
63286
+ var models = Object.keys(conversions);
63287
+ function wrapRaw(fn) {
63288
+ var wrappedFn = function wrappedFn() {
63289
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
63290
+ args[_key] = arguments[_key];
63302
63291
  }
63303
- } finally {
63304
- if (_didIteratorError1) {
63305
- throw _iteratorError1;
63292
+ var arg0 = args[0];
63293
+ if (arg0 === undefined || arg0 === null) {
63294
+ return arg0;
63306
63295
  }
63307
- }
63308
- }
63309
- function roundTo(number, places) {
63310
- return Number(number.toFixed(places));
63311
- }
63312
- function roundToPlace(places) {
63313
- return function (number) {
63314
- return roundTo(number, places);
63296
+ if (arg0.length > 1) {
63297
+ args = arg0;
63298
+ }
63299
+ return fn(args);
63315
63300
  };
63301
+
63302
+ // Preserve .conversion property if there is one
63303
+ if ('conversion' in fn) {
63304
+ wrappedFn.conversion = fn.conversion;
63305
+ }
63306
+ return wrappedFn;
63316
63307
  }
63317
- function getset(model, channel, modifier) {
63318
- model = Array.isArray(model) ? model : [model];
63319
- var _iteratorNormalCompletion = true,
63320
- _didIteratorError = false,
63321
- _iteratorError = undefined;
63322
- try {
63323
- for (var _iterator = model[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
63324
- var m = _step.value;
63325
- (limiters[m] || (limiters[m] = []))[channel] = modifier;
63308
+ function wrapRounded(fn) {
63309
+ var wrappedFn = function wrappedFn() {
63310
+ for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
63311
+ args[_key2] = arguments[_key2];
63326
63312
  }
63327
- } catch (err) {
63328
- _didIteratorError = true;
63329
- _iteratorError = err;
63330
- } finally {
63331
- try {
63332
- if (!_iteratorNormalCompletion && _iterator.return != null) {
63333
- _iterator.return();
63334
- }
63335
- } finally {
63336
- if (_didIteratorError) {
63337
- throw _iteratorError;
63338
- }
63313
+ var arg0 = args[0];
63314
+ if (arg0 === undefined || arg0 === null) {
63315
+ return arg0;
63339
63316
  }
63340
- }
63341
- model = model[0];
63342
- return function (value) {
63343
- var result;
63344
- if (value !== undefined) {
63345
- if (modifier) {
63346
- value = modifier(value);
63347
- }
63348
- result = this[model]();
63349
- result.color[channel] = value;
63350
- return result;
63317
+ if (arg0.length > 1) {
63318
+ args = arg0;
63351
63319
  }
63352
- result = this[model]().color[channel];
63353
- if (modifier) {
63354
- result = modifier(result);
63320
+ var result = fn(args);
63321
+
63322
+ // We're assuming the result is an array here.
63323
+ // see notice in conversions.js; don't use box types
63324
+ // in conversion functions.
63325
+ if (_typeof(result) === 'object') {
63326
+ for (var len = result.length, i = 0; i < len; i++) {
63327
+ result[i] = Math.round(result[i]);
63328
+ }
63355
63329
  }
63356
63330
  return result;
63357
63331
  };
63358
- }
63359
- function maxfn(max) {
63360
- return function (v) {
63361
- return Math.max(0, Math.min(max, v));
63362
- };
63363
- }
63364
- function assertArray(value) {
63365
- return Array.isArray(value) ? value : [value];
63366
- }
63367
- function zeroArray(array, length) {
63368
- for (var i = 0; i < length; i++) {
63369
- if (typeof array[i] !== "number") {
63370
- array[i] = 0;
63371
- }
63332
+
63333
+ // Preserve .conversion property if there is one
63334
+ if ('conversion' in fn) {
63335
+ wrappedFn.conversion = fn.conversion;
63372
63336
  }
63373
- return array;
63337
+ return wrappedFn;
63374
63338
  }
63375
- module.exports = Color;
63339
+ models.forEach(function (fromModel) {
63340
+ convert[fromModel] = {};
63341
+ Object.defineProperty(convert[fromModel], 'channels', {
63342
+ value: conversions[fromModel].channels
63343
+ });
63344
+ Object.defineProperty(convert[fromModel], 'labels', {
63345
+ value: conversions[fromModel].labels
63346
+ });
63347
+ var routes = route(fromModel);
63348
+ var routeModels = Object.keys(routes);
63349
+ routeModels.forEach(function (toModel) {
63350
+ var fn = routes[toModel];
63351
+ convert[fromModel][toModel] = wrapRounded(fn);
63352
+ convert[fromModel][toModel].raw = wrapRaw(fn);
63353
+ });
63354
+ });
63355
+ module.exports = convert;
63376
63356
 
63377
63357
  /***/ }),
63378
63358
 
63379
- /***/ "./node_modules/color-name/index.js":
63380
- /*!******************************************!*\
63381
- !*** ./node_modules/color-name/index.js ***!
63382
- \******************************************/
63359
+ /***/ "./node_modules/color/node_modules/color-convert/route.js":
63360
+ /*!****************************************************************!*\
63361
+ !*** ./node_modules/color/node_modules/color-convert/route.js ***!
63362
+ \****************************************************************/
63383
63363
  /*! no static exports found */
63384
63364
  /***/ (function(module, exports, __webpack_require__) {
63385
63365
 
63386
- "use strict";
63366
+ var conversions = __webpack_require__(/*! ./conversions */ "./node_modules/color/node_modules/color-convert/conversions.js");
63387
63367
 
63368
+ /*
63369
+ This function routes a model to all other models.
63388
63370
 
63389
- module.exports = {
63390
- "aliceblue": [240, 248, 255],
63391
- "antiquewhite": [250, 235, 215],
63392
- "aqua": [0, 255, 255],
63393
- "aquamarine": [127, 255, 212],
63394
- "azure": [240, 255, 255],
63395
- "beige": [245, 245, 220],
63396
- "bisque": [255, 228, 196],
63397
- "black": [0, 0, 0],
63398
- "blanchedalmond": [255, 235, 205],
63399
- "blue": [0, 0, 255],
63400
- "blueviolet": [138, 43, 226],
63401
- "brown": [165, 42, 42],
63402
- "burlywood": [222, 184, 135],
63403
- "cadetblue": [95, 158, 160],
63404
- "chartreuse": [127, 255, 0],
63405
- "chocolate": [210, 105, 30],
63406
- "coral": [255, 127, 80],
63407
- "cornflowerblue": [100, 149, 237],
63408
- "cornsilk": [255, 248, 220],
63409
- "crimson": [220, 20, 60],
63410
- "cyan": [0, 255, 255],
63411
- "darkblue": [0, 0, 139],
63412
- "darkcyan": [0, 139, 139],
63413
- "darkgoldenrod": [184, 134, 11],
63414
- "darkgray": [169, 169, 169],
63415
- "darkgreen": [0, 100, 0],
63416
- "darkgrey": [169, 169, 169],
63417
- "darkkhaki": [189, 183, 107],
63418
- "darkmagenta": [139, 0, 139],
63419
- "darkolivegreen": [85, 107, 47],
63420
- "darkorange": [255, 140, 0],
63421
- "darkorchid": [153, 50, 204],
63422
- "darkred": [139, 0, 0],
63423
- "darksalmon": [233, 150, 122],
63424
- "darkseagreen": [143, 188, 143],
63425
- "darkslateblue": [72, 61, 139],
63426
- "darkslategray": [47, 79, 79],
63427
- "darkslategrey": [47, 79, 79],
63428
- "darkturquoise": [0, 206, 209],
63429
- "darkviolet": [148, 0, 211],
63430
- "deeppink": [255, 20, 147],
63431
- "deepskyblue": [0, 191, 255],
63432
- "dimgray": [105, 105, 105],
63433
- "dimgrey": [105, 105, 105],
63434
- "dodgerblue": [30, 144, 255],
63435
- "firebrick": [178, 34, 34],
63436
- "floralwhite": [255, 250, 240],
63437
- "forestgreen": [34, 139, 34],
63438
- "fuchsia": [255, 0, 255],
63439
- "gainsboro": [220, 220, 220],
63440
- "ghostwhite": [248, 248, 255],
63441
- "gold": [255, 215, 0],
63442
- "goldenrod": [218, 165, 32],
63443
- "gray": [128, 128, 128],
63444
- "green": [0, 128, 0],
63445
- "greenyellow": [173, 255, 47],
63446
- "grey": [128, 128, 128],
63447
- "honeydew": [240, 255, 240],
63448
- "hotpink": [255, 105, 180],
63449
- "indianred": [205, 92, 92],
63450
- "indigo": [75, 0, 130],
63451
- "ivory": [255, 255, 240],
63452
- "khaki": [240, 230, 140],
63453
- "lavender": [230, 230, 250],
63454
- "lavenderblush": [255, 240, 245],
63455
- "lawngreen": [124, 252, 0],
63456
- "lemonchiffon": [255, 250, 205],
63457
- "lightblue": [173, 216, 230],
63458
- "lightcoral": [240, 128, 128],
63459
- "lightcyan": [224, 255, 255],
63460
- "lightgoldenrodyellow": [250, 250, 210],
63461
- "lightgray": [211, 211, 211],
63462
- "lightgreen": [144, 238, 144],
63463
- "lightgrey": [211, 211, 211],
63464
- "lightpink": [255, 182, 193],
63465
- "lightsalmon": [255, 160, 122],
63466
- "lightseagreen": [32, 178, 170],
63467
- "lightskyblue": [135, 206, 250],
63468
- "lightslategray": [119, 136, 153],
63469
- "lightslategrey": [119, 136, 153],
63470
- "lightsteelblue": [176, 196, 222],
63471
- "lightyellow": [255, 255, 224],
63472
- "lime": [0, 255, 0],
63473
- "limegreen": [50, 205, 50],
63474
- "linen": [250, 240, 230],
63475
- "magenta": [255, 0, 255],
63476
- "maroon": [128, 0, 0],
63477
- "mediumaquamarine": [102, 205, 170],
63478
- "mediumblue": [0, 0, 205],
63479
- "mediumorchid": [186, 85, 211],
63480
- "mediumpurple": [147, 112, 219],
63481
- "mediumseagreen": [60, 179, 113],
63482
- "mediumslateblue": [123, 104, 238],
63483
- "mediumspringgreen": [0, 250, 154],
63484
- "mediumturquoise": [72, 209, 204],
63485
- "mediumvioletred": [199, 21, 133],
63486
- "midnightblue": [25, 25, 112],
63487
- "mintcream": [245, 255, 250],
63488
- "mistyrose": [255, 228, 225],
63489
- "moccasin": [255, 228, 181],
63490
- "navajowhite": [255, 222, 173],
63491
- "navy": [0, 0, 128],
63492
- "oldlace": [253, 245, 230],
63493
- "olive": [128, 128, 0],
63494
- "olivedrab": [107, 142, 35],
63495
- "orange": [255, 165, 0],
63496
- "orangered": [255, 69, 0],
63497
- "orchid": [218, 112, 214],
63498
- "palegoldenrod": [238, 232, 170],
63499
- "palegreen": [152, 251, 152],
63500
- "paleturquoise": [175, 238, 238],
63501
- "palevioletred": [219, 112, 147],
63502
- "papayawhip": [255, 239, 213],
63503
- "peachpuff": [255, 218, 185],
63504
- "peru": [205, 133, 63],
63505
- "pink": [255, 192, 203],
63506
- "plum": [221, 160, 221],
63507
- "powderblue": [176, 224, 230],
63508
- "purple": [128, 0, 128],
63509
- "rebeccapurple": [102, 51, 153],
63510
- "red": [255, 0, 0],
63511
- "rosybrown": [188, 143, 143],
63512
- "royalblue": [65, 105, 225],
63513
- "saddlebrown": [139, 69, 19],
63514
- "salmon": [250, 128, 114],
63515
- "sandybrown": [244, 164, 96],
63516
- "seagreen": [46, 139, 87],
63517
- "seashell": [255, 245, 238],
63518
- "sienna": [160, 82, 45],
63519
- "silver": [192, 192, 192],
63520
- "skyblue": [135, 206, 235],
63521
- "slateblue": [106, 90, 205],
63522
- "slategray": [112, 128, 144],
63523
- "slategrey": [112, 128, 144],
63524
- "snow": [255, 250, 250],
63525
- "springgreen": [0, 255, 127],
63526
- "steelblue": [70, 130, 180],
63527
- "tan": [210, 180, 140],
63528
- "teal": [0, 128, 128],
63529
- "thistle": [216, 191, 216],
63530
- "tomato": [255, 99, 71],
63531
- "turquoise": [64, 224, 208],
63532
- "violet": [238, 130, 238],
63533
- "wheat": [245, 222, 179],
63534
- "white": [255, 255, 255],
63535
- "whitesmoke": [245, 245, 245],
63536
- "yellow": [255, 255, 0],
63537
- "yellowgreen": [154, 205, 50]
63538
- };
63371
+ all functions that are routed have a property `.conversion` attached
63372
+ to the returned synthetic function. This property is an array
63373
+ of strings, each with the steps in between the 'from' and 'to'
63374
+ color models (inclusive).
63539
63375
 
63540
- /***/ }),
63376
+ conversions that are not possible simply are not included.
63377
+ */
63541
63378
 
63542
- /***/ "./node_modules/color-string/index.js":
63543
- /*!********************************************!*\
63544
- !*** ./node_modules/color-string/index.js ***!
63545
- \********************************************/
63546
- /*! no static exports found */
63547
- /***/ (function(module, exports, __webpack_require__) {
63379
+ function buildGraph() {
63380
+ var graph = {};
63381
+ // https://jsperf.com/object-keys-vs-for-in-with-closure/3
63382
+ var models = Object.keys(conversions);
63383
+ for (var len = models.length, i = 0; i < len; i++) {
63384
+ graph[models[i]] = {
63385
+ // http://jsperf.com/1-vs-infinity
63386
+ // micro-opt, but this is simple.
63387
+ distance: -1,
63388
+ parent: null
63389
+ };
63390
+ }
63391
+ return graph;
63392
+ }
63548
63393
 
63549
- /* MIT license */
63550
- var colorNames = __webpack_require__(/*! color-name */ "./node_modules/color-name/index.js");
63551
- var swizzle = __webpack_require__(/*! simple-swizzle */ "./node_modules/simple-swizzle/index.js");
63552
- var hasOwnProperty = Object.hasOwnProperty;
63553
- var reverseNames = Object.create(null);
63394
+ // https://en.wikipedia.org/wiki/Breadth-first_search
63395
+ function deriveBFS(fromModel) {
63396
+ var graph = buildGraph();
63397
+ var queue = [fromModel]; // Unshift -> queue -> pop
63554
63398
 
63555
- // create a list of reverse color names
63556
- for (var name in colorNames) {
63557
- if (hasOwnProperty.call(colorNames, name)) {
63558
- reverseNames[colorNames[name]] = name;
63399
+ graph[fromModel].distance = 0;
63400
+ while (queue.length) {
63401
+ var current = queue.pop();
63402
+ var adjacents = Object.keys(conversions[current]);
63403
+ for (var len = adjacents.length, i = 0; i < len; i++) {
63404
+ var adjacent = adjacents[i];
63405
+ var node = graph[adjacent];
63406
+ if (node.distance === -1) {
63407
+ node.distance = graph[current].distance + 1;
63408
+ node.parent = current;
63409
+ queue.unshift(adjacent);
63410
+ }
63411
+ }
63559
63412
  }
63413
+ return graph;
63560
63414
  }
63561
- var cs = module.exports = {
63562
- to: {},
63563
- get: {}
63564
- };
63565
- cs.get = function (string) {
63566
- var prefix = string.substring(0, 3).toLowerCase();
63567
- var val;
63568
- var model;
63569
- switch (prefix) {
63570
- case 'hsl':
63571
- val = cs.get.hsl(string);
63572
- model = 'hsl';
63573
- break;
63574
- case 'hwb':
63575
- val = cs.get.hwb(string);
63576
- model = 'hwb';
63577
- break;
63578
- default:
63579
- val = cs.get.rgb(string);
63580
- model = 'rgb';
63581
- break;
63582
- }
63583
- if (!val) {
63584
- return null;
63585
- }
63586
- return {
63587
- model: model,
63588
- value: val
63415
+ function link(from, to) {
63416
+ return function (args) {
63417
+ return to(from(args));
63589
63418
  };
63590
- };
63591
- cs.get.rgb = function (string) {
63592
- if (!string) {
63593
- return null;
63419
+ }
63420
+ function wrapConversion(toModel, graph) {
63421
+ var path = [graph[toModel].parent, toModel];
63422
+ var fn = conversions[graph[toModel].parent][toModel];
63423
+ var cur = graph[toModel].parent;
63424
+ while (graph[cur].parent) {
63425
+ path.unshift(graph[cur].parent);
63426
+ fn = link(conversions[graph[cur].parent][cur], fn);
63427
+ cur = graph[cur].parent;
63594
63428
  }
63595
- var abbr = /^#([a-f0-9]{3,4})$/i;
63596
- var hex = /^#([a-f0-9]{6})([a-f0-9]{2})?$/i;
63597
- var rgba = /^rgba?\(\s*([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)\s*(?:[,|\/]\s*([+-]?[\d\.]+)(%?)\s*)?\)$/;
63598
- var per = /^rgba?\(\s*([+-]?[\d\.]+)\%\s*,?\s*([+-]?[\d\.]+)\%\s*,?\s*([+-]?[\d\.]+)\%\s*(?:[,|\/]\s*([+-]?[\d\.]+)(%?)\s*)?\)$/;
63599
- var keyword = /^(\w+)$/;
63600
- var rgb = [0, 0, 0, 1];
63601
- var match;
63602
- var i;
63603
- var hexAlpha;
63604
- if (match = string.match(hex)) {
63605
- hexAlpha = match[2];
63606
- match = match[1];
63607
- for (i = 0; i < 3; i++) {
63608
- // https://jsperf.com/slice-vs-substr-vs-substring-methods-long-string/19
63609
- var i2 = i * 2;
63610
- rgb[i] = parseInt(match.slice(i2, i2 + 2), 16);
63611
- }
63612
- if (hexAlpha) {
63613
- rgb[3] = parseInt(hexAlpha, 16) / 255;
63614
- }
63615
- } else if (match = string.match(abbr)) {
63616
- match = match[1];
63617
- hexAlpha = match[3];
63618
- for (i = 0; i < 3; i++) {
63619
- rgb[i] = parseInt(match[i] + match[i], 16);
63620
- }
63621
- if (hexAlpha) {
63622
- rgb[3] = parseInt(hexAlpha + hexAlpha, 16) / 255;
63623
- }
63624
- } else if (match = string.match(rgba)) {
63625
- for (i = 0; i < 3; i++) {
63626
- rgb[i] = parseInt(match[i + 1], 0);
63627
- }
63628
- if (match[4]) {
63629
- if (match[5]) {
63630
- rgb[3] = parseFloat(match[4]) * 0.01;
63631
- } else {
63632
- rgb[3] = parseFloat(match[4]);
63633
- }
63634
- }
63635
- } else if (match = string.match(per)) {
63636
- for (i = 0; i < 3; i++) {
63637
- rgb[i] = Math.round(parseFloat(match[i + 1]) * 2.55);
63638
- }
63639
- if (match[4]) {
63640
- if (match[5]) {
63641
- rgb[3] = parseFloat(match[4]) * 0.01;
63642
- } else {
63643
- rgb[3] = parseFloat(match[4]);
63644
- }
63645
- }
63646
- } else if (match = string.match(keyword)) {
63647
- if (match[1] === 'transparent') {
63648
- return [0, 0, 0, 0];
63649
- }
63650
- if (!hasOwnProperty.call(colorNames, match[1])) {
63651
- return null;
63429
+ fn.conversion = path;
63430
+ return fn;
63431
+ }
63432
+ module.exports = function (fromModel) {
63433
+ var graph = deriveBFS(fromModel);
63434
+ var conversion = {};
63435
+ var models = Object.keys(graph);
63436
+ for (var len = models.length, i = 0; i < len; i++) {
63437
+ var toModel = models[i];
63438
+ var node = graph[toModel];
63439
+ if (node.parent === null) {
63440
+ // No possible conversion, or this node is the source model.
63441
+ continue;
63652
63442
  }
63653
- rgb = colorNames[match[1]];
63654
- rgb[3] = 1;
63655
- return rgb;
63656
- } else {
63657
- return null;
63658
- }
63659
- for (i = 0; i < 3; i++) {
63660
- rgb[i] = clamp(rgb[i], 0, 255);
63661
- }
63662
- rgb[3] = clamp(rgb[3], 0, 1);
63663
- return rgb;
63664
- };
63665
- cs.get.hsl = function (string) {
63666
- if (!string) {
63667
- return null;
63668
- }
63669
- var hsl = /^hsla?\(\s*([+-]?(?:\d{0,3}\.)?\d+)(?:deg)?\s*,?\s*([+-]?[\d\.]+)%\s*,?\s*([+-]?[\d\.]+)%\s*(?:[,|\/]\s*([+-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:[eE][+-]?\d+)?)\s*)?\)$/;
63670
- var match = string.match(hsl);
63671
- if (match) {
63672
- var alpha = parseFloat(match[4]);
63673
- var h = (parseFloat(match[1]) % 360 + 360) % 360;
63674
- var s = clamp(parseFloat(match[2]), 0, 100);
63675
- var l = clamp(parseFloat(match[3]), 0, 100);
63676
- var a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);
63677
- return [h, s, l, a];
63678
- }
63679
- return null;
63680
- };
63681
- cs.get.hwb = function (string) {
63682
- if (!string) {
63683
- return null;
63684
- }
63685
- var hwb = /^hwb\(\s*([+-]?\d{0,3}(?:\.\d+)?)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:[eE][+-]?\d+)?)\s*)?\)$/;
63686
- var match = string.match(hwb);
63687
- if (match) {
63688
- var alpha = parseFloat(match[4]);
63689
- var h = (parseFloat(match[1]) % 360 + 360) % 360;
63690
- var w = clamp(parseFloat(match[2]), 0, 100);
63691
- var b = clamp(parseFloat(match[3]), 0, 100);
63692
- var a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);
63693
- return [h, w, b, a];
63694
- }
63695
- return null;
63696
- };
63697
- cs.to.hex = function () {
63698
- var rgba = swizzle(arguments);
63699
- return '#' + hexDouble(rgba[0]) + hexDouble(rgba[1]) + hexDouble(rgba[2]) + (rgba[3] < 1 ? hexDouble(Math.round(rgba[3] * 255)) : '');
63700
- };
63701
- cs.to.rgb = function () {
63702
- var rgba = swizzle(arguments);
63703
- return rgba.length < 4 || rgba[3] === 1 ? 'rgb(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ')' : 'rgba(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ', ' + rgba[3] + ')';
63704
- };
63705
- cs.to.rgb.percent = function () {
63706
- var rgba = swizzle(arguments);
63707
- var r = Math.round(rgba[0] / 255 * 100);
63708
- var g = Math.round(rgba[1] / 255 * 100);
63709
- var b = Math.round(rgba[2] / 255 * 100);
63710
- return rgba.length < 4 || rgba[3] === 1 ? 'rgb(' + r + '%, ' + g + '%, ' + b + '%)' : 'rgba(' + r + '%, ' + g + '%, ' + b + '%, ' + rgba[3] + ')';
63711
- };
63712
- cs.to.hsl = function () {
63713
- var hsla = swizzle(arguments);
63714
- return hsla.length < 4 || hsla[3] === 1 ? 'hsl(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%)' : 'hsla(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%, ' + hsla[3] + ')';
63715
- };
63716
-
63717
- // hwb is a bit different than rgb(a) & hsl(a) since there is no alpha specific syntax
63718
- // (hwb have alpha optional & 1 is default value)
63719
- cs.to.hwb = function () {
63720
- var hwba = swizzle(arguments);
63721
- var a = '';
63722
- if (hwba.length >= 4 && hwba[3] !== 1) {
63723
- a = ', ' + hwba[3];
63443
+ conversion[toModel] = wrapConversion(toModel, graph);
63724
63444
  }
63725
- return 'hwb(' + hwba[0] + ', ' + hwba[1] + '%, ' + hwba[2] + '%' + a + ')';
63726
- };
63727
- cs.to.keyword = function (rgb) {
63728
- return reverseNames[rgb.slice(0, 3)];
63445
+ return conversion;
63729
63446
  };
63730
63447
 
63731
- // helpers
63732
- function clamp(num, min, max) {
63733
- return Math.min(Math.max(min, num), max);
63734
- }
63735
- function hexDouble(num) {
63736
- var str = Math.round(num).toString(16).toUpperCase();
63737
- return str.length < 2 ? '0' + str : str;
63738
- }
63739
-
63740
63448
  /***/ }),
63741
63449
 
63742
63450
  /***/ "./node_modules/core-js-pure/actual/array/from.js":