refactor: ♻️ refactor: Event => EventEmitter

This commit is contained in:
bubkoo
2021-04-06 09:34:03 +08:00
parent f617edcb8a
commit b1bff0f586
5 changed files with 20 additions and 20 deletions

View File

@ -5,16 +5,16 @@ import { Attr } from '../../util/attr'
import { Svg } from '../container/svg'
import { Adopter } from '../adopter'
import { Data } from './data'
import { Event } from './event'
import { Style } from './style'
import { Primer } from './primer'
import { Memory } from './memory'
import { Listener } from './listener'
import { ClassName } from './classname'
import { Transform } from './transform'
import { EventEmitter } from './event-emitter'
@Dom.register('Dom')
@Dom.mixin(Event, ClassName, Style, Data, Memory, Listener, Transform)
@Dom.mixin(EventEmitter, ClassName, Style, Data, Memory, Listener, Transform)
export class Dom<TNode extends Node = Node> extends Primer<TNode> {
first<T extends Dom = Dom>(): T | null {
return Dom.adopt<T>(this.node.firstChild)
@ -507,7 +507,7 @@ export class Dom<TNode extends Node = Node> extends Primer<TNode> {
export interface Dom<TNode extends Node = Node>
extends ClassName<TNode>,
Event<TNode>,
EventEmitter<TNode>,
Style<TNode>,
Data<TNode>,
Memory<TNode>,
@ -542,6 +542,6 @@ export namespace Dom {
export namespace Dom {
export const registerAttrHook = Attr.registerHook
export const registerEventHook = Event.registerHook
export const registerEventHook = EventEmitter.registerHook
export const registerStyleHook = Style.registerHook
}

View File

@ -10,7 +10,7 @@ import { EventHandler } from './event-types'
export namespace Core {
let triggered: string | undefined
export function add(
export function on(
elem: Store.EventTarget,
types: string,
handler:
@ -118,7 +118,7 @@ export namespace Core {
})
}
export function remove(
export function off(
elem: Store.EventTarget,
types: string,
handler?: EventHandler<any, any>,
@ -142,7 +142,7 @@ export namespace Core {
// Unbind all events (on this namespace, if provided) for the element
if (!originType) {
Object.keys(events).forEach((key) => {
remove(elem, key + item, handler, selector, true)
off(elem, key + item, handler, selector, true)
})
return
}

View File

@ -8,7 +8,7 @@ import { EventRaw } from './event-alias'
import { EventObject } from './event-object'
import { TypeEventHandler, TypeEventHandlers } from './event-types'
export class Event<TElement extends Node> extends Primer<TElement> {
export class EventEmitter<TElement extends Node> extends Primer<TElement> {
on<TType extends string>(
events: TType,
selector: string,
@ -50,7 +50,7 @@ export class Event<TElement extends Node> extends Primer<TElement> {
): this
on(events: TypeEventHandlers<TElement, undefined, TElement, TElement>): this
on(events: any, selector?: any, data?: any, handler?: any) {
Event.on(this.node as any, events, selector, data, handler)
EventEmitter.on(this.node as any, events, selector, data, handler)
return this
}
@ -95,7 +95,7 @@ export class Event<TElement extends Node> extends Primer<TElement> {
): this
once(events: TypeEventHandlers<TElement, undefined, TElement, TElement>): this
once(events: any, selector?: any, data?: any, handler?: any) {
Event.on(this.node as any, events, selector, data, handler, true)
EventEmitter.on(this.node as any, events, selector, data, handler, true)
return this
}
@ -132,7 +132,7 @@ export class Event<TElement extends Node> extends Primer<TElement> {
| false,
handler?: TypeEventHandler<TElement, any, any, any, TType> | false,
) {
Event.off(this.node, events, selector, handler)
EventEmitter.off(this.node, events, selector, handler)
return this
}
@ -146,7 +146,7 @@ export class Event<TElement extends Node> extends Primer<TElement> {
}
}
export namespace Event {
export namespace EventEmitter {
type EventHandler = false | ((...args: any[]) => any)
export function on(
@ -199,7 +199,7 @@ export namespace Event {
const originHandler = fn
fn = function (event, ...args: any[]) {
// Can use an empty set, since event contains the info
Event.off(event)
EventEmitter.off(elem, event)
return originHandler.call(this, event, ...args)
}
@ -207,7 +207,7 @@ export namespace Event {
Util.setHandlerId(fn, Util.ensureHandlerId(originHandler))
}
Core.add(elem, types as string, fn, data, selector as string)
Core.on(elem, types as string, fn, data, selector as string)
}
export function off<TType extends string, TElement>(
@ -254,10 +254,10 @@ export namespace Event {
fn = Util.returnFalse
}
Core.remove(elem as any, events as string, fn, selector)
Core.off(elem as any, events as string, fn, selector)
}
}
export namespace Event {
export namespace EventEmitter {
export const registerHook = Hook.add
}

View File

@ -94,7 +94,7 @@ export namespace Special {
) {
if (!isSync) {
if (!State.has(elem, type)) {
Core.add(elem, type, Util.returnTrue)
Core.on(elem, type, Util.returnTrue)
}
return
}
@ -102,7 +102,7 @@ export namespace Special {
// Register the controller as a special universal handler for all event namespaces
State.set(elem, type, false)
Core.add(elem, type, {
Core.on(elem, type, {
namespace: false,
handler(event, ...args) {
const node = this as HTMLElement

View File

@ -1,7 +1,7 @@
import { Event } from './event'
import { EventEmitter } from './event-emitter'
import { TypeEventHandler } from './event-types'
export class Listener<TElement extends Node> extends Event<TElement> {}
export class Listener<TElement extends Node> extends EventEmitter<TElement> {}
export interface Listener<TElement extends Node>
extends Listener.Methods<TElement> {}