@tarojs/components-advanced 4.2.1-beta.2 → 4.2.1
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/components/index.js +0 -2
- package/dist/components/index.js.map +1 -1
- package/dist/components/list/index.d.ts +7 -64
- package/dist/components/list/index.js +162 -1081
- package/dist/components/list/index.js.map +1 -1
- package/dist/components/virtual-list/vue/list.d.ts +12 -12
- package/dist/components/virtual-waterfall/vue/waterfall.d.ts +11 -11
- package/dist/components/water-flow/flow-item.js +11 -18
- package/dist/components/water-flow/flow-item.js.map +1 -1
- package/dist/components/water-flow/flow-section.js +1 -1
- package/dist/components/water-flow/flow-section.js.map +1 -1
- package/dist/components/water-flow/index.d.ts +1 -1
- package/dist/components/water-flow/interface.d.ts +2 -32
- package/dist/components/water-flow/node.d.ts +0 -3
- package/dist/components/water-flow/node.js +1 -34
- package/dist/components/water-flow/node.js.map +1 -1
- package/dist/components/water-flow/root.d.ts +4 -39
- package/dist/components/water-flow/root.js +44 -144
- package/dist/components/water-flow/root.js.map +1 -1
- package/dist/components/water-flow/section.d.ts +1 -11
- package/dist/components/water-flow/section.js +19 -81
- package/dist/components/water-flow/section.js.map +1 -1
- package/dist/components/water-flow/utils.d.ts +0 -4
- package/dist/components/water-flow/utils.js +1 -5
- package/dist/components/water-flow/utils.js.map +1 -1
- package/dist/components/water-flow/water-flow.d.ts +3 -2
- package/dist/components/water-flow/water-flow.js +36 -316
- package/dist/components/water-flow/water-flow.js.map +1 -1
- package/dist/index.js +0 -4
- package/dist/index.js.map +1 -1
- package/dist/utils/dom.d.ts +2 -2
- package/dist/utils/dom.js +6 -7
- package/dist/utils/dom.js.map +1 -1
- package/dist/utils/index.d.ts +0 -2
- package/dist/utils/index.js +0 -2
- package/dist/utils/index.js.map +1 -1
- package/package.json +8 -9
- package/dist/components/list/NoMore.d.ts +0 -30
- package/dist/components/list/NoMore.js +0 -10
- package/dist/components/list/NoMore.js.map +0 -1
- package/dist/components/list/hooks/useItemSizeCache.d.ts +0 -13
- package/dist/components/list/hooks/useItemSizeCache.js +0 -40
- package/dist/components/list/hooks/useItemSizeCache.js.map +0 -1
- package/dist/components/list/hooks/useListNestedScroll.d.ts +0 -18
- package/dist/components/list/hooks/useListNestedScroll.js +0 -61
- package/dist/components/list/hooks/useListNestedScroll.js.map +0 -1
- package/dist/components/list/hooks/useListScrollElementAttach.d.ts +0 -25
- package/dist/components/list/hooks/useListScrollElementAttach.js +0 -88
- package/dist/components/list/hooks/useListScrollElementAttach.js.map +0 -1
- package/dist/components/list/hooks/useListScrollElementAttachWeapp.d.ts +0 -15
- package/dist/components/list/hooks/useListScrollElementAttachWeapp.js +0 -135
- package/dist/components/list/hooks/useListScrollElementAttachWeapp.js.map +0 -1
- package/dist/components/list/hooks/useMeasureStartOffset.d.ts +0 -12
- package/dist/components/list/hooks/useMeasureStartOffset.js +0 -84
- package/dist/components/list/hooks/useMeasureStartOffset.js.map +0 -1
- package/dist/components/list/hooks/useMeasureStartOffsetWeapp.d.ts +0 -14
- package/dist/components/list/hooks/useMeasureStartOffsetWeapp.js +0 -87
- package/dist/components/list/hooks/useMeasureStartOffsetWeapp.js.map +0 -1
- package/dist/components/list/hooks/useRefresher.d.ts +0 -80
- package/dist/components/list/hooks/useRefresher.js +0 -561
- package/dist/components/list/hooks/useRefresher.js.map +0 -1
- package/dist/components/list/hooks/useResizeObserver.d.ts +0 -29
- package/dist/components/list/hooks/useResizeObserver.js +0 -153
- package/dist/components/list/hooks/useResizeObserver.js.map +0 -1
- package/dist/components/list/hooks/useScrollCorrection.d.ts +0 -19
- package/dist/components/list/hooks/useScrollCorrection.js +0 -74
- package/dist/components/list/hooks/useScrollCorrection.js.map +0 -1
- package/dist/components/list/hooks/useScrollParentAutoFind.d.ts +0 -20
- package/dist/components/list/hooks/useScrollParentAutoFind.js +0 -81
- package/dist/components/list/hooks/useScrollParentAutoFind.js.map +0 -1
- package/dist/components/list/utils.d.ts +0 -28
- package/dist/components/list/utils.js +0 -41
- package/dist/components/list/utils.js.map +0 -1
- package/dist/components/water-flow/water-flow-node-cache.d.ts +0 -24
- package/dist/components/water-flow/water-flow-node-cache.js +0 -161
- package/dist/components/water-flow/water-flow-node-cache.js.map +0 -1
- package/dist/utils/scrollElementContext.d.ts +0 -15
- package/dist/utils/scrollElementContext.js +0 -14
- package/dist/utils/scrollElementContext.js.map +0 -1
- package/dist/utils/scrollParent.d.ts +0 -33
- package/dist/utils/scrollParent.js +0 -88
- package/dist/utils/scrollParent.js.map +0 -1
- package/dist/utils/weapp-scope.d.ts +0 -7
- package/dist/utils/weapp-scope.js +0 -20
- package/dist/utils/weapp-scope.js.map +0 -1
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import type { Root } from './root';
|
|
2
|
-
/** 快速滑动判定:像素/秒 */
|
|
3
|
-
export declare const WF_FAST_SCROLL_VELOCITY_PX_PER_S = 1000;
|
|
4
|
-
/** 快速滑动时 cache 倍数 */
|
|
5
|
-
export declare const WF_FAST_SCROLL_MULTIPLIER = 2;
|
|
6
|
-
/** 单边 Node 缓存上限 */
|
|
7
|
-
export declare const WF_FAST_SCROLL_NODE_CACHE_MAX = 30;
|
|
8
|
-
/** 无 scroll 视为停止的等待(ms) */
|
|
9
|
-
export declare const WF_SCROLL_STOP_MS = 300;
|
|
10
|
-
/** 停止后多久收敛回 base cache(ms) */
|
|
11
|
-
export declare const WF_CACHE_RESTORE_DELAY_MS = 2000;
|
|
12
|
-
/** 过短间隔忽略 velocity(ms) */
|
|
13
|
-
export declare const WF_VELOCITY_MIN_DELTA_MS = 16;
|
|
14
|
-
/** 过长间隔视为新一段滚动(ms) */
|
|
15
|
-
export declare const WF_VELOCITY_RESET_DELTA_MS = 500;
|
|
16
|
-
export type WaterFlowNodeCacheControl = {
|
|
17
|
-
onScrollSample: (scrollTop: number) => void;
|
|
18
|
-
dispose: () => void;
|
|
19
|
-
};
|
|
20
|
-
/**
|
|
21
|
-
* 快速滑动时单边放大 Node 层 cache;停止后延迟收敛。
|
|
22
|
-
* 不暴露 props,内部常量可调参。
|
|
23
|
-
*/
|
|
24
|
-
export declare function createWaterFlowNodeCacheControl(root: Root, getBase: () => number): WaterFlowNodeCacheControl;
|
|
@@ -1,161 +0,0 @@
|
|
|
1
|
-
import { cancelAnimationFrame, requestAnimationFrame } from '@tarojs/runtime';
|
|
2
|
-
|
|
3
|
-
/** 快速滑动判定:像素/秒 */
|
|
4
|
-
const WF_FAST_SCROLL_VELOCITY_PX_PER_S = 1000;
|
|
5
|
-
/** 快速滑动时 cache 倍数 */
|
|
6
|
-
const WF_FAST_SCROLL_MULTIPLIER = 2;
|
|
7
|
-
/** 单边 Node 缓存上限 */
|
|
8
|
-
const WF_FAST_SCROLL_NODE_CACHE_MAX = 30;
|
|
9
|
-
/** 无 scroll 视为停止的等待(ms) */
|
|
10
|
-
const WF_SCROLL_STOP_MS = 300;
|
|
11
|
-
/** 停止后多久收敛回 base cache(ms) */
|
|
12
|
-
const WF_CACHE_RESTORE_DELAY_MS = 2000;
|
|
13
|
-
/** 过短间隔忽略 velocity(ms) */
|
|
14
|
-
const WF_VELOCITY_MIN_DELTA_MS = 16;
|
|
15
|
-
/** 过长间隔视为新一段滚动(ms) */
|
|
16
|
-
const WF_VELOCITY_RESET_DELTA_MS = 500;
|
|
17
|
-
/**
|
|
18
|
-
* 快速滑动时单边放大 Node 层 cache;停止后延迟收敛。
|
|
19
|
-
* 不暴露 props,内部常量可调参。
|
|
20
|
-
*/
|
|
21
|
-
function createWaterFlowNodeCacheControl(root, getBase) {
|
|
22
|
-
let lastProcessedScrollTop = 0;
|
|
23
|
-
let lastProcessedTime = 0;
|
|
24
|
-
let rafScheduled = false;
|
|
25
|
-
let rafId = null;
|
|
26
|
-
let pendingScrollTop = 0;
|
|
27
|
-
let pendingTime = 0;
|
|
28
|
-
let scrollStopTimer = null;
|
|
29
|
-
let restoreTimer = null;
|
|
30
|
-
let disposed = false;
|
|
31
|
-
/** 快滑会话:停滚收敛或长间隔重置前,轻滑仍按滚动方向维持单边放大 cache */
|
|
32
|
-
let boostSessionActive = false;
|
|
33
|
-
function flushVelocity() {
|
|
34
|
-
if (disposed)
|
|
35
|
-
return;
|
|
36
|
-
rafId = null;
|
|
37
|
-
rafScheduled = false;
|
|
38
|
-
const st = pendingScrollTop;
|
|
39
|
-
const t = pendingTime;
|
|
40
|
-
const base = getBase();
|
|
41
|
-
/** 基线 cache 已达快滑上限,放大无收益,直接收敛 */
|
|
42
|
-
if (base >= WF_FAST_SCROLL_NODE_CACHE_MAX) {
|
|
43
|
-
boostSessionActive = false;
|
|
44
|
-
root.setNodeCacheRange(base, base);
|
|
45
|
-
lastProcessedScrollTop = st;
|
|
46
|
-
lastProcessedTime = t;
|
|
47
|
-
return;
|
|
48
|
-
}
|
|
49
|
-
if (lastProcessedTime === 0) {
|
|
50
|
-
lastProcessedScrollTop = st;
|
|
51
|
-
lastProcessedTime = t;
|
|
52
|
-
boostSessionActive = false;
|
|
53
|
-
root.setNodeCacheRange(base, base);
|
|
54
|
-
return;
|
|
55
|
-
}
|
|
56
|
-
const dt = t - lastProcessedTime;
|
|
57
|
-
const delta = Math.abs(st - lastProcessedScrollTop);
|
|
58
|
-
if (dt < WF_VELOCITY_MIN_DELTA_MS) {
|
|
59
|
-
lastProcessedScrollTop = st;
|
|
60
|
-
lastProcessedTime = t;
|
|
61
|
-
return;
|
|
62
|
-
}
|
|
63
|
-
if (dt > WF_VELOCITY_RESET_DELTA_MS) {
|
|
64
|
-
lastProcessedScrollTop = st;
|
|
65
|
-
lastProcessedTime = t;
|
|
66
|
-
boostSessionActive = false;
|
|
67
|
-
root.setNodeCacheRange(base, base);
|
|
68
|
-
return;
|
|
69
|
-
}
|
|
70
|
-
const velocity = (delta / dt) * 1000;
|
|
71
|
-
const boosted = base > 0 ? Math.min(base * WF_FAST_SCROLL_MULTIPLIER, WF_FAST_SCROLL_NODE_CACHE_MAX) : 0;
|
|
72
|
-
const forwardDown = st >= lastProcessedScrollTop;
|
|
73
|
-
let backward = base;
|
|
74
|
-
let forward = base;
|
|
75
|
-
if (base > 0) {
|
|
76
|
-
if (velocity > WF_FAST_SCROLL_VELOCITY_PX_PER_S) {
|
|
77
|
-
boostSessionActive = true;
|
|
78
|
-
}
|
|
79
|
-
if (boostSessionActive) {
|
|
80
|
-
if (forwardDown) {
|
|
81
|
-
forward = boosted;
|
|
82
|
-
backward = base;
|
|
83
|
-
}
|
|
84
|
-
else {
|
|
85
|
-
backward = boosted;
|
|
86
|
-
forward = base;
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
root.setNodeCacheRange(backward, forward);
|
|
91
|
-
lastProcessedScrollTop = st;
|
|
92
|
-
lastProcessedTime = t;
|
|
93
|
-
}
|
|
94
|
-
function onScrollSample(scrollTop) {
|
|
95
|
-
if (disposed)
|
|
96
|
-
return;
|
|
97
|
-
const base = getBase();
|
|
98
|
-
/** 基线已达快滑上限,跳过全部检测调度以减少开销 */
|
|
99
|
-
if (base >= WF_FAST_SCROLL_NODE_CACHE_MAX) {
|
|
100
|
-
boostSessionActive = false;
|
|
101
|
-
if (rafId != null) {
|
|
102
|
-
cancelAnimationFrame(rafId);
|
|
103
|
-
rafId = null;
|
|
104
|
-
}
|
|
105
|
-
rafScheduled = false;
|
|
106
|
-
if (scrollStopTimer != null) {
|
|
107
|
-
clearTimeout(scrollStopTimer);
|
|
108
|
-
scrollStopTimer = null;
|
|
109
|
-
}
|
|
110
|
-
if (restoreTimer != null) {
|
|
111
|
-
clearTimeout(restoreTimer);
|
|
112
|
-
restoreTimer = null;
|
|
113
|
-
}
|
|
114
|
-
return;
|
|
115
|
-
}
|
|
116
|
-
pendingScrollTop = scrollTop;
|
|
117
|
-
pendingTime = Date.now();
|
|
118
|
-
if (!rafScheduled) {
|
|
119
|
-
rafScheduled = true;
|
|
120
|
-
rafId = requestAnimationFrame(flushVelocity);
|
|
121
|
-
}
|
|
122
|
-
if (scrollStopTimer != null) {
|
|
123
|
-
clearTimeout(scrollStopTimer);
|
|
124
|
-
scrollStopTimer = null;
|
|
125
|
-
}
|
|
126
|
-
if (restoreTimer != null) {
|
|
127
|
-
clearTimeout(restoreTimer);
|
|
128
|
-
restoreTimer = null;
|
|
129
|
-
}
|
|
130
|
-
scrollStopTimer = setTimeout(() => {
|
|
131
|
-
scrollStopTimer = null;
|
|
132
|
-
restoreTimer = setTimeout(() => {
|
|
133
|
-
restoreTimer = null;
|
|
134
|
-
if (disposed)
|
|
135
|
-
return;
|
|
136
|
-
boostSessionActive = false;
|
|
137
|
-
root.setNodeCacheRange(getBase(), getBase());
|
|
138
|
-
}, WF_CACHE_RESTORE_DELAY_MS);
|
|
139
|
-
}, WF_SCROLL_STOP_MS);
|
|
140
|
-
}
|
|
141
|
-
function dispose() {
|
|
142
|
-
disposed = true;
|
|
143
|
-
if (rafId != null) {
|
|
144
|
-
cancelAnimationFrame(rafId);
|
|
145
|
-
rafId = null;
|
|
146
|
-
}
|
|
147
|
-
rafScheduled = false;
|
|
148
|
-
if (scrollStopTimer != null) {
|
|
149
|
-
clearTimeout(scrollStopTimer);
|
|
150
|
-
scrollStopTimer = null;
|
|
151
|
-
}
|
|
152
|
-
if (restoreTimer != null) {
|
|
153
|
-
clearTimeout(restoreTimer);
|
|
154
|
-
restoreTimer = null;
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
return { onScrollSample, dispose };
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
export { WF_CACHE_RESTORE_DELAY_MS, WF_FAST_SCROLL_MULTIPLIER, WF_FAST_SCROLL_NODE_CACHE_MAX, WF_FAST_SCROLL_VELOCITY_PX_PER_S, WF_SCROLL_STOP_MS, WF_VELOCITY_MIN_DELTA_MS, WF_VELOCITY_RESET_DELTA_MS, createWaterFlowNodeCacheControl };
|
|
161
|
-
//# sourceMappingURL=water-flow-node-cache.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"water-flow-node-cache.js","sources":["../../../src/components/water-flow/water-flow-node-cache.ts"],"sourcesContent":["import { cancelAnimationFrame, requestAnimationFrame } from '@tarojs/runtime'\n\nimport type { Root } from './root'\n\n/** 快速滑动判定:像素/秒 */\nexport const WF_FAST_SCROLL_VELOCITY_PX_PER_S = 1000\n/** 快速滑动时 cache 倍数 */\nexport const WF_FAST_SCROLL_MULTIPLIER = 2\n/** 单边 Node 缓存上限 */\nexport const WF_FAST_SCROLL_NODE_CACHE_MAX = 30\n/** 无 scroll 视为停止的等待(ms) */\nexport const WF_SCROLL_STOP_MS = 300\n/** 停止后多久收敛回 base cache(ms) */\nexport const WF_CACHE_RESTORE_DELAY_MS = 2000\n/** 过短间隔忽略 velocity(ms) */\nexport const WF_VELOCITY_MIN_DELTA_MS = 16\n/** 过长间隔视为新一段滚动(ms) */\nexport const WF_VELOCITY_RESET_DELTA_MS = 500\n\nexport type WaterFlowNodeCacheControl = {\n onScrollSample: (scrollTop: number) => void\n dispose: () => void\n}\n\n/**\n * 快速滑动时单边放大 Node 层 cache;停止后延迟收敛。\n * 不暴露 props,内部常量可调参。\n */\nexport function createWaterFlowNodeCacheControl (\n root: Root,\n getBase: () => number\n): WaterFlowNodeCacheControl {\n let lastProcessedScrollTop = 0\n let lastProcessedTime = 0\n let rafScheduled = false\n let rafId: number | null = null\n let pendingScrollTop = 0\n let pendingTime = 0\n let scrollStopTimer: ReturnType<typeof setTimeout> | null = null\n let restoreTimer: ReturnType<typeof setTimeout> | null = null\n let disposed = false\n /** 快滑会话:停滚收敛或长间隔重置前,轻滑仍按滚动方向维持单边放大 cache */\n let boostSessionActive = false\n\n function flushVelocity () {\n if (disposed) return\n rafId = null\n rafScheduled = false\n const st = pendingScrollTop\n const t = pendingTime\n const base = getBase()\n\n /** 基线 cache 已达快滑上限,放大无收益,直接收敛 */\n if (base >= WF_FAST_SCROLL_NODE_CACHE_MAX) {\n boostSessionActive = false\n root.setNodeCacheRange(base, base)\n lastProcessedScrollTop = st\n lastProcessedTime = t\n return\n }\n\n if (lastProcessedTime === 0) {\n lastProcessedScrollTop = st\n lastProcessedTime = t\n boostSessionActive = false\n root.setNodeCacheRange(base, base)\n return\n }\n\n const dt = t - lastProcessedTime\n const delta = Math.abs(st - lastProcessedScrollTop)\n\n if (dt < WF_VELOCITY_MIN_DELTA_MS) {\n lastProcessedScrollTop = st\n lastProcessedTime = t\n return\n }\n\n if (dt > WF_VELOCITY_RESET_DELTA_MS) {\n lastProcessedScrollTop = st\n lastProcessedTime = t\n boostSessionActive = false\n root.setNodeCacheRange(base, base)\n return\n }\n\n const velocity = (delta / dt) * 1000\n const boosted =\n base > 0 ? Math.min(base * WF_FAST_SCROLL_MULTIPLIER, WF_FAST_SCROLL_NODE_CACHE_MAX) : 0\n const forwardDown = st >= lastProcessedScrollTop\n\n let backward = base\n let forward = base\n if (base > 0) {\n if (velocity > WF_FAST_SCROLL_VELOCITY_PX_PER_S) {\n boostSessionActive = true\n }\n if (boostSessionActive) {\n if (forwardDown) {\n forward = boosted\n backward = base\n } else {\n backward = boosted\n forward = base\n }\n }\n }\n\n root.setNodeCacheRange(backward, forward)\n lastProcessedScrollTop = st\n lastProcessedTime = t\n }\n\n function onScrollSample (scrollTop: number) {\n if (disposed) return\n\n const base = getBase()\n /** 基线已达快滑上限,跳过全部检测调度以减少开销 */\n if (base >= WF_FAST_SCROLL_NODE_CACHE_MAX) {\n boostSessionActive = false\n if (rafId != null) {\n cancelAnimationFrame(rafId)\n rafId = null\n }\n rafScheduled = false\n if (scrollStopTimer != null) {\n clearTimeout(scrollStopTimer)\n scrollStopTimer = null\n }\n if (restoreTimer != null) {\n clearTimeout(restoreTimer)\n restoreTimer = null\n }\n return\n }\n\n pendingScrollTop = scrollTop\n pendingTime = Date.now()\n if (!rafScheduled) {\n rafScheduled = true\n rafId = requestAnimationFrame(flushVelocity) as unknown as number\n }\n\n if (scrollStopTimer != null) {\n clearTimeout(scrollStopTimer)\n scrollStopTimer = null\n }\n if (restoreTimer != null) {\n clearTimeout(restoreTimer)\n restoreTimer = null\n }\n\n scrollStopTimer = setTimeout(() => {\n scrollStopTimer = null\n restoreTimer = setTimeout(() => {\n restoreTimer = null\n if (disposed) return\n boostSessionActive = false\n root.setNodeCacheRange(getBase(), getBase())\n }, WF_CACHE_RESTORE_DELAY_MS)\n }, WF_SCROLL_STOP_MS)\n }\n\n function dispose () {\n disposed = true\n if (rafId != null) {\n cancelAnimationFrame(rafId)\n rafId = null\n }\n rafScheduled = false\n if (scrollStopTimer != null) {\n clearTimeout(scrollStopTimer)\n scrollStopTimer = null\n }\n if (restoreTimer != null) {\n clearTimeout(restoreTimer)\n restoreTimer = null\n }\n }\n\n return { onScrollSample, dispose }\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import type { MutableRefObject } from 'react';
|
|
2
|
-
/** 与 ScrollElementContextValue 同构,components-react 未导出时兜底 */
|
|
3
|
-
export interface ScrollElementContextValueShape {
|
|
4
|
-
scrollRef: MutableRefObject<HTMLElement | null>;
|
|
5
|
-
containerHeight: number;
|
|
6
|
-
startOffset: number;
|
|
7
|
-
reportNestedHeightChange?: (scrollHeight: number) => void;
|
|
8
|
-
}
|
|
9
|
-
/**
|
|
10
|
-
* 当 @tarojs/components-react 未导出 ScrollElementContext 时(版本过旧)兜底,
|
|
11
|
-
* 避免 useContext(undefined) 报错。等效于无 Context,useContext 返回 null。
|
|
12
|
-
*/
|
|
13
|
-
export declare const FALLBACK_SCROLL_ELEMENT_CTX: import("react").Context<ScrollElementContextValueShape>;
|
|
14
|
-
/** 安全获取 ScrollElementContext:存在则用原版,否则用兜底 */
|
|
15
|
-
export declare const ScrollElementContextOrFallback: import("react").Context<ScrollElementContextValueShape>;
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import * as ComponentsReact from '@tarojs/components-react';
|
|
2
|
-
import { createContext } from 'react';
|
|
3
|
-
|
|
4
|
-
var _a;
|
|
5
|
-
/**
|
|
6
|
-
* 当 @tarojs/components-react 未导出 ScrollElementContext 时(版本过旧)兜底,
|
|
7
|
-
* 避免 useContext(undefined) 报错。等效于无 Context,useContext 返回 null。
|
|
8
|
-
*/
|
|
9
|
-
const FALLBACK_SCROLL_ELEMENT_CTX = createContext(null);
|
|
10
|
-
/** 安全获取 ScrollElementContext:存在则用原版,否则用兜底 */
|
|
11
|
-
const ScrollElementContextOrFallback = (_a = ComponentsReact.ScrollElementContext) !== null && _a !== void 0 ? _a : FALLBACK_SCROLL_ELEMENT_CTX;
|
|
12
|
-
|
|
13
|
-
export { FALLBACK_SCROLL_ELEMENT_CTX, ScrollElementContextOrFallback };
|
|
14
|
-
//# sourceMappingURL=scrollElementContext.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scrollElementContext.js","sources":["../../src/utils/scrollElementContext.ts"],"sourcesContent":["import * as ComponentsReact from '@tarojs/components-react'\nimport { createContext } from 'react'\n\nimport type { MutableRefObject } from 'react'\n\n/** 与 ScrollElementContextValue 同构,components-react 未导出时兜底 */\nexport interface ScrollElementContextValueShape {\n scrollRef: MutableRefObject<HTMLElement | null>\n containerHeight: number\n startOffset: number\n reportNestedHeightChange?: (scrollHeight: number) => void\n}\n\n/**\n * 当 @tarojs/components-react 未导出 ScrollElementContext 时(版本过旧)兜底,\n * 避免 useContext(undefined) 报错。等效于无 Context,useContext 返回 null。\n */\nexport const FALLBACK_SCROLL_ELEMENT_CTX =\n createContext<ScrollElementContextValueShape | null>(null)\n\n/** 安全获取 ScrollElementContext:存在则用原版,否则用兜底 */\nexport const ScrollElementContextOrFallback =\n (ComponentsReact as { ScrollElementContext?: typeof FALLBACK_SCROLL_ELEMENT_CTX }).ScrollElementContext ??\n FALLBACK_SCROLL_ELEMENT_CTX\n"],"names":[],"mappings":";;;;AAaA;;;AAGG;MACU,2BAA2B,GACtC,aAAa,CAAwC,IAAI;AAE3D;AACa,MAAA,8BAA8B,GACzC,CAAA,EAAA,GAAC,eAAiF,CAAC,oBAAoB,MACvG,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA;;;;"}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 查找元素的真实滚动父节点。
|
|
3
|
-
* 用于 nestedScroll 模式下无 props/Context 时自动获取 scrollElement。
|
|
4
|
-
*
|
|
5
|
-
* 策略:
|
|
6
|
-
* 1. 优先命中 Taro ScrollView 类名 .taro-scroll
|
|
7
|
-
* 2. 回退:向上遍历找通用可滚动祖先
|
|
8
|
-
*
|
|
9
|
-
* 严格条件(均需满足):
|
|
10
|
-
* - overflow 为 auto | scroll | overlay
|
|
11
|
-
* - scrollHeight > clientHeight(纵向)或 scrollWidth > clientWidth(横向)
|
|
12
|
-
* - 在 document.body 前停止
|
|
13
|
-
*/
|
|
14
|
-
import type { TaroElement } from '@tarojs/runtime';
|
|
15
|
-
/**
|
|
16
|
-
* 判断元素是否可滚动(严格:overflow 可滚动 + 实际有溢出)
|
|
17
|
-
*/
|
|
18
|
-
export declare function isScrollableElement(el: HTMLElement | null, vertical?: boolean): el is HTMLElement;
|
|
19
|
-
/**
|
|
20
|
-
* 从给定元素向上查找最近的滚动父节点。
|
|
21
|
-
* 优先匹配 .taro-scroll,未命中则按通用可滚动条件查找。
|
|
22
|
-
*/
|
|
23
|
-
export declare function findScrollParent(el: HTMLElement | null, vertical?: boolean): HTMLElement | null;
|
|
24
|
-
/**
|
|
25
|
-
* 小程序端:基于 Taro 虚拟 DOM 查找父级 scroll-view。
|
|
26
|
-
* 从 contentId 对应节点沿 parentNode 向上遍历,找到 nodeName === 'scroll-view' 的节点。
|
|
27
|
-
*
|
|
28
|
-
* 仅用于小程序环境,H5 请使用 findScrollParent。
|
|
29
|
-
*
|
|
30
|
-
* @param contentId - content 节点的 id(需在 eventSource 中已注册)
|
|
31
|
-
* @returns 找到的 TaroElement(scroll-view)或 null
|
|
32
|
-
*/
|
|
33
|
-
export declare function findScrollParentTaro(contentId: string): TaroElement | null;
|
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
import { document as document$1 } from '@tarojs/runtime';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* 查找元素的真实滚动父节点。
|
|
5
|
-
* 用于 nestedScroll 模式下无 props/Context 时自动获取 scrollElement。
|
|
6
|
-
*
|
|
7
|
-
* 策略:
|
|
8
|
-
* 1. 优先命中 Taro ScrollView 类名 .taro-scroll
|
|
9
|
-
* 2. 回退:向上遍历找通用可滚动祖先
|
|
10
|
-
*
|
|
11
|
-
* 严格条件(均需满足):
|
|
12
|
-
* - overflow 为 auto | scroll | overlay
|
|
13
|
-
* - scrollHeight > clientHeight(纵向)或 scrollWidth > clientWidth(横向)
|
|
14
|
-
* - 在 document.body 前停止
|
|
15
|
-
*/
|
|
16
|
-
const SCROLLABLE_OVERFLOW = ['auto', 'scroll', 'overlay'];
|
|
17
|
-
/** 小程序端 scroll-view 的 nodeName(Taro 虚拟 DOM) */
|
|
18
|
-
const SCROLL_VIEW_NODE_NAME = 'scroll-view';
|
|
19
|
-
/**
|
|
20
|
-
* 判断元素是否可滚动(严格:overflow 可滚动 + 实际有溢出)
|
|
21
|
-
*/
|
|
22
|
-
function isScrollableElement(el, vertical = true) {
|
|
23
|
-
if (!el || el === document.body)
|
|
24
|
-
return false;
|
|
25
|
-
const style = getComputedStyle(el);
|
|
26
|
-
const overflow = vertical ? style.overflowY : style.overflowX;
|
|
27
|
-
if (!SCROLLABLE_OVERFLOW.includes(overflow))
|
|
28
|
-
return false;
|
|
29
|
-
const hasOverflow = vertical
|
|
30
|
-
? el.scrollHeight > el.clientHeight
|
|
31
|
-
: el.scrollWidth > el.clientWidth;
|
|
32
|
-
return hasOverflow;
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* 从给定元素向上查找最近的滚动父节点。
|
|
36
|
-
* 优先匹配 .taro-scroll,未命中则按通用可滚动条件查找。
|
|
37
|
-
*/
|
|
38
|
-
function findScrollParent(el, vertical = true) {
|
|
39
|
-
var _a;
|
|
40
|
-
if (!el)
|
|
41
|
-
return null;
|
|
42
|
-
// 1. 优先:Taro ScrollView 的 div(.taro-scroll)
|
|
43
|
-
const taroScroll = (_a = el.closest) === null || _a === void 0 ? void 0 : _a.call(el, '.taro-scroll');
|
|
44
|
-
if (taroScroll && taroScroll !== document.body && isScrollableElement(taroScroll, vertical)) {
|
|
45
|
-
return taroScroll;
|
|
46
|
-
}
|
|
47
|
-
// 2. 回退:通用可滚动祖先
|
|
48
|
-
let parent = el.parentElement;
|
|
49
|
-
while (parent !== null && parent !== document.body) {
|
|
50
|
-
if (isScrollableElement(parent, vertical))
|
|
51
|
-
return parent;
|
|
52
|
-
parent = parent.parentElement;
|
|
53
|
-
}
|
|
54
|
-
return null;
|
|
55
|
-
}
|
|
56
|
-
/**
|
|
57
|
-
* 小程序端:基于 Taro 虚拟 DOM 查找父级 scroll-view。
|
|
58
|
-
* 从 contentId 对应节点沿 parentNode 向上遍历,找到 nodeName === 'scroll-view' 的节点。
|
|
59
|
-
*
|
|
60
|
-
* 仅用于小程序环境,H5 请使用 findScrollParent。
|
|
61
|
-
*
|
|
62
|
-
* @param contentId - content 节点的 id(需在 eventSource 中已注册)
|
|
63
|
-
* @returns 找到的 TaroElement(scroll-view)或 null
|
|
64
|
-
*/
|
|
65
|
-
function findScrollParentTaro(contentId) {
|
|
66
|
-
var _a;
|
|
67
|
-
if (!contentId)
|
|
68
|
-
return null;
|
|
69
|
-
const doc = document$1;
|
|
70
|
-
const el = (_a = doc.getElementById) === null || _a === void 0 ? void 0 : _a.call(doc, contentId);
|
|
71
|
-
if (!el || !el.parentNode)
|
|
72
|
-
return null;
|
|
73
|
-
let node = el;
|
|
74
|
-
while (node) {
|
|
75
|
-
const parent = node.parentNode;
|
|
76
|
-
if (!parent)
|
|
77
|
-
break;
|
|
78
|
-
// NodeType.ELEMENT_NODE === 1
|
|
79
|
-
if (parent.nodeType === 1 && parent.nodeName === SCROLL_VIEW_NODE_NAME) {
|
|
80
|
-
return parent;
|
|
81
|
-
}
|
|
82
|
-
node = parent;
|
|
83
|
-
}
|
|
84
|
-
return null;
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
export { findScrollParent, findScrollParentTaro, isScrollableElement };
|
|
88
|
-
//# sourceMappingURL=scrollParent.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scrollParent.js","sources":["../../src/utils/scrollParent.ts"],"sourcesContent":["/**\n * 查找元素的真实滚动父节点。\n * 用于 nestedScroll 模式下无 props/Context 时自动获取 scrollElement。\n *\n * 策略:\n * 1. 优先命中 Taro ScrollView 类名 .taro-scroll\n * 2. 回退:向上遍历找通用可滚动祖先\n *\n * 严格条件(均需满足):\n * - overflow 为 auto | scroll | overlay\n * - scrollHeight > clientHeight(纵向)或 scrollWidth > clientWidth(横向)\n * - 在 document.body 前停止\n */\n\nimport { document as taroDocument } from '@tarojs/runtime'\n\nimport type { TaroElement, TaroNode } from '@tarojs/runtime'\n\nconst SCROLLABLE_OVERFLOW = ['auto', 'scroll', 'overlay'] as const\n\n/** 小程序端 scroll-view 的 nodeName(Taro 虚拟 DOM) */\nconst SCROLL_VIEW_NODE_NAME = 'scroll-view'\n\n/**\n * 判断元素是否可滚动(严格:overflow 可滚动 + 实际有溢出)\n */\nexport function isScrollableElement(\n el: HTMLElement | null,\n vertical = true\n): el is HTMLElement {\n if (!el || el === document.body) return false\n const style = getComputedStyle(el)\n const overflow = vertical ? style.overflowY : style.overflowX\n if (!SCROLLABLE_OVERFLOW.includes(overflow as any)) return false\n const hasOverflow = vertical\n ? el.scrollHeight > el.clientHeight\n : el.scrollWidth > el.clientWidth\n return hasOverflow\n}\n\n/**\n * 从给定元素向上查找最近的滚动父节点。\n * 优先匹配 .taro-scroll,未命中则按通用可滚动条件查找。\n */\nexport function findScrollParent(\n el: HTMLElement | null,\n vertical = true\n): HTMLElement | null {\n if (!el) return null\n\n // 1. 优先:Taro ScrollView 的 div(.taro-scroll)\n const taroScroll = el.closest?.('.taro-scroll')\n if (taroScroll && taroScroll !== document.body && isScrollableElement(taroScroll as HTMLElement, vertical)) {\n return taroScroll as HTMLElement\n }\n\n // 2. 回退:通用可滚动祖先\n let parent: HTMLElement | null = el.parentElement\n while (parent !== null && parent !== document.body) {\n if (isScrollableElement(parent, vertical)) return parent\n parent = (parent as HTMLElement).parentElement\n }\n return null\n}\n\n/**\n * 小程序端:基于 Taro 虚拟 DOM 查找父级 scroll-view。\n * 从 contentId 对应节点沿 parentNode 向上遍历,找到 nodeName === 'scroll-view' 的节点。\n *\n * 仅用于小程序环境,H5 请使用 findScrollParent。\n *\n * @param contentId - content 节点的 id(需在 eventSource 中已注册)\n * @returns 找到的 TaroElement(scroll-view)或 null\n */\nexport function findScrollParentTaro (contentId: string): TaroElement | null {\n if (!contentId) return null\n const doc = taroDocument as { getElementById: (id: string) => TaroElement | null }\n const el = doc.getElementById?.(contentId)\n if (!el || !el.parentNode) return null\n\n let node: TaroNode | null = el\n while (node) {\n const parent = node.parentNode\n if (!parent) break\n // NodeType.ELEMENT_NODE === 1\n if (parent.nodeType === 1 && (parent as TaroElement).nodeName === SCROLL_VIEW_NODE_NAME) {\n return parent as TaroElement\n }\n node = parent\n }\n return null\n}\n\n"],"names":["taroDocument"],"mappings":";;AAAA;;;;;;;;;;;;AAYG;AAMH,MAAM,mBAAmB,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAU;AAElE;AACA,MAAM,qBAAqB,GAAG,aAAa;AAE3C;;AAEG;SACa,mBAAmB,CACjC,EAAsB,EACtB,QAAQ,GAAG,IAAI,EAAA;AAEf,IAAA,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,QAAQ,CAAC,IAAI;AAAE,QAAA,OAAO,KAAK;AAC7C,IAAA,MAAM,KAAK,GAAG,gBAAgB,CAAC,EAAE,CAAC;AAClC,IAAA,MAAM,QAAQ,GAAG,QAAQ,GAAG,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS;AAC7D,IAAA,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,QAAe,CAAC;AAAE,QAAA,OAAO,KAAK;IAChE,MAAM,WAAW,GAAG;AAClB,UAAE,EAAE,CAAC,YAAY,GAAG,EAAE,CAAC;UACrB,EAAE,CAAC,WAAW,GAAG,EAAE,CAAC,WAAW;AACnC,IAAA,OAAO,WAAW;AACpB;AAEA;;;AAGG;SACa,gBAAgB,CAC9B,EAAsB,EACtB,QAAQ,GAAG,IAAI,EAAA;;AAEf,IAAA,IAAI,CAAC,EAAE;AAAE,QAAA,OAAO,IAAI;;IAGpB,MAAM,UAAU,GAAG,CAAA,EAAA,GAAA,EAAE,CAAC,OAAO,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,EAAA,EAAG,cAAc,CAAC;AAC/C,IAAA,IAAI,UAAU,IAAI,UAAU,KAAK,QAAQ,CAAC,IAAI,IAAI,mBAAmB,CAAC,UAAyB,EAAE,QAAQ,CAAC,EAAE;AAC1G,QAAA,OAAO,UAAyB;;;AAIlC,IAAA,IAAI,MAAM,GAAuB,EAAE,CAAC,aAAa;IACjD,OAAO,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,QAAQ,CAAC,IAAI,EAAE;AAClD,QAAA,IAAI,mBAAmB,CAAC,MAAM,EAAE,QAAQ,CAAC;AAAE,YAAA,OAAO,MAAM;AACxD,QAAA,MAAM,GAAI,MAAsB,CAAC,aAAa;;AAEhD,IAAA,OAAO,IAAI;AACb;AAEA;;;;;;;;AAQG;AACG,SAAU,oBAAoB,CAAE,SAAiB,EAAA;;AACrD,IAAA,IAAI,CAAC,SAAS;AAAE,QAAA,OAAO,IAAI;IAC3B,MAAM,GAAG,GAAGA,UAAsE;IAClF,MAAM,EAAE,GAAG,CAAA,EAAA,GAAA,GAAG,CAAC,cAAc,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,GAAA,EAAG,SAAS,CAAC;AAC1C,IAAA,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,UAAU;AAAE,QAAA,OAAO,IAAI;IAEtC,IAAI,IAAI,GAAoB,EAAE;IAC9B,OAAO,IAAI,EAAE;AACX,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU;AAC9B,QAAA,IAAI,CAAC,MAAM;YAAE;;AAEb,QAAA,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,IAAK,MAAsB,CAAC,QAAQ,KAAK,qBAAqB,EAAE;AACvF,YAAA,OAAO,MAAqB;;QAE9B,IAAI,GAAG,MAAM;;AAEf,IAAA,OAAO,IAAI;AACb;;;;"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
const IS_TARO_WEAPP = process.env.TARO_ENV === 'weapp';
|
|
2
|
-
/**
|
|
3
|
-
* 微信小程序:从 Taro 节点 ref 取 SelectorQuery.in 所需作用域(`ref.current._scope`)。
|
|
4
|
-
* 与运行时 TaroNode._scope(getNearestCtx)一致;非小程序恒为 undefined。
|
|
5
|
-
*/
|
|
6
|
-
function weappScope(ref) {
|
|
7
|
-
if (!IS_TARO_WEAPP || !(ref === null || ref === void 0 ? void 0 : ref.current))
|
|
8
|
-
return undefined;
|
|
9
|
-
const cur = ref.current;
|
|
10
|
-
if (typeof (cur === null || cur === void 0 ? void 0 : cur._scope) === 'function') {
|
|
11
|
-
return cur._scope();
|
|
12
|
-
}
|
|
13
|
-
if ((cur === null || cur === void 0 ? void 0 : cur._scope) != null) {
|
|
14
|
-
return cur._scope;
|
|
15
|
-
}
|
|
16
|
-
return undefined;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
export { weappScope };
|
|
20
|
-
//# sourceMappingURL=weapp-scope.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"weapp-scope.js","sources":["../../src/utils/weapp-scope.ts"],"sourcesContent":["const IS_TARO_WEAPP = process.env.TARO_ENV === 'weapp'\n\n/**\n * 微信小程序:从 Taro 节点 ref 取 SelectorQuery.in 所需作用域(`ref.current._scope`)。\n * 与运行时 TaroNode._scope(getNearestCtx)一致;非小程序恒为 undefined。\n */\nexport function weappScope (\n ref: { current: any } | null | undefined\n): object | undefined {\n if (!IS_TARO_WEAPP || !ref?.current) return undefined\n const cur: any = ref.current\n if (typeof cur?._scope === 'function') {\n return cur._scope()\n }\n if (cur?._scope != null) {\n return cur._scope\n }\n return undefined\n}\n"],"names":[],"mappings":"AAAA,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,OAAO;AAEtD;;;AAGG;AACG,SAAU,UAAU,CACxB,GAAwC,EAAA;AAExC,IAAA,IAAI,CAAC,aAAa,IAAI,EAAC,GAAG,KAAH,IAAA,IAAA,GAAG,KAAH,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,GAAG,CAAE,OAAO,CAAA;AAAE,QAAA,OAAO,SAAS;AACrD,IAAA,MAAM,GAAG,GAAQ,GAAG,CAAC,OAAO;AAC5B,IAAA,IAAI,QAAO,GAAG,KAAA,IAAA,IAAH,GAAG,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAH,GAAG,CAAE,MAAM,CAAA,KAAK,UAAU,EAAE;AACrC,QAAA,OAAO,GAAG,CAAC,MAAM,EAAE;;IAErB,IAAI,CAAA,GAAG,KAAA,IAAA,IAAH,GAAG,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAH,GAAG,CAAE,MAAM,KAAI,IAAI,EAAE;QACvB,OAAO,GAAG,CAAC,MAAM;;AAEnB,IAAA,OAAO,SAAS;AAClB;;;;"}
|