@@ -5,6 +5,10 @@ const mainJs = `
55var classNone = 'none';
66var classHeader = 'header';
77var leavingEvent = typeof window.onpagehide !== 'undefined' ? 'pagehide' : 'beforeunload';
8+ var Enter = 'Enter';
9+ var Escape = 'Escape';
10+ var Esc = 'Esc';
11+ var Space = ' ';
812function enableFilter() {
913if (!document.querySelector) {
1014var filter = document.getElementById && document.getElementById('panel-filter');
@@ -75,14 +79,14 @@ input.addEventListener('input', onValueMayChange, false);
7579input.addEventListener('change', onValueMayChange, false);
7680input.addEventListener('keydown', function (e) {
7781switch (e.key) {
78- case ' Enter' :
82+ case Enter:
7983clearTimeout(timeoutId);
8084input.blur();
8185doFilter();
8286e.preventDefault();
8387break;
84- case ' Escape' :
85- case ' Esc' :
88+ case Escape:
89+ case Esc:
8690clearTimeout(timeoutId);
8791input.value = '';
8892doFilter();
@@ -400,6 +404,22 @@ fileInput.name = innerDirFile;
400404fileInput.webkitdirectory = true;
401405}
402406}
407+ function onKeydownOpt(e) {
408+ switch (e.key) {
409+ case Enter:
410+ case Space:
411+ if (e.ctrlKey || e.altKey || e.metaKey || e.shiftKey) {
412+ break;
413+ }
414+ e.preventDefault();
415+ e.stopPropagation();
416+ if (e.target === optActive) {
417+ break;
418+ }
419+ e.target.click();
420+ break;
421+ }
422+ }
403423if (typeof fileInput.webkitdirectory === 'undefined') {
404424addClass(uploadType, classNone);
405425return;
@@ -408,12 +428,15 @@ optDirFile && removeClass(optDirFile, classHidden);
408428optInnerDirFile && removeClass(optInnerDirFile, classHidden);
409429if (optFile) {
410430optFile.addEventListener('click', onClickOptFile);
431+ optFile.addEventListener('keydown', onKeydownOpt);
411432}
412433if (optDirFile) {
413434optDirFile.addEventListener('click', onClickOptDirFile);
435+ optDirFile.addEventListener('keydown', onKeydownOpt);
414436}
415437if (optInnerDirFile) {
416438optInnerDirFile.addEventListener('click', onClickOptInnerDirFile);
439+ optInnerDirFile.addEventListener('keydown', onKeydownOpt);
417440}
418441if (sessionStorage) {
419442var uploadTypeField = 'upload-type';
0 commit comments