Commit Graph

2974 Commits

Author SHA1 Message Date
toasted-nutbread
abc017545c
Update the popup preview to always be visible on the settings v2 page (#1151) 2020-12-20 22:16:38 -05:00
toasted-nutbread
abfe066d7e
Fix description of scanning.autoHideResults setting (#1150) 2020-12-20 22:09:16 -05:00
toasted-nutbread
3ef1b9ebb2
Settings v2 modal size toggle (#1149)
* Add collapse/expand icons

* Update header layout

* Allow size animation

* Add styles for modal header buttons

* Support action buttons

* Update modals to support size changing
2020-12-20 19:59:39 -05:00
toasted-nutbread
8747a29f9f
Settings v2 headings improvements (#1148)
* Improve spacing on h2

* Add icons to headings

* Clarify font-size
2020-12-20 16:03:07 -05:00
toasted-nutbread
f5ae0f1f3d
Settings v2 icon improvements (#1147)
* Update navigation icons

* Improve outline layout, fixing badge indicators

* Change attribute value

* Update icon buttons

* Update settings page
2020-12-20 15:43:10 -05:00
toasted-nutbread
4f6309842f
Dictionary display updates (#1146)
* Display dictionary-list as flex

* Move styles

* Move enabled toggle

* Update details

* Disable sorting based on priority

* Update styles

* Update title color when disabled

* Update display style of secondary search dictionaries
2020-12-20 13:59:30 -05:00
toasted-nutbread
7dd06e1a64
Indicate if first Anki card field is invalid (#1145)
* Add AnkiNoteBuilder.containsAnyMarker

* Flag first field as invalid when there is no marker
2020-12-20 12:20:29 -05:00
toasted-nutbread
113e3b68b8
Improve styles for invalid inputs (#1143) 2020-12-20 11:27:05 -05:00
toasted-nutbread
6d7eefa9df
Fix triangle indicator for kanji (#1141) 2020-12-19 20:16:45 -05:00
toasted-nutbread
443d6d1956
Popup action bar options (#1140)
* Add options for action bar visibility and location

* Add settings

* Update styles

* Expose properties

* Update styles

* Update tests
2020-12-19 20:07:55 -05:00
toasted-nutbread
8454431cdb
Improve the accent color for the dark theme (#1139) 2020-12-19 18:51:44 -05:00
toasted-nutbread
af9b4d2b93
Update termTags for termGrouped mode to include all definition tags (#1138)
* Update termTags for termGrouped mode to include all definition tags

* Update tests
2020-12-19 16:47:32 -05:00
toasted-nutbread
bef8612665
Focus the current entry earlier in the generation process (#1137) 2020-12-19 16:00:47 -05:00
toasted-nutbread
d42b95a9c0
Disable indicator transitions when not in use (#1136) 2020-12-19 15:57:20 -05:00
toasted-nutbread
1b1b24ab35
Entry indicator update (#1134)
* Move entry current indicator rules

* Simplify rules

* Add popupCurrentIndicatorMode option

* Add option to settings page

* Expose popupCurrentIndicatorMode

* Restore asterisk current indicator

* Implement dot

* Update action button vars

* Fix tests

* Add none option

* Add triangle option
2020-12-19 15:42:44 -05:00
toasted-nutbread
dcb75cce1e
Fix invalid CSS :not selector causing frequency tags to display twice (#1135) 2020-12-19 14:52:41 -05:00
toasted-nutbread
5021ed9f83
Fix incorrect naming of --entry-current-indicator variable (#1133) 2020-12-19 10:58:02 -05:00
toasted-nutbread
16cea2e2bb
Fixed terms being colored when not using merged mode (#1132) 2020-12-19 10:54:50 -05:00
toasted-nutbread
2fa9b91515
Add support for using declarativeNetRequest (#1127) 2020-12-18 17:18:00 -05:00
toasted-nutbread
05d4049f16
DOMParser replacement (#561)
* Add script to build library files

* Add built parse5 library

* Add new SimpleDOMParser which uses parse5

* Update license info

* Update MV3 build to use the new SimpleDOMParser

* Update file exclusions

* Hide/clarify license info for MV2 builds
2020-12-18 17:06:30 -05:00
toasted-nutbread
9beb659b17
Manifest version CSS rules (#1126)
* Add CSS rules for hiding content based on manifest version

* Organize other rules
2020-12-18 17:00:34 -05:00
toasted-nutbread
51223abfa6
Set up initial manifest v3 support (#605) 2020-12-18 15:54:05 -05:00
toasted-nutbread
194359f4ec
Simplify _getUrl function (#1121) 2020-12-18 13:35:20 -05:00
toasted-nutbread
f28fe33cae
Change the resizer color when the window is being resized (#1120) 2020-12-18 12:06:39 -05:00
toasted-nutbread
5d8ac70395
Display an indication when Anki field order/existence doesn't match (#1119) 2020-12-18 12:05:33 -05:00
toasted-nutbread
c728448a4d
Maximum clipboard search length (#1118)
* Add maximumClipboardSearchLength an option

* Add setting

* Add limits

* Update tests
2020-12-18 11:24:43 -05:00
toasted-nutbread
bf34905012
Improve display tags (#1117)
* Update tag style

* Add styles/HTML for notifications

* Add DisplayNotification class

* Add support for tag notifications

* Simplify notification content
2020-12-18 09:43:54 -05:00
toasted-nutbread
c3e772fadc
Include permissions info in backup files (#1116) 2020-12-16 22:26:19 -05:00
toasted-nutbread
26dd0270d9
Create function to create a new DOM parser (#1114) 2020-12-14 23:05:04 -05:00
toasted-nutbread
7926821c48
Rename SimpleDOMParser to NativeSimpleDOMParser (#1113) 2020-12-14 22:56:38 -05:00
toasted-nutbread
e29c752793
Simplify URL normalization (#1112) 2020-12-14 22:39:03 -05:00
toasted-nutbread
96e68be0fa
Refactor tab creation to improve errors (#1110) 2020-12-13 16:09:11 -05:00
toasted-nutbread
05e213674c
Update content-security-policy to be more explicit (#1109) 2020-12-13 13:56:45 -05:00
toasted-nutbread
dabe5fa899
Update info (#1108)
* Show language

* Show extension manifest name + version
2020-12-13 12:46:36 -05:00
toasted-nutbread
14b9e0621b
Updated welcome page (#1107)
* Make storage controller optional

* Make more elements optional

* Update styles

* Create new welcome page

* Update URL for welcome guide

* Remove old guide

* Fix unused global
2020-12-13 12:32:43 -05:00
toasted-nutbread
5d2edda753
Fix storage stats update error during dictionary deletion (#1106) 2020-12-13 11:29:32 -05:00
toasted-nutbread
48b8041800
Fix incorrect page type condition causing incorrect document title (#1105) 2020-12-13 10:33:47 -05:00
toasted-nutbread
5948229176
Add info page (#1102)
* Add api.getAnkiConnectVersion

* Enable basic functionality when certain features/elements aren't present

* Add info page

* Update information links

* Update info link on the settings v2 page
2020-12-12 14:57:24 -05:00
toasted-nutbread
92cfd31c0f
Fix global declarations check (#1101)
* Fix getSubstringCount not properly checking word boundaries

* Remove unused global declarations
2020-12-12 14:47:17 -05:00
toasted-nutbread
cb0699ecd4
Add initialization script for generic internal pages (#1099) 2020-12-12 12:38:21 -05:00
toasted-nutbread
e9027457ab
Add permissions page and documentation (#1098) 2020-12-12 12:35:56 -05:00
toasted-nutbread
ddb71af6bd
Add zuru deinflections (#1091)
* Update deinflector rule types

* Add deinflection rules for zuru verbs

* Add tests
2020-12-12 10:17:25 -05:00
toasted-nutbread
8192fdd63c
Update style of legal.html to match settings v2 (#1092) 2020-12-10 17:53:26 -05:00
toasted-nutbread
df9436bc3e
Add classic suru deinflections (#1089)
* Add classic suru deinflections

* Add tests
2020-12-08 22:39:06 -05:00
toasted-nutbread
125c296eed
Support frame resize on firefox (#1088)
* Add popup functions for getting/setting the frame size

* Add frontend functions for getting/setting popup frame size

* Expose display mode attribute on display HTML

* Disable resizer on iframe

* Add custom frame resizer handle

* Add support for custom frame resizer
2020-12-08 20:31:02 -05:00
toasted-nutbread
2be81cbb77
Update/test deinflector (#1087)
* Update formatting

* Add missing rule for progressive/perfect

* Add adnomial -ki rule

* Update rules for irregular verbs

* Organize rules by rulesOut

For the most part, the order is:
  adj-i => v1 => v5 => vs => vk => other

* Add tests
2020-12-08 20:29:42 -05:00
toasted-nutbread
2910685a96
Database test updates (#1086)
* Remove unused

* Create DatabaseVM

* Update sequences in test dictionary

* Update documentation

* Add second valid testing dictionary

* Set up translator tests

* Write expected data
2020-12-08 20:27:36 -05:00
toasted-nutbread
0dc170e70b Update version 2020-12-06 21:19:13 -05:00
toasted-nutbread
35fbc76df4
Settings v2 testing setup (#1084)
* Add option for using settings v2

* Add options/info about settings v2

* Use settings v2 URL when applicable

* Update tests
2020-12-06 21:17:05 -05:00
toasted-nutbread
88b8191ac2
Settings page v2 (#606)
* Initial setup of settings page v2

* Add security options

* Add layout-aware scanning option

* Fix style

* Set up simple setting bindings

* Convert colors to variables

* Refactor, remove unused

* Set up variables for some size values

* Mark expandable entries with a pointer cursor

* Add scroll top link

* Update sidebar styles

* Update icon button styles

* Fix padding when settings are wrapped

* Update shadow styles

* Use animation timings

* Add support for being able to open the sidebar on small-screen/mobile devices

* Update styles and preview sidebar

* Add ability to expand the preview sidebar

* Scroll to initial target only after advanced setting is set

* Fix rebase issues

* Update z-index of modal

* Use Modal for testing

* Set up modal controller

* Update button styles

* Update modal design

* Update styling of multi-part inputs

* Fix button styles

* Create SettingsDisplayController

* Update scanning inputs

* Use nested option

* Update animation timings

* Update modals to be display:none when not open

* Update included scripts

* Move modal link/input control to SettingsDisplayController

* Simplify event handlers

* Add audio sources options modal

* Allow certain nodes to be selected on click

* Implement top link

* Add environment-specific display styles

* Implement storage info

* Update modal controller

* Remove TODO

* Remove unnecessary <br>

* Add primary dictionary option under result grouping option

* Simplify transform

* Update styles for short inputs

* Add toggleable status footer

* Update modal styles

* Fix more-toggle elements sometimes affecting wrong targets

* Add selector-observer.js reference

* Add support for dynamically-generated more-toggle elements

* Rename result grouping modes and add descriptions

* Update icon button style

* Add a no-more-only class

* Use absolute URLs

* Add kebab-menu icon button

* Update text styles

* Add disabled styles

* Update toggle styles to support default pointer when disabled

* Update modal.js reference

* Disable box shadow for disabled buttons

* Add support for menus, use menus for audio source removal

* Disable pointer events when a modal is closing

* Update the escape key to close menus before closing modals

* Add support for dictionary modals

* Remove debug log

* Remove redundant spinner

* Update nested option visibility

* Add support for import/export/reset

* Update URL

* Reorganize

* Add comments

* Fix toggle highlight not working

* Add radio style

* Fix dictionary separator line

* Add mouse icon

* Add support for an icon button container with input height

* Update profile selects

* Add support for editing profiles and profile conditions

* Enable overflow scrolling for popup menus

* Add support for input suffix buttons

* Style updates

* Implement Anki card controls

* Improve dictionary information

* Punctuation

* Add support for Anki card templates

* Add support for using the tab key

* Add support for custom CSS modal

* Add support for simple scanning inputs

* Simplify

* Don't exit modals/menus when pressing escape while an input is focused

* Add checkbox styles

* Set up advanced scanning inpugs

* Reorganize

* Add outer theme option

* Add controller for nested popups

* Update scannings inputs

* Set up settings for touch/pen inputs

* Add modal for input prevention

* Update label styles

* Options updates

* Update duplicate scope options

* Only show quality when format is JPEG

* Add auto-scaling options

* Update navigation options

* Rearrange options

* Fix icon

* Add group for popup-size

* Update styles for inputs

* Update description

* Update appearance of checkboxes, toggles, and radios

* Add more advanced popup options

* Add debug option

* Add pitch accent display options

* Update input fields

* Add conjugation

* Update guide link

* Update and simplify primary/secondary dictionaries

* Update link

* Un-nest a setting

* Update wordings

* Use consistent styling for lists

* Fix custom CSS modal fade affecting the layout

* Fix z-index of the top link

* Disable word wrap on some text

* Disable highlight color

* Update FAB positioning and sizing

* Update button spacing

* Remove preview frame controller code

* Remove welcome.html

* Update seconds units

* Use all appearance styles

* Add option for anki.checkForDuplicates

* Rearrange options

* Fix redundant margin assignment

* Move scanning.enableOnSearchPage option such that it is not nested

* Organize/update options
2020-12-06 20:37:19 -05:00
toasted-nutbread
f89f9d777f
Use expression as reading if reading is blank (#1083) 2020-12-05 21:30:51 -05:00
toasted-nutbread
cd19be8954
Fix disambiguation text color (#1082) 2020-12-05 21:17:42 -05:00
toasted-nutbread
0fc8578dee
Fix pitch accent info gathering using new data format (#1081) 2020-12-05 21:16:24 -05:00
toasted-nutbread
95b225462a
Fix frequency tags (#1080)
* Rename term-frequency to tag-frequency

* Move tag styles

* Expand

* Use separate templates for terms vs kanji
2020-12-05 17:45:45 -05:00
toasted-nutbread
ae9a20e0de
Json schema improvements (#1078)
* Test multipleOf

* Refactor defaulting

* Use default if invalid for non-object/array properties

* Add tests
2020-11-30 18:56:28 -05:00
toasted-nutbread
ff6ebdab88
Update compact layout (#1077) 2020-11-29 19:45:47 -05:00
toasted-nutbread
34451ebf71
JapaneseUtil normalization (#1076)
* Use JapaneseUtil as a class which is manually instantiated

* Use alias function for toKana
2020-11-29 13:09:02 -05:00
toasted-nutbread
a8cd03cbec
Fix outer CSS being incorrectly injected (#1075) 2020-11-29 12:00:41 -05:00
toasted-nutbread
008ffdb6bf
Frequencies marker (#1074)
* Update japanese.js tests

* Simplify fallback/early exit

* Add overloads to furigana and furiganaPlain handlebars helper functions

* Expose unique expression/reading arrays (and subsequently counts)

* Add {frequencies} marker
2020-11-28 14:30:50 -05:00
toasted-nutbread
94d63f4f87
Display style updates (#1072)
* Add variables for tag styles

* Add variable for compact list separator

* Improve compactness of pitch accents

* Improve kanji link styles

* Improve coloring for lists

* Move styles

* Update styles for lists

* Move conditional styles

* Simplify definitions

* Remove unused styles

* Cleanup

* Use strings for dataset properties

* Don't always collapse pitch accents
2020-11-27 15:22:06 -05:00
toasted-nutbread
8449322e1c
Fix kanji note creation (#1069)
* Fix kanji note creation

* Move try/catch for consistency

* Move audio normalization
2020-11-26 22:53:58 -05:00
toasted-nutbread
3f7c76dbc7
Yomichan popup styles refactor (#1067)
* Rename classes yomichan-float to yomichan-popup

* Use attributes instead of classes

* Refactor

* Update popup outer scaling

* Update outer theme usage

* Move client.css to popup-outer.css in /mixed
2020-11-26 14:13:53 -05:00
toasted-nutbread
92e9f69c80
Popup style updates (#1066)
* Replace compactGlossaries option with new glossaryLayoutMode option

* Update attributes

* Update attributes

* Update color definitions

* Fix default theme scrollbar
2020-11-25 23:22:05 -05:00
toasted-nutbread
c6c4631817
Display button improvements (#1065)
* Use hidden and disabled properties instead of custom classes

* Enable transitions on buttons
2020-11-25 12:39:09 -05:00
toasted-nutbread
f7d1d2deb5
Add plus-circle icons (#1064) 2020-11-25 11:56:57 -05:00
toasted-nutbread
8677fb5579
Display style updates (#1062)
* Change condition for scrollbar theme

* Fix expression colors

* Update colors
2020-11-24 19:56:42 -05:00
toasted-nutbread
02d9f7c736
Improve html templates (#1061)
* Add template pre-processing

* Remove whitespace

* Add labels

* Reuse tag template for search tags

* Add space
2020-11-24 19:06:29 -05:00
toasted-nutbread
0b00de3c0f
Frequency display improvements (#1060)
* Hide redundant frequencies

* Add dataset counters for unique expressions/readings

* Update frequency display to include disambiguations
2020-11-24 11:56:40 -05:00
toasted-nutbread
496af0b5f2
Fix incorrect frequency field being used (#1059) 2020-11-24 11:55:25 -05:00
toasted-nutbread
de299c64ae
Display updates (#1057)
* Fix history assignment on the search page

* Use clear instead of assigned

* Simplify definitions assignment

* Organize

* Fix query not being cleared

* Fix media loading

* Fix potential issue with options not being assigned

* Catch error when frameId is null, causing infinite loop

* Fix frontend construction parameters
2020-11-24 11:54:08 -05:00
toasted-nutbread
068b1eef71
Text scanner improvements (#1056)
* Only ignore nodes on non-web pages

* Fix issue where options might not be assigned on nested frontends

* Refactor default TextScanner options

* Add option to enable search only on click

* Simplify restore state assignment

* Update options context passing

* Fix empty title

* Use TextScanner to scan content inside of Display

* Rename ignoreNodes to excludeSelector(s)

* Fix options update incorrectly triggering a re-search

* Fix copy throwing an error on the search page

* Replace _onSearchQueryUpdated with _search

* Use include selector instead of exclude selector
2020-11-23 20:31:48 -05:00
toasted-nutbread
12e5cec99c
Display updates (#1055)
* Fix title assignment

* Add event listeners as entries are being added

* Focus entry when clicked
2020-11-23 17:43:17 -05:00
toasted-nutbread
01ff7436ee
Popup setup refactoring (#1054)
* Pass childrenSupported as a parameter to Frontend/Popup constructors

* Remove setChildrenSupported

* Use event listener instead of function override

* Update options order

* Expand options and use object for clarity

* Fix childrenSupported not being fully propagated
2020-11-23 15:23:47 -05:00
toasted-nutbread
2971f262f9
Merge float into display (#1053)
* Update audio play delay

* Move frame endpoint to Display

* Move _invokeOwner and close implementation

* Move browser info assignment

* Move window message handler setup

* Move copy implementation

* Move document title function

* Move extension unload handler

* Move close handler

* Move history event handlers

* Remove DisplayFloat

* Remove unused

* Organize

* Move event listeners into prepare
2020-11-22 15:29:51 -05:00
toasted-nutbread
7234cce4ae
Refactor nested popup/frontend setup (#1052) 2020-11-22 11:19:21 -05:00
toasted-nutbread
7b6a4c4e36
More display updates (#1050)
* Use grid for layout

* Add data-count attribute

* Fix scroll issues during focus

* Add index to entries

* Simplify audio playback
2020-11-21 21:17:39 -05:00
toasted-nutbread
af33fff6fb
Fix cloze not using the raw source (#1049) 2020-11-21 11:31:11 -05:00
toasted-nutbread
73cb2c763c
Update indentation (#1047) 2020-11-20 22:57:14 -05:00
toasted-nutbread
181ade93d6
Display scroll fixes (#1046)
* Update focus when internal focus is changed

* Update scroll layout
2020-11-20 22:42:49 -05:00
toasted-nutbread
1216926fbd
Hide profile button if only one profile exists (#1045) 2020-11-19 18:49:30 -05:00
toasted-nutbread
e5255a03e6
Context popup improvements (#1039)
* Refactor context-main.js

* Simplify tags

* Use flex layout

* Use image masks for icons, update styles

* Remove old classes

* Add profile button

* Add support for profile selection

* Add title

* Swap the options and search link order

* Fix title
2020-11-19 18:37:02 -05:00
toasted-nutbread
b0a5650625
Update selection indicator (#1044)
* Add new current indicator

* Remove old indicator
2020-11-19 18:34:41 -05:00
toasted-nutbread
1588f6210c
Display and query parser layout (#1043)
* Update query parser text assignment

* Update how padding is used

* Hide query parser container by default
2020-11-18 20:15:30 -05:00
toasted-nutbread
e9075e24e1
Update progress indicator styles (#1042) 2020-11-18 20:06:02 -05:00
toasted-nutbread
a48ac37815
Use an overridable property to control progress indicator visibility (#1041) 2020-11-17 19:40:19 -05:00
toasted-nutbread
ea7b8621c3
Update layout to have better sizing properties (#1040) 2020-11-16 20:41:12 -05:00
toasted-nutbread
37ea7e2c9a
Add support for dark theme scrollbar colors (#1038) 2020-11-15 14:39:37 -05:00
toasted-nutbread
e4f28b31ce
Move "Enable native popups" option and make advanced (#1037) 2020-11-15 14:16:11 -05:00
toasted-nutbread
d66a5e3b87
Fix settings resetting not initializing dictionary settings properly (#1036) 2020-11-15 14:14:52 -05:00
toasted-nutbread
2e3169f68c
Popup navigation style updates (#1035)
* Add close function to Display

* Add new sidebar with navigation and close buttons

* Set up new navigation functionality

* Remove old navigation
2020-11-15 14:12:48 -05:00
toasted-nutbread
37af524015
Add cross icon (#1034) 2020-11-15 12:10:33 -05:00
toasted-nutbread
c387898902
Display fixes (#1033)
* Fix an entry not always being focused

* Fix typo

* Fix copy action not working on Firefox
2020-11-14 21:47:43 -05:00
toasted-nutbread
4b1c7b1e26
Display layout updates (#1032)
* Fix display scroll not always using the right position

* Update display layout and scroll method

* Fix border size
2020-11-14 18:12:06 -05:00
toasted-nutbread
34c6d4210a
Scroll refactor (#1031)
* Use private members

* Reorganize
2020-11-14 17:24:30 -05:00
toasted-nutbread
af16643f35
Display styles update (#1030)
* Make section comments into single line comments

* Update :before/:after to be ::before/::after

* Organize and compact CSS

* Remove obsolete style

* Add padding var

* Use calc and var for layout units and common values

* Update search page styles
2020-11-14 15:23:20 -05:00
toasted-nutbread
50a1fbfb9f
Display updates (#1029)
* Simplify expression creation

* Add attribute indicating whether the reading is the same or not

* Update kanji debug info

* Remove some unnecessary null checks

* Simplify iterable check

* Update float and search HTML to be more consistent
2020-11-14 13:42:50 -05:00
toasted-nutbread
112f08a13e
Fix term details not using the expanded tags (#1028) 2020-11-14 12:09:14 -05:00
toasted-nutbread
3ee385b319
Fix some word wrapping issues on the first line of definitions (#1027) 2020-11-13 21:11:29 -05:00
toasted-nutbread
d0f364bad8
Fix _areSame check not using correct array count property (#1026) 2020-11-13 20:53:41 -05:00
toasted-nutbread
d62d353958
Fix options not being propagated fully after being updated (#1025) 2020-11-13 19:51:51 -05:00
toasted-nutbread
3edc35691b
Display updates (#1024)
* Update display generation to use new format assumptions

* Simplify how debug information is presented
2020-11-13 19:48:22 -05:00
toasted-nutbread
20f3d09aa4
Clear cached definition when rendering a template (#1022) 2020-11-12 20:35:11 -05:00
toasted-nutbread
ec021964b7
Compact tags refactor (#1021)
* Update translator to flag redundant tags instead of remove

* Update how compact tags are shown in the popup

* Pass compactTags option to note builder

* Update options templates

* Add options upgrade

* Add options upgrade test
2020-11-12 20:34:11 -05:00
toasted-nutbread
f2ad94e54f
Text scanning options propagation (#1020)
* Update Display.setOptionsContext to update options

* Update how options context is updated in Popup

* Omit optionsContext for some _showPopupContent calls

* Remove extension unload

* Disable modifier keys in frontend's options context

* Update how text scanner passes modifiers to options context

* Update how options context is passed to display

* Update how display uses options context
2020-11-12 20:32:46 -05:00
toasted-nutbread
219dfb4917
Add a core deepEqual function (#1018)
* Add a core deepEqual function

* Add tests
2020-11-09 21:47:25 -05:00
toasted-nutbread
eb8069a494
Options context updates (#1017)
* Update event order

* Update inputs

* Add type and cause to input info

* Update input info args

* Simplify arguments

* Update argument name

* Change order
2020-11-08 22:55:43 -05:00
toasted-nutbread
3a23f081d1
Frontend options override refactor (#1016)
* Update how options context overriding works

* Make function private
2020-11-08 22:49:40 -05:00
toasted-nutbread
8edb478d0a
Update keyboard/mouse modifiers to return an array rather than a set (#1015) 2020-11-08 22:19:54 -05:00
toasted-nutbread
681065e554
Remove unused functions from backend.js (#1014) 2020-11-08 17:06:44 -05:00
toasted-nutbread
6232e3efc2
Optimize Anki duplicate checks (#1013)
* Move/rename functions

* Prevent overlapping calls to check addable definitions
2020-11-08 16:48:15 -05:00
toasted-nutbread
16321a1f8c
Add duplicate check option (#1012)
* Add anki.checkForDuplicates option

* Use checkForDuplicates for button display

* Add property to card creation
2020-11-08 16:25:07 -05:00
toasted-nutbread
4e30409410
Add api.isAnkiConnected (#1011) 2020-11-08 15:53:06 -05:00
toasted-nutbread
0cbc6523e6
Remove unused default selected (#1010) 2020-11-08 14:24:39 -05:00
toasted-nutbread
6081e3bef0
Make query parser mode select in the base HTML (#1009) 2020-11-08 13:25:07 -05:00
toasted-nutbread
8dc961a61f
Merge QueryPaserGenerator into QueryParser (#1008) 2020-11-08 12:50:16 -05:00
toasted-nutbread
948605a1fe
Update query parser to properly display multi-line content (#1007) 2020-11-08 12:43:41 -05:00
toasted-nutbread
12e6e37785
Query parser generator refactor (#1006)
* Simplify select generation

* Refactor text generation

* Change optional argument

* Remove query-parser-templates.html

* Simplify prepare

* Simplify preview
2020-11-08 12:35:32 -05:00
toasted-nutbread
8cf10d685d
Search and display style updates (#1005)
* Use same selectors

* Use consistent stylesheet declaration

* Fix query parser not being cleared

* Set property upon load

* Don't focus for Enter key press

* Update search page styles

* Update indent and nodes

* Support dark style

* Add missing var
2020-11-08 12:34:23 -05:00
toasted-nutbread
db9ec4c449
Fix search tab opening having some errors (#1004) 2020-11-07 22:43:14 -05:00
toasted-nutbread
be952a1857
Disable the audio button when no sources are enabled (#1003) 2020-11-07 12:03:10 -05:00
toasted-nutbread
f4325b7db9
Fix byte count labels (#998)
* Add 'TB' label

* Prevent overflow

* Fix storage information on the old settings page
2020-11-07 09:58:46 -05:00
toasted-nutbread
9c6ff387a0
Popup preview update (#994)
* Add options.global.showPopupPreview option

* Add preview visibility control using a checkbox

* Add attribute on page load

* Disable animation until page is loaded
2020-11-06 22:14:00 -05:00
toasted-nutbread
b62c48822e
Use <strong> styling for list keys (#991) 2020-11-05 22:44:35 -05:00
toasted-nutbread
3216a9e263
Settings controller changes (#990)
* Make allowSecondarySearchesCheckbox optional

* Move getDictionaryInfo into SettingsController
2020-11-05 18:45:57 -05:00
toasted-nutbread
5b9d709d40
Conjugation marker (#988)
* Add {conjugation} marker

* Add info

* Add upgrade

* Update test
2020-11-04 20:39:23 -05:00
toasted-nutbread
255c8b724e
Pitch accents preview (#987)
* Add public preparePitchAccents function to DisplayGenerator

* Add pitch accents preview HTML, CSS, and JS
2020-11-03 22:30:20 -05:00
toasted-nutbread
838175f06b Update version 2020-11-01 21:36:41 -05:00
toasted-nutbread
a8ff38eec3
Fix display issues (#984)
* Remove unused function

* Update expresionMulti detection

* Simplify kanji early escape

* Simplify frequency/pitch data creation

* Update implementation of _buildTermMeta

* Update how pitch accents sources are collected

* Remove old _buildTermMeta
2020-11-01 21:24:35 -05:00
toasted-nutbread
8ffae565c6
Add popup size icon (#981) 2020-11-01 14:15:00 -05:00
toasted-nutbread
0c1e4d2255 Update version 2020-10-31 19:30:21 -04:00
toasted-nutbread
215ef627f1
Duplicate scope options (#955)
* Add deck-root duplicate scope option

* Implement support for deck-root scope
2020-10-31 19:03:45 -04:00
toasted-nutbread
94620f4f22
Trigger event on property change (#979)
* Add _triggerScanInputsChanged function

* Trigger event when inputs are changed
2020-10-31 17:13:24 -04:00
toasted-nutbread
11c5dbac64
Add an 'other' option for when there is no matching main scanning input (#978) 2020-10-31 17:03:22 -04:00
toasted-nutbread
f78e243853
Update counts when an input entry is removed (#977) 2020-10-31 16:38:48 -04:00
toasted-nutbread
164c7b4375
Fix addition/removal of middle mouse button input not always working (#976) 2020-10-31 16:33:48 -04:00
toasted-nutbread
21cae0e38e
Scan inputs controller refactor (#975)
* Add public function to clear inputs

* Return the promise

* Pass input options directly

* Assign showAdvanced

* Add more menu options
2020-10-31 16:26:01 -04:00
toasted-nutbread
ab98caf842
Scanning inputs refactor (#974)
* Add support for count nodes

* Add support for menu button
2020-10-31 13:40:10 -04:00
toasted-nutbread
bcf06105d6
Add checkbox images (#973) 2020-10-31 13:38:55 -04:00
toasted-nutbread
54768ca6e4
Update PopupPreviewController to support settings v2 (#972) 2020-10-30 22:21:56 -04:00
toasted-nutbread
f5d6573bec
Add supoprt for modal dimmer element (#971) 2020-10-30 22:20:50 -04:00
toasted-nutbread
327d7b1f26
Anki templates refactor (#970)
* Support menus with multiple sources

* Update anki templates controller
2020-10-30 17:41:52 -04:00
toasted-nutbread
cb76848df9
Fix profile creation not working on settings v1 (#968) 2020-10-28 20:47:20 -04:00
toasted-nutbread
890de095db
Fix modals not closing properly when the outside is clicked (#967) 2020-10-28 20:45:50 -04:00
toasted-nutbread
25cedc8c52
Add exclamation point image (#966) 2020-10-27 21:21:58 -04:00
toasted-nutbread
ba59327354
Dictionary controllers update (#965)
* Make purge notification optional

* Support multiple warning nodes

* Add support for optional count info
2020-10-27 21:20:26 -04:00
toasted-nutbread
9e57509e25
Json schema default value improvement (#964)
* Ensure value has property before using its value

* Add tests
2020-10-27 19:40:19 -04:00
toasted-nutbread
75734de7eb
Option schema default value info (#963)
* Add traversal info to getValidValueOrDefault

* Move private function
2020-10-27 19:27:27 -04:00
toasted-nutbread
dfdefc15d3
Options fixes (#962)
* Fix default options not having the correct versions

* Move schema validation

* Remove legacy version number

* Add tests for OptionsUtil.getDefault()

* Remove unused getValidValueOrDefault
2020-10-27 19:26:30 -04:00
toasted-nutbread
45627bd6e6
Fix class name (#961) 2020-10-27 19:24:17 -04:00
toasted-nutbread
502ca9c96e
Remove limits for popup horizontal/vertical offsets (#960) 2020-10-27 19:23:03 -04:00
toasted-nutbread
9048890bf6
Remove error type from error message (#958) 2020-10-26 21:54:18 -04:00
toasted-nutbread
28330d0e30
Anki controller refactor (#957)
* Add _setFieldMarker helper function

* Add support for persistent nodes

* Add support for menus
2020-10-25 22:51:28 -04:00
toasted-nutbread
92c083ee9f
Sort deck and model names in Anki card settings (#956) 2020-10-25 19:04:59 -04:00
toasted-nutbread
defd7402cf
Anki controller refactor (#954)
* Simplify data transform for anki.enable setting

* Refactor AnkiController

* Implement marker link clicking

* Request permissions for clipboard
2020-10-25 13:34:42 -04:00
toasted-nutbread
9e9bd0dcf6
Profile controller refactor (#953)
* Udpate selectors

* Optional remove button

* Add menu

* Refactor ProfileController

* Fix selector
2020-10-24 16:01:13 -04:00
toasted-nutbread
4188adae28
Rename index to profileIndex for clarity (#952) 2020-10-23 21:37:22 -04:00
toasted-nutbread
6422845bbb
Add radio button images (#951) 2020-10-20 23:07:13 -04:00
toasted-nutbread
fcf63d71f5
Profile controller refactor (#950)
* Add additional fields for consistency

* Fix copy confirm not working correctly

* Update IDs
2020-10-20 22:15:11 -04:00
toasted-nutbread
6f980d8f2b
Text source range refactor (#949)
* Rename functions for better clarity

* Remove unused properties

* Add getNodesInRange function

* Improve ignore nodes check

* Use private fields
2020-10-20 20:54:26 -04:00
toasted-nutbread
9bda0a9eb4
Popup preview fixes (#948)
* Select just the text node and not its container

* Make background color transparent by default
2020-10-20 20:53:18 -04:00
toasted-nutbread
ecbac2c5ea
Popup preview improvements (#947)
* Move CSS

* Update indent

* Refactor HTML/CSS

* Add support for editing the source text

* Add WanaKana binding for input

* Rename file
2020-10-20 19:08:17 -04:00
toasted-nutbread
23230b8a7c
Backup controller refactor (#946)
* Update IDs

* Change how default fieldTemplates is assigned

* Ensure no missing fields

* Fix error display during import
2020-10-19 20:05:45 -04:00
toasted-nutbread
91b4feb934
Make dictionary spinner optional (#945) 2020-10-19 17:25:15 -04:00
toasted-nutbread
69e5ea6138
Popup menu updates (#942)
* Expose isClosed property

* Add popupMenu to detail

* Return true if closed, false otherwise

* Add closed event to PopupMenu
2020-10-18 19:48:44 -04:00
toasted-nutbread
9fa2ebddc8
Dictionary controller updates (#941)
* Rename action

* Store more state information

* Conditional checks for details toggle links

* Add support for hiding/showing details via menu
2020-10-18 19:35:09 -04:00
toasted-nutbread
ce17a47b5e
Change progress reporting to support settings v2 (#940) 2020-10-18 18:28:14 -04:00
toasted-nutbread
8bf42fa69e
Dictionary controller updates (#939)
* Check if element exists

* Add delete function

* Add support for deleting via popup menu

* Update how count visibility is updated

* Update dictionary deletion progress updates

* Update storage stats after dictionary deletion
2020-10-18 18:26:44 -04:00
toasted-nutbread
3e3c080a43
Status footer (#938)
* Add event for popup element close completion

* Add StatusFooter class
2020-10-18 18:22:36 -04:00
toasted-nutbread
a920445883
Fix focused element of popup menus (#937) 2020-10-18 18:21:10 -04:00
toasted-nutbread
988ea8f70a
Update audio controller for menus (#936)
* Make event non-async

* Only add event listener if the button exists

* Add support for menu for removal
2020-10-18 13:18:57 -04:00
toasted-nutbread
3ab63f4f55
Fix missing close cause (#935) 2020-10-18 13:00:49 -04:00
toasted-nutbread
82e203dd76
Popup menu updates (#934)
* Store a reference to the menu

* Allow close cancellation

* Add open event
2020-10-18 12:58:07 -04:00
toasted-nutbread
faf130f420
Add PopupMenu class (#933) 2020-10-18 12:49:51 -04:00
toasted-nutbread
054fe02808
Fix new Modal's base calss (#932) 2020-10-18 09:54:29 -04:00
toasted-nutbread
d35d1fd44a
Generalize modal, move to popup-elements.js (#931) 2020-10-18 09:39:55 -04:00
toasted-nutbread
6f1bdf0c66
Modal split (#930)
* Move jQuery-based modal into a separate class

* Remove jQuery conditions for default modal
2020-10-18 09:27:32 -04:00
toasted-nutbread
a4550627af
Add a refresh function to GenericSettingsController (#929) 2020-10-17 21:38:29 -04:00
toasted-nutbread
74feeb228f
Add kebab-menu icon (#928) 2020-10-17 21:31:53 -04:00
toasted-nutbread
642c434829
SelectorObserver (#927)
* Create new SelectorObserver class

* Update DOMDataBinder to use SelectorObserver

* Update names to be more clear

* Remove attributeOldValue parameter, clarify attributes parameter

* Add documentation
2020-10-17 16:33:11 -04:00
toasted-nutbread
e5ef3fe9c2
Remove debug log (#924) 2020-10-15 18:10:29 -04:00
toasted-nutbread
e6a1bcc0f5
Ensure settings exist for all installed dictionaries (#922) 2020-10-14 19:38:50 -04:00
toasted-nutbread
51904761ce
Add simple scan input UI (#921)
* Add simple scan input UI

* Create helper function

* Add controller for old scanning input UI

* Add refresh functions

* Add abstraction function

* Fix incomplete middle mouse support detection

* Make scanning inputs update eachother

* Fix global declaration order
2020-10-14 19:37:46 -04:00
toasted-nutbread
429e3a5b74
Fix "modifier" field being required despite being deleted (#920) 2020-10-14 19:36:27 -04:00
toasted-nutbread
a72c3d7719
Fix template updates for multiple declarations (#918)
* Update pattern to be multi-match

* Remove unnecessary async
2020-10-14 19:35:13 -04:00
toasted-nutbread
4ca6101273
Improve convertKatakanaToHiragana and convertHiraganaToKatakana (#916) 2020-10-13 21:48:21 -04:00
toasted-nutbread
3e9db71120
Add a default audio option (#913) 2020-10-11 22:20:07 -04:00
toasted-nutbread
5b5b45b88e
Dictionary controller refactor (#912)
* Support multiple main dictionary selects

* Update progress container

* Change class name

* Simplify dictionary info

* Update outdated node visibility

* Simplify node usage

* Simplify title

* Update classes

* Update IDs/classes

* Remove details container visibility assignment

* Use a template for dictionary details

* Fix progress bar visibility

* Fix incorrect property

* Rename dict-details to dictionary-details

* Remove unused classes

* Update class names for dictionary templates

* Rename templates

* More id renaming

* Remove unused id

* Rename more IDs
2020-10-11 17:31:58 -04:00
toasted-nutbread
a8601ec95c
Add spinner.svg (#911) 2020-10-11 13:38:14 -04:00
toasted-nutbread
9da08c7fe6
Generic settings improvements (#909)
* Add helper function _getElementRelativeToAncestor

* Move helper functions

* Add setVisibility transform

* Add support for data-transform attribute shorthand

* Add support for using the document element as the ancestor
2020-10-10 23:17:51 -04:00
toasted-nutbread
25c590e54b
Add modal controller class (#908)
* Add ModalController

* Use modalController instead of new Modal
2020-10-10 20:58:38 -04:00
toasted-nutbread
0244d07ea9
Storage controller refactor (#907)
* Use array for use/quota nodes

* Use classes instead of ids
2020-10-10 17:37:16 -04:00
toasted-nutbread
19e0346484
Further generalize storage controller by supporting lists of nodes (#906) 2020-10-10 17:31:09 -04:00
toasted-nutbread
199dd7d763
Storage controller refactor (#905)
* Use hidden instead of storage-hidden class

* Refactor storage events

* Make ID more generic

* Update how persistent storage is activated

* Add null checks

* Update HTML/ID

* Disallow disabling persistent storage

* Refactoring

* Update more IDs

* Disable multiple simultaneous stats updates

* Store node references

* Move undefined assignment
2020-10-10 16:54:52 -04:00
toasted-nutbread
3174f3c657
Update audio controller (#904)
* Remove redundant assignment of select value

* Update TTS preparation

* Don't hide options

* Improve voice sorting

* Update event handler

* Apply options to all selects targeting audio.textToSpeechVoice

* Update selector

* Use IDs

* Move test text to a hidden text input
2020-10-10 12:11:33 -04:00
toasted-nutbread
6799b87cc6
Make animation optional for Modal.setVisible (#903) 2020-10-10 10:47:02 -04:00
toasted-nutbread
591253d783
Add support for allowing modals to be display:none when not open (#902) 2020-10-10 10:12:53 -04:00
toasted-nutbread
1ae8fb4bfa
Modal updates 2 (#901)
* Fix incorrect visible value

* Focus element when visibility is set

* Add isVisible function
2020-10-08 22:44:55 -04:00
toasted-nutbread
bedcad6ab2
Update the Modal class to support non-jQuery modals (#900) 2020-10-08 22:31:58 -04:00
toasted-nutbread
41ead7a90a
Add additional transforms (#899) 2020-10-08 17:38:18 -04:00
toasted-nutbread
05e51a950e
Settings templates refactor (#897)
* Add template instantiation API to SettingsController

* Use SettingsController.instantiateTemplate
2020-10-07 21:23:42 -04:00
toasted-nutbread
cb1902eadd
Template handler update (#896)
* Rename TemplateHandler to HtmlTemplateCollection

* Rename _templateHandler to _templates

* Allow creation from both string and element

* Simplify setup of templates, don't throw errors on invalid ID
2020-10-07 20:47:44 -04:00
toasted-nutbread
bbb534eff5
Split source.js into two files (#894) 2020-10-07 18:31:28 -04:00
toasted-nutbread
1a91935dd7
Fix dictionary settings not being deleted when deleting a single dictionary (#893) 2020-10-06 23:00:00 -04:00
toasted-nutbread
2f96218e33
Fix search page being focused when changing settings (#892) 2020-10-06 21:21:54 -04:00
toasted-nutbread
cee64f91eb
Fix data inconsistencies (#891)
* Simplify variable name

* Add dictionaryNames array

* Update how the dictionary field is assigned

* Use "dictionary" instead of "title" for consistency

* Remove redundant dictionary name

* Use _expandTags to create pitch accent tags
2020-10-06 20:28:49 -04:00
toasted-nutbread
69f94f8cb8
Update merged definitions to have consistent structure (#890)
* Update comment about definitions type

* Add conversion to ensure consistent data structure
2020-10-06 19:31:53 -04:00
toasted-nutbread
7ce87c51b4
Don't add duplicate definitions (#889) 2020-10-05 22:50:10 -04:00
toasted-nutbread
0cfaa1a5a8
Dictionary definition structure fixes (#888)
* Restore support for tags without metadata

* Fix missing spread
2020-10-05 21:10:52 -04:00
toasted-nutbread
8c8c27001e
Fix incorrect definitions array being used for compatibility merged definitions (#887) 2020-10-04 22:21:16 -04:00
toasted-nutbread
54810510fa
Fix primary audio source (#886)
* Add abstraction: _getDefinitionPrimaryExpressionAndReading

* Reuse existing definitions in a sequence

* Revert change to related definition source/rawSource/sourceTerm

* Update _getDefinitionPrimaryExpressionAndReading to return best match
2020-10-04 22:04:44 -04:00
toasted-nutbread
2d3cf89b49
Fix doc comments for translation options (#885) 2020-10-04 19:36:21 -04:00
toasted-nutbread
c604a406f0
Translator organization (#884)
* Group reduction functions together

* Group simple helpers

* Add label comments

* Move core _findTerms functions to top

* Move _getSecondarySearchDictionaryMap and _getDictionaryPriority

* Move tag helpers

* Move _getTextOptionEntryVariants

* Move functions up

* Move functions up

* Update label comments
2020-10-04 19:33:22 -04:00
toasted-nutbread
8b8806484e
Add check to verify expressions are strings (#883) 2020-10-04 19:04:21 -04:00
toasted-nutbread
f904b3e11a
Add sourceTermExactMatchCount to prioritize exact expression matches (#882) 2020-10-04 18:54:03 -04:00
toasted-nutbread
561e36e88d
Translator definition source term (and other info) (#881)
* Add sourceTerm field to 'term' and 'termGrouped' definitions

* Fix comparison of expressions which are always the same

* Rename/restructure term info map

* Add source term

* Add sourceTerm to expressions array

* Reuse furiganaSegments

* Add helper function _createExpressionDetailsListFromTermInfoMap

* Add expressions array to termMergedByGlossary

* Add expressions to definition types 'term' and 'termGrouped'

* Rename expressionDetails* to termDetails*

* Correct the source/rawSource/sourceTerm for related sequenced definitions

* Simplify structure of sequencedDefinitions

* Remove TODO
2020-10-04 18:10:10 -04:00
toasted-nutbread
7e31dcca39
Move deinflection reasons setup to backend (#880)
* Move deinflection reasons setup to backend

* Remove async
2020-10-04 13:09:04 -04:00
toasted-nutbread
2bd82353e4
Translator options refactor (#879)
* Refactor internal options for findTerms to not use the settings object

* Move findTerms/findKanji options creation

* Deconstruct used options values to variables before any await calls

* Rename findTermsOptions to just options

* Add documentation comments

* Add type information about definitions
2020-10-04 12:54:55 -04:00
toasted-nutbread
86c64ac4c2
Translator refactoring (#878)
* Add helper function _getSecondarySearchDictionaryMap

* Use spreads instead of concat

* Create helper function for assigning disambiguation info

* Add _getTermTagsScoreSum helper

* Rename variables

* Move assignment of definition details

* Convert databaseDefinitions to standard definitions

* Move creation of definitions

* Always pass definitionsByGlossary directly to _mergeByGlossary

* Refactor how used definitions are tracked

* Change _mergeByGlossary parameters

* Simplify _mergeByGlossary

* Generate definition structure at the end of the function

* Add reusable function to clone a tag

* Restructure merged sub-definition creation

* Move setup of totalExpressionSet/totalReadingSet

* Track all definitions with matching glossary

* Move creation of definitionTags

* Update score calculation for multiple definitions

* Disambiguate function name

* Rename variables

* Add helper function _createMergedGlossaryTermDefinition

* Remove rarely used check for secondary search results

Unclear what the purpose was since it was almost never used

* Update data structure

* Rename function/variable

* Add helper functions _createMergedTermDefinition

* Assign expressionDetails to variable

* Add rawSource to grouped definitions

* Use shared function for creating unused definition entries

* Add helper function _createMapKey

* Refactor _createExpressionDetails

* Change argument order

* Add _getTagNamesWithCategory helper

* Optimize _compressDefinitionTags

* Add _createGroupedTermDefinition helper

* Add type information

* Use consistent order for term definition fields, add comments for omitted fields

* Remove unused index field

* Add helper function _createKanjiDefinition

* Update types

* Add frequencies/pitches arrays

* Update terms array setup

* Simplify for loop

* Remove redundant property assignment

* Simplify how deinflections with no definitions are ignored

* Ensure duplicates are removed

* Rename variable

* Add comments about duplicate data

* Refactor variable/parameter names

* Move functions

* Rename functions

* Rename variable

* Add dictionaryPriority field

* Simplify priority comparison

* Rename argument

* Optimize comparison function when dictionary priority is not needed

* Add length check

* Remove unused parameter

* Rename variables/parameters

* Rename dictionaries to enabledDictionaryMap

* Store compactTags/mainDictionary options to variables

* Refactor _getSearchableText
2020-10-04 11:12:15 -04:00
toasted-nutbread
ef333b6d72
Dictionary data structure improvements (#877)
* Simplify object structure of deinflections

* Modify existing array when removing duplicates

* Update _sortDefinitions to not return a value

* Use explicit argument value

* Use a Collator for string comparisons

* Simplify order comparison

* Improve tag creation and sanitization

* Switch .map to a for loop, skip null meta

* Add _createKanjiStat

* Move _sortDefinitions definition

* Fix kanji stat sorting

* Remove return value from _sortTags

* Add _sortKanji

* Add fast exits for sorting

* Add _sortDefinitionsByIndex

* Combine sort function

* Improve creation of kanji definition data

* Use "databaseDefinitions" instead of "definitions" to disambiguate

* Simplify

* Simplify further

* Simplify max length calculation

* More destructuring

* Use databaseDefinitions variable name

* Move _mergeBySequence body into _getSequencedDefinitions

* Use databaseDefinitions field name

* Move maxLength calculation

* Use shared _createTermDefinitionFromDatabaseDefinition

* Simplify map

* Move definition sorts for better consistency and less redundancy

* Move _createExpression function

* Update setup of sequenced definitions

* Simplify for loop
2020-10-02 17:59:14 -04:00
50f2385aaf Release 20.9.28.0 2020-09-28 21:21:35 -07:00
toasted-nutbread
6b6ee76550
Move searchTerms/searchKanji to front of object definitions (#873) 2020-09-27 11:53:07 -04:00
toasted-nutbread
3b6e3193ae
Fix data-setting attributes not being updated on index change (#872) 2020-09-27 11:47:56 -04:00
toasted-nutbread
cdd649ea3d
Add scan on touch move and prevent touch scroll options (#871)
* Add scanOnTouchMove/preventTouchScrolling scanning input options

* Add settings controls

* Support scanOnTouchMove in TextScanner

* Support preventTouchScrolling in TextScanner
2020-09-27 11:46:37 -04:00
toasted-nutbread
73dd578821
Add middle mouse prevention option (#868)
* Add preventMiddleMouse option to TextScanner

* Add preventMiddleMouse options

* Add options

* Apply preventMiddleMouse options
2020-09-26 19:24:21 -04:00
toasted-nutbread
9c7b9d6660
Fix page type never being detected as search page correctly (#867) 2020-09-26 18:47:58 -04:00
toasted-nutbread
c1b5976394
Scanning mouse button fixes (#866)
* Move mouse0 blocking during mousemove into options

* Update primary button detection
2020-09-26 17:51:52 -04:00
toasted-nutbread
f18c28e519
Fix displayDetails not being properly null checked (#865) 2020-09-26 13:48:06 -04:00
toasted-nutbread
f0fc4bfee6
Send message updates (#864)
* Use _sendMessageTab

* Move _sendMessageAllTabs next to _sendMessageTab

* Rename function

* Add and use _sendMessageTabIgnoreResponse

* Add and use _sendMessageIgnoreResponse

* Always include params

* Update function consistency
2020-09-26 13:47:09 -04:00
toasted-nutbread
cab5daa22e
Add clipboard-text Anki field (#863)
* Add clipboard-text anki field

* Add markers

* Update clipboard injection
2020-09-26 13:45:48 -04:00
toasted-nutbread
5df78c6f3a
Add icons (#860)
* Add hamburger menu icon

* Add material down/right arrows
2020-09-26 13:43:47 -04:00
toasted-nutbread
079307899f
Media utility refactor (#859)
* Move loadImageBase64 into DictionaryImporter

* Convert mediaUtility to a class

* Add getFileExtensionFromImageMediaType to MediaUtility

* Use MediaUtility instead of _getImageExtensionFromMediaType

* Use MediaUtility in ClipboardReader to validate images before reading
2020-09-26 13:42:31 -04:00
toasted-nutbread
0b51488f1f
Audio system refactor (#858)
* Refactor AudioUriBuilder

* Add downloadAudio function

* Refactor AudioSystem

* Update API usage

* Rename file

* Update scripts

* Add prepare calls
2020-09-26 13:41:26 -04:00
toasted-nutbread
22932e02cb
Browser manifest updates (#840)
* Remove options_page

* Remove applications entry

* Update default content_security_policy

* Add browser-specific build variants

* Update default manifest

* Increase Firefox min version to 57
2020-09-26 13:40:09 -04:00
toasted-nutbread
c8b738ddf7
Remove unused toIterable function (#857) 2020-09-22 22:59:07 -04:00
toasted-nutbread
7d78e8737f
Cache map improvements (#856)
* Update CacheMap API; get=>getOrCreate; add get; add set; add has

* Update tests

* Add more tests
2020-09-22 20:09:12 -04:00
toasted-nutbread
d395a2a6bf
ClipboardReader class (#854)
* Create ClipboardReader class

* Use ClipboardReader in Backend

* Update ClipboardMonitor to use ClipboardReader

* Replace _onApiClipboardImageGet call

* Assign clipboard reader browser
2020-09-20 15:10:57 -04:00
toasted-nutbread
edda4778ac
Delete old scanning options during update (#851) 2020-09-20 11:30:38 -04:00
toasted-nutbread
07c95c56ba
Fix _addFieldTemplatesBeforeEnd not being await'd (#850) 2020-09-20 00:35:56 -04:00
toasted-nutbread
7a8b7eb488
Fix typeof comparing against a string (#849) 2020-09-19 22:19:31 -04:00
toasted-nutbread
c868950385
Organize background script grouping/order (#847) 2020-09-19 21:37:47 -04:00
toasted-nutbread
4293f73153
Remove window from performance object access (#845) 2020-09-19 18:41:13 -04:00
toasted-nutbread
a2e6de84af
Dictionary delete improvements (#844)
* Change where clearDatabaseCaches occurs

* Move dictionary deletion into the settings page

* Remove api.deleteDictionary
2020-09-19 17:17:33 -04:00
toasted-nutbread
1078ab99b7
Fix settings sanitization resulting in invalid data for the schema (#843) 2020-09-19 17:15:34 -04:00
toasted-nutbread
2ff4f83072
Modal refactor (#842)
* Add Modal class

* Use Modal class
2020-09-19 17:14:51 -04:00
toasted-nutbread
613c7ebf69
Remove border/margin/padding/pointerEvents from iframe (#841) 2020-09-19 17:13:34 -04:00
toasted-nutbread
2f4adbab2c
Handlebars sandbox (#612)
* Set up template renderer proxy

* Use proxy

* Remove unused handlebars script tags

* Update manifest
2020-09-18 21:16:39 -04:00
toasted-nutbread
ad8e9fe8e2
Add missing null check (#836) 2020-09-17 20:22:29 -04:00
toasted-nutbread
613252e320
Remove unused handlebars script (#833) 2020-09-15 20:07:44 -04:00
toasted-nutbread
79ef6e151e
Cleanup unused utils (#832)
* Remove api.optionsSave

* Remove getOptionsMutable and getOptionsFullMutable

* Remove util.js

* Remove yomichanBackend
2020-09-15 19:48:58 -04:00
toasted-nutbread
f997f01742
Dictionary controller refactor (#831)
* Create new DictionaryController

* Update input disabling when modifying the database
2020-09-15 19:35:44 -04:00
toasted-nutbread
8d28477562
Fix default options missing profiles (#829)
* Add minItems requirement for profiles array

* Use minItems/maxItems for default value construction
2020-09-13 19:59:02 -04:00
toasted-nutbread
5ec5d0c91c
Database change event (#826)
* Add api.triggerDatabaseUpdated and yomichan.on('databaseUpdated')

* Update databaseUpdated event usage
2020-09-13 18:43:44 -04:00
toasted-nutbread
8b033a1650
Profile controller refactor (#825)
* Add refresh function

* Create new ProfileController class
2020-09-13 18:42:37 -04:00
toasted-nutbread
d7c3c87d99
Mouse button modifier update (#824)
* Ensure buttons is positive before adding to set

* Break early when there are no flags remaining
2020-09-13 13:43:38 -04:00
toasted-nutbread
621aa354e7
Add scan dictionary type filters (#822)
* Add options for searchTerms and searchKanji

* Add settings HTML

* Add options to TextScanner

* Update _search/_findDefinitions to include searchTerms/searchKanji args

* Update _searchAtFromMouseMove args

* Change argument structure for _searchAt

* Use scanning options for searchTerms and searchKanji
2020-09-13 13:25:03 -04:00
toasted-nutbread
b180ebc3bc
Settings upgrade and schema fixes (#823)
* Add missing defaults

* Always include touch input during upgrade
2020-09-13 13:16:56 -04:00
toasted-nutbread
a12c4a1dd7
Add workaround for Firefox bug not detecting pen input type correctly (#821) 2020-09-13 11:58:07 -04:00
toasted-nutbread
5b49cf4398
Pointer events support (#819)
* Add option pointerEventsEnabled

* Add _pointerEventsEnabled option to TextScanner

* Add additional options

* Mouse pointer events

* Touch pointer events

* Pen pointer events
2020-09-13 11:33:10 -04:00
toasted-nutbread
efd0de6bc0
Add workaround for Firefox bug not detecting pen input type correctly (#820) 2020-09-13 11:28:13 -04:00
toasted-nutbread
fcb8806717
Fix location of _enabled assignment (#818) 2020-09-12 19:42:09 -04:00
toasted-nutbread
9f1753a565
Update TextScanner.setEnabled to not reset state if unnecessary (#817) 2020-09-12 19:36:51 -04:00
toasted-nutbread
c98aa9ad47
More scanning options (#815)
* Reorganize options

* Add advanced options

* Add a setting transform 'setRelativeAttribute'

* Add advanced options to HTML/CSS
2020-09-12 13:20:02 -04:00
toasted-nutbread
41db9ec89b
Use a grid layout for scanning inputs (#814) 2020-09-12 11:22:17 -04:00
toasted-nutbread
568775c6dc
Text scanner cause update (#813)
* Rename _searchAtFromMouse to _searchAtFromMouseMove

* Rename cause 'mouse' to 'mouseMove' for clarity
2020-09-11 22:46:41 -04:00
toasted-nutbread
e56674e4ee
Text scanner refactoring (#812)
* Add functions _onPrimaryTouchStart and _onPrimaryTouchEnd

* Add "type" to input details
2020-09-11 20:24:51 -04:00
toasted-nutbread
6e7b9fcf99
Clear state when refreshing enabled state (#811) 2020-09-11 18:44:53 -04:00
toasted-nutbread
a5845df123
Add support for pointer event input detection (#810) 2020-09-11 16:57:57 -04:00
toasted-nutbread
6afbda8dfe
Settings scanning refactor (#809)
* Move option for scanning.touchInputEnabled, make advanced

* Rename
2020-09-11 16:14:32 -04:00
toasted-nutbread
0c2f0aa4eb
Fix adding new scanning inputs not working (#808) 2020-09-11 16:03:46 -04:00
toasted-nutbread
f168efb69c
OptionsUtil refactor / options default values (#807)
* Replace _readFile with _fetchAsset for consistency with Backend

* Fix error messages

* Make OptionsUtil non-static

* Update how default options are assigned

* Add createValidatingProxy

* Add validate, update _onApiSetAllSettings

* Remove unused api.optionsSchemaGet

* Remove Backend._optionsSchema

* Update OptionsUtil to create its own JsonSchemaValidator

* Rename Backend._optionsSchemaValidator

* Make getDefault non-async
2020-09-11 14:15:08 -04:00
toasted-nutbread
a1729eb9ae
Input type filters (#806)
* Add options for scanning input types

* Move buttons in layout, refactor CSS

* Add options for input types

* Use input type filters

* Add _getMatchingInputGroupFromEvent

* Use input filters for touch events
2020-09-11 14:13:52 -04:00
toasted-nutbread
18634dca1a
Fix scanning inputs upgrade using the wrong format (#805) 2020-09-11 00:29:38 -04:00
toasted-nutbread
a531618c48
Use Anki classes directly in Display (#804)
* Add _getTemplates function

* Add template renderer to display pages

* Add AnkiNoteBuilder to Display

* Update AnkiTemplatesController to directly use TemplateRenderer

* Remove old APIs
2020-09-10 18:03:46 -04:00
toasted-nutbread
9ce682272c
Add api.injectAnkiNoteMedia (#803) 2020-09-10 16:18:36 -04:00
toasted-nutbread
892f7ed3b8
Anki note api functions (#802)
* Assign duplicateScope to a variable

* Add api.addAnkiNote

* Add api.getAnkiNoteInfo, update returned data format
2020-09-10 16:05:17 -04:00
toasted-nutbread
3dd4822ab3
Anki note media injection move (#801)
* Move anki note media injection functionality into Backend

* Add marker/mode checks

* Remove media injection from AnkiNoteBuilder
2020-09-10 15:04:54 -04:00
toasted-nutbread
52b0feb255
Move TextToSpeechAudio to a separate file (#800) 2020-09-10 12:06:56 -04:00
toasted-nutbread
35abd517b9
AudioUriBuilder simplification (#799)
* Rename variables to disambiguate

* Update handler argument convention

* Update getUri argument convention

* Change _getAudioUri argument convention

* Change getDefinitionAudio argument convention

* Add api.getDefinitionAudio definition
2020-09-10 11:57:38 -04:00
toasted-nutbread
17ebe6a754
Create abstraction class for parsing DOM (#798) 2020-09-10 11:30:01 -04:00
toasted-nutbread
58e5ddfde0
Generalize AnkiNoteBuilder to not use audioSystem directly (#796) 2020-09-09 21:07:18 -04:00
toasted-nutbread
5d2261acb9
Update the AnkiController class to use an instance of AnkiConnect directly (#795)
* Update AnkiController to use AnkiConnect instance directly

* Remove unused
2020-09-09 17:46:34 -04:00
toasted-nutbread
8408bee90a
Settings controller file renaming (#794)
* Rename SettingsBackup to BackupController

* Rename files to more closely match classes

* Improve organization of script imports
2020-09-09 17:37:58 -04:00
toasted-nutbread
0d00f7e1cf
Scanning input generalization (#789)
* Add inputs to options.scanning

* Update CSS for mouse buttons

* Update list counters

* Set up HTML/CSS

* Add input controller

* Use new inputs

* Include mouse buttons

* Update how button inputs are detected

* Add index/empty fields to the input details object

* Update none check for scanning modifier

* Remove old settings

* Remove unused global
2020-09-09 16:59:03 -04:00
toasted-nutbread
acb7ad32f3
Anki media injection move (#793)
* Update AnkiNoteBuilder to not store a reference to an AniConnect instance

* Use more consistent details format

* Organize options assignment

* Move media injection

* Inject images before injecting audio

* Make functions private

* Make static functions private
2020-09-09 16:57:35 -04:00
toasted-nutbread
c0a6849f98
Use common function for data URL mediatype/data extraction (#792) 2020-09-09 13:10:51 -04:00
toasted-nutbread
e3a7678769
Anki screenshot refactor (#791)
* Use more consistent style for injectScreenshot

* Move screenshot generation into AnkiNoteBuilder/Backend

* Get optionsContext before await
2020-09-09 12:54:59 -04:00
toasted-nutbread
2aa86cc5f8
Anki API refactor (#790)
* Add function guiBrowseNote

* Assign default server as null

* Use get/set properties for server/enabled

* Refactor option values

* Refactor createNote/Data functions to not use options format directly

* Use createNote for testing

* Add errors
2020-09-09 11:54:40 -04:00
toasted-nutbread
b687870a55
Delay hide option (#774)
* Add hideDelay option

* Add _clearSelection

* Use hideDelay

* Prevent repeated delayed selection clears

* Fix popup hide timer being cleared when the cursor is moved into the frame
2020-09-08 19:40:15 -04:00
toasted-nutbread
ab4dbacc4c
Move assignment of the operating system property (#786) 2020-09-08 19:36:15 -04:00
toasted-nutbread
46af4c9da4
Text scanner fixes and refactoring (#788)
* Fix incorrect argument being passed

* Clear causeCurrent

* Change cause string to a more general input object
2020-09-08 19:23:32 -04:00
toasted-nutbread
c1b16cebe7
Refactor how TextScanner's public search() function is used (#787) 2020-09-08 18:52:23 -04:00
toasted-nutbread
5af3c680e4
Fix modifier keys not being spread (#785) 2020-09-08 12:39:51 -04:00
toasted-nutbread
f7093b4c1a
Anki note clipboard marker (#780)
* Update fields reference

* Add support for adding clipboard images to anki notes

* Add handlebars templates

* Add markers

* Add markers to readme
2020-09-08 11:01:08 -04:00
toasted-nutbread
36fc5abae5
Modifier key refactor (#784)
* Add functions for getting keyboard key information

* Use os + DocumentUtil to get modifier key names

* Remove keyboard modifier info from environment info
2020-09-08 10:53:41 -04:00
toasted-nutbread
0a5e832dfd
Mouse inputs (#783)
* Add mouse icon

* Add _updateModifiers

* Add support for mouse button modifiers

* Improve names of mouse inputs

* Improve mouse input sorting

* Rename getModifierKeyStrings to getModifierInputStrings

* Refactor keyboard/mouse inputs into KeyboardMouseInputField
2020-09-07 20:12:43 -04:00
toasted-nutbread
59559fc560
Profile conditions fixes and improvements (#782)
* Fix operator changes

* Fix default value not changing during type change

* Fix incorrect display value being assigned

* Refactor _updateValueInput
2020-09-07 13:22:34 -04:00
toasted-nutbread
7a59ca2926
Update the functions for upgrading anki templates to be more reusable (#779) 2020-09-06 14:39:18 -04:00
toasted-nutbread
115afb63b9
Add api.clipboardGetImage (#778)
* Rename clipboardPasteTarget to just target

* Remove else block

* Add helper functions

* Defer assignment of clipboard paste target

* Add api.clipboardGetImage
2020-09-06 14:38:03 -04:00
toasted-nutbread
b28241dbf2
Fix error handling for screenshot captures (#777) 2020-09-06 14:36:43 -04:00
toasted-nutbread
44f38c4dea
Popup window (#773)
* Add option usePopupWindow

* Add PopupWindow class

* Add support for creating PopupWindow
2020-09-05 22:03:35 -04:00