Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
public createDomRef(): HTMLElement {
const { toDOM } = this.node.type.spec;
if (toDOM) {
const domSpec = toDOM(this.node);
if (isString(domSpec)) {
return document.createElement(domSpec);
}
if (isDOMNode(domSpec)) {
if (!isElementDOMNode(domSpec)) {
throw new Error('Invalid HTML Element provided in the DOM Spec');
}
return domSpec;
}
// Use the outer element string to render the dom node
return document.createElement(domSpec[0]);
}
return this.node.isInline ? document.createElement('span') : document.createElement('div');
}
public setDomAttrs(node: ProsemirrorNode, element: HTMLElement) {
const { toDOM } = this.node.type.spec;
if (toDOM) {
const domSpec = toDOM(node);
if (isString(domSpec) || isDOMNode(domSpec)) {
return;
}
const attrs = domSpec[1];
if (isPlainObject(attrs)) {
keys(attrs).forEach(attr => {
element.setAttribute(attr, String(attrs[attr]));
});
return;
}
}
keys(node.attrs).forEach(attr => {
element.setAttribute(attr, node.attrs[attr]);