@tarojs/components-advanced 3.6.9-alpha.12 → 3.6.9-alpha.13

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 (65) hide show
  1. package/dist/components/index.d.ts +1 -0
  2. package/dist/components/index.js +1 -0
  3. package/dist/components/index.js.map +1 -1
  4. package/dist/components/virtual-list/index.d.ts +30 -19
  5. package/dist/components/virtual-list/index.js.map +1 -1
  6. package/dist/components/virtual-list/list-set.js +10 -45
  7. package/dist/components/virtual-list/list-set.js.map +1 -1
  8. package/dist/components/virtual-list/preset.d.ts +4 -6
  9. package/dist/components/virtual-list/preset.js +3 -3
  10. package/dist/components/virtual-list/preset.js.map +1 -1
  11. package/dist/components/virtual-list/react/index.d.ts +1 -1
  12. package/dist/components/virtual-list/react/index.js +3 -2
  13. package/dist/components/virtual-list/react/index.js.map +1 -1
  14. package/dist/components/virtual-list/react/list.d.ts +1 -1
  15. package/dist/components/virtual-list/react/list.js +21 -19
  16. package/dist/components/virtual-list/react/list.js.map +1 -1
  17. package/dist/components/virtual-list/utils.d.ts +1 -4
  18. package/dist/components/virtual-list/utils.js +1 -28
  19. package/dist/components/virtual-list/utils.js.map +1 -1
  20. package/dist/components/virtual-list/vue/list.d.ts +24 -23
  21. package/dist/components/virtual-list/vue/list.js +45 -42
  22. package/dist/components/virtual-list/vue/list.js.map +1 -1
  23. package/dist/components/virtual-waterfall/constants.d.ts +2 -0
  24. package/dist/components/virtual-waterfall/constants.js +4 -0
  25. package/dist/components/virtual-waterfall/constants.js.map +1 -0
  26. package/dist/components/virtual-waterfall/index.d.ts +128 -0
  27. package/dist/components/virtual-waterfall/index.js +6 -0
  28. package/dist/components/virtual-waterfall/index.js.map +1 -0
  29. package/dist/components/virtual-waterfall/list-map.d.ts +39 -0
  30. package/dist/components/virtual-waterfall/list-map.js +257 -0
  31. package/dist/components/virtual-waterfall/list-map.js.map +1 -0
  32. package/dist/components/virtual-waterfall/preset.d.ts +40 -0
  33. package/dist/components/virtual-waterfall/preset.js +153 -0
  34. package/dist/components/virtual-waterfall/preset.js.map +1 -0
  35. package/dist/components/virtual-waterfall/react/index.d.ts +4 -0
  36. package/dist/components/virtual-waterfall/react/index.js +38 -0
  37. package/dist/components/virtual-waterfall/react/index.js.map +1 -0
  38. package/dist/components/virtual-waterfall/react/waterfall.d.ts +30 -0
  39. package/dist/components/virtual-waterfall/react/waterfall.js +285 -0
  40. package/dist/components/virtual-waterfall/react/waterfall.js.map +1 -0
  41. package/dist/components/virtual-waterfall/vue/index.d.ts +17 -0
  42. package/dist/components/virtual-waterfall/vue/index.js +12 -0
  43. package/dist/components/virtual-waterfall/vue/index.js.map +1 -0
  44. package/dist/components/virtual-waterfall/vue/waterfall.d.ts +159 -0
  45. package/dist/components/virtual-waterfall/vue/waterfall.js +86 -0
  46. package/dist/components/virtual-waterfall/vue/waterfall.js.map +1 -0
  47. package/dist/index.js +3 -0
  48. package/dist/index.js.map +1 -1
  49. package/dist/utils/convert.d.ts +1 -1
  50. package/dist/utils/convert.js.map +1 -1
  51. package/dist/utils/dom.d.ts +7 -0
  52. package/dist/utils/dom.js +43 -0
  53. package/dist/utils/dom.js.map +1 -0
  54. package/dist/utils/helper.d.ts +10 -0
  55. package/dist/utils/helper.js +51 -0
  56. package/dist/utils/helper.js.map +1 -0
  57. package/dist/utils/index.d.ts +2 -0
  58. package/dist/utils/index.js +2 -0
  59. package/dist/utils/index.js.map +1 -1
  60. package/dist/utils/vue-render.d.ts +4 -0
  61. package/dist/{components/virtual-list/vue/render.js → utils/vue-render.js} +2 -2
  62. package/dist/utils/vue-render.js.map +1 -0
  63. package/package.json +7 -6
  64. package/dist/components/virtual-list/vue/render.d.ts +0 -4
  65. package/dist/components/virtual-list/vue/render.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"waterfall.js","sources":["../../../../src/components/virtual-waterfall/react/waterfall.ts"],"sourcesContent":["import classNames from 'classnames'\nimport memoizeOne from 'memoize-one'\nimport React from 'react'\n\nimport { cancelTimeout, convertNumber2PX, defaultItemKey, getScrollViewContextNode, requestTimeout } from '../../../utils'\nimport { IS_SCROLLING_DEBOUNCE_INTERVAL } from '../constants'\nimport ListMap from '../list-map'\nimport Preset, { type IProps } from '../preset'\n\ninterface IState {\n id: string\n instance: Waterfall\n isScrolling: boolean\n scrollDirection: 'forward' | 'backward'\n scrollOffset: number\n scrollUpdateWasRequested: boolean\n refreshCount: number\n}\n\nexport default class Waterfall extends React.PureComponent<IProps, IState> {\n static defaultProps: IProps = {\n itemData: undefined,\n overscanDistance: 50,\n useIsScrolling: false,\n shouldResetStyleCacheOnItemSizeChange: true\n }\n\n itemMap: ListMap\n preset: Preset\n\n constructor (props: IProps) {\n super(props)\n\n this.preset = new Preset(\n props,\n this.refresh,\n )\n const id = this.props.id || this.preset.id\n this.preset.updateWrapper(id)\n this.itemMap = this.preset.itemMap\n\n this.state = {\n id,\n instance: this,\n isScrolling: false,\n scrollDirection: 'forward',\n scrollOffset:\n typeof this.props.initialScrollOffset === 'number'\n ? this.props.initialScrollOffset\n : 0,\n scrollUpdateWasRequested: false,\n refreshCount: 0,\n }\n }\n\n refresh = () => {\n if (process.env.FRAMEWORK === 'preact') {\n this.forceUpdate()\n } else {\n this.setState(({ refreshCount }) => ({\n refreshCount: ++refreshCount\n }))\n }\n }\n\n #outerRef = undefined\n\n #resetIsScrollingTimeoutId = null\n\n #callOnItemsRendered = memoizeOne((columnIndex, overscanStartIndex, overscanStopIndex) => this.props.onItemsRendered({\n columnIndex,\n overscanStartIndex,\n overscanStopIndex,\n }))\n\n #callOnScroll = memoizeOne((scrollDirection, scrollOffset, scrollUpdateWasRequested, detail) => this.props.onScroll({\n scrollDirection,\n scrollOffset,\n scrollUpdateWasRequested,\n detail\n } as any))\n\n #callPropsCallbacks (prevProps: any = {}, prevState: any = {}) {\n if (typeof this.props.onItemsRendered === 'function') {\n if (this.props.itemCount > 0) {\n if (prevProps && prevProps.itemCount !== this.props.itemCount) {\n for (let columnIndex = 0; columnIndex < this.preset.columns; columnIndex++) {\n const [overscanStartIndex, overscanStopIndex] = this.#getRangeToRender(columnIndex)\n this.#callOnItemsRendered(columnIndex, overscanStartIndex, overscanStopIndex)\n }\n }\n }\n }\n\n if (typeof this.props.onScroll === 'function') {\n if (!prevState ||\n prevState.scrollDirection !== this.state.scrollDirection ||\n prevState.scrollOffset !== this.state.scrollOffset ||\n prevState.scrollUpdateWasRequested !== this.state.scrollUpdateWasRequested\n ) {\n this.#callOnScroll(\n this.state.scrollDirection,\n this.state.scrollOffset,\n this.state.scrollUpdateWasRequested,\n this.preset.field\n )\n }\n }\n\n // setTimeout(() => {\n // const [startIndex, stopIndex] = this.#getRangeToRender()\n // for (let index = startIndex; index <= stopIndex; index++) {\n // this.#getSizeUploadSync(index)\n // }\n // }, 0)\n }\n\n // Lazily create and cache item styles while scrolling,\n // So that pure component sCU will prevent re-renders.\n // We maintain this cache, and pass a style prop rather than index,\n // So that List can clear cached styles and force item re-render if necessary.\n #getRangeToRender (columnIndex = 0) {\n return this.itemMap.getRangeToRender(\n this.state.scrollDirection,\n columnIndex,\n this.state.scrollOffset,\n this.state.isScrolling,\n )\n }\n\n #outerRefSetter = ref => {\n const {\n outerRef\n } = this.props\n this.#outerRef = ref\n\n if (typeof outerRef === 'function') {\n outerRef(ref)\n } else if (outerRef != null && typeof outerRef === 'object' && outerRef.hasOwnProperty('current')) {\n // @ts-ignore\n outerRef.current = ref\n }\n }\n\n #resetIsScrollingDebounced = () => {\n if (this.#resetIsScrollingTimeoutId !== null) {\n cancelTimeout(this.#resetIsScrollingTimeoutId)\n }\n\n this.#resetIsScrollingTimeoutId = requestTimeout(this.#resetIsScrolling, IS_SCROLLING_DEBOUNCE_INTERVAL)\n }\n\n #resetIsScrolling = () => {\n this.#resetIsScrollingTimeoutId = null\n this.setState({\n isScrolling: false\n }, () => {\n // Clear style cache after state update has been committed.\n // This way we don't break pure sCU for items that don't use isScrolling param.\n this.preset.getItemStyleCache(-1)\n })\n }\n\n #onScroll = event => {\n const {\n scrollHeight = this.itemMap.maxColumnSize,\n scrollWidth,\n scrollTop,\n scrollLeft\n } = event.currentTarget\n const clientHeight = this.preset.wrapperHeight\n const clientWidth = this.preset.wrapperWidth\n this.setState((prevState: IState) => {\n const diffOffset = this.preset.field.scrollTop - scrollTop\n if (prevState.scrollOffset === scrollTop || this.preset.isShaking(diffOffset)) {\n // Scroll position may have been updated by cDM/cDU,\n // In which case we don't need to trigger another render,\n // And we don't want to update state.isScrolling.\n return null\n }\n // FIXME preact 中使用时,该组件会出现触底滚动事件重复触发导致的抖动问题,后续修复\n // Prevent Safari's elastic scrolling from causing visual shaking when scrolling past bounds.\n const scrollOffset = Math.max(0, Math.min(scrollTop, scrollHeight - clientHeight))\n this.preset.field = {\n scrollHeight: this.itemMap.maxColumnSize,\n scrollWidth,\n scrollTop: scrollOffset,\n scrollLeft,\n clientHeight,\n clientWidth,\n diffOffset: this.preset.field.scrollTop - scrollOffset,\n }\n return {\n isScrolling: true,\n scrollDirection: prevState.scrollOffset < scrollOffset ? 'forward' : 'backward',\n scrollOffset,\n scrollUpdateWasRequested: false\n }\n }, this.#resetIsScrollingDebounced)\n }\n\n public scrollTo (scrollOffset = 0) {\n const { enhanced } = this.props\n scrollOffset = Math.max(0, scrollOffset)\n if (this.state.scrollOffset === scrollOffset) return\n\n if (enhanced) {\n const option: any = {\n animated: true,\n duration: 500\n }\n option.top = scrollOffset\n return getScrollViewContextNode(`#${this.state.id}`).then((node: any) => node.scrollTo(option))\n }\n\n this.setState((prevState: IState) => {\n if (prevState.scrollOffset === scrollOffset) {\n return null\n }\n\n return {\n scrollDirection: prevState.scrollOffset < scrollOffset ? 'forward' : 'backward',\n scrollOffset,\n scrollUpdateWasRequested: true\n }\n }, this.#resetIsScrollingDebounced)\n }\n\n public scrollToItem (index: number, align = 'auto') {\n const { itemCount } = this.props\n const { scrollOffset } = this.state\n index = Math.max(0, Math.min(index, itemCount - 1))\n this.scrollTo(this.itemMap.getOffsetForIndexAndAlignment(index, align, scrollOffset))\n }\n\n componentDidMount () {\n const { initialScrollOffset } = this.props\n\n if (typeof initialScrollOffset === 'number' && this.#outerRef != null) {\n this.#outerRef.scrollTop = initialScrollOffset\n }\n\n this.#callPropsCallbacks()\n }\n\n componentDidUpdate (prevProps: IProps, prevState: IState) {\n const { scrollOffset, scrollUpdateWasRequested } = this.state\n\n this.preset.update(this.props)\n\n if (scrollUpdateWasRequested && this.#outerRef != null) {\n this.#outerRef.scrollTop = scrollOffset\n }\n\n this.#callPropsCallbacks(prevProps, prevState)\n }\n\n componentWillUnmount () {\n if (this.#resetIsScrollingTimeoutId !== null) {\n cancelTimeout(this.#resetIsScrollingTimeoutId)\n }\n }\n\n getRenderItemNode (index: number, type: 'node' | 'placeholder' = 'node') {\n const { item, itemData, itemKey = defaultItemKey, useIsScrolling } = this.props\n const { id, isScrolling } = this.state\n const key = itemKey(index, itemData)\n\n if (type === 'placeholder') {\n return React.createElement<any>(this.preset.itemElement, {\n key,\n style: { display: 'none' }\n })\n }\n\n const style = this.preset.getItemStyle(index)\n return React.createElement<any>(this.preset.itemElement, {\n key,\n style\n }, React.createElement(item, {\n id: `${id}-${index}`,\n data: itemData,\n index,\n isScrolling: useIsScrolling ? isScrolling : undefined\n }))\n }\n\n getRenderColumnNode (index: number) {\n const { itemCount } = this.props\n const { id } = this.state\n const columnProps: any = {\n key: `${id}-column-${index}`,\n id: `${id}-column-${index}`,\n style: {\n height: '100%',\n position: 'relative',\n width: convertNumber2PX(this.preset.columnWidth)\n }\n }\n\n const [startIndex, stopIndex] = this.#getRangeToRender(index)\n const items = []\n if (this.preset.isRelative) {\n const [itemIndex] = this.itemMap.getItemsInfoFromPosition(index, startIndex)\n const pre = convertNumber2PX(this.itemMap.getOffsetSize(itemIndex))\n items.push(\n React.createElement<any>(this.preset.itemElement, {\n key: `${id}-${index}-pre`,\n id: `${id}-${index}-pre`,\n style: {\n height: pre,\n width: '100%'\n }\n })\n )\n }\n const placeholderCount = this.preset.placeholderCount\n let restCount = itemCount - stopIndex\n restCount = restCount > 0 ? restCount : 0\n const prevPlaceholder = startIndex < placeholderCount ? startIndex : placeholderCount\n const postPlaceholder = restCount < placeholderCount ? restCount : placeholderCount\n this.itemMap.updateItem((stopIndex + postPlaceholder) * this.preset.columns + index)\n for (let i = startIndex - prevPlaceholder; i <= stopIndex + postPlaceholder; i++) {\n const [itemIndex] = this.itemMap.getItemsInfoFromPosition(index, i)\n if (i < startIndex || i > stopIndex) {\n items.push(this.getRenderItemNode(itemIndex, 'placeholder'))\n } else {\n items.push(this.getRenderItemNode(itemIndex))\n }\n }\n return React.createElement(this.preset.innerElement, columnProps, items)\n }\n\n render () {\n const {\n className,\n style,\n height,\n width,\n enhanced = false,\n ...rest\n } = this.props\n const {\n id,\n isScrolling,\n scrollOffset,\n scrollUpdateWasRequested\n } = this.state\n\n const estimatedHeight = convertNumber2PX(this.itemMap.maxColumnSize)\n const outerProps: any = {\n ...rest,\n id,\n className: classNames(className, 'virtual-waterfall'),\n onScroll: this.#onScroll,\n ref: this.#outerRefSetter,\n enhanced,\n style: {\n height: convertNumber2PX(height),\n width: convertNumber2PX(width),\n overflow: 'auto',\n WebkitOverflowScrolling: 'touch',\n willChange: 'transform',\n ...style\n },\n }\n\n if (!enhanced) {\n outerProps.scrollTop = scrollUpdateWasRequested ? scrollOffset : this.preset.field.scrollTop\n }\n\n const columns = this.preset.columns\n const columnNodes: React.ReactNode[] = []\n for (let i = 0; i < columns; i++) {\n columnNodes.push(this.getRenderColumnNode(i))\n }\n\n return React.createElement(\n this.preset.outerElement,\n outerProps,\n React.createElement(this.preset.innerElement, {\n className: classNames(className, 'virtual-waterfall-wrapper'),\n style: {\n display: 'flex',\n justifyContent: 'space-evenly',\n pointerEvents: isScrolling ? 'none' : 'auto',\n position: 'relative',\n height: estimatedHeight,\n width: '100%',\n ...style\n },\n } as any, columnNodes)\n )\n }\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { ElementAttrs, TransformReact2VueType, VueComponentType } from '@tarojs/components/types/index.vue3';
2
+ import { App } from 'vue';
3
+ import { VirtualWaterfallProps } from "../index.js";
4
+ type VueVirtualWaterfallProps = VirtualWaterfallProps;
5
+ declare global {
6
+ namespace JSX {
7
+ interface IntrinsicElements {
8
+ 'virtual-waterfall': ElementAttrs<TransformReact2VueType<VueVirtualWaterfallProps>>;
9
+ }
10
+ }
11
+ }
12
+ declare const VirtualWaterfall: VueComponentType<VueVirtualWaterfallProps>;
13
+ declare function install(Vue: App): void;
14
+ declare const _default: {
15
+ install: typeof install;
16
+ };
17
+ export { _default as default, VueVirtualWaterfallProps, VirtualWaterfall };
@@ -0,0 +1,12 @@
1
+ import Waterfall from './waterfall.js';
2
+
3
+ const VirtualWaterfall = Waterfall;
4
+ function install(Vue) {
5
+ Vue.component('virtual-waterfall', Waterfall);
6
+ }
7
+ var index = {
8
+ install
9
+ };
10
+
11
+ export { VirtualWaterfall, index as default };
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/virtual-waterfall/vue/index.ts"],"sourcesContent":["import Waterfall from './waterfall'\n\nimport type { ElementAttrs, TransformReact2VueType, VueComponentType } from '@tarojs/components/types/index.vue3'\nimport type { App } from 'vue'\nimport type { VirtualWaterfallProps } from '../'\n\nexport type VueVirtualWaterfallProps = VirtualWaterfallProps\n\ndeclare global {\n namespace JSX {\n interface IntrinsicElements {\n 'virtual-waterfall': ElementAttrs<TransformReact2VueType<VueVirtualWaterfallProps>>\n }\n }\n}\n\nexport const VirtualWaterfall = Waterfall as unknown as VueComponentType<VueVirtualWaterfallProps>\n\nfunction install (Vue: App) {\n Vue.component('virtual-waterfall', Waterfall)\n}\n\nexport default {\n install\n}\n"],"names":[],"mappings":";;AAgBO,MAAM,gBAAgB,GAAG,UAAkE;AAElG,SAAS,OAAO,CAAE,GAAQ,EAAA;AACxB,IAAA,GAAG,CAAC,SAAS,CAAC,mBAAmB,EAAE,SAAS,CAAC,CAAA;AAC/C,CAAC;AAED,YAAe;IACb,OAAO;CACR;;;;"}
@@ -0,0 +1,159 @@
1
+ declare const _default: import("vue").DefineComponent<{
2
+ height: {
3
+ type: (NumberConstructor | StringConstructor)[];
4
+ required: true;
5
+ };
6
+ width: {
7
+ type: (NumberConstructor | StringConstructor)[];
8
+ required: true;
9
+ };
10
+ column: NumberConstructor;
11
+ columnWidth: NumberConstructor;
12
+ item: {
13
+ required: true;
14
+ };
15
+ itemCount: {
16
+ type: NumberConstructor;
17
+ required: true;
18
+ };
19
+ itemData: {
20
+ type: ArrayConstructor;
21
+ required: true;
22
+ };
23
+ itemKey: StringConstructor;
24
+ itemSize: {
25
+ type: (NumberConstructor | FunctionConstructor)[];
26
+ required: true;
27
+ };
28
+ position: {
29
+ type: StringConstructor;
30
+ default: string;
31
+ };
32
+ initialScrollOffset: {
33
+ type: NumberConstructor;
34
+ default: number;
35
+ };
36
+ overscanDistance: {
37
+ type: NumberConstructor;
38
+ default: number;
39
+ };
40
+ placeholderCount: {
41
+ type: NumberConstructor;
42
+ default: number;
43
+ };
44
+ useIsScrolling: {
45
+ type: BooleanConstructor;
46
+ default: boolean;
47
+ };
48
+ enhanced: {
49
+ type: BooleanConstructor;
50
+ default: boolean;
51
+ };
52
+ shouldResetStyleCacheOnItemSizeChange: {
53
+ type: BooleanConstructor;
54
+ default: boolean;
55
+ };
56
+ outerElementType: {
57
+ type: StringConstructor;
58
+ default: string;
59
+ };
60
+ innerElementType: {
61
+ type: StringConstructor;
62
+ default: string;
63
+ };
64
+ itemElementType: {
65
+ type: StringConstructor;
66
+ default: string;
67
+ };
68
+ outerTagName: StringConstructor;
69
+ innerTagName: StringConstructor;
70
+ itemTagName: StringConstructor;
71
+ outerRef: StringConstructor;
72
+ onScrollNative: FunctionConstructor;
73
+ onItemsRendered: FunctionConstructor;
74
+ }, unknown, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
75
+ height: {
76
+ type: (NumberConstructor | StringConstructor)[];
77
+ required: true;
78
+ };
79
+ width: {
80
+ type: (NumberConstructor | StringConstructor)[];
81
+ required: true;
82
+ };
83
+ column: NumberConstructor;
84
+ columnWidth: NumberConstructor;
85
+ item: {
86
+ required: true;
87
+ };
88
+ itemCount: {
89
+ type: NumberConstructor;
90
+ required: true;
91
+ };
92
+ itemData: {
93
+ type: ArrayConstructor;
94
+ required: true;
95
+ };
96
+ itemKey: StringConstructor;
97
+ itemSize: {
98
+ type: (NumberConstructor | FunctionConstructor)[];
99
+ required: true;
100
+ };
101
+ position: {
102
+ type: StringConstructor;
103
+ default: string;
104
+ };
105
+ initialScrollOffset: {
106
+ type: NumberConstructor;
107
+ default: number;
108
+ };
109
+ overscanDistance: {
110
+ type: NumberConstructor;
111
+ default: number;
112
+ };
113
+ placeholderCount: {
114
+ type: NumberConstructor;
115
+ default: number;
116
+ };
117
+ useIsScrolling: {
118
+ type: BooleanConstructor;
119
+ default: boolean;
120
+ };
121
+ enhanced: {
122
+ type: BooleanConstructor;
123
+ default: boolean;
124
+ };
125
+ shouldResetStyleCacheOnItemSizeChange: {
126
+ type: BooleanConstructor;
127
+ default: boolean;
128
+ };
129
+ outerElementType: {
130
+ type: StringConstructor;
131
+ default: string;
132
+ };
133
+ innerElementType: {
134
+ type: StringConstructor;
135
+ default: string;
136
+ };
137
+ itemElementType: {
138
+ type: StringConstructor;
139
+ default: string;
140
+ };
141
+ outerTagName: StringConstructor;
142
+ innerTagName: StringConstructor;
143
+ itemTagName: StringConstructor;
144
+ outerRef: StringConstructor;
145
+ onScrollNative: FunctionConstructor;
146
+ onItemsRendered: FunctionConstructor;
147
+ }>>, {
148
+ position: string;
149
+ initialScrollOffset: number;
150
+ placeholderCount: number;
151
+ useIsScrolling: boolean;
152
+ enhanced: boolean;
153
+ outerElementType: string;
154
+ innerElementType: string;
155
+ itemElementType: string;
156
+ overscanDistance: number;
157
+ shouldResetStyleCacheOnItemSizeChange: boolean;
158
+ }>;
159
+ export { _default as default };
@@ -0,0 +1,86 @@
1
+ import { isWebPlatform } from '@tarojs/shared';
2
+ import { defineComponent } from 'vue';
3
+
4
+ const isWeb = isWebPlatform();
5
+ var Waterfall = defineComponent({
6
+ props: {
7
+ height: {
8
+ type: [String, Number],
9
+ required: true
10
+ },
11
+ width: {
12
+ type: [String, Number],
13
+ required: true
14
+ },
15
+ column: Number,
16
+ columnWidth: Number,
17
+ item: {
18
+ required: true
19
+ },
20
+ itemCount: {
21
+ type: Number,
22
+ required: true
23
+ },
24
+ itemData: {
25
+ type: Array,
26
+ required: true
27
+ },
28
+ itemKey: String,
29
+ itemSize: {
30
+ type: [Number, Function],
31
+ required: true
32
+ },
33
+ position: {
34
+ type: String,
35
+ default: 'absolute'
36
+ },
37
+ initialScrollOffset: {
38
+ type: Number,
39
+ default: 0
40
+ },
41
+ overscanDistance: {
42
+ type: Number,
43
+ default: 50
44
+ },
45
+ placeholderCount: {
46
+ type: Number,
47
+ default: 0
48
+ },
49
+ useIsScrolling: {
50
+ type: Boolean,
51
+ default: false
52
+ },
53
+ enhanced: {
54
+ type: Boolean,
55
+ default: false
56
+ },
57
+ shouldResetStyleCacheOnItemSizeChange: {
58
+ type: Boolean,
59
+ default: true
60
+ },
61
+ outerElementType: {
62
+ type: String,
63
+ default: isWeb ? 'taro-scroll-view-core' : 'scroll-view'
64
+ },
65
+ innerElementType: {
66
+ type: String,
67
+ default: isWeb ? 'taro-view-core' : 'view'
68
+ },
69
+ itemElementType: {
70
+ type: String,
71
+ default: isWeb ? 'taro-view-core' : 'view'
72
+ },
73
+ outerTagName: String,
74
+ innerTagName: String,
75
+ itemTagName: String,
76
+ outerRef: String,
77
+ onScrollNative: Function,
78
+ onItemsRendered: Function,
79
+ },
80
+ render() {
81
+ console.warn('virtual-waterfall is not supported in vue.');
82
+ }
83
+ });
84
+
85
+ export { Waterfall as default };
86
+ //# sourceMappingURL=waterfall.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"waterfall.js","sources":["../../../../src/components/virtual-waterfall/vue/waterfall.ts"],"sourcesContent":["import { isWebPlatform } from '@tarojs/shared'\nimport { defineComponent } from 'vue'\n\nconst isWeb = isWebPlatform()\n\nexport default defineComponent({\n props: {\n height: {\n type: [String, Number],\n required: true\n },\n width: {\n type: [String, Number],\n required: true\n },\n column: Number,\n columnWidth: Number,\n item: {\n required: true\n },\n itemCount: {\n type: Number,\n required: true\n },\n itemData: {\n type: Array,\n required: true\n },\n itemKey: String,\n itemSize: {\n type: [Number, Function],\n required: true\n },\n position: {\n type: String,\n default: 'absolute'\n },\n initialScrollOffset: {\n type: Number,\n default: 0\n },\n overscanDistance: {\n type: Number,\n default: 50\n },\n placeholderCount: {\n type: Number,\n default: 0\n },\n useIsScrolling: {\n type: Boolean,\n default: false\n },\n enhanced: {\n type: Boolean,\n default: false\n },\n shouldResetStyleCacheOnItemSizeChange: {\n type: Boolean,\n default: true\n },\n outerElementType: {\n type: String,\n default: isWeb ? 'taro-scroll-view-core' : 'scroll-view'\n },\n innerElementType: {\n type: String,\n default: isWeb ? 'taro-view-core' : 'view'\n },\n itemElementType: {\n type: String,\n default: isWeb ? 'taro-view-core' : 'view'\n },\n outerTagName: String,\n innerTagName: String,\n itemTagName: String,\n outerRef: String,\n onScrollNative: Function,\n onItemsRendered: Function,\n },\n render () {\n console.warn('virtual-waterfall is not supported in vue.')\n }\n})\n"],"names":[],"mappings":";;;AAGA,MAAM,KAAK,GAAG,aAAa,EAAE,CAAA;AAE7B,gBAAe,eAAe,CAAC;AAC7B,IAAA,KAAK,EAAE;AACL,QAAA,MAAM,EAAE;AACN,YAAA,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;AACtB,YAAA,QAAQ,EAAE,IAAI;AACf,SAAA;AACD,QAAA,KAAK,EAAE;AACL,YAAA,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;AACtB,YAAA,QAAQ,EAAE,IAAI;AACf,SAAA;AACD,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,WAAW,EAAE,MAAM;AACnB,QAAA,IAAI,EAAE;AACJ,YAAA,QAAQ,EAAE,IAAI;AACf,SAAA;AACD,QAAA,SAAS,EAAE;AACT,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,QAAQ,EAAE,IAAI;AACf,SAAA;AACD,QAAA,QAAQ,EAAE;AACR,YAAA,IAAI,EAAE,KAAK;AACX,YAAA,QAAQ,EAAE,IAAI;AACf,SAAA;AACD,QAAA,OAAO,EAAE,MAAM;AACf,QAAA,QAAQ,EAAE;AACR,YAAA,IAAI,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC;AACxB,YAAA,QAAQ,EAAE,IAAI;AACf,SAAA;AACD,QAAA,QAAQ,EAAE;AACR,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,OAAO,EAAE,UAAU;AACpB,SAAA;AACD,QAAA,mBAAmB,EAAE;AACnB,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,OAAO,EAAE,CAAC;AACX,SAAA;AACD,QAAA,gBAAgB,EAAE;AAChB,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,OAAO,EAAE,EAAE;AACZ,SAAA;AACD,QAAA,gBAAgB,EAAE;AAChB,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,OAAO,EAAE,CAAC;AACX,SAAA;AACD,QAAA,cAAc,EAAE;AACd,YAAA,IAAI,EAAE,OAAO;AACb,YAAA,OAAO,EAAE,KAAK;AACf,SAAA;AACD,QAAA,QAAQ,EAAE;AACR,YAAA,IAAI,EAAE,OAAO;AACb,YAAA,OAAO,EAAE,KAAK;AACf,SAAA;AACD,QAAA,qCAAqC,EAAE;AACrC,YAAA,IAAI,EAAE,OAAO;AACb,YAAA,OAAO,EAAE,IAAI;AACd,SAAA;AACD,QAAA,gBAAgB,EAAE;AAChB,YAAA,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,KAAK,GAAG,uBAAuB,GAAG,aAAa;AACzD,SAAA;AACD,QAAA,gBAAgB,EAAE;AAChB,YAAA,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,KAAK,GAAG,gBAAgB,GAAG,MAAM;AAC3C,SAAA;AACD,QAAA,eAAe,EAAE;AACf,YAAA,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,KAAK,GAAG,gBAAgB,GAAG,MAAM;AAC3C,SAAA;AACD,QAAA,YAAY,EAAE,MAAM;AACpB,QAAA,YAAY,EAAE,MAAM;AACpB,QAAA,WAAW,EAAE,MAAM;AACnB,QAAA,QAAQ,EAAE,MAAM;AAChB,QAAA,cAAc,EAAE,QAAQ;AACxB,QAAA,eAAe,EAAE,QAAQ;AAC1B,KAAA;IACD,MAAM,GAAA;AACJ,QAAA,OAAO,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAA;KAC3D;AACF,CAAA,CAAC;;;;"}
package/dist/index.js CHANGED
@@ -1,7 +1,10 @@
1
1
  import './components/index.js';
2
2
  import './utils/index.js';
3
3
  export { VirtualList } from './components/virtual-list/index.js';
4
+ export { VirtualWaterfall } from './components/virtual-waterfall/index.js';
4
5
  export { convertNumber2PX, convertPX2Int } from './utils/convert.js';
6
+ export { getRectSize, getRectSizeSync, getScrollViewContextNode } from './utils/dom.js';
7
+ export { defaultItemKey, getOffsetForIndexAndAlignment } from './utils/helper.js';
5
8
  export { omit } from './utils/lodash.js';
6
9
  export { getMiddleNumber, isCosDistributing } from './utils/math.js';
7
10
  export { cancelTimeout, requestTimeout } from './utils/timer.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":";;;;;;;;;"}
@@ -2,5 +2,5 @@
2
2
  * TODO: 未来可以考虑支持更多单位
3
3
  */
4
4
  declare function convertPX2Int(distance: string | number): string | number;
5
- declare function convertNumber2PX(styleValue: unknown): unknown;
5
+ declare function convertNumber2PX(styleValue: unknown): string;
6
6
  export { convertPX2Int, convertNumber2PX };
@@ -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) {\n if (!styleValue && styleValue !== 0) return ''\n return typeof styleValue === 'number' ? styleValue + 'px' : styleValue\n}\n"],"names":[],"mappings":"AAAA;;AAEG;AACG,SAAU,aAAa,CAAE,QAAyB,EAAA;AACtD,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;AACtC,SAAA;AACF,KAAA;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,UAAU,CAAA;AACxE;;;;"}
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,QAAyB,EAAA;AACtD,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;AACtC,SAAA;AACF,KAAA;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;;;;"}
@@ -0,0 +1,7 @@
1
+ declare function getRectSize(id: string, success?: TFunc, fail?: TFunc, retryMs?: number): void;
2
+ declare function getRectSizeSync(id: string, retryMs?: number): Promise<{
3
+ width?: number;
4
+ height?: number;
5
+ }>;
6
+ declare function getScrollViewContextNode(id: string): Promise<unknown>;
7
+ export { getRectSize, getRectSizeSync, getScrollViewContextNode };
@@ -0,0 +1,43 @@
1
+ import { createSelectorQuery } from '@tarojs/taro';
2
+
3
+ function getRectSize(id, success, fail, retryMs = 500) {
4
+ const query = createSelectorQuery();
5
+ try {
6
+ query.select(id).boundingClientRect((res) => {
7
+ if (res) {
8
+ success === null || success === void 0 ? void 0 : success(res);
9
+ }
10
+ else {
11
+ fail === null || fail === void 0 ? void 0 : fail();
12
+ }
13
+ }).exec();
14
+ }
15
+ catch (err) {
16
+ setTimeout(() => {
17
+ getRectSize(id, success, fail, retryMs);
18
+ }, retryMs);
19
+ }
20
+ }
21
+ function getRectSizeSync(id, retryMs = 500) {
22
+ return new Promise((resolve) => {
23
+ function retry() {
24
+ setTimeout(async () => {
25
+ try {
26
+ const res = await getRectSizeSync(id, retryMs);
27
+ resolve(res);
28
+ }
29
+ catch (err) {
30
+ retry();
31
+ }
32
+ }, retryMs);
33
+ }
34
+ getRectSize(id, resolve, retry, retryMs);
35
+ });
36
+ }
37
+ async function getScrollViewContextNode(id) {
38
+ const query = createSelectorQuery();
39
+ return new Promise((resolve) => query.select(id).node(({ node }) => resolve(node)).exec());
40
+ }
41
+
42
+ export { getRectSize, getRectSizeSync, getScrollViewContextNode };
43
+ //# sourceMappingURL=dom.js.map
@@ -0,0 +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) {\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) {\n return new Promise<{ width?: number, height?: number }>((resolve) => {\n function retry () {\n setTimeout(async () => {\n try {\n const res = await getRectSizeSync(id, retryMs)\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\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;IACnC,IAAI;QACF,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,kBAAkB,CAAC,CAAC,GAAG,KAAI;AAC1C,YAAA,IAAI,GAAG,EAAE;AACP,gBAAA,OAAO,aAAP,OAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAP,OAAO,CAAG,GAAG,CAAC,CAAA;AACf,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,KAAJ,IAAA,IAAA,IAAI,KAAJ,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,IAAI,EAAI,CAAA;AACT,aAAA;AACH,SAAC,CAAC,CAAC,IAAI,EAAE,CAAA;AACV,KAAA;AAAC,IAAA,OAAO,GAAG,EAAE;QACZ,UAAU,CAAC,MAAK;YACd,WAAW,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;SACxC,EAAE,OAAO,CAAC,CAAA;AACZ,KAAA;AACH,CAAC;SAEe,eAAe,CAAE,EAAU,EAAE,OAAO,GAAG,GAAG,EAAA;AACxD,IAAA,OAAO,IAAI,OAAO,CAAsC,CAAC,OAAO,KAAI;AAClE,QAAA,SAAS,KAAK,GAAA;YACZ,UAAU,CAAC,YAAW;gBACpB,IAAI;oBACF,MAAM,GAAG,GAAG,MAAM,eAAe,CAAC,EAAE,EAAE,OAAO,CAAC,CAAA;oBAC9C,OAAO,CAAC,GAAG,CAAC,CAAA;AACb,iBAAA;AAAC,gBAAA,OAAO,GAAG,EAAE;AACZ,oBAAA,KAAK,EAAE,CAAA;AACR,iBAAA;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;;;;"}
@@ -0,0 +1,10 @@
1
+ declare const defaultItemKey: (index: number, _itemData?: unknown) => number;
2
+ declare function getOffsetForIndexAndAlignment({ align, containerSize, currentOffset, scrollSize, slideSize, targetOffset, }: {
3
+ align?: string;
4
+ containerSize?: number;
5
+ currentOffset?: number;
6
+ scrollSize?: number;
7
+ slideSize?: number;
8
+ targetOffset?: number;
9
+ }): number;
10
+ export { defaultItemKey, getOffsetForIndexAndAlignment };
@@ -0,0 +1,51 @@
1
+ // In DEV mode, this Set helps us only log a warning once per component instance.
2
+ // This avoids spamming the console every time a render happens.
3
+ const defaultItemKey = (index, _itemData) => index;
4
+ function getOffsetForIndexAndAlignment({ align = 'auto', containerSize = 0, currentOffset = 0, scrollSize = 0, slideSize = 0, targetOffset = 0, }) {
5
+ const lastItemOffset = Math.max(0, scrollSize - containerSize);
6
+ const maxOffset = Math.min(lastItemOffset, targetOffset);
7
+ const minOffset = Math.max(0, targetOffset - containerSize + slideSize);
8
+ if (align === 'smart') {
9
+ if (currentOffset >= minOffset - containerSize && currentOffset <= maxOffset + containerSize) {
10
+ align = 'auto';
11
+ }
12
+ else {
13
+ align = 'center';
14
+ }
15
+ }
16
+ switch (align) {
17
+ case 'start':
18
+ return maxOffset;
19
+ case 'end':
20
+ return minOffset;
21
+ case 'center':
22
+ {
23
+ // "Centered" offset is usually the average of the min and max.
24
+ // But near the edges of the list, this doesn't hold true.
25
+ const middleOffset = Math.round(minOffset + (maxOffset - minOffset) / 2);
26
+ if (middleOffset < Math.ceil(containerSize / 2)) {
27
+ return 0; // near the beginning
28
+ }
29
+ else if (middleOffset > lastItemOffset + Math.floor(containerSize / 2)) {
30
+ return lastItemOffset; // near the end
31
+ }
32
+ else {
33
+ return middleOffset;
34
+ }
35
+ }
36
+ case 'auto':
37
+ default:
38
+ if (currentOffset >= minOffset && currentOffset <= maxOffset) {
39
+ return currentOffset;
40
+ }
41
+ else if (currentOffset < minOffset) {
42
+ return minOffset;
43
+ }
44
+ else {
45
+ return maxOffset;
46
+ }
47
+ }
48
+ }
49
+
50
+ export { defaultItemKey, getOffsetForIndexAndAlignment };
51
+ //# sourceMappingURL=helper.js.map
@@ -0,0 +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;IAEvE,IAAI,KAAK,KAAK,OAAO,EAAE;QACrB,IAAI,aAAa,IAAI,SAAS,GAAG,aAAa,IAAI,aAAa,IAAI,SAAS,GAAG,aAAa,EAAE;YAC5F,KAAK,GAAG,MAAM,CAAA;AACf,SAAA;AAAM,aAAA;YACL,KAAK,GAAG,QAAQ,CAAA;AACjB,SAAA;AACF,KAAA;AAED,IAAA,QAAQ,KAAK;AACX,QAAA,KAAK,OAAO;AACV,YAAA,OAAO,SAAS,CAAA;AAElB,QAAA,KAAK,KAAK;AACR,YAAA,OAAO,SAAS,CAAA;AAElB,QAAA,KAAK,QAAQ;AACb,YAAA;;;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;AACT,iBAAA;AAAM,qBAAA,IAAI,YAAY,GAAG,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,CAAC,CAAC,EAAE;oBACxE,OAAO,cAAc,CAAA;AACtB,iBAAA;AAAM,qBAAA;AACL,oBAAA,OAAO,YAAY,CAAA;AACpB,iBAAA;AACF,aAAA;AAED,QAAA,KAAK,MAAM,CAAC;AACZ,QAAA;AACE,YAAA,IAAI,aAAa,IAAI,SAAS,IAAI,aAAa,IAAI,SAAS,EAAE;AAC5D,gBAAA,OAAO,aAAa,CAAA;AACrB,aAAA;iBAAM,IAAI,aAAa,GAAG,SAAS,EAAE;AACpC,gBAAA,OAAO,SAAS,CAAA;AACjB,aAAA;AAAM,iBAAA;AACL,gBAAA,OAAO,SAAS,CAAA;AACjB,aAAA;AACJ,KAAA;AACH;;;;"}
@@ -1,4 +1,6 @@
1
1
  export * from "./convert.js";
2
+ export * from "./dom.js";
3
+ export * from "./helper.js";
2
4
  export * from "./lodash.js";
3
5
  export * from "./math.js";
4
6
  export * from "./timer.js";
@@ -1,4 +1,6 @@
1
1
  export { convertNumber2PX, convertPX2Int } from './convert.js';
2
+ export { getRectSize, getRectSizeSync, getScrollViewContextNode } from './dom.js';
3
+ export { defaultItemKey, getOffsetForIndexAndAlignment } from './helper.js';
2
4
  export { omit } from './lodash.js';
3
5
  export { getMiddleNumber, isCosDistributing } from './math.js';
4
6
  export { cancelTimeout, requestTimeout } from './timer.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;"}
@@ -0,0 +1,4 @@
1
+ declare function vueRenderFunc(componentName: string, options?: Record<string, any>, children?: any): import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
2
+ [key: string]: any;
3
+ }>;
4
+ export { vueRenderFunc as default };
@@ -1,4 +1,4 @@
1
- import { __rest } from '../../../node_modules/.pnpm/registry.npmjs.org_tslib@2.5.0/node_modules/tslib/tslib.es6.js';
1
+ import { __rest } from '../node_modules/.pnpm/registry.npmjs.org_tslib@2.5.0/node_modules/tslib/tslib.es6.js';
2
2
  import { h } from 'vue';
3
3
 
4
4
  function render (componentName, options, children) {
@@ -15,4 +15,4 @@ function render (componentName, options, children) {
15
15
  }
16
16
 
17
17
  export { render as default };
18
- //# sourceMappingURL=render.js.map
18
+ //# sourceMappingURL=vue-render.js.map
@@ -0,0 +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 if (process.env.FRAMEWORK === 'vue3') {\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 return h(componentName, options, 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,EAAA,GAAY,OAAO,EAAd,EAAE,GAAA,MAAA,CAAK,OAAO,EAAhE,CAAsD,OAAA,EAAA,IAAA,EAAA,OAAA,EAAA,OAAA,CAAA,CAAU,CAAA;AACtE,IAAA,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,KAAK,MAAM,EAAE;;QAEpC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,IAAG;YAC5B,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;YAC9D,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAA;AACpB,SAAC,CAAC,CAAA;AACF,QAAA,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,CAAM,EAAA,EAAE,CAAI,EAAA,QAAQ,CAAC,CAAA;AAC5E,KAAA;IACD,OAAO,CAAC,CAAC,aAAa,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAA;AAC5C;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tarojs/components-advanced",
3
- "version": "3.6.9-alpha.12",
3
+ "version": "3.6.9-alpha.13",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -16,12 +16,13 @@
16
16
  "author": "ZakaryCode",
17
17
  "license": "MIT",
18
18
  "dependencies": {
19
+ "classnames": "^2.2.5",
19
20
  "memoize-one": "^6.0.0",
20
21
  "postcss": "^8.4.18",
21
- "@tarojs/components": "3.6.9-alpha.12",
22
- "@tarojs/shared": "3.6.9-alpha.12",
23
- "@tarojs/runtime": "3.6.9-alpha.12",
24
- "@tarojs/taro": "3.6.9-alpha.12"
22
+ "@tarojs/components": "3.6.9-alpha.13",
23
+ "@tarojs/shared": "3.6.9-alpha.13",
24
+ "@tarojs/runtime": "3.6.9-alpha.13",
25
+ "@tarojs/taro": "3.6.9-alpha.13"
25
26
  },
26
27
  "devDependencies": {
27
28
  "@babel/cli": "^7.14.5",
@@ -38,7 +39,7 @@
38
39
  "rollup-plugin-ts": "^3.0.2",
39
40
  "typescript": "^4.7.4",
40
41
  "vue": "^3.0.0",
41
- "babel-preset-taro": "3.6.9-alpha.12"
42
+ "babel-preset-taro": "3.6.9-alpha.13"
42
43
  },
43
44
  "peerDependencies": {
44
45
  "react": ">=17"
@@ -1,4 +0,0 @@
1
- declare function renderFunc(componentName: string, options?: Record<string, any>, children?: any): import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
2
- [key: string]: any;
3
- }>;
4
- export { renderFunc as default };
@@ -1 +0,0 @@
1
- {"version":3,"file":"render.js","sources":["../../../../src/components/virtual-list/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 if (process.env.FRAMEWORK === 'vue3') {\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 return h(componentName, options, 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,EAAA,GAAY,OAAO,EAAd,EAAE,GAAA,MAAA,CAAK,OAAO,EAAhE,CAAsD,OAAA,EAAA,IAAA,EAAA,OAAA,EAAA,OAAA,CAAA,CAAU,CAAA;AACtE,IAAA,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,KAAK,MAAM,EAAE;;QAEpC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,IAAG;YAC5B,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;YAC9D,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAA;AACpB,SAAC,CAAC,CAAA;AACF,QAAA,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,CAAM,EAAA,EAAE,CAAI,EAAA,QAAQ,CAAC,CAAA;AAC5E,KAAA;IACD,OAAO,CAAC,CAAC,aAAa,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAA;AAC5C;;;;"}