overleaf/services/web/public/coffee/ide/pdfng/directives/pdfHighlights.coffee

26 lines
847 B
CoffeeScript

app = angular.module 'pdfHighlights', []
app.factory 'pdfHighlights', [ () ->
class pdfHighlights
constructor: (options) ->
@highlightsLayerDiv = options.highlights[0]
@highlightElements = []
addHighlight: (viewport, left, top, width, height) ->
rect = viewport.convertToViewportRectangle([left, top, left + width, top + height])
rect = PDFJS.Util.normalizeRect(rect)
element = document.createElement("div")
element.style.left = Math.floor(rect[0]) + 'px'
element.style.top = Math.floor(rect[1]) + 'px'
element.style.width = Math.ceil(rect[2] - rect[0]) + 'px'
element.style.height = Math.ceil(rect[3] - rect[1]) + 'px'
@highlightElements.push(element)
@highlightsLayerDiv.appendChild(element)
element
clearHighlights: () ->
for h in @highlightElements
h.remove()
@highlightElements = []
]