UNPKG

@joist/element

Version:

Intelligently apply styles to WebComponents

29 lines (28 loc) 966 B
export interface AttrDef { propName: string | symbol; observe: boolean; reflect: boolean; getPropValue: () => unknown; setPropValue: (value: unknown) => void; } export type ListenerSelector<T> = (el: T) => EventTarget | null; export interface Listener<T> { event: string; cb: (e: Event) => void; selector: ListenerSelector<T>; } export type AttrChangedCallback = (name: string, oldValue: string, newValue: string) => void; export declare class AttrMetadata extends Map<string, AttrDef> { } export declare class AttrChangeMetadata extends Map<string, Set<AttrChangedCallback>> { } export declare class ElementMetadata<T> { attrs: AttrMetadata; attrChanges: AttrChangeMetadata; listeners: Listener<T>[]; onReady: Set<() => void>; } export declare class MetadataStore extends WeakMap<object, ElementMetadata<unknown>> { read<T>(value: object): ElementMetadata<T>; } export declare const metadataStore: MetadataStore;