odoo18/addons/html_editor/static/src/utils/image.js

37 lines
1.1 KiB
JavaScript

import { isColorGradient } from "./color";
/**
* Extracts url and gradient parts from the background-image CSS property.
*
* @param {string} CSS 'background-image' property value
* @returns {Object} contains the separated 'url' and 'gradient' parts
*/
export function backgroundImageCssToParts(css) {
const parts = {};
css = css || "";
if (css.startsWith("url(")) {
const urlEnd = css.indexOf(")") + 1;
parts.url = css.substring(0, urlEnd).trim();
const commaPos = css.indexOf(",", urlEnd);
css = commaPos > 0 ? css.substring(commaPos + 1) : "";
}
if (isColorGradient(css)) {
parts.gradient = css.trim();
}
return parts;
}
/**
* Combines url and gradient parts into a background-image CSS property value
*
* @param {Object} contains the separated 'url' and 'gradient' parts
* @returns {string} CSS 'background-image' property value
*/
export function backgroundImagePartsToCss(parts) {
let css = parts.url || "";
if (parts.gradient) {
css += (css ? ", " : "") + parts.gradient;
}
return css || "none";
}