@rainbow-oh/yee-c 0.1.0 → 0.2.0
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.
- package/dist/cjs/Alert/alert.js +10 -4
- package/dist/cjs/Alert/style/index.less +3 -0
- package/dist/cjs/Anchor/anchor-item.js +6 -4
- package/dist/cjs/Anchor/anchor.js +38 -22
- package/dist/cjs/Anchor/demo/auto.d.ts +11 -0
- package/dist/cjs/Anchor/demo/auto.js +85 -0
- package/dist/cjs/Anchor/demo/basic.js +7 -1
- package/dist/cjs/Anchor/demo/controlled.js +42 -30
- package/dist/cjs/Anchor/interface.d.ts +2 -0
- package/dist/cjs/Anchor/style/index.less +2 -2
- package/dist/cjs/Button/button.d.ts +1 -1
- package/dist/cjs/Checkbox/checkbox-group.js +4 -1
- package/dist/cjs/Checkbox/demo/group.js +1 -0
- package/dist/cjs/Checkbox/interface.d.ts +5 -0
- package/dist/cjs/Checkbox/style/index.less +21 -1
- package/dist/cjs/Dropdown/demo/placement.js +2 -1
- package/dist/cjs/Dropdown/dropdown.js +3 -0
- package/dist/cjs/Dropdown/style/index.less +6 -0
- package/dist/cjs/Form/Field.js +33 -3
- package/dist/cjs/Form/Group.js +3 -2
- package/dist/cjs/Form/demo/form-table.js +1 -8
- package/dist/cjs/Form/demo/tooltip.d.ts +3 -0
- package/dist/cjs/Form/demo/tooltip.js +84 -0
- package/dist/cjs/Form/interface.d.ts +34 -1
- package/dist/cjs/Form/style/index.less +22 -7
- package/dist/cjs/Popconfirm/popconfirm.js +1 -1
- package/dist/cjs/Popconfirm/style/index.less +6 -0
- package/dist/cjs/Popover/popover.js +1 -1
- package/dist/cjs/Popover/style/index.less +6 -0
- package/dist/cjs/Progress/progress.js +2 -2
- package/dist/cjs/Radio/style/index.less +13 -6
- package/dist/cjs/Select/option.js +3 -2
- package/dist/cjs/Select/options.js +9 -1
- package/dist/cjs/Select/select.js +1 -0
- package/dist/cjs/Skeleton/demo/basic.js +1 -1
- package/dist/cjs/Space/interface.d.ts +4 -0
- package/dist/cjs/Space/space.js +36 -16
- package/dist/cjs/Splitter/demo/basic.js +1 -1
- package/dist/cjs/Splitter/demo/vertical.js +23 -1
- package/dist/cjs/Splitter/index.d.ts +1 -1
- package/dist/cjs/Splitter/interface.d.ts +9 -3
- package/dist/cjs/Splitter/splitter-handler.d.ts +1 -1
- package/dist/cjs/Splitter/splitter-handler.js +2 -1
- package/dist/cjs/Splitter/splitter.d.ts +2 -9
- package/dist/cjs/Splitter/splitter.js +53 -50
- package/dist/cjs/Splitter/style/index.less +21 -0
- package/dist/cjs/Table/demo/size.js +1 -1
- package/dist/cjs/Tabs/hooks/useTabScroll.d.ts +1 -1
- package/dist/cjs/Tabs/interface.d.ts +1 -1
- package/dist/cjs/Tabs/style/index.less +4 -0
- package/dist/cjs/Tabs/tab-header/index.js +56 -25
- package/dist/cjs/Tooltip/interface.d.ts +4 -0
- package/dist/cjs/Tooltip/style/index.less +8 -8
- package/dist/cjs/Tooltip/tooltip.js +11 -3
- package/dist/cjs/Tree/demo/draggable.d.ts +3 -0
- package/dist/cjs/Tree/demo/draggable.js +88 -0
- package/dist/cjs/Tree/demo/expanded.js +6 -6
- package/dist/cjs/Tree/index.d.ts +1 -0
- package/dist/cjs/Tree/index.js +3 -1
- package/dist/cjs/Tree/interface.d.ts +26 -0
- package/dist/cjs/Tree/style/index.less +25 -0
- package/dist/cjs/Tree/tree-node.js +38 -4
- package/dist/cjs/Tree/tree.d.ts +12 -1
- package/dist/cjs/Tree/tree.js +174 -18
- package/dist/cjs/Tree/utils/tree-tools.d.ts +21 -0
- package/dist/cjs/Tree/utils/tree-tools.js +88 -0
- package/dist/cjs/Trigger/style/index.less +17 -0
- package/dist/cjs/Trigger/trigger.js +3 -1
- package/dist/cjs/hooks/useDebounceFunction.d.ts +1 -1
- package/dist/cjs/hooks/useLayoutEffect.d.ts +1 -1
- package/dist/cjs/style/size.css +13 -4
- package/dist/cjs/style/themes.css +1 -1
- package/dist/cjs/style/variables.css +14 -5
- package/dist/cjs/utils/debounce.d.ts +6 -1
- package/dist/cjs/utils/debounce.js +9 -1
- package/dist/cjs/version.d.ts +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/esm/Alert/alert.js +24 -8
- package/dist/esm/Alert/style/index.less +3 -0
- package/dist/esm/Anchor/anchor-item.js +6 -3
- package/dist/esm/Anchor/anchor.js +38 -19
- package/dist/esm/Anchor/demo/auto.d.ts +11 -0
- package/dist/esm/Anchor/demo/auto.js +62 -0
- package/dist/esm/Anchor/demo/basic.js +3 -1
- package/dist/esm/Anchor/demo/controlled.js +14 -9
- package/dist/esm/Anchor/interface.d.ts +2 -0
- package/dist/esm/Anchor/style/index.less +2 -2
- package/dist/esm/Button/button.d.ts +1 -1
- package/dist/esm/Checkbox/checkbox-group.js +4 -2
- package/dist/esm/Checkbox/demo/group.js +1 -0
- package/dist/esm/Checkbox/interface.d.ts +5 -0
- package/dist/esm/Checkbox/style/index.less +21 -1
- package/dist/esm/Dropdown/demo/placement.js +2 -1
- package/dist/esm/Dropdown/dropdown.js +6 -1
- package/dist/esm/Dropdown/style/index.less +6 -0
- package/dist/esm/Form/Field.js +43 -5
- package/dist/esm/Form/Group.js +4 -2
- package/dist/esm/Form/demo/form-table.js +8 -6
- package/dist/esm/Form/demo/tooltip.d.ts +3 -0
- package/dist/esm/Form/demo/tooltip.js +59 -0
- package/dist/esm/Form/interface.d.ts +34 -1
- package/dist/esm/Form/style/index.less +22 -7
- package/dist/esm/Popconfirm/popconfirm.js +3 -1
- package/dist/esm/Popconfirm/style/index.less +6 -0
- package/dist/esm/Popover/popover.js +3 -1
- package/dist/esm/Popover/style/index.less +6 -0
- package/dist/esm/Progress/progress.js +5 -5
- package/dist/esm/Radio/style/index.less +13 -6
- package/dist/esm/Select/option.js +4 -2
- package/dist/esm/Select/options.js +5 -3
- package/dist/esm/Select/select.js +1 -0
- package/dist/esm/Skeleton/demo/basic.js +2 -8
- package/dist/esm/Space/interface.d.ts +4 -0
- package/dist/esm/Space/space.js +24 -13
- package/dist/esm/Splitter/demo/basic.js +2 -0
- package/dist/esm/Splitter/demo/vertical.js +13 -5
- package/dist/esm/Splitter/index.d.ts +1 -1
- package/dist/esm/Splitter/interface.d.ts +9 -3
- package/dist/esm/Splitter/splitter-handler.d.ts +1 -1
- package/dist/esm/Splitter/splitter-handler.js +3 -1
- package/dist/esm/Splitter/splitter.d.ts +2 -9
- package/dist/esm/Splitter/splitter.js +59 -56
- package/dist/esm/Splitter/style/index.less +21 -0
- package/dist/esm/Table/demo/size.js +2 -7
- package/dist/esm/Tabs/hooks/useTabScroll.d.ts +1 -1
- package/dist/esm/Tabs/interface.d.ts +1 -1
- package/dist/esm/Tabs/style/index.less +4 -0
- package/dist/esm/Tabs/tab-header/index.js +11 -5
- package/dist/esm/Tooltip/interface.d.ts +4 -0
- package/dist/esm/Tooltip/style/index.less +8 -8
- package/dist/esm/Tooltip/tooltip.js +14 -2
- package/dist/esm/Tree/demo/draggable.d.ts +3 -0
- package/dist/esm/Tree/demo/draggable.js +61 -0
- package/dist/esm/Tree/demo/expanded.js +6 -6
- package/dist/esm/Tree/index.d.ts +1 -0
- package/dist/esm/Tree/index.js +1 -0
- package/dist/esm/Tree/interface.d.ts +26 -0
- package/dist/esm/Tree/style/index.less +25 -0
- package/dist/esm/Tree/tree-node.js +29 -4
- package/dist/esm/Tree/tree.d.ts +12 -1
- package/dist/esm/Tree/tree.js +135 -4
- package/dist/esm/Tree/utils/tree-tools.d.ts +21 -0
- package/dist/esm/Tree/utils/tree-tools.js +128 -1
- package/dist/esm/Trigger/style/index.less +17 -0
- package/dist/esm/Trigger/trigger.js +4 -3
- package/dist/esm/hooks/useDebounceFunction.d.ts +1 -1
- package/dist/esm/hooks/useLayoutEffect.d.ts +1 -1
- package/dist/esm/style/size.css +13 -4
- package/dist/esm/style/themes.css +1 -1
- package/dist/esm/style/variables.css +14 -5
- package/dist/esm/utils/debounce.d.ts +6 -1
- package/dist/esm/utils/debounce.js +9 -2
- package/dist/esm/version.d.ts +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/umd/yee-c.min.css +2 -2
- package/dist/umd/yee-c.min.js +1 -1
- package/package.json +21 -23
- package/src/Alert/alert.tsx +10 -4
- package/src/Alert/style/index.less +3 -0
- package/src/Anchor/anchor-item.tsx +7 -2
- package/src/Anchor/anchor.tsx +49 -23
- package/src/Anchor/demo/auto.tsx +55 -0
- package/src/Anchor/demo/basic.tsx +7 -1
- package/src/Anchor/demo/controlled.tsx +18 -14
- package/src/Anchor/index.en-US.md +17 -0
- package/src/Anchor/index.zh-CN.md +17 -0
- package/src/Anchor/interface.ts +2 -0
- package/src/Anchor/style/index.less +2 -2
- package/src/Checkbox/checkbox-group.tsx +5 -1
- package/src/Checkbox/demo/group.tsx +1 -0
- package/src/Checkbox/interface.ts +5 -0
- package/src/Checkbox/style/index.less +21 -1
- package/src/Dropdown/demo/placement.tsx +1 -0
- package/src/Dropdown/dropdown.tsx +2 -0
- package/src/Dropdown/style/index.less +6 -0
- package/src/Form/Field.tsx +45 -3
- package/src/Form/Group.tsx +4 -1
- package/src/Form/demo/form-table.tsx +7 -7
- package/src/Form/demo/tooltip.tsx +72 -0
- package/src/Form/form-store.ts +1 -1
- package/src/Form/index.en-US.md +2 -0
- package/src/Form/index.zh-CN.md +83 -85
- package/src/Form/interface.ts +36 -1
- package/src/Form/style/index.less +22 -7
- package/src/Popconfirm/popconfirm.tsx +1 -1
- package/src/Popconfirm/style/index.less +6 -0
- package/src/Popover/popover.tsx +1 -1
- package/src/Popover/style/index.less +6 -0
- package/src/Progress/progress.tsx +2 -2
- package/src/Radio/style/index.less +13 -6
- package/src/Select/option.tsx +2 -1
- package/src/Select/options.tsx +7 -2
- package/src/Select/select.tsx +1 -0
- package/src/Skeleton/demo/basic.tsx +3 -3
- package/src/Space/interface.ts +4 -0
- package/src/Space/space.tsx +40 -16
- package/src/Splitter/demo/basic.tsx +2 -2
- package/src/Splitter/demo/vertical.tsx +19 -5
- package/src/Splitter/index.ts +5 -1
- package/src/Splitter/interface.ts +10 -3
- package/src/Splitter/splitter-handler.tsx +4 -2
- package/src/Splitter/splitter.tsx +55 -60
- package/src/Splitter/style/index.less +21 -0
- package/src/Table/demo/size.tsx +3 -3
- package/src/Table/index.zh-CN.md +50 -50
- package/src/Tabs/interface.ts +1 -1
- package/src/Tabs/style/index.less +4 -0
- package/src/Tabs/tab-header/index.tsx +26 -5
- package/src/Tooltip/index.en-US.md +1 -0
- package/src/Tooltip/index.zh-CN.md +1 -0
- package/src/Tooltip/interface.ts +4 -0
- package/src/Tooltip/style/index.less +8 -8
- package/src/Tooltip/tooltip.tsx +10 -1
- package/src/Tree/demo/draggable.tsx +58 -0
- package/src/Tree/demo/expanded.tsx +7 -7
- package/src/Tree/index.en-US.md +3 -0
- package/src/Tree/index.ts +1 -0
- package/src/Tree/index.zh-CN.md +3 -0
- package/src/Tree/interface.ts +28 -0
- package/src/Tree/style/index.less +25 -0
- package/src/Tree/tree-node.tsx +26 -0
- package/src/Tree/tree.tsx +183 -2
- package/src/Tree/utils/tree-tools.ts +107 -0
- package/src/Trigger/style/index.less +17 -0
- package/src/Trigger/trigger.tsx +3 -1
- package/src/style/size.css +13 -4
- package/src/utils/debounce.ts +22 -3
- package/src/version.ts +1 -1
package/dist/cjs/Tree/tree.d.ts
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import React, { ChangeEvent } from 'react';
|
|
2
|
-
import type { TreeProps } from './interface';
|
|
2
|
+
import type { DragPosition, TreeProps } from './interface';
|
|
3
3
|
import './style/index.less';
|
|
4
|
+
type DropState = {
|
|
5
|
+
key: string | number;
|
|
6
|
+
position: DragPosition;
|
|
7
|
+
} | null;
|
|
4
8
|
export declare const TreeContext: React.Context<{
|
|
5
9
|
prefixCls?: string | undefined;
|
|
6
10
|
checkable?: boolean | undefined;
|
|
@@ -11,9 +15,16 @@ export declare const TreeContext: React.Context<{
|
|
|
11
15
|
selectedKeys: Array<string | number>;
|
|
12
16
|
checkedKeys: Array<string | number>;
|
|
13
17
|
expandedKeys: Array<string | number>;
|
|
18
|
+
draggable?: boolean | undefined;
|
|
19
|
+
draggingKey: string | number | null;
|
|
20
|
+
dropState: DropState;
|
|
14
21
|
onCheck: (event: ChangeEvent<HTMLInputElement>) => void;
|
|
15
22
|
onSelect: (key: string | number) => void;
|
|
16
23
|
onExpand: (key: string | number) => void;
|
|
24
|
+
onNodeDragStart: (key: string | number, e: React.DragEvent) => void;
|
|
25
|
+
onNodeDragOver: (key: string | number, e: React.DragEvent) => void;
|
|
26
|
+
onNodeDragLeave: (key: string | number, e: React.DragEvent) => void;
|
|
27
|
+
onNodeDrop: (key: string | number, e: React.DragEvent) => void;
|
|
17
28
|
}>;
|
|
18
29
|
declare const Tree: <T extends Record<string, unknown> = any>(baseprops: TreeProps<T>) => React.JSX.Element;
|
|
19
30
|
export default Tree;
|
package/dist/cjs/Tree/tree.js
CHANGED
|
@@ -51,11 +51,22 @@ var TreeContext = (0, import_react.createContext)({
|
|
|
51
51
|
selectedKeys: [],
|
|
52
52
|
checkedKeys: [],
|
|
53
53
|
expandedKeys: [],
|
|
54
|
+
draggable: false,
|
|
55
|
+
draggingKey: null,
|
|
56
|
+
dropState: null,
|
|
54
57
|
onCheck: () => {
|
|
55
58
|
},
|
|
56
59
|
onSelect: () => {
|
|
57
60
|
},
|
|
58
61
|
onExpand: () => {
|
|
62
|
+
},
|
|
63
|
+
onNodeDragStart: () => {
|
|
64
|
+
},
|
|
65
|
+
onNodeDragOver: () => {
|
|
66
|
+
},
|
|
67
|
+
onNodeDragLeave: () => {
|
|
68
|
+
},
|
|
69
|
+
onNodeDrop: () => {
|
|
59
70
|
}
|
|
60
71
|
});
|
|
61
72
|
var Tree = (baseprops) => {
|
|
@@ -80,6 +91,9 @@ var Tree = (baseprops) => {
|
|
|
80
91
|
icon,
|
|
81
92
|
showLine,
|
|
82
93
|
switcherIcon,
|
|
94
|
+
draggable,
|
|
95
|
+
allowDrop,
|
|
96
|
+
onDrop,
|
|
83
97
|
onSelect,
|
|
84
98
|
onCheck,
|
|
85
99
|
onExpand
|
|
@@ -179,25 +193,167 @@ var Tree = (baseprops) => {
|
|
|
179
193
|
},
|
|
180
194
|
[mergedExpandedKeys, itemMap, onExpand]
|
|
181
195
|
);
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
196
|
+
const dragKeyRef = (0, import_react.useRef)(null);
|
|
197
|
+
const [draggingKey, setDraggingKey] = (0, import_react.useState)(null);
|
|
198
|
+
const [dropState, setDropState] = (0, import_react.useState)(null);
|
|
199
|
+
const isIllegalMove = (0, import_react.useCallback)(
|
|
200
|
+
(dragKey, dropKey) => {
|
|
201
|
+
if (dragKey === dropKey)
|
|
202
|
+
return true;
|
|
203
|
+
const dropNode = itemMap.get(dropKey);
|
|
204
|
+
return !!dropNode && dropNode.path.includes(dragKey);
|
|
205
|
+
},
|
|
206
|
+
[itemMap]
|
|
207
|
+
);
|
|
208
|
+
const resolvePosition = (0, import_react.useCallback)(
|
|
209
|
+
(rect, clientY) => {
|
|
210
|
+
const offset = (clientY - rect.top) / rect.height;
|
|
211
|
+
if (offset < 0.25)
|
|
212
|
+
return "before";
|
|
213
|
+
if (offset > 0.75)
|
|
214
|
+
return "after";
|
|
215
|
+
return "inside";
|
|
216
|
+
},
|
|
217
|
+
[]
|
|
218
|
+
);
|
|
219
|
+
const handleDragStart = (0, import_react.useCallback)(
|
|
220
|
+
(key, e) => {
|
|
221
|
+
const node = itemMap.get(key);
|
|
222
|
+
if (node == null ? void 0 : node.disabled) {
|
|
223
|
+
e.preventDefault();
|
|
224
|
+
return;
|
|
225
|
+
}
|
|
226
|
+
dragKeyRef.current = key;
|
|
227
|
+
setDraggingKey(key);
|
|
228
|
+
if (e.dataTransfer) {
|
|
229
|
+
e.dataTransfer.effectAllowed = "move";
|
|
230
|
+
try {
|
|
231
|
+
e.dataTransfer.setData("text/plain", String(key));
|
|
232
|
+
} catch (e2) {
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
},
|
|
236
|
+
[itemMap]
|
|
237
|
+
);
|
|
238
|
+
const handleDragOver = (0, import_react.useCallback)(
|
|
239
|
+
(key, e) => {
|
|
240
|
+
const dragKey = dragKeyRef.current;
|
|
241
|
+
if (dragKey === null)
|
|
242
|
+
return;
|
|
243
|
+
if (isIllegalMove(dragKey, key))
|
|
244
|
+
return;
|
|
245
|
+
const dropNode = itemMap.get(key);
|
|
246
|
+
if (!dropNode || dropNode.disabled)
|
|
247
|
+
return;
|
|
248
|
+
const position = resolvePosition(
|
|
249
|
+
e.currentTarget.getBoundingClientRect(),
|
|
250
|
+
e.clientY
|
|
251
|
+
);
|
|
252
|
+
const dragNode = itemMap.get(dragKey);
|
|
253
|
+
if (allowDrop && dragNode && allowDrop({
|
|
254
|
+
dragNode: dragNode.original,
|
|
255
|
+
dropNode: dropNode.original,
|
|
256
|
+
position
|
|
257
|
+
}) === false) {
|
|
258
|
+
return;
|
|
198
259
|
}
|
|
260
|
+
e.preventDefault();
|
|
261
|
+
if (e.dataTransfer)
|
|
262
|
+
e.dataTransfer.dropEffect = "move";
|
|
263
|
+
setDropState(
|
|
264
|
+
(prev) => prev && prev.key === key && prev.position === position ? prev : { key, position }
|
|
265
|
+
);
|
|
199
266
|
},
|
|
200
|
-
|
|
201
|
-
)
|
|
267
|
+
[itemMap, isIllegalMove, resolvePosition, allowDrop]
|
|
268
|
+
);
|
|
269
|
+
const handleDragLeave = (0, import_react.useCallback)(
|
|
270
|
+
// Intentionally a no-op: dragleave fires spuriously when crossing child
|
|
271
|
+
// elements. Drop state is cleared in handleDragEnd at the Tree root.
|
|
272
|
+
() => {
|
|
273
|
+
},
|
|
274
|
+
[]
|
|
275
|
+
);
|
|
276
|
+
const handleDrop = (0, import_react.useCallback)(
|
|
277
|
+
(key, e) => {
|
|
278
|
+
e.preventDefault();
|
|
279
|
+
const dragKey = dragKeyRef.current;
|
|
280
|
+
if (dragKey === null)
|
|
281
|
+
return;
|
|
282
|
+
const position = resolvePosition(
|
|
283
|
+
e.currentTarget.getBoundingClientRect(),
|
|
284
|
+
e.clientY
|
|
285
|
+
);
|
|
286
|
+
if (isIllegalMove(dragKey, key))
|
|
287
|
+
return;
|
|
288
|
+
const dragNode = itemMap.get(dragKey);
|
|
289
|
+
const dropNode = itemMap.get(key);
|
|
290
|
+
if (!dragNode || !dropNode)
|
|
291
|
+
return;
|
|
292
|
+
if (allowDrop && allowDrop({
|
|
293
|
+
dragNode: dragNode.original,
|
|
294
|
+
dropNode: dropNode.original,
|
|
295
|
+
position
|
|
296
|
+
}) === false) {
|
|
297
|
+
return;
|
|
298
|
+
}
|
|
299
|
+
onDrop == null ? void 0 : onDrop({
|
|
300
|
+
dragNode: dragNode.original,
|
|
301
|
+
dropNode: dropNode.original,
|
|
302
|
+
dragKey,
|
|
303
|
+
dropKey: key,
|
|
304
|
+
position,
|
|
305
|
+
dropToGap: position !== "inside"
|
|
306
|
+
});
|
|
307
|
+
if (position === "inside") {
|
|
308
|
+
setMergedExpandedKeys(
|
|
309
|
+
(prev) => prev.includes(key) ? prev : [...prev, key]
|
|
310
|
+
);
|
|
311
|
+
}
|
|
312
|
+
dragKeyRef.current = null;
|
|
313
|
+
setDraggingKey(null);
|
|
314
|
+
setDropState(null);
|
|
315
|
+
},
|
|
316
|
+
[itemMap, isIllegalMove, resolvePosition, allowDrop, onDrop]
|
|
317
|
+
);
|
|
318
|
+
const handleDragEnd = (0, import_react.useCallback)(() => {
|
|
319
|
+
dragKeyRef.current = null;
|
|
320
|
+
setDraggingKey(null);
|
|
321
|
+
setDropState(null);
|
|
322
|
+
}, []);
|
|
323
|
+
return /* @__PURE__ */ import_react.default.createElement(
|
|
324
|
+
"div",
|
|
325
|
+
{
|
|
326
|
+
className: (0, import_clsx.default)(prefixCls, className),
|
|
327
|
+
style,
|
|
328
|
+
onDragEnd: handleDragEnd
|
|
329
|
+
},
|
|
330
|
+
/* @__PURE__ */ import_react.default.createElement(
|
|
331
|
+
TreeContext.Provider,
|
|
332
|
+
{
|
|
333
|
+
value: {
|
|
334
|
+
prefixCls,
|
|
335
|
+
checkable,
|
|
336
|
+
showIcon,
|
|
337
|
+
icon,
|
|
338
|
+
showLine,
|
|
339
|
+
switcherIcon,
|
|
340
|
+
selectedKeys: mergedSelectedKeys,
|
|
341
|
+
checkedKeys: mergedCheckedKeys,
|
|
342
|
+
expandedKeys: mergedExpandedKeys,
|
|
343
|
+
draggable,
|
|
344
|
+
draggingKey,
|
|
345
|
+
dropState,
|
|
346
|
+
onCheck: handleCheck,
|
|
347
|
+
onSelect: handleSelect,
|
|
348
|
+
onExpand: handleExpand,
|
|
349
|
+
onNodeDragStart: handleDragStart,
|
|
350
|
+
onNodeDragOver: handleDragOver,
|
|
351
|
+
onNodeDragLeave: handleDragLeave,
|
|
352
|
+
onNodeDrop: handleDrop
|
|
353
|
+
}
|
|
354
|
+
},
|
|
355
|
+
flatItems.map((node, index) => /* @__PURE__ */ import_react.default.createElement(import_tree_node.default, { node, key: node.key || index }))
|
|
356
|
+
)
|
|
357
|
+
);
|
|
202
358
|
};
|
|
203
359
|
var tree_default = Tree;
|
|
@@ -1,4 +1,25 @@
|
|
|
1
1
|
import { TreeNode } from '../interface';
|
|
2
|
+
export type DragPosition = 'before' | 'after' | 'inside';
|
|
3
|
+
export interface MoveInfo {
|
|
4
|
+
dragKey: string | number;
|
|
5
|
+
dropKey: string | number;
|
|
6
|
+
position: DragPosition;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Reorder the nested dataSource immutably after a drag.
|
|
10
|
+
*
|
|
11
|
+
* Two phases: detach the dragged subtree, then insert it at the drop target.
|
|
12
|
+
* Only the modified path gets new arrays + shallow-cloned wrappers; untouched
|
|
13
|
+
* nodes are reused by reference (data may carry non-cloneable values like
|
|
14
|
+
* React elements / functions in `icon`).
|
|
15
|
+
*
|
|
16
|
+
* Returns a brand-new root array; returns the input unchanged if dragKey is
|
|
17
|
+
* not found or drag and drop resolve to the same location.
|
|
18
|
+
*/
|
|
19
|
+
export declare function moveTreeNode<T extends Record<string, unknown>>(tree: T | T[], info: MoveInfo, fieldNames: {
|
|
20
|
+
key: keyof T;
|
|
21
|
+
children: keyof T;
|
|
22
|
+
}): T[];
|
|
2
23
|
export declare function getChildKeys<T extends Record<string, unknown>>(data: T, fieldNames: {
|
|
3
24
|
key: keyof T;
|
|
4
25
|
children: keyof T;
|
|
@@ -1,7 +1,24 @@
|
|
|
1
1
|
var __defProp = Object.defineProperty;
|
|
2
|
+
var __defProps = Object.defineProperties;
|
|
2
3
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
3
5
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
4
7
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
9
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
10
|
+
var __spreadValues = (a, b) => {
|
|
11
|
+
for (var prop in b || (b = {}))
|
|
12
|
+
if (__hasOwnProp.call(b, prop))
|
|
13
|
+
__defNormalProp(a, prop, b[prop]);
|
|
14
|
+
if (__getOwnPropSymbols)
|
|
15
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
16
|
+
if (__propIsEnum.call(b, prop))
|
|
17
|
+
__defNormalProp(a, prop, b[prop]);
|
|
18
|
+
}
|
|
19
|
+
return a;
|
|
20
|
+
};
|
|
21
|
+
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
5
22
|
var __export = (target, all) => {
|
|
6
23
|
for (var name in all)
|
|
7
24
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
@@ -22,10 +39,81 @@ __export(tree_tools_exports, {
|
|
|
22
39
|
containsAll: () => containsAll,
|
|
23
40
|
getCheckedKeys: () => getCheckedKeys,
|
|
24
41
|
getChildKeys: () => getChildKeys,
|
|
42
|
+
moveTreeNode: () => moveTreeNode,
|
|
25
43
|
removeContainsAll: () => removeContainsAll,
|
|
26
44
|
tree2array: () => tree2array
|
|
27
45
|
});
|
|
28
46
|
module.exports = __toCommonJS(tree_tools_exports);
|
|
47
|
+
function moveTreeNode(tree, info, fieldNames) {
|
|
48
|
+
if (!tree || Array.isArray(tree) && tree.length === 0)
|
|
49
|
+
return [];
|
|
50
|
+
const { key: K, children: C } = fieldNames;
|
|
51
|
+
const { dragKey, dropKey, position } = info;
|
|
52
|
+
const root = Array.isArray(tree) ? tree : [tree];
|
|
53
|
+
const detach = (nodes) => {
|
|
54
|
+
let found = null;
|
|
55
|
+
const next = [];
|
|
56
|
+
for (const n of nodes) {
|
|
57
|
+
if (n[K] === dragKey) {
|
|
58
|
+
found = n;
|
|
59
|
+
continue;
|
|
60
|
+
}
|
|
61
|
+
const kids = n[C];
|
|
62
|
+
if (Array.isArray(kids)) {
|
|
63
|
+
const r = detach(kids);
|
|
64
|
+
if (r.found) {
|
|
65
|
+
found = r.found;
|
|
66
|
+
next.push(__spreadProps(__spreadValues({}, n), { [C]: r.nodes }));
|
|
67
|
+
} else {
|
|
68
|
+
next.push(n);
|
|
69
|
+
}
|
|
70
|
+
} else {
|
|
71
|
+
next.push(n);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
return { found, nodes: next };
|
|
75
|
+
};
|
|
76
|
+
const { found: dragNode, nodes: withoutDrag } = detach(root);
|
|
77
|
+
if (!dragNode)
|
|
78
|
+
return root;
|
|
79
|
+
const insert = (nodes) => {
|
|
80
|
+
const next = [];
|
|
81
|
+
let inserted2 = false;
|
|
82
|
+
for (const n of nodes) {
|
|
83
|
+
if (!inserted2 && position === "inside" && n[K] === dropKey) {
|
|
84
|
+
const oldKids = Array.isArray(n[C]) ? n[C] : [];
|
|
85
|
+
next.push(__spreadProps(__spreadValues({}, n), { [C]: [...oldKids, dragNode] }));
|
|
86
|
+
inserted2 = true;
|
|
87
|
+
continue;
|
|
88
|
+
}
|
|
89
|
+
if (!inserted2 && position === "before" && n[K] === dropKey) {
|
|
90
|
+
next.push(dragNode, n);
|
|
91
|
+
inserted2 = true;
|
|
92
|
+
continue;
|
|
93
|
+
}
|
|
94
|
+
if (!inserted2 && position === "after" && n[K] === dropKey) {
|
|
95
|
+
next.push(n, dragNode);
|
|
96
|
+
inserted2 = true;
|
|
97
|
+
continue;
|
|
98
|
+
}
|
|
99
|
+
const kids = n[C];
|
|
100
|
+
if (inserted2 || !Array.isArray(kids)) {
|
|
101
|
+
next.push(n);
|
|
102
|
+
} else {
|
|
103
|
+
const r = insert(kids);
|
|
104
|
+
if (r.inserted) {
|
|
105
|
+
next.push(__spreadProps(__spreadValues({}, n), { [C]: r.nodes }));
|
|
106
|
+
inserted2 = true;
|
|
107
|
+
} else {
|
|
108
|
+
next.push(n);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
return { inserted: inserted2, nodes: next };
|
|
113
|
+
};
|
|
114
|
+
const { inserted, nodes: result } = insert(withoutDrag);
|
|
115
|
+
return inserted ? result : root;
|
|
116
|
+
}
|
|
29
117
|
function getChildKeys(data, fieldNames) {
|
|
30
118
|
const { key, children } = fieldNames;
|
|
31
119
|
const _children = data[children];
|
|
@@ -8,6 +8,23 @@
|
|
|
8
8
|
display: none;
|
|
9
9
|
}
|
|
10
10
|
|
|
11
|
+
&-arrow {
|
|
12
|
+
&::after {
|
|
13
|
+
position: absolute;
|
|
14
|
+
bottom: 0;
|
|
15
|
+
z-index: 0;
|
|
16
|
+
width: var(--yee-popup-arrow-width);
|
|
17
|
+
height: var(--yee-popup-arrow-height);
|
|
18
|
+
margin: auto;
|
|
19
|
+
border-radius: var(--yee-popup-arrow-border-radius);
|
|
20
|
+
box-shadow: var(--yee-box-shadow-popover-arrow);
|
|
21
|
+
transform: translateY(var(--yee-popup-arrow-translate-y))
|
|
22
|
+
rotate(var(--yee-popup-arrow-rotate));
|
|
23
|
+
content: '';
|
|
24
|
+
inset-inline: 0;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
11
28
|
&-topLeft,
|
|
12
29
|
&-top,
|
|
13
30
|
&-topRight {
|
|
@@ -85,6 +85,7 @@ var Trigger = (baseprops) => {
|
|
|
85
85
|
mouseLeaveDelay = 0.2,
|
|
86
86
|
arrow,
|
|
87
87
|
forceRender = false,
|
|
88
|
+
popupStyle,
|
|
88
89
|
onOpenChange,
|
|
89
90
|
zIndex
|
|
90
91
|
} = _a, rest = __objRest(_a, [
|
|
@@ -101,6 +102,7 @@ var Trigger = (baseprops) => {
|
|
|
101
102
|
"mouseLeaveDelay",
|
|
102
103
|
"arrow",
|
|
103
104
|
"forceRender",
|
|
105
|
+
"popupStyle",
|
|
104
106
|
"onOpenChange",
|
|
105
107
|
"zIndex"
|
|
106
108
|
]);
|
|
@@ -206,7 +208,7 @@ var Trigger = (baseprops) => {
|
|
|
206
208
|
motionAppear: true,
|
|
207
209
|
motionEnter: true
|
|
208
210
|
},
|
|
209
|
-
popupStyle: { pointerEvents: "auto" }
|
|
211
|
+
popupStyle: __spreadValues({ pointerEvents: "auto" }, popupStyle)
|
|
210
212
|
}), zIndex !== void 0 ? { zIndex } : {}), {
|
|
211
213
|
getPopupClassNameFromAlign,
|
|
212
214
|
onOpenChange: handlePopupOpenChange,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export default function useDebounceFunction<T extends (...args: any[]) => any>(fn: T, delay: number, deps?: never[]): (
|
|
1
|
+
export default function useDebounceFunction<T extends (...args: any[]) => any>(fn: T, delay: number, deps?: never[]): import("../utils/debounce").Debounced<T>;
|
|
@@ -2,6 +2,6 @@ import * as React from 'react';
|
|
|
2
2
|
/**
|
|
3
3
|
* Wrap `React.useLayoutEffect` which will not throw warning message in test env
|
|
4
4
|
*/
|
|
5
|
-
declare const useLayoutEffect: typeof React.
|
|
5
|
+
declare const useLayoutEffect: typeof React.useLayoutEffect;
|
|
6
6
|
export default useLayoutEffect;
|
|
7
7
|
export declare const useLayoutUpdateEffect: typeof React.useEffect;
|
package/dist/cjs/style/size.css
CHANGED
|
@@ -8,10 +8,17 @@
|
|
|
8
8
|
--yee-z-index-message: 1100; /* L6 全局反馈 */
|
|
9
9
|
--yee-z-index-max: 1110; /* L7 最顶层 */
|
|
10
10
|
|
|
11
|
+
/* common size */
|
|
12
|
+
--yee-popup-arrow-width: 8px;
|
|
13
|
+
--yee-popup-arrow-height: 8px;
|
|
14
|
+
--yee-popup-border-radius: 4px;
|
|
15
|
+
--yee-popup-arrow-translate-y: 50%;
|
|
16
|
+
--yee-popup-arrow-rotate: -135deg;
|
|
17
|
+
|
|
11
18
|
/* --Alert-- */
|
|
12
19
|
--yee-alert-close-top: 7px;
|
|
13
20
|
--yee-alert-close-right: 11px;
|
|
14
|
-
--yee-alert-icon-margin-right:
|
|
21
|
+
--yee-alert-icon-margin-right: 12px;
|
|
15
22
|
--yee-alert-title-font-size: 16px;
|
|
16
23
|
--yee-alert-message-font-size: 14px;
|
|
17
24
|
--yee-alert-banner-padding: 8px 12px;
|
|
@@ -26,7 +33,7 @@
|
|
|
26
33
|
--yee-anchor-static-content-padding: 8px 0;
|
|
27
34
|
--yee-anchor-static-item-active-width: 2px;
|
|
28
35
|
--yee-anchor-static-item-active-height: 22px;
|
|
29
|
-
--yee-anchor-vertical-line-left:
|
|
36
|
+
--yee-anchor-vertical-line-left: 0;
|
|
30
37
|
--yee-anchor-horizontal-item-padding: 6px 12px;
|
|
31
38
|
--yee-anchor-nav-arrow-left: -8px;
|
|
32
39
|
--yee-anchor-nav-arrow-height: 80px;
|
|
@@ -376,6 +383,8 @@
|
|
|
376
383
|
--yee-popover-header-font-weight: 500;
|
|
377
384
|
--yee-popover-header-font-size: 16px;
|
|
378
385
|
--yee-popover-header-line-height: 24px;
|
|
386
|
+
--yee-popover-arrow-width: var(--yee-popup-arrow-width);
|
|
387
|
+
--yee-popover-arrow-height: var(--yee-popup-arrow-height);
|
|
379
388
|
|
|
380
389
|
/* --Progress-- */
|
|
381
390
|
--yee-progress-text-width: 48px;
|
|
@@ -768,8 +777,8 @@
|
|
|
768
777
|
--yee-tooltip-z-index: var(--yee-z-index-tooltip);
|
|
769
778
|
--yee-tooltip-padding: 8px 12px;
|
|
770
779
|
--yee-tooltip-border-radius: 4px;
|
|
771
|
-
--yee-tooltip-arrow-width:
|
|
772
|
-
--yee-tooltip-arrow-height:
|
|
780
|
+
--yee-tooltip-arrow-width: var(--yee-popup-arrow-width);
|
|
781
|
+
--yee-tooltip-arrow-height: var(--yee-popup-arrow-height);
|
|
773
782
|
--yee-tooltip-arrow-border-radius: 0 0 2px 0;
|
|
774
783
|
--yee-tooltip-arrow-translate-y: 50%;
|
|
775
784
|
--yee-tooltip-arrow-rotate: -135deg;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* @rainbow-oh/yee-c CSS Variables
|
|
3
3
|
* Auto-generated, do not edit manually
|
|
4
|
-
* Generated on 2026-06-
|
|
4
|
+
* Generated on 2026-06-18T01:50:06.790Z
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
7
|
/* ========== color.css ========== */
|
|
@@ -1109,10 +1109,17 @@
|
|
|
1109
1109
|
--yee-z-index-message: 1100; /* L6 全局反馈 */
|
|
1110
1110
|
--yee-z-index-max: 1110; /* L7 最顶层 */
|
|
1111
1111
|
|
|
1112
|
+
/* common size */
|
|
1113
|
+
--yee-popup-arrow-width: 8px;
|
|
1114
|
+
--yee-popup-arrow-height: 8px;
|
|
1115
|
+
--yee-popup-border-radius: 4px;
|
|
1116
|
+
--yee-popup-arrow-translate-y: 50%;
|
|
1117
|
+
--yee-popup-arrow-rotate: -135deg;
|
|
1118
|
+
|
|
1112
1119
|
/* --Alert-- */
|
|
1113
1120
|
--yee-alert-close-top: 7px;
|
|
1114
1121
|
--yee-alert-close-right: 11px;
|
|
1115
|
-
--yee-alert-icon-margin-right:
|
|
1122
|
+
--yee-alert-icon-margin-right: 12px;
|
|
1116
1123
|
--yee-alert-title-font-size: 16px;
|
|
1117
1124
|
--yee-alert-message-font-size: 14px;
|
|
1118
1125
|
--yee-alert-banner-padding: 8px 12px;
|
|
@@ -1127,7 +1134,7 @@
|
|
|
1127
1134
|
--yee-anchor-static-content-padding: 8px 0;
|
|
1128
1135
|
--yee-anchor-static-item-active-width: 2px;
|
|
1129
1136
|
--yee-anchor-static-item-active-height: 22px;
|
|
1130
|
-
--yee-anchor-vertical-line-left:
|
|
1137
|
+
--yee-anchor-vertical-line-left: 0;
|
|
1131
1138
|
--yee-anchor-horizontal-item-padding: 6px 12px;
|
|
1132
1139
|
--yee-anchor-nav-arrow-left: -8px;
|
|
1133
1140
|
--yee-anchor-nav-arrow-height: 80px;
|
|
@@ -1477,6 +1484,8 @@
|
|
|
1477
1484
|
--yee-popover-header-font-weight: 500;
|
|
1478
1485
|
--yee-popover-header-font-size: 16px;
|
|
1479
1486
|
--yee-popover-header-line-height: 24px;
|
|
1487
|
+
--yee-popover-arrow-width: var(--yee-popup-arrow-width);
|
|
1488
|
+
--yee-popover-arrow-height: var(--yee-popup-arrow-height);
|
|
1480
1489
|
|
|
1481
1490
|
/* --Progress-- */
|
|
1482
1491
|
--yee-progress-text-width: 48px;
|
|
@@ -1869,8 +1878,8 @@
|
|
|
1869
1878
|
--yee-tooltip-z-index: var(--yee-z-index-tooltip);
|
|
1870
1879
|
--yee-tooltip-padding: 8px 12px;
|
|
1871
1880
|
--yee-tooltip-border-radius: 4px;
|
|
1872
|
-
--yee-tooltip-arrow-width:
|
|
1873
|
-
--yee-tooltip-arrow-height:
|
|
1881
|
+
--yee-tooltip-arrow-width: var(--yee-popup-arrow-width);
|
|
1882
|
+
--yee-tooltip-arrow-height: var(--yee-popup-arrow-height);
|
|
1874
1883
|
--yee-tooltip-arrow-border-radius: 0 0 2px 0;
|
|
1875
1884
|
--yee-tooltip-arrow-translate-y: 50%;
|
|
1876
1885
|
--yee-tooltip-arrow-rotate: -135deg;
|
|
@@ -1,2 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
type AnyFn = (...args: any[]) => any;
|
|
2
|
+
export type Debounced<T extends AnyFn> = ((...args: Parameters<T>) => void) & {
|
|
3
|
+
/** Cancel any pending invocation. */
|
|
4
|
+
cancel: () => void;
|
|
5
|
+
};
|
|
6
|
+
declare function debounce<T extends AnyFn>(fn: T, delay: number): Debounced<T>;
|
|
2
7
|
export default debounce;
|
|
@@ -30,13 +30,21 @@ function debounce(fn, delay) {
|
|
|
30
30
|
throw new Error("Expected delay to be a positive number");
|
|
31
31
|
}
|
|
32
32
|
let timer = void 0;
|
|
33
|
-
|
|
33
|
+
const debounced = function(...args) {
|
|
34
34
|
if (timer !== void 0) {
|
|
35
35
|
clearTimeout(timer);
|
|
36
36
|
}
|
|
37
37
|
timer = setTimeout(() => {
|
|
38
|
+
timer = void 0;
|
|
38
39
|
fn.apply(this, args);
|
|
39
40
|
}, delay);
|
|
40
41
|
};
|
|
42
|
+
debounced.cancel = () => {
|
|
43
|
+
if (timer !== void 0) {
|
|
44
|
+
clearTimeout(timer);
|
|
45
|
+
timer = void 0;
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
return debounced;
|
|
41
49
|
}
|
|
42
50
|
var debounce_default = debounce;
|
package/dist/cjs/version.d.ts
CHANGED
package/dist/cjs/version.js
CHANGED
package/dist/esm/Alert/alert.js
CHANGED
|
@@ -17,20 +17,36 @@ var ICON_STROKE_WIDTH = 1.5; // Icon stroke width
|
|
|
17
17
|
|
|
18
18
|
var iconMap = {
|
|
19
19
|
info: {
|
|
20
|
-
small: /*#__PURE__*/React.createElement(Info,
|
|
21
|
-
|
|
20
|
+
small: /*#__PURE__*/React.createElement(Info, {
|
|
21
|
+
size: 16
|
|
22
|
+
}),
|
|
23
|
+
large: /*#__PURE__*/React.createElement(Info, {
|
|
24
|
+
size: 24
|
|
25
|
+
})
|
|
22
26
|
},
|
|
23
27
|
success: {
|
|
24
|
-
small: /*#__PURE__*/React.createElement(CircleCheckBig,
|
|
25
|
-
|
|
28
|
+
small: /*#__PURE__*/React.createElement(CircleCheckBig, {
|
|
29
|
+
size: 16
|
|
30
|
+
}),
|
|
31
|
+
large: /*#__PURE__*/React.createElement(CircleCheckBig, {
|
|
32
|
+
size: 24
|
|
33
|
+
})
|
|
26
34
|
},
|
|
27
35
|
warning: {
|
|
28
|
-
small: /*#__PURE__*/React.createElement(CircleAlert,
|
|
29
|
-
|
|
36
|
+
small: /*#__PURE__*/React.createElement(CircleAlert, {
|
|
37
|
+
size: 16
|
|
38
|
+
}),
|
|
39
|
+
large: /*#__PURE__*/React.createElement(CircleAlert, {
|
|
40
|
+
size: 24
|
|
41
|
+
})
|
|
30
42
|
},
|
|
31
43
|
error: {
|
|
32
|
-
small: /*#__PURE__*/React.createElement(CircleX,
|
|
33
|
-
|
|
44
|
+
small: /*#__PURE__*/React.createElement(CircleX, {
|
|
45
|
+
size: 16
|
|
46
|
+
}),
|
|
47
|
+
large: /*#__PURE__*/React.createElement(CircleX, {
|
|
48
|
+
size: 24
|
|
49
|
+
})
|
|
34
50
|
}
|
|
35
51
|
};
|
|
36
52
|
var Alert = function Alert(baseprops) {
|