UNPKG

@revolist/revogrid

Version:

Virtual reactive data grid spreadsheet component - RevoGrid.

56 lines (55 loc) 1.61 kB
/*! * Built by Revolist OU ❤️ */ import throttle from "lodash/throttle"; export default class GridResizeService { constructor(el, resize, elements) { this.resize = resize; this.resizeObserver = null; this.previousSize = { width: 0, height: 0, }; this.apply = throttle((e) => { var _a; const entry = { width: e.width, height: e.height, }; (_a = this.resize) === null || _a === void 0 ? void 0 : _a.call(this, entry, this.previousSize); this.previousSize = entry; }, 40, { leading: false, trailing: true, }); const extras = []; elements.forEach((element) => { if (element) { extras.push(element); } }); this.init(el, extras); } init(el, extras = []) { const observer = this.resizeObserver = new ResizeObserver((e) => { if (e.length) { if (e[0].target === el) { this.apply(e[0].contentRect); } else { this.apply(el.getBoundingClientRect()); } } }); observer.observe(el); extras.forEach((extra) => { observer.observe(extra); }); } destroy() { var _a; (_a = this.resizeObserver) === null || _a === void 0 ? void 0 : _a.disconnect(); this.resizeObserver = null; } } //# sourceMappingURL=viewport.resize.service.js.map