@qsxy/element-plus-react 1.0.0-next.4 → 1.0.0-next.7

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 (138) hide show
  1. package/dist/Carousel/Carousel.d.ts +4 -0
  2. package/dist/Carousel/Carousel.js +168 -0
  3. package/dist/Carousel/CarouselContext.d.ts +4 -0
  4. package/dist/{VirtualList/Item.js → Carousel/CarouselContext.js} +29 -14
  5. package/dist/Carousel/CarouselItem.d.ts +4 -0
  6. package/dist/Carousel/CarouselItem.js +75 -0
  7. package/dist/Carousel/hooks/useCarousel.d.ts +37 -0
  8. package/dist/Carousel/hooks/useCarousel.js +348 -0
  9. package/dist/Carousel/hooks/useCarouselItem.d.ts +8 -0
  10. package/dist/Carousel/hooks/useCarouselItem.js +161 -0
  11. package/dist/Carousel/index.d.ts +3 -0
  12. package/dist/{VirtualList → Carousel}/index.js +10 -7
  13. package/dist/Carousel/typings.d.ts +83 -0
  14. package/dist/{VirtualList/interface.js → Carousel/typings.js} +3 -3
  15. package/dist/Cascader/Cascader.js +147 -182
  16. package/dist/Cascader/CascaderContext.d.ts +4 -10
  17. package/dist/Cascader/CascaderContext.js +2 -6
  18. package/dist/Cascader/CascaderDropdown.js +1 -1
  19. package/dist/Cascader/CascaderMenu.d.ts +0 -7
  20. package/dist/Cascader/CascaderMenu.js +4 -77
  21. package/dist/Cascader/Utils.d.ts +0 -2
  22. package/dist/Cascader/Utils.js +0 -44
  23. package/dist/Cascader/index.d.ts +1 -1
  24. package/dist/Cascader/typings.d.ts +2 -18
  25. package/dist/Cascader/useCascader.d.ts +1 -15
  26. package/dist/Cascader/useCascader.js +14 -41
  27. package/dist/DatePicker/DatePicker.js +6 -6
  28. package/dist/DateTimePicker/DateTimePicker.d.ts +1 -1
  29. package/dist/Dialog/Dialog.js +2 -2
  30. package/dist/Drawer/Drawer.js +8 -8
  31. package/dist/Empty/ImgEmpty.js +1 -1
  32. package/dist/Form/utils/classUtil.js +2 -2
  33. package/dist/Input/InputRange.js +3 -3
  34. package/dist/MessageBox/MessageBox.js +1 -1
  35. package/dist/Popper/Popper.js +7 -7
  36. package/dist/Progress/Progress.js +1 -1
  37. package/dist/Table/hooks/useSelection.d.ts +1 -8
  38. package/dist/Table/util.js +2 -2
  39. package/dist/TimePicker/TimePicker.js +1 -1
  40. package/dist/Tree/DirectoryTree.d.ts +6 -13
  41. package/dist/Tree/DirectoryTree.js +32 -81
  42. package/dist/Tree/DropIndicator.d.ts +4 -2
  43. package/dist/Tree/DropIndicator.js +7 -2
  44. package/dist/Tree/Indent.d.ts +2 -2
  45. package/dist/Tree/Indent.js +4 -4
  46. package/dist/Tree/MotionTreeNode.d.ts +4 -5
  47. package/dist/Tree/MotionTreeNode.js +69 -52
  48. package/dist/Tree/NodeList.d.ts +15 -11
  49. package/dist/Tree/NodeList.js +38 -29
  50. package/dist/Tree/RCTree.d.ts +77 -75
  51. package/dist/Tree/RCTree.js +199 -188
  52. package/dist/Tree/Tree.d.ts +3 -3
  53. package/dist/Tree/Tree.js +27 -27
  54. package/dist/Tree/TreeNode.d.ts +5 -90
  55. package/dist/Tree/TreeNode.js +320 -422
  56. package/dist/Tree/contextTypes.d.ts +36 -30
  57. package/dist/Tree/contextTypes.js +17 -4
  58. package/dist/Tree/index.d.ts +2 -2
  59. package/dist/Tree/typings.d.ts +60 -19
  60. package/dist/Tree/typings.js +1 -13
  61. package/dist/Tree/typings.tsx--bak +245 -0
  62. package/dist/Tree/useUnmount.d.ts +5 -0
  63. package/dist/{VirtualList/hooks/useChildren.js → Tree/useUnmount.js} +24 -16
  64. package/dist/Tree/util.d.ts +17 -21
  65. package/dist/Tree/util.js +21 -52
  66. package/dist/Tree/utils/conductUtil.d.ts +2 -2
  67. package/dist/Tree/utils/conductUtil.js +14 -3
  68. package/dist/Tree/utils/dictUtil.d.ts +7 -3
  69. package/dist/Tree/utils/dictUtil.js +49 -32
  70. package/dist/Tree/utils/diffUtil.d.ts +4 -3
  71. package/dist/Tree/utils/keyUtil.d.ts +2 -0
  72. package/dist/{VirtualList/utils/isFirefox.js → Tree/utils/keyUtil.js} +8 -7
  73. package/dist/Tree/utils/motion.js +6 -5
  74. package/dist/Tree/utils/treeUtil.d.ts +16 -18
  75. package/dist/Tree/utils/treeUtil.js +35 -14
  76. package/dist/TreeSelect/Utils.d.ts +1 -1
  77. package/dist/Util/base.d.ts +1 -1
  78. package/dist/Util/base.js +14 -2
  79. package/dist/hooks/prefix.d.ts +1 -1
  80. package/dist/hooks/prefix.js +4 -4
  81. package/dist/hooks/useClassNames.js +1 -1
  82. package/dist/index.css +228 -4
  83. package/dist/index.d.ts +5 -5
  84. package/dist/index.js +5 -5
  85. package/dist/theme-chalk/calendar/month-table.scss +1 -1
  86. package/dist/theme-chalk/carousel/index.scss +237 -0
  87. package/dist/theme-chalk/dev.scss +2 -0
  88. package/dist/theme-chalk/index.scss +1 -1
  89. package/dist/theme-chalk/input/input.scss +5 -3
  90. package/package.json +2 -1
  91. package/dist/Tree/utils/KeyCode.d.ts +0 -436
  92. package/dist/Tree/utils/KeyCode.js +0 -550
  93. package/dist/VirtualList/Filler.d.ts +0 -16
  94. package/dist/VirtualList/Filler.js +0 -78
  95. package/dist/VirtualList/Item.d.ts +0 -7
  96. package/dist/VirtualList/ScrollBar.d.ts +0 -43
  97. package/dist/VirtualList/ScrollBar.js +0 -216
  98. package/dist/VirtualList/VirtualList.d.ts +0 -36
  99. package/dist/VirtualList/VirtualList.js +0 -280
  100. package/dist/VirtualList/hooks/useChildren.d.ts +0 -3
  101. package/dist/VirtualList/hooks/useDiffItem.d.ts +0 -2
  102. package/dist/VirtualList/hooks/useDiffItem.js +0 -39
  103. package/dist/VirtualList/hooks/useFrameWheel.d.ts +0 -6
  104. package/dist/VirtualList/hooks/useFrameWheel.js +0 -72
  105. package/dist/VirtualList/hooks/useHeights.d.ts +0 -3
  106. package/dist/VirtualList/hooks/useHeights.js +0 -83
  107. package/dist/VirtualList/hooks/useLayoutEffect.d.ts +0 -6
  108. package/dist/VirtualList/hooks/useLayoutEffect.js +0 -30
  109. package/dist/VirtualList/hooks/useMobileTouchMove.d.ts +0 -2
  110. package/dist/VirtualList/hooks/useMobileTouchMove.js +0 -92
  111. package/dist/VirtualList/hooks/useOriginScroll.d.ts +0 -2
  112. package/dist/VirtualList/hooks/useOriginScroll.js +0 -56
  113. package/dist/VirtualList/hooks/useScrollTo.d.ts +0 -5
  114. package/dist/VirtualList/hooks/useScrollTo.js +0 -111
  115. package/dist/VirtualList/index.d.ts +0 -2
  116. package/dist/VirtualList/interface.d.ts +0 -8
  117. package/dist/VirtualList/mock.d.ts +0 -6
  118. package/dist/VirtualList/mock.js +0 -29
  119. package/dist/VirtualList/utils/CacheMap.d.ts +0 -7
  120. package/dist/VirtualList/utils/CacheMap.js +0 -36
  121. package/dist/VirtualList/utils/algorithmUtil.d.ts +0 -23
  122. package/dist/VirtualList/utils/algorithmUtil.js +0 -81
  123. package/dist/VirtualList/utils/findDOMNode.d.ts +0 -5
  124. package/dist/VirtualList/utils/findDOMNode.js +0 -30
  125. package/dist/VirtualList/utils/isFirefox.d.ts +0 -2
  126. package/dist/VirtualList/utils/raf.d.ts +0 -5
  127. package/dist/VirtualList/utils/raf.js +0 -57
  128. package/dist/theme-chalk/bak/common/popup.scss +0 -47
  129. package/dist/theme-chalk/bak/common/transition.scss +0 -118
  130. package/dist/theme-chalk/bak/common/var.scss +0 -1476
  131. package/dist/theme-chalk/bak/mixins/_button.scss +0 -224
  132. package/dist/theme-chalk/bak/mixins/_col.scss +0 -38
  133. package/dist/theme-chalk/bak/mixins/_var.scss +0 -55
  134. package/dist/theme-chalk/bak/mixins/config.scss +0 -5
  135. package/dist/theme-chalk/bak/mixins/function.scss +0 -85
  136. package/dist/theme-chalk/bak/mixins/mixins.scss +0 -215
  137. package/dist/theme-chalk/bak/mixins/utils.scss +0 -39
  138. package/dist/theme-chalk/build.scss +0 -64
@@ -1,216 +0,0 @@
1
- var __create = Object.create;
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __getProtoOf = Object.getPrototypeOf;
6
- var __hasOwnProp = Object.prototype.hasOwnProperty;
7
- var __export = (target, all) => {
8
- for (var name in all)
9
- __defProp(target, name, { get: all[name], enumerable: true });
10
- };
11
- var __copyProps = (to, from, except, desc) => {
12
- if (from && typeof from === "object" || typeof from === "function") {
13
- for (let key of __getOwnPropNames(from))
14
- if (!__hasOwnProp.call(to, key) && key !== except)
15
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
- }
17
- return to;
18
- };
19
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
- // If the importer is in node compatibility mode or this is not an ESM
21
- // file that has been converted to a CommonJS file using a Babel-
22
- // compatible transform (i.e. "__esModule" has not been set), then set
23
- // "default" to the CommonJS "module.exports" for node compatibility.
24
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
- mod
26
- ));
27
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
-
29
- // src/VirtualList/ScrollBar.tsx
30
- var ScrollBar_exports = {};
31
- __export(ScrollBar_exports, {
32
- default: () => ScrollBar
33
- });
34
- module.exports = __toCommonJS(ScrollBar_exports);
35
- var import_classnames = __toESM(require("classnames"));
36
- var import_react = __toESM(require("react"));
37
- var import_raf = __toESM(require("./utils/raf"));
38
- var MIN_SIZE = 20;
39
- function getPageY(e) {
40
- return "touches" in e ? e.touches[0].pageY : e.pageY;
41
- }
42
- var ScrollBar = class extends import_react.Component {
43
- constructor() {
44
- super(...arguments);
45
- this.moveRaf = null;
46
- this.scrollbarRef = (0, import_react.createRef)();
47
- this.thumbRef = (0, import_react.createRef)();
48
- // eslint-disable-next-line no-undef
49
- this.visibleTimeout = null;
50
- this.state = {
51
- dragging: false,
52
- pageY: null,
53
- startTop: null,
54
- visible: false
55
- };
56
- this.delayHidden = () => {
57
- clearTimeout(this.visibleTimeout);
58
- this.setState({ visible: true });
59
- this.visibleTimeout = setTimeout(() => {
60
- this.setState({ visible: false });
61
- }, 2e3);
62
- };
63
- this.onScrollbarTouchStart = (e) => {
64
- e.preventDefault();
65
- };
66
- this.onContainerMouseDown = (e) => {
67
- e.stopPropagation();
68
- e.preventDefault();
69
- };
70
- // ======================= Clean =======================
71
- this.patchEvents = () => {
72
- window.addEventListener("mousemove", this.onMouseMove);
73
- window.addEventListener("mouseup", this.onMouseUp);
74
- this.thumbRef.current.addEventListener("touchmove", this.onMouseMove);
75
- this.thumbRef.current.addEventListener("touchend", this.onMouseUp);
76
- };
77
- this.removeEvents = () => {
78
- window.removeEventListener("mousemove", this.onMouseMove);
79
- window.removeEventListener("mouseup", this.onMouseUp);
80
- this.scrollbarRef.current.removeEventListener("touchstart", this.onScrollbarTouchStart);
81
- this.thumbRef.current.removeEventListener("touchstart", this.onMouseDown);
82
- this.thumbRef.current.removeEventListener("touchmove", this.onMouseMove);
83
- this.thumbRef.current.removeEventListener("touchend", this.onMouseUp);
84
- import_raf.default.cancel(this.moveRaf);
85
- };
86
- // ======================= Thumb =======================
87
- this.onMouseDown = (e) => {
88
- const { onStartMove } = this.props;
89
- this.setState({
90
- dragging: true,
91
- pageY: getPageY(e),
92
- startTop: this.getTop()
93
- });
94
- onStartMove();
95
- this.patchEvents();
96
- e.stopPropagation();
97
- e.preventDefault();
98
- };
99
- this.onMouseMove = (e) => {
100
- const { dragging, pageY, startTop } = this.state;
101
- const { onScroll } = this.props;
102
- import_raf.default.cancel(this.moveRaf);
103
- if (dragging) {
104
- const offsetY = getPageY(e) - pageY;
105
- const newTop = startTop + offsetY;
106
- const enableScrollRange = this.getEnableScrollRange();
107
- const enableHeightRange = this.getEnableHeightRange();
108
- const ptg = enableHeightRange ? newTop / enableHeightRange : 0;
109
- const newScrollTop = Math.ceil(ptg * enableScrollRange);
110
- this.moveRaf = (0, import_raf.default)(() => {
111
- onScroll(newScrollTop);
112
- });
113
- }
114
- };
115
- this.onMouseUp = () => {
116
- const { onStopMove } = this.props;
117
- this.setState({ dragging: false });
118
- onStopMove();
119
- this.removeEvents();
120
- };
121
- // ===================== Calculate =====================
122
- this.getSpinHeight = () => {
123
- const { height, count } = this.props;
124
- let baseHeight = height / count * 10;
125
- baseHeight = Math.max(baseHeight, MIN_SIZE);
126
- baseHeight = Math.min(baseHeight, height / 2);
127
- return Math.floor(baseHeight);
128
- };
129
- this.getEnableScrollRange = () => {
130
- const { scrollHeight, height } = this.props;
131
- return scrollHeight - height || 0;
132
- };
133
- this.getEnableHeightRange = () => {
134
- const { height } = this.props;
135
- const spinHeight = this.getSpinHeight();
136
- return height - spinHeight || 0;
137
- };
138
- this.getTop = () => {
139
- const { scrollTop } = this.props;
140
- const enableScrollRange = this.getEnableScrollRange();
141
- const enableHeightRange = this.getEnableHeightRange();
142
- if (scrollTop === 0 || enableScrollRange === 0) {
143
- return 0;
144
- }
145
- const ptg = scrollTop / enableScrollRange;
146
- return ptg * enableHeightRange;
147
- };
148
- // Not show scrollbar when height is large than scrollHeight
149
- this.showScroll = () => {
150
- const { height, scrollHeight } = this.props;
151
- return scrollHeight > height;
152
- };
153
- }
154
- componentDidMount() {
155
- this.scrollbarRef.current.addEventListener("touchstart", this.onScrollbarTouchStart);
156
- this.thumbRef.current.addEventListener("touchstart", this.onMouseDown);
157
- }
158
- componentDidUpdate(prevProps) {
159
- if (prevProps.scrollTop !== this.props.scrollTop) {
160
- this.delayHidden();
161
- }
162
- }
163
- componentWillUnmount() {
164
- this.removeEvents();
165
- clearTimeout(this.visibleTimeout);
166
- }
167
- // ====================== Render =======================
168
- render() {
169
- const { dragging, visible } = this.state;
170
- const { prefixCls } = this.props;
171
- const spinHeight = this.getSpinHeight();
172
- const top = this.getTop();
173
- const canScroll = this.showScroll();
174
- const mergedVisible = canScroll && visible;
175
- return /* @__PURE__ */ import_react.default.createElement(
176
- "div",
177
- {
178
- ref: this.scrollbarRef,
179
- className: (0, import_classnames.default)(`${prefixCls}-scrollbar`, {
180
- [`${prefixCls}-scrollbar-show`]: canScroll
181
- }),
182
- style: {
183
- width: 6,
184
- top: 0,
185
- bottom: 0,
186
- right: 0,
187
- position: "absolute",
188
- display: mergedVisible ? null : "none"
189
- },
190
- onMouseDown: this.onContainerMouseDown,
191
- onMouseMove: this.delayHidden
192
- },
193
- /* @__PURE__ */ import_react.default.createElement(
194
- "div",
195
- {
196
- ref: this.thumbRef,
197
- className: (0, import_classnames.default)(`${prefixCls}-scrollbar-thumb`, {
198
- [`${prefixCls}-scrollbar-thumb-moving`]: dragging
199
- }),
200
- style: {
201
- width: "100%",
202
- height: spinHeight,
203
- top,
204
- left: 0,
205
- position: "absolute",
206
- background: "rgba(144, 147, 153, 0.3)",
207
- borderRadius: 99,
208
- cursor: "pointer",
209
- userSelect: "none"
210
- },
211
- onMouseDown: this.onMouseDown
212
- }
213
- )
214
- );
215
- }
216
- };
@@ -1,36 +0,0 @@
1
- import React, { ComponentClass, FC, Key, Ref } from 'react';
2
- import type { RenderFunc } from './interface';
3
- export type ScrollAlign = 'top' | 'bottom' | 'auto';
4
- export type ScrollConfig = {
5
- index: number;
6
- align?: ScrollAlign;
7
- offset?: number;
8
- } | {
9
- key: Key;
10
- align?: ScrollAlign;
11
- offset?: number;
12
- };
13
- export type ScrollTo = (arg: number | ScrollConfig) => void;
14
- export type ListRef = {
15
- scrollTo: ScrollTo;
16
- };
17
- export interface ListProps<T = any> extends Omit<React.AllHTMLAttributes<any>, 'data' | 'children'> {
18
- prefixCls?: string;
19
- children: RenderFunc<T>;
20
- data: T[];
21
- height?: number;
22
- itemHeight?: number;
23
- style?: React.CSSProperties;
24
- /** If not match virtual scroll condition, Set List still use height of container. */
25
- fullHeight?: boolean;
26
- itemKey: Key | ((item: T) => Key);
27
- component?: string | FC<any> | ComponentClass<any>;
28
- /** Set `false` will always use real scroll instead of virtual one */
29
- virtual?: boolean;
30
- onScroll?: React.UIEventHandler<HTMLElement>;
31
- /** Trigger when render list item changed */
32
- onVisibleChange?: (visibleList: T[], fullList: T[]) => void;
33
- }
34
- export declare function RawList<T>(props: ListProps<T>, ref: Ref<ListRef>): React.JSX.Element;
35
- declare const List: React.ForwardRefExoticComponent<ListProps<any> & React.RefAttributes<ListRef>>;
36
- export default List;
@@ -1,280 +0,0 @@
1
- var __create = Object.create;
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __getProtoOf = Object.getPrototypeOf;
6
- var __hasOwnProp = Object.prototype.hasOwnProperty;
7
- var __export = (target, all) => {
8
- for (var name in all)
9
- __defProp(target, name, { get: all[name], enumerable: true });
10
- };
11
- var __copyProps = (to, from, except, desc) => {
12
- if (from && typeof from === "object" || typeof from === "function") {
13
- for (let key of __getOwnPropNames(from))
14
- if (!__hasOwnProp.call(to, key) && key !== except)
15
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
- }
17
- return to;
18
- };
19
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
- // If the importer is in node compatibility mode or this is not an ESM
21
- // file that has been converted to a CommonJS file using a Babel-
22
- // compatible transform (i.e. "__esModule" has not been set), then set
23
- // "default" to the CommonJS "module.exports" for node compatibility.
24
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
- mod
26
- ));
27
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
-
29
- // src/VirtualList/VirtualList.tsx
30
- var VirtualList_exports = {};
31
- __export(VirtualList_exports, {
32
- RawList: () => RawList,
33
- default: () => VirtualList_default
34
- });
35
- module.exports = __toCommonJS(VirtualList_exports);
36
- var import_classnames = __toESM(require("classnames"));
37
- var import_react = __toESM(require("react"));
38
- var import_Filler = __toESM(require("./Filler"));
39
- var import_ScrollBar = __toESM(require("./ScrollBar"));
40
- var import_useChildren = __toESM(require("./hooks/useChildren"));
41
- var import_useDiffItem = __toESM(require("./hooks/useDiffItem"));
42
- var import_useFrameWheel = __toESM(require("./hooks/useFrameWheel"));
43
- var import_useHeights = __toESM(require("./hooks/useHeights"));
44
- var import_useLayoutEffect = __toESM(require("./hooks/useLayoutEffect"));
45
- var import_useMobileTouchMove = __toESM(require("./hooks/useMobileTouchMove"));
46
- var import_useOriginScroll = __toESM(require("./hooks/useOriginScroll"));
47
- var import_useScrollTo = __toESM(require("./hooks/useScrollTo"));
48
- var EMPTY_DATA = [];
49
- var ScrollStyle = {
50
- overflowY: "auto",
51
- overflowAnchor: "none"
52
- };
53
- function RawList(props, ref) {
54
- const {
55
- prefixCls = "rc-virtual-list",
56
- className,
57
- height,
58
- itemHeight,
59
- fullHeight = true,
60
- style,
61
- data,
62
- children,
63
- itemKey,
64
- virtual,
65
- component: Component = "div",
66
- onScroll,
67
- onVisibleChange,
68
- ...restProps
69
- } = props;
70
- const useVirtual = !!(virtual !== false && height && itemHeight);
71
- const inVirtual = useVirtual && data && itemHeight * data.length > height;
72
- const [scrollTop, setScrollTop] = (0, import_react.useState)(0);
73
- const [scrollMoving, setScrollMoving] = (0, import_react.useState)(false);
74
- const mergedClassName = (0, import_classnames.default)(prefixCls, className);
75
- const mergedData = data || EMPTY_DATA;
76
- const componentRef = (0, import_react.useRef)();
77
- const fillerInnerRef = (0, import_react.useRef)();
78
- const scrollBarRef = (0, import_react.useRef)();
79
- const getKey = (0, import_react.useCallback)(
80
- (item) => {
81
- if (typeof itemKey === "function") {
82
- return itemKey(item);
83
- }
84
- return item == null ? void 0 : item[itemKey];
85
- },
86
- [itemKey]
87
- );
88
- const sharedConfig = {
89
- getKey
90
- };
91
- function syncScrollTop(newTop) {
92
- setScrollTop((origin) => {
93
- let value;
94
- if (typeof newTop === "function") {
95
- value = newTop(origin);
96
- } else {
97
- value = newTop;
98
- }
99
- const alignedTop = keepInRange(value);
100
- componentRef.current.scrollTop = alignedTop;
101
- return alignedTop;
102
- });
103
- }
104
- const rangeRef = (0, import_react.useRef)({ start: 0, end: mergedData.length });
105
- const diffItemRef = (0, import_react.useRef)();
106
- const [diffItem] = (0, import_useDiffItem.default)(mergedData, getKey);
107
- diffItemRef.current = diffItem;
108
- const [setInstanceRef, collectHeight, heights, heightUpdatedMark] = (0, import_useHeights.default)(getKey, null, null);
109
- const { scrollHeight, start, end, offset } = (0, import_react.useMemo)(() => {
110
- var _a;
111
- if (!useVirtual) {
112
- return {
113
- scrollHeight: void 0,
114
- start: 0,
115
- end: mergedData.length - 1,
116
- offset: void 0
117
- };
118
- }
119
- if (!inVirtual) {
120
- return {
121
- scrollHeight: ((_a = fillerInnerRef.current) == null ? void 0 : _a.offsetHeight) || 0,
122
- start: 0,
123
- end: mergedData.length - 1,
124
- offset: void 0
125
- };
126
- }
127
- let itemTop = 0;
128
- let startIndex;
129
- let startOffset;
130
- let endIndex;
131
- const dataLen = mergedData.length;
132
- for (let i = 0; i < dataLen; i += 1) {
133
- const item = mergedData[i];
134
- const key = getKey(item);
135
- const cacheHeight = heights.get(key);
136
- const currentItemBottom = itemTop + (cacheHeight === void 0 ? itemHeight : cacheHeight);
137
- if (currentItemBottom >= scrollTop && startIndex === void 0) {
138
- startIndex = i;
139
- startOffset = itemTop;
140
- }
141
- if (currentItemBottom > scrollTop + height && endIndex === void 0) {
142
- endIndex = i;
143
- }
144
- itemTop = currentItemBottom;
145
- }
146
- if (startIndex === void 0) {
147
- startIndex = 0;
148
- startOffset = 0;
149
- }
150
- if (endIndex === void 0) {
151
- endIndex = mergedData.length - 1;
152
- }
153
- endIndex = Math.min(endIndex + 1, mergedData.length);
154
- return {
155
- scrollHeight: itemTop,
156
- start: startIndex,
157
- end: endIndex,
158
- offset: startOffset
159
- };
160
- }, [inVirtual, useVirtual, scrollTop, mergedData, heightUpdatedMark, height]);
161
- rangeRef.current.start = start;
162
- rangeRef.current.end = end;
163
- const maxScrollHeight = scrollHeight - height;
164
- const maxScrollHeightRef = (0, import_react.useRef)(maxScrollHeight);
165
- maxScrollHeightRef.current = maxScrollHeight;
166
- function keepInRange(newScrollTop) {
167
- let newTop = newScrollTop;
168
- if (!Number.isNaN(maxScrollHeightRef.current)) {
169
- newTop = Math.min(newTop, maxScrollHeightRef.current);
170
- }
171
- newTop = Math.max(newTop, 0);
172
- return newTop;
173
- }
174
- const isScrollAtTop = scrollTop <= 0;
175
- const isScrollAtBottom = scrollTop >= maxScrollHeight;
176
- const originScroll = (0, import_useOriginScroll.default)(isScrollAtTop, isScrollAtBottom);
177
- function onScrollBar(newScrollTop) {
178
- const newTop = newScrollTop;
179
- syncScrollTop(newTop);
180
- }
181
- function onFallbackScroll(e) {
182
- const { scrollTop: newScrollTop } = e.currentTarget;
183
- if (newScrollTop !== scrollTop) {
184
- syncScrollTop(newScrollTop);
185
- }
186
- onScroll == null ? void 0 : onScroll.call(this, e);
187
- }
188
- const [onRawWheel, onFireFoxScroll] = (0, import_useFrameWheel.default)(useVirtual, isScrollAtTop, isScrollAtBottom, (offsetY) => {
189
- syncScrollTop((top) => {
190
- const newTop = top + offsetY;
191
- return newTop;
192
- });
193
- });
194
- (0, import_useMobileTouchMove.default)(useVirtual, componentRef, (deltaY, smoothOffset) => {
195
- if (originScroll(deltaY, smoothOffset)) {
196
- return false;
197
- }
198
- onRawWheel({ preventDefault() {
199
- }, deltaY });
200
- return true;
201
- });
202
- (0, import_useLayoutEffect.default)(() => {
203
- function onMozMousePixelScroll(e) {
204
- if (useVirtual) {
205
- e.preventDefault();
206
- }
207
- }
208
- componentRef.current.addEventListener("wheel", onRawWheel);
209
- componentRef.current.addEventListener("DOMMouseScroll", onFireFoxScroll);
210
- componentRef.current.addEventListener("MozMousePixelScroll", onMozMousePixelScroll);
211
- return () => {
212
- if (componentRef.current) {
213
- componentRef.current.removeEventListener("wheel", onRawWheel);
214
- componentRef.current.removeEventListener("DOMMouseScroll", onFireFoxScroll);
215
- componentRef.current.removeEventListener("MozMousePixelScroll", onMozMousePixelScroll);
216
- }
217
- };
218
- }, [useVirtual]);
219
- const scrollTo = (0, import_useScrollTo.default)(componentRef, mergedData, heights, itemHeight, getKey, collectHeight, syncScrollTop, () => {
220
- var _a;
221
- (_a = scrollBarRef.current) == null ? void 0 : _a.delayHidden();
222
- });
223
- (0, import_react.useImperativeHandle)(ref, () => ({
224
- scrollTo
225
- }));
226
- (0, import_useLayoutEffect.default)(() => {
227
- if (onVisibleChange) {
228
- const renderList = mergedData.slice(start, end + 1);
229
- onVisibleChange(renderList, mergedData);
230
- }
231
- }, [start, end, mergedData]);
232
- const listChildren = (0, import_useChildren.default)(mergedData, start, end, setInstanceRef, children, sharedConfig);
233
- let componentStyle = null;
234
- if (height) {
235
- componentStyle = { [fullHeight ? "height" : "maxHeight"]: height, ...ScrollStyle };
236
- if (useVirtual) {
237
- componentStyle.overflowY = "hidden";
238
- if (scrollMoving) {
239
- componentStyle.pointerEvents = "none";
240
- }
241
- }
242
- }
243
- return /* @__PURE__ */ import_react.default.createElement(
244
- "div",
245
- {
246
- style: {
247
- ...style,
248
- position: "relative"
249
- },
250
- className: mergedClassName,
251
- ...restProps
252
- },
253
- /* @__PURE__ */ import_react.default.createElement(Component, { className: `${prefixCls}-holder`, style: componentStyle, ref: componentRef, onScroll: onFallbackScroll }, /* @__PURE__ */ import_react.default.createElement(import_Filler.default, { prefixCls, height: scrollHeight, offset, onInnerResize: collectHeight, ref: fillerInnerRef }, listChildren)),
254
- useVirtual && /* @__PURE__ */ import_react.default.createElement(
255
- import_ScrollBar.default,
256
- {
257
- ref: scrollBarRef,
258
- prefixCls,
259
- scrollTop,
260
- height,
261
- scrollHeight,
262
- count: mergedData.length,
263
- onScroll: onScrollBar,
264
- onStartMove: () => {
265
- setScrollMoving(true);
266
- },
267
- onStopMove: () => {
268
- setScrollMoving(false);
269
- }
270
- }
271
- )
272
- );
273
- }
274
- var List = (0, import_react.forwardRef)(RawList);
275
- List.displayName = "List";
276
- var VirtualList_default = List;
277
- // Annotate the CommonJS export names for ESM import in node:
278
- 0 && (module.exports = {
279
- RawList
280
- });
@@ -1,3 +0,0 @@
1
- import React from 'react';
2
- import type { RenderFunc, SharedConfig } from '../interface';
3
- export default function useChildren<T>(list: T[], startIndex: number, endIndex: number, setNodeRef: (item: T, element: HTMLElement) => void, renderFunc: RenderFunc<T>, { getKey }: SharedConfig<T>): React.JSX.Element[];
@@ -1,2 +0,0 @@
1
- import type { GetKey } from '../interface';
2
- export default function useDiffItem<T>(data: T[], getKey: GetKey<T>, onDiff?: (diffIndex: number) => void): [T];
@@ -1,39 +0,0 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __export = (target, all) => {
6
- for (var name in all)
7
- __defProp(target, name, { get: all[name], enumerable: true });
8
- };
9
- var __copyProps = (to, from, except, desc) => {
10
- if (from && typeof from === "object" || typeof from === "function") {
11
- for (let key of __getOwnPropNames(from))
12
- if (!__hasOwnProp.call(to, key) && key !== except)
13
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
- }
15
- return to;
16
- };
17
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
-
19
- // src/VirtualList/hooks/useDiffItem.ts
20
- var useDiffItem_exports = {};
21
- __export(useDiffItem_exports, {
22
- default: () => useDiffItem
23
- });
24
- module.exports = __toCommonJS(useDiffItem_exports);
25
- var import_react = require("react");
26
- var import_algorithmUtil = require("../utils/algorithmUtil");
27
- function useDiffItem(data, getKey, onDiff) {
28
- const [prevData, setPrevData] = (0, import_react.useState)(data);
29
- const [diffItem, setDiffItem] = (0, import_react.useState)(null);
30
- (0, import_react.useEffect)(() => {
31
- const diff = (0, import_algorithmUtil.findListDiffIndex)(prevData || [], data || [], getKey);
32
- if ((diff == null ? void 0 : diff.index) !== void 0) {
33
- onDiff == null ? void 0 : onDiff(diff.index);
34
- setDiffItem(data[diff.index]);
35
- }
36
- setPrevData(data);
37
- }, [data]);
38
- return [diffItem];
39
- }
@@ -1,6 +0,0 @@
1
- interface FireFoxDOMMouseScrollEvent {
2
- detail: number;
3
- preventDefault: Function;
4
- }
5
- export default function useFrameWheel(inVirtual: boolean, isScrollAtTop: boolean, isScrollAtBottom: boolean, onWheelDelta: (offset: number) => void): [(e: WheelEvent) => void, (e: FireFoxDOMMouseScrollEvent) => void];
6
- export {};
@@ -1,72 +0,0 @@
1
- var __create = Object.create;
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __getProtoOf = Object.getPrototypeOf;
6
- var __hasOwnProp = Object.prototype.hasOwnProperty;
7
- var __export = (target, all) => {
8
- for (var name in all)
9
- __defProp(target, name, { get: all[name], enumerable: true });
10
- };
11
- var __copyProps = (to, from, except, desc) => {
12
- if (from && typeof from === "object" || typeof from === "function") {
13
- for (let key of __getOwnPropNames(from))
14
- if (!__hasOwnProp.call(to, key) && key !== except)
15
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
- }
17
- return to;
18
- };
19
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
- // If the importer is in node compatibility mode or this is not an ESM
21
- // file that has been converted to a CommonJS file using a Babel-
22
- // compatible transform (i.e. "__esModule" has not been set), then set
23
- // "default" to the CommonJS "module.exports" for node compatibility.
24
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
- mod
26
- ));
27
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
-
29
- // src/VirtualList/hooks/useFrameWheel.ts
30
- var useFrameWheel_exports = {};
31
- __export(useFrameWheel_exports, {
32
- default: () => useFrameWheel
33
- });
34
- module.exports = __toCommonJS(useFrameWheel_exports);
35
- var import_react = require("react");
36
- var import_isFirefox = __toESM(require("../utils/isFirefox"));
37
- var import_raf = __toESM(require("../utils/raf"));
38
- var import_useOriginScroll = __toESM(require("./useOriginScroll"));
39
- function useFrameWheel(inVirtual, isScrollAtTop, isScrollAtBottom, onWheelDelta) {
40
- const offsetRef = (0, import_react.useRef)(0);
41
- const nextFrameRef = (0, import_react.useRef)(null);
42
- const wheelValueRef = (0, import_react.useRef)(null);
43
- const isMouseScrollRef = (0, import_react.useRef)(false);
44
- const originScroll = (0, import_useOriginScroll.default)(isScrollAtTop, isScrollAtBottom);
45
- function onWheel(event) {
46
- if (!inVirtual) {
47
- return;
48
- }
49
- import_raf.default.cancel(nextFrameRef.current);
50
- const { deltaY } = event;
51
- offsetRef.current += deltaY;
52
- wheelValueRef.current = deltaY;
53
- if (originScroll(deltaY)) {
54
- return;
55
- }
56
- if (!import_isFirefox.default) {
57
- event.preventDefault();
58
- }
59
- nextFrameRef.current = (0, import_raf.default)(() => {
60
- const patchMultiple = isMouseScrollRef.current ? 10 : 1;
61
- onWheelDelta(offsetRef.current * patchMultiple);
62
- offsetRef.current = 0;
63
- });
64
- }
65
- function onFireFoxScroll(event) {
66
- if (!inVirtual) {
67
- return;
68
- }
69
- isMouseScrollRef.current = event.detail === wheelValueRef.current;
70
- }
71
- return [onWheel, onFireFoxScroll];
72
- }
@@ -1,3 +0,0 @@
1
- import type { GetKey } from '../interface';
2
- import CacheMap from '../utils/CacheMap';
3
- export default function useHeights<T>(getKey: GetKey<T>, onItemAdd?: (item: T) => void, onItemRemove?: (item: T) => void): [(item: T, instance: HTMLElement) => void, () => void, CacheMap, number];