UNPKG

vue-events-backbone

Version:

This plugin is an Event Bus that, by default, simulates DOM events propagation through vue components.

97 lines (96 loc) 5.06 kB
import { App, ComponentInternalInstance } from 'vue'; import { EventsBackboneSpine } from '../plugins/event-backbone.ts'; import { default as plugin } from '../index'; import { EventsBackboneAxon } from '../plugins/backbone-axon.ts'; declare module "vue" { interface EventsBackboneProperties { $eventsBackbone: { eventsBackboneSpine: EventsBackboneSpine; }; } } export default plugin; export * from '../index'; export interface EventsBackboneDendriteFunctions { [key: EventsBackboneNeurotransmitterKey]: NeuronCallbckFn; } export interface EventsBackboneAxonInterface { transmitSignal(s: EventsBackboneNeurotransmitterKey, d?: any): any; getNeuronFrom(): EventsBackboneNeuronInterface | undefined; getAxonKey(): EventsBackboneAxonKey; destroy(notifySenderNeuron: boolean, doNotAutoRecreate?: boolean): void; } export interface EventsBackboneDendriteInterface { getComponentInstance(): ComponentInternalInstance; setNeurotransmitterCallbacks(cbsf: EventsBackboneDendriteFunctions): void; removeNeurotransmitterCallbacks(cbsfk: EventsBackboneNeurotransmitterKey[]): void; getNeuron(): EventsBackboneNeuronInterface; deleteAxonFromDendrite(k: string, doNotAutoRecreate?: boolean): void; deliverSignalToDendrite(n: EventsBackboneNeurotransmitterKey, d?: any): any; sendSignalFromDendrite(ak: EventsBackboneAxonKey, s: EventsBackboneNeurotransmitterKey, data?: any): Promise<any>; destroy(): void; } export interface EventsBackboneBrainInterface { generateNeuron(s: EventsBackboneNeuronKey, c: ComponentInternalInstance, cbs?: EventsBackboneDendriteFunctions): EventsBackboneDendriteInterface; requestNeuronForAxon(neuronFromKey: EventsBackboneNeuronKey, neuronToKey: EventsBackboneNeuronKey): Promise<EventsBackboneNeuronInterface | void>; deleteNeuron(ngKey: EventsBackboneNeuronKey): void; stopPendingAxonRequest(nf: EventsBackboneNeuronKey, nt: EventsBackboneNeuronKey): void; } export interface EventsBackboneNeuronInterface { addDendrite(n: EventsBackboneDendriteInterface): EventsBackboneDendriteInterface; getDendrites(): Set<EventsBackboneDendriteInterface>; deleteDendrite(n: EventsBackboneDendriteInterface): void; hasDendrite(n: EventsBackboneDendriteInterface): boolean; getNeuronKey(): EventsBackboneNeuronKey; requestAxon(ak: EventsBackboneAxonKey, neuronToKey: EventsBackboneNeuronKey): Promise<EventsBackboneAxonInterface | undefined>; sendSignal(ak: EventsBackboneAxonKey, n: EventsBackboneNeurotransmitterKey, d?: any): Promise<any>; deliverSignal(n: EventsBackboneNeurotransmitterKey, d?: any): Promise<any>; destroy(): void; getAxons(): Map<EventsBackboneAxonKey, EventsBackboneAxon>; getAxon(k: string): EventsBackboneAxon | undefined; deleteAxon(k: string, doNotAutoRecreate?: boolean): void; notifyCutAxonFromReceiverNeuron(ak: EventsBackboneAxonKey, neuronToKey: EventsBackboneNeuronKey, doNotAutoRecreate: boolean): Promise<void>; notifyCutAxonFromSenderNeuron(ak: EventsBackboneAxonKey): Promise<void>; addAxonRequest(nt: EventsBackboneNeuronKey): void; removeAxonRequest(nt: EventsBackboneNeuronKey): void; stopPendingAxonRequest(nt: EventsBackboneNeuronKey): void; receiveAxon(a: EventsBackboneAxonInterface): void; } export interface EventsBackboneSpineInterface { emitEvent(currentInstance: ComponentInternalInstance, ev: string, data?: any, config?: { global?: boolean; eager?: boolean; }): void; on(componentInstance: ComponentInternalInstance, ev: string, h: EventsBackboneEventHandler): void; off(uid: number, ev: string, h?: EventsBackboneEventHandler): void; offAll(c: ComponentInternalInstance): void; } export interface installEventsBackbone { install: (app: App) => void; } export type EventsBackboneEventHandler = ((be: EventsBackboneSpineEvent) => void); export interface EventsBackboneSpineEvent { emitterComponentInstance: ComponentInternalInstance; handlerCallerComponentInstance: ComponentInternalInstance; eventName: string; branchSymbols: Array<Symbol>; eventData?: any; global?: boolean; propagationStopped?: boolean | null; eager?: boolean | null; stopPropagation: (() => void); once: (() => void); transformEvent: ((newName: string, newData?: any) => void); emitEvent: EventsBackboneEmitFn; } export interface EventsBackboneDirectiveParams { [key: string]: Array<EventsBackboneEventHandler>; } export type EventsBackboneAddListenerFn = (ls: EventsBackboneDirectiveParams, replace?: true) => void; export type EventsBackboneRemoveListenerFn = (ls: EventsBackboneDirectiveParams) => void; export type EventsBackboneEmitFn = ((ev: string, data?: any, global?: boolean, eager?: false) => Promise<void>); export type NeuronCallbckFn = (data?: any) => any; export type EventsBackboneNeuronKey = string; export type EventsBackboneAxonKey = string; export type EventsBackboneNeurotransmitterKey = string; export type EventsBackboneAxonSignal = string;