@ezbot-ai/javascript-sdk
Version:
The easiest way to interact with ezbot via JS (node and browser)
44 lines • 3.67 kB
JavaScript
/**
* Returns the first visual prediction matching the provided CSS selector.
*/
export function getVisualForSelector(predictions, selector) {
return predictions.find((pred) => pred.type === 'visual' && pred.config?.selector === selector);
}
/**
* Converts visual predictions into a CSS string suitable for server-side rendering
* within a single <style> tag.
*/
export function predictionsToCss(predictions) {
return predictions
.filter((prediction) => !!prediction && prediction.type === 'visual' && !!prediction.config)
.map((prediction) => {
const { selector, action, attribute } = prediction.config;
const value = prediction.value;
switch (action) {
case 'hide':
return `${selector} { display: none !important; }`;
case 'show':
return `${selector} { display: block !important; }`;
case 'setStyle':
return attribute
? `${selector} { ${attribute}: ${value} !important; }`
: '';
case 'setFontSize':
return `${selector} { font-size: ${value} !important; }`;
case 'setFontColor':
return `${selector} { color: ${value} !important; }`;
case 'setBackgroundColor':
return `${selector} { background-color: ${value} !important; }`;
case 'setVisibility':
return `${selector} { visibility: ${value} !important; }`;
case 'addGlobalCSS':
return String(value ?? '');
default:
// ignore unsupported actions in SSR CSS generation
return '';
}
})
.filter((rule) => rule.length > 0)
.join('\n');
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlZGljdGlvbkhlbHBlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3ByZWRpY3Rpb25IZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBOztHQUVHO0FBQ0gsTUFBTSxVQUFVLG9CQUFvQixDQUNsQyxXQUFzQyxFQUN0QyxRQUFnQjtJQUVoQixPQUFPLFdBQVcsQ0FBQyxJQUFJLENBQ3JCLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLFFBQVEsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLFFBQVEsS0FBSyxRQUFRLENBQ3ZFLENBQUM7QUFDSixDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLGdCQUFnQixDQUM5QixXQUFzQztJQUV0QyxPQUFPLFdBQVc7U0FDZixNQUFNLENBQ0wsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUNiLENBQUMsQ0FBQyxVQUFVLElBQUksVUFBVSxDQUFDLElBQUksS0FBSyxRQUFRLElBQUksQ0FBQyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQ3RFO1NBQ0EsR0FBRyxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUU7UUFDbEIsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsVUFBVSxDQUFDLE1BQU8sQ0FBQztRQUMzRCxNQUFNLEtBQUssR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDO1FBRS9CLFFBQVEsTUFBTSxFQUFFLENBQUM7WUFDZixLQUFLLE1BQU07Z0JBQ1QsT0FBTyxHQUFHLFFBQVEsZ0NBQWdDLENBQUM7WUFDckQsS0FBSyxNQUFNO2dCQUNULE9BQU8sR0FBRyxRQUFRLGlDQUFpQyxDQUFDO1lBQ3RELEtBQUssVUFBVTtnQkFDYixPQUFPLFNBQVM7b0JBQ2QsQ0FBQyxDQUFDLEdBQUcsUUFBUSxNQUFNLFNBQVMsS0FBSyxLQUFLLGdCQUFnQjtvQkFDdEQsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNULEtBQUssYUFBYTtnQkFDaEIsT0FBTyxHQUFHLFFBQVEsaUJBQWlCLEtBQUssZ0JBQWdCLENBQUM7WUFDM0QsS0FBSyxjQUFjO2dCQUNqQixPQUFPLEdBQUcsUUFBUSxhQUFhLEtBQUssZ0JBQWdCLENBQUM7WUFDdkQsS0FBSyxvQkFBb0I7Z0JBQ3ZCLE9BQU8sR0FBRyxRQUFRLHdCQUF3QixLQUFLLGdCQUFnQixDQUFDO1lBQ2xFLEtBQUssZUFBZTtnQkFDbEIsT0FBTyxHQUFHLFFBQVEsa0JBQWtCLEtBQUssZ0JBQWdCLENBQUM7WUFDNUQsS0FBSyxjQUFjO2dCQUNqQixPQUFPLE1BQU0sQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUM7WUFDN0I7Z0JBQ0UsbURBQW1EO2dCQUNuRCxPQUFPLEVBQUUsQ0FBQztRQUNkLENBQUM7SUFDSCxDQUFDLENBQUM7U0FDRCxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1NBQ2pDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNoQixDQUFDIn0=