@vuu-ui/vuu-utils 3.1.0-beta.2 → 3.1.0-beta.4
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/package.json +10 -8
- package/src/index.js +4 -4
- package/src/vendor/@dnd-kit/abstract/index.d.ts +1279 -0
- package/src/vendor/@dnd-kit/abstract/index.js +1472 -0
- package/src/vendor/@dnd-kit/abstract/index.js.map +1 -0
- package/src/vendor/@dnd-kit/abstract/modifiers.d.ts +134 -0
- package/src/vendor/@dnd-kit/abstract/modifiers.js +100 -0
- package/src/vendor/@dnd-kit/abstract/modifiers.js.map +1 -0
- package/src/vendor/@dnd-kit/abstract/package.json +60 -0
- package/src/vendor/@dnd-kit/collision/dist/index.d.ts +46 -0
- package/src/vendor/@dnd-kit/collision/dist/index.js +175 -0
- package/src/vendor/@dnd-kit/collision/package.json +42 -0
- package/src/vendor/@dnd-kit/dom/index.d.ts +298 -0
- package/src/vendor/@dnd-kit/dom/index.js +1977 -0
- package/src/vendor/@dnd-kit/dom/index.js.map +1 -0
- package/src/vendor/@dnd-kit/dom/modifiers.d.ts +26 -0
- package/src/vendor/@dnd-kit/dom/modifiers.js +117 -0
- package/src/vendor/@dnd-kit/dom/modifiers.js.map +1 -0
- package/src/vendor/@dnd-kit/dom/package.json +92 -0
- package/src/vendor/@dnd-kit/dom/plugins/debug.d.ts +8 -0
- package/src/vendor/@dnd-kit/dom/plugins/debug.js +125 -0
- package/src/vendor/@dnd-kit/dom/plugins/debug.js.map +1 -0
- package/src/vendor/@dnd-kit/dom/sortable.d.ts +125 -0
- package/src/vendor/@dnd-kit/dom/sortable.js +822 -0
- package/src/vendor/@dnd-kit/dom/sortable.js.map +1 -0
- package/src/vendor/@dnd-kit/dom/utilities.d.ts +215 -0
- package/src/vendor/@dnd-kit/dom/utilities.js +1361 -0
- package/src/vendor/@dnd-kit/dom/utilities.js.map +1 -0
- package/src/vendor/@dnd-kit/geometry/dist/index.d.ts +178 -0
- package/src/vendor/@dnd-kit/geometry/dist/index.js +347 -0
- package/src/vendor/@dnd-kit/geometry/package.json +31 -0
- package/src/vendor/@dnd-kit/react/hooks.d.ts +30 -0
- package/src/vendor/@dnd-kit/react/hooks.js +133 -0
- package/src/vendor/@dnd-kit/react/index.d.ts +84 -0
- package/src/vendor/@dnd-kit/react/index.js +617 -0
- package/src/vendor/@dnd-kit/react/package.json +80 -0
- package/src/vendor/@dnd-kit/react/sortable.d.ts +26 -0
- package/src/vendor/@dnd-kit/react/sortable.js +175 -0
- package/src/vendor/@dnd-kit/react/utilities.d.ts +7 -0
- package/src/vendor/@dnd-kit/react/utilities.js +18 -0
- package/src/vendor/@dnd-kit/state/dist/index.d.ts +54 -0
- package/src/vendor/@dnd-kit/state/dist/index.js +328 -0
- package/src/vendor/@dnd-kit/state/package.json +33 -0
- package/src/vendor/@preact/signals-core/dist/signals-core.js +1 -0
- package/src/vendor/@preact/signals-core/dist/signals-core.js.map +1 -0
- package/src/vendor/@preact/signals-core/package.json +4 -0
- package/src/vendor/tslib/CopyrightNotice.txt +15 -0
- package/src/vendor/tslib/LICENSE.txt +12 -0
- package/src/vendor/tslib/README.md +164 -0
- package/src/vendor/tslib/SECURITY.md +41 -0
- package/src/vendor/tslib/modules/index.d.ts +38 -0
- package/src/vendor/tslib/modules/index.js +70 -0
- package/src/vendor/tslib/modules/package.json +3 -0
- package/src/vendor/tslib/package.json +47 -0
- package/src/vendor/tslib/tslib.d.ts +460 -0
- package/src/vendor/tslib/tslib.es6.html +1 -0
- package/src/vendor/tslib/tslib.es6.js +402 -0
- package/src/vendor/tslib/tslib.es6.mjs +401 -0
- package/src/vendor/tslib/tslib.html +1 -0
- package/src/vendor/tslib/tslib.js +484 -0
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import { effects } from '../../state/dist/index.js';
|
|
2
|
+
import { Plugin } from '../../abstract/index.js';
|
|
3
|
+
import { hidePopover, showPopover } from '../utilities.js';
|
|
4
|
+
|
|
5
|
+
// src/plugins/debug/debug.ts
|
|
6
|
+
var Debug = class extends Plugin {
|
|
7
|
+
constructor(manager) {
|
|
8
|
+
super(manager);
|
|
9
|
+
const elements = /* @__PURE__ */ new Map();
|
|
10
|
+
let draggableElement = null;
|
|
11
|
+
let positionElement = null;
|
|
12
|
+
const cleanup = effects(() => {
|
|
13
|
+
const { dragOperation } = manager;
|
|
14
|
+
const { x, y } = dragOperation.position.current;
|
|
15
|
+
const { current: _, idle } = dragOperation.status;
|
|
16
|
+
const { collisions } = manager.collisionObserver;
|
|
17
|
+
const draggable = dragOperation.source;
|
|
18
|
+
const topCollisions = collisions.slice(1, 3);
|
|
19
|
+
const collidingIds = topCollisions.map(({ id }) => id);
|
|
20
|
+
if (draggable && dragOperation.shape) {
|
|
21
|
+
const element = draggableElement != null ? draggableElement : createDebugElement();
|
|
22
|
+
const { boundingRectangle } = dragOperation.shape.current;
|
|
23
|
+
if (!draggableElement) {
|
|
24
|
+
draggableElement = element;
|
|
25
|
+
const style = document.createElement("style");
|
|
26
|
+
style.textContent = `dialog[data-dnd-kit-debug]::backdrop {display: none;}`;
|
|
27
|
+
element.textContent = `${draggable.id}`;
|
|
28
|
+
element.setAttribute("data-dnd-kit-debug", "");
|
|
29
|
+
element.appendChild(style);
|
|
30
|
+
element.style.backgroundColor = "rgba(118, 190, 250, 0.5)";
|
|
31
|
+
element.style.color = "rgba(0,0,0,0.9)";
|
|
32
|
+
document.body.appendChild(element);
|
|
33
|
+
}
|
|
34
|
+
element.style.top = `${boundingRectangle.top}px`;
|
|
35
|
+
element.style.left = `${boundingRectangle.left}px`;
|
|
36
|
+
element.style.width = `${boundingRectangle.width}px`;
|
|
37
|
+
element.style.height = `${boundingRectangle.height}px`;
|
|
38
|
+
hidePopover(element);
|
|
39
|
+
showPopover(element);
|
|
40
|
+
} else {
|
|
41
|
+
draggableElement == null ? void 0 : draggableElement.remove();
|
|
42
|
+
draggableElement = null;
|
|
43
|
+
}
|
|
44
|
+
for (const [id, element] of elements) {
|
|
45
|
+
if (!manager.registry.droppables.has(id)) {
|
|
46
|
+
element.remove();
|
|
47
|
+
elements.delete(id);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
for (const droppable of manager.registry.droppables) {
|
|
51
|
+
const element = elements.get(droppable.id);
|
|
52
|
+
if (droppable.shape) {
|
|
53
|
+
const { boundingRectangle } = droppable.shape;
|
|
54
|
+
const debugElement = element != null ? element : createDebugElement();
|
|
55
|
+
if (!element) {
|
|
56
|
+
elements.set(droppable.id, debugElement);
|
|
57
|
+
document.body.appendChild(debugElement);
|
|
58
|
+
}
|
|
59
|
+
debugElement.style.backgroundColor = droppable.isDropTarget ? "rgba(13, 210, 36, 0.6)" : collidingIds.includes(droppable.id) ? "rgba(255, 193, 7, 0.5)" : "rgba(0, 0, 0, 0.1)";
|
|
60
|
+
debugElement.style.top = `${boundingRectangle.top}px`;
|
|
61
|
+
debugElement.style.left = `${boundingRectangle.left}px`;
|
|
62
|
+
debugElement.style.width = `${boundingRectangle.width}px`;
|
|
63
|
+
debugElement.style.height = `${boundingRectangle.height}px`;
|
|
64
|
+
debugElement.textContent = `${droppable.id}`;
|
|
65
|
+
} else if (element) {
|
|
66
|
+
element.remove();
|
|
67
|
+
elements.delete(droppable.id);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
if (!idle) {
|
|
71
|
+
if (!positionElement) {
|
|
72
|
+
positionElement = createDebugElement();
|
|
73
|
+
const horizontal = document.createElement("div");
|
|
74
|
+
const vertical = document.createElement("div");
|
|
75
|
+
horizontal.style.position = "absolute";
|
|
76
|
+
horizontal.style.width = "25px";
|
|
77
|
+
horizontal.style.height = "1px";
|
|
78
|
+
horizontal.style.backgroundColor = "#000";
|
|
79
|
+
vertical.style.position = "absolute";
|
|
80
|
+
vertical.style.width = "1px";
|
|
81
|
+
vertical.style.height = "25px";
|
|
82
|
+
vertical.style.backgroundColor = "#000";
|
|
83
|
+
positionElement.appendChild(horizontal);
|
|
84
|
+
positionElement.appendChild(vertical);
|
|
85
|
+
document.body.appendChild(positionElement);
|
|
86
|
+
}
|
|
87
|
+
positionElement.style.top = `${y}px`;
|
|
88
|
+
positionElement.style.left = `${x}px`;
|
|
89
|
+
hidePopover(positionElement);
|
|
90
|
+
queueMicrotask(() => positionElement && showPopover(positionElement));
|
|
91
|
+
} else {
|
|
92
|
+
positionElement == null ? void 0 : positionElement.remove();
|
|
93
|
+
positionElement = null;
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
this.destroy = () => {
|
|
97
|
+
positionElement == null ? void 0 : positionElement.remove();
|
|
98
|
+
draggableElement == null ? void 0 : draggableElement.remove();
|
|
99
|
+
elements.forEach((element) => element.remove());
|
|
100
|
+
cleanup();
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
};
|
|
104
|
+
function createDebugElement(tagName = "div") {
|
|
105
|
+
const element = document.createElement(tagName);
|
|
106
|
+
element.setAttribute("popover", "manual");
|
|
107
|
+
element.style.all = "initial";
|
|
108
|
+
element.style.position = "fixed";
|
|
109
|
+
element.style.display = "flex";
|
|
110
|
+
element.style.alignItems = "center";
|
|
111
|
+
element.style.justifyContent = "center";
|
|
112
|
+
element.style.border = "1px solid rgba(0, 0, 0, 0.1)";
|
|
113
|
+
element.style.boxSizing = "border-box";
|
|
114
|
+
element.style.pointerEvents = "none";
|
|
115
|
+
element.style.zIndex = "calc(infinity)";
|
|
116
|
+
element.style.color = "rgba(0,0,0,0.5)";
|
|
117
|
+
element.style.fontFamily = "sans-serif";
|
|
118
|
+
element.style.textShadow = "0 0 3px rgba(255,255,255,0.8)";
|
|
119
|
+
element.style.pointerEvents = "none";
|
|
120
|
+
return element;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
export { Debug };
|
|
124
|
+
//# sourceMappingURL=debug.js.map
|
|
125
|
+
//# sourceMappingURL=debug.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/plugins/debug/debug.ts"],"names":[],"mappings":"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","file":"debug.js","sourcesContent":["import {effects} from '@dnd-kit/state';\nimport {Plugin} from '@dnd-kit/abstract';\nimport type {UniqueIdentifier} from '@dnd-kit/abstract';\nimport type {DragDropManager} from '@dnd-kit/dom';\nimport {showPopover, hidePopover} from '@dnd-kit/dom/utilities';\n\nexport class Debug extends Plugin<DragDropManager> {\n constructor(manager: DragDropManager) {\n super(manager);\n\n const elements = new Map<UniqueIdentifier, HTMLElement>();\n let draggableElement: HTMLElement | null = null;\n let positionElement: HTMLElement | null = null;\n\n const cleanup = effects(() => {\n const {dragOperation} = manager;\n const {x, y} = dragOperation.position.current;\n const {current: _, idle} = dragOperation.status;\n const {collisions} = manager.collisionObserver;\n const draggable = dragOperation.source;\n const topCollisions = collisions.slice(1, 3);\n const collidingIds = topCollisions.map(({id}) => id);\n\n if (draggable && dragOperation.shape) {\n const element = draggableElement ?? createDebugElement();\n const {boundingRectangle} = dragOperation.shape.current;\n\n if (!draggableElement) {\n draggableElement = element;\n\n const style = document.createElement('style');\n style.textContent = `dialog[data-dnd-kit-debug]::backdrop {display: none;}`;\n\n element.textContent = `${draggable.id}`;\n element.setAttribute('data-dnd-kit-debug', '');\n element.appendChild(style);\n element.style.backgroundColor = 'rgba(118, 190, 250, 0.5)';\n element.style.color = 'rgba(0,0,0,0.9)';\n\n document.body.appendChild(element);\n }\n\n element.style.top = `${boundingRectangle.top}px`;\n element.style.left = `${boundingRectangle.left}px`;\n element.style.width = `${boundingRectangle.width}px`;\n element.style.height = `${boundingRectangle.height}px`;\n\n hidePopover(element);\n showPopover(element);\n } else {\n draggableElement?.remove();\n draggableElement = null;\n }\n\n for (const [id, element] of elements) {\n if (!manager.registry.droppables.has(id)) {\n element.remove();\n elements.delete(id);\n }\n }\n\n for (const droppable of manager.registry.droppables) {\n const element = elements.get(droppable.id);\n\n if (droppable.shape) {\n const {boundingRectangle} = droppable.shape;\n const debugElement = element ?? createDebugElement();\n\n if (!element) {\n elements.set(droppable.id, debugElement);\n document.body.appendChild(debugElement);\n }\n\n debugElement.style.backgroundColor = droppable.isDropTarget\n ? 'rgba(13, 210, 36, 0.6)'\n : collidingIds.includes(droppable.id)\n ? 'rgba(255, 193, 7, 0.5)'\n : 'rgba(0, 0, 0, 0.1)';\n\n debugElement.style.top = `${boundingRectangle.top}px`;\n debugElement.style.left = `${boundingRectangle.left}px`;\n debugElement.style.width = `${boundingRectangle.width}px`;\n debugElement.style.height = `${boundingRectangle.height}px`;\n debugElement.textContent = `${droppable.id}`;\n } else if (element) {\n element.remove();\n elements.delete(droppable.id);\n }\n }\n\n if (!idle) {\n if (!positionElement) {\n positionElement = createDebugElement();\n\n const horizontal = document.createElement('div');\n const vertical = document.createElement('div');\n\n horizontal.style.position = 'absolute';\n horizontal.style.width = '25px';\n horizontal.style.height = '1px';\n horizontal.style.backgroundColor = '#000';\n\n vertical.style.position = 'absolute';\n vertical.style.width = '1px';\n vertical.style.height = '25px';\n vertical.style.backgroundColor = '#000';\n\n positionElement.appendChild(horizontal);\n positionElement.appendChild(vertical);\n document.body.appendChild(positionElement);\n }\n\n positionElement.style.top = `${y}px`;\n positionElement.style.left = `${x}px`;\n\n hidePopover(positionElement);\n // Only one element can be promoted to the top layer per call stack\n queueMicrotask(() => positionElement && showPopover(positionElement));\n } else {\n positionElement?.remove();\n positionElement = null;\n }\n });\n\n this.destroy = () => {\n positionElement?.remove();\n draggableElement?.remove();\n elements.forEach((element) => element.remove());\n cleanup();\n };\n }\n}\n\nfunction createDebugElement(tagName = 'div') {\n const element = document.createElement(tagName);\n\n element.setAttribute('popover', 'manual');\n element.style.all = 'initial';\n element.style.position = 'fixed';\n element.style.display = 'flex';\n element.style.alignItems = 'center';\n element.style.justifyContent = 'center';\n element.style.border = '1px solid rgba(0, 0, 0, 0.1)';\n element.style.boxSizing = 'border-box';\n element.style.pointerEvents = 'none';\n element.style.zIndex = 'calc(infinity)';\n element.style.color = 'rgba(0,0,0,0.5)';\n element.style.fontFamily = 'sans-serif';\n element.style.textShadow = '0 0 3px rgba(255,255,255,0.8)';\n element.style.pointerEvents = 'none';\n\n return element;\n}\n"]}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import * as _dnd_kit_geometry from '@dnd-kit/geometry';
|
|
2
|
+
import { Alignment } from '@dnd-kit/geometry';
|
|
3
|
+
import { Data, UniqueIdentifier, PluginConstructor, Modifiers, CollisionPriority, Type, Plugin } from '@dnd-kit/abstract';
|
|
4
|
+
import { CollisionDetector } from '@dnd-kit/collision';
|
|
5
|
+
import { Draggable, Droppable, DraggableInput, DroppableInput, DragDropManager, FeedbackType, Sensors } from '@dnd-kit/dom';
|
|
6
|
+
|
|
7
|
+
interface SortableTransition {
|
|
8
|
+
/**
|
|
9
|
+
* The duration of the transition in milliseconds.
|
|
10
|
+
* @default 300
|
|
11
|
+
*/
|
|
12
|
+
duration?: number;
|
|
13
|
+
/**
|
|
14
|
+
* The easing function to use for the transition.
|
|
15
|
+
* @default 'cubic-bezier(0.25, 1, 0.5, 1)'
|
|
16
|
+
*/
|
|
17
|
+
easing?: string;
|
|
18
|
+
/**
|
|
19
|
+
* Whether the sortable item should transition when its index changes,
|
|
20
|
+
* but there is no drag operation in progress.
|
|
21
|
+
* @default false
|
|
22
|
+
**/
|
|
23
|
+
idle?: boolean;
|
|
24
|
+
}
|
|
25
|
+
interface SortableInput<T extends Data> extends DraggableInput<T>, DroppableInput<T> {
|
|
26
|
+
/**
|
|
27
|
+
* The index of the sortable item within its group.
|
|
28
|
+
*/
|
|
29
|
+
index: number;
|
|
30
|
+
/**
|
|
31
|
+
* The element that should be used as the droppable target for this sortable item.
|
|
32
|
+
*/
|
|
33
|
+
target?: Element;
|
|
34
|
+
/**
|
|
35
|
+
* The optional unique identifier of the group that the sortable item belongs to.
|
|
36
|
+
*/
|
|
37
|
+
group?: UniqueIdentifier;
|
|
38
|
+
/**
|
|
39
|
+
* The transition configuration to use when the index of the sortable item changes.
|
|
40
|
+
*/
|
|
41
|
+
transition?: SortableTransition | null;
|
|
42
|
+
/**
|
|
43
|
+
* Plugins to register when sortable item is instantiated.
|
|
44
|
+
* @default [SortableKeyboardPlugin, OptimisticSortingPlugin]
|
|
45
|
+
*/
|
|
46
|
+
plugins?: PluginConstructor[];
|
|
47
|
+
}
|
|
48
|
+
declare const defaultSortableTransition: SortableTransition;
|
|
49
|
+
declare class Sortable<T extends Data = Data> {
|
|
50
|
+
#private;
|
|
51
|
+
draggable: Draggable<T>;
|
|
52
|
+
droppable: Droppable<T>;
|
|
53
|
+
accessor index: number;
|
|
54
|
+
get initialIndex(): number;
|
|
55
|
+
get initialGroup(): UniqueIdentifier | undefined;
|
|
56
|
+
accessor group: UniqueIdentifier | undefined;
|
|
57
|
+
transition: SortableTransition | null;
|
|
58
|
+
constructor({ effects: inputEffects, group, index, sensors, type, transition, plugins, ...input }: SortableInput<T>, manager: DragDropManager<any, any> | undefined);
|
|
59
|
+
protected animate(): void;
|
|
60
|
+
get manager(): DragDropManager<any, any> | undefined;
|
|
61
|
+
set manager(manager: DragDropManager<any, any> | undefined);
|
|
62
|
+
set element(element: Element | undefined);
|
|
63
|
+
get element(): Element | undefined;
|
|
64
|
+
set target(target: Element | undefined);
|
|
65
|
+
get target(): Element | undefined;
|
|
66
|
+
set source(source: Element | undefined);
|
|
67
|
+
get source(): Element | undefined;
|
|
68
|
+
get disabled(): boolean;
|
|
69
|
+
set feedback(value: FeedbackType);
|
|
70
|
+
set disabled(value: boolean);
|
|
71
|
+
set data(data: T);
|
|
72
|
+
set handle(handle: Element | undefined);
|
|
73
|
+
set id(id: UniqueIdentifier);
|
|
74
|
+
get id(): UniqueIdentifier;
|
|
75
|
+
set sensors(value: Sensors | undefined);
|
|
76
|
+
set modifiers(value: Modifiers | undefined);
|
|
77
|
+
set collisionPriority(value: CollisionPriority | number | undefined);
|
|
78
|
+
set collisionDetector(value: CollisionDetector | undefined);
|
|
79
|
+
set alignment(value: Alignment | undefined);
|
|
80
|
+
get alignment(): Alignment | undefined;
|
|
81
|
+
set type(type: Type | undefined);
|
|
82
|
+
get type(): Type | undefined;
|
|
83
|
+
set accept(value: Droppable['accept']);
|
|
84
|
+
get accept(): Droppable["accept"];
|
|
85
|
+
get isDropTarget(): boolean;
|
|
86
|
+
/**
|
|
87
|
+
* A boolean indicating whether the sortable item is the source of a drag operation.
|
|
88
|
+
*/
|
|
89
|
+
get isDragSource(): boolean;
|
|
90
|
+
/**
|
|
91
|
+
* A boolean indicating whether the sortable item is being dragged.
|
|
92
|
+
*/
|
|
93
|
+
get isDragging(): boolean;
|
|
94
|
+
/**
|
|
95
|
+
* A boolean indicating whether the sortable item is being dropped.
|
|
96
|
+
*/
|
|
97
|
+
get isDropping(): boolean;
|
|
98
|
+
get status(): "idle" | "dragging" | "dropping";
|
|
99
|
+
refreshShape(): _dnd_kit_geometry.Shape | undefined;
|
|
100
|
+
accepts(draggable: Draggable): boolean;
|
|
101
|
+
register: () => () => void;
|
|
102
|
+
unregister: () => void;
|
|
103
|
+
destroy: () => void;
|
|
104
|
+
}
|
|
105
|
+
declare class SortableDraggable<T extends Data> extends Draggable<T> {
|
|
106
|
+
sortable: Sortable<T>;
|
|
107
|
+
constructor(input: DraggableInput<T>, manager: DragDropManager | undefined, sortable: Sortable<T>);
|
|
108
|
+
get index(): number;
|
|
109
|
+
}
|
|
110
|
+
declare class SortableDroppable<T extends Data> extends Droppable<T> {
|
|
111
|
+
sortable: Sortable<T>;
|
|
112
|
+
constructor(input: DraggableInput<T>, manager: DragDropManager | undefined, sortable: Sortable<T>);
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
declare function isSortable(element: Draggable | Droppable | null): element is SortableDroppable<any> | SortableDraggable<any>;
|
|
116
|
+
|
|
117
|
+
declare class OptimisticSortingPlugin extends Plugin<DragDropManager> {
|
|
118
|
+
constructor(manager: DragDropManager);
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
declare class SortableKeyboardPlugin extends Plugin<DragDropManager> {
|
|
122
|
+
constructor(manager: DragDropManager);
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
export { OptimisticSortingPlugin, Sortable, type SortableInput, SortableKeyboardPlugin, type SortableTransition, defaultSortableTransition, isSortable };
|