fix type error
This commit is contained in:
parent
cca4e6969b
commit
023f667be3
|
|
@ -2,17 +2,18 @@ import { FolkShape } from '../labs/folk-shape';
|
||||||
import {
|
import {
|
||||||
ClientRectObserver,
|
ClientRectObserver,
|
||||||
ClientRectObserverEntry,
|
ClientRectObserverEntry,
|
||||||
type ClientRectObserverEntryCallback,
|
|
||||||
} from './client-rect-observer';
|
} from './client-rect-observer';
|
||||||
import { TransformEvent } from './TransformEvent';
|
import { TransformEvent } from './TransformEvent';
|
||||||
|
|
||||||
|
export type FolkObserverEntry = (entry: ClientRectObserverEntry) => void;
|
||||||
|
|
||||||
export type FolkObserverOptions = {
|
export type FolkObserverOptions = {
|
||||||
iframeSelector?: string;
|
iframeSelector?: string;
|
||||||
};
|
};
|
||||||
|
|
||||||
interface IframeChild {
|
interface IframeChild {
|
||||||
rect: DOMRectReadOnly | null;
|
rect: DOMRectReadOnly | null;
|
||||||
callbacks: Set<ClientRectObserverEntryCallback>;
|
callbacks: Set<FolkObserverEntry>;
|
||||||
}
|
}
|
||||||
|
|
||||||
type PostMessageSendEvent =
|
type PostMessageSendEvent =
|
||||||
|
|
@ -38,7 +39,7 @@ class IframeObserver {
|
||||||
window.addEventListener('message', this.#onPostmessage);
|
window.addEventListener('message', this.#onPostmessage);
|
||||||
}
|
}
|
||||||
|
|
||||||
observeChild(selector: string, callback: ClientRectObserverEntryCallback) {
|
observeChild(selector: string, callback: FolkObserverEntry) {
|
||||||
let child = this.#iframeChildren.get(selector);
|
let child = this.#iframeChildren.get(selector);
|
||||||
|
|
||||||
if (child === undefined) {
|
if (child === undefined) {
|
||||||
|
|
@ -55,7 +56,7 @@ class IframeObserver {
|
||||||
child.callbacks.add(callback);
|
child.callbacks.add(callback);
|
||||||
}
|
}
|
||||||
|
|
||||||
unobserveChild(selector: string, callback: ClientRectObserverEntryCallback) {
|
unobserveChild(selector: string, callback: FolkObserverEntry) {
|
||||||
let child = this.#iframeChildren.get(selector);
|
let child = this.#iframeChildren.get(selector);
|
||||||
|
|
||||||
if (child === undefined) return;
|
if (child === undefined) return;
|
||||||
|
|
@ -141,7 +142,7 @@ export class FolkObserver {
|
||||||
return FolkObserver.#instance;
|
return FolkObserver.#instance;
|
||||||
}
|
}
|
||||||
|
|
||||||
#elementMap = new WeakMap<Element, Set<ClientRectObserverEntryCallback>>();
|
#elementMap = new WeakMap<Element, Set<FolkObserverEntry>>();
|
||||||
#iframeMap = new WeakMap<HTMLIFrameElement, IframeObserver>();
|
#iframeMap = new WeakMap<HTMLIFrameElement, IframeObserver>();
|
||||||
|
|
||||||
#vo = new ClientRectObserver((entries) => {
|
#vo = new ClientRectObserver((entries) => {
|
||||||
|
|
@ -164,7 +165,7 @@ export class FolkObserver {
|
||||||
|
|
||||||
observe(
|
observe(
|
||||||
target: Element,
|
target: Element,
|
||||||
callback: ClientRectObserverEntryCallback,
|
callback: FolkObserverEntry,
|
||||||
{ iframeSelector }: FolkObserverOptions = {},
|
{ iframeSelector }: FolkObserverOptions = {},
|
||||||
): void {
|
): void {
|
||||||
if (target instanceof HTMLIFrameElement && iframeSelector) {
|
if (target instanceof HTMLIFrameElement && iframeSelector) {
|
||||||
|
|
@ -201,7 +202,7 @@ export class FolkObserver {
|
||||||
|
|
||||||
unobserve(
|
unobserve(
|
||||||
target: Element,
|
target: Element,
|
||||||
callback: ClientRectObserverEntryCallback,
|
callback: FolkObserverEntry,
|
||||||
{ iframeSelector }: FolkObserverOptions = {},
|
{ iframeSelector }: FolkObserverOptions = {},
|
||||||
): void {
|
): void {
|
||||||
if (target instanceof HTMLIFrameElement && iframeSelector) {
|
if (target instanceof HTMLIFrameElement && iframeSelector) {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue