@sheinx/base 3.5.8 → 3.6.0-beta.10

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 (225) hide show
  1. package/cjs/alert/alert.js +1 -1
  2. package/cjs/alert/alert.type.d.ts +1 -1
  3. package/cjs/alert/alert.type.d.ts.map +1 -1
  4. package/cjs/avatar/group.d.ts.map +1 -1
  5. package/cjs/avatar/group.js +8 -5
  6. package/cjs/cascader/cascader.d.ts.map +1 -1
  7. package/cjs/cascader/cascader.js +16 -7
  8. package/cjs/cascader/cascader.type.d.ts +5 -0
  9. package/cjs/cascader/cascader.type.d.ts.map +1 -1
  10. package/cjs/checkbox/checkbox.js +1 -1
  11. package/cjs/checkbox/use-checkbox-inputable.d.ts +1 -1
  12. package/cjs/checkbox/use-checkbox-inputable.d.ts.map +1 -1
  13. package/cjs/checkbox/use-checkbox-inputable.js +2 -1
  14. package/cjs/collapse/collapse-item.d.ts.map +1 -1
  15. package/cjs/collapse/collapse-item.js +21 -3
  16. package/cjs/collapse/collapse.d.ts.map +1 -1
  17. package/cjs/collapse/collapse.js +4 -1
  18. package/cjs/collapse/collapse.type.d.ts +6 -0
  19. package/cjs/collapse/collapse.type.d.ts.map +1 -1
  20. package/cjs/dropdown/dropdown.type.d.ts +1 -1
  21. package/cjs/dropdown/dropdown.type.d.ts.map +1 -1
  22. package/cjs/dropdown/dropdownIn.d.ts.map +1 -1
  23. package/cjs/dropdown/dropdownIn.js +3 -1
  24. package/cjs/form/form-field-context.js +2 -1
  25. package/cjs/form/form-field.d.ts.map +1 -1
  26. package/cjs/form/form-field.js +8 -1
  27. package/cjs/form/form-item.d.ts.map +1 -1
  28. package/cjs/form/form-item.js +24 -7
  29. package/cjs/form/form-item.type.d.ts +3 -0
  30. package/cjs/form/form-item.type.d.ts.map +1 -1
  31. package/cjs/icons/icons.d.ts.map +1 -1
  32. package/cjs/icons/icons.js +110 -103
  33. package/cjs/index.d.ts +1 -1
  34. package/cjs/index.d.ts.map +1 -1
  35. package/cjs/index.js +8 -1
  36. package/cjs/input/simple-input.d.ts +4 -1
  37. package/cjs/input/simple-input.d.ts.map +1 -1
  38. package/cjs/input/simple-input.js +1 -0
  39. package/cjs/input/use-input-common.d.ts.map +1 -1
  40. package/cjs/input/use-input-common.js +4 -1
  41. package/cjs/menu/item.d.ts.map +1 -1
  42. package/cjs/menu/item.js +9 -2
  43. package/cjs/popover/popover.d.ts.map +1 -1
  44. package/cjs/popover/popover.js +3 -1
  45. package/cjs/popover/popover.type.d.ts +9 -0
  46. package/cjs/popover/popover.type.d.ts.map +1 -1
  47. package/cjs/progress/circle.d.ts.map +1 -1
  48. package/cjs/progress/circle.js +0 -5
  49. package/cjs/select/result.d.ts.map +1 -1
  50. package/cjs/select/result.js +7 -4
  51. package/cjs/select/result.type.d.ts +1 -0
  52. package/cjs/select/result.type.d.ts.map +1 -1
  53. package/cjs/select/select.d.ts.map +1 -1
  54. package/cjs/select/select.js +2 -0
  55. package/cjs/spin/spin.d.ts.map +1 -1
  56. package/cjs/spin/spin.js +9 -9
  57. package/cjs/table/table.d.ts.map +1 -1
  58. package/cjs/table/table.js +3 -1
  59. package/cjs/table/table.type.d.ts +6 -0
  60. package/cjs/table/table.type.d.ts.map +1 -1
  61. package/cjs/tag/tag-input.d.ts.map +1 -1
  62. package/cjs/tag/tag-input.js +1 -1
  63. package/cjs/tag/tag.d.ts.map +1 -1
  64. package/cjs/tag/tag.js +1 -0
  65. package/cjs/transfer/transfer-list.d.ts.map +1 -1
  66. package/cjs/transfer/transfer-list.js +24 -2
  67. package/cjs/transfer/transfer.js +2 -2
  68. package/cjs/tree/tree-checkbox.d.ts.map +1 -1
  69. package/cjs/tree/tree-checkbox.js +7 -2
  70. package/cjs/tree/tree-checkbox.type.d.ts +2 -0
  71. package/cjs/tree/tree-checkbox.type.d.ts.map +1 -1
  72. package/cjs/tree/tree-content.type.d.ts +28 -0
  73. package/cjs/tree/tree-content.type.d.ts.map +1 -1
  74. package/cjs/tree/tree-list.js +3 -1
  75. package/cjs/tree/tree-list.type.d.ts +2 -1
  76. package/cjs/tree/tree-list.type.d.ts.map +1 -1
  77. package/cjs/tree/tree-node.d.ts +2 -2
  78. package/cjs/tree/tree-node.d.ts.map +1 -1
  79. package/cjs/tree/tree-node.js +11 -272
  80. package/cjs/tree/tree-node.type.d.ts +32 -2
  81. package/cjs/tree/tree-node.type.d.ts.map +1 -1
  82. package/cjs/tree/tree-root.d.ts.map +1 -1
  83. package/cjs/tree/tree-root.js +5 -2
  84. package/cjs/tree/tree-root.type.d.ts +2 -1
  85. package/cjs/tree/tree-root.type.d.ts.map +1 -1
  86. package/cjs/tree/tree-simple-node.d.ts +6 -0
  87. package/cjs/tree/tree-simple-node.d.ts.map +1 -0
  88. package/cjs/tree/tree-simple-node.js +288 -0
  89. package/cjs/tree/tree-virtual-content.d.ts +6 -0
  90. package/cjs/tree/tree-virtual-content.d.ts.map +1 -0
  91. package/cjs/tree/tree-virtual-content.js +202 -0
  92. package/cjs/tree/tree-virtual-node.d.ts +6 -0
  93. package/cjs/tree/tree-virtual-node.d.ts.map +1 -0
  94. package/cjs/tree/tree-virtual-node.js +123 -0
  95. package/cjs/tree/tree-virtual.d.ts +6 -0
  96. package/cjs/tree/tree-virtual.d.ts.map +1 -0
  97. package/cjs/tree/tree-virtual.js +91 -0
  98. package/cjs/tree/tree.d.ts.map +1 -1
  99. package/cjs/tree/tree.js +81 -42
  100. package/cjs/tree/tree.type.d.ts +37 -1
  101. package/cjs/tree/tree.type.d.ts.map +1 -1
  102. package/cjs/tree-select/tree-select.d.ts.map +1 -1
  103. package/cjs/tree-select/tree-select.js +60 -23
  104. package/cjs/tree-select/tree-select.type.d.ts +11 -0
  105. package/cjs/tree-select/tree-select.type.d.ts.map +1 -1
  106. package/cjs/upload/result.js +1 -1
  107. package/cjs/upload/upload.d.ts.map +1 -1
  108. package/cjs/upload/upload.js +1 -0
  109. package/cjs/virtual-scroll/virtual-scroll-list.d.ts.map +1 -1
  110. package/cjs/virtual-scroll/virtual-scroll-list.js +4 -0
  111. package/cjs/virtual-scroll/virtual-scroll-list.type.d.ts +1 -0
  112. package/cjs/virtual-scroll/virtual-scroll-list.type.d.ts.map +1 -1
  113. package/esm/alert/alert.js +1 -1
  114. package/esm/alert/alert.type.d.ts +1 -1
  115. package/esm/alert/alert.type.d.ts.map +1 -1
  116. package/esm/avatar/group.d.ts.map +1 -1
  117. package/esm/avatar/group.js +8 -5
  118. package/esm/cascader/cascader.d.ts.map +1 -1
  119. package/esm/cascader/cascader.js +16 -7
  120. package/esm/cascader/cascader.type.d.ts +5 -0
  121. package/esm/cascader/cascader.type.d.ts.map +1 -1
  122. package/esm/checkbox/checkbox.js +1 -1
  123. package/esm/checkbox/use-checkbox-inputable.d.ts +1 -1
  124. package/esm/checkbox/use-checkbox-inputable.d.ts.map +1 -1
  125. package/esm/checkbox/use-checkbox-inputable.js +2 -1
  126. package/esm/collapse/collapse-item.d.ts.map +1 -1
  127. package/esm/collapse/collapse-item.js +21 -3
  128. package/esm/collapse/collapse.d.ts.map +1 -1
  129. package/esm/collapse/collapse.js +4 -1
  130. package/esm/collapse/collapse.type.d.ts +6 -0
  131. package/esm/collapse/collapse.type.d.ts.map +1 -1
  132. package/esm/dropdown/dropdown.type.d.ts +1 -1
  133. package/esm/dropdown/dropdown.type.d.ts.map +1 -1
  134. package/esm/dropdown/dropdownIn.d.ts.map +1 -1
  135. package/esm/dropdown/dropdownIn.js +3 -1
  136. package/esm/form/form-field-context.js +2 -1
  137. package/esm/form/form-field.d.ts.map +1 -1
  138. package/esm/form/form-field.js +9 -2
  139. package/esm/form/form-item.d.ts.map +1 -1
  140. package/esm/form/form-item.js +24 -7
  141. package/esm/form/form-item.type.d.ts +3 -0
  142. package/esm/form/form-item.type.d.ts.map +1 -1
  143. package/esm/icons/icons.d.ts.map +1 -1
  144. package/esm/icons/icons.js +110 -103
  145. package/esm/index.d.ts +1 -1
  146. package/esm/index.d.ts.map +1 -1
  147. package/esm/index.js +1 -1
  148. package/esm/input/simple-input.d.ts +4 -1
  149. package/esm/input/simple-input.d.ts.map +1 -1
  150. package/esm/input/simple-input.js +1 -0
  151. package/esm/input/use-input-common.d.ts.map +1 -1
  152. package/esm/input/use-input-common.js +4 -1
  153. package/esm/menu/item.d.ts.map +1 -1
  154. package/esm/menu/item.js +9 -2
  155. package/esm/popover/popover.d.ts.map +1 -1
  156. package/esm/popover/popover.js +3 -1
  157. package/esm/popover/popover.type.d.ts +9 -0
  158. package/esm/popover/popover.type.d.ts.map +1 -1
  159. package/esm/progress/circle.d.ts.map +1 -1
  160. package/esm/progress/circle.js +0 -5
  161. package/esm/select/result.d.ts.map +1 -1
  162. package/esm/select/result.js +7 -4
  163. package/esm/select/result.type.d.ts +1 -0
  164. package/esm/select/result.type.d.ts.map +1 -1
  165. package/esm/select/select.d.ts.map +1 -1
  166. package/esm/select/select.js +2 -0
  167. package/esm/spin/spin.d.ts.map +1 -1
  168. package/esm/spin/spin.js +9 -9
  169. package/esm/table/table.d.ts.map +1 -1
  170. package/esm/table/table.js +3 -1
  171. package/esm/table/table.type.d.ts +6 -0
  172. package/esm/table/table.type.d.ts.map +1 -1
  173. package/esm/tag/tag-input.d.ts.map +1 -1
  174. package/esm/tag/tag-input.js +1 -1
  175. package/esm/tag/tag.d.ts.map +1 -1
  176. package/esm/tag/tag.js +1 -0
  177. package/esm/transfer/transfer-list.d.ts.map +1 -1
  178. package/esm/transfer/transfer-list.js +24 -2
  179. package/esm/transfer/transfer.js +2 -2
  180. package/esm/tree/tree-checkbox.d.ts.map +1 -1
  181. package/esm/tree/tree-checkbox.js +7 -2
  182. package/esm/tree/tree-checkbox.type.d.ts +2 -0
  183. package/esm/tree/tree-checkbox.type.d.ts.map +1 -1
  184. package/esm/tree/tree-content.type.d.ts +28 -0
  185. package/esm/tree/tree-content.type.d.ts.map +1 -1
  186. package/esm/tree/tree-list.js +3 -1
  187. package/esm/tree/tree-list.type.d.ts +2 -1
  188. package/esm/tree/tree-list.type.d.ts.map +1 -1
  189. package/esm/tree/tree-node.d.ts +2 -2
  190. package/esm/tree/tree-node.d.ts.map +1 -1
  191. package/esm/tree/tree-node.js +11 -273
  192. package/esm/tree/tree-node.type.d.ts +32 -2
  193. package/esm/tree/tree-node.type.d.ts.map +1 -1
  194. package/esm/tree/tree-root.d.ts.map +1 -1
  195. package/esm/tree/tree-root.js +5 -2
  196. package/esm/tree/tree-root.type.d.ts +2 -1
  197. package/esm/tree/tree-root.type.d.ts.map +1 -1
  198. package/esm/tree/tree-simple-node.d.ts +6 -0
  199. package/esm/tree/tree-simple-node.d.ts.map +1 -0
  200. package/esm/tree/tree-simple-node.js +282 -0
  201. package/esm/tree/tree-virtual-content.d.ts +6 -0
  202. package/esm/tree/tree-virtual-content.d.ts.map +1 -0
  203. package/esm/tree/tree-virtual-content.js +196 -0
  204. package/esm/tree/tree-virtual-node.d.ts +6 -0
  205. package/esm/tree/tree-virtual-node.d.ts.map +1 -0
  206. package/esm/tree/tree-virtual-node.js +116 -0
  207. package/esm/tree/tree-virtual.d.ts +6 -0
  208. package/esm/tree/tree-virtual.d.ts.map +1 -0
  209. package/esm/tree/tree-virtual.js +84 -0
  210. package/esm/tree/tree.d.ts.map +1 -1
  211. package/esm/tree/tree.js +81 -42
  212. package/esm/tree/tree.type.d.ts +37 -1
  213. package/esm/tree/tree.type.d.ts.map +1 -1
  214. package/esm/tree-select/tree-select.d.ts.map +1 -1
  215. package/esm/tree-select/tree-select.js +60 -23
  216. package/esm/tree-select/tree-select.type.d.ts +11 -0
  217. package/esm/tree-select/tree-select.type.d.ts.map +1 -1
  218. package/esm/upload/result.js +1 -1
  219. package/esm/upload/upload.d.ts.map +1 -1
  220. package/esm/upload/upload.js +1 -0
  221. package/esm/virtual-scroll/virtual-scroll-list.d.ts.map +1 -1
  222. package/esm/virtual-scroll/virtual-scroll-list.js +4 -0
  223. package/esm/virtual-scroll/virtual-scroll-list.type.d.ts +1 -0
  224. package/esm/virtual-scroll/virtual-scroll-list.type.d.ts.map +1 -1
  225. package/package.json +2 -2
@@ -0,0 +1,282 @@
1
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
5
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
6
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
7
+ import { useRef, createElement } from 'react';
8
+ import classNames from 'classnames';
9
+ import TreeContent from "./tree-content";
10
+ import { useTreeContext } from "./tree-context";
11
+ import { useTreeNode, util } from '@sheinx/hooks';
12
+ import { useConfig } from "../config";
13
+ import { jsx as _jsx } from "react/jsx-runtime";
14
+ import { jsxs as _jsxs } from "react/jsx-runtime";
15
+ var placeElement = null;
16
+ var innerPlaceElement = null;
17
+ var placeInfo = {
18
+ start: '',
19
+ target: ''
20
+ };
21
+ var dragLock = false;
22
+ var initPlaceElement = function initPlaceElement() {
23
+ if (util.isBrowser() && !(placeElement && innerPlaceElement)) {
24
+ placeElement = document.createElement('div');
25
+ innerPlaceElement = document.createElement('div');
26
+ placeElement.appendChild(innerPlaceElement);
27
+ }
28
+ };
29
+ initPlaceElement();
30
+ var Node = function Node(props) {
31
+ var jssStyle = props.jssStyle,
32
+ id = props.id,
33
+ data = props.data,
34
+ line = props.line,
35
+ isControlled = props.isControlled,
36
+ index = props.index,
37
+ renderItem = props.renderItem,
38
+ parentClickExpand = props.parentClickExpand,
39
+ doubleClickExpand = props.doubleClickExpand,
40
+ iconClass = props.iconClass,
41
+ leafClass = props.leafClass,
42
+ nodeClass = props.nodeClass,
43
+ contentClass = props.contentClass,
44
+ expandIcons = props.expandIcons,
45
+ keygen = props.keygen,
46
+ mode = props.mode,
47
+ childrenKey = props.childrenKey,
48
+ inlineNode = props.inlineNode,
49
+ highlight = props.highlight,
50
+ dragSibling = props.dragSibling,
51
+ dragHoverExpand = props.dragHoverExpand,
52
+ dragImageSelector = props.dragImageSelector,
53
+ dragImageStyle = props.dragImageStyle,
54
+ childrenClass = props.childrenClass,
55
+ bindNode = props.bindNode,
56
+ loader = props.loader,
57
+ onChange = props.onChange,
58
+ onNodeClick = props.onNodeClick,
59
+ onToggle = props.onToggle,
60
+ onDrop = props.onDrop,
61
+ onDragOver = props.onDragOver,
62
+ onDragLeave = props.onDragLeave,
63
+ onDragStart = props.onDragStart,
64
+ onDragEnd = props.onDragEnd,
65
+ List = props.listComponent;
66
+ initPlaceElement();
67
+ var config = useConfig();
68
+ var element = useRef(null);
69
+ var content = useRef(null);
70
+ var dragImage = useRef(null);
71
+ var _useTreeContext = useTreeContext(),
72
+ getPath = _useTreeContext.getPath;
73
+ var _useTreeNode = useTreeNode({
74
+ id: id,
75
+ data: data,
76
+ bindNode: bindNode,
77
+ loader: loader,
78
+ onToggle: onToggle,
79
+ childrenKey: childrenKey,
80
+ element: element,
81
+ content: content.current,
82
+ dragImageSelector: dragImageSelector,
83
+ dragImageStyle: dragImageStyle
84
+ }),
85
+ active = _useTreeNode.active,
86
+ isLeaf = _useTreeNode.isLeaf,
87
+ fetching = _useTreeNode.fetching,
88
+ setFetching = _useTreeNode.setFetching,
89
+ expanded = _useTreeNode.expanded,
90
+ setExpanded = _useTreeNode.setExpanded;
91
+ var children = data[childrenKey];
92
+ var hasChildren = children && children.length > 0;
93
+ var contentStyle = (jssStyle === null || jssStyle === void 0 ? void 0 : jssStyle.tree()) || {};
94
+ var rootClass = classNames(contentStyle.node, isLeaf() && (util.isString(leafClass) ? leafClass : util.isFunc(leafClass) && leafClass(data)), util.isString(nodeClass) && nodeClass, util.isFunc(nodeClass) && nodeClass(data), _defineProperty({}, contentStyle.leaf, !hasChildren));
95
+ if (placeElement) {
96
+ placeElement.className = contentStyle.placement;
97
+ }
98
+ var handleFetch = function handleFetch() {};
99
+ var handleToggle = function handleToggle() {
100
+ var nextExpanded = !expanded;
101
+ setExpanded(nextExpanded);
102
+ if (onToggle) onToggle(id, nextExpanded);
103
+ };
104
+ var handleDragOver = function handleDragOver(e) {
105
+ if (!dragLock) return;
106
+ var current = getPath(placeInfo.start);
107
+ var target = getPath(id);
108
+ if (!current || !target) return;
109
+ var currentPathStr = current.path.join('/');
110
+ var targetPathStr = target.path.join('/');
111
+ if (dragSibling && targetPathStr !== currentPathStr) return;
112
+ if (dragHoverExpand && !expanded) {
113
+ onToggle === null || onToggle === void 0 || onToggle(id);
114
+ }
115
+ var hover = element.current;
116
+ var rect = hover.getBoundingClientRect();
117
+ var clientHeight = e.target.getBoundingClientRect().height || 20;
118
+ var hoverMiddleY = (rect.bottom - rect.top) / 2;
119
+ var hoverClientY = e.clientY - rect.top;
120
+ var position = index;
121
+ if (innerPlaceElement) {
122
+ innerPlaceElement.style.height = '0px';
123
+ }
124
+ if (placeElement && innerPlaceElement) {
125
+ if (hoverClientY < hoverMiddleY + clientHeight * 0.2) {
126
+ hover.parentNode.insertBefore(placeElement, hover);
127
+ if (hoverClientY > clientHeight * 0.3) {
128
+ if (!dragSibling) {
129
+ position = -1;
130
+ innerPlaceElement.style.height = "".concat(rect.height, "px");
131
+ } else {
132
+ position += 1;
133
+ hover.parentNode.insertBefore(placeElement, hover.nextElementSibling);
134
+ }
135
+ }
136
+ } else {
137
+ position += 1;
138
+ hover.parentNode.insertBefore(placeElement, hover.nextElementSibling);
139
+ }
140
+ placeInfo.target = id;
141
+ // @ts-ignore
142
+ placeElement.setAttribute('data-position', position);
143
+ }
144
+ if (onDragOver) onDragOver(e, data);
145
+ };
146
+ var handleDragStart = function handleDragStart(e) {
147
+ if (dragLock) return;
148
+ dragLock = true;
149
+ e.dataTransfer.effectAllowed = 'copyMove';
150
+ e.dataTransfer.setData('text/plain', id);
151
+ placeInfo.start = id;
152
+ var el = document.querySelector(dragImageSelector(data));
153
+ var dragEl = el || content.current;
154
+ var rect = dragEl.getBoundingClientRect();
155
+ dragImage.current = dragEl.cloneNode(true);
156
+ document.body.appendChild(dragImage.current);
157
+ dragImage.current.style.position = 'absolute';
158
+ dragImage.current.style.top = '-1000px';
159
+ dragImage.current.style.left = '-1000px';
160
+ dragImage.current.style.width = "".concat(rect.width, "px");
161
+ dragImage.current.style.background = '#fff';
162
+ dragImage.current.style.boxShadow = '0 0 5px 0 rgba(0, 0, 0, 0.1)';
163
+ if (dragImageStyle) {
164
+ Object.keys(dragImageStyle).forEach(function (k) {
165
+ var _dragImage$current;
166
+ var styleKey = k;
167
+ ((_dragImage$current = dragImage.current) === null || _dragImage$current === void 0 ? void 0 : _dragImage$current.style)[styleKey] = dragImageStyle[styleKey];
168
+ });
169
+ }
170
+ e.dataTransfer.setDragImage(dragImage.current, e.clientX - rect.left, e.clientY - rect.top);
171
+ setTimeout(function () {
172
+ element.current.style.display = 'none';
173
+ }, 0);
174
+ if (onDragStart) onDragStart(e, data);
175
+ };
176
+ var handleDragEnd = function handleDragEnd(e) {
177
+ element.current.style.display = '';
178
+ if (!dragLock) return;
179
+ dragLock = false;
180
+ if (!placeElement || !placeElement.parentNode) return;
181
+ if (dragImage.current && dragImage.current.parentNode) dragImage.current.parentNode.removeChild(dragImage.current);
182
+ var position = parseInt(placeElement.getAttribute('data-position') || '', 10);
183
+ var target = placeInfo.target;
184
+ placeElement.parentNode.removeChild(placeElement);
185
+ if (onDrop && (target !== id || index !== position)) {
186
+ onDrop(id, target, position);
187
+ }
188
+ if (onDragEnd) onDragEnd(e, data);
189
+ };
190
+ var handleDragLeave = function handleDragLeave(e) {
191
+ if (onDragLeave) onDragLeave(e, data);
192
+ };
193
+ var getChildrenListProps = function getChildrenListProps() {
194
+ return {
195
+ id: id,
196
+ keygen: keygen,
197
+ jssStyle: jssStyle,
198
+ renderItem: renderItem,
199
+ expandIcons: expandIcons,
200
+ iconClass: iconClass,
201
+ leafClass: leafClass,
202
+ nodeClass: nodeClass,
203
+ isControlled: isControlled,
204
+ contentClass: contentClass,
205
+ parentClickExpand: parentClickExpand,
206
+ doubleClickExpand: doubleClickExpand,
207
+ expanded: expanded,
208
+ line: line,
209
+ data: children,
210
+ mode: mode,
211
+ index: index,
212
+ loader: loader,
213
+ inlineNode: inlineNode,
214
+ highlight: highlight,
215
+ onDrop: onDrop,
216
+ onChange: onChange,
217
+ onToggle: onToggle,
218
+ onNodeClick: onNodeClick,
219
+ onDragOver: onDragOver,
220
+ onDragLeave: onDragLeave,
221
+ onDragStart: onDragStart,
222
+ onDragEnd: onDragEnd,
223
+ bindNode: bindNode,
224
+ childrenClassName: util.isFunc(childrenClass) ? childrenClass === null || childrenClass === void 0 ? void 0 : childrenClass(data) : childrenClass,
225
+ childrenKey: childrenKey,
226
+ childrenClass: childrenClass,
227
+ dragSibling: dragSibling,
228
+ dragHoverExpand: dragHoverExpand,
229
+ dragImageStyle: dragImageStyle,
230
+ dragImageSelector: dragImageSelector
231
+ };
232
+ };
233
+ var getDropProps = function getDropProps() {
234
+ var dropEvents = {};
235
+ if (onDrop) {
236
+ Object.assign(dropEvents, {
237
+ draggable: true,
238
+ onDragStart: handleDragStart,
239
+ onDragEnd: handleDragEnd,
240
+ onDragLeave: handleDragLeave
241
+ });
242
+ }
243
+ return dropEvents;
244
+ };
245
+ return /*#__PURE__*/_jsxs("div", _objectSpread(_objectSpread({}, getDropProps()), {}, {
246
+ ref: element,
247
+ className: rootClass,
248
+ dir: config.direction,
249
+ children: [/*#__PURE__*/_jsx(TreeContent, {
250
+ jssStyle: jssStyle,
251
+ isControlled: isControlled,
252
+ id: id,
253
+ line: line,
254
+ data: data,
255
+ mode: mode,
256
+ contentClass: contentClass,
257
+ active: active,
258
+ fetching: fetching,
259
+ expanded: expanded,
260
+ keygen: keygen,
261
+ bindNode: bindNode,
262
+ bindContent: content,
263
+ childrenKey: childrenKey,
264
+ renderItem: renderItem,
265
+ iconClass: iconClass,
266
+ leafClass: leafClass,
267
+ expandIcons: expandIcons,
268
+ parentClickExpand: parentClickExpand,
269
+ doubleClickExpand: doubleClickExpand,
270
+ loader: loader,
271
+ inlineNode: inlineNode,
272
+ highlight: highlight,
273
+ setFetching: setFetching,
274
+ onChange: onChange,
275
+ onFetch: handleFetch,
276
+ onNodeClick: onNodeClick,
277
+ onDragOver: handleDragOver,
278
+ onToggle: handleToggle
279
+ }), hasChildren && /*#__PURE__*/createElement(List, getChildrenListProps())]
280
+ }));
281
+ };
282
+ export default Node;
@@ -0,0 +1,6 @@
1
+ /// <reference types="react" />
2
+ import { KeygenResult } from '@sheinx/hooks';
3
+ import { TreeVirtualContextProps } from './tree-content.type';
4
+ declare const NodeVirtualContent: <DataItem, Value extends KeygenResult[]>(props: TreeVirtualContextProps<DataItem, Value>) => JSX.Element;
5
+ export default NodeVirtualContent;
6
+ //# sourceMappingURL=tree-virtual-content.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tree-virtual-content.d.ts","sourceRoot":"","sources":["tree-virtual-content.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,YAAY,EAAmB,MAAM,eAAe,CAAC;AAE9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAO9D,QAAA,MAAM,kBAAkB,0GA6NvB,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
@@ -0,0 +1,196 @@
1
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
5
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
6
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
7
+ import { useRef } from 'react';
8
+ import classNames from 'classnames';
9
+ import { util, useRender } from '@sheinx/hooks';
10
+ import Checkbox from "./tree-checkbox";
11
+ import { useTreeContext } from "./tree-context";
12
+ import Icons from "../icons";
13
+ import Spin from "../spin";
14
+ import { useConfig } from "../config";
15
+ import { jsx as _jsx } from "react/jsx-runtime";
16
+ import { jsxs as _jsxs } from "react/jsx-runtime";
17
+ var NodeVirtualContent = function NodeVirtualContent(props) {
18
+ var jssStyle = props.jssStyle,
19
+ id = props.id,
20
+ level = props.level,
21
+ active = props.active,
22
+ data = props.data,
23
+ line = props.line,
24
+ iconClass = props.iconClass,
25
+ contentClassProp = props.contentClass,
26
+ expandIcons = props.expandIcons,
27
+ renderItem = props.renderItem,
28
+ expanded = props.expanded,
29
+ fetching = props.fetching,
30
+ inlineNode = props.inlineNode,
31
+ childrenKey = props.childrenKey,
32
+ parentClickExpand = props.parentClickExpand,
33
+ doubleClickExpand = props.doubleClickExpand,
34
+ bindContent = props.bindContent,
35
+ highlight = props.highlight,
36
+ setFetching = props.setFetching,
37
+ loader = props.loader,
38
+ onChange = props.onChange,
39
+ onToggle = props.onToggle,
40
+ onNodeClick = props.onNodeClick;
41
+ var forceUpdate = useRender();
42
+ var _useTreeContext = useTreeContext(),
43
+ isDisabled = _useTreeContext.isDisabled,
44
+ bindUpdate = _useTreeContext.bindUpdate;
45
+ var clickLock = useRef(false);
46
+ var config = useConfig();
47
+ var disabled = isDisabled(id);
48
+ bindUpdate(id, forceUpdate);
49
+ var contentStyle = (jssStyle === null || jssStyle === void 0 ? void 0 : jssStyle.tree()) || {};
50
+ var rootClass = classNames(contentStyle.contentWrapper, _defineProperty(_defineProperty(_defineProperty({}, contentStyle.childnode, data[childrenKey] && data[childrenKey].length > 0), contentStyle.inlineContent, inlineNode), contentStyle.contentDisabled, disabled));
51
+ var contentClass = classNames(contentStyle.content, util.isString(contentClassProp) && contentClassProp, util.isFunc(contentClassProp) && contentClassProp(data));
52
+ // const textClass = classNames(contentStyle.text, disabled ? contentStyle.textDisabled : '');
53
+ var textClass = classNames(contentStyle.text);
54
+ var hasExpandIcons = expandIcons !== undefined;
55
+ var children = data[childrenKey];
56
+ var hasChildren = children && children.length > 0;
57
+ var contentDataProps = function contentDataProps() {
58
+ var dataProps = {};
59
+ if (highlight) {
60
+ dataProps['data-active'] = active;
61
+ }
62
+ // if (disabled) {
63
+ // dataProps['data-disabled'] = disabled;
64
+ // }
65
+ return dataProps;
66
+ };
67
+ var handleIndicatorClick = function handleIndicatorClick() {
68
+ onToggle === null || onToggle === void 0 || onToggle(id);
69
+ if (data[childrenKey] !== undefined) return;
70
+ if (loader) {
71
+ setFetching(true);
72
+ var result = loader(id, data);
73
+ if (util.isPromise(result)) {
74
+ result.then(function () {
75
+ setFetching(false);
76
+ });
77
+ }
78
+ }
79
+ };
80
+ var handleNodeClick = function handleNodeClick() {
81
+ if (parentClickExpand && hasChildren) {
82
+ if (clickLock.current) {
83
+ clickLock.current = false;
84
+ return;
85
+ }
86
+ handleIndicatorClick();
87
+ } else {
88
+ onNodeClick(data, id);
89
+ }
90
+ };
91
+ var handleClick = function handleClick() {
92
+ clickLock.current = true;
93
+ };
94
+ var handleNodeExpand = function handleNodeExpand() {
95
+ if (!doubleClickExpand) return;
96
+ if (hasChildren) handleIndicatorClick();
97
+ };
98
+ var renderLoading = function renderLoading() {
99
+ return /*#__PURE__*/_jsx("span", {
100
+ style: {
101
+ left: (level - 1) * 24
102
+ },
103
+ className: contentStyle.iconWrapper,
104
+ "data-expanded": expanded,
105
+ "data-icon": hasExpandIcons,
106
+ dir: config.direction,
107
+ children: /*#__PURE__*/_jsx(Spin, {
108
+ size: 12,
109
+ jssStyle: jssStyle,
110
+ ignoreConfig: true,
111
+ name: "ring"
112
+ })
113
+ });
114
+ };
115
+ var renderIndicator = function renderIndicator() {
116
+ var children = data[childrenKey];
117
+ var icon = expandIcons ? expandIcons[expanded ? 1 : 0] : expanded ? Icons.tree.LineExpand : Icons.tree.LineCollapse;
118
+ var indicator;
119
+ if (line) {
120
+ indicator = /*#__PURE__*/_jsx("span", {
121
+ className: contentStyle.iconWrapper,
122
+ "data-expanded": expanded,
123
+ "data-icon": hasExpandIcons,
124
+ dir: config.direction,
125
+ children: /*#__PURE__*/_jsx("span", {
126
+ className: classNames(contentStyle.icon, iconClass),
127
+ onClick: handleIndicatorClick,
128
+ dir: config.direction,
129
+ children: util.isFunc(icon) ? icon(data) : icon
130
+ })
131
+ });
132
+ } else {
133
+ indicator = /*#__PURE__*/_jsx("span", {
134
+ style: {
135
+ left: (level - 1) * 24
136
+ },
137
+ className: contentStyle.iconWrapper,
138
+ "data-expanded": expanded,
139
+ "data-icon": hasExpandIcons,
140
+ dir: config.direction,
141
+ children: /*#__PURE__*/_jsx("span", {
142
+ className: classNames(contentStyle.icon, iconClass),
143
+ onClick: handleIndicatorClick,
144
+ dir: config.direction,
145
+ children: util.isFunc(icon) ? icon(data) : hasExpandIcons ? icon : Icons.tree.Expand
146
+ })
147
+ });
148
+ }
149
+ if (children && children.length > 0) return indicator;
150
+ if (Array.isArray(children) || children === null) return null;
151
+ if (fetching && !children) return renderLoading();
152
+ if (loader && children === undefined) return indicator;
153
+ return null;
154
+ };
155
+ var renderCheckbox = function renderCheckbox() {
156
+ return /*#__PURE__*/_jsx(Checkbox, {
157
+ jssStyle: jssStyle,
158
+ id: id,
159
+ disabled: disabled,
160
+ className: contentStyle.checkbox,
161
+ onChange: onChange,
162
+ onClick: handleClick
163
+ });
164
+ };
165
+ var renderNode = function renderNode() {
166
+ var render = util.isFunc(renderItem) ? renderItem : function (item) {
167
+ return item[renderItem];
168
+ };
169
+ return render(data, expanded, active, id);
170
+ };
171
+ var contentEvent = {
172
+ onClick: inlineNode ? undefined : handleNodeClick
173
+ };
174
+ var textEvent = {
175
+ onClick: inlineNode ? handleNodeClick : undefined
176
+ };
177
+ return /*#__PURE__*/_jsxs("div", {
178
+ className: rootClass,
179
+ dir: config.direction,
180
+ children: [renderIndicator(), /*#__PURE__*/_jsxs("div", _objectSpread(_objectSpread(_objectSpread({
181
+ dir: config.direction,
182
+ "data-expanded": expanded,
183
+ ref: bindContent,
184
+ className: contentClass
185
+ }, contentDataProps()), contentEvent), {}, {
186
+ children: [onChange && renderCheckbox(), /*#__PURE__*/_jsx("div", _objectSpread(_objectSpread({
187
+ dir: config.direction,
188
+ className: textClass,
189
+ onDoubleClick: handleNodeExpand
190
+ }, textEvent), {}, {
191
+ children: renderNode()
192
+ }))]
193
+ }))]
194
+ });
195
+ };
196
+ export default NodeVirtualContent;
@@ -0,0 +1,6 @@
1
+ /// <reference types="react" />
2
+ import { TreeVirtualNodeProps } from './tree-node.type';
3
+ import { KeygenResult } from '@sheinx/hooks';
4
+ declare const VirtualNode: <DataItem, Value extends KeygenResult[]>(props: TreeVirtualNodeProps<DataItem, Value>) => JSX.Element;
5
+ export default VirtualNode;
6
+ //# sourceMappingURL=tree-virtual-node.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tree-virtual-node.d.ts","sourceRoot":"","sources":["tree-virtual-node.tsx"],"names":[],"mappings":";AAIA,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAExD,OAAO,EAA4B,YAAY,EAAE,MAAM,eAAe,CAAC;AAKvE,QAAA,MAAM,WAAW,uGAyHhB,CAAC;AAEF,eAAe,WAAW,CAAC"}
@@ -0,0 +1,116 @@
1
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
3
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
4
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
5
+ import { useTreeContext } from "./tree-context";
6
+ import { useRef } from 'react';
7
+ import classNames from 'classnames';
8
+ import TreeVirtualContent from "./tree-virtual-content";
9
+ import { useTreeVirtualNode, util } from '@sheinx/hooks';
10
+ import { useConfig } from "../config";
11
+ import { jsx as _jsx } from "react/jsx-runtime";
12
+ var placeElement = null;
13
+ var VirtualNode = function VirtualNode(props) {
14
+ var jssStyle = props.jssStyle,
15
+ id = props.id,
16
+ data = props.data,
17
+ level = props.level,
18
+ line = props.line,
19
+ isControlled = props.isControlled,
20
+ renderItem = props.renderItem,
21
+ parentClickExpand = props.parentClickExpand,
22
+ doubleClickExpand = props.doubleClickExpand,
23
+ iconClass = props.iconClass,
24
+ leafClass = props.leafClass,
25
+ nodeClass = props.nodeClass,
26
+ contentClass = props.contentClass,
27
+ expandIcons = props.expandIcons,
28
+ keygen = props.keygen,
29
+ mode = props.mode,
30
+ childrenKey = props.childrenKey,
31
+ inlineNode = props.inlineNode,
32
+ highlight = props.highlight,
33
+ loader = props.loader,
34
+ onChange = props.onChange,
35
+ onNodeClick = props.onNodeClick,
36
+ onToggle = props.onToggle;
37
+ var config = useConfig();
38
+ var datum = useTreeContext();
39
+ var element = useRef(null);
40
+ var content = useRef(null);
41
+ var _useTreeVirtualNode = useTreeVirtualNode({
42
+ id: id,
43
+ data: data,
44
+ datum: datum,
45
+ bindNode: datum.bindVirtualNode,
46
+ loader: loader,
47
+ onToggle: onToggle,
48
+ childrenKey: childrenKey,
49
+ element: element,
50
+ content: content.current
51
+ }),
52
+ active = _useTreeVirtualNode.active,
53
+ isLeaf = _useTreeVirtualNode.isLeaf,
54
+ fetching = _useTreeVirtualNode.fetching,
55
+ setFetching = _useTreeVirtualNode.setFetching,
56
+ expanded = _useTreeVirtualNode.expanded,
57
+ setExpanded = _useTreeVirtualNode.setExpanded;
58
+ var children = data[childrenKey];
59
+ var hasChildren = children && children.length > 0;
60
+ var contentStyle = (jssStyle === null || jssStyle === void 0 ? void 0 : jssStyle.tree()) || {};
61
+ var rootClass = classNames(contentStyle.node, isLeaf() && (util.isString(leafClass) ? leafClass : util.isFunc(leafClass) && leafClass(data)), util.isString(nodeClass) && nodeClass, util.isFunc(nodeClass) && nodeClass(data), _defineProperty({}, contentStyle.leaf, !hasChildren));
62
+ if (placeElement) {
63
+ placeElement.className = contentStyle.placement;
64
+ }
65
+ var handleFetch = function handleFetch() {};
66
+ var handleToggle = function handleToggle() {
67
+ var nextExpanded = !expanded;
68
+ setExpanded(nextExpanded);
69
+ var status = datum.dataFlatStatusMap.get(id);
70
+ datum.dataFlatStatusMap.set(id, {
71
+ active: (status === null || status === void 0 ? void 0 : status.active) || false,
72
+ fetching: (status === null || status === void 0 ? void 0 : status.fetching) || false,
73
+ expanded: nextExpanded
74
+ });
75
+ if (onToggle) onToggle(id, nextExpanded);
76
+ };
77
+ return /*#__PURE__*/_jsx("div", {
78
+ ref: element,
79
+ className: rootClass,
80
+ dir: config.direction,
81
+ style: {
82
+ paddingLeft: level * 24
83
+ },
84
+ children: /*#__PURE__*/_jsx(TreeVirtualContent, {
85
+ jssStyle: jssStyle,
86
+ isControlled: isControlled,
87
+ id: id,
88
+ level: level,
89
+ line: line,
90
+ data: data,
91
+ mode: mode,
92
+ contentClass: contentClass,
93
+ active: active,
94
+ fetching: fetching,
95
+ expanded: expanded,
96
+ keygen: keygen,
97
+ bindContent: content,
98
+ childrenKey: childrenKey,
99
+ renderItem: renderItem,
100
+ iconClass: iconClass,
101
+ leafClass: leafClass,
102
+ expandIcons: expandIcons,
103
+ parentClickExpand: parentClickExpand,
104
+ doubleClickExpand: doubleClickExpand,
105
+ loader: loader,
106
+ inlineNode: inlineNode,
107
+ highlight: highlight,
108
+ setFetching: setFetching,
109
+ onChange: onChange,
110
+ onFetch: handleFetch,
111
+ onNodeClick: onNodeClick,
112
+ onToggle: handleToggle
113
+ })
114
+ });
115
+ };
116
+ export default VirtualNode;
@@ -0,0 +1,6 @@
1
+ /// <reference types="react" />
2
+ import { KeygenResult } from '@sheinx/hooks';
3
+ import { VirtualTreeProps } from './tree.type';
4
+ declare const TreeVirtual: <DataItem, Value extends KeygenResult[]>(props: VirtualTreeProps<DataItem, Value>) => JSX.Element;
5
+ export default TreeVirtual;
6
+ //# sourceMappingURL=tree-virtual.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tree-virtual.d.ts","sourceRoot":"","sources":["tree-virtual.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,YAAY,EAAgB,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C,QAAA,MAAM,WAAW,mGAwFhB,CAAC;AAEF,eAAe,WAAW,CAAC"}