@vielzeug/dnd 26.11.5 → 26.11.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/_dev.js CHANGED
@@ -1,6 +1,5 @@
1
- //#region src/_dev.ts
1
+ // src/_dev.ts
2
2
  function warn(e) {}
3
- //#endregion
4
3
  export { warn };
5
4
 
6
5
  //# sourceMappingURL=_dev.js.map
package/dist/_shared.js CHANGED
@@ -1,4 +1,4 @@
1
- //#region src/_shared.ts
1
+ // src/_shared.ts
2
2
  function createDisposable(e) {
3
3
  let t = !1, n = new AbortController(), dispose = () => {
4
4
  t || (t = !0, n.abort(), e?.());
@@ -17,7 +17,6 @@ function createDisposable(e) {
17
17
  function resolveDisabled(e) {
18
18
  return e === !0;
19
19
  }
20
- //#endregion
21
20
  export { createDisposable, resolveDisabled };
22
21
 
23
22
  //# sourceMappingURL=_shared.js.map
package/dist/_touch.js CHANGED
@@ -2,7 +2,7 @@ import "./_dev.js";
2
2
  import { createDisposable as e } from "./_shared.js";
3
3
  import { DndError as t } from "./errors.js";
4
4
  import { createDragGesture as n } from "@vielzeug/gesture";
5
- //#region src/_touch.ts
5
+ // src/_touch.ts
6
6
  var r = 2147483647;
7
7
  function makeDataTransfer() {
8
8
  return {
@@ -145,7 +145,6 @@ function createScopeTouchController(i, a) {
145
145
  }
146
146
  });
147
147
  }
148
- //#endregion
149
148
  export { createScopeTouchController };
150
149
 
151
150
  //# sourceMappingURL=_touch.js.map
package/dist/dnd.cjs CHANGED
@@ -1,2 +1,2 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require("@vielzeug/keymap"),t=require("@vielzeug/gesture");function createDisposable(e){let t=!1,n=new AbortController,dispose=()=>{t||(t=!0,n.abort(),e?.())};return{get disposalSignal(){return n.signal},dispose,get disposed(){return t},[Symbol.dispose]:dispose}}function resolveDisabled(e){return e===!0}var DndError=class extends Error{constructor(e,t){super(e,t),this.name=new.target.name,Object.setPrototypeOf(this,new.target.prototype)}},DndScopeError=class extends DndError{constructor(e=`Invalid scope: use createSortableScope() to create scopes.`){super(e)}};function matchesAccept(e,t){return!t.length||t.some(t=>{let n=t.trim().toLowerCase(),r=e.type.toLowerCase();return n?n.startsWith(`.`)?e.name.toLowerCase().endsWith(n):n.endsWith(`/*`)?r.startsWith(n.slice(0,-1)):r===n:!1})}function itemsMatchAccept(e,t){return!t.length||Array.from(e).some(e=>e.kind===`file`&&t.some(t=>{let n=t.trim();return n.endsWith(`/*`)?e.type.startsWith(n.slice(0,-1)):n.startsWith(`.`)?!0:e.type===n}))}function applyFileFilters(e,t,n){let r=[],i=[];for(let n of e)(matchesAccept(n,t)?r:i).push(n);return n!==void 0&&r.length>n&&i.push(...r.splice(n)),{accepted:r,rejected:i}}function normalizeAccept(e){return e.map(e=>{let t=e.trim().toLowerCase(),n=/^\.[a-z0-9][a-z0-9._+-]*$/.test(t),r=/^[a-z0-9!#$&^_.+-]+\/(?:\*|[a-z0-9!#$&^_.+-]+)$/.test(t);if(!n&&!r)throw new DndError(`Invalid accept pattern: "${e}"`);return t})}function notify$1(e,t,...n){if(t)try{t(...n)}catch{`${e}`}}function createDropZone(e){let t=normalizeAccept(e.accept??[]);if(e.maxFiles!==void 0&&(!Number.isSafeInteger(e.maxFiles)||e.maxFiles<0))throw new DndError(`maxFiles must be a non-negative safe integer`);let{dropEffect:n=`copy`,element:r,maxFiles:i,onDrop:a,onDropRejected:o,onHoverChange:s,onValidatingChange:c}=e,l=0,u=!1,d=!1,f=new Set,setValidating=e=>{d!==e&&(d=e,notify$1(`onValidatingChange`,c,e))},updateCounter=e=>{let t=l>0&&u;l=Math.max(0,e),l===0&&(u=!1);let n=l>0&&u;n!==t&&notify$1(`onHoverChange`,s,n)},resetCounter=()=>{updateCounter(0)},p=createDisposable(()=>{for(let e of f)e.abort();f.clear(),setValidating(!1),resetCounter()}),settle=(e,t)=>{e.length>0&&notify$1(`onDrop`,a,[...e]),t.length>0&&notify$1(`onDropRejected`,o,[...t])},settleForPaste=(t,n)=>{t.length>0&&(e.onPaste?notify$1(`onPaste`,e.onPaste,[...t]):notify$1(`onDrop`,a,[...t])),n.length>0&&notify$1(`onDropRejected`,o,[...n])},dispatchWithValidation=(n,r)=>{let{accepted:a,rejected:o}=applyFileFilters(n,t,i),s=e.onValidate,c=s&&a.length>0?new AbortController:null;c&&(f.add(c),setValidating(!0));let finishValidation=()=>{c&&(f.delete(c),p.disposed||setValidating(f.size>0))},l;try{l=c&&s?s([...a],{signal:c.signal}):!0}catch(e){l=Promise.reject(e)}Promise.resolve(l).then(e=>{finishValidation(),!p.disposed&&(e===!0?r(a,o):r([],[...o,...a]))},()=>{finishValidation(),!p.disposed&&r([],[...o,...a])})},handleDragEnter=n=>{if(!resolveDisabled(e.disabled)){if(n.preventDefault(),l===0){let e=n.dataTransfer?.items;u=!t.length||!e?.length||itemsMatchAccept(e,t)}!u&&n.dataTransfer&&(n.dataTransfer.dropEffect=`none`),updateCounter(l+1)}},handleDragOver=t=>{resolveDisabled(e.disabled)||(t.preventDefault(),t.dataTransfer&&(t.dataTransfer.dropEffect=u?n:`none`))},handleDragLeave=e=>{updateCounter(l-1)},handleDrop=t=>{if(resetCounter(),resolveDisabled(e.disabled))return;t.preventDefault();let n=t.dataTransfer?.files;n&&dispatchWithValidation(Array.from(n),settle)},handlePaste=t=>{if(resolveDisabled(e.disabled))return;let n=t.clipboardData?.files;n?.length&&(t.preventDefault(),dispatchWithValidation(Array.from(n),settleForPaste))};return r.addEventListener(`dragenter`,handleDragEnter,{signal:p.disposalSignal}),r.addEventListener(`dragover`,handleDragOver,{signal:p.disposalSignal}),r.addEventListener(`dragleave`,handleDragLeave,{signal:p.disposalSignal}),r.addEventListener(`drop`,handleDrop,{signal:p.disposalSignal}),e.paste&&r.addEventListener(`paste`,handlePaste,{signal:p.disposalSignal}),window.addEventListener(`dragend`,resetCounter,{signal:p.disposalSignal}),window.addEventListener(`drop`,resetCounter,{signal:p.disposalSignal}),{get disposalSignal(){return p.disposalSignal},dispose:p.dispose,get disposed(){return p.disposed},get hovered(){return l>0&&u},[Symbol.dispose]:p[Symbol.dispose],get validating(){return d}}}var n=2147483647;function makeDataTransfer(){return{dropEffect:`move`,effectAllowed:`move`,getData:()=>``,setData(){},setDragImage(){}}}function createDefaultPreview(e){let t=e.getBoundingClientRect(),r=e.ownerDocument.createElement(`div`);return r.setAttribute(`aria-hidden`,`true`),r.setAttribute(`data-dnd-touch-preview`,``),r.setAttribute(`inert`,``),Object.assign(r.style,{background:`transparent`,border:`2px solid currentColor`,boxSizing:`border-box`,height:`${t.height}px`,left:`${t.left}px`,opacity:`0.7`,pointerEvents:`none`,position:`fixed`,top:`${t.top}px`,transition:`none`,width:`${t.width}px`,zIndex:String(n)}),r}function createScopeTouchController(e,r){let{activationDistance:i=6,preview:a}=e;if(!Number.isFinite(i)||i<0)throw new DndError(`touch.activationDistance must be a non-negative finite number`);let o=makeDataTransfer(),s=new Map,c=null,l=null,resetSession=()=>{l?.preview?.remove(),c=null,l=null},u=createDisposable(()=>{resetSession(),s.clear()}),eventTarget=e=>{let t=e.composedPath().find(e=>e.nodeType===1)??e.target;return t&&t.nodeType===1?t:null},elementBelow=(e,t)=>{let n=e.source.style.display,r=e.preview?.style.display??``;e.source.style.display=`none`,e.preview&&(e.preview.style.display=`none`);try{return e.source.ownerDocument.elementFromPoint(t.x,t.y)}finally{e.source.style.display=n,e.preview&&(e.preview.style.display=r)}},dispatch=(e,t,n,r=!1)=>{let i=new((e.ownerDocument.defaultView?.Event)??Event)(t,{bubbles:!0,cancelable:!0});return Object.defineProperties(i,{__dndTouch:{configurable:!0,value:!0},__dndTouchPreview:{configurable:!0,value:r},clientX:{configurable:!0,value:n.x},clientY:{configurable:!0,value:n.y},dataTransfer:{configurable:!0,value:o}}),e.dispatchEvent(i),i.defaultPrevented},renderPreview=e=>{if(a===!1)return null;let t;try{let n=a?.(e);t=a?n?.cloneNode(!0)??null:createDefaultPreview(e)}catch(e){`${String(e)}`,t=null}return t?(t.setAttribute(`aria-hidden`,`true`),t.setAttribute(`data-dnd-touch-preview`,``),t.setAttribute(`inert`,``),t.removeAttribute(`id`),t.querySelectorAll(`[id]`).forEach(e=>{e.removeAttribute(`id`)}),t.style.pointerEvents=`none`,t.style.position=`fixed`,t.style.zIndex=String(n),e.ownerDocument.body.appendChild(t),t):null},start=e=>{let t=c;if(c=null,!t)return;let n=renderPreview(t);l={current:e.current,lastTarget:t,preview:n,previewOrigin:n?e.current:null,source:t},dispatch(t,`dragstart`,e.current,n!==null)},move=e=>{if(!l)return;if(l.current=e.current,l.preview&&l.previewOrigin){let t=e.current.x-l.previewOrigin.x,n=e.current.y-l.previewOrigin.y;l.preview.style.transform=`translate3d(${t}px, ${n}px, 0)`}let t=elementBelow(l,e.current);t&&t!==l.lastTarget&&(l.lastTarget&&dispatch(l.lastTarget,`dragleave`,e.current),l.lastTarget=t),t&&dispatch(t,`dragover`,e.current),e.event.preventDefault()},end=e=>{if(c=null,!l)return;let t=l;try{let n=!1;if(e.reason===`release`){let r=elementBelow(t,e.current);r&&(n=dispatch(r,`drop`,e.current))}o.dropEffect=n?`move`:`none`,dispatch(t.source,`dragend`,e.current,t.preview!==null)}finally{o.dropEffect=`move`,resetSession()}};return Object.assign(u,{cancel(){for(let e of s.values())if(e.cancel())return!0;return!1},register(e){let n=(0,t.createDragGesture)(e,{activationDistance:i,onEnd:end,onMove:move,onStart:start,pointerCapture:!1,shouldStart:e=>{if(e.pointerType!==`touch`||l)return!1;let t=eventTarget(e);return c=t?r(t):null,c!==null},signal:u.disposalSignal});return s.set(e,n),()=>{n.dispose(),s.delete(e),c&&e.contains(c)&&(c=null),l&&e.contains(l.source)&&resetSession()}}})}var r=Symbol(`SortableScope`),i=`data-dnd-handle`,a=`data-dnd-item`,o=new WeakMap,s={container:!0,edgeThreshold:32,speed:18,viewport:!1};function getSortableScopeState(e){let t=o.get(e);if(!t)throw new DndScopeError;if(e.disposed)throw new DndScopeError(`Cannot register a sortable with a disposed scope.`);return t}function resolveAutoScrollOptions(e){if(e===!1)return null;if(e===!0||e===void 0)return s;if(!Number.isFinite(e.edgeThreshold??32)||(e.edgeThreshold??32)<0||!Number.isFinite(e.speed??18)||(e.speed??18)<=0)throw new DndError(`Auto-scroll edgeThreshold must be non-negative and speed must be positive`);return{container:e.container??!0,edgeThreshold:e.edgeThreshold??32,speed:e.speed??18,viewport:e.viewport??!1}}function hasOrderChanged(e,t){return t.length!==e.length||t.some((t,n)=>t!==e[n])}function isTouchDragEvent(e){return e.__dndTouch===!0}function immutableIds(e){return Object.freeze([...e])}function notify(e,t,...n){if(t)try{t(...n)}catch{`${e}`}}function scheduleHide(e){typeof requestAnimationFrame==`function`&&(e.hideFrame=requestAnimationFrame(()=>{e.hideFrame=null,e.draggedEl.style.display=`none`}))}function cancelHide(e){e.hideFrame!==null&&(cancelAnimationFrame(e.hideFrame),e.hideFrame=null)}function restoreSessionElement(e){cancelHide(e),e.draggedEl.style.display=e.originalDisplay,e.draggedEl.removeAttribute(`data-dragging`)}function snapshotOrder(e,t){e.initialOrders.has(t)||e.initialOrders.set(t,t.getOrderedIds())}function projectedChanges(e){let t=e.target;return[...e.initialOrders].flatMap(([n,r])=>{let i=r.filter(t=>t!==e.draggedId);if(n===t&&e.placeholder.parentElement===n.element){let t=[...n.element.children],r=t.indexOf(e.placeholder),a=n.getOrderedItems().filter(n=>n!==e.draggedEl&&t.indexOf(n)<r).length;i.splice(a,0,e.draggedId)}return hasOrderChanged(r,i)?[{after:i,before:r,handle:n}]:[]})}function cancelSession(e,t){let n=e.active;n&&(restoreSessionElement(n),n.originalParent.insertBefore(n.draggedEl,n.originalNextSibling?.parentNode===n.originalParent?n.originalNextSibling:null),n.placeholder.remove(),e.active=null,n.source.notifyDragEnd(n.draggedId,t),n.source.notifyInteraction({index:n.source.getOrderedIds().indexOf(n.draggedId),itemId:n.draggedId,total:n.source.getOrderedIds().length,type:`cancel`}))}function commitSession(e,t){let n=e.active;if(!n)return;let r=n.target,i=n.placeholder.parentElement,a=projectedChanges(n);for(let{after:e,before:t,handle:n}of a)n.notifyBeforeReorder(immutableIds(t),immutableIds(e));restoreSessionElement(n),r&&e.handles.has(r)&&i?i.insertBefore(n.draggedEl,n.placeholder):n.originalParent.insertBefore(n.draggedEl,n.originalNextSibling?.parentNode===n.originalParent?n.originalNextSibling:null),n.placeholder.remove(),e.active=null,n.source.notifyDragEnd(n.draggedId,t);let o=[];for(let[t,r]of n.initialOrders){if(!e.handles.has(t))continue;let n=t.getOrderedIds();hasOrderChanged(r,n)&&o.push({after:n,before:r,handle:t})}if(r&&r!==n.source){let t=o.find(e=>e.handle===n.source),i=o.find(e=>e.handle===r);if(t&&i){e.commitMove({itemId:n.draggedId,source:n.source.element,sourceBeforeIds:t.before,sourceIds:t.after,target:r.element,targetBeforeIds:i.before,targetIds:i.after});let a=i.after.indexOf(n.draggedId),o=i.after.length;n.source.notifyInteraction({index:a,itemId:n.draggedId,total:o,type:`drop`}),r.notifyInteraction({index:a,itemId:n.draggedId,total:o,type:`drop`})}return}for(let{after:e,before:t,handle:r}of o)r.commitReorder({after:e,before:t,item:n.draggedId});let s=o.find(e=>e.handle===n.source),c=s?s.after:n.source.getOrderedIds(),l=c.indexOf(n.draggedId);n.source.notifyInteraction({index:l,itemId:n.draggedId,total:c.length,type:`drop`})}function finishSession(e,t,n){if(!e.active)return;let{active:r}=e;n||!t.dataTransfer||t.dataTransfer.dropEffect===`none`||!r.target||!e.handles.has(r.target)||r.source.isDisabled()||r.target.isDisabled()?cancelSession(e,t):commitSession(e,t)}function maybeAutoScroll(e,t,n,r){if(!r)return;let{container:i,edgeThreshold:a,speed:o,viewport:s}=r,c=t.getBoundingClientRect();n===`vertical`?(i&&e.clientY<c.top+a?t.scrollTop-=o:i&&e.clientY>c.bottom-a&&(t.scrollTop+=o),s&&e.clientY<a?window.scrollBy({left:0,top:-o}):s&&e.clientY>window.innerHeight-a&&window.scrollBy({left:0,top:o})):(i&&e.clientX<c.left+a?t.scrollLeft-=o:i&&e.clientX>c.right-a&&(t.scrollLeft+=o),s&&e.clientX<a?window.scrollBy({left:-o,top:0}):s&&e.clientX>window.innerWidth-a&&window.scrollBy({left:o,top:0}))}function keyboardTargetIndex(t,n,r,i){let a=t.indexOf(n);if(a<0)return null;let o=i===`vertical`?`ArrowDown`:`ArrowRight`,s=i===`vertical`?`ArrowUp`:`ArrowLeft`,c=(0,e.matchKey)(r,o),l=(0,e.matchKey)(r,s),u;if(c)u=Math.min(t.length-1,a+1);else if(l)u=Math.max(0,a-1);else if((0,e.matchKey)(r,`Home`))u=0;else if((0,e.matchKey)(r,`End`))u=t.length-1;else return null;return u===a?null:u}function createSortableScope(e={}){let t={active:null,commitMove(t){notify(`onMove`,e.onMove,Object.freeze({...t,sourceBeforeIds:immutableIds(t.sourceBeforeIds),sourceIds:immutableIds(t.sourceIds),targetBeforeIds:immutableIds(t.targetBeforeIds),targetIds:immutableIds(t.targetIds)}))},disposables:new Set,handles:new Set,touch:null},n=createDisposable(()=>{t.touch?.dispose();for(let e of[...t.disposables])e();t.disposables.clear(),t.handles.clear()}),i={get disposalSignal(){return n.disposalSignal},dispose:n.dispose,get disposed(){return n.disposed},get isDragging(){return t.active!==null},[r]:!0,[Symbol.dispose]:n[Symbol.dispose]};return o.set(i,t),e.touch&&(t.touch=createScopeTouchController(e.touch===!0?{}:e.touch,e=>{if(t.active)return null;for(let n of t.handles){let t=n.resolveTouchTarget(e);if(t)return t}return null})),i}function createSortable(e){let{autoScroll:t=!0,axis:n=`vertical`,element:r,getKey:o,handle:s,keyboard:c=!0,placeholderClass:l=`dnd-placeholder`,scope:u=createSortableScope()}=e;if(n!==`vertical`&&n!==`horizontal`)throw new DndError(`axis must be "vertical" or "horizontal"`);let d=s?.trim()||null;if((s===void 0||d)&&d)try{r.querySelector(d)}catch(e){throw new DndError(`Invalid handle selector: "${s}"`,{cause:e})}let f=resolveAutoScrollOptions(t),p=getSortableScopeState(u);if([...p.handles].some(e=>e.element===r))throw new DndError(`A sortable is already registered for this element in the selected scope.`);let getItems=()=>(e.items?e.items():Array.from(r.children)).filter(e=>e.parentElement===r&&e.hasAttribute(a)),getOrderedIds=()=>getItems().map(e=>o(e)),m=new Map,h=r.getAttribute(`role`),rememberElement=e=>{let t=m.get(e);if(t)return t;let n={dataDndHandle:e.getAttribute(i),dataDndItem:e.getAttribute(a),draggable:e.getAttribute(`draggable`),role:e.getAttribute(`role`),tabIndex:e.getAttribute(`tabindex`),touchAction:e.style.touchAction};return m.set(e,n),n},restoreAttribute=(e,t,n)=>{n===null?e.removeAttribute(t):e.setAttribute(t,n)},syncItems=(e=getItems())=>{e.forEach(e=>{let t=rememberElement(e);t.role===null&&e.setAttribute(`role`,`listitem`),t.tabIndex===null&&(e.tabIndex=0),s===void 0?(e.setAttribute(`draggable`,`true`),p.touch&&(e.style.touchAction=`none`)):d&&e.querySelectorAll(d).forEach(e=>{rememberElement(e),e.setAttribute(i,``),e.setAttribute(`draggable`,`true`),p.touch&&(e.style.touchAction=`none`)})})},markItems=()=>{let t=new Set,n=e.items?e.items():Array.from(r.children),i=n.filter(e=>e instanceof HTMLElement&&e.parentElement===r),s=[];i.length,n.length;for(let e of i)try{let n=o(e);if(n){if(t.has(n)){`${n}`;continue}t.add(n),s.push(e)}}catch(e){`${String(e)}`}cleanupItems();for(let e of s)rememberElement(e),e.setAttribute(a,``);syncItems(s)},cleanupItems=()=>{for(let[e,t]of m)restoreAttribute(e,i,t.dataDndHandle),restoreAttribute(e,a,t.dataDndItem),restoreAttribute(e,`draggable`,t.draggable),restoreAttribute(e,`role`,t.role),restoreAttribute(e,`tabindex`,t.tabIndex),e.style.touchAction=t.touchAction;m.clear()},createPlaceholder=e=>{let t=document.createElement(`div`);return t.className=l,t.setAttribute(`aria-hidden`,`true`),n===`horizontal`?t.style.width=`${e.offsetWidth}px`:t.style.height=`${e.offsetHeight}px`,t},g={commitReorder:t=>notify(`onReorder`,e.onReorder,Object.freeze({after:immutableIds(t.after),before:immutableIds(t.before),item:t.item})),element:r,getOrderedIds,getOrderedItems:getItems,isDisabled:()=>resolveDisabled(e.disabled),notifyBeforeReorder:(t,n)=>notify(`onBeforeReorder`,e.onBeforeReorder,t,n),notifyDragEnd:(t,n)=>notify(`onDragEnd`,e.onDragEnd,t,n),notifyDragStart:(t,n)=>notify(`onDragStart`,e.onDragStart,t,n),notifyInteraction:t=>notify(`onInteraction`,e.onInteraction,Object.freeze(t)),resolveTouchTarget:t=>{if(resolveDisabled(e.disabled)||!r.contains(t))return null;let n=t.closest(`[${a}]`);if(!n||!getItems().includes(n))return null;if(s===void 0)return n;if(!d)return null;let i=t.closest(d);return i&&n.contains(i)?i:null}},handleDragStart=t=>{if(p.active||g.isDisabled())return;let n=t.target,r=n.closest(`[${a}]`);if(!r||!getItems().includes(r))return;if(s!==void 0){let e=d?n.closest(d):null;if(!e||!r.contains(e))return}let i=r.parentElement;if(!i)return;let c=createPlaceholder(r),l=r.nextSibling,u=o(r),f=new Map;f.set(g,g.getOrderedIds()),r.setAttribute(`data-dragging`,``),i.insertBefore(c,l);let m={draggedEl:r,draggedId:u,hideFrame:null,initialOrders:f,originalDisplay:r.style.display,originalNextSibling:l,originalParent:i,placeholder:c,source:g,target:g};if((!isTouchDragEvent(t)||t.__dndTouchPreview)&&scheduleHide(m),p.active=m,t.dataTransfer)try{if(t.dataTransfer.effectAllowed=`move`,t.dataTransfer.setData(`text/plain`,u),e.dragImage){let n=typeof e.dragImage==`function`?e.dragImage(u,r,t):e.dragImage,[i,a]=e.dragImageOffset??[0,0];n&&t.dataTransfer.setDragImage(n,i,a)}}catch(e){`${e instanceof Error?e.message:String(e)}`}g.notifyDragStart(m.draggedId,t),g.notifyInteraction({index:g.getOrderedIds().indexOf(u),itemId:u,total:g.getOrderedIds().length,type:`pickup`})},handleDragOver=e=>{let t=p.active;if(!t||t.source.isDisabled()||g.isDisabled())return;e.preventDefault(),maybeAutoScroll(e,r,n,f),snapshotOrder(t,g);let{draggedEl:i,placeholder:o}=t,s=e.target.closest(`[${a}]`);if(s&&!getItems().includes(s))return;if(!s){o.parentElement!==r&&r.appendChild(o),t.target=g;return}if(s===i||s===o)return;let c=s.getBoundingClientRect(),l=n===`vertical`?e.clientY>=c.top+c.height/2:e.clientX>=c.left+c.width/2;r.insertBefore(o,l?s.nextSibling:s),t.target=g},handleDrop=e=>{let t=p.active;t&&(t.source.isDisabled()||g.isDisabled()||(e.preventDefault(),t.target=g))},handleDragEnd=e=>{p.active?.source===g&&finishSession(p,e,!1)},handleKeydown=e=>{if(!c||g.isDisabled())return;let t=e.target,i=t?.closest(`[${a}]`);if(!t||!i||!getItems().includes(i))return;let s=t.closest(`input, textarea, select, button, a[href], [contenteditable]:not([contenteditable="false"]), [role="button"], [role="link"]`),l=d?t.closest(d):null;if(s&&(!l||!i.contains(l)))return;let u=getItems(),f=u.indexOf(i),p=keyboardTargetIndex(u,i,e,n);if(p===null)return;let m=u[p];if(!m)return;let h=u.map(o),_=[...u];_.splice(f,1),_.splice(p,0,i);let v=_.map(o),y=o(i);e.preventDefault(),g.notifyBeforeReorder(immutableIds(h),immutableIds(v)),r.insertBefore(i,p>f?m.nextSibling:m),i.focus(),g.commitReorder({after:v,before:h,item:y}),g.notifyInteraction({index:p,itemId:y,previousIndex:f,total:v.length,type:`move`})};markItems();let _,v=createDisposable(()=>{p.disposables.delete(v.dispose),p.active&&(p.active.source===g||p.active.target===g)&&!p.touch?.cancel()&&finishSession(p,new Event(`dragend`),!0),_?.(),p.handles.delete(g),restoreAttribute(r,`role`,h),cleanupItems()});return p.handles.add(g),_=p.touch?.register(r),h===null&&r.setAttribute(`role`,`list`),r.addEventListener(`dragstart`,handleDragStart,{signal:v.disposalSignal}),r.addEventListener(`dragover`,handleDragOver,{signal:v.disposalSignal}),r.addEventListener(`drop`,handleDrop,{signal:v.disposalSignal}),r.addEventListener(`dragend`,handleDragEnd,{signal:v.disposalSignal}),r.addEventListener(`keydown`,handleKeydown,{signal:v.disposalSignal}),p.disposables.add(v.dispose),{get disposalSignal(){return v.disposalSignal},dispose:v.dispose,get disposed(){return v.disposed},get isDragging(){return p.active?.source===g},[Symbol.dispose]:v[Symbol.dispose],refresh:()=>{markItems()}}}function applyReorder(e,t,n){let r=new Map;for(let t of e){let e=n(t);if(r.has(e))throw new DndError(`Duplicate item key: "${e}"`);r.set(e,t)}let i=[];for(let e of t){if(!r.has(e))continue;let t=r.get(e);i.push(t),r.delete(e)}for(let e of r.values())i.push(e);return i}exports.DndError=DndError,exports.DndScopeError=DndScopeError,exports.applyReorder=applyReorder,exports.createDropZone=createDropZone,exports.createSortable=createSortable,exports.createSortableScope=createSortableScope,exports.matchesAccept=matchesAccept;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require("@vielzeug/keymap"),t=require("@vielzeug/gesture");function createDisposable(e){let t=!1,n=new AbortController,dispose=()=>{t||(t=!0,n.abort(),e?.())};return{get disposalSignal(){return n.signal},dispose,get disposed(){return t},[Symbol.dispose]:dispose}}function resolveDisabled(e){return e===!0}var DndError=class extends Error{constructor(e,t){super(e,t),this.name=new.target.name,Object.setPrototypeOf(this,new.target.prototype)}},DndScopeError=class extends DndError{constructor(e=`Invalid scope: use createSortableScope() to create scopes.`){super(e)}};function matchesAccept(e,t){return!t.length||t.some(t=>{let n=t.trim().toLowerCase(),r=e.type.toLowerCase();return n?n.startsWith(`.`)?e.name.toLowerCase().endsWith(n):n.endsWith(`/*`)?r.startsWith(n.slice(0,-1)):r===n:!1})}function itemsMatchAccept(e,t){return!t.length||Array.from(e).some(e=>e.kind===`file`&&t.some(t=>{let n=t.trim();return n.endsWith(`/*`)?e.type.startsWith(n.slice(0,-1)):n.startsWith(`.`)?!0:e.type===n}))}function applyFileFilters(e,t,n){let r=[],i=[];for(let n of e)(matchesAccept(n,t)?r:i).push(n);return n!==void 0&&r.length>n&&i.push(...r.splice(n)),{accepted:r,rejected:i}}function normalizeAccept(e){return e.map(e=>{let t=e.trim().toLowerCase(),n=/^\.[a-z0-9][a-z0-9._+-]*$/.test(t),r=/^[a-z0-9!#$&^_.+-]+\/(?:\*|[a-z0-9!#$&^_.+-]+)$/.test(t);if(!n&&!r)throw new DndError(`Invalid accept pattern: "${e}"`);return t})}function notify$1(e,t,...n){if(t)try{t(...n)}catch{`${e}`}}function createDropZone(e){let t=normalizeAccept(e.accept??[]);if(e.maxFiles!==void 0&&(!Number.isSafeInteger(e.maxFiles)||e.maxFiles<0))throw new DndError(`maxFiles must be a non-negative safe integer`);let{dropEffect:n=`copy`,element:r,maxFiles:i,onDrop:a,onDropRejected:o,onHoverChange:s,onValidatingChange:c}=e,l=0,u=!1,d=!1,f=new Set,setValidating=e=>{d!==e&&(d=e,notify$1(`onValidatingChange`,c,e))},updateCounter=e=>{let t=l>0&&u;l=Math.max(0,e),l===0&&(u=!1);let n=l>0&&u;n!==t&&notify$1(`onHoverChange`,s,n)},resetCounter=()=>{updateCounter(0)},p=createDisposable(()=>{for(let e of f)e.abort();f.clear(),setValidating(!1),resetCounter()}),settle=(e,t)=>{e.length>0&&notify$1(`onDrop`,a,[...e]),t.length>0&&notify$1(`onDropRejected`,o,[...t])},settleForPaste=(t,n)=>{t.length>0&&(e.onPaste?notify$1(`onPaste`,e.onPaste,[...t]):notify$1(`onDrop`,a,[...t])),n.length>0&&notify$1(`onDropRejected`,o,[...n])},dispatchWithValidation=(n,r)=>{let{accepted:a,rejected:o}=applyFileFilters(n,t,i),s=e.onValidate,c=s&&a.length>0?new AbortController:null;c&&(f.add(c),setValidating(!0));let finishValidation=()=>{c&&(f.delete(c),p.disposed||setValidating(f.size>0))},l;try{l=c&&s?s([...a],{signal:c.signal}):!0}catch(e){l=Promise.reject(e)}Promise.resolve(l).then(e=>{finishValidation(),p.disposed||(e===!0?r(a,o):r([],[...o,...a]))},()=>{finishValidation(),p.disposed||r([],[...o,...a])})},handleDragEnter=n=>{if(!resolveDisabled(e.disabled)){if(n.preventDefault(),l===0){let e=n.dataTransfer?.items;u=!t.length||!e?.length||itemsMatchAccept(e,t)}!u&&n.dataTransfer&&(n.dataTransfer.dropEffect=`none`),updateCounter(l+1)}},handleDragOver=t=>{resolveDisabled(e.disabled)||(t.preventDefault(),t.dataTransfer&&(t.dataTransfer.dropEffect=u?n:`none`))},handleDragLeave=e=>{updateCounter(l-1)},handleDrop=t=>{if(resetCounter(),resolveDisabled(e.disabled))return;t.preventDefault();let n=t.dataTransfer?.files;n&&dispatchWithValidation(Array.from(n),settle)},handlePaste=t=>{if(resolveDisabled(e.disabled))return;let n=t.clipboardData?.files;n?.length&&(t.preventDefault(),dispatchWithValidation(Array.from(n),settleForPaste))};return r.addEventListener(`dragenter`,handleDragEnter,{signal:p.disposalSignal}),r.addEventListener(`dragover`,handleDragOver,{signal:p.disposalSignal}),r.addEventListener(`dragleave`,handleDragLeave,{signal:p.disposalSignal}),r.addEventListener(`drop`,handleDrop,{signal:p.disposalSignal}),e.paste&&r.addEventListener(`paste`,handlePaste,{signal:p.disposalSignal}),window.addEventListener(`dragend`,resetCounter,{signal:p.disposalSignal}),window.addEventListener(`drop`,resetCounter,{signal:p.disposalSignal}),{get disposalSignal(){return p.disposalSignal},dispose:p.dispose,get disposed(){return p.disposed},get hovered(){return l>0&&u},[Symbol.dispose]:p[Symbol.dispose],get validating(){return d}}}var n=2147483647;function makeDataTransfer(){return{dropEffect:`move`,effectAllowed:`move`,getData:()=>``,setData(){},setDragImage(){}}}function createDefaultPreview(e){let t=e.getBoundingClientRect(),r=e.ownerDocument.createElement(`div`);return r.setAttribute(`aria-hidden`,`true`),r.setAttribute(`data-dnd-touch-preview`,``),r.setAttribute(`inert`,``),Object.assign(r.style,{background:`transparent`,border:`2px solid currentColor`,boxSizing:`border-box`,height:`${t.height}px`,left:`${t.left}px`,opacity:`0.7`,pointerEvents:`none`,position:`fixed`,top:`${t.top}px`,transition:`none`,width:`${t.width}px`,zIndex:String(n)}),r}function createScopeTouchController(e,r){let{activationDistance:i=6,preview:a}=e;if(!Number.isFinite(i)||i<0)throw new DndError(`touch.activationDistance must be a non-negative finite number`);let o=makeDataTransfer(),s=new Map,c=null,l=null,resetSession=()=>{l?.preview?.remove(),c=null,l=null},u=createDisposable(()=>{resetSession(),s.clear()}),eventTarget=e=>{let t=e.composedPath().find(e=>e.nodeType===1)??e.target;return t&&t.nodeType===1?t:null},elementBelow=(e,t)=>{let n=e.source.style.display,r=e.preview?.style.display??``;e.source.style.display=`none`,e.preview&&(e.preview.style.display=`none`);try{return e.source.ownerDocument.elementFromPoint(t.x,t.y)}finally{e.source.style.display=n,e.preview&&(e.preview.style.display=r)}},dispatch=(e,t,n,r=!1)=>{let i=new((e.ownerDocument.defaultView?.Event)??Event)(t,{bubbles:!0,cancelable:!0});return Object.defineProperties(i,{__dndTouch:{configurable:!0,value:!0},__dndTouchPreview:{configurable:!0,value:r},clientX:{configurable:!0,value:n.x},clientY:{configurable:!0,value:n.y},dataTransfer:{configurable:!0,value:o}}),e.dispatchEvent(i),i.defaultPrevented},renderPreview=e=>{if(a===!1)return null;let t;try{let n=a?.(e);t=a?n?.cloneNode(!0)??null:createDefaultPreview(e)}catch(e){`${String(e)}`,t=null}return t?(t.setAttribute(`aria-hidden`,`true`),t.setAttribute(`data-dnd-touch-preview`,``),t.setAttribute(`inert`,``),t.removeAttribute(`id`),t.querySelectorAll(`[id]`).forEach(e=>{e.removeAttribute(`id`)}),t.style.pointerEvents=`none`,t.style.position=`fixed`,t.style.zIndex=String(n),e.ownerDocument.body.appendChild(t),t):null},start=e=>{let t=c;if(c=null,!t)return;let n=renderPreview(t);l={current:e.current,lastTarget:t,preview:n,previewOrigin:n?e.current:null,source:t},dispatch(t,`dragstart`,e.current,n!==null)},move=e=>{if(!l)return;if(l.current=e.current,l.preview&&l.previewOrigin){let t=e.current.x-l.previewOrigin.x,n=e.current.y-l.previewOrigin.y;l.preview.style.transform=`translate3d(${t}px, ${n}px, 0)`}let t=elementBelow(l,e.current);t&&t!==l.lastTarget&&(l.lastTarget&&dispatch(l.lastTarget,`dragleave`,e.current),l.lastTarget=t),t&&dispatch(t,`dragover`,e.current),e.event.preventDefault()},end=e=>{if(c=null,!l)return;let t=l;try{let n=!1;if(e.reason===`release`){let r=elementBelow(t,e.current);r&&(n=dispatch(r,`drop`,e.current))}o.dropEffect=n?`move`:`none`,dispatch(t.source,`dragend`,e.current,t.preview!==null)}finally{o.dropEffect=`move`,resetSession()}};return Object.assign(u,{cancel(){for(let e of s.values())if(e.cancel())return!0;return!1},register(e){let n=(0,t.createDragGesture)(e,{activationDistance:i,onEnd:end,onMove:move,onStart:start,pointerCapture:!1,shouldStart:e=>{if(e.pointerType!==`touch`||l)return!1;let t=eventTarget(e);return c=t?r(t):null,c!==null},signal:u.disposalSignal});return s.set(e,n),()=>{n.dispose(),s.delete(e),c&&e.contains(c)&&(c=null),l&&e.contains(l.source)&&resetSession()}}})}var r=Symbol(`SortableScope`),i=`data-dnd-handle`,a=`data-dnd-item`,o=new WeakMap,s={container:!0,edgeThreshold:32,speed:18,viewport:!1};function getSortableScopeState(e){let t=o.get(e);if(!t)throw new DndScopeError;if(e.disposed)throw new DndScopeError(`Cannot register a sortable with a disposed scope.`);return t}function resolveAutoScrollOptions(e){if(e===!1)return null;if(e===!0||e===void 0)return s;if(!Number.isFinite(e.edgeThreshold??32)||(e.edgeThreshold??32)<0||!Number.isFinite(e.speed??18)||(e.speed??18)<=0)throw new DndError(`Auto-scroll edgeThreshold must be non-negative and speed must be positive`);return{container:e.container??!0,edgeThreshold:e.edgeThreshold??32,speed:e.speed??18,viewport:e.viewport??!1}}function hasOrderChanged(e,t){return t.length!==e.length||t.some((t,n)=>t!==e[n])}function isTouchDragEvent(e){return e.__dndTouch===!0}function immutableIds(e){return Object.freeze([...e])}function notify(e,t,...n){if(t)try{t(...n)}catch{`${e}`}}function scheduleHide(e){typeof requestAnimationFrame==`function`&&(e.hideFrame=requestAnimationFrame(()=>{e.hideFrame=null,e.draggedEl.style.display=`none`}))}function cancelHide(e){e.hideFrame!==null&&(cancelAnimationFrame(e.hideFrame),e.hideFrame=null)}function restoreSessionElement(e){cancelHide(e),e.draggedEl.style.display=e.originalDisplay,e.draggedEl.removeAttribute(`data-dragging`)}function snapshotOrder(e,t){e.initialOrders.has(t)||e.initialOrders.set(t,t.getOrderedIds())}function projectedChanges(e){let t=e.target;return[...e.initialOrders].flatMap(([n,r])=>{let i=r.filter(t=>t!==e.draggedId);if(n===t&&e.placeholder.parentElement===n.element){let t=[...n.element.children],r=t.indexOf(e.placeholder),a=n.getOrderedItems().filter(n=>n!==e.draggedEl&&t.indexOf(n)<r).length;i.splice(a,0,e.draggedId)}return hasOrderChanged(r,i)?[{after:i,before:r,handle:n}]:[]})}function cancelSession(e,t){let n=e.active;n&&(restoreSessionElement(n),n.originalParent.insertBefore(n.draggedEl,n.originalNextSibling?.parentNode===n.originalParent?n.originalNextSibling:null),n.placeholder.remove(),e.active=null,n.source.notifyDragEnd(n.draggedId,t),n.source.notifyInteraction({index:n.source.getOrderedIds().indexOf(n.draggedId),itemId:n.draggedId,total:n.source.getOrderedIds().length,type:`cancel`}))}function commitSession(e,t){let n=e.active;if(!n)return;let r=n.target,i=n.placeholder.parentElement,a=projectedChanges(n);for(let{after:e,before:t,handle:n}of a)n.notifyBeforeReorder(immutableIds(t),immutableIds(e));restoreSessionElement(n),r&&e.handles.has(r)&&i?i.insertBefore(n.draggedEl,n.placeholder):n.originalParent.insertBefore(n.draggedEl,n.originalNextSibling?.parentNode===n.originalParent?n.originalNextSibling:null),n.placeholder.remove(),e.active=null,n.source.notifyDragEnd(n.draggedId,t);let o=[];for(let[t,r]of n.initialOrders){if(!e.handles.has(t))continue;let n=t.getOrderedIds();hasOrderChanged(r,n)&&o.push({after:n,before:r,handle:t})}if(r&&r!==n.source){let t=o.find(e=>e.handle===n.source),i=o.find(e=>e.handle===r);if(t&&i){e.commitMove({itemId:n.draggedId,source:n.source.element,sourceBeforeIds:t.before,sourceIds:t.after,target:r.element,targetBeforeIds:i.before,targetIds:i.after});let a=i.after.indexOf(n.draggedId),o=i.after.length;n.source.notifyInteraction({index:a,itemId:n.draggedId,total:o,type:`drop`}),r.notifyInteraction({index:a,itemId:n.draggedId,total:o,type:`drop`})}return}for(let{after:e,before:t,handle:r}of o)r.commitReorder({after:e,before:t,item:n.draggedId});let s=o.find(e=>e.handle===n.source),c=s?s.after:n.source.getOrderedIds(),l=c.indexOf(n.draggedId);n.source.notifyInteraction({index:l,itemId:n.draggedId,total:c.length,type:`drop`})}function finishSession(e,t,n){if(!e.active)return;let{active:r}=e;n||!t.dataTransfer||t.dataTransfer.dropEffect===`none`||!r.target||!e.handles.has(r.target)||r.source.isDisabled()||r.target.isDisabled()?cancelSession(e,t):commitSession(e,t)}function maybeAutoScroll(e,t,n,r){if(!r)return;let{container:i,edgeThreshold:a,speed:o,viewport:s}=r,c=t.getBoundingClientRect();n===`vertical`?(i&&e.clientY<c.top+a?t.scrollTop-=o:i&&e.clientY>c.bottom-a&&(t.scrollTop+=o),s&&e.clientY<a?window.scrollBy({left:0,top:-o}):s&&e.clientY>window.innerHeight-a&&window.scrollBy({left:0,top:o})):(i&&e.clientX<c.left+a?t.scrollLeft-=o:i&&e.clientX>c.right-a&&(t.scrollLeft+=o),s&&e.clientX<a?window.scrollBy({left:-o,top:0}):s&&e.clientX>window.innerWidth-a&&window.scrollBy({left:o,top:0}))}function keyboardTargetIndex(t,n,r,i){let a=t.indexOf(n);if(a<0)return null;let o=i===`vertical`?`ArrowDown`:`ArrowRight`,s=i===`vertical`?`ArrowUp`:`ArrowLeft`,c=(0,e.matchKey)(r,o),l=(0,e.matchKey)(r,s),u;if(c)u=Math.min(t.length-1,a+1);else if(l)u=Math.max(0,a-1);else if((0,e.matchKey)(r,`Home`))u=0;else if((0,e.matchKey)(r,`End`))u=t.length-1;else return null;return u===a?null:u}function createSortableScope(e={}){let t={active:null,commitMove(t){notify(`onMove`,e.onMove,Object.freeze({...t,sourceBeforeIds:immutableIds(t.sourceBeforeIds),sourceIds:immutableIds(t.sourceIds),targetBeforeIds:immutableIds(t.targetBeforeIds),targetIds:immutableIds(t.targetIds)}))},disposables:new Set,handles:new Set,touch:null},n=createDisposable(()=>{t.touch?.dispose();for(let e of[...t.disposables])e();t.disposables.clear(),t.handles.clear()}),i={get disposalSignal(){return n.disposalSignal},dispose:n.dispose,get disposed(){return n.disposed},get isDragging(){return t.active!==null},[r]:!0,[Symbol.dispose]:n[Symbol.dispose]};return o.set(i,t),e.touch&&(t.touch=createScopeTouchController(e.touch===!0?{}:e.touch,e=>{if(t.active)return null;for(let n of t.handles){let t=n.resolveTouchTarget(e);if(t)return t}return null})),i}function createSortable(e){let{autoScroll:t=!0,axis:n=`vertical`,element:r,getKey:o,handle:s,keyboard:c=!0,placeholderClass:l=`dnd-placeholder`,scope:u=createSortableScope()}=e;if(n!==`vertical`&&n!==`horizontal`)throw new DndError(`axis must be "vertical" or "horizontal"`);let d=s?.trim()||null;if((s===void 0||d)&&d)try{r.querySelector(d)}catch(e){throw new DndError(`Invalid handle selector: "${s}"`,{cause:e})}let f=resolveAutoScrollOptions(t),p=getSortableScopeState(u);if([...p.handles].some(e=>e.element===r))throw new DndError(`A sortable is already registered for this element in the selected scope.`);let getItems=()=>(e.items?e.items():Array.from(r.children)).filter(e=>e.parentElement===r&&e.hasAttribute(a)),getOrderedIds=()=>getItems().map(e=>o(e)),m=new Map,h=r.getAttribute(`role`),rememberElement=e=>{let t=m.get(e);if(t)return t;let n={dataDndHandle:e.getAttribute(i),dataDndItem:e.getAttribute(a),draggable:e.getAttribute(`draggable`),role:e.getAttribute(`role`),tabIndex:e.getAttribute(`tabindex`),touchAction:e.style.touchAction};return m.set(e,n),n},restoreAttribute=(e,t,n)=>{n===null?e.removeAttribute(t):e.setAttribute(t,n)},syncItems=(e=getItems())=>{e.forEach(e=>{let t=rememberElement(e);t.role===null&&e.setAttribute(`role`,`listitem`),t.tabIndex===null&&(e.tabIndex=0),s===void 0?(e.setAttribute(`draggable`,`true`),p.touch&&(e.style.touchAction=`none`)):d&&e.querySelectorAll(d).forEach(e=>{rememberElement(e),e.setAttribute(i,``),e.setAttribute(`draggable`,`true`),p.touch&&(e.style.touchAction=`none`)})})},markItems=()=>{let t=new Set,n=e.items?e.items():Array.from(r.children),i=n.filter(e=>e instanceof HTMLElement&&e.parentElement===r),s=[];i.length,n.length;for(let e of i)try{let n=o(e);if(n){if(t.has(n)){`${n}`;continue}t.add(n),s.push(e)}}catch(e){`${String(e)}`}cleanupItems();for(let e of s)rememberElement(e),e.setAttribute(a,``);syncItems(s)},cleanupItems=()=>{for(let[e,t]of m)restoreAttribute(e,i,t.dataDndHandle),restoreAttribute(e,a,t.dataDndItem),restoreAttribute(e,`draggable`,t.draggable),restoreAttribute(e,`role`,t.role),restoreAttribute(e,`tabindex`,t.tabIndex),e.style.touchAction=t.touchAction;m.clear()},createPlaceholder=e=>{let t=document.createElement(`div`);return t.className=l,t.setAttribute(`aria-hidden`,`true`),n===`horizontal`?t.style.width=`${e.offsetWidth}px`:t.style.height=`${e.offsetHeight}px`,t},g={commitReorder:t=>notify(`onReorder`,e.onReorder,Object.freeze({after:immutableIds(t.after),before:immutableIds(t.before),item:t.item})),element:r,getOrderedIds,getOrderedItems:getItems,isDisabled:()=>resolveDisabled(e.disabled),notifyBeforeReorder:(t,n)=>notify(`onBeforeReorder`,e.onBeforeReorder,t,n),notifyDragEnd:(t,n)=>notify(`onDragEnd`,e.onDragEnd,t,n),notifyDragStart:(t,n)=>notify(`onDragStart`,e.onDragStart,t,n),notifyInteraction:t=>notify(`onInteraction`,e.onInteraction,Object.freeze(t)),resolveTouchTarget:t=>{if(resolveDisabled(e.disabled)||!r.contains(t))return null;let n=t.closest(`[${a}]`);if(!n||!getItems().includes(n))return null;if(s===void 0)return n;if(!d)return null;let i=t.closest(d);return i&&n.contains(i)?i:null}},handleDragStart=t=>{if(p.active||g.isDisabled())return;let n=t.target,r=n.closest(`[${a}]`);if(!r||!getItems().includes(r))return;if(s!==void 0){let e=d?n.closest(d):null;if(!e||!r.contains(e))return}let i=r.parentElement;if(!i)return;let c=createPlaceholder(r),l=r.nextSibling,u=o(r),f=new Map;f.set(g,g.getOrderedIds()),r.setAttribute(`data-dragging`,``),i.insertBefore(c,l);let m={draggedEl:r,draggedId:u,hideFrame:null,initialOrders:f,originalDisplay:r.style.display,originalNextSibling:l,originalParent:i,placeholder:c,source:g,target:g};if((!isTouchDragEvent(t)||t.__dndTouchPreview)&&scheduleHide(m),p.active=m,t.dataTransfer)try{if(t.dataTransfer.effectAllowed=`move`,t.dataTransfer.setData(`text/plain`,u),e.dragImage){let n=typeof e.dragImage==`function`?e.dragImage(u,r,t):e.dragImage,[i,a]=e.dragImageOffset??[0,0];n&&t.dataTransfer.setDragImage(n,i,a)}}catch(e){`${e instanceof Error?e.message:String(e)}`}g.notifyDragStart(m.draggedId,t),g.notifyInteraction({index:g.getOrderedIds().indexOf(u),itemId:u,total:g.getOrderedIds().length,type:`pickup`})},handleDragOver=e=>{let t=p.active;if(!t||t.source.isDisabled()||g.isDisabled())return;e.preventDefault(),maybeAutoScroll(e,r,n,f),snapshotOrder(t,g);let{draggedEl:i,placeholder:o}=t,s=e.target.closest(`[${a}]`);if(s&&!getItems().includes(s))return;if(!s){o.parentElement!==r&&r.appendChild(o),t.target=g;return}if(s===i||s===o)return;let c=s.getBoundingClientRect(),l=n===`vertical`?e.clientY>=c.top+c.height/2:e.clientX>=c.left+c.width/2;r.insertBefore(o,l?s.nextSibling:s),t.target=g},handleDrop=e=>{let t=p.active;t&&(t.source.isDisabled()||g.isDisabled()||(e.preventDefault(),t.target=g))},handleDragEnd=e=>{p.active?.source===g&&finishSession(p,e,!1)},handleKeydown=e=>{if(!c||g.isDisabled())return;let t=e.target,i=t?.closest(`[${a}]`);if(!t||!i||!getItems().includes(i))return;let s=t.closest(`input, textarea, select, button, a[href], [contenteditable]:not([contenteditable="false"]), [role="button"], [role="link"]`),l=d?t.closest(d):null;if(s&&(!l||!i.contains(l)))return;let u=getItems(),f=u.indexOf(i),p=keyboardTargetIndex(u,i,e,n);if(p===null)return;let m=u[p];if(!m)return;let h=u.map(o),_=[...u];_.splice(f,1),_.splice(p,0,i);let v=_.map(o),y=o(i);e.preventDefault(),g.notifyBeforeReorder(immutableIds(h),immutableIds(v)),r.insertBefore(i,p>f?m.nextSibling:m),i.focus(),g.commitReorder({after:v,before:h,item:y}),g.notifyInteraction({index:p,itemId:y,previousIndex:f,total:v.length,type:`move`})};markItems();let _,v=createDisposable(()=>{p.disposables.delete(v.dispose),p.active&&(p.active.source===g||p.active.target===g)&&!p.touch?.cancel()&&finishSession(p,new Event(`dragend`),!0),_?.(),p.handles.delete(g),restoreAttribute(r,`role`,h),cleanupItems()});return p.handles.add(g),_=p.touch?.register(r),h===null&&r.setAttribute(`role`,`list`),r.addEventListener(`dragstart`,handleDragStart,{signal:v.disposalSignal}),r.addEventListener(`dragover`,handleDragOver,{signal:v.disposalSignal}),r.addEventListener(`drop`,handleDrop,{signal:v.disposalSignal}),r.addEventListener(`dragend`,handleDragEnd,{signal:v.disposalSignal}),r.addEventListener(`keydown`,handleKeydown,{signal:v.disposalSignal}),p.disposables.add(v.dispose),{get disposalSignal(){return v.disposalSignal},dispose:v.dispose,get disposed(){return v.disposed},get isDragging(){return p.active?.source===g},[Symbol.dispose]:v[Symbol.dispose],refresh:()=>{markItems()}}}function applyReorder(e,t,n){let r=new Map;for(let t of e){let e=n(t);if(r.has(e))throw new DndError(`Duplicate item key: "${e}"`);r.set(e,t)}let i=[];for(let e of t){if(!r.has(e))continue;let t=r.get(e);i.push(t),r.delete(e)}for(let e of r.values())i.push(e);return i}exports.DndError=DndError,exports.DndScopeError=DndScopeError,exports.applyReorder=applyReorder,exports.createDropZone=createDropZone,exports.createSortable=createSortable,exports.createSortableScope=createSortableScope,exports.matchesAccept=matchesAccept;
2
2
  //# sourceMappingURL=dnd.cjs.map