UNPKG

galho

Version:

galho is js library for create and manipulate dom elements without need compiling, configuration or VirtualDom

27 lines (26 loc) 1.09 kB
import { bool, Dic, float, str } from "./util.js"; /**event arg */ export interface Arg<T = any> { v: T; /**prevented */ p?: bool; } export interface Options<A extends any[] = any[]> { delay?: float; once?: bool; passive?: bool; check?: (...args: A) => bool; } export type EventTargetCallback<T, A extends any[] = any[]> = ((this: T, ...args: A) => any) & Options<A>; export interface EventObject<T extends Dic<any[]> = any> { /**events handlers*/ eh: { [K in keyof T]?: EventTargetCallback<this, T[K]>[]; }; /**when true this object do not raise events */ slip?: bool; } export declare function on<E extends EventObject>(e: E, event: str, callback: EventTargetCallback<E>, options?: Options): E; export declare function off<E extends EventObject>(e: E, event: PropertyKey, callback?: EventTargetCallback<E>): E; export declare function emit<T extends EventObject, K extends keyof T["eh"]>(e: T, event: K, ...args: any[]): T; export declare function emitAsync(stack: EventTargetCallback<any>[], args: any[], me?: any): Promise<void>;