nehan
Version:
Html layout engine for paged-media written in Typescript
56 lines • 1.32 kB
JavaScript
export class DomCallbackEffector {
constructor(pageRoot) {
this.pageRoot = pageRoot;
}
visitNode(node) {
if (node.dom && node.env.element.style.hasDomCallbacks()) {
node.env.element.style.callDomCallbacks(node, node.dom, this.pageRoot);
}
}
visitTree(node) {
this.visitNode(node);
this.visitChildren(node.children);
}
visitChildren(children) {
children.forEach(child => child.acceptEffector(this));
}
visitLine(node) {
this.visitChildren(node.children);
}
visitRuby(node) {
this.visitNode(node);
this.visitNode(node.rt);
this.visitNode(node.rb);
}
visitInline(node) {
this.visitTree(node);
}
visitBlock(node) {
this.visitTree(node);
}
visitInlineBlock(node) {
this.visitTree(node);
}
;
visitTableCells(node) {
node.children.forEach(child => child.acceptEffector(this));
}
;
visitBlockImage(node) {
this.visitNode(node);
}
;
visitInlineImage(node) {
this.visitNode(node);
}
;
visitBlockVideo(node) {
this.visitNode(node);
}
;
visitInlineVideo(node) {
this.visitNode(node);
}
;
}
//# sourceMappingURL=dom-callback-effector.js.map