@tarojs/components-advanced 3.6.0-beta.1 → 3.6.0-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.
- package/dist/components/index.d.ts +1 -1
- package/dist/components/index.js +2 -1
- package/dist/components/index.js.map +1 -0
- package/dist/components/virtual-list/constants.d.ts +2 -1
- package/dist/components/virtual-list/constants.js +4 -1
- package/dist/components/virtual-list/constants.js.map +1 -0
- package/dist/components/virtual-list/dom-helpers.d.ts +2 -1
- package/dist/components/virtual-list/dom-helpers.js +33 -30
- package/dist/components/virtual-list/dom-helpers.js.map +1 -0
- package/dist/components/virtual-list/index.d.ts +3 -4
- package/dist/components/virtual-list/index.js +5 -102
- package/dist/components/virtual-list/index.js.map +1 -0
- package/dist/components/virtual-list/list-set.d.ts +4 -4
- package/dist/components/virtual-list/list-set.js +178 -223
- package/dist/components/virtual-list/list-set.js.map +1 -0
- package/dist/components/virtual-list/preset.d.ts +7 -6
- package/dist/components/virtual-list/preset.js +117 -148
- package/dist/components/virtual-list/preset.js.map +1 -0
- package/dist/components/virtual-list/react/index.d.ts +2 -2
- package/dist/components/virtual-list/react/index.js +31 -59
- package/dist/components/virtual-list/react/index.js.map +1 -0
- package/dist/components/virtual-list/react/list.d.ts +10 -5
- package/dist/components/virtual-list/react/list.js +347 -451
- package/dist/components/virtual-list/react/list.js.map +1 -0
- package/dist/components/virtual-list/react/validate.d.ts +4 -3
- package/dist/components/virtual-list/react/validate.js +60 -66
- package/dist/components/virtual-list/react/validate.js.map +1 -0
- package/dist/components/virtual-list/utils.d.ts +5 -5
- package/dist/components/virtual-list/utils.js +27 -28
- package/dist/components/virtual-list/utils.js.map +1 -0
- package/dist/components/virtual-list/vue/index.d.ts +6 -6
- package/dist/components/virtual-list/vue/index.js +10 -6
- package/dist/components/virtual-list/vue/index.js.map +1 -0
- package/dist/components/virtual-list/vue/list.d.ts +2 -2
- package/dist/components/virtual-list/vue/list.js +435 -475
- package/dist/components/virtual-list/vue/list.js.map +1 -0
- package/dist/components/virtual-list/vue/render.d.ts +2 -1
- package/dist/components/virtual-list/vue/render.js +17 -24
- package/dist/components/virtual-list/vue/render.js.map +1 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.js +8 -2
- package/dist/index.js.map +1 -0
- package/dist/utils/convert.d.ts +3 -2
- package/dist/utils/convert.js +15 -11
- package/dist/utils/convert.js.map +1 -0
- package/dist/utils/index.d.ts +4 -5
- package/dist/utils/index.js +5 -5
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/lodash.d.ts +2 -1
- package/dist/utils/lodash.js +10 -10
- package/dist/utils/lodash.js.map +1 -0
- package/dist/utils/math.d.ts +3 -2
- package/dist/utils/math.js +13 -16
- package/dist/utils/math.js.map +1 -0
- package/dist/utils/timer.d.ts +3 -3
- package/dist/utils/timer.js +21 -17
- package/dist/utils/timer.js.map +1 -0
- package/package.json +16 -8
- package/dist/utils/constants.d.ts +0 -4
- package/dist/utils/constants.js +0 -4
|
@@ -1,166 +1,135 @@
|
|
|
1
|
-
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
|
2
|
-
import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
|
|
3
|
-
import _createClass from "@babel/runtime/helpers/esm/createClass";
|
|
4
|
-
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
5
1
|
import memoizeOne from 'memoize-one';
|
|
6
|
-
import
|
|
7
|
-
import ListSet from './list-set';
|
|
8
|
-
import { isHorizontalFunc, isRtlFunc } from './utils';
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
_createClass(Preset, [{
|
|
34
|
-
key: "init",
|
|
35
|
-
value: function init(props) {
|
|
36
|
-
this.props = props;
|
|
2
|
+
import '../../utils/index.js';
|
|
3
|
+
import ListSet from './list-set.js';
|
|
4
|
+
import { isHorizontalFunc, isRtlFunc } from './utils.js';
|
|
5
|
+
import { isCosDistributing } from '../../utils/math.js';
|
|
6
|
+
import { convertNumber2PX } from '../../utils/convert.js';
|
|
7
|
+
|
|
8
|
+
let INSTANCE_ID = 0;
|
|
9
|
+
class Preset {
|
|
10
|
+
constructor(props, refresh) {
|
|
11
|
+
this.props = props;
|
|
12
|
+
this.refresh = refresh;
|
|
13
|
+
this.wrapperField = {
|
|
14
|
+
scrollLeft: 0,
|
|
15
|
+
scrollTop: 0,
|
|
16
|
+
scrollHeight: 0,
|
|
17
|
+
scrollWidth: 0,
|
|
18
|
+
clientHeight: 0,
|
|
19
|
+
clientWidth: 0,
|
|
20
|
+
diffOffset: 0
|
|
21
|
+
};
|
|
22
|
+
this.diffList = [0, 0, 0];
|
|
23
|
+
this.getItemStyleCache = memoizeOne((_itemSize, _layout, _direction) => {
|
|
24
|
+
// TODO: Cache of item styles, keyed by item index.
|
|
25
|
+
return {};
|
|
26
|
+
});
|
|
27
|
+
this.init(this.props);
|
|
28
|
+
this.itemList = new ListSet(props, refresh);
|
|
37
29
|
}
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
value: function update(props) {
|
|
41
|
-
this.props = props;
|
|
42
|
-
this.itemList.update(props);
|
|
30
|
+
init(props) {
|
|
31
|
+
this.props = props;
|
|
43
32
|
}
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
return "virtual-list-".concat(INSTANCE_ID++);
|
|
33
|
+
update(props) {
|
|
34
|
+
this.props = props;
|
|
35
|
+
this.itemList.update(props);
|
|
48
36
|
}
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
get: function get() {
|
|
52
|
-
return isHorizontalFunc(this.props);
|
|
37
|
+
get id() {
|
|
38
|
+
return `virtual-list-${INSTANCE_ID++}`;
|
|
53
39
|
}
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
get: function get() {
|
|
57
|
-
return isRtlFunc(this.props);
|
|
40
|
+
get isHorizontal() {
|
|
41
|
+
return isHorizontalFunc(this.props);
|
|
58
42
|
}
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
get: function get() {
|
|
62
|
-
return this.props.position === 'relative';
|
|
43
|
+
get isRtl() {
|
|
44
|
+
return isRtlFunc(this.props);
|
|
63
45
|
}
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
get: function get() {
|
|
67
|
-
return this.props.placeholderCount >= 0 ? this.props.placeholderCount : this.props.overscanCount;
|
|
46
|
+
get isRelative() {
|
|
47
|
+
return this.props.position === 'relative';
|
|
68
48
|
}
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
get: function get() {
|
|
72
|
-
return this.props.outerElementType || this.props.outerTagName || 'div';
|
|
49
|
+
get placeholderCount() {
|
|
50
|
+
return this.props.placeholderCount >= 0 ? this.props.placeholderCount : this.props.overscanCount;
|
|
73
51
|
}
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
get: function get() {
|
|
77
|
-
return this.props.innerElementType || this.props.innerTagName || 'div';
|
|
52
|
+
get outerTagName() {
|
|
53
|
+
return this.props.outerElementType || this.props.outerTagName || 'div';
|
|
78
54
|
}
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
get: function get() {
|
|
82
|
-
return this.props.itemElementType || this.props.itemTagName || 'div';
|
|
55
|
+
get innerTagName() {
|
|
56
|
+
return this.props.innerElementType || this.props.innerTagName || 'div';
|
|
83
57
|
}
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
get: function get() {
|
|
87
|
-
return this.wrapperField;
|
|
88
|
-
},
|
|
89
|
-
set: function set(o) {
|
|
90
|
-
Object.assign(this.wrapperField, o);
|
|
91
|
-
// Object.keys(o).forEach(key => {
|
|
92
|
-
// if (typeof o[key] === 'number' && typeof this.wrapperField[key] === 'number') {
|
|
93
|
-
// this.wrapperField[key] = o[key]
|
|
94
|
-
// }
|
|
95
|
-
// })
|
|
58
|
+
get itemTagName() {
|
|
59
|
+
return this.props.itemElementType || this.props.itemTagName || 'div';
|
|
96
60
|
}
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
value: function isShaking(diff) {
|
|
100
|
-
var list = this.diffList.slice(-3);
|
|
101
|
-
this.diffList.push(diff);
|
|
102
|
-
return list.findIndex(function (e) {
|
|
103
|
-
return Math.abs(e) === Math.abs(diff);
|
|
104
|
-
}) !== -1 || isCosDistributing(this.diffList.slice(-4));
|
|
61
|
+
get field() {
|
|
62
|
+
return this.wrapperField;
|
|
105
63
|
}
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
style
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
64
|
+
set field(o) {
|
|
65
|
+
Object.assign(this.wrapperField, o);
|
|
66
|
+
// Object.keys(o).forEach(key => {
|
|
67
|
+
// if (typeof o[key] === 'number' && typeof this.wrapperField[key] === 'number') {
|
|
68
|
+
// this.wrapperField[key] = o[key]
|
|
69
|
+
// }
|
|
70
|
+
// })
|
|
71
|
+
}
|
|
72
|
+
isShaking(diff) {
|
|
73
|
+
const list = this.diffList.slice(-3);
|
|
74
|
+
this.diffList.push(diff);
|
|
75
|
+
return list.findIndex(e => Math.abs(e) === Math.abs(diff)) !== -1 || isCosDistributing(this.diffList.slice(-4));
|
|
76
|
+
}
|
|
77
|
+
getItemStyle(index) {
|
|
78
|
+
const { direction, itemSize, layout, shouldResetStyleCacheOnItemSizeChange } = this.props;
|
|
79
|
+
const itemStyleCache = this.getItemStyleCache(shouldResetStyleCacheOnItemSizeChange ? itemSize : false, shouldResetStyleCacheOnItemSizeChange ? layout : false, shouldResetStyleCacheOnItemSizeChange ? direction : false);
|
|
80
|
+
let style;
|
|
81
|
+
const offset = convertNumber2PX(this.itemList.getOffsetSize(index));
|
|
82
|
+
const size = convertNumber2PX(this.itemList.getSize(index));
|
|
83
|
+
const isHorizontal = this.isHorizontal;
|
|
84
|
+
const isRtl = this.isRtl;
|
|
85
|
+
if (itemStyleCache.hasOwnProperty(index)) {
|
|
86
|
+
// Note: style is frozen.
|
|
87
|
+
style = Object.assign({}, itemStyleCache[index]);
|
|
88
|
+
if (isHorizontal) {
|
|
89
|
+
style.width = size;
|
|
90
|
+
if (!this.isRelative) {
|
|
91
|
+
if (isRtl) {
|
|
92
|
+
style.right = offset;
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
style.left = offset;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
style.height = size;
|
|
101
|
+
if (!this.isRelative) {
|
|
102
|
+
style.top = offset;
|
|
103
|
+
}
|
|
130
104
|
}
|
|
131
|
-
}
|
|
132
|
-
} else {
|
|
133
|
-
style.height = size;
|
|
134
|
-
if (!this.isRelative) {
|
|
135
|
-
style.top = offset;
|
|
136
|
-
}
|
|
137
105
|
}
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
106
|
+
else {
|
|
107
|
+
if (this.isRelative) {
|
|
108
|
+
itemStyleCache[index] = style = {
|
|
109
|
+
height: !isHorizontal ? size : '100%',
|
|
110
|
+
width: isHorizontal ? size : '100%'
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
const offsetHorizontal = isHorizontal ? offset : 0;
|
|
115
|
+
itemStyleCache[index] = style = {
|
|
116
|
+
position: 'absolute',
|
|
117
|
+
left: !isRtl ? offsetHorizontal : undefined,
|
|
118
|
+
right: isRtl ? offsetHorizontal : undefined,
|
|
119
|
+
top: !isHorizontal ? offset : 0,
|
|
120
|
+
height: !isHorizontal ? size : '100%',
|
|
121
|
+
width: isHorizontal ? size : '100%'
|
|
122
|
+
};
|
|
123
|
+
}
|
|
154
124
|
}
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
125
|
+
for (const k in style) {
|
|
126
|
+
if (style.hasOwnProperty(k)) {
|
|
127
|
+
style[k] = convertNumber2PX(style[k]);
|
|
128
|
+
}
|
|
159
129
|
}
|
|
160
|
-
|
|
161
|
-
return style;
|
|
130
|
+
return style;
|
|
162
131
|
}
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
}
|
|
166
|
-
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
export { Preset as default };
|
|
135
|
+
//# sourceMappingURL=preset.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"preset.js","sources":["../../../src/components/virtual-list/preset.ts"],"sourcesContent":["import memoizeOne from 'memoize-one'\n\nimport { convertNumber2PX, isCosDistributing } from '../../utils'\nimport ListSet from './list-set'\nimport { defaultItemKey, isHorizontalFunc, isRtlFunc } from './utils'\n\nimport type { VirtualListProps } from './'\n\nlet INSTANCE_ID = 0\n\nexport interface IProps extends Partial<VirtualListProps> {\n children?: VirtualListProps['item']\n direction?: 'ltr' | 'rtl' | 'horizontal' | 'vertical'\n itemKey?: typeof defaultItemKey\n itemTagName?: string\n innerTagName?: string\n outerTagName?: string\n itemElementType?: React.ComponentType | string\n outerElementType?: React.ComponentType | string\n innerRef?: React.Ref<HTMLElement> | string\n outerRef?: React.Ref<HTMLElement> | string\n onItemsRendered?: TFunc\n shouldResetStyleCacheOnItemSizeChange?: boolean\n}\n\nexport default class Preset {\n itemList: ListSet\n\n constructor (protected props: IProps, protected refresh?: TFunc) {\n this.init(this.props)\n this.itemList = new ListSet(props, refresh)\n }\n\n wrapperField = {\n scrollLeft: 0,\n scrollTop: 0,\n scrollHeight: 0,\n scrollWidth: 0,\n clientHeight: 0,\n clientWidth: 0,\n diffOffset: 0\n }\n\n diffList: number[] = [0, 0, 0]\n\n init (props: IProps) {\n this.props = props\n }\n\n update (props: IProps) {\n this.props = props\n this.itemList.update(props)\n }\n\n get id () {\n return `virtual-list-${INSTANCE_ID++}`\n }\n\n get isHorizontal () {\n return isHorizontalFunc(this.props)\n }\n\n get isRtl () {\n return isRtlFunc(this.props)\n }\n\n get isRelative () {\n return this.props.position === 'relative'\n }\n\n get placeholderCount () {\n return this.props.placeholderCount >= 0 ? this.props.placeholderCount : this.props.overscanCount\n }\n\n get outerTagName () {\n return this.props.outerElementType || this.props.outerTagName || 'div'\n }\n\n get innerTagName () {\n return this.props.innerElementType || this.props.innerTagName || 'div'\n }\n\n get itemTagName () {\n return this.props.itemElementType || this.props.itemTagName || 'div'\n }\n\n get field () {\n return this.wrapperField\n }\n\n set field (o: Record<string, number>) {\n Object.assign(this.wrapperField, o)\n // Object.keys(o).forEach(key => {\n // if (typeof o[key] === 'number' && typeof this.wrapperField[key] === 'number') {\n // this.wrapperField[key] = o[key]\n // }\n // })\n }\n\n isShaking (diff?: number) {\n const list = this.diffList.slice(-3)\n this.diffList.push(diff)\n return list.findIndex(e => Math.abs(e) === Math.abs(diff)) !== -1 || isCosDistributing(this.diffList.slice(-4))\n }\n\n getItemStyleCache = memoizeOne((\n _itemSize?: IProps['itemSize'] | false,\n _layout?: IProps['layout'] | false,\n _direction?: IProps['direction'] | false\n ) => {\n // TODO: Cache of item styles, keyed by item index.\n return {}\n })\n\n getItemStyle (index: number) {\n const {\n direction,\n itemSize,\n layout,\n shouldResetStyleCacheOnItemSizeChange\n } = this.props\n\n const itemStyleCache = this.getItemStyleCache(\n shouldResetStyleCacheOnItemSizeChange ? itemSize : false,\n shouldResetStyleCacheOnItemSizeChange ? layout : false,\n shouldResetStyleCacheOnItemSizeChange ? direction : false\n )\n\n let style\n\n const offset = convertNumber2PX(this.itemList.getOffsetSize(index))\n const size = convertNumber2PX(this.itemList.getSize(index))\n const isHorizontal = this.isHorizontal\n const isRtl = this.isRtl\n if (itemStyleCache.hasOwnProperty(index)) {\n // Note: style is frozen.\n style = { ...itemStyleCache[index] }\n if (isHorizontal) {\n style.width = size\n if (!this.isRelative) {\n if (isRtl) {\n style.right = offset\n } else {\n style.left = offset\n }\n }\n } else {\n style.height = size\n if (!this.isRelative) {\n style.top = offset\n }\n }\n } else {\n if (this.isRelative) {\n itemStyleCache[index] = style = {\n height: !isHorizontal ? size : '100%',\n width: isHorizontal ? size : '100%'\n }\n } else {\n const offsetHorizontal = isHorizontal ? offset : 0\n itemStyleCache[index] = style = {\n position: 'absolute',\n left: !isRtl ? offsetHorizontal : undefined,\n right: isRtl ? offsetHorizontal : undefined,\n top: !isHorizontal ? offset : 0,\n height: !isHorizontal ? size : '100%',\n width: isHorizontal ? size : '100%'\n }\n }\n }\n\n for (const k in style) {\n if (style.hasOwnProperty(k)) {\n style[k] = convertNumber2PX(style[k])\n }\n }\n\n return style\n }\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import
|
|
2
|
+
import { VirtualListProps } from "../index";
|
|
3
3
|
declare const VirtualList: React.ForwardRefExoticComponent<Pick<VirtualListProps, "id" | "className" | "style" | "key" | "hidden" | "animation" | "dangerouslySetInnerHTML" | "onTouchStart" | "onTouchMove" | "onTouchCancel" | "onTouchEnd" | "onClick" | "onLongPress" | "onLongClick" | "onTransitionEnd" | "onAnimationStart" | "onAnimationIteration" | "onAnimationEnd" | "onTouchForceChange" | "height" | "width" | "item" | "itemCount" | "itemData" | "itemSize" | "unlimitedSize" | "position" | "initialScrollOffset" | "innerElementType" | "renderTop" | "renderBottom" | "layout" | "onScroll" | "onScrollNative" | "overscanCount" | "placeholderCount" | "useIsScrolling"> & React.RefAttributes<unknown>>;
|
|
4
|
-
export default
|
|
4
|
+
export { VirtualList as default };
|
|
@@ -1,63 +1,35 @@
|
|
|
1
|
-
import
|
|
2
|
-
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
|
3
|
-
var _excluded = ["style", "onScroll", "onScrollNative", "layout"],
|
|
4
|
-
_excluded2 = ["direction", "innerElementType", "itemElementType", "initialScrollOffset", "overscanCount"];
|
|
1
|
+
import { __rest } from 'tslib';
|
|
5
2
|
import { ScrollView, View } from '@tarojs/components';
|
|
6
3
|
import React from 'react';
|
|
7
|
-
import { convertPX2Int } from '../../../utils/convert';
|
|
8
|
-
import List from './list';
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
style =
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
clientHeight: convertPX2Int(style.height)
|
|
21
|
-
})
|
|
22
|
-
}));
|
|
23
|
-
if (typeof onScrollNative === 'function') {
|
|
24
|
-
onScrollNative(event);
|
|
25
|
-
}
|
|
26
|
-
};
|
|
27
|
-
return React.createElement(ScrollView, _objectSpread({
|
|
28
|
-
ref: ref,
|
|
29
|
-
style: style,
|
|
30
|
-
scrollY: layout === 'vertical',
|
|
31
|
-
scrollX: layout === 'horizontal',
|
|
32
|
-
onScroll: handleScroll
|
|
33
|
-
}, rest));
|
|
4
|
+
import { convertPX2Int } from '../../../utils/convert.js';
|
|
5
|
+
import List from './list.js';
|
|
6
|
+
|
|
7
|
+
const OuterScrollView = React.forwardRef(function OuterScrollView(props, ref) {
|
|
8
|
+
const _a = props, { style, onScroll, onScrollNative, layout } = _a, rest = __rest(_a, ["style", "onScroll", "onScrollNative", "layout"]);
|
|
9
|
+
const handleScroll = (event) => {
|
|
10
|
+
onScroll(Object.assign(Object.assign({}, event), { currentTarget: Object.assign(Object.assign({}, event.detail), { clientWidth: convertPX2Int(style.width), clientHeight: convertPX2Int(style.height) }) }));
|
|
11
|
+
if (typeof onScrollNative === 'function') {
|
|
12
|
+
onScrollNative(event);
|
|
13
|
+
}
|
|
14
|
+
};
|
|
15
|
+
return React.createElement(ScrollView, Object.assign({ ref,
|
|
16
|
+
style, scrollY: layout === 'vertical', scrollX: layout === 'horizontal', onScroll: handleScroll }, rest));
|
|
34
17
|
});
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
console.warn('Taro(VirtualList): item should not be an array');
|
|
50
|
-
rest.item = rest.item[0];
|
|
51
|
-
}
|
|
52
|
-
return React.createElement(List, _objectSpread(_objectSpread({
|
|
53
|
-
ref: ref
|
|
54
|
-
}, rest), {}, {
|
|
55
|
-
itemElementType: itemElementType,
|
|
56
|
-
innerElementType: innerElementType,
|
|
57
|
-
outerElementType: OuterScrollView,
|
|
58
|
-
direction: direction,
|
|
59
|
-
initialScrollOffset: initialScrollOffset,
|
|
60
|
-
overscanCount: overscanCount
|
|
61
|
-
}));
|
|
18
|
+
const VirtualList = React.forwardRef(function VirtualList(props, ref) {
|
|
19
|
+
const _a = props, { direction = 'ltr', innerElementType = View, itemElementType = View, initialScrollOffset = 0, overscanCount = 1 } = _a, rest = __rest(_a, ["direction", "innerElementType", "itemElementType", "initialScrollOffset", "overscanCount"]);
|
|
20
|
+
if ('children' in rest) {
|
|
21
|
+
console.warn('Taro(VirtualList): children props have been deprecated. ' + 'Please use the item props instead.');
|
|
22
|
+
rest.item = rest.children;
|
|
23
|
+
}
|
|
24
|
+
if (rest.item instanceof Array) {
|
|
25
|
+
console.warn('Taro(VirtualList): item should not be an array');
|
|
26
|
+
rest.item = rest.item[0];
|
|
27
|
+
}
|
|
28
|
+
return React.createElement(List, Object.assign(Object.assign({ ref }, rest), { itemElementType,
|
|
29
|
+
innerElementType, outerElementType: OuterScrollView, direction,
|
|
30
|
+
initialScrollOffset,
|
|
31
|
+
overscanCount }));
|
|
62
32
|
});
|
|
63
|
-
|
|
33
|
+
|
|
34
|
+
export { VirtualList as default };
|
|
35
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/components/virtual-list/react/index.ts"],"sourcesContent":["import { ScrollView, View } from '@tarojs/components'\nimport React from 'react'\n\nimport { convertPX2Int } from '../../../utils/convert'\nimport List from './list'\n\nimport type { BaseEventOrig } from '@tarojs/components'\nimport type { VirtualListProps } from '../'\nimport type { IProps } from '../preset'\n\nconst OuterScrollView = React.forwardRef(\n function OuterScrollView (props, ref) {\n const { style, onScroll, onScrollNative, layout, ...rest } = props as IProps\n const handleScroll = (event: BaseEventOrig<VirtualListProps.IVirtualListEventDetail>) => {\n onScroll({\n ...event as any,\n currentTarget: {\n ...event.detail,\n clientWidth: convertPX2Int(style.width),\n clientHeight: convertPX2Int(style.height)\n } as any\n })\n\n if (typeof onScrollNative === 'function') {\n onScrollNative(event)\n }\n }\n\n return React.createElement<any>(ScrollView, {\n ref,\n style,\n scrollY: layout === 'vertical',\n scrollX: layout === 'horizontal',\n onScroll: handleScroll,\n ...rest\n })\n }\n)\n\nconst VirtualList = React.forwardRef(function VirtualList (props: VirtualListProps, ref) {\n const {\n direction = 'ltr',\n innerElementType = View,\n itemElementType = View,\n initialScrollOffset = 0,\n overscanCount = 1,\n ...rest\n } = props as IProps\n\n if ('children' in rest) {\n console.warn('Taro(VirtualList): children props have been deprecated. ' + 'Please use the item props instead.')\n rest.item = rest.children as IProps['item']\n }\n if (rest.item instanceof Array) {\n console.warn('Taro(VirtualList): item should not be an array')\n rest.item = rest.item[0]\n }\n return React.createElement(List, {\n ref,\n ...rest,\n itemElementType,\n innerElementType,\n outerElementType: OuterScrollView,\n direction,\n initialScrollOffset,\n overscanCount\n })\n})\n\nexport default VirtualList\n"],"names":[],"mappings":";;;;;;AAUA,MAAM,eAAe,GAAG,KAAK,CAAC,UAAU,CACtC,SAAS,eAAe,CAAE,KAAK,EAAE,GAAG,EAAA;AAClC,IAAA,MAAM,KAAuD,KAAe,EAAtE,EAAE,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAA6B,GAAA,EAAA,EAAxB,IAAI,GAAlD,MAAA,CAAA,EAAA,EAAA,CAAA,OAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,CAAoD,CAAkB,CAAA;AAC5E,IAAA,MAAM,YAAY,GAAG,CAAC,KAA8D,KAAI;AACtF,QAAA,QAAQ,CACH,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,KAAY,CACf,EAAA,EAAA,aAAa,EAAE,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACV,KAAK,CAAC,MAAM,CAAA,EAAA,EACf,WAAW,EAAE,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,EACvC,YAAY,EAAE,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,EAAA,CACnC,IACR,CAAA;AAEF,QAAA,IAAI,OAAO,cAAc,KAAK,UAAU,EAAE;YACxC,cAAc,CAAC,KAAK,CAAC,CAAA;AACtB,SAAA;AACH,KAAC,CAAA;AAED,IAAA,OAAO,KAAK,CAAC,aAAa,CAAM,UAAU,kBACxC,GAAG;AACH,QAAA,KAAK,EACL,OAAO,EAAE,MAAM,KAAK,UAAU,EAC9B,OAAO,EAAE,MAAM,KAAK,YAAY,EAChC,QAAQ,EAAE,YAAY,EACnB,EAAA,IAAI,EACP,CAAA;AACJ,CAAC,CACF,CAAA;AAEK,MAAA,WAAW,GAAG,KAAK,CAAC,UAAU,CAAC,SAAS,WAAW,CAAE,KAAuB,EAAE,GAAG,EAAA;AACrF,IAAA,MAAM,EAOF,GAAA,KAAe,EAPb,EACJ,SAAS,GAAG,KAAK,EACjB,gBAAgB,GAAG,IAAI,EACvB,eAAe,GAAG,IAAI,EACtB,mBAAmB,GAAG,CAAC,EACvB,aAAa,GAAG,CAAC,EAAA,GAAA,EAEA,EADd,IAAI,GANH,MAAA,CAAA,EAAA,EAAA,CAAA,WAAA,EAAA,kBAAA,EAAA,iBAAA,EAAA,qBAAA,EAAA,eAAA,CAOL,CAAkB,CAAA;IAEnB,IAAI,UAAU,IAAI,IAAI,EAAE;AACtB,QAAA,OAAO,CAAC,IAAI,CAAC,0DAA0D,GAAG,oCAAoC,CAAC,CAAA;AAC/G,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,QAA0B,CAAA;AAC5C,KAAA;AACD,IAAA,IAAI,IAAI,CAAC,IAAI,YAAY,KAAK,EAAE;AAC9B,QAAA,OAAO,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAA;QAC9D,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACzB,KAAA;IACD,OAAO,KAAK,CAAC,aAAa,CAAC,IAAI,gCAC7B,GAAG,EAAA,EACA,IAAI,CAAA,EAAA,EACP,eAAe;AACf,QAAA,gBAAgB,EAChB,gBAAgB,EAAE,eAAe,EACjC,SAAS;QACT,mBAAmB;AACnB,QAAA,aAAa,IACb,CAAA;AACJ,CAAC;;;;"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import ListSet from
|
|
3
|
-
import Preset from
|
|
4
|
-
import
|
|
5
|
-
|
|
2
|
+
import ListSet from "../list-set";
|
|
3
|
+
import Preset from "../preset";
|
|
4
|
+
import { IProps } from "../preset";
|
|
5
|
+
interface IState {
|
|
6
6
|
id: string;
|
|
7
7
|
instance: List;
|
|
8
8
|
isScrolling: boolean;
|
|
@@ -11,7 +11,7 @@ export interface IState {
|
|
|
11
11
|
scrollUpdateWasRequested: boolean;
|
|
12
12
|
refreshCount: number;
|
|
13
13
|
}
|
|
14
|
-
|
|
14
|
+
declare class List extends React.PureComponent<IProps, IState> {
|
|
15
15
|
static defaultProps: IProps;
|
|
16
16
|
static getDerivedStateFromProps(nextProps: IProps, prevState: IState): any;
|
|
17
17
|
itemList: ListSet;
|
|
@@ -24,6 +24,10 @@ export default class List extends React.PureComponent<IProps, IState> {
|
|
|
24
24
|
_callOnScroll: import("memoize-one").MemoizedFn<(this: any, scrollDirection: any, scrollOffset: any, scrollUpdateWasRequested: any, detail: any) => void>;
|
|
25
25
|
_callPropsCallbacks(prevProps?: any, prevState?: any): void;
|
|
26
26
|
_getSizeUploadSync: (index: number, isHorizontal: boolean) => Promise<unknown>;
|
|
27
|
+
// Lazily create and cache item styles while scrolling,
|
|
28
|
+
// So that pure component sCU will prevent re-renders.
|
|
29
|
+
// We maintain this cache, and pass a style prop rather than index,
|
|
30
|
+
// So that List can clear cached styles and force item re-render if necessary.
|
|
27
31
|
_getRangeToRender(): number[];
|
|
28
32
|
_onScrollHorizontal: (event: any) => void;
|
|
29
33
|
_onScrollVertical: (event: any) => void;
|
|
@@ -37,3 +41,4 @@ export default class List extends React.PureComponent<IProps, IState> {
|
|
|
37
41
|
componentWillUnmount(): void;
|
|
38
42
|
render(): React.ReactElement<{}, string | React.JSXElementConstructor<any>>;
|
|
39
43
|
}
|
|
44
|
+
export { IState, List as default };
|