mirror of
https://github.com/odoo/owl.git
synced 2025-10-06 19:59:41 +07:00
98 lines
2.4 KiB
TypeScript
Executable File
98 lines
2.4 KiB
TypeScript
Executable File
export interface DOMAPI {
|
|
createElement: (tagName: any) => HTMLElement;
|
|
createElementNS: (namespaceURI: string, qualifiedName: string) => Element;
|
|
createTextNode: (text: string) => Text;
|
|
createComment: (text: string) => Comment;
|
|
insertBefore: (parentNode: Node, newNode: Node, referenceNode: Node | null) => void;
|
|
removeChild: (node: Node, child: Node) => void;
|
|
appendChild: (node: Node, child: Node) => void;
|
|
parentNode: (node: Node) => Node;
|
|
nextSibling: (node: Node) => Node;
|
|
tagName: (elm: Element) => string;
|
|
setTextContent: (node: Node, text: string | null) => void;
|
|
getTextContent: (node: Node) => string | null;
|
|
isElement: (node: Node) => node is Element;
|
|
isText: (node: Node) => node is Text;
|
|
isComment: (node: Node) => node is Comment;
|
|
}
|
|
|
|
function createElement(tagName: any): HTMLElement {
|
|
return document.createElement(tagName);
|
|
}
|
|
|
|
function createElementNS(namespaceURI: string, qualifiedName: string): Element {
|
|
return document.createElementNS(namespaceURI, qualifiedName);
|
|
}
|
|
|
|
function createTextNode(text: string): Text {
|
|
return document.createTextNode(text);
|
|
}
|
|
|
|
function createComment(text: string): Comment {
|
|
return document.createComment(text);
|
|
}
|
|
|
|
function insertBefore(parentNode: Node, newNode: Node, referenceNode: Node | null): void {
|
|
parentNode.insertBefore(newNode, referenceNode);
|
|
}
|
|
|
|
function removeChild(node: Node, child: Node): void {
|
|
node.removeChild(child);
|
|
}
|
|
|
|
function appendChild(node: Node, child: Node): void {
|
|
node.appendChild(child);
|
|
}
|
|
|
|
function parentNode(node: Node): Node | null {
|
|
return node.parentNode;
|
|
}
|
|
|
|
function nextSibling(node: Node): Node | null {
|
|
return node.nextSibling;
|
|
}
|
|
|
|
function tagName(elm: Element): string {
|
|
return elm.tagName;
|
|
}
|
|
|
|
function setTextContent(node: Node, text: string | null): void {
|
|
node.textContent = text;
|
|
}
|
|
|
|
function getTextContent(node: Node): string | null {
|
|
return node.textContent;
|
|
}
|
|
|
|
function isElement(node: Node): node is Element {
|
|
return node.nodeType === 1;
|
|
}
|
|
|
|
function isText(node: Node): node is Text {
|
|
return node.nodeType === 3;
|
|
}
|
|
|
|
function isComment(node: Node): node is Comment {
|
|
return node.nodeType === 8;
|
|
}
|
|
|
|
export const htmlDomApi = {
|
|
createElement,
|
|
createElementNS,
|
|
createTextNode,
|
|
createComment,
|
|
insertBefore,
|
|
removeChild,
|
|
appendChild,
|
|
parentNode,
|
|
nextSibling,
|
|
tagName,
|
|
setTextContent,
|
|
getTextContent,
|
|
isElement,
|
|
isText,
|
|
isComment,
|
|
} as DOMAPI;
|
|
|
|
export default htmlDomApi;
|