improve(apis): events data for injected ui

pull/8122/head
charlie 2022-12-23 15:25:21 +08:00 committed by Tienson Qin
parent a55b73f296
commit 316ac6afd9
1 changed files with 6 additions and 2 deletions

View File

@ -424,6 +424,7 @@ export function setupInjectedUI(
'keydown', 'keydown',
'change', 'change',
'input', 'input',
'contextmenu'
].forEach((type) => { ].forEach((type) => {
el.addEventListener( el.addEventListener(
type, type,
@ -432,9 +433,10 @@ export function setupInjectedUI(
const trigger = target.closest(`[data-on-${type}]`) as HTMLElement const trigger = target.closest(`[data-on-${type}]`) as HTMLElement
if (!trigger) return if (!trigger) return
const { preventDefault } = trigger.dataset
const msgType = trigger.dataset[`on${ucFirst(type)}`] const msgType = trigger.dataset[`on${ucFirst(type)}`]
msgType && if (msgType) pl.caller?.callUserModel(msgType, transformableEvent(trigger, e))
pl.caller?.callUserModel(msgType, transformableEvent(trigger, e)) if (preventDefault?.toLowerCase() === 'true') e.preventDefault()
}, },
false false
) )
@ -473,6 +475,8 @@ export function transformableEvent(target: HTMLElement, e: Event) {
const obj: any = {} const obj: any = {}
if (target) { if (target) {
obj.type = e.type
const ds = target.dataset const ds = target.dataset
const FLAG_RECT = 'rect' const FLAG_RECT = 'rect'