mirror of
https://github.com/vlang/v.git
synced 2023-08-10 21:13:21 +03:00
js: DOM API. Part 1 (#12296)
This commit is contained in:
93
vlib/jsdom/element.js.v
Normal file
93
vlib/jsdom/element.js.v
Normal file
@ -0,0 +1,93 @@
|
||||
module jsdom
|
||||
|
||||
pub struct JS.Element {
|
||||
classList JS.DOMTokenList
|
||||
childElementCount JS.Number
|
||||
className JS.String
|
||||
clientHeight JS.Number
|
||||
clientWidth JS.Number
|
||||
clientTop JS.Number
|
||||
clientLeft JS.Number
|
||||
id JS.String
|
||||
innerHTML JS.String
|
||||
namespaceURI JS.String
|
||||
outerHTML JS.String
|
||||
scrollHeight JS.Number
|
||||
scrollLeft JS.Number
|
||||
scrollTop JS.Number
|
||||
scrollWidth JS.Number
|
||||
}
|
||||
|
||||
pub struct Element {
|
||||
Node
|
||||
}
|
||||
|
||||
pub fn (e Element) str() string {
|
||||
res := ''
|
||||
#res.str = e.node + ''
|
||||
|
||||
return res
|
||||
}
|
||||
|
||||
pub fn (elem Element) typ() NodeType {
|
||||
return .element
|
||||
}
|
||||
|
||||
pub fn (e Element) class_name() string {
|
||||
res := ''
|
||||
#res.str = e.node.className
|
||||
|
||||
return res
|
||||
}
|
||||
|
||||
pub fn (e Element) class_list() DOMTokenList {
|
||||
list := DOMTokenList{}
|
||||
#list.list = e.node.classList
|
||||
|
||||
return list
|
||||
}
|
||||
|
||||
// node casts `Element` back to `Node`.
|
||||
pub fn (elem Element) node() Node {
|
||||
node := Node{}
|
||||
#node.node = elem.node
|
||||
|
||||
return node
|
||||
}
|
||||
|
||||
pub fn (elem Element) add_event_listener(event string, cb EventCallback) {
|
||||
#elem.node.addEventListener(event.str, function (event) { let e = jsdom__dispatch_event_target(this);
|
||||
#let ev = jsdom__dispatch_event(event); ev.event = event;
|
||||
#return cb(e,ev)
|
||||
#});
|
||||
}
|
||||
|
||||
pub interface IElement {
|
||||
INode
|
||||
}
|
||||
|
||||
pub struct HTMLElement {
|
||||
Element
|
||||
}
|
||||
|
||||
pub fn (elem HTMLElement) typ() NodeType {
|
||||
return .element
|
||||
}
|
||||
|
||||
pub fn (elem HTMLElement) access_key() string {
|
||||
res := ''
|
||||
#res.str = elem.node.accessKey;
|
||||
|
||||
return res
|
||||
}
|
||||
|
||||
pub fn (mut elem HTMLElement) set_access_key(key string) {
|
||||
#elem.val.node.accessKey = key.str;
|
||||
}
|
||||
|
||||
pub fn (elem HTMLElement) add_event_listener(event string, cb EventCallback) {
|
||||
#elem.node.addEventListener(event.str, function (event) { let e = jsdom__dispatch_event_target(this);
|
||||
#let ev = jsdom__dispatch_event(event); ev.event = event;
|
||||
#return cb(e,ev)
|
||||
#});
|
||||
}
|
Reference in New Issue
Block a user