@onereach/ui-components 4.9.1-beta.2922.0 → 4.9.1-beta.2925.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/components/OrTreeV3/OrTree.js +104 -39
- package/dist/bundled/v2/components/OrTreeV3/types.d.ts +1 -0
- package/dist/bundled/v2/index.js +1 -1
- package/dist/bundled/v3/{OrTree.vue_vue_type_script_lang-211f2212.js → OrTree.vue_vue_type_script_lang-ff782a33.js} +113 -34
- package/dist/bundled/v3/components/OrTreeV3/OrTree.js +2 -2
- package/dist/bundled/v3/components/OrTreeV3/index.js +1 -1
- package/dist/bundled/v3/components/OrTreeV3/types.d.ts +1 -0
- package/dist/bundled/v3/components/index.js +1 -1
- package/dist/bundled/v3/index.js +2 -2
- package/dist/esm/v2/{OrTree-1c9d702d.js → OrTree-999f8d17.js} +104 -39
- 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 +21 -9
- package/dist/esm/v2/components/or-tree-v3/partials/or-tree-node/styles.d.ts +3 -0
- package/dist/esm/v2/components/or-tree-v3/partials/or-tree-node/utils.d.ts +3 -0
- package/dist/esm/v2/components/or-tree-v3/types.d.ts +1 -0
- package/dist/esm/v2/index.js +1 -1
- package/dist/esm/v3/{OrTree-4b879734.js → OrTree-942892ac.js} +113 -34
- 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 +11 -5
- package/dist/esm/v3/components/or-tree-v3/partials/or-tree-node/styles.d.ts +3 -0
- package/dist/esm/v3/components/or-tree-v3/partials/or-tree-node/utils.d.ts +3 -0
- package/dist/esm/v3/components/or-tree-v3/types.d.ts +1 -0
- package/dist/esm/v3/index.js +1 -1
- package/package.json +1 -1
- package/src/components/or-tree-v3/partials/or-tree-node/OrTreeNode.vue +71 -32
- package/src/components/or-tree-v3/partials/or-tree-node/styles.ts +25 -0
- package/src/components/or-tree-v3/partials/or-tree-node/utils.ts +21 -0
- package/src/components/or-tree-v3/types.ts +2 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { defineComponent, ref, computed, watch,
|
|
1
|
+
import { defineComponent, ref, computed, watch, unref, onMounted } from 'vue-demi';
|
|
2
2
|
import __vue_component__$2 from '../OrButtonV3/OrButton.js';
|
|
3
3
|
import __vue_component__$3 from '../OrIconV3/OrIcon.js';
|
|
4
4
|
import { u as useToggle } from '../../index-ec92055d.js';
|
|
@@ -15,12 +15,52 @@ import '../OrIconV3/styles.js';
|
|
|
15
15
|
import '../OrLabelV3/props.js';
|
|
16
16
|
import '../OrLabelV3/styles.js';
|
|
17
17
|
|
|
18
|
+
function getDropOffset(e) {
|
|
19
|
+
const {
|
|
20
|
+
clientY
|
|
21
|
+
} = e;
|
|
22
|
+
const {
|
|
23
|
+
top,
|
|
24
|
+
height
|
|
25
|
+
} = e.target.getBoundingClientRect();
|
|
26
|
+
const offset = clientY - top;
|
|
27
|
+
if (offset / height < 0.4) {
|
|
28
|
+
return 'top';
|
|
29
|
+
} else if (offset / height > 0.7) {
|
|
30
|
+
return 'bottom';
|
|
31
|
+
} else {
|
|
32
|
+
return 'middle';
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
function applyPadding(element, level, hasCollapseTrigger) {
|
|
36
|
+
const padding = level * 20 - (hasCollapseTrigger ? 20 : 0);
|
|
37
|
+
Object.assign(element.style, {
|
|
38
|
+
paddingLeft: `${padding}px`
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
|
|
18
42
|
const TreeNodeRoot = [];
|
|
19
43
|
const TreeNodeItemRoot = [
|
|
20
44
|
// Layout
|
|
21
45
|
'layout-row', 'py-xs', '!items-start',
|
|
22
46
|
// Theme
|
|
23
47
|
'hover:bg-primary-opacity-0-08', 'dark:hover:bg-primary-opacity-0-08-dark', 'selected:bg-primary-opacity-0-08', 'dark:selected:bg-primary-opacity-0-08-dark', 'selected:hover:bg-primary-opacity-0-16', 'dark:selected:hover:bg-primary-opacity-0-16-dark'];
|
|
48
|
+
const TreeNodeDragIndicator = [
|
|
49
|
+
// Layout
|
|
50
|
+
'absolute h-[2px] w-full left-[0px]',
|
|
51
|
+
// Theme
|
|
52
|
+
'bg-primary',
|
|
53
|
+
// Interaction
|
|
54
|
+
'pointer-events-none'];
|
|
55
|
+
const TreeNodeDragIndicatorPosition = {
|
|
56
|
+
top: ['top-[-1px]'],
|
|
57
|
+
middle: ['top-[-1px]'
|
|
58
|
+
// 'top-[50%]', ????
|
|
59
|
+
// 'transform:-translateY(50%)',
|
|
60
|
+
],
|
|
61
|
+
|
|
62
|
+
bottom: ['bottom-[-1px]']
|
|
63
|
+
};
|
|
24
64
|
|
|
25
65
|
var script$1 = defineComponent({
|
|
26
66
|
name: 'OrTreeNode',
|
|
@@ -62,22 +102,17 @@ var script$1 = defineComponent({
|
|
|
62
102
|
// Refs
|
|
63
103
|
const root = ref(null);
|
|
64
104
|
const nodeRoot = ref(null);
|
|
65
|
-
const dragOver = ref(false);
|
|
66
|
-
const drag = ref(false);
|
|
67
105
|
// State
|
|
106
|
+
const isDragOver = ref(false);
|
|
107
|
+
const isDrag = ref(false);
|
|
108
|
+
const dragPosition = ref('top');
|
|
68
109
|
const hasChildren = computed(() => !!props.node.children && props.node.children.length > 0);
|
|
69
110
|
const [isOpen, setIsOpen] = useToggle(props.expanded);
|
|
70
111
|
const hasCollapseTrigger = computed(() => props.collapsible && hasChildren.value);
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
const rootElement = unref(nodeRoot);
|
|
74
|
-
const padding = depth * 20 - (hasCollapseTrigger.value ? 20 : 0);
|
|
75
|
-
Object.assign(rootElement.style, {
|
|
76
|
-
paddingLeft: `${padding}px`
|
|
77
|
-
});
|
|
78
|
-
};
|
|
112
|
+
const isLeaf = computed(() => !hasChildren.value);
|
|
113
|
+
// Effects
|
|
79
114
|
watch(() => props.depth, value => {
|
|
80
|
-
applyPadding(value);
|
|
115
|
+
applyPadding(unref(nodeRoot), value, hasCollapseTrigger.value);
|
|
81
116
|
});
|
|
82
117
|
watch(() => props.expanded, value => {
|
|
83
118
|
if (value !== undefined) {
|
|
@@ -87,24 +122,48 @@ var script$1 = defineComponent({
|
|
|
87
122
|
immediate: true
|
|
88
123
|
});
|
|
89
124
|
onMounted(() => {
|
|
90
|
-
applyPadding(props.depth);
|
|
125
|
+
applyPadding(unref(nodeRoot), props.depth, hasCollapseTrigger.value);
|
|
91
126
|
});
|
|
127
|
+
// Methods
|
|
92
128
|
const handleDrop = e => {
|
|
93
129
|
var _a;
|
|
94
130
|
const nodeKey = (_a = e === null || e === void 0 ? void 0 : e.dataTransfer) === null || _a === void 0 ? void 0 : _a.getData('node-key');
|
|
95
|
-
|
|
131
|
+
isDragOver.value = false;
|
|
96
132
|
emit('drop', {
|
|
97
133
|
dropKey: props.node.key,
|
|
98
|
-
dragKey: nodeKey
|
|
134
|
+
dragKey: nodeKey,
|
|
135
|
+
dropPosition: dragPosition.value
|
|
99
136
|
});
|
|
100
137
|
};
|
|
101
138
|
const handleDragStart = e => {
|
|
102
139
|
var _a;
|
|
103
|
-
|
|
140
|
+
isDrag.value = true;
|
|
104
141
|
setIsOpen(false);
|
|
105
142
|
(_a = e === null || e === void 0 ? void 0 : e.dataTransfer) === null || _a === void 0 ? void 0 : _a.setData('node-key', props.node.key);
|
|
106
143
|
emit('dragstart', props.node.key);
|
|
107
144
|
};
|
|
145
|
+
const handleDragOver = e => {
|
|
146
|
+
e.preventDefault();
|
|
147
|
+
e.stopPropagation();
|
|
148
|
+
dragPosition.value = getDropOffset(e);
|
|
149
|
+
isDragOver.value = true;
|
|
150
|
+
};
|
|
151
|
+
const handleDragLeave = e => {
|
|
152
|
+
e.preventDefault();
|
|
153
|
+
e.stopPropagation();
|
|
154
|
+
isDragOver.value = false;
|
|
155
|
+
};
|
|
156
|
+
const handleContextMenu = e => {
|
|
157
|
+
e.preventDefault();
|
|
158
|
+
emit('contextmenu', {
|
|
159
|
+
$event: e,
|
|
160
|
+
nodeKey: props.node.key
|
|
161
|
+
});
|
|
162
|
+
};
|
|
163
|
+
const handleClick = e => {
|
|
164
|
+
e.preventDefault();
|
|
165
|
+
emit('click', props.node.key);
|
|
166
|
+
};
|
|
108
167
|
const handleCollapse = () => {
|
|
109
168
|
if (isOpen.value) {
|
|
110
169
|
setIsOpen(false);
|
|
@@ -116,21 +175,28 @@ var script$1 = defineComponent({
|
|
|
116
175
|
};
|
|
117
176
|
// Styles
|
|
118
177
|
const rootStyles = computed(() => ['or-tree-node-v3', ...TreeNodeRoot]);
|
|
119
|
-
const nodeStyles = computed(() => [...TreeNodeItemRoot,
|
|
178
|
+
const nodeStyles = computed(() => [...TreeNodeItemRoot, 'relative']);
|
|
179
|
+
const dragIndicatorStyles = computed(() => [...TreeNodeDragIndicator, ...TreeNodeDragIndicatorPosition[dragPosition.value]]);
|
|
120
180
|
return {
|
|
121
181
|
root,
|
|
122
|
-
hasChildren,
|
|
123
182
|
isOpen,
|
|
183
|
+
isLeaf,
|
|
124
184
|
rootStyles,
|
|
185
|
+
nodeStyles,
|
|
186
|
+
dragIndicatorStyles,
|
|
125
187
|
setIsOpen,
|
|
126
188
|
nodeRoot,
|
|
127
|
-
|
|
189
|
+
isDrag,
|
|
190
|
+
dragPosition,
|
|
128
191
|
handleDragStart,
|
|
129
192
|
handleDrop,
|
|
130
193
|
handleCollapse,
|
|
194
|
+
handleContextMenu,
|
|
195
|
+
handleClick,
|
|
196
|
+
handleDragOver,
|
|
197
|
+
handleDragLeave,
|
|
131
198
|
hasCollapseTrigger,
|
|
132
|
-
|
|
133
|
-
nodeStyles
|
|
199
|
+
isDragOver
|
|
134
200
|
};
|
|
135
201
|
}
|
|
136
202
|
});
|
|
@@ -155,7 +221,7 @@ var __vue_render__$1 = function () {
|
|
|
155
221
|
},
|
|
156
222
|
on: {
|
|
157
223
|
"dragend": function ($event) {
|
|
158
|
-
_vm.
|
|
224
|
+
_vm.isDrag = false;
|
|
159
225
|
},
|
|
160
226
|
"dragstart": function ($event) {
|
|
161
227
|
$event.stopPropagation();
|
|
@@ -163,24 +229,16 @@ var __vue_render__$1 = function () {
|
|
|
163
229
|
},
|
|
164
230
|
"dragover": function ($event) {
|
|
165
231
|
$event.preventDefault();
|
|
232
|
+
return _vm.handleDragOver.apply(null, arguments);
|
|
166
233
|
},
|
|
167
234
|
"dragenter": function ($event) {
|
|
168
235
|
$event.preventDefault();
|
|
169
|
-
_vm.
|
|
170
|
-
},
|
|
171
|
-
"dragleave": function ($event) {
|
|
172
|
-
_vm.dragOver = false;
|
|
236
|
+
return _vm.handleDragOver.apply(null, arguments);
|
|
173
237
|
},
|
|
238
|
+
"dragleave": _vm.handleDragLeave,
|
|
174
239
|
"drop": _vm.handleDrop,
|
|
175
|
-
"click":
|
|
176
|
-
|
|
177
|
-
},
|
|
178
|
-
"contextmenu": function ($event) {
|
|
179
|
-
return _vm.$emit('contextmenu', {
|
|
180
|
-
$event: $event,
|
|
181
|
-
nodeKey: _vm.node.key
|
|
182
|
-
});
|
|
183
|
-
}
|
|
240
|
+
"click": _vm.handleClick,
|
|
241
|
+
"contextmenu": _vm.handleContextMenu
|
|
184
242
|
}
|
|
185
243
|
}, [_vm.hasCollapseTrigger ? [_c('OrButton', {
|
|
186
244
|
attrs: {
|
|
@@ -198,11 +256,18 @@ var __vue_render__$1 = function () {
|
|
|
198
256
|
"icon": "arrow_right",
|
|
199
257
|
"size": "l"
|
|
200
258
|
}
|
|
201
|
-
})], 1)] : _vm._e(), _vm._v(" "), _vm._t("node",
|
|
259
|
+
})], 1)] : _vm._e(), _vm._v(" "), _vm._t("node", function () {
|
|
260
|
+
return [_vm._v("\n " + _vm._s(_vm.node.key) + "\n ")];
|
|
261
|
+
}, null, {
|
|
202
262
|
node: _vm.node,
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
263
|
+
isOpen: _vm.isOpen,
|
|
264
|
+
isLeaf: _vm.isLeaf,
|
|
265
|
+
isDrag: _vm.isDrag,
|
|
266
|
+
isDragOver: _vm.isDragOver,
|
|
267
|
+
depth: _vm.depth
|
|
268
|
+
}), _vm._v(" "), _vm.isDragOver && !_vm.isDrag ? _c('div', {
|
|
269
|
+
class: _vm.dragIndicatorStyles
|
|
270
|
+
}) : _vm._e()], 2), _vm._v(" "), !_vm.isLeaf && _vm.isOpen ? _vm._l(_vm.node.children, function (child) {
|
|
206
271
|
return _c('OrTreeNode', {
|
|
207
272
|
key: child.key,
|
|
208
273
|
attrs: {
|