Commit Graph

502 Commits

Author SHA1 Message Date
Damien Elmes
4da1c77220 add basic tag completion to backend
Matches should arrive in alphabetical order. Currently results are not
capped (JS should be able to handle ~1k tags without too much hassle),
and no reordering based on match location is done. Matches are substring
based, and multiple can be provided, eg "foo::bar" will match
"foof::baz::abbar".

This is not hooked up properly on the frontend at the moment -
updateSuggestions() seems to be missing the most recently typed character,
and is not updating the list of completions half the time.
2021-09-09 15:38:08 +02:00
Henrik Giesel
c5d507461a Decrease tag margins 2021-09-09 15:38:08 +02:00
Henrik Giesel
fc09212365 Add bottom padding to selected tag badge as well 2021-09-09 15:38:07 +02:00
Henrik Giesel
b628e9df75 Use new style highlight for selected tags 2021-09-09 15:38:07 +02:00
Henrik Giesel
9d73e928a6 Add slight padding around add tag icon 2021-09-09 15:38:07 +02:00
Henrik Giesel
088420dff2 Add a zero-width tag to prevent resizing when adding tag 2021-09-09 15:38:06 +02:00
Henrik Giesel
5156ed62c3 Un-reverse TagEditor autocompletion navigation 2021-09-09 15:38:06 +02:00
Henrik Giesel
b8a5b5d685 Decrease padding of AutocompleteItem 2021-09-09 15:38:06 +02:00
Henrik Giesel
f79e2aca92 Adjust border radius of tags to fit new fields 2021-09-09 15:38:05 +02:00
Henrik Giesel
96cbca8fb6 Update to use shortened SCSS paths for some components 2021-09-09 15:38:05 +02:00
Henrik Giesel
8ee6ccf853 Rename tagEditor tag-editor.ts 2021-09-09 15:38:04 +02:00
Henrik Giesel
8bcb0635ba Fix eslint 2021-09-09 15:38:02 +02:00
Henrik Giesel
ef539bcb37 Fix colon insertion behavior 2021-09-09 15:38:02 +02:00
Henrik Giesel
85691fada2 Replace delim char with colons on copying tags 2021-09-09 15:38:02 +02:00
Henrik Giesel
46e607a777 Fix TagSpacer 2021-09-09 15:38:01 +02:00
Henrik Giesel
04b75859cc Implement nowrap mode 2021-09-09 15:38:01 +02:00
Henrik Giesel
28b1c09cda Implement TagWithTooltip 2021-09-09 15:38:00 +02:00
Henrik Giesel
3de1d6e604 Use Unicode delimiter character 2021-09-09 15:38:00 +02:00
Henrik Giesel
6ccf75a077 Improve space behavior 2021-09-09 15:37:59 +02:00
Henrik Giesel
ab429ec413 Improve enter behavior 2021-09-09 15:37:59 +02:00
Henrik Giesel
5f1bcb691e Split when no autocomplete item is selected 2021-09-09 15:37:59 +02:00
Henrik Giesel
a27720d703 Add tag shorting behavior 2021-09-09 15:37:58 +02:00
Henrik Giesel
ffb1f3bff2 Space out Sticky Bottom with Spacer component 2021-09-09 15:37:58 +02:00
Henrik Giesel
821c65d4ad Deselect on clicking delete icon 2021-09-09 15:37:58 +02:00
Henrik Giesel
6e53ea8a6d Add small horizontal margin so selected highlight can show 2021-09-09 15:37:57 +02:00
Henrik Giesel
6d21c16250 Add select all shortcut
+ Remove addEventListener for Ctrl+C/V/A
  It seems like they're really not necessary
2021-09-09 15:37:57 +02:00
Henrik Giesel
d15d6d1584 Improve positioning of tag editor badges 2021-09-09 15:37:56 +02:00
Henrik Giesel
16e6da893b Fix after rebase 2021-09-09 15:37:56 +02:00
Henrik Giesel
5a988f72fa Improve paste behavior 2021-09-09 15:37:55 +02:00
Henrik Giesel
cdc4fd0ef8 Do not update/activate Autocomplete on Control+C,A,V 2021-09-09 15:37:55 +02:00
Henrik Giesel
63dc42cff6 Do not open autocomplete on clicking input 2021-09-09 15:37:55 +02:00
Henrik Giesel
95806c5176 Allow clicking on suggestion items 2021-09-09 15:37:54 +02:00
Henrik Giesel
2dff6cf4be Pass activeName to Tag as well 2021-09-09 15:37:54 +02:00
Henrik Giesel
9499bc1505 Adjust position so tags do not even move a single pixel when going into editing 2021-09-09 15:37:54 +02:00
Henrik Giesel
6642a11482 Adjust paddings a bit more 2021-09-09 15:37:54 +02:00
Henrik Giesel
f2cd23ff22 Center delete icon without padding/margin 2021-09-09 15:37:53 +02:00
Henrik Giesel
201773e7c6 Fix autocomplete dropdown
+ find a different solution for making tags and tag inputs same size
2021-09-09 15:37:53 +02:00
Henrik Giesel
3dff89fda5 Switch WithAutocomplete to WithDropdown and fix SelectedTagBadge 2021-09-09 15:37:53 +02:00
Henrik Giesel
874a315f83 Add SelectedTagBadge to offer context items for selected tags 2021-09-09 15:37:53 +02:00
Henrik Giesel
00de99880b Implement selectRange 2021-09-09 15:37:52 +02:00
Henrik Giesel
376f543680 Make automatic deselect when leaving tag editor 2021-09-09 15:37:52 +02:00
Henrik Giesel
080b80e3ce Make tags selectable 2021-09-09 15:37:52 +02:00
Henrik Giesel
0ff0e87dbc Implement controlPressed and shiftPressed 2021-09-09 15:37:52 +02:00
Henrik Giesel
5c2911c053 First steps toward tag selection 2021-09-09 15:37:51 +02:00
Henrik Giesel
d3191d7ecb Implement autocomplete hiding on empty activeInput + remove logging 2021-09-09 15:37:51 +02:00
Henrik Giesel
392326b863 Fix behavior when autocompletion shows 2021-09-09 15:37:51 +02:00
Henrik Giesel
54c1f54ab0 Fix join behavior and exclude Backspace/Delete from printable character 2021-09-09 15:37:51 +02:00
Henrik Giesel
e876a374e2 Disable toggle on clicking element (toggle) for WithAutocomplete 2021-09-09 15:37:51 +02:00
Henrik Giesel
bb166392b1 Improve no reflow a little bit 2021-09-09 15:37:51 +02:00
Henrik Giesel
85567fddd9 Fix autocomplete showing on arrow keys and height resize on no tags 2021-09-09 15:37:50 +02:00
Henrik Giesel
a29d21f4fd Implement accepting suggestions via Enter 2021-09-09 15:37:50 +02:00
Henrik Giesel
b93646209a Introduce AutocompleteItem
* needs too much custom styling / behavior to be done with DropdownItem
2021-09-09 15:37:50 +02:00
Henrik Giesel
b2d2cb8715 suggestions -> suggestionsPromise, so it works with external APIs 2021-09-09 15:37:50 +02:00
Henrik Giesel
a515a9899b Don't allow Enter/Tab/Arrows for Autocomplete, if not active
Don't show Autocomplete, if there are no items available
2021-09-09 15:37:49 +02:00
Henrik Giesel
bbef2ab6b4 Have WithAutocomplete export its API
allows it to be used in more contexts
2021-09-09 15:37:49 +02:00
Henrik Giesel
ed1f19048d Rename TagAutocomplete to WithAutocomplete
It's general enough to be used in other cases too
2021-09-09 15:37:49 +02:00
Henrik Giesel
a9538ce6a7 Improve visuals of Tag component 2021-09-09 15:37:49 +02:00
Henrik Giesel
c48b861596 Save deletions via delete icon to db 2021-09-09 15:37:48 +02:00
Henrik Giesel
5575482e38 Save tags back to Python 2021-09-09 15:37:47 +02:00
Henrik Giesel
375a96e263 Set tags from Python 2021-09-09 15:37:47 +02:00
Henrik Giesel
a034c93eb7 Remove deleteActiveTag, fix appendEmptyTag 2021-09-09 15:37:47 +02:00
Henrik Giesel
39ffaf3427 Fix some deletion behavior 2021-09-09 15:37:47 +02:00
Henrik Giesel
ba64f50593 Make Autocomplete dismount along with TagInput on blur 2021-09-09 15:37:47 +02:00
Henrik Giesel
b4e84e8043 Implement on:autocomplete 2021-09-09 15:37:46 +02:00
Henrik Giesel
146a901d91 Don't highlight suggestion items
Other suggestions menus don't do it either
2021-09-09 15:37:46 +02:00
Henrik Giesel
9fd985760c Fix tagmove 2021-09-09 15:37:46 +02:00
Henrik Giesel
9c388a8b7e Introduce activeName so we can pass it to TagAutocomplete 2021-09-09 15:37:45 +02:00
Henrik Giesel
05d1c51d6b Export choice as autocompletionChoice from TagAutocomplete 2021-09-09 15:37:45 +02:00
Henrik Giesel
2e00dc09d6 Make tagunique a more general tagaccept
* tagaccept includes what was previous done by on:blur
* on:blur in TagInput was in some cases not bubbled up to TagEditor for some reason
2021-09-09 15:37:45 +02:00
Henrik Giesel
68bbc8d25d Use Autocomplete on TagInput again 2021-09-09 15:37:44 +02:00
Henrik Giesel
cda5e44786 Pass original to Autocomplete 2021-09-09 15:37:44 +02:00
Henrik Giesel
547e6f16c6 Fix TagBadge and TagSpacer + shortcut 2021-09-09 15:37:44 +02:00
Henrik Giesel
0acbf3e9eb Export blink as a function, works more reliably 2021-09-09 15:37:43 +02:00
Henrik Giesel
53c0d372f4 Fix behavior when simply entering a duplicate 2021-09-09 15:37:43 +02:00
Henrik Giesel
3857ac07d7 Implement tagsplit 2021-09-09 15:37:43 +02:00
Henrik Giesel
de10e55265 Fix tagjoinnext 2021-09-09 15:37:43 +02:00
Henrik Giesel
1487ed64c7 Fix tagjoinprevious 2021-09-09 15:37:43 +02:00
Henrik Giesel
bfeb419ba6 Fix tagmove 2021-09-09 15:37:42 +02:00
Henrik Giesel
36f455c0ee Fix TagBadge and TagSpacer 2021-09-09 15:37:42 +02:00
Henrik Giesel
96325a4910 Align tagenter tagdelete and tagunique 2021-09-09 15:37:42 +02:00
Henrik Giesel
754e49f9b8 Implement decideAfterBlur and activeAfterBlur 2021-09-09 15:37:42 +02:00
Henrik Giesel
2cdc0b308a Prefer focusing TagInput in onMount 2021-09-09 15:37:41 +02:00
Henrik Giesel
52a705e839 Completely decouple Tag from TagInput 2021-09-09 15:37:41 +02:00
Henrik Giesel
ea1e5b5840 Add .input to Tag interface 2021-09-09 15:37:41 +02:00
Henrik Giesel
e68f874c80 Remove special treatment of last tag 2021-09-09 15:37:41 +02:00
Henrik Giesel
e80e6ff34b Try to remove special handling of last tag / inputNew 2021-09-09 15:37:40 +02:00
Henrik Giesel
15ef6d51b3 Improve behavior when moving towards newInput 2021-09-09 15:37:40 +02:00
Henrik Giesel
796c759333 tagmove should act like tagjoin on empty inputs 2021-09-09 15:37:40 +02:00
Henrik Giesel
bde820569a Fix double delete on empty input 2021-09-09 15:37:40 +02:00
Henrik Giesel
2de2f03db8 Implement blink on duplicate detected 2021-09-09 15:37:39 +02:00
Henrik Giesel
11c6fe880b Add some visual for TagAutocomplete 2021-09-09 15:37:39 +02:00
Henrik Giesel
227c41b525 Minimize reflow upon clicking tag 2021-09-09 15:37:39 +02:00
Henrik Giesel
7696895a8e Implement tagmovenext fully 2021-09-09 15:37:39 +02:00
Henrik Giesel
428655a32f Almost implement tagmove
* tagmovenext will start on the last position rather than first
2021-09-09 15:37:38 +02:00
Henrik Giesel
fe35573308 Reimplement tagjoin with tick() 2021-09-09 15:37:38 +02:00
Henrik Giesel
180ef140f8 Start implemention tagmove 2021-09-09 15:37:38 +02:00
Henrik Giesel
4420a24363 Set caret correctly after tagjoin 2021-09-09 15:37:38 +02:00
Henrik Giesel
65e9a0f2ed Show Autocomplete on keydown, hide on blur 2021-09-09 15:37:38 +02:00
Henrik Giesel
c8ac822971 Adjust padding of TagInput a little 2021-09-09 15:37:37 +02:00
Henrik Giesel
281985480d Fix some WithDropdownMenu logic 2021-09-09 15:37:37 +02:00