@uxda/appkit 4.2.95 → 4.2.96
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/index.js
CHANGED
|
@@ -2239,21 +2239,6 @@ function getElementInfo(el) {
|
|
|
2239
2239
|
text: (el.textContent || el.innerText || "").trim()
|
|
2240
2240
|
};
|
|
2241
2241
|
}
|
|
2242
|
-
function getClickPosition(event) {
|
|
2243
|
-
const e = event;
|
|
2244
|
-
if ("touches" in e && e.touches.length > 0) {
|
|
2245
|
-
return {
|
|
2246
|
-
x: e.touches[0].clientX,
|
|
2247
|
-
y: e.touches[0].clientY
|
|
2248
|
-
};
|
|
2249
|
-
} else if ("clientX" in e) {
|
|
2250
|
-
return {
|
|
2251
|
-
x: e.clientX,
|
|
2252
|
-
y: e.clientY
|
|
2253
|
-
};
|
|
2254
|
-
}
|
|
2255
|
-
return { x: 0, y: 0 };
|
|
2256
|
-
}
|
|
2257
2242
|
function bindClickEvent(el, binding) {
|
|
2258
2243
|
const oldHandler = el.__trackClickHandler;
|
|
2259
2244
|
const oldOptions = el.__trackClickOptions;
|
|
@@ -2263,28 +2248,15 @@ function bindClickEvent(el, binding) {
|
|
|
2263
2248
|
delete el.__trackClickOptions;
|
|
2264
2249
|
}
|
|
2265
2250
|
const value = binding.value;
|
|
2266
|
-
const
|
|
2267
|
-
const { data = {}, elementId, elementText, preventDefault = false } = config;
|
|
2251
|
+
const elementText = typeof value === "string" ? value : "";
|
|
2268
2252
|
const elementInfo = getElementInfo(el);
|
|
2269
|
-
const finalElementId =
|
|
2270
|
-
const finalElementClass = elementInfo.className;
|
|
2253
|
+
const finalElementId = elementInfo.id || void 0;
|
|
2254
|
+
const finalElementClass = elementInfo.className || void 0;
|
|
2271
2255
|
const finalElementText = elementText || elementInfo.text;
|
|
2272
|
-
const handleClick = (
|
|
2273
|
-
if (preventDefault) {
|
|
2274
|
-
clickEvent.preventDefault();
|
|
2275
|
-
}
|
|
2276
|
-
const position = getClickPosition(clickEvent);
|
|
2256
|
+
const handleClick = () => {
|
|
2277
2257
|
trackingSDK.trackClick(finalElementId || finalElementClass, finalElementText);
|
|
2278
|
-
if (config.event && config.event !== "click") {
|
|
2279
|
-
trackingSDK.trackCustom(config.event, {
|
|
2280
|
-
elementId: finalElementId || finalElementClass,
|
|
2281
|
-
elementText: finalElementText,
|
|
2282
|
-
position,
|
|
2283
|
-
...data
|
|
2284
|
-
});
|
|
2285
|
-
}
|
|
2286
2258
|
};
|
|
2287
|
-
const eventOptions = { capture: true, passive:
|
|
2259
|
+
const eventOptions = { capture: true, passive: false };
|
|
2288
2260
|
el.addEventListener("click", handleClick, eventOptions);
|
|
2289
2261
|
el.__trackClickHandler = handleClick;
|
|
2290
2262
|
el.__trackClickOptions = eventOptions;
|
package/package.json
CHANGED
|
@@ -26,25 +26,6 @@ function getElementInfo(el: HTMLElement): { id?: string; className?: string; tex
|
|
|
26
26
|
}
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
-
/**
|
|
30
|
-
* 获取点击位置
|
|
31
|
-
*/
|
|
32
|
-
function getClickPosition(event: Event): { x: number; y: number } {
|
|
33
|
-
const e = event as MouseEvent | TouchEvent
|
|
34
|
-
if ('touches' in e && e.touches.length > 0) {
|
|
35
|
-
return {
|
|
36
|
-
x: e.touches[0].clientX,
|
|
37
|
-
y: e.touches[0].clientY,
|
|
38
|
-
}
|
|
39
|
-
} else if ('clientX' in e) {
|
|
40
|
-
return {
|
|
41
|
-
x: e.clientX,
|
|
42
|
-
y: e.clientY,
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
return { x: 0, y: 0 }
|
|
46
|
-
}
|
|
47
|
-
|
|
48
29
|
/**
|
|
49
30
|
* 绑定点击事件
|
|
50
31
|
*/
|
|
@@ -61,41 +42,22 @@ function bindClickEvent(el: HTMLElement, binding: any) {
|
|
|
61
42
|
const value = binding.value as TrackClickValue | string
|
|
62
43
|
|
|
63
44
|
// 处理字符串类型的值
|
|
64
|
-
const
|
|
65
|
-
|
|
66
|
-
const { data = {}, elementId, elementText, preventDefault = false } = config
|
|
45
|
+
const elementText: string = typeof value === 'string' ? value : ''
|
|
67
46
|
|
|
68
47
|
// 获取元素信息
|
|
69
48
|
const elementInfo = getElementInfo(el)
|
|
70
|
-
const finalElementId =
|
|
71
|
-
const finalElementClass = elementInfo.className
|
|
49
|
+
const finalElementId = elementInfo.id || undefined
|
|
50
|
+
const finalElementClass = elementInfo.className || undefined
|
|
72
51
|
const finalElementText = elementText || elementInfo.text
|
|
73
52
|
|
|
74
53
|
// 点击事件处理
|
|
75
|
-
const handleClick = (
|
|
76
|
-
if (preventDefault) {
|
|
77
|
-
clickEvent.preventDefault()
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
// 获取点击位置
|
|
81
|
-
const position = getClickPosition(clickEvent)
|
|
82
|
-
|
|
54
|
+
const handleClick = () => {
|
|
83
55
|
// 发送点击埋点
|
|
84
56
|
trackingSDK.trackClick(finalElementId || finalElementClass, finalElementText)
|
|
85
|
-
|
|
86
|
-
// 发送自定义事件埋点
|
|
87
|
-
if (config.event && config.event !== 'click') {
|
|
88
|
-
trackingSDK.trackCustom(config.event, {
|
|
89
|
-
elementId: finalElementId || finalElementClass,
|
|
90
|
-
elementText: finalElementText,
|
|
91
|
-
position,
|
|
92
|
-
...data,
|
|
93
|
-
})
|
|
94
|
-
}
|
|
95
57
|
}
|
|
96
58
|
|
|
97
59
|
// 事件监听器选项
|
|
98
|
-
const eventOptions = { capture: true, passive:
|
|
60
|
+
const eventOptions = { capture: true, passive: false }
|
|
99
61
|
|
|
100
62
|
// 绑定事件(使用捕获阶段,确保能捕获到事件)
|
|
101
63
|
el.addEventListener('click', handleClick, eventOptions)
|