diff --git a/lib/client-rect-observer.ts b/lib/client-rect-observer.ts index 9926950..0b445ab 100644 --- a/lib/client-rect-observer.ts +++ b/lib/client-rect-observer.ts @@ -191,55 +191,3 @@ export class ClientRectObserver { } } } - -export type ClientRectObserverEntryCallback = (entry: ClientRectObserverEntry) => void; - -export class ClientRectObserverManager { - static #instance: ClientRectObserverManager | null = null; - - // singleton so we only observe elements once - constructor() { - if (ClientRectObserverManager.#instance === null) { - ClientRectObserverManager.#instance = this; - } - return ClientRectObserverManager.#instance; - } - - #elementMap = new WeakMap>(); - - #vo = new ClientRectObserver((entries) => { - for (const entry of entries) { - const callbacks = this.#elementMap.get(entry.target); - - if (callbacks) { - callbacks.forEach((callback) => callback(entry)); - } - } - }); - - observe(target: Element, callback: ClientRectObserverEntryCallback): void { - let callbacks = this.#elementMap.get(target); - - if (callbacks === undefined) { - this.#vo.observe(target); - this.#elementMap.set(target, (callbacks = new Set())); - } else { - callback({ target, contentRect: target.getBoundingClientRect() }); - } - - callbacks.add(callback); - } - - unobserve(target: Element, callback: ClientRectObserverEntryCallback): void { - let callbacks = this.#elementMap.get(target); - - if (callbacks === undefined) return; - - callbacks.delete(callback); - - if (callbacks.size === 0) { - this.#vo.unobserve(target); - this.#elementMap.delete(target); - } - } -}