You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
svelte/src/compile/render-dom/wrappers/Document.ts

22 lines
626 B

import Block from '../Block';
import Wrapper from './shared/Wrapper';
import deindent from '../../../utils/deindent';
import Document from '../../nodes/Document';
export default class DocumentWrapper extends Wrapper {
node: Document;
render(block: Block, parentNode: string, parentNodes: string) {
this.node.handlers.forEach(handler => {
const snippet = handler.render(block);
block.builders.init.addBlock(deindent`
document.addEventListener("${handler.name}", ${snippet});
`);
block.builders.destroy.addBlock(deindent`
document.removeEventListener("${handler.name}", ${snippet});
`);
});
}
}