feat: add mouse event listener #603
parent
959a062f83
commit
a2978bd1f5
@ -0,0 +1,38 @@
|
|||||||
|
import { EventBusMap } from '../../interface/EventBus'
|
||||||
|
import { Draw } from '../draw/Draw'
|
||||||
|
import { EventBus } from '../event/eventbus/EventBus'
|
||||||
|
|
||||||
|
export class MouseObserver {
|
||||||
|
private draw: Draw
|
||||||
|
private eventBus: EventBus<EventBusMap>
|
||||||
|
private pageContainer: HTMLDivElement
|
||||||
|
constructor(draw: Draw) {
|
||||||
|
this.draw = draw
|
||||||
|
this.eventBus = this.draw.getEventBus()
|
||||||
|
this.pageContainer = this.draw.getPageContainer()
|
||||||
|
this.pageContainer.addEventListener('mousemove', this._mousemove.bind(this))
|
||||||
|
this.pageContainer.addEventListener(
|
||||||
|
'mouseenter',
|
||||||
|
this._mouseenter.bind(this)
|
||||||
|
)
|
||||||
|
this.pageContainer.addEventListener(
|
||||||
|
'mouseleave',
|
||||||
|
this._mouseleave.bind(this)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
private _mousemove(evt: MouseEvent) {
|
||||||
|
if (!this.eventBus.isSubscribe('mousemove')) return
|
||||||
|
this.eventBus.emit('mousemove', evt)
|
||||||
|
}
|
||||||
|
|
||||||
|
private _mouseenter(evt: MouseEvent) {
|
||||||
|
if (!this.eventBus.isSubscribe('mouseenter')) return
|
||||||
|
this.eventBus.emit('mouseenter', evt)
|
||||||
|
}
|
||||||
|
|
||||||
|
private _mouseleave(evt: MouseEvent) {
|
||||||
|
if (!this.eventBus.isSubscribe('mouseleave')) return
|
||||||
|
this.eventBus.emit('mouseleave', evt)
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -1,3 +1,12 @@
|
|||||||
|
import { IElement } from './Element'
|
||||||
|
import { RangeRect } from './Range'
|
||||||
|
|
||||||
export interface IPasteOption {
|
export interface IPasteOption {
|
||||||
isPlainText: boolean
|
isPlainText: boolean
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export interface IPositionContextByEvent {
|
||||||
|
pageNo: number
|
||||||
|
element: IElement | null
|
||||||
|
rangeRect: RangeRect | null
|
||||||
|
}
|
||||||
|
|||||||
Loading…
Reference in new issue