import { Handler } from '/csspageweaver/lib/paged.esm.js'; export default class snapToBaseline extends Handler { constructor(chunker, polisher, caller) { super(chunker, polisher, caller); this.baseline; } beforeParsed(content){ this.baseline = parseFloat(getComputedStyle(document.documentElement).getPropertyValue('--baseline').trim()); // console.log("========================================"); // console.log("baseline = " + this.baseline); } renderNode(node, sourceNode){ if (node.nodeName === 'P') { this.baseline = parseFloat(getComputedStyle(document.documentElement).getPropertyValue('--baseline').trim()); const area = node.closest('.pagedjs_area'); if (area) { const areaRect = area.getBoundingClientRect(); const nodeRect = node.getBoundingClientRect(); const relativeTop = nodeRect.top - areaRect.top; const modulo = relativeTop % this.baseline; if (modulo !== 0) { let newPadding = this.baseline - modulo; node.style.paddingTop = newPadding + 'px'; } } return node; } } }