123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- 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>;
|