| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- 'use strict';
- const svg_html = require('../svg/html.cjs');
- const svg_size = require('../svg/size.cjs');
- const svg_url = require('../svg/url.cjs');
- const icon_square = require('../icon/square.cjs');
- const svg_build = require('../svg/build.cjs');
- require('../icon/defaults.cjs');
- require('../customisations/defaults.cjs');
- require('../svg/defs.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":
- if (varName) {
- result["background-image"] = "var(--" + varName + ")";
- }
- result["background-repeat"] = "no-repeat";
- result["background-size"] = "100% 100%";
- break;
- case "mask":
- result["background-color"] = "currentColor";
- if (varName) {
- result["mask-image"] = result["-webkit-mask-image"] = "var(--" + varName + ")";
- }
- result["mask-repeat"] = result["-webkit-mask-repeat"] = "no-repeat";
- result["mask-size"] = result["-webkit-mask-size"] = "100% 100%";
- break;
- }
- return result;
- }
- function generateItemCSSRules(icon, options) {
- const result = {};
- const varName = options.varName;
- const buildResult = svg_build.iconToSVG(icon);
- let viewBox = buildResult.viewBox;
- if (viewBox[2] !== viewBox[3]) {
- if (options.forceSquare) {
- viewBox = icon_square.makeViewBoxSquare(viewBox);
- } else {
- result["width"] = svg_size.calculateSize("1em", viewBox[2] / viewBox[3]);
- }
- }
- const svg = svg_html.iconToHTML(
- buildResult.body.replace(/currentColor/g, options.color || "black"),
- {
- viewBox: `${viewBox[0]} ${viewBox[1]} ${viewBox[2]} ${viewBox[3]}`,
- width: `${viewBox[2]}`,
- height: `${viewBox[3]}`
- }
- );
- 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;
- }
- function generateItemContent(icon, options) {
- const buildResult = svg_build.iconToSVG(icon);
- const viewBox = buildResult.viewBox;
- const height = options.height;
- const width = options.width ?? svg_size.calculateSize(height, viewBox[2] / viewBox[3]);
- const svg = svg_html.iconToHTML(
- buildResult.body.replace(/currentColor/g, options.color || "black"),
- {
- viewBox: `${viewBox[0]} ${viewBox[1]} ${viewBox[2]} ${viewBox[3]}`,
- width: width.toString(),
- height: height.toString()
- }
- );
- return svg_url.svgToURL(svg);
- }
- exports.generateItemCSSRules = generateItemCSSRules;
- exports.generateItemContent = generateItemContent;
- exports.getCommonCSSRules = getCommonCSSRules;
|