nehan
Version:
Html layout engine for paged-media written in Typescript
66 lines • 1.58 kB
JavaScript
export class DomTokenList {
constructor(items) {
this.tokens = items || [];
}
get length() {
return this.tokens.length;
}
item(index) {
return this.tokens[index];
}
contains(token) {
return this.tokens.some((t) => {
return t === token;
});
}
add(token) {
this.tokens.push(token);
}
remove(token) {
return this.tokens = this.tokens.filter((t) => {
return t !== token;
});
}
replace(old_token, new_token) {
return this.tokens = this.tokens.map((t) => {
return (t === old_token) ? new_token : t;
});
}
supports(token) {
throw new Error("Sorry, not implemented yet");
}
toggle(token, force) {
let contains = this.contains(token);
if (force === true) {
if (contains === false) {
this.add(token);
}
return true;
}
if (force === false) {
if (contains === true) {
this.remove(token);
}
return false;
}
if (contains === true) {
this.remove(token);
return false;
}
this.add(token);
return true;
}
entries() {
return this.tokens;
}
keys() {
return Object.keys(this.tokens);
}
values() {
return this.tokens;
}
forEach(callback) {
Array.prototype.forEach.call(this.tokens, callback);
}
}
//# sourceMappingURL=dom-token-list.js.map