UNPKG

vue-global-events

Version:

Register global events using vue template shortcuts

63 lines (59 loc) 2.11 kB
import * as vue from 'vue'; import { PropType, VNodeProps } from 'vue'; interface GlobalEventsProps { target?: Extract<keyof Window, string>; filter?: EventFilter; } interface EventFilter<E extends Event = Event> { (event: E, listener: EventListener, name: string): unknown; } declare const GlobalEventsImpl: vue.DefineComponent<{ target: { type: StringConstructor; default: string; }; filter: { type: PropType<EventFilter<Event> | EventFilter<Event>[]>; default: () => () => true; }; stop: BooleanConstructor; prevent: BooleanConstructor; }, () => null, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, Readonly<vue.ExtractPropTypes<{ target: { type: StringConstructor; default: string; }; filter: { type: PropType<EventFilter<Event> | EventFilter<Event>[]>; default: () => () => true; }; stop: BooleanConstructor; prevent: BooleanConstructor; }>>, { stop: boolean; filter: EventFilter<Event> | EventFilter<Event>[]; target: string; prevent: boolean; }, {}>; /** * Component of vue-lib. */ declare const GlobalEvents: new () => { $props: VNodeProps & GlobalEventsProps; }; /** * Creates a filter than can be passed to `<GlobalEvents />` to exclude events from elements with the given tag names. * * @param tagNames - array of tag names to exclude */ declare function excludeElements(tagNames: Array<Uppercase<_HTMLElementNames>>): (event: Event) => boolean; /** * Creates a filter than can be passed to `<GlobalEvents />` to include events from elements with the given tag names. * * @see excludeElements * * @param tagNames - array of tag names to include */ declare function includeElements(tagNames: Array<Uppercase<_HTMLElementNames>>): (event: Event) => boolean; type _HTMLElementNames = keyof HTMLElementTagNameMap; export { EventFilter, GlobalEvents, GlobalEventsImpl, GlobalEventsProps, _HTMLElementNames, excludeElements, includeElements };