@onereach/ui-components 8.21.0 → 8.21.1-beta.4033.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/bundled/v2/{OrTree-962e1cbd.js → OrTree-6428a410.js} +43 -14
- package/dist/bundled/v2/components/OrTreeV3/OrTree.js +1 -1
- package/dist/bundled/v2/components/OrTreeV3/index.js +1 -1
- package/dist/bundled/v2/components/OrTreeV3/types.d.ts +2 -0
- package/dist/bundled/v2/components/index.js +1 -1
- package/dist/bundled/v2/index.js +2 -2
- package/dist/bundled/v3/components/OrTreeV3/index.js +43 -14
- package/dist/bundled/v3/components/OrTreeV3/types.d.ts +2 -0
- package/dist/bundled/v3/index.js +1 -1
- package/dist/esm/v2/{OrTree-a485bc1d.js → OrTree-66f15e1f.js} +43 -14
- package/dist/esm/v2/components/index.js +1 -1
- package/dist/esm/v2/components/or-tree-v3/index.js +1 -1
- package/dist/esm/v2/components/or-tree-v3/partials/or-tree-node/OrTreeNode.vue.d.ts +2818 -2
- package/dist/esm/v2/components/or-tree-v3/partials/or-tree-node/styles.d.ts +1 -0
- package/dist/esm/v2/components/or-tree-v3/partials/or-tree-node/utils.d.ts +1 -1
- package/dist/esm/v2/components/or-tree-v3/types.d.ts +2 -0
- package/dist/esm/v2/index.js +1 -1
- package/dist/esm/v3/{OrTree-0a8d7804.js → OrTree-171145c6.js} +43 -14
- package/dist/esm/v3/components/index.js +1 -1
- package/dist/esm/v3/components/or-tree-v3/index.js +1 -1
- package/dist/esm/v3/components/or-tree-v3/partials/or-tree-node/OrTreeNode.vue.d.ts +3 -1
- package/dist/esm/v3/components/or-tree-v3/partials/or-tree-node/styles.d.ts +1 -0
- package/dist/esm/v3/components/or-tree-v3/partials/or-tree-node/utils.d.ts +1 -1
- package/dist/esm/v3/components/or-tree-v3/types.d.ts +2 -0
- package/dist/esm/v3/index.js +1 -1
- package/package.json +2 -3
- package/src/components/or-tree-v3/partials/or-tree-node/OrTreeNode.vue +32 -10
- package/src/components/or-tree-v3/partials/or-tree-node/styles.ts +22 -4
- package/src/components/or-tree-v3/partials/or-tree-node/utils.ts +3 -2
- package/src/components/or-tree-v3/types.ts +4 -0
|
@@ -16,6 +16,7 @@ function inRange(num, min, max) {
|
|
|
16
16
|
}
|
|
17
17
|
function getDropOffset(e) {
|
|
18
18
|
let canMiddleDrop = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
19
|
+
let isOpen = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
19
20
|
const {
|
|
20
21
|
clientY
|
|
21
22
|
} = e;
|
|
@@ -24,7 +25,8 @@ function getDropOffset(e) {
|
|
|
24
25
|
height
|
|
25
26
|
} = e.target.getBoundingClientRect();
|
|
26
27
|
const offset = Math.max((clientY - top) / height, 0); // sometimes offset is negative
|
|
27
|
-
|
|
28
|
+
const expandedMiddleBottomOffest = isOpen ? 1 : 0.7;
|
|
29
|
+
if (canMiddleDrop && inRange(offset, 0.4, expandedMiddleBottomOffest)) {
|
|
28
30
|
return TreeNodeDropPosition.Middle;
|
|
29
31
|
} else if (inRange(offset, 0, 0.5)) {
|
|
30
32
|
return TreeNodeDropPosition.Top;
|
|
@@ -55,15 +57,25 @@ const TreeNodeDragIndicator = [
|
|
|
55
57
|
// Interaction
|
|
56
58
|
'pointer-events-none'];
|
|
57
59
|
const TreeNodeDragIndicatorPosition = {
|
|
58
|
-
top: [
|
|
59
|
-
|
|
60
|
+
top: [
|
|
61
|
+
// Layout
|
|
62
|
+
'top-[-1px]'],
|
|
63
|
+
middle: [
|
|
64
|
+
// Layout
|
|
65
|
+
'top-[-1px]', 'left-[0px]', 'w-full', '!h-[calc(100%+2px)]',
|
|
60
66
|
// Theme
|
|
61
|
-
'bg-transparent', 'border-
|
|
62
|
-
bottom: [
|
|
67
|
+
'bg-transparent', 'border-1', 'border-primary-hover', 'dark:border-primary-hover-dark'],
|
|
68
|
+
bottom: [
|
|
69
|
+
// Layout
|
|
70
|
+
'bottom-[-1px]']
|
|
63
71
|
};
|
|
72
|
+
const ChildrenDragoverStyles = [
|
|
73
|
+
// Layout
|
|
74
|
+
'top-[-1px]', 'left-[0px]', 'w-full', '!h-[calc(100%+2px)]',
|
|
75
|
+
// Theme
|
|
76
|
+
'bg-transparent', 'border-1', 'border-primary-hover', 'dark:border-primary-hover-dark'];
|
|
64
77
|
|
|
65
78
|
var script$1 = defineComponent({
|
|
66
|
-
name: 'OrTreeNode',
|
|
67
79
|
components: {
|
|
68
80
|
OrButton: __vue_component__$2,
|
|
69
81
|
OrIcon: __vue_component__$3
|
|
@@ -95,6 +107,7 @@ var script$1 = defineComponent({
|
|
|
95
107
|
}
|
|
96
108
|
},
|
|
97
109
|
emits: ['drop', 'dragstart', 'click', 'expand', 'collapse', 'contextmenu'],
|
|
110
|
+
expose: ['isDragOver'],
|
|
98
111
|
setup(props, _ref) {
|
|
99
112
|
let {
|
|
100
113
|
emit
|
|
@@ -102,15 +115,17 @@ var script$1 = defineComponent({
|
|
|
102
115
|
// Refs
|
|
103
116
|
const root = ref();
|
|
104
117
|
const nodeRoot = ref();
|
|
118
|
+
const childrenTreeNodes = ref([]);
|
|
105
119
|
// State
|
|
106
120
|
const isDragOver = ref(false);
|
|
107
121
|
const isDrag = ref(false);
|
|
108
|
-
const
|
|
122
|
+
const dragOverPosition = ref('top');
|
|
109
123
|
const hasChildren = computed(() => !!props.node.children && props.node.children.length > 0);
|
|
110
124
|
const [isOpen, setIsOpen] = useToggle(props.expanded);
|
|
111
125
|
const hasCollapseTrigger = computed(() => props.node.collapsible || hasChildren.value);
|
|
112
126
|
const isLeaf = computed(() => !hasChildren.value);
|
|
113
127
|
const canDrag = computed(() => props.draggable !== false && props.node.draggable !== false);
|
|
128
|
+
const hasDragoverChildren = computed(() => childrenTreeNodes.value.some(child => child.isDragOver));
|
|
114
129
|
// Effects
|
|
115
130
|
watch(() => props.depth, value => {
|
|
116
131
|
applyPadding(unref(nodeRoot), value, hasCollapseTrigger.value);
|
|
@@ -129,24 +144,34 @@ var script$1 = defineComponent({
|
|
|
129
144
|
const handleDrop = e => {
|
|
130
145
|
var _a;
|
|
131
146
|
const nodeKey = (_a = e === null || e === void 0 ? void 0 : e.dataTransfer) === null || _a === void 0 ? void 0 : _a.getData('node-key');
|
|
147
|
+
e.currentTarget.style.cursor = 'default';
|
|
132
148
|
isDragOver.value = false;
|
|
133
149
|
emit('drop', {
|
|
134
150
|
dropKey: props.node.key,
|
|
135
151
|
dragKey: nodeKey,
|
|
136
|
-
dropPosition:
|
|
152
|
+
dropPosition: dragOverPosition.value
|
|
137
153
|
});
|
|
138
154
|
};
|
|
139
155
|
const handleDragStart = e => {
|
|
140
|
-
var _a;
|
|
156
|
+
var _a, _b, _c;
|
|
157
|
+
if (e.dataTransfer) {
|
|
158
|
+
e.currentTarget.style.cursor = 'grabbing';
|
|
159
|
+
(_a = e === null || e === void 0 ? void 0 : e.dataTransfer) === null || _a === void 0 ? void 0 : _a.setData('node-key', props.node.key);
|
|
160
|
+
const crt = (_b = unref(nodeRoot)) === null || _b === void 0 ? void 0 : _b.cloneNode(true);
|
|
161
|
+
if (crt) {
|
|
162
|
+
crt.style.opacity = '0';
|
|
163
|
+
document.body.appendChild(crt);
|
|
164
|
+
(_c = e.dataTransfer) === null || _c === void 0 ? void 0 : _c.setDragImage(crt, 0, 0);
|
|
165
|
+
}
|
|
166
|
+
}
|
|
141
167
|
isDrag.value = true;
|
|
142
168
|
setIsOpen(false);
|
|
143
|
-
(_a = e === null || e === void 0 ? void 0 : e.dataTransfer) === null || _a === void 0 ? void 0 : _a.setData('node-key', props.node.key);
|
|
144
169
|
emit('dragstart', props.node.key);
|
|
145
170
|
};
|
|
146
171
|
const handleDragOver = e => {
|
|
147
172
|
e.preventDefault();
|
|
148
173
|
e.stopPropagation();
|
|
149
|
-
|
|
174
|
+
dragOverPosition.value = getDropOffset(e, props.node.canMiddleDrop || props.node.collapsible || hasChildren.value, isOpen.value);
|
|
150
175
|
isDragOver.value = true;
|
|
151
176
|
};
|
|
152
177
|
const handleDragLeave = e => {
|
|
@@ -175,7 +200,7 @@ var script$1 = defineComponent({
|
|
|
175
200
|
// Styles
|
|
176
201
|
const rootStyles = computed(() => ['or-tree-node-v3', ...TreeNodeRoot]);
|
|
177
202
|
const nodeStyles = computed(() => [...TreeNodeItemRoot, ...(props.parentSelected ? TreeNodeItemRootParentSelected : [])]);
|
|
178
|
-
const dragIndicatorStyles = computed(() => [...TreeNodeDragIndicator, ...TreeNodeDragIndicatorPosition[
|
|
203
|
+
const dragIndicatorStyles = computed(() => [...TreeNodeDragIndicator, ...TreeNodeDragIndicatorPosition[dragOverPosition.value], ...(hasDragoverChildren.value ? ChildrenDragoverStyles : [])]);
|
|
179
204
|
return {
|
|
180
205
|
root,
|
|
181
206
|
isOpen,
|
|
@@ -183,11 +208,12 @@ var script$1 = defineComponent({
|
|
|
183
208
|
rootStyles,
|
|
184
209
|
nodeStyles,
|
|
185
210
|
dragIndicatorStyles,
|
|
211
|
+
childrenTreeNodes,
|
|
186
212
|
setIsOpen,
|
|
187
213
|
nodeRoot,
|
|
188
214
|
isDrag,
|
|
189
215
|
canDrag,
|
|
190
|
-
|
|
216
|
+
dragOverPosition,
|
|
191
217
|
handleDragStart,
|
|
192
218
|
handleDrop,
|
|
193
219
|
handleCollapse,
|
|
@@ -196,6 +222,7 @@ var script$1 = defineComponent({
|
|
|
196
222
|
handleDragOver,
|
|
197
223
|
handleDragLeave,
|
|
198
224
|
hasCollapseTrigger,
|
|
225
|
+
hasDragoverChildren,
|
|
199
226
|
isDragOver
|
|
200
227
|
};
|
|
201
228
|
}
|
|
@@ -265,11 +292,13 @@ var __vue_render__$1 = function () {
|
|
|
265
292
|
isDrag: _vm.isDrag,
|
|
266
293
|
isDragOver: _vm.isDragOver,
|
|
267
294
|
depth: _vm.depth
|
|
268
|
-
}), _vm._v(" "), _vm.isDragOver && !_vm.isDrag ? _c('div', {
|
|
295
|
+
}), _vm._v(" "), _vm.hasDragoverChildren || _vm.isDragOver && !_vm.isDrag ? _c('div', {
|
|
269
296
|
class: _vm.dragIndicatorStyles
|
|
270
297
|
}) : _vm._e()], 2), _vm._v(" "), !_vm.isLeaf && _vm.isOpen ? _vm._l(_vm.node.children, function (child) {
|
|
271
298
|
return _c('OrTreeNode', {
|
|
272
299
|
key: child.key,
|
|
300
|
+
ref: "childrenTreeNodes",
|
|
301
|
+
refInFor: true,
|
|
273
302
|
attrs: {
|
|
274
303
|
"parent-selected": _vm.selected || undefined,
|
|
275
304
|
"node": child,
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { _ as default } from '../../OrTree-
|
|
1
|
+
export { _ as default } from '../../OrTree-6428a410.js';
|
|
2
2
|
import '../../normalize-component-6e8e3d80.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { _ as OrTreeV3, T as TreeNodeDropPosition } from '../../OrTree-
|
|
1
|
+
export { _ as OrTreeV3, T as TreeNodeDropPosition } from '../../OrTree-6428a410.js';
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import OrTreeNode from './or-tree-node/OrTreeNode.vue';
|
|
1
2
|
export type TreeNode = {
|
|
2
3
|
key: string;
|
|
3
4
|
children?: TreeNode[];
|
|
@@ -13,3 +14,4 @@ export declare enum TreeNodeDropPosition {
|
|
|
13
14
|
Bottom = "bottom",
|
|
14
15
|
Middle = "middle"
|
|
15
16
|
}
|
|
17
|
+
export type TreeNodeType = InstanceType<typeof OrTreeNode>;
|
|
@@ -202,4 +202,4 @@ export { default as useQueueV3 } from './OrToastV3/composable/useQueue.js';
|
|
|
202
202
|
export { default as OrTooltip } from './OrTooltip/OrTooltip.js';
|
|
203
203
|
export { default as OrTooltipContent } from './OrTooltipContent/OrTooltipContent.js';
|
|
204
204
|
export { default as OrTooltipV3 } from './OrTooltipV3/OrTooltip.js';
|
|
205
|
-
export { _ as OrTreeV3, T as TreeNodeDropPosition } from '../OrTree-
|
|
205
|
+
export { _ as OrTreeV3, T as TreeNodeDropPosition } from '../OrTree-6428a410.js';
|