@powerduck/tree 0.7.14 → 0.7.15
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/react/index.cjs +1 -1
- package/dist/react/index.js +1 -1
- package/package.json +1 -1
package/dist/react/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var qe=Object.defineProperty;var wt=Object.getOwnPropertyDescriptor;var yt=Object.getOwnPropertyNames;var It=Object.prototype.hasOwnProperty;var Nt=(t,e)=>{for(var a in e)qe(t,a,{get:e[a],enumerable:!0})},Mt=(t,e,a,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of yt(e))!It.call(t,n)&&n!==a&&qe(t,n,{get:()=>e[n],enumerable:!(o=wt(e,n))||o.enumerable});return t};var St=t=>Mt(qe({},"__esModule",{value:!0}),t);var Gt={};Nt(Gt,{METHOD_LABEL_MAP:()=>Oe,Tree:()=>dt,getMethodLabel:()=>Me,useTreeExpansion:()=>Le,useTreeSearch:()=>Pe});module.exports=St(Gt);var p=require("react");function*$e(t,e=1/0){let a=new Set,o=[];for(let n=t.length-1;n>=0;n--)o.push({node:t[n],depth:1});for(;o.length;){let n=o.pop();if(a.has(n.node)||n.depth>e)continue;a.add(n.node),yield n;let l=n.node.children??[];for(let i=l.length-1;i>=0;i--)o.push({node:l[i],parent:n,depth:n.depth+1})}}function Fe(t,e){for(let{node:a}of $e(t))if(a.id===e)return a}function kt(t,e,a=[]){for(let o of $e(t)){if(o.node.id!==e)continue;let n=[],l=o;for(;l;)n.push(l.node),l=l.parent;n.reverse();let i=[...a,...n];return{nodes:i,target:o.node,parent:i[i.length-2],ancestorIds:i.slice(0,-1).map(T=>T.id)}}return null}var $t=new Intl.Collator("en-US",{numeric:!0,sensitivity:"base"});function je(t,e,a=()=>!0){let o=new Set,n=new Map,l=[{source:t,output:[],index:0}];for(;l.length;){let i=l[l.length-1];if(i.index<i.source.length){let c=i.source[i.index++];if(o.has(c))continue;if(n.has(c)){let x=n.get(c);x&&i.output.push(x)}else if(c.children?.length&&a(c))o.add(c),l.push({source:c.children,output:[],index:0,owner:c});else{let x=e(c);n.set(c,x),x&&i.output.push(x)}continue}l.pop();let T=i.source.length===i.output.length&&i.source.every((c,x)=>c===i.output[x])?i.source:i.output;if(!i.owner)return T;let h=i.owner,I=e(T===h.children?h:{...h,children:T});o.delete(h),n.set(h,I),I&&l[l.length-1].output.push(I)}return t}function Ue(t,e){let a=e.query.trim().toLowerCase();return a?je(t,o=>o.name.toLowerCase().includes(a)||o.id.toLowerCase().includes(a)||(e.keepAncestors??!0)&&o.children?.length?o:null):t}function Ee(t,e={}){let a=[];for(let{node:o,depth:n}of $e(t,e.maxDepth??1/0))n<=(e.maxDepth??1/0)&&(!(e.onlyWithChildren??!0)||o.children?.length)&&a.push(o.id);return a}function Ye(t){return Ee(t)}function Xe(t,e,a){return je(t,o=>o.id===e?a(o):o,o=>o.id!==e)}function Dt(t,e){return je(t,a=>a.id===e?null:a,a=>a.id!==e)}function Ze(t,e){return Math.max(0,Math.min(Number.isNaN(t)?0:Math.trunc(t),e))}function et(t,e,a){let o=kt(t,e);if(!o)return null;let n=o.parent?.children??t,l=n.indexOf(o.target),i=Ze(a,n.length-1),T={nodes:t,moved:o.target,parentId:o.parent?.id??null,fromIndex:l,toIndex:i};if(i===l)return T;let h=[...n];return h.splice(l,1),h.splice(i,0,o.target),{...T,nodes:o.parent?Xe(t,o.parent.id,I=>({...I,children:h})):h}}function We(t,e,a,o){let n=Fe(t,e);if(!n||a!==null&&(!Fe(t,a)||Fe([n],a)))return null;let l=Dt(t,e),i=T=>{let h=[...T];return h.splice(Ze(o??h.length,h.length),0,n),h};return a===null?i(l):Xe(l,a,T=>({...T,children:i(T.children??[])}))}var de=require("react"),tt=require("react-dom"),ae=require("react/jsx-runtime");function rt({state:t,onClose:e}){let a=(0,de.useRef)(null),[o,n]=(0,de.useState)(null),[l,i]=(0,de.useState)({left:t.x,top:t.y}),[T,h]=(0,de.useState)({}),I=t.anchor.closest("dialog")??t.anchor.ownerDocument.body;return(0,de.useLayoutEffect)(()=>{let c=t.anchor.closest(".pde-tree-root")??t.anchor,x=getComputedStyle(c),M={};for(let k=0;k<x.length;k++){let A=x.item(k);(A.startsWith("--tree-")||A.startsWith("--color-")||A.startsWith("--radius-")||A.startsWith("--font-")||A.startsWith("--shadow-"))&&(M[A]=x.getPropertyValue(A))}h(M);let v=a.current;if(!v)return;let O=()=>{let k=v.getBoundingClientRect();i({left:Math.max(8,Math.min(t.x,document.documentElement.clientWidth-k.width-8)),top:Math.max(8,Math.min(t.y,document.documentElement.clientHeight-k.height-8))})};O();let K=typeof ResizeObserver>"u"?void 0:new ResizeObserver(O);K?.observe(v),v.querySelector("button:not(:disabled)")?.focus();let Y=k=>{k.target instanceof Node&&!v.contains(k.target)&&e()},X=k=>{k.target instanceof Node&&!v.contains(k.target)&&e()};return document.addEventListener("pointerdown",Y),document.addEventListener("scroll",X,!0),window.addEventListener("resize",e),()=>{K?.disconnect(),document.removeEventListener("pointerdown",Y),document.removeEventListener("scroll",X,!0),window.removeEventListener("resize",e),v.contains(document.activeElement)&&t.anchor.isConnected&&t.anchor.focus({preventScroll:!0})}},[t,e]),(0,tt.createPortal)((0,ae.jsx)("div",{ref:a,className:"pde-tree-contextMenu",style:{...T,...l},role:"menu","aria-label":`Actions for ${t.node.name}`,tabIndex:-1,onKeyDown:c=>{let x=a.current;if(!x)return;let M=Array.from(x.querySelectorAll("button:not(:disabled)")),v=M.indexOf(document.activeElement);if(c.key==="Escape"||c.key==="Tab"){c.key==="Escape"&&c.preventDefault(),c.stopPropagation(),e();return}let O;if(c.key==="ArrowDown")O=(v+1)%M.length;else if(c.key==="ArrowUp")O=(v-1+M.length)%M.length;else if(c.key==="Home")O=0;else if(c.key==="End")O=M.length-1;else return;c.preventDefault(),M[O]?.focus()},children:t.items.map((c,x)=>(0,ae.jsxs)("div",{role:"presentation",children:[c.separator&&(0,ae.jsx)("div",{className:"pde-tree-contextMenuSeparator",role:"separator"}),(0,ae.jsxs)("button",{type:"button",role:"menuitem",tabIndex:-1,disabled:c.disabled,className:`pde-tree-contextMenuItem${c.danger?" pde-tree-contextMenuItemDanger":""}${o===x?" pde-tree-contextMenuItemConfirming":""}`,onClick:()=>{if(c.confirm&&o!==x){n(x);return}e(),c.onClick(t.node)},children:[c.icon&&(0,ae.jsx)("span",{className:"pde-tree-contextMenuIcon","aria-hidden":"true",children:c.icon}),(0,ae.jsx)("span",{children:c.confirm&&o===x?c.confirmLabel??"Confirm?":c.label})]})]},`${c.label}-${x}`))}),I)}var L=require("react");function Le(t,e={}){let{defaultExpandedIds:a,defaultExpandDepth:o=1,onExpandedChange:n}=e,l=(0,L.useMemo)(()=>a!==void 0?[...a]:o<=1?[]:Ee(t,{maxDepth:o-1,onlyWithChildren:!0}),[]),[i,T]=(0,L.useState)(l),h=(0,L.useRef)(new Map),I=(0,L.useMemo)(()=>Ye(t),[t]),c=(0,L.useMemo)(()=>new Set(i),[i]),x=(0,L.useRef)(i);x.current=i;let M=(0,L.useMemo)(()=>I.length>0&&I.every(S=>c.has(S)),[I,c]),v=(0,L.useCallback)(S=>{x.current=S,T(S),n?.(S)},[n]),O=(0,L.useCallback)(S=>{let D=x.current,ie=D.includes(S)?D.filter(me=>me!==S):[...D,S];v(ie)},[v]),K=(0,L.useCallback)(()=>{v([...I])},[I,v]),Y=(0,L.useCallback)(()=>{v([])},[v]),X=(0,L.useCallback)(S=>{let D=Ee(t,{maxDepth:S,onlyWithChildren:!0});v(D)},[t,v]),k=(0,L.useCallback)((S,D)=>{D?h.current.set(S,D):h.current.delete(S)},[]),A=(0,L.useCallback)(S=>{let D=h.current.get(S);D&&D.scrollIntoView?.({behavior:"auto",block:"nearest"})},[]);return{expandedIds:i,setExpandedIds:v,toggleNode:O,expandAll:K,collapseAll:Y,expandToDepth:X,isAllExpanded:M,allBranchIds:I,setNodeElementRef:k,scrollToNode:A,nodeElementRefs:h}}var Q=require("react");function Pe(t){let[e,a]=(0,Q.useState)(""),o=(0,Q.useDeferredValue)(e),[n,l]=(0,Q.useState)(null),i=o.trim().length>0,T=(0,Q.useMemo)(()=>i?Ue(t,{query:o,keepAncestors:!0}):t,[t,o,i]),h=(0,Q.useCallback)((c,x)=>{let M=e.trim(),v=c.trim();!M&&v&&l(x),M&&!v&&l(null),a(c)},[e]),I=(0,Q.useCallback)(()=>{a(""),l(null)},[]);return{query:e,deferredQuery:o,isSearching:i,filteredNodes:T,expandedBeforeSearch:n,handleQueryChange:h,clearSearch:I}}function ot(t){let e=new Map,a=new Set,o=t.map(n=>({node:n,parentId:null})).reverse();for(;o.length;){let n=o.pop();if(a.has(n.node)||e.has(n.node.id))continue;a.add(n.node),e.set(n.node.id,n);let l=n.node.children??[];for(let i=l.length-1;i>=0;i--)o.push({node:l[i],parentId:n.node.id})}return{byId:e,path(n){let l=e.get(n);if(!l)return null;let i=[l.node],T=l.parentId;for(;T!==null;){let h=e.get(T);if(!h)break;i.push(h.node),T=h.parentId}return i.reverse(),{nodes:i,target:l.node,parent:i[i.length-2],ancestorIds:i.slice(0,-1).map(h=>h.id)}}}}var Oe={get:"GET",post:"POST",put:"PUT",delete:"DEL",patch:"PAT",head:"HEAD",options:"OPT",trace:"TRC",connect:"CON"};function Me(t){let e=t.toLowerCase().trim();return Object.prototype.hasOwnProperty.call(Oe,e)?Oe[e]:e.slice(0,4).toUpperCase()}var N=require("react-icons/lu"),Be=require("react-icons/md"),s=require("react/jsx-runtime"),g={branchControl:"pde-tree-branchControl",deprecatedLabel:"pde-tree-deprecatedLabel",dragHandle:"pde-tree-dragHandle",dropIndicatorAfter:"pde-tree-dropIndicatorAfter",dropIndicatorBefore:"pde-tree-dropIndicatorBefore",dropIndicatorChild:"pde-tree-dropIndicatorChild",emptyState:"pde-tree-emptyState",expandIcon:"pde-tree-expandIcon",expandIconPlaceholder:"pde-tree-expandIconPlaceholder",highlight:"pde-tree-highlight",iconButton:"pde-tree-iconButton",indentGuide:"pde-tree-indentGuide",leafItem:"pde-tree-leafItem",methodBadge:"pde-tree-methodBadge",methodDelete:"pde-tree-methodDelete",methodGet:"pde-tree-methodGet",methodOther:"pde-tree-methodOther",methodPatch:"pde-tree-methodPatch",methodPost:"pde-tree-methodPost",methodPut:"pde-tree-methodPut",moreButton:"pde-tree-moreButton",moreButtonActive:"pde-tree-moreButtonActive",nodeDragging:"pde-tree-nodeDragging",nodeIcon:"pde-tree-nodeIcon",primitiveDot:"pde-tree-primitiveDot",nodeLabel:"pde-tree-nodeLabel",nodeLabelBranch:"pde-tree-nodeLabelBranch",nodeRow:"pde-tree-nodeRow",nodeRowSelected:"pde-tree-nodeRowSelected",nodeSuffix:"pde-tree-nodeSuffix",requiredDot:"pde-tree-requiredDot",root:"pde-tree-root",searchIcon:"pde-tree-searchIcon",searchInput:"pde-tree-searchInput",searchInputWrap:"pde-tree-searchInputWrap",searchRow:"pde-tree-searchRow",toolbar:"pde-tree-toolbar",treeContainer:"pde-tree-treeContainer"};function Ct({expanded:t}){return(0,s.jsx)("span",{className:g.expandIcon,children:t?(0,s.jsx)(N.LuChevronDown,{size:14}):(0,s.jsx)(N.LuChevronRight,{size:14})})}function Rt(){return(0,s.jsx)(N.LuSearch,{size:14,"aria-hidden":"true"})}function Et(){return(0,s.jsx)(N.LuGripVertical,{size:14,"aria-hidden":"true"})}function Lt(){return(0,s.jsx)(N.LuEllipsisVertical,{size:14,"aria-hidden":"true"})}function nt(t){let a=t.metadata?.jsonPath;if(Array.isArray(a)&&a.length>0&&a.every(o=>typeof o=="string"||typeof o=="number"&&Number.isInteger(o)&&o>=0))return a}function Pt(t,e,a,o){let n=nt(t);if(!n||n.length===0)return[];let l=JSON.stringify(n.slice(0,-1));if(!o.every((T,h)=>{let I=nt(T);return I&&I[I.length-1]===h&&JSON.stringify(I.slice(0,-1))===l}))return[];let i=n.slice(0,-1);return[{op:"move",from:[...i,e],path:[...i,a]}]}function Ot({text:t,query:e}){if(!e)return(0,s.jsx)(s.Fragment,{children:t});let a=t.toLowerCase(),o=e.toLowerCase(),n=a.indexOf(o);return n===-1?(0,s.jsx)(s.Fragment,{children:t}):(0,s.jsxs)(s.Fragment,{children:[t.slice(0,n),(0,s.jsx)("span",{className:g.highlight,children:t.slice(n,n+e.length)}),t.slice(n+e.length)]})}var at={get:g.methodGet,post:g.methodPost,put:g.methodPut,patch:g.methodPatch,delete:g.methodDelete};function Bt({method:t}){let e=t.toLowerCase(),a=Object.prototype.hasOwnProperty.call(at,e)?at[e]:g.methodOther,o=Me(t);return(0,s.jsx)("span",{className:`${g.methodBadge} ${a}`,children:o})}var _={draggedId:null,dragOverId:null,dragOverPosition:null};function zt(t,e){if(t.isFocused!==e.isFocused||t.positionInSet!==e.positionInSet||t.setSize!==e.setSize||t.node!==e.node||t.depth!==e.depth||t.isExpanded!==e.isExpanded||t.isSelected!==e.isSelected||t.searchQuery!==e.searchQuery||t.showIndentGuides!==e.showIndentGuides||t.canDragNode!==e.canDragNode||t.draggable!==e.draggable||t.showContextMenuButton!==e.showContextMenuButton||t.activeMenuNodeId===t.node.id!=(e.activeMenuNodeId===e.node.id))return!1;let a=t.dragState.draggedId===t.node.id,o=e.dragState.draggedId===e.node.id;if(a!==o)return!1;let n=t.dragState.dragOverId===t.node.id,l=e.dragState.dragOverId===e.node.id;return!(n!==l||n&&l&&t.dragState.dragOverPosition!==e.dragState.dragOverPosition||t.renderIcon!==e.renderIcon||t.renderLabel!==e.renderLabel||t.renderSuffix!==e.renderSuffix||t.renderNode!==e.renderNode||t.onToggle!==e.onToggle||t.onSelect!==e.onSelect||t.onNodeRef!==e.onNodeRef||t.onDragStart!==e.onDragStart||t.onDragOver!==e.onDragOver||t.onDragLeave!==e.onDragLeave||t.onDrop!==e.onDrop||t.onDragEnd!==e.onDragEnd||t.onContextMenu!==e.onContextMenu||t.onMoreClick!==e.onMoreClick)}function At(t){let{node:e,depth:a,onToggle:o,onSelect:n,onNodeRef:l,searchQuery:i,showIndentGuides:T,renderIcon:h,renderLabel:I,renderSuffix:c,renderNode:x,draggable:M,dragState:v,canDragNode:O,onDragStart:K,onDragOver:Y,onDragLeave:X,onDrop:k,onDragEnd:A,showContextMenuButton:S,activeMenuNodeId:D,onContextMenu:ie,onMoreClick:me}=t,{isExpanded:F,isSelected:xe}=t,ue=(e.children?.length??0)>0,B=ue,Se=!ue,se=v.draggedId===e.id,V=v.dragOverId===e.id,Z=V?v.dragOverPosition:null,H=e.metadata,J=typeof H?.method=="string"?H.method:void 0,be=H?.deprecated===!0,ze=H?.required===!0,G=typeof H?.kind=="string"?H.kind:void 0,U={node:e,depth:a,isExpanded:F,isSelected:xe,isBranch:B,isLeaf:Se,isDragging:se,isDragOver:V,dragOverPosition:Z},fe=(0,p.useCallback)(()=>{B?o(e.id):n(e)},[B,e,n,o]),$=(0,p.useCallback)(w=>{w.target===w.currentTarget&&(w.key==="Enter"||w.key===" "?(w.preventDefault(),fe()):(w.key==="ArrowRight"&&B&&!F||w.key==="ArrowLeft"&&B&&F)&&(w.preventDefault(),w.stopPropagation(),o(e.id)))},[fe,B,F,e.id,o]),z=h?h(U):J?null:(0,s.jsx)("span",{className:g.nodeIcon,children:G==="section"&&H?.section==="components"?(0,s.jsx)(N.LuBraces,{size:14}):G==="section"&&H?.section==="webhooks"?(0,s.jsx)(N.LuZap,{size:14}):G==="schema"||G==="component"||G==="object"?(0,s.jsx)(N.LuBraces,{size:14}):G==="array"||G==="items"?(0,s.jsx)(N.LuList,{size:14}):B?F?(0,s.jsx)(N.LuFolderOpen,{size:14}):(0,s.jsx)(N.LuFolder,{size:14}):(0,s.jsx)("span",{className:g.primitiveDot})}),he=I?I(U):(0,s.jsx)("span",{className:`${g.nodeLabel} ${B?g.nodeLabelBranch:""} ${be?g.deprecatedLabel:""}`,children:(0,s.jsx)(Ot,{text:e.name,query:i})}),ke=c?c(U):null,ce=[g.nodeRow,B?g.branchControl:g.leafItem,xe?g.nodeRowSelected:"",se?g.nodeDragging:"",V&&Z==="before"?g.dropIndicatorBefore:"",V&&Z==="after"?g.dropIndicatorAfter:"",V&&Z==="child"?g.dropIndicatorChild:"",G?`pde-tree-kind-${G}`:""].filter(Boolean).join(" "),De=(0,p.useCallback)(w=>l(e.id,w),[e.id,l]),C=(0,s.jsxs)("div",{ref:De,className:ce,style:{paddingLeft:`${Math.min(a,20)*12+4}px`},"data-node-id":e.id,role:"treeitem","aria-expanded":B?F:void 0,"aria-label":J?`${Me(J)} ${e.name}`:e.name,"aria-selected":xe,"aria-level":a+1,"aria-posinset":t.positionInSet,"aria-setsize":t.setSize,"aria-grabbed":M&&O?se:void 0,tabIndex:t.isFocused?0:-1,onFocus:()=>t.onFocusNode(e.id),onClick:fe,onKeyDown:$,onContextMenu:S?w=>ie(e,w):void 0,onDragOver:M?w=>Y(e,w):void 0,onDragLeave:M?()=>X(e):void 0,onDrop:M?w=>k(e,w):void 0,children:[T&&a>1&&Array.from({length:Math.min(a-1,20)},(w,ee)=>(0,s.jsx)("span",{className:g.indentGuide,style:{left:`${(ee+1)*12+11}px`}},`guide-${ee}`)),M&&O?(0,s.jsx)("span",{className:g.dragHandle,style:{left:`${Math.min(a,20)*12+4}px`},draggable:!0,onDragStart:w=>K(e,w),onDragEnd:A,title:"Drag to reorder","aria-label":"Drag to reorder",children:(0,s.jsx)(Et,{})}):null,B?(0,s.jsx)(Ct,{expanded:F}):J&&(0,s.jsx)(Bt,{method:J}),z,he,ze&&(0,s.jsx)("span",{className:g.requiredDot,title:"Required"}),(0,s.jsx)("span",{className:g.nodeSuffix,children:ke}),S&&(0,s.jsx)("button",{type:"button",className:[g.moreButton,D===e.id?g.moreButtonActive:""].filter(Boolean).join(" "),onClick:w=>me(e,w),title:"More actions","aria-label":`More actions for ${e.name}`,"aria-haspopup":"menu","aria-expanded":D===e.id,tabIndex:-1,children:(0,s.jsx)(Lt,{})})]}),Ce=x?x(U,C):C;return(0,s.jsx)(s.Fragment,{children:Ce})}var Ht=(0,p.memo)(At,zt),dt=(0,p.forwardRef)(function(e,a){let{nodes:o,onSelect:n,onExpandedChange:l,defaultExpandedIds:i,defaultExpandDepth:T=1,searchable:h=!1,searchPlaceholder:I="Search...",showExpandAll:c=!1,showRefresh:x=!1,onRefresh:M,toolbar:v,searchRowExtra:O,renderNode:K,renderIcon:Y,renderLabel:X,renderSuffix:k,className:A,style:S,size:D="sm",variant:ie="default",showIndentGuides:me=!0,maxHeight:F,rootRef:xe,draggable:ue=!1,dragGroupKey:B,onReorder:Se,onMove:se,canDrag:V,canDrop:Z,contextMenuItems:H,onContextMenuOpen:J,onPatch:be,theme:ze,virtualized:G="auto"}=e,[U,fe]=(0,p.useState)(null),[$,z]=(0,p.useState)(_),[he,ke]=(0,p.useState)(null),ce=(0,p.useRef)(null),De=(0,p.useId)(),C=(0,p.useMemo)(()=>ot(o),[o]),[Ce,w]=(0,p.useState)({top:0,height:400}),[ee,ve]=(0,p.useState)(null),[Ae,Qe]=(0,p.useState)(null),y=Le(o,{defaultExpandedIds:i,defaultExpandDepth:T,onExpandedChange:l}),P=Pe(o),_e=P.isSearching?y.allBranchIds:P.expandedBeforeSearch??y.expandedIds,Te=(0,p.useMemo)(()=>new Set(_e),[_e]),R=(0,p.useMemo)(()=>{let r=[],d=new Set,u=P.filteredNodes.map((f,b,m)=>({node:f,depth:0,parentId:null,positionInSet:b+1,setSize:m.length})).reverse();for(;u.length;){let f=u.pop();if(!d.has(f.node.id)&&(d.add(f.node.id),r.push(f),Te.has(f.node.id))){let b=f.node.children??[];for(let m=b.length-1;m>=0;m--)u.push({node:b[m],depth:f.depth+1,parentId:f.node.id,positionInSet:m+1,setSize:b.length})}}return r},[P.filteredNodes,Te]),we=(0,p.useMemo)(()=>new Map(R.map((r,d)=>[r.node.id,d])),[R]),le=D==="xs"?24:D==="md"?32:28,te=G!==!1&&ie!=="doc"&&!K&&(G===!0||R.length>500),ge=te?Math.max(0,Math.min(Math.floor(Ce.top/le)-8,R.length-1)):0,ye=te?Math.min(R.length,ge+Math.ceil(Ce.height/le)+16):R.length,Ke=R.slice(ge,ye);(0,p.useEffect)(()=>{let r=ce.current;if(!r)return;let d=()=>w({top:r.scrollTop,height:r.clientHeight||400});d();let u=typeof ResizeObserver>"u"?void 0:new ResizeObserver(d);return u?.observe(r),()=>u?.disconnect()},[]),(0,p.useEffect)(()=>{if(!ee)return;let r=we.get(ee.id);if(r===void 0){ve(null);return}let d=ce.current;if(te&&d&&(r<ge||r>=ye)){let f=d.clientHeight||400,b=Math.min(r*le,Math.max(0,R.length*le-f));d.scrollTop=b,w(m=>({...m,top:d.scrollTop}));return}let u=y.nodeElementRefs.current.get(ee.id);ee.focus&&u?.focus({preventScroll:!0}),u?.scrollIntoView?.({block:"nearest"}),ve(null)},[ee,we,te,le,ge,ye,R.length,y.nodeElementRefs]);let He=Ae===null?void 0:we.get(Ae),it=He!==void 0&&He>=ge&&He<ye?Ae:Ke[0]?.node.id,Ge=(0,p.useRef)({query:"",time:0}),st=r=>{if(!(r.target instanceof HTMLElement)||r.target.getAttribute("role")!=="treeitem")return;let d=we.get(r.target.dataset.nodeId??"");if(d===void 0)return;let u=R[d],f=d;if(r.key==="ArrowDown")f=Math.min(d+1,R.length-1);else if(r.key==="ArrowUp")f=Math.max(0,d-1);else if(r.key==="Home")f=0;else if(r.key==="End")f=R.length-1;else if(r.key==="ArrowRight"&&u.node.children?.length&&Te.has(u.node.id))f=Math.min(d+1,R.length-1);else if(r.key==="ArrowLeft"&&(!u.node.children?.length||!Te.has(u.node.id)))f=we.get(u.parentId??"")??d;else if(r.key==="ContextMenu"||r.shiftKey&&r.key==="F10"){let m=r.target.getBoundingClientRect();r.preventDefault(),Ne(u.node,m.left+24,m.bottom);return}else if(r.key.length===1&&r.key!==" "&&!r.ctrlKey&&!r.metaKey&&!r.altKey){let m=Date.now(),q=m-Ge.current.time<600?Ge.current.query+r.key.toLowerCase():r.key.toLowerCase();Ge.current={query:q,time:m};for(let E=1;E<=R.length;E++){let W=(d+E)%R.length;if(R[W].node.name.toLowerCase().startsWith(q)){f=W;break}}}else return;r.preventDefault();let b=R[f].node.id;Qe(b),ve({id:b,focus:!0})};(0,p.useEffect)(()=>{ce.current&&(ce.current.scrollTop=0),w(r=>({...r,top:0}))},[P.deferredQuery]);let ct=(0,p.useCallback)(r=>{fe(r.id),n?.(r)},[n]),lt=(0,p.useCallback)(r=>{!r.trim()&&P.expandedBeforeSearch&&y.setExpandedIds(P.expandedBeforeSearch),P.handleQueryChange(r,y.expandedIds)},[y.expandedIds,P]),Ie=(0,p.useCallback)(r=>!ue||r.metadata?.kind==="section"?!1:V?V(r):!0,[V,ue]),Re=(0,p.useCallback)((r,d,u)=>{if(r.id===d.id||!Ie(r)||C.path(d.id)?.ancestorIds.includes(r.id))return!1;if(B){let b=E=>{let W=C.path(E)?.nodes??[];for(let re=W.length-1;re>=0;re--){let oe=W[re]?.metadata;if(oe&&typeof oe=="object"&&Object.prototype.hasOwnProperty.call(oe,B))return oe[B]}},m=b(r.id),q=b(d.id);if(m!==void 0&&q!==void 0&&m!==q)return!1}return!Z||Z(r,d,u)},[Ie,Z,B,C]),pt=(0,p.useCallback)((r,d)=>{if(!Ie(r)){d.preventDefault();return}d.dataTransfer.effectAllowed="move",d.dataTransfer.setData("text/plain",r.id),z({draggedId:r.id,dragOverId:null,dragOverPosition:null})},[Ie]),ut=(0,p.useCallback)((r,d)=>{if(!$.draggedId||$.draggedId===r.id)return;d.dataTransfer.dropEffect="none";let u=d.currentTarget.getBoundingClientRect(),f=(d.clientY-u.top)/u.height,b=(r.children?.length??0)>0,m;b?f<.25?m="before":f>.75?m="after":m="child":m=f<.5?"before":"after";let q=C.byId.get($.draggedId)?.node;if(!q||!Re(q,r,m)){z(E=>E.dragOverId===null?E:{...E,dragOverId:null,dragOverPosition:null});return}d.preventDefault(),d.dataTransfer.dropEffect="move",z(E=>E.dragOverId===r.id&&E.dragOverPosition===m?E:{...E,dragOverId:r.id,dragOverPosition:m})},[Re,$.draggedId,C]),ft=(0,p.useCallback)(r=>{z(d=>d.dragOverId!==r.id?d:{...d,dragOverId:null,dragOverPosition:null})},[]),ht=(0,p.useCallback)((r,d)=>{d.preventDefault();let u=$.draggedId,f=$.dragOverPosition;if(!u||!f||u===r.id||$.dragOverId!==r.id){z(_);return}let b=C.byId.get(u)?.node;if(!b||!Re(b,r,f)){z(_);return}if(f==="child"){let pe=C.path(u)?.target;if(!pe){z(_);return}let Je=We(o,u,r.id);Je&&se?.(Je,pe,r.id),z(_);return}let m=C.path(r.id);if(!m){z(_);return}let q=m.parent?.children??o,E=q.findIndex(j=>j.id===r.id);if(E===-1){z(_);return}let W=f==="before"?E:E+1,re=C.path(u),oe=m.parent?.id??null;if((re?.parent?.id??null)!==oe){let j=re?.target,pe=We(o,u,oe,W);pe&&j&&se?.(pe,j,oe),z(_);return}if(re&&re.parent===m.parent){let j=q.findIndex(pe=>pe.id===u);j!==-1&&j<W&&(W-=1)}let ne=et(o,u,W);if(ne&&ne.fromIndex!==ne.toIndex&&(Se?.(ne),be)){let j=Pt(ne.moved,ne.fromIndex,ne.toIndex,q);j.length>0&&be(j,{node:ne.moved,type:"reorder"})}z(_)},[$,o,C,Re,se,be,Se]),gt=(0,p.useCallback)(()=>{z(_)},[]),Ne=(0,p.useCallback)((r,d,u)=>{if(H){let f=H(r);if(f.length===0)return;let b=y.nodeElementRefs.current.get(r.id);b&&ke({x:d,y:u,node:r,items:f,anchor:b});return}J?.({node:r,x:d,y:u})},[H,J,y.nodeElementRefs]),mt=(0,p.useCallback)(()=>{ke(null)},[]),xt=(0,p.useCallback)((r,d)=>{d.preventDefault(),Ne(r,d.clientX,d.clientY)},[Ne]),bt=(0,p.useCallback)((r,d)=>{d.stopPropagation();let u=d.currentTarget.getBoundingClientRect();Ne(r,u.left,u.bottom+4)},[Ne]),Ve=(0,p.useCallback)(r=>{let d=C.path(r);if(!d)return;let u=d.ancestorIds;y.setExpandedIds([...new Set([...y.expandedIds,...u])]),P.clearSearch(),ve({id:r,focus:!1})},[y,C,P.clearSearch]);(0,p.useImperativeHandle)(a,()=>({expandAll:y.expandAll,collapseAll:y.collapseAll,expandToDepth:y.expandToDepth,getExpandedIds:()=>y.expandedIds,getSelectedNode:()=>U?C.path(U)?.target:void 0,scrollToNode:Ve,locateNode:r=>{let d=[...o],u=new Set;for(let f=0;f<d.length;f++){let b=d[f];if(!(!b||u.has(b))){if(u.add(b),r(b)){let m=C.path(b.id);return m&&y.setExpandedIds([...new Set([...y.expandedIds,...m.ancestorIds])]),P.clearSearch(),fe(b.id),ve({id:b.id,focus:!1}),b}if(b.children?.length)for(let m of b.children)d.push(m)}}}}),[y,Ve,U,o,C,P.clearSearch]);let vt=(0,p.useMemo)(()=>({...S,...F!==void 0?{maxHeight:F}:{}}),[S,F]),Tt=[g.root,ie!=="default"?`pde-tree-variant-${ie}`:"",A].filter(Boolean).join(" ");return(0,s.jsxs)("div",{ref:xe,className:Tt,style:vt,"data-size":D,"data-theme":ze,children:[v&&(0,s.jsx)("div",{className:g.toolbar,children:v}),(h||c||x||O)&&(0,s.jsxs)("div",{className:g.searchRow,children:[h&&(0,s.jsxs)("div",{className:g.searchInputWrap,children:[(0,s.jsx)("span",{className:g.searchIcon,children:(0,s.jsx)(Rt,{})}),(0,s.jsx)("input",{className:g.searchInput,type:"search","aria-controls":De,placeholder:I,value:P.query,onChange:r=>lt(r.target.value),"aria-label":"Search tree"})]}),O,c&&(0,s.jsx)("button",{type:"button",className:g.iconButton,onClick:y.isAllExpanded?y.collapseAll:y.expandAll,title:y.isAllExpanded?"Collapse all":"Expand all","aria-label":y.isAllExpanded?"Collapse all":"Expand all",children:y.isAllExpanded?(0,s.jsx)(Be.MdUnfoldLess,{size:16,"aria-hidden":"true"}):(0,s.jsx)(Be.MdOutlineUnfoldMore,{size:16,"aria-hidden":"true"})}),x&&(0,s.jsx)("button",{type:"button",className:g.iconButton,onClick:M,title:"Refresh","aria-label":"Refresh",children:(0,s.jsx)(N.LuRefreshCw,{size:14,"aria-hidden":"true"})})]}),(0,s.jsx)("div",{ref:ce,className:g.treeContainer,"data-virtualized":te||void 0,onScroll:r=>{te&&w({top:r.currentTarget.scrollTop,height:r.currentTarget.clientHeight||400})},id:De,role:"tree",onKeyDown:st,"aria-label":"Tree navigation",children:P.filteredNodes.length===0?(0,s.jsx)("div",{className:g.emptyState,children:P.isSearching?"No matching results":"No items"}):(0,s.jsxs)(s.Fragment,{children:[te&&(0,s.jsx)("div",{role:"presentation",style:{height:ge*le}}),Ke.map(({node:r,depth:d,positionInSet:u,setSize:f})=>(0,s.jsx)(Ht,{node:r,depth:d,positionInSet:u,setSize:f,isFocused:r.id===it,onFocusNode:Qe,isExpanded:Te.has(r.id),isSelected:U===r.id,onToggle:y.toggleNode,onSelect:ct,onNodeRef:y.setNodeElementRef,searchQuery:P.deferredQuery,showIndentGuides:me,renderIcon:Y,renderLabel:X,renderSuffix:k,renderNode:K,draggable:ue,dragState:$,canDragNode:Ie(r),onDragStart:pt,onDragOver:ut,onDragLeave:ft,onDrop:ht,onDragEnd:gt,showContextMenuButton:!!(H||J),activeMenuNodeId:he?.node.id??null,onContextMenu:xt,onMoreClick:bt},r.id)),te&&(0,s.jsx)("div",{role:"presentation",style:{height:(R.length-ye)*le}})]})}),he&&(0,s.jsx)(rt,{state:he,onClose:mt},he.node.id)]})});0&&(module.exports={METHOD_LABEL_MAP,Tree,getMethodLabel,useTreeExpansion,useTreeSearch});
|
|
1
|
+
"use strict";var qe=Object.defineProperty;var wt=Object.getOwnPropertyDescriptor;var yt=Object.getOwnPropertyNames;var It=Object.prototype.hasOwnProperty;var Nt=(t,e)=>{for(var a in e)qe(t,a,{get:e[a],enumerable:!0})},Mt=(t,e,a,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of yt(e))!It.call(t,n)&&n!==a&&qe(t,n,{get:()=>e[n],enumerable:!(o=wt(e,n))||o.enumerable});return t};var St=t=>Mt(qe({},"__esModule",{value:!0}),t);var Gt={};Nt(Gt,{METHOD_LABEL_MAP:()=>Oe,Tree:()=>dt,getMethodLabel:()=>Me,useTreeExpansion:()=>Le,useTreeSearch:()=>Pe});module.exports=St(Gt);var p=require("react");function*$e(t,e=1/0){let a=new Set,o=[];for(let n=t.length-1;n>=0;n--)o.push({node:t[n],depth:1});for(;o.length;){let n=o.pop();if(a.has(n.node)||n.depth>e)continue;a.add(n.node),yield n;let l=n.node.children??[];for(let i=l.length-1;i>=0;i--)o.push({node:l[i],parent:n,depth:n.depth+1})}}function Fe(t,e){for(let{node:a}of $e(t))if(a.id===e)return a}function kt(t,e,a=[]){for(let o of $e(t)){if(o.node.id!==e)continue;let n=[],l=o;for(;l;)n.push(l.node),l=l.parent;n.reverse();let i=[...a,...n];return{nodes:i,target:o.node,parent:i[i.length-2],ancestorIds:i.slice(0,-1).map(T=>T.id)}}return null}var $t=new Intl.Collator("en-US",{numeric:!0,sensitivity:"base"});function je(t,e,a=()=>!0){let o=new Set,n=new Map,l=[{source:t,output:[],index:0}];for(;l.length;){let i=l[l.length-1];if(i.index<i.source.length){let c=i.source[i.index++];if(o.has(c))continue;if(n.has(c)){let x=n.get(c);x&&i.output.push(x)}else if(c.children?.length&&a(c))o.add(c),l.push({source:c.children,output:[],index:0,owner:c});else{let x=e(c);n.set(c,x),x&&i.output.push(x)}continue}l.pop();let T=i.source.length===i.output.length&&i.source.every((c,x)=>c===i.output[x])?i.source:i.output;if(!i.owner)return T;let h=i.owner,I=e(T===h.children?h:{...h,children:T});o.delete(h),n.set(h,I),I&&l[l.length-1].output.push(I)}return t}function Ue(t,e){let a=e.query.trim().toLowerCase();return a?je(t,o=>o.name.toLowerCase().includes(a)||o.id.toLowerCase().includes(a)||(e.keepAncestors??!0)&&o.children?.length?o:null):t}function Ee(t,e={}){let a=[];for(let{node:o,depth:n}of $e(t,e.maxDepth??1/0))n<=(e.maxDepth??1/0)&&(!(e.onlyWithChildren??!0)||o.children?.length)&&a.push(o.id);return a}function Ye(t){return Ee(t)}function Xe(t,e,a){return je(t,o=>o.id===e?a(o):o,o=>o.id!==e)}function Dt(t,e){return je(t,a=>a.id===e?null:a,a=>a.id!==e)}function Ze(t,e){return Math.max(0,Math.min(Number.isNaN(t)?0:Math.trunc(t),e))}function et(t,e,a){let o=kt(t,e);if(!o)return null;let n=o.parent?.children??t,l=n.indexOf(o.target),i=Ze(a,n.length-1),T={nodes:t,moved:o.target,parentId:o.parent?.id??null,fromIndex:l,toIndex:i};if(i===l)return T;let h=[...n];return h.splice(l,1),h.splice(i,0,o.target),{...T,nodes:o.parent?Xe(t,o.parent.id,I=>({...I,children:h})):h}}function We(t,e,a,o){let n=Fe(t,e);if(!n||a!==null&&(!Fe(t,a)||Fe([n],a)))return null;let l=Dt(t,e),i=T=>{let h=[...T];return h.splice(Ze(o??h.length,h.length),0,n),h};return a===null?i(l):Xe(l,a,T=>({...T,children:i(T.children??[])}))}var de=require("react"),tt=require("react-dom"),ae=require("react/jsx-runtime");function rt({state:t,onClose:e}){let a=(0,de.useRef)(null),[o,n]=(0,de.useState)(null),[l,i]=(0,de.useState)({left:t.x,top:t.y}),[T,h]=(0,de.useState)({}),I=t.anchor.closest("dialog")??t.anchor.ownerDocument.body;return(0,de.useLayoutEffect)(()=>{let c=t.anchor.closest(".pde-tree-root")??t.anchor,x=getComputedStyle(c),M={};for(let k=0;k<x.length;k++){let A=x.item(k);(A.startsWith("--tree-")||A.startsWith("--color-")||A.startsWith("--radius-")||A.startsWith("--font-")||A.startsWith("--shadow-"))&&(M[A]=x.getPropertyValue(A))}h(M);let v=a.current;if(!v)return;let O=()=>{let k=v.getBoundingClientRect();i({left:Math.max(8,Math.min(t.x,document.documentElement.clientWidth-k.width-8)),top:Math.max(8,Math.min(t.y,document.documentElement.clientHeight-k.height-8))})};O();let K=typeof ResizeObserver>"u"?void 0:new ResizeObserver(O);K?.observe(v),v.querySelector("button:not(:disabled)")?.focus();let Y=k=>{k.target instanceof Node&&!v.contains(k.target)&&e()},X=k=>{k.target instanceof Node&&!v.contains(k.target)&&e()};return document.addEventListener("pointerdown",Y),document.addEventListener("scroll",X,!0),window.addEventListener("resize",e),()=>{K?.disconnect(),document.removeEventListener("pointerdown",Y),document.removeEventListener("scroll",X,!0),window.removeEventListener("resize",e),v.contains(document.activeElement)&&t.anchor.isConnected&&t.anchor.focus({preventScroll:!0})}},[t,e]),(0,tt.createPortal)((0,ae.jsx)("div",{ref:a,className:"pde-tree-contextMenu",style:{...T,...l},role:"menu","aria-label":`Actions for ${t.node.name}`,tabIndex:-1,onKeyDown:c=>{let x=a.current;if(!x)return;let M=Array.from(x.querySelectorAll("button:not(:disabled)")),v=M.indexOf(document.activeElement);if(c.key==="Escape"||c.key==="Tab"){c.key==="Escape"&&c.preventDefault(),c.stopPropagation(),e();return}let O;if(c.key==="ArrowDown")O=(v+1)%M.length;else if(c.key==="ArrowUp")O=(v-1+M.length)%M.length;else if(c.key==="Home")O=0;else if(c.key==="End")O=M.length-1;else return;c.preventDefault(),M[O]?.focus()},children:t.items.map((c,x)=>(0,ae.jsxs)("div",{role:"presentation",children:[c.separator&&(0,ae.jsx)("div",{className:"pde-tree-contextMenuSeparator",role:"separator"}),(0,ae.jsxs)("button",{type:"button",role:"menuitem",tabIndex:-1,disabled:c.disabled,className:`pde-tree-contextMenuItem${c.danger?" pde-tree-contextMenuItemDanger":""}${o===x?" pde-tree-contextMenuItemConfirming":""}`,onClick:()=>{if(c.confirm&&o!==x){n(x);return}e(),c.onClick(t.node)},children:[c.icon&&(0,ae.jsx)("span",{className:"pde-tree-contextMenuIcon","aria-hidden":"true",children:c.icon}),(0,ae.jsx)("span",{children:c.confirm&&o===x?c.confirmLabel??"Confirm?":c.label})]})]},`${c.label}-${x}`))}),I)}var L=require("react");function Le(t,e={}){let{defaultExpandedIds:a,defaultExpandDepth:o=1,onExpandedChange:n}=e,l=(0,L.useMemo)(()=>a!==void 0?[...a]:o<=1?[]:Ee(t,{maxDepth:o-1,onlyWithChildren:!0}),[]),[i,T]=(0,L.useState)(l),h=(0,L.useRef)(new Map),I=(0,L.useMemo)(()=>Ye(t),[t]),c=(0,L.useMemo)(()=>new Set(i),[i]),x=(0,L.useRef)(i);x.current=i;let M=(0,L.useMemo)(()=>I.length>0&&I.every(S=>c.has(S)),[I,c]),v=(0,L.useCallback)(S=>{x.current=S,T(S),n?.(S)},[n]),O=(0,L.useCallback)(S=>{let D=x.current,ie=D.includes(S)?D.filter(me=>me!==S):[...D,S];v(ie)},[v]),K=(0,L.useCallback)(()=>{v([...I])},[I,v]),Y=(0,L.useCallback)(()=>{v([])},[v]),X=(0,L.useCallback)(S=>{let D=Ee(t,{maxDepth:S,onlyWithChildren:!0});v(D)},[t,v]),k=(0,L.useCallback)((S,D)=>{D?h.current.set(S,D):h.current.delete(S)},[]),A=(0,L.useCallback)(S=>{let D=h.current.get(S);D&&D.scrollIntoView?.({behavior:"auto",block:"nearest"})},[]);return{expandedIds:i,setExpandedIds:v,toggleNode:O,expandAll:K,collapseAll:Y,expandToDepth:X,isAllExpanded:M,allBranchIds:I,setNodeElementRef:k,scrollToNode:A,nodeElementRefs:h}}var Q=require("react");function Pe(t){let[e,a]=(0,Q.useState)(""),o=(0,Q.useDeferredValue)(e),[n,l]=(0,Q.useState)(null),i=o.trim().length>0,T=(0,Q.useMemo)(()=>i?Ue(t,{query:o,keepAncestors:!0}):t,[t,o,i]),h=(0,Q.useCallback)((c,x)=>{let M=e.trim(),v=c.trim();!M&&v&&l(x),M&&!v&&l(null),a(c)},[e]),I=(0,Q.useCallback)(()=>{a(""),l(null)},[]);return{query:e,deferredQuery:o,isSearching:i,filteredNodes:T,expandedBeforeSearch:n,handleQueryChange:h,clearSearch:I}}function ot(t){let e=new Map,a=new Set,o=t.map(n=>({node:n,parentId:null})).reverse();for(;o.length;){let n=o.pop();if(a.has(n.node)||e.has(n.node.id))continue;a.add(n.node),e.set(n.node.id,n);let l=n.node.children??[];for(let i=l.length-1;i>=0;i--)o.push({node:l[i],parentId:n.node.id})}return{byId:e,path(n){let l=e.get(n);if(!l)return null;let i=[l.node],T=l.parentId;for(;T!==null;){let h=e.get(T);if(!h)break;i.push(h.node),T=h.parentId}return i.reverse(),{nodes:i,target:l.node,parent:i[i.length-2],ancestorIds:i.slice(0,-1).map(h=>h.id)}}}}var Oe={get:"GET",post:"POST",put:"PUT",delete:"DEL",patch:"PAT",head:"HEAD",options:"OPT",trace:"TRC",connect:"CON"};function Me(t){let e=t.toLowerCase().trim();return Object.prototype.hasOwnProperty.call(Oe,e)?Oe[e]:e.slice(0,4).toUpperCase()}var N=require("react-icons/lu"),Be=require("react-icons/md"),s=require("react/jsx-runtime"),g={branchControl:"pde-tree-branchControl",deprecatedLabel:"pde-tree-deprecatedLabel",dragHandle:"pde-tree-dragHandle",dropIndicatorAfter:"pde-tree-dropIndicatorAfter",dropIndicatorBefore:"pde-tree-dropIndicatorBefore",dropIndicatorChild:"pde-tree-dropIndicatorChild",emptyState:"pde-tree-emptyState",expandIcon:"pde-tree-expandIcon",expandIconPlaceholder:"pde-tree-expandIconPlaceholder",highlight:"pde-tree-highlight",iconButton:"pde-tree-iconButton",indentGuide:"pde-tree-indentGuide",leafItem:"pde-tree-leafItem",methodBadge:"pde-tree-methodBadge",methodDelete:"pde-tree-methodDelete",methodGet:"pde-tree-methodGet",methodOther:"pde-tree-methodOther",methodPatch:"pde-tree-methodPatch",methodPost:"pde-tree-methodPost",methodPut:"pde-tree-methodPut",moreButton:"pde-tree-moreButton",moreButtonActive:"pde-tree-moreButtonActive",nodeDragging:"pde-tree-nodeDragging",nodeIcon:"pde-tree-nodeIcon",primitiveDot:"pde-tree-primitiveDot",nodeLabel:"pde-tree-nodeLabel",nodeLabelBranch:"pde-tree-nodeLabelBranch",nodeRow:"pde-tree-nodeRow",nodeRowSelected:"pde-tree-nodeRowSelected",nodeSuffix:"pde-tree-nodeSuffix",requiredDot:"pde-tree-requiredDot",root:"pde-tree-root",searchIcon:"pde-tree-searchIcon",searchInput:"pde-tree-searchInput",searchInputWrap:"pde-tree-searchInputWrap",searchRow:"pde-tree-searchRow",toolbar:"pde-tree-toolbar",treeContainer:"pde-tree-treeContainer"};function Ct({expanded:t}){return(0,s.jsx)("span",{className:g.expandIcon,children:t?(0,s.jsx)(N.LuChevronDown,{size:14}):(0,s.jsx)(N.LuChevronRight,{size:14})})}function Rt(){return(0,s.jsx)(N.LuSearch,{size:14,"aria-hidden":"true"})}function Et(){return(0,s.jsx)(N.LuGripVertical,{size:14,"aria-hidden":"true"})}function Lt(){return(0,s.jsx)(N.LuEllipsisVertical,{size:14,"aria-hidden":"true"})}function nt(t){let a=t.metadata?.jsonPath;if(Array.isArray(a)&&a.length>0&&a.every(o=>typeof o=="string"||typeof o=="number"&&Number.isInteger(o)&&o>=0))return a}function Pt(t,e,a,o){let n=nt(t);if(!n||n.length===0)return[];let l=JSON.stringify(n.slice(0,-1));if(!o.every((T,h)=>{let I=nt(T);return I&&I[I.length-1]===h&&JSON.stringify(I.slice(0,-1))===l}))return[];let i=n.slice(0,-1);return[{op:"move",from:[...i,e],path:[...i,a]}]}function Ot({text:t,query:e}){if(!e)return(0,s.jsx)(s.Fragment,{children:t});let a=t.toLowerCase(),o=e.toLowerCase(),n=a.indexOf(o);return n===-1?(0,s.jsx)(s.Fragment,{children:t}):(0,s.jsxs)(s.Fragment,{children:[t.slice(0,n),(0,s.jsx)("span",{className:g.highlight,children:t.slice(n,n+e.length)}),t.slice(n+e.length)]})}var at={get:g.methodGet,post:g.methodPost,put:g.methodPut,patch:g.methodPatch,delete:g.methodDelete};function Bt({method:t}){let e=t.toLowerCase(),a=Object.prototype.hasOwnProperty.call(at,e)?at[e]:g.methodOther,o=Me(t);return(0,s.jsx)("span",{className:`${g.methodBadge} ${a}`,children:o})}var _={draggedId:null,dragOverId:null,dragOverPosition:null};function zt(t,e){if(t.isFocused!==e.isFocused||t.positionInSet!==e.positionInSet||t.setSize!==e.setSize||t.node!==e.node||t.depth!==e.depth||t.isExpanded!==e.isExpanded||t.isSelected!==e.isSelected||t.searchQuery!==e.searchQuery||t.showIndentGuides!==e.showIndentGuides||t.canDragNode!==e.canDragNode||t.draggable!==e.draggable||t.showContextMenuButton!==e.showContextMenuButton||t.activeMenuNodeId===t.node.id!=(e.activeMenuNodeId===e.node.id))return!1;let a=t.dragState.draggedId===t.node.id,o=e.dragState.draggedId===e.node.id;if(a!==o)return!1;let n=t.dragState.dragOverId===t.node.id,l=e.dragState.dragOverId===e.node.id;return!(n!==l||n&&l&&t.dragState.dragOverPosition!==e.dragState.dragOverPosition||t.renderIcon!==e.renderIcon||t.renderLabel!==e.renderLabel||t.renderSuffix!==e.renderSuffix||t.renderNode!==e.renderNode||t.onToggle!==e.onToggle||t.onSelect!==e.onSelect||t.onNodeRef!==e.onNodeRef||t.onDragStart!==e.onDragStart||t.onDragOver!==e.onDragOver||t.onDragLeave!==e.onDragLeave||t.onDrop!==e.onDrop||t.onDragEnd!==e.onDragEnd||t.onContextMenu!==e.onContextMenu||t.onMoreClick!==e.onMoreClick)}function At(t){let{node:e,depth:a,onToggle:o,onSelect:n,onNodeRef:l,searchQuery:i,showIndentGuides:T,renderIcon:h,renderLabel:I,renderSuffix:c,renderNode:x,draggable:M,dragState:v,canDragNode:O,onDragStart:K,onDragOver:Y,onDragLeave:X,onDrop:k,onDragEnd:A,showContextMenuButton:S,activeMenuNodeId:D,onContextMenu:ie,onMoreClick:me}=t,{isExpanded:F,isSelected:xe}=t,ue=(e.children?.length??0)>0,B=ue,Se=!ue,se=v.draggedId===e.id,V=v.dragOverId===e.id,Z=V?v.dragOverPosition:null,H=e.metadata,J=typeof H?.method=="string"?H.method:void 0,be=H?.deprecated===!0,ze=H?.required===!0,G=typeof H?.kind=="string"?H.kind:void 0,U={node:e,depth:a,isExpanded:F,isSelected:xe,isBranch:B,isLeaf:Se,isDragging:se,isDragOver:V,dragOverPosition:Z},fe=(0,p.useCallback)(()=>{B?o(e.id):n(e)},[B,e,n,o]),$=(0,p.useCallback)(w=>{w.target===w.currentTarget&&(w.key==="Enter"||w.key===" "?(w.preventDefault(),fe()):(w.key==="ArrowRight"&&B&&!F||w.key==="ArrowLeft"&&B&&F)&&(w.preventDefault(),w.stopPropagation(),o(e.id)))},[fe,B,F,e.id,o]),z=h?h(U):J?null:(0,s.jsx)("span",{className:g.nodeIcon,children:G==="section"&&H?.section==="components"?(0,s.jsx)(N.LuBraces,{size:14}):G==="section"&&H?.section==="webhooks"?(0,s.jsx)(N.LuZap,{size:14}):G==="schema"||G==="component"||G==="object"?(0,s.jsx)(N.LuBraces,{size:14}):G==="array"||G==="items"?(0,s.jsx)(N.LuList,{size:14}):B?F?(0,s.jsx)(N.LuFolderOpen,{size:14}):(0,s.jsx)(N.LuFolder,{size:14}):J&&(0,s.jsx)(Bt,{method:J})}),he=I?I(U):(0,s.jsx)("span",{className:`${g.nodeLabel} ${B?g.nodeLabelBranch:""} ${be?g.deprecatedLabel:""}`,children:(0,s.jsx)(Ot,{text:e.name,query:i})}),ke=c?c(U):null,ce=[g.nodeRow,B?g.branchControl:g.leafItem,xe?g.nodeRowSelected:"",se?g.nodeDragging:"",V&&Z==="before"?g.dropIndicatorBefore:"",V&&Z==="after"?g.dropIndicatorAfter:"",V&&Z==="child"?g.dropIndicatorChild:"",G?`pde-tree-kind-${G}`:""].filter(Boolean).join(" "),De=(0,p.useCallback)(w=>l(e.id,w),[e.id,l]),C=(0,s.jsxs)("div",{ref:De,className:ce,style:{paddingLeft:`${Math.min(a,20)*12+4}px`},"data-node-id":e.id,role:"treeitem","aria-expanded":B?F:void 0,"aria-label":J?`${Me(J)} ${e.name}`:e.name,"aria-selected":xe,"aria-level":a+1,"aria-posinset":t.positionInSet,"aria-setsize":t.setSize,"aria-grabbed":M&&O?se:void 0,tabIndex:t.isFocused?0:-1,onFocus:()=>t.onFocusNode(e.id),onClick:fe,onKeyDown:$,onContextMenu:S?w=>ie(e,w):void 0,onDragOver:M?w=>Y(e,w):void 0,onDragLeave:M?()=>X(e):void 0,onDrop:M?w=>k(e,w):void 0,children:[T&&a>1&&Array.from({length:Math.min(a-1,20)},(w,ee)=>(0,s.jsx)("span",{className:g.indentGuide,style:{left:`${(ee+1)*12+11}px`}},`guide-${ee}`)),M&&O?(0,s.jsx)("span",{className:g.dragHandle,style:{left:`${Math.min(a,20)*12+4}px`},draggable:!0,onDragStart:w=>K(e,w),onDragEnd:A,title:"Drag to reorder","aria-label":"Drag to reorder",children:(0,s.jsx)(Et,{})}):null,B?(0,s.jsx)(Ct,{expanded:F}):(0,s.jsx)("span",{className:g.expandIconPlaceholder}),z,he,ze&&(0,s.jsx)("span",{className:g.requiredDot,title:"Required"}),(0,s.jsx)("span",{className:g.nodeSuffix,children:ke}),S&&(0,s.jsx)("button",{type:"button",className:[g.moreButton,D===e.id?g.moreButtonActive:""].filter(Boolean).join(" "),onClick:w=>me(e,w),title:"More actions","aria-label":`More actions for ${e.name}`,"aria-haspopup":"menu","aria-expanded":D===e.id,tabIndex:-1,children:(0,s.jsx)(Lt,{})})]}),Ce=x?x(U,C):C;return(0,s.jsx)(s.Fragment,{children:Ce})}var Ht=(0,p.memo)(At,zt),dt=(0,p.forwardRef)(function(e,a){let{nodes:o,onSelect:n,onExpandedChange:l,defaultExpandedIds:i,defaultExpandDepth:T=1,searchable:h=!1,searchPlaceholder:I="Search...",showExpandAll:c=!1,showRefresh:x=!1,onRefresh:M,toolbar:v,searchRowExtra:O,renderNode:K,renderIcon:Y,renderLabel:X,renderSuffix:k,className:A,style:S,size:D="sm",variant:ie="default",showIndentGuides:me=!0,maxHeight:F,rootRef:xe,draggable:ue=!1,dragGroupKey:B,onReorder:Se,onMove:se,canDrag:V,canDrop:Z,contextMenuItems:H,onContextMenuOpen:J,onPatch:be,theme:ze,virtualized:G="auto"}=e,[U,fe]=(0,p.useState)(null),[$,z]=(0,p.useState)(_),[he,ke]=(0,p.useState)(null),ce=(0,p.useRef)(null),De=(0,p.useId)(),C=(0,p.useMemo)(()=>ot(o),[o]),[Ce,w]=(0,p.useState)({top:0,height:400}),[ee,ve]=(0,p.useState)(null),[Ae,Qe]=(0,p.useState)(null),y=Le(o,{defaultExpandedIds:i,defaultExpandDepth:T,onExpandedChange:l}),P=Pe(o),_e=P.isSearching?y.allBranchIds:P.expandedBeforeSearch??y.expandedIds,Te=(0,p.useMemo)(()=>new Set(_e),[_e]),R=(0,p.useMemo)(()=>{let r=[],d=new Set,u=P.filteredNodes.map((f,b,m)=>({node:f,depth:0,parentId:null,positionInSet:b+1,setSize:m.length})).reverse();for(;u.length;){let f=u.pop();if(!d.has(f.node.id)&&(d.add(f.node.id),r.push(f),Te.has(f.node.id))){let b=f.node.children??[];for(let m=b.length-1;m>=0;m--)u.push({node:b[m],depth:f.depth+1,parentId:f.node.id,positionInSet:m+1,setSize:b.length})}}return r},[P.filteredNodes,Te]),we=(0,p.useMemo)(()=>new Map(R.map((r,d)=>[r.node.id,d])),[R]),le=D==="xs"?24:D==="md"?32:28,te=G!==!1&&ie!=="doc"&&!K&&(G===!0||R.length>500),ge=te?Math.max(0,Math.min(Math.floor(Ce.top/le)-8,R.length-1)):0,ye=te?Math.min(R.length,ge+Math.ceil(Ce.height/le)+16):R.length,Ke=R.slice(ge,ye);(0,p.useEffect)(()=>{let r=ce.current;if(!r)return;let d=()=>w({top:r.scrollTop,height:r.clientHeight||400});d();let u=typeof ResizeObserver>"u"?void 0:new ResizeObserver(d);return u?.observe(r),()=>u?.disconnect()},[]),(0,p.useEffect)(()=>{if(!ee)return;let r=we.get(ee.id);if(r===void 0){ve(null);return}let d=ce.current;if(te&&d&&(r<ge||r>=ye)){let f=d.clientHeight||400,b=Math.min(r*le,Math.max(0,R.length*le-f));d.scrollTop=b,w(m=>({...m,top:d.scrollTop}));return}let u=y.nodeElementRefs.current.get(ee.id);ee.focus&&u?.focus({preventScroll:!0}),u?.scrollIntoView?.({block:"nearest"}),ve(null)},[ee,we,te,le,ge,ye,R.length,y.nodeElementRefs]);let He=Ae===null?void 0:we.get(Ae),it=He!==void 0&&He>=ge&&He<ye?Ae:Ke[0]?.node.id,Ge=(0,p.useRef)({query:"",time:0}),st=r=>{if(!(r.target instanceof HTMLElement)||r.target.getAttribute("role")!=="treeitem")return;let d=we.get(r.target.dataset.nodeId??"");if(d===void 0)return;let u=R[d],f=d;if(r.key==="ArrowDown")f=Math.min(d+1,R.length-1);else if(r.key==="ArrowUp")f=Math.max(0,d-1);else if(r.key==="Home")f=0;else if(r.key==="End")f=R.length-1;else if(r.key==="ArrowRight"&&u.node.children?.length&&Te.has(u.node.id))f=Math.min(d+1,R.length-1);else if(r.key==="ArrowLeft"&&(!u.node.children?.length||!Te.has(u.node.id)))f=we.get(u.parentId??"")??d;else if(r.key==="ContextMenu"||r.shiftKey&&r.key==="F10"){let m=r.target.getBoundingClientRect();r.preventDefault(),Ne(u.node,m.left+24,m.bottom);return}else if(r.key.length===1&&r.key!==" "&&!r.ctrlKey&&!r.metaKey&&!r.altKey){let m=Date.now(),q=m-Ge.current.time<600?Ge.current.query+r.key.toLowerCase():r.key.toLowerCase();Ge.current={query:q,time:m};for(let E=1;E<=R.length;E++){let W=(d+E)%R.length;if(R[W].node.name.toLowerCase().startsWith(q)){f=W;break}}}else return;r.preventDefault();let b=R[f].node.id;Qe(b),ve({id:b,focus:!0})};(0,p.useEffect)(()=>{ce.current&&(ce.current.scrollTop=0),w(r=>({...r,top:0}))},[P.deferredQuery]);let ct=(0,p.useCallback)(r=>{fe(r.id),n?.(r)},[n]),lt=(0,p.useCallback)(r=>{!r.trim()&&P.expandedBeforeSearch&&y.setExpandedIds(P.expandedBeforeSearch),P.handleQueryChange(r,y.expandedIds)},[y.expandedIds,P]),Ie=(0,p.useCallback)(r=>!ue||r.metadata?.kind==="section"?!1:V?V(r):!0,[V,ue]),Re=(0,p.useCallback)((r,d,u)=>{if(r.id===d.id||!Ie(r)||C.path(d.id)?.ancestorIds.includes(r.id))return!1;if(B){let b=E=>{let W=C.path(E)?.nodes??[];for(let re=W.length-1;re>=0;re--){let oe=W[re]?.metadata;if(oe&&typeof oe=="object"&&Object.prototype.hasOwnProperty.call(oe,B))return oe[B]}},m=b(r.id),q=b(d.id);if(m!==void 0&&q!==void 0&&m!==q)return!1}return!Z||Z(r,d,u)},[Ie,Z,B,C]),pt=(0,p.useCallback)((r,d)=>{if(!Ie(r)){d.preventDefault();return}d.dataTransfer.effectAllowed="move",d.dataTransfer.setData("text/plain",r.id),z({draggedId:r.id,dragOverId:null,dragOverPosition:null})},[Ie]),ut=(0,p.useCallback)((r,d)=>{if(!$.draggedId||$.draggedId===r.id)return;d.dataTransfer.dropEffect="none";let u=d.currentTarget.getBoundingClientRect(),f=(d.clientY-u.top)/u.height,b=(r.children?.length??0)>0,m;b?f<.25?m="before":f>.75?m="after":m="child":m=f<.5?"before":"after";let q=C.byId.get($.draggedId)?.node;if(!q||!Re(q,r,m)){z(E=>E.dragOverId===null?E:{...E,dragOverId:null,dragOverPosition:null});return}d.preventDefault(),d.dataTransfer.dropEffect="move",z(E=>E.dragOverId===r.id&&E.dragOverPosition===m?E:{...E,dragOverId:r.id,dragOverPosition:m})},[Re,$.draggedId,C]),ft=(0,p.useCallback)(r=>{z(d=>d.dragOverId!==r.id?d:{...d,dragOverId:null,dragOverPosition:null})},[]),ht=(0,p.useCallback)((r,d)=>{d.preventDefault();let u=$.draggedId,f=$.dragOverPosition;if(!u||!f||u===r.id||$.dragOverId!==r.id){z(_);return}let b=C.byId.get(u)?.node;if(!b||!Re(b,r,f)){z(_);return}if(f==="child"){let pe=C.path(u)?.target;if(!pe){z(_);return}let Je=We(o,u,r.id);Je&&se?.(Je,pe,r.id),z(_);return}let m=C.path(r.id);if(!m){z(_);return}let q=m.parent?.children??o,E=q.findIndex(j=>j.id===r.id);if(E===-1){z(_);return}let W=f==="before"?E:E+1,re=C.path(u),oe=m.parent?.id??null;if((re?.parent?.id??null)!==oe){let j=re?.target,pe=We(o,u,oe,W);pe&&j&&se?.(pe,j,oe),z(_);return}if(re&&re.parent===m.parent){let j=q.findIndex(pe=>pe.id===u);j!==-1&&j<W&&(W-=1)}let ne=et(o,u,W);if(ne&&ne.fromIndex!==ne.toIndex&&(Se?.(ne),be)){let j=Pt(ne.moved,ne.fromIndex,ne.toIndex,q);j.length>0&&be(j,{node:ne.moved,type:"reorder"})}z(_)},[$,o,C,Re,se,be,Se]),gt=(0,p.useCallback)(()=>{z(_)},[]),Ne=(0,p.useCallback)((r,d,u)=>{if(H){let f=H(r);if(f.length===0)return;let b=y.nodeElementRefs.current.get(r.id);b&&ke({x:d,y:u,node:r,items:f,anchor:b});return}J?.({node:r,x:d,y:u})},[H,J,y.nodeElementRefs]),mt=(0,p.useCallback)(()=>{ke(null)},[]),xt=(0,p.useCallback)((r,d)=>{d.preventDefault(),Ne(r,d.clientX,d.clientY)},[Ne]),bt=(0,p.useCallback)((r,d)=>{d.stopPropagation();let u=d.currentTarget.getBoundingClientRect();Ne(r,u.left,u.bottom+4)},[Ne]),Ve=(0,p.useCallback)(r=>{let d=C.path(r);if(!d)return;let u=d.ancestorIds;y.setExpandedIds([...new Set([...y.expandedIds,...u])]),P.clearSearch(),ve({id:r,focus:!1})},[y,C,P.clearSearch]);(0,p.useImperativeHandle)(a,()=>({expandAll:y.expandAll,collapseAll:y.collapseAll,expandToDepth:y.expandToDepth,getExpandedIds:()=>y.expandedIds,getSelectedNode:()=>U?C.path(U)?.target:void 0,scrollToNode:Ve,locateNode:r=>{let d=[...o],u=new Set;for(let f=0;f<d.length;f++){let b=d[f];if(!(!b||u.has(b))){if(u.add(b),r(b)){let m=C.path(b.id);return m&&y.setExpandedIds([...new Set([...y.expandedIds,...m.ancestorIds])]),P.clearSearch(),fe(b.id),ve({id:b.id,focus:!1}),b}if(b.children?.length)for(let m of b.children)d.push(m)}}}}),[y,Ve,U,o,C,P.clearSearch]);let vt=(0,p.useMemo)(()=>({...S,...F!==void 0?{maxHeight:F}:{}}),[S,F]),Tt=[g.root,ie!=="default"?`pde-tree-variant-${ie}`:"",A].filter(Boolean).join(" ");return(0,s.jsxs)("div",{ref:xe,className:Tt,style:vt,"data-size":D,"data-theme":ze,children:[v&&(0,s.jsx)("div",{className:g.toolbar,children:v}),(h||c||x||O)&&(0,s.jsxs)("div",{className:g.searchRow,children:[h&&(0,s.jsxs)("div",{className:g.searchInputWrap,children:[(0,s.jsx)("span",{className:g.searchIcon,children:(0,s.jsx)(Rt,{})}),(0,s.jsx)("input",{className:g.searchInput,type:"search","aria-controls":De,placeholder:I,value:P.query,onChange:r=>lt(r.target.value),"aria-label":"Search tree"})]}),O,c&&(0,s.jsx)("button",{type:"button",className:g.iconButton,onClick:y.isAllExpanded?y.collapseAll:y.expandAll,title:y.isAllExpanded?"Collapse all":"Expand all","aria-label":y.isAllExpanded?"Collapse all":"Expand all",children:y.isAllExpanded?(0,s.jsx)(Be.MdUnfoldLess,{size:16,"aria-hidden":"true"}):(0,s.jsx)(Be.MdOutlineUnfoldMore,{size:16,"aria-hidden":"true"})}),x&&(0,s.jsx)("button",{type:"button",className:g.iconButton,onClick:M,title:"Refresh","aria-label":"Refresh",children:(0,s.jsx)(N.LuRefreshCw,{size:14,"aria-hidden":"true"})})]}),(0,s.jsx)("div",{ref:ce,className:g.treeContainer,"data-virtualized":te||void 0,onScroll:r=>{te&&w({top:r.currentTarget.scrollTop,height:r.currentTarget.clientHeight||400})},id:De,role:"tree",onKeyDown:st,"aria-label":"Tree navigation",children:P.filteredNodes.length===0?(0,s.jsx)("div",{className:g.emptyState,children:P.isSearching?"No matching results":"No items"}):(0,s.jsxs)(s.Fragment,{children:[te&&(0,s.jsx)("div",{role:"presentation",style:{height:ge*le}}),Ke.map(({node:r,depth:d,positionInSet:u,setSize:f})=>(0,s.jsx)(Ht,{node:r,depth:d,positionInSet:u,setSize:f,isFocused:r.id===it,onFocusNode:Qe,isExpanded:Te.has(r.id),isSelected:U===r.id,onToggle:y.toggleNode,onSelect:ct,onNodeRef:y.setNodeElementRef,searchQuery:P.deferredQuery,showIndentGuides:me,renderIcon:Y,renderLabel:X,renderSuffix:k,renderNode:K,draggable:ue,dragState:$,canDragNode:Ie(r),onDragStart:pt,onDragOver:ut,onDragLeave:ft,onDrop:ht,onDragEnd:gt,showContextMenuButton:!!(H||J),activeMenuNodeId:he?.node.id??null,onContextMenu:xt,onMoreClick:bt},r.id)),te&&(0,s.jsx)("div",{role:"presentation",style:{height:(R.length-ye)*le}})]})}),he&&(0,s.jsx)(rt,{state:he,onClose:mt},he.node.id)]})});0&&(module.exports={METHOD_LABEL_MAP,Tree,getMethodLabel,useTreeExpansion,useTreeSearch});
|
package/dist/react/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{i as Je,j as Ae,k as Ue,p as Ye,q as He}from"../chunk-AHHDXXHL.js";import{forwardRef as Dt,memo as Ct,useCallback as R,useEffect as Fe,useImperativeHandle as Rt,useId as Et,useMemo as Me,useRef as nt,useState as ue}from"react";import{useLayoutEffect as It,useRef as Mt,useState as Ge}from"react";import{createPortal as Tt}from"react-dom";import{jsx as Re,jsxs as Xe}from"react/jsx-runtime";function Ze({state:r,onClose:t}){let u=Mt(null),[n,s]=Ge(null),[b,g]=Ge({left:r.x,top:r.y}),[P,w]=Ge({}),M=r.anchor.closest("dialog")??r.anchor.ownerDocument.body;return It(()=>{let l=r.anchor.closest(".pde-tree-root")??r.anchor,v=getComputedStyle(l),y={};for(let T=0;T<v.length;T++){let z=v.item(T);(z.startsWith("--tree-")||z.startsWith("--color-")||z.startsWith("--radius-")||z.startsWith("--font-")||z.startsWith("--shadow-"))&&(y[z]=v.getPropertyValue(z))}w(y);let h=u.current;if(!h)return;let E=()=>{let T=h.getBoundingClientRect();g({left:Math.max(8,Math.min(r.x,document.documentElement.clientWidth-T.width-8)),top:Math.max(8,Math.min(r.y,document.documentElement.clientHeight-T.height-8))})};E();let Q=typeof ResizeObserver>"u"?void 0:new ResizeObserver(E);Q?.observe(h),h.querySelector("button:not(:disabled)")?.focus();let _=T=>{T.target instanceof Node&&!h.contains(T.target)&&t()},J=T=>{T.target instanceof Node&&!h.contains(T.target)&&t()};return document.addEventListener("pointerdown",_),document.addEventListener("scroll",J,!0),window.addEventListener("resize",t),()=>{Q?.disconnect(),document.removeEventListener("pointerdown",_),document.removeEventListener("scroll",J,!0),window.removeEventListener("resize",t),h.contains(document.activeElement)&&r.anchor.isConnected&&r.anchor.focus({preventScroll:!0})}},[r,t]),Tt(Re("div",{ref:u,className:"pde-tree-contextMenu",style:{...P,...b},role:"menu","aria-label":`Actions for ${r.node.name}`,tabIndex:-1,onKeyDown:l=>{let v=u.current;if(!v)return;let y=Array.from(v.querySelectorAll("button:not(:disabled)")),h=y.indexOf(document.activeElement);if(l.key==="Escape"||l.key==="Tab"){l.key==="Escape"&&l.preventDefault(),l.stopPropagation(),t();return}let E;if(l.key==="ArrowDown")E=(h+1)%y.length;else if(l.key==="ArrowUp")E=(h-1+y.length)%y.length;else if(l.key==="Home")E=0;else if(l.key==="End")E=y.length-1;else return;l.preventDefault(),y[E]?.focus()},children:r.items.map((l,v)=>Xe("div",{role:"presentation",children:[l.separator&&Re("div",{className:"pde-tree-contextMenuSeparator",role:"separator"}),Xe("button",{type:"button",role:"menuitem",tabIndex:-1,disabled:l.disabled,className:`pde-tree-contextMenuItem${l.danger?" pde-tree-contextMenuItemDanger":""}${n===v?" pde-tree-contextMenuItemConfirming":""}`,onClick:()=>{if(l.confirm&&n!==v){s(v);return}t(),l.onClick(r.node)},children:[l.icon&&Re("span",{className:"pde-tree-contextMenuIcon","aria-hidden":"true",children:l.icon}),Re("span",{children:l.confirm&&n===v?l.confirmLabel??"Confirm?":l.label})]})]},`${l.label}-${v}`))}),M)}import{useCallback as ie,useMemo as Ee,useRef as et,useState as St}from"react";function qe(r,t={}){let{defaultExpandedIds:u,defaultExpandDepth:n=1,onExpandedChange:s}=t,b=Ee(()=>u!==void 0?[...u]:n<=1?[]:Ae(r,{maxDepth:n-1,onlyWithChildren:!0}),[]),[g,P]=St(b),w=et(new Map),M=Ee(()=>Ue(r),[r]),l=Ee(()=>new Set(g),[g]),v=et(g);v.current=g;let y=Ee(()=>M.length>0&&M.every(I=>l.has(I)),[M,l]),h=ie(I=>{v.current=I,P(I),s?.(I)},[s]),E=ie(I=>{let S=v.current,re=S.includes(I)?S.filter(he=>he!==I):[...S,I];h(re)},[h]),Q=ie(()=>{h([...M])},[M,h]),_=ie(()=>{h([])},[h]),J=ie(I=>{let S=Ae(r,{maxDepth:I,onlyWithChildren:!0});h(S)},[r,h]),T=ie((I,S)=>{S?w.current.set(I,S):w.current.delete(I)},[]),z=ie(I=>{let S=w.current.get(I);S&&S.scrollIntoView?.({behavior:"auto",block:"nearest"})},[]);return{expandedIds:g,setExpandedIds:h,toggleNode:E,expandAll:Q,collapseAll:_,expandToDepth:J,isAllExpanded:y,allBranchIds:M,setNodeElementRef:T,scrollToNode:z,nodeElementRefs:w}}import{useCallback as tt,useDeferredValue as kt,useMemo as Nt,useState as rt}from"react";function $e(r){let[t,u]=rt(""),n=kt(t),[s,b]=rt(null),g=n.trim().length>0,P=Nt(()=>g?Je(r,{query:n,keepAncestors:!0}):r,[r,n,g]),w=tt((l,v)=>{let y=t.trim(),h=l.trim();!y&&h&&b(v),y&&!h&&b(null),u(l)},[t]),M=tt(()=>{u(""),b(null)},[]);return{query:t,deferredQuery:n,isSearching:g,filteredNodes:P,expandedBeforeSearch:s,handleQueryChange:w,clearSearch:M}}function ot(r){let t=new Map,u=new Set,n=r.map(s=>({node:s,parentId:null})).reverse();for(;n.length;){let s=n.pop();if(u.has(s.node)||t.has(s.node.id))continue;u.add(s.node),t.set(s.node.id,s);let b=s.node.children??[];for(let g=b.length-1;g>=0;g--)n.push({node:b[g],parentId:s.node.id})}return{byId:t,path(s){let b=t.get(s);if(!b)return null;let g=[b.node],P=b.parentId;for(;P!==null;){let w=t.get(P);if(!w)break;g.push(w.node),P=w.parentId}return g.reverse(),{nodes:g,target:b.node,parent:g[g.length-2],ancestorIds:g.slice(0,-1).map(w=>w.id)}}}}var je={get:"GET",post:"POST",put:"PUT",delete:"DEL",patch:"PAT",head:"HEAD",options:"OPT",trace:"TRC",connect:"CON"};function Le(r){let t=r.toLowerCase().trim();return Object.prototype.hasOwnProperty.call(je,t)?je[t]:t.slice(0,4).toUpperCase()}import{LuBraces as at,LuChevronDown as Lt,LuChevronRight as Pt,LuEllipsisVertical as Bt,LuFolder as zt,LuFolderOpen as Ot,LuGripVertical as At,LuList as Ht,LuRefreshCw as Gt,LuSearch as qt,LuZap as $t}from"react-icons/lu";import{MdOutlineUnfoldMore as jt,MdUnfoldLess as Ft}from"react-icons/md";import{Fragment as Te,jsx as a,jsxs as fe}from"react/jsx-runtime";var c={branchControl:"pde-tree-branchControl",deprecatedLabel:"pde-tree-deprecatedLabel",dragHandle:"pde-tree-dragHandle",dropIndicatorAfter:"pde-tree-dropIndicatorAfter",dropIndicatorBefore:"pde-tree-dropIndicatorBefore",dropIndicatorChild:"pde-tree-dropIndicatorChild",emptyState:"pde-tree-emptyState",expandIcon:"pde-tree-expandIcon",expandIconPlaceholder:"pde-tree-expandIconPlaceholder",highlight:"pde-tree-highlight",iconButton:"pde-tree-iconButton",indentGuide:"pde-tree-indentGuide",leafItem:"pde-tree-leafItem",methodBadge:"pde-tree-methodBadge",methodDelete:"pde-tree-methodDelete",methodGet:"pde-tree-methodGet",methodOther:"pde-tree-methodOther",methodPatch:"pde-tree-methodPatch",methodPost:"pde-tree-methodPost",methodPut:"pde-tree-methodPut",moreButton:"pde-tree-moreButton",moreButtonActive:"pde-tree-moreButtonActive",nodeDragging:"pde-tree-nodeDragging",nodeIcon:"pde-tree-nodeIcon",primitiveDot:"pde-tree-primitiveDot",nodeLabel:"pde-tree-nodeLabel",nodeLabelBranch:"pde-tree-nodeLabelBranch",nodeRow:"pde-tree-nodeRow",nodeRowSelected:"pde-tree-nodeRowSelected",nodeSuffix:"pde-tree-nodeSuffix",requiredDot:"pde-tree-requiredDot",root:"pde-tree-root",searchIcon:"pde-tree-searchIcon",searchInput:"pde-tree-searchInput",searchInputWrap:"pde-tree-searchInputWrap",searchRow:"pde-tree-searchRow",toolbar:"pde-tree-toolbar",treeContainer:"pde-tree-treeContainer"};function Qt({expanded:r}){return a("span",{className:c.expandIcon,children:r?a(Lt,{size:14}):a(Pt,{size:14})})}function Wt(){return a(qt,{size:14,"aria-hidden":"true"})}function Kt(){return a(At,{size:14,"aria-hidden":"true"})}function Vt(){return a(Bt,{size:14,"aria-hidden":"true"})}function dt(r){let u=r.metadata?.jsonPath;if(Array.isArray(u)&&u.length>0&&u.every(n=>typeof n=="string"||typeof n=="number"&&Number.isInteger(n)&&n>=0))return u}function _t(r,t,u,n){let s=dt(r);if(!s||s.length===0)return[];let b=JSON.stringify(s.slice(0,-1));if(!n.every((P,w)=>{let M=dt(P);return M&&M[M.length-1]===w&&JSON.stringify(M.slice(0,-1))===b}))return[];let g=s.slice(0,-1);return[{op:"move",from:[...g,t],path:[...g,u]}]}function Jt({text:r,query:t}){if(!t)return a(Te,{children:r});let u=r.toLowerCase(),n=t.toLowerCase(),s=u.indexOf(n);return s===-1?a(Te,{children:r}):fe(Te,{children:[r.slice(0,s),a("span",{className:c.highlight,children:r.slice(s,s+t.length)}),r.slice(s+t.length)]})}var it={get:c.methodGet,post:c.methodPost,put:c.methodPut,patch:c.methodPatch,delete:c.methodDelete};function Ut({method:r}){let t=r.toLowerCase(),u=Object.prototype.hasOwnProperty.call(it,t)?it[t]:c.methodOther,n=Le(r);return a("span",{className:`${c.methodBadge} ${u}`,children:n})}var F={draggedId:null,dragOverId:null,dragOverPosition:null};function Yt(r,t){if(r.isFocused!==t.isFocused||r.positionInSet!==t.positionInSet||r.setSize!==t.setSize||r.node!==t.node||r.depth!==t.depth||r.isExpanded!==t.isExpanded||r.isSelected!==t.isSelected||r.searchQuery!==t.searchQuery||r.showIndentGuides!==t.showIndentGuides||r.canDragNode!==t.canDragNode||r.draggable!==t.draggable||r.showContextMenuButton!==t.showContextMenuButton||r.activeMenuNodeId===r.node.id!=(t.activeMenuNodeId===t.node.id))return!1;let u=r.dragState.draggedId===r.node.id,n=t.dragState.draggedId===t.node.id;if(u!==n)return!1;let s=r.dragState.dragOverId===r.node.id,b=t.dragState.dragOverId===t.node.id;return!(s!==b||s&&b&&r.dragState.dragOverPosition!==t.dragState.dragOverPosition||r.renderIcon!==t.renderIcon||r.renderLabel!==t.renderLabel||r.renderSuffix!==t.renderSuffix||r.renderNode!==t.renderNode||r.onToggle!==t.onToggle||r.onSelect!==t.onSelect||r.onNodeRef!==t.onNodeRef||r.onDragStart!==t.onDragStart||r.onDragOver!==t.onDragOver||r.onDragLeave!==t.onDragLeave||r.onDrop!==t.onDrop||r.onDragEnd!==t.onDragEnd||r.onContextMenu!==t.onContextMenu||r.onMoreClick!==t.onMoreClick)}function Xt(r){let{node:t,depth:u,onToggle:n,onSelect:s,onNodeRef:b,searchQuery:g,showIndentGuides:P,renderIcon:w,renderLabel:M,renderSuffix:l,renderNode:v,draggable:y,dragState:h,canDragNode:E,onDragStart:Q,onDragOver:_,onDragLeave:J,onDrop:T,onDragEnd:z,showContextMenuButton:I,activeMenuNodeId:S,onContextMenu:re,onMoreClick:he}=r,{isExpanded:G,isSelected:ge}=r,se=(t.children?.length??0)>0,L=se,Se=!se,oe=h.draggedId===t.id,W=h.dragOverId===t.id,U=W?h.dragOverPosition:null,O=t.metadata,K=typeof O?.method=="string"?O.method:void 0,me=O?.deprecated===!0,Pe=O?.required===!0,A=typeof O?.kind=="string"?O.kind:void 0,V={node:t,depth:u,isExpanded:G,isSelected:ge,isBranch:L,isLeaf:Se,isDragging:oe,isDragOver:W,dragOverPosition:U},ce=R(()=>{L?n(t.id):s(t)},[L,t,s,n]),q=R(m=>{m.target===m.currentTarget&&(m.key==="Enter"||m.key===" "?(m.preventDefault(),ce()):(m.key==="ArrowRight"&&L&&!G||m.key==="ArrowLeft"&&L&&G)&&(m.preventDefault(),m.stopPropagation(),n(t.id)))},[ce,L,G,t.id,n]),B=w?w(V):K?null:a("span",{className:c.nodeIcon,children:A==="section"&&O?.section==="components"?a(at,{size:14}):A==="section"&&O?.section==="webhooks"?a($t,{size:14}):A==="schema"||A==="component"||A==="object"?a(at,{size:14}):A==="array"||A==="items"?a(Ht,{size:14}):L?G?a(Ot,{size:14}):a(zt,{size:14}):a("span",{className:c.primitiveDot})}),le=M?M(V):a("span",{className:`${c.nodeLabel} ${L?c.nodeLabelBranch:""} ${me?c.deprecatedLabel:""}`,children:a(Jt,{text:t.name,query:g})}),ke=l?l(V):null,ne=[c.nodeRow,L?c.branchControl:c.leafItem,ge?c.nodeRowSelected:"",oe?c.nodeDragging:"",W&&U==="before"?c.dropIndicatorBefore:"",W&&U==="after"?c.dropIndicatorAfter:"",W&&U==="child"?c.dropIndicatorChild:"",A?`pde-tree-kind-${A}`:""].filter(Boolean).join(" "),Ne=R(m=>b(t.id,m),[t.id,b]),k=fe("div",{ref:Ne,className:ne,style:{paddingLeft:`${Math.min(u,20)*12+4}px`},"data-node-id":t.id,role:"treeitem","aria-expanded":L?G:void 0,"aria-label":K?`${Le(K)} ${t.name}`:t.name,"aria-selected":ge,"aria-level":u+1,"aria-posinset":r.positionInSet,"aria-setsize":r.setSize,"aria-grabbed":y&&E?oe:void 0,tabIndex:r.isFocused?0:-1,onFocus:()=>r.onFocusNode(t.id),onClick:ce,onKeyDown:q,onContextMenu:I?m=>re(t,m):void 0,onDragOver:y?m=>_(t,m):void 0,onDragLeave:y?()=>J(t):void 0,onDrop:y?m=>T(t,m):void 0,children:[P&&u>1&&Array.from({length:Math.min(u-1,20)},(m,Y)=>a("span",{className:c.indentGuide,style:{left:`${(Y+1)*12+11}px`}},`guide-${Y}`)),y&&E?a("span",{className:c.dragHandle,style:{left:`${Math.min(u,20)*12+4}px`},draggable:!0,onDragStart:m=>Q(t,m),onDragEnd:z,title:"Drag to reorder","aria-label":"Drag to reorder",children:a(Kt,{})}):null,L?a(Qt,{expanded:G}):K&&a(Ut,{method:K}),B,le,Pe&&a("span",{className:c.requiredDot,title:"Required"}),a("span",{className:c.nodeSuffix,children:ke}),I&&a("button",{type:"button",className:[c.moreButton,S===t.id?c.moreButtonActive:""].filter(Boolean).join(" "),onClick:m=>he(t,m),title:"More actions","aria-label":`More actions for ${t.name}`,"aria-haspopup":"menu","aria-expanded":S===t.id,tabIndex:-1,children:a(Vt,{})})]}),De=v?v(V,k):k;return a(Te,{children:De})}var Zt=Ct(Xt,Yt),er=Dt(function(t,u){let{nodes:n,onSelect:s,onExpandedChange:b,defaultExpandedIds:g,defaultExpandDepth:P=1,searchable:w=!1,searchPlaceholder:M="Search...",showExpandAll:l=!1,showRefresh:v=!1,onRefresh:y,toolbar:h,searchRowExtra:E,renderNode:Q,renderIcon:_,renderLabel:J,renderSuffix:T,className:z,style:I,size:S="sm",variant:re="default",showIndentGuides:he=!0,maxHeight:G,rootRef:ge,draggable:se=!1,dragGroupKey:L,onReorder:Se,onMove:oe,canDrag:W,canDrop:U,contextMenuItems:O,onContextMenuOpen:K,onPatch:me,theme:Pe,virtualized:A="auto"}=t,[V,ce]=ue(null),[q,B]=ue(F),[le,ke]=ue(null),ne=nt(null),Ne=Et(),k=Me(()=>ot(n),[n]),[De,m]=ue({top:0,height:400}),[Y,xe]=ue(null),[Be,Qe]=ue(null),x=qe(n,{defaultExpandedIds:g,defaultExpandDepth:P,onExpandedChange:b}),C=$e(n),We=C.isSearching?x.allBranchIds:C.expandedBeforeSearch??x.expandedIds,be=Me(()=>new Set(We),[We]),N=Me(()=>{let e=[],o=new Set,d=C.filteredNodes.map((i,f,p)=>({node:i,depth:0,parentId:null,positionInSet:f+1,setSize:p.length})).reverse();for(;d.length;){let i=d.pop();if(!o.has(i.node.id)&&(o.add(i.node.id),e.push(i),be.has(i.node.id))){let f=i.node.children??[];for(let p=f.length-1;p>=0;p--)d.push({node:f[p],depth:i.depth+1,parentId:i.node.id,positionInSet:p+1,setSize:f.length})}}return e},[C.filteredNodes,be]),ve=Me(()=>new Map(N.map((e,o)=>[e.node.id,o])),[N]),ae=S==="xs"?24:S==="md"?32:28,X=A!==!1&&re!=="doc"&&!Q&&(A===!0||N.length>500),pe=X?Math.max(0,Math.min(Math.floor(De.top/ae)-8,N.length-1)):0,we=X?Math.min(N.length,pe+Math.ceil(De.height/ae)+16):N.length,Ke=N.slice(pe,we);Fe(()=>{let e=ne.current;if(!e)return;let o=()=>m({top:e.scrollTop,height:e.clientHeight||400});o();let d=typeof ResizeObserver>"u"?void 0:new ResizeObserver(o);return d?.observe(e),()=>d?.disconnect()},[]),Fe(()=>{if(!Y)return;let e=ve.get(Y.id);if(e===void 0){xe(null);return}let o=ne.current;if(X&&o&&(e<pe||e>=we)){let i=o.clientHeight||400,f=Math.min(e*ae,Math.max(0,N.length*ae-i));o.scrollTop=f,m(p=>({...p,top:o.scrollTop}));return}let d=x.nodeElementRefs.current.get(Y.id);Y.focus&&d?.focus({preventScroll:!0}),d?.scrollIntoView?.({block:"nearest"}),xe(null)},[Y,ve,X,ae,pe,we,N.length,x.nodeElementRefs]);let ze=Be===null?void 0:ve.get(Be),st=ze!==void 0&&ze>=pe&&ze<we?Be:Ke[0]?.node.id,Oe=nt({query:"",time:0}),ct=e=>{if(!(e.target instanceof HTMLElement)||e.target.getAttribute("role")!=="treeitem")return;let o=ve.get(e.target.dataset.nodeId??"");if(o===void 0)return;let d=N[o],i=o;if(e.key==="ArrowDown")i=Math.min(o+1,N.length-1);else if(e.key==="ArrowUp")i=Math.max(0,o-1);else if(e.key==="Home")i=0;else if(e.key==="End")i=N.length-1;else if(e.key==="ArrowRight"&&d.node.children?.length&&be.has(d.node.id))i=Math.min(o+1,N.length-1);else if(e.key==="ArrowLeft"&&(!d.node.children?.length||!be.has(d.node.id)))i=ve.get(d.parentId??"")??o;else if(e.key==="ContextMenu"||e.shiftKey&&e.key==="F10"){let p=e.target.getBoundingClientRect();e.preventDefault(),Ie(d.node,p.left+24,p.bottom);return}else if(e.key.length===1&&e.key!==" "&&!e.ctrlKey&&!e.metaKey&&!e.altKey){let p=Date.now(),H=p-Oe.current.time<600?Oe.current.query+e.key.toLowerCase():e.key.toLowerCase();Oe.current={query:H,time:p};for(let D=1;D<=N.length;D++){let j=(o+D)%N.length;if(N[j].node.name.toLowerCase().startsWith(H)){i=j;break}}}else return;e.preventDefault();let f=N[i].node.id;Qe(f),xe({id:f,focus:!0})};Fe(()=>{ne.current&&(ne.current.scrollTop=0),m(e=>({...e,top:0}))},[C.deferredQuery]);let lt=R(e=>{ce(e.id),s?.(e)},[s]),pt=R(e=>{!e.trim()&&C.expandedBeforeSearch&&x.setExpandedIds(C.expandedBeforeSearch),C.handleQueryChange(e,x.expandedIds)},[x.expandedIds,C]),ye=R(e=>!se||e.metadata?.kind==="section"?!1:W?W(e):!0,[W,se]),Ce=R((e,o,d)=>{if(e.id===o.id||!ye(e)||k.path(o.id)?.ancestorIds.includes(e.id))return!1;if(L){let f=D=>{let j=k.path(D)?.nodes??[];for(let Z=j.length-1;Z>=0;Z--){let ee=j[Z]?.metadata;if(ee&&typeof ee=="object"&&Object.prototype.hasOwnProperty.call(ee,L))return ee[L]}},p=f(e.id),H=f(o.id);if(p!==void 0&&H!==void 0&&p!==H)return!1}return!U||U(e,o,d)},[ye,U,L,k]),ut=R((e,o)=>{if(!ye(e)){o.preventDefault();return}o.dataTransfer.effectAllowed="move",o.dataTransfer.setData("text/plain",e.id),B({draggedId:e.id,dragOverId:null,dragOverPosition:null})},[ye]),ft=R((e,o)=>{if(!q.draggedId||q.draggedId===e.id)return;o.dataTransfer.dropEffect="none";let d=o.currentTarget.getBoundingClientRect(),i=(o.clientY-d.top)/d.height,f=(e.children?.length??0)>0,p;f?i<.25?p="before":i>.75?p="after":p="child":p=i<.5?"before":"after";let H=k.byId.get(q.draggedId)?.node;if(!H||!Ce(H,e,p)){B(D=>D.dragOverId===null?D:{...D,dragOverId:null,dragOverPosition:null});return}o.preventDefault(),o.dataTransfer.dropEffect="move",B(D=>D.dragOverId===e.id&&D.dragOverPosition===p?D:{...D,dragOverId:e.id,dragOverPosition:p})},[Ce,q.draggedId,k]),ht=R(e=>{B(o=>o.dragOverId!==e.id?o:{...o,dragOverId:null,dragOverPosition:null})},[]),gt=R((e,o)=>{o.preventDefault();let d=q.draggedId,i=q.dragOverPosition;if(!d||!i||d===e.id||q.dragOverId!==e.id){B(F);return}let f=k.byId.get(d)?.node;if(!f||!Ce(f,e,i)){B(F);return}if(i==="child"){let de=k.path(d)?.target;if(!de){B(F);return}let _e=He(n,d,e.id);_e&&oe?.(_e,de,e.id),B(F);return}let p=k.path(e.id);if(!p){B(F);return}let H=p.parent?.children??n,D=H.findIndex($=>$.id===e.id);if(D===-1){B(F);return}let j=i==="before"?D:D+1,Z=k.path(d),ee=p.parent?.id??null;if((Z?.parent?.id??null)!==ee){let $=Z?.target,de=He(n,d,ee,j);de&&$&&oe?.(de,$,ee),B(F);return}if(Z&&Z.parent===p.parent){let $=H.findIndex(de=>de.id===d);$!==-1&&$<j&&(j-=1)}let te=Ye(n,d,j);if(te&&te.fromIndex!==te.toIndex&&(Se?.(te),me)){let $=_t(te.moved,te.fromIndex,te.toIndex,H);$.length>0&&me($,{node:te.moved,type:"reorder"})}B(F)},[q,n,k,Ce,oe,me,Se]),mt=R(()=>{B(F)},[]),Ie=R((e,o,d)=>{if(O){let i=O(e);if(i.length===0)return;let f=x.nodeElementRefs.current.get(e.id);f&&ke({x:o,y:d,node:e,items:i,anchor:f});return}K?.({node:e,x:o,y:d})},[O,K,x.nodeElementRefs]),xt=R(()=>{ke(null)},[]),bt=R((e,o)=>{o.preventDefault(),Ie(e,o.clientX,o.clientY)},[Ie]),vt=R((e,o)=>{o.stopPropagation();let d=o.currentTarget.getBoundingClientRect();Ie(e,d.left,d.bottom+4)},[Ie]),Ve=R(e=>{let o=k.path(e);if(!o)return;let d=o.ancestorIds;x.setExpandedIds([...new Set([...x.expandedIds,...d])]),C.clearSearch(),xe({id:e,focus:!1})},[x,k,C.clearSearch]);Rt(u,()=>({expandAll:x.expandAll,collapseAll:x.collapseAll,expandToDepth:x.expandToDepth,getExpandedIds:()=>x.expandedIds,getSelectedNode:()=>V?k.path(V)?.target:void 0,scrollToNode:Ve,locateNode:e=>{let o=[...n],d=new Set;for(let i=0;i<o.length;i++){let f=o[i];if(!(!f||d.has(f))){if(d.add(f),e(f)){let p=k.path(f.id);return p&&x.setExpandedIds([...new Set([...x.expandedIds,...p.ancestorIds])]),C.clearSearch(),ce(f.id),xe({id:f.id,focus:!1}),f}if(f.children?.length)for(let p of f.children)o.push(p)}}}}),[x,Ve,V,n,k,C.clearSearch]);let wt=Me(()=>({...I,...G!==void 0?{maxHeight:G}:{}}),[I,G]),yt=[c.root,re!=="default"?`pde-tree-variant-${re}`:"",z].filter(Boolean).join(" ");return fe("div",{ref:ge,className:yt,style:wt,"data-size":S,"data-theme":Pe,children:[h&&a("div",{className:c.toolbar,children:h}),(w||l||v||E)&&fe("div",{className:c.searchRow,children:[w&&fe("div",{className:c.searchInputWrap,children:[a("span",{className:c.searchIcon,children:a(Wt,{})}),a("input",{className:c.searchInput,type:"search","aria-controls":Ne,placeholder:M,value:C.query,onChange:e=>pt(e.target.value),"aria-label":"Search tree"})]}),E,l&&a("button",{type:"button",className:c.iconButton,onClick:x.isAllExpanded?x.collapseAll:x.expandAll,title:x.isAllExpanded?"Collapse all":"Expand all","aria-label":x.isAllExpanded?"Collapse all":"Expand all",children:x.isAllExpanded?a(Ft,{size:16,"aria-hidden":"true"}):a(jt,{size:16,"aria-hidden":"true"})}),v&&a("button",{type:"button",className:c.iconButton,onClick:y,title:"Refresh","aria-label":"Refresh",children:a(Gt,{size:14,"aria-hidden":"true"})})]}),a("div",{ref:ne,className:c.treeContainer,"data-virtualized":X||void 0,onScroll:e=>{X&&m({top:e.currentTarget.scrollTop,height:e.currentTarget.clientHeight||400})},id:Ne,role:"tree",onKeyDown:ct,"aria-label":"Tree navigation",children:C.filteredNodes.length===0?a("div",{className:c.emptyState,children:C.isSearching?"No matching results":"No items"}):fe(Te,{children:[X&&a("div",{role:"presentation",style:{height:pe*ae}}),Ke.map(({node:e,depth:o,positionInSet:d,setSize:i})=>a(Zt,{node:e,depth:o,positionInSet:d,setSize:i,isFocused:e.id===st,onFocusNode:Qe,isExpanded:be.has(e.id),isSelected:V===e.id,onToggle:x.toggleNode,onSelect:lt,onNodeRef:x.setNodeElementRef,searchQuery:C.deferredQuery,showIndentGuides:he,renderIcon:_,renderLabel:J,renderSuffix:T,renderNode:Q,draggable:se,dragState:q,canDragNode:ye(e),onDragStart:ut,onDragOver:ft,onDragLeave:ht,onDrop:gt,onDragEnd:mt,showContextMenuButton:!!(O||K),activeMenuNodeId:le?.node.id??null,onContextMenu:bt,onMoreClick:vt},e.id)),X&&a("div",{role:"presentation",style:{height:(N.length-we)*ae}})]})}),le&&a(Ze,{state:le,onClose:xt},le.node.id)]})});export{je as METHOD_LABEL_MAP,er as Tree,Le as getMethodLabel,qe as useTreeExpansion,$e as useTreeSearch};
|
|
1
|
+
import{i as Je,j as Ae,k as Ue,p as Ye,q as He}from"../chunk-AHHDXXHL.js";import{forwardRef as Dt,memo as Ct,useCallback as R,useEffect as Fe,useImperativeHandle as Rt,useId as Et,useMemo as Me,useRef as nt,useState as ue}from"react";import{useLayoutEffect as It,useRef as Mt,useState as Ge}from"react";import{createPortal as Tt}from"react-dom";import{jsx as Re,jsxs as Xe}from"react/jsx-runtime";function Ze({state:r,onClose:t}){let u=Mt(null),[n,s]=Ge(null),[b,g]=Ge({left:r.x,top:r.y}),[P,w]=Ge({}),M=r.anchor.closest("dialog")??r.anchor.ownerDocument.body;return It(()=>{let l=r.anchor.closest(".pde-tree-root")??r.anchor,v=getComputedStyle(l),y={};for(let T=0;T<v.length;T++){let z=v.item(T);(z.startsWith("--tree-")||z.startsWith("--color-")||z.startsWith("--radius-")||z.startsWith("--font-")||z.startsWith("--shadow-"))&&(y[z]=v.getPropertyValue(z))}w(y);let h=u.current;if(!h)return;let E=()=>{let T=h.getBoundingClientRect();g({left:Math.max(8,Math.min(r.x,document.documentElement.clientWidth-T.width-8)),top:Math.max(8,Math.min(r.y,document.documentElement.clientHeight-T.height-8))})};E();let Q=typeof ResizeObserver>"u"?void 0:new ResizeObserver(E);Q?.observe(h),h.querySelector("button:not(:disabled)")?.focus();let _=T=>{T.target instanceof Node&&!h.contains(T.target)&&t()},J=T=>{T.target instanceof Node&&!h.contains(T.target)&&t()};return document.addEventListener("pointerdown",_),document.addEventListener("scroll",J,!0),window.addEventListener("resize",t),()=>{Q?.disconnect(),document.removeEventListener("pointerdown",_),document.removeEventListener("scroll",J,!0),window.removeEventListener("resize",t),h.contains(document.activeElement)&&r.anchor.isConnected&&r.anchor.focus({preventScroll:!0})}},[r,t]),Tt(Re("div",{ref:u,className:"pde-tree-contextMenu",style:{...P,...b},role:"menu","aria-label":`Actions for ${r.node.name}`,tabIndex:-1,onKeyDown:l=>{let v=u.current;if(!v)return;let y=Array.from(v.querySelectorAll("button:not(:disabled)")),h=y.indexOf(document.activeElement);if(l.key==="Escape"||l.key==="Tab"){l.key==="Escape"&&l.preventDefault(),l.stopPropagation(),t();return}let E;if(l.key==="ArrowDown")E=(h+1)%y.length;else if(l.key==="ArrowUp")E=(h-1+y.length)%y.length;else if(l.key==="Home")E=0;else if(l.key==="End")E=y.length-1;else return;l.preventDefault(),y[E]?.focus()},children:r.items.map((l,v)=>Xe("div",{role:"presentation",children:[l.separator&&Re("div",{className:"pde-tree-contextMenuSeparator",role:"separator"}),Xe("button",{type:"button",role:"menuitem",tabIndex:-1,disabled:l.disabled,className:`pde-tree-contextMenuItem${l.danger?" pde-tree-contextMenuItemDanger":""}${n===v?" pde-tree-contextMenuItemConfirming":""}`,onClick:()=>{if(l.confirm&&n!==v){s(v);return}t(),l.onClick(r.node)},children:[l.icon&&Re("span",{className:"pde-tree-contextMenuIcon","aria-hidden":"true",children:l.icon}),Re("span",{children:l.confirm&&n===v?l.confirmLabel??"Confirm?":l.label})]})]},`${l.label}-${v}`))}),M)}import{useCallback as ie,useMemo as Ee,useRef as et,useState as St}from"react";function qe(r,t={}){let{defaultExpandedIds:u,defaultExpandDepth:n=1,onExpandedChange:s}=t,b=Ee(()=>u!==void 0?[...u]:n<=1?[]:Ae(r,{maxDepth:n-1,onlyWithChildren:!0}),[]),[g,P]=St(b),w=et(new Map),M=Ee(()=>Ue(r),[r]),l=Ee(()=>new Set(g),[g]),v=et(g);v.current=g;let y=Ee(()=>M.length>0&&M.every(I=>l.has(I)),[M,l]),h=ie(I=>{v.current=I,P(I),s?.(I)},[s]),E=ie(I=>{let S=v.current,re=S.includes(I)?S.filter(he=>he!==I):[...S,I];h(re)},[h]),Q=ie(()=>{h([...M])},[M,h]),_=ie(()=>{h([])},[h]),J=ie(I=>{let S=Ae(r,{maxDepth:I,onlyWithChildren:!0});h(S)},[r,h]),T=ie((I,S)=>{S?w.current.set(I,S):w.current.delete(I)},[]),z=ie(I=>{let S=w.current.get(I);S&&S.scrollIntoView?.({behavior:"auto",block:"nearest"})},[]);return{expandedIds:g,setExpandedIds:h,toggleNode:E,expandAll:Q,collapseAll:_,expandToDepth:J,isAllExpanded:y,allBranchIds:M,setNodeElementRef:T,scrollToNode:z,nodeElementRefs:w}}import{useCallback as tt,useDeferredValue as kt,useMemo as Nt,useState as rt}from"react";function $e(r){let[t,u]=rt(""),n=kt(t),[s,b]=rt(null),g=n.trim().length>0,P=Nt(()=>g?Je(r,{query:n,keepAncestors:!0}):r,[r,n,g]),w=tt((l,v)=>{let y=t.trim(),h=l.trim();!y&&h&&b(v),y&&!h&&b(null),u(l)},[t]),M=tt(()=>{u(""),b(null)},[]);return{query:t,deferredQuery:n,isSearching:g,filteredNodes:P,expandedBeforeSearch:s,handleQueryChange:w,clearSearch:M}}function ot(r){let t=new Map,u=new Set,n=r.map(s=>({node:s,parentId:null})).reverse();for(;n.length;){let s=n.pop();if(u.has(s.node)||t.has(s.node.id))continue;u.add(s.node),t.set(s.node.id,s);let b=s.node.children??[];for(let g=b.length-1;g>=0;g--)n.push({node:b[g],parentId:s.node.id})}return{byId:t,path(s){let b=t.get(s);if(!b)return null;let g=[b.node],P=b.parentId;for(;P!==null;){let w=t.get(P);if(!w)break;g.push(w.node),P=w.parentId}return g.reverse(),{nodes:g,target:b.node,parent:g[g.length-2],ancestorIds:g.slice(0,-1).map(w=>w.id)}}}}var je={get:"GET",post:"POST",put:"PUT",delete:"DEL",patch:"PAT",head:"HEAD",options:"OPT",trace:"TRC",connect:"CON"};function Le(r){let t=r.toLowerCase().trim();return Object.prototype.hasOwnProperty.call(je,t)?je[t]:t.slice(0,4).toUpperCase()}import{LuBraces as at,LuChevronDown as Lt,LuChevronRight as Pt,LuEllipsisVertical as Bt,LuFolder as zt,LuFolderOpen as Ot,LuGripVertical as At,LuList as Ht,LuRefreshCw as Gt,LuSearch as qt,LuZap as $t}from"react-icons/lu";import{MdOutlineUnfoldMore as jt,MdUnfoldLess as Ft}from"react-icons/md";import{Fragment as Te,jsx as a,jsxs as fe}from"react/jsx-runtime";var c={branchControl:"pde-tree-branchControl",deprecatedLabel:"pde-tree-deprecatedLabel",dragHandle:"pde-tree-dragHandle",dropIndicatorAfter:"pde-tree-dropIndicatorAfter",dropIndicatorBefore:"pde-tree-dropIndicatorBefore",dropIndicatorChild:"pde-tree-dropIndicatorChild",emptyState:"pde-tree-emptyState",expandIcon:"pde-tree-expandIcon",expandIconPlaceholder:"pde-tree-expandIconPlaceholder",highlight:"pde-tree-highlight",iconButton:"pde-tree-iconButton",indentGuide:"pde-tree-indentGuide",leafItem:"pde-tree-leafItem",methodBadge:"pde-tree-methodBadge",methodDelete:"pde-tree-methodDelete",methodGet:"pde-tree-methodGet",methodOther:"pde-tree-methodOther",methodPatch:"pde-tree-methodPatch",methodPost:"pde-tree-methodPost",methodPut:"pde-tree-methodPut",moreButton:"pde-tree-moreButton",moreButtonActive:"pde-tree-moreButtonActive",nodeDragging:"pde-tree-nodeDragging",nodeIcon:"pde-tree-nodeIcon",primitiveDot:"pde-tree-primitiveDot",nodeLabel:"pde-tree-nodeLabel",nodeLabelBranch:"pde-tree-nodeLabelBranch",nodeRow:"pde-tree-nodeRow",nodeRowSelected:"pde-tree-nodeRowSelected",nodeSuffix:"pde-tree-nodeSuffix",requiredDot:"pde-tree-requiredDot",root:"pde-tree-root",searchIcon:"pde-tree-searchIcon",searchInput:"pde-tree-searchInput",searchInputWrap:"pde-tree-searchInputWrap",searchRow:"pde-tree-searchRow",toolbar:"pde-tree-toolbar",treeContainer:"pde-tree-treeContainer"};function Qt({expanded:r}){return a("span",{className:c.expandIcon,children:r?a(Lt,{size:14}):a(Pt,{size:14})})}function Wt(){return a(qt,{size:14,"aria-hidden":"true"})}function Kt(){return a(At,{size:14,"aria-hidden":"true"})}function Vt(){return a(Bt,{size:14,"aria-hidden":"true"})}function dt(r){let u=r.metadata?.jsonPath;if(Array.isArray(u)&&u.length>0&&u.every(n=>typeof n=="string"||typeof n=="number"&&Number.isInteger(n)&&n>=0))return u}function _t(r,t,u,n){let s=dt(r);if(!s||s.length===0)return[];let b=JSON.stringify(s.slice(0,-1));if(!n.every((P,w)=>{let M=dt(P);return M&&M[M.length-1]===w&&JSON.stringify(M.slice(0,-1))===b}))return[];let g=s.slice(0,-1);return[{op:"move",from:[...g,t],path:[...g,u]}]}function Jt({text:r,query:t}){if(!t)return a(Te,{children:r});let u=r.toLowerCase(),n=t.toLowerCase(),s=u.indexOf(n);return s===-1?a(Te,{children:r}):fe(Te,{children:[r.slice(0,s),a("span",{className:c.highlight,children:r.slice(s,s+t.length)}),r.slice(s+t.length)]})}var it={get:c.methodGet,post:c.methodPost,put:c.methodPut,patch:c.methodPatch,delete:c.methodDelete};function Ut({method:r}){let t=r.toLowerCase(),u=Object.prototype.hasOwnProperty.call(it,t)?it[t]:c.methodOther,n=Le(r);return a("span",{className:`${c.methodBadge} ${u}`,children:n})}var F={draggedId:null,dragOverId:null,dragOverPosition:null};function Yt(r,t){if(r.isFocused!==t.isFocused||r.positionInSet!==t.positionInSet||r.setSize!==t.setSize||r.node!==t.node||r.depth!==t.depth||r.isExpanded!==t.isExpanded||r.isSelected!==t.isSelected||r.searchQuery!==t.searchQuery||r.showIndentGuides!==t.showIndentGuides||r.canDragNode!==t.canDragNode||r.draggable!==t.draggable||r.showContextMenuButton!==t.showContextMenuButton||r.activeMenuNodeId===r.node.id!=(t.activeMenuNodeId===t.node.id))return!1;let u=r.dragState.draggedId===r.node.id,n=t.dragState.draggedId===t.node.id;if(u!==n)return!1;let s=r.dragState.dragOverId===r.node.id,b=t.dragState.dragOverId===t.node.id;return!(s!==b||s&&b&&r.dragState.dragOverPosition!==t.dragState.dragOverPosition||r.renderIcon!==t.renderIcon||r.renderLabel!==t.renderLabel||r.renderSuffix!==t.renderSuffix||r.renderNode!==t.renderNode||r.onToggle!==t.onToggle||r.onSelect!==t.onSelect||r.onNodeRef!==t.onNodeRef||r.onDragStart!==t.onDragStart||r.onDragOver!==t.onDragOver||r.onDragLeave!==t.onDragLeave||r.onDrop!==t.onDrop||r.onDragEnd!==t.onDragEnd||r.onContextMenu!==t.onContextMenu||r.onMoreClick!==t.onMoreClick)}function Xt(r){let{node:t,depth:u,onToggle:n,onSelect:s,onNodeRef:b,searchQuery:g,showIndentGuides:P,renderIcon:w,renderLabel:M,renderSuffix:l,renderNode:v,draggable:y,dragState:h,canDragNode:E,onDragStart:Q,onDragOver:_,onDragLeave:J,onDrop:T,onDragEnd:z,showContextMenuButton:I,activeMenuNodeId:S,onContextMenu:re,onMoreClick:he}=r,{isExpanded:G,isSelected:ge}=r,se=(t.children?.length??0)>0,L=se,Se=!se,oe=h.draggedId===t.id,W=h.dragOverId===t.id,U=W?h.dragOverPosition:null,O=t.metadata,K=typeof O?.method=="string"?O.method:void 0,me=O?.deprecated===!0,Pe=O?.required===!0,A=typeof O?.kind=="string"?O.kind:void 0,V={node:t,depth:u,isExpanded:G,isSelected:ge,isBranch:L,isLeaf:Se,isDragging:oe,isDragOver:W,dragOverPosition:U},ce=R(()=>{L?n(t.id):s(t)},[L,t,s,n]),q=R(m=>{m.target===m.currentTarget&&(m.key==="Enter"||m.key===" "?(m.preventDefault(),ce()):(m.key==="ArrowRight"&&L&&!G||m.key==="ArrowLeft"&&L&&G)&&(m.preventDefault(),m.stopPropagation(),n(t.id)))},[ce,L,G,t.id,n]),B=w?w(V):K?null:a("span",{className:c.nodeIcon,children:A==="section"&&O?.section==="components"?a(at,{size:14}):A==="section"&&O?.section==="webhooks"?a($t,{size:14}):A==="schema"||A==="component"||A==="object"?a(at,{size:14}):A==="array"||A==="items"?a(Ht,{size:14}):L?G?a(Ot,{size:14}):a(zt,{size:14}):K&&a(Ut,{method:K})}),le=M?M(V):a("span",{className:`${c.nodeLabel} ${L?c.nodeLabelBranch:""} ${me?c.deprecatedLabel:""}`,children:a(Jt,{text:t.name,query:g})}),ke=l?l(V):null,ne=[c.nodeRow,L?c.branchControl:c.leafItem,ge?c.nodeRowSelected:"",oe?c.nodeDragging:"",W&&U==="before"?c.dropIndicatorBefore:"",W&&U==="after"?c.dropIndicatorAfter:"",W&&U==="child"?c.dropIndicatorChild:"",A?`pde-tree-kind-${A}`:""].filter(Boolean).join(" "),Ne=R(m=>b(t.id,m),[t.id,b]),k=fe("div",{ref:Ne,className:ne,style:{paddingLeft:`${Math.min(u,20)*12+4}px`},"data-node-id":t.id,role:"treeitem","aria-expanded":L?G:void 0,"aria-label":K?`${Le(K)} ${t.name}`:t.name,"aria-selected":ge,"aria-level":u+1,"aria-posinset":r.positionInSet,"aria-setsize":r.setSize,"aria-grabbed":y&&E?oe:void 0,tabIndex:r.isFocused?0:-1,onFocus:()=>r.onFocusNode(t.id),onClick:ce,onKeyDown:q,onContextMenu:I?m=>re(t,m):void 0,onDragOver:y?m=>_(t,m):void 0,onDragLeave:y?()=>J(t):void 0,onDrop:y?m=>T(t,m):void 0,children:[P&&u>1&&Array.from({length:Math.min(u-1,20)},(m,Y)=>a("span",{className:c.indentGuide,style:{left:`${(Y+1)*12+11}px`}},`guide-${Y}`)),y&&E?a("span",{className:c.dragHandle,style:{left:`${Math.min(u,20)*12+4}px`},draggable:!0,onDragStart:m=>Q(t,m),onDragEnd:z,title:"Drag to reorder","aria-label":"Drag to reorder",children:a(Kt,{})}):null,L?a(Qt,{expanded:G}):a("span",{className:c.expandIconPlaceholder}),B,le,Pe&&a("span",{className:c.requiredDot,title:"Required"}),a("span",{className:c.nodeSuffix,children:ke}),I&&a("button",{type:"button",className:[c.moreButton,S===t.id?c.moreButtonActive:""].filter(Boolean).join(" "),onClick:m=>he(t,m),title:"More actions","aria-label":`More actions for ${t.name}`,"aria-haspopup":"menu","aria-expanded":S===t.id,tabIndex:-1,children:a(Vt,{})})]}),De=v?v(V,k):k;return a(Te,{children:De})}var Zt=Ct(Xt,Yt),er=Dt(function(t,u){let{nodes:n,onSelect:s,onExpandedChange:b,defaultExpandedIds:g,defaultExpandDepth:P=1,searchable:w=!1,searchPlaceholder:M="Search...",showExpandAll:l=!1,showRefresh:v=!1,onRefresh:y,toolbar:h,searchRowExtra:E,renderNode:Q,renderIcon:_,renderLabel:J,renderSuffix:T,className:z,style:I,size:S="sm",variant:re="default",showIndentGuides:he=!0,maxHeight:G,rootRef:ge,draggable:se=!1,dragGroupKey:L,onReorder:Se,onMove:oe,canDrag:W,canDrop:U,contextMenuItems:O,onContextMenuOpen:K,onPatch:me,theme:Pe,virtualized:A="auto"}=t,[V,ce]=ue(null),[q,B]=ue(F),[le,ke]=ue(null),ne=nt(null),Ne=Et(),k=Me(()=>ot(n),[n]),[De,m]=ue({top:0,height:400}),[Y,xe]=ue(null),[Be,Qe]=ue(null),x=qe(n,{defaultExpandedIds:g,defaultExpandDepth:P,onExpandedChange:b}),C=$e(n),We=C.isSearching?x.allBranchIds:C.expandedBeforeSearch??x.expandedIds,be=Me(()=>new Set(We),[We]),N=Me(()=>{let e=[],o=new Set,d=C.filteredNodes.map((i,f,p)=>({node:i,depth:0,parentId:null,positionInSet:f+1,setSize:p.length})).reverse();for(;d.length;){let i=d.pop();if(!o.has(i.node.id)&&(o.add(i.node.id),e.push(i),be.has(i.node.id))){let f=i.node.children??[];for(let p=f.length-1;p>=0;p--)d.push({node:f[p],depth:i.depth+1,parentId:i.node.id,positionInSet:p+1,setSize:f.length})}}return e},[C.filteredNodes,be]),ve=Me(()=>new Map(N.map((e,o)=>[e.node.id,o])),[N]),ae=S==="xs"?24:S==="md"?32:28,X=A!==!1&&re!=="doc"&&!Q&&(A===!0||N.length>500),pe=X?Math.max(0,Math.min(Math.floor(De.top/ae)-8,N.length-1)):0,we=X?Math.min(N.length,pe+Math.ceil(De.height/ae)+16):N.length,Ke=N.slice(pe,we);Fe(()=>{let e=ne.current;if(!e)return;let o=()=>m({top:e.scrollTop,height:e.clientHeight||400});o();let d=typeof ResizeObserver>"u"?void 0:new ResizeObserver(o);return d?.observe(e),()=>d?.disconnect()},[]),Fe(()=>{if(!Y)return;let e=ve.get(Y.id);if(e===void 0){xe(null);return}let o=ne.current;if(X&&o&&(e<pe||e>=we)){let i=o.clientHeight||400,f=Math.min(e*ae,Math.max(0,N.length*ae-i));o.scrollTop=f,m(p=>({...p,top:o.scrollTop}));return}let d=x.nodeElementRefs.current.get(Y.id);Y.focus&&d?.focus({preventScroll:!0}),d?.scrollIntoView?.({block:"nearest"}),xe(null)},[Y,ve,X,ae,pe,we,N.length,x.nodeElementRefs]);let ze=Be===null?void 0:ve.get(Be),st=ze!==void 0&&ze>=pe&&ze<we?Be:Ke[0]?.node.id,Oe=nt({query:"",time:0}),ct=e=>{if(!(e.target instanceof HTMLElement)||e.target.getAttribute("role")!=="treeitem")return;let o=ve.get(e.target.dataset.nodeId??"");if(o===void 0)return;let d=N[o],i=o;if(e.key==="ArrowDown")i=Math.min(o+1,N.length-1);else if(e.key==="ArrowUp")i=Math.max(0,o-1);else if(e.key==="Home")i=0;else if(e.key==="End")i=N.length-1;else if(e.key==="ArrowRight"&&d.node.children?.length&&be.has(d.node.id))i=Math.min(o+1,N.length-1);else if(e.key==="ArrowLeft"&&(!d.node.children?.length||!be.has(d.node.id)))i=ve.get(d.parentId??"")??o;else if(e.key==="ContextMenu"||e.shiftKey&&e.key==="F10"){let p=e.target.getBoundingClientRect();e.preventDefault(),Ie(d.node,p.left+24,p.bottom);return}else if(e.key.length===1&&e.key!==" "&&!e.ctrlKey&&!e.metaKey&&!e.altKey){let p=Date.now(),H=p-Oe.current.time<600?Oe.current.query+e.key.toLowerCase():e.key.toLowerCase();Oe.current={query:H,time:p};for(let D=1;D<=N.length;D++){let j=(o+D)%N.length;if(N[j].node.name.toLowerCase().startsWith(H)){i=j;break}}}else return;e.preventDefault();let f=N[i].node.id;Qe(f),xe({id:f,focus:!0})};Fe(()=>{ne.current&&(ne.current.scrollTop=0),m(e=>({...e,top:0}))},[C.deferredQuery]);let lt=R(e=>{ce(e.id),s?.(e)},[s]),pt=R(e=>{!e.trim()&&C.expandedBeforeSearch&&x.setExpandedIds(C.expandedBeforeSearch),C.handleQueryChange(e,x.expandedIds)},[x.expandedIds,C]),ye=R(e=>!se||e.metadata?.kind==="section"?!1:W?W(e):!0,[W,se]),Ce=R((e,o,d)=>{if(e.id===o.id||!ye(e)||k.path(o.id)?.ancestorIds.includes(e.id))return!1;if(L){let f=D=>{let j=k.path(D)?.nodes??[];for(let Z=j.length-1;Z>=0;Z--){let ee=j[Z]?.metadata;if(ee&&typeof ee=="object"&&Object.prototype.hasOwnProperty.call(ee,L))return ee[L]}},p=f(e.id),H=f(o.id);if(p!==void 0&&H!==void 0&&p!==H)return!1}return!U||U(e,o,d)},[ye,U,L,k]),ut=R((e,o)=>{if(!ye(e)){o.preventDefault();return}o.dataTransfer.effectAllowed="move",o.dataTransfer.setData("text/plain",e.id),B({draggedId:e.id,dragOverId:null,dragOverPosition:null})},[ye]),ft=R((e,o)=>{if(!q.draggedId||q.draggedId===e.id)return;o.dataTransfer.dropEffect="none";let d=o.currentTarget.getBoundingClientRect(),i=(o.clientY-d.top)/d.height,f=(e.children?.length??0)>0,p;f?i<.25?p="before":i>.75?p="after":p="child":p=i<.5?"before":"after";let H=k.byId.get(q.draggedId)?.node;if(!H||!Ce(H,e,p)){B(D=>D.dragOverId===null?D:{...D,dragOverId:null,dragOverPosition:null});return}o.preventDefault(),o.dataTransfer.dropEffect="move",B(D=>D.dragOverId===e.id&&D.dragOverPosition===p?D:{...D,dragOverId:e.id,dragOverPosition:p})},[Ce,q.draggedId,k]),ht=R(e=>{B(o=>o.dragOverId!==e.id?o:{...o,dragOverId:null,dragOverPosition:null})},[]),gt=R((e,o)=>{o.preventDefault();let d=q.draggedId,i=q.dragOverPosition;if(!d||!i||d===e.id||q.dragOverId!==e.id){B(F);return}let f=k.byId.get(d)?.node;if(!f||!Ce(f,e,i)){B(F);return}if(i==="child"){let de=k.path(d)?.target;if(!de){B(F);return}let _e=He(n,d,e.id);_e&&oe?.(_e,de,e.id),B(F);return}let p=k.path(e.id);if(!p){B(F);return}let H=p.parent?.children??n,D=H.findIndex($=>$.id===e.id);if(D===-1){B(F);return}let j=i==="before"?D:D+1,Z=k.path(d),ee=p.parent?.id??null;if((Z?.parent?.id??null)!==ee){let $=Z?.target,de=He(n,d,ee,j);de&&$&&oe?.(de,$,ee),B(F);return}if(Z&&Z.parent===p.parent){let $=H.findIndex(de=>de.id===d);$!==-1&&$<j&&(j-=1)}let te=Ye(n,d,j);if(te&&te.fromIndex!==te.toIndex&&(Se?.(te),me)){let $=_t(te.moved,te.fromIndex,te.toIndex,H);$.length>0&&me($,{node:te.moved,type:"reorder"})}B(F)},[q,n,k,Ce,oe,me,Se]),mt=R(()=>{B(F)},[]),Ie=R((e,o,d)=>{if(O){let i=O(e);if(i.length===0)return;let f=x.nodeElementRefs.current.get(e.id);f&&ke({x:o,y:d,node:e,items:i,anchor:f});return}K?.({node:e,x:o,y:d})},[O,K,x.nodeElementRefs]),xt=R(()=>{ke(null)},[]),bt=R((e,o)=>{o.preventDefault(),Ie(e,o.clientX,o.clientY)},[Ie]),vt=R((e,o)=>{o.stopPropagation();let d=o.currentTarget.getBoundingClientRect();Ie(e,d.left,d.bottom+4)},[Ie]),Ve=R(e=>{let o=k.path(e);if(!o)return;let d=o.ancestorIds;x.setExpandedIds([...new Set([...x.expandedIds,...d])]),C.clearSearch(),xe({id:e,focus:!1})},[x,k,C.clearSearch]);Rt(u,()=>({expandAll:x.expandAll,collapseAll:x.collapseAll,expandToDepth:x.expandToDepth,getExpandedIds:()=>x.expandedIds,getSelectedNode:()=>V?k.path(V)?.target:void 0,scrollToNode:Ve,locateNode:e=>{let o=[...n],d=new Set;for(let i=0;i<o.length;i++){let f=o[i];if(!(!f||d.has(f))){if(d.add(f),e(f)){let p=k.path(f.id);return p&&x.setExpandedIds([...new Set([...x.expandedIds,...p.ancestorIds])]),C.clearSearch(),ce(f.id),xe({id:f.id,focus:!1}),f}if(f.children?.length)for(let p of f.children)o.push(p)}}}}),[x,Ve,V,n,k,C.clearSearch]);let wt=Me(()=>({...I,...G!==void 0?{maxHeight:G}:{}}),[I,G]),yt=[c.root,re!=="default"?`pde-tree-variant-${re}`:"",z].filter(Boolean).join(" ");return fe("div",{ref:ge,className:yt,style:wt,"data-size":S,"data-theme":Pe,children:[h&&a("div",{className:c.toolbar,children:h}),(w||l||v||E)&&fe("div",{className:c.searchRow,children:[w&&fe("div",{className:c.searchInputWrap,children:[a("span",{className:c.searchIcon,children:a(Wt,{})}),a("input",{className:c.searchInput,type:"search","aria-controls":Ne,placeholder:M,value:C.query,onChange:e=>pt(e.target.value),"aria-label":"Search tree"})]}),E,l&&a("button",{type:"button",className:c.iconButton,onClick:x.isAllExpanded?x.collapseAll:x.expandAll,title:x.isAllExpanded?"Collapse all":"Expand all","aria-label":x.isAllExpanded?"Collapse all":"Expand all",children:x.isAllExpanded?a(Ft,{size:16,"aria-hidden":"true"}):a(jt,{size:16,"aria-hidden":"true"})}),v&&a("button",{type:"button",className:c.iconButton,onClick:y,title:"Refresh","aria-label":"Refresh",children:a(Gt,{size:14,"aria-hidden":"true"})})]}),a("div",{ref:ne,className:c.treeContainer,"data-virtualized":X||void 0,onScroll:e=>{X&&m({top:e.currentTarget.scrollTop,height:e.currentTarget.clientHeight||400})},id:Ne,role:"tree",onKeyDown:ct,"aria-label":"Tree navigation",children:C.filteredNodes.length===0?a("div",{className:c.emptyState,children:C.isSearching?"No matching results":"No items"}):fe(Te,{children:[X&&a("div",{role:"presentation",style:{height:pe*ae}}),Ke.map(({node:e,depth:o,positionInSet:d,setSize:i})=>a(Zt,{node:e,depth:o,positionInSet:d,setSize:i,isFocused:e.id===st,onFocusNode:Qe,isExpanded:be.has(e.id),isSelected:V===e.id,onToggle:x.toggleNode,onSelect:lt,onNodeRef:x.setNodeElementRef,searchQuery:C.deferredQuery,showIndentGuides:he,renderIcon:_,renderLabel:J,renderSuffix:T,renderNode:Q,draggable:se,dragState:q,canDragNode:ye(e),onDragStart:ut,onDragOver:ft,onDragLeave:ht,onDrop:gt,onDragEnd:mt,showContextMenuButton:!!(O||K),activeMenuNodeId:le?.node.id??null,onContextMenu:bt,onMoreClick:vt},e.id)),X&&a("div",{role:"presentation",style:{height:(N.length-we)*ae}})]})}),le&&a(Ze,{state:le,onClose:xt},le.node.id)]})});export{je as METHOD_LABEL_MAP,er as Tree,Le as getMethodLabel,qe as useTreeExpansion,$e as useTreeSearch};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@powerduck/tree",
|
|
3
|
-
"version": "0.7.
|
|
3
|
+
"version": "0.7.15",
|
|
4
4
|
"description": "Extensible tree component for API navigation, schema exploration, and documentation. Supports OpenAPI 3.2 nested tags, x-tagGroups, and custom data sources.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "powerduck",
|