import { Arr } from '@ephox/katamari'; import * as Traverse from '../search/Traverse'; import { SugarElement } from './SugarElement'; type ElementTuple = { [K in keyof T]: SugarElement }; const fromHtml = (html: string, scope?: Document | null): ElementTuple => { const doc: Document = scope || document; const div = doc.createElement('div'); div.innerHTML = html; return Traverse.children(SugarElement.fromDom(div)) as unknown as ElementTuple; }; const fromTags = (tags: string[], scope?: Document | null): SugarElement[] => Arr.map(tags, (x) => SugarElement.fromTag(x, scope)); const fromText = (texts: string[], scope?: Document | null): SugarElement[] => Arr.map(texts, (x) => SugarElement.fromText(x, scope)); const fromDom = (nodes: ArrayLike): SugarElement[] => Arr.map(nodes, SugarElement.fromDom); export { fromHtml, fromTags, fromText, fromDom };