@@ -10,3 +10,3 @@ (function webpackUniversalModuleDefinition(root, factory) { | ||
root["MooColor"] = factory(); | ||
})(typeof self !== 'undefined' ? self : this, function() { | ||
})(this, function() { | ||
return /******/ (function(modules) { // webpackBootstrap | ||
@@ -58,2 +58,7 @@ /******/ // The module cache | ||
/******/ | ||
/******/ // define __esModule on exports | ||
/******/ __webpack_require__.r = function(exports) { | ||
/******/ Object.defineProperty(exports, '__esModule', { value: true }); | ||
/******/ }; | ||
/******/ | ||
/******/ // getDefaultExport function for compatibility with non-harmony modules | ||
@@ -74,81 +79,196 @@ /******/ __webpack_require__.n = function(module) { | ||
/******/ | ||
/******/ | ||
/******/ // Load entry module and return exports | ||
/******/ return __webpack_require__(__webpack_require__.s = 3); | ||
/******/ return __webpack_require__(__webpack_require__.s = "./src/moo-color.ts"); | ||
/******/ }) | ||
/************************************************************************/ | ||
/******/ ([ | ||
/* 0 */ | ||
/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
/******/ ({ | ||
/***/ "./node_modules/color-name/index.js": | ||
/*!******************************************!*\ | ||
!*** ./node_modules/color-name/index.js ***! | ||
\******************************************/ | ||
/*! no static exports found */ | ||
/***/ (function(module, exports, __webpack_require__) { | ||
"use strict"; | ||
/* harmony export (immutable) */ __webpack_exports__["f"] = padStart; | ||
/* unused harmony export padEnd */ | ||
/* harmony export (immutable) */ __webpack_exports__["b"] = clamp; | ||
/* harmony export (immutable) */ __webpack_exports__["d"] = degree; | ||
/* harmony export (immutable) */ __webpack_exports__["g"] = resolveAlpha; | ||
/* harmony export (immutable) */ __webpack_exports__["c"] = decimal; | ||
/* harmony export (immutable) */ __webpack_exports__["e"] = getRandom; | ||
/* harmony export (immutable) */ __webpack_exports__["a"] = arrayIsEqual; | ||
function padStart(str, length, chars) { | ||
var space = length - str.length; | ||
return space > 0 ? "" + makePad(chars, space) + str : str; | ||
} | ||
function padEnd(str, length, chars) { | ||
var space = length - str.length; | ||
return space > 0 ? "" + str + makePad(chars, space) : str; | ||
} | ||
function makePad(chars, limit) { | ||
while (chars.length < limit) { | ||
chars += chars; | ||
} | ||
return chars.length > limit ? chars.substring(chars.length - limit) : chars; | ||
} | ||
function clamp(num, min, max) { | ||
return Math.min(Math.max(min, num), max); | ||
} | ||
function degree(num) { | ||
num = typeof num === 'string' ? parseFloat(num) : num; | ||
return (num % 360 + 360) % 360; | ||
} | ||
function resolveAlpha(a) { | ||
a = typeof a === 'string' ? parseFloat(a) : a; | ||
return clamp(isNaN(a) ? 1 : a, 0, 1); | ||
} | ||
// @see: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/round | ||
function decimal(num, precision) { | ||
var factor = Math.pow(10, precision); | ||
return Math.round(num * factor) / factor; | ||
} | ||
function getRandom(min, max, precision) { | ||
if (precision === void 0) { precision = 0; } | ||
var num = Math.random() * (max - min) + min; | ||
return decimal(num, precision); | ||
} | ||
// https://stackoverflow.com/questions/7837456/how-to-compare-arrays-in-javascript#answer-19746771 | ||
function arrayIsEqual(arr1, arr2) { | ||
return arr1.length === arr2.length && arr1.every(function (v, i) { | ||
return Array.isArray(v) ? arrayIsEqual(v, arr2[i]) : v === arr2[i]; | ||
}); | ||
} | ||
module.exports = { | ||
"aliceblue": [240, 248, 255], | ||
"antiquewhite": [250, 235, 215], | ||
"aqua": [0, 255, 255], | ||
"aquamarine": [127, 255, 212], | ||
"azure": [240, 255, 255], | ||
"beige": [245, 245, 220], | ||
"bisque": [255, 228, 196], | ||
"black": [0, 0, 0], | ||
"blanchedalmond": [255, 235, 205], | ||
"blue": [0, 0, 255], | ||
"blueviolet": [138, 43, 226], | ||
"brown": [165, 42, 42], | ||
"burlywood": [222, 184, 135], | ||
"cadetblue": [95, 158, 160], | ||
"chartreuse": [127, 255, 0], | ||
"chocolate": [210, 105, 30], | ||
"coral": [255, 127, 80], | ||
"cornflowerblue": [100, 149, 237], | ||
"cornsilk": [255, 248, 220], | ||
"crimson": [220, 20, 60], | ||
"cyan": [0, 255, 255], | ||
"darkblue": [0, 0, 139], | ||
"darkcyan": [0, 139, 139], | ||
"darkgoldenrod": [184, 134, 11], | ||
"darkgray": [169, 169, 169], | ||
"darkgreen": [0, 100, 0], | ||
"darkgrey": [169, 169, 169], | ||
"darkkhaki": [189, 183, 107], | ||
"darkmagenta": [139, 0, 139], | ||
"darkolivegreen": [85, 107, 47], | ||
"darkorange": [255, 140, 0], | ||
"darkorchid": [153, 50, 204], | ||
"darkred": [139, 0, 0], | ||
"darksalmon": [233, 150, 122], | ||
"darkseagreen": [143, 188, 143], | ||
"darkslateblue": [72, 61, 139], | ||
"darkslategray": [47, 79, 79], | ||
"darkslategrey": [47, 79, 79], | ||
"darkturquoise": [0, 206, 209], | ||
"darkviolet": [148, 0, 211], | ||
"deeppink": [255, 20, 147], | ||
"deepskyblue": [0, 191, 255], | ||
"dimgray": [105, 105, 105], | ||
"dimgrey": [105, 105, 105], | ||
"dodgerblue": [30, 144, 255], | ||
"firebrick": [178, 34, 34], | ||
"floralwhite": [255, 250, 240], | ||
"forestgreen": [34, 139, 34], | ||
"fuchsia": [255, 0, 255], | ||
"gainsboro": [220, 220, 220], | ||
"ghostwhite": [248, 248, 255], | ||
"gold": [255, 215, 0], | ||
"goldenrod": [218, 165, 32], | ||
"gray": [128, 128, 128], | ||
"green": [0, 128, 0], | ||
"greenyellow": [173, 255, 47], | ||
"grey": [128, 128, 128], | ||
"honeydew": [240, 255, 240], | ||
"hotpink": [255, 105, 180], | ||
"indianred": [205, 92, 92], | ||
"indigo": [75, 0, 130], | ||
"ivory": [255, 255, 240], | ||
"khaki": [240, 230, 140], | ||
"lavender": [230, 230, 250], | ||
"lavenderblush": [255, 240, 245], | ||
"lawngreen": [124, 252, 0], | ||
"lemonchiffon": [255, 250, 205], | ||
"lightblue": [173, 216, 230], | ||
"lightcoral": [240, 128, 128], | ||
"lightcyan": [224, 255, 255], | ||
"lightgoldenrodyellow": [250, 250, 210], | ||
"lightgray": [211, 211, 211], | ||
"lightgreen": [144, 238, 144], | ||
"lightgrey": [211, 211, 211], | ||
"lightpink": [255, 182, 193], | ||
"lightsalmon": [255, 160, 122], | ||
"lightseagreen": [32, 178, 170], | ||
"lightskyblue": [135, 206, 250], | ||
"lightslategray": [119, 136, 153], | ||
"lightslategrey": [119, 136, 153], | ||
"lightsteelblue": [176, 196, 222], | ||
"lightyellow": [255, 255, 224], | ||
"lime": [0, 255, 0], | ||
"limegreen": [50, 205, 50], | ||
"linen": [250, 240, 230], | ||
"magenta": [255, 0, 255], | ||
"maroon": [128, 0, 0], | ||
"mediumaquamarine": [102, 205, 170], | ||
"mediumblue": [0, 0, 205], | ||
"mediumorchid": [186, 85, 211], | ||
"mediumpurple": [147, 112, 219], | ||
"mediumseagreen": [60, 179, 113], | ||
"mediumslateblue": [123, 104, 238], | ||
"mediumspringgreen": [0, 250, 154], | ||
"mediumturquoise": [72, 209, 204], | ||
"mediumvioletred": [199, 21, 133], | ||
"midnightblue": [25, 25, 112], | ||
"mintcream": [245, 255, 250], | ||
"mistyrose": [255, 228, 225], | ||
"moccasin": [255, 228, 181], | ||
"navajowhite": [255, 222, 173], | ||
"navy": [0, 0, 128], | ||
"oldlace": [253, 245, 230], | ||
"olive": [128, 128, 0], | ||
"olivedrab": [107, 142, 35], | ||
"orange": [255, 165, 0], | ||
"orangered": [255, 69, 0], | ||
"orchid": [218, 112, 214], | ||
"palegoldenrod": [238, 232, 170], | ||
"palegreen": [152, 251, 152], | ||
"paleturquoise": [175, 238, 238], | ||
"palevioletred": [219, 112, 147], | ||
"papayawhip": [255, 239, 213], | ||
"peachpuff": [255, 218, 185], | ||
"peru": [205, 133, 63], | ||
"pink": [255, 192, 203], | ||
"plum": [221, 160, 221], | ||
"powderblue": [176, 224, 230], | ||
"purple": [128, 0, 128], | ||
"rebeccapurple": [102, 51, 153], | ||
"red": [255, 0, 0], | ||
"rosybrown": [188, 143, 143], | ||
"royalblue": [65, 105, 225], | ||
"saddlebrown": [139, 69, 19], | ||
"salmon": [250, 128, 114], | ||
"sandybrown": [244, 164, 96], | ||
"seagreen": [46, 139, 87], | ||
"seashell": [255, 245, 238], | ||
"sienna": [160, 82, 45], | ||
"silver": [192, 192, 192], | ||
"skyblue": [135, 206, 235], | ||
"slateblue": [106, 90, 205], | ||
"slategray": [112, 128, 144], | ||
"slategrey": [112, 128, 144], | ||
"snow": [255, 250, 250], | ||
"springgreen": [0, 255, 127], | ||
"steelblue": [70, 130, 180], | ||
"tan": [210, 180, 140], | ||
"teal": [0, 128, 128], | ||
"thistle": [216, 191, 216], | ||
"tomato": [255, 99, 71], | ||
"turquoise": [64, 224, 208], | ||
"violet": [238, 130, 238], | ||
"wheat": [245, 222, 179], | ||
"white": [255, 255, 255], | ||
"whitesmoke": [245, 245, 245], | ||
"yellow": [255, 255, 0], | ||
"yellowgreen": [154, 205, 50] | ||
}; | ||
/***/ }), | ||
/* 1 */ | ||
/***/ "./src/color-converter.ts": | ||
/*!********************************!*\ | ||
!*** ./src/color-converter.ts ***! | ||
\********************************/ | ||
/*! exports provided: hslToRgb, rgbToHsl, hwbToRgb, rgbToHwb, cmykToRgb, rgbToCmyk, hsvToRgb, rgbToHsv, hsvToHwb, hwbToHsv, rgbToHex, hexToRgb, resolveHwb */ | ||
/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
"use strict"; | ||
/* harmony export (immutable) */ __webpack_exports__["b"] = hslToRgb; | ||
/* harmony export (immutable) */ __webpack_exports__["j"] = rgbToHsl; | ||
/* harmony export (immutable) */ __webpack_exports__["f"] = hwbToRgb; | ||
/* harmony export (immutable) */ __webpack_exports__["l"] = rgbToHwb; | ||
/* harmony export (immutable) */ __webpack_exports__["a"] = cmykToRgb; | ||
/* harmony export (immutable) */ __webpack_exports__["h"] = rgbToCmyk; | ||
/* harmony export (immutable) */ __webpack_exports__["d"] = hsvToRgb; | ||
/* harmony export (immutable) */ __webpack_exports__["k"] = rgbToHsv; | ||
/* harmony export (immutable) */ __webpack_exports__["c"] = hsvToHwb; | ||
/* harmony export (immutable) */ __webpack_exports__["e"] = hwbToHsv; | ||
/* harmony export (immutable) */ __webpack_exports__["i"] = rgbToHex; | ||
/* unused harmony export hexToRgb */ | ||
/* harmony export (immutable) */ __webpack_exports__["g"] = resolveHwb; | ||
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__util_util__ = __webpack_require__(0); | ||
__webpack_require__.r(__webpack_exports__); | ||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hslToRgb", function() { return hslToRgb; }); | ||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "rgbToHsl", function() { return rgbToHsl; }); | ||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hwbToRgb", function() { return hwbToRgb; }); | ||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "rgbToHwb", function() { return rgbToHwb; }); | ||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cmykToRgb", function() { return cmykToRgb; }); | ||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "rgbToCmyk", function() { return rgbToCmyk; }); | ||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hsvToRgb", function() { return hsvToRgb; }); | ||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "rgbToHsv", function() { return rgbToHsv; }); | ||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hsvToHwb", function() { return hsvToHwb; }); | ||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hwbToHsv", function() { return hwbToHsv; }); | ||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "rgbToHex", function() { return rgbToHex; }); | ||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hexToRgb", function() { return hexToRgb; }); | ||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "resolveHwb", function() { return resolveHwb; }); | ||
/* harmony import */ var _util_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util/util */ "./src/util/util.ts"); | ||
@@ -406,3 +526,3 @@ /** | ||
} | ||
var hex = arr.map(function (x) { return Object(__WEBPACK_IMPORTED_MODULE_0__util_util__["f" /* padStart */])(x.toString(16), 2, '0'); }).join(''); | ||
var hex = arr.map(function (x) { return Object(_util_util__WEBPACK_IMPORTED_MODULE_0__["padStart"])(x.toString(16), 2, '0'); }).join(''); | ||
return enableShort ? hexToShorthand(hex) : hex; | ||
@@ -455,307 +575,26 @@ } | ||
/***/ }), | ||
/* 2 */ | ||
/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
"use strict"; | ||
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_color_name__ = __webpack_require__(5); | ||
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_color_name___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_color_name__); | ||
/* harmony default export */ __webpack_exports__["a"] = (__WEBPACK_IMPORTED_MODULE_0_color_name__); | ||
/***/ }), | ||
/* 3 */ | ||
/***/ "./src/color-formatter.ts": | ||
/*!********************************!*\ | ||
!*** ./src/color-formatter.ts ***! | ||
\********************************/ | ||
/*! exports provided: ColorFormatter */ | ||
/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
"use strict"; | ||
Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); | ||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MooColor", function() { return MooColor; }); | ||
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__color_formatter__ = __webpack_require__(4); | ||
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__input_parser__ = __webpack_require__(6); | ||
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__util_util__ = __webpack_require__(0); | ||
var __extends = (this && this.__extends) || (function () { | ||
var extendStatics = Object.setPrototypeOf || | ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || | ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; | ||
return function (d, b) { | ||
extendStatics(d, b); | ||
function __() { this.constructor = d; } | ||
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); | ||
}; | ||
})(); | ||
__webpack_require__.r(__webpack_exports__); | ||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ColorFormatter", function() { return ColorFormatter; }); | ||
/* harmony import */ var _color_converter__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./color-converter */ "./src/color-converter.ts"); | ||
/* harmony import */ var _color_names__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./color-names */ "./src/color-names.ts"); | ||
/* harmony import */ var _util_util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./util/util */ "./src/util/util.ts"); | ||
var MooColor = /** @class */ (function (_super) { | ||
__extends(MooColor, _super); | ||
/** | ||
* Creates an instance of MooColor. | ||
* @param {*} [color] color string. e.g. '#ff0000' 'rgba(255, 0, 0, .5)' 'hsl(120, 50%, 100%)' | ||
*/ | ||
function MooColor(color) { | ||
var _this = _super.call(this) || this; | ||
color = color ? color : '#000'; | ||
_this.setColorByParser(color); | ||
return _this; | ||
} | ||
MooColor.mix = function (color1, color2, percentOf1) { | ||
if (percentOf1 === void 0) { percentOf1 = 50; } | ||
var c1 = (typeof color1 === 'string') ? new MooColor(color1) : color1; | ||
var c2 = (typeof color2 === 'string') ? new MooColor(color2) : color2; | ||
return c2.mix(c1, percentOf1); | ||
}; | ||
MooColor.prototype.setColorByParser = function (str) { | ||
var color = Object(__WEBPACK_IMPORTED_MODULE_1__input_parser__["a" /* default */])(str); | ||
if (!color) { | ||
throw new Error('parsing error!'); | ||
} | ||
return this.setColor(color); | ||
}; | ||
MooColor.prototype.clone = function () { | ||
return new MooColor().setColor(this.color); | ||
}; | ||
Object.defineProperty(MooColor.prototype, "brightness", { | ||
/** | ||
* Returns color brightness from 0 to 255. (It based RGB) | ||
* @see https://www.w3.org/TR/AERT/#color-contrast | ||
* @readonly | ||
* @type {number} | ||
*/ | ||
get: function () { | ||
var _a = this.getColorAs('rgb').values, r = _a[0], g = _a[1], b = _a[2]; | ||
return ((r * 299) + (g * 587) + (b * 114)) / 1000; | ||
}, | ||
enumerable: true, | ||
configurable: true | ||
}); | ||
Object.defineProperty(MooColor.prototype, "isLight", { | ||
/** | ||
* Returns whether color is light or not. | ||
* @readonly | ||
* @type {boolean} | ||
*/ | ||
get: function () { | ||
return this.brightness >= 128; | ||
}, | ||
enumerable: true, | ||
configurable: true | ||
}); | ||
Object.defineProperty(MooColor.prototype, "isDark", { | ||
/** | ||
* Returns whether color is dark or not. | ||
* @readonly | ||
* @type {boolean} | ||
*/ | ||
get: function () { | ||
return this.brightness < 128; | ||
}, | ||
enumerable: true, | ||
configurable: true | ||
}); | ||
Object.defineProperty(MooColor.prototype, "luminance", { | ||
/** | ||
* Returns luminance value of the color. value from 0 to 1. | ||
* @see https://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef | ||
* @readonly | ||
* @type {number} | ||
*/ | ||
get: function () { | ||
var _a = this.getColorAs('rgb').values.map(function (x) { return x / 255; }), r = _a[0], g = _a[1], b = _a[2]; | ||
return 0.2126 * r + 0.7152 * g + 0.0722 * b; | ||
}, | ||
enumerable: true, | ||
configurable: true | ||
}); | ||
/** | ||
* Returns contrast ratio with other color. range from 0 to 21. | ||
* @see https://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef | ||
* @param {MooColor} color | ||
* @returns {number} 0-21 | ||
*/ | ||
MooColor.prototype.contrastRatioWith = function (color) { | ||
var max = Math.max(this.luminance, color.luminance); | ||
var min = Math.min(this.luminance, color.luminance); | ||
return (max + 0.05) / (min + 0.05); | ||
}; | ||
/** | ||
* Return true if contrast ratio >= 4.5 | ||
* @see https://www.w3.org/WAI/WCAG20/quickref/#qr-visual-audio-contrast-contrast | ||
* @param {MooColor} color | ||
* @returns {boolean} | ||
*/ | ||
MooColor.prototype.isContrastEnough = function (color) { | ||
return this.contrastRatioWith(color) >= 4.5; | ||
}; | ||
/** | ||
* Increase lightness. | ||
* @param {number} amount The amount from 0 to 100. | ||
* @returns {this} | ||
*/ | ||
MooColor.prototype.lighten = function (amount) { | ||
return this.manipulate('hsl', function (h, s, l) { | ||
l = Object(__WEBPACK_IMPORTED_MODULE_2__util_util__["b" /* clamp */])(l + amount, 0, 100); | ||
return [h, s, l]; | ||
}); | ||
}; | ||
/** | ||
* Decrease lightness. | ||
* @param {number} amount The amount from 0 to 100. | ||
* @returns {this} | ||
*/ | ||
MooColor.prototype.darken = function (amount) { | ||
return this.manipulate('hsl', function (h, s, l) { | ||
l = Object(__WEBPACK_IMPORTED_MODULE_2__util_util__["b" /* clamp */])(l - amount, 0, 100); | ||
return [h, s, l]; | ||
}); | ||
}; | ||
/** | ||
* Increase saturation. | ||
* @param {number} amount The amount from 0 to 100. | ||
* @returns {this} | ||
*/ | ||
MooColor.prototype.saturate = function (amount) { | ||
return this.manipulate('hsl', function (h, s, l) { | ||
s = Object(__WEBPACK_IMPORTED_MODULE_2__util_util__["b" /* clamp */])(s + amount, 0, 100); | ||
return [h, s, l]; | ||
}); | ||
}; | ||
/** | ||
* Decrease saturation. | ||
* @param {number} amount The amount from 0 to 100. | ||
* @returns {this} | ||
*/ | ||
MooColor.prototype.desaturate = function (amount) { | ||
return this.manipulate('hsl', function (h, s, l) { | ||
s = Object(__WEBPACK_IMPORTED_MODULE_2__util_util__["b" /* clamp */])(s - amount, 0, 100); | ||
return [h, s, l]; | ||
}); | ||
}; | ||
/** | ||
* Sets saturation value to 0. | ||
* @returns {this} | ||
*/ | ||
MooColor.prototype.grayscale = function () { | ||
return this.manipulate('hsl', function (h, s, l) { return [h, 0, l]; }); | ||
}; | ||
/** | ||
* Modify whiteness. | ||
* @param {number} amount The amount from -100 to 100. | ||
* @returns {this} | ||
*/ | ||
MooColor.prototype.whiten = function (amount) { | ||
var _this = this; | ||
return this.manipulate('hwb', function (h, w, b) { return _this.resolveHwb(h, Object(__WEBPACK_IMPORTED_MODULE_2__util_util__["b" /* clamp */])(w + amount, 0, 100), b); }); | ||
}; | ||
/** | ||
* Modify blackness. | ||
* @param {number} amount The amount from -100 to 100. | ||
* @returns {this} | ||
*/ | ||
MooColor.prototype.blacken = function (amount) { | ||
var _this = this; | ||
return this.manipulate('hwb', function (h, w, b) { return _this.resolveHwb(h, w, Object(__WEBPACK_IMPORTED_MODULE_2__util_util__["b" /* clamp */])(b + amount, 0, 100)); }); | ||
}; | ||
/** | ||
* Rotate hue value. | ||
* @param {number} d degree 0-360 | ||
* @returns {this} | ||
*/ | ||
MooColor.prototype.rotate = function (d) { | ||
return this.manipulate('hsl', function (h, s, l) { return [Object(__WEBPACK_IMPORTED_MODULE_2__util_util__["d" /* degree */])(h + d), s, l]; }); | ||
}; | ||
/** | ||
* Mix two colors. | ||
* @param {MooColor} color The color to mixed. | ||
* @param {number} [percent=50] The percentage value of color to be mixed. | ||
* @returns {MooColor} The mixed color that as a new instance of `MooColor`. | ||
*/ | ||
MooColor.prototype.mix = function (color, percent) { | ||
if (percent === void 0) { percent = 50; } | ||
percent /= 100; | ||
var m = this.getModel(); | ||
var c1 = this.getColorAs('rgb'); | ||
var c2 = color.getColorAs('rgb'); | ||
return new MooColor().setColor({ | ||
model: 'rgb', | ||
values: c1.values.map(function (v, i) { return v + (c2.values[i] - v) * percent; }), | ||
alpha: c1.alpha + (c2.alpha - c1.alpha) * percent, | ||
}).changeModel(m); | ||
}; | ||
/** | ||
* Sets color to the complement of a color. | ||
* | ||
* @returns {this} | ||
*/ | ||
MooColor.prototype.complement = function () { | ||
return this.manipulate('hsl', function (h, s, l) { return [Object(__WEBPACK_IMPORTED_MODULE_2__util_util__["d" /* degree */])(h + 180), s, l]; }); | ||
}; | ||
/** | ||
* Sets color to the inverse (negative) of a color. | ||
* | ||
* @param {number} [percent=100] The relative percent of the color that inverse. | ||
* @returns {this} | ||
*/ | ||
MooColor.prototype.invert = function (percent) { | ||
if (percent === void 0) { percent = 100; } | ||
percent /= 100; | ||
var absRound = function (x) { return Math.round(Math.abs(x)); }; | ||
return this.manipulate('rgb', function (r, g, b) { return [r, g, b].map(function (x) { return absRound(255 * percent - x); }); }); | ||
}; | ||
/** | ||
* Sets random color values as HWB color model. | ||
* | ||
* @param {RandomArguments} [{hue, white, black}={}] | ||
* @returns {this} | ||
*/ | ||
MooColor.prototype.random = function (_a) { | ||
var _b = _a === void 0 ? {} : _a, hue = _b.hue, white = _b.white, black = _b.black; | ||
_c = [hue, white, black].map(function (x, i) { | ||
if (typeof x === 'number') { | ||
return x; | ||
} | ||
else if (Array.isArray(x)) { | ||
var precision = i === 0 ? 0 : 2; | ||
return Object(__WEBPACK_IMPORTED_MODULE_2__util_util__["e" /* getRandom */])(Math.min.apply(Math, x), Math.max.apply(Math, x), precision); | ||
} | ||
else { | ||
return i === 0 ? Object(__WEBPACK_IMPORTED_MODULE_2__util_util__["e" /* getRandom */])(0, 360) : Object(__WEBPACK_IMPORTED_MODULE_2__util_util__["e" /* getRandom */])(0, 100, 2); | ||
} | ||
}), hue = _c[0], white = _c[1], black = _c[2]; | ||
return this.setColor({ | ||
model: 'hwb', | ||
values: this.resolveHwb(Object(__WEBPACK_IMPORTED_MODULE_2__util_util__["d" /* degree */])(hue), Object(__WEBPACK_IMPORTED_MODULE_2__util_util__["b" /* clamp */])(white, 0, 100), Object(__WEBPACK_IMPORTED_MODULE_2__util_util__["b" /* clamp */])(black, 0, 100)), | ||
alpha: 1, | ||
}); | ||
var _c; | ||
}; | ||
MooColor.prototype.manipulate = function (asModel, callback) { | ||
var m = this.color.model; | ||
var color = this.getColorAs(asModel); | ||
color.values = callback.apply(void 0, color.values); | ||
return this.setColor(color).changeModel(m); | ||
}; | ||
return MooColor; | ||
}(__WEBPACK_IMPORTED_MODULE_0__color_formatter__["a" /* ColorFormatter */])); | ||
/***/ }), | ||
/* 4 */ | ||
/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
"use strict"; | ||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return ColorFormatter; }); | ||
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__color_converter__ = __webpack_require__(1); | ||
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__color_names__ = __webpack_require__(2); | ||
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__util_util__ = __webpack_require__(0); | ||
var ColorFormatter = /** @class */ (function () { | ||
function ColorFormatter() { | ||
// In hwb model, whiteness and blackness value's adjust will required. | ||
this.resolveHwb = __WEBPACK_IMPORTED_MODULE_0__color_converter__["g" /* resolveHwb */]; | ||
this.resolveHwb = _color_converter__WEBPACK_IMPORTED_MODULE_0__["resolveHwb"]; | ||
} | ||
ColorFormatter.prototype.setColor = function (color) { | ||
color.alpha = Object(__WEBPACK_IMPORTED_MODULE_2__util_util__["g" /* resolveAlpha */])(color.alpha); | ||
color.alpha = Object(_util_util__WEBPACK_IMPORTED_MODULE_2__["resolveAlpha"])(color.alpha); | ||
this.color = color; | ||
@@ -787,29 +626,25 @@ return this; | ||
}; | ||
ColorFormatter.prototype.convert = function (color, m) { | ||
var val; | ||
ColorFormatter.prototype.convert = function (color, model) { | ||
var values; | ||
switch (color.model) { | ||
case 'rgb': | ||
val = this.convertFromRgb(color.values, m); | ||
values = this.convertFromRgb(color.values, model); | ||
break; | ||
case 'hwb': | ||
val = this.convertFromHwb(color.values, m); | ||
values = this.convertFromHwb(color.values, model); | ||
break; | ||
case 'hsl': | ||
val = this.convertFromHsl(color.values, m); | ||
values = this.convertFromHsl(color.values, model); | ||
break; | ||
case 'hsv': | ||
val = this.convertFromHsv(color.values, m); | ||
values = this.convertFromHsv(color.values, model); | ||
break; | ||
case 'cmyk': | ||
val = this.convertFromCmyk(color.values, m); | ||
values = this.convertFromCmyk(color.values, model); | ||
break; | ||
} | ||
if (!val.length) { | ||
if (!values.length) { | ||
throw new Error('Converting Error!'); | ||
} | ||
return { | ||
model: m, | ||
values: val, | ||
alpha: color.alpha, | ||
}; | ||
return { model: model, values: values, alpha: color.alpha }; | ||
}; | ||
@@ -853,5 +688,5 @@ /** | ||
var name = ''; | ||
for (var _i = 0, _a = Object.keys(__WEBPACK_IMPORTED_MODULE_1__color_names__["a" /* default */]); _i < _a.length; _i++) { | ||
for (var _i = 0, _a = Object.keys(_color_names__WEBPACK_IMPORTED_MODULE_1__["default"]); _i < _a.length; _i++) { | ||
var key = _a[_i]; | ||
if (Object(__WEBPACK_IMPORTED_MODULE_2__util_util__["a" /* arrayIsEqual */])(__WEBPACK_IMPORTED_MODULE_1__color_names__["a" /* default */][key], [r, g, b])) { | ||
if (Object(_util_util__WEBPACK_IMPORTED_MODULE_2__["arrayIsEqual"])(_color_names__WEBPACK_IMPORTED_MODULE_1__["default"][key], [r, g, b])) { | ||
name = key; | ||
@@ -861,9 +696,9 @@ break; | ||
} | ||
return a === null && name !== '' ? name : "#" + __WEBPACK_IMPORTED_MODULE_0__color_converter__["i" /* rgbToHex */](r, g, b, a, true); | ||
return a === null && name !== '' ? name : "#" + _color_converter__WEBPACK_IMPORTED_MODULE_0__["rgbToHex"](r, g, b, a, true); | ||
}; | ||
switch (mode) { | ||
case 'name': return nameOrShort(); | ||
case 'short': return "#" + __WEBPACK_IMPORTED_MODULE_0__color_converter__["i" /* rgbToHex */](r, g, b, a, true); | ||
case 'short': return "#" + _color_converter__WEBPACK_IMPORTED_MODULE_0__["rgbToHex"](r, g, b, a, true); | ||
case 'full': | ||
default: return "#" + __WEBPACK_IMPORTED_MODULE_0__color_converter__["i" /* rgbToHex */](r, g, b, a); | ||
default: return "#" + _color_converter__WEBPACK_IMPORTED_MODULE_0__["rgbToHex"](r, g, b, a); | ||
} | ||
@@ -897,3 +732,3 @@ }; | ||
var color = this.getColorAs('hwb'); | ||
var _a = color.values.map(function (x) { return Object(__WEBPACK_IMPORTED_MODULE_2__util_util__["c" /* decimal */])(x, 2); }), h = _a[0], w = _a[1], b = _a[2]; | ||
var _a = color.values.map(function (x) { return Object(_util_util__WEBPACK_IMPORTED_MODULE_2__["decimal"])(x, 2); }), h = _a[0], w = _a[1], b = _a[2]; | ||
var a = color.alpha === 1 ? '' : ", " + color.alpha; | ||
@@ -909,3 +744,3 @@ return "hwb(" + h + ", " + w + "%, " + b + "%" + a + ")"; | ||
var color = this.getColorAs('hsl'); | ||
var _a = color.values.map(function (x) { return Object(__WEBPACK_IMPORTED_MODULE_2__util_util__["c" /* decimal */])(x, 2); }), h = _a[0], s = _a[1], l = _a[2]; | ||
var _a = color.values.map(function (x) { return Object(_util_util__WEBPACK_IMPORTED_MODULE_2__["decimal"])(x, 2); }), h = _a[0], s = _a[1], l = _a[2]; | ||
return color.alpha === 1 | ||
@@ -921,3 +756,3 @@ ? "hsl(" + h + ", " + s + "%, " + l + "%)" | ||
var color = this.getColorAs('hsv'); | ||
var _a = color.values.map(function (x) { return Object(__WEBPACK_IMPORTED_MODULE_2__util_util__["c" /* decimal */])(x, 2); }), h = _a[0], s = _a[1], v = _a[2]; | ||
var _a = color.values.map(function (x) { return Object(_util_util__WEBPACK_IMPORTED_MODULE_2__["decimal"])(x, 2); }), h = _a[0], s = _a[1], v = _a[2]; | ||
return color.alpha === 1 | ||
@@ -934,108 +769,59 @@ ? "hsv(" + h + ", " + s + "%, " + v + "%)" | ||
var color = this.getColorAs('cmyk'); | ||
var _a = color.values.map(function (x) { return Object(__WEBPACK_IMPORTED_MODULE_2__util_util__["c" /* decimal */])(x, 2); }), c = _a[0], m = _a[1], y = _a[2], k = _a[3]; | ||
var _a = color.values.map(function (x) { return Object(_util_util__WEBPACK_IMPORTED_MODULE_2__["decimal"])(x, 2); }), c = _a[0], m = _a[1], y = _a[2], k = _a[3]; | ||
var a = color.alpha === 1 ? '' : ", " + color.alpha; | ||
return "cmyk(" + c + "%, " + m + "%, " + y + "%, " + k + "%" + a + ")"; | ||
}; | ||
ColorFormatter.prototype.convertFromRgb = function (values, model) { | ||
var r = values[0], g = values[1], b = values[2]; | ||
ColorFormatter.prototype.convertFromRgb = function (_a, model) { | ||
var r = _a[0], g = _a[1], b = _a[2]; | ||
switch (model) { | ||
case 'rgb': break; | ||
case 'hwb': | ||
values = __WEBPACK_IMPORTED_MODULE_0__color_converter__["l" /* rgbToHwb */](r, g, b); | ||
break; | ||
case 'hsl': | ||
values = __WEBPACK_IMPORTED_MODULE_0__color_converter__["j" /* rgbToHsl */](r, g, b); | ||
break; | ||
case 'hsv': | ||
values = __WEBPACK_IMPORTED_MODULE_0__color_converter__["k" /* rgbToHsv */](r, g, b); | ||
break; | ||
case 'cmyk': | ||
values = __WEBPACK_IMPORTED_MODULE_0__color_converter__["h" /* rgbToCmyk */](r, g, b); | ||
break; | ||
case 'rgb': return [r, g, b]; | ||
case 'hwb': return _color_converter__WEBPACK_IMPORTED_MODULE_0__["rgbToHwb"](r, g, b); | ||
case 'hsl': return _color_converter__WEBPACK_IMPORTED_MODULE_0__["rgbToHsl"](r, g, b); | ||
case 'hsv': return _color_converter__WEBPACK_IMPORTED_MODULE_0__["rgbToHsv"](r, g, b); | ||
case 'cmyk': return _color_converter__WEBPACK_IMPORTED_MODULE_0__["rgbToCmyk"](r, g, b); | ||
} | ||
return values; | ||
}; | ||
ColorFormatter.prototype.convertFromHwb = function (values, model) { | ||
var h = values[0], w = values[1], b = values[2]; | ||
var rgb = __WEBPACK_IMPORTED_MODULE_0__color_converter__["f" /* hwbToRgb */](h, w, b); | ||
var red = rgb[0], green = rgb[1], blue = rgb[2]; | ||
ColorFormatter.prototype.convertFromHwb = function (_a, model) { | ||
var h = _a[0], w = _a[1], b = _a[2]; | ||
var _b = _color_converter__WEBPACK_IMPORTED_MODULE_0__["hwbToRgb"](h, w, b), red = _b[0], green = _b[1], blue = _b[2]; | ||
switch (model) { | ||
case 'rgb': | ||
values = rgb; | ||
break; | ||
case 'hwb': break; | ||
case 'hsl': | ||
values = __WEBPACK_IMPORTED_MODULE_0__color_converter__["j" /* rgbToHsl */](red, green, blue); | ||
break; | ||
case 'hsv': | ||
values = __WEBPACK_IMPORTED_MODULE_0__color_converter__["e" /* hwbToHsv */](h, w, b); | ||
break; | ||
case 'cmyk': | ||
values = __WEBPACK_IMPORTED_MODULE_0__color_converter__["h" /* rgbToCmyk */](red, green, blue); | ||
break; | ||
case 'rgb': return [red, green, blue]; | ||
case 'hwb': return [h, w, b]; | ||
case 'hsl': return _color_converter__WEBPACK_IMPORTED_MODULE_0__["rgbToHsl"](red, green, blue); | ||
case 'hsv': return _color_converter__WEBPACK_IMPORTED_MODULE_0__["hwbToHsv"](h, w, b); | ||
case 'cmyk': return _color_converter__WEBPACK_IMPORTED_MODULE_0__["rgbToCmyk"](red, green, blue); | ||
} | ||
return values; | ||
}; | ||
ColorFormatter.prototype.convertFromHsl = function (values, model) { | ||
var h = values[0], s = values[1], l = values[2]; | ||
var rgb = __WEBPACK_IMPORTED_MODULE_0__color_converter__["b" /* hslToRgb */](h, s, l); | ||
var red = rgb[0], green = rgb[1], blue = rgb[2]; | ||
ColorFormatter.prototype.convertFromHsl = function (_a, model) { | ||
var h = _a[0], s = _a[1], l = _a[2]; | ||
var _b = _color_converter__WEBPACK_IMPORTED_MODULE_0__["hslToRgb"](h, s, l), red = _b[0], green = _b[1], blue = _b[2]; | ||
switch (model) { | ||
case 'rgb': | ||
values = rgb; | ||
break; | ||
case 'hwb': | ||
values = __WEBPACK_IMPORTED_MODULE_0__color_converter__["l" /* rgbToHwb */](red, green, blue); | ||
break; | ||
case 'hsl': break; | ||
case 'hsv': | ||
values = __WEBPACK_IMPORTED_MODULE_0__color_converter__["k" /* rgbToHsv */](red, green, blue); | ||
break; | ||
case 'cmyk': | ||
values = __WEBPACK_IMPORTED_MODULE_0__color_converter__["h" /* rgbToCmyk */](red, green, blue); | ||
break; | ||
case 'rgb': return [red, green, blue]; | ||
case 'hwb': return _color_converter__WEBPACK_IMPORTED_MODULE_0__["rgbToHwb"](red, green, blue); | ||
case 'hsl': return [h, s, l]; | ||
case 'hsv': return _color_converter__WEBPACK_IMPORTED_MODULE_0__["rgbToHsv"](red, green, blue); | ||
case 'cmyk': return _color_converter__WEBPACK_IMPORTED_MODULE_0__["rgbToCmyk"](red, green, blue); | ||
} | ||
return values; | ||
}; | ||
ColorFormatter.prototype.convertFromHsv = function (values, model) { | ||
var h = values[0], s = values[1], v = values[2]; | ||
var rgb = __WEBPACK_IMPORTED_MODULE_0__color_converter__["d" /* hsvToRgb */](h, s, v); | ||
var red = rgb[0], green = rgb[1], blue = rgb[2]; | ||
ColorFormatter.prototype.convertFromHsv = function (_a, model) { | ||
var h = _a[0], s = _a[1], v = _a[2]; | ||
var _b = _color_converter__WEBPACK_IMPORTED_MODULE_0__["hsvToRgb"](h, s, v), red = _b[0], green = _b[1], blue = _b[2]; | ||
switch (model) { | ||
case 'rgb': | ||
values = rgb; | ||
break; | ||
case 'hwb': | ||
values = __WEBPACK_IMPORTED_MODULE_0__color_converter__["c" /* hsvToHwb */](h, s, v); | ||
break; | ||
case 'hsl': | ||
values = __WEBPACK_IMPORTED_MODULE_0__color_converter__["j" /* rgbToHsl */](red, green, blue); | ||
break; | ||
case 'hsv': break; | ||
case 'cmyk': | ||
values = __WEBPACK_IMPORTED_MODULE_0__color_converter__["h" /* rgbToCmyk */](red, green, blue); | ||
break; | ||
case 'rgb': return [red, green, blue]; | ||
case 'hwb': return _color_converter__WEBPACK_IMPORTED_MODULE_0__["hsvToHwb"](h, s, v); | ||
case 'hsl': return _color_converter__WEBPACK_IMPORTED_MODULE_0__["rgbToHsl"](red, green, blue); | ||
case 'hsv': return [h, s, v]; | ||
case 'cmyk': return _color_converter__WEBPACK_IMPORTED_MODULE_0__["rgbToCmyk"](red, green, blue); | ||
} | ||
return values; | ||
}; | ||
ColorFormatter.prototype.convertFromCmyk = function (values, model) { | ||
var c = values[0], m = values[1], y = values[2], k = values[3]; | ||
var rgb = __WEBPACK_IMPORTED_MODULE_0__color_converter__["a" /* cmykToRgb */](c, m, y, k); | ||
var red = rgb[0], green = rgb[1], blue = rgb[2]; | ||
ColorFormatter.prototype.convertFromCmyk = function (_a, model) { | ||
var c = _a[0], m = _a[1], y = _a[2], k = _a[3]; | ||
var _b = _color_converter__WEBPACK_IMPORTED_MODULE_0__["cmykToRgb"](c, m, y, k), red = _b[0], green = _b[1], blue = _b[2]; | ||
switch (model) { | ||
case 'rgb': | ||
values = rgb; | ||
break; | ||
case 'hwb': | ||
values = __WEBPACK_IMPORTED_MODULE_0__color_converter__["l" /* rgbToHwb */](red, green, blue); | ||
break; | ||
case 'hsl': | ||
values = __WEBPACK_IMPORTED_MODULE_0__color_converter__["j" /* rgbToHsl */](red, green, blue); | ||
break; | ||
case 'hsv': | ||
values = __WEBPACK_IMPORTED_MODULE_0__color_converter__["k" /* rgbToHsv */](red, green, blue); | ||
break; | ||
case 'cmyk': break; | ||
case 'rgb': return [red, green, blue]; | ||
case 'hwb': return _color_converter__WEBPACK_IMPORTED_MODULE_0__["rgbToHwb"](red, green, blue); | ||
case 'hsl': return _color_converter__WEBPACK_IMPORTED_MODULE_0__["rgbToHsl"](red, green, blue); | ||
case 'hsv': return _color_converter__WEBPACK_IMPORTED_MODULE_0__["rgbToHsv"](red, green, blue); | ||
case 'cmyk': return [c, m, y, k]; | ||
} | ||
return values; | ||
}; | ||
@@ -1048,169 +834,33 @@ return ColorFormatter; | ||
/***/ }), | ||
/* 5 */ | ||
/***/ (function(module, exports, __webpack_require__) { | ||
/***/ "./src/color-names.ts": | ||
/*!****************************!*\ | ||
!*** ./src/color-names.ts ***! | ||
\****************************/ | ||
/*! exports provided: default */ | ||
/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
"use strict"; | ||
__webpack_require__.r(__webpack_exports__); | ||
/* harmony import */ var color_name__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! color-name */ "./node_modules/color-name/index.js"); | ||
/* harmony import */ var color_name__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(color_name__WEBPACK_IMPORTED_MODULE_0__); | ||
/* harmony default export */ __webpack_exports__["default"] = (color_name__WEBPACK_IMPORTED_MODULE_0__); | ||
module.exports = { | ||
"aliceblue": [240, 248, 255], | ||
"antiquewhite": [250, 235, 215], | ||
"aqua": [0, 255, 255], | ||
"aquamarine": [127, 255, 212], | ||
"azure": [240, 255, 255], | ||
"beige": [245, 245, 220], | ||
"bisque": [255, 228, 196], | ||
"black": [0, 0, 0], | ||
"blanchedalmond": [255, 235, 205], | ||
"blue": [0, 0, 255], | ||
"blueviolet": [138, 43, 226], | ||
"brown": [165, 42, 42], | ||
"burlywood": [222, 184, 135], | ||
"cadetblue": [95, 158, 160], | ||
"chartreuse": [127, 255, 0], | ||
"chocolate": [210, 105, 30], | ||
"coral": [255, 127, 80], | ||
"cornflowerblue": [100, 149, 237], | ||
"cornsilk": [255, 248, 220], | ||
"crimson": [220, 20, 60], | ||
"cyan": [0, 255, 255], | ||
"darkblue": [0, 0, 139], | ||
"darkcyan": [0, 139, 139], | ||
"darkgoldenrod": [184, 134, 11], | ||
"darkgray": [169, 169, 169], | ||
"darkgreen": [0, 100, 0], | ||
"darkgrey": [169, 169, 169], | ||
"darkkhaki": [189, 183, 107], | ||
"darkmagenta": [139, 0, 139], | ||
"darkolivegreen": [85, 107, 47], | ||
"darkorange": [255, 140, 0], | ||
"darkorchid": [153, 50, 204], | ||
"darkred": [139, 0, 0], | ||
"darksalmon": [233, 150, 122], | ||
"darkseagreen": [143, 188, 143], | ||
"darkslateblue": [72, 61, 139], | ||
"darkslategray": [47, 79, 79], | ||
"darkslategrey": [47, 79, 79], | ||
"darkturquoise": [0, 206, 209], | ||
"darkviolet": [148, 0, 211], | ||
"deeppink": [255, 20, 147], | ||
"deepskyblue": [0, 191, 255], | ||
"dimgray": [105, 105, 105], | ||
"dimgrey": [105, 105, 105], | ||
"dodgerblue": [30, 144, 255], | ||
"firebrick": [178, 34, 34], | ||
"floralwhite": [255, 250, 240], | ||
"forestgreen": [34, 139, 34], | ||
"fuchsia": [255, 0, 255], | ||
"gainsboro": [220, 220, 220], | ||
"ghostwhite": [248, 248, 255], | ||
"gold": [255, 215, 0], | ||
"goldenrod": [218, 165, 32], | ||
"gray": [128, 128, 128], | ||
"green": [0, 128, 0], | ||
"greenyellow": [173, 255, 47], | ||
"grey": [128, 128, 128], | ||
"honeydew": [240, 255, 240], | ||
"hotpink": [255, 105, 180], | ||
"indianred": [205, 92, 92], | ||
"indigo": [75, 0, 130], | ||
"ivory": [255, 255, 240], | ||
"khaki": [240, 230, 140], | ||
"lavender": [230, 230, 250], | ||
"lavenderblush": [255, 240, 245], | ||
"lawngreen": [124, 252, 0], | ||
"lemonchiffon": [255, 250, 205], | ||
"lightblue": [173, 216, 230], | ||
"lightcoral": [240, 128, 128], | ||
"lightcyan": [224, 255, 255], | ||
"lightgoldenrodyellow": [250, 250, 210], | ||
"lightgray": [211, 211, 211], | ||
"lightgreen": [144, 238, 144], | ||
"lightgrey": [211, 211, 211], | ||
"lightpink": [255, 182, 193], | ||
"lightsalmon": [255, 160, 122], | ||
"lightseagreen": [32, 178, 170], | ||
"lightskyblue": [135, 206, 250], | ||
"lightslategray": [119, 136, 153], | ||
"lightslategrey": [119, 136, 153], | ||
"lightsteelblue": [176, 196, 222], | ||
"lightyellow": [255, 255, 224], | ||
"lime": [0, 255, 0], | ||
"limegreen": [50, 205, 50], | ||
"linen": [250, 240, 230], | ||
"magenta": [255, 0, 255], | ||
"maroon": [128, 0, 0], | ||
"mediumaquamarine": [102, 205, 170], | ||
"mediumblue": [0, 0, 205], | ||
"mediumorchid": [186, 85, 211], | ||
"mediumpurple": [147, 112, 219], | ||
"mediumseagreen": [60, 179, 113], | ||
"mediumslateblue": [123, 104, 238], | ||
"mediumspringgreen": [0, 250, 154], | ||
"mediumturquoise": [72, 209, 204], | ||
"mediumvioletred": [199, 21, 133], | ||
"midnightblue": [25, 25, 112], | ||
"mintcream": [245, 255, 250], | ||
"mistyrose": [255, 228, 225], | ||
"moccasin": [255, 228, 181], | ||
"navajowhite": [255, 222, 173], | ||
"navy": [0, 0, 128], | ||
"oldlace": [253, 245, 230], | ||
"olive": [128, 128, 0], | ||
"olivedrab": [107, 142, 35], | ||
"orange": [255, 165, 0], | ||
"orangered": [255, 69, 0], | ||
"orchid": [218, 112, 214], | ||
"palegoldenrod": [238, 232, 170], | ||
"palegreen": [152, 251, 152], | ||
"paleturquoise": [175, 238, 238], | ||
"palevioletred": [219, 112, 147], | ||
"papayawhip": [255, 239, 213], | ||
"peachpuff": [255, 218, 185], | ||
"peru": [205, 133, 63], | ||
"pink": [255, 192, 203], | ||
"plum": [221, 160, 221], | ||
"powderblue": [176, 224, 230], | ||
"purple": [128, 0, 128], | ||
"rebeccapurple": [102, 51, 153], | ||
"red": [255, 0, 0], | ||
"rosybrown": [188, 143, 143], | ||
"royalblue": [65, 105, 225], | ||
"saddlebrown": [139, 69, 19], | ||
"salmon": [250, 128, 114], | ||
"sandybrown": [244, 164, 96], | ||
"seagreen": [46, 139, 87], | ||
"seashell": [255, 245, 238], | ||
"sienna": [160, 82, 45], | ||
"silver": [192, 192, 192], | ||
"skyblue": [135, 206, 235], | ||
"slateblue": [106, 90, 205], | ||
"slategray": [112, 128, 144], | ||
"slategrey": [112, 128, 144], | ||
"snow": [255, 250, 250], | ||
"springgreen": [0, 255, 127], | ||
"steelblue": [70, 130, 180], | ||
"tan": [210, 180, 140], | ||
"teal": [0, 128, 128], | ||
"thistle": [216, 191, 216], | ||
"tomato": [255, 99, 71], | ||
"turquoise": [64, 224, 208], | ||
"violet": [238, 130, 238], | ||
"wheat": [245, 222, 179], | ||
"white": [255, 255, 255], | ||
"whitesmoke": [245, 245, 245], | ||
"yellow": [255, 255, 0], | ||
"yellowgreen": [154, 205, 50] | ||
}; | ||
/***/ }), | ||
/***/ }), | ||
/* 6 */ | ||
/***/ "./src/input-parser.ts": | ||
/*!*****************************!*\ | ||
!*** ./src/input-parser.ts ***! | ||
\*****************************/ | ||
/*! exports provided: default */ | ||
/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
"use strict"; | ||
/* harmony export (immutable) */ __webpack_exports__["a"] = inputParser; | ||
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__color_converter__ = __webpack_require__(1); | ||
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__color_names__ = __webpack_require__(2); | ||
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__util_util__ = __webpack_require__(0); | ||
__webpack_require__.r(__webpack_exports__); | ||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return inputParser; }); | ||
/* harmony import */ var _color_converter__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./color-converter */ "./src/color-converter.ts"); | ||
/* harmony import */ var _color_names__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./color-names */ "./src/color-names.ts"); | ||
/* harmony import */ var _util_util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./util/util */ "./src/util/util.ts"); | ||
@@ -1221,7 +871,7 @@ | ||
if (typeof input === 'string') { | ||
if (input in __WEBPACK_IMPORTED_MODULE_1__color_names__["a" /* default */]) { | ||
if (input in _color_names__WEBPACK_IMPORTED_MODULE_1__["default"]) { | ||
// Named colors. | ||
return { | ||
model: 'rgb', | ||
values: __WEBPACK_IMPORTED_MODULE_1__color_names__["a" /* default */][input], | ||
values: _color_names__WEBPACK_IMPORTED_MODULE_1__["default"][input], | ||
alpha: 1, | ||
@@ -1273,3 +923,3 @@ }; | ||
values = [r, g, b].map(function (x) { return parseInt(x, 0); }); | ||
alpha = Object(__WEBPACK_IMPORTED_MODULE_2__util_util__["g" /* resolveAlpha */])(a); | ||
alpha = Object(_util_util__WEBPACK_IMPORTED_MODULE_2__["resolveAlpha"])(a); | ||
} | ||
@@ -1279,3 +929,3 @@ else if (percent.test(input)) { | ||
values = [r, g, b].map(function (x) { return Math.round(parseFloat(x) * 2.55); }); | ||
alpha = Object(__WEBPACK_IMPORTED_MODULE_2__util_util__["g" /* resolveAlpha */])(a); | ||
alpha = Object(_util_util__WEBPACK_IMPORTED_MODULE_2__["resolveAlpha"])(a); | ||
} | ||
@@ -1287,4 +937,4 @@ else { | ||
model: 'rgb', | ||
values: values.map(function (x) { return Object(__WEBPACK_IMPORTED_MODULE_2__util_util__["b" /* clamp */])(x, 0, 255); }), | ||
alpha: Object(__WEBPACK_IMPORTED_MODULE_2__util_util__["b" /* clamp */])(alpha, 0, 1), | ||
values: values.map(function (x) { return Object(_util_util__WEBPACK_IMPORTED_MODULE_2__["clamp"])(x, 0, 255); }), | ||
alpha: Object(_util_util__WEBPACK_IMPORTED_MODULE_2__["clamp"])(alpha, 0, 1), | ||
}; | ||
@@ -1300,7 +950,7 @@ } | ||
values: [ | ||
Object(__WEBPACK_IMPORTED_MODULE_2__util_util__["d" /* degree */])(h), | ||
Object(__WEBPACK_IMPORTED_MODULE_2__util_util__["b" /* clamp */])(parseFloat(s), 0, 100), | ||
Object(__WEBPACK_IMPORTED_MODULE_2__util_util__["b" /* clamp */])(parseFloat(l), 0, 100), | ||
Object(_util_util__WEBPACK_IMPORTED_MODULE_2__["degree"])(h), | ||
Object(_util_util__WEBPACK_IMPORTED_MODULE_2__["clamp"])(parseFloat(s), 0, 100), | ||
Object(_util_util__WEBPACK_IMPORTED_MODULE_2__["clamp"])(parseFloat(l), 0, 100), | ||
], | ||
alpha: Object(__WEBPACK_IMPORTED_MODULE_2__util_util__["g" /* resolveAlpha */])(a), | ||
alpha: Object(_util_util__WEBPACK_IMPORTED_MODULE_2__["resolveAlpha"])(a), | ||
}; | ||
@@ -1319,4 +969,4 @@ } | ||
model: 'hwb', | ||
values: Object(__WEBPACK_IMPORTED_MODULE_0__color_converter__["g" /* resolveHwb */])(Object(__WEBPACK_IMPORTED_MODULE_2__util_util__["d" /* degree */])(h), Object(__WEBPACK_IMPORTED_MODULE_2__util_util__["b" /* clamp */])(parseFloat(w), 0, 100), Object(__WEBPACK_IMPORTED_MODULE_2__util_util__["b" /* clamp */])(parseFloat(b), 0, 100)), | ||
alpha: Object(__WEBPACK_IMPORTED_MODULE_2__util_util__["g" /* resolveAlpha */])(a), | ||
values: Object(_color_converter__WEBPACK_IMPORTED_MODULE_0__["resolveHwb"])(Object(_util_util__WEBPACK_IMPORTED_MODULE_2__["degree"])(h), Object(_util_util__WEBPACK_IMPORTED_MODULE_2__["clamp"])(parseFloat(w), 0, 100), Object(_util_util__WEBPACK_IMPORTED_MODULE_2__["clamp"])(parseFloat(b), 0, 100)), | ||
alpha: Object(_util_util__WEBPACK_IMPORTED_MODULE_2__["resolveAlpha"])(a), | ||
}; | ||
@@ -1336,7 +986,7 @@ } | ||
values: [ | ||
Object(__WEBPACK_IMPORTED_MODULE_2__util_util__["d" /* degree */])(h), | ||
Object(__WEBPACK_IMPORTED_MODULE_2__util_util__["b" /* clamp */])(parseFloat(s), 0, 100), | ||
Object(__WEBPACK_IMPORTED_MODULE_2__util_util__["b" /* clamp */])(parseFloat(v), 0, 100), | ||
Object(_util_util__WEBPACK_IMPORTED_MODULE_2__["degree"])(h), | ||
Object(_util_util__WEBPACK_IMPORTED_MODULE_2__["clamp"])(parseFloat(s), 0, 100), | ||
Object(_util_util__WEBPACK_IMPORTED_MODULE_2__["clamp"])(parseFloat(v), 0, 100), | ||
], | ||
alpha: Object(__WEBPACK_IMPORTED_MODULE_2__util_util__["g" /* resolveAlpha */])(a), | ||
alpha: Object(_util_util__WEBPACK_IMPORTED_MODULE_2__["resolveAlpha"])(a), | ||
}; | ||
@@ -1356,8 +1006,8 @@ } | ||
values: [ | ||
Object(__WEBPACK_IMPORTED_MODULE_2__util_util__["b" /* clamp */])(parseFloat(c), 0, 100), | ||
Object(__WEBPACK_IMPORTED_MODULE_2__util_util__["b" /* clamp */])(parseFloat(m), 0, 100), | ||
Object(__WEBPACK_IMPORTED_MODULE_2__util_util__["b" /* clamp */])(parseFloat(y), 0, 100), | ||
Object(__WEBPACK_IMPORTED_MODULE_2__util_util__["b" /* clamp */])(parseFloat(k), 0, 100), | ||
Object(_util_util__WEBPACK_IMPORTED_MODULE_2__["clamp"])(parseFloat(c), 0, 100), | ||
Object(_util_util__WEBPACK_IMPORTED_MODULE_2__["clamp"])(parseFloat(m), 0, 100), | ||
Object(_util_util__WEBPACK_IMPORTED_MODULE_2__["clamp"])(parseFloat(y), 0, 100), | ||
Object(_util_util__WEBPACK_IMPORTED_MODULE_2__["clamp"])(parseFloat(k), 0, 100), | ||
], | ||
alpha: Object(__WEBPACK_IMPORTED_MODULE_2__util_util__["g" /* resolveAlpha */])(a), | ||
alpha: Object(_util_util__WEBPACK_IMPORTED_MODULE_2__["resolveAlpha"])(a), | ||
}; | ||
@@ -1371,5 +1021,349 @@ } | ||
/***/ }), | ||
/***/ "./src/moo-color.ts": | ||
/*!**************************!*\ | ||
!*** ./src/moo-color.ts ***! | ||
\**************************/ | ||
/*! exports provided: MooColor */ | ||
/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
"use strict"; | ||
__webpack_require__.r(__webpack_exports__); | ||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MooColor", function() { return MooColor; }); | ||
/* harmony import */ var _color_formatter__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./color-formatter */ "./src/color-formatter.ts"); | ||
/* harmony import */ var _input_parser__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./input-parser */ "./src/input-parser.ts"); | ||
/* harmony import */ var _util_util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./util/util */ "./src/util/util.ts"); | ||
var __extends = (undefined && undefined.__extends) || (function () { | ||
var extendStatics = Object.setPrototypeOf || | ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || | ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; | ||
return function (d, b) { | ||
extendStatics(d, b); | ||
function __() { this.constructor = d; } | ||
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); | ||
}; | ||
})(); | ||
var MooColor = /** @class */ (function (_super) { | ||
__extends(MooColor, _super); | ||
/** | ||
* Creates an instance of MooColor. | ||
* @param {*} [color] color string. e.g. '#ff0000' 'rgba(255, 0, 0, .5)' 'hsl(120, 50%, 100%)' | ||
*/ | ||
function MooColor(color) { | ||
var _this = _super.call(this) || this; | ||
color = color ? color : '#000'; | ||
_this.setColorByParser(color); | ||
return _this; | ||
} | ||
MooColor.mix = function (color1, color2, percentOf1) { | ||
if (percentOf1 === void 0) { percentOf1 = 50; } | ||
var c1 = (typeof color1 === 'string') ? new MooColor(color1) : color1; | ||
var c2 = (typeof color2 === 'string') ? new MooColor(color2) : color2; | ||
return c2.mix(c1, percentOf1); | ||
}; | ||
MooColor.prototype.setColorByParser = function (str) { | ||
var color = Object(_input_parser__WEBPACK_IMPORTED_MODULE_1__["default"])(str); | ||
if (!color) { | ||
throw new Error('parsing error!'); | ||
} | ||
return this.setColor(color); | ||
}; | ||
MooColor.prototype.clone = function () { | ||
return new MooColor().setColor(this.color); | ||
}; | ||
Object.defineProperty(MooColor.prototype, "brightness", { | ||
/** | ||
* Returns color brightness from 0 to 255. (It based RGB) | ||
* @see https://www.w3.org/TR/AERT/#color-contrast | ||
* @readonly | ||
* @type {number} | ||
*/ | ||
get: function () { | ||
var _a = this.getColorAs('rgb').values, r = _a[0], g = _a[1], b = _a[2]; | ||
return ((r * 299) + (g * 587) + (b * 114)) / 1000; | ||
}, | ||
enumerable: true, | ||
configurable: true | ||
}); | ||
Object.defineProperty(MooColor.prototype, "isLight", { | ||
/** | ||
* Returns whether color is light or not. | ||
* @readonly | ||
* @type {boolean} | ||
*/ | ||
get: function () { | ||
return this.brightness >= 128; | ||
}, | ||
enumerable: true, | ||
configurable: true | ||
}); | ||
Object.defineProperty(MooColor.prototype, "isDark", { | ||
/** | ||
* Returns whether color is dark or not. | ||
* @readonly | ||
* @type {boolean} | ||
*/ | ||
get: function () { | ||
return this.brightness < 128; | ||
}, | ||
enumerable: true, | ||
configurable: true | ||
}); | ||
Object.defineProperty(MooColor.prototype, "luminance", { | ||
/** | ||
* Returns luminance value of the color. value from 0 to 1. | ||
* @see https://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef | ||
* @readonly | ||
* @type {number} | ||
*/ | ||
get: function () { | ||
var _a = this.getColorAs('rgb').values.map(function (x) { return x / 255; }), r = _a[0], g = _a[1], b = _a[2]; | ||
return 0.2126 * r + 0.7152 * g + 0.0722 * b; | ||
}, | ||
enumerable: true, | ||
configurable: true | ||
}); | ||
/** | ||
* Returns contrast ratio with other color. range from 0 to 21. | ||
* @see https://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef | ||
* @param {MooColor} color | ||
* @returns {number} 0-21 | ||
*/ | ||
MooColor.prototype.contrastRatioWith = function (color) { | ||
var max = Math.max(this.luminance, color.luminance); | ||
var min = Math.min(this.luminance, color.luminance); | ||
return (max + 0.05) / (min + 0.05); | ||
}; | ||
/** | ||
* Return true if contrast ratio >= 4.5 | ||
* @see https://www.w3.org/WAI/WCAG20/quickref/#qr-visual-audio-contrast-contrast | ||
* @param {MooColor} color | ||
* @returns {boolean} | ||
*/ | ||
MooColor.prototype.isContrastEnough = function (color) { | ||
return this.contrastRatioWith(color) >= 4.5; | ||
}; | ||
/** | ||
* Increase lightness. | ||
* @param {number} amount The amount from 0 to 100. | ||
* @returns {this} | ||
*/ | ||
MooColor.prototype.lighten = function (amount) { | ||
return this.manipulate('hsl', function (h, s, l) { | ||
l = Object(_util_util__WEBPACK_IMPORTED_MODULE_2__["clamp"])(l + amount, 0, 100); | ||
return [h, s, l]; | ||
}); | ||
}; | ||
/** | ||
* Decrease lightness. | ||
* @param {number} amount The amount from 0 to 100. | ||
* @returns {this} | ||
*/ | ||
MooColor.prototype.darken = function (amount) { | ||
return this.manipulate('hsl', function (h, s, l) { | ||
l = Object(_util_util__WEBPACK_IMPORTED_MODULE_2__["clamp"])(l - amount, 0, 100); | ||
return [h, s, l]; | ||
}); | ||
}; | ||
/** | ||
* Increase saturation. | ||
* @param {number} amount The amount from 0 to 100. | ||
* @returns {this} | ||
*/ | ||
MooColor.prototype.saturate = function (amount) { | ||
return this.manipulate('hsl', function (h, s, l) { | ||
s = Object(_util_util__WEBPACK_IMPORTED_MODULE_2__["clamp"])(s + amount, 0, 100); | ||
return [h, s, l]; | ||
}); | ||
}; | ||
/** | ||
* Decrease saturation. | ||
* @param {number} amount The amount from 0 to 100. | ||
* @returns {this} | ||
*/ | ||
MooColor.prototype.desaturate = function (amount) { | ||
return this.manipulate('hsl', function (h, s, l) { | ||
s = Object(_util_util__WEBPACK_IMPORTED_MODULE_2__["clamp"])(s - amount, 0, 100); | ||
return [h, s, l]; | ||
}); | ||
}; | ||
/** | ||
* Sets saturation value to 0. | ||
* @returns {this} | ||
*/ | ||
MooColor.prototype.grayscale = function () { | ||
return this.manipulate('hsl', function (h, s, l) { return [h, 0, l]; }); | ||
}; | ||
/** | ||
* Modify whiteness. | ||
* @param {number} amount The amount from -100 to 100. | ||
* @returns {this} | ||
*/ | ||
MooColor.prototype.whiten = function (amount) { | ||
var _this = this; | ||
return this.manipulate('hwb', function (h, w, b) { return _this.resolveHwb(h, Object(_util_util__WEBPACK_IMPORTED_MODULE_2__["clamp"])(w + amount, 0, 100), b); }); | ||
}; | ||
/** | ||
* Modify blackness. | ||
* @param {number} amount The amount from -100 to 100. | ||
* @returns {this} | ||
*/ | ||
MooColor.prototype.blacken = function (amount) { | ||
var _this = this; | ||
return this.manipulate('hwb', function (h, w, b) { return _this.resolveHwb(h, w, Object(_util_util__WEBPACK_IMPORTED_MODULE_2__["clamp"])(b + amount, 0, 100)); }); | ||
}; | ||
/** | ||
* Rotate hue value. | ||
* @param {number} d degree 0-360 | ||
* @returns {this} | ||
*/ | ||
MooColor.prototype.rotate = function (d) { | ||
return this.manipulate('hsl', function (h, s, l) { return [Object(_util_util__WEBPACK_IMPORTED_MODULE_2__["degree"])(h + d), s, l]; }); | ||
}; | ||
/** | ||
* Mix two colors. | ||
* @param {MooColor} color The color to mixed. | ||
* @param {number} [percent=50] The percentage value of color to be mixed. | ||
* @returns {MooColor} The mixed color that as a new instance of `MooColor`. | ||
*/ | ||
MooColor.prototype.mix = function (color, percent) { | ||
if (percent === void 0) { percent = 50; } | ||
percent /= 100; | ||
var m = this.getModel(); | ||
var c1 = this.getColorAs('rgb'); | ||
var c2 = color.getColorAs('rgb'); | ||
return new MooColor().setColor({ | ||
model: 'rgb', | ||
values: c1.values.map(function (v, i) { return v + (c2.values[i] - v) * percent; }), | ||
alpha: c1.alpha + (c2.alpha - c1.alpha) * percent, | ||
}).changeModel(m); | ||
}; | ||
/** | ||
* Sets color to the complement of a color. | ||
* | ||
* @returns {this} | ||
*/ | ||
MooColor.prototype.complement = function () { | ||
return this.manipulate('hsl', function (h, s, l) { return [Object(_util_util__WEBPACK_IMPORTED_MODULE_2__["degree"])(h + 180), s, l]; }); | ||
}; | ||
/** | ||
* Sets color to the inverse (negative) of a color. | ||
* | ||
* @param {number} [percent=100] The relative percent of the color that inverse. | ||
* @returns {this} | ||
*/ | ||
MooColor.prototype.invert = function (percent) { | ||
if (percent === void 0) { percent = 100; } | ||
percent /= 100; | ||
var absRound = function (x) { return Math.round(Math.abs(x)); }; | ||
return this.manipulate('rgb', function (r, g, b) { return [r, g, b].map(function (x) { return absRound(255 * percent - x); }); }); | ||
}; | ||
/** | ||
* Sets random color values as HWB color model. | ||
* | ||
* @param {RandomArguments} [{hue, white, black}={}] | ||
* @returns {this} | ||
*/ | ||
MooColor.prototype.random = function (_a) { | ||
var _b = _a === void 0 ? {} : _a, hue = _b.hue, white = _b.white, black = _b.black; | ||
_c = [hue, white, black].map(function (x, i) { | ||
if (typeof x === 'number') { | ||
return x; | ||
} | ||
else if (Array.isArray(x)) { | ||
var precision = i === 0 ? 0 : 2; | ||
return Object(_util_util__WEBPACK_IMPORTED_MODULE_2__["getRandom"])(Math.min.apply(Math, x), Math.max.apply(Math, x), precision); | ||
} | ||
else { | ||
return i === 0 ? Object(_util_util__WEBPACK_IMPORTED_MODULE_2__["getRandom"])(0, 360) : Object(_util_util__WEBPACK_IMPORTED_MODULE_2__["getRandom"])(0, 100, 2); | ||
} | ||
}), hue = _c[0], white = _c[1], black = _c[2]; | ||
return this.setColor({ | ||
model: 'hwb', | ||
values: this.resolveHwb(Object(_util_util__WEBPACK_IMPORTED_MODULE_2__["degree"])(hue), Object(_util_util__WEBPACK_IMPORTED_MODULE_2__["clamp"])(white, 0, 100), Object(_util_util__WEBPACK_IMPORTED_MODULE_2__["clamp"])(black, 0, 100)), | ||
alpha: 1, | ||
}); | ||
var _c; | ||
}; | ||
MooColor.prototype.manipulate = function (asModel, callback) { | ||
var m = this.color.model; | ||
var color = this.getColorAs(asModel); | ||
color.values = callback.apply(void 0, color.values); | ||
return this.setColor(color).changeModel(m); | ||
}; | ||
return MooColor; | ||
}(_color_formatter__WEBPACK_IMPORTED_MODULE_0__["ColorFormatter"])); | ||
/***/ }), | ||
/***/ "./src/util/util.ts": | ||
/*!**************************!*\ | ||
!*** ./src/util/util.ts ***! | ||
\**************************/ | ||
/*! exports provided: padStart, padEnd, clamp, degree, resolveAlpha, decimal, getRandom, arrayIsEqual */ | ||
/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
"use strict"; | ||
__webpack_require__.r(__webpack_exports__); | ||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "padStart", function() { return padStart; }); | ||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "padEnd", function() { return padEnd; }); | ||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "clamp", function() { return clamp; }); | ||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "degree", function() { return degree; }); | ||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "resolveAlpha", function() { return resolveAlpha; }); | ||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "decimal", function() { return decimal; }); | ||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getRandom", function() { return getRandom; }); | ||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "arrayIsEqual", function() { return arrayIsEqual; }); | ||
function padStart(str, length, chars) { | ||
var space = length - str.length; | ||
return space > 0 ? "" + makePad(chars, space) + str : str; | ||
} | ||
function padEnd(str, length, chars) { | ||
var space = length - str.length; | ||
return space > 0 ? "" + str + makePad(chars, space) : str; | ||
} | ||
function makePad(chars, limit) { | ||
while (chars.length < limit) { | ||
chars += chars; | ||
} | ||
return chars.length > limit ? chars.substring(chars.length - limit) : chars; | ||
} | ||
function clamp(num, min, max) { | ||
return Math.min(Math.max(min, num), max); | ||
} | ||
function degree(num) { | ||
num = typeof num === 'string' ? parseFloat(num) : num; | ||
return (num % 360 + 360) % 360; | ||
} | ||
function resolveAlpha(a) { | ||
a = typeof a === 'string' ? parseFloat(a) : a; | ||
return clamp(isNaN(a) ? 1 : a, 0, 1); | ||
} | ||
// @see: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/round | ||
function decimal(num, precision) { | ||
var factor = Math.pow(10, precision); | ||
return Math.round(num * factor) / factor; | ||
} | ||
function getRandom(min, max, precision) { | ||
if (precision === void 0) { precision = 0; } | ||
var num = Math.random() * (max - min) + min; | ||
return decimal(num, precision); | ||
} | ||
// https://stackoverflow.com/questions/7837456/how-to-compare-arrays-in-javascript#answer-19746771 | ||
function arrayIsEqual(arr1, arr2) { | ||
return arr1.length === arr2.length && arr1.every(function (v, i) { | ||
return Array.isArray(v) ? arrayIsEqual(v, arr2[i]) : v === arr2[i]; | ||
}); | ||
} | ||
/***/ }) | ||
/******/ ]); | ||
/******/ }); | ||
}); | ||
//# sourceMappingURL=moo-color.js.map |
@@ -1,1 +0,1 @@ | ||
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.MooColor=t():e.MooColor=t()}("undefined"!=typeof self?self:this,function(){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var a=t[n]={i:n,l:!1,exports:{}};return e[n].call(a.exports,a,a.exports,r),a.l=!0,a.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:n})},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=3)}([function(e,t,r){"use strict";function n(e,t){for(;e.length<t;)e+=e;return e.length>t?e.substring(e.length-t):e}function a(e,t,r){return Math.min(Math.max(t,e),r)}function o(e,t){var r=Math.pow(10,t);return Math.round(e*r)/r}t.f=function(e,t,r){var a=t-e.length;return a>0?""+n(r,a)+e:e},t.b=a,t.d=function(e){return((e="string"==typeof e?parseFloat(e):e)%360+360)%360},t.g=function(e){return e="string"==typeof e?parseFloat(e):e,a(isNaN(e)?1:e,0,1)},t.c=o,t.e=function(e,t,r){void 0===r&&(r=0);return o(Math.random()*(t-e)+e,r)},t.a=function e(t,r){return t.length===r.length&&t.every(function(t,n){return Array.isArray(t)?e(t,r[n]):t===r[n]})}},function(e,t,r){"use strict";t.b=function(e,t,r){e/=60,t/=100,r/=100;var n,a,o,s=(1-Math.abs(2*r-1))*t,u=s*(1-Math.abs(e%2-1)),i=r-s/2;switch(Math.floor(e)){case 0:n=s,a=u,o=0;break;case 1:n=u,a=s,o=0;break;case 2:n=0,a=s,o=u;break;case 3:n=0,a=u,o=s;break;case 4:n=u,a=0,o=s;break;case 5:n=s,a=0,o=u}return[n,a,o].map(function(e){return 255*(e+i)})},t.j=function(e,t,r){e/=255,t/=255,r/=255;var n,a,o,s=Math.max(e,t,r),u=Math.min(e,t,r),i=s-u;n=0===i?0:s===e?(t-r)/i%6*60:s===t?60*((r-e)/i+2):60*((e-t)/i+4);return o=(s+u)/2,a=0===i?0:i/(1-Math.abs(2*o-1)),[n,100*a,100*o]},t.f=function(e,t,r){var n=u(e,t,r),o=n[0],s=n[1],i=n[2];return a(o,s,i)},t.l=function(e,t,r){var n=o(e,t,r),a=n[0],u=n[1],i=n[2];return s(a,u,i)},t.a=function(e,t,r,n){return[255*(1-(e/=100))*(1-(n/=100)),255*(1-(t/=100))*(1-n),255*(1-(r/=100))*(1-n)]},t.h=function(e,t,r){e/=255,t/=255,r/=255;var n=1-Math.max(e,t,r);return[(1-e-n)/(1-n),(1-t-n)/(1-n),(1-r-n)/(1-n),n].map(function(e){return 100*e})},t.d=a,t.k=o,t.c=s,t.e=u,t.i=function(e,t,r,a,o){var s=[e,t,r];"number"==typeof a&&s.push(Math.round(255*a));var u=s.map(function(e){return Object(n.f)(e.toString(16),2,"0")}).join("");return o?function(e){var t=!0,r=e.match(/.{2}/g);return r.forEach(function(e){e.match(/(.)\1+/)||(t=!1)}),t?r.map(function(e){return e.substring(1)}).join(""):e}(u):u},t.g=i;var n=r(0);function a(e,t,r){var n,a,o,s=e/60,u=(r/=100)*(t/=100),i=u*(1-Math.abs(s%2-1)),c=r-u;switch(Math.floor(s)){case 0:n=u,a=i,o=0;break;case 1:n=i,a=u,o=0;break;case 2:n=0,a=u,o=i;break;case 3:n=0,a=i,o=u;break;case 4:n=i,a=0,o=u;break;case 5:n=u,a=0,o=i}return[n,a,o].map(function(e){return 255*(e+c)})}function o(e,t,r){e/=255,t/=255,r/=255;var n=Math.max(e,t,r),a=n-Math.min(e,t,r);return[0===a?0:n===e?(t-r)/a%6*60:n===t?60*((r-e)/a+2):60*((e-t)/a+4),100*(0===n?0:a/n),100*n]}function s(e,t,r){return[e,100*((1-(t/=100))*(r/=100)),100*(1-r)]}function u(e,t,r){var n;return e=(n=i(e,t,r))[0],t=n[1],r=n[2],[e,100*(1-(t/=100)/(1-(r/=100))),100*(1-r)]}function i(e,t,r){var n=t+r;return n>100&&(t=100*Number((t/n).toFixed(4)),r=100*Number((r/n).toFixed(4))),[e,t,r]}},function(e,t,r){"use strict";var n=r(5);r.n(n);t.a=n},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),r.d(t,"MooColor",function(){return i});var n,a=r(4),o=r(6),s=r(0),u=this&&this.__extends||(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])},function(e,t){function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),i=function(e){function t(t){var r=e.call(this)||this;return t=t||"#000",r.setColorByParser(t),r}return u(t,e),t.mix=function(e,r,n){void 0===n&&(n=50);var a="string"==typeof e?new t(e):e;return("string"==typeof r?new t(r):r).mix(a,n)},t.prototype.setColorByParser=function(e){var t=Object(o.a)(e);if(!t)throw new Error("parsing error!");return this.setColor(t)},t.prototype.clone=function(){return(new t).setColor(this.color)},Object.defineProperty(t.prototype,"brightness",{get:function(){var e=this.getColorAs("rgb").values;return(299*e[0]+587*e[1]+114*e[2])/1e3},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isLight",{get:function(){return this.brightness>=128},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isDark",{get:function(){return this.brightness<128},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"luminance",{get:function(){var e=this.getColorAs("rgb").values.map(function(e){return e/255});return.2126*e[0]+.7152*e[1]+.0722*e[2]},enumerable:!0,configurable:!0}),t.prototype.contrastRatioWith=function(e){return(Math.max(this.luminance,e.luminance)+.05)/(Math.min(this.luminance,e.luminance)+.05)},t.prototype.isContrastEnough=function(e){return this.contrastRatioWith(e)>=4.5},t.prototype.lighten=function(e){return this.manipulate("hsl",function(t,r,n){return[t,r,n=Object(s.b)(n+e,0,100)]})},t.prototype.darken=function(e){return this.manipulate("hsl",function(t,r,n){return[t,r,n=Object(s.b)(n-e,0,100)]})},t.prototype.saturate=function(e){return this.manipulate("hsl",function(t,r,n){return[t,r=Object(s.b)(r+e,0,100),n]})},t.prototype.desaturate=function(e){return this.manipulate("hsl",function(t,r,n){return[t,r=Object(s.b)(r-e,0,100),n]})},t.prototype.grayscale=function(){return this.manipulate("hsl",function(e,t,r){return[e,0,r]})},t.prototype.whiten=function(e){var t=this;return this.manipulate("hwb",function(r,n,a){return t.resolveHwb(r,Object(s.b)(n+e,0,100),a)})},t.prototype.blacken=function(e){var t=this;return this.manipulate("hwb",function(r,n,a){return t.resolveHwb(r,n,Object(s.b)(a+e,0,100))})},t.prototype.rotate=function(e){return this.manipulate("hsl",function(t,r,n){return[Object(s.d)(t+e),r,n]})},t.prototype.mix=function(e,r){void 0===r&&(r=50),r/=100;var n=this.getModel(),a=this.getColorAs("rgb"),o=e.getColorAs("rgb");return(new t).setColor({model:"rgb",values:a.values.map(function(e,t){return e+(o.values[t]-e)*r}),alpha:a.alpha+(o.alpha-a.alpha)*r}).changeModel(n)},t.prototype.complement=function(){return this.manipulate("hsl",function(e,t,r){return[Object(s.d)(e+180),t,r]})},t.prototype.invert=function(e){void 0===e&&(e=100),e/=100;return this.manipulate("rgb",function(t,r,n){return[t,r,n].map(function(t){return function(e){return Math.round(Math.abs(e))}(255*e-t)})})},t.prototype.random=function(e){var t,r=void 0===e?{}:e,n=r.hue,a=r.white,o=r.black;return n=(t=[n,a,o].map(function(e,t){if("number"==typeof e)return e;if(Array.isArray(e)){var r=0===t?0:2;return Object(s.e)(Math.min.apply(Math,e),Math.max.apply(Math,e),r)}return 0===t?Object(s.e)(0,360):Object(s.e)(0,100,2)}))[0],a=t[1],o=t[2],this.setColor({model:"hwb",values:this.resolveHwb(Object(s.d)(n),Object(s.b)(a,0,100),Object(s.b)(o,0,100)),alpha:1})},t.prototype.manipulate=function(e,t){var r=this.color.model,n=this.getColorAs(e);return n.values=t.apply(void 0,n.values),this.setColor(n).changeModel(r)},t}(a.a)},function(e,t,r){"use strict";r.d(t,"a",function(){return s});var n=r(1),a=r(2),o=r(0),s=function(){function e(){this.resolveHwb=n.g}return e.prototype.setColor=function(e){return e.alpha=Object(o.g)(e.alpha),this.color=e,this},e.prototype.getColor=function(){return this.color},e.prototype.getColorAs=function(e){return this.color.model===e?this.color:this.convert(this.color,e)},e.prototype.getModel=function(){return this.color?this.color.model:void 0},e.prototype.changeModel=function(e){return this.color.model===e?this:this.setColor(this.convert(this.color,e))},e.prototype.getAlpha=function(){return this.color.alpha},e.prototype.setAlpha=function(e){return this.color.alpha=e,this},e.prototype.convert=function(e,t){var r;switch(e.model){case"rgb":r=this.convertFromRgb(e.values,t);break;case"hwb":r=this.convertFromHwb(e.values,t);break;case"hsl":r=this.convertFromHsl(e.values,t);break;case"hsv":r=this.convertFromHsv(e.values,t);break;case"cmyk":r=this.convertFromCmyk(e.values,t)}if(!r.length)throw new Error("Converting Error!");return{model:t,values:r,alpha:e.alpha}},e.prototype.toString=function(e){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];switch(e=e||this.color.model){case"hex":return this.toHex.apply(this,t);case"hwb":return this.toHwb();case"hsl":return this.toHsl();case"hsv":return this.toHsv();case"cmyk":return this.toCmyk();default:return this.toRgb.apply(this,t)}},e.prototype.toHex=function(e){void 0===e&&(e="full");var t=this.getColorAs("rgb"),r=t.values.map(function(e){return Math.round(e)}),s=r[0],u=r[1],i=r[2],c=1===t.alpha?null:t.alpha;switch(e){case"name":return function(){for(var e="",t=0,r=Object.keys(a.a);t<r.length;t++){var l=r[t];if(Object(o.a)(a.a[l],[s,u,i])){e=l;break}}return null===c&&""!==e?e:"#"+n.i(s,u,i,c,!0)}();case"short":return"#"+n.i(s,u,i,c,!0);case"full":default:return"#"+n.i(s,u,i,c)}},e.prototype.toRgb=function(e){void 0===e&&(e="default");var t,r=this.getColorAs("rgb"),n=r.values.map(function(e){return Math.round(e)}),a=n[0],o=n[1],s=n[2];return"percent"===e&&(a=(t=[a,o,s].map(function(e){return e/255*100+"%"}))[0],o=t[1],s=t[2]),1===r.alpha?"rgb("+a+", "+o+", "+s+")":"rgba("+a+", "+o+", "+s+", "+r.alpha+")"},e.prototype.toHwb=function(){var e=this.getColorAs("hwb"),t=e.values.map(function(e){return Object(o.c)(e,2)});return"hwb("+t[0]+", "+t[1]+"%, "+t[2]+"%"+(1===e.alpha?"":", "+e.alpha)+")"},e.prototype.toHsl=function(){var e=this.getColorAs("hsl"),t=e.values.map(function(e){return Object(o.c)(e,2)}),r=t[0],n=t[1],a=t[2];return 1===e.alpha?"hsl("+r+", "+n+"%, "+a+"%)":"hsla("+r+", "+n+"%, "+a+"%, "+e.alpha+")"},e.prototype.toHsv=function(){var e=this.getColorAs("hsv"),t=e.values.map(function(e){return Object(o.c)(e,2)}),r=t[0],n=t[1],a=t[2];return 1===e.alpha?"hsv("+r+", "+n+"%, "+a+"%)":"hsva("+r+", "+n+"%, "+a+"%, "+e.alpha+")"},e.prototype.toCmyk=function(){var e=this.getColorAs("cmyk"),t=e.values.map(function(e){return Object(o.c)(e,2)});return"cmyk("+t[0]+"%, "+t[1]+"%, "+t[2]+"%, "+t[3]+"%"+(1===e.alpha?"":", "+e.alpha)+")"},e.prototype.convertFromRgb=function(e,t){var r=e[0],a=e[1],o=e[2];switch(t){case"rgb":break;case"hwb":e=n.l(r,a,o);break;case"hsl":e=n.j(r,a,o);break;case"hsv":e=n.k(r,a,o);break;case"cmyk":e=n.h(r,a,o)}return e},e.prototype.convertFromHwb=function(e,t){var r=e[0],a=e[1],o=e[2],s=n.f(r,a,o),u=s[0],i=s[1],c=s[2];switch(t){case"rgb":e=s;break;case"hwb":break;case"hsl":e=n.j(u,i,c);break;case"hsv":e=n.e(r,a,o);break;case"cmyk":e=n.h(u,i,c)}return e},e.prototype.convertFromHsl=function(e,t){var r=e[0],a=e[1],o=e[2],s=n.b(r,a,o),u=s[0],i=s[1],c=s[2];switch(t){case"rgb":e=s;break;case"hwb":e=n.l(u,i,c);break;case"hsl":break;case"hsv":e=n.k(u,i,c);break;case"cmyk":e=n.h(u,i,c)}return e},e.prototype.convertFromHsv=function(e,t){var r=e[0],a=e[1],o=e[2],s=n.d(r,a,o),u=s[0],i=s[1],c=s[2];switch(t){case"rgb":e=s;break;case"hwb":e=n.c(r,a,o);break;case"hsl":e=n.j(u,i,c);break;case"hsv":break;case"cmyk":e=n.h(u,i,c)}return e},e.prototype.convertFromCmyk=function(e,t){var r=e[0],a=e[1],o=e[2],s=e[3],u=n.a(r,a,o,s),i=u[0],c=u[1],l=u[2];switch(t){case"rgb":e=u;break;case"hwb":e=n.l(i,c,l);break;case"hsl":e=n.j(i,c,l);break;case"hsv":e=n.k(i,c,l)}return e},e}()},function(e,t,r){"use strict";e.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}},function(e,t,r){"use strict";t.a=function(e){if("string"==typeof e){if(e in a.a)return{model:"rgb",values:a.a[e],alpha:1};if("transparent"===e)return{model:"rgb",values:[0,0,0],alpha:0};var t=e.substr(0,3).toLowerCase();switch(t){case"hwb":return function(e){var t=/^hwba?\s*\(\s*([+-]?\d*[\.]?\d+)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/i;if(t.test(e)){var r=e.match(t),a=r[1],s=r[2],u=r[3],i=r[4];return{model:"hwb",values:Object(n.g)(Object(o.d)(a),Object(o.b)(parseFloat(s),0,100),Object(o.b)(parseFloat(u),0,100)),alpha:Object(o.g)(i)}}return null}(e);case"hsl":return function(e){var t=/^hsla?\s*\(\s*([+-]?\d*[\.]?\d+)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/i;if(t.test(e)){var r=e.match(t),n=r[1],a=r[2],s=r[3],u=r[4];return{model:"hsl",values:[Object(o.d)(n),Object(o.b)(parseFloat(a),0,100),Object(o.b)(parseFloat(s),0,100)],alpha:Object(o.g)(u)}}return null}(e);case"hsv":return function(e){var t=/^hsva?\s*\(\s*([+-]?\d*[\.]?\d+)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/i;if(t.test(e)){var r=e.match(t),n=r[1],a=r[2],s=r[3],u=r[4];return{model:"hsv",values:[Object(o.d)(n),Object(o.b)(parseFloat(a),0,100),Object(o.b)(parseFloat(s),0,100)],alpha:Object(o.g)(u)}}return null}(e);case"cmy":return function(e){var t=/^cmyk\s*\(\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/i;if(t.test(e)){var r=e.match(t),n=r[1],a=r[2],s=r[3],u=r[4],i=r[5];return{model:"cmyk",values:[Object(o.b)(parseFloat(n),0,100),Object(o.b)(parseFloat(a),0,100),Object(o.b)(parseFloat(s),0,100),Object(o.b)(parseFloat(u),0,100)],alpha:Object(o.g)(i)}}return null}(e);default:return function(e){var t,r,n=/^#?([a-f0-9]{6})([a-f0-9]{2})?$/i,a=/^#?([a-f0-9]{3})([a-f0-9]{1})?$/i,s=/^rgba?\s*\(\s*([+-]?\d+)\s*,\s*([+-]?\d+)\s*,\s*([+-]?\d+)\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/,u=/^rgba?\s*\(\s*([+-]?[\d\.]+)\%\s*,\s*([+-]?[\d\.]+)\%\s*,\s*([+-]?[\d\.]+)\%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/,i=function(e){return Math.round(parseInt(e,16)/255*100)/100};if(n.test(e)){var c=e.match(n),l=c[1],h=c[2];t=l.match(/.{2}/g).map(function(e){return parseInt(e,16)}),r=h?i(h):1}else if(a.test(e)){var p=e.match(a),l=p[1],h=p[2];t=l.match(/.{1}/g).map(function(e){return parseInt(e+e,16)}),r=h?i(h):1}else if(s.test(e)){var b=e.match(s),f=b[1],d=b[2],m=b[3],h=b[4];t=[f,d,m].map(function(e){return parseInt(e,0)}),r=Object(o.g)(h)}else{if(!u.test(e))return null;var g=e.match(u),f=g[1],d=g[2],m=g[3],h=g[4];t=[f,d,m].map(function(e){return Math.round(2.55*parseFloat(e))}),r=Object(o.g)(h)}return{model:"rgb",values:t.map(function(e){return Object(o.b)(e,0,255)}),alpha:Object(o.b)(r,0,1)}}(e)}}};var n=r(1),a=r(2),o=r(0)}])}); | ||
!function(t,r){"object"==typeof exports&&"object"==typeof module?module.exports=r():"function"==typeof define&&define.amd?define([],r):"object"==typeof exports?exports.MooColor=r():t.MooColor=r()}(this,function(){return function(t){var r={};function e(n){if(r[n])return r[n].exports;var o=r[n]={i:n,l:!1,exports:{}};return t[n].call(o.exports,o,o.exports,e),o.l=!0,o.exports}return e.m=t,e.c=r,e.d=function(t,r,n){e.o(t,r)||Object.defineProperty(t,r,{configurable:!1,enumerable:!0,get:n})},e.r=function(t){Object.defineProperty(t,"__esModule",{value:!0})},e.n=function(t){var r=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(r,"a",r),r},e.o=function(t,r){return Object.prototype.hasOwnProperty.call(t,r)},e.p="",e(e.s="./src/moo-color.ts")}({"./node_modules/color-name/index.js":function(t,r,e){"use strict";t.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}},"./src/color-converter.ts":function(t,r,e){"use strict";e.r(r),e.d(r,"hslToRgb",function(){return o}),e.d(r,"rgbToHsl",function(){return a}),e.d(r,"hwbToRgb",function(){return u}),e.d(r,"rgbToHwb",function(){return s}),e.d(r,"cmykToRgb",function(){return i}),e.d(r,"rgbToCmyk",function(){return c}),e.d(r,"hsvToRgb",function(){return l}),e.d(r,"rgbToHsv",function(){return h}),e.d(r,"hsvToHwb",function(){return p}),e.d(r,"hwbToHsv",function(){return f}),e.d(r,"rgbToHex",function(){return b}),e.d(r,"hexToRgb",function(){return d}),e.d(r,"resolveHwb",function(){return m});var n=e("./src/util/util.ts");function o(t,r,e){t/=60,r/=100,e/=100;var n,o,a,u=(1-Math.abs(2*e-1))*r,s=u*(1-Math.abs(t%2-1)),i=e-u/2;switch(Math.floor(t)){case 0:n=u,o=s,a=0;break;case 1:n=s,o=u,a=0;break;case 2:n=0,o=u,a=s;break;case 3:n=0,o=s,a=u;break;case 4:n=s,o=0,a=u;break;case 5:n=u,o=0,a=s}return[n,o,a].map(function(t){return 255*(t+i)})}function a(t,r,e){t/=255,r/=255,e/=255;var n,o=Math.max(t,r,e),a=Math.min(t,r,e),u=o-a;return n=(o+a)/2,[0===u?0:o===t?(r-e)/u%6*60:o===r?60*((e-t)/u+2):60*((t-r)/u+4),100*(0===u?0:u/(1-Math.abs(2*n-1))),100*n]}function u(t,r,e){var n=f(t,r,e);return l(n[0],n[1],n[2])}function s(t,r,e){var n=h(t,r,e);return p(n[0],n[1],n[2])}function i(t,r,e,n){return[255*(1-(t/=100))*(1-(n/=100)),255*(1-(r/=100))*(1-n),255*(1-(e/=100))*(1-n)]}function c(t,r,e){t/=255,r/=255,e/=255;var n=1-Math.max(t,r,e);return[(1-t-n)/(1-n),(1-r-n)/(1-n),(1-e-n)/(1-n),n].map(function(t){return 100*t})}function l(t,r,e){var n,o,a,u=t/60,s=(e/=100)*(r/=100),i=s*(1-Math.abs(u%2-1)),c=e-s;switch(Math.floor(u)){case 0:n=s,o=i,a=0;break;case 1:n=i,o=s,a=0;break;case 2:n=0,o=s,a=i;break;case 3:n=0,o=i,a=s;break;case 4:n=i,o=0,a=s;break;case 5:n=s,o=0,a=i}return[n,o,a].map(function(t){return 255*(t+c)})}function h(t,r,e){t/=255,r/=255,e/=255;var n=Math.max(t,r,e),o=n-Math.min(t,r,e);return[0===o?0:n===t?(r-e)/o%6*60:n===r?60*((e-t)/o+2):60*((t-r)/o+4),100*(0===n?0:o/n),100*n]}function p(t,r,e){return[t,100*((1-(r/=100))*(e/=100)),100*(1-e)]}function f(t,r,e){var n;return t=(n=m(t,r,e))[0],r=n[1],e=n[2],[t,100*(1-(r/=100)/(1-(e/=100))),100*(1-e)]}function b(t,r,e,o,a){var u=[t,r,e];"number"==typeof o&&u.push(Math.round(255*o));var s=u.map(function(t){return Object(n.padStart)(t.toString(16),2,"0")}).join("");return a?function(t){var r=!0,e=t.match(/.{2}/g);return e.forEach(function(t){t.match(/(.)\1+/)||(r=!1)}),r?e.map(function(t){return t.substring(1)}).join(""):t}(s):s}function d(t){return t.replace(/^#?([a-f\d])([a-f\d])([a-f\d])([a-f\d])?$/i,function(t,r,e,n,o){return r+r+e+e+n+n+(o=void 0===o?"":o)+o}).match(/.{2}/g).map(function(t,r){return 3!==r?parseInt(t,16):parseInt(t,16)/255})}function m(t,r,e){var n=r+e;return n>100&&(r=100*Number((r/n).toFixed(4)),e=100*Number((e/n).toFixed(4))),[t,r,e]}},"./src/color-formatter.ts":function(t,r,e){"use strict";e.r(r),e.d(r,"ColorFormatter",function(){return u});var n=e("./src/color-converter.ts"),o=e("./src/color-names.ts"),a=e("./src/util/util.ts"),u=function(){function t(){this.resolveHwb=n.resolveHwb}return t.prototype.setColor=function(t){return t.alpha=Object(a.resolveAlpha)(t.alpha),this.color=t,this},t.prototype.getColor=function(){return this.color},t.prototype.getColorAs=function(t){return this.color.model===t?this.color:this.convert(this.color,t)},t.prototype.getModel=function(){return this.color?this.color.model:void 0},t.prototype.changeModel=function(t){return this.color.model===t?this:this.setColor(this.convert(this.color,t))},t.prototype.getAlpha=function(){return this.color.alpha},t.prototype.setAlpha=function(t){return this.color.alpha=t,this},t.prototype.convert=function(t,r){var e;switch(t.model){case"rgb":e=this.convertFromRgb(t.values,r);break;case"hwb":e=this.convertFromHwb(t.values,r);break;case"hsl":e=this.convertFromHsl(t.values,r);break;case"hsv":e=this.convertFromHsv(t.values,r);break;case"cmyk":e=this.convertFromCmyk(t.values,r)}if(!e.length)throw new Error("Converting Error!");return{model:r,values:e,alpha:t.alpha}},t.prototype.toString=function(t){for(var r=[],e=1;e<arguments.length;e++)r[e-1]=arguments[e];switch(t=t||this.color.model){case"hex":return this.toHex.apply(this,r);case"hwb":return this.toHwb();case"hsl":return this.toHsl();case"hsv":return this.toHsv();case"cmyk":return this.toCmyk();default:return this.toRgb.apply(this,r)}},t.prototype.toHex=function(t){void 0===t&&(t="full");var r=this.getColorAs("rgb"),e=r.values.map(function(t){return Math.round(t)}),u=e[0],s=e[1],i=e[2],c=1===r.alpha?null:r.alpha;switch(t){case"name":return function(){for(var t="",r=0,e=Object.keys(o.default);r<e.length;r++){var l=e[r];if(Object(a.arrayIsEqual)(o.default[l],[u,s,i])){t=l;break}}return null===c&&""!==t?t:"#"+n.rgbToHex(u,s,i,c,!0)}();case"short":return"#"+n.rgbToHex(u,s,i,c,!0);case"full":default:return"#"+n.rgbToHex(u,s,i,c)}},t.prototype.toRgb=function(t){void 0===t&&(t="default");var r,e=this.getColorAs("rgb"),n=e.values.map(function(t){return Math.round(t)}),o=n[0],a=n[1],u=n[2];return"percent"===t&&(o=(r=[o,a,u].map(function(t){return t/255*100+"%"}))[0],a=r[1],u=r[2]),1===e.alpha?"rgb("+o+", "+a+", "+u+")":"rgba("+o+", "+a+", "+u+", "+e.alpha+")"},t.prototype.toHwb=function(){var t=this.getColorAs("hwb"),r=t.values.map(function(t){return Object(a.decimal)(t,2)});return"hwb("+r[0]+", "+r[1]+"%, "+r[2]+"%"+(1===t.alpha?"":", "+t.alpha)+")"},t.prototype.toHsl=function(){var t=this.getColorAs("hsl"),r=t.values.map(function(t){return Object(a.decimal)(t,2)}),e=r[0],n=r[1],o=r[2];return 1===t.alpha?"hsl("+e+", "+n+"%, "+o+"%)":"hsla("+e+", "+n+"%, "+o+"%, "+t.alpha+")"},t.prototype.toHsv=function(){var t=this.getColorAs("hsv"),r=t.values.map(function(t){return Object(a.decimal)(t,2)}),e=r[0],n=r[1],o=r[2];return 1===t.alpha?"hsv("+e+", "+n+"%, "+o+"%)":"hsva("+e+", "+n+"%, "+o+"%, "+t.alpha+")"},t.prototype.toCmyk=function(){var t=this.getColorAs("cmyk"),r=t.values.map(function(t){return Object(a.decimal)(t,2)});return"cmyk("+r[0]+"%, "+r[1]+"%, "+r[2]+"%, "+r[3]+"%"+(1===t.alpha?"":", "+t.alpha)+")"},t.prototype.convertFromRgb=function(t,r){var e=t[0],o=t[1],a=t[2];switch(r){case"rgb":return[e,o,a];case"hwb":return n.rgbToHwb(e,o,a);case"hsl":return n.rgbToHsl(e,o,a);case"hsv":return n.rgbToHsv(e,o,a);case"cmyk":return n.rgbToCmyk(e,o,a)}},t.prototype.convertFromHwb=function(t,r){var e=t[0],o=t[1],a=t[2],u=n.hwbToRgb(e,o,a),s=u[0],i=u[1],c=u[2];switch(r){case"rgb":return[s,i,c];case"hwb":return[e,o,a];case"hsl":return n.rgbToHsl(s,i,c);case"hsv":return n.hwbToHsv(e,o,a);case"cmyk":return n.rgbToCmyk(s,i,c)}},t.prototype.convertFromHsl=function(t,r){var e=t[0],o=t[1],a=t[2],u=n.hslToRgb(e,o,a),s=u[0],i=u[1],c=u[2];switch(r){case"rgb":return[s,i,c];case"hwb":return n.rgbToHwb(s,i,c);case"hsl":return[e,o,a];case"hsv":return n.rgbToHsv(s,i,c);case"cmyk":return n.rgbToCmyk(s,i,c)}},t.prototype.convertFromHsv=function(t,r){var e=t[0],o=t[1],a=t[2],u=n.hsvToRgb(e,o,a),s=u[0],i=u[1],c=u[2];switch(r){case"rgb":return[s,i,c];case"hwb":return n.hsvToHwb(e,o,a);case"hsl":return n.rgbToHsl(s,i,c);case"hsv":return[e,o,a];case"cmyk":return n.rgbToCmyk(s,i,c)}},t.prototype.convertFromCmyk=function(t,r){var e=t[0],o=t[1],a=t[2],u=t[3],s=n.cmykToRgb(e,o,a,u),i=s[0],c=s[1],l=s[2];switch(r){case"rgb":return[i,c,l];case"hwb":return n.rgbToHwb(i,c,l);case"hsl":return n.rgbToHsl(i,c,l);case"hsv":return n.rgbToHsv(i,c,l);case"cmyk":return[e,o,a,u]}},t}()},"./src/color-names.ts":function(t,r,e){"use strict";e.r(r);var n=e("./node_modules/color-name/index.js");r.default=n},"./src/input-parser.ts":function(t,r,e){"use strict";e.r(r),e.d(r,"default",function(){return u});var n=e("./src/color-converter.ts"),o=e("./src/color-names.ts"),a=e("./src/util/util.ts");function u(t){if("string"==typeof t){if(t in o.default)return{model:"rgb",values:o.default[t],alpha:1};if("transparent"===t)return{model:"rgb",values:[0,0,0],alpha:0};switch(t.substr(0,3).toLowerCase()){case"hwb":return function(t){var r=/^hwba?\s*\(\s*([+-]?\d*[\.]?\d+)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/i;if(r.test(t)){var e=t.match(r),o=e[1],u=e[2],s=e[3],i=e[4];return{model:"hwb",values:Object(n.resolveHwb)(Object(a.degree)(o),Object(a.clamp)(parseFloat(u),0,100),Object(a.clamp)(parseFloat(s),0,100)),alpha:Object(a.resolveAlpha)(i)}}return null}(t);case"hsl":return function(t){var r=/^hsla?\s*\(\s*([+-]?\d*[\.]?\d+)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/i;if(r.test(t)){var e=t.match(r),n=e[1],o=e[2],u=e[3],s=e[4];return{model:"hsl",values:[Object(a.degree)(n),Object(a.clamp)(parseFloat(o),0,100),Object(a.clamp)(parseFloat(u),0,100)],alpha:Object(a.resolveAlpha)(s)}}return null}(t);case"hsv":return function(t){var r=/^hsva?\s*\(\s*([+-]?\d*[\.]?\d+)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/i;if(r.test(t)){var e=t.match(r),n=e[1],o=e[2],u=e[3],s=e[4];return{model:"hsv",values:[Object(a.degree)(n),Object(a.clamp)(parseFloat(o),0,100),Object(a.clamp)(parseFloat(u),0,100)],alpha:Object(a.resolveAlpha)(s)}}return null}(t);case"cmy":return function(t){var r=/^cmyk\s*\(\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/i;if(r.test(t)){var e=t.match(r),n=e[1],o=e[2],u=e[3],s=e[4],i=e[5];return{model:"cmyk",values:[Object(a.clamp)(parseFloat(n),0,100),Object(a.clamp)(parseFloat(o),0,100),Object(a.clamp)(parseFloat(u),0,100),Object(a.clamp)(parseFloat(s),0,100)],alpha:Object(a.resolveAlpha)(i)}}return null}(t);default:return function(t){var r,e,n=/^#?([a-f0-9]{6})([a-f0-9]{2})?$/i,o=/^#?([a-f0-9]{3})([a-f0-9]{1})?$/i,u=/^rgba?\s*\(\s*([+-]?\d+)\s*,\s*([+-]?\d+)\s*,\s*([+-]?\d+)\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/,s=/^rgba?\s*\(\s*([+-]?[\d\.]+)\%\s*,\s*([+-]?[\d\.]+)\%\s*,\s*([+-]?[\d\.]+)\%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/,i=function(t){return Math.round(parseInt(t,16)/255*100)/100};if(n.test(t)){var c=t.match(n),l=c[1],h=c[2];r=l.match(/.{2}/g).map(function(t){return parseInt(t,16)}),e=h?i(h):1}else if(o.test(t)){var p=t.match(o),l=p[1],h=p[2];r=l.match(/.{1}/g).map(function(t){return parseInt(t+t,16)}),e=h?i(h):1}else if(u.test(t)){var f=t.match(u),b=f[1],d=f[2],m=f[3],h=f[4];r=[b,d,m].map(function(t){return parseInt(t,0)}),e=Object(a.resolveAlpha)(h)}else{if(!s.test(t))return null;var g=t.match(s),b=g[1],d=g[2],m=g[3],h=g[4];r=[b,d,m].map(function(t){return Math.round(2.55*parseFloat(t))}),e=Object(a.resolveAlpha)(h)}return{model:"rgb",values:r.map(function(t){return Object(a.clamp)(t,0,255)}),alpha:Object(a.clamp)(e,0,1)}}(t)}}}},"./src/moo-color.ts":function(t,r,e){"use strict";e.r(r),e.d(r,"MooColor",function(){return i});var n,o=e("./src/color-formatter.ts"),a=e("./src/input-parser.ts"),u=e("./src/util/util.ts"),s=(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,r){t.__proto__=r}||function(t,r){for(var e in r)r.hasOwnProperty(e)&&(t[e]=r[e])},function(t,r){function e(){this.constructor=t}n(t,r),t.prototype=null===r?Object.create(r):(e.prototype=r.prototype,new e)}),i=function(t){function r(r){var e=t.call(this)||this;return r=r||"#000",e.setColorByParser(r),e}return s(r,t),r.mix=function(t,e,n){void 0===n&&(n=50);var o="string"==typeof t?new r(t):t;return("string"==typeof e?new r(e):e).mix(o,n)},r.prototype.setColorByParser=function(t){var r=Object(a.default)(t);if(!r)throw new Error("parsing error!");return this.setColor(r)},r.prototype.clone=function(){return(new r).setColor(this.color)},Object.defineProperty(r.prototype,"brightness",{get:function(){var t=this.getColorAs("rgb").values;return(299*t[0]+587*t[1]+114*t[2])/1e3},enumerable:!0,configurable:!0}),Object.defineProperty(r.prototype,"isLight",{get:function(){return this.brightness>=128},enumerable:!0,configurable:!0}),Object.defineProperty(r.prototype,"isDark",{get:function(){return this.brightness<128},enumerable:!0,configurable:!0}),Object.defineProperty(r.prototype,"luminance",{get:function(){var t=this.getColorAs("rgb").values.map(function(t){return t/255});return.2126*t[0]+.7152*t[1]+.0722*t[2]},enumerable:!0,configurable:!0}),r.prototype.contrastRatioWith=function(t){return(Math.max(this.luminance,t.luminance)+.05)/(Math.min(this.luminance,t.luminance)+.05)},r.prototype.isContrastEnough=function(t){return this.contrastRatioWith(t)>=4.5},r.prototype.lighten=function(t){return this.manipulate("hsl",function(r,e,n){return[r,e,n=Object(u.clamp)(n+t,0,100)]})},r.prototype.darken=function(t){return this.manipulate("hsl",function(r,e,n){return[r,e,n=Object(u.clamp)(n-t,0,100)]})},r.prototype.saturate=function(t){return this.manipulate("hsl",function(r,e,n){return[r,e=Object(u.clamp)(e+t,0,100),n]})},r.prototype.desaturate=function(t){return this.manipulate("hsl",function(r,e,n){return[r,e=Object(u.clamp)(e-t,0,100),n]})},r.prototype.grayscale=function(){return this.manipulate("hsl",function(t,r,e){return[t,0,e]})},r.prototype.whiten=function(t){var r=this;return this.manipulate("hwb",function(e,n,o){return r.resolveHwb(e,Object(u.clamp)(n+t,0,100),o)})},r.prototype.blacken=function(t){var r=this;return this.manipulate("hwb",function(e,n,o){return r.resolveHwb(e,n,Object(u.clamp)(o+t,0,100))})},r.prototype.rotate=function(t){return this.manipulate("hsl",function(r,e,n){return[Object(u.degree)(r+t),e,n]})},r.prototype.mix=function(t,e){void 0===e&&(e=50),e/=100;var n=this.getModel(),o=this.getColorAs("rgb"),a=t.getColorAs("rgb");return(new r).setColor({model:"rgb",values:o.values.map(function(t,r){return t+(a.values[r]-t)*e}),alpha:o.alpha+(a.alpha-o.alpha)*e}).changeModel(n)},r.prototype.complement=function(){return this.manipulate("hsl",function(t,r,e){return[Object(u.degree)(t+180),r,e]})},r.prototype.invert=function(t){void 0===t&&(t=100),t/=100;return this.manipulate("rgb",function(r,e,n){return[r,e,n].map(function(r){return function(t){return Math.round(Math.abs(t))}(255*t-r)})})},r.prototype.random=function(t){var r,e=void 0===t?{}:t,n=e.hue,o=e.white,a=e.black;return n=(r=[n,o,a].map(function(t,r){if("number"==typeof t)return t;if(Array.isArray(t)){var e=0===r?0:2;return Object(u.getRandom)(Math.min.apply(Math,t),Math.max.apply(Math,t),e)}return 0===r?Object(u.getRandom)(0,360):Object(u.getRandom)(0,100,2)}))[0],o=r[1],a=r[2],this.setColor({model:"hwb",values:this.resolveHwb(Object(u.degree)(n),Object(u.clamp)(o,0,100),Object(u.clamp)(a,0,100)),alpha:1})},r.prototype.manipulate=function(t,r){var e=this.color.model,n=this.getColorAs(t);return n.values=r.apply(void 0,n.values),this.setColor(n).changeModel(e)},r}(o.ColorFormatter)},"./src/util/util.ts":function(t,r,e){"use strict";function n(t,r,e){var n=r-t.length;return n>0?""+a(e,n)+t:t}function o(t,r,e){var n=r-t.length;return n>0?""+t+a(e,n):t}function a(t,r){for(;t.length<r;)t+=t;return t.length>r?t.substring(t.length-r):t}function u(t,r,e){return Math.min(Math.max(r,t),e)}function s(t){return((t="string"==typeof t?parseFloat(t):t)%360+360)%360}function i(t){return t="string"==typeof t?parseFloat(t):t,u(isNaN(t)?1:t,0,1)}function c(t,r){var e=Math.pow(10,r);return Math.round(t*e)/e}function l(t,r,e){return void 0===e&&(e=0),c(Math.random()*(r-t)+t,e)}function h(t,r){return t.length===r.length&&t.every(function(t,e){return Array.isArray(t)?h(t,r[e]):t===r[e]})}e.r(r),e.d(r,"padStart",function(){return n}),e.d(r,"padEnd",function(){return o}),e.d(r,"clamp",function(){return u}),e.d(r,"degree",function(){return s}),e.d(r,"resolveAlpha",function(){return i}),e.d(r,"decimal",function(){return c}),e.d(r,"getRandom",function(){return l}),e.d(r,"arrayIsEqual",function(){return h})}})}); |
{ | ||
"name": "moo-color", | ||
"version": "0.1.1", | ||
"version": "0.1.2", | ||
"description": "A simple color library.", | ||
@@ -13,3 +13,3 @@ "main": "dist/moo-color.js", | ||
"test": "jest", | ||
"build": "webpack --hide-modules", | ||
"build": "webpack --hide-modules --mode=\"development\"", | ||
"watch": "npm run build -- --watch" | ||
@@ -35,12 +35,12 @@ }, | ||
"devDependencies": { | ||
"@types/jest": "^22.1.4", | ||
"@types/jest": "^22.2.0", | ||
"jest": "^22.4.2", | ||
"source-map-loader": "^0.2.3", | ||
"ts-jest": "^22.4.0", | ||
"ts-loader": "^3.5.0", | ||
"ts-jest": "^22.4.1", | ||
"ts-loader": "^4.0.1", | ||
"typescript": "^2.7.2", | ||
"uglifyjs-webpack-plugin": "^1.2.2", | ||
"webpack": "^3.11.0", | ||
"webpack-cli": "^2.0.10", | ||
"webpack-notifier": "^1.5.1" | ||
"webpack": "^4.1.1", | ||
"webpack-cli": "^2.0.11", | ||
"webpack-merge": "^4.1.2", | ||
"webpack-notifier": "^1.6.0" | ||
}, | ||
@@ -47,0 +47,0 @@ "jest": { |
@@ -53,19 +53,15 @@ import { | ||
convert(color: Color, m: AcceptedModel): Color { | ||
let val: number[]; | ||
convert(color: Color, model: AcceptedModel): Color { | ||
let values: number[]; | ||
switch (color.model) { | ||
case 'rgb': val = this.convertFromRgb(color.values, m); break; | ||
case 'hwb': val = this.convertFromHwb(color.values, m); break; | ||
case 'hsl': val = this.convertFromHsl(color.values, m); break; | ||
case 'hsv': val = this.convertFromHsv(color.values, m); break; | ||
case 'cmyk': val = this.convertFromCmyk(color.values, m); break; | ||
case 'rgb': values = this.convertFromRgb(color.values, model); break; | ||
case 'hwb': values = this.convertFromHwb(color.values, model); break; | ||
case 'hsl': values = this.convertFromHsl(color.values, model); break; | ||
case 'hsv': values = this.convertFromHsv(color.values, model); break; | ||
case 'cmyk': values = this.convertFromCmyk(color.values, model); break; | ||
} | ||
if (!val.length) { | ||
if (!values.length) { | ||
throw new Error('Converting Error!'); | ||
} | ||
return { | ||
model: m, | ||
values: val, | ||
alpha: color.alpha, | ||
}; | ||
return { model, values, alpha: color.alpha}; | ||
} | ||
@@ -188,69 +184,55 @@ | ||
protected convertFromRgb(values: number[], model: AcceptedModel): number[] { | ||
const [r, g, b] = values; | ||
protected convertFromRgb([r, g, b]: number[], model: AcceptedModel): number[] { | ||
switch (model) { | ||
case 'rgb': break; | ||
case 'hwb': values = Converter.rgbToHwb(r, g, b); break; | ||
case 'hsl': values = Converter.rgbToHsl(r, g, b); break; | ||
case 'hsv': values = Converter.rgbToHsv(r, g, b); break; | ||
case 'cmyk': values = Converter.rgbToCmyk(r, g, b); break; | ||
case 'rgb': return [r, g, b]; | ||
case 'hwb': return Converter.rgbToHwb(r, g, b); | ||
case 'hsl': return Converter.rgbToHsl(r, g, b); | ||
case 'hsv': return Converter.rgbToHsv(r, g, b); | ||
case 'cmyk': return Converter.rgbToCmyk(r, g, b); | ||
} | ||
return values; | ||
} | ||
protected convertFromHwb(values: number[], model: AcceptedModel): number[] { | ||
const [h, w, b] = values; | ||
const rgb = Converter.hwbToRgb(h, w, b); | ||
const [red, green, blue] = rgb; | ||
protected convertFromHwb([h, w, b]: number[], model: AcceptedModel): number[] { | ||
const [red, green, blue] = Converter.hwbToRgb(h, w, b); | ||
switch (model) { | ||
case 'rgb': values = rgb; break; | ||
case 'hwb': break; | ||
case 'hsl': values = Converter.rgbToHsl(red, green, blue); break; | ||
case 'hsv': values = Converter.hwbToHsv(h, w, b); break; | ||
case 'cmyk': values = Converter.rgbToCmyk(red, green, blue); break; | ||
case 'rgb': return [red, green, blue]; | ||
case 'hwb': return [h, w, b]; | ||
case 'hsl': return Converter.rgbToHsl(red, green, blue); | ||
case 'hsv': return Converter.hwbToHsv(h, w, b); | ||
case 'cmyk': return Converter.rgbToCmyk(red, green, blue); | ||
} | ||
return values; | ||
} | ||
protected convertFromHsl(values: number[], model: AcceptedModel): number[] { | ||
const [h, s, l] = values; | ||
const rgb = Converter.hslToRgb(h, s, l); | ||
const [red, green, blue] = rgb; | ||
protected convertFromHsl([h, s, l]: number[], model: AcceptedModel): number[] { | ||
const [red, green, blue] = Converter.hslToRgb(h, s, l); | ||
switch (model) { | ||
case 'rgb': values = rgb; break; | ||
case 'hwb': values = Converter.rgbToHwb(red, green, blue); break; | ||
case 'hsl': break; | ||
case 'hsv': values = Converter.rgbToHsv(red, green, blue); break; | ||
case 'cmyk': values = Converter.rgbToCmyk(red, green, blue); break; | ||
case 'rgb': return [red, green, blue]; | ||
case 'hwb': return Converter.rgbToHwb(red, green, blue); | ||
case 'hsl': return [h, s, l]; | ||
case 'hsv': return Converter.rgbToHsv(red, green, blue); | ||
case 'cmyk': return Converter.rgbToCmyk(red, green, blue); | ||
} | ||
return values; | ||
} | ||
protected convertFromHsv(values: number[], model: AcceptedModel): number[] { | ||
const [h, s, v] = values; | ||
const rgb = Converter.hsvToRgb(h, s, v); | ||
const [red, green, blue] = rgb; | ||
protected convertFromHsv([h, s, v]: number[], model: AcceptedModel): number[] { | ||
const [red, green, blue] = Converter.hsvToRgb(h, s, v); | ||
switch (model) { | ||
case 'rgb': values = rgb; break; | ||
case 'hwb': values = Converter.hsvToHwb(h, s, v); break; | ||
case 'hsl': values = Converter.rgbToHsl(red, green, blue); break; | ||
case 'hsv': break; | ||
case 'cmyk': values = Converter.rgbToCmyk(red, green, blue); break; | ||
case 'rgb': return [red, green, blue]; | ||
case 'hwb': return Converter.hsvToHwb(h, s, v); | ||
case 'hsl': return Converter.rgbToHsl(red, green, blue); | ||
case 'hsv': return [h, s, v]; | ||
case 'cmyk': return Converter.rgbToCmyk(red, green, blue); | ||
} | ||
return values; | ||
} | ||
protected convertFromCmyk(values: number[], model: AcceptedModel): number[] { | ||
const [c, m, y, k] = values; | ||
const rgb = Converter.cmykToRgb(c, m, y, k); | ||
const [red, green, blue] = rgb; | ||
protected convertFromCmyk([c, m, y, k]: number[], model: AcceptedModel): number[] { | ||
const [red, green, blue] = Converter.cmykToRgb(c, m, y, k); | ||
switch (model) { | ||
case 'rgb': values = rgb; break; | ||
case 'hwb': values = Converter.rgbToHwb(red, green, blue); break; | ||
case 'hsl': values = Converter.rgbToHsl(red, green, blue); break; | ||
case 'hsv': values = Converter.rgbToHsv(red, green, blue); break; | ||
case 'cmyk': break; | ||
case 'rgb': return [red, green, blue]; | ||
case 'hwb': return Converter.rgbToHwb(red, green, blue); | ||
case 'hsl': return Converter.rgbToHsl(red, green, blue); | ||
case 'hsv': return Converter.rgbToHsv(red, green, blue); | ||
case 'cmyk': return [c, m, y, k]; | ||
} | ||
return values; | ||
} | ||
} |
const path = require('path'); | ||
const UglifyJsPlugin = require('uglifyjs-webpack-plugin'); | ||
const merge = require('webpack-merge'); | ||
const WebpackNotifierPlugin = require('webpack-notifier'); | ||
module.exports = { | ||
entry: { | ||
'moo-color': './src/moo-color.ts', | ||
'moo-color.min': './src/moo-color.ts', | ||
}, | ||
const dev = { | ||
entry: './src/moo-color.ts', | ||
output: { | ||
path: path.resolve(__dirname, 'dist'), | ||
filename: '[name].js', | ||
filename: 'moo-color.js', | ||
library: 'MooColor', | ||
libraryTarget: 'umd', | ||
globalObject: 'this', | ||
}, | ||
@@ -33,7 +31,14 @@ module: { | ||
}, | ||
devtool: 'source-map', | ||
}; | ||
const min = merge(dev, { | ||
output: { | ||
filename: 'moo-color.min.js', | ||
}, | ||
optimization: { | ||
minimize: true, | ||
}, | ||
devtool: false, | ||
plugins: [ | ||
new UglifyJsPlugin({ | ||
sourceMap: false, | ||
include: /\.min\.js$/, | ||
}), | ||
new WebpackNotifierPlugin({ | ||
@@ -45,3 +50,4 @@ title: 'Webpack', | ||
], | ||
devtool: 'source-map', | ||
}; | ||
}); | ||
module.exports = [dev, min]; |
Sorry, the diff of this file is not supported yet
219007
1.09%3153
-0.88%