@mapcss/preset-svg
Version:
SVG as CSS for MapCSS
28 lines (27 loc) • 1.15 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.iconifyJSON = void 0;
const parse_js_1 = require("../deps/esm.sh/@iconify/utils/lib/icon-set/parse.js");
const customisations_js_1 = require("../deps/esm.sh/@iconify/utils/lib/customisations.js");
const build_js_1 = require("../deps/esm.sh/@iconify/utils/lib/svg/build.js");
function iconifyJSON(icon) {
const identifier = {};
(0, parse_js_1.parseIconSet)(icon, (name, iconData) => {
if (!iconData) {
throw Error(iconData);
}
const renderData = (0, build_js_1.iconToSVG)(iconData, customisations_js_1.defaults);
const svgAttributes = {
"xmlns": "http://www.w3.org/2000/svg",
"xmlns:xlink": "http://www.w3.org/1999/xlink",
...renderData.attributes,
};
const svgAttributesStr = Object.keys(svgAttributes)
.map((attr) => `${attr}="${svgAttributes[attr]}"`)
.join(" ");
const svg = `<svg ${svgAttributesStr}>${renderData.body}</svg>`;
identifier[name] = svg;
});
return identifier;
}
exports.iconifyJSON = iconifyJSON;