Packages
nitro
4.12.11
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) {
let elem = qi('comboContainer_' + dom)
if (elem) {elem.style.display = 'none'}
activeCombo = undefined; currentItem = undefined;
}
function comboSelect(dom, row, feed, mod, id) {
let elem = qi(dom); comboClear(dom);
if (qi(id)) elem.setAttribute("data-bind", qi(id).getAttribute('data-bind'));
elem.value = row;
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 (char == 40 && !activeCombo && qi(dom).value == '') {
activeCombo = dom;
currentItem = undefined;
direct(tuple(atom('comboKey'), atom('all'), string(dom), string(feed), atom(mod)));
return
}
if (activeCombo && [38, 40].includes(char)) {
event.preventDefault();
console.log('Keycode: ' + char + ", DOM: " + dom);
if (char == 40) { set_focus( currentItem && ( !cycleEnabled || currentItem.nextSibling) ? currentItem.nextSibling : qi('comboContainer_' + dom).firstChild, true) }
if (char == 38) { set_focus( currentItem && ( !cycleEnabled || currentItem.previousSibling) ? currentItem.previousSibling : qi('comboContainer_' + dom).lastChild, true) }
}
}
function comboLookupKeyup(dom, feed, mod) {
var char = event.which || event.keyCode;
if (char == 27 || (char == 8 || char == 46) && qi(dom).value == '') { qi(dom).value = ''; comboClear(dom); return}
if (char == 13 && currentItem) { currentItem.click(); return }
if ([33, 34, 35, 36, 37, 39].includes(char)) { return }
if (activeCombo && [38, 40].includes(char)) { return }
else {
activeCombo = dom;
currentItem = undefined;
direct(tuple(atom('comboKey'), bin(qi(dom).value), string(dom), string(feed), atom(mod)));
}
}
function comboLookupMouseMove(dom) { set_focus(event.target.closest('.dropdown-item'), false) }
function comboLookupMouseOut(dom) { }
function set_focus(elem, scroll) {
if (elem) {
if(currentItem) {currentItem.className = "dropdown-item"}
elem.className = "dropdown-item focus"
if (scroll==true) {elem.scrollIntoView({block: "center", inline: "nearest"})}
currentItem = elem
}
}
document.addEventListener("click", () => {
if (activeCombo && !event.target.closest('#comboContainer_' + activeCombo)) {
qi(activeCombo).value = '';
comboClear(activeCombo);
}
})
var activeCombo = undefined
var currentItem = undefined
var cycleEnabled = false