@nteract/monaco-editor
Version:
A React component for the monaco editor, tailored for nteract
40 lines (33 loc) • 955 B
text/typescript
/**
* Simple polifill of ResizeObserver for testing
*/
class ResizeObserver {
elements: Set<Element> = new Set();
constructor(private callback: ResizeObserverCallback) {
this.onWindowResize = this.onWindowResize.bind(this);
window.addEventListener("resize", this.onWindowResize);
}
onWindowResize() {
const entries: ResizeObserverEntry[] = [];
for (const element of this.elements) {
entries.push({
target: element,
contentRect: element.getBoundingClientRect(),
borderBoxSize: [],
contentBoxSize: [],
devicePixelContentBoxSize: []
});
}
this.callback(entries, this);
}
observe(element: Element) {
this.elements.add(element);
}
unobserve(element: Element) {
this.elements.delete(element);
}
disconnect() {
window.removeEventListener("resize", this.onWindowResize);
}
}
export default ResizeObserver;