wix-style-react
Version:
73 lines (62 loc) • 1.63 kB
JavaScript
;
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;