Commit Graph

381 Commits

Author SHA1 Message Date
toasted-nutbread
97a80276f6
Database readwrite transaction updates (#1932)
* Add _readWriteTransaction helper

* Improve deleteDictionary order

* Make onProgress event optional

* Simplify progress rate parameter
2021-09-05 20:00:08 -04:00
toasted-nutbread
f68ad1f843
Structured content data (#1930)
* Add support for structured-content data attributes

* Assign dataset properties

* Don't remove data-sc attributes

* Use helper functions

* Update test data
2021-09-04 12:43:56 -04:00
toasted-nutbread
eb457caea9
Fix repeated note IDs shown on the "View Note" button (#1927) 2021-09-03 22:42:27 -04:00
toasted-nutbread
0331374241
Dictionary media import improvements (#1926)
* Add base64ToArrayBuffer to StringUtil

* Remove unnecessary media-util.js import

* Run async requirements in serial rather than parallel

* Update API.getMedia handler to convert ArrayBuffer content to base64

* Rename getImageResolution to getImageDetails

* Change parameter order of getImageDetails

* Pre-process and store media as an ArrayBuffer

* Remove MediaUtil.createBlobFromBase64Content

* Fix Anki media injection
2021-09-03 22:33:58 -04:00
toasted-nutbread
1599ec1f15
Fix dictionary import total progress (#1921)
* Fix incorrect total count for final step of dictionary import

* Update tests to validate progress args
2021-08-31 21:42:18 -04:00
toasted-nutbread
02194fcb9f
Add support for structured content margins (#1920) 2021-08-31 21:08:30 -04:00
toasted-nutbread
ce1a862df4
Fix empty sentence on some search page URLs (#1919) 2021-08-31 20:45:29 -04:00
toasted-nutbread
3e7f3af63c
Fix history replacement issue (#1917)
* Remove unused "history" field of event details

* Change setContent history parameter to historyMode
2021-08-30 21:55:08 -04:00
toasted-nutbread
87fbb3c01c
Dictionary worker updates (#1914)
* Add support for running getDictionaryCounts via DictionaryWorker

* Run dictionary integrity checks on a separate thread

* Remove api.getDictionaryCounts
2021-08-28 14:30:50 -04:00
toasted-nutbread
74709296e5
Dictionary database worker refactoring (#1913)
* Rename DictionaryWorker => DictionaryWorkerHandler

* Rename var

* Rename file

* Simplify

* Rename DictionaryDatabaseModifier => DictionaryWorker

* Rename dictionary-database-modifier.js => dictionary-worker.js
2021-08-28 14:22:16 -04:00
toasted-nutbread
93f193c89e
Fix incorrect dictionary name ordering being used for counts (#1912) 2021-08-28 13:47:03 -04:00
toasted-nutbread
dfd52e1ecd
Hiragana & katakana helpers (#1908)
* Add hiragana and katakana template helpers

* Update documentation

* Fix documentation
2021-08-25 21:58:51 -04:00
toasted-nutbread
b6fc786f9a
Update dictionary importer progress event for step 6 to occur slightly earlier (#1897) 2021-08-14 18:16:30 -04:00
toasted-nutbread
4839503d54
Threaded dictionary delete (#1895)
* Generalize dictionary worker

* Add deleteDictionary functionality

* Update DictionaryController to use DictionaryDatabaseModifier

* Fix incorrect result handling
2021-08-14 12:41:58 -04:00
toasted-nutbread
3e350bd563
Dictionary worker refactor (#1894)
* Rename dictionary worker files

* Rename classes

* Rename file

* Rename class

* Generalize the _invoke method

* Rename 'import' to 'importDictionary'

* Improve DictionaryImporterMediaLoader usage

* Refactor message handler

* Generalize onProgress event
2021-08-14 11:46:26 -04:00
toasted-nutbread
cd78d56fee
Database improvements to data persistency (#1893)
* Fix function check

* Rename arguments of getAll, getAllKeys, and their private functions

* Simplify bulkAdd

* Simplify delete

* Simplify bulkDelete

* Remove persistData
2021-08-13 18:35:31 -04:00
toasted-nutbread
9facacfb23
Update CssStyleApplier.prepare to passively fail if it can't read the file (#1891) 2021-08-11 20:14:19 -04:00
toasted-nutbread
916189f402
Fix auto-play not working on the search page (#1882) 2021-08-10 19:23:05 -04:00
toasted-nutbread
69e448a955
Add support for manifest V3 script injection (#1878) 2021-08-07 17:17:53 -04:00
toasted-nutbread
2d5e6f8394
Fix data not being persisted after terminating Worker thread (#1877) 2021-08-07 15:25:00 -04:00
toasted-nutbread
5d4141a429
Google Docs accessibility (#1875)
* Add accessibility option for forcing Google Docs HTML-based rendering

* Update settings

* Send a documentStart message at document start

* Add accessibility script for Google Docs

* Set up accessibility

* Update tests
2021-08-07 12:40:51 -04:00
toasted-nutbread
edb0aaf6b4
Improve audio auto play cancellation (#1873)
* Cancel automatic audio playback when hiding the popup

* Don't play audio if the popup is hidden
2021-08-02 19:25:10 -04:00
toasted-nutbread
cd3f47a359
Dictionary import progress improvements (#1868)
* Update loop vars

* Update loop

* Improve progress reporting during the import process
2021-07-31 19:13:41 -04:00
toasted-nutbread
01c5c5c04b
Dictionary importer refactoring (#1867)
* Remove map of schemas

* Don't reuse dictionary importer instances

* Refactor

* Update how progress callback is used
2021-07-31 18:08:51 -04:00
toasted-nutbread
1d6e437fb2
Dictionary importer refactor (#1866)
* Move function implementations

* Use file() instead of files[]

* Move functionality into local functions

* Simplify

* Pass dictionary title to conversion functions

* Update how legacy tags are added
2021-07-31 16:53:38 -04:00
toasted-nutbread
8c4a50f68c
DictionaryImporterThreaded (#1865)
* Create new classes for importing dictionaries from a separate thread

* Use threaded importer

* Update worker tests
2021-07-31 14:46:09 -04:00
toasted-nutbread
11f210375e
DictionaryImporter improvements (#1862)
* Improve error message

* Simplify URL for JSON fetching
2021-07-31 14:00:19 -04:00
toasted-nutbread
454ffaad96
StringUtil (#1861)
* Add StringUtil class

* Use StringUtil
2021-07-31 13:04:16 -04:00
toasted-nutbread
00c5ae7983
DictionaryImporterMediaLoader (#1860)
* Rename param for consistency

* Move media loading functionality into DictionaryImporterMediaLoader

* Create test class for media loading

* Remove unnecessary Blob/Image/URL functionality
2021-07-31 12:30:31 -04:00
toasted-nutbread
2d57d69b9e
Improve dictionary importer (#1859)
* Optimize dictionary data parsing during import

* Use ArrayBuffer instead of string

* Add missing function for testing
2021-07-31 10:53:35 -04:00
toasted-nutbread
b99850ed54
Call URL.revokeObjectURL for created URLs (#1858)
* Call URL.revokeObjectURL for created URLs

* Refactor image usage
2021-07-29 21:16:55 -04:00
toasted-nutbread
a0fa67d57c
Update JsonSchema (#1856)
* Fix issues with validating properties

* Simplify multiple destructuring

* Add an optiona progress callback

* Add functions

* Add more functions
2021-07-28 20:31:36 -04:00
toasted-nutbread
b0596c8a3c
Rename pitchAccent in source code (#1852)
* Rename pitchAccentPosition to pitchAccentDownstepPosition

* Rename function

* Rename

* Rename

* pitches => pronunciations
2021-07-26 19:45:30 -04:00
toasted-nutbread
a9710b8acf
Rename CSS class names "pitch-accent" to "pronunciation" (#1850)
* pitch-accents => pronunciations

* Update dataset property names

* pitch-accent-dictionary => pronunciation-dictionary

* Update styles

* Update template name

* Update attributes
2021-07-25 18:16:07 -04:00
toasted-nutbread
3f73889874
Update de/serializeError functions to only serialize data if present (#1849) 2021-07-25 12:54:26 -04:00
toasted-nutbread
73f06a3fa0
Fix definition image aspect ratio issue (#1847)
* Fix incorrect aspect ratio

* Update test data
2021-07-22 18:11:46 -04:00
toasted-nutbread
2ee3e3a7a1
Update pronunciation anki templates (#1842)
* Update anki pronunciation templates

* Expose nasalPositions/devoicePositions

* Update templates to support nasal/devoice positions

* Update test data
2021-07-18 16:01:42 -04:00
toasted-nutbread
637d4a2087
Pronunciation template helper (#1840)
* Rename field

* Set up pronunication components

* Fix documentation

* Rename function

* Update test dependencies

* Fix constructor

* Log errors

* Add pronunciation helper

* Add styleApplier argument to _getHtml/_normalizeHtml

* Use getAttribute for 'class' to support namespaced elements (e.g. svg)

* Update format name

* Add optional tag

* Update docs
2021-07-18 13:43:11 -04:00
toasted-nutbread
10a9da4d31
Anki template renderer abstraction (#1839)
* Add AnkiTemplateRenderer abstraction

* Move Anki-specific template functionality into AnkiTemplateRenderer

* Add documentation comments
2021-07-18 11:20:03 -04:00
toasted-nutbread
fafa746a63
Sandbox script folders (#1837)
* Move scripts

* Update paths

* Fix ordering

* Simplify eslint rules
2021-07-17 17:10:25 -04:00
toasted-nutbread
3e938f1a1f
Display pronunciation refactor (#1835)
* Simplify svg and container styles

* Rename pitch-accent-details to pitch-accent-graph-container

* Rename pitch-accent-graph* to pronunciation-graph*

* Remove unused template

* Omit quotes

* Rename pitch-accent-character to pronunciation-mora

* Simplify names

* Replace pronunciation-mora-inner with pronunciation-character

* Improve grouping of nasal characters

* Simplify character replacement

* Replace pseudo-elements with real elements

* Use an element rather than a fragment

* Rename functions

* Add wrapper

* Rename pitch-accent-characters to pronunciation-text-container

* Update test data

* Update downstep notation generation

* Rename pitch-accent-position to pronunciation-downstep-notation-container

* Space

* Wrap pronunciations in a container node

* Update preview

* Embed pitch accent styles directly
2021-07-17 14:44:36 -04:00
toasted-nutbread
a933cfdc07
Pronunciation nasal improvement (#1834)
* Organize

* Add utility to get diacritic information about a character

* Show mora without diacritic

* Add a hidden handakuten for copy-paste purposes
2021-07-17 12:20:11 -04:00
toasted-nutbread
4a2b824371
Display pronunciation separation (#1833)
* Create PronunciationGenerator

* Update DisplayGenerator

* Update templates

* Move pronunciation styles to a separate file

* Simplify pitch-accents-preview.html
2021-07-17 10:26:20 -04:00
toasted-nutbread
41fc76d6fd
Devoice and nasal pronunciation info (#1832)
* Update schema to support information about nasal and devoiced mora

* Expose nasalPositions and devoicePositions in dictionary entry data

* Expose nasalPositions, devoicePositions in grouped pitch info

* Update display generator

* Update test dictionary data

* Update test data
2021-07-15 22:39:33 -04:00
toasted-nutbread
25d74140ce
Multi view note (#1829)
* Add support for a menu to view multiple note IDs

* Show a + badge when there are multiple notes available

* Organize
2021-07-14 22:37:18 -04:00
toasted-nutbread
d058237ba7
Duplicate scope check all models (#1810)
* Add duplicateScopeCheckAllModels option to createNote

* Add duplicateScopeCheckAllModels option

* Add setting
2021-07-13 20:29:53 -04:00
toasted-nutbread
d5320c71a6
Throw an error when _getProfile doesn't have a matching profile (#1826) 2021-07-13 20:19:48 -04:00
toasted-nutbread
437b588411
Fix case where "ready" message is received before frame "load" event (#1822) 2021-07-10 21:37:37 -04:00
toasted-nutbread
d897fb553d
Improve error when card has missing content (#1818) 2021-07-09 20:26:20 -04:00
toasted-nutbread
7a1570885e
Simplify get media structure (#1817)
* Remove format argument of getMedia

* Implement escaping
2021-07-09 20:14:05 -04:00
toasted-nutbread
22f048e527
Update Anki field marker menu (#1816)
* Update anki field marker menu to have less vertical padding

* Update positioning of field marker menu
2021-07-09 18:21:29 -04:00
toasted-nutbread
d446484947
Remove old settings main.js (#1815) 2021-07-09 18:09:15 -04:00
toasted-nutbread
8c68fa4d94
Anki text furigana parsing and {sentence-furigana} marker (#1814)
* Add support for textFurigana media

* Add readingMode parameter

* Implement readingMode

* Add {sentence-furigana} marker

* Fallback to sentence if furigana isn't available

* Update test data
2021-07-09 17:48:27 -04:00
toasted-nutbread
0d16709547
JapaneseUtil updates (#1813)
* Rename test file

* Use shorthand

* Add support checking functions

* Remove convertReading from JapaneseUtil
2021-07-09 17:31:16 -04:00
toasted-nutbread
daa44a8389
Fix an issue with reordering dictionary settings (#1812) 2021-07-09 16:06:12 -04:00
toasted-nutbread
24ec22b2e1
Text parse updates (#1811)
* Expose more settings to QueryParser

* Rename textParse to parseText

* Refactor

* Convert reading inside QueryParser rather than Backend

* Remove use of readingMode from backend

* Rename

* Update parseText args

* Simplify

* Update results

* Move use of optionsContext

* Run mecab and internal parser in parallel

* Added "dictionary-reading" reading mode

* Update romaji conversion case
2021-07-09 16:05:57 -04:00
toasted-nutbread
315dc425e4
Anki card selected text (#1809)
* Add support for injecting the text selection into Anki cards

* Add selection-text

* Upgrade to add {selection-text}

* Update descriptions

* Update test data
2021-07-07 20:00:30 -04:00
toasted-nutbread
9935e154f1
Update options-util tests and comment (#1806) 2021-07-06 22:59:24 -04:00
toasted-nutbread
1088c17503
Add support for injecting dictionary media into Anki cards (#1805) 2021-07-06 22:00:18 -04:00
toasted-nutbread
8d1596cdf8
Fix incorrect resultOutputMode (#1804) 2021-07-06 21:49:57 -04:00
toasted-nutbread
df72c3927b
Fix function names (#1803) 2021-07-06 20:07:13 -04:00
toasted-nutbread
e88d63fc6d
Template renderer media updates (#1802)
* Add TemplateRendererMediaProvider to abstract media-related functionality

* Update representation of injected media

* Update templates

* Update upgrade file

* Update tests

* Update test data

* Force media to be an object

* Update test data
2021-07-06 19:43:53 -04:00
toasted-nutbread
e155132085
OptionsUtil and tests updates (#1801)
* Update OptionsUtil.update to support an optional targetVersion param

* Update Anki template updates to have an explicit target version
2021-07-05 23:24:06 -04:00
toasted-nutbread
54808d4a2d
Pass requirements to note generation (#1800)
* Update structure

* Pass requirements to _createNote

* Show an error for requirements that weren't fulfilled
2021-07-05 16:59:30 -04:00
toasted-nutbread
da13a2ebff
DisplayAnki note requirements (#1799)
* Update how errors are collected from _formatField

* Expose requirements
2021-07-05 15:08:11 -04:00
toasted-nutbread
0491de12d4
Store anki note details (#1798)
* Update error handling of _areDictionaryEntriesAddable

* Store note details

* Remove promise after use

* Rename function

* Clear stored details

* Rename function

* Rename function
2021-07-05 14:41:11 -04:00
toasted-nutbread
b8478857aa
Refactor DisplayAnki.setupEntriesComplete params and implementation (#1794) 2021-07-04 11:11:05 -04:00
toasted-nutbread
468c923277
Update the note context object generation process to ensure consistency (#1792) 2021-07-03 20:09:22 -04:00
toasted-nutbread
ea47cb8248
DisplayAnki (#1791)
* Remove anki functionality from display

* Rename function

* Display API updates

* Use DisplayAnki

* TODO
2021-07-03 19:32:11 -04:00
toasted-nutbread
82b7ebfa58
Remove uniqueness check for requirements (#1790) 2021-07-03 11:35:03 -04:00
toasted-nutbread
f7d177e6d0
Refactor createNote (#1789)
* Update createNote to return a wrapper object

* Update how createNote creates errors
2021-07-03 11:30:48 -04:00
toasted-nutbread
d7c934cae8
Fix simple glossary HTML not being escaped (#1788) 2021-07-03 10:46:51 -04:00
toasted-nutbread
ca97e38bd2
Anki support for structured-content (#1786)
* Update how glossary text is formatted

* Update structured content and image generation

* Pass root data to _createStructuredContentGenerator

* Implement media URLs

* Update documentation

* Update options util

* Apply styles to content

* Improve HTML normalization

* Update DatabaseVM.fetch function

* Update test

* Update test data
2021-07-02 22:46:38 -04:00
toasted-nutbread
a4715935cb
More CssStyleApplier updates (#1785)
* Update eslint rules for css-style-applier.js

* Don't use chrome.runtime.getURL

* Update CSP to allow inline styles
2021-07-02 22:12:02 -04:00
toasted-nutbread
56b2462f13
CssStyleApplier updates (#1784)
* Remove debug log

* Remove style attribute if empty

* Remove data-* attributes
2021-07-02 18:28:29 -04:00
toasted-nutbread
ace46503be
Make Display.authenticateMessageData private (#1780) 2021-06-29 22:17:14 -04:00
toasted-nutbread
1f1a958a71
Update CSS rules for images (#1777) 2021-06-28 22:12:17 -04:00
toasted-nutbread
9f3d267e24
Fix incorrect aspect ratio of structured-content images (#1776) 2021-06-28 21:46:54 -04:00
toasted-nutbread
1ba19adfe2
Add CssStyleApplier class (#1773) 2021-06-27 19:21:27 -04:00
toasted-nutbread
32d5fccc36
Template renderer init update (#1772)
* Update TemplateRendererFrameApi to post a 'ready' message

* Wait for 'ready' message rather than using 'load' event
2021-06-27 18:16:21 -04:00
toasted-nutbread
24ef820ba8
Update structured content CSS styles (#1770) 2021-06-27 15:01:35 -04:00
toasted-nutbread
6b8cd5e623
Template patcher updates (#1766)
* Don't append anything if the additions is empty

* Simplify update list
2021-06-26 23:55:06 -04:00
toasted-nutbread
8eb9c94f8a
Template renderer internal data update (#1764)
* Add cleanup callbacks

* Move requirements

* Add custom data
2021-06-26 17:43:07 -04:00
toasted-nutbread
f9167c8fdd
Template rendering updates (#1762)
* Remove unused function

* Update template rendering return value
2021-06-26 17:05:55 -04:00
toasted-nutbread
e5284988e2
Structured content generation updates (#1760)
* Simplify _createElement, fix misuse of classList

* Don't use templates to generate image content

* Omit templates
2021-06-26 15:49:23 -04:00
toasted-nutbread
f389b3c232
Fix missing error logging when logging debug info (#1758) 2021-06-26 15:27:33 -04:00
toasted-nutbread
8d1d428ed4
Move structured-content generation code into a separate file (#1757) 2021-06-26 14:40:37 -04:00
toasted-nutbread
435af3a485
Improve what info is logged when debugging a definition (#1756) 2021-06-26 14:10:18 -04:00
toasted-nutbread
845070b817
Translator sorting updates (#1755)
* Update when definition sorting takes place

* Update test data

* Change order of sorting
2021-06-26 12:37:38 -04:00
toasted-nutbread
6e0a367afc
Translator data format updates (#1754)
* Add {dictionaryIndex, dictionaryPriority} to definitions

* Add score to definitions

* Add id to definition

* Use definition id instead of ids array

* Remove ids array

* Update docs

* Update test data
2021-06-26 11:57:09 -04:00
toasted-nutbread
5756885fa9
Structured content updates (#1753)
* Update schema

* Update content generation

* Update styles

* Update test data

* Update style names
2021-06-25 17:24:29 -04:00
toasted-nutbread
cf70b3de64
Fix search input focus not working properly (#1752) 2021-06-25 16:49:47 -04:00
toasted-nutbread
ef4ea2271b
Fix handling of document.body as <frameset> (#1748) 2021-06-24 19:18:33 -04:00
toasted-nutbread
1878b118fb
Fix an incorrect return value of the EventDispatcher.off function (#1747) 2021-06-24 19:15:09 -04:00
toasted-nutbread
7ae964c830
Structured content updates (#1733)
* Add support for imageRendering

* Make crisp-edges appearance on Firefox more similar to Chrome

* Refactor

* Add background option

* Move data-image-rendering attribute

* Restructure

* Organize

* Add support for appearance

* Update test dictionary

* Update tests
2021-06-06 14:47:48 -04:00
toasted-nutbread
3a095b1f6c
Improve secondary definitions (#1731)
* Improve secondary search definitions

* Simplify
2021-06-05 23:17:13 -04:00
toasted-nutbread
d87515ec12
Translator id updates (#1730)
* Allow unsequenced definitions to be added to multiple groups

* Update translator data to store multiple IDs

* Update Anki note data

* Update test data

* Update docs
2021-06-05 22:27:58 -04:00
toasted-nutbread
057283245e
Add support for definitionless main dictionary (#1729) 2021-06-05 13:35:23 -04:00
toasted-nutbread
57fb496fbc
Simplify createAudio function (#1728) 2021-06-04 20:17:04 -04:00
toasted-nutbread
c7e6c37095
Fix _getMatchURL missing search and not sanitizing wildcards (#1727) 2021-06-03 19:52:00 -04:00
toasted-nutbread
5bf82a5b81
Primary audio fixes (#1719)
* Fix case when subIndex is not assigned

* Fix incorrect assignment of primary card audio

* Improve opacity style

* Improve styles for :focus-visible
2021-05-30 13:29:55 -04:00
toasted-nutbread
cca01e85a3
Improve multiple audio sources (#1718)
* Add url/voice options to audio sources

* Add help for TTS

* Remove old settings

* Update tests

* Update use of audio source URL

* Improve labels for sources with the same type
2021-05-30 12:41:19 -04:00
toasted-nutbread
efd35de67f
Refactor display audio options (#1717)
* Update how options are updated and stored in DisplayAudio

* Add source list

* Improve menus for custom json

* Clear cache after options update

* Move function

* Update public API

* Simplify playing audio from a specific source

* Simplify audio list

* Refactor audio source usage

* Refactoring

* Refactor argument names

* Fix incorrect source usage

* Remove unused

* Remove return value

* Simplify details

* Simplify Anki card audio details

* Update the data that is passed to AudioDownloader

* Simplify schema handling

* Remove unnecessary details
2021-05-30 12:15:07 -04:00
toasted-nutbread
0f0e80aadb
Refactor AudioController (#1715)
* Remove unused checks/code

* Refactor audio controller into AudioController and AudioSourceEntry
2021-05-27 22:16:34 -04:00
toasted-nutbread
52aa92208c
Fix set/deleteProperty not allowing array splicing (#1713)
* Fix set/deleteProperty not allowing array splicing

* Update tests
2021-05-26 21:08:24 -04:00
toasted-nutbread
8ed712512b
Add some help popups for custom audio sources (#1712) 2021-05-26 20:40:53 -04:00
toasted-nutbread
0232325f96
Refactor json audio source (#1711)
* Move sources to the end of audio options object

* Add custom-json audio source type

* Add support for downloading custom-json

* Remove customSourceType
2021-05-26 20:38:15 -04:00
toasted-nutbread
900bceda47
Fix json schema array properties (#1709)
* Fix proxy array properties being handled incorrectly

* Add tests to check array properties
2021-05-24 18:53:42 -04:00
toasted-nutbread
54e102f343
Json schema ref support (#1708)
* Add basic support for JSON schema $ref

* Add tests
2021-05-23 15:49:25 -04:00
toasted-nutbread
8e330d54d6
Fix popup preview disappearing after changing a setting (#1707) 2021-05-23 14:30:31 -04:00
toasted-nutbread
5188e49cd4
Clean up settings v1 code from PopupPreviewController (#1706)
* Clean up settings v1 code from PopupPreviewController

* Remove unused global
2021-05-23 13:36:43 -04:00
toasted-nutbread
24d43c123d
Fix incorrect selector causing invalid headword index to be used (#1705) 2021-05-23 13:20:38 -04:00
toasted-nutbread
41c0132c59
Improve support for sandboxed iframes (#1704)
* Add more tests

* Improve handling of errors from setupFrame

* Passively handle errors when contentDocument is null
2021-05-23 12:29:54 -04:00
toasted-nutbread
d182e55527
Rename internal JSON schema functions to match new return type (#1699) 2021-05-22 18:01:16 -04:00
toasted-nutbread
d7cf019b4a
Json schema improvements (#1698)
* Simplify schema multi-push/pop

* Reverse order of schema path

* Reverse order of value path

* Simplify schema path structure

* Rename for better clarity
2021-05-22 17:56:44 -04:00
toasted-nutbread
d16739a83a
Json schema validation improvements (#1697)
* Create new JsonSchema class

* Add proxy handler

* Update tests

* Update validation scripts

* Update backend

* Update audio downloader

* Update options util

* Update dictionary importer

* Update json schema file reference

* Remove old json-schema.js

* Rename new json-schema.js

* Update file names

* Rename class
2021-05-22 15:45:20 -04:00
toasted-nutbread
1096bbfa33
Update schema tests (#1693)
* Update helper functions

* Rename file

* Update deleteProperty

* Add some basic proxy tests
2021-05-22 14:01:32 -04:00
toasted-nutbread
be23acf499
Structured content image size units (#1692)
* Add support for sizeUnits on image content

* Update test data
2021-05-20 19:33:08 -04:00
toasted-nutbread
6184bcb812
Selection clear improvements (#1690)
* Update selection clear process

* Clean up old clearSelection API

* Update clear order

* Add clear event handling
2021-05-19 20:09:37 -04:00
toasted-nutbread
eddd028864
Add support for definitions with structured content (#1689)
* Add structured content to schema

* Add support for generating custom content

* Update importer

* Update test data

* Add verticalAlign property
2021-05-19 18:24:50 -04:00
toasted-nutbread
f3cf4d10c7
Dictionary image display refactoring (#1687)
* Generalize image definition generation

* Enable optional aspect ratio

* Move styles

* Update styles

* Add more options for collapsing images

* Add image options for collapsing

* Improve layout for images that are collapsed
2021-05-18 17:41:27 -04:00
toasted-nutbread
76276e78da
Expose search query to anki template renderer (#1686)
* Expose query and fullQuery to Anki context

* Add {search-query} marker

* Update test data

* Update tests

* Wrap search query in multiLine
2021-05-17 20:18:37 -04:00
toasted-nutbread
12451eaf61
Fix repeated dictionary image importing (#1685) 2021-05-16 20:11:32 -04:00
toasted-nutbread
76c29134b3
Revert "Add support for custom text type generation (#1683)" (#1684)
This reverts commit 39cabc4db6.
2021-05-16 19:52:08 -04:00
toasted-nutbread
39cabc4db6
Add support for custom text type generation (#1683) 2021-05-16 15:52:39 -04:00
toasted-nutbread
66d048832f
Sentence termination character mode (#1682)
* Change enableTerminationCharacters to terminationCharacterMode

* Update settings

* Update sentence extraction

* Update tests

* Add tests
2021-05-16 15:24:38 -04:00
toasted-nutbread
41ee167dfd
Add support for generic && and || operations for settings transforms (#1681) 2021-05-16 10:01:57 -04:00
toasted-nutbread
2c752fd89d
Popup action search (#1678)
* Set up search page in the action popup

* Fix a style causing incorrect overflow

* Fix error when trying to take a screenshot

* Fix popup size on Firefox
2021-05-15 16:30:33 -04:00
toasted-nutbread
bc6fb4e7d7
Fix incorrect _updateClipboardMonitorEnabled invocation (#1677) 2021-05-15 15:31:54 -04:00
toasted-nutbread
8442a8ba22
Add SearchPersistentStateController (#1676) 2021-05-15 15:11:42 -04:00
toasted-nutbread
de6db32aa6
Improve source term exact match count (#1674)
* Update sourceTermExactMatchCount to be based on headword count

* Update tests
2021-05-14 19:26:27 -04:00
toasted-nutbread
e7d349c3ec
Improve the behaviour of the "Move to..." action (#1667) 2021-05-11 18:11:10 -04:00
toasted-nutbread
7b14cb3ab0
Remove more legacy settings page selectors (#1659) 2021-05-10 18:16:01 -04:00
toasted-nutbread
376a28326b
Fix invalid node/selectors being used in the dictionary delete process (#1658) 2021-05-10 18:04:08 -04:00
toasted-nutbread
289bdc1622
Improve term grouping (#1653)
* Rename _addUniqueStrings to _addUniqueSimple

* Update definition merging to not depend the sequence number

* Improve naming

* Update AnkiNoteDataCreator

* Update docs

* Remove fields that no longer exist

* Update test data
2021-05-08 13:16:56 -04:00
toasted-nutbread
32f5544021
Add "Move to" menu option for moving dictionary options to a specific location (#1651)
* Add "Move to" option

* Fix IDs
2021-05-02 21:04:39 -04:00
toasted-nutbread
a8b602834f
Fix the "Prefix wildcard searches supported" toggle having incorrect state (#1650) 2021-05-02 10:15:47 -04:00
toasted-nutbread
46f60619d5
Display fixes (#1648)
* Fix incorrect tabId/frameId being used

* Only enable nested popups if the tabId is valid

* Remove unused APIs
2021-05-01 17:30:17 -04:00
toasted-nutbread
c514bbc4fb
Flags profile conditions (#1647)
* Generalize modifier keys

* Optimize bindings

* Add support for flags

* Add clipboard flag

* Update tests

* Add tests
2021-05-01 15:54:31 -04:00
toasted-nutbread
c433819c1b
Update search tags to always be displayed in a consistent manner (#1645) 2021-05-01 11:53:56 -04:00
toasted-nutbread
8ee470caa0
Remove the mouseover tags that are shown in merge mode (#1644) 2021-05-01 11:41:10 -04:00
toasted-nutbread
0b554c936a
Add support for reordering dictionary options (#1641) 2021-04-30 18:15:32 -04:00
toasted-nutbread
076e201225
Improve dictionary options (#1640)
* Update dictionary options layout

* Update extras

* Improve display when no dictionaries are installed

* Implement "All" toggle

* Move modal

* Update welcome page

* Remove resizer button

* Fix ordering

* Fix extra closing tag
2021-04-30 18:01:16 -04:00
toasted-nutbread
d77d8e44e0
Replace collapsable with collapsible (#1639) 2021-04-30 17:59:20 -04:00
soriac
ba3f7b3e96
Show any custom tags on words that have anki cards created (#1628)
* Proof-of-concept for showing card tags (#1626)

* Resolved most PR comments:
- Added a snackbar notification when clicking tag button
- Replaced magnifying glass icon with new tag icon
- Button now contains a span w/icon, to use text color
- Removed unnecessary attributes from button
- Backend now returns full noteInfos object
- Frontend now handles filtering tags

* Add options to show/hide tag button & filter tags

* Do not show tags button if, after filtering, we have zero tags.

* Change tags option to enums, optimize tags intersection check & fix code style.

* Update options-util.js to include new tag options.

* Fix wording on new tag setting.

* Add CSS to remove hidden buttons from the display layout.

* getAnkiNoteInfo extra parameter for additional info.

* Add new tag option to tests.

* Remove unnecessary changes related to anki tags option.

* Code style fixes.
2021-04-30 17:57:53 -04:00
toasted-nutbread
69a739f00a
Use childNodes instead of children (#1638) 2021-04-28 22:07:11 -04:00
toasted-nutbread
40b29cb0d3
Add pitch categories template helper (#1636)
* Move utility function

* Expose dictionary entry as a hidden property for internal use

* Add pitchCategories helper
2021-04-28 21:57:49 -04:00
toasted-nutbread
512391346b
Translator alphanumeric improvement (#1635)
* Simplify alphanumeric check

* Update option name for clarity
2021-04-28 21:17:05 -04:00
toasted-nutbread
763c6c76aa
Add scanTextAtCaret option (#1632) 2021-04-26 21:11:43 -04:00
toasted-nutbread
6f5ad490fb
Add support for restoring the selection after using scanSelectedText (#1631) 2021-04-26 21:05:46 -04:00