UNPKG

@unito/integration-debugger

Version:

The Unito Integration Debugger

80 lines (79 loc) 2.44 kB
"use strict"; 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; } }); }