UNPKG

colorlyjs

Version:

A library for parsing colors within the sRGB color space. it includes rgb(a), hsl(a), hsv(a), hex and cmyk. It mainly focuses on web standards, which is why it has build in css support. However, it may be used in any application that follows the css color

182 lines (147 loc) 9.03 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _GenericsUtil = _interopRequireDefault(require("./GenericsUtil.js")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } 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); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } var CSSUtil = /*#__PURE__*/_createClass(function CSSUtil() { _classCallCheck(this, CSSUtil); }); _defineProperty(CSSUtil, "hexPrefix", "#"); _defineProperty(CSSUtil, "rgbPrefix", "rgb("); _defineProperty(CSSUtil, "rgbaPrefix", "rgba("); _defineProperty(CSSUtil, "cmykPrefix", "cmyk("); _defineProperty(CSSUtil, "hslPrefix", "hsl("); _defineProperty(CSSUtil, "hsvPrefix", "hsv("); _defineProperty(CSSUtil, "valueSaparator", ","); _defineProperty(CSSUtil, "closingParanthesis", ")"); _defineProperty(CSSUtil, "percentageSign", "%"); _defineProperty(CSSUtil, "fixedDecimalDigits", 8); _defineProperty(CSSUtil, "toHexCSSString", function () { var hex = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "FFFFFF"; if (_GenericsUtil["default"].__isString(hex)) hex = CSSUtil.__removeWhitespace(hex); var harmonizedHex = _GenericsUtil["default"].convertToHarmonizedHexValue(hex); if (!harmonizedHex) return; return CSSUtil.hexPrefix + harmonizedHex; }); _defineProperty(CSSUtil, "toRGBCSSString", function () { var r = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 255; var g = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 255; var b = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 255; var rgb = [r, g, b]; if (!_GenericsUtil["default"].isRGBArray(rgb)) return; rgb = CSSUtil.rgbPrefix + rgb.map(function (e) { return CSSUtil.__toFixedNumber(e, CSSUtil.fixedDecimalDigits); }).join(CSSUtil.valueSaparator + " ") + CSSUtil.closingParanthesis; return rgb; }); _defineProperty(CSSUtil, "toRGBACSSString", function () { var r = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 255; var g = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 255; var b = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 255; var a = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1; var rgba = [r, g, b, a]; if (!_GenericsUtil["default"].isRGBAArray(rgba)) return; rgba = CSSUtil.rgbaPrefix + rgba.map(function (e) { return CSSUtil.__toFixedNumber(e, CSSUtil.fixedDecimalDigits); }).join(CSSUtil.valueSaparator + " ") + CSSUtil.closingParanthesis; return rgba; }); _defineProperty(CSSUtil, "toCMYKCSSString", function () { var c = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1; var m = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1; var y = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1; var k = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1; var cmyk = [c, m, y, k]; if (!_GenericsUtil["default"].isCMYKArray(cmyk)) return; cmyk = CSSUtil.cmykPrefix + cmyk.map(function (e) { return CSSUtil.__toFixedNumber(e * _GenericsUtil["default"].maxIntPercentage, CSSUtil.fixedDecimalDigits) + CSSUtil.percentageSign; }).join(CSSUtil.valueSaparator + " ") + CSSUtil.closingParanthesis; return cmyk; }); _defineProperty(CSSUtil, "toHSLCSSString", function () { var h = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 60; var s = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1; var l = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1; var hsl = [h, s, l]; if (!_GenericsUtil["default"].isHSLArray(hsl)) return; hsl = CSSUtil.hslPrefix + hsl.map(function (e, i) { return i > _GenericsUtil["default"].zero ? CSSUtil.__toFixedNumber(e * _GenericsUtil["default"].maxIntPercentage, CSSUtil.fixedDecimalDigits) + CSSUtil.percentageSign : CSSUtil.__toFixedNumber(e, CSSUtil.fixedDecimalDigits); }).join(CSSUtil.valueSaparator + " ") + CSSUtil.closingParanthesis; return hsl; }); _defineProperty(CSSUtil, "toHSVCSSString", function () { var h = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 60; var s = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1; var v = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1; var hsv = [h, s, v]; if (!_GenericsUtil["default"].isHSVArray(hsv)) return; hsv = CSSUtil.hsvPrefix + hsv.map(function (e, i) { return i > _GenericsUtil["default"].zero ? CSSUtil.__toFixedNumber(e * _GenericsUtil["default"].maxIntPercentage, CSSUtil.fixedDecimalDigits) + CSSUtil.percentageSign : CSSUtil.__toFixedNumber(e, CSSUtil.fixedDecimalDigits); }).join(CSSUtil.valueSaparator + " ") + CSSUtil.closingParanthesis; return hsv; }); _defineProperty(CSSUtil, "cssStringToHarmonizedHexString", function (cssStr) { cssStr = CSSUtil.__removeWhitespace(cssStr); return _GenericsUtil["default"].convertToHarmonizedHexValue(cssStr); }); _defineProperty(CSSUtil, "cssStringToRGBArray", function (cssStr) { cssStr = CSSUtil.__removeWhitespace(cssStr); if (!cssStr || !cssStr.startsWith(CSSUtil.rgbPrefix) || !cssStr.endsWith(CSSUtil.closingParanthesis)) return; var rgb = cssStr.replace(CSSUtil.rgbPrefix, "").replace(CSSUtil.closingParanthesis, "").split(CSSUtil.valueSaparator).map(function (e) { return parseFloat(e); }); if (!_GenericsUtil["default"].isRGBArray(rgb)) return; return rgb; }); _defineProperty(CSSUtil, "cssStringToRGBAArray", function (cssStr) { cssStr = CSSUtil.__removeWhitespace(cssStr); if (!cssStr || !cssStr.startsWith(CSSUtil.rgbaPrefix) || !cssStr.endsWith(CSSUtil.closingParanthesis)) return; var rgba = cssStr.replace(CSSUtil.rgbaPrefix, "").replace(CSSUtil.closingParanthesis, "").split(CSSUtil.valueSaparator).map(function (e) { return parseFloat(e); }); if (!_GenericsUtil["default"].isRGBAArray(rgba)) return; return rgba; }); _defineProperty(CSSUtil, "cssStringToCMYKArray", function (cssStr) { cssStr = CSSUtil.__removeWhitespace(cssStr); if (!cssStr || !cssStr.startsWith(CSSUtil.cmykPrefix) || !cssStr.endsWith(CSSUtil.closingParanthesis)) return; var cmyk = cssStr.replace(CSSUtil.cmykPrefix, "").replace(CSSUtil.closingParanthesis, "").split(CSSUtil.valueSaparator).map(function (e) { return parseFloat(e) / _GenericsUtil["default"].maxIntPercentage; }); if (!_GenericsUtil["default"].isCMYKArray(cmyk)) return; return cmyk; }); _defineProperty(CSSUtil, "cssStringToHSLArray", function (cssStr) { cssStr = CSSUtil.__removeWhitespace(cssStr); if (!cssStr || !cssStr.startsWith(CSSUtil.hslPrefix) || !cssStr.endsWith(CSSUtil.closingParanthesis)) return; var hsl = cssStr.replace(CSSUtil.hslPrefix, "").replace(CSSUtil.closingParanthesis, "").split(CSSUtil.valueSaparator).map(function (e, i) { return i === 0 ? parseFloat(e) : parseFloat(e) / _GenericsUtil["default"].maxIntPercentage; }); if (!_GenericsUtil["default"].isHSLArray(hsl)) return; return hsl; }); _defineProperty(CSSUtil, "cssStringToHSVArray", function (cssStr) { cssStr = CSSUtil.__removeWhitespace(cssStr); if (!cssStr || !cssStr.startsWith(CSSUtil.hsvPrefix) || !cssStr.endsWith(CSSUtil.closingParanthesis)) return; var hsv = cssStr.replace(CSSUtil.hsvPrefix, "").replace(CSSUtil.closingParanthesis, "").split(CSSUtil.valueSaparator).map(function (e, i) { return i === 0 ? parseFloat(e) : parseFloat(e) / _GenericsUtil["default"].maxIntPercentage; }); if (!_GenericsUtil["default"].isHSVArray(hsv)) return; return hsv; }); _defineProperty(CSSUtil, "__removeWhitespace", function (string) { if (!_GenericsUtil["default"].__isString(string)) return; return string.replace(/\s+/g, ""); }); _defineProperty(CSSUtil, "__toFixedNumber", function (number, decimalDigits) { if (!_GenericsUtil["default"].__isNumeric(number)) return; return Number.isInteger(number) ? "".concat(number) : number.toFixed(decimalDigits).replace(/0+.$/gi, ""); }); var _default = CSSUtil; exports["default"] = _default;