UNPKG

sk-js

Version:
195 lines (169 loc) 5.49 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _Proxy = _interopRequireDefault(require("./Proxy0")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } var _goldenRatio = 0.618033988749895; var _goldenRatioColor = function _goldenRatioColor(hue) { var saturation = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0.5; var value = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0.95; var _hue = hue || Math.random(); _hue += _goldenRatio; _hue %= 1; return [_hue * 360, saturation * 100, value * 100]; }; var Color0 = /*#__PURE__*/ function () { function Color0() { _classCallCheck(this, Color0); } _createClass(Color0, null, [{ key: "hex2rgb", value: function hex2rgb(hex) { hex = '0x' + hex.slice(1).replace(hex.length > 4 ? hex : /./g, '$&$&') | 0; return [hex >> 16, hex >> 8 & 255, hex & 255]; } }, { key: "hexColor", value: function hexColor(str) { var hue = undefined; if (str) { hue = parseFloat(parseInt(_Proxy.default.md5.hex(str), 16).toString(10).split('e')[0]) / 10; } return Color0.rgb2hex(Color0.hsv2rgb(_goldenRatioColor(hue))); } }, { key: "hsl2hsv", value: function hsl2hsv(hsl) { var h = hsl[0], s = hsl[1] / 100, l = hsl[2] / 100, sv, v; l *= 2; s *= l <= 1 ? l : 2 - l; v = (l + s) / 2; sv = 2 * s / (l + s); return [h, sv * 100, v * 100]; } }, { key: "hsl2rgb", value: function hsl2rgb(hsl) { var h = hsl[0] / 360, s = hsl[1] / 100, l = hsl[2] / 100, t1, t2, t3, rgb, val; if (s === 0) { val = l * 255; return [val, val, val]; } if (l < 0.5) t2 = l * (1 + s);else t2 = l + s - l * s; t1 = 2 * l - t2; rgb = [0, 0, 0]; for (var i = 0; i < 3; i++) { t3 = h + 1 / 3 * -(i - 1); if (t3 < 0) t3++; if (t3 > 1) t3--; if (6 * t3 < 1) val = t1 + (t2 - t1) * 6 * t3;else if (2 * t3 < 1) val = t2;else if (3 * t3 < 2) val = t1 + (t2 - t1) * (2 / 3 - t3) * 6;else val = t1; rgb[i] = val * 255; } return rgb; } }, { key: "hsv2hsl", value: function hsv2hsl(hsv) { var h = hsv[0], s = hsv[1] / 100, v = hsv[2] / 100, sl, l; l = (2 - s) * v; sl = s * v; sl /= l <= 1 ? l : 2 - l; l /= 2; return [h, sl * 100, l * 100]; } }, { key: "hsv2rgb", value: function hsv2rgb(hsv) { var h = hsv[0] / 60; var s = hsv[1] / 100; var v = hsv[2] / 100; var hi = Math.floor(h) % 6; var f = h - Math.floor(h); var p = 255 * v * (1 - s); var q = 255 * v * (1 - s * f); var t = 255 * v * (1 - s * (1 - f)); v = 255 * v; switch (hi) { case 0: return [v, t, p]; case 1: return [q, v, p]; case 2: return [p, v, t]; case 3: return [p, q, v]; case 4: return [t, p, v]; case 5: return [v, p, q]; } } }, { key: "rgb2hex", value: function rgb2hex(rgb) { return "#" + ((256 + rgb[0] << 8 | rgb[1]) << 8 | rgb[2]).toString(16).slice(1); } }, { key: "rgb2hsl", value: function rgb2hsl(rgb) { var r = rgb[0] / 255, g = rgb[1] / 255, b = rgb[2] / 255, min = Math.min(r, g, b), max = Math.max(r, g, b), delta = max - min, h, s, l; if (max === min) h = 0;else if (r === max) h = (g - b) / delta;else if (g === max) h = 2 + (b - r) / delta;else if (b === max) h = 4 + (r - g) / delta; h = Math.min(h * 60, 360); if (h < 0) h += 360; l = (min + max) / 2; if (max === min) s = 0;else if (l <= 0.5) s = delta / (max + min);else s = delta / (2 - max - min); return [h, s * 100, l * 100]; } }, { key: "rgb2hsv", value: function rgb2hsv(rgb) { var r = rgb[0], g = rgb[1], b = rgb[2], min = Math.min(r, g, b), max = Math.max(r, g, b), delta = max - min, h, s, v; if (max === 0) s = 0;else s = delta / max * 1000 / 10; if (max === min) h = 0;else if (r === max) h = (g - b) / delta;else if (g === max) h = 2 + (b - r) / delta;else if (b === max) h = 4 + (r - g) / delta; h = Math.min(h * 60, 360); if (h < 0) h += 360; v = max / 255 * 1000 / 10; return [h, s, v]; } }]); return Color0; }(); exports.default = Color0;