UNPKG

wix-style-react

Version:
73 lines (62 loc) 1.63 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.normalizeHexInput = exports.extractHex = exports.validateHex = void 0; var contains = function contains() { for (var _len = arguments.length, array = new Array(_len), _key = 0; _key < _len; _key++) { array[_key] = arguments[_key]; } return function (number) { return array.includes(number); }; }; var hexRules = [{ when: contains(0), make: function make() { return ''; } }, { when: contains(1), make: function make(hex) { return '#' + hex[0].repeat(6); } }, { when: contains(2), make: function make(hex) { return '#' + (hex[0] + hex[1]).repeat(3); } }, { when: contains(3, 4, 5), make: function make(hex) { return '#' + hex[0].repeat(2) + hex[1].repeat(2) + hex[2].repeat(2); } }, { when: function when(length) { return contains(6)(length) || length > 6; }, make: function make(hex) { return '#' + hex.slice(0, 6); } }]; var validateHex = function validateHex(hex) { if (hex === '' || !hex) { return hex; } var hexArray = hex.replace('#', ''); var hexLength = hexArray.length; return hexRules.find(function (_ref) { var when = _ref.when; return when(hexLength); }).make(hexArray); }; exports.validateHex = validateHex; var extractHex = function extractHex(hex) { return "#".concat(hex.toUpperCase().replace(/[^A-F0-9]/g, '')); }; exports.extractHex = extractHex; var normalizeHexInput = function normalizeHexInput(hex) { var value = extractHex(hex); return value === '#' ? '' : value; }; exports.normalizeHexInput = normalizeHexInput;