mirror of
https://github.com/Frooodle/Stirling-PDF.git
synced 2026-02-17 13:52:14 +01:00
Turn the div adapters into injectable files so that each PdfContainer can be customized. And the adapters can be used in different PdfContainers as well.
39 lines
1.2 KiB
JavaScript
39 lines
1.2 KiB
JavaScript
class ImageHiglighter {
|
|
imageHighlighter;
|
|
constructor(id) {
|
|
this.imageHighlighter = document.getElementById(id);
|
|
this.imageHighlightCallback = this.imageHighlightCallback.bind(this);
|
|
this.imageHighlighter.onclick = () => {
|
|
this.imageHighlighter.childNodes.forEach((child) => {
|
|
child.classList.add('remove');
|
|
setTimeout(() => {
|
|
this.imageHighlighter.removeChild(child);
|
|
}, 100)
|
|
})
|
|
}
|
|
}
|
|
|
|
imageHighlightCallback(highlightEvent) {
|
|
var bigImg = document.createElement('img');
|
|
bigImg.onclick = (imageClickEvent) => {
|
|
// This prevents the highlighter's onClick from closing the image when clicking
|
|
// on the image instead of next to it.
|
|
imageClickEvent.preventDefault();
|
|
imageClickEvent.stopPropagation();
|
|
};
|
|
bigImg.src = highlightEvent.target.src;
|
|
this.imageHighlighter.appendChild(bigImg);
|
|
};
|
|
|
|
setActions() {
|
|
// not needed in this case
|
|
}
|
|
|
|
adapt(div) {
|
|
const img = div.querySelector('.page-image');
|
|
img.addEventListener('click', this.imageHighlightCallback)
|
|
return div;
|
|
}
|
|
}
|
|
|
|
export default ImageHiglighter; |