linkmore-design 1.0.91 → 1.0.93

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 (315) hide show
  1. package/dist/AutoComplete/index.d.ts +2 -1
  2. package/dist/CardTable/hooks/usePagination.d.ts +1 -1
  3. package/dist/CardTable/utils.d.ts +1 -1
  4. package/dist/LmFilter/components/CascaderFilter.d.ts +1 -1
  5. package/dist/LmFilter/components/CheckboxFilter.d.ts +1 -1
  6. package/dist/LmFilter/components/DateFilter.d.ts +1 -1
  7. package/dist/LmFilter/components/SelectFilter.d.ts +1 -1
  8. package/dist/LmSelect/useCheckboxOptions.d.ts +1 -1
  9. package/dist/_util/placements.d.ts +0 -1
  10. package/dist/index.umd.css +4454 -67964
  11. package/dist/index.umd.js +193645 -223476
  12. package/dist/index.umd.min.css +2 -2
  13. package/dist/index.umd.min.js +21 -21
  14. package/es/AutoComplete/index.d.ts +2 -1
  15. package/es/Box/style/index.js +3 -0
  16. package/es/Box/style/variables.js +3 -0
  17. package/es/ButtonTags/ButtonTags.js +59 -0
  18. package/es/ButtonTags/index.js +13 -0
  19. package/es/ButtonTags/style/index.js +3 -0
  20. package/es/ButtonTags/style/variables.js +3 -0
  21. package/es/CardTable/LmCardTable.js +63 -0
  22. package/es/CardTable/body/TableBody.js +78 -0
  23. package/es/CardTable/body/TableBodyCell.js +67 -0
  24. package/es/CardTable/body/TableBodyRow.js +91 -0
  25. package/es/CardTable/card/PictureTextColumn.js +132 -0
  26. package/es/CardTable/card/PictureTextRow.js +153 -0
  27. package/es/CardTable/card/PictureTextRowOperate.js +146 -0
  28. package/es/CardTable/context.js +20 -0
  29. package/es/CardTable/empty.js +24 -0
  30. package/es/CardTable/fns/index.js +160 -0
  31. package/es/CardTable/footer.js +59 -0
  32. package/es/CardTable/hooks/usePagination.js +128 -0
  33. package/es/CardTable/index.js +17 -0
  34. package/es/CardTable/pager/TablePagination.js +62 -0
  35. package/es/CardTable/pager/index.js +48 -0
  36. package/es/CardTable/style/index.js +3 -0
  37. package/es/CardTable/style/variables.js +3 -0
  38. package/es/CardTable/table/Table.js +27 -0
  39. package/es/CardTable/table/TableContainer.js +97 -0
  40. package/es/CardTable/table/TableRoot.js +210 -0
  41. package/es/CardTable/table/TableWrapper.js +40 -0
  42. package/es/CardTable/toolbar/ToolBarBottom.js +28 -0
  43. package/es/CardTable/utils.js +31 -0
  44. package/es/Checkbox/index.js +47 -0
  45. package/es/Checkbox/style/index.js +3 -0
  46. package/es/Checkbox/style/variables.js +3 -0
  47. package/es/ConfigProvider/style/index.js +3 -0
  48. package/es/ConfigProvider/style/variables.js +3 -0
  49. package/es/CustomerService/components/question.js +120 -0
  50. package/es/CustomerService/index.js +291 -0
  51. package/es/CustomerService/style/index.js +3 -0
  52. package/es/CustomerService/style/variables.js +3 -0
  53. package/es/EditTable/EditTable.js +704 -0
  54. package/es/EditTable/index.js +13 -0
  55. package/es/EditTable/style/index.js +3 -0
  56. package/es/EditTable/style/variables.js +3 -0
  57. package/es/EnlargeImg/index.js +109 -0
  58. package/es/EnlargeImg/style/index.js +3 -0
  59. package/es/EnlargeImg/style/variables.js +3 -0
  60. package/es/Filter/Popover.js +199 -0
  61. package/es/Filter/baseFilter/Popover.js +213 -0
  62. package/es/Filter/baseFilter/ToggleFilter.js +111 -0
  63. package/es/Filter/baseFilter/index.js +100 -0
  64. package/es/Filter/complex/ComplexFilter.js +149 -0
  65. package/es/Filter/complex/ComplexItem.js +157 -0
  66. package/es/Filter/components/Checkbox.js +94 -0
  67. package/es/Filter/components/Date.js +87 -0
  68. package/es/Filter/components/Input.js +63 -0
  69. package/es/Filter/components/Select.js +89 -0
  70. package/es/Filter/components/Tree.js +64 -0
  71. package/es/Filter/components/header.js +60 -0
  72. package/es/Filter/components/index.js +47 -0
  73. package/es/Filter/context.js +15 -0
  74. package/es/Filter/edit/editFilter.js +273 -0
  75. package/es/Filter/index.js +174 -0
  76. package/es/Filter/popContext.js +15 -0
  77. package/es/Filter/remember.js +136 -0
  78. package/es/Filter/style/index.js +3 -0
  79. package/es/Filter/style/variables.js +3 -0
  80. package/es/Icon/index.js +20 -0
  81. package/es/Icon/style/index.js +3 -0
  82. package/es/Icon/style/variables.js +3 -0
  83. package/es/IconFont/font/iconfont.js +48 -0
  84. package/es/IconFont/style/index.js +3 -0
  85. package/es/IconFont/style/variables.js +3 -0
  86. package/es/IconSelect/index.js +115 -0
  87. package/es/IconSelect/style/index.js +3 -0
  88. package/es/IconSelect/style/variables.js +3 -0
  89. package/es/ImageViewer/style/index.js +3 -0
  90. package/es/ImageViewer/style/variables.js +3 -0
  91. package/es/Input/style/variables.css +0 -511
  92. package/es/LeftTable/index.js +184 -0
  93. package/es/LeftTable/style/index.js +3 -0
  94. package/es/LeftTable/style/variables.js +3 -0
  95. package/es/LmFilter/Controls/CheckboxTags.js +53 -0
  96. package/es/LmFilter/Controls/index.js +78 -0
  97. package/es/LmFilter/LmFilter.js +69 -0
  98. package/es/LmFilter/baseFilter/fuzzySearch.js +69 -0
  99. package/es/LmFilter/baseFilter/index.js +33 -0
  100. package/es/LmFilter/clearFilter/index.js +31 -0
  101. package/es/LmFilter/complexFilter/drawer.js +381 -0
  102. package/es/LmFilter/complexFilter/index.js +64 -0
  103. package/es/LmFilter/complexFilter/valueDrawer.js +235 -0
  104. package/es/LmFilter/components/CascaderFilter.js +160 -0
  105. package/es/LmFilter/components/CheckboxFilter.js +189 -0
  106. package/es/LmFilter/components/CustomSelectFilter.js +139 -0
  107. package/es/LmFilter/components/DateFilter.js +163 -0
  108. package/es/LmFilter/components/DropdownFIlter.js +264 -0
  109. package/es/LmFilter/components/EmptyFilter.js +27 -0
  110. package/es/LmFilter/components/InputFilter.js +51 -0
  111. package/es/LmFilter/components/InputSearchClose.js +74 -0
  112. package/es/LmFilter/components/SelectFilter.js +121 -0
  113. package/es/LmFilter/components/index.js +93 -0
  114. package/es/LmFilter/customFilter/drawer.js +409 -0
  115. package/es/LmFilter/customFilter/index.js +136 -0
  116. package/es/LmFilter/customFilter/saveModal.js +185 -0
  117. package/es/LmFilter/customFilter/valueDrawer.js +232 -0
  118. package/es/LmFilter/filterFns/index.js +644 -0
  119. package/es/LmFilter/hooks/index.js +18 -0
  120. package/es/LmFilter/hooks/useDelayedFn.js +29 -0
  121. package/es/LmFilter/index.js +16 -0
  122. package/es/LmFilter/style/index.js +3 -0
  123. package/es/LmFilter/style/variables.js +3 -0
  124. package/es/LmFilter/utils.js +173 -0
  125. package/es/LmFilter/wrapper/Filter.js +41 -0
  126. package/es/LmFilter/wrapper/FilterContainer.js +25 -0
  127. package/es/LmFilter/wrapper/FilterRoot.js +208 -0
  128. package/es/LmFilter/wrapper/FilterWrapper.js +25 -0
  129. package/es/LmSelect/useCheckboxOptions.d.ts +1 -1
  130. package/es/LmTable/Table.js +1385 -0
  131. package/es/LmTable/VList.js +594 -0
  132. package/es/LmTable/autosize.js +167 -0
  133. package/es/LmTable/components/sortableBoxCol.js +24 -0
  134. package/es/LmTable/components/sortableItemCol.js +54 -0
  135. package/es/LmTable/context.js +12 -0
  136. package/es/LmTable/detectElementResize.js +225 -0
  137. package/es/LmTable/index.js +14 -0
  138. package/es/LmTable/resetConfig.js +39 -0
  139. package/es/LmTable/style/index.js +3 -0
  140. package/es/LmTable/style/variables.js +3 -0
  141. package/es/LmTable/util.js +211 -0
  142. package/es/LmUpload/style/index.js +3 -0
  143. package/es/LmUpload/style/variables.js +3 -0
  144. package/es/LoadingPage/index.js +33 -0
  145. package/es/LoadingPage/style/index.js +3 -0
  146. package/es/LoadingPage/style/variables.js +3 -0
  147. package/es/Radio/index.js +50 -0
  148. package/es/Radio/style/index.js +3 -0
  149. package/es/Radio/style/variables.js +3 -0
  150. package/es/TestTable/style/index.js +3 -0
  151. package/es/TestTable/style/variables.js +3 -0
  152. package/es/UploadOss/index.js +18 -0
  153. package/es/UploadOss/style/index.js +3 -0
  154. package/es/UploadOss/style/variables.js +3 -0
  155. package/es/UploadOss/uploadBtn.js +141 -0
  156. package/es/UploadOss/uploadImg.js +282 -0
  157. package/es/VirtualList/index.js +85 -0
  158. package/es/VirtualList/style/index.js +3 -0
  159. package/es/VirtualList/style/variables.js +3 -0
  160. package/es/_util/placements.d.ts +0 -1
  161. package/es/services/newRequest.js +201 -0
  162. package/es/services/utils.js +72 -0
  163. package/es/styles/variables.css +0 -347
  164. package/lib/AutoComplete/index.d.ts +2 -1
  165. package/lib/Box/style/index.js +3 -0
  166. package/lib/Box/style/variables.js +3 -0
  167. package/lib/ButtonTags/ButtonTags.js +59 -0
  168. package/lib/ButtonTags/index.js +13 -0
  169. package/lib/ButtonTags/style/index.js +3 -0
  170. package/lib/ButtonTags/style/variables.js +3 -0
  171. package/lib/CardTable/LmCardTable.js +63 -0
  172. package/lib/CardTable/body/TableBody.js +78 -0
  173. package/lib/CardTable/body/TableBodyCell.js +67 -0
  174. package/lib/CardTable/body/TableBodyRow.js +91 -0
  175. package/lib/CardTable/card/PictureTextColumn.js +132 -0
  176. package/lib/CardTable/card/PictureTextRow.js +153 -0
  177. package/lib/CardTable/card/PictureTextRowOperate.js +146 -0
  178. package/lib/CardTable/context.js +20 -0
  179. package/lib/CardTable/empty.js +24 -0
  180. package/lib/CardTable/fns/index.js +160 -0
  181. package/lib/CardTable/footer.js +59 -0
  182. package/lib/CardTable/hooks/usePagination.js +128 -0
  183. package/lib/CardTable/index.js +17 -0
  184. package/lib/CardTable/pager/TablePagination.js +62 -0
  185. package/lib/CardTable/pager/index.js +48 -0
  186. package/lib/CardTable/style/index.js +3 -0
  187. package/lib/CardTable/style/variables.js +3 -0
  188. package/lib/CardTable/table/Table.js +27 -0
  189. package/lib/CardTable/table/TableContainer.js +97 -0
  190. package/lib/CardTable/table/TableRoot.js +210 -0
  191. package/lib/CardTable/table/TableWrapper.js +40 -0
  192. package/lib/CardTable/toolbar/ToolBarBottom.js +28 -0
  193. package/lib/CardTable/utils.js +31 -0
  194. package/lib/Checkbox/index.js +47 -0
  195. package/lib/Checkbox/style/index.js +3 -0
  196. package/lib/Checkbox/style/variables.js +3 -0
  197. package/lib/ConfigProvider/style/index.js +3 -0
  198. package/lib/ConfigProvider/style/variables.js +3 -0
  199. package/lib/CustomerService/components/question.js +120 -0
  200. package/lib/CustomerService/index.js +291 -0
  201. package/lib/CustomerService/style/index.js +3 -0
  202. package/lib/CustomerService/style/variables.js +3 -0
  203. package/lib/EditTable/EditTable.js +704 -0
  204. package/lib/EditTable/index.js +13 -0
  205. package/lib/EditTable/style/index.js +3 -0
  206. package/lib/EditTable/style/variables.js +3 -0
  207. package/lib/EnlargeImg/index.js +109 -0
  208. package/lib/EnlargeImg/style/index.js +3 -0
  209. package/lib/EnlargeImg/style/variables.js +3 -0
  210. package/lib/Filter/Popover.js +199 -0
  211. package/lib/Filter/baseFilter/Popover.js +213 -0
  212. package/lib/Filter/baseFilter/ToggleFilter.js +111 -0
  213. package/lib/Filter/baseFilter/index.js +100 -0
  214. package/lib/Filter/complex/ComplexFilter.js +149 -0
  215. package/lib/Filter/complex/ComplexItem.js +157 -0
  216. package/lib/Filter/components/Checkbox.js +94 -0
  217. package/lib/Filter/components/Date.js +87 -0
  218. package/lib/Filter/components/Input.js +63 -0
  219. package/lib/Filter/components/Select.js +89 -0
  220. package/lib/Filter/components/Tree.js +64 -0
  221. package/lib/Filter/components/header.js +60 -0
  222. package/lib/Filter/components/index.js +47 -0
  223. package/lib/Filter/context.js +15 -0
  224. package/lib/Filter/edit/editFilter.js +273 -0
  225. package/lib/Filter/index.js +174 -0
  226. package/lib/Filter/popContext.js +15 -0
  227. package/lib/Filter/remember.js +136 -0
  228. package/lib/Filter/style/index.js +3 -0
  229. package/lib/Filter/style/variables.js +3 -0
  230. package/lib/Icon/index.js +20 -0
  231. package/lib/Icon/style/index.js +3 -0
  232. package/lib/Icon/style/variables.js +3 -0
  233. package/lib/IconFont/font/iconfont.js +48 -0
  234. package/lib/IconFont/style/index.js +3 -0
  235. package/lib/IconFont/style/variables.js +3 -0
  236. package/lib/IconSelect/index.js +115 -0
  237. package/lib/IconSelect/style/index.js +3 -0
  238. package/lib/IconSelect/style/variables.js +3 -0
  239. package/lib/ImageViewer/style/index.js +3 -0
  240. package/lib/ImageViewer/style/variables.js +3 -0
  241. package/lib/Input/style/variables.css +0 -511
  242. package/lib/LeftTable/index.js +184 -0
  243. package/lib/LeftTable/style/index.js +3 -0
  244. package/lib/LeftTable/style/variables.js +3 -0
  245. package/lib/LmFilter/Controls/CheckboxTags.js +53 -0
  246. package/lib/LmFilter/Controls/index.js +78 -0
  247. package/lib/LmFilter/LmFilter.js +69 -0
  248. package/lib/LmFilter/baseFilter/fuzzySearch.js +69 -0
  249. package/lib/LmFilter/baseFilter/index.js +33 -0
  250. package/lib/LmFilter/clearFilter/index.js +31 -0
  251. package/lib/LmFilter/complexFilter/drawer.js +381 -0
  252. package/lib/LmFilter/complexFilter/index.js +64 -0
  253. package/lib/LmFilter/complexFilter/valueDrawer.js +235 -0
  254. package/lib/LmFilter/components/CascaderFilter.js +160 -0
  255. package/lib/LmFilter/components/CheckboxFilter.js +189 -0
  256. package/lib/LmFilter/components/CustomSelectFilter.js +139 -0
  257. package/lib/LmFilter/components/DateFilter.js +163 -0
  258. package/lib/LmFilter/components/DropdownFIlter.js +264 -0
  259. package/lib/LmFilter/components/EmptyFilter.js +27 -0
  260. package/lib/LmFilter/components/InputFilter.js +51 -0
  261. package/lib/LmFilter/components/InputSearchClose.js +74 -0
  262. package/lib/LmFilter/components/SelectFilter.js +121 -0
  263. package/lib/LmFilter/components/index.js +93 -0
  264. package/lib/LmFilter/customFilter/drawer.js +409 -0
  265. package/lib/LmFilter/customFilter/index.js +136 -0
  266. package/lib/LmFilter/customFilter/saveModal.js +185 -0
  267. package/lib/LmFilter/customFilter/valueDrawer.js +232 -0
  268. package/lib/LmFilter/filterFns/index.js +644 -0
  269. package/lib/LmFilter/hooks/index.js +18 -0
  270. package/lib/LmFilter/hooks/useDelayedFn.js +29 -0
  271. package/lib/LmFilter/index.js +16 -0
  272. package/lib/LmFilter/style/index.js +3 -0
  273. package/lib/LmFilter/style/variables.js +3 -0
  274. package/lib/LmFilter/utils.js +173 -0
  275. package/lib/LmFilter/wrapper/Filter.js +41 -0
  276. package/lib/LmFilter/wrapper/FilterContainer.js +25 -0
  277. package/lib/LmFilter/wrapper/FilterRoot.js +208 -0
  278. package/lib/LmFilter/wrapper/FilterWrapper.js +25 -0
  279. package/lib/LmSelect/useCheckboxOptions.d.ts +1 -1
  280. package/lib/LmTable/Table.js +1385 -0
  281. package/lib/LmTable/VList.js +594 -0
  282. package/lib/LmTable/autosize.js +167 -0
  283. package/lib/LmTable/components/sortableBoxCol.js +24 -0
  284. package/lib/LmTable/components/sortableItemCol.js +54 -0
  285. package/lib/LmTable/context.js +12 -0
  286. package/lib/LmTable/detectElementResize.js +225 -0
  287. package/lib/LmTable/index.js +14 -0
  288. package/lib/LmTable/resetConfig.js +39 -0
  289. package/lib/LmTable/style/index.js +3 -0
  290. package/lib/LmTable/style/variables.js +3 -0
  291. package/lib/LmTable/util.js +211 -0
  292. package/lib/LmUpload/style/index.js +3 -0
  293. package/lib/LmUpload/style/variables.js +3 -0
  294. package/lib/LoadingPage/index.js +33 -0
  295. package/lib/LoadingPage/style/index.js +3 -0
  296. package/lib/LoadingPage/style/variables.js +3 -0
  297. package/lib/Radio/index.js +50 -0
  298. package/lib/Radio/style/index.js +3 -0
  299. package/lib/Radio/style/variables.js +3 -0
  300. package/lib/TestTable/style/index.js +3 -0
  301. package/lib/TestTable/style/variables.js +3 -0
  302. package/lib/UploadOss/index.js +18 -0
  303. package/lib/UploadOss/style/index.js +3 -0
  304. package/lib/UploadOss/style/variables.js +3 -0
  305. package/lib/UploadOss/uploadBtn.js +141 -0
  306. package/lib/UploadOss/uploadImg.js +282 -0
  307. package/lib/VirtualList/index.js +85 -0
  308. package/lib/VirtualList/style/index.js +3 -0
  309. package/lib/VirtualList/style/variables.js +3 -0
  310. package/lib/_util/placements.d.ts +0 -1
  311. package/lib/services/newRequest.js +201 -0
  312. package/lib/services/utils.js +72 -0
  313. package/lib/styles/variables.css +0 -347
  314. package/package.json +1 -1
  315. package/CHANGELOG.md +0 -12
@@ -0,0 +1,594 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+
5
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports.scrollTo = exports.VList = void 0;
11
+
12
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
13
+
14
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
15
+
16
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
17
+
18
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
19
+
20
+ var _react = _interopRequireWildcard(require("react"));
21
+
22
+ var _lodash = require("lodash");
23
+
24
+ var _reactResizable = require("react-resizable");
25
+
26
+ var _context = _interopRequireDefault(require("./context"));
27
+
28
+ var _excluded = ["width", "onResize", "children"],
29
+ _excluded2 = ["children"],
30
+ _excluded3 = ["children", "style"],
31
+ _excluded4 = ["children"],
32
+ _excluded5 = ["style", "children"],
33
+ _excluded6 = ["width"];
34
+ // ===============reducer ============== //
35
+ var initialState = {
36
+ // 行高度
37
+ rowHeight: 0,
38
+ // 当前的scrollTop
39
+ curScrollTop: 0,
40
+ // 总行数
41
+ totalLen: 0
42
+ };
43
+
44
+ function reducer(state, action) {
45
+ var curScrollTop = action.curScrollTop,
46
+ curScrollLeft = action.curScrollLeft,
47
+ rowHeight = action.rowHeight,
48
+ totalLen = action.totalLen,
49
+ ifScrollTopClear = action.ifScrollTopClear,
50
+ isScrolling = action.isScrolling;
51
+ var stateScrollTop = state.curScrollTop;
52
+
53
+ switch (action.type) {
54
+ // 滚动条是否滚动中
55
+ case 'changeScrolling':
56
+ return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, state), {}, {
57
+ isScrolling: isScrolling
58
+ });
59
+
60
+ case 'changeTrs':
61
+ return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, state), {}, {
62
+ curScrollTop: curScrollTop
63
+ });
64
+ // 滚动横向滚动条 即 改变渲染的列表operate
65
+
66
+ case 'changeOperate':
67
+ return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, state), {}, {
68
+ curScrollLeft: curScrollLeft
69
+ });
70
+ // 初始化每行的高度, 表格总高度, 渲染的条数
71
+
72
+ case 'initHeight':
73
+ return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, state), {}, {
74
+ rowHeight: rowHeight
75
+ });
76
+ // 更改totalLen
77
+
78
+ case 'changeTotalLen':
79
+ if (totalLen === 0) {
80
+ stateScrollTop = 0;
81
+ }
82
+
83
+ return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, state), {}, {
84
+ totalLen: totalLen,
85
+ curScrollTop: stateScrollTop
86
+ });
87
+
88
+ case 'reset':
89
+ return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, state), {}, {
90
+ curScrollTop: ifScrollTopClear ? 0 : state.curScrollTop
91
+ });
92
+
93
+ default:
94
+ throw new Error();
95
+ }
96
+ } // ============== 全局常量 ================== //
97
+
98
+
99
+ var DEFAULT_VID = 'vtable';
100
+ var vidMap = new Map(); // =============== context ============== //
101
+
102
+ var ScrollContext = /*#__PURE__*/(0, _react.createContext)({
103
+ dispatch: undefined,
104
+ renderLen: 1,
105
+ start: 0,
106
+ offsetStart: 0,
107
+ // =============
108
+ rowHeight: initialState.rowHeight,
109
+ totalLen: 0,
110
+ vid: DEFAULT_VID
111
+ });
112
+ var HeaderContext = /*#__PURE__*/(0, _react.createContext)(); // ============= 组件 =================== //
113
+
114
+ var HeaderWrapper = function HeaderWrapper(props) {
115
+ var _useState = (0, _react.useState)(),
116
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
117
+ useKeys = _useState2[0],
118
+ setKeys = _useState2[1];
119
+
120
+ var _useContext = (0, _react.useContext)(_context.default),
121
+ width = _useContext.width;
122
+
123
+ var changeKeys = function changeKeys() {
124
+ setKeys(Date.now());
125
+ };
126
+
127
+ (0, _react.useEffect)(function () {
128
+ changeKeys();
129
+ }, [width]); // console.log('每列的偏移', props.children[0].props.stickyOffsets);
130
+
131
+ return /*#__PURE__*/_react.default.createElement(HeaderContext.Provider, {
132
+ value: {
133
+ changeKeys: changeKeys
134
+ }
135
+ }, /*#__PURE__*/_react.default.createElement("thead", (0, _extends2.default)({
136
+ key: useKeys
137
+ }, props)));
138
+ };
139
+
140
+ var HeaderCell = function HeaderCell(props) {
141
+ var width = props.width,
142
+ onResize = props.onResize,
143
+ children = props.children,
144
+ restProps = (0, _objectWithoutProperties2.default)(props, _excluded);
145
+
146
+ var _useState3 = (0, _react.useState)(width || 0),
147
+ _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
148
+ useWidth = _useState4[0],
149
+ setWidth = _useState4[1];
150
+
151
+ var _useContext2 = (0, _react.useContext)(HeaderContext),
152
+ changeKeys = _useContext2.changeKeys;
153
+
154
+ var handleResize = function handleResize(e, _ref) {
155
+ var size = _ref.size;
156
+ var nValue = size.width;
157
+ setWidth(nValue);
158
+ };
159
+
160
+ var handleResizeStop = function handleResizeStop(e, _ref2) {
161
+ var size = _ref2.size;
162
+ var nValue = size.width; // const sc = width - nValue > 0 ? width - nValue : 1;
163
+
164
+ onResize === null || onResize === void 0 ? void 0 : onResize(width, nValue); // 触发重新渲染列头单元格,重新计算拖拽位置
165
+
166
+ changeKeys === null || changeKeys === void 0 ? void 0 : changeKeys();
167
+ };
168
+
169
+ if (!width) {
170
+ return /*#__PURE__*/_react.default.createElement("th", restProps, /*#__PURE__*/_react.default.createElement("div", {
171
+ className: "text-overflow"
172
+ }, children));
173
+ }
174
+
175
+ return /*#__PURE__*/_react.default.createElement("th", restProps, /*#__PURE__*/_react.default.createElement("div", {
176
+ className: "text-overflow"
177
+ }, children), /*#__PURE__*/_react.default.createElement(_reactResizable.ResizableBox, {
178
+ className: "yf_resizable_bar",
179
+ width: useWidth,
180
+ height: 0,
181
+ handle: /*#__PURE__*/_react.default.createElement("div", {
182
+ className: "react-resizable-handle",
183
+ onClick: function onClick(e) {
184
+ e.stopPropagation();
185
+ }
186
+ }),
187
+ onResize: handleResize,
188
+ onResizeStop: handleResizeStop,
189
+ minConstraints: [40, 0] // draggableOpts={{ enableUserSelectHack: false }}
190
+
191
+ }));
192
+ };
193
+
194
+ var VCell = function VCell(props) {
195
+ var children = props.children,
196
+ restProps = (0, _objectWithoutProperties2.default)(props, _excluded2);
197
+ return /*#__PURE__*/_react.default.createElement("td", restProps, children);
198
+ };
199
+
200
+ var VRow = function VRow(props, ref) {
201
+ var _useContext3 = (0, _react.useContext)(ScrollContext),
202
+ dispatch = _useContext3.dispatch,
203
+ rowHeight = _useContext3.rowHeight,
204
+ totalLen = _useContext3.totalLen,
205
+ vid = _useContext3.vid;
206
+
207
+ var children = props.children,
208
+ style = props.style,
209
+ restProps = (0, _objectWithoutProperties2.default)(props, _excluded3);
210
+ var trRef = (0, _react.useRef)(null);
211
+ (0, _react.useEffect)(function () {
212
+ var initHeight = function initHeight(tempRef) {
213
+ var _tempRef$current;
214
+
215
+ if ((tempRef === null || tempRef === void 0 ? void 0 : (_tempRef$current = tempRef.current) === null || _tempRef$current === void 0 ? void 0 : _tempRef$current.offsetHeight) && !rowHeight && totalLen) {
216
+ var _tempRef$current$offs, _tempRef$current2;
217
+
218
+ var tempRowHeight = (_tempRef$current$offs = tempRef === null || tempRef === void 0 ? void 0 : (_tempRef$current2 = tempRef.current) === null || _tempRef$current2 === void 0 ? void 0 : _tempRef$current2.offsetHeight) !== null && _tempRef$current$offs !== void 0 ? _tempRef$current$offs : 0;
219
+ vidMap.set(vid, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, vidMap.get(vid)), {}, {
220
+ rowItemHeight: tempRowHeight
221
+ }));
222
+ dispatch({
223
+ type: 'initHeight',
224
+ rowHeight: tempRowHeight
225
+ });
226
+ }
227
+ };
228
+
229
+ initHeight(Object.prototype.hasOwnProperty.call(ref, 'current') ? ref : trRef);
230
+ }, [trRef, dispatch, rowHeight, totalLen, ref, vid]);
231
+ return /*#__PURE__*/_react.default.createElement("tr", (0, _extends2.default)({}, restProps, {
232
+ ref: Object.prototype.hasOwnProperty.call(ref, 'current') ? ref : trRef,
233
+ style: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, style), {}, {
234
+ height: rowHeight || 'auto',
235
+ boxSizing: 'border-box'
236
+ })
237
+ }), children);
238
+ };
239
+
240
+ var VWrapper = function VWrapper(props) {
241
+ var children = props.children,
242
+ restProps = (0, _objectWithoutProperties2.default)(props, _excluded4);
243
+
244
+ var _useContext4 = (0, _react.useContext)(ScrollContext),
245
+ renderLen = _useContext4.renderLen,
246
+ start = _useContext4.start,
247
+ dispatch = _useContext4.dispatch,
248
+ vid = _useContext4.vid,
249
+ totalLen = _useContext4.totalLen;
250
+
251
+ var contents = (0, _react.useMemo)(function () {
252
+ return children[1];
253
+ }, [children]);
254
+ var contentsLen = (0, _react.useMemo)(function () {
255
+ var _contents$length;
256
+
257
+ return (_contents$length = contents === null || contents === void 0 ? void 0 : contents.length) !== null && _contents$length !== void 0 ? _contents$length : 0;
258
+ }, [contents]);
259
+ (0, _react.useEffect)(function () {
260
+ if (totalLen !== contentsLen) {
261
+ dispatch({
262
+ type: 'changeTotalLen',
263
+ totalLen: contentsLen !== null && contentsLen !== void 0 ? contentsLen : 0
264
+ });
265
+ }
266
+ }, [contentsLen, dispatch, vid, totalLen]);
267
+ var tempNode = null;
268
+
269
+ if (Array.isArray(contents) && contents.length) {
270
+ tempNode = [children[0], contents.slice(start, start + (renderLen !== null && renderLen !== void 0 ? renderLen : 1)) // contents.slice(start, start + (renderLen ?? 1)).map((item) => {
271
+ // if (Array.isArray(item)) {
272
+ // // 兼容antd v4.3.5 --- rc-table 7.8.1及以下
273
+ // return item[0];
274
+ // }
275
+ // // 处理antd ^v4.4.0 --- rc-table ^7.8.2
276
+ // return item;
277
+ // }),
278
+ ];
279
+ } else {
280
+ tempNode = children;
281
+ }
282
+
283
+ return /*#__PURE__*/_react.default.createElement("tbody", restProps, tempNode);
284
+ };
285
+
286
+ var VTable = function VTable(props, otherParams) {
287
+ var _children$1$props$dat, _children$, _children$$props, _children$$props$data;
288
+
289
+ var style = props.style,
290
+ children = props.children,
291
+ rest = (0, _objectWithoutProperties2.default)(props, _excluded5);
292
+ var width = style.width,
293
+ restStyle = (0, _objectWithoutProperties2.default)(style, _excluded6);
294
+
295
+ var _ref3 = otherParams !== null && otherParams !== void 0 ? otherParams : {},
296
+ vid = _ref3.vid,
297
+ scrollY = _ref3.scrollY,
298
+ reachEnd = _ref3.reachEnd,
299
+ onScroll = _ref3.onScroll,
300
+ resetScrollTopWhenDataChange = _ref3.resetScrollTopWhenDataChange;
301
+
302
+ var _useReducer = (0, _react.useReducer)(reducer, initialState),
303
+ _useReducer2 = (0, _slicedToArray2.default)(_useReducer, 2),
304
+ state = _useReducer2[0],
305
+ dispatch = _useReducer2[1];
306
+
307
+ var wrapTableRef = (0, _react.useRef)(null);
308
+ var tableRef = (0, _react.useRef)(null);
309
+ var ifChangeRef = (0, _react.useRef)(false); // 数据的总条数
310
+
311
+ var _useState5 = (0, _react.useState)((_children$1$props$dat = (_children$ = children[1]) === null || _children$ === void 0 ? void 0 : (_children$$props = _children$.props) === null || _children$$props === void 0 ? void 0 : (_children$$props$data = _children$$props.data) === null || _children$$props$data === void 0 ? void 0 : _children$$props$data.length) !== null && _children$1$props$dat !== void 0 ? _children$1$props$dat : 0),
312
+ _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
313
+ totalLen = _useState6[0],
314
+ setTotalLen = _useState6[1];
315
+
316
+ (0, _react.useEffect)(function () {
317
+ setTotalLen(state.totalLen);
318
+ }, [state.totalLen]);
319
+ (0, _react.useEffect)(function () {
320
+ return function () {
321
+ vidMap.delete(vid);
322
+ };
323
+ }, [vid]); // 数据变更
324
+
325
+ (0, _react.useEffect)(function () {
326
+ var _children$2, _children$2$props, _children$2$props$dat;
327
+
328
+ ifChangeRef.current = true;
329
+
330
+ if ((0, _lodash.isNumber)((_children$2 = children[1]) === null || _children$2 === void 0 ? void 0 : (_children$2$props = _children$2.props) === null || _children$2$props === void 0 ? void 0 : (_children$2$props$dat = _children$2$props.data) === null || _children$2$props$dat === void 0 ? void 0 : _children$2$props$dat.length)) {
331
+ var _children$1$props$dat2, _children$3, _children$3$props, _children$3$props$dat;
332
+
333
+ dispatch({
334
+ type: 'changeTotalLen',
335
+ totalLen: (_children$1$props$dat2 = (_children$3 = children[1]) === null || _children$3 === void 0 ? void 0 : (_children$3$props = _children$3.props) === null || _children$3$props === void 0 ? void 0 : (_children$3$props$dat = _children$3$props.data) === null || _children$3$props$dat === void 0 ? void 0 : _children$3$props$dat.length) !== null && _children$1$props$dat2 !== void 0 ? _children$1$props$dat2 : 0
336
+ });
337
+ }
338
+ }, [children[1].props.data]); // table总高度
339
+
340
+ var tableHeight = (0, _react.useMemo)(function () {
341
+ var temp = 'auto';
342
+
343
+ if (state.rowHeight && totalLen) {
344
+ temp = state.rowHeight * totalLen;
345
+ }
346
+
347
+ return temp;
348
+ }, [state.rowHeight, totalLen]); // table的scrollY值
349
+
350
+ var _useState7 = (0, _react.useState)(0),
351
+ _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
352
+ tableScrollY = _useState8[0],
353
+ setTableScrollY = _useState8[1]; // tableScrollY 随scrollY / tableHeight 进行变更
354
+
355
+
356
+ (0, _react.useEffect)(function () {
357
+ var temp = 0;
358
+
359
+ if (typeof scrollY === 'string') {
360
+ var _wrapTableRef$current, _wrapTableRef$current2, _wrapTableRef$current3;
361
+
362
+ temp = (_wrapTableRef$current = (_wrapTableRef$current2 = wrapTableRef.current) === null || _wrapTableRef$current2 === void 0 ? void 0 : (_wrapTableRef$current3 = _wrapTableRef$current2.parentNode) === null || _wrapTableRef$current3 === void 0 ? void 0 : _wrapTableRef$current3.offsetHeight) !== null && _wrapTableRef$current !== void 0 ? _wrapTableRef$current : 0;
363
+ } else {
364
+ temp = scrollY;
365
+ } // if (isNumber(tableHeight) && tableHeight < temp) {
366
+ // temp = tableHeight;
367
+ // }
368
+ // 处理tableScrollY <= 0的情况
369
+
370
+
371
+ if (temp <= 0) {
372
+ temp = 0;
373
+ }
374
+
375
+ setTableScrollY(temp);
376
+ }, [scrollY, tableHeight]); // 渲染的条数
377
+
378
+ var renderLen = (0, _react.useMemo)(function () {
379
+ var temp = 1;
380
+
381
+ if (state.rowHeight && totalLen && tableScrollY) {
382
+ if (tableScrollY <= 0) {
383
+ temp = 0;
384
+ } else {
385
+ var tempRenderLen = (tableScrollY / state.rowHeight || 0) + 1 + 20; // temp = tempRenderLen > totalLen ? totalLen : tempRenderLen;
386
+
387
+ temp = tempRenderLen;
388
+ }
389
+ }
390
+
391
+ return temp;
392
+ }, [state.rowHeight, totalLen, tableScrollY]); // 渲染中的第一条
393
+
394
+ var start = state.rowHeight ? state.curScrollTop / state.rowHeight || 0 : 0; // 偏移量
395
+
396
+ var offsetStart = state.rowHeight ? state.curScrollTop % state.rowHeight : 0; // 用来优化向上滚动出现的空白
397
+
398
+ if (state.curScrollTop && state.rowHeight && state.curScrollTop > state.rowHeight) {
399
+ start -= 1;
400
+ offsetStart += state.rowHeight;
401
+ } else {
402
+ start = 0;
403
+ } // 数据变更 操作scrollTop
404
+
405
+
406
+ (0, _react.useEffect)(function () {
407
+ var _wrapTableRef$current4;
408
+
409
+ var scrollNode = (_wrapTableRef$current4 = wrapTableRef.current) === null || _wrapTableRef$current4 === void 0 ? void 0 : _wrapTableRef$current4.parentNode;
410
+
411
+ if (ifChangeRef === null || ifChangeRef === void 0 ? void 0 : ifChangeRef.current) {
412
+ ifChangeRef.current = false;
413
+
414
+ if (resetScrollTopWhenDataChange) {
415
+ // 重置scrollTop
416
+ if (scrollNode) {
417
+ scrollNode.scrollTop = 0;
418
+ }
419
+
420
+ dispatch({
421
+ type: 'reset',
422
+ ifScrollTopClear: true
423
+ });
424
+ } else {
425
+ // 不重置scrollTop 不清空curScrollTop
426
+ dispatch({
427
+ type: 'reset',
428
+ ifScrollTopClear: false
429
+ });
430
+ }
431
+ }
432
+
433
+ if (vidMap.has(vid)) {
434
+ vidMap.set(vid, {
435
+ scrollNode: scrollNode
436
+ });
437
+ }
438
+ }, [totalLen, resetScrollTopWhenDataChange, vid, children]);
439
+ (0, _react.useEffect)(function () {
440
+ var _wrapTableRef$current5;
441
+
442
+ var timer = null;
443
+ var timeout = 100;
444
+ var throttleScroll = (0, _lodash.throttle)(function (e) {
445
+ var _e$target$scrollLeft, _e$target, _e$target$scrollTop, _e$target2, _e$target$scrollHeigh, _e$target3, _e$target$clientHeigh, _e$target4;
446
+
447
+ var scrollLeft = (_e$target$scrollLeft = e === null || e === void 0 ? void 0 : (_e$target = e.target) === null || _e$target === void 0 ? void 0 : _e$target.scrollLeft) !== null && _e$target$scrollLeft !== void 0 ? _e$target$scrollLeft : 0;
448
+ var scrollTop = (_e$target$scrollTop = e === null || e === void 0 ? void 0 : (_e$target2 = e.target) === null || _e$target2 === void 0 ? void 0 : _e$target2.scrollTop) !== null && _e$target$scrollTop !== void 0 ? _e$target$scrollTop : 0;
449
+ var scrollHeight = (_e$target$scrollHeigh = e === null || e === void 0 ? void 0 : (_e$target3 = e.target) === null || _e$target3 === void 0 ? void 0 : _e$target3.scrollHeight) !== null && _e$target$scrollHeigh !== void 0 ? _e$target$scrollHeigh : 0;
450
+ var clientHeight = (_e$target$clientHeigh = e === null || e === void 0 ? void 0 : (_e$target4 = e.target) === null || _e$target4 === void 0 ? void 0 : _e$target4.clientHeight) !== null && _e$target$clientHeigh !== void 0 ? _e$target$clientHeigh : 0; // 到底了 没有滚动条就不会触发reachEnd. 建议设置scrolly高度少点或者数据量多点.
451
+
452
+ if (scrollTop === scrollHeight) {// reachEnd && reachEnd()
453
+ } else if (scrollTop + clientHeight >= scrollHeight) {
454
+ // 有滚动条的情况
455
+ reachEnd && reachEnd();
456
+ }
457
+
458
+ onScroll && onScroll(scrollTop, scrollLeft);
459
+
460
+ if (!timer) {
461
+ dispatch({
462
+ type: 'changeScrolling',
463
+ isScrolling: true
464
+ });
465
+ } else {
466
+ clearTimeout(timer);
467
+ timer = null;
468
+ }
469
+
470
+ timer = setTimeout(function () {
471
+ dispatch({
472
+ type: 'changeScrolling',
473
+ isScrolling: false
474
+ });
475
+ timer = null;
476
+ }, timeout);
477
+ dispatch({
478
+ type: 'changeScrolling',
479
+ isScrolling: true
480
+ });
481
+ dispatch({
482
+ type: 'changeTrs',
483
+ curScrollTop: scrollTop
484
+ });
485
+ dispatch({
486
+ type: 'changeOperate',
487
+ curScrollLeft: scrollLeft
488
+ });
489
+ }, 60);
490
+ var ref = wrapTableRef === null || wrapTableRef === void 0 ? void 0 : (_wrapTableRef$current5 = wrapTableRef.current) === null || _wrapTableRef$current5 === void 0 ? void 0 : _wrapTableRef$current5.parentNode;
491
+
492
+ if (ref) {
493
+ ref.addEventListener('scroll', throttleScroll);
494
+ }
495
+
496
+ return function () {
497
+ ref.removeEventListener('scroll', throttleScroll);
498
+ };
499
+ }, [onScroll, reachEnd]);
500
+ return /*#__PURE__*/_react.default.createElement("div", {
501
+ className: "virtuallist",
502
+ ref: wrapTableRef,
503
+ style: {
504
+ width: '100%',
505
+ position: 'relative',
506
+ height: tableHeight,
507
+ boxSizing: 'border-box',
508
+ paddingTop: state.curScrollTop
509
+ }
510
+ }, /*#__PURE__*/_react.default.createElement(ScrollContext.Provider, {
511
+ value: {
512
+ dispatch: dispatch,
513
+ rowHeight: state.rowHeight,
514
+ start: start,
515
+ offsetStart: offsetStart,
516
+ scrollLeft: state.curScrollLeft,
517
+ renderLen: renderLen,
518
+ totalLen: totalLen,
519
+ vid: vid
520
+ }
521
+ }, /*#__PURE__*/_react.default.createElement("table", (0, _extends2.default)({}, rest, {
522
+ ref: tableRef,
523
+ style: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, restStyle), {}, {
524
+ width: width,
525
+ position: 'relative',
526
+ transform: "translateY(-".concat(offsetStart, "px)"),
527
+ pointerEvents: state.isScrolling ? 'none' : 'initial'
528
+ })
529
+ }), children)));
530
+ }; // ================导出===================
531
+
532
+
533
+ var VList = function VList(props) {
534
+ var _props$vid = props.vid,
535
+ vid = _props$vid === void 0 ? DEFAULT_VID : _props$vid,
536
+ height = props.height,
537
+ onReachEnd = props.onReachEnd,
538
+ onScroll = props.onScroll,
539
+ _props$resetTopWhenDa = props.resetTopWhenDataChange,
540
+ resetTopWhenDataChange = _props$resetTopWhenDa === void 0 ? true : _props$resetTopWhenDa;
541
+ var resetScrollTopWhenDataChange = onReachEnd ? false : resetTopWhenDataChange;
542
+
543
+ if (!vidMap.has(vid)) {
544
+ vidMap.set(vid, {});
545
+ }
546
+
547
+ return {
548
+ table: function table(p) {
549
+ return VTable(p, {
550
+ vid: vid,
551
+ scrollY: height,
552
+ reachEnd: onReachEnd,
553
+ onScroll: onScroll,
554
+ resetScrollTopWhenDataChange: resetScrollTopWhenDataChange
555
+ });
556
+ },
557
+ body: {
558
+ wrapper: VWrapper,
559
+ row: VRow,
560
+ cell: function cell(cellProps) {
561
+ return /*#__PURE__*/_react.default.createElement(VCell, cellProps);
562
+ }
563
+ },
564
+ header: {
565
+ wrapper: HeaderWrapper,
566
+ cell: HeaderCell
567
+ }
568
+ };
569
+ };
570
+
571
+ exports.VList = VList;
572
+
573
+ var scrollTo = function scrollTo(option) {
574
+ var row = option.row,
575
+ y = option.y,
576
+ _option$vid = option.vid,
577
+ vid = _option$vid === void 0 ? DEFAULT_VID : _option$vid;
578
+
579
+ var _vidMap$get = vidMap.get(vid),
580
+ scrollNode = _vidMap$get.scrollNode,
581
+ rowItemHeight = _vidMap$get.rowItemHeight;
582
+
583
+ if (row) {
584
+ if (row - 1 > 0) {
585
+ scrollNode.scrollTop = (row - 1) * (rowItemHeight !== null && rowItemHeight !== void 0 ? rowItemHeight : 0);
586
+ } else {
587
+ scrollNode.scrollTop = 0;
588
+ }
589
+ } else {
590
+ scrollNode.scrollTop = y !== null && y !== void 0 ? y : 0;
591
+ }
592
+ };
593
+
594
+ exports.scrollTo = scrollTo;