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.
156 lines
3.7 KiB
156 lines
3.7 KiB
type Comment := { |
|
data: String, |
|
length: Number, |
|
nodeName: "#comment", |
|
nodeType: 8, |
|
nodeValue: String, |
|
ownerDoucment: null | Document, |
|
|
|
toString: (this: Comment) => String |
|
} |
|
|
|
type DOMText := { |
|
data: String, |
|
type: "DOMTextNode", |
|
length: Number, |
|
nodeType: 3, |
|
|
|
toString: (this: DOMText) => String, |
|
replaceChild: ( |
|
this: DOMText, |
|
index: Number, |
|
length: Number, |
|
value: String |
|
) => void |
|
} |
|
|
|
type DOMNode := DOMText | DOMElement | DocumentFragment |
|
type DOMChild := DOMText | DOMElement |
|
|
|
type DOMElement := { |
|
tagName: String, |
|
className: String, |
|
dataset: Object<String, Any>, |
|
childNodes: Array<DOMChild>, |
|
parentNode: null | DOMElement, |
|
style: Object<String, String>, |
|
type: "DOMElement", |
|
nodeType: 1, |
|
ownerDoucment: null | Document, |
|
namespaceURI: null | String, |
|
|
|
appendChild: (this: DOMElement, child: DOMChild) => DOMChild, |
|
replaceChild:( |
|
this: DOMElement, |
|
elem: DOMChild, |
|
needle: DOMChild |
|
) => DOMChild, |
|
removeChild: (this: DOMElement, child: DOMChild) => DOMChild, |
|
insertBefore: ( |
|
this: DOMElement, |
|
elem: DOMChild, |
|
needle: DOMChild | null | undefined |
|
) => DOMChild, |
|
addEventListener: addEventListener, |
|
dispatchEvent: dispatchEvent, |
|
focus: () => void, |
|
toString: (this: DOMElement) => String, |
|
getElementsByClassName: ( |
|
this: DOMElement, |
|
className: String |
|
) => Array<DOMElement>, |
|
getElementsByTagName: ( |
|
this: DOMElement, |
|
tagName: String |
|
) => Array<DOMElement>, |
|
} |
|
|
|
type DocumentFragment := { |
|
childNodes: Array<DOMChild>, |
|
parentNode: null | DOMElement, |
|
type: "DocumentFragment", |
|
nodeType: 11, |
|
nodeName: "#document-fragment", |
|
ownerDoucment: Document | null, |
|
|
|
appendChild: (this: DocumentFragment, child: DOMChild), |
|
replaceChild: |
|
(this: DocumentFragment, elem: DOMChild, needle: DOMChild), |
|
removeChild: (this: DocumentFragment, child: DOMChild), |
|
toString: (this: DocumentFragment) => String |
|
} |
|
|
|
type Document := { |
|
body: DOMElement, |
|
childNodes: Array<DOMChild>, |
|
documentElement: DOMElement, |
|
nodeType: 9, |
|
|
|
createComment: (this: Document, data: String) => Commment, |
|
createTextNode: (this: Document, value: String) => DOMText, |
|
createElement: (this: Document, tagName: String) => DOMElement, |
|
createElementNS: ( |
|
this: Document, |
|
namespace: String | null, |
|
tagName: String |
|
) => DOMElement, |
|
createDocumentFragment: (this: Document) => DocumentFragment, |
|
createEvent: () => Event, |
|
getElementById: ( |
|
this: Document, |
|
id: String, |
|
) => null | DOMElement, |
|
getElementsByClassName: ( |
|
this: Document, |
|
className: String |
|
) => Array<DOMElement>, |
|
getElementsByTagName: ( |
|
this: Document, |
|
tagName: String |
|
) => Array<DOMElement> |
|
} |
|
|
|
type Event := { |
|
type: String, |
|
bubbles: Boolean, |
|
cancelable: Boolean, |
|
|
|
initEvent: ( |
|
this: Event, |
|
type: String, |
|
bubbles: Boolean, |
|
cancelable: Boolean |
|
) => void |
|
} |
|
|
|
type addEventListener := ( |
|
this: DOMElement, |
|
type: String, |
|
listener: Listener |
|
) => void |
|
|
|
type dispatchEvent := ( |
|
this: DOMElement, |
|
ev: Event |
|
) |
|
|
|
min-document/event/add-event-listener := addEventListener |
|
|
|
min-document/event/dispatch-event := dispatchEvent |
|
|
|
min-document/document := () => Document |
|
|
|
min-document/dom-element := |
|
(tagName: String, owner?: Document, namespace?: String | null) => DOMElement |
|
|
|
min-document/dom-fragment := |
|
(owner?: Document) => DocumentFragment |
|
|
|
min-document/dom-text := |
|
(value: String, owner?: Document) => DOMText |
|
|
|
min-document/event := () => Event |
|
|
|
min-document/serialize := (DOMElement) => String |
|
|
|
min-document := Document
|
|
|