1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- // 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,
- });
- }
- }
|