@react-aria/dnd 3.0.0-rc.0 → 3.0.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/main.js +5 -1
- package/dist/main.js.map +1 -1
- package/dist/module.js +5 -1
- package/dist/module.js.map +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +10 -10
- package/src/index.ts +33 -1
- package/src/useDrop.ts +2 -0
- package/src/utils.ts +7 -5
package/dist/types.d.ts
CHANGED
|
@@ -181,6 +181,6 @@ export class ListDropTargetDelegate implements DropTargetDelegate {
|
|
|
181
181
|
constructor(collection: Collection<Node<unknown>>, ref: RefObject<HTMLElement>);
|
|
182
182
|
getDropTargetFromPoint(x: number, y: number, isValidDropTarget: (target: DropTarget) => boolean): DropTarget;
|
|
183
183
|
}
|
|
184
|
-
export type { DropTargetDelegate } from '@react-types/shared';
|
|
184
|
+
export type { DirectoryDropItem, DragEndEvent, DraggableCollectionEndEvent, DraggableCollectionMoveEvent, DraggableCollectionStartEvent, DragItem, DragMoveEvent, DragPreviewRenderer, DragStartEvent, DragTypes, DropEnterEvent, DropEvent, DropExitEvent, DropItem, DropMoveEvent, DropOperation, DroppableCollectionDropEvent, DroppableCollectionEnterEvent, DroppableCollectionExitEvent, DroppableCollectionInsertDropEvent, DroppableCollectionMoveEvent, DroppableCollectionOnItemDropEvent, DroppableCollectionReorderEvent, DroppableCollectionRootDropEvent, DropPosition, DropTarget, DropTargetDelegate, FileDropItem, ItemDropTarget, RootDropTarget, TextDropItem } from '@react-types/shared';
|
|
185
185
|
|
|
186
186
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":";;;;ACwBA,OAAO,MAAM,kCAA8B,CAAC;AC0E5C,eAAe;AACf,qCAAqC,OAAO,CAE3C;AGjFD;IACE,uCAAuC;IACvC,GAAG,EAAE,UAAU,WAAW,CAAC,CAAC;IAC5B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,SAAU,EAAE,iBAAiB,EAAE,aAAa,EAAE,KAAK,aAAa,CAAC;IAC5F,yFAAyF;IACzF,wBAAwB,CAAC,EAAE,CAAC,KAAK,EAAE,SAAU,EAAE,iBAAiB,EAAE,aAAa,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,aAAa,CAAC;IAC1H,uEAAuE;IACvE,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,cAAc,KAAK,IAAI,CAAC;IAC1C,gFAAgF;IAChF,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE,aAAa,KAAK,IAAI,CAAC;IACxC;;;;OAIG;IACH,cAAc,CAAC,EAAE,CAAC,CAAC,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAChD,sEAAsE;IACtE,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE,aAAa,KAAK,IAAI,CAAC;IACxC,8EAA8E;IAC9E,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,SAAS,KAAK,IAAI,CAAA;CAChC;AAED;IACE,uCAAuC;IACvC,SAAS,EAAE,eAAe,WAAW,CAAC,CAAC;IACvC,+DAA+D;IAC/D,YAAY,EAAE,OAAO,CAAA;CACtB;AAID;;;GAGG;AACH,wBAAwB,OAAO,EAAE,WAAW,GAAG,UAAU,
|
|
1
|
+
{"mappings":"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","sources":["packages/@react-aria/dnd/src/packages/@react-aria/dnd/src/constants.ts","packages/@react-aria/dnd/src/packages/@react-aria/dnd/src/utils.ts","packages/@react-aria/dnd/src/packages/@react-aria/dnd/src/DragManager.ts","packages/@react-aria/dnd/src/packages/@react-aria/dnd/src/useAutoScroll.ts","packages/@react-aria/dnd/src/packages/@react-aria/dnd/src/useVirtualDrop.ts","packages/@react-aria/dnd/src/packages/@react-aria/dnd/src/useDrop.ts","packages/@react-aria/dnd/src/packages/@react-aria/dnd/src/useDroppableCollection.ts","packages/@react-aria/dnd/src/packages/@react-aria/dnd/src/useDroppableItem.ts","packages/@react-aria/dnd/src/packages/@react-aria/dnd/src/useDropIndicator.ts","packages/@react-aria/dnd/src/packages/@react-aria/dnd/src/useDrag.ts","packages/@react-aria/dnd/src/packages/@react-aria/dnd/src/useDraggableItem.ts","packages/@react-aria/dnd/src/packages/@react-aria/dnd/src/useDraggableCollection.ts","packages/@react-aria/dnd/src/packages/@react-aria/dnd/src/DragPreview.tsx","packages/@react-aria/dnd/src/packages/@react-aria/dnd/src/useClipboard.ts","packages/@react-aria/dnd/src/packages/@react-aria/dnd/src/ListDropTargetDelegate.ts","packages/@react-aria/dnd/src/packages/@react-aria/dnd/src/index.ts","packages/@react-aria/dnd/src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nexport type {DroppableCollectionOptions, DroppableCollectionResult} from './useDroppableCollection';\nexport type {DroppableItemOptions, DroppableItemResult} from './useDroppableItem';\nexport type {DropIndicatorProps, DropIndicatorAria} from './useDropIndicator';\nexport type {DraggableItemProps, DraggableItemResult} from './useDraggableItem';\nexport type {DraggableCollectionOptions} from './useDraggableCollection';\nexport type {DragPreviewProps} from './DragPreview';\nexport type {DragOptions, DragResult} from './useDrag';\nexport type {DropOptions, DropResult} from './useDrop';\nexport type {ClipboardProps, ClipboardResult} from './useClipboard';\nexport type {\n DirectoryDropItem,\n DragEndEvent,\n DraggableCollectionEndEvent,\n DraggableCollectionMoveEvent,\n DraggableCollectionStartEvent,\n DragItem,\n DragMoveEvent,\n DragPreviewRenderer,\n DragStartEvent,\n DragTypes,\n DropEnterEvent,\n DropEvent,\n DropExitEvent,\n DropItem,\n DropMoveEvent,\n DropOperation,\n DroppableCollectionDropEvent,\n DroppableCollectionEnterEvent,\n DroppableCollectionExitEvent,\n DroppableCollectionInsertDropEvent,\n DroppableCollectionMoveEvent,\n DroppableCollectionOnItemDropEvent,\n DroppableCollectionReorderEvent,\n DroppableCollectionRootDropEvent,\n DropPosition,\n DropTarget,\n DropTargetDelegate,\n FileDropItem,\n ItemDropTarget,\n RootDropTarget,\n TextDropItem\n} from '@react-types/shared';\n\nexport {DIRECTORY_DRAG_TYPE} from './utils';\nexport {useDrag} from './useDrag';\nexport {useDrop} from './useDrop';\nexport {useDroppableCollection} from './useDroppableCollection';\nexport {useDroppableItem} from './useDroppableItem';\nexport {useDropIndicator} from './useDropIndicator';\nexport {useDraggableItem} from './useDraggableItem';\nexport {useDraggableCollection} from './useDraggableCollection';\nexport {useClipboard} from './useClipboard';\nexport {DragPreview} from './DragPreview';\nexport {ListDropTargetDelegate} from './ListDropTargetDelegate';\nexport {isVirtualDragging} from './DragManager';\n"],"names":[],"version":3,"file":"types.d.ts.map"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@react-aria/dnd",
|
|
3
|
-
"version": "3.0.0
|
|
3
|
+
"version": "3.0.0",
|
|
4
4
|
"description": "Spectrum UI components in React",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"main": "dist/main.js",
|
|
@@ -19,15 +19,15 @@
|
|
|
19
19
|
"dependencies": {
|
|
20
20
|
"@babel/runtime": "^7.6.2",
|
|
21
21
|
"@internationalized/string": "^3.0.0",
|
|
22
|
-
"@react-aria/i18n": "^3.6.
|
|
23
|
-
"@react-aria/interactions": "^3.
|
|
22
|
+
"@react-aria/i18n": "^3.6.2",
|
|
23
|
+
"@react-aria/interactions": "^3.13.0",
|
|
24
24
|
"@react-aria/live-announcer": "^3.1.1",
|
|
25
|
-
"@react-aria/overlays": "^3.
|
|
26
|
-
"@react-aria/utils": "^3.14.
|
|
27
|
-
"@react-aria/visually-hidden": "^3.
|
|
28
|
-
"@react-stately/dnd": "3.0.0
|
|
29
|
-
"@react-types/button": "^3.
|
|
30
|
-
"@react-types/shared": "^3.
|
|
25
|
+
"@react-aria/overlays": "^3.12.0",
|
|
26
|
+
"@react-aria/utils": "^3.14.1",
|
|
27
|
+
"@react-aria/visually-hidden": "^3.6.0",
|
|
28
|
+
"@react-stately/dnd": "^3.0.0",
|
|
29
|
+
"@react-types/button": "^3.7.0",
|
|
30
|
+
"@react-types/shared": "^3.16.0"
|
|
31
31
|
},
|
|
32
32
|
"peerDependencies": {
|
|
33
33
|
"react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0",
|
|
@@ -36,5 +36,5 @@
|
|
|
36
36
|
"publishConfig": {
|
|
37
37
|
"access": "public"
|
|
38
38
|
},
|
|
39
|
-
"gitHead": "
|
|
39
|
+
"gitHead": "2954307ddbefe149241685440c81f80ece6b2c83"
|
|
40
40
|
}
|
package/src/index.ts
CHANGED
|
@@ -19,7 +19,39 @@ export type {DragPreviewProps} from './DragPreview';
|
|
|
19
19
|
export type {DragOptions, DragResult} from './useDrag';
|
|
20
20
|
export type {DropOptions, DropResult} from './useDrop';
|
|
21
21
|
export type {ClipboardProps, ClipboardResult} from './useClipboard';
|
|
22
|
-
export type {
|
|
22
|
+
export type {
|
|
23
|
+
DirectoryDropItem,
|
|
24
|
+
DragEndEvent,
|
|
25
|
+
DraggableCollectionEndEvent,
|
|
26
|
+
DraggableCollectionMoveEvent,
|
|
27
|
+
DraggableCollectionStartEvent,
|
|
28
|
+
DragItem,
|
|
29
|
+
DragMoveEvent,
|
|
30
|
+
DragPreviewRenderer,
|
|
31
|
+
DragStartEvent,
|
|
32
|
+
DragTypes,
|
|
33
|
+
DropEnterEvent,
|
|
34
|
+
DropEvent,
|
|
35
|
+
DropExitEvent,
|
|
36
|
+
DropItem,
|
|
37
|
+
DropMoveEvent,
|
|
38
|
+
DropOperation,
|
|
39
|
+
DroppableCollectionDropEvent,
|
|
40
|
+
DroppableCollectionEnterEvent,
|
|
41
|
+
DroppableCollectionExitEvent,
|
|
42
|
+
DroppableCollectionInsertDropEvent,
|
|
43
|
+
DroppableCollectionMoveEvent,
|
|
44
|
+
DroppableCollectionOnItemDropEvent,
|
|
45
|
+
DroppableCollectionReorderEvent,
|
|
46
|
+
DroppableCollectionRootDropEvent,
|
|
47
|
+
DropPosition,
|
|
48
|
+
DropTarget,
|
|
49
|
+
DropTargetDelegate,
|
|
50
|
+
FileDropItem,
|
|
51
|
+
ItemDropTarget,
|
|
52
|
+
RootDropTarget,
|
|
53
|
+
TextDropItem
|
|
54
|
+
} from '@react-types/shared';
|
|
23
55
|
|
|
24
56
|
export {DIRECTORY_DRAG_TYPE} from './utils';
|
|
25
57
|
export {useDrag} from './useDrag';
|
package/src/useDrop.ts
CHANGED
|
@@ -164,6 +164,7 @@ export function useDrop(options: DropOptions): DropResult {
|
|
|
164
164
|
};
|
|
165
165
|
|
|
166
166
|
let onDragEnter = (e: DragEvent) => {
|
|
167
|
+
e.preventDefault();
|
|
167
168
|
e.stopPropagation();
|
|
168
169
|
state.dragOverElements.add(e.target as Element);
|
|
169
170
|
if (state.dragOverElements.size > 1) {
|
|
@@ -200,6 +201,7 @@ export function useDrop(options: DropOptions): DropResult {
|
|
|
200
201
|
};
|
|
201
202
|
|
|
202
203
|
let onDragLeave = (e: DragEvent) => {
|
|
204
|
+
e.preventDefault();
|
|
203
205
|
e.stopPropagation();
|
|
204
206
|
|
|
205
207
|
// We would use e.relatedTarget to detect if the drag is still inside the drop target,
|
package/src/utils.ts
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
*/
|
|
12
12
|
|
|
13
13
|
import {CUSTOM_DRAG_TYPE, DROP_OPERATION, GENERIC_TYPE, NATIVE_DRAG_TYPES} from './constants';
|
|
14
|
-
import {
|
|
14
|
+
import {DirectoryDropItem, DragItem, DropItem, FileDropItem, DragTypes as IDragTypes} from '@react-types/shared';
|
|
15
15
|
import {DroppableCollectionState} from '@react-stately/dnd';
|
|
16
16
|
import {getInteractionModality, useInteractionModality} from '@react-aria/interactions';
|
|
17
17
|
import {Key, RefObject} from 'react';
|
|
@@ -62,7 +62,7 @@ function mapModality(modality: string) {
|
|
|
62
62
|
modality = 'virtual';
|
|
63
63
|
}
|
|
64
64
|
|
|
65
|
-
if (modality === 'virtual' && 'ontouchstart' in window) {
|
|
65
|
+
if (modality === 'virtual' && (typeof window !== 'undefined' && 'ontouchstart' in window)) {
|
|
66
66
|
modality = 'touch';
|
|
67
67
|
}
|
|
68
68
|
|
|
@@ -216,6 +216,7 @@ export function readFromDataTransfer(dataTransfer: DataTransfer) {
|
|
|
216
216
|
// only implemented in Chrome.
|
|
217
217
|
if (typeof item.webkitGetAsEntry === 'function') {
|
|
218
218
|
let entry: FileSystemEntry = item.webkitGetAsEntry();
|
|
219
|
+
// eslint-disable-next-line max-depth
|
|
219
220
|
if (!entry) {
|
|
220
221
|
// For some reason, Firefox includes an item with type image/png when copy
|
|
221
222
|
// and pasting any file or directory (no matter the type), but returns `null` for both
|
|
@@ -225,6 +226,7 @@ export function readFromDataTransfer(dataTransfer: DataTransfer) {
|
|
|
225
226
|
continue;
|
|
226
227
|
}
|
|
227
228
|
|
|
229
|
+
// eslint-disable-next-line max-depth
|
|
228
230
|
if (entry.isFile) {
|
|
229
231
|
items.push(createFileItem(item.getAsFile()));
|
|
230
232
|
} else if (entry.isDirectory) {
|
|
@@ -268,7 +270,7 @@ function blobToString(blob: Blob): Promise<string> {
|
|
|
268
270
|
});
|
|
269
271
|
}
|
|
270
272
|
|
|
271
|
-
function createFileItem(file: File):
|
|
273
|
+
function createFileItem(file: File): FileDropItem {
|
|
272
274
|
return {
|
|
273
275
|
kind: 'file',
|
|
274
276
|
type: file.type || GENERIC_TYPE,
|
|
@@ -278,7 +280,7 @@ function createFileItem(file: File): FileItem {
|
|
|
278
280
|
};
|
|
279
281
|
}
|
|
280
282
|
|
|
281
|
-
function createDirectoryItem(entry: any):
|
|
283
|
+
function createDirectoryItem(entry: any): DirectoryDropItem {
|
|
282
284
|
return {
|
|
283
285
|
kind: 'directory',
|
|
284
286
|
name: entry.name,
|
|
@@ -286,7 +288,7 @@ function createDirectoryItem(entry: any): DirectoryItem {
|
|
|
286
288
|
};
|
|
287
289
|
}
|
|
288
290
|
|
|
289
|
-
async function *getEntries(item: FileSystemDirectoryEntry): AsyncIterable<
|
|
291
|
+
async function *getEntries(item: FileSystemDirectoryEntry): AsyncIterable<FileDropItem | DirectoryDropItem> {
|
|
290
292
|
let reader = item.createReader();
|
|
291
293
|
|
|
292
294
|
// We must call readEntries repeatedly because there may be a limit to the
|