forked from tsai/budibase
4 changed files with 47 additions and 0 deletions
@ -0,0 +1,32 @@ |
|||||
|
import "@spectrum-css/icon/dist/index-vars.css" |
||||
|
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 const loadSpectrumIcons = () => { |
||||
|
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.`) |
||||
|
} |
||||
|
} |
||||
Loading…
Reference in new issue