Files
op-packages/luci-app-honk/root/etc/honk/doona/assets/Arrange-Bbxnsdc8.js
T

5 lines
68 KiB
JavaScript

import{r as E,$ as W,a as Pt,j as f}from"./vendor-react-Bf71BWbF.js";import{fk as Bt,fE as It,fe as ie,ca as H,c8 as M,fF as et,fG as tt,fH as At,c2 as Le,fb as S,fc as ae,fd as Ie,eZ as R,fq as rt,fI as Ot,fJ as Mt,fK as jt,b$ as Nt,cb as Rt,ci as Lt,fL as Vt,ck as Gt,cl as Ht,bZ as zt,fi as Yt,cn as Ut,bW as Xt,cp as qt,cr as _t,co as Wt,fM as Jt,fN as Zt,bX as Ke,aQ as Qt,fu as er,fr as tr,c7 as rr,fO as nt,fP as at,fQ as le,bY as nr,bU as ot,eY as ar,c as Ae,M as Ce,dR as Ve,dY as it,fR as Ge,fS as He,e6 as lt,u as J,aa as or,ad as ir,ac as ze,af as lr,cS as sr,et as ur,b as dr,bm as Ye,E as cr,j as pr,I as te,ak as st,B as V,dT as Ue,ah as ut,T as dt,a as ct,aO as Xe,aJ as fr,bQ as gr,a3 as pe,L as yr,h as mr,bR as hr,aN as Dr,bs as br,fv as $r,fw as vr,fT as Er,aL as xr,br as wr,aj as pt,cY as Tr}from"./index-BOpK0UVB.js";import{$ as kr,a as Kr}from"./Policies-DZOKUNEx.js";import{d as Cr}from"./Virtualizer-BIsXGNLZ.js";import{$ as Sr}from"./ListLayout-CkBMjK9o.js";import{D as ft}from"./DaeCode-B8yPDjSE.js";import{b as Fr,g as Pr}from"./policyText-y7dbn7hu.js";import{P as Br}from"./openGroup-B1VdMhOs.js";import{$ as Ir}from"./useFilter-6_o4NyOf.js";import"./ActionGroup-BU73NzbX.js";import"./useGridSelectionCheckbox-C4VxQajJ.js";import"./nav-BASDWt23.js";var P=(function(e){return e[e.none=0]="none",e[e.cancel=0]="cancel",e[e.move=1]="move",e[e.copy=2]="copy",e[e.link=4]="link",e[e.all=7]="all",e})({});const gt={...P,copyMove:3,copyLink:6,linkMove:5,all:7,uninitialized:7},yt=mt(gt);yt[7]="all";const re={none:"cancel",link:"link",copy:"copy",move:"move"},be=mt(re);function mt(e){let t={};for(let r in e)t[e[r]]=r;return t}const Ar=new Set(["text/plain","text/uri-list","text/html"]),ye="application/vnd.react-aria.items+json",me="application/octet-stream",Oe=new WeakMap,ht=Symbol();function Or(e){let{id:t}=Oe.get(e)||{};if(!t)throw new Error("Droppable item outside a droppable collection");return t}function Mr(e){let{ref:t}=Oe.get(e)||{};if(!t)throw new Error("Droppable item outside a droppable collection");return t}function z(e){let t=new Set;for(let r of e)for(let n of Object.keys(r))t.add(n);return t}function Dt(e){return e||(e="virtual"),e==="pointer"&&(e="virtual"),e==="virtual"&&typeof window<"u"&&typeof window.matchMedia=="function"&&window.matchMedia("(pointer: coarse)").matches&&(e="touch"),e}function Me(){return Dt(Bt())}function bt(){return Dt(It())}function Se(e,t){let r=new Map,n=!1,a=[];for(let o of t){let g=Object.keys(o);g.length>1&&(n=!0);let c={};for(let y of g){let $=r.get(y);$?n=!0:($=[],r.set(y,$));let m=o[y];c[y]=m,$.push(m)}a.push(c)}for(let[o,g]of r)if(Ar.has(o)){let c=g.join(`
`);e.items.add(c,o)}else e.items.add(g[0],o);if(n){let o=JSON.stringify(a);e.items.add(o,ye)}}class se{constructor(t){this.types=new Set;let r=!1;for(let n of t.items)n.type!==ye&&(n.kind==="file"&&(r=!0),n.type?this.types.add(n.type):this.types.add(me));this.includesUnknownTypes=!r&&t.types.includes("Files")}has(t){if(Array.isArray(t))return t.some(r=>this.has(r));if(this.includesUnknownTypes||t===ht&&this.types.has(me)||t==="*/*")return!0;if(typeof t=="string"){if(t.endsWith("/*")){for(let r of this.types)if(r.startsWith(t.slice(0,-2)))return!0;return!1}return this.types.has(t)}return!1}}function $t(e){let t=[];if(!e)return t;let r=!1;if(e.types.includes(ye))try{let n=e.getData(ye),a=JSON.parse(n);for(let o of a)t.push({kind:"text",types:new Set(Object.keys(o)),getText:g=>Promise.resolve(o[g])});r=!0}catch{}if(!r){let n=new Map;for(let a of e.items)if(a.kind==="string")n.set(a.type||me,e.getData(a.type));else if(a.kind==="file")if(typeof a.webkitGetAsEntry=="function"){let o=a.webkitGetAsEntry();if(!o)continue;o.isFile?t.push(Fe(a.getAsFile())):o.isDirectory&&t.push(vt(o))}else t.push(Fe(a.getAsFile()));n.size>0&&t.push({kind:"text",types:new Set(n.keys()),getText:a=>Promise.resolve(n.get(a))})}return t}function jr(e){return typeof e.text=="function"?e.text():new Promise((t,r)=>{let n=new FileReader;n.onload=()=>{t(n.result)},n.onerror=r,n.readAsText(e)})}function Fe(e){if(!e)throw new Error("No file provided");return{kind:"file",type:e.type||me,name:e.name,getText:()=>jr(e),getFile:()=>Promise.resolve(e)}}function vt(e){return{kind:"directory",name:e.name,getEntries:()=>Nr(e)}}async function*Nr(e){let t=e.createReader(),r;do{r=await new Promise((n,a)=>{t.readEntries(n,a)});for(let n of r)if(n.isFile){let a=await Rr(n);yield Fe(a)}else n.isDirectory&&(yield vt(n))}while(r.length>0)}function Rr(e){return new Promise((t,r)=>e.file(t,r))}function Lr(e){return e.kind==="text"}let B={draggingKeys:new Set};function Vr(e){B.draggingCollectionRef=e}function Gr(e){B.draggingKeys=e}function q(e){B.dropCollectionRef=e}function Et(){B={draggingKeys:new Set}}function Hr(e){B=e}function G(e){let{draggingCollectionRef:t,dropCollectionRef:r}=B;return t?.current!=null&&t.current===(e?.current||r?.current)}let fe;function he(e){fe=e}let Pe=P.none;function $e(e){Pe=e}let Be=new Map,ne=new Map,L=null,De=new Set;function xt(e){return Be.set(e.element,e),L?.updateValidDropTargets(),()=>{Be.delete(e.element),L?.updateValidDropTargets()}}function zr(e){return ne.set(e.element,e),()=>{ne.delete(e.element)}}function Yr(e,t){if(L)throw new Error("Cannot begin dragging while already dragging");L=new Wr(e,t),requestAnimationFrame(()=>{L&&(L.setup(),bt()==="keyboard"&&L.next())});for(let r of De)r()}function je(){let[e,t]=E.useState(L);return E.useEffect(()=>{let r=()=>t(L);return De.add(r),()=>{De.delete(r)}},[]),e}function Ur(){return!!L}function Xr(){L=null;for(let e of De)e()}const qe=["pointerdown","pointermove","pointerenter","pointerleave","pointerover","pointerout","pointerup","mousedown","mousemove","mouseenter","mouseleave","mouseover","mouseout","mouseup","touchstart","touchmove","touchend","focusin","focusout"],qr=["pointerup","mouseup","touchend"],_r={keyboard:"dragStartedKeyboard",touch:"dragStartedTouch",virtual:"dragStartedVirtual"};class Wr{constructor(t,r){this.validDropTargets=[],this.currentDropTarget=null,this.currentDropItem=null,this.dropOperation=null,this.mutationObserver=null,this.restoreAriaHidden=null,this.isVirtualClick=!1,this.dragTarget=t,this.stringFormatter=r,this.onKeyDown=this.onKeyDown.bind(this),this.onKeyUp=this.onKeyUp.bind(this),this.onFocus=this.onFocus.bind(this),this.onBlur=this.onBlur.bind(this),this.onClick=this.onClick.bind(this),this.onPointerDown=this.onPointerDown.bind(this),this.cancelEvent=this.cancelEvent.bind(this),this.initialFocused=!1}setup(){document.addEventListener("keydown",this.onKeyDown,!0),document.addEventListener("keyup",this.onKeyUp,!0),window.addEventListener("focus",this.onFocus,!0),window.addEventListener("blur",this.onBlur,!0),document.addEventListener("click",this.onClick,!0),document.addEventListener("pointerdown",this.onPointerDown,!0);for(let t of qe)document.addEventListener(t,this.cancelEvent,!0);this.mutationObserver=new MutationObserver(()=>this.updateValidDropTargets()),this.updateValidDropTargets(),ie(this.stringFormatter.format(_r[bt()]))}teardown(){document.removeEventListener("keydown",this.onKeyDown,!0),document.removeEventListener("keyup",this.onKeyUp,!0),window.removeEventListener("focus",this.onFocus,!0),window.removeEventListener("blur",this.onBlur,!0),document.removeEventListener("click",this.onClick,!0),document.removeEventListener("pointerdown",this.onPointerDown,!0);for(let t of qe)document.removeEventListener(t,this.cancelEvent,!0);this.mutationObserver?.disconnect(),this.restoreAriaHidden?.()}onKeyDown(t){if(this.cancelEvent(t),t.key==="Escape"){this.cancel();return}t.key==="Tab"&&!(t.metaKey||t.altKey||t.ctrlKey)&&(t.shiftKey?this.previous():this.next()),typeof this.currentDropTarget?.onKeyDown=="function"&&this.currentDropTarget.onKeyDown(t,this.dragTarget)}onKeyUp(t){this.cancelEvent(t),t.key==="Enter"&&(t.altKey||H(this.getCurrentActivateButton(),M(t))?this.activate(this.currentDropTarget,this.currentDropItem):this.drop())}getCurrentActivateButton(){return this.currentDropItem?.activateButtonRef?.current??this.currentDropTarget?.activateButtonRef?.current??null}onFocus(t){let r=this.getCurrentActivateButton(),n=M(t);if(n===r){this.cancelEvent(t);return}if(n!==this.dragTarget.element&&this.cancelEvent(t),!(n instanceof HTMLElement)||n===this.dragTarget.element)return;let a=this.validDropTargets.find(g=>g.element===n)||this.validDropTargets.find(g=>H(g.element,n));if(!a){this.currentDropTarget?this.currentDropTarget.element.focus():this.dragTarget.element.focus();return}let o=ne.get(n);a&&this.setCurrentDropTarget(a,o)}onBlur(t){let r=this.getCurrentActivateButton();if(r&&t.relatedTarget===r){this.cancelEvent(t);return}M(t)!==this.dragTarget.element&&this.cancelEvent(t),(!t.relatedTarget||!(t.relatedTarget instanceof HTMLElement))&&(this.currentDropTarget?this.currentDropTarget.element.focus():this.dragTarget.element.focus())}onClick(t){if(this.cancelEvent(t),et(t)||this.isVirtualClick){let r=ne.values(),n=M(t),a=[...r].find(c=>c.element===n||H(c.activateButtonRef?.current,n)),o=this.validDropTargets.find(c=>H(c.element,n)),g=a?.activateButtonRef?.current??o?.activateButtonRef?.current;if(H(g,n)&&o){this.activate(o,a);return}if(M(t)===this.dragTarget.element){this.cancel();return}o&&(this.setCurrentDropTarget(o,a),this.drop(a))}}onPointerDown(t){this.cancelEvent(t),this.isVirtualClick=tt(t)}cancelEvent(t){let r=M(t);(t.type==="focusin"||t.type==="focusout")&&(r===this.dragTarget?.element||r===this.getCurrentActivateButton())||(qr.includes(t.type)||t.preventDefault(),t.stopPropagation(),t.stopImmediatePropagation())}updateValidDropTargets(){if(!this.mutationObserver)return;if(this.mutationObserver.disconnect(),this.restoreAriaHidden&&this.restoreAriaHidden(),this.validDropTargets=Jr(this.dragTarget),this.validDropTargets.length>0){let a=this.findNearestDropTarget();this.validDropTargets=[...this.validDropTargets.slice(a),...this.validDropTargets.slice(0,a)]}this.currentDropTarget&&!this.validDropTargets.includes(this.currentDropTarget)&&this.setCurrentDropTarget(this.validDropTargets[0]);let t=z(this.dragTarget.items),r=[...ne.values()].filter(a=>typeof a.getDropOperation=="function"?a.getDropOperation(t,this.dragTarget.allowedDropOperations)!=="cancel":!0),n=this.validDropTargets.filter(a=>!r.some(o=>H(a.element,o.element)));this.restoreAriaHidden=At([this.dragTarget.element,...r.flatMap(a=>a.activateButtonRef?.current?[a.element,a.activateButtonRef?.current]:[a.element]),...n.flatMap(a=>a.activateButtonRef?.current?[a.element,a.activateButtonRef?.current]:[a.element])],{shouldUseInert:!0}),this.mutationObserver.observe(document.body,{subtree:!0,attributes:!0,attributeFilter:["aria-hidden","inert"]})}next(){if(!this.currentDropTarget){this.setCurrentDropTarget(this.validDropTargets[0]);return}let t=this.validDropTargets.indexOf(this.currentDropTarget);if(t<0){this.setCurrentDropTarget(this.validDropTargets[0]);return}t===this.validDropTargets.length-1?this.dragTarget.element.closest('[aria-hidden="true"], [inert]')?this.setCurrentDropTarget(this.validDropTargets[0]):(this.setCurrentDropTarget(null),this.dragTarget.element.focus()):this.setCurrentDropTarget(this.validDropTargets[t+1])}previous(){if(!this.currentDropTarget){this.setCurrentDropTarget(this.validDropTargets[this.validDropTargets.length-1]);return}let t=this.validDropTargets.indexOf(this.currentDropTarget);if(t<0){this.setCurrentDropTarget(this.validDropTargets[this.validDropTargets.length-1]);return}t===0?this.dragTarget.element.closest('[aria-hidden="true"], [inert]')?this.setCurrentDropTarget(this.validDropTargets[this.validDropTargets.length-1]):(this.setCurrentDropTarget(null),this.dragTarget.element.focus()):this.setCurrentDropTarget(this.validDropTargets[t-1])}findNearestDropTarget(){let t=this.dragTarget.element.getBoundingClientRect(),r=1/0,n=-1,a=-1;for(let o=0;o<this.validDropTargets.length;o++){let g=this.validDropTargets[o];a<0&&H(g.element,this.dragTarget.element)&&(a=o);let c=g.element.getBoundingClientRect(),y=c.left-t.left,$=c.top-t.top,m=y*y+$*$;m<r&&(r=m,n=o)}return a>=0?a:n}setCurrentDropTarget(t,r){if(t!==this.currentDropTarget){if(this.currentDropTarget&&typeof this.currentDropTarget.onDropExit=="function"){let n=this.currentDropTarget.element.getBoundingClientRect();this.currentDropTarget.onDropExit({type:"dropexit",x:n.left+n.width/2,y:n.top+n.height/2})}if(this.currentDropTarget=t,t){if(typeof t.onDropEnter=="function"){let n=t.element.getBoundingClientRect();t.onDropEnter({type:"dropenter",x:n.left+n.width/2,y:n.top+n.height/2},this.dragTarget)}r||t?.element.focus()}}if(r!=null&&r!==this.currentDropItem&&(this.currentDropTarget&&typeof this.currentDropTarget.onDropTargetEnter=="function"&&this.currentDropTarget.onDropTargetEnter(r.target),r.element.focus(),this.currentDropItem=r,!this.initialFocused)){let n=r?.element.getAttribute("aria-label");n&&ie(n,"polite"),this.initialFocused=!0}}end(){if(this.teardown(),Xr(),typeof this.dragTarget.onDragEnd=="function"){let r=(this.currentDropTarget&&this.dropOperation!=="cancel"?this.currentDropTarget:this.dragTarget).element.getBoundingClientRect();this.dragTarget.onDragEnd({type:"dragend",x:r.x+r.width/2,y:r.y+r.height/2,dropOperation:this.dropOperation||"cancel"})}this.currentDropTarget&&!this.currentDropTarget.preventFocusOnDrop&&Le()?.dispatchEvent(new FocusEvent("focusin",{bubbles:!0})),this.setCurrentDropTarget(null)}cancel(){this.setCurrentDropTarget(null),this.end(),this.dragTarget.element.closest('[aria-hidden="true"], [inert]')||this.dragTarget.element.focus(),Le()?.dispatchEvent(new FocusEvent("focusin",{bubbles:!0})),ie(this.stringFormatter.format("dropCanceled"))}drop(t){if(!this.currentDropTarget){this.cancel();return}if(typeof t?.getDropOperation=="function"){let r=z(this.dragTarget.items);this.dropOperation=t.getDropOperation(r,this.dragTarget.allowedDropOperations)}else if(typeof this.currentDropTarget.getDropOperation=="function"){let r=z(this.dragTarget.items);this.dropOperation=this.currentDropTarget.getDropOperation(r,this.dragTarget.allowedDropOperations)}else this.dropOperation=this.dragTarget.allowedDropOperations[0];if(typeof this.currentDropTarget.onDrop=="function"){let r=this.dragTarget.items.map(a=>({kind:"text",types:new Set(Object.keys(a)),getText:o=>Promise.resolve(a[o])})),n=this.currentDropTarget.element.getBoundingClientRect();this.currentDropTarget.onDrop({type:"drop",x:n.left+n.width/2,y:n.top+n.height/2,items:r,dropOperation:this.dropOperation},t?.target??null)}this.end(),ie(this.stringFormatter.format("dropComplete"))}activate(t,r){if(t&&typeof t.onDropActivate=="function"){let n=r?.target??null,a=t.element.getBoundingClientRect();t.onDropActivate({type:"dropactivate",x:a.left+a.width/2,y:a.top+a.height/2},n)}}}function Jr(e){let t=z(e.items);return[...Be.values()].filter(r=>r.element.closest('[aria-hidden="true"], [inert]')?!1:typeof r.getDropOperation=="function"?r.getDropOperation(t,e.allowedDropOperations)!=="cancel":!0)}var wt={};wt={dragItem:e=>`Drag ${e.itemText}`,dragSelectedItems:(e,t)=>`Drag ${t.plural(e.count,{one:()=>`${t.number(e.count)} selected item`,other:()=>`${t.number(e.count)} selected items`})}`,dragDescriptionKeyboard:"Press Enter to start dragging.",dragDescriptionKeyboardAlt:"Press Alt + Enter to start dragging.",dragDescriptionTouch:"Double tap to start dragging.",dragDescriptionVirtual:"Click to start dragging.",dragDescriptionLongPress:"Long press to start dragging.",dragSelectedKeyboard:(e,t)=>`Press Enter to drag ${t.plural(e.count,{one:()=>`${t.number(e.count)} selected item`,other:()=>`${t.number(e.count)} selected items`})}.`,dragSelectedKeyboardAlt:(e,t)=>`Press Alt + Enter to drag ${t.plural(e.count,{one:()=>`${t.number(e.count)} selected item`,other:()=>`${t.number(e.count)} selected items`})}.`,dragSelectedLongPress:(e,t)=>`Long press to drag ${t.plural(e.count,{one:()=>`${t.number(e.count)} selected item`,other:()=>`${t.number(e.count)} selected items`})}.`,dragStartedKeyboard:"Started dragging. Press Tab to navigate to a drop target, then press Enter to drop, or press Escape to cancel.",dragStartedTouch:"Started dragging. Navigate to a drop target, then double tap to drop.",dragStartedVirtual:"Started dragging. Navigate to a drop target, then click or press Enter to drop.",endDragKeyboard:"Dragging. Press Enter to cancel drag.",endDragTouch:"Dragging. Double tap to cancel drag.",endDragVirtual:"Dragging. Click to cancel drag.",dropDescriptionKeyboard:"Press Enter to drop. Press Escape to cancel drag.",dropDescriptionTouch:"Double tap to drop.",dropDescriptionVirtual:"Click to drop.",dropCanceled:"Drop canceled.",dropComplete:"Drop complete.",dropIndicator:"drop indicator",dropOnRoot:"Drop on",dropOnItem:e=>`Drop on ${e.itemText}`,insertBefore:e=>`Insert before ${e.itemText}`,insertBetween:e=>`Insert between ${e.beforeItemText} and ${e.afterItemText}`,insertAfter:e=>`Insert after ${e.itemText}`};var Tt={};Tt={dragDescriptionKeyboard:"按 Enter 开始拖动。",dragDescriptionKeyboardAlt:"按 Alt + Enter 开始拖动。",dragDescriptionLongPress:"长按以开始拖动。",dragDescriptionTouch:"双击开始拖动。",dragDescriptionVirtual:"单击开始拖动。",dragItem:e=>`拖动 ${e.itemText}`,dragSelectedItems:(e,t)=>`拖动 ${t.plural(e.count,{one:()=>`${t.number(e.count)} 选中项目`,other:()=>`${t.number(e.count)} 选中项目`})}`,dragSelectedKeyboard:(e,t)=>`按 Enter 以拖动 ${t.plural(e.count,{one:()=>`${t.number(e.count)} 个选定项`,other:()=>`${t.number(e.count)} 个选定项`})}。`,dragSelectedKeyboardAlt:(e,t)=>`按 Alt + Enter 以拖动 ${t.plural(e.count,{one:()=>`${t.number(e.count)} 个选定项`,other:()=>`${t.number(e.count)} 个选定项`})}。`,dragSelectedLongPress:(e,t)=>`长按以拖动 ${t.plural(e.count,{one:()=>`${t.number(e.count)} 个选定项`,other:()=>`${t.number(e.count)} 个选定项`})}。`,dragStartedKeyboard:"已开始拖动。按 Tab 导航到放置目标,然后按 Enter 放置或按 Escape 取消。",dragStartedTouch:"已开始拖动。导航到放置目标,然后双击放置。",dragStartedVirtual:"已开始拖动。导航到放置目标,然后单击或按 Enter 放置。",dropCanceled:"放置已取消。",dropComplete:"放置已完成。",dropDescriptionKeyboard:"按 Enter 放置。按 Escape 取消拖动。",dropDescriptionTouch:"双击放置。",dropDescriptionVirtual:"单击放置。",dropIndicator:"放置标记",dropOnItem:e=>`放置于 ${e.itemText}`,dropOnRoot:"放置于",endDragKeyboard:"正在拖动。按 Enter 取消拖动。",endDragTouch:"正在拖动。双击取消拖动。",endDragVirtual:"正在拖动。单击取消拖动。",insertAfter:e=>`插入到 ${e.itemText} 之后`,insertBefore:e=>`插入到 ${e.itemText} 之前`,insertBetween:e=>`插入到 ${e.beforeItemText} 和 ${e.afterItemText} 之间`};var kt={};kt={dragDescriptionKeyboard:"按 Enter 鍵以開始拖曳。",dragDescriptionKeyboardAlt:"按 Alt+Enter 鍵以開始拖曳。",dragDescriptionLongPress:"長按以開始拖曳。",dragDescriptionTouch:"輕點兩下以開始拖曳。",dragDescriptionVirtual:"按一下滑鼠以開始拖曳。",dragItem:e=>`拖曳「${e.itemText}」`,dragSelectedItems:(e,t)=>`拖曳 ${t.plural(e.count,{one:()=>`${t.number(e.count)} 個選定項目`,other:()=>`${t.number(e.count)} 個選定項目`})}`,dragSelectedKeyboard:(e,t)=>`按 Enter 鍵以拖曳 ${t.plural(e.count,{one:()=>`${t.number(e.count)} 個選定項目`,other:()=>`${t.number(e.count)} 個選定項目`})}。`,dragSelectedKeyboardAlt:(e,t)=>`按 Alt+Enter 鍵以拖曳 ${t.plural(e.count,{one:()=>`${t.number(e.count)} 個選定項目`,other:()=>`${t.number(e.count)} 個選定項目`})}。`,dragSelectedLongPress:(e,t)=>`長按以拖曳 ${t.plural(e.count,{one:()=>`${t.number(e.count)} 個選定項目`,other:()=>`${t.number(e.count)} 個選定項目`})}。`,dragStartedKeyboard:"已開始拖曳。按 Tab 鍵以瀏覽至放置目標,然後按 Enter 鍵以放置,或按 Escape 鍵以取消。",dragStartedTouch:"已開始拖曳。瀏覽至放置目標,然後輕點兩下以放置。",dragStartedVirtual:"已開始拖曳。瀏覽至放置目標,然後按一下滑鼠或按 Enter 鍵以放置。",dropCanceled:"放置已取消。",dropComplete:"放置已完成。",dropDescriptionKeyboard:"按 Enter 鍵以放置。按 Escape 鍵以取消拖曳。",dropDescriptionTouch:"輕點兩下以放置。",dropDescriptionVirtual:"按一下滑鼠以放置。",dropIndicator:"放置指示器",dropOnItem:e=>`放置在「${e.itemText}」上`,dropOnRoot:"放置在",endDragKeyboard:"拖曳中。按 Enter 鍵以取消拖曳。",endDragTouch:"拖曳中。輕點兩下以取消拖曳。",endDragVirtual:"拖曳中。按一下滑鼠以取消拖曳。",insertAfter:e=>`插入至「${e.itemText}」之後`,insertBefore:e=>`插入至「${e.itemText}」之前`,insertBetween:e=>`插入至「${e.beforeItemText}」和「${e.afterItemText}」之間`};var oe={};oe={"ar-AE":S,"bg-BG":S,"cs-CZ":S,"da-DK":S,"de-DE":S,"el-GR":S,"en-US":wt,"es-ES":S,"et-EE":S,"fi-FI":S,"fr-FR":S,"he-IL":S,"hr-HR":S,"hu-HU":S,"it-IT":S,"ja-JP":S,"ko-KR":S,"lt-LT":S,"lv-LV":S,"nb-NO":S,"nl-NL":S,"pl-PL":S,"pt-BR":S,"pt-PT":S,"ro-RO":S,"ru-RU":S,"sk-SK":S,"sl-SI":S,"sr-SP":S,"sv-SE":S,"tr-TR":S,"uk-UA":S,"zh-CN":Tt,"zh-TW":kt};function Zr(e){return e&&e.__esModule?e.default:e}const Qr={keyboard:"dropDescriptionKeyboard",touch:"dropDescriptionTouch",virtual:"dropDescriptionVirtual"};function Kt(){let e=ae(Zr(oe),"@react-aria/dnd"),t=Me(),r=je();return{dropProps:{...Ie(r?e.format(Qr[t]):""),onClick:()=>{}}}}const en=800;function Ct(e){let{hasDropButton:t,isDisabled:r}=e,[n,a]=E.useState(!1),o=E.useRef({x:0,y:0,dragOverElements:new Set,dropEffect:"none",allowedOperations:P.all,dropActivateTimer:void 0}).current,g=i=>{if(a(!0),typeof e.onDropEnter=="function"){let s=i.currentTarget.getBoundingClientRect();e.onDropEnter({type:"dropenter",x:i.clientX-s.x,y:i.clientY-s.y})}},c=i=>{if(a(!1),typeof e.onDropExit=="function"){let s=i.currentTarget.getBoundingClientRect();e.onDropExit({type:"dropexit",x:i.clientX-s.x,y:i.clientY-s.y})}},y=i=>{i.preventDefault(),i.stopPropagation();let s=_e(i);if(i.clientX===o.x&&i.clientY===o.y&&s===o.allowedOperations){i.dataTransfer.dropEffect=o.dropEffect;return}o.x=i.clientX,o.y=i.clientY;let u=o.dropEffect;if(s!==o.allowedOperations){let D=ve(s),w=D[0];if(typeof e.getDropOperation=="function"){let k=new se(i.dataTransfer);w=ue(s,e.getDropOperation(k,D))}o.dropEffect=be[w]||"none"}if(typeof e.getDropOperationForPoint=="function"){let D=new se(i.dataTransfer),w=i.currentTarget.getBoundingClientRect(),k=ue(s,e.getDropOperationForPoint(D,ve(s),o.x-w.x,o.y-w.y));o.dropEffect=be[k]||"none"}if(o.allowedOperations=s,i.dataTransfer.dropEffect=o.dropEffect,o.dropEffect==="none"&&u!=="none"?c(i):o.dropEffect!=="none"&&u==="none"&&g(i),typeof e.onDropMove=="function"&&o.dropEffect!=="none"){let D=i.currentTarget.getBoundingClientRect();e.onDropMove({type:"dropmove",x:o.x-D.x,y:o.y-D.y})}if(clearTimeout(o.dropActivateTimer),e.onDropActivate&&typeof e.onDropActivate=="function"&&o.dropEffect!=="none"){let D=e.onDropActivate,w=i.currentTarget.getBoundingClientRect();o.dropActivateTimer=setTimeout(()=>{D({type:"dropactivate",x:o.x-w.x,y:o.y-w.y})},en)}},$=i=>{if(i.preventDefault(),i.stopPropagation(),o.dragOverElements.add(M(i)),o.dragOverElements.size>1)return;let s=_e(i),u=ve(s),D=u[0];if(typeof e.getDropOperation=="function"){let w=new se(i.dataTransfer);D=ue(s,e.getDropOperation(w,u))}if(typeof e.getDropOperationForPoint=="function"){let w=new se(i.dataTransfer),k=i.currentTarget.getBoundingClientRect();D=ue(s,e.getDropOperationForPoint(w,u,i.clientX-k.x,i.clientY-k.y))}o.x=i.clientX,o.y=i.clientY,o.allowedOperations=s,o.dropEffect=be[D]||"none",i.dataTransfer.dropEffect=o.dropEffect,D!=="cancel"&&g(i)},m=i=>{i.preventDefault(),i.stopPropagation();let s=M(i);if(o.dragOverElements.delete(s),s===i.currentTarget)for(let u of o.dragOverElements)H(i.currentTarget,u)||o.dragOverElements.delete(u);o.dragOverElements.size>0||(o.dropEffect!=="none"&&c(i),clearTimeout(o.dropActivateTimer))},v=i=>{if(i.preventDefault(),i.stopPropagation(),he(o.dropEffect),typeof e.onDrop=="function"){let u=re[o.dropEffect],D=$t(i.dataTransfer),w=i.currentTarget.getBoundingClientRect(),k={type:"drop",x:i.clientX-w.x,y:i.clientY-w.y,items:D,dropOperation:u};e.onDrop(k)}let s={...B};o.dragOverElements.clear(),c(i),clearTimeout(o.dropActivateTimer),s.draggingCollectionRef==null?he(void 0):Hr(s)},l=R(i=>{typeof e.onDropEnter=="function"&&e.onDropEnter(i)}),d=R(i=>{typeof e.onDropExit=="function"&&e.onDropExit(i)}),p=R(i=>{typeof e.onDropActivate=="function"&&e.onDropActivate(i)}),b=R(i=>{typeof e.onDrop=="function"&&e.onDrop(i)}),h=R((i,s)=>e.getDropOperation?e.getDropOperation(i,s):s[0]),{ref:x}=e;rt(()=>{if(!(r||!x.current))return xt({element:x.current,getDropOperation:h,onDropEnter(i){a(!0),l(i)},onDropExit(i){a(!1),d(i)},onDrop:b,onDropActivate:p})},[r,x]);let{dropProps:T}=Kt();return r?{dropProps:{},dropButtonProps:{isDisabled:!0},isDropTarget:!1}:{dropProps:{...!t&&T,onDragEnter:$,onDragOver:y,onDragLeave:m,onDrop:v},dropButtonProps:{...t&&T},isDropTarget:n}}function _e(e){let t=gt[e.dataTransfer.effectAllowed];Pe&&(t&=Pe);let r=P.none;return Ot()?(e.altKey&&(r|=P.copy),e.ctrlKey&&!Mt()&&(r|=P.link),e.metaKey&&(r|=P.move)):(e.altKey&&(r|=P.link),e.shiftKey&&(r|=P.move),e.ctrlKey&&(r|=P.copy)),r?t&r:t}function ve(e){let t=[];return e&P.move&&t.push("move"),e&P.copy&&t.push("copy"),e&P.link&&t.push("link"),t}function ue(e,t){let r=P[t];return e&r?t:"cancel"}const Ee=new Map;function _(e,t){let r=Ee.get(e);if(!r){let n=new Set,a=o=>{for(let g of n)g(o)};r={listener:a,handlers:n},Ee.set(e,r),document.addEventListener(e,a)}return r.handlers.add(t),()=>{r.handlers.delete(t),r.handlers.size===0&&(document.removeEventListener(e,r.listener),Ee.delete(e))}}function tn(e){let{isDisabled:t}=e,r=E.useRef(!1),{focusProps:n}=jt({onFocusChange:m=>{r.current=m}}),a=R(m=>{r.current&&e.getItems&&m.preventDefault()}),o=R(m=>{!r.current||!e.getItems||(m.preventDefault(),m.clipboardData&&(Se(m.clipboardData,e.getItems({action:"copy"})),e.onCopy?.()))}),g=R(m=>{r.current&&e.onCut&&e.getItems&&m.preventDefault()}),c=R(m=>{!r.current||!e.onCut||!e.getItems||(m.preventDefault(),m.clipboardData&&(Se(m.clipboardData,e.getItems({action:"cut"})),e.onCut()))}),y=R(m=>{r.current&&e.onPaste&&m.preventDefault()}),$=R(m=>{if(!(!r.current||!e.onPaste)&&(m.preventDefault(),m.clipboardData)){let v=$t(m.clipboardData);e.onPaste(v)}});return E.useEffect(()=>{if(!t)return Nt(_("beforecopy",a),_("copy",o),_("beforecut",g),_("cut",c),_("beforepaste",y),_("paste",$))},[t]),{clipboardProps:n}}function rn(e){return e&&e.__esModule?e.default:e}const nn=E.createContext(null),an=E.forwardRef(function(t,r){let{isDisabled:n=!1}=t;[t,r]=Rt(t,r,nn);let a=Lt(r),o=E.useRef(null),{dropProps:g,dropButtonProps:c,isDropTarget:y}=Ct({...t,ref:o,hasDropButton:!0}),{buttonProps:$}=Vt(c||{},o),{hoverProps:m,isHovered:v}=Gt(t),{focusProps:l,isFocused:d,isFocusVisible:p}=Ht(),b=ae(rn(er),"react-aria-components"),h=zt(),x=t["aria-label"]||b.format("dropzoneLabel"),T=t["aria-labelledby"],i=[h,T].filter(Boolean).join(" "),s=Yt({"aria-label":x,"aria-labelledby":i}),{clipboardProps:u}=tn({isDisabled:n,onPaste:k=>t.onDrop?.({type:"drop",items:k,x:0,y:0,dropOperation:"copy"})}),D=Ut({...t,values:{isHovered:v,isFocused:d,isFocusVisible:p,isDropTarget:y,isDisabled:n},defaultClassName:"react-aria-DropZone"}),w=Xt(t,{global:!0});return delete w.id,W.createElement(qt,{values:[[_t,{id:h,slot:"label"}]]},W.createElement(Wt.div,{...Ke(w,D,g,m),slot:t.slot||void 0,ref:a,onClick:k=>{let C=M(k);for(;C&&H(a.current,C)&&!Jt(C);){if(C===a.current&&o.current){Zt(o.current);break}C=C.parentElement}},"data-hovered":v||void 0,"data-focused":d||void 0,"data-focus-visible":p||void 0,"data-drop-target":y||void 0,"data-disabled":n||void 0},W.createElement(Qt,null,W.createElement("button",{...Ke($,l,u,s),ref:o})),D.children))});function on(e,t,r,n,a=!1,o=!1){switch(n){case"left":return a?xe(e,t,r,o,"left"):we(e,t,r,o,"left");case"right":return a?we(e,t,r,o,"right"):xe(e,t,r,o,"right");case"up":return we(e,t,r,o);case"down":return xe(e,t,r,o)}}function xe(e,t,r,n=!1,a=null){if(!r)return{type:"root"};if(r.type==="root"){let o=e.getFirstKey?.()??null;return o!=null?{type:"item",key:o,dropPosition:"before"}:null}if(r.type==="item"){let o=null;a?o=a==="right"?e.getKeyRightOf?.(r.key,{includeDisabled:!0}):e.getKeyLeftOf?.(r.key,{includeDisabled:!0}):o=e.getKeyBelow?.(r.key,{includeDisabled:!0});let g=Ne(t,r.key,c=>t.getKeyAfter(c));if(o!=null&&o!==g)return{type:"item",key:o,dropPosition:r.dropPosition};switch(r.dropPosition){case"before":return{type:"item",key:r.key,dropPosition:"on"};case"on":{let c=t.getItem(r.key),y=o!=null?t.getItem(o):null;return c&&y&&y.level>=c.level?{type:"item",key:y.key,dropPosition:"before"}:{type:"item",key:r.key,dropPosition:"after"}}case"after":{let c=t.getItem(r.key),y=c?.nextKey!=null?t.getItem(c.nextKey):null;for(;y!=null&&y.type!=="item";)y=y.nextKey!=null?t.getItem(y.nextKey):null;if(c&&y==null&&c.parentKey!=null){let $=t.getItem(c.parentKey);const m=$?.nextKey!=null?t.getItem($.nextKey):null;if(m?.type==="item")return{type:"item",key:m.key,dropPosition:"before"};if($?.type==="item")return{type:"item",key:$.key,dropPosition:"after"}}if(y)return{type:"item",key:y.key,dropPosition:"on"}}}}return n?{type:"root"}:null}function we(e,t,r,n=!1,a=null){if(!r||n&&r.type==="root"){let o=null,g=e.getLastKey?.();for(;g!=null;){let c=t.getItem(g);if(c?.type!=="item")break;o=g,g=c?.parentKey}return o!=null?{type:"item",key:o,dropPosition:"after"}:null}if(r.type==="item"){let o=null;a?o=a==="left"?e.getKeyLeftOf?.(r.key,{includeDisabled:!0}):e.getKeyRightOf?.(r.key,{includeDisabled:!0}):o=e.getKeyAbove?.(r.key,{includeDisabled:!0});let g=Ne(t,r.key,c=>t.getKeyBefore(c));if(o!=null&&o!==g)return{type:"item",key:o,dropPosition:r.dropPosition};switch(r.dropPosition){case"before":{let c=t.getItem(r.key);if(c&&c.prevKey!=null){let y=We(t,c.prevKey);if(y)return y}return o!=null?{type:"item",key:o,dropPosition:"on"}:{type:"root"}}case"on":return{type:"item",key:r.key,dropPosition:"before"};case"after":{let c=We(t,r.key);return c||{type:"item",key:r.key,dropPosition:"on"}}}}return r.type!=="root"?{type:"root"}:null}function We(e,t){let r=e.getItem(t),n=Ne(e,t,o=>e.getKeyAfter(o)),a=n!=null?e.getItem(n):null;if(r&&a&&a.level>r.level){let o=null;if("lastChildKey"in r)for(o=r.lastChildKey!=null?e.getItem(r.lastChildKey):null;o&&o.type!=="item"&&o.prevKey!=null;)o=e.getItem(o.prevKey);else o=Array.from(r.childNodes).findLast(g=>g.type==="item")||null;if(o)return{type:"item",key:o.key,dropPosition:"after"}}return null}function Ne(e,t,r){let n=r(t),a=n!=null?e.getItem(n):null;for(;a&&a.type!=="item";)n=r(a.key),a=n!=null?e.getItem(n):null;return n}const de=20;function ln(e){let t=E.useRef(null),r=E.useRef(!0),n=E.useRef(!0);E.useEffect(()=>{if(e.current){t.current=tr(e.current)?e.current:rr(e.current);let g=window.getComputedStyle(t.current);r.current=/(auto|scroll)/.test(g.overflowX),n.current=/(auto|scroll)/.test(g.overflowY)}},[e]);let a=E.useRef({timer:void 0,dx:0,dy:0}).current;E.useEffect(()=>()=>{a.timer&&(cancelAnimationFrame(a.timer),a.timer=void 0)},[a]);let o=E.useCallback(()=>{r.current&&t.current&&(t.current.scrollLeft+=a.dx),n.current&&t.current&&(t.current.scrollTop+=a.dy),a.timer&&(a.timer=requestAnimationFrame(o))},[t,a]);return{move(g,c){if(!nt()||at()||!t.current)return;let y=t.current.getBoundingClientRect(),$=de,m=de,v=y.height-de,l=y.width-de;g<$||g>l||c<m||c>v?(g<$?a.dx=g-$:g>l&&(a.dx=g-l),c<m?a.dy=c-m:c>v&&(a.dy=c-v),a.timer||(a.timer=requestAnimationFrame(o))):this.stop()},stop(){a.timer&&(cancelAnimationFrame(a.timer),a.timer=void 0)}}}function sn(e,t,r){let n=E.useRef({props:e,state:t,nextTarget:null,dropOperation:null}).current;n.props=e,n.state=t;let a=E.useCallback(async l=>{let{onInsert:d,onRootDrop:p,onItemDrop:b,onReorder:h,onMove:x,acceptedDragTypes:T="all",shouldAcceptItemDrop:i}=n.props,{draggingKeys:s}=B,u=G(r),{target:D,dropOperation:w,items:k}=l,C=k;(T!=="all"||i)&&(C=k.filter(F=>{let I;return F.kind==="directory"?I=new Set([ht]):I=F.kind==="file"?new Set([F.type]):F.types,T==="all"||T.some(j=>I.has(j))?D.type==="item"&&D.dropPosition==="on"&&i?i(D,I):!0:!1})),C.length>0&&(D.type==="root"&&p&&await p({items:C,dropOperation:w}),D.type==="item"&&(D.dropPosition==="on"&&b&&await b({items:C,dropOperation:w,isInternal:u,target:D}),x&&u&&await x({keys:s,dropOperation:w,target:D}),D.dropPosition!=="on"&&(!u&&d&&await d({items:C,dropOperation:w,target:D}),u&&h&&await h({keys:s,dropOperation:w,target:D}))))},[n,r]),o=ln(r),{dropProps:g}=Ct({ref:r,onDropEnter(){n.nextTarget!=null&&t.setTarget(n.nextTarget)},onDropMove(l){n.nextTarget!=null&&t.setTarget(n.nextTarget),o.move(l.x,l.y)},getDropOperationForPoint(l,d,p,b){let{draggingKeys:h,dropCollectionRef:x}=B,T=G(r),i=u=>t.getDropOperation({target:u,types:l,allowedOperations:d,isInternal:T,draggingKeys:h})!=="cancel",s=e.dropTargetDelegate.getDropTargetFromPoint(p,b,i);if(!s)return n.dropOperation="cancel",n.nextTarget=null,"cancel";if(n.dropOperation=t.getDropOperation({target:s,types:l,allowedOperations:d,isInternal:T,draggingKeys:h}),n.dropOperation==="cancel"){let u={type:"root"},D=t.getDropOperation({target:u,types:l,allowedOperations:d,isInternal:T,draggingKeys:h});D!=="cancel"&&(s=u,n.dropOperation=D)}return s&&n.dropOperation!=="cancel"&&r?.current!==x?.current&&q(r),n.nextTarget=n.dropOperation==="cancel"?null:s,n.dropOperation},onDropExit(){q(void 0),t.setTarget(null),o.stop()},onDropActivate(l){t.target?.type==="item"&&typeof e.onDropActivate=="function"&&e.onDropActivate({type:"dropactivate",x:l.x,y:l.y,target:t.target})},onDrop(l){q(r),t.target&&$(l,t.target);let{draggingCollectionRef:d}=B;d==null&&Et()}}),c=E.useRef(null),y=E.useCallback(()=>{let{state:l}=n;if(c.current){let{target:d,collection:p,selectedKeys:b,focusedKey:h,isInternal:x,draggingKeys:T}=c.current;if(l.collection.size>p.size&&l.selectionManager.isSelectionEqual(b)){let i=new Set,s=l.collection.getFirstKey();for(;s!=null;){let u=l.collection.getItem(s);u?.type==="item"&&!p.getItem(u.key)&&i.add(u.key),u?.hasChildNodes&&l.collection.getItem(u.lastChildKey)?.type==="item"?s=u.firstChildKey:s=l.collection.getKeyAfter(s)}if(l.selectionManager.setSelectedKeys(i),l.selectionManager.focusedKey===h){let u=i.keys().next().value;if(u!=null){let D=l.collection.getItem(u),w=c.current.target,k=l.collection.expandedKeys?l.collection.expandedKeys.has(D?.parentKey):!1;D&&(D?.type==="cell"||w.type==="item"&&w.dropPosition==="on"&&!k)&&(u=D.parentKey),u!=null&&l.selectionManager.setFocusedKey(u),l.selectionManager.selectionMode==="none"&&le("keyboard")}}}else h!=null&&l.selectionManager.focusedKey===h&&x&&d.type==="item"&&d.dropPosition!=="on"&&T.has(l.collection.getItem(h)?.parentKey)?(l.selectionManager.setFocusedKey(l.collection.getItem(h)?.parentKey??null),le("keyboard")):l.selectionManager.focusedKey===h&&d.type==="item"&&d.dropPosition==="on"&&l.collection.getItem(d.key)!=null?(l.selectionManager.setFocusedKey(d.key),le("keyboard")):l.selectionManager.focusedKey!=null&&!l.selectionManager.isSelected(l.selectionManager.focusedKey)&&le("keyboard");l.selectionManager.setFocused(!0)}},[n]),$=E.useCallback((l,d)=>{let{state:p}=n;c.current={timeout:void 0,focusedKey:p.selectionManager.focusedKey,collection:p.collection,selectedKeys:p.selectionManager.selectedKeys,draggingKeys:B.draggingKeys,isInternal:G(r),target:d},(n.props.onDrop||a)({type:"drop",x:l.x,y:l.y,target:d,items:l.items,dropOperation:l.dropOperation}),c.current.timeout=setTimeout(()=>{y(),c.current=null},50)},[n,a,r,y]);E.useEffect(()=>()=>{c.current&&clearTimeout(c.current.timeout)},[]),rt(()=>{c.current&&t.collection!==c.current.collection&&y()});let{direction:m}=nr();E.useEffect(()=>{if(!r.current)return;let l=(b,h=!0,x="down")=>on(n.props.keyboardDelegate,n.state.collection,b,x,m==="rtl",h),d=(b,h=!0)=>l(b,h,"up"),p=(b,h,x,T,i=!0)=>{let s=0,u,{draggingKeys:D}=B,w=G(r);do{let k=T(b,i);if(!k)return null;b=k,u=n.state.getDropOperation({target:k,types:h,allowedOperations:x,isInternal:w,draggingKeys:D}),b.type==="root"&&s++}while(u==="cancel"&&!n.state.isDropTarget(b)&&s<2);return u==="cancel"?null:b};return xt({element:r.current,preventFocusOnDrop:!0,getDropOperation(b,h){if(n.state.target){let{draggingKeys:T}=B,i=G(r);return n.state.getDropOperation({target:n.state.target,types:b,allowedOperations:h,isInternal:i,draggingKeys:T})}return p(null,b,h,l)?"move":"cancel"},onDropEnter(b,h){let x=z(h.items),T=n.state.selectionManager,i=null;q(r);let s=T.focusedKey,u="after",D=s!=null?n.state.collection.getItem(s):null;if(D?.type==="cell"&&(s=D.parentKey),s!=null&&T.isSelected(s)&&(T.selectedKeys.size>1&&T.firstSelectedKey===s?u="before":s=T.lastSelectedKey),s!=null){i={type:"item",key:s,dropPosition:u};let{draggingKeys:w}=B,k=G(r);n.state.getDropOperation({target:i,types:x,allowedOperations:h.allowedDropOperations,isInternal:k,draggingKeys:w})==="cancel"&&(i=p(i,x,h.allowedDropOperations,l,!1)??p(i,x,h.allowedDropOperations,d,!1))}i||(i=p(null,x,h.allowedDropOperations,l)),n.state.setTarget(i)},onDropExit(){q(void 0),n.state.setTarget(null)},onDropTargetEnter(b){n.state.setTarget(b)},onDropActivate(b,h){h?.type==="item"&&h?.dropPosition==="on"&&typeof n.props.onDropActivate=="function"&&n.props.onDropActivate({type:"dropactivate",x:b.x,y:b.y,target:h})},onDrop(b,h){q(r),n.state.target&&$(b,h||n.state.target)},onKeyDown(b,h){let{keyboardDelegate:x}=n.props,T=z(h.items);switch(b.key){case"ArrowDown":if(x.getKeyBelow){let i=p(n.state.target,T,h.allowedDropOperations,(s,u)=>l(s,u,"down"));n.state.setTarget(i)}break;case"ArrowUp":if(x.getKeyAbove){let i=p(n.state.target,T,h.allowedDropOperations,(s,u)=>l(s,u,"up"));n.state.setTarget(i)}break;case"ArrowLeft":if(x.getKeyLeftOf){let i=p(n.state.target,T,h.allowedDropOperations,(s,u)=>l(s,u,"left"));n.state.setTarget(i)}break;case"ArrowRight":if(x.getKeyRightOf){let i=p(n.state.target,T,h.allowedDropOperations,(s,u)=>l(s,u,"right"));n.state.setTarget(i)}break;case"Home":if(x.getFirstKey){let i=p(null,T,h.allowedDropOperations,l);n.state.setTarget(i)}break;case"End":if(x.getLastKey){let i=p(null,T,h.allowedDropOperations,d);n.state.setTarget(i)}break;case"PageDown":if(x.getKeyPageBelow){let i=n.state.target;if(!i)i=p(null,T,h.allowedDropOperations,l);else{let s=x.getFirstKey?.();i.type==="item"&&(s=i.key);let u=null;s!=null&&(u=x.getKeyPageBelow(s));let D=i.type==="item"?i.dropPosition:"after";if((u==null||i.type==="item"&&i.key===x.getLastKey?.())&&(u=x.getLastKey?.()??null,D="after"),u==null)break;i={type:"item",key:u,dropPosition:D};let{draggingCollectionRef:w,draggingKeys:k}=B,C=w?.current===r?.current;n.state.getDropOperation({target:i,types:T,allowedOperations:h.allowedDropOperations,isInternal:C,draggingKeys:k})==="cancel"&&(i=p(i,T,h.allowedDropOperations,l,!1)??p(i,T,h.allowedDropOperations,d,!1))}n.state.setTarget(i??n.state.target)}break;case"PageUp":{if(!x.getKeyPageAbove)break;let i=n.state.target;if(!i)i=p(null,T,h.allowedDropOperations,d);else if(i.type==="item"){if(i.key===x.getFirstKey?.())i={type:"root"};else{let w=x.getKeyPageAbove(i.key),k=i.dropPosition;if(w==null&&(w=x.getFirstKey?.(),k="before"),w==null)break;i={type:"item",key:w,dropPosition:k}}let{draggingKeys:s}=B,u=G(r);n.state.getDropOperation({target:i,types:T,allowedOperations:h.allowedDropOperations,isInternal:u,draggingKeys:s})==="cancel"&&(i=p(i,T,h.allowedDropOperations,d,!1)??p(i,T,h.allowedDropOperations,l,!1))}n.state.setTarget(i??n.state.target);break}}n.props.onKeyDown?.(b)}})},[n,r,$,m]);let v=ot();return Oe.set(t,{id:v,ref:r}),{collectionProps:Ke(g,{id:v,"aria-describedby":null})}}function St(e,t,r){let{dropProps:n}=Kt(),a=Mr(t);E.useEffect(()=>{if(r.current)return zr({element:r.current,target:e.target,getDropOperation(m,v){let{draggingKeys:l}=B,d=G(a);return t.getDropOperation({target:e.target,types:m,allowedOperations:v,isInternal:d,draggingKeys:l})},activateButtonRef:e.activateButtonRef})},[r,e.target,t,a,e.activateButtonRef]);let o=je(),{draggingKeys:g}=B,c=G(a),y=o&&t.getDropOperation({target:e.target,types:z(o.dragTarget.items),allowedOperations:o.dragTarget.allowedDropOperations,isInternal:c,draggingKeys:g})!=="cancel",$=t.isDropTarget(e.target);return E.useEffect(()=>{o&&$&&r.current&&r.current.focus()},[$,o,r]),{dropProps:{...n,"aria-hidden":!o||y?void 0:"true"},isDropTarget:$}}function un(e){return e&&e.__esModule?e.default:e}function dn(e,t,r){let{target:n}=e,{collection:a}=t,o=ae(un(oe),"@react-aria/dnd"),g=je(),{dropProps:c}=St(e,t,r),y=ot(),$=p=>p==null?"":a.getTextValue?.(p)??a.getItem(p)?.textValue??"",m="",v;if(n.type==="root")m=o.format("dropOnRoot"),v=`${y} ${Or(t)}`;else if(n.dropPosition==="on")m=o.format("dropOnItem",{itemText:$(n.key)});else{let p,b;if(n.dropPosition==="before"){let h=a.getItem(n.key)?.prevKey,x=h!=null?a.getItem(h):null;p=x?.type==="item"?x.key:null}else p=n.key;if(n.dropPosition==="after"){let h=a.getItem(n.key)?.nextKey,x=h!=null?a.getItem(h):null;b=x?.type==="item"?x.key:null}else b=n.key;p!=null&&b!=null?m=o.format("insertBetween",{beforeItemText:$(p),afterItemText:$(b)}):p!=null?m=o.format("insertAfter",{itemText:$(p)}):b!=null&&(m=o.format("insertBefore",{itemText:$(b)}))}let l=t.isDropTarget(n),d=g?c["aria-hidden"]:"true";return{dropIndicatorProps:{...c,id:y,"aria-roledescription":o.format("dropIndicator"),"aria-label":m,"aria-labelledby":v,"aria-hidden":d,tabIndex:-1},isDropTarget:l,isHidden:!l&&!!d}}function cn(e){return e&&e.__esModule?e.default:e}const Je={keyboard:{start:"dragDescriptionKeyboard",end:"endDragKeyboard"},touch:{start:"dragDescriptionTouch",end:"endDragTouch"},virtual:{start:"dragDescriptionVirtual",end:"endDragVirtual"}};function pn(e){let{hasDragButton:t,isDisabled:r}=e,n=ae(cn(oe),"@react-aria/dnd"),a=E.useRef({options:e,x:0,y:0}).current;a.options=e;let o=E.useRef(null),[g,c]=E.useState(!1),y=u=>{o.current=u,c(!!u)},{addGlobalListener:$,removeAllGlobalListeners:m}=ar(),v=E.useRef(null),l=u=>{if(u.defaultPrevented)return;if(u.stopPropagation(),v.current==="virtual"){u.preventDefault(),h(M(u)),v.current=null;return}typeof e.onDragStart=="function"&&e.onDragStart({type:"dragstart",x:u.clientX,y:u.clientY});let D=e.getItems();u.dataTransfer.clearData?.(),Se(u.dataTransfer,D);let w=P.all;if(typeof e.getAllowedDropOperations=="function"){let F=e.getAllowedDropOperations();w=P.none;for(let I of F)w|=P[I]||P.none}$e(w);let k=yt[w]||"none";u.dataTransfer.effectAllowed=k==="cancel"?"none":k,typeof e.preview?.current=="function"&&e.preview.current(D,(F,I,j)=>{if(!F)return;let N=F.getBoundingClientRect(),Y=u.currentTarget.getBoundingClientRect(),Z=u.clientX-Y.x,Q=u.clientY-Y.y;(Z>N.width||Q>N.height)&&(Z=N.width/2,Q=N.height/2);let U=Z,X=Q;typeof I=="number"&&typeof j=="number"&&(U=I,X=j),U=Math.max(0,Math.min(U,N.width)),X=Math.max(0,Math.min(X,N.height));let K=2*Math.round(N.height/2);F.style.height=`${K}px`,u.dataTransfer.setDragImage(F,U,X)}),$(window,"drop",F=>{F.preventDefault(),F.stopPropagation(),console.warn("Drags initiated from the React Aria useDrag hook may only be dropped on a target created with useDrop. This ensures that a keyboard and screen reader accessible alternative is available.")},{once:!0}),a.x=u.clientX,a.y=u.clientY;let C=M(u);requestAnimationFrame(()=>{y(C)})},d=u=>{u.stopPropagation(),!(u.clientX===a.x&&u.clientY===a.y)&&(typeof e.onDragMove=="function"&&e.onDragMove({type:"dragmove",x:u.clientX,y:u.clientY}),a.x=u.clientX,a.y=u.clientY)},p=u=>{if(u.stopPropagation(),typeof e.onDragEnd=="function"){let D={type:"dragend",x:u.clientX,y:u.clientY,dropOperation:re[u.dataTransfer.dropEffect]};fe&&(D.dropOperation=re[fe]),e.onDragEnd(D)}y(null),m(),$e(P.none),he(void 0)};E.useEffect(()=>()=>{if(o.current&&(!o.current.isConnected||parseInt(E.version,10)<17)){if(typeof a.options.onDragEnd=="function"){let u={type:"dragend",x:0,y:0,dropOperation:re[fe||"none"]};a.options.onDragEnd(u)}y(null),$e(P.none),he(void 0)}},[a]);let b=u=>{u.pointerType!=="keyboard"&&u.pointerType!=="virtual"||h(u.target)},h=u=>{if(typeof a.options.onDragStart=="function"){let D=u.getBoundingClientRect();a.options.onDragStart({type:"dragstart",x:D.x+D.width/2,y:D.y+D.height/2})}Yr({element:u,items:a.options.getItems(),allowedDropOperations:typeof a.options.getAllowedDropOperations=="function"?a.options.getAllowedDropOperations():["move","copy","link"],onDragEnd(D){y(null),typeof a.options.onDragEnd=="function"&&a.options.onDragEnd(D)}},n),y(u)},x=Me(),T=g?Je[x].end:Je[x].start,i=Ie(n.format(T)),s={};return t||(s={...i,onPointerDown(u){if(v.current=tt(u.nativeEvent)?"virtual":u.pointerType,u.width<1&&u.height<1&&at()&&nt())v.current="virtual";else{let D=u.currentTarget.getBoundingClientRect(),w=u.clientX-D.x,k=u.clientY-D.y,C=D.width/2,F=D.height/2;Math.abs(w-C)<=.5&&Math.abs(k-F)<=.5?v.current="virtual":v.current=u.pointerType}},onKeyDownCapture(u){M(u)===u.currentTarget&&u.key==="Enter"&&(u.preventDefault(),u.stopPropagation())},onKeyUpCapture(u){M(u)===u.currentTarget&&u.key==="Enter"&&(u.preventDefault(),u.stopPropagation(),h(M(u)))},onClick(u){(et(u.nativeEvent)||v.current==="virtual")&&(u.preventDefault(),u.stopPropagation(),h(M(u)))}}),r?{dragProps:{draggable:"false"},dragButtonProps:{},isDragging:!1}:{dragProps:{...s,draggable:"true",onDragStart:l,onDrag:d,onDragEnd:p},dragButtonProps:{...i,onPress:b},isDragging:g}}function fn(e){return e&&e.__esModule?e.default:e}const gn={keyboard:{selected:"dragSelectedKeyboard",notSelected:"dragDescriptionKeyboard"},touch:{selected:"dragSelectedLongPress",notSelected:"dragDescriptionLongPress"},virtual:{selected:"dragDescriptionVirtual",notSelected:"dragDescriptionVirtual"}};function yn(e,t){let r=ae(fn(oe),"@react-aria/dnd"),n=t.isDisabled||t.selectionManager.isDisabled(e.key),{dragProps:a,dragButtonProps:o}=pn({getItems(){return t.getItems(e.key)},preview:t.preview,getAllowedDropOperations:t.getAllowedDropOperations,hasDragButton:e.hasDragButton,onDragStart(d){t.startDrag(e.key,d),Gr(t.draggingKeys)},onDragMove(d){t.moveDrag(d)},onDragEnd(d){let{dropOperation:p}=d,b=p==="cancel"?!1:G();t.endDrag({...d,keys:t.draggingKeys,isInternal:b}),Et()}}),g=t.collection.getItem(e.key),c=t.getKeysForDrag(e.key).size,y=c>1&&t.selectionManager.isSelected(e.key),$,m,v=Me();if(!e.hasDragButton&&t.selectionManager.selectionMode!=="none"){let d=gn[v][y?"selected":"notSelected"];e.hasAction&&v==="keyboard"&&(d+="Alt"),y?m=r.format(d,{count:c}):m=r.format(d),delete a.onClick}else if(y)$=r.format("dragSelectedItems",{count:c});else{let d=t.collection.getTextValue?.(e.key)??g?.textValue??"";$=r.format("dragItem",{itemText:d})}let l=Ie(m);if(m&&Object.assign(a,l),!e.hasDragButton&&e.hasAction){let{onKeyDownCapture:d,onKeyUpCapture:p}=a;v==="touch"&&delete a["aria-describedby"],a.onKeyDownCapture=b=>{b.altKey&&d?.(b)},a.onKeyUpCapture=b=>{b.altKey&&p?.(b)}}return{dragProps:n?{}:a,dragButtonProps:{...o,isDisabled:n,"aria-label":$}}}function mn(e,t,r){let{draggingCollectionRef:n}=B;t.draggingKeys.size>0&&n?.current!==r.current&&Vr(r)}const hn=W.forwardRef(function(t,r){let n=t.children,[a,o]=E.useState(null),g=E.useRef(null),c=E.useRef(void 0);return E.useImperativeHandle(r,()=>(y,$)=>{let m=n(y),v,l,d;m&&typeof m=="object"&&"element"in m?(v=m.element,l=m.x,d=m.y):v=m,Pt.flushSync(()=>{o(v)}),$(g.current,l,d),c.current=requestAnimationFrame(()=>{o(null)})},[n]),E.useEffect(()=>()=>{c.current&&cancelAnimationFrame(c.current)},[]),a?W.createElement("div",{style:{zIndex:-100,position:"fixed",top:0,left:-1e5},ref:g},a):null});function Dn(e){let{getItems:t,isDisabled:r,collection:n,selectionManager:a,onDragStart:o,onDragMove:g,onDragEnd:c,preview:y,getAllowedDropOperations:$}=e,[,m]=E.useState(!1),v=E.useRef(new Set),l=E.useRef(null),d=p=>{let b=new Set;if(a.isSelected(p))for(let h of a.selectedKeys){let x=n.getItem(h);if(x){let T=!1,i=x.parentKey;for(;i!=null;){if(a.selectedKeys.has(i)){T=!0;break}let s=n.getItem(i);i=s?s.parentKey:null}T||b.add(h)}}else b.add(p);return b};return{collection:n,selectionManager:a,get draggedKey(){return l.current},get draggingKeys(){return v.current},isDragging(p){return v.current.has(p)},getKeysForDrag:d,getItems(p){let b=d(p),h=[];for(let x of b){let T=n.getItem(x)?.value;T!=null&&h.push(T)}return t(d(p),h)},isDisabled:r,preview:y,getAllowedDropOperations:$,startDrag(p,b){let h=d(p);v.current=h,l.current=p,a.setFocused(!1),m(!0),typeof o=="function"&&o({...b,keys:h})},moveDrag(p){typeof g=="function"&&g({...p,keys:v.current})},endDrag(p){let{isInternal:b}=p;typeof c=="function"&&c({...p,keys:v.current,isInternal:b}),v.current=new Set,l.current=null,m(!1)}}}function bn(e){let{acceptedDragTypes:t="all",isDisabled:r,onInsert:n,onRootDrop:a,onItemDrop:o,onReorder:g,onMove:c,shouldAcceptItemDrop:y,collection:$,selectionManager:m,onDropEnter:v,getDropOperation:l,onDrop:d}=e,[p,b]=E.useState(null),h=E.useRef(null),x=i=>{if(i.dropPosition==="before"){let s=$.getItem(i.key);return s&&s.prevKey!=null?{type:"item",key:s.prevKey,dropPosition:"after"}:null}else if(i.dropPosition==="after"){let s=$.getItem(i.key);return s&&s.nextKey!=null?{type:"item",key:s.nextKey,dropPosition:"before"}:null}return null},T=E.useCallback(i=>{let{target:s,types:u,allowedOperations:D,isInternal:w,draggingKeys:k}=i;if(r||!s)return"cancel";if(t==="all"||t.some(C=>u.has(C))){let C=n&&s.type==="item"&&!w&&(s.dropPosition==="before"||s.dropPosition==="after"),F=g&&s.type==="item"&&w&&(s.dropPosition==="before"||s.dropPosition==="after")&&$n($,s,k),I=s.type!=="item"||s.dropPosition!=="on"||!y||y(s,u),j=c&&s.type==="item"&&w&&I,N=a&&s.type==="root"&&!w,Y=o&&s.type==="item"&&s.dropPosition==="on"&&!(w&&s.key!=null&&k.has(s.key))&&I;if(d||C||F||j||N||Y)return l?l(s,u,D):D[0]}return"cancel"},[r,$,t,l,n,a,o,y,g,c,d]);return{collection:$,selectionManager:m,isDisabled:r,target:p,setTarget(i){if(this.isDropTarget(i))return;let s=h.current;s&&typeof e.onDropExit=="function"&&e.onDropExit({type:"dropexit",x:0,y:0,target:s}),i&&typeof v=="function"&&v({type:"dropenter",x:0,y:0,target:i}),h.current=i??null,b(i??null)},isDropTarget(i){let s=h.current;return!s||!i?!1:Te(i,s)?!0:i?.type==="item"&&s?.type==="item"&&i.key!==s.key&&i.dropPosition!==s.dropPosition&&i.dropPosition!=="on"&&s.dropPosition!=="on"?Te(x(i),s)||Te(i,x(s)):!1},getDropOperation(i){let{target:s,isInternal:u,draggingKeys:D}=i;if(u&&s.type==="item"&&D.size>0){if(D.has(s.key)&&s.dropPosition==="on")return"cancel";let w=s.key;for(;w!=null;){let C=$.getItem(w)?.parentKey;if(C!=null&&D.has(C))return"cancel";w=C??null}}return T(i)}}}function Te(e,t){if(!e)return!t;switch(e.type){case"root":return t?.type==="root";case"item":return t?.type==="item"&&t?.key===e.key&&t?.dropPosition===e.dropPosition}}function $n(e,t,r){let n=e.getItem(t.key);for(let a of r)if(e.getItem(a)?.parentKey!==n?.parentKey)return!1;return!0}class vn{constructor(t,r,n){this.collection=t,this.ref=r,this.layout=n?.layout||"stack",this.orientation=n?.orientation||"vertical",this.direction=n?.direction||"ltr"}getPrimaryStart(t){return this.orientation==="horizontal"?t.left:t.top}getPrimaryEnd(t){return this.orientation==="horizontal"?t.right:t.bottom}getSecondaryStart(t){return this.orientation==="horizontal"?t.top:t.left}getSecondaryEnd(t){return this.orientation==="horizontal"?t.bottom:t.right}getFlowStart(t){return this.layout==="stack"?this.getPrimaryStart(t):this.getSecondaryStart(t)}getFlowEnd(t){return this.layout==="stack"?this.getPrimaryEnd(t):this.getSecondaryEnd(t)}getFlowSize(t){return this.getFlowEnd(t)-this.getFlowStart(t)}getDropTargetFromPoint(t,r,n){if(this.collection[Symbol.iterator]().next().done||!this.ref.current)return{type:"root"};let a=this.ref.current.getBoundingClientRect(),o=this.orientation==="horizontal"?t:r,g=this.orientation==="horizontal"?r:t;o+=this.getPrimaryStart(a),g+=this.getSecondaryStart(a);let c=this.layout==="stack"?o:g,y=this.orientation==="horizontal"&&this.direction==="rtl",$=this.layout==="grid"&&this.orientation==="vertical"&&this.direction==="rtl",m=this.layout==="stack"?y:$,v=this.ref.current?.dataset.collection,l=this.ref.current.querySelectorAll(v?`[data-collection="${CSS.escape(v)}"]`:"[data-key]"),d=new Map;for(let i of l)i instanceof HTMLElement&&i.dataset.key!=null&&d.set(i.dataset.key,i);let p=[...this.collection].filter(i=>i.type==="item");if(p.length<1)return{type:"root"};let b=0,h=p.length;for(;b<h;){let i=Math.floor((b+h)/2),s=p[i],u=d.get(String(s.key));if(!u)break;let D=u.getBoundingClientRect(),w=k=>{k?b=i+1:h=i};if(o<this.getPrimaryStart(D))w(y);else if(o>this.getPrimaryEnd(D))w(!y);else if(g<this.getSecondaryStart(D))w($);else if(g>this.getSecondaryEnd(D))w(!$);else{let k={type:"item",key:s.key,dropPosition:"on"};if(n(k))c<=this.getFlowStart(D)+5&&n({...k,dropPosition:"before"})?k.dropPosition=m?"after":"before":c>=this.getFlowEnd(D)-5&&n({...k,dropPosition:"after"})&&(k.dropPosition=m?"before":"after");else{let C=this.getFlowStart(D)+this.getFlowSize(D)/2;c<=C&&n({...k,dropPosition:"before"})?k.dropPosition=m?"after":"before":c>=C&&n({...k,dropPosition:"after"})&&(k.dropPosition=m?"before":"after")}return k}}let x=p[Math.min(b,p.length-1)];return a=d.get(String(x.key))?.getBoundingClientRect(),a&&(o<this.getPrimaryStart(a)||Math.abs(c-this.getFlowStart(a))<Math.abs(c-this.getFlowEnd(a)))?{type:"item",key:x.key,dropPosition:m?"after":"before"}:{type:"item",key:x.key,dropPosition:m?"before":"after"}}}function En(e){return{dragAndDropHooks:E.useMemo(()=>{let{onDrop:r,onInsert:n,onItemDrop:a,onReorder:o,onMove:g,onRootDrop:c,getItems:y,renderDragPreview:$,renderDropIndicator:m,dropTargetDelegate:v}=e,l=!!y,d=!!(r||n||a||o||g||c),p={};return l&&(p.useDraggableCollectionState=function(h){return Dn({...h,...e})},p.useDraggableCollection=mn,p.useDraggableItem=yn,p.DragPreview=hn,p.renderDragPreview=$,p.isVirtualDragging=Ur),d&&(p.useDroppableCollectionState=function(h){return bn({...h,...e})},p.useDroppableItem=St,p.useDroppableCollection=function(h,x,T){return sn({...h,...e},x,T)},p.useDropIndicator=dn,p.renderDropIndicator=m,p.dropTargetDelegate=v,p.ListDropTargetDelegate=vn),p},[e])}}function ce({children:e,tone:t,action:r}){return f.jsxs("span",{className:Ae("rp-tag",t),children:[f.jsx("span",{className:"rp-tag-label",children:e}),r]})}function Ze({label:e,children:t}){return f.jsx("div",{className:"rp-tags",role:"group","aria-label":e,children:t})}function xn({label:e,message:t,children:r}){return f.jsxs("div",{className:"rp-actionbar",role:"region","aria-label":e,children:[f.jsx("span",{"aria-live":"polite",children:t}),f.jsx("div",{className:"rp-toolbar",children:r})]})}function wn({className:e,...t}){return f.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",width:12,height:12,viewBox:"0 0 12 12","aria-hidden":"true",focusable:"false",className:Ae("rp-icon",e),...t,children:[1.6,6,10.4].flatMap(r=>[3.8,8.2].map(n=>f.jsx("circle",{cx:n,cy:r,r:1.1,fill:"currentColor"},`${n}-${r}`)))})}function Tn(e,t){return e.flatMap(r=>{if(r.kind!=="subscription")return[];const n=t.filter(o=>o.provider_id===r.id),a=new Set(n.map(o=>o.subscription_tag).filter(Boolean));return a.size!==1?[]:[{tag:[...a][0],label:r.name,count:n.length}]})}const Qe=6;function kn(e,t,r,n,a){const o=new Map(Ce(e).map(l=>[l.name,Ve(l)])),g=it(e,t),c=Ce(g),y=new Map(r.map(l=>[l.tag,l])),$=a("arrange.lastMember"),m=c.map(l=>{const d=Ve(l),p=o.get(l.name),b=Ge(l.filters),h=d.rules.length?Ge(d.rules):null,x=t.filter(s=>s.group===l.name),T=new Set(x.flatMap(s=>s.kind==="removeNode"?n.filter(u=>u.name===s.value):s.kind==="removeSubscription"?n.filter(u=>u.subscription_tag===s.value):[])),i=h?n.filter(h).map(s=>s.name):[];return{name:l.name,isNew:!p,holdsAll:l.filters.length===0,names:d.names.map(s=>({name:s,isNew:!!p&&!p.names.includes(s),blocked:He(l,"name",s)?$:null})),subscriptions:d.subtags.map(s=>({tag:s,label:y.get(s)?.label??s,count:y.get(s)?.count??null,isNew:!!p&&!p.subtags.includes(s),blocked:He(l,"subtag",s)?$:null})),rules:d.rules,ruleNote:d.rules.length?a("arrange.ruleNote",{n:d.rules.length}):null,ruleNodes:i.slice(0,Qe),ruleMore:Math.max(0,i.length-Qe),stillIn:[...T].filter(b).map(s=>s.name),removedNames:x.flatMap(s=>s.kind==="removeNode"?[s.value]:[]),removedSubscriptions:x.flatMap(s=>s.kind==="removeSubscription"?[{tag:s.value,label:y.get(s.value)?.label??s.value}]:[])}}),v=new Set(n.map(l=>l.name));return{groups:m,stagedText:g,unknown:new Set(m.flatMap(l=>l.names.filter(d=>!v.has(d.name)).map(d=>d.name))),emptyNew:m.filter(l=>l.isNew&&l.holdsAll).map(l=>l.name)}}function Kn(e,t){return t?null:[...e.names,...e.subscriptions].find(r=>r.blocked)?.blocked??null}function Cn(e,t,r){return e??(t.length?r("arrange.emptyNew",{group:t[0]}):null)}function Ft(e,t){return e?t.kind==="node"?e.names.some(r=>r.name===t.value):e.subscriptions.some(r=>r.tag===t.value):!1}function Sn(e){try{const t=JSON.parse(e);if(!t||typeof t!="object")return null;const{kind:r,value:n}=t;return(r==="node"||r==="subscription")&&typeof n=="string"&&n?{kind:r,value:n}:null}catch{return null}}function Fn(e,t,r){const n=a=>t.find(o=>o.tag===a)?.label??a;switch(e.kind){case"addNode":return r("arrange.change.addNode",{name:e.value,group:e.group});case"removeNode":return r("arrange.change.removeNode",{name:e.value,group:e.group});case"addSubscription":return r("arrange.change.addSubscription",{name:n(e.value),group:e.group});case"removeSubscription":return r("arrange.change.removeSubscription",{name:n(e.value),group:e.group});case"createGroup":return r("arrange.change.createGroup",{group:e.group})}}function ke(e,t){const r={addNode:"removeNode",removeNode:"addNode",addSubscription:"removeSubscription",removeSubscription:"addSubscription"};if(t.kind==="createGroup")return e.some(a=>a.kind==="createGroup"&&a.group===t.group)?e:[...e,t];if((t.kind==="addNode"||t.kind==="addSubscription")&&!lt(t.value))return e;const n=e.findIndex(a=>a.kind===r[t.kind]&&a.group===t.group&&"value"in a&&a.value===t.value);return n!==-1?e.filter((a,o)=>o!==n):e.some(a=>a.kind===t.kind&&a.group===t.group&&"value"in a&&a.value===t.value)?e:[...e,t]}function Pn(e,t){const r=e[t];return e.filter((n,a)=>a!==t&&!(r.kind==="createGroup"&&n.group===r.group))}const ge="application/x-doona-placeable";function Bn(e,t){const r=J(),n=or(),a=n.data?.resources,o=ir(ze(a,"nodes",{whileLoading:!1})),g=lr(ze(a,"providers",{whileLoading:!1})),c=o.data,[y,$]=E.useState([]),m=sr(y.length>0,()=>$([])),v=e.main?.content??"",l=E.useMemo(()=>Tn(g.data?.providers??[],c??[]),[g.data,c]),d=E.useMemo(()=>kn(v,y,l,c??[],r),[v,y,l,c,r]),p=E.useMemo(()=>new Map(d.groups.map(K=>[K.name,K])),[d.groups]),{contains:b}=Ir({sensitivity:"base"}),[h,x]=E.useState(""),T=E.useDeferredValue(h).trim(),i=E.useMemo(()=>(c??[]).filter(K=>!T||b(K.name,T)||b(K.protocol??"",T)),[c,T,b]),s=E.useMemo(()=>l.filter(K=>!T||b(K.label,T)),[l,T,b]),[u,D]=E.useState(!1),[w,k]=E.useState(!1),[C,F]=E.useState(null),I=e.writable?e.main?null:"arrange.noMain":"arrange.readOnly",j=K=>{w||(F(null),$(K))},N=(K,O)=>{O.some(A=>!lt(A.value))&&Ye("negative",r("config.unquotable")),j(A=>O.filter(ee=>!Ft(p.get(K),ee)).reduce((ee,Re)=>ke(ee,{kind:Re.kind==="node"?"addNode":"addSubscription",group:K,value:Re.value}),A))},Y=(K,O)=>j(A=>ke(A,{kind:O.kind==="node"?"removeNode":"removeSubscription",group:K,value:O.value})),Z=new Set(d.groups.map(K=>K.name)),Q=K=>Fr(K,Z,r),U=async()=>{k(!0),F(null);try{const K=await e.apply(O=>it(O,y));if(K.kind==="invalid"&&F(r("ui.writeInvalid",{n:K.errors})),K.kind==="failed"&&F(r("arrange.failed",{error:dr(K.error,r)})),K.kind==="ok"){const O=[...new Set(y.map(ee=>ee.group))],A=O.length===1?O[0]:null;Ye("positive",r("arrange.applied",{n:y.length}),{action:{label:r(A===null?"policy.viewGroups":"policy.viewGroup"),onAction:()=>t(A),closeOnAction:!0}}),$([]),m.clear(),D(!1)}}finally{k(!1)}},X=E.useMemo(()=>{if(!y.length)return[];const K=d.stagedText.split(`
`),O=new Set(y.map(A=>A.group));return Ce(d.stagedText).filter(A=>O.has(A.name)).map(A=>({group:A.name,text:K.slice(A.from,A.to+1).join(`
`)}))},[d.stagedText,y]);return{groups:d.groups,unknown:d.unknown,byGroup:p,subscriptions:s,nodes:i,search:h,setSearch:x,loading:n.loading&&!n.data||o.loading&&!c||g.loading&&!g.data,error:[n,o,g].find(K=>K.error&&!K.data)?.error??(e.main?null:e.error),retry:E.useCallback(()=>void ur(),[]),blocked:I?r(I):null,busy:e.busy||w,applying:w,failure:C,changes:y,changeLines:y.map(K=>Fn(K,l,r)),pendingText:r("arrange.pending",{n:y.length}),place:N,unplace:Y,drop:K=>j(O=>Pn(O,K)),discard:()=>j(()=>[]),nameProblem:Q,create:(K,O)=>j(A=>ke(A,{kind:"createGroup",group:K,policy:O})),reviewing:u&&y.length>0,setReviewing:K=>{w||D(K)},preview:X,canApply:y.length>0&&d.emptyNew.length===0&&!I&&!w,applyNote:Cn(I?r(I):null,d.emptyNew,r),apply:U}}function _n({source:e,groups:t,viewGroup:r}){const n=J(),a=Bn(e,r),o=E.useMemo(()=>new Map((t??[]).map(g=>[g.name,g])),[t]);return a.error?f.jsx(cr,{error:a.error,onRetry:a.retry}):a.loading?f.jsx(pr,{}):f.jsxs("div",{className:"rp-arrange",children:[f.jsxs("div",{className:"rp-row",children:[f.jsxs("p",{className:"rp-note rp-grow",children:[f.jsx("span",{className:"rp-wide-only",children:n("arrange.note")}),f.jsx("span",{className:"rp-narrow-only",children:n("arrange.selectHint")})]}),f.jsx(On,{m:a})]}),a.blocked&&f.jsx(te,{tone:"informative",children:a.blocked}),f.jsxs("div",{className:"rp-arrange-grid",children:[f.jsx("div",{className:"rp-col",children:a.groups.length?a.groups.map(g=>f.jsx(In,{group:g,live:o.get(g.name),m:a},g.name)):f.jsx(st,{children:n("policy.empty")})}),f.jsx(An,{m:a})]}),a.changes.length>0&&f.jsxs(xn,{label:n("arrange.pendingRegion"),message:a.pendingText,children:[f.jsx(V,{quiet:!0,onPress:a.discard,isDisabled:a.busy,children:n("arrange.discard")}),f.jsx(V,{accent:!0,onPress:()=>a.setReviewing(!0),children:n("arrange.review")})]}),f.jsx(Mn,{m:a})]})}function In({group:e,live:t,m:r}){const n=J(),a=ct(),o=E.useId(),g=!!r.blocked,c=t?Pr(t.policy,n):null,y=async v=>{const l=await Promise.all(v.filter(Lr).filter(d=>d.types.has(ge)).map(d=>d.getText(ge)));r.place(e.name,l.flatMap(d=>Sn(d)??[]))},$=(v,l,d)=>f.jsx(V,{quiet:!0,icon:!0,small:!0,label:n("arrange.remove",{name:v,group:e.name}),isDisabled:g||r.applying||!!d,onPress:()=>r.unplace(e.name,l),children:f.jsx(pt,{})}),m=(v,l)=>f.jsx(V,{quiet:!0,small:!0,label:n("arrange.undoRemove",{name:v}),isDisabled:r.applying,onPress:()=>r.place(e.name,[l]),children:n("arrange.undoShort")});return f.jsx(an,{className:hr("rp-drop"),"aria-label":n("arrange.dropInto",{group:e.name}),isDisabled:g||r.applying,getDropOperation:v=>v.has(ge)?"copy":"cancel",onDrop:v=>void y(v.items),children:({isDropTarget:v})=>f.jsxs(f.Fragment,{children:[f.jsx("div",{className:"rp-row",children:f.jsxs("span",{className:"rp-cluster",children:[f.jsx("h3",{className:"rp-h3",id:o,children:e.name}),c&&f.jsx(Xe,{tip:c.id,children:c.label}),t&&f.jsx(fr,{small:!0,tone:"neutral",children:n("arrange.memberCount",{n:t.member_count})}),e.isNew&&f.jsx(Xe,{children:n("arrange.new")})]})}),e.holdsAll&&f.jsx("p",{className:"rp-note",children:n("arrange.holdsAll")}),f.jsxs(gr,{reason:Kn(e,g||r.applying),children:[(e.names.length>0||e.removedNames.length>0)&&f.jsxs(Ze,{label:n("arrange.byName"),children:[f.jsx("span",{className:"rp-label rp-tags-title",children:n("arrange.byName")}),e.names.map(l=>f.jsx(ce,{tone:l.isNew?"new":void 0,action:$(l.name,{kind:"node",value:l.name},l.blocked),children:l.name},l.name)),e.removedNames.map(l=>f.jsx(ce,{tone:"removed",action:m(l,{kind:"node",value:l}),children:l},l))]}),(e.subscriptions.length>0||e.removedSubscriptions.length>0)&&f.jsxs(Ze,{label:n("arrange.bySubscription"),children:[f.jsx("span",{className:"rp-label rp-tags-title",children:n("arrange.bySubscription")}),e.subscriptions.map(l=>f.jsx(ce,{tone:l.isNew?"new":void 0,action:$(l.label,{kind:"subscription",value:l.tag},l.blocked),children:l.count===null?l.label:n("arrange.subscriptionCount",{name:l.label,n:l.count})},l.tag)),e.removedSubscriptions.map(l=>f.jsx(ce,{tone:"removed",action:m(l.label,{kind:"subscription",value:l.tag}),children:l.label},l.tag))]})]}),e.rules.length>0&&f.jsxs("div",{className:"rp-arrange-rules",children:[f.jsx("span",{className:"rp-label",children:n("arrange.byRule")}),e.rules.map(l=>f.jsx(ft,{as:"code",text:l},l)),e.ruleNodes.length>0&&f.jsx("span",{children:e.ruleMore?n("arrange.ruleSelectsMore",{names:pe(a,e.ruleNodes),n:e.ruleMore}):n("arrange.ruleSelects",{names:pe(a,e.ruleNodes)})}),f.jsxs("span",{className:"rp-label",children:[e.ruleNote," ",f.jsx(yr,{appearance:"link",href:mr("config",{tab:"source"}),children:n("arrange.editSource")})]})]}),e.stillIn.length>0&&f.jsx(te,{tone:"informative",children:n("arrange.stillIn",{names:pe(a,e.stillIn)})}),v&&f.jsx("div",{className:"rp-drop-hint","aria-hidden":"true",children:n("arrange.dropHint")})]})})}function An({m:e}){const t=J(),r=E.useId(),n=!!e.blocked||e.applying,[a,o]=E.useState("all"),[g,c]=E.useState(new Set),y=E.useMemo(()=>[...a==="node"?[]:e.subscriptions.map(d=>({id:"subscription:"+d.tag,item:{kind:"subscription",value:d.tag},label:d.label,meta:t("arrange.subscriptionMeta",{n:d.count})})),...a==="subscription"?[]:e.nodes.map(d=>({id:"node:"+d.name,item:{kind:"node",value:d.name},label:d.name,meta:d.protocol??""}))],[a,e.subscriptions,e.nodes,t]),$=E.useMemo(()=>new Map(y.map(d=>[d.id,d])),[y]),m=g==="all"?y:[...g].flatMap(d=>$.get(String(d))??[]),{dragAndDropHooks:v}=En({getItems:d=>[...d].flatMap(p=>$.has(String(p))?[{[ge]:JSON.stringify($.get(String(p)).item),"text/plain":$.get(String(p)).label}]:[]),getAllowedDropOperations:()=>["copy"],isDisabled:n}),l=e.groups.filter(d=>m.some(p=>!Ft(d,p.item)));return f.jsxs(Dr,{title:t("arrange.tray"),titleId:r,className:"rp-tray",children:[f.jsx(dt,{search:!0,label:t("arrange.search"),value:e.search,onChange:e.setSearch}),f.jsx(br,{label:t("arrange.show"),value:a,onChange:d=>o(d),items:[["all",t("ui.all")],["subscription",t("arrange.subscriptions")],["node",t("arrange.nodes")]]}),f.jsx(Cr,{layout:Sr,layoutOptions:{rowHeight:48},children:f.jsx(kr,{"aria-labelledby":r,className:"rp-tray-list",items:y,selectionMode:"multiple",selectionBehavior:"toggle",selectedKeys:g,onSelectionChange:c,dragAndDropHooks:v,renderEmptyState:()=>f.jsx(st,{children:t("arrange.trayEmpty")}),children:d=>f.jsxs(Kr,{id:d.id,textValue:d.label,className:"rp-item rp-tray-row",children:[f.jsx($r,{slot:"drag",className:Ae(vr({quiet:!0,icon:!0,small:!0}),"rp-drag"),"aria-label":t("arrange.drag",{name:d.label}),children:f.jsx(wn,{})}),f.jsx(Er,{}),f.jsxs("span",{className:"rp-grow",children:[f.jsx(xr,{children:d.label}),f.jsx("span",{className:"desc",children:d.meta})]})]})})}),f.jsxs("div",{className:"rp-tray-bar",children:[f.jsx("span",{className:"rp-grow rp-label","aria-live":"polite",children:m.length?t("arrange.selected",{n:m.length}):t("arrange.selectHint")}),m.length>0&&f.jsx(V,{quiet:!0,small:!0,onPress:()=>c(new Set),children:t("arrange.clear")}),f.jsx(wr,{label:t("arrange.addSelected"),isDisabled:n||!l.length,items:l.map(d=>({id:d.name,label:d.name})),onAction:d=>{e.place(d,m.map(p=>p.item)),c(new Set)},children:t("arrange.addSelected")})]})]})}function On({m:e}){const t=J(),r=E.useId(),[n,a]=E.useState(!1),[o,g]=E.useState(""),[c,y]=E.useState(Ue[0].id),[$,m]=E.useState(!1),v=e.nameProblem(o.trim()),l=()=>{g(""),y(Ue[0].id),m(!1)};return f.jsxs(f.Fragment,{children:[f.jsx(V,{small:!0,onPress:()=>a(!0),isDisabled:!!e.blocked||e.applying,children:t("arrange.newGroup")}),f.jsx(ut,{title:t("arrange.newGroup"),narrow:!0,isOpen:n,onOpenChange:d=>{a(d),d||l()},footer:d=>f.jsxs(f.Fragment,{children:[f.jsx(V,{onPress:d,children:t("ui.cancel")}),f.jsx(V,{accent:!0,type:"submit",form:r,children:t("arrange.create")})]}),children:f.jsxs("form",{id:r,className:"rp-form",onSubmit:d=>{d.preventDefault(),m(!0),!v&&(e.create(o.trim(),c),a(!1),l())},children:[f.jsx(dt,{label:t("arrange.groupName"),value:o,onChange:g,description:t("arrange.groupNameHint"),error:$&&v?v:void 0,spellCheck:!1}),f.jsx(Br,{value:c,onChange:y}),f.jsx("p",{className:"rp-label",children:t("arrange.newGroupNote")})]})})]})}function Mn({m:e}){const t=J(),r=ct();return f.jsxs(ut,{title:t("arrange.reviewTitle"),isOpen:e.reviewing,onOpenChange:e.setReviewing,footer:n=>f.jsxs(f.Fragment,{children:[f.jsx(V,{onPress:n,isDisabled:e.applying,children:t("ui.cancel")}),f.jsx(V,{accent:!0,isPending:e.applying,isDisabled:!e.canApply,onPress:()=>void e.apply(),children:t("config.save")})]}),children:[e.failure&&f.jsx(te,{takeFocus:!0,children:e.failure}),e.applyNote&&f.jsx(te,{children:e.applyNote}),e.unknown.size>0&&f.jsx(te,{tone:"informative",children:t("arrange.unknown",{names:pe(r,[...e.unknown])})}),f.jsx("ol",{className:"rp-arrange-changes",children:e.changeLines.map((n,a)=>f.jsxs("li",{className:"rp-row",children:[f.jsx("span",{className:"rp-grow",children:n}),f.jsx(V,{quiet:!0,icon:!0,small:!0,label:t("arrange.undo",{change:n}),isDisabled:e.applying,onPress:()=>e.drop(a),children:f.jsx(pt,{})})]},a))}),f.jsx(Tr,{title:t("arrange.showText"),children:e.preview.map(n=>f.jsx(ft,{as:"pre",className:"rp-arrange-preview",text:n.text},n.group))}),f.jsx("p",{className:"rp-label",children:t("arrange.applyNote")})]})}export{_n as Arrange};