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.
		
		
		
		
		
			
		
			
				
					
					
						
							85 lines
						
					
					
						
							2.8 KiB
						
					
					
				
			
		
		
	
	
							85 lines
						
					
					
						
							2.8 KiB
						
					
					
				import { Node, Element, DataNode, NodeWithChildren, Document } from "./node"; | 
						|
export * from "./node"; | 
						|
export interface DomHandlerOptions { | 
						|
    /** | 
						|
     * Add a `startIndex` property to nodes. | 
						|
     * When the parser is used in a non-streaming fashion, `startIndex` is an integer | 
						|
     * indicating the position of the start of the node in the document. | 
						|
     * | 
						|
     * @default false | 
						|
     */ | 
						|
    withStartIndices?: boolean; | 
						|
    /** | 
						|
     * Add an `endIndex` property to nodes. | 
						|
     * When the parser is used in a non-streaming fashion, `endIndex` is an integer | 
						|
     * indicating the position of the end of the node in the document. | 
						|
     * | 
						|
     * @default false | 
						|
     */ | 
						|
    withEndIndices?: boolean; | 
						|
    /** | 
						|
     * Replace all whitespace with single spaces. | 
						|
     * | 
						|
     * **Note:** Enabling this might break your markup. | 
						|
     * | 
						|
     * @default false | 
						|
     * @deprecated | 
						|
     */ | 
						|
    normalizeWhitespace?: boolean; | 
						|
    /** | 
						|
     * Treat the markup as XML. | 
						|
     * | 
						|
     * @default false | 
						|
     */ | 
						|
    xmlMode?: boolean; | 
						|
} | 
						|
interface ParserInterface { | 
						|
    startIndex: number | null; | 
						|
    endIndex: number | null; | 
						|
} | 
						|
declare type Callback = (error: Error | null, dom: Node[]) => void; | 
						|
declare type ElementCallback = (element: Element) => void; | 
						|
export declare class DomHandler { | 
						|
    /** The elements of the DOM */ | 
						|
    dom: Node[]; | 
						|
    /** The root element for the DOM */ | 
						|
    root: Document; | 
						|
    /** Called once parsing has completed. */ | 
						|
    private readonly callback; | 
						|
    /** Settings for the handler. */ | 
						|
    private readonly options; | 
						|
    /** Callback whenever a tag is closed. */ | 
						|
    private readonly elementCB; | 
						|
    /** Indicated whether parsing has been completed. */ | 
						|
    private done; | 
						|
    /** Stack of open tags. */ | 
						|
    protected tagStack: NodeWithChildren[]; | 
						|
    /** A data node that is still being written to. */ | 
						|
    protected lastNode: DataNode | null; | 
						|
    /** Reference to the parser instance. Used for location information. */ | 
						|
    private parser; | 
						|
    /** | 
						|
     * @param callback Called once parsing has completed. | 
						|
     * @param options Settings for the handler. | 
						|
     * @param elementCB Callback whenever a tag is closed. | 
						|
     */ | 
						|
    constructor(callback?: Callback | null, options?: DomHandlerOptions | null, elementCB?: ElementCallback); | 
						|
    onparserinit(parser: ParserInterface): void; | 
						|
    onreset(): void; | 
						|
    onend(): void; | 
						|
    onerror(error: Error): void; | 
						|
    onclosetag(): void; | 
						|
    onopentag(name: string, attribs: { | 
						|
        [key: string]: string; | 
						|
    }): void; | 
						|
    ontext(data: string): void; | 
						|
    oncomment(data: string): void; | 
						|
    oncommentend(): void; | 
						|
    oncdatastart(): void; | 
						|
    oncdataend(): void; | 
						|
    onprocessinginstruction(name: string, data: string): void; | 
						|
    protected handleCallback(error: Error | null): void; | 
						|
    protected addNode(node: Node): void; | 
						|
} | 
						|
export default DomHandler; | 
						|
//# sourceMappingURL=index.d.ts.map
 |