linkmore-design 1.1.28 → 1.1.30

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 (266) hide show
  1. package/dist/Form/FormItem/index.d.ts +1 -0
  2. package/dist/LmEditTable/DndContainer.d.ts +6 -3
  3. package/dist/LmEditTable/EditTable.d.ts +16 -5
  4. package/dist/LmEditTable/components/DraggableContainer.d.ts +10 -0
  5. package/dist/LmEditTable/components/QuickOpetate.d.ts +12 -0
  6. package/dist/LmEditTable/components/bottomOpetateComponent.d.ts +13 -0
  7. package/dist/LmEditTable/components/customRenderEmpty.d.ts +2 -0
  8. package/dist/LmEditTable/components/index.d.ts +17 -0
  9. package/dist/LmEditTable/hooks/useForkRef.d.ts +2 -0
  10. package/dist/LmEditTable/rowSort/DndContainerRow.d.ts +10 -0
  11. package/dist/LmEditTable/sortableItem.d.ts +3 -2
  12. package/dist/LmEditTable/util.d.ts +10 -0
  13. package/dist/LmEditTable/virtual/VirtualRow.d.ts +7 -0
  14. package/dist/LmEditTable/virtual/VirtualRow2.d.ts +7 -0
  15. package/dist/LmEditTable/virtual/VirtualTable.d.ts +3 -0
  16. package/dist/LmEditTable/virtual/VirtualWrapper.d.ts +3 -0
  17. package/dist/LmEditTable/virtual/context.d.ts +13 -0
  18. package/dist/LmEditTable/virtual/index.d.ts +4 -0
  19. package/dist/LmTable/common/index.d.ts +10 -0
  20. package/dist/LmTable/components/CalcExpression.d.ts +9 -0
  21. package/dist/LmTable/components/Container/Container.d.ts +20 -0
  22. package/dist/LmTable/components/Container/index.d.ts +2 -0
  23. package/dist/LmTable/components/DndContainer.d.ts +37 -5
  24. package/dist/LmTable/components/HeaderCol.d.ts +1 -0
  25. package/dist/LmTable/components/Item/Item.d.ts +37 -0
  26. package/dist/LmTable/components/Item/components/Action/Action.d.ts +10 -0
  27. package/dist/LmTable/components/Item/components/Action/index.d.ts +2 -0
  28. package/dist/LmTable/components/Item/components/Handle/index.d.ts +4 -0
  29. package/dist/LmTable/components/Item/components/Remove/index.d.ts +2 -0
  30. package/dist/LmTable/components/Item/components/index.d.ts +3 -0
  31. package/dist/LmTable/components/Item/index.d.ts +2 -0
  32. package/dist/LmTable/components/{sortableBoxCol.d.ts → SortableBox.d.ts} +0 -0
  33. package/dist/LmTable/demos/{excelGroup.d.ts → draggable.d.ts} +0 -0
  34. package/dist/LmTable/demos/resize.d.ts +2 -0
  35. package/dist/LmTable/expression.d.ts +2 -1
  36. package/dist/LmTable/hooks/useDndItems.d.ts +13 -0
  37. package/dist/LmTable/hooks/useGroupDataSource.d.ts +1 -2
  38. package/dist/LmTable/hooks/useResizeObserver.d.ts +13 -0
  39. package/dist/LmTable/multipleContainersKeyboardCoordinates.d.ts +3 -0
  40. package/dist/LmTable/testDemos/group.d.ts +2 -0
  41. package/dist/LmTable/util.d.ts +1 -1
  42. package/dist/LmTable/virTual/VirtualRow.d.ts +1 -1
  43. package/dist/index.d.ts +1 -2
  44. package/dist/index.umd.css +367 -0
  45. package/dist/index.umd.js +4362 -52840
  46. package/dist/index.umd.min.css +1 -1
  47. package/dist/index.umd.min.js +23 -47
  48. package/dist/variables.css +129 -6
  49. package/es/CardTable/style/index.css +3 -2
  50. package/es/CardTable/style/variables.css +3 -2
  51. package/es/CustomTableOption/columnsSort.js +41 -19
  52. package/es/CustomTableOption/filterSort.js +14 -6
  53. package/es/CustomTableOption/style/index.css +3 -0
  54. package/es/CustomTableOption/style/variables.css +3 -0
  55. package/es/Dropdown/style/index.css +1 -1
  56. package/es/Dropdown/style/variables.css +1 -1
  57. package/es/Empty/index.js +0 -1
  58. package/es/Form/FormItem/index.d.ts +1 -0
  59. package/es/Form/FormItem/index.js +31 -17
  60. package/es/Form/style/index.css +4 -0
  61. package/es/Form/style/variables.css +4 -0
  62. package/es/InputNumber/index.js +7 -9
  63. package/es/LmEditTable/DndContainer.d.ts +6 -3
  64. package/es/LmEditTable/DndContainer.js +70 -10
  65. package/es/LmEditTable/DragHandle.js +1 -1
  66. package/es/LmEditTable/EditTable.d.ts +16 -5
  67. package/es/LmEditTable/EditTable.js +855 -436
  68. package/es/LmEditTable/components/DraggableContainer.d.ts +10 -0
  69. package/es/LmEditTable/components/DraggableContainer.js +39 -0
  70. package/es/LmEditTable/components/QuickOpetate.d.ts +12 -0
  71. package/es/LmEditTable/components/QuickOpetate.js +82 -0
  72. package/es/LmEditTable/components/bottomOpetateComponent.d.ts +13 -0
  73. package/es/LmEditTable/components/bottomOpetateComponent.js +23 -0
  74. package/es/LmEditTable/components/customRenderEmpty.d.ts +2 -0
  75. package/es/LmEditTable/components/customRenderEmpty.js +20 -0
  76. package/es/LmEditTable/components/index.d.ts +17 -0
  77. package/es/LmEditTable/components/index.js +8 -0
  78. package/es/LmEditTable/hooks/useForkRef.d.ts +2 -0
  79. package/es/LmEditTable/hooks/useForkRef.js +22 -0
  80. package/es/LmEditTable/rowSort/DndContainerRow.d.ts +10 -0
  81. package/es/LmEditTable/rowSort/DndContainerRow.js +83 -0
  82. package/es/LmEditTable/sortableItem.d.ts +3 -2
  83. package/es/LmEditTable/sortableItem.js +16 -4
  84. package/es/LmEditTable/sortableItemCol.js +40 -10
  85. package/es/LmEditTable/style/index.css +105 -1
  86. package/es/LmEditTable/style/variables.css +105 -1
  87. package/es/LmEditTable/util.d.ts +10 -0
  88. package/es/LmEditTable/util.js +162 -9
  89. package/es/LmEditTable/virtual/VirtualRow.d.ts +7 -0
  90. package/es/LmEditTable/virtual/VirtualRow.js +148 -0
  91. package/es/LmEditTable/virtual/VirtualRow2.d.ts +7 -0
  92. package/es/LmEditTable/virtual/VirtualRow2.js +62 -0
  93. package/es/LmEditTable/virtual/VirtualTable.d.ts +3 -0
  94. package/es/LmEditTable/virtual/VirtualTable.js +64 -0
  95. package/es/LmEditTable/virtual/VirtualWrapper.d.ts +3 -0
  96. package/es/LmEditTable/virtual/VirtualWrapper.js +60 -0
  97. package/es/LmEditTable/virtual/context.d.ts +13 -0
  98. package/es/LmEditTable/virtual/context.js +66 -0
  99. package/es/LmEditTable/virtual/index.d.ts +4 -0
  100. package/es/LmEditTable/virtual/index.js +4 -0
  101. package/es/LmTable/Table.js +269 -163
  102. package/es/LmTable/common/index.d.ts +10 -0
  103. package/es/LmTable/common/index.js +38 -0
  104. package/es/LmTable/components/CalcExpression.d.ts +9 -0
  105. package/es/LmTable/components/CalcExpression.js +150 -0
  106. package/es/LmTable/components/Container/Container.css +94 -0
  107. package/es/LmTable/components/Container/Container.d.ts +20 -0
  108. package/es/LmTable/components/Container/Container.js +52 -0
  109. package/es/LmTable/components/Container/index.d.ts +2 -0
  110. package/es/LmTable/components/Container/index.js +1 -0
  111. package/es/LmTable/components/DndContainer.d.ts +37 -5
  112. package/es/LmTable/components/DndContainer.js +704 -24
  113. package/es/LmTable/components/HeaderCol.js +61 -0
  114. package/es/LmTable/components/Item/Item.css +113 -0
  115. package/es/LmTable/components/Item/Item.d.ts +37 -0
  116. package/es/LmTable/components/Item/Item.js +88 -0
  117. package/es/LmTable/components/Item/components/Action/Action.css +41 -0
  118. package/es/LmTable/components/Item/components/Action/Action.d.ts +10 -0
  119. package/es/LmTable/components/Item/components/Action/Action.js +35 -0
  120. package/es/LmTable/components/Item/components/Action/index.d.ts +2 -0
  121. package/es/LmTable/components/Item/components/Action/index.js +1 -0
  122. package/es/LmTable/components/Item/components/Handle/index.d.ts +4 -0
  123. package/es/LmTable/components/Item/components/Handle/index.js +15 -0
  124. package/es/LmTable/components/Item/components/Remove/index.d.ts +2 -0
  125. package/es/LmTable/components/Item/components/Remove/index.js +16 -0
  126. package/es/LmTable/components/Item/components/index.d.ts +3 -0
  127. package/es/LmTable/components/Item/components/index.js +3 -0
  128. package/es/LmTable/components/Item/index.d.ts +2 -0
  129. package/es/LmTable/components/Item/index.js +2 -0
  130. package/es/LmTable/components/{sortableBoxCol.js → SortableBox.js} +0 -0
  131. package/es/LmTable/expression.d.ts +2 -1
  132. package/es/LmTable/expression.js +92 -16
  133. package/es/LmTable/hooks/useDndItems.d.ts +13 -0
  134. package/es/LmTable/hooks/useDndItems.js +234 -0
  135. package/es/LmTable/hooks/useGroupDataSource.js +2 -24
  136. package/es/LmTable/hooks/useResizeObserver.d.ts +13 -0
  137. package/es/LmTable/hooks/useResizeObserver.js +49 -0
  138. package/es/LmTable/multipleContainersKeyboardCoordinates.d.ts +3 -0
  139. package/es/LmTable/multipleContainersKeyboardCoordinates.js +117 -0
  140. package/es/LmTable/style/index.css +13 -2
  141. package/es/LmTable/style/variables.css +13 -2
  142. package/es/LmTable/testDemos/group.js +131 -0
  143. package/es/LmTable/util.js +22 -2
  144. package/es/LmTable/virTual/VirtualRow.d.ts +1 -1
  145. package/es/LmTable/virTual/VirtualRow.js +82 -48
  146. package/es/LmTable/virTual/VirtualTable.js +43 -11
  147. package/es/LmTable/virTual/context.js +14 -2
  148. package/es/LmUpload/fns/index.js +1 -1
  149. package/es/Modal/index.js +10 -3
  150. package/es/Radio/index.js +9 -1
  151. package/es/Switch/index.js +7 -2
  152. package/es/hooks/useEvent/index.js +1 -1
  153. package/es/index.d.ts +1 -2
  154. package/es/locale-provider/index.js +1 -1
  155. package/es/styles/variables.css +129 -6
  156. package/lib/CardTable/style/index.css +3 -2
  157. package/lib/CardTable/style/variables.css +3 -2
  158. package/lib/CustomTableOption/columnsSort.js +48 -23
  159. package/lib/CustomTableOption/filterSort.js +19 -10
  160. package/lib/CustomTableOption/style/index.css +3 -0
  161. package/lib/CustomTableOption/style/variables.css +3 -0
  162. package/lib/Dropdown/style/index.css +1 -1
  163. package/lib/Dropdown/style/variables.css +1 -1
  164. package/lib/Empty/index.js +0 -1
  165. package/lib/Form/FormItem/index.d.ts +1 -0
  166. package/lib/Form/FormItem/index.js +32 -17
  167. package/lib/Form/style/index.css +4 -0
  168. package/lib/Form/style/variables.css +4 -0
  169. package/lib/InputNumber/index.js +9 -9
  170. package/lib/LmEditTable/DndContainer.d.ts +6 -3
  171. package/lib/LmEditTable/DndContainer.js +74 -9
  172. package/lib/LmEditTable/DragHandle.js +1 -1
  173. package/lib/LmEditTable/EditTable.d.ts +16 -5
  174. package/lib/LmEditTable/EditTable.js +853 -433
  175. package/lib/LmEditTable/components/DraggableContainer.d.ts +10 -0
  176. package/lib/LmEditTable/components/DraggableContainer.js +52 -0
  177. package/lib/LmEditTable/components/QuickOpetate.d.ts +12 -0
  178. package/lib/LmEditTable/components/QuickOpetate.js +96 -0
  179. package/lib/LmEditTable/components/bottomOpetateComponent.d.ts +13 -0
  180. package/lib/LmEditTable/components/bottomOpetateComponent.js +34 -0
  181. package/lib/LmEditTable/components/customRenderEmpty.d.ts +2 -0
  182. package/lib/LmEditTable/components/customRenderEmpty.js +32 -0
  183. package/lib/LmEditTable/components/index.d.ts +17 -0
  184. package/lib/LmEditTable/components/index.js +45 -0
  185. package/lib/LmEditTable/hooks/useForkRef.d.ts +2 -0
  186. package/lib/LmEditTable/hooks/useForkRef.js +29 -0
  187. package/lib/LmEditTable/rowSort/DndContainerRow.d.ts +10 -0
  188. package/lib/LmEditTable/rowSort/DndContainerRow.js +100 -0
  189. package/lib/LmEditTable/sortableItem.d.ts +3 -2
  190. package/lib/LmEditTable/sortableItem.js +19 -5
  191. package/lib/LmEditTable/sortableItemCol.js +37 -8
  192. package/lib/LmEditTable/style/index.css +105 -1
  193. package/lib/LmEditTable/style/variables.css +105 -1
  194. package/lib/LmEditTable/util.d.ts +10 -0
  195. package/lib/LmEditTable/util.js +171 -8
  196. package/lib/LmEditTable/virtual/VirtualRow.d.ts +7 -0
  197. package/lib/LmEditTable/virtual/VirtualRow.js +164 -0
  198. package/lib/LmEditTable/virtual/VirtualRow2.d.ts +7 -0
  199. package/lib/LmEditTable/virtual/VirtualRow2.js +78 -0
  200. package/lib/LmEditTable/virtual/VirtualTable.d.ts +3 -0
  201. package/lib/LmEditTable/virtual/VirtualTable.js +81 -0
  202. package/lib/LmEditTable/virtual/VirtualWrapper.d.ts +3 -0
  203. package/lib/LmEditTable/virtual/VirtualWrapper.js +73 -0
  204. package/lib/LmEditTable/virtual/context.d.ts +13 -0
  205. package/lib/LmEditTable/virtual/context.js +76 -0
  206. package/lib/LmEditTable/virtual/index.d.ts +4 -0
  207. package/lib/LmEditTable/virtual/index.js +31 -0
  208. package/lib/LmTable/Table.js +269 -163
  209. package/lib/LmTable/common/index.d.ts +10 -0
  210. package/lib/LmTable/common/index.js +48 -0
  211. package/lib/LmTable/components/CalcExpression.d.ts +9 -0
  212. package/lib/LmTable/components/CalcExpression.js +166 -0
  213. package/lib/LmTable/components/Container/Container.css +94 -0
  214. package/lib/LmTable/components/Container/Container.d.ts +20 -0
  215. package/lib/LmTable/components/Container/Container.js +66 -0
  216. package/lib/LmTable/components/Container/index.d.ts +2 -0
  217. package/lib/LmTable/components/Container/index.js +13 -0
  218. package/lib/LmTable/components/DndContainer.d.ts +37 -5
  219. package/lib/LmTable/components/DndContainer.js +714 -26
  220. package/lib/LmTable/components/HeaderCol.js +61 -0
  221. package/lib/LmTable/components/Item/Item.css +113 -0
  222. package/lib/LmTable/components/Item/Item.d.ts +37 -0
  223. package/lib/LmTable/components/Item/Item.js +104 -0
  224. package/lib/LmTable/components/Item/components/Action/Action.css +41 -0
  225. package/lib/LmTable/components/Item/components/Action/Action.d.ts +10 -0
  226. package/lib/LmTable/components/Item/components/Action/Action.js +50 -0
  227. package/lib/LmTable/components/Item/components/Action/index.d.ts +2 -0
  228. package/lib/LmTable/components/Item/components/Action/index.js +13 -0
  229. package/lib/LmTable/components/Item/components/Handle/index.d.ts +4 -0
  230. package/lib/LmTable/components/Item/components/Handle/index.js +27 -0
  231. package/lib/LmTable/components/Item/components/Remove/index.d.ts +2 -0
  232. package/lib/LmTable/components/Item/components/Remove/index.js +27 -0
  233. package/lib/LmTable/components/Item/components/index.d.ts +3 -0
  234. package/lib/LmTable/components/Item/components/index.js +31 -0
  235. package/lib/LmTable/components/Item/index.d.ts +2 -0
  236. package/lib/LmTable/components/Item/index.js +33 -0
  237. package/lib/LmTable/components/{sortableBoxCol.js → SortableBox.js} +0 -0
  238. package/lib/LmTable/expression.d.ts +2 -1
  239. package/lib/LmTable/expression.js +96 -17
  240. package/lib/LmTable/hooks/useDndItems.d.ts +13 -0
  241. package/lib/LmTable/hooks/useDndItems.js +247 -0
  242. package/lib/LmTable/hooks/useGroupDataSource.js +2 -24
  243. package/lib/LmTable/hooks/useResizeObserver.d.ts +13 -0
  244. package/lib/LmTable/hooks/useResizeObserver.js +61 -0
  245. package/lib/LmTable/multipleContainersKeyboardCoordinates.d.ts +3 -0
  246. package/lib/LmTable/multipleContainersKeyboardCoordinates.js +126 -0
  247. package/lib/LmTable/style/index.css +13 -2
  248. package/lib/LmTable/style/variables.css +13 -2
  249. package/lib/LmTable/testDemos/group.js +131 -0
  250. package/lib/LmTable/util.js +22 -2
  251. package/lib/LmTable/virTual/VirtualRow.d.ts +1 -1
  252. package/lib/LmTable/virTual/VirtualRow.js +81 -48
  253. package/lib/LmTable/virTual/VirtualTable.js +43 -10
  254. package/lib/LmTable/virTual/context.js +14 -2
  255. package/lib/LmUpload/fns/index.js +1 -1
  256. package/lib/Modal/index.js +10 -3
  257. package/lib/Radio/index.js +9 -1
  258. package/lib/Switch/index.js +9 -2
  259. package/lib/hooks/useEvent/index.js +1 -1
  260. package/lib/index.d.ts +1 -2
  261. package/lib/locale-provider/index.js +1 -1
  262. package/lib/styles/variables.css +129 -6
  263. package/package.json +3 -5
  264. package/dist/LmTable/components/sortableItemCol.d.ts +0 -1
  265. package/es/LmTable/components/sortableItemCol.js +0 -56
  266. package/lib/LmTable/components/sortableItemCol.js +0 -56
@@ -1,35 +1,715 @@
1
- import { DndContext, closestCenter, KeyboardSensor, PointerSensor, useSensor, useSensors } from '@dnd-kit/core';
2
- import { restrictToParentElement } from '@dnd-kit/modifiers';
3
- import { sortableKeyboardCoordinates } from '@dnd-kit/sortable';
4
- import React from 'react'; // 可拖拽容器
1
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
+ import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
3
+ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
5
4
 
6
- var DndContainer = function DndContainer(_ref) {
7
- var children = _ref.children,
8
- move = _ref.move;
9
- var sensors = useSensors(useSensor(PointerSensor), useSensor(KeyboardSensor, {
10
- coordinateGetter: sortableKeyboardCoordinates
11
- })); // 拖拽结束
5
+ var __rest = this && this.__rest || function (s, e) {
6
+ var t = {};
12
7
 
13
- var handleDragEnd = function handleDragEnd(event) {
14
- var active = event.active,
15
- over = event.over; // 未移入时触发
8
+ for (var p in s) {
9
+ if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
10
+ }
16
11
 
17
- if (!(over === null || over === void 0 ? void 0 : over.id)) {
18
- return;
19
- } // 移入时触发更新数据
12
+ if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
13
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
14
+ }
15
+ return t;
16
+ };
17
+
18
+ import React, { useCallback, useEffect, useRef, useState } from 'react';
19
+ import { createPortal } from 'react-dom';
20
+ import { closestCenter, pointerWithin, // 返回指针悬停在其上的矩形
21
+ rectIntersection, DndContext, DragOverlay, // DropAnimation,
22
+ getFirstCollision, KeyboardSensor, MouseSensor, TouchSensor, useDroppable, useSensors, useSensor, MeasuringStrategy } from '@dnd-kit/core';
23
+ import { SortableContext, useSortable, arrayMove, defaultAnimateLayoutChanges, horizontalListSortingStrategy } from '@dnd-kit/sortable';
24
+ import { CSS } from '@dnd-kit/utilities';
25
+ import multipleContainersCoordinateGetter from '../multipleContainersKeyboardCoordinates';
26
+ import { Item } from './Item';
27
+ import { Container } from './Container';
28
+ import classNames from 'classnames';
29
+
30
+ var defaultDropAnimationSideEffects = function defaultDropAnimationSideEffects(options) {
31
+ return function (_ref) {
32
+ var active = _ref.active,
33
+ dragOverlay = _ref.dragOverlay;
34
+ var originalStyles = {};
35
+ var styles = options.styles,
36
+ className = options.className;
37
+
38
+ if (styles === null || styles === void 0 ? void 0 : styles.active) {
39
+ for (var _i = 0, _Object$entries = Object.entries(styles.active); _i < _Object$entries.length; _i++) {
40
+ var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2),
41
+ key = _Object$entries$_i[0],
42
+ value = _Object$entries$_i[1];
43
+
44
+ if (value === undefined) {
45
+ continue;
46
+ }
47
+
48
+ originalStyles[key] = active.node.style.getPropertyValue(key);
49
+ active.node.style.setProperty(key, value);
50
+ }
51
+ }
52
+
53
+ if (styles === null || styles === void 0 ? void 0 : styles.dragOverlay) {
54
+ for (var _i2 = 0, _Object$entries2 = Object.entries(styles.dragOverlay); _i2 < _Object$entries2.length; _i2++) {
55
+ var _Object$entries2$_i = _slicedToArray(_Object$entries2[_i2], 2),
56
+ _key = _Object$entries2$_i[0],
57
+ _value = _Object$entries2$_i[1];
58
+
59
+ if (_value === undefined) {
60
+ continue;
61
+ }
62
+
63
+ dragOverlay.node.style.setProperty(_key, _value);
64
+ }
65
+ }
66
+
67
+ if (className === null || className === void 0 ? void 0 : className.active) {
68
+ active.node.classList.add(className.active);
69
+ }
70
+
71
+ if (className === null || className === void 0 ? void 0 : className.dragOverlay) {
72
+ dragOverlay.node.classList.add(className.dragOverlay);
73
+ }
74
+
75
+ return function cleanup() {
76
+ for (var _i3 = 0, _Object$entries3 = Object.entries(originalStyles); _i3 < _Object$entries3.length; _i3++) {
77
+ var _Object$entries3$_i = _slicedToArray(_Object$entries3[_i3], 2),
78
+ _key2 = _Object$entries3$_i[0],
79
+ _value2 = _Object$entries3$_i[1];
80
+
81
+ active.node.style.setProperty(_key2, _value2);
82
+ }
83
+
84
+ if (className === null || className === void 0 ? void 0 : className.active) {
85
+ active.node.classList.remove(className.active);
86
+ }
87
+ };
88
+ };
89
+ };
90
+
91
+ var animateLayoutChanges = function animateLayoutChanges(args) {
92
+ return defaultAnimateLayoutChanges(Object.assign(Object.assign({}, args), {
93
+ wasDragging: true
94
+ }));
95
+ };
96
+
97
+ function DroppableContainer(_a) {
98
+ var _b;
99
+
100
+ var children = _a.children,
101
+ _a$columns = _a.columns,
102
+ columns = _a$columns === void 0 ? 1 : _a$columns,
103
+ disabled = _a.disabled,
104
+ id = _a.id,
105
+ items = _a.items,
106
+ style = _a.style,
107
+ props = __rest(_a, ["children", "columns", "disabled", "id", "items", "style"]);
108
+
109
+ var _useSortable = useSortable({
110
+ id: id,
111
+ data: {
112
+ type: 'container',
113
+ children: items
114
+ },
115
+ animateLayoutChanges: animateLayoutChanges
116
+ }),
117
+ active = _useSortable.active,
118
+ attributes = _useSortable.attributes,
119
+ isDragging = _useSortable.isDragging,
120
+ listeners = _useSortable.listeners,
121
+ over = _useSortable.over,
122
+ setNodeRef = _useSortable.setNodeRef,
123
+ transition = _useSortable.transition,
124
+ transform = _useSortable.transform;
125
+
126
+ var isOverContainer = over ? id === over.id && ((_b = active === null || active === void 0 ? void 0 : active.data.current) === null || _b === void 0 ? void 0 : _b.type) !== 'container' || items.includes(over.id) : false;
127
+ return /*#__PURE__*/React.createElement(Container, Object.assign({
128
+ ref: disabled ? undefined : setNodeRef,
129
+ style: Object.assign(Object.assign({}, style), {
130
+ transition: transition,
131
+ transform: CSS.Translate.toString(transform),
132
+ opacity: isDragging ? 0.5 : undefined
133
+ }),
134
+ hover: isOverContainer,
135
+ handleProps: Object.assign(Object.assign({}, attributes), listeners),
136
+ columns: columns
137
+ }, props), children);
138
+ }
139
+
140
+ var dropAnimation = {
141
+ sideEffects: defaultDropAnimationSideEffects({
142
+ styles: {
143
+ active: {
144
+ opacity: '0.5'
145
+ }
146
+ }
147
+ })
148
+ };
149
+ export var TRASH_ID = 'void'; // const PLACEHOLDER_ID = 'placeholder';
150
+ // const empty: UniqueIdentifier[] = [];
151
+
152
+ export default function DndContainer(_ref2) {
153
+ var _ref2$adjustScale = _ref2.adjustScale,
154
+ adjustScale = _ref2$adjustScale === void 0 ? false : _ref2$adjustScale,
155
+ _ref2$itemCount = _ref2.itemCount,
156
+ itemCount = _ref2$itemCount === void 0 ? 3 : _ref2$itemCount,
157
+ cancelDrop = _ref2.cancelDrop,
158
+ columns = _ref2.columns,
159
+ _ref2$handle = _ref2.handle,
160
+ handle = _ref2$handle === void 0 ? false : _ref2$handle,
161
+ initialItems = _ref2.items,
162
+ containerStyle = _ref2.containerStyle,
163
+ _ref2$coordinateGette = _ref2.coordinateGetter,
164
+ coordinateGetter = _ref2$coordinateGette === void 0 ? multipleContainersCoordinateGetter : _ref2$coordinateGette,
165
+ _ref2$getItemStyles = _ref2.getItemStyles,
166
+ getItemStyles = _ref2$getItemStyles === void 0 ? function () {
167
+ return {};
168
+ } : _ref2$getItemStyles,
169
+ _ref2$wrapperStyle = _ref2.wrapperStyle,
170
+ wrapperStyle = _ref2$wrapperStyle === void 0 ? function () {
171
+ return {};
172
+ } : _ref2$wrapperStyle,
173
+ modifiers = _ref2.modifiers,
174
+ renderItem = _ref2.renderItem,
175
+ _ref2$trashable = _ref2.trashable,
176
+ trashable = _ref2$trashable === void 0 ? false : _ref2$trashable,
177
+ scrollable = _ref2.scrollable,
178
+ children = _ref2.children,
179
+ _ref2$updateItems = _ref2.updateItems,
180
+ updateItems = _ref2$updateItems === void 0 ? function () {
181
+ return {};
182
+ } : _ref2$updateItems,
183
+ _ref2$rowGroupTitle = _ref2.rowGroupTitle,
184
+ rowGroupTitle = _ref2$rowGroupTitle === void 0 ? '行分组' : _ref2$rowGroupTitle,
185
+ _ref2$colGroupTitle = _ref2.colGroupTitle,
186
+ colGroupTitle = _ref2$colGroupTitle === void 0 ? '列分组' : _ref2$colGroupTitle,
187
+ _ref2$filterColumns = _ref2.filterColumns,
188
+ filterColumns = _ref2$filterColumns === void 0 ? [] : _ref2$filterColumns;
189
+
190
+ var _useState = useState(function () {
191
+ return initialItems;
192
+ }),
193
+ _useState2 = _slicedToArray(_useState, 2),
194
+ items = _useState2[0],
195
+ setItems = _useState2[1];
196
+
197
+ useEffect(function () {
198
+ setItems(initialItems);
199
+ }, [initialItems]);
200
+
201
+ var _useState3 = useState(Object.keys(items)),
202
+ _useState4 = _slicedToArray(_useState3, 2),
203
+ containers = _useState4[0],
204
+ setContainers = _useState4[1];
205
+
206
+ var _useState5 = useState(null),
207
+ _useState6 = _slicedToArray(_useState5, 2),
208
+ activeId = _useState6[0],
209
+ setActiveId = _useState6[1];
210
+
211
+ var lastOverId = useRef(null); // 是否移动到新容器
212
+
213
+ var recentlyMovedToNewContainer = useRef(false);
214
+ var isSortingContainer = activeId ? containers.includes(activeId) : false; // 执行顺序: onDragStart,collisionDetection,onDragOver,[...collisionDetection],onDragEnd
215
+
216
+ /**
217
+ * Custom collision detection strategy optimized for multiple containers
218
+ * 针对多个容器优化的自定义碰撞检测策略
219
+ * - First, find any droppable containers intersecting with the pointer.
220
+ * - If there are none, find intersecting containers with the active draggable.
221
+ * - If there are no intersecting containers, return the last matched intersection
222
+ * 1.首先,找到与指针相交的任何可放置容器。2.如果没有,则查找具有活动可拖动对象的相交容器。3.如果没有交叉容器,则返回最后匹配的交叉
223
+ */
224
+
225
+ var collisionDetectionStrategy = useCallback(function (args) {
226
+ var _a;
227
+
228
+ if (activeId && activeId in items) {
229
+ return closestCenter(Object.assign(Object.assign({}, args), {
230
+ droppableContainers: args.droppableContainers.filter(function (container) {
231
+ return container.id in items;
232
+ })
233
+ }));
234
+ } // Start by finding any intersecting droppable
235
+
236
+
237
+ var pointerIntersections = pointerWithin(args);
238
+ var intersections = pointerIntersections.length > 0 ? // If there are droppables intersecting with the pointer, return those
239
+ pointerIntersections : rectIntersection(args);
240
+ var overId = getFirstCollision(intersections, 'id');
20
241
 
242
+ if (overId != null) {
243
+ if (overId === TRASH_ID) {
244
+ // If the intersecting droppable is the trash, return early
245
+ // Remove this if you're not using trashable functionality in your app
246
+ return intersections;
247
+ }
21
248
 
22
- if (active.id !== over.id) {
23
- move(active.id, over.id);
249
+ if (overId in items) {
250
+ var containerItems = items[overId]; // If a container is matched and it contains items (columns 'A', 'B', 'C')
251
+
252
+ if (containerItems.length > 0) {
253
+ // 返回该容器中最近的滴管
254
+ // Return the closest droppable within that container
255
+ overId = (_a = closestCenter(Object.assign(Object.assign({}, args), {
256
+ droppableContainers: args.droppableContainers.filter(function (container) {
257
+ return container.id !== overId && containerItems.includes(container.id);
258
+ })
259
+ }))[0]) === null || _a === void 0 ? void 0 : _a.id;
260
+ }
261
+ }
262
+
263
+ lastOverId.current = overId;
264
+ return [{
265
+ id: overId
266
+ }];
267
+ } // When a draggable item moves to a new container, the layout may shift
268
+ // and the `overId` may become `null`. We manually set the cached `lastOverId`
269
+ // to the id of the draggable item that was moved to the new container, otherwise
270
+ // the previous `overId` will be returned which can cause items to incorrectly shift positions
271
+
272
+
273
+ if (recentlyMovedToNewContainer.current) {
274
+ lastOverId.current = activeId;
275
+ } // If no droppable is matched, return the last match
276
+
277
+
278
+ return lastOverId.current ? [{
279
+ id: lastOverId.current
280
+ }] : [];
281
+ }, [activeId, items]);
282
+
283
+ var _useState7 = useState(null),
284
+ _useState8 = _slicedToArray(_useState7, 2),
285
+ clonedItems = _useState8[0],
286
+ setClonedItems = _useState8[1]; // 传感器
287
+
288
+
289
+ var sensors = useSensors(useSensor(MouseSensor), useSensor(TouchSensor), useSensor(KeyboardSensor, {
290
+ coordinateGetter: coordinateGetter
291
+ }));
292
+
293
+ var findContainer = function findContainer(id) {
294
+ if (id in items) {
295
+ return id;
24
296
  }
297
+
298
+ return Object.keys(items).find(function (key) {
299
+ return items[key].includes(id);
300
+ });
25
301
  };
26
302
 
303
+ var getIndex = function getIndex(id) {
304
+ var container = findContainer(id);
305
+
306
+ if (!container) {
307
+ return -1;
308
+ }
309
+
310
+ var index = items[container].indexOf(id);
311
+ return index;
312
+ };
313
+
314
+ var onDragCancel = function onDragCancel() {
315
+ if (clonedItems) {
316
+ // Reset items to their original state in case items have been
317
+ // Dragged across containers
318
+ setItems(clonedItems);
319
+ }
320
+
321
+ setActiveId(null);
322
+ setClonedItems(null);
323
+ };
324
+
325
+ useEffect(function () {
326
+ var id = requestAnimationFrame(function () {
327
+ recentlyMovedToNewContainer.current = false;
328
+ });
329
+ return function () {
330
+ return cancelAnimationFrame(id);
331
+ };
332
+ }, [items]);
333
+
334
+ var isOk = function isOk(active, over) {
335
+ var _a, _b;
336
+
337
+ var item = filterColumns.find(function (item) {
338
+ return item.title === active.id;
339
+ });
340
+
341
+ if (over.id === 'row' || ((_a = items === null || items === void 0 ? void 0 : items.row) === null || _a === void 0 ? void 0 : _a.includes(over.id))) {
342
+ return item && item.rowGroup;
343
+ } else if (over.id === 'col' || ((_b = items === null || items === void 0 ? void 0 : items.col) === null || _b === void 0 ? void 0 : _b.includes(over.id))) {
344
+ return item && item.colGroup;
345
+ }
346
+
347
+ return true;
348
+ };
349
+
350
+ var topContainers = containers.filter(function (item) {
351
+ return item !== 'tableHeader';
352
+ });
353
+ var tableContainer = containers.filter(function (item) {
354
+ return item === 'tableHeader';
355
+ })[0];
27
356
  return /*#__PURE__*/React.createElement(DndContext, {
28
357
  sensors: sensors,
29
- collisionDetection: closestCenter,
30
- onDragEnd: handleDragEnd,
31
- modifiers: [restrictToParentElement]
32
- }, children);
33
- };
358
+ collisionDetection: collisionDetectionStrategy,
359
+ measuring: {
360
+ droppable: {
361
+ strategy: MeasuringStrategy.Always
362
+ }
363
+ },
364
+ onDragStart: function onDragStart(_ref3) {
365
+ var active = _ref3.active;
366
+ setActiveId(active.id);
367
+ setClonedItems(items);
368
+ },
369
+ onDragOver: function onDragOver(_ref4) {
370
+ var active = _ref4.active,
371
+ over = _ref4.over;
372
+ var overId = over === null || over === void 0 ? void 0 : over.id;
373
+
374
+ if (overId == null || overId === TRASH_ID || active.id in items) {
375
+ return;
376
+ }
377
+
378
+ if (!isOk(active, over)) {
379
+ return;
380
+ }
381
+
382
+ var overContainer = findContainer(overId);
383
+ var activeContainer = findContainer(active.id);
384
+
385
+ if (!overContainer || !activeContainer) {
386
+ return;
387
+ }
388
+
389
+ if (activeContainer !== overContainer) {
390
+ setItems(function (items) {
391
+ var _Object$assign;
392
+
393
+ var activeItems = items[activeContainer];
394
+ var overItems = items[overContainer];
395
+ var overIndex = overItems.indexOf(overId);
396
+ var activeIndex = activeItems.indexOf(active.id);
397
+ var newIndex;
398
+
399
+ if (overId in items) {
400
+ newIndex = overItems.length + 1;
401
+ } else {
402
+ // 当前激活的是否在目标下面
403
+ var isBelowOverItem = over && active.rect.current.translated && active.rect.current.translated.top > over.rect.top + over.rect.height;
404
+ var modifier = isBelowOverItem ? 1 : 0;
405
+ newIndex = overIndex >= 0 ? overIndex + modifier : overItems.length + 1;
406
+ }
407
+
408
+ recentlyMovedToNewContainer.current = true;
409
+ return Object.assign(Object.assign({}, items), (_Object$assign = {}, _defineProperty(_Object$assign, activeContainer, items[activeContainer].filter(function (item) {
410
+ return item !== active.id;
411
+ })), _defineProperty(_Object$assign, overContainer, [].concat(_toConsumableArray(items[overContainer].slice(0, newIndex)), [items[activeContainer][activeIndex]], _toConsumableArray(items[overContainer].slice(newIndex, items[overContainer].length)))), _Object$assign));
412
+ });
413
+ }
414
+ },
415
+ onDragEnd: function onDragEnd(_ref5) {
416
+ var active = _ref5.active,
417
+ over = _ref5.over;
418
+
419
+ // 容器拖拽
420
+ if (active.id in items && (over === null || over === void 0 ? void 0 : over.id)) {
421
+ setContainers(function (containers) {
422
+ var activeIndex = containers.indexOf(active.id);
423
+ var overIndex = containers.indexOf(over.id);
424
+ return arrayMove(containers, activeIndex, overIndex);
425
+ });
426
+ }
427
+
428
+ var activeContainer = findContainer(active.id);
429
+
430
+ if (!activeContainer) {
431
+ setActiveId(null);
432
+ return;
433
+ }
434
+
435
+ var overId = over === null || over === void 0 ? void 0 : over.id;
436
+
437
+ if (overId == null) {
438
+ setActiveId(null);
439
+ return;
440
+ }
441
+
442
+ if (overId === TRASH_ID) {
443
+ console.log('TRASH_ID', overId);
444
+ setItems(function (items) {
445
+ return Object.assign(Object.assign({}, items), _defineProperty({}, activeContainer, items[activeContainer].filter(function (id) {
446
+ return id !== activeId;
447
+ })));
448
+ });
449
+ setActiveId(null);
450
+ return;
451
+ }
452
+
453
+ var overContainer = findContainer(overId);
454
+
455
+ if (overContainer) {
456
+ var activeIndex = items[activeContainer].indexOf(active.id);
457
+ var overIndex = items[overContainer].indexOf(overId);
458
+
459
+ if (activeIndex !== overIndex) {
460
+ var newItems = Object.assign(Object.assign({}, items), _defineProperty({}, overContainer, arrayMove(items[overContainer], activeIndex, overIndex))); // setItems(newItems);
461
+
462
+ updateItems(newItems);
463
+ } else {
464
+ updateItems(items);
465
+ }
466
+ }
467
+
468
+ setActiveId(null);
469
+ },
470
+ cancelDrop: cancelDrop,
471
+ onDragCancel: onDragCancel,
472
+ modifiers: modifiers
473
+ }, /*#__PURE__*/React.createElement("div", {
474
+ style: {
475
+ display: 'flex',
476
+ boxSizing: 'border-box'
477
+ }
478
+ }, topContainers.map(function (containerId) {
479
+ return /*#__PURE__*/React.createElement(DroppableContainer, {
480
+ key: containerId,
481
+ id: containerId,
482
+ label: containerId === 'row' ? rowGroupTitle : colGroupTitle,
483
+ columns: columns,
484
+ items: items[containerId],
485
+ scrollable: true,
486
+ style: containerStyle,
487
+ unstyled: false
488
+ }, /*#__PURE__*/React.createElement(SortableContext, {
489
+ items: items[containerId],
490
+ strategy: horizontalListSortingStrategy
491
+ }, items[containerId].map(function (value, index) {
492
+ return /*#__PURE__*/React.createElement(SortableItem, {
493
+ disabled: isSortingContainer,
494
+ key: value,
495
+ id: value,
496
+ index: index,
497
+ handle: true,
498
+ style: getItemStyles,
499
+ wrapperStyle: wrapperStyle,
500
+ renderItem: renderItem,
501
+ containerId: containerId,
502
+ getIndex: getIndex,
503
+ onRemove: function onRemove() {
504
+ updateItems(items, value);
505
+ }
506
+ });
507
+ })));
508
+ })), /*#__PURE__*/React.createElement("div", {
509
+ className: classNames('dnd_table_container'),
510
+ style: {
511
+ display: 'flex',
512
+ boxSizing: 'border-box',
513
+ justifyContent: 'column'
514
+ }
515
+ }, /*#__PURE__*/React.createElement(DroppableContainer, {
516
+ key: tableContainer,
517
+ id: tableContainer,
518
+ columns: 1,
519
+ items: items[tableContainer],
520
+ scrollable: scrollable,
521
+ style: containerStyle,
522
+ unstyled: false,
523
+ ulClassName: 'ulClassName',
524
+ isNoneBorder: true
525
+ }, /*#__PURE__*/React.createElement(SortableContext, {
526
+ items: items[tableContainer],
527
+ strategy: horizontalListSortingStrategy
528
+ }, /*#__PURE__*/React.createElement("li", {
529
+ style: {
530
+ width: '100%'
531
+ }
532
+ }, children)))), /*#__PURE__*/createPortal( /*#__PURE__*/React.createElement(DragOverlay, {
533
+ adjustScale: adjustScale,
534
+ dropAnimation: dropAnimation
535
+ }, activeId ? containers.includes(activeId) ? renderContainerDragOverlay(activeId) : renderSortableItemDragOverlay(activeId) : null), document.body), trashable && activeId && !containers.includes(activeId) ? /*#__PURE__*/React.createElement(Trash, {
536
+ id: TRASH_ID
537
+ }) : null);
538
+
539
+ function renderSortableItemDragOverlay(id) {
540
+ return /*#__PURE__*/React.createElement(Item, {
541
+ value: id,
542
+ handle: handle,
543
+ style: getItemStyles({
544
+ containerId: findContainer(id),
545
+ overIndex: -1,
546
+ index: getIndex(id),
547
+ value: id,
548
+ isSorting: true,
549
+ isDragging: true,
550
+ isDragOverlay: true
551
+ }),
552
+ color: getColor(id),
553
+ wrapperStyle: wrapperStyle({
554
+ index: 0
555
+ }),
556
+ renderItem: renderItem,
557
+ dragOverlay: true
558
+ });
559
+ }
560
+
561
+ function renderContainerDragOverlay(containerId) {
562
+ return /*#__PURE__*/React.createElement(Container, {
563
+ label: "Column ".concat(containerId),
564
+ columns: columns,
565
+ style: {
566
+ height: '100%'
567
+ },
568
+ shadow: true,
569
+ unstyled: false
570
+ }, items[containerId].map(function (item, index) {
571
+ return /*#__PURE__*/React.createElement(Item, {
572
+ key: item,
573
+ value: item,
574
+ handle: handle,
575
+ style: getItemStyles({
576
+ containerId: containerId,
577
+ overIndex: -1,
578
+ index: getIndex(item),
579
+ value: item,
580
+ isDragging: false,
581
+ isSorting: false,
582
+ isDragOverlay: false
583
+ }),
584
+ color: getColor(item),
585
+ wrapperStyle: wrapperStyle({
586
+ index: index
587
+ }),
588
+ renderItem: renderItem
589
+ });
590
+ }));
591
+ } // function getNextContainerId() {
592
+ // const containerIds = Object.keys(items);
593
+ // const lastContainerId = containerIds[containerIds.length - 1];
594
+ // return String.fromCharCode(lastContainerId.charCodeAt(0) + 1);
595
+ // }
596
+
597
+ }
598
+
599
+ function getColor(id) {
600
+ switch (String(id)[0]) {
601
+ case 'A':
602
+ return '#7193f1';
603
+
604
+ case 'B':
605
+ return '#ffda6c';
606
+
607
+ case 'C':
608
+ return '#00bcd4';
609
+
610
+ case 'D':
611
+ return '#ef769f';
612
+ }
613
+
614
+ return undefined;
615
+ }
616
+
617
+ function Trash(_ref6) {
618
+ var id = _ref6.id;
619
+
620
+ var _useDroppable = useDroppable({
621
+ id: id
622
+ }),
623
+ setNodeRef = _useDroppable.setNodeRef,
624
+ isOver = _useDroppable.isOver;
625
+
626
+ return /*#__PURE__*/React.createElement("div", {
627
+ ref: setNodeRef,
628
+ style: {
629
+ display: 'flex',
630
+ alignItems: 'center',
631
+ justifyContent: 'center',
632
+ position: 'fixed',
633
+ left: '50%',
634
+ marginLeft: -150,
635
+ bottom: 20,
636
+ width: 300,
637
+ height: 60,
638
+ borderRadius: 5,
639
+ border: '1px solid',
640
+ borderColor: isOver ? 'red' : '#DDD'
641
+ }
642
+ }, "Drop here to delete");
643
+ }
644
+
645
+ function SortableItem(_ref7) {
646
+ var disabled = _ref7.disabled,
647
+ id = _ref7.id,
648
+ index = _ref7.index,
649
+ handle = _ref7.handle,
650
+ renderItem = _ref7.renderItem,
651
+ style = _ref7.style,
652
+ containerId = _ref7.containerId,
653
+ getIndex = _ref7.getIndex,
654
+ wrapperStyle = _ref7.wrapperStyle,
655
+ onRemove = _ref7.onRemove;
656
+
657
+ var _useSortable2 = useSortable({
658
+ id: id
659
+ }),
660
+ setNodeRef = _useSortable2.setNodeRef,
661
+ listeners = _useSortable2.listeners,
662
+ isDragging = _useSortable2.isDragging,
663
+ isSorting = _useSortable2.isSorting,
664
+ over = _useSortable2.over,
665
+ overIndex = _useSortable2.overIndex,
666
+ transform = _useSortable2.transform,
667
+ transition = _useSortable2.transition;
668
+
669
+ var mounted = useMountStatus();
670
+ var mountedWhileDragging = isDragging && !mounted;
671
+ return /*#__PURE__*/React.createElement(Item, {
672
+ ref: disabled ? undefined : setNodeRef,
673
+ value: id,
674
+ dragging: isDragging,
675
+ sorting: isSorting,
676
+ handle: handle,
677
+ handleProps: undefined,
678
+ index: index,
679
+ wrapperStyle: wrapperStyle({
680
+ index: index
681
+ }),
682
+ style: style({
683
+ index: index,
684
+ value: id,
685
+ isDragging: isDragging,
686
+ isSorting: isSorting,
687
+ overIndex: over ? getIndex(over.id) : overIndex,
688
+ containerId: containerId
689
+ }),
690
+ color: getColor(id),
691
+ transition: transition,
692
+ transform: transform,
693
+ fadeIn: mountedWhileDragging,
694
+ listeners: listeners,
695
+ renderItem: renderItem,
696
+ onRemove: onRemove
697
+ });
698
+ }
699
+
700
+ function useMountStatus() {
701
+ var _useState9 = useState(false),
702
+ _useState10 = _slicedToArray(_useState9, 2),
703
+ isMounted = _useState10[0],
704
+ setIsMounted = _useState10[1];
34
705
 
35
- export default DndContainer;
706
+ useEffect(function () {
707
+ var timeout = setTimeout(function () {
708
+ return setIsMounted(true);
709
+ }, 500);
710
+ return function () {
711
+ return clearTimeout(timeout);
712
+ };
713
+ }, []);
714
+ return isMounted;
715
+ }