@unito/integration-debugger
Version:
The Unito Integration Debugger
80 lines (79 loc) • 2.44 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.enableListScrolling = enableListScrolling;
exports.enableBoxScrolling = enableBoxScrolling;
function enableListScrolling(element) {
element.on('keypress', function (_ch, key) {
switch (key.name) {
case 'pageup':
element.up(10);
break;
case 'pagedown':
element.down(10);
break;
case 'home':
element.up(Number.MAX_SAFE_INTEGER);
break;
case 'end':
element.down(Number.MAX_SAFE_INTEGER);
break;
}
});
}
function enableBoxScrolling(element) {
element.on('keypress', function (_ch, key) {
let height;
try {
height = (element?.height ?? 0);
}
catch {
return; // Happens when the element is destroyed.
}
switch (key.name) {
case 'up':
if (element.getScroll() >= height) {
element.scroll(-(height + 1));
}
else {
element.scroll(-5);
}
element.screen.render();
break;
case 'down':
if (element.getScroll() < height) {
element.scroll(height + 1);
}
else {
element.scroll(5);
}
element.screen.render();
break;
case 'pageup':
if (element.getScroll() >= height) {
element.scroll(-(height + 20));
}
else {
element.scroll(-20);
}
element.screen.render();
break;
case 'pagedown':
if (element.getScroll() < height) {
element.scroll(height + 20);
}
else {
element.scroll(20);
}
element.screen.render();
break;
case 'home':
element.scrollTo(0);
element.screen.render();
break;
case 'end':
element.scrollTo(Number.MAX_SAFE_INTEGER);
element.screen.render();
break;
}
});
}
;