react-resizable-panels 4.10.0 → 4.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const re=require("react/jsx-runtime"),b=require("react");function ct(e,t){const n=getComputedStyle(e),o=parseFloat(n.fontSize);return t*o}function ft(e,t){const n=getComputedStyle(e.ownerDocument.body),o=parseFloat(n.fontSize);return t*o}function dt(e){return e/100*window.innerHeight}function pt(e){return e/100*window.innerWidth}function ht(e){switch(typeof e){case"number":return[e,"px"];case"string":{const t=parseFloat(e);return e.endsWith("%")?[t,"%"]:e.endsWith("px")?[t,"px"]:e.endsWith("rem")?[t,"rem"]:e.endsWith("em")?[t,"em"]:e.endsWith("vh")?[t,"vh"]:e.endsWith("vw")?[t,"vw"]:[t,"%"]}}}function oe({groupSize:e,panelElement:t,styleProp:n}){let o;const[i,s]=ht(n);switch(s){case"%":{o=i/100*e;break}case"px":{o=i;break}case"rem":{o=ft(t,i);break}case"em":{o=ct(t,i);break}case"vh":{o=dt(i);break}case"vw":{o=pt(i);break}}return o}function O(e){return parseFloat(e.toFixed(3))}function te({group:e}){const{orientation:t,panels:n}=e;return n.reduce((o,i)=>(o+=t==="horizontal"?i.element.offsetWidth:i.element.offsetHeight,o),0)}function me(e){const{panels:t}=e,n=te({group:e});return n===0?t.map(o=>({groupResizeBehavior:o.panelConstraints.groupResizeBehavior,collapsedSize:0,collapsible:o.panelConstraints.collapsible===!0,defaultSize:void 0,disabled:o.panelConstraints.disabled,minSize:0,maxSize:100,panelId:o.id})):t.map(o=>{const{element:i,panelConstraints:s}=o;let l=0;if(s.collapsedSize!==void 0){const f=oe({groupSize:n,panelElement:i,styleProp:s.collapsedSize});l=O(f/n*100)}let r;if(s.defaultSize!==void 0){const f=oe({groupSize:n,panelElement:i,styleProp:s.defaultSize});r=O(f/n*100)}let a=0;if(s.minSize!==void 0){const f=oe({groupSize:n,panelElement:i,styleProp:s.minSize});a=O(f/n*100)}let c=100;if(s.maxSize!==void 0){const f=oe({groupSize:n,panelElement:i,styleProp:s.maxSize});c=O(f/n*100)}return{groupResizeBehavior:s.groupResizeBehavior,collapsedSize:l,collapsible:s.collapsible===!0,defaultSize:r,disabled:s.disabled,minSize:a,maxSize:c,panelId:o.id}})}function C(e,t="Assertion error"){if(!e)throw Error(t)}function ge(e,t){return Array.from(t).sort(e==="horizontal"?mt:gt)}function mt(e,t){const n=e.element.offsetLeft-t.element.offsetLeft;return n!==0?n:e.element.offsetWidth-t.element.offsetWidth}function gt(e,t){const n=e.element.offsetTop-t.element.offsetTop;return n!==0?n:e.element.offsetHeight-t.element.offsetHeight}function He(e){return e!==null&&typeof e=="object"&&"nodeType"in e&&e.nodeType===Node.ELEMENT_NODE}function Ve(e,t){return{x:e.x>=t.left&&e.x<=t.right?0:Math.min(Math.abs(e.x-t.left),Math.abs(e.x-t.right)),y:e.y>=t.top&&e.y<=t.bottom?0:Math.min(Math.abs(e.y-t.top),Math.abs(e.y-t.bottom))}}function yt({orientation:e,rects:t,targetRect:n}){const o={x:n.x+n.width/2,y:n.y+n.height/2};let i,s=Number.MAX_VALUE;for(const l of t){const{x:r,y:a}=Ve(o,l),c=e==="horizontal"?r:a;c<s&&(s=c,i=l)}return C(i,"No rect found"),i}let ue;function Be(){return ue===void 0&&(typeof matchMedia=="function"?ue=!!matchMedia("(pointer:coarse)").matches:ue=!1),ue}function We(e){const{element:t,orientation:n,panels:o,separators:i}=e,s=ge(n,Array.from(t.children).filter(He).map(P=>({element:P}))).map(({element:P})=>P),l=[];let r=!1,a=!1,c=-1,f=-1,g=0,d,x=[];{let P=-1;for(const u of s)u.hasAttribute("data-panel")&&(P++,u.hasAttribute("data-disabled")||(g++,c===-1&&(c=P),f=P))}if(g>1){let P=-1;for(const u of s)if(u.hasAttribute("data-panel")){P++;const p=o.find(m=>m.element===u);if(p){if(d){const m=d.element.getBoundingClientRect(),S=u.getBoundingClientRect();let v;if(a){const y=n==="horizontal"?new DOMRect(m.right,m.top,0,m.height):new DOMRect(m.left,m.bottom,m.width,0),h=n==="horizontal"?new DOMRect(S.left,S.top,0,S.height):new DOMRect(S.left,S.top,S.width,0);switch(x.length){case 0:{v=[y,h];break}case 1:{const w=x[0],E=yt({orientation:n,rects:[m,S],targetRect:w.element.getBoundingClientRect()});v=[w,E===m?h:y];break}default:{v=x;break}}}else x.length?v=x:v=[n==="horizontal"?new DOMRect(m.right,S.top,S.left-m.right,S.height):new DOMRect(S.left,m.bottom,S.width,S.top-m.bottom)];for(const y of v){let h="width"in y?y:y.element.getBoundingClientRect();const w=Be()?e.resizeTargetMinimumSize.coarse:e.resizeTargetMinimumSize.fine;if(h.width<w){const L=w-h.width;h=new DOMRect(h.x-L/2,h.y,h.width+L,h.height)}if(h.height<w){const L=w-h.height;h=new DOMRect(h.x,h.y-L/2,h.width,h.height+L)}const E=P<=c||P>f;!r&&!E&&l.push({group:e,groupSize:te({group:e}),panels:[d,p],separator:"width"in y?void 0:y,rect:h}),r=!1}}a=!1,d=p,x=[]}}else if(u.hasAttribute("data-separator")){u.ariaDisabled!==null&&(r=!0);const p=i.find(m=>m.element===u);p?x.push(p):(d=void 0,x=[])}else a=!0}return l}class Ue{#e={};addListener(t,n){const o=this.#e[t];return o===void 0?this.#e[t]=[n]:o.includes(n)||o.push(n),()=>{this.removeListener(t,n)}}emit(t,n){const o=this.#e[t];if(o!==void 0)if(o.length===1)o[0].call(null,n);else{let i=!1,s=null;const l=Array.from(o);for(let r=0;r<l.length;r++){const a=l[r];try{a.call(null,n)}catch(c){s===null&&(i=!0,s=c)}}if(i)throw s}}removeAllListeners(){this.#e={}}removeListener(t,n){const o=this.#e[t];if(o!==void 0){const i=o.indexOf(n);i>=0&&o.splice(i,1)}}}let F=new Map;const Ke=new Ue;function St(e){F=new Map(F),F.delete(e)}function Re(e,t){for(const[n]of F)if(n.id===e)return n}function H(e,t){for(const[n,o]of F)if(n.id===e)return o;if(t)throw Error(`Could not find data for Group with id ${e}`)}function q(){return F}function ye(e,t){return Ke.addListener("groupChange",n=>{n.group.id===e&&t(n)})}function j(e,t){const n=F.get(e);F=new Map(F),F.set(e,t),Ke.emit("groupChange",{group:e,prev:n,next:t})}function vt(e,t,n){let o,i={x:1/0,y:1/0};for(const s of t){const l=Ve(n,s.rect);switch(e){case"horizontal":{l.x<=i.x&&(o=s,i=l);break}case"vertical":{l.y<=i.y&&(o=s,i=l);break}}}return o?{distance:i,hitRegion:o}:void 0}function bt(e){return e!==null&&typeof e=="object"&&"nodeType"in e&&e.nodeType===Node.DOCUMENT_FRAGMENT_NODE}function xt(e,t){if(e===t)throw new Error("Cannot compare node with itself");const n={a:Ee(e),b:Ee(t)};let o;for(;n.a.at(-1)===n.b.at(-1);)o=n.a.pop(),n.b.pop();C(o,"Stacking order can only be calculated for elements with a common ancestor");const i={a:Me(Ce(n.a)),b:Me(Ce(n.b))};if(i.a===i.b){const s=o.childNodes,l={a:n.a.at(-1),b:n.b.at(-1)};let r=s.length;for(;r--;){const a=s[r];if(a===l.a)return 1;if(a===l.b)return-1}}return Math.sign(i.a-i.b)}const zt=/\b(?:position|zIndex|opacity|transform|webkitTransform|mixBlendMode|filter|webkitFilter|isolation)\b/;function Pt(e){const t=getComputedStyle(qe(e)??e).display;return t==="flex"||t==="inline-flex"}function wt(e){const t=getComputedStyle(e);return!!(t.position==="fixed"||t.zIndex!=="auto"&&(t.position!=="static"||Pt(e))||+t.opacity<1||"transform"in t&&t.transform!=="none"||"webkitTransform"in t&&t.webkitTransform!=="none"||"mixBlendMode"in t&&t.mixBlendMode!=="normal"||"filter"in t&&t.filter!=="none"||"webkitFilter"in t&&t.webkitFilter!=="none"||"isolation"in t&&t.isolation==="isolate"||zt.test(t.willChange)||t.webkitOverflowScrolling==="touch")}function Ce(e){let t=e.length;for(;t--;){const n=e[t];if(C(n,"Missing node"),wt(n))return n}return null}function Me(e){return e&&Number(getComputedStyle(e).zIndex)||0}function Ee(e){const t=[];for(;e;)t.push(e),e=qe(e);return t}function qe(e){const{parentNode:t}=e;return bt(t)?t.host:t}function Lt(e,t){return e.x<t.x+t.width&&e.x+e.width>t.x&&e.y<t.y+t.height&&e.y+e.height>t.y}function Rt({groupElement:e,hitRegion:t,pointerEventTarget:n}){if(!He(n)||n.contains(e)||e.contains(n))return!0;if(xt(n,e)>0){let o=n;for(;o;){if(o.contains(e))return!0;if(Lt(o.getBoundingClientRect(),t))return!1;o=o.parentElement}}return!0}function Se(e,t){const n=[];return t.forEach((o,i)=>{if(i.disabled)return;const s=We(i),l=vt(i.orientation,s,{x:e.clientX,y:e.clientY});l&&l.distance.x<=0&&l.distance.y<=0&&Rt({groupElement:i.element,hitRegion:l.hitRegion.rect,pointerEventTarget:e.target})&&n.push(l.hitRegion)}),n}function Ct(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!=t[n])return!1;return!0}function T(e,t,n=0){return Math.abs(O(e)-O(t))<=n}function A(e,t){return T(e,t)?0:e>t?1:-1}function Z({overrideDisabledPanels:e,panelConstraints:t,prevSize:n,size:o}){const{collapsedSize:i=0,collapsible:s,disabled:l,maxSize:r=100,minSize:a=0}=t;if(l&&!e)return n;if(A(o,a)<0)if(s){const c=(i+a)/2;A(o,c)<0?o=i:o=a}else o=a;return o=Math.min(r,o),o=O(o),o}function se({delta:e,initialLayout:t,panelConstraints:n,pivotIndices:o,prevLayout:i,trigger:s}){if(T(e,0))return t;const l=s==="imperative-api",r=Object.values(t),a=Object.values(i),c=[...r],[f,g]=o;C(f!=null,"Invalid first pivot index"),C(g!=null,"Invalid second pivot index");let d=0;switch(s){case"keyboard":{{const u=e<0?g:f,p=n[u];C(p,`Panel constraints not found for index ${u}`);const{collapsedSize:m=0,collapsible:S,minSize:v=0}=p;if(S){const y=r[u];if(C(y!=null,`Previous layout not found for panel index ${u}`),T(y,m)){const h=v-y;A(h,Math.abs(e))>0&&(e=e<0?0-h:h)}}}{const u=e<0?f:g,p=n[u];C(p,`No panel constraints found for index ${u}`);const{collapsedSize:m=0,collapsible:S,minSize:v=0}=p;if(S){const y=r[u];if(C(y!=null,`Previous layout not found for panel index ${u}`),T(y,v)){const h=y-m;A(h,Math.abs(e))>0&&(e=e<0?0-h:h)}}}break}default:{const u=e<0?g:f,p=n[u];C(p,`Panel constraints not found for index ${u}`);const m=r[u],{collapsible:S,collapsedSize:v,minSize:y}=p;if(S&&A(m,y)<0)if(e>0){const h=y-v,w=h/2,E=m+e;A(E,y)<0&&(e=A(e,w)<=0?0:h)}else{const h=y-v,w=100-h/2,E=m-e;A(E,y)<0&&(e=A(100+e,w)>0?0:-h)}break}}{const u=e<0?1:-1;let p=e<0?g:f,m=0;for(;;){const v=r[p];C(v!=null,`Previous layout not found for panel index ${p}`);const h=Z({overrideDisabledPanels:l,panelConstraints:n[p],prevSize:v,size:100})-v;if(m+=h,p+=u,p<0||p>=n.length)break}const S=Math.min(Math.abs(e),Math.abs(m));e=e<0?0-S:S}{let p=e<0?f:g;for(;p>=0&&p<n.length;){const m=Math.abs(e)-Math.abs(d),S=r[p];C(S!=null,`Previous layout not found for panel index ${p}`);const v=S-m,y=Z({overrideDisabledPanels:l,panelConstraints:n[p],prevSize:S,size:v});if(!T(S,y)&&(d+=S-y,c[p]=y,d.toFixed(3).localeCompare(Math.abs(e).toFixed(3),void 0,{numeric:!0})>=0))break;e<0?p--:p++}}if(Ct(a,c))return i;{const u=e<0?g:f,p=r[u];C(p!=null,`Previous layout not found for panel index ${u}`);const m=p+d,S=Z({overrideDisabledPanels:l,panelConstraints:n[u],prevSize:p,size:m});if(c[u]=S,!T(S,m)){let v=m-S,h=e<0?g:f;for(;h>=0&&h<n.length;){const w=c[h];C(w!=null,`Previous layout not found for panel index ${h}`);const E=w+v,L=Z({overrideDisabledPanels:l,panelConstraints:n[h],prevSize:w,size:E});if(T(w,L)||(v-=L-w,c[h]=L),T(v,0))break;e>0?h--:h++}}}const x=Object.values(c).reduce((u,p)=>p+u,0);if(!T(x,100,.1))return i;const P=Object.keys(i);return c.reduce((u,p,m)=>(u[P[m]]=p,u),{})}function W(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e)if(t[n]===void 0||A(e[n],t[n])!==0)return!1;return!0}function U({layout:e,panelConstraints:t}){const n=Object.values(e),o=[...n],i=o.reduce((r,a)=>r+a,0);if(o.length!==t.length)throw Error(`Invalid ${t.length} panel layout: ${o.map(r=>`${r}%`).join(", ")}`);if(!T(i,100)&&o.length>0)for(let r=0;r<t.length;r++){const a=o[r];C(a!=null,`No layout data found for index ${r}`);const c=100/i*a;o[r]=c}let s=0;for(let r=0;r<t.length;r++){const a=n[r];C(a!=null,`No layout data found for index ${r}`);const c=o[r];C(c!=null,`No layout data found for index ${r}`);const f=Z({overrideDisabledPanels:!0,panelConstraints:t[r],prevSize:a,size:c});c!=f&&(s+=c-f,o[r]=f)}if(!T(s,0))for(let r=0;r<t.length;r++){const a=o[r];C(a!=null,`No layout data found for index ${r}`);const c=a+s,f=Z({overrideDisabledPanels:!0,panelConstraints:t[r],prevSize:a,size:c});if(a!==f&&(s-=f-a,o[r]=f,T(s,0)))break}const l=Object.keys(e);return o.reduce((r,a,c)=>(r[l[c]]=a,r),{})}function Xe({groupId:e,panelId:t}){const n=()=>{const r=q();for(const[a,{defaultLayoutDeferred:c,derivedPanelConstraints:f,layout:g,groupSize:d,separatorToPanels:x}]of r)if(a.id===e)return{defaultLayoutDeferred:c,derivedPanelConstraints:f,group:a,groupSize:d,layout:g,separatorToPanels:x};throw Error(`Group ${e} not found`)},o=()=>{const r=n().derivedPanelConstraints.find(a=>a.panelId===t);if(r!==void 0)return r;throw Error(`Panel constraints not found for Panel ${t}`)},i=()=>{const r=n().group.panels.find(a=>a.id===t);if(r!==void 0)return r;throw Error(`Layout not found for Panel ${t}`)},s=()=>{const r=n().layout[t];if(r!==void 0)return r;throw Error(`Layout not found for Panel ${t}`)},l=r=>{const a=s();if(r===a)return;const{defaultLayoutDeferred:c,derivedPanelConstraints:f,group:g,groupSize:d,layout:x,separatorToPanels:P}=n(),u=g.panels.findIndex(v=>v.id===t),p=u===g.panels.length-1,m=se({delta:p?a-r:r-a,initialLayout:x,panelConstraints:f,pivotIndices:p?[u-1,u]:[u,u+1],prevLayout:x,trigger:"imperative-api"}),S=U({layout:m,panelConstraints:f});W(x,S)||j(g,{defaultLayoutDeferred:c,derivedPanelConstraints:f,groupSize:d,layout:S,separatorToPanels:P})};return{collapse:()=>{const{collapsible:r,collapsedSize:a}=o(),{mutableValues:c}=i(),f=s();r&&f!==a&&(c.expandToSize=f,l(a))},expand:()=>{const{collapsible:r,collapsedSize:a,minSize:c}=o(),{mutableValues:f}=i(),g=s();if(r&&g===a){let d=f.expandToSize??c;d===0&&(d=1),l(d)}},getSize:()=>{const{group:r}=n(),a=s(),{element:c}=i(),f=r.orientation==="horizontal"?c.offsetWidth:c.offsetHeight;return{asPercentage:a,inPixels:f}},isCollapsed:()=>{const{collapsible:r,collapsedSize:a}=o(),c=s();return r&&T(a,c)},resize:r=>{const{group:a}=n(),{element:c}=i(),f=te({group:a}),g=oe({groupSize:f,panelElement:c,styleProp:r}),d=O(g/f*100);l(d)}}}function ke(e){if(e.defaultPrevented)return;const t=q();Se(e,t).forEach(o=>{if(o.separator&&!o.separator.disableDoubleClick){const i=o.panels.find(s=>s.panelConstraints.defaultSize!==void 0);if(i){const s=i.panelConstraints.defaultSize,l=Xe({groupId:o.group.id,panelId:i.id});l&&s!==void 0&&(l.resize(s),e.preventDefault())}}})}function fe(e){const t=q();for(const[n]of t)if(n.separators.some(o=>o.element===e))return n;throw Error("Could not find parent Group for separator element")}function Ye({groupId:e}){const t=()=>{const n=q();for(const[o,i]of n)if(o.id===e)return{group:o,...i};throw Error(`Could not find Group with id "${e}"`)};return{getLayout(){const{defaultLayoutDeferred:n,layout:o}=t();return n?{}:o},setLayout(n){const{defaultLayoutDeferred:o,derivedPanelConstraints:i,group:s,groupSize:l,layout:r,separatorToPanels:a}=t(),c=U({layout:n,panelConstraints:i});return o?r:(W(r,c)||j(s,{defaultLayoutDeferred:o,derivedPanelConstraints:i,groupSize:l,layout:c,separatorToPanels:a}),c)}}}function B(e,t){const n=fe(e),o=H(n.id,!0),i=n.separators.find(g=>g.element===e);C(i,"Matching separator not found");const s=o.separatorToPanels.get(i);C(s,"Matching panels not found");const l=s.map(g=>n.panels.indexOf(g)),a=Ye({groupId:n.id}).getLayout(),c=se({delta:t,initialLayout:a,panelConstraints:o.derivedPanelConstraints,pivotIndices:l,prevLayout:a,trigger:"keyboard"}),f=U({layout:c,panelConstraints:o.derivedPanelConstraints});W(a,f)||j(n,{defaultLayoutDeferred:o.defaultLayoutDeferred,derivedPanelConstraints:o.derivedPanelConstraints,groupSize:o.groupSize,layout:f,separatorToPanels:o.separatorToPanels})}function Ie(e){if(e.defaultPrevented)return;const t=e.currentTarget,n=fe(t);if(!n.disabled)switch(e.key){case"ArrowDown":{e.preventDefault(),n.orientation==="vertical"&&B(t,5);break}case"ArrowLeft":{e.preventDefault(),n.orientation==="horizontal"&&B(t,-5);break}case"ArrowRight":{e.preventDefault(),n.orientation==="horizontal"&&B(t,5);break}case"ArrowUp":{e.preventDefault(),n.orientation==="vertical"&&B(t,-5);break}case"End":{e.preventDefault(),B(t,100);break}case"Enter":{e.preventDefault();const o=fe(t),i=H(o.id,!0),{derivedPanelConstraints:s,layout:l,separatorToPanels:r}=i,a=o.separators.find(d=>d.element===t);C(a,"Matching separator not found");const c=r.get(a);C(c,"Matching panels not found");const f=c[0],g=s.find(d=>d.panelId===f.id);if(C(g,"Panel metadata not found"),g.collapsible){const d=l[f.id],x=g.collapsedSize===d?o.mutableState.expandedPanelSizes[f.id]??g.minSize:g.collapsedSize;B(t,x-d)}break}case"F6":{e.preventDefault();const i=fe(t).separators.map(a=>a.element),s=Array.from(i).findIndex(a=>a===e.currentTarget);C(s!==null,"Index not found");const l=e.shiftKey?s>0?s-1:i.length-1:s+1<i.length?s+1:0;i[l].focus({preventScroll:!0});break}case"Home":{e.preventDefault(),B(t,-100);break}}}let Q={cursorFlags:0,state:"inactive"};const ve=new Ue;function K(){return Q}function Mt(e){return ve.addListener("change",e)}function Et(e){const t=Q,n={...Q};n.cursorFlags=e,Q=n,ve.emit("change",{prev:t,next:n})}function ee(e){const t=Q;Q=e,ve.emit("change",{prev:t,next:e})}function De(e){if(e.defaultPrevented)return;if(e.pointerType==="mouse"&&e.button>0)return;const t=q(),n=Se(e,t),o=new Map;let i=!1;n.forEach(s=>{s.separator&&(i||(i=!0,s.separator.element.focus({preventScroll:!0})));const l=t.get(s.group);l&&o.set(s.group,l.layout)}),ee({cursorFlags:0,hitRegions:n,initialLayoutMap:o,pointerDownAtPoint:{x:e.clientX,y:e.clientY},state:"active"}),n.length&&e.preventDefault()}const kt=e=>e,he=()=>{},Je=1,Ze=2,Qe=4,et=8,Te=3,Oe=12;let ce;function Ge(){return ce===void 0&&(ce=!1,typeof window<"u"&&(window.navigator.userAgent.includes("Chrome")||window.navigator.userAgent.includes("Firefox"))&&(ce=!0)),ce}function It({cursorFlags:e,groups:t,state:n}){let o=0,i=0;switch(n){case"active":case"hover":t.forEach(s=>{if(!s.mutableState.disableCursor)switch(s.orientation){case"horizontal":{o++;break}case"vertical":{i++;break}}})}if(!(o===0&&i===0)){switch(n){case"active":{if(e&&Ge()){const s=(e&Je)!==0,l=(e&Ze)!==0,r=(e&Qe)!==0,a=(e&et)!==0;if(s)return r?"se-resize":a?"ne-resize":"e-resize";if(l)return r?"sw-resize":a?"nw-resize":"w-resize";if(r)return"s-resize";if(a)return"n-resize"}break}}return Ge()?o>0&&i>0?"move":o>0?"ew-resize":"ns-resize":o>0&&i>0?"grab":o>0?"col-resize":"row-resize"}}const Ae=new WeakMap;function be(e){if(e.defaultView===null||e.defaultView===void 0)return;let{prevStyle:t,styleSheet:n}=Ae.get(e)??{};n===void 0&&(n=new e.defaultView.CSSStyleSheet,e.adoptedStyleSheets&&e.adoptedStyleSheets.push(n));const o=K();switch(o.state){case"active":case"hover":{const i=It({cursorFlags:o.cursorFlags,groups:o.hitRegions.map(l=>l.group),state:o.state}),s=`*, *:hover {cursor: ${i} !important; }`;if(t===s)return;t=s,i?n.cssRules.length===0?n.insertRule(s):n.replaceSync(s):n.cssRules.length===1&&n.deleteRule(0);break}case"inactive":{t=void 0,n.cssRules.length===1&&n.deleteRule(0);break}}Ae.set(e,{prevStyle:t,styleSheet:n})}function tt({document:e,event:t,hitRegions:n,initialLayoutMap:o,mountedGroups:i,pointerDownAtPoint:s,prevCursorFlags:l}){let r=0;n.forEach(c=>{const{group:f,groupSize:g}=c,{orientation:d,panels:x}=f,{disableCursor:P}=f.mutableState;let u=0;s?d==="horizontal"?u=(t.clientX-s.x)/g*100:u=(t.clientY-s.y)/g*100:d==="horizontal"?u=t.clientX<0?-100:100:u=t.clientY<0?-100:100;const p=o.get(f),m=i.get(f);if(!p||!m)return;const{defaultLayoutDeferred:S,derivedPanelConstraints:v,groupSize:y,layout:h,separatorToPanels:w}=m;if(v&&h&&w){const E=se({delta:u,initialLayout:p,panelConstraints:v,pivotIndices:c.panels.map(L=>x.indexOf(L)),prevLayout:h,trigger:"mouse-or-touch"});if(W(E,h)){if(u!==0&&!P)switch(d){case"horizontal":{r|=u<0?Je:Ze;break}case"vertical":{r|=u<0?Qe:et;break}}}else j(c.group,{defaultLayoutDeferred:S,derivedPanelConstraints:v,groupSize:y,layout:E,separatorToPanels:w})}});let a=0;t.movementX===0?a|=l&Te:a|=r&Te,t.movementY===0?a|=l&Oe:a|=r&Oe,Et(a),be(e)}function Fe(e){const t=q(),n=K();switch(n.state){case"active":tt({document:e.currentTarget,event:e,hitRegions:n.hitRegions,initialLayoutMap:n.initialLayoutMap,mountedGroups:t,prevCursorFlags:n.cursorFlags})}}function Ne(e){if(e.defaultPrevented)return;const t=K(),n=q();switch(t.state){case"active":{if(e.buttons===0){ee({cursorFlags:0,state:"inactive"}),t.hitRegions.forEach(o=>{const i=H(o.group.id,!0);j(o.group,i)});return}for(const o of t.hitRegions)if(o.separator){const{element:i}=o.separator;i.hasPointerCapture?.(e.pointerId)||i.setPointerCapture?.(e.pointerId)}tt({document:e.currentTarget,event:e,hitRegions:t.hitRegions,initialLayoutMap:t.initialLayoutMap,mountedGroups:n,pointerDownAtPoint:t.pointerDownAtPoint,prevCursorFlags:t.cursorFlags});break}default:{const o=Se(e,n);o.length===0?t.state!=="inactive"&&ee({cursorFlags:0,state:"inactive"}):ee({cursorFlags:0,hitRegions:o,state:"hover"}),be(e.currentTarget);break}}}function _e(e){if(e.relatedTarget instanceof HTMLIFrameElement)switch(K().state){case"hover":ee({cursorFlags:0,state:"inactive"})}}function je(e){if(e.defaultPrevented)return;if(e.pointerType==="mouse"&&e.button>0)return;const t=K();switch(t.state){case"active":ee({cursorFlags:0,state:"inactive"}),t.hitRegions.length>0&&(be(e.currentTarget),t.hitRegions.forEach(n=>{const o=H(n.group.id,!0);j(n.group,o)}),e.preventDefault())}}function $e(e){let t=0,n=0;const o={};for(const s of e)if(s.defaultSize!==void 0){t++;const l=O(s.defaultSize);n+=l,o[s.panelId]=l}else o[s.panelId]=void 0;const i=e.length-t;if(i!==0){const s=O((100-n)/i);for(const l of e)l.defaultSize===void 0&&(o[l.panelId]=s)}return o}function Dt(e,t,n){if(!n[0])return;const i=e.panels.find(c=>c.element===t);if(!i||!i.onResize)return;const s=te({group:e}),l=e.orientation==="horizontal"?i.element.offsetWidth:i.element.offsetHeight,r=i.mutableValues.prevSize,a={asPercentage:O(l/s*100),inPixels:l};i.mutableValues.prevSize=a,i.onResize(a,i.id,r)}function Tt(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const o in e)if(e[o]!==t[o])return!1;return!0}function Ot({group:e,nextGroupSize:t,prevGroupSize:n,prevLayout:o}){if(n<=0||t<=0||n===t)return o;let i=0,s=0,l=!1;const r=new Map,a=[];for(const g of e.panels){const d=o[g.id]??0;switch(g.panelConstraints.groupResizeBehavior){case"preserve-pixel-size":{l=!0;const x=d/100*n,P=O(x/t*100);r.set(g.id,P),i+=P;break}case"preserve-relative-size":default:{a.push(g.id),s+=d;break}}}if(!l||a.length===0)return o;const c=100-i,f={...o};if(r.forEach((g,d)=>{f[d]=g}),s>0)for(const g of a){const d=o[g]??0;f[g]=O(d/s*c)}else{const g=O(c/a.length);for(const d of a)f[d]=g}return f}function Gt(e,t){const n=e.map(i=>i.id),o=Object.keys(t);if(n.length!==o.length)return!1;for(const i of n)if(!o.includes(i))return!1;return!0}const J=new Map;function At(e){let t=!0;C(e.element.ownerDocument.defaultView,"Cannot register an unmounted Group");const n=e.element.ownerDocument.defaultView.ResizeObserver,o=new Set,i=new Set,s=new n(u=>{for(const p of u){const{borderBoxSize:m,target:S}=p;if(S===e.element){if(t){const v=te({group:e});if(v===0)return;const y=H(e.id);if(!y)return;const h=me(e),w=y.defaultLayoutDeferred?$e(h):y.layout,E=Ot({group:e,nextGroupSize:v,prevGroupSize:y.groupSize,prevLayout:w}),L=U({layout:E,panelConstraints:h});if(!y.defaultLayoutDeferred&&W(y.layout,L)&&Tt(y.derivedPanelConstraints,h)&&y.groupSize===v)return;j(e,{defaultLayoutDeferred:!1,derivedPanelConstraints:h,groupSize:v,layout:L,separatorToPanels:y.separatorToPanels})}}else Dt(e,S,m)}});s.observe(e.element),e.panels.forEach(u=>{C(!o.has(u.id),`Panel ids must be unique; id "${u.id}" was used more than once`),o.add(u.id),u.onResize&&s.observe(u.element)});const l=te({group:e}),r=me(e),a=e.panels.map(({id:u})=>u).join(",");let c=e.mutableState.defaultLayout;c&&(Gt(e.panels,c)||(c=void 0));const f=e.mutableState.layouts[a]??c??$e(r),g=U({layout:f,panelConstraints:r}),d=e.element.ownerDocument;J.set(d,(J.get(d)??0)+1);const x=new Map;return We(e).forEach(u=>{u.separator&&x.set(u.separator,u.panels)}),j(e,{defaultLayoutDeferred:l===0,derivedPanelConstraints:r,groupSize:l,layout:g,separatorToPanels:x}),e.separators.forEach(u=>{C(!i.has(u.id),`Separator ids must be unique; id "${u.id}" was used more than once`),i.add(u.id),u.element.addEventListener("keydown",Ie)}),J.get(d)===1&&(d.addEventListener("dblclick",ke,!0),d.addEventListener("pointerdown",De,!0),d.addEventListener("pointerleave",Fe),d.addEventListener("pointermove",Ne),d.addEventListener("pointerout",_e),d.addEventListener("pointerup",je,!0)),function(){t=!1,J.set(d,Math.max(0,(J.get(d)??0)-1)),St(e),e.separators.forEach(p=>{p.element.removeEventListener("keydown",Ie)}),J.get(d)||(d.removeEventListener("dblclick",ke,!0),d.removeEventListener("pointerdown",De,!0),d.removeEventListener("pointerleave",Fe),d.removeEventListener("pointermove",Ne),d.removeEventListener("pointerout",_e),d.removeEventListener("pointerup",je,!0)),s.disconnect()}}function Ft(){const[e,t]=b.useState({}),n=b.useCallback(()=>t({}),[]);return[e,n]}function xe(e){const t=b.useId();return`${e??t}`}const X=typeof window<"u"?b.useLayoutEffect:b.useEffect;function ie(e){const t=b.useRef(e);return X(()=>{t.current=e},[e]),b.useCallback((...n)=>t.current?.(...n),[t])}function ze(...e){return ie(t=>{e.forEach(n=>{if(n)switch(typeof n){case"function":{n(t);break}case"object":{n.current=t;break}}})})}function Pe(e){const t=b.useRef({...e});return X(()=>{for(const n in e)t.current[n]=e[n]},[e]),t.current}const nt=b.createContext(null);function Nt(e,t){const n=b.useRef({getLayout:()=>({}),setLayout:kt});b.useImperativeHandle(t,()=>n.current,[]),X(()=>{Object.assign(n.current,Ye({groupId:e}))})}function ot({children:e,className:t,defaultLayout:n,disableCursor:o,disabled:i,elementRef:s,groupRef:l,id:r,onLayoutChange:a,onLayoutChanged:c,orientation:f="horizontal",resizeTargetMinimumSize:g={coarse:20,fine:10},style:d,...x}){const P=b.useRef({onLayoutChange:{},onLayoutChanged:{}}),u=ie(z=>{W(P.current.onLayoutChange,z)||(P.current.onLayoutChange=z,a?.(z))}),p=ie(z=>{W(P.current.onLayoutChanged,z)||(P.current.onLayoutChanged=z,c?.(z))}),m=xe(r),S=b.useRef(null),[v,y]=Ft(),h=b.useRef({lastExpandedPanelSizes:{},layouts:{},panels:[],resizeTargetMinimumSize:g,separators:[]}),w=ze(S,s);Nt(m,l);const E=ie((z,R)=>{const I=K(),M=Re(z),k=H(z);if(k){let D=!1;switch(I.state){case"active":{D=I.hitRegions.some(V=>V.group===M);break}}return{flexGrow:k.layout[R]??1,pointerEvents:D?"none":void 0}}if(n?.[R])return{flexGrow:n?.[R]}}),L=Pe({defaultLayout:n,disableCursor:o}),G=b.useMemo(()=>({get disableCursor(){return!!L.disableCursor},getPanelStyles:E,id:m,orientation:f,registerPanel:z=>{const R=h.current;return R.panels=ge(f,[...R.panels,z]),y(),()=>{R.panels=R.panels.filter(I=>I!==z),y()}},registerSeparator:z=>{const R=h.current;return R.separators=ge(f,[...R.separators,z]),y(),()=>{R.separators=R.separators.filter(I=>I!==z),y()}},updatePanelProps:(z,{disabled:R})=>{const M=h.current.panels.find(V=>V.id===z);M&&(M.panelConstraints.disabled=R);const k=Re(m),D=H(m);k&&D&&j(k,{...D,derivedPanelConstraints:me(k)})},updateSeparatorProps:(z,{disabled:R,disableDoubleClick:I})=>{const k=h.current.separators.find(D=>D.id===z);k&&(k.disabled=R,k.disableDoubleClick=I)}}),[E,m,y,f,L]),N=b.useRef(null);return X(()=>{const z=S.current;if(z===null)return;const R=h.current;let I;if(L.defaultLayout!==void 0&&Object.keys(L.defaultLayout).length===R.panels.length){I={};for(const $ of R.panels){const Y=L.defaultLayout[$.id];Y!==void 0&&(I[$.id]=Y)}}const M={disabled:!!i,element:z,id:m,mutableState:{defaultLayout:I,disableCursor:!!L.disableCursor,expandedPanelSizes:h.current.lastExpandedPanelSizes,layouts:h.current.layouts},orientation:f,panels:R.panels,resizeTargetMinimumSize:R.resizeTargetMinimumSize,separators:R.separators};N.current=M;const k=At(M),{defaultLayoutDeferred:D,derivedPanelConstraints:V,layout:ae}=H(M.id,!0);!D&&V.length>0&&(u(ae),p(ae));const ne=ye(m,$=>{const{defaultLayoutDeferred:Y,derivedPanelConstraints:Le,layout:le}=$.next;if(Y||Le.length===0)return;const st=M.panels.map(({id:_})=>_).join(",");M.mutableState.layouts[st]=le,Le.forEach(_=>{if(_.collapsible){const{layout:pe}=$.prev??{};if(pe){const lt=T(_.collapsedSize,le[_.panelId]),ut=T(_.collapsedSize,pe[_.panelId]);lt&&!ut&&(M.mutableState.expandedPanelSizes[_.panelId]=pe[_.panelId])}}});const at=K().state!=="active";u(le),at&&p(le)});return()=>{N.current=null,k(),ne()}},[i,m,p,u,f,v,L]),b.useEffect(()=>{const z=N.current;z&&(z.mutableState.defaultLayout=n,z.mutableState.disableCursor=!!o)}),re.jsx(nt.Provider,{value:G,children:re.jsx("div",{...x,className:t,"data-group":!0,"data-testid":m,id:m,ref:w,style:{height:"100%",width:"100%",overflow:"hidden",...d,display:"flex",flexDirection:f==="horizontal"?"row":"column",flexWrap:"nowrap",touchAction:f==="horizontal"?"pan-y":"pan-x"},children:e})})}ot.displayName="Group";function de(e,t){return`react-resizable-panels:${[e,...t].join(":")}`}function _t({id:e,panelIds:t,storage:n}){const o=de(e,[]),i=n.getItem(o);if(i)try{const s=JSON.parse(i);if(t){const l=t.join(","),r=s[l];if(r&&Array.isArray(r.layout)&&t.length===r.layout.length){const a={};for(let c=0;c<t.length;c++)a[t[c]]=r.layout[c];return a}}else{const l=Object.keys(s);if(l.length===1){const r=s[l[0]];if(r&&Array.isArray(r.layout)){const a=l[0].split(",");if(a.length===r.layout.length){const c={};for(let f=0;f<a.length;f++)c[a[f]]=r.layout[f];return c}}}}}catch{}}function jt({debounceSaveMs:e=100,panelIds:t,storage:n=localStorage,...o}){const i=t!==void 0,s="id"in o?o.id:o.groupId,l=de(s,t??[]),r=b.useSyncExternalStore($t,()=>n.getItem(l),()=>n.getItem(l)),a=b.useMemo(()=>{if(r){const u=JSON.parse(r),p=Object.values(u);if(Array.from(p).every(m=>typeof m=="number"))return u}},[r]),c=b.useMemo(()=>{if(!a)return _t({id:s,panelIds:t,storage:n})},[a,s,t,n]),f=a??c,g=b.useRef(null),d=b.useCallback(()=>{const u=g.current;u&&(g.current=null,clearTimeout(u))},[]);b.useLayoutEffect(()=>()=>{d()},[d]);const x=b.useCallback(u=>{d();let p;i?p=de(s,Object.keys(u)):p=de(s,[]);try{n.setItem(p,JSON.stringify(u))}catch(m){console.error(m)}},[d,i,s,n]),P=b.useCallback(u=>{d(),e===0?x(u):g.current=setTimeout(()=>{x(u)},e)},[d,e,x]);return{defaultLayout:f,onLayoutChange:P,onLayoutChanged:x}}function $t(){return function(){}}function Ht(){return b.useState(null)}function Vt(){return b.useRef(null)}function we(){const e=b.useContext(nt);return C(e,"Group Context not found; did you render a Panel or Separator outside of a Group?"),e}function Bt(e,t){const{id:n}=we(),o=b.useRef({collapse:he,expand:he,getSize:()=>({asPercentage:0,inPixels:0}),isCollapsed:()=>!1,resize:he});b.useImperativeHandle(t,()=>o.current,[]),X(()=>{Object.assign(o.current,Xe({groupId:n,panelId:e}))})}function it({children:e,className:t,collapsedSize:n="0%",collapsible:o=!1,defaultSize:i,disabled:s,elementRef:l,groupResizeBehavior:r="preserve-relative-size",id:a,maxSize:c="100%",minSize:f="0%",onResize:g,panelRef:d,style:x,...P}){const u=!!a,p=xe(a),m=Pe({disabled:s}),S=b.useRef(null),v=ze(S,l),{getPanelStyles:y,id:h,orientation:w,registerPanel:E,updatePanelProps:L}=we(),G=g!==null,N=ie((M,k,D)=>{g?.(M,a,D)});X(()=>{const M=S.current;if(M!==null){const k={element:M,id:p,idIsStable:u,mutableValues:{expandToSize:void 0,prevSize:void 0},onResize:G?N:void 0,panelConstraints:{groupResizeBehavior:r,collapsedSize:n,collapsible:o,defaultSize:i,disabled:m.disabled,maxSize:c,minSize:f}};return E(k)}},[r,n,o,i,G,p,u,c,f,N,E,m]),b.useEffect(()=>{L(p,{disabled:s})},[s,p,L]),Bt(p,d);const z=()=>{const M=y(h,p);if(M)return JSON.stringify(M)},R=b.useSyncExternalStore(M=>ye(h,M),z,z);let I;return R?I=JSON.parse(R):i?I={flexGrow:void 0,flexShrink:void 0,flexBasis:i}:I={flexGrow:1},re.jsx("div",{...P,"data-disabled":s||void 0,"data-panel":!0,"data-testid":p,id:p,ref:v,style:{...Wt,display:"flex",flexBasis:0,flexShrink:1,overflow:"visible",...I},children:re.jsx("div",{className:t,style:{maxHeight:"100%",maxWidth:"100%",flexGrow:1,overflow:"auto",...x,touchAction:w==="horizontal"?"pan-y":"pan-x"},children:e})})}it.displayName="Panel";const Wt={minHeight:0,maxHeight:"100%",height:"auto",minWidth:0,maxWidth:"100%",width:"auto",border:"none",borderWidth:0,padding:0,margin:0};function Ut(){return b.useState(null)}function Kt(){return b.useRef(null)}function qt({layout:e,panelConstraints:t,panelId:n,panelIndex:o}){let i,s;const l=e[n],r=t.find(a=>a.panelId===n);if(r){const a=r.maxSize,c=r.collapsible?r.collapsedSize:r.minSize,f=[o,o+1];s=U({layout:se({delta:c-l,initialLayout:e,panelConstraints:t,pivotIndices:f,prevLayout:e}),panelConstraints:t})[n],i=U({layout:se({delta:a-l,initialLayout:e,panelConstraints:t,pivotIndices:f,prevLayout:e}),panelConstraints:t})[n]}return{valueControls:n,valueMax:i,valueMin:s,valueNow:l}}function rt({children:e,className:t,disabled:n,disableDoubleClick:o,elementRef:i,id:s,style:l,...r}){const a=xe(s),c=Pe({disabled:n,disableDoubleClick:o}),[f,g]=b.useState({}),[d,x]=b.useState("inactive"),[P,u]=b.useState(!1),p=b.useRef(null),m=ze(p,i),{disableCursor:S,id:v,orientation:y,registerSeparator:h,updateSeparatorProps:w}=we(),E=y==="horizontal"?"vertical":"horizontal";X(()=>{const N=p.current;if(N!==null){const z={disabled:c.disabled,disableDoubleClick:c.disableDoubleClick,element:N,id:a},R=h(z),I=Mt(k=>{x(k.next.state!=="inactive"&&k.next.hitRegions.some(D=>D.separator===z)?k.next.state:"inactive")}),M=ye(v,k=>{const{derivedPanelConstraints:D,layout:V,separatorToPanels:ae}=k.next,ne=ae.get(z);if(ne){const $=ne[0],Y=ne.indexOf($);g(qt({layout:V,panelConstraints:D,panelId:$.id,panelIndex:Y}))}});return()=>{I(),M(),R()}}},[v,a,h,c]),b.useEffect(()=>{w(a,{disabled:n,disableDoubleClick:o})},[n,o,a,w]);let L;n&&!S&&(L="not-allowed");let G;if(n)G="disabled";else switch(d){case"active":{G="active";break}default:P?G="focus":G=d}return re.jsx("div",{...r,"aria-controls":f.valueControls,"aria-disabled":n||void 0,"aria-orientation":E,"aria-valuemax":f.valueMax,"aria-valuemin":f.valueMin,"aria-valuenow":f.valueNow,children:e,className:t,"data-separator":G,"data-testid":a,id:a,onBlur:()=>u(!1),onFocus:()=>u(!0),ref:m,role:"separator",style:{flexBasis:"auto",cursor:L,...l,flexGrow:0,flexShrink:0,touchAction:"none"},tabIndex:n?void 0:0})}rt.displayName="Separator";exports.Group=ot;exports.Panel=it;exports.Separator=rt;exports.isCoarsePointer=Be;exports.useDefaultLayout=jt;exports.useGroupCallbackRef=Ht;exports.useGroupRef=Vt;exports.usePanelCallbackRef=Ut;exports.usePanelRef=Kt;
|
|
1
|
+
"use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const re=require("react/jsx-runtime"),z=require("react");function ct(e,t){const n=getComputedStyle(e),o=parseFloat(n.fontSize);return t*o}function ft(e,t){const n=getComputedStyle(e.ownerDocument.body),o=parseFloat(n.fontSize);return t*o}function dt(e){return e/100*window.innerHeight}function pt(e){return e/100*window.innerWidth}function ht(e){switch(typeof e){case"number":return[e,"px"];case"string":{const t=parseFloat(e);return e.endsWith("%")?[t,"%"]:e.endsWith("px")?[t,"px"]:e.endsWith("rem")?[t,"rem"]:e.endsWith("em")?[t,"em"]:e.endsWith("vh")?[t,"vh"]:e.endsWith("vw")?[t,"vw"]:[t,"%"]}}}function oe({groupSize:e,panelElement:t,styleProp:n}){let o;const[i,r]=ht(n);switch(r){case"%":{o=i/100*e;break}case"px":{o=i;break}case"rem":{o=ft(t,i);break}case"em":{o=ct(t,i);break}case"vh":{o=dt(i);break}case"vw":{o=pt(i);break}}return o}function T(e){return parseFloat(e.toFixed(3))}function te({group:e}){const{orientation:t,panels:n}=e;return n.reduce((o,i)=>(o+=t==="horizontal"?i.element.offsetWidth:i.element.offsetHeight,o),0)}function me(e){const{panels:t}=e,n=te({group:e});return n===0?t.map(o=>({groupResizeBehavior:o.panelConstraints.groupResizeBehavior,collapsedSize:0,collapsible:o.panelConstraints.collapsible===!0,defaultSize:void 0,disabled:o.panelConstraints.disabled,minSize:0,maxSize:100,panelId:o.id})):t.map(o=>{const{element:i,panelConstraints:r}=o;let f=0;if(r.collapsedSize!==void 0){const u=oe({groupSize:n,panelElement:i,styleProp:r.collapsedSize});f=T(u/n*100)}let a;if(r.defaultSize!==void 0){const u=oe({groupSize:n,panelElement:i,styleProp:r.defaultSize});a=T(u/n*100)}let s=0;if(r.minSize!==void 0){const u=oe({groupSize:n,panelElement:i,styleProp:r.minSize});s=T(u/n*100)}let l=100;if(r.maxSize!==void 0){const u=oe({groupSize:n,panelElement:i,styleProp:r.maxSize});l=T(u/n*100)}return{groupResizeBehavior:r.groupResizeBehavior,collapsedSize:f,collapsible:r.collapsible===!0,defaultSize:a,disabled:r.disabled,minSize:s,maxSize:l,panelId:o.id}})}function C(e,t="Assertion error"){if(!e)throw Error(t)}function ge(e,t){return Array.from(t).sort(e==="horizontal"?mt:gt)}function mt(e,t){const n=e.element.offsetLeft-t.element.offsetLeft;return n!==0?n:e.element.offsetWidth-t.element.offsetWidth}function gt(e,t){const n=e.element.offsetTop-t.element.offsetTop;return n!==0?n:e.element.offsetHeight-t.element.offsetHeight}function He(e){return e!==null&&typeof e=="object"&&"nodeType"in e&&e.nodeType===Node.ELEMENT_NODE}function Ve(e,t){return{x:e.x>=t.left&&e.x<=t.right?0:Math.min(Math.abs(e.x-t.left),Math.abs(e.x-t.right)),y:e.y>=t.top&&e.y<=t.bottom?0:Math.min(Math.abs(e.y-t.top),Math.abs(e.y-t.bottom))}}function yt({orientation:e,rects:t,targetRect:n}){const o={x:n.x+n.width/2,y:n.y+n.height/2};let i,r=Number.MAX_VALUE;for(const f of t){const{x:a,y:s}=Ve(o,f),l=e==="horizontal"?a:s;l<r&&(r=l,i=f)}return C(i,"No rect found"),i}let ue;function Be(){return ue===void 0&&(typeof matchMedia=="function"?ue=!!matchMedia("(pointer:coarse)").matches:ue=!1),ue}function We(e){const{element:t,orientation:n,panels:o,separators:i}=e,r=ge(n,Array.from(t.children).filter(He).map(x=>({element:x}))).map(({element:x})=>x),f=[];let a=!1,s=!1,l=-1,u=-1,h=0,d,S=[];{let x=-1;for(const c of r)c.hasAttribute("data-panel")&&(x++,c.hasAttribute("data-disabled")||(h++,l===-1&&(l=x),u=x))}if(h>1){let x=-1;for(const c of r)if(c.hasAttribute("data-panel")){x++;const p=o.find(m=>m.element===c);if(p){if(d){const m=d.element.getBoundingClientRect(),v=c.getBoundingClientRect();let b;if(s){const y=n==="horizontal"?new DOMRect(m.right,m.top,0,m.height):new DOMRect(m.left,m.bottom,m.width,0),g=n==="horizontal"?new DOMRect(v.left,v.top,0,v.height):new DOMRect(v.left,v.top,v.width,0);switch(S.length){case 0:{b=[y,g];break}case 1:{const w=S[0],E=yt({orientation:n,rects:[m,v],targetRect:w.element.getBoundingClientRect()});b=[w,E===m?g:y];break}default:{b=S;break}}}else S.length?b=S:b=[n==="horizontal"?new DOMRect(m.right,v.top,v.left-m.right,v.height):new DOMRect(v.left,m.bottom,v.width,v.top-m.bottom)];for(const y of b){let g="width"in y?y:y.element.getBoundingClientRect();const w=Be()?e.resizeTargetMinimumSize.coarse:e.resizeTargetMinimumSize.fine;if(g.width<w){const L=w-g.width;g=new DOMRect(g.x-L/2,g.y,g.width+L,g.height)}if(g.height<w){const L=w-g.height;g=new DOMRect(g.x,g.y-L/2,g.width,g.height+L)}const E=x<=l||x>u;!a&&!E&&f.push({group:e,groupSize:te({group:e}),panels:[d,p],separator:"width"in y?void 0:y,rect:g}),a=!1}}s=!1,d=p,S=[]}}else if(c.hasAttribute("data-separator")){c.ariaDisabled!==null&&(a=!0);const p=i.find(m=>m.element===c);p?S.push(p):(d=void 0,S=[])}else s=!0}return f}class Ue{#e={};addListener(t,n){const o=this.#e[t];return o===void 0?this.#e[t]=[n]:o.includes(n)||o.push(n),()=>{this.removeListener(t,n)}}emit(t,n){const o=this.#e[t];if(o!==void 0)if(o.length===1)o[0].call(null,n);else{let i=!1,r=null;const f=Array.from(o);for(let a=0;a<f.length;a++){const s=f[a];try{s.call(null,n)}catch(l){r===null&&(i=!0,r=l)}}if(i)throw r}}removeAllListeners(){this.#e={}}removeListener(t,n){const o=this.#e[t];if(o!==void 0){const i=o.indexOf(n);i>=0&&o.splice(i,1)}}}let F=new Map;const Ke=new Ue;function St(e){F=new Map(F),F.delete(e)}function Re(e,t){for(const[n]of F)if(n.id===e)return n}function H(e,t){for(const[n,o]of F)if(n.id===e)return o;if(t)throw Error(`Could not find data for Group with id ${e}`)}function q(){return F}function ye(e,t){return Ke.addListener("groupChange",n=>{n.group.id===e&&t(n)})}function j(e,t){const n=F.get(e);F=new Map(F),F.set(e,t),Ke.emit("groupChange",{group:e,prev:n,next:t})}function vt(e,t,n){let o,i={x:1/0,y:1/0};for(const r of t){const f=Ve(n,r.rect);switch(e){case"horizontal":{f.x<=i.x&&(o=r,i=f);break}case"vertical":{f.y<=i.y&&(o=r,i=f);break}}}return o?{distance:i,hitRegion:o}:void 0}function bt(e){return e!==null&&typeof e=="object"&&"nodeType"in e&&e.nodeType===Node.DOCUMENT_FRAGMENT_NODE}function zt(e,t){if(e===t)throw new Error("Cannot compare node with itself");const n={a:Ee(e),b:Ee(t)};let o;for(;n.a.at(-1)===n.b.at(-1);)o=n.a.pop(),n.b.pop();C(o,"Stacking order can only be calculated for elements with a common ancestor");const i={a:Me(Ce(n.a)),b:Me(Ce(n.b))};if(i.a===i.b){const r=o.childNodes,f={a:n.a.at(-1),b:n.b.at(-1)};let a=r.length;for(;a--;){const s=r[a];if(s===f.a)return 1;if(s===f.b)return-1}}return Math.sign(i.a-i.b)}const xt=/\b(?:position|zIndex|opacity|transform|webkitTransform|mixBlendMode|filter|webkitFilter|isolation)\b/;function Pt(e){const t=getComputedStyle(qe(e)??e).display;return t==="flex"||t==="inline-flex"}function wt(e){const t=getComputedStyle(e);return!!(t.position==="fixed"||t.zIndex!=="auto"&&(t.position!=="static"||Pt(e))||+t.opacity<1||"transform"in t&&t.transform!=="none"||"webkitTransform"in t&&t.webkitTransform!=="none"||"mixBlendMode"in t&&t.mixBlendMode!=="normal"||"filter"in t&&t.filter!=="none"||"webkitFilter"in t&&t.webkitFilter!=="none"||"isolation"in t&&t.isolation==="isolate"||xt.test(t.willChange)||t.webkitOverflowScrolling==="touch")}function Ce(e){let t=e.length;for(;t--;){const n=e[t];if(C(n,"Missing node"),wt(n))return n}return null}function Me(e){return e&&Number(getComputedStyle(e).zIndex)||0}function Ee(e){const t=[];for(;e;)t.push(e),e=qe(e);return t}function qe(e){const{parentNode:t}=e;return bt(t)?t.host:t}function Lt(e,t){return e.x<t.x+t.width&&e.x+e.width>t.x&&e.y<t.y+t.height&&e.y+e.height>t.y}function Rt({groupElement:e,hitRegion:t,pointerEventTarget:n}){if(!He(n)||n.contains(e)||e.contains(n))return!0;if(zt(n,e)>0){let o=n;for(;o;){if(o.contains(e))return!0;if(Lt(o.getBoundingClientRect(),t))return!1;o=o.parentElement}}return!0}function Se(e,t){const n=[];return t.forEach((o,i)=>{if(i.disabled)return;const r=We(i),f=vt(i.orientation,r,{x:e.clientX,y:e.clientY});f&&f.distance.x<=0&&f.distance.y<=0&&Rt({groupElement:i.element,hitRegion:f.hitRegion.rect,pointerEventTarget:e.target})&&n.push(f.hitRegion)}),n}function Ct(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!=t[n])return!1;return!0}function D(e,t,n=0){return Math.abs(T(e)-T(t))<=n}function A(e,t){return D(e,t)?0:e>t?1:-1}function Z({overrideDisabledPanels:e,panelConstraints:t,prevSize:n,size:o}){const{collapsedSize:i=0,collapsible:r,disabled:f,maxSize:a=100,minSize:s=0}=t;if(f&&!e)return n;if(A(o,s)<0)if(r){const l=(i+s)/2;A(o,l)<0?o=i:o=s}else o=s;return o=Math.min(a,o),o=T(o),o}function se({delta:e,initialLayout:t,panelConstraints:n,pivotIndices:o,prevLayout:i,trigger:r}){if(D(e,0))return t;const f=r==="imperative-api",a=Object.values(t),s=Object.values(i),l=[...a],[u,h]=o;C(u!=null,"Invalid first pivot index"),C(h!=null,"Invalid second pivot index");let d=0;switch(r){case"keyboard":{{const c=e<0?h:u,p=n[c];C(p,`Panel constraints not found for index ${c}`);const{collapsedSize:m=0,collapsible:v,minSize:b=0}=p;if(v){const y=a[c];if(C(y!=null,`Previous layout not found for panel index ${c}`),D(y,m)){const g=b-y;A(g,Math.abs(e))>0&&(e=e<0?0-g:g)}}}{const c=e<0?u:h,p=n[c];C(p,`No panel constraints found for index ${c}`);const{collapsedSize:m=0,collapsible:v,minSize:b=0}=p;if(v){const y=a[c];if(C(y!=null,`Previous layout not found for panel index ${c}`),D(y,b)){const g=y-m;A(g,Math.abs(e))>0&&(e=e<0?0-g:g)}}}break}default:{const c=e<0?h:u,p=n[c];C(p,`Panel constraints not found for index ${c}`);const m=a[c],{collapsible:v,collapsedSize:b,minSize:y}=p;if(v&&A(m,y)<0)if(e>0){const g=y-b,w=g/2,E=m+e;A(E,y)<0&&(e=A(e,w)<=0?0:g)}else{const g=y-b,w=100-g/2,E=m-e;A(E,y)<0&&(e=A(100+e,w)>0?0:-g)}break}}{const c=e<0?1:-1;let p=e<0?h:u,m=0;for(;;){const b=a[p];C(b!=null,`Previous layout not found for panel index ${p}`);const g=Z({overrideDisabledPanels:f,panelConstraints:n[p],prevSize:b,size:100})-b;if(m+=g,p+=c,p<0||p>=n.length)break}const v=Math.min(Math.abs(e),Math.abs(m));e=e<0?0-v:v}{let p=e<0?u:h;for(;p>=0&&p<n.length;){const m=Math.abs(e)-Math.abs(d),v=a[p];C(v!=null,`Previous layout not found for panel index ${p}`);const b=v-m,y=Z({overrideDisabledPanels:f,panelConstraints:n[p],prevSize:v,size:b});if(!D(v,y)&&(d+=v-y,l[p]=y,d.toFixed(3).localeCompare(Math.abs(e).toFixed(3),void 0,{numeric:!0})>=0))break;e<0?p--:p++}}if(Ct(s,l))return i;{const c=e<0?h:u,p=a[c];C(p!=null,`Previous layout not found for panel index ${c}`);const m=p+d,v=Z({overrideDisabledPanels:f,panelConstraints:n[c],prevSize:p,size:m});if(l[c]=v,!D(v,m)){let b=m-v,g=e<0?h:u;for(;g>=0&&g<n.length;){const w=l[g];C(w!=null,`Previous layout not found for panel index ${g}`);const E=w+b,L=Z({overrideDisabledPanels:f,panelConstraints:n[g],prevSize:w,size:E});if(D(w,L)||(b-=L-w,l[g]=L),D(b,0))break;e>0?g--:g++}}}const S=Object.values(l).reduce((c,p)=>p+c,0);if(!D(S,100,.1))return i;const x=Object.keys(i);return l.reduce((c,p,m)=>(c[x[m]]=p,c),{})}function W(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e)if(t[n]===void 0||A(e[n],t[n])!==0)return!1;return!0}function U({layout:e,panelConstraints:t}){const n=Object.values(e),o=[...n],i=o.reduce((a,s)=>a+s,0);if(o.length!==t.length)throw Error(`Invalid ${t.length} panel layout: ${o.map(a=>`${a}%`).join(", ")}`);if(!D(i,100)&&o.length>0)for(let a=0;a<t.length;a++){const s=o[a];C(s!=null,`No layout data found for index ${a}`);const l=100/i*s;o[a]=l}let r=0;for(let a=0;a<t.length;a++){const s=n[a];C(s!=null,`No layout data found for index ${a}`);const l=o[a];C(l!=null,`No layout data found for index ${a}`);const u=Z({overrideDisabledPanels:!0,panelConstraints:t[a],prevSize:s,size:l});l!=u&&(r+=l-u,o[a]=u)}if(!D(r,0))for(let a=0;a<t.length;a++){const s=o[a];C(s!=null,`No layout data found for index ${a}`);const l=s+r,u=Z({overrideDisabledPanels:!0,panelConstraints:t[a],prevSize:s,size:l});if(s!==u&&(r-=u-s,o[a]=u,D(r,0)))break}const f=Object.keys(e);return o.reduce((a,s,l)=>(a[f[l]]=s,a),{})}function Xe({groupId:e,panelId:t}){const n=()=>{const s=q();for(const[l,{defaultLayoutDeferred:u,derivedPanelConstraints:h,layout:d,groupSize:S,separatorToPanels:x}]of s)if(l.id===e)return{defaultLayoutDeferred:u,derivedPanelConstraints:h,group:l,groupSize:S,layout:d,separatorToPanels:x};throw Error(`Group ${e} not found`)},o=()=>{const s=n().derivedPanelConstraints.find(l=>l.panelId===t);if(s!==void 0)return s;throw Error(`Panel constraints not found for Panel ${t}`)},i=()=>{const s=n().group.panels.find(l=>l.id===t);if(s!==void 0)return s;throw Error(`Layout not found for Panel ${t}`)},r=()=>{const s=n().layout[t];if(s!==void 0)return s;throw Error(`Layout not found for Panel ${t}`)},f=({nextSize:s,panels:l,prevLayout:u,derivedPanelConstraints:h})=>{const d=r(),S=l.findIndex(m=>m.id===t),x=S===0,c=S===l.length-1;if(c&&s<d&&(x||l.slice(0,S).every((m,v)=>{const b=h[v];return b?.collapsible&&D(b.collapsedSize,u[b.panelId])}))){const m=l.slice(0,S).reduce((v,b)=>v+u[b.id],0);return{...u,[t]:T(100-m)}}return se({delta:c?d-s:s-d,initialLayout:u,panelConstraints:h,pivotIndices:c?[S-1,S]:[S,S+1],prevLayout:u,trigger:"imperative-api"})},a=s=>{const l=r();if(s===l)return;const{defaultLayoutDeferred:u,derivedPanelConstraints:h,group:d,groupSize:S,layout:x,separatorToPanels:c}=n(),p=f({nextSize:s,panels:d.panels,prevLayout:x,derivedPanelConstraints:h}),m=U({layout:p,panelConstraints:h});W(x,m)||j(d,{defaultLayoutDeferred:u,derivedPanelConstraints:h,groupSize:S,layout:m,separatorToPanels:c})};return{collapse:()=>{const{collapsible:s,collapsedSize:l}=o(),{mutableValues:u}=i(),h=r();s&&h!==l&&(u.expandToSize=h,a(l))},expand:()=>{const{collapsible:s,collapsedSize:l,minSize:u}=o(),{mutableValues:h}=i(),d=r();if(s&&d===l){let S=h.expandToSize??u;S===0&&(S=1),a(S)}},getSize:()=>{const{group:s}=n(),l=r(),{element:u}=i(),h=s.orientation==="horizontal"?u.offsetWidth:u.offsetHeight;return{asPercentage:l,inPixels:h}},isCollapsed:()=>{const{collapsible:s,collapsedSize:l}=o(),u=r();return s&&D(l,u)},resize:s=>{const{group:l}=n(),{element:u}=i(),h=te({group:l}),d=oe({groupSize:h,panelElement:u,styleProp:s}),S=T(d/h*100);a(S)}}}function ke(e){if(e.defaultPrevented)return;const t=q();Se(e,t).forEach(o=>{if(o.separator&&!o.separator.disableDoubleClick){const i=o.panels.find(r=>r.panelConstraints.defaultSize!==void 0);if(i){const r=i.panelConstraints.defaultSize,f=Xe({groupId:o.group.id,panelId:i.id});f&&r!==void 0&&(f.resize(r),e.preventDefault())}}})}function fe(e){const t=q();for(const[n]of t)if(n.separators.some(o=>o.element===e))return n;throw Error("Could not find parent Group for separator element")}function Ye({groupId:e}){const t=()=>{const n=q();for(const[o,i]of n)if(o.id===e)return{group:o,...i};throw Error(`Could not find Group with id "${e}"`)};return{getLayout(){const{defaultLayoutDeferred:n,layout:o}=t();return n?{}:o},setLayout(n){const{defaultLayoutDeferred:o,derivedPanelConstraints:i,group:r,groupSize:f,layout:a,separatorToPanels:s}=t(),l=U({layout:n,panelConstraints:i});return o?a:(W(a,l)||j(r,{defaultLayoutDeferred:o,derivedPanelConstraints:i,groupSize:f,layout:l,separatorToPanels:s}),l)}}}function B(e,t){const n=fe(e),o=H(n.id,!0),i=n.separators.find(h=>h.element===e);C(i,"Matching separator not found");const r=o.separatorToPanels.get(i);C(r,"Matching panels not found");const f=r.map(h=>n.panels.indexOf(h)),s=Ye({groupId:n.id}).getLayout(),l=se({delta:t,initialLayout:s,panelConstraints:o.derivedPanelConstraints,pivotIndices:f,prevLayout:s,trigger:"keyboard"}),u=U({layout:l,panelConstraints:o.derivedPanelConstraints});W(s,u)||j(n,{defaultLayoutDeferred:o.defaultLayoutDeferred,derivedPanelConstraints:o.derivedPanelConstraints,groupSize:o.groupSize,layout:u,separatorToPanels:o.separatorToPanels})}function Ie(e){if(e.defaultPrevented)return;const t=e.currentTarget,n=fe(t);if(!n.disabled)switch(e.key){case"ArrowDown":{e.preventDefault(),n.orientation==="vertical"&&B(t,5);break}case"ArrowLeft":{e.preventDefault(),n.orientation==="horizontal"&&B(t,-5);break}case"ArrowRight":{e.preventDefault(),n.orientation==="horizontal"&&B(t,5);break}case"ArrowUp":{e.preventDefault(),n.orientation==="vertical"&&B(t,-5);break}case"End":{e.preventDefault(),B(t,100);break}case"Enter":{e.preventDefault();const o=fe(t),i=H(o.id,!0),{derivedPanelConstraints:r,layout:f,separatorToPanels:a}=i,s=o.separators.find(d=>d.element===t);C(s,"Matching separator not found");const l=a.get(s);C(l,"Matching panels not found");const u=l[0],h=r.find(d=>d.panelId===u.id);if(C(h,"Panel metadata not found"),h.collapsible){const d=f[u.id],S=h.collapsedSize===d?o.mutableState.expandedPanelSizes[u.id]??h.minSize:h.collapsedSize;B(t,S-d)}break}case"F6":{e.preventDefault();const i=fe(t).separators.map(s=>s.element),r=Array.from(i).findIndex(s=>s===e.currentTarget);C(r!==null,"Index not found");const f=e.shiftKey?r>0?r-1:i.length-1:r+1<i.length?r+1:0;i[f].focus({preventScroll:!0});break}case"Home":{e.preventDefault(),B(t,-100);break}}}let Q={cursorFlags:0,state:"inactive"};const ve=new Ue;function K(){return Q}function Mt(e){return ve.addListener("change",e)}function Et(e){const t=Q,n={...Q};n.cursorFlags=e,Q=n,ve.emit("change",{prev:t,next:n})}function ee(e){const t=Q;Q=e,ve.emit("change",{prev:t,next:e})}function De(e){if(e.defaultPrevented)return;if(e.pointerType==="mouse"&&e.button>0)return;const t=q(),n=Se(e,t),o=new Map;let i=!1;n.forEach(r=>{r.separator&&(i||(i=!0,r.separator.element.focus({focusVisible:!1,preventScroll:!0})));const f=t.get(r.group);f&&o.set(r.group,f.layout)}),ee({cursorFlags:0,hitRegions:n,initialLayoutMap:o,pointerDownAtPoint:{x:e.clientX,y:e.clientY},state:"active"}),n.length&&e.preventDefault()}const kt=e=>e,he=()=>{},Je=1,Ze=2,Qe=4,et=8,Oe=3,Te=12;let ce;function Ge(){return ce===void 0&&(ce=!1,typeof window<"u"&&(window.navigator.userAgent.includes("Chrome")||window.navigator.userAgent.includes("Firefox"))&&(ce=!0)),ce}function It({cursorFlags:e,groups:t,state:n}){let o=0,i=0;switch(n){case"active":case"hover":t.forEach(r=>{if(!r.mutableState.disableCursor)switch(r.orientation){case"horizontal":{o++;break}case"vertical":{i++;break}}})}if(!(o===0&&i===0)){switch(n){case"active":{if(e&&Ge()){const r=(e&Je)!==0,f=(e&Ze)!==0,a=(e&Qe)!==0,s=(e&et)!==0;if(r)return a?"se-resize":s?"ne-resize":"e-resize";if(f)return a?"sw-resize":s?"nw-resize":"w-resize";if(a)return"s-resize";if(s)return"n-resize"}break}}return Ge()?o>0&&i>0?"move":o>0?"ew-resize":"ns-resize":o>0&&i>0?"grab":o>0?"col-resize":"row-resize"}}const Ae=new WeakMap;function be(e){if(e.defaultView===null||e.defaultView===void 0)return;let{prevStyle:t,styleSheet:n}=Ae.get(e)??{};n===void 0&&(n=new e.defaultView.CSSStyleSheet,e.adoptedStyleSheets&&(Object.isExtensible(e.adoptedStyleSheets)?e.adoptedStyleSheets.push(n):e.adoptedStyleSheets=[...e.adoptedStyleSheets,n]));const o=K();switch(o.state){case"active":case"hover":{const i=It({cursorFlags:o.cursorFlags,groups:o.hitRegions.map(f=>f.group),state:o.state}),r=`*, *:hover {cursor: ${i} !important; }`;if(t===r)return;t=r,i?n.cssRules.length===0?n.insertRule(r):n.replaceSync(r):n.cssRules.length===1&&n.deleteRule(0);break}case"inactive":{t=void 0,n.cssRules.length===1&&n.deleteRule(0);break}}Ae.set(e,{prevStyle:t,styleSheet:n})}function tt({document:e,event:t,hitRegions:n,initialLayoutMap:o,mountedGroups:i,pointerDownAtPoint:r,prevCursorFlags:f}){let a=0;n.forEach(l=>{const{group:u,groupSize:h}=l,{orientation:d,panels:S}=u,{disableCursor:x}=u.mutableState;let c=0;r?d==="horizontal"?c=(t.clientX-r.x)/h*100:c=(t.clientY-r.y)/h*100:d==="horizontal"?c=t.clientX<0?-100:100:c=t.clientY<0?-100:100;const p=o.get(u),m=i.get(u);if(!p||!m)return;const{defaultLayoutDeferred:v,derivedPanelConstraints:b,groupSize:y,layout:g,separatorToPanels:w}=m;if(b&&g&&w){const E=se({delta:c,initialLayout:p,panelConstraints:b,pivotIndices:l.panels.map(L=>S.indexOf(L)),prevLayout:g,trigger:"mouse-or-touch"});if(W(E,g)){if(c!==0&&!x)switch(d){case"horizontal":{a|=c<0?Je:Ze;break}case"vertical":{a|=c<0?Qe:et;break}}}else j(l.group,{defaultLayoutDeferred:v,derivedPanelConstraints:b,groupSize:y,layout:E,separatorToPanels:w})}});let s=0;t.movementX===0?s|=f&Oe:s|=a&Oe,t.movementY===0?s|=f&Te:s|=a&Te,Et(s),be(e)}function Fe(e){const t=q(),n=K();switch(n.state){case"active":tt({document:e.currentTarget,event:e,hitRegions:n.hitRegions,initialLayoutMap:n.initialLayoutMap,mountedGroups:t,prevCursorFlags:n.cursorFlags})}}function Ne(e){if(e.defaultPrevented)return;const t=K(),n=q();switch(t.state){case"active":{if(e.buttons===0){ee({cursorFlags:0,state:"inactive"}),t.hitRegions.forEach(o=>{const i=H(o.group.id,!0);j(o.group,i)});return}for(const o of t.hitRegions)if(o.separator){const{element:i}=o.separator;i.hasPointerCapture?.(e.pointerId)||i.setPointerCapture?.(e.pointerId)}tt({document:e.currentTarget,event:e,hitRegions:t.hitRegions,initialLayoutMap:t.initialLayoutMap,mountedGroups:n,pointerDownAtPoint:t.pointerDownAtPoint,prevCursorFlags:t.cursorFlags});break}default:{const o=Se(e,n);o.length===0?t.state!=="inactive"&&ee({cursorFlags:0,state:"inactive"}):ee({cursorFlags:0,hitRegions:o,state:"hover"}),be(e.currentTarget);break}}}function _e(e){if(e.relatedTarget instanceof HTMLIFrameElement)switch(K().state){case"hover":ee({cursorFlags:0,state:"inactive"})}}function je(e){if(e.defaultPrevented)return;if(e.pointerType==="mouse"&&e.button>0)return;const t=K();switch(t.state){case"active":ee({cursorFlags:0,state:"inactive"}),t.hitRegions.length>0&&(be(e.currentTarget),t.hitRegions.forEach(n=>{const o=H(n.group.id,!0);j(n.group,o)}),e.preventDefault())}}function $e(e){let t=0,n=0;const o={};for(const r of e)if(r.defaultSize!==void 0){t++;const f=T(r.defaultSize);n+=f,o[r.panelId]=f}else o[r.panelId]=void 0;const i=e.length-t;if(i!==0){const r=T((100-n)/i);for(const f of e)f.defaultSize===void 0&&(o[f.panelId]=r)}return o}function Dt(e,t,n){if(!n[0])return;const i=e.panels.find(l=>l.element===t);if(!i||!i.onResize)return;const r=te({group:e}),f=e.orientation==="horizontal"?i.element.offsetWidth:i.element.offsetHeight,a=i.mutableValues.prevSize,s={asPercentage:T(f/r*100),inPixels:f};i.mutableValues.prevSize=s,i.onResize(s,i.id,a)}function Ot(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const o in e)if(e[o]!==t[o])return!1;return!0}function Tt({group:e,nextGroupSize:t,prevGroupSize:n,prevLayout:o}){if(n<=0||t<=0||n===t)return o;let i=0,r=0,f=!1;const a=new Map,s=[];for(const h of e.panels){const d=o[h.id]??0;switch(h.panelConstraints.groupResizeBehavior){case"preserve-pixel-size":{f=!0;const S=d/100*n,x=T(S/t*100);a.set(h.id,x),i+=x;break}case"preserve-relative-size":default:{s.push(h.id),r+=d;break}}}if(!f||s.length===0)return o;const l=100-i,u={...o};if(a.forEach((h,d)=>{u[d]=h}),r>0)for(const h of s){const d=o[h]??0;u[h]=T(d/r*l)}else{const h=T(l/s.length);for(const d of s)u[d]=h}return u}function Gt(e,t){const n=e.map(i=>i.id),o=Object.keys(t);if(n.length!==o.length)return!1;for(const i of n)if(!o.includes(i))return!1;return!0}const J=new Map;function At(e){let t=!0;C(e.element.ownerDocument.defaultView,"Cannot register an unmounted Group");const n=e.element.ownerDocument.defaultView.ResizeObserver,o=new Set,i=new Set,r=new n(c=>{for(const p of c){const{borderBoxSize:m,target:v}=p;if(v===e.element){if(t){const b=te({group:e});if(b===0)return;const y=H(e.id);if(!y)return;const g=me(e),w=y.defaultLayoutDeferred?$e(g):y.layout,E=Tt({group:e,nextGroupSize:b,prevGroupSize:y.groupSize,prevLayout:w}),L=U({layout:E,panelConstraints:g});if(!y.defaultLayoutDeferred&&W(y.layout,L)&&Ot(y.derivedPanelConstraints,g)&&y.groupSize===b)return;j(e,{defaultLayoutDeferred:!1,derivedPanelConstraints:g,groupSize:b,layout:L,separatorToPanels:y.separatorToPanels})}}else Dt(e,v,m)}});r.observe(e.element),e.panels.forEach(c=>{C(!o.has(c.id),`Panel ids must be unique; id "${c.id}" was used more than once`),o.add(c.id),c.onResize&&r.observe(c.element)});const f=te({group:e}),a=me(e),s=e.panels.map(({id:c})=>c).join(",");let l=e.mutableState.defaultLayout;l&&(Gt(e.panels,l)||(l=void 0));const u=e.mutableState.layouts[s]??l??$e(a),h=U({layout:u,panelConstraints:a}),d=e.element.ownerDocument;J.set(d,(J.get(d)??0)+1);const S=new Map;return We(e).forEach(c=>{c.separator&&S.set(c.separator,c.panels)}),j(e,{defaultLayoutDeferred:f===0,derivedPanelConstraints:a,groupSize:f,layout:h,separatorToPanels:S}),e.separators.forEach(c=>{C(!i.has(c.id),`Separator ids must be unique; id "${c.id}" was used more than once`),i.add(c.id),c.element.addEventListener("keydown",Ie)}),J.get(d)===1&&(d.addEventListener("dblclick",ke,!0),d.addEventListener("pointerdown",De,!0),d.addEventListener("pointerleave",Fe),d.addEventListener("pointermove",Ne),d.addEventListener("pointerout",_e),d.addEventListener("pointerup",je,!0)),function(){t=!1,J.set(d,Math.max(0,(J.get(d)??0)-1)),St(e),e.separators.forEach(p=>{p.element.removeEventListener("keydown",Ie)}),J.get(d)||(d.removeEventListener("dblclick",ke,!0),d.removeEventListener("pointerdown",De,!0),d.removeEventListener("pointerleave",Fe),d.removeEventListener("pointermove",Ne),d.removeEventListener("pointerout",_e),d.removeEventListener("pointerup",je,!0)),r.disconnect()}}function Ft(){const[e,t]=z.useState({}),n=z.useCallback(()=>t({}),[]);return[e,n]}function ze(e){const t=z.useId();return`${e??t}`}const X=typeof window<"u"?z.useLayoutEffect:z.useEffect;function ie(e){const t=z.useRef(e);return X(()=>{t.current=e},[e]),z.useCallback((...n)=>t.current?.(...n),[t])}function xe(...e){return ie(t=>{e.forEach(n=>{if(n)switch(typeof n){case"function":{n(t);break}case"object":{n.current=t;break}}})})}function Pe(e){const t=z.useRef({...e});return X(()=>{for(const n in e)t.current[n]=e[n]},[e]),t.current}const nt=z.createContext(null);function Nt(e,t){const n=z.useRef({getLayout:()=>({}),setLayout:kt});z.useImperativeHandle(t,()=>n.current,[]),X(()=>{Object.assign(n.current,Ye({groupId:e}))})}function ot({children:e,className:t,defaultLayout:n,disableCursor:o,disabled:i,elementRef:r,groupRef:f,id:a,onLayoutChange:s,onLayoutChanged:l,orientation:u="horizontal",resizeTargetMinimumSize:h={coarse:20,fine:10},style:d,...S}){const x=z.useRef({onLayoutChange:{},onLayoutChanged:{}}),c=ie(P=>{W(x.current.onLayoutChange,P)||(x.current.onLayoutChange=P,s?.(P))}),p=ie(P=>{W(x.current.onLayoutChanged,P)||(x.current.onLayoutChanged=P,l?.(P))}),m=ze(a),v=z.useRef(null),[b,y]=Ft(),g=z.useRef({lastExpandedPanelSizes:{},layouts:{},panels:[],resizeTargetMinimumSize:h,separators:[]}),w=xe(v,r);Nt(m,f);const E=ie((P,R)=>{const I=K(),M=Re(P),k=H(P);if(k){let O=!1;switch(I.state){case"active":{O=I.hitRegions.some(V=>V.group===M);break}}return{flexGrow:k.layout[R]??1,pointerEvents:O?"none":void 0}}if(n?.[R])return{flexGrow:n?.[R]}}),L=Pe({defaultLayout:n,disableCursor:o}),G=z.useMemo(()=>({get disableCursor(){return!!L.disableCursor},getPanelStyles:E,id:m,orientation:u,registerPanel:P=>{const R=g.current;return R.panels=ge(u,[...R.panels,P]),y(),()=>{R.panels=R.panels.filter(I=>I!==P),y()}},registerSeparator:P=>{const R=g.current;return R.separators=ge(u,[...R.separators,P]),y(),()=>{R.separators=R.separators.filter(I=>I!==P),y()}},updatePanelProps:(P,{disabled:R})=>{const M=g.current.panels.find(V=>V.id===P);M&&(M.panelConstraints.disabled=R);const k=Re(m),O=H(m);k&&O&&j(k,{...O,derivedPanelConstraints:me(k)})},updateSeparatorProps:(P,{disabled:R,disableDoubleClick:I})=>{const k=g.current.separators.find(O=>O.id===P);k&&(k.disabled=R,k.disableDoubleClick=I)}}),[E,m,y,u,L]),N=z.useRef(null);return X(()=>{const P=v.current;if(P===null)return;const R=g.current;let I;if(L.defaultLayout!==void 0&&Object.keys(L.defaultLayout).length===R.panels.length){I={};for(const $ of R.panels){const Y=L.defaultLayout[$.id];Y!==void 0&&(I[$.id]=Y)}}const M={disabled:!!i,element:P,id:m,mutableState:{defaultLayout:I,disableCursor:!!L.disableCursor,expandedPanelSizes:g.current.lastExpandedPanelSizes,layouts:g.current.layouts},orientation:u,panels:R.panels,resizeTargetMinimumSize:R.resizeTargetMinimumSize,separators:R.separators};N.current=M;const k=At(M),{defaultLayoutDeferred:O,derivedPanelConstraints:V,layout:ae}=H(M.id,!0);!O&&V.length>0&&(c(ae),p(ae));const ne=ye(m,$=>{const{defaultLayoutDeferred:Y,derivedPanelConstraints:Le,layout:le}=$.next;if(Y||Le.length===0)return;const st=M.panels.map(({id:_})=>_).join(",");M.mutableState.layouts[st]=le,Le.forEach(_=>{if(_.collapsible){const{layout:pe}=$.prev??{};if(pe){const lt=D(_.collapsedSize,le[_.panelId]),ut=D(_.collapsedSize,pe[_.panelId]);lt&&!ut&&(M.mutableState.expandedPanelSizes[_.panelId]=pe[_.panelId])}}});const at=K().state!=="active";c(le),at&&p(le)});return()=>{N.current=null,k(),ne()}},[i,m,p,c,u,b,L]),z.useEffect(()=>{const P=N.current;P&&(P.mutableState.defaultLayout=n,P.mutableState.disableCursor=!!o)}),re.jsx(nt.Provider,{value:G,children:re.jsx("div",{...S,className:t,"data-group":!0,"data-testid":m,id:m,ref:w,style:{height:"100%",width:"100%",overflow:"hidden",...d,display:"flex",flexDirection:u==="horizontal"?"row":"column",flexWrap:"nowrap",touchAction:u==="horizontal"?"pan-y":"pan-x"},children:e})})}ot.displayName="Group";function de(e,t){return`react-resizable-panels:${[e,...t].join(":")}`}function _t({id:e,panelIds:t,storage:n}){const o=de(e,[]),i=n.getItem(o);if(i)try{const r=JSON.parse(i);if(t){const f=t.join(","),a=r[f];if(a&&Array.isArray(a.layout)&&t.length===a.layout.length){const s={};for(let l=0;l<t.length;l++)s[t[l]]=a.layout[l];return s}}else{const f=Object.keys(r);if(f.length===1){const a=r[f[0]];if(a&&Array.isArray(a.layout)){const s=f[0].split(",");if(s.length===a.layout.length){const l={};for(let u=0;u<s.length;u++)l[s[u]]=a.layout[u];return l}}}}}catch{}}function jt({debounceSaveMs:e=100,panelIds:t,storage:n=localStorage,...o}){const i=t!==void 0,r="id"in o?o.id:o.groupId,f=de(r,t??[]),a=z.useSyncExternalStore($t,()=>n.getItem(f),()=>n.getItem(f)),s=z.useMemo(()=>{if(a){const c=JSON.parse(a),p=Object.values(c);if(Array.from(p).every(m=>typeof m=="number"))return c}},[a]),l=z.useMemo(()=>{if(!s)return _t({id:r,panelIds:t,storage:n})},[s,r,t,n]),u=s??l,h=z.useRef(null),d=z.useCallback(()=>{const c=h.current;c&&(h.current=null,clearTimeout(c))},[]);z.useLayoutEffect(()=>()=>{d()},[d]);const S=z.useCallback(c=>{d();let p;i?p=de(r,Object.keys(c)):p=de(r,[]);try{n.setItem(p,JSON.stringify(c))}catch(m){console.error(m)}},[d,i,r,n]),x=z.useCallback(c=>{d(),e===0?S(c):h.current=setTimeout(()=>{S(c)},e)},[d,e,S]);return{defaultLayout:u,onLayoutChange:x,onLayoutChanged:S}}function $t(){return function(){}}function Ht(){return z.useState(null)}function Vt(){return z.useRef(null)}function we(){const e=z.useContext(nt);return C(e,"Group Context not found; did you render a Panel or Separator outside of a Group?"),e}function Bt(e,t){const{id:n}=we(),o=z.useRef({collapse:he,expand:he,getSize:()=>({asPercentage:0,inPixels:0}),isCollapsed:()=>!1,resize:he});z.useImperativeHandle(t,()=>o.current,[]),X(()=>{Object.assign(o.current,Xe({groupId:n,panelId:e}))})}function it({children:e,className:t,collapsedSize:n="0%",collapsible:o=!1,defaultSize:i,disabled:r,elementRef:f,groupResizeBehavior:a="preserve-relative-size",id:s,maxSize:l="100%",minSize:u="0%",onResize:h,panelRef:d,style:S,...x}){const c=!!s,p=ze(s),m=Pe({disabled:r}),v=z.useRef(null),b=xe(v,f),{getPanelStyles:y,id:g,orientation:w,registerPanel:E,updatePanelProps:L}=we(),G=h!==null,N=ie((M,k,O)=>{h?.(M,s,O)});X(()=>{const M=v.current;if(M!==null){const k={element:M,id:p,idIsStable:c,mutableValues:{expandToSize:void 0,prevSize:void 0},onResize:G?N:void 0,panelConstraints:{groupResizeBehavior:a,collapsedSize:n,collapsible:o,defaultSize:i,disabled:m.disabled,maxSize:l,minSize:u}};return E(k)}},[a,n,o,i,G,p,c,l,u,N,E,m]),z.useEffect(()=>{L(p,{disabled:r})},[r,p,L]),Bt(p,d);const P=()=>{const M=y(g,p);if(M)return JSON.stringify(M)},R=z.useSyncExternalStore(M=>ye(g,M),P,P);let I;return R?I=JSON.parse(R):i?I={flexGrow:void 0,flexShrink:void 0,flexBasis:i}:I={flexGrow:1},re.jsx("div",{...x,"data-disabled":r||void 0,"data-panel":!0,"data-testid":p,id:p,ref:b,style:{...Wt,display:"flex",flexBasis:0,flexShrink:1,overflow:"visible",...I},children:re.jsx("div",{className:t,style:{maxHeight:"100%",maxWidth:"100%",flexGrow:1,overflow:"auto",...S,touchAction:w==="horizontal"?"pan-y":"pan-x"},children:e})})}it.displayName="Panel";const Wt={minHeight:0,maxHeight:"100%",height:"auto",minWidth:0,maxWidth:"100%",width:"auto",border:"none",borderWidth:0,padding:0,margin:0};function Ut(){return z.useState(null)}function Kt(){return z.useRef(null)}function qt({layout:e,panelConstraints:t,panelId:n,panelIndex:o}){let i,r;const f=e[n],a=t.find(s=>s.panelId===n);if(a){const s=a.maxSize,l=a.collapsible?a.collapsedSize:a.minSize,u=[o,o+1];r=U({layout:se({delta:l-f,initialLayout:e,panelConstraints:t,pivotIndices:u,prevLayout:e}),panelConstraints:t})[n],i=U({layout:se({delta:s-f,initialLayout:e,panelConstraints:t,pivotIndices:u,prevLayout:e}),panelConstraints:t})[n]}return{valueControls:n,valueMax:i,valueMin:r,valueNow:f}}function rt({children:e,className:t,disabled:n,disableDoubleClick:o,elementRef:i,id:r,style:f,...a}){const s=ze(r),l=Pe({disabled:n,disableDoubleClick:o}),[u,h]=z.useState({}),[d,S]=z.useState("inactive"),[x,c]=z.useState(!1),p=z.useRef(null),m=xe(p,i),{disableCursor:v,id:b,orientation:y,registerSeparator:g,updateSeparatorProps:w}=we(),E=y==="horizontal"?"vertical":"horizontal";X(()=>{const N=p.current;if(N!==null){const P={disabled:l.disabled,disableDoubleClick:l.disableDoubleClick,element:N,id:s},R=g(P),I=Mt(k=>{S(k.next.state!=="inactive"&&k.next.hitRegions.some(O=>O.separator===P)?k.next.state:"inactive")}),M=ye(b,k=>{const{derivedPanelConstraints:O,layout:V,separatorToPanels:ae}=k.next,ne=ae.get(P);if(ne){const $=ne[0],Y=ne.indexOf($);h(qt({layout:V,panelConstraints:O,panelId:$.id,panelIndex:Y}))}});return()=>{I(),M(),R()}}},[b,s,g,l]),z.useEffect(()=>{w(s,{disabled:n,disableDoubleClick:o})},[n,o,s,w]);let L;n&&!v&&(L="not-allowed");let G;if(n)G="disabled";else switch(d){case"active":{G="active";break}default:x?G="focus":G=d}return re.jsx("div",{...a,"aria-controls":u.valueControls,"aria-disabled":n||void 0,"aria-orientation":E,"aria-valuemax":u.valueMax,"aria-valuemin":u.valueMin,"aria-valuenow":u.valueNow,children:e,className:t,"data-separator":G,"data-testid":s,id:s,onBlur:()=>c(!1),onFocus:()=>c(!0),ref:m,role:"separator",style:{flexBasis:"auto",cursor:L,...f,flexGrow:0,flexShrink:0,touchAction:"none"},tabIndex:n?void 0:0})}rt.displayName="Separator";exports.Group=ot;exports.Panel=it;exports.Separator=rt;exports.isCoarsePointer=Be;exports.useDefaultLayout=jt;exports.useGroupCallbackRef=Ht;exports.useGroupRef=Vt;exports.usePanelCallbackRef=Ut;exports.usePanelRef=Kt;
|
|
2
2
|
//# sourceMappingURL=react-resizable-panels.cjs.map
|