UNPKG

validator

Version:
42 lines (41 loc) 2.14 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = isRgbColor; var _assertString = _interopRequireDefault(require("./util/assertString")); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } /* eslint-disable prefer-rest-params */ var rgbColor = /^rgb\((([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]),){2}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\)$/; var rgbaColor = /^rgba\((([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]),){3}(0?\.\d|1(\.0)?|0(\.0)?)\)$/; var rgbColorPercent = /^rgb\((([0-9]%|[1-9][0-9]%|100%),){2}([0-9]%|[1-9][0-9]%|100%)\)$/; var rgbaColorPercent = /^rgba\((([0-9]%|[1-9][0-9]%|100%),){3}(0?\.\d|1(\.0)?|0(\.0)?)\)$/; var startsWithRgb = /^rgba?/; function isRgbColor(str, options) { (0, _assertString.default)(str); // default options to true for percent and false for spaces var allowSpaces = false; var includePercentValues = true; if (_typeof(options) !== 'object') { if (arguments.length >= 2) { includePercentValues = arguments[1]; } } else { allowSpaces = options.allowSpaces !== undefined ? options.allowSpaces : allowSpaces; includePercentValues = options.includePercentValues !== undefined ? options.includePercentValues : includePercentValues; } if (allowSpaces) { // make sure it starts with continous rgba? without spaces before stripping if (!startsWithRgb.test(str)) { return false; } // strip all whitespace str = str.replace(/\s/g, ''); } if (!includePercentValues) { return rgbColor.test(str) || rgbaColor.test(str); } return rgbColor.test(str) || rgbaColor.test(str) || rgbColorPercent.test(str) || rgbaColorPercent.test(str); } module.exports = exports.default; module.exports.default = exports.default;