@@ -5,6 +5,10 @@ const mainJs = `
5
5
var classNone = 'none';
6
6
var classHeader = 'header';
7
7
var leavingEvent = typeof window.onpagehide !== 'undefined' ? 'pagehide' : 'beforeunload';
8
+ var Enter = 'Enter';
9
+ var Escape = 'Escape';
10
+ var Esc = 'Esc';
11
+ var Space = ' ';
8
12
function enableFilter() {
9
13
if (!document.querySelector) {
10
14
var filter = document.getElementById && document.getElementById('panel-filter');
@@ -75,14 +79,14 @@ input.addEventListener('input', onValueMayChange, false);
75
79
input.addEventListener('change', onValueMayChange, false);
76
80
input.addEventListener('keydown', function (e) {
77
81
switch (e.key) {
78
- case ' Enter' :
82
+ case Enter:
79
83
clearTimeout(timeoutId);
80
84
input.blur();
81
85
doFilter();
82
86
e.preventDefault();
83
87
break;
84
- case ' Escape' :
85
- case ' Esc' :
88
+ case Escape:
89
+ case Esc:
86
90
clearTimeout(timeoutId);
87
91
input.value = '';
88
92
doFilter();
@@ -400,6 +404,22 @@ fileInput.name = innerDirFile;
400
404
fileInput.webkitdirectory = true;
401
405
}
402
406
}
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
+ }
403
423
if (typeof fileInput.webkitdirectory === 'undefined') {
404
424
addClass(uploadType, classNone);
405
425
return;
@@ -408,12 +428,15 @@ optDirFile && removeClass(optDirFile, classHidden);
408
428
optInnerDirFile && removeClass(optInnerDirFile, classHidden);
409
429
if (optFile) {
410
430
optFile.addEventListener('click', onClickOptFile);
431
+ optFile.addEventListener('keydown', onKeydownOpt);
411
432
}
412
433
if (optDirFile) {
413
434
optDirFile.addEventListener('click', onClickOptDirFile);
435
+ optDirFile.addEventListener('keydown', onKeydownOpt);
414
436
}
415
437
if (optInnerDirFile) {
416
438
optInnerDirFile.addEventListener('click', onClickOptInnerDirFile);
439
+ optInnerDirFile.addEventListener('keydown', onKeydownOpt);
417
440
}
418
441
if (sessionStorage) {
419
442
var uploadTypeField = 'upload-type';
0 commit comments