@revolist/revogrid
Version:
Virtual reactive data grid spreadsheet component - RevoGrid.
45 lines (44 loc) • 1.29 kB
JavaScript
/*!
* 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);
}
}
//# sourceMappingURL=autohide-scroll.plugin.js.map