@v-c/tree 1.0.1 → 1.0.3

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/TreeNode.cjs DELETED
@@ -1,463 +0,0 @@
1
- Object.defineProperties(exports, {
2
- __esModule: { value: true },
3
- [Symbol.toStringTag]: { value: "Module" }
4
- });
5
- const require_rolldown_runtime = require("./_virtual/rolldown_runtime.cjs");
6
- const require_Indent = require("./Indent.cjs");
7
- const require_contextTypes = require("./contextTypes.cjs");
8
- const require_keyUtil = require("./utils/keyUtil.cjs");
9
- const require_treeUtil = require("./utils/treeUtil.cjs");
10
- let vue = require("vue");
11
- let _v_c_util = require("@v-c/util");
12
- let _v_c_util_dist_pickAttrs = require("@v-c/util/dist/pickAttrs");
13
- _v_c_util_dist_pickAttrs = require_rolldown_runtime.__toESM(_v_c_util_dist_pickAttrs);
14
- let _v_c_util_dist_props_util = require("@v-c/util/dist/props-util");
15
- var ICON_OPEN = "open";
16
- var ICON_CLOSE = "close";
17
- var defaultTitle = "---";
18
- var TreeNode = /* @__PURE__ */ (0, vue.defineComponent)((props, { attrs }) => {
19
- const context = (0, vue.inject)(require_contextTypes.TreeContextKey, null);
20
- const unstableContext = (0, vue.inject)(require_contextTypes.UnstableContextKey, {});
21
- const nodeId = (0, vue.computed)(() => require_treeUtil.getTreeNodeId(props.treeId || "", props.eventKey));
22
- const dragNodeHighlight = (0, vue.ref)(false);
23
- const isDisabled = (0, vue.computed)(() => {
24
- return !!(context.disabled || props.disabled || unstableContext.nodeDisabled?.(props.data));
25
- });
26
- const isCheckable = (0, vue.computed)(() => {
27
- if (!context.checkable || props.checkable === false) return false;
28
- return context.checkable;
29
- });
30
- const isSelectable = (0, vue.computed)(() => {
31
- if (typeof props.selectable === "boolean") return props.selectable;
32
- return context.selectable;
33
- });
34
- const hasChildren = (0, vue.computed)(() => {
35
- const { children } = require_keyUtil.default(context.keyEntities, props.eventKey) || {};
36
- return Boolean((children || []).length);
37
- });
38
- const memoizedIsLeaf = (0, vue.computed)(() => {
39
- return require_treeUtil.isLeafNode(props.isLeaf, context.loadData, hasChildren.value, props.loaded);
40
- });
41
- (0, vue.watchEffect)(() => {
42
- if (props.loading) return;
43
- if (typeof context.loadData === "function" && props.expanded && !memoizedIsLeaf.value && !props.loaded) context.onNodeLoad(require_treeUtil.convertNodePropsToEventData(props));
44
- });
45
- const nodeState = (0, vue.computed)(() => {
46
- if (memoizedIsLeaf.value) return null;
47
- return props.expanded ? ICON_OPEN : ICON_CLOSE;
48
- });
49
- const onSelect = (e) => {
50
- if (isDisabled.value) return;
51
- context.onNodeSelect(e, require_treeUtil.convertNodePropsToEventData(props));
52
- };
53
- const onCheck = (e) => {
54
- if (isDisabled.value) return;
55
- if (!isCheckable.value || props.disableCheckbox) return;
56
- context.onNodeCheck(e, require_treeUtil.convertNodePropsToEventData(props), !props.checked);
57
- };
58
- const onSelectorClick = (e) => {
59
- context.onNodeClick(e, require_treeUtil.convertNodePropsToEventData(props));
60
- if (isSelectable.value) onSelect(e);
61
- else onCheck(e);
62
- };
63
- const onSelectorDoubleClick = (e) => {
64
- context.onNodeDoubleClick(e, require_treeUtil.convertNodePropsToEventData(props));
65
- };
66
- const onMouseEnter = (e) => {
67
- context.onNodeMouseEnter(e, require_treeUtil.convertNodePropsToEventData(props));
68
- };
69
- const onMouseLeave = (e) => {
70
- context.onNodeMouseLeave(e, require_treeUtil.convertNodePropsToEventData(props));
71
- };
72
- const onContextMenu = (e) => {
73
- context.onNodeContextMenu(e, require_treeUtil.convertNodePropsToEventData(props));
74
- };
75
- const isDraggable = (0, vue.computed)(() => {
76
- return !!(context.draggable && (!context.draggable.nodeDraggable || context.draggable.nodeDraggable(props.data)));
77
- });
78
- const onDragStart = (e) => {
79
- e.stopPropagation();
80
- dragNodeHighlight.value = true;
81
- context.onNodeDragStart(e, props);
82
- try {
83
- e.dataTransfer?.setData("text/plain", "");
84
- } catch {}
85
- };
86
- const onDragEnter = (e) => {
87
- e.preventDefault();
88
- e.stopPropagation();
89
- context.onNodeDragEnter(e, props);
90
- };
91
- const onDragOver = (e) => {
92
- e.preventDefault();
93
- e.stopPropagation();
94
- context.onNodeDragOver(e, props);
95
- };
96
- const onDragLeave = (e) => {
97
- e.stopPropagation();
98
- context.onNodeDragLeave(e, props);
99
- };
100
- const onDragEnd = (e) => {
101
- e.stopPropagation();
102
- dragNodeHighlight.value = false;
103
- context.onNodeDragEnd(e, props);
104
- };
105
- const onDrop = (e) => {
106
- e.preventDefault();
107
- e.stopPropagation();
108
- dragNodeHighlight.value = false;
109
- context.onNodeDrop(e, props);
110
- };
111
- const onExpand = (e) => {
112
- if (props.loading) return;
113
- context.onNodeExpand(e, require_treeUtil.convertNodePropsToEventData(props));
114
- };
115
- const renderSwitcherIconDom = (isInternalLeaf) => {
116
- const switcherIcon = props.switcherIcon || context.switcherIcon;
117
- if (typeof switcherIcon === "function") return switcherIcon({
118
- ...props,
119
- isLeaf: isInternalLeaf
120
- });
121
- return switcherIcon;
122
- };
123
- const renderSwitcher = () => {
124
- if (memoizedIsLeaf.value) {
125
- const switcherIconDom$1 = renderSwitcherIconDom(true);
126
- return switcherIconDom$1 !== false ? (0, vue.createVNode)("span", { "class": (0, _v_c_util.clsx)(`${context.prefixCls}-switcher`, `${context.prefixCls}-switcher-noop`) }, [switcherIconDom$1]) : null;
127
- }
128
- const switcherIconDom = renderSwitcherIconDom(false);
129
- return switcherIconDom !== false ? (0, vue.createVNode)("span", {
130
- "onClick": onExpand,
131
- "class": (0, _v_c_util.clsx)(`${context.prefixCls}-switcher`, `${context.prefixCls}-switcher_${props.expanded ? ICON_OPEN : ICON_CLOSE}`)
132
- }, [switcherIconDom]) : null;
133
- };
134
- const iconNode = (0, vue.computed)(() => {
135
- return (0, vue.createVNode)("span", {
136
- "class": (0, _v_c_util.clsx)(context.classNames?.itemIcon, `${context.prefixCls}-iconEle`, `${context.prefixCls}-icon__${nodeState.value || "docu"}`, { [`${context.prefixCls}-icon_loading`]: props.loading }),
137
- "style": context.styles?.itemIcon
138
- }, null);
139
- });
140
- const dropIndicatorNode = (0, vue.computed)(() => {
141
- const rootDraggable = Boolean(context.draggable);
142
- if (!(!props.disabled && rootDraggable && context.dragOverNodeKey === props.eventKey)) return null;
143
- if (context.dropPosition === null || context.dropLevelOffset === null || context.indent === null) return null;
144
- return context.dropIndicatorRender({
145
- dropPosition: context.dropPosition,
146
- dropLevelOffset: context.dropLevelOffset,
147
- indent: context.indent,
148
- prefixCls: context.prefixCls,
149
- direction: context.direction
150
- });
151
- });
152
- const checkboxNode = (0, vue.computed)(() => {
153
- if (!isCheckable.value) return null;
154
- const { checked, halfChecked, disableCheckbox } = props;
155
- const prefixCls = context.prefixCls;
156
- const custom = typeof isCheckable.value !== "boolean" ? isCheckable.value : null;
157
- return (0, vue.createVNode)("span", {
158
- "class": (0, _v_c_util.clsx)(`${prefixCls}-checkbox`, {
159
- [`${prefixCls}-checkbox-checked`]: checked,
160
- [`${prefixCls}-checkbox-indeterminate`]: !checked && halfChecked,
161
- [`${prefixCls}-checkbox-disabled`]: isDisabled.value || disableCheckbox
162
- }),
163
- "onClick": onCheck,
164
- "role": "checkbox",
165
- "aria-checked": halfChecked ? "mixed" : checked,
166
- "aria-disabled": isDisabled.value || disableCheckbox,
167
- "aria-labelledby": nodeId.value
168
- }, [custom]);
169
- });
170
- const selectorNode = (0, vue.computed)(() => {
171
- const title = props.title ?? defaultTitle;
172
- const wrapClass = `${context.prefixCls}-node-content-wrapper`;
173
- let icon;
174
- if (context.showIcon) {
175
- const currentIcon = props.icon || context.icon;
176
- icon = currentIcon ? (0, vue.createVNode)("span", {
177
- "class": (0, _v_c_util.clsx)(context.classNames?.itemIcon, `${context.prefixCls}-iconEle`, `${context.prefixCls}-icon__customize`),
178
- "style": context.styles?.itemIcon
179
- }, [typeof currentIcon === "function" ? currentIcon(props) : currentIcon]) : iconNode.value;
180
- } else if (context.loadData && props.loading) icon = iconNode.value;
181
- let titleNode;
182
- if (typeof title === "function") titleNode = title(props.data);
183
- else if (context.titleRender) {
184
- let _titleRender = context.titleRender(props.data);
185
- _titleRender = Array.isArray(_titleRender) ? _titleRender : [_titleRender];
186
- _titleRender = (0, _v_c_util_dist_props_util.filterEmpty)(_titleRender).filter(Boolean);
187
- titleNode = _titleRender.length ? _titleRender : title;
188
- } else titleNode = title;
189
- return (0, vue.createVNode)("span", {
190
- "title": typeof title === "string" ? title : "",
191
- "class": (0, _v_c_util.clsx)(wrapClass, `${wrapClass}-${nodeState.value || "normal"}`, { [`${context.prefixCls}-node-selected`]: !isDisabled.value && (props.selected || dragNodeHighlight.value) }),
192
- "onMouseenter": onMouseEnter,
193
- "onMouseleave": onMouseLeave,
194
- "onContextmenu": onContextMenu,
195
- "onClick": onSelectorClick,
196
- "onDblclick": onSelectorDoubleClick
197
- }, [
198
- icon,
199
- (0, vue.createVNode)("span", {
200
- "class": (0, _v_c_util.clsx)(`${context.prefixCls}-title`, context.classNames?.itemTitle),
201
- "style": context.styles?.itemTitle
202
- }, [titleNode]),
203
- dropIndicatorNode.value
204
- ]);
205
- });
206
- const dragHandlerNode = (0, vue.computed)(() => {
207
- if (!context.draggable?.icon) return null;
208
- return (0, vue.createVNode)("span", { "class": `${context.prefixCls}-draggable-icon` }, [context.draggable.icon]);
209
- });
210
- const dataOrAriaAttributeProps = (0, vue.computed)(() => (0, _v_c_util_dist_pickAttrs.default)(attrs, {
211
- aria: true,
212
- data: true
213
- }));
214
- const level = (0, vue.computed)(() => (require_keyUtil.default(context.keyEntities, props.eventKey) || {}).level || 0);
215
- const isEndNode = (0, vue.computed)(() => !!props.isEnd?.[props.isEnd.length - 1]);
216
- const draggableWithoutDisabled = (0, vue.computed)(() => !isDisabled.value && isDraggable.value);
217
- return () => {
218
- const filterNode = context.filterTreeNode?.(require_treeUtil.convertNodePropsToEventData(props));
219
- return (0, vue.createVNode)("div", (0, vue.mergeProps)({
220
- "role": "treeitem",
221
- "id": nodeId.value,
222
- "aria-expanded": memoizedIsLeaf.value ? void 0 : props.expanded,
223
- "aria-selected": isSelectable.value && !isDisabled.value ? props.selected : void 0,
224
- "aria-checked": isCheckable.value && !isDisabled.value ? props.halfChecked ? "mixed" : props.checked : void 0,
225
- "aria-disabled": isDisabled.value,
226
- "class": (0, _v_c_util.clsx)(props.className, `${context.prefixCls}-treenode`, context.classNames?.item, {
227
- [`${context.prefixCls}-treenode-disabled`]: isDisabled.value,
228
- [`${context.prefixCls}-treenode-switcher-${props.expanded ? "open" : "close"}`]: !memoizedIsLeaf.value,
229
- [`${context.prefixCls}-treenode-checkbox-checked`]: props.checked,
230
- [`${context.prefixCls}-treenode-checkbox-indeterminate`]: props.halfChecked,
231
- [`${context.prefixCls}-treenode-selected`]: props.selected,
232
- [`${context.prefixCls}-treenode-loading`]: props.loading,
233
- [`${context.prefixCls}-treenode-active`]: props.active,
234
- [`${context.prefixCls}-treenode-leaf-last`]: isEndNode.value,
235
- [`${context.prefixCls}-treenode-draggable`]: isDraggable.value,
236
- "dragging": context.draggingNodeKey === props.eventKey,
237
- "drop-target": context.dropTargetKey === props.eventKey,
238
- "drop-container": context.dropContainerKey === props.eventKey,
239
- "drag-over": !isDisabled.value && props.dragOver,
240
- "drag-over-gap-top": !isDisabled.value && props.dragOverGapTop,
241
- "drag-over-gap-bottom": !isDisabled.value && props.dragOverGapBottom,
242
- "filter-node": !!filterNode,
243
- [`${context.prefixCls}-treenode-leaf`]: memoizedIsLeaf.value
244
- }),
245
- "style": {
246
- ...props.style || {},
247
- ...context.styles?.item || {}
248
- },
249
- "draggable": draggableWithoutDisabled.value,
250
- "onDragstart": draggableWithoutDisabled.value ? onDragStart : void 0,
251
- "onDragenter": isDraggable.value ? onDragEnter : void 0,
252
- "onDragover": isDraggable.value ? onDragOver : void 0,
253
- "onDragleave": isDraggable.value ? onDragLeave : void 0,
254
- "onDrop": isDraggable.value ? onDrop : void 0,
255
- "onDragend": isDraggable.value ? onDragEnd : void 0,
256
- "onMousemove": props.onMouseMove
257
- }, dataOrAriaAttributeProps.value), [
258
- (0, vue.createVNode)(require_Indent.default, {
259
- "prefixCls": context.prefixCls,
260
- "level": level.value,
261
- "isStart": props.isStart || [],
262
- "isEnd": props.isEnd || []
263
- }, null),
264
- dragHandlerNode.value,
265
- renderSwitcher(),
266
- checkboxNode.value,
267
- selectorNode.value
268
- ]);
269
- };
270
- }, {
271
- props: {
272
- eventKey: {
273
- type: [String, Number],
274
- required: false,
275
- default: void 0
276
- },
277
- prefixCls: {
278
- type: String,
279
- required: false,
280
- default: void 0
281
- },
282
- className: {
283
- type: String,
284
- required: false,
285
- default: void 0
286
- },
287
- style: {
288
- type: Object,
289
- required: false,
290
- default: void 0
291
- },
292
- id: {
293
- type: [String, Number],
294
- required: false,
295
- default: void 0
296
- },
297
- treeId: {
298
- type: String,
299
- required: false,
300
- default: void 0
301
- },
302
- expanded: {
303
- type: Boolean,
304
- required: false,
305
- default: void 0
306
- },
307
- selected: {
308
- type: Boolean,
309
- required: false,
310
- default: void 0
311
- },
312
- checked: {
313
- type: Boolean,
314
- required: false,
315
- default: void 0
316
- },
317
- loaded: {
318
- type: Boolean,
319
- required: false,
320
- default: void 0
321
- },
322
- loading: {
323
- type: Boolean,
324
- required: false,
325
- default: void 0
326
- },
327
- halfChecked: {
328
- type: Boolean,
329
- required: false,
330
- default: void 0
331
- },
332
- title: {
333
- type: [
334
- Object,
335
- Function,
336
- String,
337
- Number,
338
- null,
339
- Boolean,
340
- Array
341
- ],
342
- required: false,
343
- default: void 0
344
- },
345
- dragOver: {
346
- type: Boolean,
347
- required: false,
348
- default: void 0
349
- },
350
- dragOverGapTop: {
351
- type: Boolean,
352
- required: false,
353
- default: void 0
354
- },
355
- dragOverGapBottom: {
356
- type: Boolean,
357
- required: false,
358
- default: void 0
359
- },
360
- pos: {
361
- type: String,
362
- required: false,
363
- default: void 0
364
- },
365
- domRef: {
366
- required: false,
367
- default: void 0
368
- },
369
- data: {
370
- required: false,
371
- default: void 0
372
- },
373
- isStart: {
374
- type: Array,
375
- required: false,
376
- default: void 0
377
- },
378
- isEnd: {
379
- type: Array,
380
- required: false,
381
- default: void 0
382
- },
383
- active: {
384
- type: Boolean,
385
- required: false,
386
- default: void 0
387
- },
388
- onMouseMove: {
389
- type: Function,
390
- required: false,
391
- default: void 0
392
- },
393
- isLeaf: {
394
- type: Boolean,
395
- required: false,
396
- default: void 0
397
- },
398
- checkable: {
399
- type: Boolean,
400
- required: false,
401
- default: void 0
402
- },
403
- selectable: {
404
- type: Boolean,
405
- required: false,
406
- default: void 0
407
- },
408
- disabled: {
409
- type: Boolean,
410
- required: false,
411
- default: void 0
412
- },
413
- disableCheckbox: {
414
- type: Boolean,
415
- required: false,
416
- default: void 0
417
- },
418
- icon: {
419
- type: [
420
- Object,
421
- Function,
422
- String,
423
- Number,
424
- null,
425
- Boolean,
426
- Array
427
- ],
428
- required: false,
429
- default: void 0
430
- },
431
- switcherIcon: {
432
- type: [
433
- Object,
434
- Function,
435
- String,
436
- Number,
437
- null,
438
- Boolean,
439
- Array
440
- ],
441
- required: false,
442
- default: void 0
443
- },
444
- children: {
445
- type: [
446
- Object,
447
- Function,
448
- String,
449
- Number,
450
- null,
451
- Boolean,
452
- Array
453
- ],
454
- required: false,
455
- default: void 0
456
- }
457
- },
458
- name: "TreeNode",
459
- inheritAttrs: false
460
- });
461
- TreeNode.isTreeNode = true;
462
- var TreeNode_default = TreeNode;
463
- exports.default = TreeNode_default;
@@ -1,21 +0,0 @@
1
- var __create = Object.create;
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __getProtoOf = Object.getPrototypeOf;
6
- var __hasOwnProp = Object.prototype.hasOwnProperty;
7
- var __copyProps = (to, from, except, desc) => {
8
- if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
9
- key = keys[i];
10
- if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
11
- get: ((k) => from[k]).bind(null, key),
12
- enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
13
- });
14
- }
15
- return to;
16
- };
17
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
18
- value: mod,
19
- enumerable: true
20
- }) : target, mod));
21
- exports.__toESM = __toESM;
@@ -1,5 +0,0 @@
1
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const TreeContextKey = Symbol("TreeContext");
3
- const UnstableContextKey = Symbol("UnstableTreeContext");
4
- exports.TreeContextKey = TreeContextKey;
5
- exports.UnstableContextKey = UnstableContextKey;
package/dist/index.cjs DELETED
@@ -1,31 +0,0 @@
1
- Object.defineProperties(exports, {
2
- __esModule: { value: true },
3
- [Symbol.toStringTag]: { value: "Module" }
4
- });
5
- const require_contextTypes = require("./contextTypes.cjs");
6
- const require_treeUtil = require("./utils/treeUtil.cjs");
7
- const require_TreeNode = require("./TreeNode.cjs");
8
- const require_util = require("./util.cjs");
9
- const require_conductUtil = require("./utils/conductUtil.cjs");
10
- const require_Tree = require("./Tree.cjs");
11
- var ExportTree = require_Tree.default;
12
- ExportTree.TreeNode = require_TreeNode.default;
13
- var src_default = ExportTree;
14
- exports.TreeNode = require_TreeNode.default;
15
- exports.UnstableContextKey = require_contextTypes.UnstableContextKey;
16
- exports.arrAdd = require_util.arrAdd;
17
- exports.arrDel = require_util.arrDel;
18
- exports.calcDropPosition = require_util.calcDropPosition;
19
- exports.calcSelectedKeys = require_util.calcSelectedKeys;
20
- exports.conductCheck = require_conductUtil.conductCheck;
21
- exports.conductExpandParent = require_util.conductExpandParent;
22
- exports.convertDataToEntities = require_treeUtil.convertDataToEntities;
23
- exports.convertTreeToData = require_treeUtil.convertTreeToData;
24
- exports.default = src_default;
25
- exports.fillFieldNames = require_treeUtil.fillFieldNames;
26
- exports.flattenTreeData = require_treeUtil.flattenTreeData;
27
- exports.getDragChildrenKeys = require_util.getDragChildrenKeys;
28
- exports.isFirstChild = require_util.isFirstChild;
29
- exports.isLastChild = require_util.isLastChild;
30
- exports.parseCheckedKeys = require_util.parseCheckedKeys;
31
- exports.posToArr = require_util.posToArr;
package/dist/inter.cjs DELETED
@@ -1,3 +0,0 @@
1
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- var Key = class {};
3
- exports.Key = Key;
@@ -1 +0,0 @@
1
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
package/dist/util.cjs DELETED
@@ -1,159 +0,0 @@
1
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_rolldown_runtime = require("./_virtual/rolldown_runtime.cjs");
3
- const require_keyUtil = require("./utils/keyUtil.cjs");
4
- let _v_c_util_dist_warning = require("@v-c/util/dist/warning");
5
- _v_c_util_dist_warning = require_rolldown_runtime.__toESM(_v_c_util_dist_warning);
6
- function arrDel(list, value) {
7
- if (!list) return [];
8
- const clone = list.slice();
9
- const index = clone.indexOf(value);
10
- if (index >= 0) clone.splice(index, 1);
11
- return clone;
12
- }
13
- function arrAdd(list, value) {
14
- const clone = (list || []).slice();
15
- if (!clone.includes(value)) clone.push(value);
16
- return clone;
17
- }
18
- function posToArr(pos) {
19
- return pos.split("-");
20
- }
21
- function getDragChildrenKeys(dragNodeKey, keyEntities) {
22
- const dragChildrenKeys = [];
23
- const entity = require_keyUtil.default(keyEntities, dragNodeKey);
24
- function dig(list = []) {
25
- list.forEach(({ key, children }) => {
26
- dragChildrenKeys.push(key);
27
- dig(children);
28
- });
29
- }
30
- dig(entity?.children);
31
- return dragChildrenKeys;
32
- }
33
- function isLastChild(treeNodeEntity) {
34
- if (treeNodeEntity.parent) {
35
- const posArr = posToArr(treeNodeEntity.pos);
36
- return Number(posArr[posArr.length - 1]) === (treeNodeEntity.parent.children || []).length - 1;
37
- }
38
- return false;
39
- }
40
- function isFirstChild(treeNodeEntity) {
41
- const posArr = posToArr(treeNodeEntity.pos);
42
- return Number(posArr[posArr.length - 1]) === 0;
43
- }
44
- function calcDropPosition(event, dragNodeProps, targetNodeProps, indent, startMousePosition, allowDrop, flattenedNodes, keyEntities, expandKeys, direction) {
45
- const { clientX, clientY } = event;
46
- const { top, height } = event.target.getBoundingClientRect();
47
- const rawDropLevelOffset = ((direction === "rtl" ? -1 : 1) * ((startMousePosition?.x || 0) - clientX) - 12) / indent;
48
- const filteredExpandKeys = expandKeys.filter((key) => (require_keyUtil.default(keyEntities, key)?.children || []).length);
49
- let abstractDropNodeEntity = require_keyUtil.default(keyEntities, targetNodeProps.eventKey);
50
- if (clientY < top + height / 2) {
51
- const nodeIndex = flattenedNodes.findIndex(({ key }) => key === abstractDropNodeEntity.key);
52
- const prevNodeKey = flattenedNodes[nodeIndex <= 0 ? 0 : nodeIndex - 1].key;
53
- abstractDropNodeEntity = require_keyUtil.default(keyEntities, prevNodeKey);
54
- }
55
- const initialAbstractDropNodeKey = abstractDropNodeEntity.key;
56
- const abstractDragOverEntity = abstractDropNodeEntity;
57
- const dragOverNodeKey = abstractDropNodeEntity.key;
58
- let dropPosition = 0;
59
- let dropLevelOffset = 0;
60
- if (!filteredExpandKeys.includes(initialAbstractDropNodeKey)) for (let i = 0; i < rawDropLevelOffset; i += 1) if (isLastChild(abstractDropNodeEntity)) {
61
- abstractDropNodeEntity = abstractDropNodeEntity.parent;
62
- dropLevelOffset += 1;
63
- } else break;
64
- const abstractDragDataNode = dragNodeProps.data;
65
- const abstractDropDataNode = abstractDropNodeEntity.node;
66
- let dropAllowed = true;
67
- if (isFirstChild(abstractDropNodeEntity) && abstractDropNodeEntity.level === 0 && clientY < top + height / 2 && allowDrop({
68
- dragNode: abstractDragDataNode,
69
- dropNode: abstractDropDataNode,
70
- dropPosition: -1
71
- }) && abstractDropNodeEntity.key === targetNodeProps.eventKey) dropPosition = -1;
72
- else if ((abstractDragOverEntity.children || []).length && filteredExpandKeys.includes(dragOverNodeKey)) if (allowDrop({
73
- dragNode: abstractDragDataNode,
74
- dropNode: abstractDropDataNode,
75
- dropPosition: 0
76
- })) dropPosition = 0;
77
- else dropAllowed = false;
78
- else if (dropLevelOffset === 0) if (rawDropLevelOffset > -1.5) if (allowDrop({
79
- dragNode: abstractDragDataNode,
80
- dropNode: abstractDropDataNode,
81
- dropPosition: 1
82
- })) dropPosition = 1;
83
- else dropAllowed = false;
84
- else if (allowDrop({
85
- dragNode: abstractDragDataNode,
86
- dropNode: abstractDropDataNode,
87
- dropPosition: 0
88
- })) dropPosition = 0;
89
- else if (allowDrop({
90
- dragNode: abstractDragDataNode,
91
- dropNode: abstractDropDataNode,
92
- dropPosition: 1
93
- })) dropPosition = 1;
94
- else dropAllowed = false;
95
- else if (allowDrop({
96
- dragNode: abstractDragDataNode,
97
- dropNode: abstractDropDataNode,
98
- dropPosition: 1
99
- })) dropPosition = 1;
100
- else dropAllowed = false;
101
- return {
102
- dropPosition,
103
- dropLevelOffset,
104
- dropTargetKey: abstractDropNodeEntity.key,
105
- dropTargetPos: abstractDropNodeEntity.pos,
106
- dragOverNodeKey,
107
- dropContainerKey: dropPosition === 0 ? null : abstractDropNodeEntity.parent?.key || null,
108
- dropAllowed
109
- };
110
- }
111
- function calcSelectedKeys(selectedKeys, { multiple }) {
112
- if (!selectedKeys) return void 0;
113
- if (multiple) return selectedKeys.slice();
114
- if (selectedKeys.length) return [selectedKeys[0]];
115
- return selectedKeys;
116
- }
117
- function parseCheckedKeys(keys) {
118
- if (!keys) return null;
119
- let keyProps;
120
- if (Array.isArray(keys)) keyProps = {
121
- checkedKeys: keys,
122
- halfCheckedKeys: void 0
123
- };
124
- else if (typeof keys === "object") keyProps = {
125
- checkedKeys: keys.checked || void 0,
126
- halfCheckedKeys: keys.halfChecked || void 0
127
- };
128
- else {
129
- (0, _v_c_util_dist_warning.default)(false, "`checkedKeys` is not an array or an object");
130
- return null;
131
- }
132
- return keyProps;
133
- }
134
- function conductExpandParent(keyList, keyEntities) {
135
- const expandedKeys = /* @__PURE__ */ new Set();
136
- function conductUp(key) {
137
- if (expandedKeys.has(key)) return;
138
- const entity = require_keyUtil.default(keyEntities, key);
139
- if (!entity) return;
140
- expandedKeys.add(key);
141
- const { parent, node } = entity;
142
- if (node.disabled) return;
143
- if (parent) conductUp(parent.key);
144
- }
145
- (keyList || []).forEach((key) => {
146
- conductUp(key);
147
- });
148
- return [...expandedKeys];
149
- }
150
- exports.arrAdd = arrAdd;
151
- exports.arrDel = arrDel;
152
- exports.calcDropPosition = calcDropPosition;
153
- exports.calcSelectedKeys = calcSelectedKeys;
154
- exports.conductExpandParent = conductExpandParent;
155
- exports.getDragChildrenKeys = getDragChildrenKeys;
156
- exports.isFirstChild = isFirstChild;
157
- exports.isLastChild = isLastChild;
158
- exports.parseCheckedKeys = parseCheckedKeys;
159
- exports.posToArr = posToArr;