Packages
nitro
4.12.9
11.4.16
11.4.15
11.4.14
9.9.7
9.9.6
8.2.4
8.2.3
8.2.2
8.2.1
8.2.0
7.12.1
7.10.0
7.9.3
7.9.2
7.9.1
7.9.0
7.8.3
7.8.2
7.8.0
7.7.1
7.7.0
7.6.2
7.6.1
7.6.0
7.5.0
7.4.2
7.4.1
7.4.0
7.2.1
7.2.0
7.1.1
7.1.0
6.12.0
6.11.11
6.11.10
6.11.9
6.11.8
6.11.7
6.11.6
6.11.4
6.11.2
6.11.1
6.10.9
6.10.8
6.10.7
6.10.6
6.10.5
6.10.4
6.10.3
6.10.2
6.10.1
6.9.1
6.6.1
6.5.0
6.4.4
6.4.3
6.4.2
6.4.1
6.4.0
5.12.4
5.12.3
5.12.2
5.12.1
5.12.0
5.11.1
5.11.0
5.9.2
5.9.1
5.8.5
5.8.4
5.8.3
5.8.1
5.8.0
5.6.1
5.5.1
5.4.3
5.4.2
5.4.1
5.3.1
5.3.0
5.2.1
5.1.7
5.1.6
5.1.5
5.1.4
5.1.3
5.1.2
5.1.1
4.12.11
4.12.10
4.12.9
4.12.8
4.12.7
4.12.6
4.12.5
4.12.4
4.12.3
4.12.2
4.12.1
4.12.0
4.11.13
4.11.12
4.11.11
4.11.10
4.11.9
4.11.8
4.11.7
4.11.6
4.11.5
4.11.4
4.11.3
4.11.2
4.11.1
4.11.0
4.10.9
4.10.8
4.10.7
4.10.6
4.10.5
4.10.4
4.10.3
4.10.2
4.10.1
4.10.0
4.7.7
4.7.4
4.7.3
4.7.2
4.7.1
4.7.0
4.4.1
4.4.0
1.4.0
NITRO Nitrogen Web Framework
Current section
Files
Jump to
Current section
Files
priv/js/comboLookup.js
function comboClear(dom) { qi('comboContainer_' + dom).style.display = 'none'; activeCombo = undefined; currentItem = undefined };
function comboSelect(dom, row, feed, mod) {
let elem = qi(dom); comboClear(dom);
// elem.value = event.currentTarget.innerHTML;
elem.value = row;
elem.scrollIntoView();
elem.style.backgroundColor = 'white';
direct(tuple(atom('comboSelect'), string(dom), string(row), string(feed), atom(mod)));
}
function comboLostFocus(e) { }
function comboOnFocus(e) { }
function comboLookupKeydown(dom, feed, mod) {
var char = event.which || event.keyCode;
if (activeCombo && currentItem && [37, 38, 39, 40, 13, 32].includes(char)) { event.preventDefault() }
}
function comboLookupKeyup(dom, feed, mod) {
var char = event.which || event.keyCode;
if (char == 27) { qi(dom).value = ''; comboClear(dom); return}
if (!activeCombo && char == 40) {
activeCombo = dom;
direct(tuple(atom('comboKeyup'), atom('all'), string(dom), string(feed), atom(mod)));
return
}
if ([13, 32].includes(char) && currentItem) { currentItem.click(); return }
if (activeCombo && [37, 38, 39, 40].includes(char)) {
if (char == 37) { set_focus(qi('comboContainer_' + dom).firstChild) }
if (char == 39) { set_focus(qi('comboContainer_' + dom).lastChild) }
if (char == 40) { set_focus( currentItem ? currentItem.nextSibling : qi('comboContainer_' + dom).firstChild) }
if (char == 38) { set_focus( currentItem ? currentItem.previousSibling : qi('comboContainer_' + dom).lastChild) }
console.log('keyboard working with dropdown: ' + char);
}
else {
activeCombo = dom;
direct(tuple(atom('comboKeyup'), querySource(dom), string(dom), string(feed), atom(mod)));
}
}
function set_focus(elem) {
if (elem) {
if(currentItem) {currentItem.style.backgroundColor = "white"}
// elem.style.backgroundColor = "cornflowerblue"
elem.style.backgroundColor = "pink"
elem.scrollIntoView()
currentItem = elem
}
}
document.addEventListener("click", () => {
if (activeCombo && !event.target.closest('#comboContainer_' + activeCombo)) {
qi(activeCombo).value = '';
comboClear(activeCombo);
}
})
var activeCombo = undefined
var currentItem = undefined