Commit Graph

734 Commits

Author SHA1 Message Date
Henrik Giesel
862905c58a Fix typing issues 2021-05-07 02:03:55 +02:00
Henrik Giesel
9c1936698c Set tooltip for buttons correctly 2021-05-07 02:03:55 +02:00
Henrik Giesel
0371405c23 Use ButtonGroupItem for all buttons in editor 2021-05-07 02:03:55 +02:00
Henrik Giesel
e1cc22b9ee Add hiding functionality in ButtonGroup 2021-05-07 02:03:55 +02:00
Henrik Giesel
26f85a0f9d Add API for adding new buttons, updating existing ones in ButtonGroup 2021-05-07 02:03:55 +02:00
Henrik Giesel
413ac6cf63 Fix issue with dropdowns 2021-05-07 02:03:55 +02:00
Henrik Giesel
c1adebf2da Add .dropdown-menu class to DropdownMenu 2021-05-07 02:03:55 +02:00
Henrik Giesel
9d9df2a04b Add back ColorButtons 2021-05-07 02:03:55 +02:00
Henrik Giesel
bd31a19852 Activate FormatBlockButtons 2021-05-07 02:03:55 +02:00
Henrik Giesel
baff3df381 Add all format inline buttons 2021-05-07 02:03:55 +02:00
Henrik Giesel
982c85ded6 Export module functions from EditorToolbar 2021-05-07 02:03:55 +02:00
Henrik Giesel
0baf14dc8b Refactor {CommandIcon,Icon,Square}Button into IconButton and WithState 2021-05-07 02:03:55 +02:00
Henrik Giesel
2f5074bff6 Make StickyBar flex 2021-05-07 02:03:55 +02:00
Henrik Giesel
8aa3f5f2fa Translate ts files in ts/editor to svelte files 2021-05-07 02:03:55 +02:00
Henrik Giesel
47b1cfe804 Rename editor-toolbar to components 2021-05-07 02:03:55 +02:00
Henrik Giesel
59876439e7 Add StickyBar.svelte WithTheming.svelte 2021-05-07 02:03:55 +02:00
Henrik Giesel
4736b1ce1c Move Notetype buttons to using slots instead of dynamic components 2021-05-07 02:03:55 +02:00
Henrik Giesel
6d6c798ca3 Simplify structure of EditorToolbar and ButtonGroup in editor HTML file 2021-05-07 02:03:55 +02:00
Damien Elmes
af2c7c0744 fix missing keyboard modifier translations on Linux/Windows
https://forums.ankiweb.net/t/card-browser-hotkeys-semi-broken/9815
2021-05-07 09:30:06 +10:00
Henrik Giesel
268adf1d03 Move EditorToolbar API into EditorToolbar.svelte 2021-04-25 19:15:00 +02:00
Henrik Giesel
f5fba15435 Initialize editor toolbar via function, not web component 2021-04-25 18:32:01 +02:00
Henrik Giesel
53bb8c7b28 Add addMenu and updateMenu, avoid using {buttons,menus}Promise outside of class 2021-04-24 01:08:55 +02:00
Henrik Giesel
9f7a187d4a Add mostly working addcards topbar 2021-04-24 00:00:32 +02:00
Henrik Giesel
6ae368ebac Reduce typing overhead in ts/editor-toolbar/index.ts and export buttonGroup 2021-04-23 19:05:43 +02:00
Henrik Giesel
bda99ee0f1 Add IterableToolbarItem interface for easier typing 2021-04-23 18:53:52 +02:00
Henrik Giesel
4379f1e84f Make dynamicComponents usable for addons, rather than the components directly
rawButton({ html: ... })

instead of

{ component: RawButton, html: ... }
2021-04-23 16:43:36 +02:00
Damien Elmes
00f170dddc update remaining anki/ references 2021-04-23 10:16:40 +10:00
Henrik Giesel
1d72599a37 Rename anki/ to lib/ for export
import _ from "anki/x";

will become

import _ from "lib/x";

to fit the directory name.
2021-04-23 10:02:28 +10:00
Henrik Giesel
5197e3b779 Prefer optionalModifiers over register multiple shortcuts 2021-04-22 18:15:25 +02:00
Henrik Giesel
31e4b79ff4 Add optionalModifiers parameter to registerShortcut 2021-04-22 17:28:38 +02:00
Henrik Giesel
f6ef4d43cb Use registerShortcut in inputHandlers + Avoid focus on color picker 2021-04-22 15:09:09 +02:00
Henrik Giesel
47809f6230 Add shortcut labels for ColorPicker and Latex items 2021-04-22 14:35:44 +02:00
Henrik Giesel
3cf7db8557 Add better better shortcutLabel support for buttons 2021-04-22 14:18:48 +02:00
Henrik Giesel
4a264cd8b7 Add editing fluent strings without attached keyboard shortcuts 2021-04-22 13:38:37 +02:00
Henrik Giesel
2109b67caf Move up cloze id 2021-04-22 03:37:01 +02:00
Henrik Giesel
d2ca94a29d Move other buttons to WithShortcut 2021-04-22 03:25:31 +02:00
Henrik Giesel
85f89dc111 Add first shortcuts for bold, italic, underline, removeFormat 2021-04-22 02:37:04 +02:00
Henrik Giesel
74fb75c5c4 Fix isBlockElement() 2021-04-21 14:40:16 +02:00
Henrik Giesel
1f97f5208e Remove paragraph button 2021-04-21 14:36:24 +02:00
Henrik Giesel
64db04f1bb Prefer exec over matchAll 2021-04-21 14:18:44 +02:00
Henrik Giesel
72b33bf361 Gather editor-toolbar svelte components into filegroup 2021-04-21 13:18:31 +02:00
Henrik Giesel
488fb1af85 Add copyright headers 2021-04-20 15:43:59 +02:00
Henrik Giesel
66b3096926 Remove last ts-expect-error 2021-04-20 15:41:26 +02:00
Henrik Giesel
731f9d109f Move toolbar initialization into toolbar.ts 2021-04-20 15:32:02 +02:00
Henrik Giesel
37ea39f779 Move dynamic component initialization logic from editor to editor-toolbar 2021-04-20 14:23:28 +02:00
Henrik Giesel
dcb6a11053 Improve behavior of paragraph command and add tooltip 2021-04-20 13:46:01 +02:00
Henrik Giesel
893028b2df Make indent outdent only work for list items
+ make paragraph show its active state
2021-04-20 13:44:44 +02:00
Henrik Giesel
9803bb19ca Move button implementations from editor-toolbar to editor 2021-04-20 13:44:44 +02:00
Henrik Giesel
b1de095162 Include editor-toolbar as a library in editor 2021-04-20 13:44:44 +02:00
Henrik Giesel
e60e784152 Generalize commandIconButton functionality of setting active state 2021-04-20 13:44:44 +02:00
Henrik Giesel
5bc8385f8b Don't use <br>s when inside of paragraph 2021-04-20 13:44:44 +02:00
Henrik Giesel
83d5d72777 Generalize inListItem to getAnchorElement 2021-04-20 13:44:43 +02:00
Henrik Giesel
cd33e1b05f Add CSS for making empty paragraph elements visible 2021-04-20 13:44:43 +02:00
Henrik Giesel
304a7f2f77 Make fields square again
This was an experiment, to adjust the field border-radius to the
buttons, but I think it looks cleaner if the fields are square
2021-04-15 16:44:07 +02:00
Henrik Giesel
9f740f307d Switch from core to base CSS for editor view 2021-04-15 13:09:50 +02:00
Henrik Giesel
28201670ee Move enabled/disabled logic to EditorToolbar 2021-04-15 13:09:50 +02:00
Henrik Giesel
a820059b8f Utilize enableButtons disableButtons from Svelte component 2021-04-15 13:09:49 +02:00
Henrik Giesel
bf433f13be Simplify General Toolbar structure 2021-04-15 13:09:49 +02:00
Henrik Giesel
7787a7827f First implementation 2021-04-15 13:09:48 +02:00
Damien Elmes
7f738c11a2 deck config prototype work in progress
Still in the early stages, and not hooked up yet.
2021-04-14 22:33:10 +10:00
Henrik Giesel
cfb9ed267f Create explicit dependencies for the congrats,editor,graphs scss files 2021-04-13 19:47:03 +02:00
Henrik Giesel
fee6ee7319 Do not include webview.css for editor 2021-04-13 19:47:03 +02:00
Damien Elmes
e520e8df02 add missing copyright headers to *.ts 2021-04-13 18:57:08 +10:00
Damien Elmes
4975f47ea3 update to latest esbuild 2021-04-07 14:54:40 +10:00
Damien Elmes
ddcb2adf71 add docstring to forEditorField 2021-03-29 18:13:45 +10:00
Damien Elmes
0e4bcbd69b
Merge pull request #1101 from Arthur-Milchior/TS_type
NF: add type ts
2021-03-29 18:09:56 +10:00
Damien Elmes
f1780e6e24 move loader arg into esbuild() invocation
upstream.bzl should be kept as close to upstream as possible, so that
it's easier to send changes upstream and pull in future changes
2021-03-29 17:59:06 +10:00
Arthur Milchior
a114f36b4c NF: add type ts 2021-03-28 23:59:16 +02:00
Henrik Giesel
922ee56ce8 Add copy_bootstrap_icons macro 2021-03-28 18:50:37 +02:00
Henrik Giesel
7dcb3ae678 Include pin-angle icon via inline SVG 2021-03-28 16:15:30 +02:00
Damien Elmes
dbfbcc36c6 define file extension in .d.ts so typescript doesn't complain 2021-03-28 16:15:28 +02:00
Henrik Giesel
3a44ffe2bb Unsuccessfully try to add text loader for .svg files 2021-03-28 16:14:52 +02:00
Henrik Giesel
05ea624f85 Utilize ts/tsconfig.js from ts/{editor,html-filter} 2021-03-28 19:41:20 +10:00
Henrik Giesel
fb9461508e No need to explicitly import from index 2021-03-28 19:41:20 +10:00
Henrik Giesel
519aea2ea8 Move html-filter into its own directory 2021-03-28 19:41:20 +10:00
Henrik Giesel
730dfdd527 Insert break statements into switch 2021-03-28 19:41:20 +10:00
Henrik Giesel
39aa549ac9 Create htmlFilter{Node,Styling} for better separation of concerns 2021-03-28 19:41:20 +10:00
Henrik Giesel
d3d3720b39 Put filterElement logic completely into its own file 2021-03-28 19:41:20 +10:00
Henrik Giesel
1d4d7fabec Move most of tags allowed to its own file 2021-03-28 19:41:20 +10:00
Henrik Giesel
592d73c344 Refactor htmlFilter to use function declarations 2021-03-28 19:41:20 +10:00
Damien Elmes
76127126a6 use relative link to sass file
links relative to workspace root break when invoked from an external
repo
2021-03-28 12:37:21 +10:00
Damien Elmes
a581c082f6 switch from rollup to esbuild
brings the 2+ second bundle on a module like the graphs down to 90ms
2021-03-21 16:06:36 +10:00
Henrik Giesel
76102db2a9 Fix bug with initially enabled toolbar in browser 2021-03-10 19:28:08 +01:00
Henrik Giesel
2905881dcf Fix another import 2021-03-09 14:02:41 +01:00
Henrik Giesel
475b1968d0 Fix reversed sticky icon logic 2021-03-09 13:44:06 +01:00
Henrik Giesel
acb912697e Satisfy formatter 2021-03-09 13:43:11 +01:00
Henrik Giesel
b5362e99c0 Change to pin icon 2021-03-09 13:43:11 +01:00
Henrik Giesel
9e557bb0c1 Switch to bi-sticky icons, toggle opacity for state indiciation 2021-03-09 13:43:11 +01:00
Henrik Giesel
25d7d80e20 Switch back to pin icons, use fill/unfilled versions 2021-03-09 13:43:11 +01:00
Henrik Giesel
fee4667e32 Place sticky icons at the far right end of the labelContainer 2021-03-09 13:43:11 +01:00
Henrik Giesel
cd26901f3d Make sure topleft buttons are rounded too, prefer Bootstrap's rounded class 2021-03-09 13:43:11 +01:00
Henrik Giesel
da0317cb85 Replace pin icon with lock icon
Credit goes out to @kleinerpirat
2021-03-09 13:43:11 +01:00
Henrik Giesel
29742122d2 Remove button highlight on disabling button (i.e. blur) 2021-03-09 13:43:09 +01:00
Henrik Giesel
a8bde2d13c Remove "true" return value from event handler
* this does not change any semantics
2021-03-09 13:41:39 +01:00
Henrik Giesel
2f46c69ed6 Separate index.ts into editable/editingArea/editorField/labelContainer.ts 2021-03-09 13:40:47 +01:00
Henrik Giesel
8593ab3c4c Connect icons to sticky fields values 2021-03-09 13:37:56 +01:00
Henrik Giesel
d1bca9e4d9 Add visual elements for pinned fields 2021-03-09 13:37:56 +01:00
Henrik Giesel
fb5763afb6 Change font-size in topbar buttons
Bootstrap sets font-size to inherit, so it's not inherited from top.
Before, it defaulted to 13, so this should prevent add-ons, which
feature text in their buttons (like <select> buttons).
2021-03-09 13:37:56 +01:00
Henrik Giesel
a66b0fbd84 Fix positioning of buttons 2021-03-09 13:37:56 +01:00
Henrik Giesel
81d1f2906a Fix highlight for topright buttons 2021-03-09 13:37:56 +01:00
Henrik Giesel
037539dbf4 Remove field margins
* Bootstrap solves it more elegantly with line-height
* body { margin: 0 } is also defined by bootstrap
2021-03-09 13:37:56 +01:00
Henrik Giesel
f2cc85a3bc Include bootstrap in editor 2021-03-09 13:37:56 +01:00
Damien Elmes
7aac1b08d2
Merge pull request #1062 from abdnh/strip-html-comments
Strip HTML comments from external pastes
2021-03-09 11:55:59 +10:00
Damien Elmes
d3fa8621cb
Merge pull request #1060 from hgiesel/focusplus
Fix focus handling by moving caretToEnd logic
2021-03-09 11:53:09 +10:00
abdo
7673a52a02 Strip HTML comments from external pastes
Fix a regression caused by 150de7a683
2021-03-09 03:15:08 +03:00
Henrik Giesel
76260c3f8d Satisfy formatter 2021-03-08 20:55:04 +01:00
Henrik Giesel
972993b42e Move caretToEnd logic out of focus handling 2021-03-08 20:40:23 +01:00
Henrik Giesel
6db7897601 Improve focus handling
* Ported from #1046:

* disabling buttons will clear button highlight
* enabling button will set button highlight
* move caret to end executed before enabling buttons (so button highlight will be for actual position of caret)
* move caret to end will also be executed if previousActiveElement is null, which will only be the case before the first onBlur was executed:
  * so that caret will be moved to end on opening editor
2021-03-08 14:20:06 +01:00
abdo
79dcfc84be Fix editor RTL check 2021-03-07 18:12:42 +03:00
Henrik Giesel
aa3ba38392 Do not execute caretToEnd when Alt-tabbing back to application 2021-03-06 17:57:04 +01:00
Henrik Giesel
e36a9c78e3 Fix focus handling when coming from top left buttons 2021-03-01 12:28:45 +01:00
Damien Elmes
c9992e395f
Merge pull request #1038 from hgiesel/imgmaxwidth
Fix scrollbar issue in anki-editable component in two ways
2021-02-24 10:16:12 +10:00
Henrik Giesel
8aa8174d4b Fix scrollbar issue in anki-editable component in two ways
- using :host-context(.nightMode) allows for applying the nightmode
  scroll bar inside the component
- apply max-width: 100% to all element within editable, not just images
2021-02-23 15:52:20 +01:00
Henrik Giesel
9383002b0e Satisfy formatter 2021-02-23 13:34:41 +01:00
Henrik Giesel
5bb90aa8a5 Remove logic for pulling editor field in view 2021-02-23 12:55:04 +01:00
Henrik Giesel
b98ddaafaa Increase the padding in the editable to 6px 2021-02-16 18:40:58 +01:00
Henrik Giesel
cfa44025a8 Add max-width: 100% to editable.scss 2021-02-16 18:28:40 +01:00
Damien Elmes
678a049d0e add missing license headers 2021-02-09 13:38:04 +10:00
Henrik Giesel
ee194e951c Rework focusing code to fix two issues:
1. Clicking away from the editor window, and back on it should not focus old field
2. Clicking on a field, which is not fully visible, should scroll it into view
2021-02-09 01:09:16 +01:00
Henrik Giesel
b56b3fd74a Use mouseup intead of click for updateButtonState 2021-02-08 22:18:06 +01:00
Henrik Giesel
a90931b91e Refactor wrap code 2021-02-08 22:13:49 +01:00
Henrik Giesel
d10383ea9d Give toolbar items a bottom margin to separate the rows when they wrap 2021-02-08 21:26:37 +01:00
Henrik Giesel
61c4ef40de Put wrapping code into its own file 2021-02-08 21:02:46 +01:00
Henrik Giesel
a19bc2d012 updateButtonState on clicking editor field 2021-02-08 20:49:33 +01:00
Henrik Giesel
bc7a1d12cd Export saveNow 2021-02-08 20:28:02 +01:00
Henrik Giesel
934a9bd24b Split up index.ts into several more files
This is to provide minimal closures for the mutable file-local variables:
- changeTimer
- previousActiveElement
- currentNoteId

This makes it clear, that they should not be used, but rather the
functions which wrap them in an API
2021-02-08 19:48:42 +01:00
Henrik Giesel
ef14000afd Avoid making currentField a global 2021-02-08 17:00:27 +01:00
Henrik Giesel
2637a4955b Export current field for editor 2021-02-08 15:44:56 +01:00
Henrik Giesel
409eaa85fe Remove usage of window.event in onPaste 2021-02-05 13:42:49 +01:00
Henrik Giesel
2130434899 Remove dead code kept for compatibility 2021-02-05 13:41:35 +01:00
Henrik Giesel
48b276cacc Export getEditorField and forEditorField 2021-01-31 20:56:28 +01:00
Henrik Giesel
df1b6976eb Turn off eslint check for now 2021-01-31 20:55:36 +01:00
Henrik Giesel
70b7cbcd4a Move editor css to editor directory 2021-01-31 19:03:40 +01:00
Henrik Giesel
2ab06a6540 Move editor to /ts/editor 2021-01-31 14:15:03 +01:00