UNPKG

@revolist/revogrid

Version:

Virtual reactive data grid spreadsheet component - RevoGrid.

44 lines (43 loc) 1.24 kB
/*! * Built by Revolist OU ❤️ */ /** * Autohide scroll for MacOS when scroll is visible only for 1 sec */ export class AutohideScrollPlugin { constructor(element) { this.element = element; this.autohideScrollTimeout = 0; } /** * When scroll size updates set it up for autohide */ setScrollSize(s) { if (!s) { this.element.setAttribute('autohide', 'true'); } else { this.element.removeAttribute('autohide'); } } /** * On each scroll check if it's time to show */ checkScroll({ scrollSize, contentSize, virtualSize, }) { const hasScroll = contentSize > virtualSize; const isHidden = !scrollSize && hasScroll; if (isHidden) { this.element.setAttribute('visible', 'true'); this.autohideScrollTimeout = this.show(this.element, this.autohideScrollTimeout); } } show(element, timeout) { clearTimeout(timeout); return Number(setTimeout(() => { element === null || element === void 0 ? void 0 : element.removeAttribute('visible'); }, 1000)); } clear() { clearTimeout(this.autohideScrollTimeout); } }