@smart-react-components/ui
Version:
SRC UI includes React and Styled components.
78 lines (77 loc) • 2.63 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.isLight = exports.isEqual = exports.convertColor = exports.calculateDraggerPosition = exports.colorToString = void 0;
const color_picker_1 = require("../types/color-picker");
/**
* Converts color to string by given format.
*/
const colorToString = (color, format) => {
if (!color) {
return null;
}
if (format === color_picker_1.ColorPickerFormat.HSL) {
return color.hsl().toString();
}
if (format === color_picker_1.ColorPickerFormat.RGB || color.valpha < 1) {
return color.rgb().toString();
}
return color.hex().toString();
};
exports.colorToString = colorToString;
/**
* Calculates new position of the dragger.
*/
const calculateDraggerPosition = (e, pickerEl, draggerSize) => {
const pickerRect = pickerEl.getBoundingClientRect();
const draggerHalfSize = draggerSize / 2;
const eX = e.clientX || e.pageX - window.pageXOffset;
const eY = e.clientY || e.pageY - window.pageYOffset;
let x = eX - (pickerRect.left + draggerHalfSize);
let y = eY - (pickerRect.top + draggerHalfSize);
if (x < -draggerHalfSize) {
x = -draggerHalfSize;
}
else if (x > (pickerRect.width - draggerHalfSize)) {
x = pickerRect.width - draggerHalfSize;
}
if (y < -draggerHalfSize) {
y = -draggerHalfSize;
}
else if (y > (pickerRect.height - draggerHalfSize)) {
y = pickerRect.height - draggerHalfSize;
}
return {
left: x,
top: y,
x: x + draggerHalfSize,
y: y + draggerHalfSize,
};
};
exports.calculateDraggerPosition = calculateDraggerPosition;
/**
* Converts color to the given format as string.
*/
const convertColor = (color, format) => {
if (!color) {
return null;
}
if (format === color_picker_1.ColorPickerFormat.HSL) {
return color.hsl().toString();
}
return (format === color_picker_1.ColorPickerFormat.RGB || color.valpha < 1) ? color.rgb().toString() : color.hex().toString();
};
exports.convertColor = convertColor;
/**
* Checks if two given colors are equal.
*/
const isEqual = (color1, color2) => ((!color1 && !color2)
|| ((color1 === null || color1 === void 0 ? void 0 : color1.rgb().toString()) === (color2 === null || color2 === void 0 ? void 0 : color2.rgb().toString())));
exports.isEqual = isEqual;
/**
* Checks if the given color is light.
*/
const isLight = (color, hasOpacity) => {
const isLight = color.isLight();
return hasOpacity ? (isLight || color.valpha < .4) : isLight;
};
exports.isLight = isLight;
;