browsh/webext/test/fixtures/text_nodes.js

53 wiersze
1.3 KiB
JavaScript

// Create DOM-compatible DOM Rectangles from a simple array of strings
export default class TextNodes {
constructor() {
this.offset = 0.0;
this.char_width = global.dimensions.char.width;
this.char_height = global.dimensions.char.height;
this.total_width = global.mock_DOM_template[0].length * this.char_width;
this.total_height = global.mock_DOM_template.length * this.char_height;
this.dom_rects = [];
}
build() {
for (let line of global.mock_DOM_text) {
this.addDomRect(line);
}
return [
{
textContent: global.mock_DOM_text.join(""),
parentElement: {
style: {}
},
bounding_box: this.boundingBox(),
dom_rects: this.dom_rects
}
];
}
boundingBox() {
return {
top: this.offset,
bottom: this.total_height + this.offset,
left: this.offset,
right: this.total_width + this.offset,
width: this.total_width,
height: this.total_height
};
}
addDomRect(line) {
const width = line.length * this.char_width;
const height = this.char_height;
const top = this.dom_rects.length * this.char_height + this.offset;
this.dom_rects.push({
top: top,
bottom: top + height,
left: this.offset,
right: width + this.offset,
width: width,
height: height
});
}
}