98 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			V
		
	
	
			
		
		
	
	
			98 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			V
		
	
	
module jsdom
 | 
						|
 | 
						|
pub struct JS.DOMString {
 | 
						|
}
 | 
						|
 | 
						|
pub struct JS.DOMTokenList {
 | 
						|
	length JS.Number
 | 
						|
	value  JS.DOMString
 | 
						|
}
 | 
						|
 | 
						|
pub struct DOMTokenList {
 | 
						|
	list JS.DOMTokenList [noinit]
 | 
						|
}
 | 
						|
 | 
						|
pub fn (x DOMTokenList) len() int {
 | 
						|
	res := 0
 | 
						|
	#res.val = x.list.length;
 | 
						|
 | 
						|
	return res
 | 
						|
}
 | 
						|
 | 
						|
pub fn (x DOMTokenList) item(idx int) ?string {
 | 
						|
	res := ''
 | 
						|
	#let tmp = x.list.item(idx.list.val)
 | 
						|
	#if (tmp === undefined) return new Option({state: new byte(2),err: none__});
 | 
						|
	#res.val = tmp
 | 
						|
 | 
						|
	return res
 | 
						|
}
 | 
						|
 | 
						|
pub fn (x DOMTokenList) contains(token string) bool {
 | 
						|
	res := false
 | 
						|
	#res.val = x.list.contains(token.str);
 | 
						|
 | 
						|
	return res
 | 
						|
}
 | 
						|
 | 
						|
pub fn (x DOMTokenList) add(tokens ...string) {
 | 
						|
	for token in tokens {
 | 
						|
		#x.list.add(token.str);
 | 
						|
 | 
						|
		_ := token
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
pub fn (x DOMTokenList) remove(tokens ...string) {
 | 
						|
	for token in tokens {
 | 
						|
		#x.list.remove(token.str);
 | 
						|
 | 
						|
		_ := token
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
pub fn (x DOMTokenList) replace(old_token string, new_token string) bool {
 | 
						|
	is_replaced := false
 | 
						|
	#is_replaced.val = x.list.replace(old_token.str,new_token.str);
 | 
						|
 | 
						|
	return is_replaced
 | 
						|
}
 | 
						|
 | 
						|
// supports returns true if the given `token` is in the associated attibute's supported tokens.
 | 
						|
pub fn (x DOMTokenList) supports(token string) bool {
 | 
						|
	supports := false
 | 
						|
	#supports.val = x.list.supports(token.str)
 | 
						|
 | 
						|
	return supports
 | 
						|
}
 | 
						|
 | 
						|
// toggle removes a given token from the list and returns `false`. If token does not exist
 | 
						|
// it is added and function returns `true`.
 | 
						|
pub fn (x DOMTokenList) toggle(token string, force bool) bool {
 | 
						|
	res := false
 | 
						|
	#res.val = x.list.toggle(token.str, force.val);
 | 
						|
 | 
						|
	return res
 | 
						|
}
 | 
						|
 | 
						|
// entries returns array of all tokens in this token list
 | 
						|
pub fn (x DOMTokenList) values() []string {
 | 
						|
	mut res := []string{}
 | 
						|
	#for (let [_,value] of x.list.entries()) array_push(res, new string(value));
 | 
						|
 | 
						|
	return res
 | 
						|
}
 | 
						|
 | 
						|
pub fn (x DOMTokenList) str() string {
 | 
						|
	mut fmt := 'DOMTokenList['
 | 
						|
	values := x.values()
 | 
						|
	for i, val in values {
 | 
						|
		fmt += '"' + val + '"'
 | 
						|
		if i != values.len - 1 {
 | 
						|
			fmt += ','
 | 
						|
		}
 | 
						|
	}
 | 
						|
	fmt += ']'
 | 
						|
	return fmt
 | 
						|
}
 |