@tarojs/runtime 3.6.33 → 3.6.35
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/dom/event.js +5 -4
- package/dist/dom/event.js.map +1 -1
- package/dist/index.cjs.js +5 -4
- package/dist/index.cjs.js.map +1 -1
- package/dist/runtime.esm.js +5 -4
- package/dist/runtime.esm.js.map +1 -1
- package/package.json +3 -3
package/dist/dom/event.js
CHANGED
|
@@ -29,14 +29,15 @@ class TaroEvent {
|
|
|
29
29
|
this.defaultPrevented = true;
|
|
30
30
|
}
|
|
31
31
|
get target() {
|
|
32
|
-
var _a, _b, _c, _d;
|
|
32
|
+
var _a, _b, _c, _d, _e;
|
|
33
33
|
const cacheTarget = this.cacheTarget;
|
|
34
34
|
if (!cacheTarget) {
|
|
35
35
|
const target = Object.create(((_a = this.mpEvent) === null || _a === void 0 ? void 0 : _a.target) || null);
|
|
36
|
+
const currentEle = env.document.getElementById(((_b = target.dataset) === null || _b === void 0 ? void 0 : _b.sid) || target.id || null);
|
|
36
37
|
// Note:优先判断冒泡场景alipay的targetDataset的sid, 不然冒泡场景target属性吐出不对,其余拿取当前绑定id
|
|
37
|
-
const element = env.document.getElementById(((
|
|
38
|
-
target.dataset = element !== null ? element.dataset : EMPTY_OBJ;
|
|
39
|
-
for (const key in (
|
|
38
|
+
const element = env.document.getElementById(((_c = target.targetDataset) === null || _c === void 0 ? void 0 : _c.sid) || ((_d = target.dataset) === null || _d === void 0 ? void 0 : _d.sid) || target.id || null);
|
|
39
|
+
target.dataset = Object.assign(Object.assign({}, (currentEle !== null ? currentEle.dataset : EMPTY_OBJ)), (element !== null ? element.dataset : EMPTY_OBJ));
|
|
40
|
+
for (const key in (_e = this.mpEvent) === null || _e === void 0 ? void 0 : _e.detail) {
|
|
40
41
|
target[key] = this.mpEvent.detail[key];
|
|
41
42
|
}
|
|
42
43
|
this.cacheTarget = target;
|
package/dist/dom/event.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event.js","sources":["../../src/dom/event.ts"],"sourcesContent":["import { EMPTY_OBJ, hooks, isUndefined } from '@tarojs/shared'\n\nimport {\n CONFIRM,\n CURRENT_TARGET,\n EVENT_CALLBACK_RESULT,\n INPUT,\n KEY_CODE,\n TARGET,\n TIME_STAMP,\n TOUCHMOVE,\n TYPE\n} from '../constants'\nimport env from '../env'\nimport { isParentBinded } from '../utils'\n\nimport type { EventOptions, MpEvent } from '../interface'\nimport type { TaroElement } from './element'\n\n// Taro 事件对象。以 Web 标准的事件对象为基础,加入小程序事件对象中携带的部分信息,并模拟实现事件冒泡。\nexport class TaroEvent {\n private cacheTarget\n private cacheCurrentTarget\n\n public type: string\n\n public bubbles: boolean\n\n public cancelable: boolean\n\n public _stop = false\n\n public _end = false\n\n public defaultPrevented = false\n\n // Mouse Event botton property, it's used in 3rd lib, like react-router. default 0 in general\n public button = 0\n\n // timestamp can either be hi-res ( relative to page load) or low-res (relative to UNIX epoch)\n // here use hi-res timestamp\n public timeStamp = Date.now()\n\n public mpEvent: MpEvent | undefined\n\n public constructor (type: string, opts: EventOptions, event?: MpEvent) {\n this.type = type.toLowerCase()\n this.mpEvent = event\n this.bubbles = Boolean(opts && opts.bubbles)\n this.cancelable = Boolean(opts && opts.cancelable)\n }\n\n public stopPropagation () {\n this._stop = true\n }\n\n public stopImmediatePropagation () {\n this._end = this._stop = true\n }\n\n public preventDefault () {\n this.defaultPrevented = true\n }\n\n get target () {\n const cacheTarget = this.cacheTarget\n if (!cacheTarget) {\n const target = Object.create(this.mpEvent?.target || null)\n // Note:优先判断冒泡场景alipay的targetDataset的sid, 不然冒泡场景target属性吐出不对,其余拿取当前绑定id\n const element = env.document.getElementById(target.targetDataset?.sid || target.dataset?.sid || target.id || null)\n target.dataset = element !== null ? element.dataset : EMPTY_OBJ\n\n for (const key in this.mpEvent?.detail) {\n target[key] = this.mpEvent!.detail[key]\n }\n\n this.cacheTarget = target\n\n return target\n } else {\n return cacheTarget\n }\n }\n\n get currentTarget () {\n const cacheCurrentTarget = this.cacheCurrentTarget\n if (!cacheCurrentTarget) {\n const doc = env.document\n\n const currentTarget = Object.create(this.mpEvent?.currentTarget || null)\n\n const element = doc.getElementById(currentTarget.dataset?.sid || currentTarget.id || null)\n const targetElement = doc.getElementById(this.mpEvent?.target?.dataset?.sid as string || this.mpEvent?.target?.id as string || null)\n\n if (element === null || (element && element === targetElement)) {\n this.cacheCurrentTarget = this.target\n return this.target\n }\n\n currentTarget.dataset = element.dataset\n\n for (const key in this.mpEvent?.detail) {\n currentTarget[key] = this.mpEvent!.detail[key]\n }\n\n this.cacheCurrentTarget = currentTarget\n\n return currentTarget\n } else {\n return cacheCurrentTarget\n }\n }\n}\n\nexport function createEvent (event: MpEvent | string, node?: TaroElement) {\n if (typeof event === 'string') {\n // For Vue3 using document.createEvent\n return new TaroEvent(event, { bubbles: true, cancelable: true })\n }\n\n const domEv = new TaroEvent(event.type, { bubbles: true, cancelable: true }, event)\n\n for (const key in event) {\n if (key === CURRENT_TARGET || key === TARGET || key === TYPE || key === TIME_STAMP) {\n continue\n } else {\n domEv[key] = event[key]\n }\n }\n\n if (domEv.type === CONFIRM && node?.nodeName === INPUT) {\n // eslint-disable-next-line dot-notation\n domEv[KEY_CODE] = 13\n }\n\n return domEv\n}\n\nconst eventsBatch = {}\n\nfunction getEventCBResult (event: MpEvent) {\n const result = event[EVENT_CALLBACK_RESULT]\n if (!isUndefined(result)) {\n delete event[EVENT_CALLBACK_RESULT]\n }\n return result\n}\n\n// 小程序的事件代理回调函数\nexport function eventHandler (event: MpEvent) {\n // Note: ohos 上事件没有设置 type、detail 类型 setter 方法,且部分事件(例如 load 等)缺失 target 导致事件错误\n event.type === undefined && Object.defineProperty(event, 'type', {\n value: (event as any)._type // ohos only\n })\n event.detail === undefined && Object.defineProperty(event, 'detail', {\n value: (event as any)._detail || { ...event } // ohos only\n })\n event.currentTarget = event.currentTarget || event.target || { ...event }\n hooks.call('modifyMpEventImpl', event)\n\n const currentTarget = event.currentTarget\n const id = currentTarget.dataset?.sid as string /** sid */ || currentTarget.id /** uid */ || event.detail?.id as string || ''\n\n const node = env.document.getElementById(id)\n if (node) {\n const dispatch = () => {\n const e = createEvent(event, node)\n\n hooks.call('modifyTaroEvent', e, node)\n hooks.call('dispatchTaroEvent', e, node)\n hooks.call('dispatchTaroEventFinish', e, node)\n }\n if (hooks.isExist('batchedEventUpdates')) {\n const type = event.type\n\n if (\n !hooks.call('isBubbleEvents', type) ||\n !isParentBinded(node, type) ||\n (type === TOUCHMOVE && !!node.props.catchMove)\n ) {\n // 最上层组件统一 batchUpdate\n hooks.call('batchedEventUpdates', () => {\n if (eventsBatch[type]) {\n eventsBatch[type].forEach(fn => fn())\n delete eventsBatch[type]\n }\n dispatch()\n })\n return getEventCBResult(event)\n } else {\n // 如果上层组件也有绑定同类型的组件,委托给上层组件调用事件回调\n (eventsBatch[type] ||= []).push(dispatch)\n }\n } else {\n dispatch()\n return getEventCBResult(event)\n }\n }\n}\n"],"names":[],"mappings":";;;;;AAmBA;MACa,SAAS,CAAA;AAyBpB,IAAA,WAAA,CAAoB,IAAY,EAAE,IAAkB,EAAE,KAAe,EAAA;QAf9D,IAAK,CAAA,KAAA,GAAG,KAAK,CAAA;QAEb,IAAI,CAAA,IAAA,GAAG,KAAK,CAAA;QAEZ,IAAgB,CAAA,gBAAA,GAAG,KAAK,CAAA;;QAGxB,IAAM,CAAA,MAAA,GAAG,CAAC,CAAA;;;AAIV,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;AAK3B,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAA;AAC9B,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;QACpB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,CAAA;QAC5C,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,CAAA;KACnD;IAEM,eAAe,GAAA;AACpB,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;KAClB;IAEM,wBAAwB,GAAA;QAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;KAC9B;IAEM,cAAc,GAAA;AACnB,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAA;KAC7B;AAED,IAAA,IAAI,MAAM,GAAA;;AACR,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAA;QACpC,IAAI,CAAC,WAAW,EAAE;AAChB,YAAA,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAA,CAAA,EAAA,GAAA,IAAI,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,MAAM,KAAI,IAAI,CAAC,CAAA;;AAE1D,YAAA,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAA,CAAA,EAAA,GAAA,MAAM,CAAC,aAAa,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,GAAG,MAAI,CAAA,EAAA,GAAA,MAAM,CAAC,OAAO,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,GAAG,CAAA,IAAI,MAAM,CAAC,EAAE,IAAI,IAAI,CAAC,CAAA;AAClH,YAAA,MAAM,CAAC,OAAO,GAAG,OAAO,KAAK,IAAI,GAAG,OAAO,CAAC,OAAO,GAAG,SAAS,CAAA;YAE/D,KAAK,MAAM,GAAG,IAAI,CAAA,EAAA,GAAA,IAAI,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,MAAM,EAAE;AACtC,gBAAA,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,OAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;AACxC,aAAA;AAED,YAAA,IAAI,CAAC,WAAW,GAAG,MAAM,CAAA;AAEzB,YAAA,OAAO,MAAM,CAAA;AACd,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,WAAW,CAAA;AACnB,SAAA;KACF;AAED,IAAA,IAAI,aAAa,GAAA;;AACf,QAAA,MAAM,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAA;QAClD,IAAI,CAAC,kBAAkB,EAAE;AACvB,YAAA,MAAM,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAA;AAExB,YAAA,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,CAAA,CAAA,EAAA,GAAA,IAAI,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,aAAa,KAAI,IAAI,CAAC,CAAA;YAExE,MAAM,OAAO,GAAG,GAAG,CAAC,cAAc,CAAC,CAAA,MAAA,aAAa,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,GAAG,KAAI,aAAa,CAAC,EAAE,IAAI,IAAI,CAAC,CAAA;AAC1F,YAAA,MAAM,aAAa,GAAG,GAAG,CAAC,cAAc,CAAC,CAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,CAAC,OAAO,0CAAE,MAAM,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,OAAO,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,GAAa,MAAI,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,MAAM,0CAAE,EAAY,CAAA,IAAI,IAAI,CAAC,CAAA;YAEpI,IAAI,OAAO,KAAK,IAAI,KAAK,OAAO,IAAI,OAAO,KAAK,aAAa,CAAC,EAAE;AAC9D,gBAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,MAAM,CAAA;gBACrC,OAAO,IAAI,CAAC,MAAM,CAAA;AACnB,aAAA;AAED,YAAA,aAAa,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAA;YAEvC,KAAK,MAAM,GAAG,IAAI,CAAA,EAAA,GAAA,IAAI,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,MAAM,EAAE;AACtC,gBAAA,aAAa,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,OAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;AAC/C,aAAA;AAED,YAAA,IAAI,CAAC,kBAAkB,GAAG,aAAa,CAAA;AAEvC,YAAA,OAAO,aAAa,CAAA;AACrB,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,kBAAkB,CAAA;AAC1B,SAAA;KACF;AACF,CAAA;AAEe,SAAA,WAAW,CAAE,KAAuB,EAAE,IAAkB,EAAA;AACtE,IAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;;AAE7B,QAAA,OAAO,IAAI,SAAS,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAA;AACjE,KAAA;IAED,MAAM,KAAK,GAAG,IAAI,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,KAAK,CAAC,CAAA;AAEnF,IAAA,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE;AACvB,QAAA,IAAI,GAAG,KAAK,cAAc,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,UAAU,EAAE;YAClF,SAAQ;AACT,SAAA;AAAM,aAAA;YACL,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAA;AACxB,SAAA;AACF,KAAA;AAED,IAAA,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,CAAA,IAAI,KAAJ,IAAA,IAAA,IAAI,uBAAJ,IAAI,CAAE,QAAQ,MAAK,KAAK,EAAE;;AAEtD,QAAA,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAA;AACrB,KAAA;AAED,IAAA,OAAO,KAAK,CAAA;AACd,CAAC;AAED,MAAM,WAAW,GAAG,EAAE,CAAA;AAEtB,SAAS,gBAAgB,CAAE,KAAc,EAAA;AACvC,IAAA,MAAM,MAAM,GAAG,KAAK,CAAC,qBAAqB,CAAC,CAAA;AAC3C,IAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE;AACxB,QAAA,OAAO,KAAK,CAAC,qBAAqB,CAAC,CAAA;AACpC,KAAA;AACD,IAAA,OAAO,MAAM,CAAA;AACf,CAAC;AAED;AACM,SAAU,YAAY,CAAE,KAAc,EAAA;;;AAE1C,IAAA,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE;AAC/D,QAAA,KAAK,EAAG,KAAa,CAAC,KAAK;AAC5B,KAAA,CAAC,CAAA;AACF,IAAA,KAAK,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,QAAQ,EAAE;QACnE,KAAK,EAAG,KAAa,CAAC,OAAO,sBAAS,KAAK,CAAE;AAC9C,KAAA,CAAC,CAAA;AACF,IAAA,KAAK,CAAC,aAAa,GAAG,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,MAAM,IAAS,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,KAAK,CAAE,CAAA;AACzE,IAAA,KAAK,CAAC,IAAI,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAA;AAEtC,IAAA,MAAM,aAAa,GAAG,KAAK,CAAC,aAAa,CAAA;IACzC,MAAM,EAAE,GAAG,CAAA,CAAA,EAAA,GAAA,aAAa,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,GAAa,gBAAe,aAAa,CAAC,EAAE,gBAAe,CAAA,EAAA,GAAA,KAAK,CAAC,MAAM,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,EAAY,CAAA,IAAI,EAAE,CAAA;IAE7H,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,CAAA;AAC5C,IAAA,IAAI,IAAI,EAAE;QACR,MAAM,QAAQ,GAAG,MAAK;YACpB,MAAM,CAAC,GAAG,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;YAElC,KAAK,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,EAAE,IAAI,CAAC,CAAA;YACtC,KAAK,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC,EAAE,IAAI,CAAC,CAAA;YACxC,KAAK,CAAC,IAAI,CAAC,yBAAyB,EAAE,CAAC,EAAE,IAAI,CAAC,CAAA;AAChD,SAAC,CAAA;AACD,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,qBAAqB,CAAC,EAAE;AACxC,YAAA,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAA;YAEvB,IACE,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC;AACnC,gBAAA,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC;AAC3B,iBAAC,IAAI,KAAK,SAAS,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAC9C;;AAEA,gBAAA,KAAK,CAAC,IAAI,CAAC,qBAAqB,EAAE,MAAK;AACrC,oBAAA,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE;AACrB,wBAAA,WAAW,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,CAAA;AACrC,wBAAA,OAAO,WAAW,CAAC,IAAI,CAAC,CAAA;AACzB,qBAAA;AACD,oBAAA,QAAQ,EAAE,CAAA;AACZ,iBAAC,CAAC,CAAA;AACF,gBAAA,OAAO,gBAAgB,CAAC,KAAK,CAAC,CAAA;AAC/B,aAAA;AAAM,iBAAA;;AAEL,gBAAA,CAAC,WAAW,CAAC,IAAI,CAAA,KAAhB,WAAW,CAAC,IAAI,CAAM,GAAA,EAAE,GAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;AAC1C,aAAA;AACF,SAAA;AAAM,aAAA;AACL,YAAA,QAAQ,EAAE,CAAA;AACV,YAAA,OAAO,gBAAgB,CAAC,KAAK,CAAC,CAAA;AAC/B,SAAA;AACF,KAAA;AACH;;;;"}
|
|
1
|
+
{"version":3,"file":"event.js","sources":["../../src/dom/event.ts"],"sourcesContent":["import { EMPTY_OBJ, hooks, isUndefined } from '@tarojs/shared'\n\nimport {\n CONFIRM,\n CURRENT_TARGET,\n EVENT_CALLBACK_RESULT,\n INPUT,\n KEY_CODE,\n TARGET,\n TIME_STAMP,\n TOUCHMOVE,\n TYPE\n} from '../constants'\nimport env from '../env'\nimport { isParentBinded } from '../utils'\n\nimport type { EventOptions, MpEvent } from '../interface'\nimport type { TaroElement } from './element'\n\n// Taro 事件对象。以 Web 标准的事件对象为基础,加入小程序事件对象中携带的部分信息,并模拟实现事件冒泡。\nexport class TaroEvent {\n private cacheTarget\n private cacheCurrentTarget\n\n public type: string\n\n public bubbles: boolean\n\n public cancelable: boolean\n\n public _stop = false\n\n public _end = false\n\n public defaultPrevented = false\n\n // Mouse Event botton property, it's used in 3rd lib, like react-router. default 0 in general\n public button = 0\n\n // timestamp can either be hi-res ( relative to page load) or low-res (relative to UNIX epoch)\n // here use hi-res timestamp\n public timeStamp = Date.now()\n\n public mpEvent: MpEvent | undefined\n\n public constructor (type: string, opts: EventOptions, event?: MpEvent) {\n this.type = type.toLowerCase()\n this.mpEvent = event\n this.bubbles = Boolean(opts && opts.bubbles)\n this.cancelable = Boolean(opts && opts.cancelable)\n }\n\n public stopPropagation () {\n this._stop = true\n }\n\n public stopImmediatePropagation () {\n this._end = this._stop = true\n }\n\n public preventDefault () {\n this.defaultPrevented = true\n }\n\n get target () {\n const cacheTarget = this.cacheTarget\n if (!cacheTarget) {\n const target = Object.create(this.mpEvent?.target || null)\n const currentEle = env.document.getElementById(target.dataset?.sid || target.id || null)\n // Note:优先判断冒泡场景alipay的targetDataset的sid, 不然冒泡场景target属性吐出不对,其余拿取当前绑定id\n const element = env.document.getElementById(target.targetDataset?.sid || target.dataset?.sid || target.id || null)\n\n target.dataset = {\n ...(currentEle !== null ? currentEle.dataset : EMPTY_OBJ),\n ...(element !== null ? element.dataset : EMPTY_OBJ)\n }\n\n for (const key in this.mpEvent?.detail) {\n target[key] = this.mpEvent!.detail[key]\n }\n\n this.cacheTarget = target\n\n return target\n } else {\n return cacheTarget\n }\n }\n\n get currentTarget () {\n const cacheCurrentTarget = this.cacheCurrentTarget\n if (!cacheCurrentTarget) {\n const doc = env.document\n\n const currentTarget = Object.create(this.mpEvent?.currentTarget || null)\n\n const element = doc.getElementById(currentTarget.dataset?.sid || currentTarget.id || null)\n const targetElement = doc.getElementById(this.mpEvent?.target?.dataset?.sid as string || this.mpEvent?.target?.id as string || null)\n\n if (element === null || (element && element === targetElement)) {\n this.cacheCurrentTarget = this.target\n return this.target\n }\n\n currentTarget.dataset = element.dataset\n\n for (const key in this.mpEvent?.detail) {\n currentTarget[key] = this.mpEvent!.detail[key]\n }\n\n this.cacheCurrentTarget = currentTarget\n\n return currentTarget\n } else {\n return cacheCurrentTarget\n }\n }\n}\n\nexport function createEvent (event: MpEvent | string, node?: TaroElement) {\n if (typeof event === 'string') {\n // For Vue3 using document.createEvent\n return new TaroEvent(event, { bubbles: true, cancelable: true })\n }\n\n const domEv = new TaroEvent(event.type, { bubbles: true, cancelable: true }, event)\n\n for (const key in event) {\n if (key === CURRENT_TARGET || key === TARGET || key === TYPE || key === TIME_STAMP) {\n continue\n } else {\n domEv[key] = event[key]\n }\n }\n\n if (domEv.type === CONFIRM && node?.nodeName === INPUT) {\n // eslint-disable-next-line dot-notation\n domEv[KEY_CODE] = 13\n }\n\n return domEv\n}\n\nconst eventsBatch = {}\n\nfunction getEventCBResult (event: MpEvent) {\n const result = event[EVENT_CALLBACK_RESULT]\n if (!isUndefined(result)) {\n delete event[EVENT_CALLBACK_RESULT]\n }\n return result\n}\n\n// 小程序的事件代理回调函数\nexport function eventHandler (event: MpEvent) {\n // Note: ohos 上事件没有设置 type、detail 类型 setter 方法,且部分事件(例如 load 等)缺失 target 导致事件错误\n event.type === undefined && Object.defineProperty(event, 'type', {\n value: (event as any)._type // ohos only\n })\n event.detail === undefined && Object.defineProperty(event, 'detail', {\n value: (event as any)._detail || { ...event } // ohos only\n })\n event.currentTarget = event.currentTarget || event.target || { ...event }\n hooks.call('modifyMpEventImpl', event)\n\n const currentTarget = event.currentTarget\n const id = currentTarget.dataset?.sid as string /** sid */ || currentTarget.id /** uid */ || event.detail?.id as string || ''\n\n const node = env.document.getElementById(id)\n if (node) {\n const dispatch = () => {\n const e = createEvent(event, node)\n\n hooks.call('modifyTaroEvent', e, node)\n hooks.call('dispatchTaroEvent', e, node)\n hooks.call('dispatchTaroEventFinish', e, node)\n }\n if (hooks.isExist('batchedEventUpdates')) {\n const type = event.type\n\n if (\n !hooks.call('isBubbleEvents', type) ||\n !isParentBinded(node, type) ||\n (type === TOUCHMOVE && !!node.props.catchMove)\n ) {\n // 最上层组件统一 batchUpdate\n hooks.call('batchedEventUpdates', () => {\n if (eventsBatch[type]) {\n eventsBatch[type].forEach(fn => fn())\n delete eventsBatch[type]\n }\n dispatch()\n })\n return getEventCBResult(event)\n } else {\n // 如果上层组件也有绑定同类型的组件,委托给上层组件调用事件回调\n (eventsBatch[type] ||= []).push(dispatch)\n }\n } else {\n dispatch()\n return getEventCBResult(event)\n }\n }\n}\n"],"names":[],"mappings":"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"}
|
package/dist/index.cjs.js
CHANGED
|
@@ -2497,14 +2497,15 @@ class TaroEvent {
|
|
|
2497
2497
|
this.defaultPrevented = true;
|
|
2498
2498
|
}
|
|
2499
2499
|
get target() {
|
|
2500
|
-
var _a, _b, _c, _d;
|
|
2500
|
+
var _a, _b, _c, _d, _e;
|
|
2501
2501
|
const cacheTarget = this.cacheTarget;
|
|
2502
2502
|
if (!cacheTarget) {
|
|
2503
2503
|
const target = Object.create(((_a = this.mpEvent) === null || _a === void 0 ? void 0 : _a.target) || null);
|
|
2504
|
+
const currentEle = env.document.getElementById(((_b = target.dataset) === null || _b === void 0 ? void 0 : _b.sid) || target.id || null);
|
|
2504
2505
|
// Note:优先判断冒泡场景alipay的targetDataset的sid, 不然冒泡场景target属性吐出不对,其余拿取当前绑定id
|
|
2505
|
-
const element = env.document.getElementById(((
|
|
2506
|
-
target.dataset = element !== null ? element.dataset : shared.EMPTY_OBJ;
|
|
2507
|
-
for (const key in (
|
|
2506
|
+
const element = env.document.getElementById(((_c = target.targetDataset) === null || _c === void 0 ? void 0 : _c.sid) || ((_d = target.dataset) === null || _d === void 0 ? void 0 : _d.sid) || target.id || null);
|
|
2507
|
+
target.dataset = Object.assign(Object.assign({}, (currentEle !== null ? currentEle.dataset : shared.EMPTY_OBJ)), (element !== null ? element.dataset : shared.EMPTY_OBJ));
|
|
2508
|
+
for (const key in (_e = this.mpEvent) === null || _e === void 0 ? void 0 : _e.detail) {
|
|
2508
2509
|
target[key] = this.mpEvent.detail[key];
|
|
2509
2510
|
}
|
|
2510
2511
|
this.cacheTarget = target;
|