import * as PDFJS from 'pdfjs-dist/legacy/build/pdf' export function buildHighlightElement(highlight, viewer) { const pageView = viewer.getPageView(highlight.page - 1) const viewport = pageView.viewport const height = viewport.viewBox[3] const rect = viewport.convertToViewportRectangle([ highlight.h, // xMin height - (highlight.v + highlight.height) + 10, // yMin highlight.h + highlight.width, // xMax height - highlight.v + 10, // yMax ]) const [left, top, right, bottom] = PDFJS.Util.normalizeRect(rect) const element = document.createElement('div') element.style.left = Math.floor(left) + 'px' element.style.top = Math.floor(top) + 'px' element.style.width = Math.ceil(right - left) + 'px' element.style.height = Math.ceil(bottom - top) + 'px' element.style.backgroundColor = 'rgba(255,255,0)' element.style.position = 'absolute' element.style.display = 'inline-block' element.style.scrollMargin = '72px' element.style.pointerEvents = 'none' element.style.opacity = '0' element.style.transition = 'opacity 0.5s' pageView.div.appendChild(element) window.setTimeout(() => { element.style.opacity = '0.3' window.setTimeout(() => { element.style.opacity = '0' }, 1000) }, 0) return element }