1
0
Fork 0
mirror of synced 2024-07-04 05:50:57 +12:00
budibase/packages/bbui/src/spectrum-icons-vite.js

32 lines
954 B
JavaScript

import SpectrumUIIcons from "@spectrum-css/icon/dist/spectrum-css-icons.svg?raw"
import SpectrumWorkflowIcons from "@adobe/spectrum-css-workflow-icons/dist/spectrum-icons.svg?raw"
export default () => {
loadIconSet("Spectrum UI Icons", SpectrumUIIcons)
loadIconSet("Spectrum Workflow Icons", SpectrumWorkflowIcons)
}
const loadIconSet = (name, markup) => {
// Parse the SVG
const parser = new DOMParser()
try {
const doc = parser.parseFromString(markup, "image/svg+xml")
const svg = doc.firstChild
// Check a real SVG was parsed
if (svg && svg.tagName === "svg") {
// Hide the element
svg.style.display = "none"
// Insert it into the head
document.head.insertBefore(svg, null)
} else {
throw "Invalid tag type for SVG definition"
}
} catch (err) {
// Swallow error, but icons won't work
console.error(err)
console.error(`Failed to parse ${name}. Icons won't work.`)
}
}