@tarojs/components-advanced 4.0.8-beta.0 → 4.0.8-beta.3

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.
Files changed (87) hide show
  1. package/dist/components/index.d.ts +2 -0
  2. package/dist/components/index.js +8 -0
  3. package/dist/components/index.js.map +1 -1
  4. package/dist/components/list/ListItem.d.ts +9 -0
  5. package/dist/components/list/ListItem.js +9 -0
  6. package/dist/components/list/ListItem.js.map +1 -0
  7. package/dist/components/list/StickyHeader.d.ts +9 -0
  8. package/dist/components/list/StickyHeader.js +9 -0
  9. package/dist/components/list/StickyHeader.js.map +1 -0
  10. package/dist/components/list/StickySection.d.ts +9 -0
  11. package/dist/components/list/StickySection.js +9 -0
  12. package/dist/components/list/StickySection.js.map +1 -0
  13. package/dist/components/list/index.d.ts +37 -0
  14. package/dist/components/list/index.js +350 -0
  15. package/dist/components/list/index.js.map +1 -0
  16. package/dist/components/virtual-list/dom-helpers.js.map +1 -1
  17. package/dist/components/virtual-list/index.d.ts +5 -5
  18. package/dist/components/virtual-list/index.js.map +1 -1
  19. package/dist/components/virtual-list/list-set.js.map +1 -1
  20. package/dist/components/virtual-list/preset.d.ts +0 -1
  21. package/dist/components/virtual-list/preset.js.map +1 -1
  22. package/dist/components/virtual-list/react/index.js.map +1 -1
  23. package/dist/components/virtual-list/react/list.js.map +1 -1
  24. package/dist/components/virtual-list/react/validate.js.map +1 -1
  25. package/dist/components/virtual-list/react/wrapper.js.map +1 -1
  26. package/dist/components/virtual-list/utils.js.map +1 -1
  27. package/dist/components/virtual-list/vue/index.js.map +1 -1
  28. package/dist/components/virtual-list/vue/list.d.ts +13 -13
  29. package/dist/components/virtual-list/vue/list.js +3 -3
  30. package/dist/components/virtual-list/vue/list.js.map +1 -1
  31. package/dist/components/virtual-waterfall/index.js.map +1 -1
  32. package/dist/components/virtual-waterfall/list-map.js.map +1 -1
  33. package/dist/components/virtual-waterfall/preset.d.ts +0 -1
  34. package/dist/components/virtual-waterfall/preset.js.map +1 -1
  35. package/dist/components/virtual-waterfall/react/index.js.map +1 -1
  36. package/dist/components/virtual-waterfall/react/waterfall.js.map +1 -1
  37. package/dist/components/virtual-waterfall/react/wrapper.js +7 -5
  38. package/dist/components/virtual-waterfall/react/wrapper.js.map +1 -1
  39. package/dist/components/virtual-waterfall/vue/index.js.map +1 -1
  40. package/dist/components/virtual-waterfall/vue/waterfall.d.ts +11 -11
  41. package/dist/components/virtual-waterfall/vue/waterfall.js +3 -3
  42. package/dist/components/virtual-waterfall/vue/waterfall.js.map +1 -1
  43. package/dist/components/water-flow/flow-item.d.ts +11 -0
  44. package/dist/components/water-flow/flow-item.js +70 -0
  45. package/dist/components/water-flow/flow-item.js.map +1 -0
  46. package/dist/components/water-flow/flow-section.d.ts +7 -0
  47. package/dist/components/water-flow/flow-section.js +66 -0
  48. package/dist/components/water-flow/flow-section.js.map +1 -0
  49. package/dist/components/water-flow/index.d.ts +4 -0
  50. package/dist/components/water-flow/index.js +4 -0
  51. package/dist/components/water-flow/index.js.map +1 -0
  52. package/dist/components/water-flow/interface.d.ts +54 -0
  53. package/dist/components/water-flow/node.d.ts +63 -0
  54. package/dist/components/water-flow/node.js +99 -0
  55. package/dist/components/water-flow/node.js.map +1 -0
  56. package/dist/components/water-flow/root.d.ts +144 -0
  57. package/dist/components/water-flow/root.js +383 -0
  58. package/dist/components/water-flow/root.js.map +1 -0
  59. package/dist/components/water-flow/section.d.ts +112 -0
  60. package/dist/components/water-flow/section.js +233 -0
  61. package/dist/components/water-flow/section.js.map +1 -0
  62. package/dist/components/water-flow/stateful-event-bus.d.ts +33 -0
  63. package/dist/components/water-flow/stateful-event-bus.js +70 -0
  64. package/dist/components/water-flow/stateful-event-bus.js.map +1 -0
  65. package/dist/components/water-flow/use-memoized-fn.d.ts +4 -0
  66. package/dist/components/water-flow/use-memoized-fn.js +16 -0
  67. package/dist/components/water-flow/use-memoized-fn.js.map +1 -0
  68. package/dist/components/water-flow/use-observed-attr.d.ts +2 -0
  69. package/dist/components/water-flow/use-observed-attr.js +20 -0
  70. package/dist/components/water-flow/use-observed-attr.js.map +1 -0
  71. package/dist/components/water-flow/use-unmount.d.ts +1 -0
  72. package/dist/components/water-flow/utils.d.ts +30 -0
  73. package/dist/components/water-flow/utils.js +45 -0
  74. package/dist/components/water-flow/utils.js.map +1 -0
  75. package/dist/components/water-flow/water-flow.d.ts +4 -0
  76. package/dist/components/water-flow/water-flow.js +159 -0
  77. package/dist/components/water-flow/water-flow.js.map +1 -0
  78. package/dist/index.js +7 -0
  79. package/dist/index.js.map +1 -1
  80. package/dist/utils/convert.js.map +1 -1
  81. package/dist/utils/dom.js.map +1 -1
  82. package/dist/utils/helper.js.map +1 -1
  83. package/dist/utils/lodash.js.map +1 -1
  84. package/dist/utils/math.js.map +1 -1
  85. package/dist/utils/timer.js.map +1 -1
  86. package/dist/utils/vue-render.js.map +1 -1
  87. package/package.json +10 -12
@@ -0,0 +1,45 @@
1
+ import { getSystemInfoSync, getEnv } from '@tarojs/taro';
2
+
3
+ let sysInfo;
4
+ const getSysInfo = () => {
5
+ if (sysInfo)
6
+ return sysInfo;
7
+ sysInfo = getSystemInfoSync();
8
+ return sysInfo;
9
+ };
10
+ /**
11
+ * 一维数组索引换算到二维数组
12
+ * @param i 一维数组索引
13
+ * @param columns 列数
14
+ */
15
+ function getMatrixPosition(i, columns) {
16
+ const col = i % columns; // 列号
17
+ const row = Math.floor(i / columns); // 行号
18
+ return { row, col };
19
+ }
20
+ /**
21
+ * 简单比较渲染区间范围
22
+ */
23
+ function isSameRenderRange(a, b) {
24
+ return JSON.stringify(a) === JSON.stringify(b);
25
+ }
26
+ /**
27
+ * 创建一个命令式的 promise 对象
28
+ *
29
+ * 返回的对象包含以下属性:
30
+ * - promise: 一个新的 Promise 对象,初始状态为 pending。
31
+ * - resolve: 一个函数,用于将 promise 状态置为 resolved。
32
+ * - reject: 一个函数,用于将 promise 状态置为 rejected,并可以传递一个原因参数。
33
+ */
34
+ const createImperativePromise = () => {
35
+ const handle = {};
36
+ const promise = new Promise((resolve, reject) => {
37
+ handle.resolve = resolve;
38
+ handle.reject = reject;
39
+ });
40
+ return Object.assign(Object.assign({}, handle), { promise });
41
+ };
42
+ const isWeb = () => getEnv().toLowerCase() === 'web';
43
+
44
+ export { createImperativePromise, getMatrixPosition, getSysInfo, isSameRenderRange, isWeb };
45
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sources":["../../../src/components/water-flow/utils.ts"],"sourcesContent":["import { getEnv, getSystemInfoSync } from '@tarojs/taro'\n\nlet sysInfo: ReturnType<typeof getSystemInfoSync>\n\nexport const getSysInfo = () => {\n if (sysInfo) return sysInfo\n sysInfo = getSystemInfoSync()\n return sysInfo\n}\n\ntype ArrIndex = number;\n/**\n * 一维数组索引换算到二维数组\n * @param i 一维数组索引\n * @param columns 列数\n */\nexport function getMatrixPosition(i: ArrIndex, columns: number) {\n const col = i % columns // 列号\n const row = Math.floor(i / columns) // 行号\n return { row, col }\n}\n\n/**\n * 简单比较渲染区间范围\n */\nexport function isSameRenderRange(a: any[], b: any[]) {\n return JSON.stringify(a) === JSON.stringify(b)\n}\n\n/**\n * 创建一个命令式的 promise 对象\n *\n * 返回的对象包含以下属性:\n * - promise: 一个新的 Promise 对象,初始状态为 pending。\n * - resolve: 一个函数,用于将 promise 状态置为 resolved。\n * - reject: 一个函数,用于将 promise 状态置为 rejected,并可以传递一个原因参数。\n */\nexport const createImperativePromise = () => {\n type ImperativePromiseHandle = {\n resolve: () => void\n reject: (reason?: any) => void\n };\n const handle = {} as ImperativePromiseHandle\n const promise = new Promise<void>((resolve, reject) => {\n handle.resolve = resolve\n handle.reject = reject\n })\n return {\n ...handle,\n promise,\n }\n}\n\nexport const isWeb = () => getEnv().toLowerCase() === 'web'\n"],"names":[],"mappings":";;AAEA,IAAI,OAA6C;AAE1C,MAAM,UAAU,GAAG,MAAK;AAC7B,IAAA,IAAI,OAAO;AAAE,QAAA,OAAO,OAAO;IAC3B,OAAO,GAAG,iBAAiB,EAAE;AAC7B,IAAA,OAAO,OAAO;AAChB;AAGA;;;;AAIG;AACa,SAAA,iBAAiB,CAAC,CAAW,EAAE,OAAe,EAAA;AAC5D,IAAA,MAAM,GAAG,GAAG,CAAC,GAAG,OAAO,CAAA;AACvB,IAAA,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,OAAO,CAAC,CAAA;AACnC,IAAA,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE;AACrB;AAEA;;AAEG;AACa,SAAA,iBAAiB,CAAC,CAAQ,EAAE,CAAQ,EAAA;AAClD,IAAA,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;AAChD;AAEA;;;;;;;AAOG;AACI,MAAM,uBAAuB,GAAG,MAAK;IAK1C,MAAM,MAAM,GAAG,EAA6B;IAC5C,MAAM,OAAO,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,KAAI;AACpD,QAAA,MAAM,CAAC,OAAO,GAAG,OAAO;AACxB,QAAA,MAAM,CAAC,MAAM,GAAG,MAAM;AACxB,KAAC,CAAC;IACF,OACK,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,MAAM,CACT,EAAA,EAAA,OAAO,EACR,CAAA;AACH;AAEO,MAAM,KAAK,GAAG,MAAM,MAAM,EAAE,CAAC,WAAW,EAAE,KAAK;;;;"}
@@ -0,0 +1,4 @@
1
+ import { ScrollViewProps } from '@tarojs/components';
2
+ import { PropsWithChildren, ReactElement } from 'react';
3
+ import type { WaterFlowProps } from './interface';
4
+ export declare function WaterFlow({ children, ...props }: PropsWithChildren<WaterFlowProps>): ReactElement<ScrollViewProps, string | import("react").JSXElementConstructor<any>>;
@@ -0,0 +1,159 @@
1
+ import { __rest } from 'tslib';
2
+ import { ScrollView, View } from '@tarojs/components';
3
+ import { nextTick } from '@tarojs/taro';
4
+ import { useId, useMemo, useRef, Children, cloneElement, useEffect, createElement } from 'react';
5
+ import '../../utils/index.js';
6
+ import { Root, RootEvents } from './root.js';
7
+ import { Section } from './section.js';
8
+ import { useMemoizedFn } from './use-memoized-fn.js';
9
+ import { useObservedAttr } from './use-observed-attr.js';
10
+ import { getSysInfo } from './utils.js';
11
+ import { getScrollViewContextNode } from '../../utils/dom.js';
12
+ import { debounce } from '../../utils/lodash.js';
13
+
14
+ getSysInfo();
15
+ function WaterFlow(_a) {
16
+ var { children } = _a, props = __rest(_a, ["children"]);
17
+ const { id, style = {}, className, cacheCount = 1, onScrollToUpper, onScrollToLower, upperThresholdCount, lowerThresholdCount, scrollIntoView } = props, rest = __rest(props, ["id", "style", "className", "cacheCount", "onScrollToUpper", "onScrollToLower", "upperThresholdCount", "lowerThresholdCount", "scrollIntoView"]);
18
+ const defaultId = useId().replace(/:/g, '');
19
+ /**
20
+ * 初始化数据模型
21
+ */
22
+ const root = useMemo(() => {
23
+ return new Root({
24
+ id: id !== null && id !== void 0 ? id : defaultId,
25
+ cacheCount,
26
+ upperThresholdCount,
27
+ lowerThresholdCount,
28
+ });
29
+ }, [id, cacheCount, upperThresholdCount, lowerThresholdCount]);
30
+ const isScrolling$ = useObservedAttr(root, 'isScrolling');
31
+ const scrollHeight$ = useObservedAttr(root, 'scrollHeight');
32
+ const renderRange$ = useObservedAttr(root, 'renderRange');
33
+ const refEventOrig = useRef();
34
+ /**
35
+ * 滚动事件
36
+ */
37
+ const handleScroll = useMemoizedFn((ev) => {
38
+ refEventOrig.current = ev;
39
+ root.sections.forEach((section) => section.getNodeRenderRange());
40
+ const { scrollTop } = ev.detail;
41
+ // 确定滚动方向
42
+ const scrollDirection = root.getState().scrollOffset < scrollTop ? 'forward' : 'backward';
43
+ // 设置滚动信息,包括方向和偏移量
44
+ root.setStateBatch({
45
+ scrollDirection: scrollDirection,
46
+ scrollOffset: scrollTop,
47
+ isScrolling: true,
48
+ });
49
+ });
50
+ const sections = useMemo(() => {
51
+ var _a;
52
+ const [start, end] = renderRange$;
53
+ return (_a = Children.map(children, (child, order) => {
54
+ var _a;
55
+ if (Object.is(child, null)) {
56
+ return null;
57
+ }
58
+ const sectionProps = child.props;
59
+ const sectionId = sectionProps.id || `section-${order}`;
60
+ const childCount = Children.count(sectionProps.children);
61
+ let section = root.findSection(sectionId);
62
+ if (section) {
63
+ const originalCount = section.count;
64
+ if (childCount > originalCount) {
65
+ section.pushNodes(childCount - originalCount);
66
+ }
67
+ }
68
+ else {
69
+ section = new Section(root, {
70
+ id: sectionId,
71
+ order,
72
+ col: (_a = sectionProps.column) !== null && _a !== void 0 ? _a : 1,
73
+ rowGap: sectionProps.rowGap || 0,
74
+ columnGap: sectionProps.columnGap || 0,
75
+ count: Children.count(sectionProps.children),
76
+ });
77
+ }
78
+ return cloneElement(child, { section, key: `${props.id}-${order}` });
79
+ })) === null || _a === void 0 ? void 0 : _a.slice(start, end + 1);
80
+ }, [renderRange$[0], renderRange$[1], children, root, props.id]);
81
+ const scrollTo = useMemoizedFn((scrollOffset = 0) => {
82
+ scrollOffset = Math.max(0, scrollOffset);
83
+ if (root.getState().scrollOffset === scrollOffset)
84
+ return;
85
+ getScrollViewContextNode(`#${root.id}`).then((node) => {
86
+ node.scrollTo({
87
+ animated: true,
88
+ duration: 300,
89
+ top: scrollOffset,
90
+ });
91
+ });
92
+ });
93
+ const resetScrolling = useMemoizedFn(() => {
94
+ root.setStateIn('isScrolling', false);
95
+ });
96
+ const debouncedResetScrolling = debounce(resetScrolling);
97
+ useEffect(() => {
98
+ debouncedResetScrolling();
99
+ }, [isScrolling$]);
100
+ /**
101
+ * 处理滚动阈值
102
+ */
103
+ useEffect(() => {
104
+ const disposers = [
105
+ root.sub(RootEvents.ReachUpperThreshold, debounce(() => {
106
+ onScrollToUpper === null || onScrollToUpper === void 0 ? void 0 : onScrollToUpper(refEventOrig.current);
107
+ })),
108
+ root.sub(RootEvents.ReachLowerThreshold, debounce(() => {
109
+ onScrollToLower === null || onScrollToLower === void 0 ? void 0 : onScrollToLower(refEventOrig.current);
110
+ })),
111
+ ];
112
+ return () => {
113
+ disposers.forEach((disposer) => {
114
+ disposer();
115
+ });
116
+ };
117
+ }, [onScrollToUpper, onScrollToLower]);
118
+ /**
119
+ * 处理 scrollIntoView
120
+ */
121
+ useEffect(() => {
122
+ handleScrollIntoView();
123
+ async function handleScrollIntoView() {
124
+ if (scrollIntoView) {
125
+ if (root.getState().scrollOffset > 0) {
126
+ // 说明在自动滚动前手动滚动过了,不应该自动滚动了,避免造成困扰
127
+ return;
128
+ }
129
+ const targetNode = root.findNode(scrollIntoView);
130
+ if (targetNode) {
131
+ const targetSection = targetNode.section;
132
+ if (!targetSection.getState().layouted) {
133
+ const order = targetSection.order;
134
+ root.setStateIn('renderRange', [renderRange$[0], order]);
135
+ nextTick(async () => {
136
+ await targetNode.section.layoutedSignal.promise;
137
+ scrollTo(targetNode.getState().scrollTop);
138
+ });
139
+ return;
140
+ }
141
+ await targetNode.section.layoutedSignal.promise;
142
+ scrollTo(targetNode.getState().scrollTop);
143
+ }
144
+ }
145
+ }
146
+ }, [scrollIntoView, renderRange$[0]]);
147
+ return createElement(ScrollView, Object.assign({ id: root.id, style: Object.assign({ WebkitOverflowScrolling: 'touch', overflow: 'auto' }, style), className, scrollY: true, onScroll: handleScroll }, rest), createElement(View, {
148
+ id: 'waterflow-root',
149
+ style: {
150
+ width: '100%',
151
+ position: 'relative',
152
+ height: scrollHeight$,
153
+ pointerEvents: isScrolling$ ? 'none' : 'auto',
154
+ },
155
+ }, sections));
156
+ }
157
+
158
+ export { WaterFlow };
159
+ //# sourceMappingURL=water-flow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"water-flow.js","sources":["../../../src/components/water-flow/water-flow.ts"],"sourcesContent":["import { BaseEventOrig, ScrollView, ScrollViewProps, View } from '@tarojs/components'\nimport { nextTick } from '@tarojs/taro'\nimport {\n Children,\n cloneElement,\n createElement,\n PropsWithChildren,\n ReactElement,\n useEffect,\n useId,\n useMemo,\n useRef,\n} from 'react'\n\nimport { debounce, getScrollViewContextNode } from '../../utils'\nimport { _FlowSectionProps } from './flow-section'\nimport { Root, RootEvents } from './root'\nimport { Section } from './section'\nimport { useMemoizedFn } from './use-memoized-fn'\nimport { useObservedAttr } from './use-observed-attr'\nimport { getSysInfo } from './utils'\n\nimport type { ScrollDirection, WaterFlowProps } from './interface'\n\ngetSysInfo()\n\nexport function WaterFlow({ children, ...props }: PropsWithChildren<WaterFlowProps>) {\n const {\n id,\n style = {},\n className,\n cacheCount = 1,\n onScrollToUpper,\n onScrollToLower,\n upperThresholdCount,\n lowerThresholdCount,\n scrollIntoView,\n ...rest\n } = props\n const defaultId = useId().replace(/:/g, '')\n /**\n * 初始化数据模型\n */\n const root = useMemo(() => {\n return new Root({\n id: id ?? defaultId,\n cacheCount,\n upperThresholdCount,\n lowerThresholdCount,\n })\n }, [id, cacheCount, upperThresholdCount, lowerThresholdCount])\n const isScrolling$ = useObservedAttr(root, 'isScrolling')\n const scrollHeight$ = useObservedAttr(root, 'scrollHeight')\n const renderRange$ = useObservedAttr(root, 'renderRange')\n const refEventOrig = useRef<BaseEventOrig>()\n\n /**\n * 滚动事件\n */\n const handleScroll = useMemoizedFn((ev: BaseEventOrig<ScrollViewProps.onScrollDetail>) => {\n refEventOrig.current = ev\n root.sections.forEach((section) => section.getNodeRenderRange())\n const { scrollTop } = ev.detail\n // 确定滚动方向\n const scrollDirection: ScrollDirection = root.getState().scrollOffset < scrollTop ? 'forward' : 'backward'\n // 设置滚动信息,包括方向和偏移量\n root.setStateBatch({\n scrollDirection: scrollDirection,\n scrollOffset: scrollTop,\n isScrolling: true,\n })\n })\n\n const sections = useMemo(() => {\n const [start, end] = renderRange$\n return Children.map(children, (child: ReactElement<PropsWithChildren<_FlowSectionProps>>, order) => {\n if (Object.is(child, null)) {\n return null\n }\n const sectionProps = child.props\n const sectionId = sectionProps.id || `section-${order}`\n const childCount = Children.count(sectionProps.children)\n let section = root.findSection(sectionId)\n if (section) {\n const originalCount = section.count\n if (childCount > originalCount) {\n section.pushNodes(childCount - originalCount)\n }\n } else {\n section = new Section(root, {\n id: sectionId,\n order,\n col: sectionProps.column ?? 1,\n rowGap: sectionProps.rowGap || 0,\n columnGap: sectionProps.columnGap || 0,\n count: Children.count(sectionProps.children),\n })\n }\n\n return cloneElement(child, { section, key: `${props.id}-${order}` })\n })?.slice(start, end + 1)\n }, [renderRange$[0], renderRange$[1], children, root, props.id])\n\n const scrollTo = useMemoizedFn((scrollOffset = 0) => {\n scrollOffset = Math.max(0, scrollOffset)\n if (root.getState().scrollOffset === scrollOffset) return\n getScrollViewContextNode(`#${root.id}`).then((node: any) => {\n node.scrollTo({\n animated: true,\n duration: 300,\n top: scrollOffset,\n })\n })\n })\n\n const resetScrolling = useMemoizedFn(() => {\n root.setStateIn('isScrolling', false)\n })\n\n const debouncedResetScrolling = debounce(resetScrolling)\n\n useEffect(() => {\n debouncedResetScrolling()\n }, [isScrolling$])\n\n /**\n * 处理滚动阈值\n */\n useEffect(() => {\n const disposers = [\n root.sub(\n RootEvents.ReachUpperThreshold,\n debounce(() => {\n onScrollToUpper?.(refEventOrig.current!)\n })\n ),\n root.sub(\n RootEvents.ReachLowerThreshold,\n debounce(() => {\n onScrollToLower?.(refEventOrig.current!)\n })\n ),\n ]\n return () => {\n disposers.forEach((disposer) => {\n disposer()\n })\n }\n }, [onScrollToUpper, onScrollToLower])\n\n /**\n * 处理 scrollIntoView\n */\n useEffect(() => {\n handleScrollIntoView()\n async function handleScrollIntoView() {\n if (scrollIntoView) {\n if (root.getState().scrollOffset > 0) {\n // 说明在自动滚动前手动滚动过了,不应该自动滚动了,避免造成困扰\n return\n }\n const targetNode = root.findNode(scrollIntoView)\n if (targetNode) {\n const targetSection = targetNode.section\n if (!targetSection.getState().layouted) {\n const order = targetSection.order\n root.setStateIn('renderRange', [renderRange$[0], order])\n nextTick(async () => {\n await targetNode.section.layoutedSignal.promise\n scrollTo(targetNode.getState().scrollTop)\n })\n return\n }\n await targetNode.section.layoutedSignal.promise\n scrollTo(targetNode.getState().scrollTop)\n }\n }\n }\n }, [scrollIntoView, renderRange$[0]])\n\n return createElement(\n ScrollView,\n {\n id: root.id,\n style: {\n WebkitOverflowScrolling: 'touch',\n overflow: 'auto',\n ...style,\n },\n className,\n scrollY: true,\n onScroll: handleScroll,\n ...rest,\n },\n createElement(\n View,\n {\n id: 'waterflow-root',\n style: {\n width: '100%',\n position: 'relative',\n height: scrollHeight$,\n pointerEvents: isScrolling$ ? 'none' : 'auto',\n },\n },\n sections\n )\n )\n}\n"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,7 +1,14 @@
1
1
  import './components/index.js';
2
2
  import './utils/index.js';
3
+ export { List, accumulate, isShaking } from './components/list/index.js';
4
+ export { ListItem } from './components/list/ListItem.js';
5
+ export { StickyHeader } from './components/list/StickyHeader.js';
6
+ export { StickySection } from './components/list/StickySection.js';
3
7
  export { VirtualList } from './components/virtual-list/index.js';
4
8
  export { VirtualWaterfall } from './components/virtual-waterfall/index.js';
9
+ export { FlowItem, useFlowItemPositioner } from './components/water-flow/flow-item.js';
10
+ export { FlowSection } from './components/water-flow/flow-section.js';
11
+ export { WaterFlow } from './components/water-flow/water-flow.js';
5
12
  export { convertNumber2PX, convertPX2Int } from './utils/convert.js';
6
13
  export { getRectSize, getRectSizeSync, getScrollViewContextNode } from './utils/dom.js';
7
14
  export { defaultItemKey, getOffsetForIndexAndAlignment } from './utils/helper.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"convert.js","sources":["../../src/utils/convert.ts"],"sourcesContent":["/** 将距离值根据单位转换为 Number 类型\n * TODO: 未来可以考虑支持更多单位\n */\nexport function convertPX2Int (distance?: string | number) {\n if (typeof distance === 'string') {\n const str = distance.toLowerCase()\n if (/px$/.test(str)) {\n return Number(str.replace(/px$/, ''))\n }\n }\n return distance\n}\n\nexport function convertNumber2PX (styleValue: unknown): string {\n if (!styleValue && styleValue !== 0) return ''\n return typeof styleValue === 'number' ? styleValue + 'px' : styleValue as string\n}\n"],"names":[],"mappings":"AAAA;;AAEG;AACG,SAAU,aAAa,CAAE,QAA0B,EAAA;AACvD,IAAA,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;AAChC,QAAA,MAAM,GAAG,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAA;AAClC,QAAA,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YACnB,OAAO,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAA;SACtC;KACF;AACD,IAAA,OAAO,QAAQ,CAAA;AACjB,CAAC;AAEK,SAAU,gBAAgB,CAAE,UAAmB,EAAA;AACnD,IAAA,IAAI,CAAC,UAAU,IAAI,UAAU,KAAK,CAAC;AAAE,QAAA,OAAO,EAAE,CAAA;AAC9C,IAAA,OAAO,OAAO,UAAU,KAAK,QAAQ,GAAG,UAAU,GAAG,IAAI,GAAG,UAAoB,CAAA;AAClF;;;;"}
1
+ {"version":3,"file":"convert.js","sources":["../../src/utils/convert.ts"],"sourcesContent":["/** 将距离值根据单位转换为 Number 类型\n * TODO: 未来可以考虑支持更多单位\n */\nexport function convertPX2Int (distance?: string | number) {\n if (typeof distance === 'string') {\n const str = distance.toLowerCase()\n if (/px$/.test(str)) {\n return Number(str.replace(/px$/, ''))\n }\n }\n return distance\n}\n\nexport function convertNumber2PX (styleValue: unknown): string {\n if (!styleValue && styleValue !== 0) return ''\n return typeof styleValue === 'number' ? styleValue + 'px' : styleValue as string\n}\n"],"names":[],"mappings":"AAAA;;AAEG;AACG,SAAU,aAAa,CAAE,QAA0B,EAAA;AACvD,IAAA,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;AAChC,QAAA,MAAM,GAAG,GAAG,QAAQ,CAAC,WAAW,EAAE;AAClC,QAAA,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YACnB,OAAO,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;;;AAGzC,IAAA,OAAO,QAAQ;AACjB;AAEM,SAAU,gBAAgB,CAAE,UAAmB,EAAA;AACnD,IAAA,IAAI,CAAC,UAAU,IAAI,UAAU,KAAK,CAAC;AAAE,QAAA,OAAO,EAAE;AAC9C,IAAA,OAAO,OAAO,UAAU,KAAK,QAAQ,GAAG,UAAU,GAAG,IAAI,GAAG,UAAoB;AAClF;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"dom.js","sources":["../../src/utils/dom.ts"],"sourcesContent":["import { createSelectorQuery } from '@tarojs/taro'\n\nexport function getRectSize (id: string, success?: TFunc, fail?: TFunc, retryMs = 500) {\n const query = createSelectorQuery()\n try {\n query.select(id).boundingClientRect((res) => {\n if (res instanceof Array ? res.length > 0 : res) {\n success?.(res)\n } else {\n fail?.()\n }\n }).exec()\n } catch (err) {\n setTimeout(() => {\n getRectSize(id, success, fail, retryMs)\n }, retryMs)\n }\n}\n\nexport function getRectSizeSync (id: string, retryMs = 500, retryTimes = 5) {\n return new Promise<{ width?: number, height?: number }>((resolve) => {\n function retry () {\n if (retryTimes <= 0) return\n setTimeout(async () => {\n try {\n const res = await getRectSizeSync(id, retryMs, --retryTimes)\n resolve(res)\n } catch (err) {\n retry()\n }\n }, retryMs)\n }\n getRectSize(id, resolve, retry, retryMs)\n })\n}\n\nexport async function getScrollViewContextNode (id: string) {\n const query = createSelectorQuery()\n return new Promise((resolve) => query.select(id).node(({ node }) => resolve(node)).exec())\n}\n"],"names":[],"mappings":";;AAEM,SAAU,WAAW,CAAE,EAAU,EAAE,OAAe,EAAE,IAAY,EAAE,OAAO,GAAG,GAAG,EAAA;AACnF,IAAA,MAAM,KAAK,GAAG,mBAAmB,EAAE,CAAA;AACnC,IAAA,IAAI;QACF,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,kBAAkB,CAAC,CAAC,GAAG,KAAI;AAC1C,YAAA,IAAI,GAAG,YAAY,KAAK,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,GAAG,GAAG,EAAE;AAC/C,gBAAA,OAAO,aAAP,OAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAP,OAAO,CAAG,GAAG,CAAC,CAAA;aACf;iBAAM;AACL,gBAAA,IAAI,KAAJ,IAAA,IAAA,IAAI,KAAJ,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,IAAI,EAAI,CAAA;aACT;AACH,SAAC,CAAC,CAAC,IAAI,EAAE,CAAA;KACV;IAAC,OAAO,GAAG,EAAE;QACZ,UAAU,CAAC,MAAK;YACd,WAAW,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;SACxC,EAAE,OAAO,CAAC,CAAA;KACZ;AACH,CAAC;AAEK,SAAU,eAAe,CAAE,EAAU,EAAE,OAAO,GAAG,GAAG,EAAE,UAAU,GAAG,CAAC,EAAA;AACxE,IAAA,OAAO,IAAI,OAAO,CAAsC,CAAC,OAAO,KAAI;AAClE,QAAA,SAAS,KAAK,GAAA;YACZ,IAAI,UAAU,IAAI,CAAC;gBAAE,OAAM;YAC3B,UAAU,CAAC,YAAW;AACpB,gBAAA,IAAI;AACF,oBAAA,MAAM,GAAG,GAAG,MAAM,eAAe,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,UAAU,CAAC,CAAA;oBAC5D,OAAO,CAAC,GAAG,CAAC,CAAA;iBACb;gBAAC,OAAO,GAAG,EAAE;AACZ,oBAAA,KAAK,EAAE,CAAA;iBACR;aACF,EAAE,OAAO,CAAC,CAAA;SACZ;QACD,WAAW,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,CAAA;AAC1C,KAAC,CAAC,CAAA;AACJ,CAAC;AAEM,eAAe,wBAAwB,CAAE,EAAU,EAAA;AACxD,IAAA,MAAM,KAAK,GAAG,mBAAmB,EAAE,CAAA;AACnC,IAAA,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;AAC5F;;;;"}
1
+ {"version":3,"file":"dom.js","sources":["../../src/utils/dom.ts"],"sourcesContent":["import { createSelectorQuery } from '@tarojs/taro'\n\nexport function getRectSize (id: string, success?: TFunc, fail?: TFunc, retryMs = 500) {\n const query = createSelectorQuery()\n try {\n query.select(id).boundingClientRect((res) => {\n if (res instanceof Array ? res.length > 0 : res) {\n success?.(res)\n } else {\n fail?.()\n }\n }).exec()\n } catch (err) {\n setTimeout(() => {\n getRectSize(id, success, fail, retryMs)\n }, retryMs)\n }\n}\n\nexport function getRectSizeSync (id: string, retryMs = 500, retryTimes = 5) {\n return new Promise<{ width?: number, height?: number }>((resolve) => {\n function retry () {\n if (retryTimes <= 0) return\n setTimeout(async () => {\n try {\n const res = await getRectSizeSync(id, retryMs, --retryTimes)\n resolve(res)\n } catch (err) {\n retry()\n }\n }, retryMs)\n }\n getRectSize(id, resolve, retry, retryMs)\n })\n}\n\nexport async function getScrollViewContextNode (id: string) {\n const query = createSelectorQuery()\n return new Promise((resolve) => query.select(id).node(({ node }) => resolve(node)).exec())\n}\n"],"names":[],"mappings":";;AAEM,SAAU,WAAW,CAAE,EAAU,EAAE,OAAe,EAAE,IAAY,EAAE,OAAO,GAAG,GAAG,EAAA;AACnF,IAAA,MAAM,KAAK,GAAG,mBAAmB,EAAE;AACnC,IAAA,IAAI;QACF,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,kBAAkB,CAAC,CAAC,GAAG,KAAI;AAC1C,YAAA,IAAI,GAAG,YAAY,KAAK,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,GAAG,GAAG,EAAE;AAC/C,gBAAA,OAAO,aAAP,OAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAP,OAAO,CAAG,GAAG,CAAC;;iBACT;AACL,gBAAA,IAAI,KAAJ,IAAA,IAAA,IAAI,KAAJ,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,IAAI,EAAI;;AAEZ,SAAC,CAAC,CAAC,IAAI,EAAE;;IACT,OAAO,GAAG,EAAE;QACZ,UAAU,CAAC,MAAK;YACd,WAAW,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC;SACxC,EAAE,OAAO,CAAC;;AAEf;AAEM,SAAU,eAAe,CAAE,EAAU,EAAE,OAAO,GAAG,GAAG,EAAE,UAAU,GAAG,CAAC,EAAA;AACxE,IAAA,OAAO,IAAI,OAAO,CAAsC,CAAC,OAAO,KAAI;AAClE,QAAA,SAAS,KAAK,GAAA;YACZ,IAAI,UAAU,IAAI,CAAC;gBAAE;YACrB,UAAU,CAAC,YAAW;AACpB,gBAAA,IAAI;AACF,oBAAA,MAAM,GAAG,GAAG,MAAM,eAAe,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,UAAU,CAAC;oBAC5D,OAAO,CAAC,GAAG,CAAC;;gBACZ,OAAO,GAAG,EAAE;AACZ,oBAAA,KAAK,EAAE;;aAEV,EAAE,OAAO,CAAC;;QAEb,WAAW,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC;AAC1C,KAAC,CAAC;AACJ;AAEO,eAAe,wBAAwB,CAAE,EAAU,EAAA;AACxD,IAAA,MAAM,KAAK,GAAG,mBAAmB,EAAE;AACnC,IAAA,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AAC5F;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"helper.js","sources":["../../src/utils/helper.ts"],"sourcesContent":["// In DEV mode, this Set helps us only log a warning once per component instance.\n// This avoids spamming the console every time a render happens.\nexport const defaultItemKey = (index: number, _itemData?: unknown) => index\n\nexport function getOffsetForIndexAndAlignment ({\n align = 'auto',\n containerSize = 0,\n currentOffset = 0,\n scrollSize = 0,\n slideSize = 0,\n targetOffset = 0,\n}) {\n const lastItemOffset = Math.max(0, scrollSize - containerSize)\n const maxOffset = Math.min(lastItemOffset, targetOffset)\n const minOffset = Math.max(0, targetOffset - containerSize + slideSize)\n\n if (align === 'smart') {\n if (currentOffset >= minOffset - containerSize && currentOffset <= maxOffset + containerSize) {\n align = 'auto'\n } else {\n align = 'center'\n }\n }\n\n switch (align) {\n case 'start':\n return maxOffset\n\n case 'end':\n return minOffset\n\n case 'center':\n {\n // \"Centered\" offset is usually the average of the min and max.\n // But near the edges of the list, this doesn't hold true.\n const middleOffset = Math.round(minOffset + (maxOffset - minOffset) / 2)\n\n if (middleOffset < Math.ceil(containerSize / 2)) {\n return 0 // near the beginning\n } else if (middleOffset > lastItemOffset + Math.floor(containerSize / 2)) {\n return lastItemOffset // near the end\n } else {\n return middleOffset\n }\n }\n\n case 'auto':\n default:\n if (currentOffset >= minOffset && currentOffset <= maxOffset) {\n return currentOffset\n } else if (currentOffset < minOffset) {\n return minOffset\n } else {\n return maxOffset\n }\n }\n}\n"],"names":[],"mappings":"AAAA;AACA;AACO,MAAM,cAAc,GAAG,CAAC,KAAa,EAAE,SAAmB,KAAK,MAAK;AAErE,SAAU,6BAA6B,CAAE,EAC7C,KAAK,GAAG,MAAM,EACd,aAAa,GAAG,CAAC,EACjB,aAAa,GAAG,CAAC,EACjB,UAAU,GAAG,CAAC,EACd,SAAS,GAAG,CAAC,EACb,YAAY,GAAG,CAAC,GACjB,EAAA;AACC,IAAA,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,GAAG,aAAa,CAAC,CAAA;IAC9D,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,YAAY,CAAC,CAAA;AACxD,IAAA,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,YAAY,GAAG,aAAa,GAAG,SAAS,CAAC,CAAA;AAEvE,IAAA,IAAI,KAAK,KAAK,OAAO,EAAE;AACrB,QAAA,IAAI,aAAa,IAAI,SAAS,GAAG,aAAa,IAAI,aAAa,IAAI,SAAS,GAAG,aAAa,EAAE;YAC5F,KAAK,GAAG,MAAM,CAAA;SACf;aAAM;YACL,KAAK,GAAG,QAAQ,CAAA;SACjB;KACF;IAED,QAAQ,KAAK;AACX,QAAA,KAAK,OAAO;AACV,YAAA,OAAO,SAAS,CAAA;AAElB,QAAA,KAAK,KAAK;AACR,YAAA,OAAO,SAAS,CAAA;AAElB,QAAA,KAAK,QAAQ;YACb;;;AAGE,gBAAA,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,SAAS,GAAG,SAAS,IAAI,CAAC,CAAC,CAAA;gBAExE,IAAI,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,EAAE;oBAC/C,OAAO,CAAC,CAAA;iBACT;AAAM,qBAAA,IAAI,YAAY,GAAG,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,CAAC,CAAC,EAAE;oBACxE,OAAO,cAAc,CAAA;iBACtB;qBAAM;AACL,oBAAA,OAAO,YAAY,CAAA;iBACpB;aACF;AAED,QAAA,KAAK,MAAM,CAAC;AACZ,QAAA;YACE,IAAI,aAAa,IAAI,SAAS,IAAI,aAAa,IAAI,SAAS,EAAE;AAC5D,gBAAA,OAAO,aAAa,CAAA;aACrB;AAAM,iBAAA,IAAI,aAAa,GAAG,SAAS,EAAE;AACpC,gBAAA,OAAO,SAAS,CAAA;aACjB;iBAAM;AACL,gBAAA,OAAO,SAAS,CAAA;aACjB;KACJ;AACH;;;;"}
1
+ {"version":3,"file":"helper.js","sources":["../../src/utils/helper.ts"],"sourcesContent":["// In DEV mode, this Set helps us only log a warning once per component instance.\n// This avoids spamming the console every time a render happens.\nexport const defaultItemKey = (index: number, _itemData?: unknown) => index\n\nexport function getOffsetForIndexAndAlignment ({\n align = 'auto',\n containerSize = 0,\n currentOffset = 0,\n scrollSize = 0,\n slideSize = 0,\n targetOffset = 0,\n}) {\n const lastItemOffset = Math.max(0, scrollSize - containerSize)\n const maxOffset = Math.min(lastItemOffset, targetOffset)\n const minOffset = Math.max(0, targetOffset - containerSize + slideSize)\n\n if (align === 'smart') {\n if (currentOffset >= minOffset - containerSize && currentOffset <= maxOffset + containerSize) {\n align = 'auto'\n } else {\n align = 'center'\n }\n }\n\n switch (align) {\n case 'start':\n return maxOffset\n\n case 'end':\n return minOffset\n\n case 'center':\n {\n // \"Centered\" offset is usually the average of the min and max.\n // But near the edges of the list, this doesn't hold true.\n const middleOffset = Math.round(minOffset + (maxOffset - minOffset) / 2)\n\n if (middleOffset < Math.ceil(containerSize / 2)) {\n return 0 // near the beginning\n } else if (middleOffset > lastItemOffset + Math.floor(containerSize / 2)) {\n return lastItemOffset // near the end\n } else {\n return middleOffset\n }\n }\n\n case 'auto':\n default:\n if (currentOffset >= minOffset && currentOffset <= maxOffset) {\n return currentOffset\n } else if (currentOffset < minOffset) {\n return minOffset\n } else {\n return maxOffset\n }\n }\n}\n"],"names":[],"mappings":"AAAA;AACA;AACO,MAAM,cAAc,GAAG,CAAC,KAAa,EAAE,SAAmB,KAAK;AAEhE,SAAU,6BAA6B,CAAE,EAC7C,KAAK,GAAG,MAAM,EACd,aAAa,GAAG,CAAC,EACjB,aAAa,GAAG,CAAC,EACjB,UAAU,GAAG,CAAC,EACd,SAAS,GAAG,CAAC,EACb,YAAY,GAAG,CAAC,GACjB,EAAA;AACC,IAAA,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,GAAG,aAAa,CAAC;IAC9D,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,YAAY,CAAC;AACxD,IAAA,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,YAAY,GAAG,aAAa,GAAG,SAAS,CAAC;AAEvE,IAAA,IAAI,KAAK,KAAK,OAAO,EAAE;AACrB,QAAA,IAAI,aAAa,IAAI,SAAS,GAAG,aAAa,IAAI,aAAa,IAAI,SAAS,GAAG,aAAa,EAAE;YAC5F,KAAK,GAAG,MAAM;;aACT;YACL,KAAK,GAAG,QAAQ;;;IAIpB,QAAQ,KAAK;AACX,QAAA,KAAK,OAAO;AACV,YAAA,OAAO,SAAS;AAElB,QAAA,KAAK,KAAK;AACR,YAAA,OAAO,SAAS;AAElB,QAAA,KAAK,QAAQ;YACb;;;AAGE,gBAAA,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,SAAS,GAAG,SAAS,IAAI,CAAC,CAAC;gBAExE,IAAI,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,EAAE;oBAC/C,OAAO,CAAC,CAAA;;AACH,qBAAA,IAAI,YAAY,GAAG,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,CAAC,CAAC,EAAE;oBACxE,OAAO,cAAc,CAAA;;qBAChB;AACL,oBAAA,OAAO,YAAY;;;AAIvB,QAAA,KAAK,MAAM;AACX,QAAA;YACE,IAAI,aAAa,IAAI,SAAS,IAAI,aAAa,IAAI,SAAS,EAAE;AAC5D,gBAAA,OAAO,aAAa;;AACf,iBAAA,IAAI,aAAa,GAAG,SAAS,EAAE;AACpC,gBAAA,OAAO,SAAS;;iBACX;AACL,gBAAA,OAAO,SAAS;;;AAGxB;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"lodash.js","sources":["../../src/utils/lodash.ts"],"sourcesContent":["export function omit<\n T extends Record<string, unknown> = Record<string, any>,\n P extends string = ''\n> (obj: T = ({} as T), fields: P[] = []): Omit<T, P> {\n const shallow = { ...obj }\n fields.forEach((key) => {\n delete shallow[key]\n })\n return shallow\n}\n\nexport function throttle (fn, threshold = 250, scope?) {\n let lastTime = 0\n let deferTimer: ReturnType<typeof setTimeout>\n return function (...args) {\n const context = scope || this\n const now = Date.now()\n if (now - lastTime > threshold) {\n fn.apply(this, args)\n lastTime = now\n } else {\n clearTimeout(deferTimer)\n deferTimer = setTimeout(() => {\n lastTime = now\n fn.apply(context, args)\n }, threshold)\n }\n }\n}\n\nexport function debounce (fn, ms = 250, scope?) {\n let timer: ReturnType<typeof setTimeout>\n\n return function (...args) {\n const context = scope || this\n clearTimeout(timer)\n timer = setTimeout(function () {\n fn.apply(context, args)\n }, ms)\n }\n}\n"],"names":[],"mappings":"SAAgB,IAAI,CAGjB,MAAU,EAAQ,EAAE,SAAc,EAAE,EAAA;AACrC,IAAA,MAAM,OAAO,GAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAQ,GAAG,CAAE,CAAA;AAC1B,IAAA,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;AACrB,QAAA,OAAO,OAAO,CAAC,GAAG,CAAC,CAAA;AACrB,KAAC,CAAC,CAAA;AACF,IAAA,OAAO,OAAO,CAAA;AAChB,CAAC;AAEK,SAAU,QAAQ,CAAE,EAAE,EAAE,SAAS,GAAG,GAAG,EAAE,KAAM,EAAA;IACnD,IAAI,QAAQ,GAAG,CAAC,CAAA;AAChB,IAAA,IAAI,UAAyC,CAAA;IAC7C,OAAO,UAAU,GAAG,IAAI,EAAA;AACtB,QAAA,MAAM,OAAO,GAAG,KAAK,IAAI,IAAI,CAAA;AAC7B,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;AACtB,QAAA,IAAI,GAAG,GAAG,QAAQ,GAAG,SAAS,EAAE;AAC9B,YAAA,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;YACpB,QAAQ,GAAG,GAAG,CAAA;SACf;aAAM;YACL,YAAY,CAAC,UAAU,CAAC,CAAA;AACxB,YAAA,UAAU,GAAG,UAAU,CAAC,MAAK;gBAC3B,QAAQ,GAAG,GAAG,CAAA;AACd,gBAAA,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;aACxB,EAAE,SAAS,CAAC,CAAA;SACd;AACH,KAAC,CAAA;AACH,CAAC;AAEK,SAAU,QAAQ,CAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,KAAM,EAAA;AAC5C,IAAA,IAAI,KAAoC,CAAA;IAExC,OAAO,UAAU,GAAG,IAAI,EAAA;AACtB,QAAA,MAAM,OAAO,GAAG,KAAK,IAAI,IAAI,CAAA;QAC7B,YAAY,CAAC,KAAK,CAAC,CAAA;QACnB,KAAK,GAAG,UAAU,CAAC,YAAA;AACjB,YAAA,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;SACxB,EAAE,EAAE,CAAC,CAAA;AACR,KAAC,CAAA;AACH;;;;"}
1
+ {"version":3,"file":"lodash.js","sources":["../../src/utils/lodash.ts"],"sourcesContent":["export function omit<\n T extends Record<string, unknown> = Record<string, any>,\n P extends string = ''\n> (obj: T = ({} as T), fields: P[] = []): Omit<T, P> {\n const shallow = { ...obj }\n fields.forEach((key) => {\n delete shallow[key]\n })\n return shallow\n}\n\nexport function throttle (fn, threshold = 250, scope?) {\n let lastTime = 0\n let deferTimer: ReturnType<typeof setTimeout>\n return function (...args) {\n const context = scope || this\n const now = Date.now()\n if (now - lastTime > threshold) {\n fn.apply(this, args)\n lastTime = now\n } else {\n clearTimeout(deferTimer)\n deferTimer = setTimeout(() => {\n lastTime = now\n fn.apply(context, args)\n }, threshold)\n }\n }\n}\n\nexport function debounce (fn, ms = 250, scope?) {\n let timer: ReturnType<typeof setTimeout>\n\n return function (...args) {\n const context = scope || this\n clearTimeout(timer)\n timer = setTimeout(function () {\n fn.apply(context, args)\n }, ms)\n }\n}\n"],"names":[],"mappings":"SAAgB,IAAI,CAGjB,MAAU,EAAQ,EAAE,SAAc,EAAE,EAAA;AACrC,IAAA,MAAM,OAAO,GAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAQ,GAAG,CAAE;AAC1B,IAAA,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;AACrB,QAAA,OAAO,OAAO,CAAC,GAAG,CAAC;AACrB,KAAC,CAAC;AACF,IAAA,OAAO,OAAO;AAChB;AAEM,SAAU,QAAQ,CAAE,EAAE,EAAE,SAAS,GAAG,GAAG,EAAE,KAAM,EAAA;IACnD,IAAI,QAAQ,GAAG,CAAC;AAChB,IAAA,IAAI,UAAyC;IAC7C,OAAO,UAAU,GAAG,IAAI,EAAA;AACtB,QAAA,MAAM,OAAO,GAAG,KAAK,IAAI,IAAI;AAC7B,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;AACtB,QAAA,IAAI,GAAG,GAAG,QAAQ,GAAG,SAAS,EAAE;AAC9B,YAAA,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC;YACpB,QAAQ,GAAG,GAAG;;aACT;YACL,YAAY,CAAC,UAAU,CAAC;AACxB,YAAA,UAAU,GAAG,UAAU,CAAC,MAAK;gBAC3B,QAAQ,GAAG,GAAG;AACd,gBAAA,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC;aACxB,EAAE,SAAS,CAAC;;AAEjB,KAAC;AACH;AAEM,SAAU,QAAQ,CAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,KAAM,EAAA;AAC5C,IAAA,IAAI,KAAoC;IAExC,OAAO,UAAU,GAAG,IAAI,EAAA;AACtB,QAAA,MAAM,OAAO,GAAG,KAAK,IAAI,IAAI;QAC7B,YAAY,CAAC,KAAK,CAAC;QACnB,KAAK,GAAG,UAAU,CAAC,YAAA;AACjB,YAAA,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC;SACxB,EAAE,EAAE,CAAC;AACR,KAAC;AACH;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"math.js","sources":["../../src/utils/math.ts"],"sourcesContent":["export function getMiddleNumber (...list: number[]) {\n return list.sort((a, b) => a - b)[Math.floor(list.length / 2)]\n}\n\nexport function isCosDistributing (list: number[], datum = 0) {\n let flags = 0\n for (let i = 0; i < list.length - 1; i++) {\n if (getMiddleNumber(list[i], datum, list[i + 1]) === datum) {\n flags++\n }\n }\n\n return flags === list.length - 1\n}\n"],"names":[],"mappings":"AAAgB,SAAA,eAAe,CAAE,GAAG,IAAc,EAAA;IAChD,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAA;AAChE,CAAC;SAEe,iBAAiB,CAAE,IAAc,EAAE,KAAK,GAAG,CAAC,EAAA;IAC1D,IAAI,KAAK,GAAG,CAAC,CAAA;AACb,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AACxC,QAAA,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE;AAC1D,YAAA,KAAK,EAAE,CAAA;SACR;KACF;AAED,IAAA,OAAO,KAAK,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC,CAAA;AAClC;;;;"}
1
+ {"version":3,"file":"math.js","sources":["../../src/utils/math.ts"],"sourcesContent":["export function getMiddleNumber (...list: number[]) {\n return list.sort((a, b) => a - b)[Math.floor(list.length / 2)]\n}\n\nexport function isCosDistributing (list: number[], datum = 0) {\n let flags = 0\n for (let i = 0; i < list.length - 1; i++) {\n if (getMiddleNumber(list[i], datum, list[i + 1]) === datum) {\n flags++\n }\n }\n\n return flags === list.length - 1\n}\n"],"names":[],"mappings":"AAAgB,SAAA,eAAe,CAAE,GAAG,IAAc,EAAA;IAChD,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAChE;SAEgB,iBAAiB,CAAE,IAAc,EAAE,KAAK,GAAG,CAAC,EAAA;IAC1D,IAAI,KAAK,GAAG,CAAC;AACb,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AACxC,QAAA,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE;AAC1D,YAAA,KAAK,EAAE;;;AAIX,IAAA,OAAO,KAAK,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC;AAClC;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"timer.js","sources":["../../src/utils/timer.ts"],"sourcesContent":["import { cancelAnimationFrame, now, requestAnimationFrame } from '@tarojs/runtime'\n\ninterface ITimeoutID {\n id: number\n}\n\nexport function cancelTimeout (timeoutID: ITimeoutID) {\n cancelAnimationFrame(timeoutID.id)\n}\n\nexport function requestTimeout (callback: () => void, delay = 0) {\n const start = now()\n\n const timeoutID: ITimeoutID = {\n id: requestAnimationFrame(tick) as number\n }\n\n function tick () {\n if (now() - start >= delay) {\n // eslint-disable-next-line no-useless-call\n callback.call(null)\n } else {\n timeoutID.id = requestAnimationFrame(tick) as number\n }\n }\n\n return timeoutID\n}\n"],"names":[],"mappings":";;AAMM,SAAU,aAAa,CAAE,SAAqB,EAAA;AAClD,IAAA,oBAAoB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;AACpC,CAAC;SAEe,cAAc,CAAE,QAAoB,EAAE,KAAK,GAAG,CAAC,EAAA;AAC7D,IAAA,MAAM,KAAK,GAAG,GAAG,EAAE,CAAA;AAEnB,IAAA,MAAM,SAAS,GAAe;AAC5B,QAAA,EAAE,EAAE,qBAAqB,CAAC,IAAI,CAAW;KAC1C,CAAA;AAED,IAAA,SAAS,IAAI,GAAA;AACX,QAAA,IAAI,GAAG,EAAE,GAAG,KAAK,IAAI,KAAK,EAAE;;AAE1B,YAAA,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;SACpB;aAAM;AACL,YAAA,SAAS,CAAC,EAAE,GAAG,qBAAqB,CAAC,IAAI,CAAW,CAAA;SACrD;KACF;AAED,IAAA,OAAO,SAAS,CAAA;AAClB;;;;"}
1
+ {"version":3,"file":"timer.js","sources":["../../src/utils/timer.ts"],"sourcesContent":["import { cancelAnimationFrame, now, requestAnimationFrame } from '@tarojs/runtime'\n\ninterface ITimeoutID {\n id: number\n}\n\nexport function cancelTimeout (timeoutID: ITimeoutID) {\n cancelAnimationFrame(timeoutID.id)\n}\n\nexport function requestTimeout (callback: () => void, delay = 0) {\n const start = now()\n\n const timeoutID: ITimeoutID = {\n id: requestAnimationFrame(tick) as number\n }\n\n function tick () {\n if (now() - start >= delay) {\n // eslint-disable-next-line no-useless-call\n callback.call(null)\n } else {\n timeoutID.id = requestAnimationFrame(tick) as number\n }\n }\n\n return timeoutID\n}\n"],"names":[],"mappings":";;AAMM,SAAU,aAAa,CAAE,SAAqB,EAAA;AAClD,IAAA,oBAAoB,CAAC,SAAS,CAAC,EAAE,CAAC;AACpC;SAEgB,cAAc,CAAE,QAAoB,EAAE,KAAK,GAAG,CAAC,EAAA;AAC7D,IAAA,MAAM,KAAK,GAAG,GAAG,EAAE;AAEnB,IAAA,MAAM,SAAS,GAAe;AAC5B,QAAA,EAAE,EAAE,qBAAqB,CAAC,IAAI;KAC/B;AAED,IAAA,SAAS,IAAI,GAAA;AACX,QAAA,IAAI,GAAG,EAAE,GAAG,KAAK,IAAI,KAAK,EAAE;;AAE1B,YAAA,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;;aACd;AACL,YAAA,SAAS,CAAC,EAAE,GAAG,qBAAqB,CAAC,IAAI,CAAW;;;AAIxD,IAAA,OAAO,SAAS;AAClB;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"vue-render.js","sources":["../../src/utils/vue-render.ts"],"sourcesContent":["import { h } from 'vue'\n\nexport default function (componentName: string, options?: Record<string, any>, children?: any) {\n const { attrs = {}, on = {}, props = {}, slots = {}, ...el } = options\n // Events\n Object.keys(on).forEach(key => {\n const name = `on${key.charAt(0).toUpperCase()}${key.slice(1)}`\n el[name] = on[key]\n })\n return h(componentName, { ...attrs, ...props, ...slots, ...el }, children)\n}\n"],"names":[],"mappings":";;;AAEc,eAAA,EAAW,aAAqB,EAAE,OAA6B,EAAE,QAAc,EAAA;IAC3F,MAAM,EAAE,KAAK,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,GAAG,EAAE,EAAE,KAAK,GAAG,EAAE,KAAY,OAAO,EAAd,EAAE,GAAA,MAAA,CAAK,OAAO;;AAAhE,MAAA,CAAA,OAAA,EAAA,IAAA,EAAA,OAAA,EAAA,OAAA,CAAsD,CAAU,CAAA;;IAEtE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,IAAG;QAC5B,MAAM,IAAI,GAAG,CAAK,EAAA,EAAA,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAA,EAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA;QAC9D,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAA;AACpB,KAAC,CAAC,CAAA;AACF,IAAA,OAAO,CAAC,CAAC,aAAa,EAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAO,KAAK,CAAK,EAAA,KAAK,CAAK,EAAA,KAAK,CAAK,EAAA,EAAE,CAAI,EAAA,QAAQ,CAAC,CAAA;AAC5E;;;;"}
1
+ {"version":3,"file":"vue-render.js","sources":["../../src/utils/vue-render.ts"],"sourcesContent":["import { h } from 'vue'\n\nexport default function (componentName: string, options?: Record<string, any>, children?: any) {\n const { attrs = {}, on = {}, props = {}, slots = {}, ...el } = options\n // Events\n Object.keys(on).forEach(key => {\n const name = `on${key.charAt(0).toUpperCase()}${key.slice(1)}`\n el[name] = on[key]\n })\n return h(componentName, { ...attrs, ...props, ...slots, ...el }, children)\n}\n"],"names":[],"mappings":";;;AAEc,eAAA,EAAW,aAAqB,EAAE,OAA6B,EAAE,QAAc,EAAA;IAC3F,MAAM,EAAE,KAAK,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,GAAG,EAAE,EAAE,KAAK,GAAG,EAAE,KAAY,OAAO,EAAd,EAAE,GAAA,MAAA,CAAK;;AAAzD,MAAA,CAAA,OAAA,EAAA,IAAA,EAAA,OAAA,EAAA,OAAA,CAAsD,CAAU;;IAEtE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,IAAG;QAC5B,MAAM,IAAI,GAAG,CAAK,EAAA,EAAA,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAA,EAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;QAC9D,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC;AACpB,KAAC,CAAC;AACF,IAAA,OAAO,CAAC,CAAC,aAAa,EAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAO,KAAK,CAAK,EAAA,KAAK,CAAK,EAAA,KAAK,CAAK,EAAA,EAAE,CAAI,EAAA,QAAQ,CAAC;AAC5E;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tarojs/components-advanced",
3
- "version": "4.0.8-beta.0",
3
+ "version": "4.0.8-beta.3",
4
4
  "description": "",
5
5
  "author": "O2Team",
6
6
  "license": "MIT",
@@ -20,21 +20,19 @@
20
20
  "csstype": "^3.1.1",
21
21
  "memoize-one": "^6.0.0",
22
22
  "tslib": "^2.6.2",
23
- "@tarojs/components": "4.0.8-beta.0"
23
+ "@tarojs/components": "4.0.8-beta.3"
24
24
  },
25
25
  "devDependencies": {
26
- "react": "^18.2.0",
27
- "react-dom": "^18.2.0",
28
26
  "vue": "3.2.47",
29
- "@tarojs/runtime": "4.0.8-beta.0",
30
- "@tarojs/shared": "4.0.8-beta.0",
31
- "@tarojs/taro": "4.0.8-beta.0"
27
+ "@tarojs/shared": "4.0.8-beta.3",
28
+ "@tarojs/runtime": "4.0.8-beta.3",
29
+ "@tarojs/taro": "4.0.8-beta.3"
32
30
  },
33
31
  "peerDependencies": {
34
- "react": ">=17",
35
- "@tarojs/shared": "~4.0.8-beta.0",
36
- "@tarojs/runtime": "~4.0.8-beta.0",
37
- "@tarojs/taro": "~4.0.8-beta.0"
32
+ "react": ">=18",
33
+ "@tarojs/taro": "~4.0.8-beta.3",
34
+ "@tarojs/runtime": "~4.0.8-beta.3",
35
+ "@tarojs/shared": "~4.0.8-beta.3"
38
36
  },
39
37
  "peerDependenciesMeta": {
40
38
  "react": {
@@ -48,7 +46,7 @@
48
46
  "prod": "pnpm run build",
49
47
  "prebuild": "pnpm run clean",
50
48
  "build": "rollup -c",
51
- "clean": "rimraf --impl=move-remove ./dist",
49
+ "clean": "rimraf ./dist",
52
50
  "dev": "pnpm run build -w"
53
51
  }
54
52
  }