toasted-nutbread
4a43b41f79
Set content refactor ( #686 )
...
* Simplify invoke
* Pass isTerms instead of type
* Update DisplaySearch.setContent to pass argument array
* Simplify argument object structure for setContent
* Move focus and disableHistory level
* Always include focus and disableHistory options
* Change disableHistory to history
* Pass source text to setContent
* Use consistent argument/object field order
* Remove unused previous field
* Combine logic for forward/back navigation
2020-07-25 09:58:06 -04:00
toasted-nutbread
64ddb4d901
Display fixes and refactoring ( #685 )
...
* Fix scroll target override sometimes using undefined value
* Clear event listeners in clearContent()
* Remove unused arguments
* Remove unused disableScroll
* Destructure definitions and context
* Merge _setContentTerms and _setContentKanji
* Move history tracking
* Destructure context
* Rename context to noteContext for clarity
* Destructure before passing args
* Move window focus
* Update scroll defaults
2020-07-24 21:12:13 -04:00
toasted-nutbread
71b97c2019
Display refactoring ( #674 )
...
* Move setupNestedPopups to Display
* Move auto-play timer and delay into Display
* Move some message handler definitions into Display
* Move default optionsContext definition
2020-07-18 23:47:02 -04:00
toasted-nutbread
c6c0126394
Content script ready checks ( #670 )
...
* Move ready checkout of Display
* Add function to wait until if a tab's content script is ready
2020-07-18 14:18:10 -04:00
toasted-nutbread
dac33e6961
Extension unload indication fix ( #662 )
...
* Remove unused function
* Rename field
* Change extensionUnloaded trigger function
* Update how extension unloaded content is shown
* Ignore certain errors caused by extension unload
* Add _showExtensionUnloaded function
* Wrap internals of updateOptions
* Suppress errors caued by extension unload
* Make the frontend trigger the popup's extensionUnloaded event
2020-07-18 14:15:36 -04:00
toasted-nutbread
f76a6ff1e3
Refactor hotkey definitions to be more generic ( #655 )
2020-07-08 20:02:20 -04:00
toasted-nutbread
8f48a23a45
Display class refactoring ( #650 )
...
* Organize by public/private
* Don't access super class's private members
* Make _autoPlayAudioTimer private
* Refactor constructors
* Make functions private
* Organize by public/private
* Organize window message handlers
* Make fields private
* Refactor DisplaySearch constructor
* Make functions private
* Organize by public/private
2020-07-03 15:58:29 -04:00
toasted-nutbread
a07a8dfff6
Extension unload detection ( #647 )
...
* Update how extension unload is detected
* Remove event handlers and use yomichan.isExtensionUnloaded instead
* Update terminology
2020-07-03 12:20:22 -04:00
toasted-nutbread
e36bc8771f
Display refactor ( #643 )
...
* Remove statics
* Move orphan detection and error handling to Display
* Add clearContent function
* Add/use public get/set functions for optionsContext
* Add public getOptions
* Move interactive assignment
* Mark fields as private
* Mark functions as private
* Change stray getter into a function
2020-07-03 12:02:21 -04:00
toasted-nutbread
5bf805755a
Yomichan object separation ( #627 )
...
* Move "yomichan" object setup to a separate file
* Update script imports
* Align message handlers
* Rename Yomichan.prepare to Yomichan.ready
* Add new prepare function
* Improve isExtensionUrl
2020-06-28 11:26:43 -04:00
toasted-nutbread
e23504613f
Use DOMTextScanner ( #536 )
...
* Use DOMTextScanner instead of TextSourceRange.seek*
* Move getNodesInRange to dom.js
* Move anyNodeMatchesSelector to dom.js
* Remove unused functions
* Update tests
* Add layoutAwareScan option
* Use layoutAwareScan for source and sentence scanning
* Remove unused IGNORE_TEXT_PATTERN
2020-06-21 16:07:51 -04:00
toasted-nutbread
9e28db6ef7
Safely handle volume values that are out of range ( #617 )
2020-06-21 15:51:36 -04:00
toasted-nutbread
c61a87b152
API refactor ( #532 )
...
* Convert api.js into a class instance
* Use new api.* functions
* Fix missing binds
* Group functions with progress callbacks together
* Change style
* Fix API override not working
2020-05-24 13:30:40 -04:00
toasted-nutbread
9742d5662b
Use CSS variables for themes ( #528 )
...
* Update formatting
* Merge default tag color with category-less tags
* Use CSS variables for colors
* Add dark theme colors
* Move color variables into display.css
* Remove old stylesheets
* Update headings
* Bump minimum Firefox version to support CSS var()
* Revert popular kanji text color
2020-05-10 14:07:25 -04:00
siikamiika
77b744e675
Modifier key profile condition ( #487 )
...
* update Frontend options on modifier change
* add modifier key profile condition
* use select element for modifier condition value
* support "is" and "is not" modifier key conditions
* use plural
* remove dead null check
it's never null in that function
* pass element on rather than assigning to this
* rename event
* remove Firefox OS key to Meta detection
* hide Meta from dropdown on Firefox
* move input type
2020-05-03 04:39:24 +03:00
toasted-nutbread
48c7010f4e
Frontend refactor (part 1) ( #484 )
...
* Remove _getVisualViewportScale
* Use super's mouse event listener definitions
* Remove redundant override
* Remove getTouchEventListeners override
* Rename Display.onSearchClear to onEscape
* Change onSearchClear to clearSelection and use an event
* Update how text is marked for selection and deselection
* Replace onError with yomichan.logError
* Update setEnabled to refresh all event listeners
2020-04-27 18:10:37 -04:00
siikamiika
ca033a87a0
Update Popup and DisplayFloat optionsContext from Frontend ( #464 )
...
* set optionsContext from Frontend
* update Popup+Display options on Frontend change
* remove popup setOptions
* only update DisplayFloat options from Frontend
* fix optionsContext usage
* fix preview frame arguments
* keep Frontend URL up to date
* cache url
* fix preview frame
* trigger modifyingProfileChange in correct places
* remove async from function not using await
* refactor optionsContext in Frontend
2020-04-26 22:33:50 +03:00
toasted-nutbread
ac603d54a3
Add support for displaying images
2020-04-18 21:32:35 -04:00
toasted-nutbread
320852f2d0
Fix overlapping audio.play calls due to await
2020-04-18 14:23:34 -04:00
toasted-nutbread
fcbfde506a
Await and handle errors from audio.play()
2020-04-18 14:23:34 -04:00
toasted-nutbread
92790763d1
Update style
2020-04-18 14:23:34 -04:00
toasted-nutbread
5c2dff345e
Fix button title text not updating correctly in merge mode
2020-04-18 14:23:34 -04:00
toasted-nutbread
7eb7c88394
Return index of the source instead of the source value
2020-04-18 14:23:34 -04:00
toasted-nutbread
e1ebfb02f7
Disable cache on the backend and fix a bug with the cache key
2020-04-18 14:23:34 -04:00
toasted-nutbread
7fc3882607
Update the parameters passed to various audio-related functions
2020-04-18 14:23:34 -04:00
toasted-nutbread
a864cf094f
Merge pull request #437 from toasted-nutbread/backend-api-handler-changes
...
Backend api handler changes
2020-04-11 11:32:52 -04:00
toasted-nutbread
a296c758b9
apiBroadcast => apiBroadcastTab
2020-04-10 20:00:18 -04:00
4e5029f7ec
Update license author field to broader to explicitly reflect that
...
Yomichan is an ongoing community project. It really does take a village,
and everyone who contributes code owns a part of it :)
2020-04-10 11:10:21 -07:00
toasted-nutbread
a2b66dc6cc
Rename apiForward to apiBroadcast
2020-04-07 19:51:39 -04:00
toasted-nutbread
29cf8d2f79
Fix not awaiting this._getNoteContext
2020-04-06 18:55:45 -04:00
toasted-nutbread
199b926f23
Add overridable getDocumentTitle
2020-04-06 18:20:04 -04:00
toasted-nutbread
4011a091b6
Add support for {document-title}
2020-04-06 18:20:04 -04:00
toasted-nutbread
059db280bb
Add custom context object for note creation
2020-04-06 18:20:04 -04:00
toasted-nutbread
8b07a23de9
Rename context to details
2020-04-06 18:20:04 -04:00
toasted-nutbread
cbc7e2646d
Add options
2020-03-28 10:25:57 -04:00
siikamiika
b616bac66e
remove targetPopupId 'all'
...
Make unset targetPopupId mean the same thing instead
2020-03-21 22:13:07 +02:00
siikamiika
962c2a381f
apply all options on profile change
2020-03-21 22:13:07 +02:00
toasted-nutbread
64fc0349a1
Update global declarations
2020-03-10 22:40:35 -04:00
toasted-nutbread
aad4ab5ecc
Rename audio functions using "url" to use "uri"
2020-03-07 21:57:26 -05:00
toasted-nutbread
6adf2cf63f
Rename function
2020-03-07 21:43:51 -05:00
toasted-nutbread
a8eb50d96f
Use dependency injection for getAudioUri implementation
2020-03-07 21:43:51 -05:00
toasted-nutbread
e048a1efce
Use AudioSystem in Display
2020-03-07 21:42:18 -05:00
siikamiika
967e99b7f6
ensure Backend prepare in other places
2020-03-02 04:51:45 +02:00
toasted-nutbread
46fee07d36
Fix audio buttons not being hidden properly
2020-03-01 14:51:39 -05:00
toasted-nutbread
359eabb26e
Move event handler definitions
2020-02-26 19:48:30 -05:00
toasted-nutbread
fa385aafa4
Fix noteUsesScreenshot not checking mode
2020-02-25 22:24:22 -05:00
toasted-nutbread
b391704f3d
Use for of
2020-02-25 22:13:06 -05:00
toasted-nutbread
798517cdf1
Use for of
2020-02-25 22:11:58 -05:00
siikamiika
ffad78f7d4
temporarily disable navigation header mouse wheel
...
Unblock release #355 , #376
2020-02-24 08:57:48 +02:00
toasted-nutbread
070ae70f7c
Create EventListenerCollection class
2020-02-16 18:47:57 -05:00
toasted-nutbread
217bd36abc
Use consistent timeout for both setContentTerms and setContentKanji
2020-02-15 20:36:46 -05:00
toasted-nutbread
c5cbf99e89
Use promiseTimeout instead of delay
2020-02-15 20:35:51 -05:00
toasted-nutbread
496d2599ea
Move error handling for apiDefinitionsAddable
2020-02-15 20:33:20 -05:00
toasted-nutbread
faf15c08aa
Rename optionsUpdate event to optionsUpdated
...
Past tense better indicates that the options were changed, but no data
is being included as part of the event. It is also more consistent with
the other event names the yomichan object currently provides.
2020-02-14 22:34:44 -05:00
toasted-nutbread
853faaf48c
Merge pull request #358 from toasted-nutbread/general-refactoring
...
General refactoring
2020-02-14 21:25:25 -05:00
siikamiika
548c67ef1c
remove extra setContentToken check from Display
2020-02-14 23:17:21 +02:00
siikamiika
c09a3ded1d
Merge pull request #357 from siikamiika/simplify-display-prepare
...
Simplify display prepare
2020-02-14 11:00:36 +02:00
toasted-nutbread
483f7401b7
Validate bounds of Display.definitions before using
2020-02-13 20:50:31 -05:00
toasted-nutbread
75fbb1565c
Use Map for audioGetFromSources's cache parameter
2020-02-13 20:50:30 -05:00
siikamiika
d7e1ef01d8
use Promise.all to await dependencies
2020-02-13 16:26:45 +02:00
siikamiika
8abab28c4d
remove isPrepared check
2020-02-13 14:36:32 +02:00
siikamiika
df37acd17f
rename display initialize methods to prepare
2020-02-13 01:59:26 +02:00
siikamiika
93eaee9765
simplify DisplayGenerator initialization
2020-02-13 01:43:01 +02:00
toasted-nutbread
4629fb3639
Change no-undef from off to error
2020-02-11 22:22:16 -05:00
siikamiika
8eac191c97
prevent unwanted wheel events on history bar
2020-02-05 14:19:48 +02:00
siikamiika
b8326138a3
add scannable tags for expression and reading
2020-02-02 13:57:30 +02:00
siikamiika
24690ceb7c
fix glossary item selector
2020-02-02 13:44:08 +02:00
siikamiika
dd019ecf68
fix audio index in resultOutputMode = 'merge'
2020-01-27 23:24:34 +02:00
toasted-nutbread
6c344b2740
Fix incorrect selector
2020-01-16 22:39:26 -05:00
toasted-nutbread
d4296a34cc
Fix scroll position when header is visible
2020-01-16 22:39:26 -05:00
toasted-nutbread
7686e56c00
Move display templates into a single file
2020-01-16 22:39:26 -05:00
toasted-nutbread
d512c111f6
Update how content display is changed
2020-01-16 22:39:26 -05:00
toasted-nutbread
97f7df3302
Don't use document fragment
2020-01-16 22:39:26 -05:00
toasted-nutbread
7a6f85879e
Update content assignment to use unique token
2020-01-16 22:39:26 -05:00
toasted-nutbread
dbbcfa5739
Only use Display.setContent
2020-01-16 22:39:26 -05:00
toasted-nutbread
24832be636
Update how spinner visibility is controlled
2020-01-16 22:39:26 -05:00
toasted-nutbread
56ee7f8df4
Update display content generation to use HTML templates
2020-01-16 22:39:26 -05:00
toasted-nutbread
0d7ccf25b8
Update license info URL
2020-01-01 12:00:31 -05:00
toasted-nutbread
899ef167d1
Update copyright
2020-01-01 12:00:00 -05:00
toasted-nutbread
2a95f1420f
Move optionsUpdate message handler into Yomichan class
2019-12-20 13:36:54 -05:00
toasted-nutbread
cab2a39981
Simplify options passed to docRangeFromPoint
2019-12-17 20:56:32 -05:00
toasted-nutbread
a9c4ce724c
Update display key handlers
2019-12-13 23:11:56 -05:00
toasted-nutbread
a2263e5729
Update display message handlers
2019-12-13 23:11:56 -05:00
siikamiika
e99c8c40a1
navigate history with wheel only over buttons
2019-12-07 17:41:14 +02:00
siikamiika
d8935b6aa9
fix serialization errors on Chrome
2019-12-04 21:49:51 +02:00
Alex Yatskov
a24146538c
Merge pull request #291 from toasted-nutbread/cloze-fixes
...
Cloze fixes
2019-12-03 14:19:33 -08:00
siikamiika
403b86675d
fix entry scroll index 0 bug
...
Introduced in 4e7d08ff2c
because the
range-limited index value isn't kept in the same scope.
2019-12-01 15:03:37 +02:00
siikamiika
abe70e3b8c
always update current position on term lookup
2019-12-01 06:08:05 +02:00
siikamiika
5929018fac
move Display context to a new class
2019-12-01 05:38:23 +02:00
siikamiika
be23ad7213
remove dead code
2019-11-30 04:59:36 +02:00
siikamiika
ff9510356e
rewrite history as a doubly linked list
2019-11-30 04:49:37 +02:00
siikamiika
8a94d186c3
fix context type inconsistencies
2019-11-29 01:36:14 +02:00
siikamiika
1dd88763de
clear Display history on new lookup
2019-11-28 18:24:24 +02:00
siikamiika
f1ecb4cd39
correct X scroll direction for history navigation
2019-11-28 15:54:55 +02:00
siikamiika
86ff831600
preventDefault correctly
2019-11-28 15:24:00 +02:00
siikamiika
beea89a421
store popped context history in Display
2019-11-28 15:20:18 +02:00
siikamiika
4e7d08ff2c
set current entry even when disableScroll is true
2019-11-28 13:22:47 +02:00
siikamiika
e37ffb6cf5
fix scroll issues in Display.entryScrollIntoView
...
- Save scroll context before scrolling to top
- Explicit null check for scroll param to handle scrolling to y=0
correctly
2019-11-28 12:38:25 +02:00
toasted-nutbread
acb70f126c
Update unused arguments
2019-11-26 22:06:27 -05:00
toasted-nutbread
943350a1f6
Use single quotes
2019-11-26 22:06:27 -05:00
toasted-nutbread
0aed27b66d
Replace hasOwnProperty with simplified hasOwn function
2019-11-26 22:06:27 -05:00
toasted-nutbread
4110a848f5
Move additional utility functions to DOM
2019-11-26 18:59:52 -05:00
toasted-nutbread
3a7ef6c560
Simplify clozeBuild
2019-11-26 12:35:17 -05:00
toasted-nutbread
afddec66eb
Update cloze.body to use original sentence text
2019-11-26 12:35:17 -05:00
toasted-nutbread
befee9ceca
Pass kanji character to clozeBuild
2019-11-26 12:35:17 -05:00
toasted-nutbread
cb9f9b585a
Update how source terms are navigated
2019-11-26 12:31:20 -05:00
toasted-nutbread
c7cb1b3d9e
Require context for setContentTerms and setContentKanji
2019-11-26 12:31:17 -05:00
siikamiika
408aa73cce
fix default params for term clicking
2019-11-23 17:43:30 +02:00
siikamiika
c35a05cd62
add kana to text
2019-11-23 17:40:52 +02:00
siikamiika
f63e8e4be0
add simple query parser
2019-11-23 16:56:10 +02:00
toasted-nutbread
3a225c3f91
Add details field to apiTermsFind
2019-11-10 14:02:43 -05:00
toasted-nutbread
d9b4404075
Create functions for the cases of isMouseButton
...
jshint was showing a warning that there was no break statement
after the first case, which there doesn't need to be.
The most straightforward way to fix this without using the unclear
// jshint ignore:line
is to just have two functions.
This change also updates invocations of isMouseButton to use
the exact case function, as this will remove the need to check
the case of mosueEvent.type. This was done because onMouseMove
is invoked at a high frequency.
2019-11-10 14:00:44 -05:00
toasted-nutbread
d6cdd693c8
Fix several warnings about name conflicts
2019-11-10 13:55:37 -05:00
toasted-nutbread
6f53030469
Use for of loop instead of forEach
2019-11-10 12:25:28 -05:00
siikamiika
83460bcdad
refactoring and optimization
2019-11-04 02:15:33 +02:00
siikamiika
f4a987912a
prevent accidental lookup on glossary text select
2019-11-03 18:56:22 +02:00
siikamiika
a716a52cab
make non-hotkey keys focus input on search page
...
The issue was that scanning on search page introduced a way to lose
focus of the query input, and the new feature that the search page
hotkey focuses an existing search page instead of opening a new one made
it more obvious.
Now every key that isn't a hotkey focuses the query input, and typing
text into the box scrolls it into view in case it wasn't there when
searching.
There is an accessibility issue that this can cause, because now tab
also focuses the query input before it focuses the next element. I
didn't implement a workaround for that because it would have been more
complicated than this simple fix.
Fixes #263
2019-10-26 01:26:56 +03:00
toasted-nutbread
dbec4bffda
Make the search button reuse an open search tab if it exists
2019-10-19 22:28:23 -04:00
toasted-nutbread
598cd32946
Update *show* APIs to unified showContent and setContent
2019-10-17 18:40:43 -04:00
toasted-nutbread
7bae3824e7
Add support for text-to-speech playback
2019-10-13 12:21:19 -04:00
toasted-nutbread
54d4c65854
Rename audioGetFromSources's createAudioObject argument to download
2019-10-13 12:20:56 -04:00
toasted-nutbread
883226b045
Update how custom CSS is applied
2019-10-12 19:00:24 -04:00
toasted-nutbread
c90bc75eb8
Create themes
2019-10-12 19:00:24 -04:00
toasted-nutbread
537d2ef532
Remove Display.dependencies
2019-10-12 15:31:29 -04:00
toasted-nutbread
6da7683552
Don't pass options around for calls to termsShow, kanjiShow, etc.
2019-10-12 15:31:29 -04:00
toasted-nutbread
a5b208fb89
Check if objects are properly initialized before showing content
2019-10-12 15:31:29 -04:00
toasted-nutbread
3e249e19ac
Update Display initialization process
2019-10-12 15:31:29 -04:00
toasted-nutbread
89a8494208
Add function for (de)activating event listeners in Display
2019-10-12 11:25:24 -04:00
toasted-nutbread
50252ec627
Update title with info about what the audio source was
2019-10-10 21:30:38 -04:00
toasted-nutbread
1d516b3b24
Implement audio fallbacks
2019-10-10 21:30:38 -04:00
toasted-nutbread
8ae1da4277
Update audio options format
2019-10-10 21:30:35 -04:00
toasted-nutbread
22b218d172
Pass optionsContext to audioBuildUrl handlers
2019-10-09 22:03:56 -04:00
toasted-nutbread
7ce54864f3
Show the viewer button for anki notes which already exist
2019-10-09 20:31:09 -04:00
toasted-nutbread
88de427184
Throw Error instead of string
2019-10-08 21:32:08 -04:00
toasted-nutbread
9d488e1916
Validate that key is a string
...
On Chrome, when clicking an autocomplete dropdown menu option, a keydown event is generated which is not of type KeyboardEvent.
2019-10-08 19:32:44 -04:00
toasted-nutbread
cd6d4e7ee1
Update how popup visibility works
2019-10-05 21:59:37 -04:00
toasted-nutbread
2255fadf52
Rename Popup.setVisible to setVisibleOverride
2019-10-05 21:40:10 -04:00
toasted-nutbread
7380ada1f1
Simplify onWheel handler
2019-10-02 21:12:24 -04:00
toasted-nutbread
a628610cbd
Use KeyboardEvent.key for onKeyDown handlers
2019-10-02 19:49:52 -04:00
toasted-nutbread
e358c94882
Clean up event listeners
2019-09-27 21:41:00 -04:00
toasted-nutbread
8db830b468
Change how current entry is indicated
2019-09-27 21:41:00 -04:00
toasted-nutbread
3ca84e3a85
Remove jQuery calls from adderButtonFind and viewerButtonFind
2019-09-27 21:41:00 -04:00
toasted-nutbread
946e577e42
Implement custom window scroll
2019-09-27 21:41:00 -04:00
toasted-nutbread
9fc69395c5
Use raw event listeners
2019-09-27 21:41:00 -04:00
toasted-nutbread
95a7fd81f5
Use raw element references for container and spinner
2019-09-27 21:41:00 -04:00
toasted-nutbread
355fb29c3b
Use entryIndexFind without jQuery
2019-09-27 21:40:59 -04:00
odehjoseph
62b95a656f
Add option to enable Alt+B lookup
2019-09-26 21:33:33 -07:00
toasted-nutbread
6d3037f3d6
Remove destructuring from searchAt, containsPoint, docRangeFromPoint
2019-09-14 14:27:25 -04:00
toasted-nutbread
bc8793eb56
Add a context object for all calls to fetch options
2019-09-10 20:09:33 -04:00
toasted-nutbread
171e3f1097
Add option for enabling deep scanning
2019-09-02 11:43:48 -04:00