nehan
Version:
Html layout engine for paged-media written in Typescript
35 lines • 1.1 kB
JavaScript
import { Config, Display, WhiteSpace, PseudoElement, } from './public-api';
export class ValidBlockSelector {
constructor() { }
visit(element) {
if (element.isTextElement()) {
return true;
}
if (Config.ignoredTags.includes(element.tagName)) {
return false;
}
if (["br", "hr", "img", "wbr", "video", "iframe"].includes(element.tagName)) {
return true;
}
if (PseudoElement.isPseudoElement(element)) {
return true;
}
const display = Display.load(element);
if (display.isNone()) {
return false;
}
if (!display.isBlockLevel()) {
return true;
}
element.acceptChildFilter(this);
if (element.childNodes.length === 0) {
return false;
}
if (element.childNodes.every(child => WhiteSpace.isWhiteSpaceElement(child))) {
return false;
}
return true;
}
}
ValidBlockSelector.instance = new ValidBlockSelector();
//# sourceMappingURL=child-node-filter.js.map