import { TreeWalker } from './TreeWalker'; export class HTMLNodeTreeWalker extends TreeWalker { private static _instance:HTMLNodeTreeWalker; static get $() { if ( HTMLNodeTreeWalker._instance ) { return HTMLNodeTreeWalker._instance; } HTMLNodeTreeWalker._instance = new HTMLNodeTreeWalker(); return HTMLNodeTreeWalker._instance; } parent( node:Node ) { return node.parentNode; } childAt( node:Node, index:number ) { if ( Node.ELEMENT_NODE !== node.nodeType ) { return null; } return ( node as Element ).childNodes[ index ]; } numChildren( node:Node ):number { if ( Node.ELEMENT_NODE !== node.nodeType ) { return 0; } return ( node as Element ).childNodes.length; } }