UNPKG

ember-material-icons

Version:

Google Material icons for your ember-cli app

35 lines (26 loc) 1.24 kB
import * as SimpleDOM from 'simple-dom'; import { DOMTreeConstruction, Bounds, Simple, ConcreteBounds } from '@glimmer/runtime'; export default class NodeDOMTreeConstruction extends DOMTreeConstruction { protected document: SimpleDOM.Document; constructor(doc: Simple.Document) { super(doc); } // override to prevent usage of `this.document` until after the constructor protected setupUselessElement() { } insertHTMLBefore(parent: Simple.Element, html: string, reference: Simple.Node): Bounds { let prev = reference ? reference.previousSibling : parent.lastChild; let raw = this.document.createRawHTMLSection(html); parent.insertBefore(raw, reference); let first = prev ? prev.nextSibling : parent.firstChild; let last = reference ? reference.previousSibling : parent.lastChild; return new ConcreteBounds(parent, first, last); } // override to avoid SVG detection/work when in node (this is not needed in SSR) createElement(tag: string) { return this.document.createElement(tag); } // override to avoid namespace shenanigans when in node (this is not needed in SSR) setAttribute(element: Element, name: string, value: string) { element.setAttribute(name, value); } }