@dnd-kit/react 0.0.3 → 0.0.4-beta-20240621131401
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/hooks.cjs +1 -6
- package/hooks.d.ts +1 -1
- package/hooks.js +1 -6
- package/index.cjs +131 -111
- package/index.d.ts +3 -3
- package/index.js +26 -27
- package/package.json +6 -6
- package/sortable.cjs +35 -16
- package/sortable.d.ts +1 -1
- package/sortable.js +36 -17
- package/utilities.cjs +2 -1
- package/utilities.d.ts +1 -1
- package/utilities.js +2 -1
package/hooks.cjs
CHANGED
|
@@ -4,16 +4,11 @@ var react = require('react');
|
|
|
4
4
|
var state = require('@dnd-kit/state');
|
|
5
5
|
var reactDom = require('react-dom');
|
|
6
6
|
|
|
7
|
-
function useConstant(initializer
|
|
7
|
+
function useConstant(initializer) {
|
|
8
8
|
const ref = react.useRef();
|
|
9
|
-
const previousDependency = react.useRef(dependency);
|
|
10
9
|
if (!ref.current) {
|
|
11
10
|
ref.current = initializer();
|
|
12
11
|
}
|
|
13
|
-
if (previousDependency.current !== dependency) {
|
|
14
|
-
previousDependency.current = dependency;
|
|
15
|
-
ref.current = initializer();
|
|
16
|
-
}
|
|
17
12
|
return ref.current;
|
|
18
13
|
}
|
|
19
14
|
var canUseDOM = typeof window !== "undefined" && typeof window.document !== "undefined" && typeof window.document.createElement !== "undefined";
|
package/hooks.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import * as _preact_signals_core from '@preact/signals-core';
|
|
|
2
2
|
import * as react from 'react';
|
|
3
3
|
import { EffectCallback, DependencyList, useLayoutEffect, useEffect } from 'react';
|
|
4
4
|
|
|
5
|
-
declare function useConstant<T = any>(initializer: () => T
|
|
5
|
+
declare function useConstant<T = any>(initializer: () => T): T;
|
|
6
6
|
|
|
7
7
|
declare function useComputed<T = any>(compute: () => T, sync?: boolean): _preact_signals_core.ReadonlySignal<T>;
|
|
8
8
|
|
package/hooks.js
CHANGED
|
@@ -2,16 +2,11 @@ import { useRef, useLayoutEffect, useEffect, useState } from 'react';
|
|
|
2
2
|
import { computed, Signal, signal, effect } from '@dnd-kit/state';
|
|
3
3
|
import { flushSync } from 'react-dom';
|
|
4
4
|
|
|
5
|
-
function useConstant(initializer
|
|
5
|
+
function useConstant(initializer) {
|
|
6
6
|
const ref = useRef();
|
|
7
|
-
const previousDependency = useRef(dependency);
|
|
8
7
|
if (!ref.current) {
|
|
9
8
|
ref.current = initializer();
|
|
10
9
|
}
|
|
11
|
-
if (previousDependency.current !== dependency) {
|
|
12
|
-
previousDependency.current = dependency;
|
|
13
|
-
ref.current = initializer();
|
|
14
|
-
}
|
|
15
10
|
return ref.current;
|
|
16
11
|
}
|
|
17
12
|
var canUseDOM = typeof window !== "undefined" && typeof window.document !== "undefined" && typeof window.document.createElement !== "undefined";
|
package/index.cjs
CHANGED
|
@@ -3,13 +3,42 @@
|
|
|
3
3
|
var react = require('react');
|
|
4
4
|
var dom = require('@dnd-kit/dom');
|
|
5
5
|
var hooks = require('@dnd-kit/react/hooks');
|
|
6
|
-
var utilities$1 = require('@dnd-kit/dom/utilities');
|
|
7
6
|
var jsxRuntime = require('react/jsx-runtime');
|
|
8
7
|
var utilities = require('@dnd-kit/react/utilities');
|
|
9
8
|
var state = require('@dnd-kit/state');
|
|
10
9
|
|
|
11
10
|
var __defProp = Object.defineProperty;
|
|
11
|
+
var __defProps = Object.defineProperties;
|
|
12
|
+
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
12
13
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
14
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
15
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
16
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
17
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
18
|
+
var __spreadValues = (a, b) => {
|
|
19
|
+
for (var prop in b || (b = {}))
|
|
20
|
+
if (__hasOwnProp.call(b, prop))
|
|
21
|
+
__defNormalProp(a, prop, b[prop]);
|
|
22
|
+
if (__getOwnPropSymbols)
|
|
23
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
24
|
+
if (__propIsEnum.call(b, prop))
|
|
25
|
+
__defNormalProp(a, prop, b[prop]);
|
|
26
|
+
}
|
|
27
|
+
return a;
|
|
28
|
+
};
|
|
29
|
+
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
30
|
+
var __objRest = (source, exclude) => {
|
|
31
|
+
var target = {};
|
|
32
|
+
for (var prop in source)
|
|
33
|
+
if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
|
|
34
|
+
target[prop] = source[prop];
|
|
35
|
+
if (source != null && __getOwnPropSymbols)
|
|
36
|
+
for (var prop of __getOwnPropSymbols(source)) {
|
|
37
|
+
if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
|
|
38
|
+
target[prop] = source[prop];
|
|
39
|
+
}
|
|
40
|
+
return target;
|
|
41
|
+
};
|
|
13
42
|
var __esm = (fn, res) => function __init() {
|
|
14
43
|
return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
|
|
15
44
|
};
|
|
@@ -27,17 +56,19 @@ var init_context = __esm({
|
|
|
27
56
|
}
|
|
28
57
|
});
|
|
29
58
|
function useRenderer() {
|
|
30
|
-
const [_,
|
|
59
|
+
const [_, startTransition2] = react.useTransition();
|
|
31
60
|
const [transitionCount, setTransitionCount] = react.useState(0);
|
|
32
61
|
const rendering = react.useRef();
|
|
33
62
|
const resolver = react.useRef();
|
|
34
63
|
const renderer = hooks.useConstant(() => ({
|
|
35
64
|
get rendering() {
|
|
36
|
-
|
|
65
|
+
var _a;
|
|
66
|
+
return (_a = rendering.current) != null ? _a : Promise.resolve();
|
|
37
67
|
}
|
|
38
68
|
}));
|
|
39
69
|
hooks.useOnValueChange(transitionCount, () => {
|
|
40
|
-
|
|
70
|
+
var _a;
|
|
71
|
+
(_a = resolver.current) == null ? void 0 : _a.call(resolver);
|
|
41
72
|
rendering.current = void 0;
|
|
42
73
|
});
|
|
43
74
|
return {
|
|
@@ -48,7 +79,7 @@ function useRenderer() {
|
|
|
48
79
|
resolver.current = resolve;
|
|
49
80
|
});
|
|
50
81
|
}
|
|
51
|
-
|
|
82
|
+
startTransition2(() => {
|
|
52
83
|
callback();
|
|
53
84
|
setTransitionCount((count) => count + 1);
|
|
54
85
|
});
|
|
@@ -59,50 +90,35 @@ var init_renderer = __esm({
|
|
|
59
90
|
"src/core/context/renderer.ts"() {
|
|
60
91
|
}
|
|
61
92
|
});
|
|
62
|
-
var Lifecycle;
|
|
63
|
-
var init_lifecycle = __esm({
|
|
64
|
-
"src/core/context/lifecycle.ts"() {
|
|
65
|
-
Lifecycle = class extends react.Component {
|
|
66
|
-
initialized = false;
|
|
67
|
-
clearTimeout;
|
|
68
|
-
componentDidMount() {
|
|
69
|
-
this.clearTimeout?.();
|
|
70
|
-
this.clearTimeout = utilities$1.timeout(() => this.initialized = true, 25);
|
|
71
|
-
}
|
|
72
|
-
componentWillUnmount() {
|
|
73
|
-
if (!this.initialized)
|
|
74
|
-
return;
|
|
75
|
-
this.props.manager.destroy();
|
|
76
|
-
}
|
|
77
|
-
render() {
|
|
78
|
-
return null;
|
|
79
|
-
}
|
|
80
|
-
};
|
|
81
|
-
}
|
|
82
|
-
});
|
|
83
93
|
|
|
84
94
|
// src/core/context/DragDropProvider.tsx
|
|
85
95
|
var DragDropProvider_exports = {};
|
|
86
96
|
__export(DragDropProvider_exports, {
|
|
87
97
|
default: () => DragDropProvider
|
|
88
98
|
});
|
|
89
|
-
function DragDropProvider({
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
}
|
|
99
|
+
function DragDropProvider(_a) {
|
|
100
|
+
var _b = _a, {
|
|
101
|
+
children,
|
|
102
|
+
onCollision,
|
|
103
|
+
onBeforeDragStart,
|
|
104
|
+
onDragStart,
|
|
105
|
+
onDragMove,
|
|
106
|
+
onDragOver,
|
|
107
|
+
onDragEnd
|
|
108
|
+
} = _b, input = __objRest(_b, [
|
|
109
|
+
"children",
|
|
110
|
+
"onCollision",
|
|
111
|
+
"onBeforeDragStart",
|
|
112
|
+
"onDragStart",
|
|
113
|
+
"onDragMove",
|
|
114
|
+
"onDragOver",
|
|
115
|
+
"onDragEnd"
|
|
116
|
+
]);
|
|
117
|
+
var _a2;
|
|
99
118
|
const { renderer, trackRendering } = useRenderer();
|
|
100
|
-
const
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
return instance;
|
|
104
|
-
};
|
|
105
|
-
const manager = hooks.useConstant(createManager);
|
|
119
|
+
const [manager, setManager] = react.useState(
|
|
120
|
+
(_a2 = input.manager) != null ? _a2 : null
|
|
121
|
+
);
|
|
106
122
|
const { plugins, modifiers, sensors } = input;
|
|
107
123
|
const handleBeforeDragStart = hooks.useLatest(onBeforeDragStart);
|
|
108
124
|
const handleDragStart = hooks.useLatest(onDragStart);
|
|
@@ -111,63 +127,68 @@ function DragDropProvider({
|
|
|
111
127
|
const handleDragEnd = hooks.useLatest(onDragEnd);
|
|
112
128
|
const handleCollision = hooks.useLatest(onCollision);
|
|
113
129
|
react.useEffect(() => {
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
(
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
130
|
+
var _a3;
|
|
131
|
+
const manager2 = (_a3 = input.manager) != null ? _a3 : new dom.DragDropManager(input);
|
|
132
|
+
manager2.renderer = renderer;
|
|
133
|
+
manager2.monitor.addEventListener("beforedragstart", (event, manager3) => {
|
|
134
|
+
const callback = handleBeforeDragStart.current;
|
|
135
|
+
if (callback) {
|
|
136
|
+
trackRendering(() => callback(event, manager3));
|
|
137
|
+
}
|
|
138
|
+
});
|
|
139
|
+
manager2.monitor.addEventListener(
|
|
140
|
+
"dragstart",
|
|
141
|
+
(event, manager3) => {
|
|
142
|
+
var _a4;
|
|
143
|
+
return (_a4 = handleDragStart.current) == null ? void 0 : _a4.call(handleDragStart, event, manager3);
|
|
144
|
+
}
|
|
145
|
+
);
|
|
146
|
+
manager2.monitor.addEventListener("dragover", (event, manager3) => {
|
|
147
|
+
const callback = handleDragOver.current;
|
|
148
|
+
if (callback) {
|
|
149
|
+
trackRendering(() => callback(event, manager3));
|
|
150
|
+
}
|
|
151
|
+
});
|
|
152
|
+
manager2.monitor.addEventListener("dragmove", (event, manager3) => {
|
|
153
|
+
const callback = handleDragMove.current;
|
|
154
|
+
if (callback) {
|
|
155
|
+
trackRendering(() => callback(event, manager3));
|
|
156
|
+
}
|
|
157
|
+
});
|
|
158
|
+
manager2.monitor.addEventListener("dragend", (event, manager3) => {
|
|
159
|
+
const callback = handleDragEnd.current;
|
|
160
|
+
if (callback) {
|
|
161
|
+
trackRendering(() => callback(event, manager3));
|
|
162
|
+
}
|
|
163
|
+
});
|
|
164
|
+
manager2.monitor.addEventListener(
|
|
165
|
+
"collision",
|
|
166
|
+
(event, manager3) => {
|
|
167
|
+
var _a4;
|
|
168
|
+
return (_a4 = handleCollision.current) == null ? void 0 : _a4.call(handleCollision, event, manager3);
|
|
169
|
+
}
|
|
170
|
+
);
|
|
171
|
+
react.startTransition(() => setManager(manager2));
|
|
172
|
+
return manager2.destroy;
|
|
173
|
+
}, [renderer]);
|
|
152
174
|
hooks.useOnValueChange(
|
|
153
175
|
plugins,
|
|
154
|
-
() => manager.plugins = plugins
|
|
176
|
+
() => manager && (manager.plugins = plugins != null ? plugins : dom.defaultPreset.plugins)
|
|
155
177
|
);
|
|
156
178
|
hooks.useOnValueChange(
|
|
157
179
|
sensors,
|
|
158
|
-
() => manager.sensors = sensors
|
|
180
|
+
() => manager && (manager.sensors = sensors != null ? sensors : dom.defaultPreset.sensors)
|
|
181
|
+
);
|
|
182
|
+
hooks.useOnValueChange(
|
|
183
|
+
modifiers,
|
|
184
|
+
() => manager && (manager.modifiers = modifiers != null ? modifiers : [])
|
|
159
185
|
);
|
|
160
|
-
|
|
161
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(DragDropContext.Provider, { value: manager, children: [
|
|
162
|
-
/* @__PURE__ */ jsxRuntime.jsx(Lifecycle, { manager }),
|
|
163
|
-
children
|
|
164
|
-
] });
|
|
186
|
+
return /* @__PURE__ */ jsxRuntime.jsx(DragDropContext.Provider, { value: manager, children });
|
|
165
187
|
}
|
|
166
188
|
var init_DragDropProvider = __esm({
|
|
167
189
|
"src/core/context/DragDropProvider.tsx"() {
|
|
168
190
|
init_context();
|
|
169
191
|
init_renderer();
|
|
170
|
-
init_lifecycle();
|
|
171
192
|
}
|
|
172
193
|
});
|
|
173
194
|
var DragDropProvider2 = react.lazy(() => Promise.resolve().then(() => (init_DragDropProvider(), DragDropProvider_exports)));
|
|
@@ -180,12 +201,13 @@ function useDragDropManager() {
|
|
|
180
201
|
|
|
181
202
|
// src/core/hooks/useInstance.ts
|
|
182
203
|
function useInstance(initializer) {
|
|
183
|
-
|
|
184
|
-
const
|
|
204
|
+
var _a;
|
|
205
|
+
const manager = (_a = useDragDropManager()) != null ? _a : void 0;
|
|
206
|
+
const [instance] = react.useState(() => initializer(manager));
|
|
185
207
|
react.useEffect(() => {
|
|
186
208
|
instance.manager = manager;
|
|
187
|
-
return manager.registry.register(instance);
|
|
188
|
-
}, [manager]);
|
|
209
|
+
return manager == null ? void 0 : manager.registry.register(instance);
|
|
210
|
+
}, [instance, manager]);
|
|
189
211
|
return instance;
|
|
190
212
|
}
|
|
191
213
|
function useDraggable(input) {
|
|
@@ -194,15 +216,13 @@ function useDraggable(input) {
|
|
|
194
216
|
const element = utilities.currentValue(input.element);
|
|
195
217
|
const draggable = useInstance(
|
|
196
218
|
(manager) => new dom.Draggable(
|
|
197
|
-
{
|
|
198
|
-
...input,
|
|
219
|
+
__spreadProps(__spreadValues({}, input), {
|
|
199
220
|
handle,
|
|
200
221
|
element,
|
|
201
|
-
options: {
|
|
202
|
-
...input.options,
|
|
222
|
+
options: __spreadProps(__spreadValues({}, input.options), {
|
|
203
223
|
register: false
|
|
204
|
-
}
|
|
205
|
-
},
|
|
224
|
+
})
|
|
225
|
+
}),
|
|
206
226
|
manager
|
|
207
227
|
)
|
|
208
228
|
);
|
|
@@ -220,7 +240,10 @@ function useDraggable(input) {
|
|
|
220
240
|
);
|
|
221
241
|
hooks.useOnValueChange(
|
|
222
242
|
input.feedback,
|
|
223
|
-
() =>
|
|
243
|
+
() => {
|
|
244
|
+
var _a;
|
|
245
|
+
return draggable.feedback = (_a = input.feedback) != null ? _a : "default";
|
|
246
|
+
}
|
|
224
247
|
);
|
|
225
248
|
return {
|
|
226
249
|
draggable,
|
|
@@ -229,13 +252,13 @@ function useDraggable(input) {
|
|
|
229
252
|
},
|
|
230
253
|
handleRef: react.useCallback(
|
|
231
254
|
(element2) => {
|
|
232
|
-
draggable.handle = element2
|
|
255
|
+
draggable.handle = element2 != null ? element2 : void 0;
|
|
233
256
|
},
|
|
234
257
|
[draggable]
|
|
235
258
|
),
|
|
236
259
|
ref: react.useCallback(
|
|
237
260
|
(element2) => {
|
|
238
|
-
draggable.element = element2
|
|
261
|
+
draggable.element = element2 != null ? element2 : void 0;
|
|
239
262
|
},
|
|
240
263
|
[draggable]
|
|
241
264
|
)
|
|
@@ -246,14 +269,12 @@ function useDroppable(input) {
|
|
|
246
269
|
const element = utilities.currentValue(input.element);
|
|
247
270
|
const droppable = useInstance(
|
|
248
271
|
(manager) => new dom.Droppable(
|
|
249
|
-
{
|
|
250
|
-
...input,
|
|
272
|
+
__spreadProps(__spreadValues({}, input), {
|
|
251
273
|
element,
|
|
252
|
-
options: {
|
|
253
|
-
...input.options,
|
|
274
|
+
options: __spreadProps(__spreadValues({}, input.options), {
|
|
254
275
|
register: false
|
|
255
|
-
}
|
|
256
|
-
},
|
|
276
|
+
})
|
|
277
|
+
}),
|
|
257
278
|
manager
|
|
258
279
|
)
|
|
259
280
|
);
|
|
@@ -270,7 +291,7 @@ function useDroppable(input) {
|
|
|
270
291
|
},
|
|
271
292
|
ref: react.useCallback(
|
|
272
293
|
(element2) => {
|
|
273
|
-
droppable.element = element2
|
|
294
|
+
droppable.element = element2 != null ? element2 : void 0;
|
|
274
295
|
},
|
|
275
296
|
[droppable]
|
|
276
297
|
),
|
|
@@ -279,9 +300,8 @@ function useDroppable(input) {
|
|
|
279
300
|
}
|
|
280
301
|
function useDragOperation() {
|
|
281
302
|
const manager = useDragDropManager();
|
|
282
|
-
const
|
|
283
|
-
const
|
|
284
|
-
const target = hooks.useComputed(() => dragOperation.target);
|
|
303
|
+
const source = hooks.useComputed(() => manager == null ? void 0 : manager.dragOperation.source);
|
|
304
|
+
const target = hooks.useComputed(() => manager == null ? void 0 : manager.dragOperation.target);
|
|
285
305
|
return {
|
|
286
306
|
get source() {
|
|
287
307
|
return source.value;
|
package/index.d.ts
CHANGED
|
@@ -41,11 +41,11 @@ declare function useDroppable<T extends Data = Data>(input: UseDroppableInput<T>
|
|
|
41
41
|
droppable: Droppable<T>;
|
|
42
42
|
};
|
|
43
43
|
|
|
44
|
-
declare function useDragDropManager(): _dnd_kit_dom.DragDropManager<_dnd_kit_dom.Draggable<_dnd_kit_abstract.Data>, _dnd_kit_dom.Droppable<_dnd_kit_abstract.Data
|
|
44
|
+
declare function useDragDropManager(): _dnd_kit_dom.DragDropManager<_dnd_kit_dom.Draggable<_dnd_kit_abstract.Data>, _dnd_kit_dom.Droppable<_dnd_kit_abstract.Data>> | null;
|
|
45
45
|
|
|
46
46
|
declare function useDragOperation(): {
|
|
47
|
-
readonly source: _dnd_kit_dom.Draggable<_dnd_kit_abstract.Data> | null;
|
|
48
|
-
readonly target: _dnd_kit_dom.Droppable<_dnd_kit_abstract.Data> | null;
|
|
47
|
+
readonly source: _dnd_kit_dom.Draggable<_dnd_kit_abstract.Data> | null | undefined;
|
|
48
|
+
readonly target: _dnd_kit_dom.Droppable<_dnd_kit_abstract.Data> | null | undefined;
|
|
49
49
|
};
|
|
50
50
|
|
|
51
51
|
export { DragDropProvider, useDragDropManager, useDragOperation, useDraggable, useDroppable };
|
package/index.js
CHANGED
|
@@ -1,23 +1,24 @@
|
|
|
1
|
-
import { DragDropContext } from './chunk-
|
|
2
|
-
import { lazy, useContext, useCallback, useEffect } from 'react';
|
|
1
|
+
import { DragDropContext, __spreadProps, __spreadValues } from './chunk-56SCTCQE.js';
|
|
2
|
+
import { lazy, useContext, useCallback, useState, useEffect } from 'react';
|
|
3
3
|
import { Draggable, Droppable } from '@dnd-kit/dom';
|
|
4
|
-
import { useComputed, useOnValueChange
|
|
4
|
+
import { useComputed, useOnValueChange } from '@dnd-kit/react/hooks';
|
|
5
5
|
import { currentValue } from '@dnd-kit/react/utilities';
|
|
6
6
|
import { deepEqual } from '@dnd-kit/state';
|
|
7
7
|
|
|
8
|
-
var DragDropProvider = lazy(() => import('./DragDropProvider-
|
|
8
|
+
var DragDropProvider = lazy(() => import('./DragDropProvider-B4S6ULO6.js'));
|
|
9
9
|
function useDragDropManager() {
|
|
10
10
|
return useContext(DragDropContext);
|
|
11
11
|
}
|
|
12
12
|
|
|
13
13
|
// src/core/hooks/useInstance.ts
|
|
14
14
|
function useInstance(initializer) {
|
|
15
|
-
|
|
16
|
-
const
|
|
15
|
+
var _a;
|
|
16
|
+
const manager = (_a = useDragDropManager()) != null ? _a : void 0;
|
|
17
|
+
const [instance] = useState(() => initializer(manager));
|
|
17
18
|
useEffect(() => {
|
|
18
19
|
instance.manager = manager;
|
|
19
|
-
return manager.registry.register(instance);
|
|
20
|
-
}, [manager]);
|
|
20
|
+
return manager == null ? void 0 : manager.registry.register(instance);
|
|
21
|
+
}, [instance, manager]);
|
|
21
22
|
return instance;
|
|
22
23
|
}
|
|
23
24
|
function useDraggable(input) {
|
|
@@ -26,15 +27,13 @@ function useDraggable(input) {
|
|
|
26
27
|
const element = currentValue(input.element);
|
|
27
28
|
const draggable = useInstance(
|
|
28
29
|
(manager) => new Draggable(
|
|
29
|
-
{
|
|
30
|
-
...input,
|
|
30
|
+
__spreadProps(__spreadValues({}, input), {
|
|
31
31
|
handle,
|
|
32
32
|
element,
|
|
33
|
-
options: {
|
|
34
|
-
...input.options,
|
|
33
|
+
options: __spreadProps(__spreadValues({}, input.options), {
|
|
35
34
|
register: false
|
|
36
|
-
}
|
|
37
|
-
},
|
|
35
|
+
})
|
|
36
|
+
}),
|
|
38
37
|
manager
|
|
39
38
|
)
|
|
40
39
|
);
|
|
@@ -52,7 +51,10 @@ function useDraggable(input) {
|
|
|
52
51
|
);
|
|
53
52
|
useOnValueChange(
|
|
54
53
|
input.feedback,
|
|
55
|
-
() =>
|
|
54
|
+
() => {
|
|
55
|
+
var _a;
|
|
56
|
+
return draggable.feedback = (_a = input.feedback) != null ? _a : "default";
|
|
57
|
+
}
|
|
56
58
|
);
|
|
57
59
|
return {
|
|
58
60
|
draggable,
|
|
@@ -61,13 +63,13 @@ function useDraggable(input) {
|
|
|
61
63
|
},
|
|
62
64
|
handleRef: useCallback(
|
|
63
65
|
(element2) => {
|
|
64
|
-
draggable.handle = element2
|
|
66
|
+
draggable.handle = element2 != null ? element2 : void 0;
|
|
65
67
|
},
|
|
66
68
|
[draggable]
|
|
67
69
|
),
|
|
68
70
|
ref: useCallback(
|
|
69
71
|
(element2) => {
|
|
70
|
-
draggable.element = element2
|
|
72
|
+
draggable.element = element2 != null ? element2 : void 0;
|
|
71
73
|
},
|
|
72
74
|
[draggable]
|
|
73
75
|
)
|
|
@@ -78,14 +80,12 @@ function useDroppable(input) {
|
|
|
78
80
|
const element = currentValue(input.element);
|
|
79
81
|
const droppable = useInstance(
|
|
80
82
|
(manager) => new Droppable(
|
|
81
|
-
{
|
|
82
|
-
...input,
|
|
83
|
+
__spreadProps(__spreadValues({}, input), {
|
|
83
84
|
element,
|
|
84
|
-
options: {
|
|
85
|
-
...input.options,
|
|
85
|
+
options: __spreadProps(__spreadValues({}, input.options), {
|
|
86
86
|
register: false
|
|
87
|
-
}
|
|
88
|
-
},
|
|
87
|
+
})
|
|
88
|
+
}),
|
|
89
89
|
manager
|
|
90
90
|
)
|
|
91
91
|
);
|
|
@@ -102,7 +102,7 @@ function useDroppable(input) {
|
|
|
102
102
|
},
|
|
103
103
|
ref: useCallback(
|
|
104
104
|
(element2) => {
|
|
105
|
-
droppable.element = element2
|
|
105
|
+
droppable.element = element2 != null ? element2 : void 0;
|
|
106
106
|
},
|
|
107
107
|
[droppable]
|
|
108
108
|
),
|
|
@@ -111,9 +111,8 @@ function useDroppable(input) {
|
|
|
111
111
|
}
|
|
112
112
|
function useDragOperation() {
|
|
113
113
|
const manager = useDragDropManager();
|
|
114
|
-
const
|
|
115
|
-
const
|
|
116
|
-
const target = useComputed(() => dragOperation.target);
|
|
114
|
+
const source = useComputed(() => manager == null ? void 0 : manager.dragOperation.source);
|
|
115
|
+
const target = useComputed(() => manager == null ? void 0 : manager.dragOperation.target);
|
|
117
116
|
return {
|
|
118
117
|
get source() {
|
|
119
118
|
return source.value;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dnd-kit/react",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.4-beta-20240621131401",
|
|
4
4
|
"main": "./index.cjs",
|
|
5
5
|
"module": "./index.js",
|
|
6
6
|
"type": "module",
|
|
@@ -56,9 +56,9 @@
|
|
|
56
56
|
"clean": "rm -rf .turbo && rm -rf node_modules && rm -rf dist"
|
|
57
57
|
},
|
|
58
58
|
"dependencies": {
|
|
59
|
-
"@dnd-kit/abstract": "
|
|
60
|
-
"@dnd-kit/dom": "
|
|
61
|
-
"@dnd-kit/state": "
|
|
59
|
+
"@dnd-kit/abstract": "0.0.4-beta-20240621131401",
|
|
60
|
+
"@dnd-kit/dom": "0.0.4-beta-20240621131401",
|
|
61
|
+
"@dnd-kit/state": "0.0.4-beta-20240621131401",
|
|
62
62
|
"tslib": "^2.6.2"
|
|
63
63
|
},
|
|
64
64
|
"peerDependencies": {
|
|
@@ -71,8 +71,8 @@
|
|
|
71
71
|
"eslint": "^8.38.0",
|
|
72
72
|
"@dnd-kit/eslint-config": "*",
|
|
73
73
|
"react": "^18.1.0",
|
|
74
|
-
"tsup": "^
|
|
75
|
-
"typescript": "^5.
|
|
74
|
+
"tsup": "^8.1.0",
|
|
75
|
+
"typescript": "^5.5.2"
|
|
76
76
|
},
|
|
77
77
|
"publishConfig": {
|
|
78
78
|
"access": "public"
|
package/sortable.cjs
CHANGED
|
@@ -7,6 +7,25 @@ var react = require('@dnd-kit/react');
|
|
|
7
7
|
var hooks = require('@dnd-kit/react/hooks');
|
|
8
8
|
var utilities = require('@dnd-kit/react/utilities');
|
|
9
9
|
|
|
10
|
+
var __defProp = Object.defineProperty;
|
|
11
|
+
var __defProps = Object.defineProperties;
|
|
12
|
+
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
13
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
14
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
15
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
16
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
17
|
+
var __spreadValues = (a, b) => {
|
|
18
|
+
for (var prop in b || (b = {}))
|
|
19
|
+
if (__hasOwnProp.call(b, prop))
|
|
20
|
+
__defNormalProp(a, prop, b[prop]);
|
|
21
|
+
if (__getOwnPropSymbols)
|
|
22
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
23
|
+
if (__propIsEnum.call(b, prop))
|
|
24
|
+
__defNormalProp(a, prop, b[prop]);
|
|
25
|
+
}
|
|
26
|
+
return a;
|
|
27
|
+
};
|
|
28
|
+
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
10
29
|
function useSortable(input) {
|
|
11
30
|
const {
|
|
12
31
|
accept,
|
|
@@ -28,21 +47,21 @@ function useSortable(input) {
|
|
|
28
47
|
const target = utilities.currentValue(input.target);
|
|
29
48
|
const sortable$1 = hooks.useConstant(() => {
|
|
30
49
|
return new sortable.Sortable(
|
|
31
|
-
{
|
|
32
|
-
...input,
|
|
50
|
+
__spreadProps(__spreadValues({}, input), {
|
|
33
51
|
handle,
|
|
34
52
|
element,
|
|
35
53
|
target,
|
|
36
54
|
feedback,
|
|
37
|
-
options: {
|
|
38
|
-
...input.options,
|
|
55
|
+
options: __spreadProps(__spreadValues({}, input.options), {
|
|
39
56
|
register: false
|
|
40
|
-
}
|
|
41
|
-
},
|
|
42
|
-
manager
|
|
57
|
+
})
|
|
58
|
+
}),
|
|
59
|
+
manager != null ? manager : void 0
|
|
43
60
|
);
|
|
44
|
-
}
|
|
45
|
-
react$1.
|
|
61
|
+
});
|
|
62
|
+
react$1.useEffect(() => {
|
|
63
|
+
sortable$1.manager = manager != null ? manager : void 0;
|
|
64
|
+
if (!manager) return;
|
|
46
65
|
manager.registry.register(sortable$1.draggable);
|
|
47
66
|
manager.registry.register(sortable$1.droppable);
|
|
48
67
|
return () => {
|
|
@@ -62,11 +81,11 @@ function useSortable(input) {
|
|
|
62
81
|
void 0,
|
|
63
82
|
state.deepEqual
|
|
64
83
|
);
|
|
65
|
-
hooks.useOnValueChange(data, () => sortable$1.data = data
|
|
84
|
+
hooks.useOnValueChange(data, () => sortable$1.data = data != null ? data : null);
|
|
66
85
|
hooks.useOnValueChange(
|
|
67
86
|
index,
|
|
68
87
|
() => {
|
|
69
|
-
if (manager.dragOperation.status.idle && transition) {
|
|
88
|
+
if ((manager == null ? void 0 : manager.dragOperation.status.idle) && transition) {
|
|
70
89
|
sortable$1.refreshShape();
|
|
71
90
|
}
|
|
72
91
|
},
|
|
@@ -85,7 +104,7 @@ function useSortable(input) {
|
|
|
85
104
|
collisionPriority,
|
|
86
105
|
() => sortable$1.collisionPriority = collisionPriority
|
|
87
106
|
);
|
|
88
|
-
hooks.useOnValueChange(feedback, () => sortable$1.feedback = feedback
|
|
107
|
+
hooks.useOnValueChange(feedback, () => sortable$1.feedback = feedback != null ? feedback : "default");
|
|
89
108
|
hooks.useOnValueChange(transition, () => sortable$1.transition = transition);
|
|
90
109
|
return {
|
|
91
110
|
get isDragSource() {
|
|
@@ -96,25 +115,25 @@ function useSortable(input) {
|
|
|
96
115
|
},
|
|
97
116
|
handleRef: react$1.useCallback(
|
|
98
117
|
(element2) => {
|
|
99
|
-
sortable$1.handle = element2
|
|
118
|
+
sortable$1.handle = element2 != null ? element2 : void 0;
|
|
100
119
|
},
|
|
101
120
|
[sortable$1]
|
|
102
121
|
),
|
|
103
122
|
ref: react$1.useCallback(
|
|
104
123
|
(element2) => {
|
|
105
|
-
sortable$1.element = element2
|
|
124
|
+
sortable$1.element = element2 != null ? element2 : void 0;
|
|
106
125
|
},
|
|
107
126
|
[sortable$1]
|
|
108
127
|
),
|
|
109
128
|
sourceRef: react$1.useCallback(
|
|
110
129
|
(element2) => {
|
|
111
|
-
sortable$1.source = element2
|
|
130
|
+
sortable$1.source = element2 != null ? element2 : void 0;
|
|
112
131
|
},
|
|
113
132
|
[sortable$1]
|
|
114
133
|
),
|
|
115
134
|
targetRef: react$1.useCallback(
|
|
116
135
|
(element2) => {
|
|
117
|
-
sortable$1.target = element2
|
|
136
|
+
sortable$1.target = element2 != null ? element2 : void 0;
|
|
118
137
|
},
|
|
119
138
|
[sortable$1]
|
|
120
139
|
)
|
package/sortable.d.ts
CHANGED
package/sortable.js
CHANGED
|
@@ -1,10 +1,29 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { useEffect, useCallback } from 'react';
|
|
2
2
|
import { deepEqual } from '@dnd-kit/state';
|
|
3
3
|
import { Sortable, defaultSortableTransition } from '@dnd-kit/dom/sortable';
|
|
4
4
|
import { useDragDropManager } from '@dnd-kit/react';
|
|
5
5
|
import { useConstant, useComputed, useOnValueChange, useIsomorphicLayoutEffect, useImmediateEffect } from '@dnd-kit/react/hooks';
|
|
6
6
|
import { currentValue } from '@dnd-kit/react/utilities';
|
|
7
7
|
|
|
8
|
+
var __defProp = Object.defineProperty;
|
|
9
|
+
var __defProps = Object.defineProperties;
|
|
10
|
+
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
11
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
12
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
13
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
14
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
15
|
+
var __spreadValues = (a, b) => {
|
|
16
|
+
for (var prop in b || (b = {}))
|
|
17
|
+
if (__hasOwnProp.call(b, prop))
|
|
18
|
+
__defNormalProp(a, prop, b[prop]);
|
|
19
|
+
if (__getOwnPropSymbols)
|
|
20
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
21
|
+
if (__propIsEnum.call(b, prop))
|
|
22
|
+
__defNormalProp(a, prop, b[prop]);
|
|
23
|
+
}
|
|
24
|
+
return a;
|
|
25
|
+
};
|
|
26
|
+
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
8
27
|
function useSortable(input) {
|
|
9
28
|
const {
|
|
10
29
|
accept,
|
|
@@ -26,21 +45,21 @@ function useSortable(input) {
|
|
|
26
45
|
const target = currentValue(input.target);
|
|
27
46
|
const sortable = useConstant(() => {
|
|
28
47
|
return new Sortable(
|
|
29
|
-
{
|
|
30
|
-
...input,
|
|
48
|
+
__spreadProps(__spreadValues({}, input), {
|
|
31
49
|
handle,
|
|
32
50
|
element,
|
|
33
51
|
target,
|
|
34
52
|
feedback,
|
|
35
|
-
options: {
|
|
36
|
-
...input.options,
|
|
53
|
+
options: __spreadProps(__spreadValues({}, input.options), {
|
|
37
54
|
register: false
|
|
38
|
-
}
|
|
39
|
-
},
|
|
40
|
-
manager
|
|
55
|
+
})
|
|
56
|
+
}),
|
|
57
|
+
manager != null ? manager : void 0
|
|
41
58
|
);
|
|
42
|
-
}
|
|
43
|
-
|
|
59
|
+
});
|
|
60
|
+
useEffect(() => {
|
|
61
|
+
sortable.manager = manager != null ? manager : void 0;
|
|
62
|
+
if (!manager) return;
|
|
44
63
|
manager.registry.register(sortable.draggable);
|
|
45
64
|
manager.registry.register(sortable.droppable);
|
|
46
65
|
return () => {
|
|
@@ -60,11 +79,11 @@ function useSortable(input) {
|
|
|
60
79
|
void 0,
|
|
61
80
|
deepEqual
|
|
62
81
|
);
|
|
63
|
-
useOnValueChange(data, () => sortable.data = data
|
|
82
|
+
useOnValueChange(data, () => sortable.data = data != null ? data : null);
|
|
64
83
|
useOnValueChange(
|
|
65
84
|
index,
|
|
66
85
|
() => {
|
|
67
|
-
if (manager.dragOperation.status.idle && transition) {
|
|
86
|
+
if ((manager == null ? void 0 : manager.dragOperation.status.idle) && transition) {
|
|
68
87
|
sortable.refreshShape();
|
|
69
88
|
}
|
|
70
89
|
},
|
|
@@ -83,7 +102,7 @@ function useSortable(input) {
|
|
|
83
102
|
collisionPriority,
|
|
84
103
|
() => sortable.collisionPriority = collisionPriority
|
|
85
104
|
);
|
|
86
|
-
useOnValueChange(feedback, () => sortable.feedback = feedback
|
|
105
|
+
useOnValueChange(feedback, () => sortable.feedback = feedback != null ? feedback : "default");
|
|
87
106
|
useOnValueChange(transition, () => sortable.transition = transition);
|
|
88
107
|
return {
|
|
89
108
|
get isDragSource() {
|
|
@@ -94,25 +113,25 @@ function useSortable(input) {
|
|
|
94
113
|
},
|
|
95
114
|
handleRef: useCallback(
|
|
96
115
|
(element2) => {
|
|
97
|
-
sortable.handle = element2
|
|
116
|
+
sortable.handle = element2 != null ? element2 : void 0;
|
|
98
117
|
},
|
|
99
118
|
[sortable]
|
|
100
119
|
),
|
|
101
120
|
ref: useCallback(
|
|
102
121
|
(element2) => {
|
|
103
|
-
sortable.element = element2
|
|
122
|
+
sortable.element = element2 != null ? element2 : void 0;
|
|
104
123
|
},
|
|
105
124
|
[sortable]
|
|
106
125
|
),
|
|
107
126
|
sourceRef: useCallback(
|
|
108
127
|
(element2) => {
|
|
109
|
-
sortable.source = element2
|
|
128
|
+
sortable.source = element2 != null ? element2 : void 0;
|
|
110
129
|
},
|
|
111
130
|
[sortable]
|
|
112
131
|
),
|
|
113
132
|
targetRef: useCallback(
|
|
114
133
|
(element2) => {
|
|
115
|
-
sortable.target = element2
|
|
134
|
+
sortable.target = element2 != null ? element2 : void 0;
|
|
116
135
|
},
|
|
117
136
|
[sortable]
|
|
118
137
|
)
|
package/utilities.cjs
CHANGED
|
@@ -2,11 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
// src/utilities/currentValue.ts
|
|
4
4
|
function currentValue(value) {
|
|
5
|
+
var _a;
|
|
5
6
|
if (value == null) {
|
|
6
7
|
return void 0;
|
|
7
8
|
}
|
|
8
9
|
if (typeof value === "object" && "current" in value) {
|
|
9
|
-
return value.current
|
|
10
|
+
return (_a = value.current) != null ? _a : void 0;
|
|
10
11
|
}
|
|
11
12
|
return value;
|
|
12
13
|
}
|
package/utilities.d.ts
CHANGED
|
@@ -3,4 +3,4 @@ import { RefObject, MutableRefObject } from 'react';
|
|
|
3
3
|
type RefOrValue<T> = T | RefObject<T | null | undefined> | MutableRefObject<T> | null | undefined;
|
|
4
4
|
declare function currentValue<T>(value: RefOrValue<T>): NonNullable<T> | undefined;
|
|
5
5
|
|
|
6
|
-
export { RefOrValue, currentValue };
|
|
6
|
+
export { type RefOrValue, currentValue };
|
package/utilities.js
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
// src/utilities/currentValue.ts
|
|
2
2
|
function currentValue(value) {
|
|
3
|
+
var _a;
|
|
3
4
|
if (value == null) {
|
|
4
5
|
return void 0;
|
|
5
6
|
}
|
|
6
7
|
if (typeof value === "object" && "current" in value) {
|
|
7
|
-
return value.current
|
|
8
|
+
return (_a = value.current) != null ? _a : void 0;
|
|
8
9
|
}
|
|
9
10
|
return value;
|
|
10
11
|
}
|