From 12eaa5814ef20b0910e8d64a753378b6f6797989 Mon Sep 17 00:00:00 2001 From: Jake Mannens Date: Fri, 22 May 2026 00:52:16 +1000 Subject: Initial commit --- wwwroot/js/keyboard.js | 57 -------------------------------------------------- 1 file changed, 57 deletions(-) delete mode 100644 wwwroot/js/keyboard.js (limited to 'wwwroot/js/keyboard.js') 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 -- cgit v1.3