Packages
nitro
6.4.2
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 comboLookupChange(dom) {
let elem = qi(dom);
if (elem && elem.value == "" && elem.getAttribute("data-bind")) {
elem.removeAttribute("data-bind");
}
}
function comboLookupClick(dom, feed, mod) {
var char = event.which || event.keyCode;
if (char == 1 && !activeCombo && qi(dom).value == '') {
activeCombo = dom;
currentItem = undefined;
direct(tuple(atom('comboKey'),
atom('all'),
string(dom),
string(feed),
atom(mod)));
return
} else if(char == 1 && activeCombo == dom){comboClear(dom);}
}
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 set_focus(elem, scroll) {
if (elem) {
if(currentItem) {currentItem.className = "dropdown-item"}
elem.className = "dropdown-item focus"
if (scroll==true) {elem.scrollIntoView({block: "nearest", inline: "nearest"})}
currentItem = elem
}
}
document.addEventListener("click", () => {
if (activeCombo && event.target.className != 'triangle' &&
!event.target.closest('#comboContainer_' + activeCombo)) {
qi(activeCombo).value = '';
comboClear(activeCombo);
}
})
function comboLostFocus(e) { }
function comboOnFocus(e) { }
function comboLookupMouseOut(dom) { }
var activeCombo = undefined
var currentItem = undefined
var cycleEnabled = false