{"version":3,"file":"node.mjs","sources":["../../../../node_modules/domhandler/dist/node.js"],"sourcesContent":["import { ElementType, isTag as isTagRaw } from \"domelementtype\";\n/**\n * This object will be used as the prototype for Nodes when creating a\n * DOM-Level-1-compliant structure.\n */\nexport class Node {\n    /** Parent of the node */\n    parent = null;\n    /** Previous sibling */\n    prev = null;\n    /** Next sibling */\n    next = null;\n    /** The start index of the node. Requires `withStartIndices` on the handler to be `true. */\n    startIndex = null;\n    /** The end index of the node. Requires `withEndIndices` on the handler to be `true. */\n    endIndex = null;\n    // Read-write aliases for properties\n    /**\n     * Same as {@link parent}.\n     * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n     */\n    get parentNode() {\n        return this.parent;\n    }\n    set parentNode(parent) {\n        this.parent = parent;\n    }\n    /**\n     * Same as {@link prev}.\n     * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n     */\n    get previousSibling() {\n        return this.prev;\n    }\n    set previousSibling(previous) {\n        this.prev = previous;\n    }\n    /**\n     * Same as {@link next}.\n     * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n     */\n    get nextSibling() {\n        return this.next;\n    }\n    set nextSibling(next) {\n        this.next = next;\n    }\n    /**\n     * Clone this node, and optionally its children.\n     * @param recursive Clone child nodes as well.\n     * @returns A clone of the node.\n     */\n    cloneNode(recursive = false) {\n        return cloneNode(this, recursive);\n    }\n}\n/**\n * A node that contains some data.\n */\nexport class DataNode extends Node {\n    data;\n    /**\n     * @param data The content of the data node\n     */\n    constructor(data) {\n        super();\n        this.data = data;\n    }\n    /**\n     * Same as {@link data}.\n     * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n     */\n    get nodeValue() {\n        return this.data;\n    }\n    set nodeValue(data) {\n        this.data = data;\n    }\n}\n/**\n * Text within the document.\n */\nexport class Text extends DataNode {\n    type = ElementType.Text;\n    get nodeType() {\n        return 3;\n    }\n}\n/**\n * Comments within the document.\n */\nexport class Comment extends DataNode {\n    type = ElementType.Comment;\n    get nodeType() {\n        return 8;\n    }\n}\n/**\n * Processing instructions, including doc types.\n */\nexport class ProcessingInstruction extends DataNode {\n    type = ElementType.Directive;\n    name;\n    constructor(name, data) {\n        super(data);\n        this.name = name;\n    }\n    get nodeType() {\n        return 1;\n    }\n    /** If this is a doctype, the document type name (parse5 only). */\n    \"x-name\";\n    /** If this is a doctype, the document type public identifier (parse5 only). */\n    \"x-publicId\";\n    /** If this is a doctype, the document type system identifier (parse5 only). */\n    \"x-systemId\";\n}\n/**\n * A node that can have children.\n */\nexport class NodeWithChildren extends Node {\n    children;\n    /**\n     * @param children Children of the node. Only certain node types can have children.\n     */\n    constructor(children) {\n        super();\n        this.children = children;\n    }\n    // Aliases\n    /** First child of the node. */\n    get firstChild() {\n        return this.children[0] ?? null;\n    }\n    /** Last child of the node. */\n    get lastChild() {\n        return this.children.length > 0\n            ? this.children[this.children.length - 1]\n            : null;\n    }\n    /**\n     * Same as {@link children}.\n     * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n     */\n    get childNodes() {\n        return this.children;\n    }\n    set childNodes(children) {\n        this.children = children;\n    }\n}\n/**\n * CDATA nodes.\n */\nexport class CDATA extends NodeWithChildren {\n    type = ElementType.CDATA;\n    get nodeType() {\n        return 4;\n    }\n}\n/**\n * The root node of the document.\n */\nexport class Document extends NodeWithChildren {\n    type = ElementType.Root;\n    get nodeType() {\n        return 9;\n    }\n}\n/**\n * An element within the DOM.\n */\nexport class Element extends NodeWithChildren {\n    name;\n    attribs;\n    type;\n    /**\n     * @param name Name of the tag, eg. `div`, `span`.\n     * @param attribs Object mapping attribute names to attribute values.\n     * @param children Children of the node.\n     * @param type Node type used for the new node instance.\n     */\n    constructor(name, attribs, children = [], type = name === \"script\"\n        ? ElementType.Script\n        : name === \"style\"\n            ? ElementType.Style\n            : ElementType.Tag) {\n        super(children);\n        this.name = name;\n        this.attribs = attribs;\n        this.type = type;\n    }\n    get nodeType() {\n        return 1;\n    }\n    // DOM Level 1 aliases\n    /**\n     * Same as {@link name}.\n     * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n     */\n    get tagName() {\n        return this.name;\n    }\n    set tagName(name) {\n        this.name = name;\n    }\n    get attributes() {\n        return Object.keys(this.attribs).map((name) => ({\n            name,\n            value: this.attribs[name],\n            namespace: this[\"x-attribsNamespace\"]?.[name],\n            prefix: this[\"x-attribsPrefix\"]?.[name],\n        }));\n    }\n    /** Element namespace (parse5 only). */\n    namespace;\n    /** Element attribute namespaces (parse5 only). */\n    \"x-attribsNamespace\";\n    /** Element attribute namespace-related prefixes (parse5 only). */\n    \"x-attribsPrefix\";\n}\n/**\n * Checks if `node` is an element node.\n * @param node Node to check.\n * @returns `true` if the node is an element node.\n */\nexport function isTag(node) {\n    return isTagRaw(node);\n}\n/**\n * Checks if `node` is a CDATA node.\n * @param node Node to check.\n * @returns `true` if the node is a CDATA node.\n */\nexport function isCDATA(node) {\n    return node.type === ElementType.CDATA;\n}\n/**\n * Checks if `node` is a text node.\n * @param node Node to check.\n * @returns `true` if the node is a text node.\n */\nexport function isText(node) {\n    return node.type === ElementType.Text;\n}\n/**\n * Checks if `node` is a comment node.\n * @param node Node to check.\n * @returns `true` if the node is a comment node.\n */\nexport function isComment(node) {\n    return node.type === ElementType.Comment;\n}\n/**\n * Checks if `node` is a directive node.\n * @param node Node to check.\n * @returns `true` if the node is a directive node.\n */\nexport function isDirective(node) {\n    return node.type === ElementType.Directive;\n}\n/**\n * Checks if `node` is a document node.\n * @param node Node to check.\n * @returns `true` if the node is a document node.\n */\nexport function isDocument(node) {\n    return node.type === ElementType.Root;\n}\n/**\n * Checks if `node` has children.\n * @param node Node to check.\n * @returns `true` if the node has children.\n */\nexport function hasChildren(node) {\n    return Object.hasOwn(node, \"children\");\n}\n/**\n * Clone a node, and optionally its children.\n * @param node Node to clone.\n * @param recursive Clone child nodes as well.\n * @returns A clone of the node.\n */\nexport function cloneNode(node, recursive = false) {\n    let result;\n    if (isText(node)) {\n        result = new Text(node.data);\n    }\n    else if (isComment(node)) {\n        result = new Comment(node.data);\n    }\n    else if (isTag(node)) {\n        const children = recursive ? cloneChildren(node.children) : [];\n        const clone = new Element(node.name, { ...node.attribs }, children);\n        for (const child of children) {\n            child.parent = clone;\n        }\n        if (node.namespace != null) {\n            clone.namespace = node.namespace;\n        }\n        if (node[\"x-attribsNamespace\"]) {\n            clone[\"x-attribsNamespace\"] = { ...node[\"x-attribsNamespace\"] };\n        }\n        if (node[\"x-attribsPrefix\"]) {\n            clone[\"x-attribsPrefix\"] = { ...node[\"x-attribsPrefix\"] };\n        }\n        result = clone;\n    }\n    else if (isCDATA(node)) {\n        const children = recursive ? cloneChildren(node.children) : [];\n        const clone = new CDATA(children);\n        for (const child of children) {\n            child.parent = clone;\n        }\n        result = clone;\n    }\n    else if (isDocument(node)) {\n        const children = recursive ? cloneChildren(node.children) : [];\n        const clone = new Document(children);\n        for (const child of children) {\n            child.parent = clone;\n        }\n        if (node[\"x-mode\"]) {\n            clone[\"x-mode\"] = node[\"x-mode\"];\n        }\n        result = clone;\n    }\n    else if (isDirective(node)) {\n        const instruction = new ProcessingInstruction(node.name, node.data);\n        if (node[\"x-name\"] != null) {\n            instruction[\"x-name\"] = node[\"x-name\"];\n            instruction[\"x-publicId\"] = node[\"x-publicId\"];\n            instruction[\"x-systemId\"] = node[\"x-systemId\"];\n        }\n        result = instruction;\n    }\n    else {\n        throw new Error(`Not implemented yet: ${node.type}`);\n    }\n    result.startIndex = node.startIndex;\n    result.endIndex = node.endIndex;\n    if (node.sourceCodeLocation != null) {\n        result.sourceCodeLocation = node.sourceCodeLocation;\n    }\n    return result;\n}\n/**\n * Clone a list of child nodes.\n * @param childs The child nodes to clone.\n * @returns A list of cloned child nodes.\n */\nfunction cloneChildren(childs) {\n    const children = childs.map((child) => cloneNode(child, true));\n    for (let index = 1; index < children.length; index++) {\n        children[index].prev = children[index - 1];\n        children[index - 1].next = children[index];\n    }\n    return children;\n}\n"],"names":["isTagRaw"],"mappings":"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","x_google_ignoreList":[0]}