X-Git-Url: http://git.shiar.nl/sheet.git/blobdiff_plain/30bf0fcde3f7e44f1ec7bcfc8253dfce8f81e8e6..v1.12-226-gca5f2bee8e:/word/editor.js diff --git a/word/editor.js b/word/editor.js index da403b2..aeab4cc 100644 --- a/word/editor.js +++ b/word/editor.js @@ -31,7 +31,9 @@ document.addEventListener('DOMContentLoaded', () => { let transrow = document.getElementById('trans-la'); if (transrow && !transrow.value && wptext) { const binom = wptext.match(/ class="binomial">.*?(.*?)<\/i>/); - transrow.value = binom[1] + if (binom) { + transrow.value = binom[1] + } } // translations from language links @@ -105,23 +107,26 @@ document.addEventListener('DOMContentLoaded', () => { let thumbpreview = document.getElementById('convertpreview'); if (thumbpreview && imgpreview) { thumbpreview.onclick = e => { - let imgselect = imgpreview; /* TODO clone */ - imgselect.hidden = false; - imgselect.classList.add('popup'); - imgselect.onmousemove = e => { - let border = imgselect.getBoundingClientRect(); - let pos = [ - Math.round(1000 * (e.clientX - border.x) / border.width), - Math.round(1000 * (e.clientY - border.y) / border.height) - ]; - return pos; - }; - imgselect.onclick = e => { - let imgoption = document.getElementById('convert'); - imgoption.value += (imgoption.value && '-') + imgselect.onmousemove(e); - imgselect.hidden = true; - imgselect.classList.remove('popup'); - }; + const cropinput = document.getElementById('crop32'); + let border = { width: 600, height: 400 }; + let crop = new Croppie(thumbpreview, { + boundary: { width: border.width * 1.3, height: border.height * 1.2 }, + viewport: border, + update: e => { + cropinput.value = e.points.map((pos, axis) => { + Math.round(1000 * pos / (axis % 2 ? border.height : border.width)) + }).join(','); + }, + }); + crop.bind({ + url: imgpreview.src, + points: cropinput.value.split(/[^0-9]/).map((rel, axis) => { + return rel * (axis % 2 ? border.height : border.width) / 1000 + }), + }); + crop.elements.overlay.addEventListener('dblclick', e => { + crop.destroy(); + }); }; }