You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
66 lines
1.8 KiB
66 lines
1.8 KiB
|
2 years ago
|
'use strict';
|
||
|
|
|
||
|
|
const svg_html = require('../svg/html.cjs');
|
||
|
|
const svg_size = require('../svg/size.cjs');
|
||
|
|
const svg_url = require('../svg/url.cjs');
|
||
|
|
|
||
|
|
function getCommonCSSRules(options) {
|
||
|
|
const result = {
|
||
|
|
display: "inline-block",
|
||
|
|
width: "1em",
|
||
|
|
height: "1em"
|
||
|
|
};
|
||
|
|
const varName = options.varName;
|
||
|
|
if (options.pseudoSelector) {
|
||
|
|
result["content"] = "''";
|
||
|
|
}
|
||
|
|
switch (options.mode) {
|
||
|
|
case "background":
|
||
|
|
result["background"] = "no-repeat center / 100%";
|
||
|
|
if (varName) {
|
||
|
|
result["background-image"] = "var(--" + varName + ")";
|
||
|
|
}
|
||
|
|
break;
|
||
|
|
case "mask":
|
||
|
|
result["background-color"] = "currentColor";
|
||
|
|
result["mask"] = result["-webkit-mask"] = "no-repeat center / 100%";
|
||
|
|
if (varName) {
|
||
|
|
result["mask-image"] = result["-webkit-mask-image"] = "var(--" + varName + ")";
|
||
|
|
}
|
||
|
|
break;
|
||
|
|
}
|
||
|
|
return result;
|
||
|
|
}
|
||
|
|
function generateItemCSSRules(icon, options) {
|
||
|
|
const result = {};
|
||
|
|
const varName = options.varName;
|
||
|
|
if (!options.forceSquare && icon.width !== icon.height) {
|
||
|
|
result["width"] = svg_size.calculateSize("1em", icon.width / icon.height);
|
||
|
|
}
|
||
|
|
const svg = svg_html.iconToHTML(
|
||
|
|
icon.body.replace(/currentColor/g, options.color || "black"),
|
||
|
|
{
|
||
|
|
viewBox: `${icon.left} ${icon.top} ${icon.width} ${icon.height}`,
|
||
|
|
width: icon.width.toString(),
|
||
|
|
height: icon.height.toString()
|
||
|
|
}
|
||
|
|
);
|
||
|
|
const url = svg_url.svgToURL(svg);
|
||
|
|
if (varName) {
|
||
|
|
result["--" + varName] = url;
|
||
|
|
} else {
|
||
|
|
switch (options.mode) {
|
||
|
|
case "background":
|
||
|
|
result["background-image"] = url;
|
||
|
|
break;
|
||
|
|
case "mask":
|
||
|
|
result["mask-image"] = result["-webkit-mask-image"] = url;
|
||
|
|
break;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
return result;
|
||
|
|
}
|
||
|
|
|
||
|
|
exports.generateItemCSSRules = generateItemCSSRules;
|
||
|
|
exports.getCommonCSSRules = getCommonCSSRules;
|