New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More

moo-color

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

moo-color - npm Package Compare versions

Comparing version

to
0.1.2

@@ -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