allow correcting file transfer data if no files were received
This commit is contained in:
@@ -12,8 +12,10 @@ inoremap <silent> <expr> <Down> coc#pum#visible() ? coc#pum#next(0) : coc#inline
|
|||||||
inoremap <silent> <expr> <C-P> coc#pum#visible() ? coc#pum#prev(1) : coc#inline#visible() ? coc#inline#prev() : "\"
|
inoremap <silent> <expr> <C-P> coc#pum#visible() ? coc#pum#prev(1) : coc#inline#visible() ? coc#inline#prev() : "\"
|
||||||
inoremap <silent> <expr> <C-N> coc#pum#visible() ? coc#pum#next(1) : coc#inline#visible() ? coc#inline#next() : "\"
|
inoremap <silent> <expr> <C-N> coc#pum#visible() ? coc#pum#next(1) : coc#inline#visible() ? coc#inline#next() : "\"
|
||||||
nnoremap :NERDTreeFind
|
nnoremap :NERDTreeFind
|
||||||
|
snoremap <silent> c
|
||||||
nnoremap :NERDTree
|
nnoremap :NERDTree
|
||||||
nmap <Plug>(ctrlp)
|
nmap <Plug>(ctrlp)
|
||||||
|
snoremap "_c
|
||||||
nnoremap :NERDTreeToggle
|
nnoremap :NERDTreeToggle
|
||||||
xmap \T <Plug>(table-mode-tableize-delimiter)
|
xmap \T <Plug>(table-mode-tableize-delimiter)
|
||||||
xmap \tt <Plug>(table-mode-tableize)
|
xmap \tt <Plug>(table-mode-tableize)
|
||||||
@@ -26,6 +28,10 @@ nnoremap \1 :call SN("1")
|
|||||||
nmap \rn <Plug>(coc-rename)
|
nmap \rn <Plug>(coc-rename)
|
||||||
xmap gx <Plug>NetrwBrowseXVis
|
xmap gx <Plug>NetrwBrowseXVis
|
||||||
nmap gx <Plug>NetrwBrowseX
|
nmap gx <Plug>NetrwBrowseX
|
||||||
|
snoremap <C-R> "_c
|
||||||
|
snoremap <silent> <C-H> c
|
||||||
|
snoremap <silent> <Del> c
|
||||||
|
snoremap <silent> <BS> c
|
||||||
nnoremap <silent> <Plug>GitGutterPreviewHunk :call gitgutter#utility#warn('Please change your map <Plug>GitGutterPreviewHunk to <Plug>(GitGutterPreviewHunk)')
|
nnoremap <silent> <Plug>GitGutterPreviewHunk :call gitgutter#utility#warn('Please change your map <Plug>GitGutterPreviewHunk to <Plug>(GitGutterPreviewHunk)')
|
||||||
nnoremap <silent> <Plug>(GitGutterPreviewHunk) :GitGutterPreviewHunk
|
nnoremap <silent> <Plug>(GitGutterPreviewHunk) :GitGutterPreviewHunk
|
||||||
nnoremap <silent> <Plug>GitGutterUndoHunk :call gitgutter#utility#warn('Please change your map <Plug>GitGutterUndoHunk to <Plug>(GitGutterUndoHunk)')
|
nnoremap <silent> <Plug>GitGutterUndoHunk :call gitgutter#utility#warn('Please change your map <Plug>GitGutterUndoHunk to <Plug>(GitGutterUndoHunk)')
|
||||||
@@ -145,7 +151,9 @@ if &shortmess =~ 'A'
|
|||||||
else
|
else
|
||||||
set shortmess=aoO
|
set shortmess=aoO
|
||||||
endif
|
endif
|
||||||
badd +0 src/View/Modals/dataTransferModal.tsx
|
badd +617 src/View/Modals/dataTransferModal.tsx
|
||||||
|
badd +22 src/View/Modals/storageModal.tsx
|
||||||
|
badd +0 src/ViewModel/Global/fileTransferViewModel.ts
|
||||||
argglobal
|
argglobal
|
||||||
%argdel
|
%argdel
|
||||||
edit src/View/Modals/dataTransferModal.tsx
|
edit src/View/Modals/dataTransferModal.tsx
|
||||||
@@ -154,7 +162,10 @@ let s:save_splitright = &splitright
|
|||||||
set splitbelow splitright
|
set splitbelow splitright
|
||||||
wincmd _ | wincmd |
|
wincmd _ | wincmd |
|
||||||
vsplit
|
vsplit
|
||||||
1wincmd h
|
wincmd _ | wincmd |
|
||||||
|
vsplit
|
||||||
|
2wincmd h
|
||||||
|
wincmd w
|
||||||
wincmd w
|
wincmd w
|
||||||
let &splitbelow = s:save_splitbelow
|
let &splitbelow = s:save_splitbelow
|
||||||
let &splitright = s:save_splitright
|
let &splitright = s:save_splitright
|
||||||
@@ -165,11 +176,12 @@ set winminheight=0
|
|||||||
set winheight=1
|
set winheight=1
|
||||||
set winminwidth=0
|
set winminwidth=0
|
||||||
set winwidth=1
|
set winwidth=1
|
||||||
exe 'vert 1resize ' . ((&columns * 31 + 126) / 253)
|
exe 'vert 1resize ' . ((&columns * 31 + 116) / 233)
|
||||||
exe 'vert 2resize ' . ((&columns * 221 + 126) / 253)
|
exe 'vert 2resize ' . ((&columns * 100 + 116) / 233)
|
||||||
|
exe 'vert 3resize ' . ((&columns * 100 + 116) / 233)
|
||||||
argglobal
|
argglobal
|
||||||
enew
|
enew
|
||||||
file NERD_tree_tab_1
|
file NERD_tree_tab_2
|
||||||
balt src/View/Modals/dataTransferModal.tsx
|
balt src/View/Modals/dataTransferModal.tsx
|
||||||
let s:cpo_save=&cpo
|
let s:cpo_save=&cpo
|
||||||
set cpo&vim
|
set cpo&vim
|
||||||
@@ -193,6 +205,14 @@ nnoremap <buffer> <silent> R :call nerdtree#ui_glue#invokeKeyMap("R")
|
|||||||
nnoremap <buffer> <silent> T :call nerdtree#ui_glue#invokeKeyMap("T")
|
nnoremap <buffer> <silent> T :call nerdtree#ui_glue#invokeKeyMap("T")
|
||||||
nnoremap <buffer> <silent> U :call nerdtree#ui_glue#invokeKeyMap("U")
|
nnoremap <buffer> <silent> U :call nerdtree#ui_glue#invokeKeyMap("U")
|
||||||
nnoremap <buffer> <silent> X :call nerdtree#ui_glue#invokeKeyMap("X")
|
nnoremap <buffer> <silent> X :call nerdtree#ui_glue#invokeKeyMap("X")
|
||||||
|
nmap <buffer> [c <Plug>(GitGutterPrevHunk)
|
||||||
|
nmap <buffer> \hp <Plug>(GitGutterPreviewHunk)
|
||||||
|
nmap <buffer> \hu <Plug>(GitGutterUndoHunk)
|
||||||
|
nmap <buffer> \hs <Plug>(GitGutterStageHunk)
|
||||||
|
xmap <buffer> \hs <Plug>(GitGutterStageHunk)
|
||||||
|
nmap <buffer> ]c <Plug>(GitGutterNextHunk)
|
||||||
|
xmap <buffer> ac <Plug>(GitGutterTextObjectOuterVisual)
|
||||||
|
omap <buffer> ac <Plug>(GitGutterTextObjectOuterPending)
|
||||||
nnoremap <buffer> <silent> cd :call nerdtree#ui_glue#invokeKeyMap("cd")
|
nnoremap <buffer> <silent> cd :call nerdtree#ui_glue#invokeKeyMap("cd")
|
||||||
nnoremap <buffer> <silent> e :call nerdtree#ui_glue#invokeKeyMap("e")
|
nnoremap <buffer> <silent> e :call nerdtree#ui_glue#invokeKeyMap("e")
|
||||||
nnoremap <buffer> <silent> f :call nerdtree#ui_glue#invokeKeyMap("f")
|
nnoremap <buffer> <silent> f :call nerdtree#ui_glue#invokeKeyMap("f")
|
||||||
@@ -200,6 +220,8 @@ nnoremap <buffer> <silent> go :call nerdtree#ui_glue#invokeKeyMap("go")
|
|||||||
nnoremap <buffer> <silent> gb :call nerdtree#ui_glue#invokeKeyMap("gb")
|
nnoremap <buffer> <silent> gb :call nerdtree#ui_glue#invokeKeyMap("gb")
|
||||||
nnoremap <buffer> <silent> gi :call nerdtree#ui_glue#invokeKeyMap("gi")
|
nnoremap <buffer> <silent> gi :call nerdtree#ui_glue#invokeKeyMap("gi")
|
||||||
nnoremap <buffer> <silent> gs :call nerdtree#ui_glue#invokeKeyMap("gs")
|
nnoremap <buffer> <silent> gs :call nerdtree#ui_glue#invokeKeyMap("gs")
|
||||||
|
xmap <buffer> ic <Plug>(GitGutterTextObjectInnerVisual)
|
||||||
|
omap <buffer> ic <Plug>(GitGutterTextObjectInnerPending)
|
||||||
nnoremap <buffer> <silent> i :call nerdtree#ui_glue#invokeKeyMap("i")
|
nnoremap <buffer> <silent> i :call nerdtree#ui_glue#invokeKeyMap("i")
|
||||||
nnoremap <buffer> <silent> m :call nerdtree#ui_glue#invokeKeyMap("m")
|
nnoremap <buffer> <silent> m :call nerdtree#ui_glue#invokeKeyMap("m")
|
||||||
nnoremap <buffer> <silent> o :call nerdtree#ui_glue#invokeKeyMap("o")
|
nnoremap <buffer> <silent> o :call nerdtree#ui_glue#invokeKeyMap("o")
|
||||||
@@ -350,7 +372,7 @@ setlocal nowrap
|
|||||||
setlocal wrapmargin=0
|
setlocal wrapmargin=0
|
||||||
wincmd w
|
wincmd w
|
||||||
argglobal
|
argglobal
|
||||||
balt src/View/Modals/dataTransferModal.tsx
|
balt src/View/Modals/storageModal.tsx
|
||||||
let s:cpo_save=&cpo
|
let s:cpo_save=&cpo
|
||||||
set cpo&vim
|
set cpo&vim
|
||||||
nmap <buffer> [c <Plug>(GitGutterPrevHunk)
|
nmap <buffer> [c <Plug>(GitGutterPrevHunk)
|
||||||
@@ -498,16 +520,182 @@ setlocal wrap
|
|||||||
setlocal wrapmargin=0
|
setlocal wrapmargin=0
|
||||||
silent! normal! zE
|
silent! normal! zE
|
||||||
let &fdl = &fdl
|
let &fdl = &fdl
|
||||||
let s:l = 1 - ((0 * winheight(0) + 20) / 40)
|
let s:l = 615 - ((22 * winheight(0) + 18) / 36)
|
||||||
if s:l < 1 | let s:l = 1 | endif
|
if s:l < 1 | let s:l = 1 | endif
|
||||||
keepjumps exe s:l
|
keepjumps exe s:l
|
||||||
normal! zt
|
normal! zt
|
||||||
keepjumps 1
|
keepjumps 615
|
||||||
normal! 0
|
normal! 0142|
|
||||||
wincmd w
|
wincmd w
|
||||||
2wincmd w
|
argglobal
|
||||||
exe 'vert 1resize ' . ((&columns * 31 + 126) / 253)
|
if bufexists(fnamemodify("src/ViewModel/Global/fileTransferViewModel.ts", ":p")) | buffer src/ViewModel/Global/fileTransferViewModel.ts | else | edit src/ViewModel/Global/fileTransferViewModel.ts | endif
|
||||||
exe 'vert 2resize ' . ((&columns * 221 + 126) / 253)
|
balt src/View/Modals/dataTransferModal.tsx
|
||||||
|
let s:cpo_save=&cpo
|
||||||
|
set cpo&vim
|
||||||
|
imap <buffer> <nowait> <silent> <C-K> <Cmd>:call coc#snippet#jump(0, 0)
|
||||||
|
imap <buffer> <nowait> <silent> <C-J> <Cmd>:call coc#snippet#jump(1, 0)
|
||||||
|
smap <buffer> <nowait> <silent> <NL> <Cmd>:call coc#snippet#jump(1, 0)
|
||||||
|
smap <buffer> <nowait> <silent> <Cmd>:call coc#snippet#jump(0, 0)
|
||||||
|
nmap <buffer> [c <Plug>(GitGutterPrevHunk)
|
||||||
|
nmap <buffer> \hp <Plug>(GitGutterPreviewHunk)
|
||||||
|
nmap <buffer> \hu <Plug>(GitGutterUndoHunk)
|
||||||
|
nmap <buffer> \hs <Plug>(GitGutterStageHunk)
|
||||||
|
xmap <buffer> \hs <Plug>(GitGutterStageHunk)
|
||||||
|
nmap <buffer> ]c <Plug>(GitGutterNextHunk)
|
||||||
|
xmap <buffer> ac <Plug>(GitGutterTextObjectOuterVisual)
|
||||||
|
omap <buffer> ac <Plug>(GitGutterTextObjectOuterPending)
|
||||||
|
xmap <buffer> ic <Plug>(GitGutterTextObjectInnerVisual)
|
||||||
|
omap <buffer> ic <Plug>(GitGutterTextObjectInnerPending)
|
||||||
|
smap <buffer> <nowait> <silent> <C-K> <Cmd>:call coc#snippet#jump(0, 0)
|
||||||
|
smap <buffer> <nowait> <silent> <C-J> <Cmd>:call coc#snippet#jump(1, 0)
|
||||||
|
imap <buffer> <nowait> <silent> <NL> <Cmd>:call coc#snippet#jump(1, 0)
|
||||||
|
imap <buffer> <nowait> <silent> <Cmd>:call coc#snippet#jump(0, 0)
|
||||||
|
let &cpo=s:cpo_save
|
||||||
|
unlet s:cpo_save
|
||||||
|
setlocal keymap=
|
||||||
|
setlocal noarabic
|
||||||
|
setlocal autoindent
|
||||||
|
setlocal backupcopy=
|
||||||
|
setlocal balloonexpr=
|
||||||
|
setlocal nobinary
|
||||||
|
setlocal nobreakindent
|
||||||
|
setlocal breakindentopt=
|
||||||
|
setlocal bufhidden=
|
||||||
|
setlocal buflisted
|
||||||
|
setlocal buftype=
|
||||||
|
setlocal nocindent
|
||||||
|
setlocal cinkeys=0{,0},0),0],:,0#,!^F,o,O,e
|
||||||
|
setlocal cinoptions=
|
||||||
|
setlocal cinscopedecls=public,protected,private
|
||||||
|
setlocal cinwords=if,else,while,do,for,switch
|
||||||
|
setlocal colorcolumn=
|
||||||
|
setlocal comments=s1:/*,mb:*,ex:*/,://,b:#,:%,:XCOMM,n:>,fb:-
|
||||||
|
setlocal commentstring=//\ %s
|
||||||
|
setlocal complete=.,w,b,u,t,i
|
||||||
|
setlocal concealcursor=
|
||||||
|
setlocal conceallevel=0
|
||||||
|
setlocal completefunc=
|
||||||
|
setlocal nocopyindent
|
||||||
|
setlocal cryptmethod=
|
||||||
|
setlocal nocursorbind
|
||||||
|
setlocal nocursorcolumn
|
||||||
|
setlocal nocursorline
|
||||||
|
setlocal cursorlineopt=both
|
||||||
|
setlocal define=
|
||||||
|
setlocal dictionary=
|
||||||
|
setlocal nodiff
|
||||||
|
setlocal equalprg=
|
||||||
|
setlocal errorformat=%+A\ %#%f\ %#(%l\\,%c):\ %m,%C%m
|
||||||
|
setlocal noexpandtab
|
||||||
|
if &filetype != 'typescript'
|
||||||
|
setlocal filetype=typescript
|
||||||
|
endif
|
||||||
|
setlocal fillchars=
|
||||||
|
setlocal fixendofline
|
||||||
|
setlocal foldcolumn=0
|
||||||
|
setlocal foldenable
|
||||||
|
setlocal foldexpr=0
|
||||||
|
setlocal foldignore=#
|
||||||
|
setlocal foldlevel=0
|
||||||
|
setlocal foldmarker={{{,}}}
|
||||||
|
setlocal foldmethod=manual
|
||||||
|
setlocal foldminlines=1
|
||||||
|
setlocal foldnestmax=20
|
||||||
|
setlocal foldtext=foldtext()
|
||||||
|
setlocal formatexpr=
|
||||||
|
setlocal formatoptions=croql
|
||||||
|
setlocal formatlistpat=^\\s*\\d\\+[\\]:.)}\\t\ ]\\s*
|
||||||
|
setlocal formatprg=
|
||||||
|
setlocal grepprg=
|
||||||
|
setlocal iminsert=0
|
||||||
|
setlocal imsearch=-1
|
||||||
|
setlocal include=
|
||||||
|
setlocal includeexpr=
|
||||||
|
setlocal indentexpr=GetTypescriptIndent()
|
||||||
|
setlocal indentkeys=0{,0},0),0],:,0#,!^F,o,O,e,0],0)
|
||||||
|
setlocal noinfercase
|
||||||
|
setlocal iskeyword=@,48-57,_,192-255,$
|
||||||
|
setlocal keywordprg=
|
||||||
|
setlocal nolinebreak
|
||||||
|
setlocal nolisp
|
||||||
|
setlocal lispoptions=
|
||||||
|
setlocal lispwords=
|
||||||
|
setlocal nolist
|
||||||
|
setlocal listchars=
|
||||||
|
setlocal makeencoding=
|
||||||
|
setlocal makeprg=tsc\ \ $*\ %
|
||||||
|
setlocal matchpairs=(:),{:},[:]
|
||||||
|
setlocal nomodeline
|
||||||
|
setlocal modifiable
|
||||||
|
setlocal nrformats=bin,octal,hex
|
||||||
|
set number
|
||||||
|
setlocal number
|
||||||
|
setlocal numberwidth=4
|
||||||
|
setlocal omnifunc=
|
||||||
|
setlocal path=
|
||||||
|
setlocal nopreserveindent
|
||||||
|
setlocal nopreviewwindow
|
||||||
|
setlocal quoteescape=\\
|
||||||
|
setlocal noreadonly
|
||||||
|
setlocal norelativenumber
|
||||||
|
setlocal norightleft
|
||||||
|
setlocal rightleftcmd=search
|
||||||
|
setlocal noscrollbind
|
||||||
|
setlocal scrolloff=-1
|
||||||
|
setlocal shiftwidth=4
|
||||||
|
setlocal noshortname
|
||||||
|
setlocal showbreak=
|
||||||
|
setlocal sidescrolloff=-1
|
||||||
|
set signcolumn=yes
|
||||||
|
setlocal signcolumn=yes
|
||||||
|
setlocal nosmartindent
|
||||||
|
setlocal nosmoothscroll
|
||||||
|
setlocal softtabstop=0
|
||||||
|
setlocal nospell
|
||||||
|
setlocal spellcapcheck=[.?!]\\_[\\])'\"\ \ ]\\+
|
||||||
|
setlocal spellfile=
|
||||||
|
setlocal spelllang=en
|
||||||
|
setlocal spelloptions=
|
||||||
|
setlocal statusline=
|
||||||
|
setlocal suffixesadd=.ts,.tsx
|
||||||
|
setlocal swapfile
|
||||||
|
setlocal synmaxcol=3000
|
||||||
|
if &syntax != 'typescript'
|
||||||
|
setlocal syntax=typescript
|
||||||
|
endif
|
||||||
|
setlocal tabstop=8
|
||||||
|
setlocal tagcase=
|
||||||
|
setlocal tagfunc=
|
||||||
|
setlocal tags=
|
||||||
|
setlocal termwinkey=
|
||||||
|
setlocal termwinscroll=10000
|
||||||
|
setlocal termwinsize=
|
||||||
|
setlocal textwidth=0
|
||||||
|
setlocal thesaurus=
|
||||||
|
setlocal thesaurusfunc=
|
||||||
|
setlocal noundofile
|
||||||
|
setlocal undolevels=-123456
|
||||||
|
setlocal varsofttabstop=
|
||||||
|
setlocal vartabstop=
|
||||||
|
setlocal virtualedit=
|
||||||
|
setlocal wincolor=
|
||||||
|
setlocal nowinfixheight
|
||||||
|
setlocal nowinfixwidth
|
||||||
|
setlocal wrap
|
||||||
|
setlocal wrapmargin=0
|
||||||
|
silent! normal! zE
|
||||||
|
let &fdl = &fdl
|
||||||
|
let s:l = 74 - ((13 * winheight(0) + 18) / 36)
|
||||||
|
if s:l < 1 | let s:l = 1 | endif
|
||||||
|
keepjumps exe s:l
|
||||||
|
normal! zt
|
||||||
|
keepjumps 74
|
||||||
|
normal! 0140|
|
||||||
|
wincmd w
|
||||||
|
3wincmd w
|
||||||
|
exe 'vert 1resize ' . ((&columns * 31 + 116) / 233)
|
||||||
|
exe 'vert 2resize ' . ((&columns * 100 + 116) / 233)
|
||||||
|
exe 'vert 3resize ' . ((&columns * 100 + 116) / 233)
|
||||||
tabnext 1
|
tabnext 1
|
||||||
if exists('s:wipebuf') && len(win_findbuf(s:wipebuf)) == 0
|
if exists('s:wipebuf') && len(win_findbuf(s:wipebuf)) == 0
|
||||||
silent exe 'bwipe ' . s:wipebuf
|
silent exe 'bwipe ' . s:wipebuf
|
||||||
@@ -522,7 +710,6 @@ if filereadable(s:sx)
|
|||||||
exe "source " . fnameescape(s:sx)
|
exe "source " . fnameescape(s:sx)
|
||||||
endif
|
endif
|
||||||
let &g:so = s:so_save | let &g:siso = s:siso_save
|
let &g:so = s:so_save | let &g:siso = s:siso_save
|
||||||
nohlsearch
|
|
||||||
doautoall SessionLoadPost
|
doautoall SessionLoadPost
|
||||||
unlet SessionLoad
|
unlet SessionLoad
|
||||||
" vim: set ft=vim :
|
" vim: set ft=vim :
|
||||||
|
|||||||
Vendored
+755
-676
File diff suppressed because it is too large
Load Diff
Vendored
+10630
-7986
File diff suppressed because it is too large
Load Diff
Vendored
+1
-1
@@ -22,7 +22,7 @@ async function getFromCache(event) {
|
|||||||
|
|
||||||
async function fetchAndCache(event) {
|
async function fetchAndCache(event) {
|
||||||
const request = event.request;
|
const request = event.request;
|
||||||
const response = await fetch(request, {cache: "no-cache"});
|
const response = await fetch(request, { cache: "no-cache" });
|
||||||
if (response.status === 200) {
|
if (response.status === 200) {
|
||||||
// Only cache successful responses
|
// Only cache successful responses
|
||||||
const cache = await caches.open(CACHE_VERSION);
|
const cache = await caches.open(CACHE_VERSION);
|
||||||
|
|||||||
@@ -335,64 +335,64 @@ export function implementPinchZoom(canvas: HTMLElement) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
canvas.addEventListener("touchstart", (event: TouchEvent) => {
|
canvas.addEventListener("touchstart", (event: TouchEvent) => {
|
||||||
(document.activeElement as HTMLElement).blur();
|
(document.activeElement as HTMLElement).blur();
|
||||||
|
|
||||||
if (lastElement != undefined && lastElement != element()) reset();
|
if (lastElement != undefined && lastElement != element()) reset();
|
||||||
lastElement = element();
|
lastElement = element();
|
||||||
|
|
||||||
initialZoom = currentZoom;
|
initialZoom = currentZoom;
|
||||||
initialX = currentX;
|
initialX = currentX;
|
||||||
initialY = currentY;
|
initialY = currentY;
|
||||||
|
|
||||||
if (event.touches.length != 2) {
|
if (event.touches.length != 2) {
|
||||||
pinching = false;
|
pinching = false;
|
||||||
initialTouchX = event.touches[0].clientX;
|
initialTouchX = event.touches[0].clientX;
|
||||||
initialTouchY = event.touches[0].clientY;
|
initialTouchY = event.touches[0].clientY;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
pinching = true;
|
pinching = true;
|
||||||
initialDistance = distance(event);
|
initialDistance = distance(event);
|
||||||
initialTouchX = midpoint(event, "x");
|
initialTouchX = midpoint(event, "x");
|
||||||
initialTouchY = midpoint(event, "y");
|
initialTouchY = midpoint(event, "y");
|
||||||
});
|
});
|
||||||
canvas.addEventListener("touchmove", (event: TouchEvent) => {
|
canvas.addEventListener("touchmove", (event: TouchEvent) => {
|
||||||
if (!pinching) {
|
if (!pinching) {
|
||||||
apply(currentZoom, [
|
apply(currentZoom, [
|
||||||
initialX +
|
initialX +
|
||||||
(event.touches[0].clientX - initialTouchX) / initialZoom,
|
(event.touches[0].clientX - initialTouchX) / initialZoom,
|
||||||
initialY +
|
initialY +
|
||||||
(event.touches[0].clientY - initialTouchY) / initialZoom,
|
(event.touches[0].clientY - initialTouchY) / initialZoom,
|
||||||
]);
|
]);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (event.touches.length < 2) return;
|
if (event.touches.length < 2) return;
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
const currentDistance = distance(event);
|
const currentDistance = distance(event);
|
||||||
const midX = midpoint(event, "x");
|
const midX = midpoint(event, "x");
|
||||||
const midY = midpoint(event, "y");
|
const midY = midpoint(event, "y");
|
||||||
const ratio = currentDistance / initialDistance;
|
const ratio = currentDistance / initialDistance;
|
||||||
const difference = currentDistance - initialDistance;
|
const difference = currentDistance - initialDistance;
|
||||||
apply(initialZoom * ratio, [
|
apply(initialZoom * ratio, [
|
||||||
initialX + (midX - difference - initialTouchX) / initialZoom,
|
initialX + (midX - difference - initialTouchX) / initialZoom,
|
||||||
initialY + (midY - difference - initialTouchY) / initialZoom,
|
initialY + (midY - difference - initialTouchY) / initialZoom,
|
||||||
]);
|
]);
|
||||||
});
|
});
|
||||||
canvas.addEventListener("wheel", (event: WheelEvent) => {
|
canvas.addEventListener("wheel", (event: WheelEvent) => {
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
if (!event.shiftKey) {
|
if (!event.shiftKey) {
|
||||||
apply(currentZoom, [
|
apply(currentZoom, [
|
||||||
currentX - event.deltaX,
|
currentX - event.deltaX,
|
||||||
currentY - event.deltaY,
|
currentY - event.deltaY,
|
||||||
]);
|
]);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
apply(currentZoom + (event.deltaY < 0 ? 1 : -1) * 0.1, [
|
apply(currentZoom + (event.deltaY < 0 ? 1 : -1) * 0.1, [
|
||||||
initialX,
|
initialX,
|
||||||
initialY,
|
initialY,
|
||||||
]);
|
]);
|
||||||
});
|
});
|
||||||
canvas.addEventListener("scroll", (event: MouseEvent) => {
|
canvas.addEventListener("scroll", (event: MouseEvent) => {
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
+114
-112
@@ -45,125 +45,127 @@ export function BoardPage(
|
|||||||
}),
|
}),
|
||||||
);
|
);
|
||||||
|
|
||||||
const wrapper = <div class="content main-content" children:set={pages}></div>
|
const wrapper = (
|
||||||
Utility.implementPinchZoom(wrapper);
|
<div class="content main-content" children:set={pages}></div>
|
||||||
|
);
|
||||||
|
Utility.implementPinchZoom(wrapper);
|
||||||
|
|
||||||
// task modal
|
// task modal
|
||||||
const taskSettingsModal = React.createProxyState(
|
const taskSettingsModal = React.createProxyState(
|
||||||
[boardViewModel.selectedTaskViewModel],
|
[boardViewModel.selectedTaskViewModel],
|
||||||
() => {
|
() => {
|
||||||
if (boardViewModel.selectedTaskViewModel.value == undefined) {
|
if (boardViewModel.selectedTaskViewModel.value == undefined) {
|
||||||
return <div></div>;
|
return <div></div>;
|
||||||
} else {
|
} else {
|
||||||
ViewController.setFocusWithDelay();
|
ViewController.setFocusWithDelay();
|
||||||
|
|
||||||
return TaskSettingsModal(
|
return TaskSettingsModal(
|
||||||
coreViewModel,
|
coreViewModel,
|
||||||
boardViewModel.selectedTaskViewModel.value,
|
boardViewModel.selectedTaskViewModel.value,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div class="pane">
|
<div class="pane">
|
||||||
<div class="toolbar">
|
<div class="toolbar">
|
||||||
<span>
|
<span>
|
||||||
<button
|
<button
|
||||||
class="ghost board-close-button"
|
class="ghost board-close-button"
|
||||||
aria-label={
|
aria-label={
|
||||||
coreViewModel.translations.chatPage.task
|
coreViewModel.translations.chatPage.task
|
||||||
.closeBoardButtonAudioLabel
|
.closeBoardButtonAudioLabel
|
||||||
}
|
}
|
||||||
on:click={boardViewModel.close}
|
on:click={boardViewModel.close}
|
||||||
>
|
>
|
||||||
<span class="icon">arrow_back</span>
|
<span class="icon">arrow_back</span>
|
||||||
</button>
|
</button>
|
||||||
<button
|
<button
|
||||||
class="ghost board-toggle-button inset-outline"
|
class="ghost board-toggle-button inset-outline"
|
||||||
aria-label={
|
aria-label={
|
||||||
coreViewModel.translations.chatPage.task
|
coreViewModel.translations.chatPage.task
|
||||||
.toggleBoardButtonAudioLabel
|
.toggleBoardButtonAudioLabel
|
||||||
}
|
}
|
||||||
on:click={
|
on:click={
|
||||||
boardViewModel.taskPageViewModel.toggleBoardList
|
boardViewModel.taskPageViewModel.toggleBoardList
|
||||||
}
|
}
|
||||||
toggle:selected={
|
toggle:selected={
|
||||||
boardViewModel.taskPageViewModel.isShowingBoadList
|
boardViewModel.taskPageViewModel.isShowingBoadList
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
<span class="icon">dock_to_right</span>
|
<span class="icon">dock_to_right</span>
|
||||||
</button>
|
</button>
|
||||||
<button
|
<button
|
||||||
class="ghost"
|
class="ghost"
|
||||||
aria-label={
|
aria-label={
|
||||||
coreViewModel.translations.chatPage.task
|
coreViewModel.translations.chatPage.task
|
||||||
.boardSettingsHeadline
|
.boardSettingsHeadline
|
||||||
}
|
}
|
||||||
on:click={boardViewModel.showSettings}
|
on:click={boardViewModel.showSettings}
|
||||||
>
|
>
|
||||||
<span class="icon">settings</span>
|
<span class="icon">settings</span>
|
||||||
</button>
|
</button>
|
||||||
</span>
|
</span>
|
||||||
<span class="scroll-h ribbon">
|
<span class="scroll-h ribbon">
|
||||||
{BoardViewToggleButton(
|
{BoardViewToggleButton(
|
||||||
coreViewModel.translations.chatPage.task
|
coreViewModel.translations.chatPage.task
|
||||||
.listViewButtonAudioLabel,
|
.listViewButtonAudioLabel,
|
||||||
"view_list",
|
"view_list",
|
||||||
BoardPageTypes.List,
|
BoardPageTypes.List,
|
||||||
boardViewModel,
|
boardViewModel,
|
||||||
)}
|
)}
|
||||||
{BoardViewToggleButton(
|
{BoardViewToggleButton(
|
||||||
coreViewModel.translations.chatPage.task
|
coreViewModel.translations.chatPage.task
|
||||||
.kanbanViewButtonAudioLabel,
|
.kanbanViewButtonAudioLabel,
|
||||||
"view_kanban",
|
"view_kanban",
|
||||||
BoardPageTypes.Kanban,
|
BoardPageTypes.Kanban,
|
||||||
boardViewModel,
|
boardViewModel,
|
||||||
)}
|
)}
|
||||||
{BoardViewToggleButton(
|
{BoardViewToggleButton(
|
||||||
coreViewModel.translations.chatPage.task
|
coreViewModel.translations.chatPage.task
|
||||||
.statusViewButtonAudioLabel,
|
.statusViewButtonAudioLabel,
|
||||||
"grid_view",
|
"grid_view",
|
||||||
BoardPageTypes.StatusGrid,
|
BoardPageTypes.StatusGrid,
|
||||||
boardViewModel,
|
boardViewModel,
|
||||||
)}
|
)}
|
||||||
</span>
|
</span>
|
||||||
<span>
|
<span>
|
||||||
<button
|
<button
|
||||||
class="ghost inset-outline"
|
class="ghost inset-outline"
|
||||||
aria-label={
|
aria-label={
|
||||||
coreViewModel.translations.chatPage.task
|
coreViewModel.translations.chatPage.task
|
||||||
.filterTasksButtonAudioLabel
|
.filterTasksButtonAudioLabel
|
||||||
}
|
}
|
||||||
on:click={boardViewModel.showFilterModal}
|
on:click={boardViewModel.showFilterModal}
|
||||||
toggle:selected={boardViewModel.isFilterActive}
|
toggle:selected={boardViewModel.isFilterActive}
|
||||||
>
|
>
|
||||||
<span class="icon">filter_alt</span>
|
<span class="icon">filter_alt</span>
|
||||||
</button>
|
</button>
|
||||||
<button
|
<button
|
||||||
class="ghost"
|
class="ghost"
|
||||||
aria-label={
|
aria-label={
|
||||||
coreViewModel.translations.chatPage.task
|
coreViewModel.translations.chatPage.task
|
||||||
.createTaskButtonAudioLabel
|
.createTaskButtonAudioLabel
|
||||||
}
|
}
|
||||||
on:click={boardViewModel.createTask}
|
on:click={boardViewModel.createTask}
|
||||||
>
|
>
|
||||||
<span class="icon">add</span>
|
<span class="icon">add</span>
|
||||||
</button>
|
</button>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{wrapper}
|
{wrapper}
|
||||||
|
|
||||||
{BoardSettingsModal(coreViewModel, boardViewModel)}
|
{BoardSettingsModal(coreViewModel, boardViewModel)}
|
||||||
{SearchModal(
|
{SearchModal(
|
||||||
coreViewModel,
|
coreViewModel,
|
||||||
boardViewModel.searchViewModel,
|
boardViewModel.searchViewModel,
|
||||||
coreViewModel.translations.chatPage.task.filterTasksHeadline,
|
coreViewModel.translations.chatPage.task.filterTasksHeadline,
|
||||||
TaskViewModelToEntry,
|
TaskViewModelToEntry,
|
||||||
boardViewModel.isPresentingFilterModal,
|
boardViewModel.isPresentingFilterModal,
|
||||||
)}
|
)}
|
||||||
<div children:set={taskSettingsModal}></div>
|
<div children:set={taskSettingsModal}></div>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
Binary file not shown.
@@ -375,7 +375,7 @@ function TransferDisplayModal(
|
|||||||
coreViewModel.translations.dataTransferModal
|
coreViewModel.translations.dataTransferModal
|
||||||
.transferDataHeadline
|
.transferDataHeadline
|
||||||
}
|
}
|
||||||
</h2>
|
</h2>
|
||||||
|
|
||||||
<p
|
<p
|
||||||
class="secondary"
|
class="secondary"
|
||||||
@@ -394,11 +394,11 @@ function TransferDisplayModal(
|
|||||||
coreViewModel.translations.dataTransferModal
|
coreViewModel.translations.dataTransferModal
|
||||||
.allFilesSent
|
.allFilesSent
|
||||||
}
|
}
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<hr></hr>
|
<hr></hr>
|
||||||
|
|
||||||
<div class="flex-column gap content-margin-bottom">
|
<div class="flex-column gap content-margin-bottom">
|
||||||
<div class="tile">
|
<div class="tile">
|
||||||
<span class="icon">forum</span>
|
<span class="icon">forum</span>
|
||||||
<div>
|
<div>
|
||||||
@@ -514,8 +514,8 @@ function TransferDataInputModal(
|
|||||||
.transferChannelHeadline
|
.transferChannelHeadline
|
||||||
}
|
}
|
||||||
</span>
|
</span>
|
||||||
<input
|
<input
|
||||||
type="number"
|
type="number"
|
||||||
on:enter={
|
on:enter={
|
||||||
fileTransferViewModel.prepareReceivingData
|
fileTransferViewModel.prepareReceivingData
|
||||||
}
|
}
|
||||||
@@ -536,7 +536,7 @@ function TransferDataInputModal(
|
|||||||
}
|
}
|
||||||
</span>
|
</span>
|
||||||
<input
|
<input
|
||||||
type="number"
|
type="number"
|
||||||
on:enter={
|
on:enter={
|
||||||
fileTransferViewModel.prepareReceivingData
|
fileTransferViewModel.prepareReceivingData
|
||||||
}
|
}
|
||||||
@@ -612,10 +612,23 @@ function DataReceptionModal(
|
|||||||
]}
|
]}
|
||||||
></div>
|
></div>
|
||||||
</main>
|
</main>
|
||||||
<button on:click={ViewController.reload}>
|
<div class="flex-row width-100">
|
||||||
{coreViewModel.translations.general.reloadAppButton}
|
<button
|
||||||
<span class="icon">refresh</span>
|
class="flex"
|
||||||
</button>
|
on:click={
|
||||||
|
fileTransferViewModel.showTransferDataInputModal
|
||||||
|
}
|
||||||
|
toggle:disabled={
|
||||||
|
fileTransferViewModel.cannotExitReception
|
||||||
|
}
|
||||||
|
>
|
||||||
|
{coreViewModel.translations.general.backButton}
|
||||||
|
</button>
|
||||||
|
<button class="flex" on:click={ViewController.reload}>
|
||||||
|
{coreViewModel.translations.general.reloadAppButton}
|
||||||
|
<span class="icon">refresh</span>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -71,6 +71,10 @@ export default class FileTransferViewModel extends Context {
|
|||||||
this.receivingTransferChannel.value == "" ||
|
this.receivingTransferChannel.value == "" ||
|
||||||
this.receivingTransferKey.value == "",
|
this.receivingTransferKey.value == "",
|
||||||
);
|
);
|
||||||
|
cannotExitReception: React.State<boolean> = React.createProxyState(
|
||||||
|
[this.filePathsReceived],
|
||||||
|
() => this.filePathsReceived.value.size > 0,
|
||||||
|
);
|
||||||
|
|
||||||
cannotExport: React.State<boolean> = React.createProxyState(
|
cannotExport: React.State<boolean> = React.createProxyState(
|
||||||
[this.exportKey, this.exportKeyConfirmation],
|
[this.exportKey, this.exportKeyConfirmation],
|
||||||
|
|||||||
Reference in New Issue
Block a user