@dnd-kit/dom 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.
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/plugins/debug/debug.ts"],"names":[],"mappings":"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","sourcesContent":["import {effect} from '@dnd-kit/state';\nimport {Plugin} from '@dnd-kit/abstract';\nimport type {UniqueIdentifier} from '@dnd-kit/abstract';\nimport type {DragDropManager} from '@dnd-kit/dom';\n\nexport class Debug extends Plugin<DragDropManager> {\n constructor(manager: DragDropManager) {\n super(manager);\n\n if (process.env.NODE_ENV !== 'production') {\n const elements = new Map<UniqueIdentifier, HTMLElement>();\n let draggableElement: HTMLElement | null = null;\n\n this.destroy = effect(() => {\n const {dragOperation} = manager;\n const {current: _} = dragOperation.status;\n\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.innerText = `dialog[data-dnd-kit-debug]::backdrop {display: none;}`;\n\n element.innerText = `${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 if (element instanceof HTMLDialogElement) {\n element.showPopover();\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 } 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.innerText = `${droppable.id}`;\n } else if (element) {\n element.remove();\n elements.delete(droppable.id);\n }\n }\n });\n }\n }\n}\n\nfunction createDebugElement(tagName = 'div') {\n const element = document.createElement(tagName);\n\n element.setAttribute('popover', '');\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 = '9999';\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"]}
1
+ {"version":3,"sources":["../src/plugins/debug/debug.ts"],"names":[],"mappings":"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","sourcesContent":["import {effect} from '@dnd-kit/state';\nimport {Plugin} from '@dnd-kit/abstract';\nimport type {UniqueIdentifier} from '@dnd-kit/abstract';\nimport type {DragDropManager} from '@dnd-kit/dom';\n\nexport class Debug extends Plugin<DragDropManager> {\n constructor(manager: DragDropManager) {\n super(manager);\n\n if (process.env.NODE_ENV !== 'production') {\n const elements = new Map<UniqueIdentifier, HTMLElement>();\n let draggableElement: HTMLElement | null = null;\n\n this.destroy = effect(() => {\n const {dragOperation} = manager;\n const {current: _} = dragOperation.status;\n\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.innerText = `dialog[data-dnd-kit-debug]::backdrop {display: none;}`;\n\n element.innerText = `${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 if (element instanceof HTMLDialogElement) {\n element.showPopover();\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 } 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.innerText = `${droppable.id}`;\n } else if (element) {\n element.remove();\n elements.delete(droppable.id);\n }\n }\n });\n }\n }\n}\n\nfunction createDebugElement(tagName = 'div') {\n const element = document.createElement(tagName);\n\n element.setAttribute('popover', '');\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 = '9999';\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"]}
package/plugins/debug.js CHANGED
@@ -16,7 +16,7 @@ var Debug = class extends Plugin {
16
16
  const topCollisions = collisions.slice(1, 3);
17
17
  const collidingIds = topCollisions.map(({ id }) => id);
18
18
  if (draggable && dragOperation.shape) {
19
- const element = draggableElement ?? createDebugElement();
19
+ const element = draggableElement != null ? draggableElement : createDebugElement();
20
20
  const { boundingRectangle } = dragOperation.shape.current;
21
21
  if (!draggableElement) {
22
22
  draggableElement = element;
@@ -37,7 +37,7 @@ var Debug = class extends Plugin {
37
37
  element.style.width = `${boundingRectangle.width}px`;
38
38
  element.style.height = `${boundingRectangle.height}px`;
39
39
  } else {
40
- draggableElement?.remove();
40
+ draggableElement == null ? void 0 : draggableElement.remove();
41
41
  draggableElement = null;
42
42
  }
43
43
  for (const [id, element] of elements) {
@@ -50,7 +50,7 @@ var Debug = class extends Plugin {
50
50
  const element = elements.get(droppable.id);
51
51
  if (droppable.shape) {
52
52
  const { boundingRectangle } = droppable.shape;
53
- const debugElement = element ?? createDebugElement();
53
+ const debugElement = element != null ? element : createDebugElement();
54
54
  if (!element) {
55
55
  elements.set(droppable.id, debugElement);
56
56
  document.body.appendChild(debugElement);
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/plugins/debug/debug.ts"],"names":[],"mappings":"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","sourcesContent":["import {effect} from '@dnd-kit/state';\nimport {Plugin} from '@dnd-kit/abstract';\nimport type {UniqueIdentifier} from '@dnd-kit/abstract';\nimport type {DragDropManager} from '@dnd-kit/dom';\n\nexport class Debug extends Plugin<DragDropManager> {\n constructor(manager: DragDropManager) {\n super(manager);\n\n if (process.env.NODE_ENV !== 'production') {\n const elements = new Map<UniqueIdentifier, HTMLElement>();\n let draggableElement: HTMLElement | null = null;\n\n this.destroy = effect(() => {\n const {dragOperation} = manager;\n const {current: _} = dragOperation.status;\n\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.innerText = `dialog[data-dnd-kit-debug]::backdrop {display: none;}`;\n\n element.innerText = `${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 if (element instanceof HTMLDialogElement) {\n element.showPopover();\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 } 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.innerText = `${droppable.id}`;\n } else if (element) {\n element.remove();\n elements.delete(droppable.id);\n }\n }\n });\n }\n }\n}\n\nfunction createDebugElement(tagName = 'div') {\n const element = document.createElement(tagName);\n\n element.setAttribute('popover', '');\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 = '9999';\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"]}
1
+ {"version":3,"sources":["../src/plugins/debug/debug.ts"],"names":[],"mappings":"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","sourcesContent":["import {effect} from '@dnd-kit/state';\nimport {Plugin} from '@dnd-kit/abstract';\nimport type {UniqueIdentifier} from '@dnd-kit/abstract';\nimport type {DragDropManager} from '@dnd-kit/dom';\n\nexport class Debug extends Plugin<DragDropManager> {\n constructor(manager: DragDropManager) {\n super(manager);\n\n if (process.env.NODE_ENV !== 'production') {\n const elements = new Map<UniqueIdentifier, HTMLElement>();\n let draggableElement: HTMLElement | null = null;\n\n this.destroy = effect(() => {\n const {dragOperation} = manager;\n const {current: _} = dragOperation.status;\n\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.innerText = `dialog[data-dnd-kit-debug]::backdrop {display: none;}`;\n\n element.innerText = `${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 if (element instanceof HTMLDialogElement) {\n element.showPopover();\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 } 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.innerText = `${droppable.id}`;\n } else if (element) {\n element.remove();\n elements.delete(droppable.id);\n }\n }\n });\n }\n }\n}\n\nfunction createDebugElement(tagName = 'div') {\n const element = document.createElement(tagName);\n\n element.setAttribute('popover', '');\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 = '9999';\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"]}
package/sortable.cjs CHANGED
@@ -6,16 +6,82 @@ var collision = require('@dnd-kit/collision');
6
6
  var dom = require('@dnd-kit/dom');
7
7
  var utilities = require('@dnd-kit/dom/utilities');
8
8
 
9
+ var __create = Object.create;
9
10
  var __defProp = Object.defineProperty;
10
- var __decorateClass = (decorators, target, key, kind) => {
11
- var result = void 0 ;
12
- for (var i = decorators.length - 1, decorator; i >= 0; i--)
13
- if (decorator = decorators[i])
14
- result = (decorator(target, key, result) ) || result;
15
- if (result)
16
- __defProp(target, key, result);
17
- return result;
11
+ var __defProps = Object.defineProperties;
12
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
13
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
14
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
15
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
16
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
17
+ var __knownSymbol = (name, symbol) => (symbol = Symbol[name]) ? symbol : Symbol.for("Symbol." + name);
18
+ var __typeError = (msg) => {
19
+ throw TypeError(msg);
18
20
  };
21
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
22
+ var __spreadValues = (a, b) => {
23
+ for (var prop in b || (b = {}))
24
+ if (__hasOwnProp.call(b, prop))
25
+ __defNormalProp(a, prop, b[prop]);
26
+ if (__getOwnPropSymbols)
27
+ for (var prop of __getOwnPropSymbols(b)) {
28
+ if (__propIsEnum.call(b, prop))
29
+ __defNormalProp(a, prop, b[prop]);
30
+ }
31
+ return a;
32
+ };
33
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
34
+ var __objRest = (source, exclude) => {
35
+ var target = {};
36
+ for (var prop in source)
37
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
38
+ target[prop] = source[prop];
39
+ if (source != null && __getOwnPropSymbols)
40
+ for (var prop of __getOwnPropSymbols(source)) {
41
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
42
+ target[prop] = source[prop];
43
+ }
44
+ return target;
45
+ };
46
+ var __decoratorStart = (base) => {
47
+ var _a;
48
+ return [, , , __create((_a = void 0 ) != null ? _a : null)];
49
+ };
50
+ var __decoratorStrings = ["class", "method", "getter", "setter", "accessor", "field", "value", "get", "set"];
51
+ var __expectFn = (fn) => fn !== void 0 && typeof fn !== "function" ? __typeError("Function expected") : fn;
52
+ var __decoratorContext = (kind, name, done, metadata, fns) => ({ kind: __decoratorStrings[kind], name, metadata, addInitializer: (fn) => done._ ? __typeError("Already initialized") : fns.push(__expectFn(fn || null)) });
53
+ var __decoratorMetadata = (array, target) => __defNormalProp(target, __knownSymbol("metadata"), array[3]);
54
+ var __runInitializers = (array, flags, self, value) => {
55
+ for (var i = 0, fns = array[flags >> 1], n = fns && fns.length; i < n; i++) flags & 1 ? fns[i].call(self) : value = fns[i].call(self, value);
56
+ return value;
57
+ };
58
+ var __decorateElement = (array, flags, name, decorators, target, extra) => {
59
+ var fn, it, done, ctx, access, k = flags & 7, s = !!(flags & 8), p = !!(flags & 16);
60
+ var j = array.length + 1 , key = __decoratorStrings[k + 5];
61
+ var initializers = (array[j - 1] = []), extraInitializers = array[j] || (array[j] = []);
62
+ var desc = ((target = target.prototype), __getOwnPropDesc({ get [name]() {
63
+ return __privateGet(this, extra);
64
+ }, set [name](x) {
65
+ return __privateSet(this, extra, x);
66
+ } }, name));
67
+ for (var i = decorators.length - 1; i >= 0; i--) {
68
+ ctx = __decoratorContext(k, name, done = {}, array[3], extraInitializers);
69
+ {
70
+ ctx.static = s, ctx.private = p, access = ctx.access = { has: (x) => name in x };
71
+ access.get = (x) => x[name];
72
+ access.set = (x, y) => x[name] = y;
73
+ }
74
+ it = (0, decorators[i])({ get: desc.get, set: desc.set } , ctx), done._ = 1;
75
+ if (it === void 0) __expectFn(it) && (desc[key] = it );
76
+ else if (typeof it !== "object" || it === null) __typeError("Object expected");
77
+ else __expectFn(fn = it.get) && (desc.get = fn), __expectFn(fn = it.set) && (desc.set = fn), __expectFn(fn = it.init) && initializers.unshift(fn);
78
+ }
79
+ return desc && __defProp(target, name, desc), target;
80
+ };
81
+ var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
82
+ var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), member.get(obj));
83
+ var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
84
+ var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), member.set(obj, value), value);
19
85
 
20
86
  // src/sortable/utilities.ts
21
87
  function isSortable(element) {
@@ -71,7 +137,7 @@ var SortableKeyboardPlugin = class extends abstract.Plugin {
71
137
  const potentialTargets = [];
72
138
  for (const droppable of registry.droppables) {
73
139
  const { shape, id: id2 } = droppable;
74
- if (!shape || id2 === source?.id && isSortable(droppable) || source?.type != null && !droppable.accepts(source)) {
140
+ if (!shape || id2 === (source == null ? void 0 : source.id) && isSortable(droppable) || (source == null ? void 0 : source.type) != null && !droppable.accepts(source)) {
75
141
  continue;
76
142
  }
77
143
  switch (direction) {
@@ -114,7 +180,7 @@ var SortableKeyboardPlugin = class extends abstract.Plugin {
114
180
  return;
115
181
  }
116
182
  const droppable = registry.droppables.get(source2.id);
117
- if (!droppable?.element) {
183
+ if (!(droppable == null ? void 0 : droppable.element)) {
118
184
  return;
119
185
  }
120
186
  const { element } = droppable;
@@ -171,6 +237,7 @@ var OptimisticSortingPlugin = class extends abstract.Plugin {
171
237
  constructor(manager) {
172
238
  super(manager);
173
239
  const getSortableInstances = (group) => {
240
+ var _a;
174
241
  const sortableInstances = /* @__PURE__ */ new Map();
175
242
  for (const droppable of manager.registry.droppables) {
176
243
  if (droppable instanceof SortableDroppable) {
@@ -180,7 +247,7 @@ var OptimisticSortingPlugin = class extends abstract.Plugin {
180
247
  }
181
248
  if (sortableInstances.has(sortable.index)) {
182
249
  throw new Error(
183
- `Duplicate sortable index found for same sortable group: ${sortable.droppable.id} and ${sortableInstances.get(sortable.index)?.droppable.id} have the same index (${sortable.index}). Make sure each sortable item has a unique index. Use the \`group\` attribute to separate sortables into different groups.`
250
+ `Duplicate sortable index found for same sortable group: ${sortable.droppable.id} and ${(_a = sortableInstances.get(sortable.index)) == null ? void 0 : _a.droppable.id} have the same index (${sortable.index}). Make sure each sortable item has a unique index. Use the \`group\` attribute to separate sortables into different groups.`
184
251
  );
185
252
  }
186
253
  sortableInstances.set(sortable.index, sortable);
@@ -207,6 +274,7 @@ var OptimisticSortingPlugin = class extends abstract.Plugin {
207
274
  }
208
275
  const sortableInstances = getSortableInstances(source.sortable.group);
209
276
  manager2.renderer.rendering.then(() => {
277
+ var _a;
210
278
  for (const [index, sortable] of sortableInstances.entries()) {
211
279
  if (sortable.index !== index) {
212
280
  return;
@@ -222,7 +290,7 @@ var OptimisticSortingPlugin = class extends abstract.Plugin {
222
290
  sourceIndex,
223
291
  targetIndex
224
292
  );
225
- const sourceElement = source.sortable.droppable.internal.element.peek() ?? source.sortable.droppable.placeholder;
293
+ const sourceElement = (_a = source.sortable.droppable.internal.element.peek()) != null ? _a : source.sortable.droppable.placeholder;
226
294
  const targetElement = target.element;
227
295
  if (!targetElement || !sourceElement) {
228
296
  return;
@@ -251,6 +319,7 @@ var OptimisticSortingPlugin = class extends abstract.Plugin {
251
319
  queueMicrotask(() => {
252
320
  const sortableInstances = getSortableInstances(source.sortable.group);
253
321
  manager2.renderer.rendering.then(() => {
322
+ var _a;
254
323
  for (const [index, sortable] of sortableInstances.entries()) {
255
324
  if (sortable.index !== index) {
256
325
  return;
@@ -260,7 +329,7 @@ var OptimisticSortingPlugin = class extends abstract.Plugin {
260
329
  sortableInstances.values()
261
330
  ).sort((a, b) => a.index - b.index);
262
331
  const sourceElement = source.sortable.droppable.element;
263
- const targetElement = orderedSortables[source.sortable.initialIndex]?.element;
332
+ const targetElement = (_a = orderedSortables[source.sortable.initialIndex]) == null ? void 0 : _a.element;
264
333
  if (!targetElement || !sourceElement) {
265
334
  return;
266
335
  }
@@ -301,29 +370,42 @@ var defaultSortableTransition = {
301
370
  easing: "cubic-bezier(0.25, 1, 0.5, 1)",
302
371
  idle: false
303
372
  };
373
+ var _group_dec, _index_dec, _init, _index, _group;
374
+ _index_dec = [state.reactive], _group_dec = [state.reactive];
304
375
  var Sortable2 = class {
305
- constructor({
306
- effects: inputEffects = () => [],
307
- group,
308
- index,
309
- sensors,
310
- type,
311
- transition = defaultSortableTransition,
312
- plugins = defaultPlugins,
313
- ...input
314
- }, manager) {
315
- this.manager = manager;
376
+ constructor(_a, manager) {
377
+ __privateAdd(this, _index, __runInitializers(_init, 8, this)), __runInitializers(_init, 11, this);
378
+ __privateAdd(this, _group, __runInitializers(_init, 12, this)), __runInitializers(_init, 15, this);
379
+ var _b = _a, {
380
+ effects: inputEffects = () => [],
381
+ group,
382
+ index,
383
+ sensors,
384
+ type,
385
+ transition = defaultSortableTransition,
386
+ plugins = defaultPlugins
387
+ } = _b, input = __objRest(_b, [
388
+ "effects",
389
+ "group",
390
+ "index",
391
+ "sensors",
392
+ "type",
393
+ "transition",
394
+ "plugins"
395
+ ]);
316
396
  this.droppable = new SortableDroppable(input, manager, this);
317
397
  this.draggable = new SortableDraggable(
318
- {
319
- ...input,
398
+ __spreadProps(__spreadValues({}, input), {
320
399
  effects: () => [
321
- () => this.manager.monitor.addEventListener("dragstart", () => {
322
- this.initialIndex = this.index;
323
- this.previousIndex = this.index;
324
- }),
325
400
  () => {
326
- const { index: index2, previousIndex } = this;
401
+ var _a2;
402
+ return (_a2 = this.manager) == null ? void 0 : _a2.monitor.addEventListener("dragstart", () => {
403
+ this.initialIndex = this.index;
404
+ this.previousIndex = this.index;
405
+ });
406
+ },
407
+ () => {
408
+ const { index: index2, previousIndex, manager: _ } = this;
327
409
  if (index2 === previousIndex) {
328
410
  return;
329
411
  }
@@ -337,17 +419,21 @@ var Sortable2 = class {
337
419
  this.droppable.disabled = !target;
338
420
  }
339
421
  },
422
+ () => {
423
+ const { manager: manager2 } = this;
424
+ for (const plugin of plugins) {
425
+ manager2 == null ? void 0 : manager2.registry.register(plugin);
426
+ }
427
+ },
340
428
  ...inputEffects()
341
429
  ],
342
430
  type,
343
431
  sensors
344
- },
432
+ }),
345
433
  manager,
346
434
  this
347
435
  );
348
- for (const plugin of plugins) {
349
- manager.registry.register(plugin);
350
- }
436
+ this.manager = manager;
351
437
  this.index = index;
352
438
  this.previousIndex = index;
353
439
  this.initialIndex = index;
@@ -363,6 +449,7 @@ var Sortable2 = class {
363
449
  state.untracked(() => {
364
450
  const { manager, transition } = this;
365
451
  const { shape } = this.droppable;
452
+ if (!manager) return;
366
453
  const { idle } = manager.dragOperation.status;
367
454
  if (!shape || !transition || idle && !transition.idle) {
368
455
  return;
@@ -401,12 +488,20 @@ var Sortable2 = class {
401
488
  });
402
489
  });
403
490
  }
491
+ get manager() {
492
+ return this.draggable.manager;
493
+ }
494
+ set manager(manager) {
495
+ this.draggable.manager = manager;
496
+ this.droppable.manager = manager;
497
+ }
404
498
  set element(element) {
405
499
  this.draggable.element = element;
406
500
  this.droppable.element = element;
407
501
  }
408
502
  get element() {
409
- return this.droppable.element ?? this.draggable.element;
503
+ var _a;
504
+ return (_a = this.droppable.element) != null ? _a : this.draggable.element;
410
505
  }
411
506
  set target(target) {
412
507
  this.droppable.element = target;
@@ -454,10 +549,10 @@ var Sortable2 = class {
454
549
  this.draggable.sensors = value;
455
550
  }
456
551
  set collisionPriority(value) {
457
- this.droppable.collisionPriority = value ?? abstract.CollisionPriority.Normal;
552
+ this.droppable.collisionPriority = value != null ? value : abstract.CollisionPriority.Normal;
458
553
  }
459
554
  set collisionDetector(value) {
460
- this.droppable.collisionDetector = value ?? collision.defaultCollisionDetection;
555
+ this.droppable.collisionDetector = value != null ? value : collision.defaultCollisionDetection;
461
556
  }
462
557
  set type(type) {
463
558
  this.draggable.type = type;
@@ -490,12 +585,12 @@ var Sortable2 = class {
490
585
  destroy() {
491
586
  }
492
587
  };
493
- __decorateClass([
494
- state.reactive
495
- ], Sortable2.prototype, "index");
496
- __decorateClass([
497
- state.reactive
498
- ], Sortable2.prototype, "group");
588
+ _init = __decoratorStart();
589
+ _index = new WeakMap();
590
+ _group = new WeakMap();
591
+ __decorateElement(_init, 4, "index", _index_dec, Sortable2, _index);
592
+ __decorateElement(_init, 4, "group", _group_dec, Sortable2, _group);
593
+ __decoratorMetadata(_init, Sortable2);
499
594
  var SortableDraggable = class extends dom.Draggable {
500
595
  constructor(input, manager, sortable) {
501
596
  super(input, manager);
package/sortable.cjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["src/sortable/sortable.ts","src/sortable/SortableKeyboardPlugin.ts","src/sortable/utilities.ts","src/sortable/OptimisticSortingPlugin.ts","../helpers/dist/index.js"],"names":["batch","scheduler","manager","id","source","Plugin","Sortable","index"],"mappings":"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","sourcesContent":["import {batch, reactive, untracked} from '@dnd-kit/state';\nimport {CollisionPriority} from '@dnd-kit/abstract';\nimport type {\n Data,\n PluginConstructor,\n Type,\n UniqueIdentifier,\n} from '@dnd-kit/abstract';\nimport {\n defaultCollisionDetection,\n type CollisionDetector,\n} from '@dnd-kit/collision';\nimport {Draggable, Droppable} from '@dnd-kit/dom';\nimport type {\n DraggableInput,\n FeedbackType,\n DroppableInput,\n Sensors,\n DragDropManager,\n} from '@dnd-kit/dom';\nimport {\n animateTransform,\n computeTranslate,\n scheduler,\n} from '@dnd-kit/dom/utilities';\n\nimport {SortableKeyboardPlugin} from './SortableKeyboardPlugin.ts';\nimport {OptimisticSortingPlugin} from './OptimisticSortingPlugin.ts';\n\nexport interface SortableTransition {\n /**\n * The duration of the transition in milliseconds.\n * @default 300\n */\n duration?: number;\n /**\n * The easing function to use for the transition.\n * @default 'cubic-bezier(0.25, 1, 0.5, 1)'\n */\n easing?: string;\n /**\n * Whether the sortable item should transition when its index changes,\n * but there is no drag operation in progress.\n * @default false\n **/\n idle?: boolean;\n}\n\nconst defaultPlugins: PluginConstructor[] = [\n SortableKeyboardPlugin,\n OptimisticSortingPlugin,\n];\n\nexport interface SortableInput<T extends Data>\n extends DraggableInput<T>,\n DroppableInput<T> {\n /**\n * The index of the sortable item within its group.\n */\n index: number;\n\n /**\n * The element that should be used as the droppable target for this sortable item.\n */\n target?: Element;\n\n /**\n * The optional unique identifier of the group that the sortable item belongs to.\n */\n group?: UniqueIdentifier;\n /**\n * The transition configuration to use when the index of the sortable item changes.\n */\n transition?: SortableTransition | null;\n /**\n * Plugins to register when sortable item is instantiated.\n * @default [SortableKeyboardPlugin, OptimisticSortingPlugin]\n */\n plugins?: PluginConstructor[];\n}\n\nexport const defaultSortableTransition: SortableTransition = {\n duration: 250,\n easing: 'cubic-bezier(0.25, 1, 0.5, 1)',\n idle: false,\n};\n\nexport class Sortable<T extends Data = Data> {\n public draggable: Draggable<T>;\n public droppable: Droppable<T>;\n\n @reactive\n index: number;\n\n previousIndex: number;\n\n initialIndex: number;\n\n @reactive\n group: UniqueIdentifier | undefined;\n\n transition: SortableTransition | null;\n\n constructor(\n {\n effects: inputEffects = () => [],\n group,\n index,\n sensors,\n type,\n transition = defaultSortableTransition,\n plugins = defaultPlugins,\n ...input\n }: SortableInput<T>,\n public manager: DragDropManager<any, any>\n ) {\n this.droppable = new SortableDroppable<T>(input, manager, this);\n this.draggable = new SortableDraggable<T>(\n {\n ...input,\n effects: () => [\n () =>\n this.manager.monitor.addEventListener('dragstart', () => {\n this.initialIndex = this.index;\n this.previousIndex = this.index;\n }),\n () => {\n const {index, previousIndex} = this;\n\n // Re-run this effect whenever the index changes\n if (index === previousIndex) {\n return;\n }\n\n this.previousIndex = index;\n\n this.animate();\n },\n () => {\n const {target} = this;\n const {feedback, isDragSource} = this.draggable;\n\n if (feedback == 'move' && isDragSource) {\n this.droppable.disabled = !target;\n }\n },\n ...inputEffects(),\n ],\n type,\n sensors,\n },\n manager,\n this\n );\n\n for (const plugin of plugins) {\n manager.registry.register(plugin);\n }\n\n this.index = index;\n this.previousIndex = index;\n this.initialIndex = index;\n this.group = group;\n this.type = type;\n this.transition = transition;\n\n this.destroy = () => {\n this.draggable.destroy();\n this.droppable.destroy();\n };\n }\n\n protected animate() {\n untracked(() => {\n const {manager, transition} = this;\n const {shape} = this.droppable;\n const {idle} = manager.dragOperation.status;\n\n if (!shape || !transition || (idle && !transition.idle)) {\n return;\n }\n scheduler.schedule(() => {\n const {element} = this.droppable;\n\n if (!element) {\n return;\n }\n\n const updatedShape = this.refreshShape();\n\n if (!updatedShape) {\n return;\n }\n\n const delta = {\n x: shape.boundingRectangle.left - updatedShape.boundingRectangle.left,\n y: shape.boundingRectangle.top - updatedShape.boundingRectangle.top,\n };\n\n const {x, y, z} = computeTranslate(element);\n\n if (delta.x || delta.y) {\n animateTransform({\n element,\n keyframes: {\n translate: [\n `${x + delta.x}px ${y + delta.y}px ${z}`,\n `${x}px ${y}px ${z}`,\n ],\n },\n options: transition,\n onFinish: () => {\n if (idle) {\n this.droppable.shape = undefined;\n }\n },\n });\n }\n });\n });\n }\n\n public set element(element: Element | undefined) {\n this.draggable.element = element;\n this.droppable.element = element;\n }\n\n public get element() {\n return this.droppable.element ?? this.draggable.element;\n }\n\n public set target(target: Element | undefined) {\n this.droppable.element = target;\n }\n\n public get target() {\n return this.droppable.element;\n }\n\n public set source(source: Element | undefined) {\n this.draggable.element = source;\n }\n\n public get source() {\n return this.draggable.element;\n }\n\n public get disabled() {\n return this.draggable.disabled && this.droppable.disabled;\n }\n\n public set feedback(value: FeedbackType) {\n this.draggable.feedback = value;\n }\n\n public set disabled(value: boolean) {\n batch(() => {\n this.draggable.disabled = value;\n this.droppable.disabled = value;\n });\n }\n\n public set data(data: T | null) {\n batch(() => {\n this.draggable.data = data;\n this.droppable.data = data;\n });\n }\n\n public set handle(handle: Element | undefined) {\n this.draggable.handle = handle;\n }\n\n public set id(id: UniqueIdentifier) {\n batch(() => {\n this.draggable.id = id;\n this.droppable.id = id;\n });\n }\n\n public get id() {\n return this.droppable.id;\n }\n\n public set sensors(value: Sensors | undefined) {\n this.draggable.sensors = value;\n }\n\n public set collisionPriority(value: CollisionPriority | number | undefined) {\n this.droppable.collisionPriority = value ?? CollisionPriority.Normal;\n }\n\n public set collisionDetector(value: CollisionDetector | undefined) {\n this.droppable.collisionDetector = value ?? defaultCollisionDetection;\n }\n\n public set type(type: Type | undefined) {\n this.draggable.type = type;\n this.droppable.type = type;\n }\n\n public get type() {\n return this.draggable.type;\n }\n\n public set accept(value: Droppable['accept']) {\n this.droppable.accept = value;\n }\n\n public get accept() {\n return this.droppable.accept;\n }\n\n public get isDropTarget() {\n return this.droppable.isDropTarget;\n }\n\n /**\n * A boolean indicating whether the sortable item is the source of a drag operation.\n */\n public get isDragSource() {\n return this.draggable.isDragSource;\n }\n\n public refreshShape(ignoreTransforms: boolean = false) {\n return this.droppable.refreshShape(ignoreTransforms);\n }\n\n public accepts(draggable: Draggable): boolean {\n return this.droppable.accepts(draggable);\n }\n\n public destroy() {}\n}\n\nexport class SortableDraggable<T extends Data> extends Draggable<T> {\n constructor(\n input: DraggableInput<T>,\n manager: DragDropManager,\n public sortable: Sortable<T>\n ) {\n super(input, manager);\n }\n\n public get index() {\n return this.sortable.index;\n }\n}\n\nexport class SortableDroppable<T extends Data> extends Droppable<T> {\n constructor(\n input: DraggableInput<T>,\n manager: DragDropManager,\n public sortable: Sortable<T>\n ) {\n super(input, manager);\n }\n\n public refreshShape(ignoreTransforms = false) {\n return super.refreshShape(ignoreTransforms);\n }\n\n public get index() {\n return this.sortable.index;\n }\n}\n","import {effect} from '@dnd-kit/state';\nimport {Plugin} from '@dnd-kit/abstract';\nimport {closestCenter} from '@dnd-kit/collision';\nimport {\n isKeyboardEvent,\n scheduler,\n scrollIntoViewIfNeeded,\n} from '@dnd-kit/dom/utilities';\nimport type {Coordinates} from '@dnd-kit/geometry';\n\nimport {Scroller} from '@dnd-kit/dom';\nimport type {DragDropManager, Droppable} from '@dnd-kit/dom';\n\nimport {isSortable} from './utilities.ts';\n\nconst TOLERANCE = 10;\n\nexport class SortableKeyboardPlugin extends Plugin<DragDropManager> {\n constructor(manager: DragDropManager) {\n super(manager);\n\n const cleanupEffect = effect(() => {\n const {dragOperation} = manager;\n\n if (!isKeyboardEvent(dragOperation.activatorEvent)) {\n return;\n }\n\n if (!isSortable(dragOperation.source)) {\n return;\n }\n\n if (dragOperation.status.initialized) {\n const scroller = manager.registry.plugins.get(Scroller);\n\n if (scroller) {\n scroller.disable();\n\n return () => scroller.enable();\n }\n }\n });\n\n const unsubscribe = manager.monitor.addEventListener(\n 'dragmove',\n (event, manager) => {\n queueMicrotask(() => {\n if (this.disabled || event.defaultPrevented) {\n return;\n }\n\n const {dragOperation} = manager;\n\n if (!isKeyboardEvent(dragOperation.activatorEvent)) {\n return;\n }\n\n if (!isSortable(dragOperation.source)) {\n return;\n }\n\n if (!dragOperation.shape) {\n return;\n }\n\n const {actions, collisionObserver, registry} = manager;\n const {by} = event;\n\n if (!by) {\n return;\n }\n\n const direction = getDirection(by);\n const {source} = dragOperation;\n const {center} = dragOperation.shape.current;\n const potentialTargets: Droppable[] = [];\n\n for (const droppable of registry.droppables) {\n const {shape, id} = droppable;\n\n if (\n !shape ||\n (id === source?.id && isSortable(droppable)) ||\n (source?.type != null && !droppable.accepts(source))\n ) {\n continue;\n }\n\n switch (direction) {\n case 'down':\n if (center.y + TOLERANCE < shape.center.y) {\n potentialTargets.push(droppable);\n }\n break;\n case 'up':\n if (center.y - TOLERANCE > shape.center.y) {\n potentialTargets.push(droppable);\n }\n break;\n case 'left':\n if (center.x - TOLERANCE > shape.center.x) {\n potentialTargets.push(droppable);\n }\n break;\n case 'right':\n if (center.x + TOLERANCE < shape.center.x) {\n potentialTargets.push(droppable);\n }\n break;\n }\n }\n\n event.preventDefault();\n collisionObserver.disable();\n\n const collisions = collisionObserver.computeCollisions(\n potentialTargets,\n closestCenter\n );\n const [firstCollision] = collisions;\n\n if (!firstCollision) {\n return;\n }\n\n const {id} = firstCollision;\n\n actions.setDropTarget(id).then(() => {\n const {source} = dragOperation;\n\n if (!source) {\n return;\n }\n\n const droppable = registry.droppables.get(source.id);\n\n if (!droppable?.element) {\n return;\n }\n\n const {element} = droppable;\n scrollIntoViewIfNeeded(element);\n\n scheduler.schedule(() => {\n const shape = droppable.refreshShape();\n\n if (!shape) {\n return;\n }\n\n actions.move({\n to: {\n x: shape.center.x,\n y: shape.center.y,\n },\n });\n\n actions.setDropTarget(source.id).then(() => {\n dragOperation.shape = shape;\n collisionObserver.enable();\n });\n });\n });\n });\n }\n );\n\n this.destroy = () => {\n unsubscribe();\n cleanupEffect();\n };\n }\n}\n\nfunction getDirection(delta: Coordinates) {\n const {x, y} = delta;\n\n if (x > 0) {\n return 'right';\n } else if (x < 0) {\n return 'left';\n } else if (y > 0) {\n return 'down';\n } else if (y < 0) {\n return 'up';\n }\n}\n","import type {Droppable, Draggable} from '@dnd-kit/dom';\n\nimport {SortableDroppable, SortableDraggable} from './sortable.ts';\n\nexport function isSortable(\n element: Draggable | Droppable | null\n): element is SortableDroppable<any> | SortableDraggable<any> {\n return (\n element instanceof SortableDroppable || element instanceof SortableDraggable\n );\n}\n","import {Plugin, UniqueIdentifier} from '@dnd-kit/abstract';\nimport type {DragDropManager} from '@dnd-kit/dom';\nimport {arrayMove} from '@dnd-kit/helpers';\n\nimport {isSortable} from './utilities.ts';\nimport {Sortable, SortableDroppable} from './sortable.ts';\nimport {batch} from '@dnd-kit/state';\n\nexport class OptimisticSortingPlugin extends Plugin<DragDropManager> {\n constructor(manager: DragDropManager) {\n super(manager);\n\n const getSortableInstances = (group: UniqueIdentifier | undefined) => {\n const sortableInstances = new Map<number, Sortable>();\n\n for (const droppable of manager.registry.droppables) {\n if (droppable instanceof SortableDroppable) {\n const {sortable} = droppable;\n\n if (sortable.group !== group) {\n continue;\n }\n\n if (sortableInstances.has(sortable.index)) {\n throw new Error(\n `Duplicate sortable index found for same sortable group: ${sortable.droppable.id} and ${sortableInstances.get(sortable.index)?.droppable.id} have the same index (${sortable.index}). Make sure each sortable item has a unique index. Use the \\`group\\` attribute to separate sortables into different groups.`\n );\n }\n\n sortableInstances.set(sortable.index, sortable);\n }\n }\n\n return sortableInstances;\n };\n\n const unsubscribe = [\n manager.monitor.addEventListener('dragover', (event, manager) => {\n queueMicrotask(() => {\n if (this.disabled || event.defaultPrevented) {\n return;\n }\n\n const {dragOperation} = manager;\n const {source, target} = dragOperation;\n\n if (!isSortable(source) || !isSortable(target)) {\n return;\n }\n\n if (source.sortable === target.sortable) {\n return;\n }\n\n if (source.sortable.group !== target.sortable.group) {\n return;\n }\n\n const sortableInstances = getSortableInstances(source.sortable.group);\n\n // Wait for the renderer to handle the event before attempting to optimistically update\n manager.renderer.rendering.then(() => {\n for (const [index, sortable] of sortableInstances.entries()) {\n if (sortable.index !== index) {\n // At least one index was changed so we should abort optimistic updates\n return;\n }\n }\n\n const orderedSortables = Array.from(\n sortableInstances.values()\n ).sort((a, b) => a.index - b.index);\n\n const sourceIndex = orderedSortables.indexOf(source.sortable);\n const targetIndex = orderedSortables.indexOf(target.sortable);\n\n const newOrder = arrayMove(\n orderedSortables,\n sourceIndex,\n targetIndex\n );\n\n const sourceElement =\n source.sortable.droppable.internal.element.peek() ??\n source.sortable.droppable.placeholder;\n const targetElement = target.element;\n\n if (!targetElement || !sourceElement) {\n return;\n }\n\n reorder(sourceElement, sourceIndex, targetElement, targetIndex);\n\n batch(() => {\n for (const [index, sortable] of newOrder.entries()) {\n sortable.index = index;\n }\n });\n });\n });\n }),\n manager.monitor.addEventListener('dragend', (event, manager) => {\n if (!event.canceled) {\n return;\n }\n\n const {dragOperation} = manager;\n const {source} = dragOperation;\n\n if (!isSortable(source)) {\n return;\n }\n\n if (source.sortable.initialIndex === source.sortable.index) {\n return;\n }\n\n queueMicrotask(() => {\n const sortableInstances = getSortableInstances(source.sortable.group);\n\n // Wait for the renderer to handle the event before attempting to optimistically update\n manager.renderer.rendering.then(() => {\n for (const [index, sortable] of sortableInstances.entries()) {\n if (sortable.index !== index) {\n // At least one index was changed so we should abort optimistic updates\n return;\n }\n }\n\n const orderedSortables = Array.from(\n sortableInstances.values()\n ).sort((a, b) => a.index - b.index);\n\n const sourceElement = source.sortable.droppable.element;\n const targetElement =\n orderedSortables[source.sortable.initialIndex]?.element;\n\n if (!targetElement || !sourceElement) {\n return;\n }\n\n reorder(\n sourceElement,\n source.sortable.index,\n targetElement,\n source.sortable.initialIndex\n );\n\n batch(() => {\n for (const sortable of orderedSortables.values()) {\n sortable.index = sortable.initialIndex;\n }\n });\n });\n });\n }),\n ];\n\n this.destroy = () => {\n for (const unsubscribeListener of unsubscribe) {\n unsubscribeListener();\n }\n };\n }\n}\n\nfunction reorder(\n sourceElement: Element,\n sourceIndex: number,\n targetElement: Element,\n targetIndex: number\n) {\n const position = targetIndex < sourceIndex ? 'beforebegin' : 'afterend';\n\n targetElement.insertAdjacentElement(position, sourceElement);\n}\n","var __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\n\n// src/move.ts\nfunction arrayMove(array, from, to) {\n if (from === to) {\n return array;\n }\n const newArray = array.slice();\n newArray.splice(to, 0, newArray.splice(from, 1)[0]);\n return newArray;\n}\nfunction arraySwap(array, from, to) {\n if (from === to) {\n return array;\n }\n const newArray = array.slice();\n const item = newArray[from];\n newArray[from] = newArray[to];\n newArray[to] = item;\n return newArray;\n}\nfunction mutate(items, source, target, mutation) {\n if (!source || !target) {\n return items;\n }\n const findIndex = (item, id) => item === id || typeof item === \"object\" && \"id\" in item && item.id === id;\n if (Array.isArray(items)) {\n const sourceIndex2 = items.findIndex((item) => findIndex(item, source.id));\n const targetIndex2 = items.findIndex((item) => findIndex(item, target.id));\n if (sourceIndex2 === -1 || targetIndex2 === -1) {\n return items;\n }\n const { dragOperation: dragOperation2 } = source.manager;\n if (!dragOperation2.canceled && \"index\" in source && typeof source.index === \"number\") {\n const projectedSourceIndex = source.index;\n if (projectedSourceIndex !== sourceIndex2) {\n return mutation(items, sourceIndex2, projectedSourceIndex);\n }\n }\n return mutation(items, sourceIndex2, targetIndex2);\n }\n if (source.id === target.id) {\n return items;\n }\n const entries = Object.entries(items);\n let sourceIndex = -1;\n let sourceParent;\n let targetIndex = -1;\n let targetParent;\n for (const [id, children] of entries) {\n if (sourceIndex === -1) {\n sourceIndex = children.findIndex((item) => findIndex(item, source.id));\n if (sourceIndex !== -1) {\n sourceParent = id;\n }\n }\n if (targetIndex === -1) {\n targetIndex = children.findIndex((item) => findIndex(item, target.id));\n if (targetIndex !== -1) {\n targetParent = id;\n }\n }\n if (sourceIndex !== -1 && targetIndex !== -1) {\n break;\n }\n }\n const { dragOperation } = source.manager;\n const position = dragOperation.position.current;\n if (targetParent == null) {\n if (target.id in items) {\n const insertionIndex = target.shape && position.y > target.shape.center.y ? items[target.id].length : 0;\n targetParent = target.id;\n targetIndex = insertionIndex;\n }\n }\n if (sourceParent == null || targetParent == null) {\n return items;\n }\n if (sourceParent === targetParent) {\n return __spreadProps(__spreadValues({}, items), {\n [sourceParent]: mutation(items[sourceParent], sourceIndex, targetIndex)\n });\n }\n const isBelowTarget = target.shape && position.y > target.shape.boundingRectangle.bottom;\n const modifier = isBelowTarget ? 1 : 0;\n const sourceItem = items[sourceParent][sourceIndex];\n return __spreadProps(__spreadValues({}, items), {\n [sourceParent]: [\n ...items[sourceParent].slice(0, sourceIndex),\n ...items[sourceParent].slice(sourceIndex + 1)\n ],\n [targetParent]: [\n ...items[targetParent].slice(0, targetIndex + modifier),\n sourceItem,\n ...items[targetParent].slice(targetIndex + modifier)\n ]\n });\n}\nfunction move(items, source, target) {\n return mutate(items, source, target, arrayMove);\n}\nfunction swap(items, source, target) {\n return mutate(items, source, target, arraySwap);\n}\nexport {\n arrayMove,\n arraySwap,\n move,\n swap\n};\n"]}
1
+ {"version":3,"sources":["src/sortable/sortable.ts","src/sortable/SortableKeyboardPlugin.ts","src/sortable/utilities.ts","src/sortable/OptimisticSortingPlugin.ts","../helpers/dist/index.js"],"names":["batch","scheduler","manager","id","source","Plugin","Sortable","_a","index"],"mappings":"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","sourcesContent":["import {batch, reactive, untracked} from '@dnd-kit/state';\nimport {CollisionPriority} from '@dnd-kit/abstract';\nimport type {\n Data,\n PluginConstructor,\n Type,\n UniqueIdentifier,\n} from '@dnd-kit/abstract';\nimport {\n defaultCollisionDetection,\n type CollisionDetector,\n} from '@dnd-kit/collision';\nimport {Draggable, Droppable} from '@dnd-kit/dom';\nimport type {\n DraggableInput,\n FeedbackType,\n DroppableInput,\n Sensors,\n DragDropManager,\n} from '@dnd-kit/dom';\nimport {\n animateTransform,\n computeTranslate,\n scheduler,\n} from '@dnd-kit/dom/utilities';\n\nimport {SortableKeyboardPlugin} from './SortableKeyboardPlugin.ts';\nimport {OptimisticSortingPlugin} from './OptimisticSortingPlugin.ts';\n\nexport interface SortableTransition {\n /**\n * The duration of the transition in milliseconds.\n * @default 300\n */\n duration?: number;\n /**\n * The easing function to use for the transition.\n * @default 'cubic-bezier(0.25, 1, 0.5, 1)'\n */\n easing?: string;\n /**\n * Whether the sortable item should transition when its index changes,\n * but there is no drag operation in progress.\n * @default false\n **/\n idle?: boolean;\n}\n\nconst defaultPlugins: PluginConstructor[] = [\n SortableKeyboardPlugin,\n OptimisticSortingPlugin,\n];\n\nexport interface SortableInput<T extends Data>\n extends DraggableInput<T>,\n DroppableInput<T> {\n /**\n * The index of the sortable item within its group.\n */\n index: number;\n\n /**\n * The element that should be used as the droppable target for this sortable item.\n */\n target?: Element;\n\n /**\n * The optional unique identifier of the group that the sortable item belongs to.\n */\n group?: UniqueIdentifier;\n /**\n * The transition configuration to use when the index of the sortable item changes.\n */\n transition?: SortableTransition | null;\n /**\n * Plugins to register when sortable item is instantiated.\n * @default [SortableKeyboardPlugin, OptimisticSortingPlugin]\n */\n plugins?: PluginConstructor[];\n}\n\nexport const defaultSortableTransition: SortableTransition = {\n duration: 250,\n easing: 'cubic-bezier(0.25, 1, 0.5, 1)',\n idle: false,\n};\n\nexport class Sortable<T extends Data = Data> {\n public draggable: Draggable<T>;\n public droppable: Droppable<T>;\n\n @reactive\n public accessor index: number;\n\n previousIndex: number;\n\n initialIndex: number;\n\n @reactive\n public accessor group: UniqueIdentifier | undefined;\n\n transition: SortableTransition | null;\n\n constructor(\n {\n effects: inputEffects = () => [],\n group,\n index,\n sensors,\n type,\n transition = defaultSortableTransition,\n plugins = defaultPlugins,\n ...input\n }: SortableInput<T>,\n manager: DragDropManager<any, any> | undefined\n ) {\n this.droppable = new SortableDroppable<T>(input, manager, this);\n this.draggable = new SortableDraggable<T>(\n {\n ...input,\n effects: () => [\n () =>\n this.manager?.monitor.addEventListener('dragstart', () => {\n this.initialIndex = this.index;\n this.previousIndex = this.index;\n }),\n () => {\n const {index, previousIndex, manager: _} = this;\n\n // Re-run this effect whenever the index changes\n if (index === previousIndex) {\n return;\n }\n\n this.previousIndex = index;\n\n this.animate();\n },\n () => {\n const {target} = this;\n const {feedback, isDragSource} = this.draggable;\n\n if (feedback == 'move' && isDragSource) {\n this.droppable.disabled = !target;\n }\n },\n () => {\n const {manager} = this;\n\n for (const plugin of plugins) {\n manager?.registry.register(plugin);\n }\n },\n ...inputEffects(),\n ],\n type,\n sensors,\n },\n manager,\n this\n );\n\n this.manager = manager;\n this.index = index;\n this.previousIndex = index;\n this.initialIndex = index;\n this.group = group;\n this.type = type;\n this.transition = transition;\n\n this.destroy = () => {\n this.draggable.destroy();\n this.droppable.destroy();\n };\n }\n\n protected animate() {\n untracked(() => {\n const {manager, transition} = this;\n const {shape} = this.droppable;\n\n if (!manager) return;\n\n const {idle} = manager.dragOperation.status;\n\n if (!shape || !transition || (idle && !transition.idle)) {\n return;\n }\n\n scheduler.schedule(() => {\n const {element} = this.droppable;\n\n if (!element) {\n return;\n }\n\n const updatedShape = this.refreshShape();\n\n if (!updatedShape) {\n return;\n }\n\n const delta = {\n x: shape.boundingRectangle.left - updatedShape.boundingRectangle.left,\n y: shape.boundingRectangle.top - updatedShape.boundingRectangle.top,\n };\n\n const {x, y, z} = computeTranslate(element);\n\n if (delta.x || delta.y) {\n animateTransform({\n element,\n keyframes: {\n translate: [\n `${x + delta.x}px ${y + delta.y}px ${z}`,\n `${x}px ${y}px ${z}`,\n ],\n },\n options: transition,\n onFinish: () => {\n if (idle) {\n this.droppable.shape = undefined;\n }\n },\n });\n }\n });\n });\n }\n\n public get manager(): DragDropManager<any, any> | undefined {\n return this.draggable.manager as any;\n }\n\n public set manager(manager: DragDropManager<any, any> | undefined) {\n this.draggable.manager = manager as any;\n this.droppable.manager = manager as any;\n }\n\n public set element(element: Element | undefined) {\n this.draggable.element = element;\n this.droppable.element = element;\n }\n\n public get element() {\n return this.droppable.element ?? this.draggable.element;\n }\n\n public set target(target: Element | undefined) {\n this.droppable.element = target;\n }\n\n public get target() {\n return this.droppable.element;\n }\n\n public set source(source: Element | undefined) {\n this.draggable.element = source;\n }\n\n public get source() {\n return this.draggable.element;\n }\n\n public get disabled() {\n return this.draggable.disabled && this.droppable.disabled;\n }\n\n public set feedback(value: FeedbackType) {\n this.draggable.feedback = value;\n }\n\n public set disabled(value: boolean) {\n batch(() => {\n this.draggable.disabled = value;\n this.droppable.disabled = value;\n });\n }\n\n public set data(data: T | null) {\n batch(() => {\n this.draggable.data = data;\n this.droppable.data = data;\n });\n }\n\n public set handle(handle: Element | undefined) {\n this.draggable.handle = handle;\n }\n\n public set id(id: UniqueIdentifier) {\n batch(() => {\n this.draggable.id = id;\n this.droppable.id = id;\n });\n }\n\n public get id() {\n return this.droppable.id;\n }\n\n public set sensors(value: Sensors | undefined) {\n this.draggable.sensors = value;\n }\n\n public set collisionPriority(value: CollisionPriority | number | undefined) {\n this.droppable.collisionPriority = value ?? CollisionPriority.Normal;\n }\n\n public set collisionDetector(value: CollisionDetector | undefined) {\n this.droppable.collisionDetector = value ?? defaultCollisionDetection;\n }\n\n public set type(type: Type | undefined) {\n this.draggable.type = type;\n this.droppable.type = type;\n }\n\n public get type() {\n return this.draggable.type;\n }\n\n public set accept(value: Droppable['accept']) {\n this.droppable.accept = value;\n }\n\n public get accept() {\n return this.droppable.accept;\n }\n\n public get isDropTarget() {\n return this.droppable.isDropTarget;\n }\n\n /**\n * A boolean indicating whether the sortable item is the source of a drag operation.\n */\n public get isDragSource() {\n return this.draggable.isDragSource;\n }\n\n public refreshShape(ignoreTransforms: boolean = false) {\n return this.droppable.refreshShape(ignoreTransforms);\n }\n\n public accepts(draggable: Draggable): boolean {\n return this.droppable.accepts(draggable);\n }\n\n public destroy() {}\n}\n\nexport class SortableDraggable<T extends Data> extends Draggable<T> {\n constructor(\n input: DraggableInput<T>,\n manager: DragDropManager | undefined,\n public sortable: Sortable<T>\n ) {\n super(input, manager);\n }\n\n public get index() {\n return this.sortable.index;\n }\n}\n\nexport class SortableDroppable<T extends Data> extends Droppable<T> {\n constructor(\n input: DraggableInput<T>,\n manager: DragDropManager | undefined,\n public sortable: Sortable<T>\n ) {\n super(input, manager);\n }\n\n public refreshShape(ignoreTransforms = false) {\n return super.refreshShape(ignoreTransforms);\n }\n\n public get index() {\n return this.sortable.index;\n }\n}\n","import {effect} from '@dnd-kit/state';\nimport {Plugin} from '@dnd-kit/abstract';\nimport {closestCenter} from '@dnd-kit/collision';\nimport {\n isKeyboardEvent,\n scheduler,\n scrollIntoViewIfNeeded,\n} from '@dnd-kit/dom/utilities';\nimport type {Coordinates} from '@dnd-kit/geometry';\n\nimport {Scroller} from '@dnd-kit/dom';\nimport type {DragDropManager, Droppable} from '@dnd-kit/dom';\n\nimport {isSortable} from './utilities.ts';\n\nconst TOLERANCE = 10;\n\nexport class SortableKeyboardPlugin extends Plugin<DragDropManager> {\n constructor(manager: DragDropManager) {\n super(manager);\n\n const cleanupEffect = effect(() => {\n const {dragOperation} = manager;\n\n if (!isKeyboardEvent(dragOperation.activatorEvent)) {\n return;\n }\n\n if (!isSortable(dragOperation.source)) {\n return;\n }\n\n if (dragOperation.status.initialized) {\n const scroller = manager.registry.plugins.get(Scroller);\n\n if (scroller) {\n scroller.disable();\n\n return () => scroller.enable();\n }\n }\n });\n\n const unsubscribe = manager.monitor.addEventListener(\n 'dragmove',\n (event, manager) => {\n queueMicrotask(() => {\n if (this.disabled || event.defaultPrevented) {\n return;\n }\n\n const {dragOperation} = manager;\n\n if (!isKeyboardEvent(dragOperation.activatorEvent)) {\n return;\n }\n\n if (!isSortable(dragOperation.source)) {\n return;\n }\n\n if (!dragOperation.shape) {\n return;\n }\n\n const {actions, collisionObserver, registry} = manager;\n const {by} = event;\n\n if (!by) {\n return;\n }\n\n const direction = getDirection(by);\n const {source} = dragOperation;\n const {center} = dragOperation.shape.current;\n const potentialTargets: Droppable[] = [];\n\n for (const droppable of registry.droppables) {\n const {shape, id} = droppable;\n\n if (\n !shape ||\n (id === source?.id && isSortable(droppable)) ||\n (source?.type != null && !droppable.accepts(source))\n ) {\n continue;\n }\n\n switch (direction) {\n case 'down':\n if (center.y + TOLERANCE < shape.center.y) {\n potentialTargets.push(droppable);\n }\n break;\n case 'up':\n if (center.y - TOLERANCE > shape.center.y) {\n potentialTargets.push(droppable);\n }\n break;\n case 'left':\n if (center.x - TOLERANCE > shape.center.x) {\n potentialTargets.push(droppable);\n }\n break;\n case 'right':\n if (center.x + TOLERANCE < shape.center.x) {\n potentialTargets.push(droppable);\n }\n break;\n }\n }\n\n event.preventDefault();\n collisionObserver.disable();\n\n const collisions = collisionObserver.computeCollisions(\n potentialTargets,\n closestCenter\n );\n const [firstCollision] = collisions;\n\n if (!firstCollision) {\n return;\n }\n\n const {id} = firstCollision;\n\n actions.setDropTarget(id).then(() => {\n const {source} = dragOperation;\n\n if (!source) {\n return;\n }\n\n const droppable = registry.droppables.get(source.id);\n\n if (!droppable?.element) {\n return;\n }\n\n const {element} = droppable;\n scrollIntoViewIfNeeded(element);\n\n scheduler.schedule(() => {\n const shape = droppable.refreshShape();\n\n if (!shape) {\n return;\n }\n\n actions.move({\n to: {\n x: shape.center.x,\n y: shape.center.y,\n },\n });\n\n actions.setDropTarget(source.id).then(() => {\n dragOperation.shape = shape;\n collisionObserver.enable();\n });\n });\n });\n });\n }\n );\n\n this.destroy = () => {\n unsubscribe();\n cleanupEffect();\n };\n }\n}\n\nfunction getDirection(delta: Coordinates) {\n const {x, y} = delta;\n\n if (x > 0) {\n return 'right';\n } else if (x < 0) {\n return 'left';\n } else if (y > 0) {\n return 'down';\n } else if (y < 0) {\n return 'up';\n }\n}\n","import type {Droppable, Draggable} from '@dnd-kit/dom';\n\nimport {SortableDroppable, SortableDraggable} from './sortable.ts';\n\nexport function isSortable(\n element: Draggable | Droppable | null\n): element is SortableDroppable<any> | SortableDraggable<any> {\n return (\n element instanceof SortableDroppable || element instanceof SortableDraggable\n );\n}\n","import {Plugin, UniqueIdentifier} from '@dnd-kit/abstract';\nimport type {DragDropManager} from '@dnd-kit/dom';\nimport {arrayMove} from '@dnd-kit/helpers';\n\nimport {isSortable} from './utilities.ts';\nimport {Sortable, SortableDroppable} from './sortable.ts';\nimport {batch} from '@dnd-kit/state';\n\nexport class OptimisticSortingPlugin extends Plugin<DragDropManager> {\n constructor(manager: DragDropManager) {\n super(manager);\n\n const getSortableInstances = (group: UniqueIdentifier | undefined) => {\n const sortableInstances = new Map<number, Sortable>();\n\n for (const droppable of manager.registry.droppables) {\n if (droppable instanceof SortableDroppable) {\n const {sortable} = droppable;\n\n if (sortable.group !== group) {\n continue;\n }\n\n if (sortableInstances.has(sortable.index)) {\n throw new Error(\n `Duplicate sortable index found for same sortable group: ${sortable.droppable.id} and ${sortableInstances.get(sortable.index)?.droppable.id} have the same index (${sortable.index}). Make sure each sortable item has a unique index. Use the \\`group\\` attribute to separate sortables into different groups.`\n );\n }\n\n sortableInstances.set(sortable.index, sortable);\n }\n }\n\n return sortableInstances;\n };\n\n const unsubscribe = [\n manager.monitor.addEventListener('dragover', (event, manager) => {\n queueMicrotask(() => {\n if (this.disabled || event.defaultPrevented) {\n return;\n }\n\n const {dragOperation} = manager;\n const {source, target} = dragOperation;\n\n if (!isSortable(source) || !isSortable(target)) {\n return;\n }\n\n if (source.sortable === target.sortable) {\n return;\n }\n\n if (source.sortable.group !== target.sortable.group) {\n return;\n }\n\n const sortableInstances = getSortableInstances(source.sortable.group);\n\n // Wait for the renderer to handle the event before attempting to optimistically update\n manager.renderer.rendering.then(() => {\n for (const [index, sortable] of sortableInstances.entries()) {\n if (sortable.index !== index) {\n // At least one index was changed so we should abort optimistic updates\n return;\n }\n }\n\n const orderedSortables = Array.from(\n sortableInstances.values()\n ).sort((a, b) => a.index - b.index);\n\n const sourceIndex = orderedSortables.indexOf(source.sortable);\n const targetIndex = orderedSortables.indexOf(target.sortable);\n\n const newOrder = arrayMove(\n orderedSortables,\n sourceIndex,\n targetIndex\n );\n\n const sourceElement =\n source.sortable.droppable.internal.element.peek() ??\n source.sortable.droppable.placeholder;\n const targetElement = target.element;\n\n if (!targetElement || !sourceElement) {\n return;\n }\n\n reorder(sourceElement, sourceIndex, targetElement, targetIndex);\n\n batch(() => {\n for (const [index, sortable] of newOrder.entries()) {\n sortable.index = index;\n }\n });\n });\n });\n }),\n manager.monitor.addEventListener('dragend', (event, manager) => {\n if (!event.canceled) {\n return;\n }\n\n const {dragOperation} = manager;\n const {source} = dragOperation;\n\n if (!isSortable(source)) {\n return;\n }\n\n if (source.sortable.initialIndex === source.sortable.index) {\n return;\n }\n\n queueMicrotask(() => {\n const sortableInstances = getSortableInstances(source.sortable.group);\n\n // Wait for the renderer to handle the event before attempting to optimistically update\n manager.renderer.rendering.then(() => {\n for (const [index, sortable] of sortableInstances.entries()) {\n if (sortable.index !== index) {\n // At least one index was changed so we should abort optimistic updates\n return;\n }\n }\n\n const orderedSortables = Array.from(\n sortableInstances.values()\n ).sort((a, b) => a.index - b.index);\n\n const sourceElement = source.sortable.droppable.element;\n const targetElement =\n orderedSortables[source.sortable.initialIndex]?.element;\n\n if (!targetElement || !sourceElement) {\n return;\n }\n\n reorder(\n sourceElement,\n source.sortable.index,\n targetElement,\n source.sortable.initialIndex\n );\n\n batch(() => {\n for (const sortable of orderedSortables.values()) {\n sortable.index = sortable.initialIndex;\n }\n });\n });\n });\n }),\n ];\n\n this.destroy = () => {\n for (const unsubscribeListener of unsubscribe) {\n unsubscribeListener();\n }\n };\n }\n}\n\nfunction reorder(\n sourceElement: Element,\n sourceIndex: number,\n targetElement: Element,\n targetIndex: number\n) {\n const position = targetIndex < sourceIndex ? 'beforebegin' : 'afterend';\n\n targetElement.insertAdjacentElement(position, sourceElement);\n}\n","var __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\n\n// src/move.ts\nfunction arrayMove(array, from, to) {\n if (from === to) {\n return array;\n }\n const newArray = array.slice();\n newArray.splice(to, 0, newArray.splice(from, 1)[0]);\n return newArray;\n}\nfunction arraySwap(array, from, to) {\n if (from === to) {\n return array;\n }\n const newArray = array.slice();\n const item = newArray[from];\n newArray[from] = newArray[to];\n newArray[to] = item;\n return newArray;\n}\nfunction mutate(items, source, target, mutation) {\n if (!source || !target) {\n return items;\n }\n const findIndex = (item, id) => item === id || typeof item === \"object\" && \"id\" in item && item.id === id;\n if (Array.isArray(items)) {\n const sourceIndex2 = items.findIndex((item) => findIndex(item, source.id));\n const targetIndex2 = items.findIndex((item) => findIndex(item, target.id));\n if (sourceIndex2 === -1 || targetIndex2 === -1) {\n return items;\n }\n if (source.manager) {\n const { dragOperation: dragOperation2 } = source.manager;\n if (!dragOperation2.canceled && \"index\" in source && typeof source.index === \"number\") {\n const projectedSourceIndex = source.index;\n if (projectedSourceIndex !== sourceIndex2) {\n return mutation(items, sourceIndex2, projectedSourceIndex);\n }\n }\n }\n return mutation(items, sourceIndex2, targetIndex2);\n }\n if (source.id === target.id) {\n return items;\n }\n const entries = Object.entries(items);\n let sourceIndex = -1;\n let sourceParent;\n let targetIndex = -1;\n let targetParent;\n for (const [id, children] of entries) {\n if (sourceIndex === -1) {\n sourceIndex = children.findIndex((item) => findIndex(item, source.id));\n if (sourceIndex !== -1) {\n sourceParent = id;\n }\n }\n if (targetIndex === -1) {\n targetIndex = children.findIndex((item) => findIndex(item, target.id));\n if (targetIndex !== -1) {\n targetParent = id;\n }\n }\n if (sourceIndex !== -1 && targetIndex !== -1) {\n break;\n }\n }\n if (!source.manager) return items;\n const { dragOperation } = source.manager;\n const position = dragOperation.position.current;\n if (targetParent == null) {\n if (target.id in items) {\n const insertionIndex = target.shape && position.y > target.shape.center.y ? items[target.id].length : 0;\n targetParent = target.id;\n targetIndex = insertionIndex;\n }\n }\n if (sourceParent == null || targetParent == null) {\n return items;\n }\n if (sourceParent === targetParent) {\n return __spreadProps(__spreadValues({}, items), {\n [sourceParent]: mutation(items[sourceParent], sourceIndex, targetIndex)\n });\n }\n const isBelowTarget = target.shape && position.y > target.shape.boundingRectangle.bottom;\n const modifier = isBelowTarget ? 1 : 0;\n const sourceItem = items[sourceParent][sourceIndex];\n return __spreadProps(__spreadValues({}, items), {\n [sourceParent]: [\n ...items[sourceParent].slice(0, sourceIndex),\n ...items[sourceParent].slice(sourceIndex + 1)\n ],\n [targetParent]: [\n ...items[targetParent].slice(0, targetIndex + modifier),\n sourceItem,\n ...items[targetParent].slice(targetIndex + modifier)\n ]\n });\n}\nfunction move(items, source, target) {\n return mutate(items, source, target, arrayMove);\n}\nfunction swap(items, source, target) {\n return mutate(items, source, target, arraySwap);\n}\nexport {\n arrayMove,\n arraySwap,\n move,\n swap\n};\n"]}
package/sortable.d.cts CHANGED
@@ -1,7 +1,7 @@
1
1
  import * as _dnd_kit_geometry from '@dnd-kit/geometry';
2
2
  import { Data, UniqueIdentifier, PluginConstructor, CollisionPriority, Type } from '@dnd-kit/abstract';
3
3
  import { CollisionDetector } from '@dnd-kit/collision';
4
- import { DraggableInput, DroppableInput, DragDropManager, Draggable, Droppable, FeedbackType, Sensors } from '@dnd-kit/dom';
4
+ import { DraggableInput, DroppableInput, Draggable, Droppable, DragDropManager, FeedbackType, Sensors } from '@dnd-kit/dom';
5
5
 
6
6
  interface SortableTransition {
7
7
  /**
@@ -46,16 +46,17 @@ interface SortableInput<T extends Data> extends DraggableInput<T>, DroppableInpu
46
46
  }
47
47
  declare const defaultSortableTransition: SortableTransition;
48
48
  declare class Sortable<T extends Data = Data> {
49
- manager: DragDropManager<any, any>;
50
49
  draggable: Draggable<T>;
51
50
  droppable: Droppable<T>;
52
- index: number;
51
+ accessor index: number;
53
52
  previousIndex: number;
54
53
  initialIndex: number;
55
- group: UniqueIdentifier | undefined;
54
+ accessor group: UniqueIdentifier | undefined;
56
55
  transition: SortableTransition | null;
57
- constructor({ effects: inputEffects, group, index, sensors, type, transition, plugins, ...input }: SortableInput<T>, manager: DragDropManager<any, any>);
56
+ constructor({ effects: inputEffects, group, index, sensors, type, transition, plugins, ...input }: SortableInput<T>, manager: DragDropManager<any, any> | undefined);
58
57
  protected animate(): void;
58
+ get manager(): DragDropManager<any, any> | undefined;
59
+ set manager(manager: DragDropManager<any, any> | undefined);
59
60
  set element(element: Element | undefined);
60
61
  get element(): Element | undefined;
61
62
  set target(target: Element | undefined);
package/sortable.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import * as _dnd_kit_geometry from '@dnd-kit/geometry';
2
2
  import { Data, UniqueIdentifier, PluginConstructor, CollisionPriority, Type } from '@dnd-kit/abstract';
3
3
  import { CollisionDetector } from '@dnd-kit/collision';
4
- import { DraggableInput, DroppableInput, DragDropManager, Draggable, Droppable, FeedbackType, Sensors } from '@dnd-kit/dom';
4
+ import { DraggableInput, DroppableInput, Draggable, Droppable, DragDropManager, FeedbackType, Sensors } from '@dnd-kit/dom';
5
5
 
6
6
  interface SortableTransition {
7
7
  /**
@@ -46,16 +46,17 @@ interface SortableInput<T extends Data> extends DraggableInput<T>, DroppableInpu
46
46
  }
47
47
  declare const defaultSortableTransition: SortableTransition;
48
48
  declare class Sortable<T extends Data = Data> {
49
- manager: DragDropManager<any, any>;
50
49
  draggable: Draggable<T>;
51
50
  droppable: Droppable<T>;
52
- index: number;
51
+ accessor index: number;
53
52
  previousIndex: number;
54
53
  initialIndex: number;
55
- group: UniqueIdentifier | undefined;
54
+ accessor group: UniqueIdentifier | undefined;
56
55
  transition: SortableTransition | null;
57
- constructor({ effects: inputEffects, group, index, sensors, type, transition, plugins, ...input }: SortableInput<T>, manager: DragDropManager<any, any>);
56
+ constructor({ effects: inputEffects, group, index, sensors, type, transition, plugins, ...input }: SortableInput<T>, manager: DragDropManager<any, any> | undefined);
58
57
  protected animate(): void;
58
+ get manager(): DragDropManager<any, any> | undefined;
59
+ set manager(manager: DragDropManager<any, any> | undefined);
59
60
  set element(element: Element | undefined);
60
61
  get element(): Element | undefined;
61
62
  set target(target: Element | undefined);