react-resizable-panels 4.5.9 → 4.6.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.
package/README.md
CHANGED
|
@@ -235,6 +235,11 @@ Falls back to <code>useId</code> when not provided.</p>
|
|
|
235
235
|
<tr>
|
|
236
236
|
<td>defaultSize</td>
|
|
237
237
|
<td><p>Default size of Panel within its parent group; default is auto-assigned based on the total number of Panels.</p>
|
|
238
|
+
</td>
|
|
239
|
+
</tr>
|
|
240
|
+
<tr>
|
|
241
|
+
<td>disabled</td>
|
|
242
|
+
<td><p>When disabled, a panel cannot be resized either directly or indirectly (by resizing another panel).</p>
|
|
238
243
|
</td>
|
|
239
244
|
</tr>
|
|
240
245
|
<tr>
|
|
@@ -333,6 +338,13 @@ Falls back to <code>useId</code> when not provided.</p>
|
|
|
333
338
|
<td><p>CSS properties.</p>
|
|
334
339
|
<p>ℹ️ Use the <code>data-separator</code> attribute for custom <em>hover</em> and <em>active</em> styles</p>
|
|
335
340
|
<p>⚠️ The following properties cannot be overridden: <code>flex-grow</code>, <code>flex-shrink</code></p>
|
|
341
|
+
</td>
|
|
342
|
+
</tr>
|
|
343
|
+
<tr>
|
|
344
|
+
<td>disabled</td>
|
|
345
|
+
<td><p>When disabled, the separator cannot be used to resize its neighboring panels.</p>
|
|
346
|
+
<p>ℹ️ The panels may still be resized indirectly (while other panels are being resized).
|
|
347
|
+
To prevent a panel from being resized at all, it needs to also be disabled.</p>
|
|
336
348
|
</td>
|
|
337
349
|
</tr>
|
|
338
350
|
<tr>
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const X=require("react/jsx-runtime"),x=require("react");function b(e,t="Assertion error"){if(!e)throw Error(t)}function U({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 ue(e,t){return Array.from(t).sort(e==="horizontal"?Ze:Qe)}function Ze(e,t){const n=e.element.offsetLeft-t.element.offsetLeft;return n!==0?n:e.element.offsetWidth-t.element.offsetWidth}function Qe(e,t){const n=e.element.offsetTop-t.element.offsetTop;return n!==0?n:e.element.offsetHeight-t.element.offsetHeight}function Ie(e){return e!==null&&typeof e=="object"&&"nodeType"in e&&e.nodeType===Node.ELEMENT_NODE}function De(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 et({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 l of t){const{x:s,y:a}=De(o,l),c=e==="horizontal"?s:a;c<r&&(r=c,i=l)}return b(i,"No rect found"),i}let ne;function Oe(){return ne===void 0&&(typeof matchMedia=="function"?ne=!!matchMedia("(pointer:coarse)").matches:ne=!1),ne}function Te(e){const{element:t,orientation:n,panels:o,separators:i}=e,r=ue(n,Array.from(t.children).filter(Ie).map(u=>({element:u}))).map(({element:u})=>u),l=[];let s=!1,a,c=[];for(const u of r)if(u.hasAttribute("data-panel")){const h=o.find(S=>S.element===u);if(h){if(a){const S=a.element.getBoundingClientRect(),m=u.getBoundingClientRect();let f;if(s){const d=n==="horizontal"?new DOMRect(S.right,S.top,0,S.height):new DOMRect(S.left,S.bottom,S.width,0),p=n==="horizontal"?new DOMRect(m.left,m.top,0,m.height):new DOMRect(m.left,m.top,m.width,0);switch(c.length){case 0:{f=[d,p];break}case 1:{const g=c[0],v=et({orientation:n,rects:[S,m],targetRect:g.element.getBoundingClientRect()});f=[g,v===S?p:d];break}default:{f=c;break}}}else c.length?f=c:f=[n==="horizontal"?new DOMRect(S.right,m.top,m.left-S.right,m.height):new DOMRect(m.left,S.bottom,m.width,m.top-S.bottom)];for(const d of f){let p="width"in d?d:d.element.getBoundingClientRect();const g=Oe()?e.resizeTargetMinimumSize.coarse:e.resizeTargetMinimumSize.fine;if(p.width<g){const v=g-p.width;p=new DOMRect(p.x-v/2,p.y,p.width+v,p.height)}if(p.height<g){const v=g-p.height;p=new DOMRect(p.x,p.y-v/2,p.width,p.height+v)}l.push({group:e,groupSize:U({group:e}),panels:[a,h],separator:"width"in d?void 0:d,rect:p})}}s=!1,a=h,c=[]}}else if(u.hasAttribute("data-separator")){const h=i.find(S=>S.element===u);h?c.push(h):(a=void 0,c=[])}else s=!0;return l}function tt(e,t){const n=getComputedStyle(e),o=parseFloat(n.fontSize);return t*o}function nt(e,t){const n=getComputedStyle(e.ownerDocument.body),o=parseFloat(n.fontSize);return t*o}function ot(e){return e/100*window.innerHeight}function it(e){return e/100*window.innerWidth}function rt(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]=rt(n);switch(r){case"%":{o=i/100*e;break}case"px":{o=i;break}case"rem":{o=nt(t,i);break}case"em":{o=tt(t,i);break}case"vh":{o=ot(i);break}case"vw":{o=it(i);break}}return o}function D(e){return parseFloat(e.toFixed(3))}function ge(e){const{panels:t}=e,n=U({group:e});return n===0?t.map(o=>({collapsedSize:0,collapsible:o.panelConstraints.collapsible===!0,defaultSize:void 0,minSize:0,maxSize:100,panelId:o.id})):t.map(o=>{const{element:i,panelConstraints:r}=o;let l=0;if(r.collapsedSize!==void 0){const u=oe({groupSize:n,panelElement:i,styleProp:r.collapsedSize});l=D(u/n*100)}let s;if(r.defaultSize!==void 0){const u=oe({groupSize:n,panelElement:i,styleProp:r.defaultSize});s=D(u/n*100)}let a=0;if(r.minSize!==void 0){const u=oe({groupSize:n,panelElement:i,styleProp:r.minSize});a=D(u/n*100)}let c=100;if(r.maxSize!==void 0){const u=oe({groupSize:n,panelElement:i,styleProp:r.maxSize});c=D(u/n*100)}return{collapsedSize:l,collapsible:r.collapsible===!0,defaultSize:s,minSize:a,maxSize:c,panelId:o.id}})}class st{#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 l=Array.from(o);for(let s=0;s<l.length;s++){const a=l[s];try{a.call(null,n)}catch(c){r===null&&(i=!0,r=c)}}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)}}}function M(e,t,n=0){return Math.abs(D(e)-D(t))<=n}let I={cursorFlags:0,interactionState:{state:"inactive"},mountedGroups:new Map};const T=new st;function k(){return I}function E(e){const t=typeof e=="function"?e(I):e;if(I===t)return I;const n=I;return I={...I,...t},t.cursorFlags!==void 0&&T.emit("cursorFlagsChange",I.cursorFlags),t.interactionState!==void 0&&T.emit("interactionStateChange",I.interactionState),t.mountedGroups!==void 0&&(I.mountedGroups.forEach((o,i)=>{o.derivedPanelConstraints.forEach(r=>{if(r.collapsible){const{layout:l}=n.mountedGroups.get(i)??{};if(l){const s=M(r.collapsedSize,o.layout[r.panelId]),a=M(r.collapsedSize,l[r.panelId]);s&&!a&&(i.inMemoryLastExpandedPanelSizes[r.panelId]=l[r.panelId])}}})}),T.emit("mountedGroupsChange",I.mountedGroups)),I}function at(e,t,n){let o,i={x:1/0,y:1/0};for(const r of t){const l=De(n,r.rect);switch(e){case"horizontal":{l.x<=i.x&&(o=r,i=l);break}case"vertical":{l.y<=i.y&&(o=r,i=l);break}}}return o?{distance:i,hitRegion:o}:void 0}function lt(e){return e!==null&&typeof e=="object"&&"nodeType"in e&&e.nodeType===Node.DOCUMENT_FRAGMENT_NODE}function ut(e,t){if(e===t)throw new Error("Cannot compare node with itself");const n={a:ve(e),b:ve(t)};let o;for(;n.a.at(-1)===n.b.at(-1);)o=n.a.pop(),n.b.pop();b(o,"Stacking order can only be calculated for elements with a common ancestor");const i={a:Se(ye(n.a)),b:Se(ye(n.b))};if(i.a===i.b){const r=o.childNodes,l={a:n.a.at(-1),b:n.b.at(-1)};let s=r.length;for(;s--;){const a=r[s];if(a===l.a)return 1;if(a===l.b)return-1}}return Math.sign(i.a-i.b)}const ct=/\b(?:position|zIndex|opacity|transform|webkitTransform|mixBlendMode|filter|webkitFilter|isolation)\b/;function ft(e){const t=getComputedStyle(Ne(e)??e).display;return t==="flex"||t==="inline-flex"}function dt(e){const t=getComputedStyle(e);return!!(t.position==="fixed"||t.zIndex!=="auto"&&(t.position!=="static"||ft(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"||ct.test(t.willChange)||t.webkitOverflowScrolling==="touch")}function ye(e){let t=e.length;for(;t--;){const n=e[t];if(b(n,"Missing node"),dt(n))return n}return null}function Se(e){return e&&Number(getComputedStyle(e).zIndex)||0}function ve(e){const t=[];for(;e;)t.push(e),e=Ne(e);return t}function Ne(e){const{parentNode:t}=e;return lt(t)?t.host:t}function pt(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 mt({groupElement:e,hitRegion:t,pointerEventTarget:n}){if(!Ie(n)||n.contains(e)||e.contains(n))return!0;if(ut(n,e)>0){let o=n;for(;o;){if(o.contains(e))return!0;if(pt(o.getBoundingClientRect(),t))return!1;o=o.parentElement}}return!0}function ce(e,t){const n=[];return t.forEach((o,i)=>{if(i.disabled)return;const r=Te(i),l=at(i.orientation,r,{x:e.clientX,y:e.clientY});l&&l.distance.x<=0&&l.distance.y<=0&&mt({groupElement:i.element,hitRegion:l.hitRegion.rect,pointerEventTarget:e.target})&&n.push(l.hitRegion)}),n}function ht(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 O(e,t){return M(e,t)?0:e>t?1:-1}function W({panelConstraints:e,size:t}){const{collapsedSize:n=0,collapsible:o,maxSize:i=100,minSize:r=0}=e;if(O(t,r)<0)if(o){const l=(n+r)/2;O(t,l)<0?t=n:t=r}else t=r;return t=Math.min(i,t),t=D(t),t}function Y({delta:e,initialLayout:t,panelConstraints:n,pivotIndices:o,prevLayout:i,trigger:r}){if(M(e,0))return t;const l=Object.values(t),s=Object.values(i),a=[...l],[c,u]=o;b(c!=null,"Invalid first pivot index"),b(u!=null,"Invalid second pivot index");let h=0;switch(r){case"keyboard":{{const f=e<0?u:c,d=n[f];b(d,`Panel constraints not found for index ${f}`);const{collapsedSize:p=0,collapsible:g,minSize:v=0}=d;if(g){const z=l[f];if(b(z!=null,`Previous layout not found for panel index ${f}`),M(z,p)){const y=v-z;O(y,Math.abs(e))>0&&(e=e<0?0-y:y)}}}{const f=e<0?c:u,d=n[f];b(d,`No panel constraints found for index ${f}`);const{collapsedSize:p=0,collapsible:g,minSize:v=0}=d;if(g){const z=l[f];if(b(z!=null,`Previous layout not found for panel index ${f}`),M(z,v)){const y=z-p;O(y,Math.abs(e))>0&&(e=e<0?0-y:y)}}}break}default:{const f=e<0?u:c,d=n[f];b(d,`Panel constraints not found for index ${f}`);const p=l[f],{collapsible:g,collapsedSize:v,minSize:z}=d;if(g&&O(p,z)<0)if(e>0){const y=z-v,w=y/2,C=p+e;O(C,z)<0&&(e=O(e,w)<=0?0:y)}else{const y=z-v,w=100-y/2,C=p-e;O(C,z)<0&&(e=O(100+e,w)>0?0:-y)}break}}{const f=e<0?1:-1;let d=e<0?u:c,p=0;for(;;){const v=l[d];b(v!=null,`Previous layout not found for panel index ${d}`);const y=W({panelConstraints:n[d],size:100})-v;if(p+=y,d+=f,d<0||d>=n.length)break}const g=Math.min(Math.abs(e),Math.abs(p));e=e<0?0-g:g}{let d=e<0?c:u;for(;d>=0&&d<n.length;){const p=Math.abs(e)-Math.abs(h),g=l[d];b(g!=null,`Previous layout not found for panel index ${d}`);const v=g-p,z=W({panelConstraints:n[d],size:v});if(!M(g,z)&&(h+=g-z,a[d]=z,h.toFixed(3).localeCompare(Math.abs(e).toFixed(3),void 0,{numeric:!0})>=0))break;e<0?d--:d++}}if(ht(s,a))return i;{const f=e<0?u:c,d=l[f];b(d!=null,`Previous layout not found for panel index ${f}`);const p=d+h,g=W({panelConstraints:n[f],size:p});if(a[f]=g,!M(g,p)){let v=p-g,y=e<0?u:c;for(;y>=0&&y<n.length;){const w=a[y];b(w!=null,`Previous layout not found for panel index ${y}`);const C=w+v,L=W({panelConstraints:n[y],size:C});if(M(w,L)||(v-=L-w,a[y]=L),M(v,0))break;e>0?y--:y++}}}const S=Object.values(a).reduce((f,d)=>d+f,0);if(!M(S,100,.1))return i;const m=Object.keys(i);return a.reduce((f,d,p)=>(f[m[p]]=d,f),{})}function A(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e)if(t[n]===void 0||O(e[n],t[n])!==0)return!1;return!0}function F({layout:e,panelConstraints:t}){const o=[...Object.values(e)],i=o.reduce((s,a)=>s+a,0);if(o.length!==t.length)throw Error(`Invalid ${t.length} panel layout: ${o.map(s=>`${s}%`).join(", ")}`);if(!M(i,100)&&o.length>0)for(let s=0;s<t.length;s++){const a=o[s];b(a!=null,`No layout data found for index ${s}`);const c=100/i*a;o[s]=c}let r=0;for(let s=0;s<t.length;s++){const a=o[s];b(a!=null,`No layout data found for index ${s}`);const c=W({panelConstraints:t[s],size:a});a!=c&&(r+=a-c,o[s]=c)}if(!M(r,0))for(let s=0;s<t.length;s++){const a=o[s];b(a!=null,`No layout data found for index ${s}`);const c=a+r,u=W({panelConstraints:t[s],size:c});if(a!==u&&(r-=u-a,o[s]=u,M(r,0)))break}const l=Object.keys(e);return o.reduce((s,a,c)=>(s[l[c]]=a,s),{})}function _e({groupId:e,panelId:t}){const n=()=>{const{mountedGroups:s}=k();for(const[a,{defaultLayoutDeferred:c,derivedPanelConstraints:u,layout:h,separatorToPanels:S}]of s)if(a.id===e)return{defaultLayoutDeferred:c,derivedPanelConstraints:u,group:a,layout:h,separatorToPanels:S};throw Error(`Group ${e} not found`)},o=()=>{const s=n().derivedPanelConstraints.find(a=>a.panelId===t);if(s!==void 0)return s;throw Error(`Panel constraints not found for Panel ${t}`)},i=()=>{const s=n().group.panels.find(a=>a.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}`)},l=s=>{const a=r();if(s===a)return;const{defaultLayoutDeferred:c,derivedPanelConstraints:u,group:h,layout:S,separatorToPanels:m}=n(),f=h.panels.findIndex(v=>v.id===t),d=f===h.panels.length-1,p=Y({delta:d?a-s:s-a,initialLayout:S,panelConstraints:u,pivotIndices:d?[f-1,f]:[f,f+1],prevLayout:S,trigger:"imperative-api"}),g=F({layout:p,panelConstraints:u});A(S,g)||E(v=>({mountedGroups:new Map(v.mountedGroups).set(h,{defaultLayoutDeferred:c,derivedPanelConstraints:u,layout:g,separatorToPanels:m})}))};return{collapse:()=>{const{collapsible:s,collapsedSize:a}=o(),{mutableValues:c}=i(),u=r();s&&u!==a&&(c.expandToSize=u,l(a))},expand:()=>{const{collapsible:s,collapsedSize:a,minSize:c}=o(),{mutableValues:u}=i(),h=r();if(s&&h===a){let S=u.expandToSize??c;S===0&&(S=1),l(S)}},getSize:()=>{const{group:s}=n(),a=r(),{element:c}=i(),u=s.orientation==="horizontal"?c.offsetWidth:c.offsetHeight;return{asPercentage:a,inPixels:u}},isCollapsed:()=>{const{collapsible:s,collapsedSize:a}=o(),c=r();return s&&M(a,c)},resize:s=>{if(r()!==s){let c;switch(typeof s){case"number":{const{group:u}=n(),h=U({group:u});c=D(s/h*100);break}case"string":{c=parseFloat(s);break}}l(c)}}}}function xe(e){if(e.defaultPrevented)return;const{mountedGroups:t}=k();ce(e,t).forEach(o=>{if(o.separator){const i=o.panels.find(r=>r.panelConstraints.defaultSize!==void 0);if(i){const r=i.panelConstraints.defaultSize,l=_e({groupId:o.group.id,panelId:i.id});l&&r!==void 0&&(l.resize(r),e.preventDefault())}}})}function re(e){const{mountedGroups:t}=k();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 Ae({groupId:e}){const t=()=>{const{mountedGroups:n}=k();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,layout:l,separatorToPanels:s}=t(),a=F({layout:n,panelConstraints:i});if(o)return l;if(!A(l,a)){E(u=>({mountedGroups:new Map(u.mountedGroups).set(r,{defaultLayoutDeferred:o,derivedPanelConstraints:i,layout:a,separatorToPanels:s})}));const c=r.panels.map(({id:u})=>u).join(",");r.inMemoryLayouts[c]=a}return a}}}function Fe(e){const{mountedGroups:t}=k(),n=t.get(e);return b(n,`Mounted Group ${e.id} not found`),n}function _(e,t){const n=re(e),o=Fe(n),i=n.separators.find(h=>h.element===e);b(i,"Matching separator not found");const r=o.separatorToPanels.get(i);b(r,"Matching panels not found");const l=r.map(h=>n.panels.indexOf(h)),a=Ae({groupId:n.id}).getLayout(),c=Y({delta:t,initialLayout:a,panelConstraints:o.derivedPanelConstraints,pivotIndices:l,prevLayout:a,trigger:"keyboard"}),u=F({layout:c,panelConstraints:o.derivedPanelConstraints});A(a,u)||E(h=>({mountedGroups:new Map(h.mountedGroups).set(n,{defaultLayoutDeferred:o.defaultLayoutDeferred,derivedPanelConstraints:o.derivedPanelConstraints,layout:u,separatorToPanels:o.separatorToPanels})}))}function ze(e){if(e.defaultPrevented)return;const t=e.currentTarget,n=re(t);if(!n.disabled)switch(e.key){case"ArrowDown":{e.preventDefault(),n.orientation==="vertical"&&_(t,5);break}case"ArrowLeft":{e.preventDefault(),n.orientation==="horizontal"&&_(t,-5);break}case"ArrowRight":{e.preventDefault(),n.orientation==="horizontal"&&_(t,5);break}case"ArrowUp":{e.preventDefault(),n.orientation==="vertical"&&_(t,-5);break}case"End":{e.preventDefault(),_(t,100);break}case"Enter":{e.preventDefault();const o=re(t),{derivedPanelConstraints:i,layout:r,separatorToPanels:l}=Fe(o),s=o.separators.find(h=>h.element===t);b(s,"Matching separator not found");const a=l.get(s);b(a,"Matching panels not found");const c=a[0],u=i.find(h=>h.panelId===c.id);if(b(u,"Panel metadata not found"),u.collapsible){const h=r[c.id],S=u.collapsedSize===h?o.inMemoryLastExpandedPanelSizes[c.id]??u.minSize:u.collapsedSize;_(t,S-h)}break}case"F6":{e.preventDefault();const i=re(t).separators.map(a=>a.element),r=Array.from(i).findIndex(a=>a===e.currentTarget);b(r!==null,"Index not found");const l=e.shiftKey?r>0?r-1:i.length-1:r+1<i.length?r+1:0;i[l].focus();break}case"Home":{e.preventDefault(),_(t,-100);break}}}function be(e){if(e.defaultPrevented)return;if(e.pointerType==="mouse"&&e.button>0)return;const{mountedGroups:t}=k(),n=ce(e,t),o=new Map;let i=!1;n.forEach(r=>{r.separator&&(i||(i=!0,r.separator.element.focus()));const l=t.get(r.group);l&&o.set(r.group,l.layout)}),E({interactionState:{hitRegions:n,initialLayoutMap:o,pointerDownAtPoint:{x:e.clientX,y:e.clientY},state:"active"}}),n.length&&e.preventDefault()}const gt=e=>e,ae=()=>{},je=1,He=2,$e=4,Ve=8,we=3,Le=12;let ie;function Re(){return ie===void 0&&(ie=!1,typeof window<"u"&&(window.navigator.userAgent.includes("Chrome")||window.navigator.userAgent.includes("Firefox"))&&(ie=!0)),ie}function yt({cursorFlags:e,groups:t,state:n}){let o=0,i=0;switch(n){case"active":case"hover":t.forEach(r=>{if(!r.disableCursor)switch(r.orientation){case"horizontal":{o++;break}case"vertical":{i++;break}}})}if(o===0&&i===0)return null;switch(n){case"active":{if(e&&Re()){const r=(e&je)!==0,l=(e&He)!==0,s=(e&$e)!==0,a=(e&Ve)!==0;if(r)return s?"se-resize":a?"ne-resize":"e-resize";if(l)return s?"sw-resize":a?"nw-resize":"w-resize";if(s)return"s-resize";if(a)return"n-resize"}break}}return Re()?o>0&&i>0?"move":o>0?"ew-resize":"ns-resize":o>0&&i>0?"grab":o>0?"col-resize":"row-resize"}const Ce=new WeakMap;function fe(e){if(e.defaultView===null||e.defaultView===void 0)return;let{prevStyle:t,styleSheet:n}=Ce.get(e)??{};n===void 0&&(n=new e.defaultView.CSSStyleSheet,e.adoptedStyleSheets.push(n));const{cursorFlags:o,interactionState:i}=k();switch(i.state){case"active":case"hover":{const r=yt({cursorFlags:o,groups:i.hitRegions.map(s=>s.group),state:i.state}),l=`*, *:hover {cursor: ${r} !important; ${i.state==="active"?"touch-action: none;":""} }`;if(t===l)return;t=l,r?n.cssRules.length===0?n.insertRule(l):n.replaceSync(l):n.cssRules.length===1&&n.deleteRule(0);break}case"inactive":{t=void 0,n.cssRules.length===1&&n.deleteRule(0);break}}Ce.set(e,{prevStyle:t,styleSheet:n})}function We({document:e,event:t,hitRegions:n,initialLayoutMap:o,mountedGroups:i,pointerDownAtPoint:r,prevCursorFlags:l}){let s=0;const a=new Map(i);n.forEach(u=>{const{group:h,groupSize:S}=u,{disableCursor:m,orientation:f,panels:d}=h;let p=0;r?f==="horizontal"?p=(t.clientX-r.x)/S*100:p=(t.clientY-r.y)/S*100:f==="horizontal"?p=t.clientX<0?-100:100:p=t.clientY<0?-100:100;const g=o.get(h),{defaultLayoutDeferred:v,derivedPanelConstraints:z,layout:y,separatorToPanels:w}=i.get(h)??{defaultLayoutDeferred:!1};if(z&&g&&y&&w){const C=Y({delta:p,initialLayout:g,panelConstraints:z,pivotIndices:u.panels.map(L=>d.indexOf(L)),prevLayout:y,trigger:"mouse-or-touch"});if(A(C,y)){if(p!==0&&!m)switch(f){case"horizontal":{s|=p<0?je:He;break}case"vertical":{s|=p<0?$e:Ve;break}}}else{a.set(u.group,{defaultLayoutDeferred:v,derivedPanelConstraints:z,layout:C,separatorToPanels:w});const L=u.group.panels.map(({id:H})=>H).join(",");u.group.inMemoryLayouts[L]=C}}});let c=0;t.movementX===0?c|=l&we:c|=s&we,t.movementY===0?c|=l&Le:c|=s&Le,E({cursorFlags:c,mountedGroups:a}),fe(e)}function Pe(e){const{cursorFlags:t,interactionState:n,mountedGroups:o}=k();switch(n.state){case"active":We({document:e.currentTarget,event:e,hitRegions:n.hitRegions,initialLayoutMap:n.initialLayoutMap,mountedGroups:o,prevCursorFlags:t})}}function Me(e){if(e.defaultPrevented)return;const{cursorFlags:t,interactionState:n,mountedGroups:o}=k();switch(n.state){case"active":{if(e.buttons===0){E(i=>i.interactionState.state==="inactive"?i:{cursorFlags:0,interactionState:{state:"inactive"}}),E(i=>({mountedGroups:new Map(i.mountedGroups)}));return}We({document:e.currentTarget,event:e,hitRegions:n.hitRegions,initialLayoutMap:n.initialLayoutMap,mountedGroups:o,pointerDownAtPoint:n.pointerDownAtPoint,prevCursorFlags:t});break}default:{const i=ce(e,o);i.length===0?n.state!=="inactive"&&E({interactionState:{state:"inactive"}}):E({interactionState:{hitRegions:i,state:"hover"}}),fe(e.currentTarget);break}}}function Ee(e){if(e.relatedTarget instanceof HTMLIFrameElement){const{interactionState:t}=k();switch(t.state){case"hover":E({interactionState:{state:"inactive"}})}}}function ke(e){if(e.defaultPrevented)return;if(e.pointerType==="mouse"&&e.button>0)return;const{interactionState:t}=k();switch(t.state){case"active":E({cursorFlags:0,interactionState:{state:"inactive"}}),t.hitRegions.length>0&&(fe(e.currentTarget),E(n=>({mountedGroups:new Map(n.mountedGroups)})),e.preventDefault())}}function Ge(e){let t=0,n=0;const o={};for(const r of e)if(r.defaultSize!==void 0){t++;const l=D(r.defaultSize);n+=l,o[r.panelId]=l}else o[r.panelId]=void 0;const i=e.length-t;if(i!==0){const r=D((100-n)/i);for(const l of e)l.defaultSize===void 0&&(o[l.panelId]=r)}return o}function St(e,t,n){if(!n[0])return;const i=e.panels.find(c=>c.element===t);if(!i||!i.onResize)return;const r=U({group:e}),l=e.orientation==="horizontal"?i.element.offsetWidth:i.element.offsetHeight,s=i.mutableValues.prevSize,a={asPercentage:D(l/r*100),inPixels:l};i.mutableValues.prevSize=a,i.onResize(a,i.id,s)}function vt(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 xt(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 V=new Map;function zt(e){let t=!0;b(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(f=>{for(const d of f){const{borderBoxSize:p,target:g}=d;if(g===e.element){if(t){if(U({group:e})===0)return;E(z=>{const y=z.mountedGroups.get(e);if(y){const w=ge(e),C=y.defaultLayoutDeferred?Ge(w):y.layout,L=F({layout:C,panelConstraints:w});return!y.defaultLayoutDeferred&&A(C,L)&&vt(y.derivedPanelConstraints,w)?z:{mountedGroups:new Map(z.mountedGroups).set(e,{defaultLayoutDeferred:!1,derivedPanelConstraints:w,layout:L,separatorToPanels:y.separatorToPanels})}}return z})}}else St(e,g,p)}});r.observe(e.element),e.panels.forEach(f=>{b(!o.has(f.id),`Panel ids must be unique; id "${f.id}" was used more than once`),o.add(f.id),f.onResize&&r.observe(f.element)});const l=U({group:e}),s=ge(e),a=e.panels.map(({id:f})=>f).join(",");let c=e.defaultLayout;c&&(xt(e.panels,c)||(c=void 0));const u=e.inMemoryLayouts[a]??c??Ge(s),h=F({layout:u,panelConstraints:s}),S=Te(e),m=e.element.ownerDocument;return E(f=>{const d=new Map;return V.set(m,(V.get(m)??0)+1),S.forEach(p=>{p.separator&&d.set(p.separator,p.panels)}),{mountedGroups:new Map(f.mountedGroups).set(e,{defaultLayoutDeferred:l===0,derivedPanelConstraints:s,layout:h,separatorToPanels:d})}}),e.separators.forEach(f=>{b(!i.has(f.id),`Separator ids must be unique; id "${f.id}" was used more than once`),i.add(f.id),f.element.addEventListener("keydown",ze)}),V.get(m)===1&&(m.addEventListener("dblclick",xe,!0),m.addEventListener("pointerdown",be,!0),m.addEventListener("pointerleave",Pe),m.addEventListener("pointermove",Me),m.addEventListener("pointerout",Ee),m.addEventListener("pointerup",ke,!0)),function(){t=!1,V.set(m,Math.max(0,(V.get(m)??0)-1)),E(d=>{const p=new Map(d.mountedGroups);return p.delete(e),{mountedGroups:p}}),e.separators.forEach(d=>{d.element.removeEventListener("keydown",ze)}),V.get(m)||(m.removeEventListener("dblclick",xe,!0),m.removeEventListener("pointerdown",be,!0),m.removeEventListener("pointerleave",Pe),m.removeEventListener("pointermove",Me),m.removeEventListener("pointerout",Ee),m.removeEventListener("pointerup",ke,!0)),r.disconnect()}}function bt(){const[e,t]=x.useState({}),n=x.useCallback(()=>t({}),[]);return[e,n]}function de(e){const t=x.useId();return`${e??t}`}const j=typeof window<"u"?x.useLayoutEffect:x.useEffect;function q(e){const t=x.useRef(e);return j(()=>{t.current=e},[e]),x.useCallback((...n)=>t.current?.(...n),[t])}function pe(...e){return q(t=>{e.forEach(n=>{if(n)switch(typeof n){case"function":{n(t);break}case"object":{n.current=t;break}}})})}function wt(e){const t=x.useRef({...e});return j(()=>{for(const n in e)t.current[n]=e[n]},[e]),t.current}const Ue=x.createContext(null);function Lt(e,t){const n=x.useRef({getLayout:()=>({}),setLayout:gt});x.useImperativeHandle(t,()=>n.current,[]),j(()=>{Object.assign(n.current,Ae({groupId:e}))})}function Be({children:e,className:t,defaultLayout:n,disableCursor:o,disabled:i,elementRef:r,groupRef:l,id:s,onLayoutChange:a,onLayoutChanged:c,orientation:u="horizontal",resizeTargetMinimumSize:h={coarse:20,fine:10},style:S,...m}){const f=x.useRef({onLayoutChange:{},onLayoutChanged:{}}),d=q(R=>{A(f.current.onLayoutChange,R)||(f.current.onLayoutChange=R,a?.(R))}),p=q(R=>{A(f.current.onLayoutChanged,R)||(f.current.onLayoutChanged=R,c?.(R))}),g=de(s),v=x.useRef(null),[z,y]=bt(),w=x.useRef({lastExpandedPanelSizes:{},layouts:{},panels:[],resizeTargetMinimumSize:h,separators:[]}),C=pe(v,r);Lt(g,l);const L=q((R,P)=>{const{interactionState:G,mountedGroups:J}=k();for(const Z of J.keys())if(Z.id===R){const B=J.get(Z);if(B){let Q=!1;switch(G.state){case"active":{Q=G.hitRegions.some(se=>se.group===Z);break}}return{flexGrow:B.layout[P]??1,pointerEvents:Q?"none":void 0}}}return{flexGrow:n?.[P]??1}}),H=x.useMemo(()=>({getPanelStyles:L,id:g,orientation:u,registerPanel:R=>{const P=w.current;return P.panels=ue(u,[...P.panels,R]),y(),()=>{P.panels=P.panels.filter(G=>G!==R),y()}},registerSeparator:R=>{const P=w.current;return P.separators=ue(u,[...P.separators,R]),y(),()=>{P.separators=P.separators.filter(G=>G!==R),y()}}}),[L,g,y,u]),N=wt({defaultLayout:n,disableCursor:o}),$=x.useRef(null);return j(()=>{const R=v.current;if(R===null)return;const P=w.current,G={defaultLayout:N.defaultLayout,disableCursor:!!N.disableCursor,disabled:!!i,element:R,id:g,inMemoryLastExpandedPanelSizes:w.current.lastExpandedPanelSizes,inMemoryLayouts:w.current.layouts,orientation:u,panels:P.panels,resizeTargetMinimumSize:P.resizeTargetMinimumSize,separators:P.separators};$.current=G;const J=zt(G),B=k().mountedGroups.get(G);if(B){const{defaultLayoutDeferred:K,derivedPanelConstraints:ee,layout:te}=B;!K&&ee.length>0&&(d(te),p(te))}const Q=T.addListener("interactionStateChange",K=>{K.state}),se=T.addListener("mountedGroupsChange",K=>{const ee=K.get(G);if(ee){const{defaultLayoutDeferred:te,derivedPanelConstraints:Xe,layout:he}=ee;if(te||Xe.length===0)return;const{interactionState:Ye}=k(),Je=Ye.state!=="active";d(he),Je&&p(he)}});return()=>{$.current=null,J(),Q(),se()}},[i,g,p,d,u,z,N]),x.useEffect(()=>{const R=$.current;R&&(R.defaultLayout=n,R.disableCursor=!!o)}),X.jsx(Ue.Provider,{value:H,children:X.jsx("div",{...m,className:t,"data-group":!0,"data-testid":g,id:g,ref:C,style:{height:"100%",width:"100%",overflow:"hidden",...S,display:"flex",flexDirection:u==="horizontal"?"row":"column",flexWrap:"nowrap"},children:e})})}Be.displayName="Group";function le(e,t){return`react-resizable-panels:${[e,...t].join(":")}`}function Rt({debounceSaveMs:e=100,panelIds:t,storage:n=localStorage,...o}){const i=t!==void 0,r="id"in o?o.id:o.groupId,l=le(r,t??[]),s=x.useSyncExternalStore(Ct,()=>n.getItem(l),()=>n.getItem(l)),a=x.useMemo(()=>s?JSON.parse(s):void 0,[s]),c=x.useRef(null),u=x.useCallback(()=>{const m=c.current;m&&(c.current=null,clearTimeout(m))},[]);x.useLayoutEffect(()=>()=>{u()},[u]);const h=x.useCallback(m=>{u();let f;i?f=le(r,Object.keys(m)):f=le(r,[]);try{n.setItem(f,JSON.stringify(m))}catch(d){console.error(d)}},[u,i,r,n]),S=x.useCallback(m=>{u(),e===0?h(m):c.current=setTimeout(()=>{h(m)},e)},[u,e,h]);return{defaultLayout:a,onLayoutChange:S,onLayoutChanged:h}}function Ct(){return function(){}}function Pt(){return x.useState(null)}function Mt(){return x.useRef(null)}function me(){const e=x.useContext(Ue);return b(e,"Group Context not found; did you render a Panel or Separator outside of a Group?"),e}function Et(e,t){const{id:n}=me(),o=x.useRef({collapse:ae,expand:ae,getSize:()=>({asPercentage:0,inPixels:0}),isCollapsed:()=>!1,resize:ae});x.useImperativeHandle(t,()=>o.current,[]),j(()=>{Object.assign(o.current,_e({groupId:n,panelId:e}))})}function Ke({children:e,className:t,collapsedSize:n="0%",collapsible:o=!1,defaultSize:i,elementRef:r,id:l,maxSize:s="100%",minSize:a="0%",onResize:c,panelRef:u,style:h,...S}){const m=!!l,f=de(l),d=x.useRef(null),p=pe(d,r),{getPanelStyles:g,id:v,registerPanel:z}=me(),y=c!==null,w=q((L,H,N)=>{c?.(L,l,N)});j(()=>{const L=d.current;if(L!==null)return z({element:L,id:f,idIsStable:m,mutableValues:{expandToSize:void 0,prevSize:void 0},onResize:y?w:void 0,panelConstraints:{collapsedSize:n,collapsible:o,defaultSize:i,maxSize:s,minSize:a}})},[n,o,i,y,f,m,s,a,w,z]),Et(f,u);const C=x.useSyncExternalStore(L=>(T.addListener("mountedGroupsChange",L),()=>{T.removeListener("mountedGroupsChange",L)}),()=>JSON.stringify(g(v,f)),()=>JSON.stringify(g(v,f)));return X.jsx("div",{...S,"data-panel":!0,"data-testid":f,id:f,ref:p,style:{...kt,display:"flex",flexBasis:0,flexShrink:1,overflow:"hidden",...JSON.parse(C)},children:X.jsx("div",{className:t,style:{maxHeight:"100%",maxWidth:"100%",flexGrow:1,...h},children:e})})}Ke.displayName="Panel";const kt={minHeight:0,maxHeight:"100%",height:"auto",minWidth:0,maxWidth:"100%",width:"auto",border:"none",borderWidth:0,padding:0,margin:0};function Gt(){return x.useState(null)}function It(){return x.useRef(null)}function Dt({layout:e,panelConstraints:t,panelId:n,panelIndex:o}){let i,r;const l=e[n],s=t.find(a=>a.panelId===n);if(s){const a=s.maxSize,c=s.collapsible?s.collapsedSize:s.minSize,u=[o,o+1];r=F({layout:Y({delta:c-l,initialLayout:e,panelConstraints:t,pivotIndices:u,prevLayout:e}),panelConstraints:t})[n],i=F({layout:Y({delta:a-l,initialLayout:e,panelConstraints:t,pivotIndices:u,prevLayout:e}),panelConstraints:t})[n]}return{valueControls:n,valueMax:i,valueMin:r,valueNow:l}}function qe({children:e,className:t,elementRef:n,id:o,style:i,...r}){const l=de(o),[s,a]=x.useState({}),[c,u]=x.useState("inactive"),h=x.useRef(null),S=pe(h,n),{id:m,orientation:f,registerSeparator:d}=me(),p=f==="horizontal"?"vertical":"horizontal";return j(()=>{const g=h.current;if(g!==null){const v={element:g,id:l},z=d(v),y=T.addListener("interactionStateChange",C=>{u(C.state!=="inactive"&&C.hitRegions.some(L=>L.separator===v)?C.state:"inactive")}),w=T.addListener("mountedGroupsChange",C=>{C.forEach(({derivedPanelConstraints:L,layout:H,separatorToPanels:N},$)=>{if($.id===m){const R=N.get(v);if(R){const P=R[0],G=$.panels.indexOf(P);a(Dt({layout:H,panelConstraints:L,panelId:P.id,panelIndex:G}))}}})});return()=>{y(),w(),z()}}},[m,l,d]),X.jsx("div",{...r,"aria-controls":s.valueControls,"aria-orientation":p,"aria-valuemax":s.valueMax,"aria-valuemin":s.valueMin,"aria-valuenow":s.valueNow,children:e,className:t,"data-separator":c,"data-testid":l,id:l,ref:S,role:"separator",style:{flexBasis:"auto",...i,flexGrow:0,flexShrink:0},tabIndex:0})}qe.displayName="Separator";exports.Group=Be;exports.Panel=Ke;exports.Separator=qe;exports.isCoarsePointer=Oe;exports.useDefaultLayout=Rt;exports.useGroupCallbackRef=Pt;exports.useGroupRef=Mt;exports.usePanelCallbackRef=Gt;exports.usePanelRef=It;
|
|
1
|
+
"use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const Y=require("react/jsx-runtime"),z=require("react");function w(e,t="Assertion error"){if(!e)throw Error(t)}function B({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 ue(e,t){return Array.from(t).sort(e==="horizontal"?Ze:Qe)}function Ze(e,t){const n=e.element.offsetLeft-t.element.offsetLeft;return n!==0?n:e.element.offsetWidth-t.element.offsetWidth}function Qe(e,t){const n=e.element.offsetTop-t.element.offsetTop;return n!==0?n:e.element.offsetHeight-t.element.offsetHeight}function Ie(e){return e!==null&&typeof e=="object"&&"nodeType"in e&&e.nodeType===Node.ELEMENT_NODE}function De(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 et({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}=De(o,l),f=e==="horizontal"?r:a;f<s&&(s=f,i=l)}return w(i,"No rect found"),i}let ne;function Oe(){return ne===void 0&&(typeof matchMedia=="function"?ne=!!matchMedia("(pointer:coarse)").matches:ne=!1),ne}function Te(e){const{element:t,orientation:n,panels:o,separators:i}=e,s=ue(n,Array.from(t.children).filter(Ie).map(x=>({element:x}))).map(({element:x})=>x),l=[];let r=!1,a=!1,f=!1,u,m=[];for(const x of s)if(x.hasAttribute("data-panel")){x.ariaDisabled!==null&&(r=!0);const S=o.find(c=>c.element===x);if(S){if(u){const c=u.element.getBoundingClientRect(),d=x.getBoundingClientRect();let p;if(f){const y=n==="horizontal"?new DOMRect(c.right,c.top,0,c.height):new DOMRect(c.left,c.bottom,c.width,0),h=n==="horizontal"?new DOMRect(d.left,d.top,0,d.height):new DOMRect(d.left,d.top,d.width,0);switch(m.length){case 0:{p=[y,h];break}case 1:{const v=m[0],g=et({orientation:n,rects:[c,d],targetRect:v.element.getBoundingClientRect()});p=[v,g===c?h:y];break}default:{p=m;break}}}else m.length?p=m:p=[n==="horizontal"?new DOMRect(c.right,d.top,d.left-c.right,d.height):new DOMRect(d.left,c.bottom,d.width,d.top-c.bottom)];for(const y of p){let h="width"in y?y:y.element.getBoundingClientRect();const v=Oe()?e.resizeTargetMinimumSize.coarse:e.resizeTargetMinimumSize.fine;if(h.width<v){const b=v-h.width;h=new DOMRect(h.x-b/2,h.y,h.width+b,h.height)}if(h.height<v){const b=v-h.height;h=new DOMRect(h.x,h.y-b/2,h.width,h.height+b)}const g=!("width"in y);l.push({disabled:a||r&&!g,group:e,groupSize:B({group:e}),panels:[u,S],separator:"width"in y?void 0:y,rect:h}),r=!1,a=!1}}f=!1,u=S,m=[]}}else if(x.hasAttribute("data-separator")){x.ariaDisabled!==null&&(a=!0);const S=i.find(c=>c.element===x);S?m.push(S):(u=void 0,m=[])}else f=!0;return l}function tt(e,t){const n=getComputedStyle(e),o=parseFloat(n.fontSize);return t*o}function nt(e,t){const n=getComputedStyle(e.ownerDocument.body),o=parseFloat(n.fontSize);return t*o}function ot(e){return e/100*window.innerHeight}function it(e){return e/100*window.innerWidth}function rt(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]=rt(n);switch(s){case"%":{o=i/100*e;break}case"px":{o=i;break}case"rem":{o=nt(t,i);break}case"em":{o=tt(t,i);break}case"vh":{o=ot(i);break}case"vw":{o=it(i);break}}return o}function O(e){return parseFloat(e.toFixed(3))}function ge(e){const{panels:t}=e,n=B({group:e});return n===0?t.map(o=>({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 u=oe({groupSize:n,panelElement:i,styleProp:s.collapsedSize});l=O(u/n*100)}let r;if(s.defaultSize!==void 0){const u=oe({groupSize:n,panelElement:i,styleProp:s.defaultSize});r=O(u/n*100)}let a=0;if(s.minSize!==void 0){const u=oe({groupSize:n,panelElement:i,styleProp:s.minSize});a=O(u/n*100)}let f=100;if(s.maxSize!==void 0){const u=oe({groupSize:n,panelElement:i,styleProp:s.maxSize});f=O(u/n*100)}return{collapsedSize:l,collapsible:s.collapsible===!0,defaultSize:r,disabled:s.disabled,minSize:a,maxSize:f,panelId:o.id}})}class st{#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(f){s===null&&(i=!0,s=f)}}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)}}}function E(e,t,n=0){return Math.abs(O(e)-O(t))<=n}let D={cursorFlags:0,interactionState:{state:"inactive"},mountedGroups:new Map};const N=new st;function I(){return D}function k(e){const t=typeof e=="function"?e(D):e;if(D===t)return D;const n=D;return D={...D,...t},t.cursorFlags!==void 0&&N.emit("cursorFlagsChange",D.cursorFlags),t.interactionState!==void 0&&N.emit("interactionStateChange",D.interactionState),t.mountedGroups!==void 0&&(D.mountedGroups.forEach((o,i)=>{o.derivedPanelConstraints.forEach(s=>{if(s.collapsible){const{layout:l}=n.mountedGroups.get(i)??{};if(l){const r=E(s.collapsedSize,o.layout[s.panelId]),a=E(s.collapsedSize,l[s.panelId]);r&&!a&&(i.inMemoryLastExpandedPanelSizes[s.panelId]=l[s.panelId])}}})}),N.emit("mountedGroupsChange",D.mountedGroups)),D}function at(e,t,n){let o,i={x:1/0,y:1/0};for(const s of t){if(s.disabled)continue;const l=De(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 lt(e){return e!==null&&typeof e=="object"&&"nodeType"in e&&e.nodeType===Node.DOCUMENT_FRAGMENT_NODE}function ut(e,t){if(e===t)throw new Error("Cannot compare node with itself");const n={a:ve(e),b:ve(t)};let o;for(;n.a.at(-1)===n.b.at(-1);)o=n.a.pop(),n.b.pop();w(o,"Stacking order can only be calculated for elements with a common ancestor");const i={a:Se(ye(n.a)),b:Se(ye(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 ct=/\b(?:position|zIndex|opacity|transform|webkitTransform|mixBlendMode|filter|webkitFilter|isolation)\b/;function ft(e){const t=getComputedStyle(Ne(e)??e).display;return t==="flex"||t==="inline-flex"}function dt(e){const t=getComputedStyle(e);return!!(t.position==="fixed"||t.zIndex!=="auto"&&(t.position!=="static"||ft(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"||ct.test(t.willChange)||t.webkitOverflowScrolling==="touch")}function ye(e){let t=e.length;for(;t--;){const n=e[t];if(w(n,"Missing node"),dt(n))return n}return null}function Se(e){return e&&Number(getComputedStyle(e).zIndex)||0}function ve(e){const t=[];for(;e;)t.push(e),e=Ne(e);return t}function Ne(e){const{parentNode:t}=e;return lt(t)?t.host:t}function pt(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 mt({groupElement:e,hitRegion:t,pointerEventTarget:n}){if(!Ie(n)||n.contains(e)||e.contains(n))return!0;if(ut(n,e)>0){let o=n;for(;o;){if(o.contains(e))return!0;if(pt(o.getBoundingClientRect(),t))return!1;o=o.parentElement}}return!0}function ce(e,t){const n=[];return t.forEach((o,i)=>{if(i.disabled)return;const s=Te(i),l=at(i.orientation,s,{x:e.clientX,y:e.clientY});l&&l.distance.x<=0&&l.distance.y<=0&&mt({groupElement:i.element,hitRegion:l.hitRegion.rect,pointerEventTarget:e.target})&&n.push(l.hitRegion)}),n}function ht(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){return E(e,t)?0:e>t?1:-1}function U({panelConstraints:e,prevSize:t,size:n}){const{collapsedSize:o=0,collapsible:i,disabled:s,maxSize:l=100,minSize:r=0}=e;if(s)return t;if(T(n,r)<0)if(i){const a=(o+r)/2;T(n,a)<0?n=o:n=r}else n=r;return n=Math.min(l,n),n=O(n),n}function J({delta:e,initialLayout:t,panelConstraints:n,pivotIndices:o,prevLayout:i,trigger:s}){if(E(e,0))return t;const l=Object.values(t),r=Object.values(i),a=[...l],[f,u]=o;w(f!=null,"Invalid first pivot index"),w(u!=null,"Invalid second pivot index");let m=0;switch(s){case"keyboard":{{const c=e<0?u:f,d=n[c];w(d,`Panel constraints not found for index ${c}`);const{collapsedSize:p=0,collapsible:y,minSize:h=0}=d;if(y){const v=l[c];if(w(v!=null,`Previous layout not found for panel index ${c}`),E(v,p)){const g=h-v;T(g,Math.abs(e))>0&&(e=e<0?0-g:g)}}}{const c=e<0?f:u,d=n[c];w(d,`No panel constraints found for index ${c}`);const{collapsedSize:p=0,collapsible:y,minSize:h=0}=d;if(y){const v=l[c];if(w(v!=null,`Previous layout not found for panel index ${c}`),E(v,h)){const g=v-p;T(g,Math.abs(e))>0&&(e=e<0?0-g:g)}}}break}default:{const c=e<0?u:f,d=n[c];w(d,`Panel constraints not found for index ${c}`);const p=l[c],{collapsible:y,collapsedSize:h,minSize:v}=d;if(y&&T(p,v)<0)if(e>0){const g=v-h,b=g/2,C=p+e;T(C,v)<0&&(e=T(e,b)<=0?0:g)}else{const g=v-h,b=100-g/2,C=p-e;T(C,v)<0&&(e=T(100+e,b)>0?0:-g)}break}}{const c=e<0?1:-1;let d=e<0?u:f,p=0;for(;;){const h=l[d];w(h!=null,`Previous layout not found for panel index ${d}`);const g=U({panelConstraints:n[d],prevSize:h,size:100})-h;if(p+=g,d+=c,d<0||d>=n.length)break}const y=Math.min(Math.abs(e),Math.abs(p));e=e<0?0-y:y}{let d=e<0?f:u;for(;d>=0&&d<n.length;){const p=Math.abs(e)-Math.abs(m),y=l[d];w(y!=null,`Previous layout not found for panel index ${d}`);const h=y-p,v=U({panelConstraints:n[d],prevSize:y,size:h});if(!E(y,v)&&(m+=y-v,a[d]=v,m.toFixed(3).localeCompare(Math.abs(e).toFixed(3),void 0,{numeric:!0})>=0))break;e<0?d--:d++}}if(ht(r,a))return i;{const c=e<0?u:f,d=l[c];w(d!=null,`Previous layout not found for panel index ${c}`);const p=d+m,y=U({panelConstraints:n[c],prevSize:d,size:p});if(a[c]=y,!E(y,p)){let h=p-y,g=e<0?u:f;for(;g>=0&&g<n.length;){const b=a[g];w(b!=null,`Previous layout not found for panel index ${g}`);const C=b+h,R=U({panelConstraints:n[g],prevSize:b,size:C});if(E(b,R)||(h-=R-b,a[g]=R),E(h,0))break;e>0?g--:g++}}}const x=Object.values(a).reduce((c,d)=>d+c,0);if(!E(x,100,.1))return i;const S=Object.keys(i);return a.reduce((c,d,p)=>(c[S[p]]=d,c),{})}function j(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e)if(t[n]===void 0||T(e[n],t[n])!==0)return!1;return!0}function $({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(!E(i,100)&&o.length>0)for(let r=0;r<t.length;r++){const a=o[r];w(a!=null,`No layout data found for index ${r}`);const f=100/i*a;o[r]=f}let s=0;for(let r=0;r<t.length;r++){const a=n[r];w(a!=null,`No layout data found for index ${r}`);const f=o[r];w(f!=null,`No layout data found for index ${r}`);const u=U({panelConstraints:t[r],prevSize:a,size:f});f!=u&&(s+=f-u,o[r]=u)}if(!E(s,0))for(let r=0;r<t.length;r++){const a=o[r];w(a!=null,`No layout data found for index ${r}`);const f=a+s,u=U({panelConstraints:t[r],prevSize:a,size:f});if(a!==u&&(s-=u-a,o[r]=u,E(s,0)))break}const l=Object.keys(e);return o.reduce((r,a,f)=>(r[l[f]]=a,r),{})}function _e({groupId:e,panelId:t}){const n=()=>{const{mountedGroups:r}=I();for(const[a,{defaultLayoutDeferred:f,derivedPanelConstraints:u,layout:m,separatorToPanels:x}]of r)if(a.id===e)return{defaultLayoutDeferred:f,derivedPanelConstraints:u,group:a,layout:m,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:f,derivedPanelConstraints:u,group:m,layout:x,separatorToPanels:S}=n(),c=m.panels.findIndex(h=>h.id===t),d=c===m.panels.length-1,p=J({delta:d?a-r:r-a,initialLayout:x,panelConstraints:u,pivotIndices:d?[c-1,c]:[c,c+1],prevLayout:x,trigger:"imperative-api"}),y=$({layout:p,panelConstraints:u});j(x,y)||k(h=>({mountedGroups:new Map(h.mountedGroups).set(m,{defaultLayoutDeferred:f,derivedPanelConstraints:u,layout:y,separatorToPanels:S})}))};return{collapse:()=>{const{collapsible:r,collapsedSize:a}=o(),{mutableValues:f}=i(),u=s();r&&u!==a&&(f.expandToSize=u,l(a))},expand:()=>{const{collapsible:r,collapsedSize:a,minSize:f}=o(),{mutableValues:u}=i(),m=s();if(r&&m===a){let x=u.expandToSize??f;x===0&&(x=1),l(x)}},getSize:()=>{const{group:r}=n(),a=s(),{element:f}=i(),u=r.orientation==="horizontal"?f.offsetWidth:f.offsetHeight;return{asPercentage:a,inPixels:u}},isCollapsed:()=>{const{collapsible:r,collapsedSize:a}=o(),f=s();return r&&E(a,f)},resize:r=>{if(s()!==r){let f;switch(typeof r){case"number":{const{group:u}=n(),m=B({group:u});f=O(r/m*100);break}case"string":{f=parseFloat(r);break}}l(f)}}}}function xe(e){if(e.defaultPrevented)return;const{mountedGroups:t}=I();ce(e,t).forEach(o=>{if(o.separator){const i=o.panels.find(s=>s.panelConstraints.defaultSize!==void 0);if(i){const s=i.panelConstraints.defaultSize,l=_e({groupId:o.group.id,panelId:i.id});l&&s!==void 0&&(l.resize(s),e.preventDefault())}}})}function re(e){const{mountedGroups:t}=I();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 Ae({groupId:e}){const t=()=>{const{mountedGroups:n}=I();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,layout:l,separatorToPanels:r}=t(),a=$({layout:n,panelConstraints:i});if(o)return l;if(!j(l,a)){k(u=>({mountedGroups:new Map(u.mountedGroups).set(s,{defaultLayoutDeferred:o,derivedPanelConstraints:i,layout:a,separatorToPanels:r})}));const f=s.panels.map(({id:u})=>u).join(",");s.inMemoryLayouts[f]=a}return a}}}function Fe(e){const{mountedGroups:t}=I(),n=t.get(e);return w(n,`Mounted Group ${e.id} not found`),n}function F(e,t){const n=re(e),o=Fe(n),i=n.separators.find(m=>m.element===e);w(i,"Matching separator not found");const s=o.separatorToPanels.get(i);w(s,"Matching panels not found");const l=s.map(m=>n.panels.indexOf(m)),a=Ae({groupId:n.id}).getLayout(),f=J({delta:t,initialLayout:a,panelConstraints:o.derivedPanelConstraints,pivotIndices:l,prevLayout:a,trigger:"keyboard"}),u=$({layout:f,panelConstraints:o.derivedPanelConstraints});j(a,u)||k(m=>({mountedGroups:new Map(m.mountedGroups).set(n,{defaultLayoutDeferred:o.defaultLayoutDeferred,derivedPanelConstraints:o.derivedPanelConstraints,layout:u,separatorToPanels:o.separatorToPanels})}))}function ze(e){if(e.defaultPrevented)return;const t=e.currentTarget,n=re(t);if(!n.disabled)switch(e.key){case"ArrowDown":{e.preventDefault(),n.orientation==="vertical"&&F(t,5);break}case"ArrowLeft":{e.preventDefault(),n.orientation==="horizontal"&&F(t,-5);break}case"ArrowRight":{e.preventDefault(),n.orientation==="horizontal"&&F(t,5);break}case"ArrowUp":{e.preventDefault(),n.orientation==="vertical"&&F(t,-5);break}case"End":{e.preventDefault(),F(t,100);break}case"Enter":{e.preventDefault();const o=re(t),{derivedPanelConstraints:i,layout:s,separatorToPanels:l}=Fe(o),r=o.separators.find(m=>m.element===t);w(r,"Matching separator not found");const a=l.get(r);w(a,"Matching panels not found");const f=a[0],u=i.find(m=>m.panelId===f.id);if(w(u,"Panel metadata not found"),u.collapsible){const m=s[f.id],x=u.collapsedSize===m?o.inMemoryLastExpandedPanelSizes[f.id]??u.minSize:u.collapsedSize;F(t,x-m)}break}case"F6":{e.preventDefault();const i=re(t).separators.map(a=>a.element),s=Array.from(i).findIndex(a=>a===e.currentTarget);w(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();break}case"Home":{e.preventDefault(),F(t,-100);break}}}function be(e){if(e.defaultPrevented)return;if(e.pointerType==="mouse"&&e.button>0)return;const{mountedGroups:t}=I(),n=ce(e,t),o=new Map;let i=!1;n.forEach(s=>{s.separator&&(i||(i=!0,s.separator.element.focus()));const l=t.get(s.group);l&&o.set(s.group,l.layout)}),k({interactionState:{hitRegions:n,initialLayoutMap:o,pointerDownAtPoint:{x:e.clientX,y:e.clientY},state:"active"}}),n.length&&e.preventDefault()}const gt=e=>e,ae=()=>{},je=1,$e=2,He=4,Ve=8,we=3,Le=12;let ie;function Re(){return ie===void 0&&(ie=!1,typeof window<"u"&&(window.navigator.userAgent.includes("Chrome")||window.navigator.userAgent.includes("Firefox"))&&(ie=!0)),ie}function yt({cursorFlags:e,groups:t,state:n}){let o=0,i=0;switch(n){case"active":case"hover":t.forEach(s=>{if(!s.disableCursor)switch(s.orientation){case"horizontal":{o++;break}case"vertical":{i++;break}}})}if(!(o===0&&i===0)){switch(n){case"active":{if(e&&Re()){const s=(e&je)!==0,l=(e&$e)!==0,r=(e&He)!==0,a=(e&Ve)!==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 Re()?o>0&&i>0?"move":o>0?"ew-resize":"ns-resize":o>0&&i>0?"grab":o>0?"col-resize":"row-resize"}}const Ce=new WeakMap;function fe(e){if(e.defaultView===null||e.defaultView===void 0)return;let{prevStyle:t,styleSheet:n}=Ce.get(e)??{};n===void 0&&(n=new e.defaultView.CSSStyleSheet,e.adoptedStyleSheets.push(n));const{cursorFlags:o,interactionState:i}=I();switch(i.state){case"active":case"hover":{const s=yt({cursorFlags:o,groups:i.hitRegions.map(r=>r.group),state:i.state}),l=`*, *:hover {cursor: ${s} !important; ${i.state==="active"?"touch-action: none;":""} }`;if(t===l)return;t=l,s?n.cssRules.length===0?n.insertRule(l):n.replaceSync(l):n.cssRules.length===1&&n.deleteRule(0);break}case"inactive":{t=void 0,n.cssRules.length===1&&n.deleteRule(0);break}}Ce.set(e,{prevStyle:t,styleSheet:n})}function We({document:e,event:t,hitRegions:n,initialLayoutMap:o,mountedGroups:i,pointerDownAtPoint:s,prevCursorFlags:l}){let r=0;const a=new Map(i);n.forEach(u=>{const{group:m,groupSize:x}=u,{disableCursor:S,orientation:c,panels:d}=m;let p=0;s?c==="horizontal"?p=(t.clientX-s.x)/x*100:p=(t.clientY-s.y)/x*100:c==="horizontal"?p=t.clientX<0?-100:100:p=t.clientY<0?-100:100;const y=o.get(m),{defaultLayoutDeferred:h,derivedPanelConstraints:v,layout:g,separatorToPanels:b}=i.get(m)??{defaultLayoutDeferred:!1};if(v&&y&&g&&b){const C=J({delta:p,initialLayout:y,panelConstraints:v,pivotIndices:u.panels.map(R=>d.indexOf(R)),prevLayout:g,trigger:"mouse-or-touch"});if(j(C,g)){if(p!==0&&!S)switch(c){case"horizontal":{r|=p<0?je:$e;break}case"vertical":{r|=p<0?He:Ve;break}}}else{a.set(u.group,{defaultLayoutDeferred:h,derivedPanelConstraints:v,layout:C,separatorToPanels:b});const R=u.group.panels.map(({id:M})=>M).join(",");u.group.inMemoryLayouts[R]=C}}});let f=0;t.movementX===0?f|=l&we:f|=r&we,t.movementY===0?f|=l&Le:f|=r&Le,k({cursorFlags:f,mountedGroups:a}),fe(e)}function Pe(e){const{cursorFlags:t,interactionState:n,mountedGroups:o}=I();switch(n.state){case"active":We({document:e.currentTarget,event:e,hitRegions:n.hitRegions,initialLayoutMap:n.initialLayoutMap,mountedGroups:o,prevCursorFlags:t})}}function Me(e){if(e.defaultPrevented)return;const{cursorFlags:t,interactionState:n,mountedGroups:o}=I();switch(n.state){case"active":{if(e.buttons===0){k(i=>i.interactionState.state==="inactive"?i:{cursorFlags:0,interactionState:{state:"inactive"}}),k(i=>({mountedGroups:new Map(i.mountedGroups)}));return}We({document:e.currentTarget,event:e,hitRegions:n.hitRegions,initialLayoutMap:n.initialLayoutMap,mountedGroups:o,pointerDownAtPoint:n.pointerDownAtPoint,prevCursorFlags:t});break}default:{const i=ce(e,o);i.length===0?n.state!=="inactive"&&k({interactionState:{state:"inactive"}}):k({interactionState:{hitRegions:i,state:"hover"}}),fe(e.currentTarget);break}}}function Ee(e){if(e.relatedTarget instanceof HTMLIFrameElement){const{interactionState:t}=I();switch(t.state){case"hover":k({interactionState:{state:"inactive"}})}}}function ke(e){if(e.defaultPrevented)return;if(e.pointerType==="mouse"&&e.button>0)return;const{interactionState:t}=I();switch(t.state){case"active":k({cursorFlags:0,interactionState:{state:"inactive"}}),t.hitRegions.length>0&&(fe(e.currentTarget),k(n=>({mountedGroups:new Map(n.mountedGroups)})),e.preventDefault())}}function Ge(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 St(e,t,n){if(!n[0])return;const i=e.panels.find(f=>f.element===t);if(!i||!i.onResize)return;const s=B({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 vt(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 xt(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 W=new Map;function zt(e){let t=!0;w(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(c=>{for(const d of c){const{borderBoxSize:p,target:y}=d;if(y===e.element){if(t){if(B({group:e})===0)return;k(v=>{const g=v.mountedGroups.get(e);if(g){const b=ge(e),C=g.defaultLayoutDeferred?Ge(b):g.layout,R=$({layout:C,panelConstraints:b});return!g.defaultLayoutDeferred&&j(C,R)&&vt(g.derivedPanelConstraints,b)?v:{mountedGroups:new Map(v.mountedGroups).set(e,{defaultLayoutDeferred:!1,derivedPanelConstraints:b,layout:R,separatorToPanels:g.separatorToPanels})}}return v})}}else St(e,y,p)}});s.observe(e.element),e.panels.forEach(c=>{w(!o.has(c.id),`Panel ids must be unique; id "${c.id}" was used more than once`),o.add(c.id),c.onResize&&s.observe(c.element)});const l=B({group:e}),r=ge(e),a=e.panels.map(({id:c})=>c).join(",");let f=e.defaultLayout;f&&(xt(e.panels,f)||(f=void 0));const u=e.inMemoryLayouts[a]??f??Ge(r),m=$({layout:u,panelConstraints:r}),x=Te(e),S=e.element.ownerDocument;return k(c=>{const d=new Map;return W.set(S,(W.get(S)??0)+1),x.forEach(p=>{p.separator&&d.set(p.separator,p.panels)}),{mountedGroups:new Map(c.mountedGroups).set(e,{defaultLayoutDeferred:l===0,derivedPanelConstraints:r,layout:m,separatorToPanels:d})}}),e.separators.forEach(c=>{w(!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",ze)}),W.get(S)===1&&(S.addEventListener("dblclick",xe,!0),S.addEventListener("pointerdown",be,!0),S.addEventListener("pointerleave",Pe),S.addEventListener("pointermove",Me),S.addEventListener("pointerout",Ee),S.addEventListener("pointerup",ke,!0)),function(){t=!1,W.set(S,Math.max(0,(W.get(S)??0)-1)),k(d=>{const p=new Map(d.mountedGroups);return p.delete(e),{mountedGroups:p}}),e.separators.forEach(d=>{d.element.removeEventListener("keydown",ze)}),W.get(S)||(S.removeEventListener("dblclick",xe,!0),S.removeEventListener("pointerdown",be,!0),S.removeEventListener("pointerleave",Pe),S.removeEventListener("pointermove",Me),S.removeEventListener("pointerout",Ee),S.removeEventListener("pointerup",ke,!0)),s.disconnect()}}function bt(){const[e,t]=z.useState({}),n=z.useCallback(()=>t({}),[]);return[e,n]}function de(e){const t=z.useId();return`${e??t}`}const H=typeof window<"u"?z.useLayoutEffect:z.useEffect;function X(e){const t=z.useRef(e);return H(()=>{t.current=e},[e]),z.useCallback((...n)=>t.current?.(...n),[t])}function pe(...e){return X(t=>{e.forEach(n=>{if(n)switch(typeof n){case"function":{n(t);break}case"object":{n.current=t;break}}})})}function wt(e){const t=z.useRef({...e});return H(()=>{for(const n in e)t.current[n]=e[n]},[e]),t.current}const Ue=z.createContext(null);function Lt(e,t){const n=z.useRef({getLayout:()=>({}),setLayout:gt});z.useImperativeHandle(t,()=>n.current,[]),H(()=>{Object.assign(n.current,Ae({groupId:e}))})}function Be({children:e,className:t,defaultLayout:n,disableCursor:o,disabled:i,elementRef:s,groupRef:l,id:r,onLayoutChange:a,onLayoutChanged:f,orientation:u="horizontal",resizeTargetMinimumSize:m={coarse:20,fine:10},style:x,...S}){const c=z.useRef({onLayoutChange:{},onLayoutChanged:{}}),d=X(L=>{j(c.current.onLayoutChange,L)||(c.current.onLayoutChange=L,a?.(L))}),p=X(L=>{j(c.current.onLayoutChanged,L)||(c.current.onLayoutChanged=L,f?.(L))}),y=de(r),h=z.useRef(null),[v,g]=bt(),b=z.useRef({lastExpandedPanelSizes:{},layouts:{},panels:[],resizeTargetMinimumSize:m,separators:[]}),C=pe(h,s);Lt(y,l);const R=X((L,P)=>{const{interactionState:G,mountedGroups:V}=I();for(const Z of V.keys())if(Z.id===L){const K=V.get(Z);if(K){let Q=!1;switch(G.state){case"active":{Q=G.hitRegions.some(se=>se.group===Z);break}}return{flexGrow:K.layout[P]??1,pointerEvents:Q?"none":void 0}}}return{flexGrow:n?.[P]??1}}),M=z.useMemo(()=>({getPanelStyles:R,id:y,orientation:u,registerPanel:L=>{const P=b.current;return P.panels=ue(u,[...P.panels,L]),g(),()=>{P.panels=P.panels.filter(G=>G!==L),g()}},registerSeparator:L=>{const P=b.current;return P.separators=ue(u,[...P.separators,L]),g(),()=>{P.separators=P.separators.filter(G=>G!==L),g()}}}),[R,y,g,u]),_=wt({defaultLayout:n,disableCursor:o}),A=z.useRef(null);return H(()=>{const L=h.current;if(L===null)return;const P=b.current,G={defaultLayout:_.defaultLayout,disableCursor:!!_.disableCursor,disabled:!!i,element:L,id:y,inMemoryLastExpandedPanelSizes:b.current.lastExpandedPanelSizes,inMemoryLayouts:b.current.layouts,orientation:u,panels:P.panels,resizeTargetMinimumSize:P.resizeTargetMinimumSize,separators:P.separators};A.current=G;const V=zt(G),K=I().mountedGroups.get(G);if(K){const{defaultLayoutDeferred:q,derivedPanelConstraints:ee,layout:te}=K;!q&&ee.length>0&&(d(te),p(te))}const Q=N.addListener("interactionStateChange",q=>{q.state}),se=N.addListener("mountedGroupsChange",q=>{const ee=q.get(G);if(ee){const{defaultLayoutDeferred:te,derivedPanelConstraints:Xe,layout:he}=ee;if(te||Xe.length===0)return;const{interactionState:Ye}=I(),Je=Ye.state!=="active";d(he),Je&&p(he)}});return()=>{A.current=null,V(),Q(),se()}},[i,y,p,d,u,v,_]),z.useEffect(()=>{const L=A.current;L&&(L.defaultLayout=n,L.disableCursor=!!o)}),Y.jsx(Ue.Provider,{value:M,children:Y.jsx("div",{...S,className:t,"data-group":!0,"data-testid":y,id:y,ref:C,style:{height:"100%",width:"100%",overflow:"hidden",...x,display:"flex",flexDirection:u==="horizontal"?"row":"column",flexWrap:"nowrap"},children:e})})}Be.displayName="Group";function le(e,t){return`react-resizable-panels:${[e,...t].join(":")}`}function Rt({debounceSaveMs:e=100,panelIds:t,storage:n=localStorage,...o}){const i=t!==void 0,s="id"in o?o.id:o.groupId,l=le(s,t??[]),r=z.useSyncExternalStore(Ct,()=>n.getItem(l),()=>n.getItem(l)),a=z.useMemo(()=>r?JSON.parse(r):void 0,[r]),f=z.useRef(null),u=z.useCallback(()=>{const S=f.current;S&&(f.current=null,clearTimeout(S))},[]);z.useLayoutEffect(()=>()=>{u()},[u]);const m=z.useCallback(S=>{u();let c;i?c=le(s,Object.keys(S)):c=le(s,[]);try{n.setItem(c,JSON.stringify(S))}catch(d){console.error(d)}},[u,i,s,n]),x=z.useCallback(S=>{u(),e===0?m(S):f.current=setTimeout(()=>{m(S)},e)},[u,e,m]);return{defaultLayout:a,onLayoutChange:x,onLayoutChanged:m}}function Ct(){return function(){}}function Pt(){return z.useState(null)}function Mt(){return z.useRef(null)}function me(){const e=z.useContext(Ue);return w(e,"Group Context not found; did you render a Panel or Separator outside of a Group?"),e}function Et(e,t){const{id:n}=me(),o=z.useRef({collapse:ae,expand:ae,getSize:()=>({asPercentage:0,inPixels:0}),isCollapsed:()=>!1,resize:ae});z.useImperativeHandle(t,()=>o.current,[]),H(()=>{Object.assign(o.current,_e({groupId:n,panelId:e}))})}function Ke({children:e,className:t,collapsedSize:n="0%",collapsible:o=!1,defaultSize:i,disabled:s,elementRef:l,id:r,maxSize:a="100%",minSize:f="0%",onResize:u,panelRef:m,style:x,...S}){const c=!!r,d=de(r),p=z.useRef(null),y=pe(p,l),{getPanelStyles:h,id:v,registerPanel:g}=me(),b=u!==null,C=X((M,_,A)=>{u?.(M,r,A)});H(()=>{const M=p.current;if(M!==null)return g({element:M,id:d,idIsStable:c,mutableValues:{expandToSize:void 0,prevSize:void 0},onResize:b?C:void 0,panelConstraints:{collapsedSize:n,collapsible:o,defaultSize:i,disabled:s,maxSize:a,minSize:f}})},[n,o,i,s,b,d,c,a,f,C,g]),Et(d,m);const R=z.useSyncExternalStore(M=>(N.addListener("mountedGroupsChange",M),()=>{N.removeListener("mountedGroupsChange",M)}),()=>JSON.stringify(h(v,d)),()=>JSON.stringify(h(v,d)));return Y.jsx("div",{...S,"aria-disabled":s,"data-panel":!0,"data-testid":d,id:d,ref:y,style:{...kt,display:"flex",flexBasis:0,flexShrink:1,overflow:"hidden",...JSON.parse(R)},children:Y.jsx("div",{className:t,style:{maxHeight:"100%",maxWidth:"100%",flexGrow:1,...x},children:e})})}Ke.displayName="Panel";const kt={minHeight:0,maxHeight:"100%",height:"auto",minWidth:0,maxWidth:"100%",width:"auto",border:"none",borderWidth:0,padding:0,margin:0};function Gt(){return z.useState(null)}function It(){return z.useRef(null)}function Dt({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,f=r.collapsible?r.collapsedSize:r.minSize,u=[o,o+1];s=$({layout:J({delta:f-l,initialLayout:e,panelConstraints:t,pivotIndices:u,prevLayout:e}),panelConstraints:t})[n],i=$({layout:J({delta:a-l,initialLayout:e,panelConstraints:t,pivotIndices:u,prevLayout:e}),panelConstraints:t})[n]}return{valueControls:n,valueMax:i,valueMin:s,valueNow:l}}function qe({children:e,className:t,disabled:n,elementRef:o,id:i,style:s,...l}){const r=de(i),[a,f]=z.useState({}),[u,m]=z.useState("inactive"),x=z.useRef(null),S=pe(x,o),{id:c,orientation:d,registerSeparator:p}=me(),y=d==="horizontal"?"vertical":"horizontal";return H(()=>{const h=x.current;if(h!==null){const v={disabled:n,element:h,id:r},g=p(v),b=N.addListener("interactionStateChange",R=>{m(R.state!=="inactive"&&R.hitRegions.some(M=>M.separator===v)?R.state:"inactive")}),C=N.addListener("mountedGroupsChange",R=>{R.forEach(({derivedPanelConstraints:M,layout:_,separatorToPanels:A},L)=>{if(L.id===c){const P=A.get(v);if(P){const G=P[0],V=L.panels.indexOf(G);f(Dt({layout:_,panelConstraints:M,panelId:G.id,panelIndex:V}))}}})});return()=>{b(),C(),g()}}},[n,c,r,p]),Y.jsx("div",{...l,"aria-controls":a.valueControls,"aria-disabled":n,"aria-orientation":y,"aria-valuemax":a.valueMax,"aria-valuemin":a.valueMin,"aria-valuenow":a.valueNow,children:e,className:t,"data-separator":n?"disabled":u,"data-testid":r,id:r,ref:S,role:"separator",style:{flexBasis:"auto",cursor:n?"not-allowed":void 0,...s,flexGrow:0,flexShrink:0},tabIndex:n?void 0:0})}qe.displayName="Separator";exports.Group=Be;exports.Panel=Ke;exports.Separator=qe;exports.isCoarsePointer=Oe;exports.useDefaultLayout=Rt;exports.useGroupCallbackRef=Pt;exports.useGroupRef=Mt;exports.usePanelCallbackRef=Gt;exports.usePanelRef=It;
|
|
2
2
|
//# sourceMappingURL=react-resizable-panels.cjs.map
|