aria-ease 1.4.7 → 1.4.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/handleKeyPress.js +24 -2
- package/src/handleKeyPress.ts +22 -2
package/package.json
CHANGED
package/src/handleKeyPress.js
CHANGED
|
@@ -11,7 +11,7 @@ export function handleKeyPress(event, elementItems, elementItemIndex, menuElemen
|
|
|
11
11
|
switch (event.key) {
|
|
12
12
|
case 'ArrowUp':
|
|
13
13
|
case 'ArrowLeft':
|
|
14
|
-
if ((elementItems.item(elementItemIndex).tagName !== 'INPUT') || (elementItems.item(elementItemIndex).tagName === 'INPUT' && elementItems.item(elementItemIndex).type
|
|
14
|
+
if ((elementItems.item(elementItemIndex).tagName !== 'INPUT') || (elementItems.item(elementItemIndex).tagName === 'INPUT' && elementItems.item(elementItemIndex).type !== 'text')) {
|
|
15
15
|
event.preventDefault();
|
|
16
16
|
if (elementItemIndex === 0) {
|
|
17
17
|
elementItems.item(elementItems.length - 1).focus();
|
|
@@ -20,10 +20,21 @@ export function handleKeyPress(event, elementItems, elementItemIndex, menuElemen
|
|
|
20
20
|
elementItems.item(elementItemIndex - 1).focus();
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
|
+
if ((elementItems.item(elementItemIndex).tagName === 'INPUT' && elementItems.item(elementItemIndex).type === 'text') || (elementItems.item(elementItemIndex).tagName === 'TEXTAREA')) {
|
|
24
|
+
if (elementItems.item(elementItemIndex).selectionStart === 0) {
|
|
25
|
+
event.preventDefault();
|
|
26
|
+
if (elementItemIndex === 0) {
|
|
27
|
+
elementItems.item(elementItems.length - 1).focus();
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
elementItems.item(elementItemIndex - 1).focus();
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
23
34
|
break;
|
|
24
35
|
case 'ArrowDown':
|
|
25
36
|
case 'ArrowRight':
|
|
26
|
-
if ((elementItems.item(elementItemIndex).tagName !== 'INPUT') || (elementItems.item(elementItemIndex).tagName === 'INPUT' && elementItems.item(elementItemIndex).type
|
|
37
|
+
if ((elementItems.item(elementItemIndex).tagName !== 'INPUT') || (elementItems.item(elementItemIndex).tagName === 'INPUT' && elementItems.item(elementItemIndex).type !== 'text')) {
|
|
27
38
|
event.preventDefault();
|
|
28
39
|
if (elementItemIndex === elementItems.length - 1) {
|
|
29
40
|
elementItems.item(0).focus();
|
|
@@ -32,6 +43,17 @@ export function handleKeyPress(event, elementItems, elementItemIndex, menuElemen
|
|
|
32
43
|
elementItems.item(elementItemIndex + 1).focus();
|
|
33
44
|
}
|
|
34
45
|
}
|
|
46
|
+
if ((elementItems.item(elementItemIndex).tagName === 'INPUT' && elementItems.item(elementItemIndex).type === 'text') || (elementItems.item(elementItemIndex).tagName === 'TEXTAREA')) {
|
|
47
|
+
if (elementItems.item(elementItemIndex).selectionStart === elementItems.item(elementItemIndex).value.length) {
|
|
48
|
+
event.preventDefault();
|
|
49
|
+
if (elementItemIndex === elementItems.length - 1) {
|
|
50
|
+
elementItems.item(0).focus();
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
elementItems.item(elementItemIndex + 1).focus();
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
35
57
|
break;
|
|
36
58
|
case 'Escape':
|
|
37
59
|
event.preventDefault();
|
package/src/handleKeyPress.ts
CHANGED
|
@@ -15,7 +15,7 @@ export function handleKeyPress(event: KeyboardEvent, elementItems: NodeListOfHTM
|
|
|
15
15
|
switch(event.key) {
|
|
16
16
|
case 'ArrowUp':
|
|
17
17
|
case 'ArrowLeft':
|
|
18
|
-
if((elementItems.item(elementItemIndex).tagName !== 'INPUT') || (elementItems.item(elementItemIndex).tagName === 'INPUT' && elementItems.item(elementItemIndex).type
|
|
18
|
+
if((elementItems.item(elementItemIndex).tagName !== 'INPUT') || (elementItems.item(elementItemIndex).tagName === 'INPUT' && elementItems.item(elementItemIndex).type !== 'text')) {
|
|
19
19
|
event.preventDefault()
|
|
20
20
|
if (elementItemIndex === 0) {
|
|
21
21
|
elementItems.item(elementItems.length - 1).focus();
|
|
@@ -23,10 +23,20 @@ export function handleKeyPress(event: KeyboardEvent, elementItems: NodeListOfHTM
|
|
|
23
23
|
elementItems.item(elementItemIndex - 1).focus();
|
|
24
24
|
}
|
|
25
25
|
}
|
|
26
|
+
if((elementItems.item(elementItemIndex).tagName === 'INPUT' && elementItems.item(elementItemIndex).type === 'text') || (elementItems.item(elementItemIndex).tagName === 'TEXTAREA')) {
|
|
27
|
+
if (elementItems.item(elementItemIndex).selectionStart === 0) {
|
|
28
|
+
event.preventDefault()
|
|
29
|
+
if (elementItemIndex === 0) {
|
|
30
|
+
elementItems.item(elementItems.length - 1).focus();
|
|
31
|
+
} else {
|
|
32
|
+
elementItems.item(elementItemIndex - 1).focus();
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
26
36
|
break;
|
|
27
37
|
case 'ArrowDown':
|
|
28
38
|
case 'ArrowRight':
|
|
29
|
-
if((elementItems.item(elementItemIndex).tagName !== 'INPUT') || (elementItems.item(elementItemIndex).tagName === 'INPUT' && elementItems.item(elementItemIndex).type
|
|
39
|
+
if((elementItems.item(elementItemIndex).tagName !== 'INPUT') || (elementItems.item(elementItemIndex).tagName === 'INPUT' && elementItems.item(elementItemIndex).type !== 'text')) {
|
|
30
40
|
event.preventDefault()
|
|
31
41
|
if (elementItemIndex === elementItems.length - 1) {
|
|
32
42
|
elementItems.item(0).focus();
|
|
@@ -34,6 +44,16 @@ export function handleKeyPress(event: KeyboardEvent, elementItems: NodeListOfHTM
|
|
|
34
44
|
elementItems.item(elementItemIndex + 1).focus();
|
|
35
45
|
}
|
|
36
46
|
}
|
|
47
|
+
if((elementItems.item(elementItemIndex).tagName === 'INPUT' && elementItems.item(elementItemIndex).type === 'text') || (elementItems.item(elementItemIndex).tagName === 'TEXTAREA')) {
|
|
48
|
+
if (elementItems.item(elementItemIndex).selectionStart === elementItems.item(elementItemIndex).value.length) {
|
|
49
|
+
event.preventDefault()
|
|
50
|
+
if (elementItemIndex === elementItems.length - 1) {
|
|
51
|
+
elementItems.item(0).focus();
|
|
52
|
+
} else {
|
|
53
|
+
elementItems.item(elementItemIndex + 1).focus();
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
37
57
|
break;
|
|
38
58
|
case 'Escape':
|
|
39
59
|
event.preventDefault();
|