library-ts/browser/graphs/HTMLNodeTreeWalker.ts

42 lines
785 B
TypeScript
Raw Normal View History

2025-03-08 08:16:54 +00:00
import { TreeWalker } from './TreeWalker';
export class HTMLNodeTreeWalker extends TreeWalker<Node>
{
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;
}
}