wix-style-react
Version:
70 lines (53 loc) • 1.63 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.parseContrastColor = exports.parseGradient = exports.parseColor = void 0;
var _gradientParser = _interopRequireDefault(require("gradient-parser"));
var _color = _interopRequireDefault(require("color"));
var _constants = require("./constants");
var parseColor = function parseColor(fill) {
if (typeof fill !== 'string') {
return;
}
try {
return (0, _color["default"])(fill);
} catch (_unused) {
return;
}
};
exports.parseColor = parseColor;
var parseGradient = function parseGradient(fill) {
if (typeof fill !== 'string') {
return;
}
try {
return _gradientParser["default"].parse(fill);
} catch (_unused2) {
return;
}
};
exports.parseGradient = parseGradient;
var parseContrastColor = function parseContrastColor(fill) {
var color = parseColor(fill);
if (color) {
return color.luminosity() > 0.5 ? _constants.COLOR_ICON_DARK : _constants.COLOR_ICON_LIGHT;
}
var gradients = parseGradient(fill);
if (gradients) {
var gradientList = gradients[0].colorStops.map(function (hex) {
return (0, _color["default"])("#".concat(hex.value));
});
var totalLights = gradientList.reduce(function (acc, curr) {
if (curr.luminosity() > 0.5) {
return acc + 1;
} else {
return acc - 1;
}
}, 0);
return totalLights >= 1 ? _constants.COLOR_ICON_DARK : _constants.COLOR_ICON_LIGHT;
}
return;
};
exports.parseContrastColor = parseContrastColor;