mirror of https://github.com/jkjoy/sunpeiwen.git
85 lines
3.1 KiB
TypeScript
85 lines
3.1 KiB
TypeScript
|
import { DOCUMENT_MODE, type NS } from '../common/html.js';
|
||
|
import type { Attribute, Location, ElementLocation } from '../common/token.js';
|
||
|
import type { TreeAdapter, TreeAdapterTypeMap } from './interface.js';
|
||
|
export interface Document {
|
||
|
/** The name of the node. */
|
||
|
nodeName: '#document';
|
||
|
/**
|
||
|
* Document mode.
|
||
|
*
|
||
|
* @see {@link DOCUMENT_MODE} */
|
||
|
mode: DOCUMENT_MODE;
|
||
|
/** The node's children. */
|
||
|
childNodes: ChildNode[];
|
||
|
/** Comment source code location info. Available if location info is enabled. */
|
||
|
sourceCodeLocation?: Location | null;
|
||
|
}
|
||
|
export interface DocumentFragment {
|
||
|
/** The name of the node. */
|
||
|
nodeName: '#document-fragment';
|
||
|
/** The node's children. */
|
||
|
childNodes: ChildNode[];
|
||
|
/** Comment source code location info. Available if location info is enabled. */
|
||
|
sourceCodeLocation?: Location | null;
|
||
|
}
|
||
|
export interface Element {
|
||
|
/** Element tag name. Same as {@link tagName}. */
|
||
|
nodeName: string;
|
||
|
/** Element tag name. Same as {@link nodeName}. */
|
||
|
tagName: string;
|
||
|
/** List of element attributes. */
|
||
|
attrs: Attribute[];
|
||
|
/** Element namespace. */
|
||
|
namespaceURI: NS;
|
||
|
/** Element source code location info, with attributes. Available if location info is enabled. */
|
||
|
sourceCodeLocation?: ElementLocation | null;
|
||
|
/** Parent node. */
|
||
|
parentNode: ParentNode | null;
|
||
|
/** The node's children. */
|
||
|
childNodes: ChildNode[];
|
||
|
}
|
||
|
export interface CommentNode {
|
||
|
/** The name of the node. */
|
||
|
nodeName: '#comment';
|
||
|
/** Parent node. */
|
||
|
parentNode: ParentNode | null;
|
||
|
/** Comment text. */
|
||
|
data: string;
|
||
|
/** Comment source code location info. Available if location info is enabled. */
|
||
|
sourceCodeLocation?: Location | null;
|
||
|
}
|
||
|
export interface TextNode {
|
||
|
nodeName: '#text';
|
||
|
/** Parent node. */
|
||
|
parentNode: ParentNode | null;
|
||
|
/** Text content. */
|
||
|
value: string;
|
||
|
/** Comment source code location info. Available if location info is enabled. */
|
||
|
sourceCodeLocation?: Location | null;
|
||
|
}
|
||
|
export interface Template extends Element {
|
||
|
nodeName: 'template';
|
||
|
tagName: 'template';
|
||
|
/** The content of a `template` tag. */
|
||
|
content: DocumentFragment;
|
||
|
}
|
||
|
export interface DocumentType {
|
||
|
/** The name of the node. */
|
||
|
nodeName: '#documentType';
|
||
|
/** Parent node. */
|
||
|
parentNode: ParentNode | null;
|
||
|
/** Document type name. */
|
||
|
name: string;
|
||
|
/** Document type public identifier. */
|
||
|
publicId: string;
|
||
|
/** Document type system identifier. */
|
||
|
systemId: string;
|
||
|
/** Comment source code location info. Available if location info is enabled. */
|
||
|
sourceCodeLocation?: Location | null;
|
||
|
}
|
||
|
export type ParentNode = Document | DocumentFragment | Element | Template;
|
||
|
export type ChildNode = Element | Template | CommentNode | TextNode | DocumentType;
|
||
|
export type Node = ParentNode | ChildNode;
|
||
|
export type DefaultTreeAdapterMap = TreeAdapterTypeMap<Node, ParentNode, ChildNode, Document, DocumentFragment, Element, CommentNode, TextNode, Template, DocumentType>;
|
||
|
export declare const defaultTreeAdapter: TreeAdapter<DefaultTreeAdapterMap>;
|
||
|
//# sourceMappingURL=default.d.ts.map
|