diff options
author | siikamiika <siikamiika@users.noreply.github.com> | 2019-08-02 00:04:39 +0300 |
---|---|---|
committer | siikamiika <siikamiika@users.noreply.github.com> | 2019-08-02 00:04:39 +0300 |
commit | 04f4607922e84d93ca8a05708802fb6bbd61f359 (patch) | |
tree | 2c0a873264b07b9d229ddcf7cec5a86b44ba0779 /ext/mixed/js/display.js | |
parent | e500a647a2518e9090529522b0dd6dd84d26aefe (diff) |
use ES6 import and export
Diffstat (limited to 'ext/mixed/js/display.js')
-rw-r--r-- | ext/mixed/js/display.js | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/ext/mixed/js/display.js b/ext/mixed/js/display.js index dc6f5798..5d259936 100644 --- a/ext/mixed/js/display.js +++ b/ext/mixed/js/display.js @@ -17,6 +17,8 @@ */ +import {docRangeFromPoint, docSentenceExtract} from '../../fg/js/document.module.js'; + class Display { constructor(spinner, container) { this.spinner = spinner; @@ -69,6 +71,41 @@ class Display { } } + async onTermLookup(e) { + try { + e.preventDefault(); + + const clickedElement = $(e.target); + const textSource = docRangeFromPoint({x: e.clientX, y: e.clientY}); + textSource.setEndOffset(this.options.scanning.length); + + const {definitions, length} = await apiTermsFind(textSource.text()); + if (definitions.length === 0) { + return false; + } + + textSource.setEndOffset(length); + + const sentence = docSentenceExtract(textSource, this.options.anki.sentenceExt); + + const context = { + source: { + definitions: this.definitions, + index: Display.entryIndexFind(clickedElement) + } + }; + + if (this.context) { + context.sentence = sentence; + context.url = this.context.url; + } + + this.termsShow(definitions, this.options, context); + } catch (e) { + this.onError(e); + } + } + onAudioPlay(e) { e.preventDefault(); const link = $(e.currentTarget); @@ -460,3 +497,5 @@ class Display { return $('.entry').eq(index).find('.action-view-note'); } } + +export {Display}; |