diff --git a/packages/core/src/lazy_import.ts b/packages/core/src/lazy_import.ts index 8337176..fbe7553 100644 --- a/packages/core/src/lazy_import.ts +++ b/packages/core/src/lazy_import.ts @@ -1,6 +1,6 @@ import SetMap from './data_structures/set_map'; -import { domReady, getMatchingElementsFrom } from './helpers/dom'; -import { ElementObserver } from './observers/element_observer'; +import { domReady } from './helpers/dom'; +import { SelectorObserver } from './observers/selector_observer'; const lazyElements = new SetMap void>(); @@ -20,7 +20,7 @@ const lazyElements = new SetMap void>(); export default function lazyImport(selector: string, callback: () => void) { lazyElements.add(selector, callback); - const observer = new ElementObserver(document.documentElement, { + new SelectorObserver(document.documentElement, selector, { elementConnected() { for (const selector of lazyElements.keys) { for (const callback of lazyElements.get(selector) || []) { @@ -29,10 +29,5 @@ export default function lazyImport(selector: string, callback: () => void) { } } }, - getMatchingElements(element) { - return getMatchingElementsFrom(element, selector); - }, - }); - - observer.start(); + }).start(); } diff --git a/packages/core/src/observers/attribute_observer.ts b/packages/core/src/observers/attribute_observer.ts index d7db656..3b20733 100644 --- a/packages/core/src/observers/attribute_observer.ts +++ b/packages/core/src/observers/attribute_observer.ts @@ -1,6 +1,6 @@ import { ElementObserver, type ElementObserverDelegate } from './element_observer'; -export type AttributeObserverDelegate = { +export type AttributeObserverDelegate = { elementConnected?: (element: T) => void; elementDisconnected?: (element: T) => void; elementAttributeChanged?: (element: T, name: string) => void; diff --git a/packages/core/src/observers/element_observer.ts b/packages/core/src/observers/element_observer.ts index 320ada1..dfd3aa1 100644 --- a/packages/core/src/observers/element_observer.ts +++ b/packages/core/src/observers/element_observer.ts @@ -1,4 +1,4 @@ -export type ElementObserverDelegate = { +export type ElementObserverDelegate = { elementConnected?: (element: T) => void; elementDisconnected?: (element: T) => void; elementAttributeChanged?: (element: T, name: string) => void; diff --git a/packages/core/src/observers/selector_observer.ts b/packages/core/src/observers/selector_observer.ts index c2b166c..23a813a 100644 --- a/packages/core/src/observers/selector_observer.ts +++ b/packages/core/src/observers/selector_observer.ts @@ -2,7 +2,7 @@ import { getMatchingElementsFrom } from '../helpers/dom'; import { ElementObserver } from './element_observer'; import { type ElementObserverDelegate } from './element_observer'; -export type SelectorObserverDelegate = { +export type SelectorObserverDelegate = { elementConnected?: (element: T) => void; elementDisconnected?: (element: T) => void; }; diff --git a/packages/core/src/observers/token_list_observer.ts b/packages/core/src/observers/token_list_observer.ts index e25d632..d8c3556 100644 --- a/packages/core/src/observers/token_list_observer.ts +++ b/packages/core/src/observers/token_list_observer.ts @@ -1,7 +1,7 @@ import SetMap from '../data_structures/set_map'; import { AttributeObserver, type AttributeObserverDelegate } from './attribute_observer'; -export type TokenListObserverDelegate = { +export type TokenListObserverDelegate = { tokenMatched?: (token: Token) => void; tokenUnmatched?: (token: Token) => void; };