* Move TextSourceRange static functions to DocumentUtil
getWritingMode is also simplified
* Update Google Docs range to be empty to match other range sources
* Rename imposterContainer to imposterElement
* Add static creation functions
* Add static creation function
* Remove unused collapse function
* Don't select imposter elements
* Refactor setEndOffset
* Adjust argument order for setEndOffset
* Update TextSourceRange constructor
* Remove unused isConnected
* Cache rects
* Fix test
* Remove unused getRect
* Revert "Fix test"
* Remove cachedRect
* Use the source element rect to handle scroll differences
* Writing mode update
* Remove _cachedRects update
This shouldn't be necessary as the imposter is usually detached
almost immediately after scanning, giving no time for the window
to be resized or scrolled.
* Make all methods static
The two non-static methods are kept for temporary compatibility
* Use this instead of class name now that functions are static
* Update test
* Don't instantiate DocumentUtil
* Remove temporary non-static methods
* Remove unused global declaration
* Update settings controller to consistently initialize
* Allow profile index to be reset if an error occurs
* Update message handler to be async
* Fix error when deleting the current profile
* Add support for an idle timeout when downloading audio
* Update eslint rules
* Pass idleTimeout to the downloader from DisplayAnki
* Add anki.downloadTimeout setting
* Update tests
* Assign _audioDownloadIdleTimeout using settings
* Show info about cancelled downloads
* Handle Firefox bug
* Improve audio errors
* Refactor
* Move functions to RequestBuilder
* Do not change selection if user selected text manually
* Remove capture argument for selectionchange listener
It is not applicable
* Make a note of user selection when Yomichan is enabled
User might have some text selected on a page prior to enabling Yomichan
via the toolbar icon; let it stay intact.
* Extract selection change by user listener into a method
* Move the "Add" button into the footer
* Scroll to the bottom when adding
* Move the Audio Sources add button
* Simplify, remove the (?) link
* Move "Add" button to footer
* Remove unnecessary return
* Move touch start input filtering
* Refactor
* Add scanOnTouchPress
* Add preventPenScrolling
* Rename scanOnPenPress to scanOnPenMove
* Rename scanOnPenRelease to scanOnPenReleaseHover
* Simplify
* Refactor _searchAtFromPen early exit
* Merge _penPointerPressed and _penPointerReleased into a single variable
* Add more options
* Simplify pen pointer coordinates
* Implement scanOnPenPress and scanOnPenRelease
* Implement scanOnTouchRelease
* Fix tests
* Don't search on touch cancel
* Cancel touch if the touch action is used for scrolling or other gestures
* Fix incorrect scroll prevention options being used
* Organize options
* Fix typos
* Update material.css to support password fields
* Support password
* Add "apiKey" setting
* Use apiKey
* Update options if API key changes
* Update tests
* Add AnkiConnect.guiEditNote
* Update _onApiNoteView to first try guiEditNote
* Add setting
* Update noteView API
* Use setting
* Return which mode was used
* Update DisplayGenerator
* Handle errors in DisplayAnki
* Update docs
* Add isErrorUnsupportedAction function
* Add an allowFallback option to noteView
* Disambiguate
* Simplify now that preferredMode isn't used
* Update settings info
* Implement test buttons
* Update styles
* Update status visibility
* Wrap layout
* Update description
* Update date
* Move some common functionality
* Move setupEnvironmentInfo into ExtensionContentController
* Move background/environment.js to extension/environment.js
* Generalize _onBeforeSendHeadersAddListener
* Simplify filter assignment
* Use requestId rather than done
* Properly support Firefox addListener without arguments
* Add details to fetchAnonymous errors
* Refactor
* Enable support for no header modifications
* Update MV3 support for error details
* Expose errors in downloadTermAudio
* Throw an error if audio download fails due to potential permissions reasons
* Rename elementRect to sourceRect
* Add getRects function to TextSourceElement and TextSourceRange
* Add jsdocs
* Remove unnecessary valid parameter
* Remove default parameter
* Make optionsContext optional
* Remove unnecessary checks
* Update sourceRect to use left/right rather than x/y
* Update the return type of Popup*.getFrameRect
* Rename some unrelated rect vars for disambiguation
* Disambiguate between Popup.Rect and Popup.ValidRect
* Move sourceRect destructuring
* Pass multiple source rects
* Simplify
* Change Rect to use right/bottom rather than width/height
* Update how popup offset is applied
* Simplify frame offset
* Remove _applyFrameOffset
* Use right/bottom rather than width/height
* Simplify some positioning settings
* Update parameter names for clarity
* Fix typos
* Refactor data type for _getPosition* functions
* Support using multiple source rects
* Combine _getPosition functions
* Refactor
* Expose after dataset value
* Consistently use this's property
* Add jsdoc
* Remove regex construction for SimpleDOMParser.getElementsByClassName
* Remove regex construction for CssStyleApplier._getRulesForClass
* Rename, add jsdoc for clarity
* Pass JapaneseUtil instance to StructuredContentGenerator
* Move body of createStructuredContent to an internal function
* Create _createStructuredContentGenericElement
* Wrap structured content in a <span>
* Change _createStructuredContent to _appendStructuredContent
* Add public appendStructuredContent function
* Add missing return
* Remove unused _createDocumentFragment
* Automatically assign lang=ja for content with Japanese characters
without an explicit language
* Add test
* Add support for structured content lists and `list-style-type` style
A full list of supported style types is documented here:
https://developer.mozilla.org/en-US/docs/Web/CSS/list-style-type
There's nothing in this code preventing a term bank from assigning,
for example, a `list-style-type` style to a `div` element, but it
doesn't seem like browsers will complain about things like that.
* Add support for `lang` attribute in structured content
Support added for the following node types:
"ruby", "rt", "rp", "table", "thead", "tbody", "tfoot", "tr", "td",
"th", "span", "div", "ol", "ul", "li", "a"
I couldn't get it to work for the alt-hover text on "img" tags.
Tests are included in the file
"test/data/dictionaries/valid-dictionary/term_bank_1.json"
* Add styles for structured content lists
* Add override rules for new structured-content list styles
see: https://github.com/FooSoft/yomichan/pull/2129
Co-authored-by: stephenmk <stephenmk@users.noreply.github.com>