diff options
| author | Jake Mannens <jake@asger.xyz> | 2026-05-22 00:52:16 +1000 |
|---|---|---|
| committer | Jake Mannens <jake@asger.xyz> | 2026-05-23 22:22:55 +1000 |
| commit | 12eaa5814ef20b0910e8d64a753378b6f6797989 (patch) | |
| tree | 062cf477c29054e0f089cb80f0cd79a9f3b7ccd9 /wwwroot/js/keyboard.js | |
| parent | 6de5d7f5364fe1d54703da6d6b7cb08ea26e939f (diff) | |
Initial commitwasm-initial
Diffstat (limited to 'wwwroot/js/keyboard.js')
| -rw-r--r-- | wwwroot/js/keyboard.js | 57 |
1 files changed, 0 insertions, 57 deletions
diff --git a/wwwroot/js/keyboard.js b/wwwroot/js/keyboard.js deleted file mode 100644 index 8b46639..0000000 --- a/wwwroot/js/keyboard.js +++ /dev/null @@ -1,57 +0,0 @@ -async function keyDownHandler(e) { - function isDialogChild(e) { - while(e = e.parentElement) - if(e.tagName == 'DIV' && e.classList.contains('dialog')) - return true; - return false; - } - - var tag = document.activeElement.tagName; - if((tag == 'INPUT' || (tag == 'TEXTAREA' && e.ctrlKey)) && e.key == 'Enter') { - var element = document.activeElement; - while(element = element.parentElement) { - if(element.tagName == 'FORM') { - element - .querySelectorAll('input,textarea') - .forEach(e => e.dispatchEvent(new Event('change'))); - element.requestSubmit(); - e.preventDefault(); - return; - } - } - } - - if((tag == 'INPUT' || tag == 'TEXTAREA') && e.key != 'Escape') - return; - - var element = Array.from(document.querySelectorAll('div.dialog')) - .filter(e => e.style.visibility == 'visible') - .map(e => ({ element: e, zIndex: parseInt(e.style.zIndex) })) - .sort((a, b) => b.zIndex - a.zIndex) - .map(e => e.element)[0]; - - if(element) { - await window.dialogObjects - .find(d => d.element == element) - .dialogObject - .invokeMethodAsync('KeyHandler', e.key); - e.preventDefault(); - return; - } - - var button = Array.from(document.getElementsByTagName('button')) - .filter(b => typeof(b.dataset.keyboardShortcut) == 'string') - .filter(b => !isDialogChild(b)) - .find(b => b.dataset.keyboardShortcut == e.key); - - if(!e.ctrlKey && button) { - button.click(); - e.preventDefault(); - return; - } - - if(typeof pageKeyDownHandler == 'function') - pageKeyDownHandler(e); -} - -window.onload = () => document.onkeydown = keyDownHandler;
\ No newline at end of file |
