react-resizable-panels 4.0.12 → 4.0.13
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 V=require("react/jsx-runtime"),x=require("react");function b(e,t="Assertion error"){if(!e)throw Error(t)}function W({group:e}){const{orientation:t,panels:n}=e;return n.reduce((o,r)=>(o+=t==="horizontal"?r.element.offsetWidth:r.element.offsetHeight,o),0)}function re(e,t){return t.sort(e==="horizontal"?He:We)}function He(e,t){const n=e.element.offsetLeft-t.element.offsetLeft;return n!==0?n:e.element.offsetWidth-t.element.offsetWidth}function We(e,t){const n=e.element.offsetTop-t.element.offsetTop;return n!==0?n:e.element.offsetHeight-t.element.offsetHeight}function Pe(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 Be({orientation:e,rects:t,targetRect:n}){const o={x:n.x+n.width/2,y:n.y+n.height/2};let r,a=Number.MAX_VALUE;for(const l of t){const{x:i,y:s}=Pe(o,l),u=e==="horizontal"?i:s;u<a&&(a=u,r=l)}return b(r,"No rect found"),r}function Re(e){const{element:t,orientation:n,panels:o,separators:r}=e,a=re(n,Array.from(t.children).filter(c=>c instanceof HTMLElement).map(c=>({element:c}))).map(({element:c})=>c),l=[];let i=!1,s,u=[];for(const c of a)if(c.hasAttribute("data-panel")){const h=o.find(m=>m.element===c);if(h){if(s){const m=s.element.getBoundingClientRect(),p=c.getBoundingClientRect();let f;if(i){const d=n==="horizontal"?new DOMRect(m.right,m.top,0,m.height):new DOMRect(m.left,m.bottom,m.width,0),y=n==="horizontal"?new DOMRect(p.left,p.top,0,p.height):new DOMRect(p.left,p.top,p.width,0);switch(u.length){case 0:{f=[d,y];break}case 1:{const S=u[0],v=Be({orientation:n,rects:[m,p],targetRect:S.element.getBoundingClientRect()});f=[S,v===m?y:d];break}default:{f=u;break}}}else u.length?f=u:f=[n==="horizontal"?new DOMRect(m.right,p.top,p.left-m.right,p.height):new DOMRect(p.left,m.bottom,p.width,p.top-m.bottom)];for(const d of f)l.push({group:e,groupSize:W({group:e}),panels:[s,h],separator:"width"in d?void 0:d,rect:"width"in d?d:d.element.getBoundingClientRect()})}i=!1,s=h,u=[]}}else if(c.hasAttribute("data-separator")){const h=r.find(m=>m.element===c);h?u.push(h):(s=void 0,u=[])}else i=!0;return l}function Ue(e,t){const n=getComputedStyle(e),o=parseFloat(n.fontSize);return t*o}function Ve(e,t){const n=getComputedStyle(e.ownerDocument.body),o=parseFloat(n.fontSize);return t*o}function qe(e){return e/100*window.innerHeight}function Ke(e){return e/100*window.innerWidth}function Xe(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 ee({groupSize:e,panelElement:t,styleProp:n}){let o;const[r,a]=Xe(n);switch(a){case"%":{o=r/100*e;break}case"px":{o=r;break}case"rem":{o=Ve(t,r);break}case"em":{o=Ue(t,r);break}case"vh":{o=qe(r);break}case"vw":{o=Ke(r);break}}return o}function I(e){return parseFloat(e.toFixed(3))}function he(e){const{panels:t}=e,n=W({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:r,panelConstraints:a}=o;let l=0;if(a.collapsedSize){const c=ee({groupSize:n,panelElement:r,styleProp:a.collapsedSize});l=I(c/n*100)}let i;if(a.defaultSize){const c=ee({groupSize:n,panelElement:r,styleProp:a.defaultSize});i=I(c/n*100)}let s=0;if(a.minSize){const c=ee({groupSize:n,panelElement:r,styleProp:a.minSize});s=I(c/n*100)}let u=100;if(a.maxSize){const c=ee({groupSize:n,panelElement:r,styleProp:a.maxSize});u=I(c/n*100)}return{collapsedSize:l,collapsible:a.collapsible===!0,defaultSize:i,minSize:s,maxSize:u,panelId:o.id}})}class Ye{#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 r=!1,a=null;const l=Array.from(o);for(let i=0;i<l.length;i++){const s=l[i];try{s.call(null,n)}catch(u){a===null&&(r=!0,a=u)}}if(r)throw a}}removeAllListeners(){this.#e={}}removeListener(t,n){const o=this.#e[t];if(o!==void 0){const r=o.indexOf(n);r>=0&&o.splice(r,1)}}}function R(e,t,n=0){return Math.abs(I(e)-I(t))<=n}let E={cursorFlags:0,interactionState:{state:"inactive"},mountedGroups:new Map};const T=new Ye;function D(){return E}function M(e){const t=typeof e=="function"?e(E):e;if(E===t)return E;const n=E;return E={...E,...t},t.cursorFlags!==void 0&&T.emit("cursorFlagsChange",E.cursorFlags),t.interactionState!==void 0&&T.emit("interactionStateChange",E.interactionState),t.mountedGroups!==void 0&&(E.mountedGroups.forEach((o,r)=>{o.derivedPanelConstraints.forEach(a=>{if(a.collapsible){const{layout:l}=n.mountedGroups.get(r)??{};if(l){const i=R(a.collapsedSize,o.layout[a.panelId]),s=R(a.collapsedSize,l[a.panelId]);i&&!s&&(r.inMemoryLastExpandedPanelSizes[a.panelId]=l[a.panelId])}}})}),T.emit("mountedGroupsChange",E.mountedGroups)),E}const Ze=e=>e,oe=()=>{},Ce=1,Ee=2,Me=4,ke=8,me={coarse:10,precise:5};function Je({cursorFlags:e,groups:t,state:n}){let o=0,r=0;switch(n){case"active":case"hover":t.forEach(a=>{if(!a.disableCursor)switch(a.orientation){case"horizontal":{o++;break}case"vertical":{r++;break}}})}if(o===0&&r===0)return null;switch(n){case"active":{const a=(e&Ce)!==0,l=(e&Ee)!==0,i=(e&Me)!==0,s=(e&ke)!==0;if(e){if(a)return i?"se-resize":s?"ne-resize":"e-resize";if(l)return i?"sw-resize":s?"nw-resize":"w-resize";if(i)return"s-resize";if(s)return"n-resize"}break}}return o>0&&r>0?"move":o>0?"ew-resize":"ns-resize"}let ie,G;function se(){G===void 0&&(G=new CSSStyleSheet,document.adoptedStyleSheets=[G]);const{cursorFlags:e,interactionState:t}=D();switch(t.state){case"active":case"hover":{const n=Je({cursorFlags:e,groups:t.hitRegions.map(r=>r.group),state:t.state}),o=`*{cursor: ${n} !important; ${t.state==="active"?"touch-action: none;":""} }`;if(ie===o)return;ie=o,n?G.cssRules.length===0?G.insertRule(o):G.replaceSync(o):G.cssRules.length===1&&G.deleteRule(0);break}case"inactive":{ie=void 0,G.cssRules.length===1&&G.deleteRule(0);break}}}function Qe(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 q(e,t){return R(e,t)?0:e>t?1:-1}function H({panelConstraints:e,size:t}){const{collapsedSize:n=0,collapsible:o,maxSize:r=100,minSize:a=0}=e;if(q(t,a)<0)if(o){const l=(n+a)/2;q(t,l)<0?t=n:t=a}else t=a;return t=Math.min(r,t),t=I(t),t}function K({delta:e,initialLayout:t,panelConstraints:n,pivotIndices:o,prevLayout:r,trigger:a}){if(R(e,0))return t;const l=Object.values(t),i=Object.values(r),s=[...l],[u,c]=o;b(u!=null,"Invalid first pivot index"),b(c!=null,"Invalid second pivot index");let h=0;if(a==="keyboard"){{const f=e<0?c:u,d=n[f];b(d,`Panel constraints not found for index ${f}`);const{collapsedSize:y=0,collapsible:S,minSize:v=0}=d;if(S){const z=l[f];if(b(z!=null,`Previous layout not found for panel index ${f}`),R(z,y)){const g=v-z;q(g,Math.abs(e))>0&&(e=e<0?0-g:g)}}}{const f=e<0?u:c,d=n[f];b(d,`No panel constraints found for index ${f}`);const{collapsedSize:y=0,collapsible:S,minSize:v=0}=d;if(S){const z=l[f];if(b(z!=null,`Previous layout not found for panel index ${f}`),R(z,v)){const g=z-y;q(g,Math.abs(e))>0&&(e=e<0?0-g:g)}}}}{const f=e<0?1:-1;let d=e<0?c:u,y=0;for(;;){const v=l[d];b(v!=null,`Previous layout not found for panel index ${d}`);const g=H({panelConstraints:n[d],size:100})-v;if(y+=g,d+=f,d<0||d>=n.length)break}const S=Math.min(Math.abs(e),Math.abs(y));e=e<0?0-S:S}{let d=e<0?u:c;for(;d>=0&&d<n.length;){const y=Math.abs(e)-Math.abs(h),S=l[d];b(S!=null,`Previous layout not found for panel index ${d}`);const v=S-y,z=H({panelConstraints:n[d],size:v});if(!R(S,z)&&(h+=S-z,s[d]=z,h.toFixed(3).localeCompare(Math.abs(e).toFixed(3),void 0,{numeric:!0})>=0))break;e<0?d--:d++}}if(Qe(i,s))return r;{const f=e<0?c:u,d=l[f];b(d!=null,`Previous layout not found for panel index ${f}`);const y=d+h,S=H({panelConstraints:n[f],size:y});if(s[f]=S,!R(S,y)){let v=y-S,g=e<0?c:u;for(;g>=0&&g<n.length;){const L=s[g];b(L!=null,`Previous layout not found for panel index ${g}`);const P=L+v,C=H({panelConstraints:n[g],size:P});if(R(L,C)||(v-=C-L,s[g]=C),R(v,0))break;e>0?g--:g++}}}const m=Object.values(s).reduce((f,d)=>d+f,0);if(!R(m,100,.1))return r;const p=Object.keys(r);return s.reduce((f,d,y)=>(f[p[y]]=d,f),{})}function B(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e)if(t[n]===void 0||q(e[n],t[n])!==0)return!1;return!0}function Ie({event:e,hitRegions:t,initialLayoutMap:n,mountedGroups:o,pointerDownAtPoint:r}){let a=0;const l=new Map(o);t.forEach(i=>{const{group:s,groupSize:u}=i,{disableCursor:c,orientation:h,panels:m}=s;let p=0;r?h==="horizontal"?p=(e.clientX-r.x)/u*100:p=(e.clientY-r.y)/u*100:h==="horizontal"?p=e.clientX<0?-100:100:p=e.clientY<0?-100:100;const f=n.get(s),{defaultLayoutDeferred:d,derivedPanelConstraints:y,layout:S,separatorToPanels:v}=o.get(s)??{defaultLayoutDeferred:!1};if(y&&f&&S&&v){const z=K({delta:p,initialLayout:f,panelConstraints:y,pivotIndices:i.panels.map(g=>m.indexOf(g)),prevLayout:S,trigger:"mouse-or-touch"});if(B(z,S)){if(p!==0&&!c)switch(h){case"horizontal":{a|=p<0?Ce:Ee;break}case"vertical":{a|=p<0?Me:ke;break}}}else{l.set(i.group,{defaultLayoutDeferred:d,derivedPanelConstraints:y,layout:z,separatorToPanels:v});const g=i.group.panels.map(({id:L})=>L).join(",");i.group.inMemoryLayouts[g]=z}}}),M({cursorFlags:a,mountedGroups:l}),se()}function ye(e){if(e.defaultPrevented)return;if(e.relatedTarget!==null)return;if(e.clientX===0&&e.clientY===0)return;const{interactionState:t,mountedGroups:n}=D();switch(t.state){case"active":t.hitRegions.forEach(o=>{e.currentTarget===o.group.element&&Ie({event:e,hitRegions:t.hitRegions,initialLayoutMap:t.initialLayoutMap,mountedGroups:n})})}}function ne(e){const t=e.parentElement;b(t,"Parent group element not found");const{mountedGroups:n}=D();for(const[o]of n)if(o.element===t)return o;throw Error("Could not find parent Group for separator element")}function _({layout:e,panelConstraints:t}){const o=[...Object.values(e)],r=o.reduce((i,s)=>i+s,0);if(o.length!==t.length)throw Error(`Invalid ${t.length} panel layout: ${o.map(i=>`${i}%`).join(", ")}`);if(!R(r,100)&&o.length>0)for(let i=0;i<t.length;i++){const s=o[i];b(s!=null,`No layout data found for index ${i}`);const u=100/r*s;o[i]=u}let a=0;for(let i=0;i<t.length;i++){const s=o[i];b(s!=null,`No layout data found for index ${i}`);const u=H({panelConstraints:t[i],size:s});s!=u&&(a+=s-u,o[i]=u)}if(!R(a,0))for(let i=0;i<t.length;i++){const s=o[i];b(s!=null,`No layout data found for index ${i}`);const u=s+a,c=H({panelConstraints:t[i],size:u});if(s!==c&&(a-=c-s,o[i]=c,R(a,0)))break}const l=Object.keys(e);return o.reduce((i,s,u)=>(i[l[u]]=s,i),{})}function Ge({groupId:e}){const t=()=>{const{mountedGroups:n}=D();for(const[o,r]of n)if(o.id===e)return{group:o,...r};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:r,group:a,layout:l,separatorToPanels:i}=t(),s=_({layout:n,panelConstraints:r});return o?l:(B(l,s)||M(u=>({mountedGroups:new Map(u.mountedGroups).set(a,{defaultLayoutDeferred:o,derivedPanelConstraints:r,layout:s,separatorToPanels:i})})),s)}}}function De(e){const{mountedGroups:t}=D(),n=t.get(e);return b(n,`Mounted Group ${e.id} not found`),n}function O(e,t){const n=ne(e),o=De(n),r=n.separators.find(h=>h.element===e);b(r,"Matching separator not found");const a=o.separatorToPanels.get(r);b(a,"Matching panels not found");const l=a.map(h=>n.panels.indexOf(h)),s=Ge({groupId:n.id}).getLayout(),u=K({delta:t,initialLayout:s,panelConstraints:o.derivedPanelConstraints,pivotIndices:l,prevLayout:s,trigger:"keyboard"}),c=_({layout:u,panelConstraints:o.derivedPanelConstraints});B(s,c)||M(h=>({mountedGroups:new Map(h.mountedGroups).set(n,{defaultLayoutDeferred:o.defaultLayoutDeferred,derivedPanelConstraints:o.derivedPanelConstraints,layout:c,separatorToPanels:o.separatorToPanels})}))}function ge(e){if(e.defaultPrevented)return;const t=e.currentTarget,n=ne(t);if(!n.disabled)switch(e.key){case"ArrowDown":{e.preventDefault(),n.orientation==="vertical"&&O(t,5);break}case"ArrowLeft":{e.preventDefault(),n.orientation==="horizontal"&&O(t,-5);break}case"ArrowRight":{e.preventDefault(),n.orientation==="horizontal"&&O(t,5);break}case"ArrowUp":{e.preventDefault(),n.orientation==="vertical"&&O(t,-5);break}case"End":{e.preventDefault(),O(t,100);break}case"Enter":{e.preventDefault();const o=ne(t),{derivedPanelConstraints:r,layout:a,separatorToPanels:l}=De(o),i=o.separators.find(h=>h.element===t);b(i,"Matching separator not found");const s=l.get(i);b(s,"Matching panels not found");const u=s[0],c=r.find(h=>h.panelId===u.id);if(b(c,"Panel metadata not found"),c.collapsible){const h=a[u.id],m=c.collapsedSize===h?o.inMemoryLastExpandedPanelSizes[u.id]??c.minSize:c.collapsedSize;O(t,m-h)}break}case"F6":{e.preventDefault();const r=ne(t).separators.map(s=>s.element),a=Array.from(r).findIndex(s=>s===e.currentTarget);b(a!==null,"Index not found");const l=e.shiftKey?a>0?a-1:r.length-1:a+1<r.length?a+1:0;r[l].focus();break}case"Home":{e.preventDefault(),O(t,-100);break}}}function et(e,t,n){let o,r={x:1/0,y:1/0};for(const a of t){const l=Pe(n,a.rect);switch(e){case"horizontal":{l.x<=r.x&&(o=a,r=l);break}case"vertical":{l.y<=r.y&&(o=a,r=l);break}}}return o?{distance:r,hitRegion:o}:void 0}let te;function tt(){return te===void 0&&(typeof matchMedia=="function"?te=!!matchMedia("(pointer:coarse)").matches:te=!1),te}function nt(e,t){if(e===t)throw new Error("Cannot compare node with itself");const n={a:xe(e),b:xe(t)};let o;for(;n.a.at(-1)===n.b.at(-1);)e=n.a.pop(),t=n.b.pop(),o=e;b(o,"Stacking order can only be calculated for elements with a common ancestor");const r={a:ve(Se(n.a)),b:ve(Se(n.b))};if(r.a===r.b){const a=o.childNodes,l={a:n.a.at(-1),b:n.b.at(-1)};let i=a.length;for(;i--;){const s=a[i];if(s===l.a)return 1;if(s===l.b)return-1}}return Math.sign(r.a-r.b)}const ot=/\b(?:position|zIndex|opacity|transform|webkitTransform|mixBlendMode|filter|webkitFilter|isolation)\b/;function it(e){const t=getComputedStyle(Oe(e)??e).display;return t==="flex"||t==="inline-flex"}function rt(e){const t=getComputedStyle(e);return!!(t.position==="fixed"||t.zIndex!=="auto"&&(t.position!=="static"||it(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"||ot.test(t.willChange)||t.webkitOverflowScrolling==="touch")}function Se(e){let t=e.length;for(;t--;){const n=e[t];if(b(n,"Missing node"),rt(n))return n}return null}function ve(e){return e&&Number(getComputedStyle(e).zIndex)||0}function xe(e){const t=[];for(;e;)t.push(e),e=Oe(e);return t}function Oe(e){const{parentNode:t}=e;return t&&t instanceof ShadowRoot?t.host:t}function st(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 at({groupElement:e,hitRegion:t,pointerEventTarget:n}){if(!(n instanceof HTMLElement)||n.contains(e)||e.contains(n))return!0;if(nt(n,e)>0){let o=n;for(;o;){if(o.contains(e))return!0;if(st(o.getBoundingClientRect(),t))return!1;o=o.parentElement}}return!0}function Te(e,t){const n=[];return t.forEach((o,r)=>{if(r.disabled)return;const a=tt()?me.coarse:me.precise,l=Re(r),i=et(r.orientation,l,{x:e.clientX,y:e.clientY});i&&i.distance.x<=a&&i.distance.y<=a&&at({groupElement:r.element,hitRegion:i.hitRegion.rect,pointerEventTarget:e.target})&&n.push(i.hitRegion)}),n}function ze(e){if(e.defaultPrevented)return;const{mountedGroups:t}=D(),n=Te(e,t),o=new Set,r=new Set,a=new Set,l=new Map;let i=!1;n.forEach(s=>{o.add(s.group),s.panels.forEach(c=>{r.add(c)}),s.separator&&(a.add(s.separator),i||(i=!0,s.separator.element.focus()));const u=t.get(s.group);u&&l.set(s.group,u.layout)}),M({interactionState:{hitRegions:n,initialLayoutMap:l,pointerDownAtPoint:{x:e.clientX,y:e.clientY},state:"active"}}),n.length&&e.preventDefault()}function be(e){if(e.defaultPrevented)return;const{interactionState:t,mountedGroups:n}=D();switch(t.state){case"active":{if(e.type!=="pointerleave"&&e.buttons===0){M(o=>o.interactionState.state==="inactive"?o:{cursorFlags:0,interactionState:{state:"inactive"}});return}Ie({event:e,hitRegions:t.hitRegions,initialLayoutMap:t.initialLayoutMap,mountedGroups:n,pointerDownAtPoint:t.pointerDownAtPoint});break}default:{const o=Te(e,n);o.length===0?t.state!=="inactive"&&M({interactionState:{state:"inactive"}}):M({interactionState:{hitRegions:o,state:"hover"}}),se();break}}}function we(e){if(e.defaultPrevented)return;e.preventDefault();const{interactionState:t}=D();switch(t.state){case"active":M({cursorFlags:0,interactionState:{state:"inactive"}}),se()}}function Le(e){let t=0,n=0;const o={};for(const a of e)if(a.defaultSize!==void 0){t++;const l=I(a.defaultSize);n+=l,o[a.panelId]=l}else o[a.panelId]=void 0;const r=e.length-t;if(r!==0){const a=I((100-n)/r);for(const l of e)l.defaultSize===void 0&&(o[l.panelId]=a)}return o}function lt(e,t,n){const o=n[0];if(!o)return;const r=e.panels.find(l=>l.element===t);if(!r||!r.onResize)return;const a=W({group:e});r.onResize({asPercentage:I(o.inlineSize/a*100),inPixels:o.inlineSize},r.id)}function ut(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 ct(e){let t=!0;const n=new Set,o=new Set,r=new ResizeObserver(p=>{for(const f of p){const{borderBoxSize:d,target:y}=f;if(y===e.element){if(t){if(W({group:e})===0)return;M(v=>{const z=v.mountedGroups.get(e);if(z){const g=he(e),L=z.defaultLayoutDeferred?Le(g):z.layout,P=_({layout:L,panelConstraints:g});return!z.defaultLayoutDeferred&&B(L,P)&&ut(z.derivedPanelConstraints,g)?v:{mountedGroups:new Map(v.mountedGroups).set(e,{defaultLayoutDeferred:!1,derivedPanelConstraints:g,layout:P,separatorToPanels:z.separatorToPanels})}}return v})}}else lt(e,y,d)}});r.observe(e.element),e.panels.forEach(p=>{b(!n.has(p.id),`Panel ids must be unique; id "${p.id}" was used more than once`),n.add(p.id),p.onResize&&r.observe(p.element)});const a=W({group:e}),l=he(e),i=e.panels.map(({id:p})=>p).join(",");let s=e.defaultLayout;s&&e.panels.length!==Object.keys(s).length&&(s=void 0);const u=e.inMemoryLayouts[i]??s??Le(l),c=_({layout:u,panelConstraints:l}),h=Re(e),m=M(p=>{const f=new Map;return h.forEach(d=>{d.separator&&f.set(d.separator,d.panels)}),{mountedGroups:new Map(p.mountedGroups).set(e,{defaultLayoutDeferred:a===0,derivedPanelConstraints:l,layout:c,separatorToPanels:f})}});return e.element.addEventListener("pointerleave",ye),e.separators.forEach(p=>{b(!o.has(p.id),`Separator ids must be unique; id "${p.id}" was used more than once`),o.add(p.id),p.element.addEventListener("keydown",ge)}),m.mountedGroups.size===1&&(window.addEventListener("pointerdown",ze),window.addEventListener("pointermove",be),window.addEventListener("pointerup",we)),function(){t=!1;const f=M(d=>{const y=new Map(d.mountedGroups);return y.delete(e),{mountedGroups:y}});e.element.removeEventListener("pointerleave",ye),e.separators.forEach(d=>{d.element.removeEventListener("keydown",ge)}),f.mountedGroups.size===0&&(window.removeEventListener("pointerdown",ze),window.removeEventListener("pointermove",be),window.removeEventListener("pointerup",we)),r.disconnect()}}function ae(e){const t=x.useId();return`${e??t}`}const A=typeof window<"u"?x.useLayoutEffect:x.useEffect;function le(e){const t=x.useRef(e);return A(()=>{t.current=e},[e]),x.useCallback(n=>t.current?.(n),[t])}function ue(...e){return le(t=>{e.forEach(n=>{if(n)switch(typeof n){case"function":{n(t);break}case"object":{n.current=t;break}}})})}function ft(e){const t=x.useRef({...e});return A(()=>{for(const n in e)t.current[n]=e[n]},[e]),t.current}const _e="--react-resizable-panels--panel--pointer-events";function Ae(e,t){const n=e.replace(/[^a-zA-Z0-9\-_]/g,""),o=t.replace(/[^a-zA-Z0-9\-_]/g,"");return`--react-resizable-panels--${n}--${o}`}const Ne=x.createContext(null);function dt(e,t){const n=x.useRef({getLayout:()=>({}),setLayout:Ze});x.useImperativeHandle(t,()=>n.current,[]),A(()=>{Object.assign(n.current,Ge({groupId:e}))})}function pt({children:e,className:t,defaultLayout:n,disableCursor:o,disabled:r,elementRef:a,groupRef:l,id:i,onLayoutChange:s,orientation:u="horizontal",style:c,...h}){const m=x.useRef({}),p=le(w=>{B(m.current,w)||(m.current=w,s?.(w))}),f=ae(i),[d,y]=x.useState(!1),[S,v]=x.useState(null),[z,g]=x.useState(n??{}),[L,P]=x.useState([]),[C,X]=x.useState([]),Y=x.useRef({lastExpandedPanelSizes:{},layouts:{}}),Z=ue(v,a);dt(f,l);const J=x.useMemo(()=>({id:f,orientation:u,registerPanel:w=>(P(k=>re(u,[...k,w])),()=>{P(k=>k.filter($=>$!==w))}),registerSeparator:w=>(X(k=>re(u,[...k,w])),()=>{X(k=>k.filter($=>$!==w))})}),[f,u]),N=ft({defaultLayout:n,disableCursor:o}),U=x.useRef(null);A(()=>{if(S===null)return;const w={defaultLayout:N.defaultLayout,disableCursor:!!N.disableCursor,disabled:!!r,element:S,id:f,inMemoryLastExpandedPanelSizes:Y.current.lastExpandedPanelSizes,inMemoryLayouts:Y.current.layouts,orientation:u,panels:L,separators:C};U.current=w;const k=ct(w),de=D().mountedGroups.get(w);if(de){const{defaultLayoutDeferred:j,derivedPanelConstraints:F,layout:Q}=de;!j&&F.length>0&&(g(Q),p?.(Q))}const $e=T.addListener("interactionStateChange",j=>{switch(j.state){case"active":{y(j.hitRegions.some(F=>F.group===w));break}default:{y(!1);break}}}),je=T.addListener("mountedGroupsChange",j=>{const F=j.get(w);if(F){const{defaultLayoutDeferred:Q,derivedPanelConstraints:Fe,layout:pe}=F;if(Q||Fe.length===0)return;g(pe),p?.(pe)}});return()=>{U.current=null,k(),$e(),je()}},[r,S,f,p,u,L,C,N]),x.useEffect(()=>{const w=U.current;w&&(w.defaultLayout=n,w.disableCursor=!!o)});const fe={[_e]:d?"none":void 0};for(const w in z){const k=Ae(f,w),$=z[w];fe[k]=$}return V.jsx(Ne.Provider,{value:J,children:V.jsx("div",{...h,"aria-orientation":u,className:t,"data-group":!0,"data-testid":f,id:f,ref:Z,style:{...c,...fe,display:"flex",flexDirection:u==="horizontal"?"row":"column",flexWrap:"nowrap"},children:e})})}function ht(e,t=10){let n=null;return o=>{n!==null&&clearTimeout(n),n=setTimeout(()=>{e(o)},t)}}function mt(e){return`react-resizable-panels:${e}`}function yt({debounceSaveMs:e=100,groupId:t,storage:n}){const o=mt(t),r=x.useSyncExternalStore(gt,()=>n.getItem(o),()=>n.getItem(o)),a=x.useMemo(()=>r?JSON.parse(r):void 0,[r]),l=x.useMemo(()=>{const i=s=>{try{n.setItem(o,JSON.stringify(s))}catch(u){console.error(u)}};return e>0?ht(i,e):i},[e,n,o]);return{defaultLayout:a,onLayoutChange:l}}function gt(){return function(){}}function St(){return x.useState(null)}function vt(){return x.useRef(null)}function ce(){const e=x.useContext(Ne);return b(e,"Group Context not found; did you render a Panel or Separator outside of a Group?"),e}function xt({groupId:e,panelId:t}){const n=()=>{const{mountedGroups:i}=D();for(const[s,{defaultLayoutDeferred:u,derivedPanelConstraints:c,layout:h,separatorToPanels:m}]of i)if(s.id===e)return{defaultLayoutDeferred:u,derivedPanelConstraints:c,group:s,layout:h,separatorToPanels:m};throw Error(`Group ${e} not found`)},o=()=>{const i=n().derivedPanelConstraints.find(s=>s.panelId===t);if(i!==void 0)return i;throw Error(`Panel constraints not found for Panel ${t}`)},r=()=>{const i=n().group.panels.find(s=>s.id===t);if(i!==void 0)return i;throw Error(`Layout not found for Panel ${t}`)},a=()=>{const i=n().layout[t];if(i!==void 0)return i;throw Error(`Layout not found for Panel ${t}`)},l=i=>{const s=a();if(i===s)return;const{defaultLayoutDeferred:u,derivedPanelConstraints:c,group:h,layout:m,separatorToPanels:p}=n(),f=h.panels.findIndex(v=>v.id===t),d=f===h.panels.length-1,y=K({delta:d?s-i:i-s,initialLayout:m,panelConstraints:c,pivotIndices:d?[f-1,f]:[f,f+1],prevLayout:m,trigger:"imperative-api"}),S=_({layout:y,panelConstraints:c});B(m,S)||M(v=>({mountedGroups:new Map(v.mountedGroups).set(h,{defaultLayoutDeferred:u,derivedPanelConstraints:c,layout:S,separatorToPanels:p})}))};return{collapse:()=>{const{collapsible:i,collapsedSize:s}=o(),u=a();i&&u!==s&&l(s)},expand:()=>{const{collapsible:i,collapsedSize:s,minSize:u}=o(),c=a();i&&c===s&&l(u)},getSize:()=>{const{group:i}=n(),s=a(),{element:u}=r(),c=i.orientation==="horizontal"?u.offsetWidth:u.offsetHeight;return{asPercentage:s,inPixels:c}},isCollapsed:()=>{const{collapsible:i,collapsedSize:s}=o(),u=a();return i&&R(s,u)},resize:i=>{if(a()!==i){let u;switch(typeof i){case"number":{const{group:c}=n(),h=W({group:c});u=I(i/h*100);break}case"string":{u=parseFloat(i);break}}l(u)}}}}function zt(e,t){const{id:n}=ce(),o=x.useRef({collapse:oe,expand:oe,getSize:()=>({asPercentage:0,inPixels:0}),isCollapsed:()=>!1,resize:oe});x.useImperativeHandle(t,()=>o.current,[]),A(()=>{Object.assign(o.current,xt({groupId:n,panelId:e}))})}function bt({children:e,className:t,collapsedSize:n="0%",collapsible:o=!1,defaultSize:r,elementRef:a,id:l,maxSize:i="100%",minSize:s="0%",onResize:u,panelRef:c,style:h,...m}){const p=!!l,f=ae(l),[d,y]=x.useState(null),S=ue(y,a),{id:v,registerPanel:z}=ce(),g=u!==null,L=le(C=>{u?.(C,l)});A(()=>{if(d!==null)return z({element:d,id:f,idIsStable:p,onResize:g?L:void 0,panelConstraints:{collapsedSize:n,collapsible:o,defaultSize:r,maxSize:i,minSize:s}})},[n,o,r,d,g,f,p,i,s,L,z]),zt(f,c);const P=Ae(v,f);return V.jsx("div",{...m,"data-panel":!0,"data-testid":f,id:f,ref:S,style:{...wt,flexBasis:0,flexGrow:`var(${P}, 1)`,flexShrink:1,overflow:"hidden",pointerEvents:`var(${_e})`},children:V.jsx("div",{className:t,style:{width:"100%",height:"100%",...h},children:e})})}const wt={minHeight:"unset",maxHeight:"unset",height:"unset",minWidth:"unset",maxWidth:"unset",width:"unset",flex:"unset",flexBasis:"unset",flexShrink:"unset",flexGrow:"unset",border:"unset",borderWidth:"unset",padding:"unset",margin:"unset"};function Lt(){return x.useState(null)}function Pt(){return x.useRef(null)}function Rt({layout:e,panelConstraints:t,panelId:n,panelIndex:o}){let r,a;const l=e[n],i=t.find(s=>s.panelId===n);if(i){const s=i.maxSize,u=a=i.collapsible?i.collapsedSize:i.minSize,c=[o,o+1];a=_({layout:K({delta:u-l,initialLayout:e,panelConstraints:t,pivotIndices:c,prevLayout:e,trigger:"keyboard"}),panelConstraints:t})[n],r=_({layout:K({delta:s-l,initialLayout:e,panelConstraints:t,pivotIndices:c,prevLayout:e,trigger:"keyboard"}),panelConstraints:t})[n]}return{valueControls:n,valueMax:r,valueMin:a,valueNow:l}}function Ct({children:e,className:t,elementRef:n,id:o,style:r,...a}){const l=ae(o),[i,s]=x.useState({}),[u,c]=x.useState("inactive"),[h,m]=x.useState(null),p=ue(m,n),{id:f,orientation:d,registerSeparator:y}=ce(),S=d==="horizontal"?"vertical":"horizontal";return A(()=>{if(h!==null){const v={element:h,id:l},z=y(v),g=T.addListener("interactionStateChange",P=>{c(P.state!=="inactive"&&P.hitRegions.some(C=>C.separator===v)?P.state:"inactive")}),L=T.addListener("mountedGroupsChange",P=>{P.forEach(({derivedPanelConstraints:C,layout:X,separatorToPanels:Y},Z)=>{if(Z.id===f){const J=Y.get(v);if(J){const N=J[0],U=Z.panels.indexOf(N);s(Rt({layout:X,panelConstraints:C,panelId:N.id,panelIndex:U}))}}})});return()=>{g(),L(),z()}}},[h,f,l,y]),V.jsx("div",{...a,"aria-controls":i.valueControls,"aria-orientation":S,"aria-valuemax":i.valueMax,"aria-valuemin":i.valueMin,"aria-valuenow":i.valueNow,children:e,className:t,"data-separator":u,"data-testid":l,id:l,ref:p,role:"separator",style:{flexBasis:"auto",...r,flexGrow:0,flexShrink:0},tabIndex:0})}exports.Group=pt;exports.Panel=bt;exports.Separator=Ct;exports.useDefaultLayout=yt;exports.useGroupCallbackRef=St;exports.useGroupRef=vt;exports.usePanelCallbackRef=Lt;exports.usePanelRef=Pt;
|
|
1
|
+
"use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const V=require("react/jsx-runtime"),x=require("react");function b(e,t="Assertion error"){if(!e)throw Error(t)}function W({group:e}){const{orientation:t,panels:n}=e;return n.reduce((o,r)=>(o+=t==="horizontal"?r.element.offsetWidth:r.element.offsetHeight,o),0)}function re(e,t){return t.sort(e==="horizontal"?He:We)}function He(e,t){const n=e.element.offsetLeft-t.element.offsetLeft;return n!==0?n:e.element.offsetWidth-t.element.offsetWidth}function We(e,t){const n=e.element.offsetTop-t.element.offsetTop;return n!==0?n:e.element.offsetHeight-t.element.offsetHeight}function Pe(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 Be({orientation:e,rects:t,targetRect:n}){const o={x:n.x+n.width/2,y:n.y+n.height/2};let r,a=Number.MAX_VALUE;for(const l of t){const{x:i,y:s}=Pe(o,l),u=e==="horizontal"?i:s;u<a&&(a=u,r=l)}return b(r,"No rect found"),r}function Re(e){const{element:t,orientation:n,panels:o,separators:r}=e,a=re(n,Array.from(t.children).filter(c=>c instanceof HTMLElement).map(c=>({element:c}))).map(({element:c})=>c),l=[];let i=!1,s,u=[];for(const c of a)if(c.hasAttribute("data-panel")){const h=o.find(m=>m.element===c);if(h){if(s){const m=s.element.getBoundingClientRect(),p=c.getBoundingClientRect();let f;if(i){const d=n==="horizontal"?new DOMRect(m.right,m.top,0,m.height):new DOMRect(m.left,m.bottom,m.width,0),y=n==="horizontal"?new DOMRect(p.left,p.top,0,p.height):new DOMRect(p.left,p.top,p.width,0);switch(u.length){case 0:{f=[d,y];break}case 1:{const S=u[0],v=Be({orientation:n,rects:[m,p],targetRect:S.element.getBoundingClientRect()});f=[S,v===m?y:d];break}default:{f=u;break}}}else u.length?f=u:f=[n==="horizontal"?new DOMRect(m.right,p.top,p.left-m.right,p.height):new DOMRect(p.left,m.bottom,p.width,p.top-m.bottom)];for(const d of f)l.push({group:e,groupSize:W({group:e}),panels:[s,h],separator:"width"in d?void 0:d,rect:"width"in d?d:d.element.getBoundingClientRect()})}i=!1,s=h,u=[]}}else if(c.hasAttribute("data-separator")){const h=r.find(m=>m.element===c);h?u.push(h):(s=void 0,u=[])}else i=!0;return l}function Ue(e,t){const n=getComputedStyle(e),o=parseFloat(n.fontSize);return t*o}function Ve(e,t){const n=getComputedStyle(e.ownerDocument.body),o=parseFloat(n.fontSize);return t*o}function qe(e){return e/100*window.innerHeight}function Ke(e){return e/100*window.innerWidth}function Xe(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 ee({groupSize:e,panelElement:t,styleProp:n}){let o;const[r,a]=Xe(n);switch(a){case"%":{o=r/100*e;break}case"px":{o=r;break}case"rem":{o=Ve(t,r);break}case"em":{o=Ue(t,r);break}case"vh":{o=qe(r);break}case"vw":{o=Ke(r);break}}return o}function I(e){return parseFloat(e.toFixed(3))}function he(e){const{panels:t}=e,n=W({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:r,panelConstraints:a}=o;let l=0;if(a.collapsedSize){const c=ee({groupSize:n,panelElement:r,styleProp:a.collapsedSize});l=I(c/n*100)}let i;if(a.defaultSize){const c=ee({groupSize:n,panelElement:r,styleProp:a.defaultSize});i=I(c/n*100)}let s=0;if(a.minSize){const c=ee({groupSize:n,panelElement:r,styleProp:a.minSize});s=I(c/n*100)}let u=100;if(a.maxSize){const c=ee({groupSize:n,panelElement:r,styleProp:a.maxSize});u=I(c/n*100)}return{collapsedSize:l,collapsible:a.collapsible===!0,defaultSize:i,minSize:s,maxSize:u,panelId:o.id}})}class Ye{#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 r=!1,a=null;const l=Array.from(o);for(let i=0;i<l.length;i++){const s=l[i];try{s.call(null,n)}catch(u){a===null&&(r=!0,a=u)}}if(r)throw a}}removeAllListeners(){this.#e={}}removeListener(t,n){const o=this.#e[t];if(o!==void 0){const r=o.indexOf(n);r>=0&&o.splice(r,1)}}}function R(e,t,n=0){return Math.abs(I(e)-I(t))<=n}let E={cursorFlags:0,interactionState:{state:"inactive"},mountedGroups:new Map};const T=new Ye;function D(){return E}function M(e){const t=typeof e=="function"?e(E):e;if(E===t)return E;const n=E;return E={...E,...t},t.cursorFlags!==void 0&&T.emit("cursorFlagsChange",E.cursorFlags),t.interactionState!==void 0&&T.emit("interactionStateChange",E.interactionState),t.mountedGroups!==void 0&&(E.mountedGroups.forEach((o,r)=>{o.derivedPanelConstraints.forEach(a=>{if(a.collapsible){const{layout:l}=n.mountedGroups.get(r)??{};if(l){const i=R(a.collapsedSize,o.layout[a.panelId]),s=R(a.collapsedSize,l[a.panelId]);i&&!s&&(r.inMemoryLastExpandedPanelSizes[a.panelId]=l[a.panelId])}}})}),T.emit("mountedGroupsChange",E.mountedGroups)),E}const Ze=e=>e,oe=()=>{},Ce=1,Ee=2,Me=4,ke=8,me={coarse:10,precise:5};function Je({cursorFlags:e,groups:t,state:n}){let o=0,r=0;switch(n){case"active":case"hover":t.forEach(a=>{if(!a.disableCursor)switch(a.orientation){case"horizontal":{o++;break}case"vertical":{r++;break}}})}if(o===0&&r===0)return null;switch(n){case"active":{const a=(e&Ce)!==0,l=(e&Ee)!==0,i=(e&Me)!==0,s=(e&ke)!==0;if(e){if(a)return i?"se-resize":s?"ne-resize":"e-resize";if(l)return i?"sw-resize":s?"nw-resize":"w-resize";if(i)return"s-resize";if(s)return"n-resize"}break}}return o>0&&r>0?"move":o>0?"ew-resize":"ns-resize"}let ie,G;function se(){G===void 0&&(G=new CSSStyleSheet,document.adoptedStyleSheets=[G]);const{cursorFlags:e,interactionState:t}=D();switch(t.state){case"active":case"hover":{const n=Je({cursorFlags:e,groups:t.hitRegions.map(r=>r.group),state:t.state}),o=`*{cursor: ${n} !important; ${t.state==="active"?"touch-action: none;":""} }`;if(ie===o)return;ie=o,n?G.cssRules.length===0?G.insertRule(o):G.replaceSync(o):G.cssRules.length===1&&G.deleteRule(0);break}case"inactive":{ie=void 0,G.cssRules.length===1&&G.deleteRule(0);break}}}function Qe(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 q(e,t){return R(e,t)?0:e>t?1:-1}function H({panelConstraints:e,size:t}){const{collapsedSize:n=0,collapsible:o,maxSize:r=100,minSize:a=0}=e;if(q(t,a)<0)if(o){const l=(n+a)/2;q(t,l)<0?t=n:t=a}else t=a;return t=Math.min(r,t),t=I(t),t}function K({delta:e,initialLayout:t,panelConstraints:n,pivotIndices:o,prevLayout:r,trigger:a}){if(R(e,0))return t;const l=Object.values(t),i=Object.values(r),s=[...l],[u,c]=o;b(u!=null,"Invalid first pivot index"),b(c!=null,"Invalid second pivot index");let h=0;if(a==="keyboard"){{const f=e<0?c:u,d=n[f];b(d,`Panel constraints not found for index ${f}`);const{collapsedSize:y=0,collapsible:S,minSize:v=0}=d;if(S){const z=l[f];if(b(z!=null,`Previous layout not found for panel index ${f}`),R(z,y)){const g=v-z;q(g,Math.abs(e))>0&&(e=e<0?0-g:g)}}}{const f=e<0?u:c,d=n[f];b(d,`No panel constraints found for index ${f}`);const{collapsedSize:y=0,collapsible:S,minSize:v=0}=d;if(S){const z=l[f];if(b(z!=null,`Previous layout not found for panel index ${f}`),R(z,v)){const g=z-y;q(g,Math.abs(e))>0&&(e=e<0?0-g:g)}}}}{const f=e<0?1:-1;let d=e<0?c:u,y=0;for(;;){const v=l[d];b(v!=null,`Previous layout not found for panel index ${d}`);const g=H({panelConstraints:n[d],size:100})-v;if(y+=g,d+=f,d<0||d>=n.length)break}const S=Math.min(Math.abs(e),Math.abs(y));e=e<0?0-S:S}{let d=e<0?u:c;for(;d>=0&&d<n.length;){const y=Math.abs(e)-Math.abs(h),S=l[d];b(S!=null,`Previous layout not found for panel index ${d}`);const v=S-y,z=H({panelConstraints:n[d],size:v});if(!R(S,z)&&(h+=S-z,s[d]=z,h.toFixed(3).localeCompare(Math.abs(e).toFixed(3),void 0,{numeric:!0})>=0))break;e<0?d--:d++}}if(Qe(i,s))return r;{const f=e<0?c:u,d=l[f];b(d!=null,`Previous layout not found for panel index ${f}`);const y=d+h,S=H({panelConstraints:n[f],size:y});if(s[f]=S,!R(S,y)){let v=y-S,g=e<0?c:u;for(;g>=0&&g<n.length;){const L=s[g];b(L!=null,`Previous layout not found for panel index ${g}`);const P=L+v,C=H({panelConstraints:n[g],size:P});if(R(L,C)||(v-=C-L,s[g]=C),R(v,0))break;e>0?g--:g++}}}const m=Object.values(s).reduce((f,d)=>d+f,0);if(!R(m,100,.1))return r;const p=Object.keys(r);return s.reduce((f,d,y)=>(f[p[y]]=d,f),{})}function B(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e)if(t[n]===void 0||q(e[n],t[n])!==0)return!1;return!0}function Ie({event:e,hitRegions:t,initialLayoutMap:n,mountedGroups:o,pointerDownAtPoint:r}){let a=0;const l=new Map(o);t.forEach(i=>{const{group:s,groupSize:u}=i,{disableCursor:c,orientation:h,panels:m}=s;let p=0;r?h==="horizontal"?p=(e.clientX-r.x)/u*100:p=(e.clientY-r.y)/u*100:h==="horizontal"?p=e.clientX<0?-100:100:p=e.clientY<0?-100:100;const f=n.get(s),{defaultLayoutDeferred:d,derivedPanelConstraints:y,layout:S,separatorToPanels:v}=o.get(s)??{defaultLayoutDeferred:!1};if(y&&f&&S&&v){const z=K({delta:p,initialLayout:f,panelConstraints:y,pivotIndices:i.panels.map(g=>m.indexOf(g)),prevLayout:S,trigger:"mouse-or-touch"});if(B(z,S)){if(p!==0&&!c)switch(h){case"horizontal":{a|=p<0?Ce:Ee;break}case"vertical":{a|=p<0?Me:ke;break}}}else{l.set(i.group,{defaultLayoutDeferred:d,derivedPanelConstraints:y,layout:z,separatorToPanels:v});const g=i.group.panels.map(({id:L})=>L).join(",");i.group.inMemoryLayouts[g]=z}}}),M({cursorFlags:a,mountedGroups:l}),se()}function ye(e){if(e.defaultPrevented)return;if(e.relatedTarget!==null)return;if(e.clientX===0&&e.clientY===0)return;const{interactionState:t,mountedGroups:n}=D();switch(t.state){case"active":t.hitRegions.forEach(o=>{e.currentTarget===o.group.element&&Ie({event:e,hitRegions:t.hitRegions,initialLayoutMap:t.initialLayoutMap,mountedGroups:n})})}}function ne(e){const t=e.parentElement;b(t,"Parent group element not found");const{mountedGroups:n}=D();for(const[o]of n)if(o.element===t)return o;throw Error("Could not find parent Group for separator element")}function _({layout:e,panelConstraints:t}){const o=[...Object.values(e)],r=o.reduce((i,s)=>i+s,0);if(o.length!==t.length)throw Error(`Invalid ${t.length} panel layout: ${o.map(i=>`${i}%`).join(", ")}`);if(!R(r,100)&&o.length>0)for(let i=0;i<t.length;i++){const s=o[i];b(s!=null,`No layout data found for index ${i}`);const u=100/r*s;o[i]=u}let a=0;for(let i=0;i<t.length;i++){const s=o[i];b(s!=null,`No layout data found for index ${i}`);const u=H({panelConstraints:t[i],size:s});s!=u&&(a+=s-u,o[i]=u)}if(!R(a,0))for(let i=0;i<t.length;i++){const s=o[i];b(s!=null,`No layout data found for index ${i}`);const u=s+a,c=H({panelConstraints:t[i],size:u});if(s!==c&&(a-=c-s,o[i]=c,R(a,0)))break}const l=Object.keys(e);return o.reduce((i,s,u)=>(i[l[u]]=s,i),{})}function Ge({groupId:e}){const t=()=>{const{mountedGroups:n}=D();for(const[o,r]of n)if(o.id===e)return{group:o,...r};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:r,group:a,layout:l,separatorToPanels:i}=t(),s=_({layout:n,panelConstraints:r});return o?l:(B(l,s)||M(u=>({mountedGroups:new Map(u.mountedGroups).set(a,{defaultLayoutDeferred:o,derivedPanelConstraints:r,layout:s,separatorToPanels:i})})),s)}}}function De(e){const{mountedGroups:t}=D(),n=t.get(e);return b(n,`Mounted Group ${e.id} not found`),n}function O(e,t){const n=ne(e),o=De(n),r=n.separators.find(h=>h.element===e);b(r,"Matching separator not found");const a=o.separatorToPanels.get(r);b(a,"Matching panels not found");const l=a.map(h=>n.panels.indexOf(h)),s=Ge({groupId:n.id}).getLayout(),u=K({delta:t,initialLayout:s,panelConstraints:o.derivedPanelConstraints,pivotIndices:l,prevLayout:s,trigger:"keyboard"}),c=_({layout:u,panelConstraints:o.derivedPanelConstraints});B(s,c)||M(h=>({mountedGroups:new Map(h.mountedGroups).set(n,{defaultLayoutDeferred:o.defaultLayoutDeferred,derivedPanelConstraints:o.derivedPanelConstraints,layout:c,separatorToPanels:o.separatorToPanels})}))}function ge(e){if(e.defaultPrevented)return;const t=e.currentTarget,n=ne(t);if(!n.disabled)switch(e.key){case"ArrowDown":{e.preventDefault(),n.orientation==="vertical"&&O(t,5);break}case"ArrowLeft":{e.preventDefault(),n.orientation==="horizontal"&&O(t,-5);break}case"ArrowRight":{e.preventDefault(),n.orientation==="horizontal"&&O(t,5);break}case"ArrowUp":{e.preventDefault(),n.orientation==="vertical"&&O(t,-5);break}case"End":{e.preventDefault(),O(t,100);break}case"Enter":{e.preventDefault();const o=ne(t),{derivedPanelConstraints:r,layout:a,separatorToPanels:l}=De(o),i=o.separators.find(h=>h.element===t);b(i,"Matching separator not found");const s=l.get(i);b(s,"Matching panels not found");const u=s[0],c=r.find(h=>h.panelId===u.id);if(b(c,"Panel metadata not found"),c.collapsible){const h=a[u.id],m=c.collapsedSize===h?o.inMemoryLastExpandedPanelSizes[u.id]??c.minSize:c.collapsedSize;O(t,m-h)}break}case"F6":{e.preventDefault();const r=ne(t).separators.map(s=>s.element),a=Array.from(r).findIndex(s=>s===e.currentTarget);b(a!==null,"Index not found");const l=e.shiftKey?a>0?a-1:r.length-1:a+1<r.length?a+1:0;r[l].focus();break}case"Home":{e.preventDefault(),O(t,-100);break}}}function et(e,t,n){let o,r={x:1/0,y:1/0};for(const a of t){const l=Pe(n,a.rect);switch(e){case"horizontal":{l.x<=r.x&&(o=a,r=l);break}case"vertical":{l.y<=r.y&&(o=a,r=l);break}}}return o?{distance:r,hitRegion:o}:void 0}let te;function tt(){return te===void 0&&(typeof matchMedia=="function"?te=!!matchMedia("(pointer:coarse)").matches:te=!1),te}function nt(e,t){if(e===t)throw new Error("Cannot compare node with itself");const n={a:xe(e),b:xe(t)};let o;for(;n.a.at(-1)===n.b.at(-1);)e=n.a.pop(),t=n.b.pop(),o=e;b(o,"Stacking order can only be calculated for elements with a common ancestor");const r={a:ve(Se(n.a)),b:ve(Se(n.b))};if(r.a===r.b){const a=o.childNodes,l={a:n.a.at(-1),b:n.b.at(-1)};let i=a.length;for(;i--;){const s=a[i];if(s===l.a)return 1;if(s===l.b)return-1}}return Math.sign(r.a-r.b)}const ot=/\b(?:position|zIndex|opacity|transform|webkitTransform|mixBlendMode|filter|webkitFilter|isolation)\b/;function it(e){const t=getComputedStyle(Oe(e)??e).display;return t==="flex"||t==="inline-flex"}function rt(e){const t=getComputedStyle(e);return!!(t.position==="fixed"||t.zIndex!=="auto"&&(t.position!=="static"||it(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"||ot.test(t.willChange)||t.webkitOverflowScrolling==="touch")}function Se(e){let t=e.length;for(;t--;){const n=e[t];if(b(n,"Missing node"),rt(n))return n}return null}function ve(e){return e&&Number(getComputedStyle(e).zIndex)||0}function xe(e){const t=[];for(;e;)t.push(e),e=Oe(e);return t}function Oe(e){const{parentNode:t}=e;return t&&t instanceof ShadowRoot?t.host:t}function st(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 at({groupElement:e,hitRegion:t,pointerEventTarget:n}){if(!(n instanceof HTMLElement)||n.contains(e)||e.contains(n))return!0;if(nt(n,e)>0){let o=n;for(;o;){if(o.contains(e))return!0;if(st(o.getBoundingClientRect(),t))return!1;o=o.parentElement}}return!0}function Te(e,t){const n=[];return t.forEach((o,r)=>{if(r.disabled)return;const a=tt()?me.coarse:me.precise,l=Re(r),i=et(r.orientation,l,{x:e.clientX,y:e.clientY});i&&i.distance.x<=a&&i.distance.y<=a&&at({groupElement:r.element,hitRegion:i.hitRegion.rect,pointerEventTarget:e.target})&&n.push(i.hitRegion)}),n}function ze(e){if(e.defaultPrevented)return;const{mountedGroups:t}=D(),n=Te(e,t),o=new Set,r=new Set,a=new Set,l=new Map;let i=!1;n.forEach(s=>{o.add(s.group),s.panels.forEach(c=>{r.add(c)}),s.separator&&(a.add(s.separator),i||(i=!0,s.separator.element.focus()));const u=t.get(s.group);u&&l.set(s.group,u.layout)}),M({interactionState:{hitRegions:n,initialLayoutMap:l,pointerDownAtPoint:{x:e.clientX,y:e.clientY},state:"active"}}),n.length&&e.preventDefault()}function be(e){if(e.defaultPrevented)return;const{interactionState:t,mountedGroups:n}=D();switch(t.state){case"active":{if(e.type!=="pointerleave"&&e.buttons===0){M(o=>o.interactionState.state==="inactive"?o:{cursorFlags:0,interactionState:{state:"inactive"}});return}Ie({event:e,hitRegions:t.hitRegions,initialLayoutMap:t.initialLayoutMap,mountedGroups:n,pointerDownAtPoint:t.pointerDownAtPoint});break}default:{const o=Te(e,n);o.length===0?t.state!=="inactive"&&M({interactionState:{state:"inactive"}}):M({interactionState:{hitRegions:o,state:"hover"}}),se();break}}}function we(e){if(e.defaultPrevented)return;e.preventDefault();const{interactionState:t}=D();switch(t.state){case"active":M({cursorFlags:0,interactionState:{state:"inactive"}}),se()}}function Le(e){let t=0,n=0;const o={};for(const a of e)if(a.defaultSize!==void 0){t++;const l=I(a.defaultSize);n+=l,o[a.panelId]=l}else o[a.panelId]=void 0;const r=e.length-t;if(r!==0){const a=I((100-n)/r);for(const l of e)l.defaultSize===void 0&&(o[l.panelId]=a)}return o}function lt(e,t,n){const o=n[0];if(!o)return;const r=e.panels.find(l=>l.element===t);if(!r||!r.onResize)return;const a=W({group:e});r.onResize({asPercentage:I(o.inlineSize/a*100),inPixels:o.inlineSize},r.id)}function ut(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 ct(e){let t=!0;const n=new Set,o=new Set,r=new ResizeObserver(p=>{for(const f of p){const{borderBoxSize:d,target:y}=f;if(y===e.element){if(t){if(W({group:e})===0)return;M(v=>{const z=v.mountedGroups.get(e);if(z){const g=he(e),L=z.defaultLayoutDeferred?Le(g):z.layout,P=_({layout:L,panelConstraints:g});return!z.defaultLayoutDeferred&&B(L,P)&&ut(z.derivedPanelConstraints,g)?v:{mountedGroups:new Map(v.mountedGroups).set(e,{defaultLayoutDeferred:!1,derivedPanelConstraints:g,layout:P,separatorToPanels:z.separatorToPanels})}}return v})}}else lt(e,y,d)}});r.observe(e.element),e.panels.forEach(p=>{b(!n.has(p.id),`Panel ids must be unique; id "${p.id}" was used more than once`),n.add(p.id),p.onResize&&r.observe(p.element)});const a=W({group:e}),l=he(e),i=e.panels.map(({id:p})=>p).join(",");let s=e.defaultLayout;s&&e.panels.length!==Object.keys(s).length&&(s=void 0);const u=e.inMemoryLayouts[i]??s??Le(l),c=_({layout:u,panelConstraints:l}),h=Re(e),m=M(p=>{const f=new Map;return h.forEach(d=>{d.separator&&f.set(d.separator,d.panels)}),{mountedGroups:new Map(p.mountedGroups).set(e,{defaultLayoutDeferred:a===0,derivedPanelConstraints:l,layout:c,separatorToPanels:f})}});return e.element.addEventListener("pointerleave",ye),e.separators.forEach(p=>{b(!o.has(p.id),`Separator ids must be unique; id "${p.id}" was used more than once`),o.add(p.id),p.element.addEventListener("keydown",ge)}),m.mountedGroups.size===1&&(window.addEventListener("pointerdown",ze),window.addEventListener("pointermove",be),window.addEventListener("pointerup",we)),function(){t=!1;const f=M(d=>{const y=new Map(d.mountedGroups);return y.delete(e),{mountedGroups:y}});e.element.removeEventListener("pointerleave",ye),e.separators.forEach(d=>{d.element.removeEventListener("keydown",ge)}),f.mountedGroups.size===0&&(window.removeEventListener("pointerdown",ze),window.removeEventListener("pointermove",be),window.removeEventListener("pointerup",we)),r.disconnect()}}function ae(e){const t=x.useId();return`${e??t}`}const A=typeof window<"u"?x.useLayoutEffect:x.useEffect;function le(e){const t=x.useRef(e);return A(()=>{t.current=e},[e]),x.useCallback(n=>t.current?.(n),[t])}function ue(...e){return le(t=>{e.forEach(n=>{if(n)switch(typeof n){case"function":{n(t);break}case"object":{n.current=t;break}}})})}function ft(e){const t=x.useRef({...e});return A(()=>{for(const n in e)t.current[n]=e[n]},[e]),t.current}const _e="--react-resizable-panels--panel--pointer-events";function Ae(e,t){const n=e.replace(/[^a-zA-Z0-9\-_]/g,""),o=t.replace(/[^a-zA-Z0-9\-_]/g,"");return`--react-resizable-panels--${n}--${o}`}const Ne=x.createContext(null);function dt(e,t){const n=x.useRef({getLayout:()=>({}),setLayout:Ze});x.useImperativeHandle(t,()=>n.current,[]),A(()=>{Object.assign(n.current,Ge({groupId:e}))})}function pt({children:e,className:t,defaultLayout:n,disableCursor:o,disabled:r,elementRef:a,groupRef:l,id:i,onLayoutChange:s,orientation:u="horizontal",style:c,...h}){const m=x.useRef({}),p=le(w=>{B(m.current,w)||(m.current=w,s?.(w))}),f=ae(i),[d,y]=x.useState(!1),[S,v]=x.useState(null),[z,g]=x.useState(n??{}),[L,P]=x.useState([]),[C,X]=x.useState([]),Y=x.useRef({lastExpandedPanelSizes:{},layouts:{}}),Z=ue(v,a);dt(f,l);const J=x.useMemo(()=>({id:f,orientation:u,registerPanel:w=>(P(k=>re(u,[...k,w])),()=>{P(k=>k.filter($=>$!==w))}),registerSeparator:w=>(X(k=>re(u,[...k,w])),()=>{X(k=>k.filter($=>$!==w))})}),[f,u]),N=ft({defaultLayout:n,disableCursor:o}),U=x.useRef(null);A(()=>{if(S===null)return;const w={defaultLayout:N.defaultLayout,disableCursor:!!N.disableCursor,disabled:!!r,element:S,id:f,inMemoryLastExpandedPanelSizes:Y.current.lastExpandedPanelSizes,inMemoryLayouts:Y.current.layouts,orientation:u,panels:L,separators:C};U.current=w;const k=ct(w),de=D().mountedGroups.get(w);if(de){const{defaultLayoutDeferred:j,derivedPanelConstraints:F,layout:Q}=de;!j&&F.length>0&&(g(Q),p?.(Q))}const $e=T.addListener("interactionStateChange",j=>{switch(j.state){case"active":{y(j.hitRegions.some(F=>F.group===w));break}default:{y(!1);break}}}),je=T.addListener("mountedGroupsChange",j=>{const F=j.get(w);if(F){const{defaultLayoutDeferred:Q,derivedPanelConstraints:Fe,layout:pe}=F;if(Q||Fe.length===0)return;g(pe),p?.(pe)}});return()=>{U.current=null,k(),$e(),je()}},[r,S,f,p,u,L,C,N]),x.useEffect(()=>{const w=U.current;w&&(w.defaultLayout=n,w.disableCursor=!!o)});const fe={[_e]:d?"none":void 0};for(const w in z){const k=Ae(f,w),$=z[w];fe[k]=$}return V.jsx(Ne.Provider,{value:J,children:V.jsx("div",{...h,"aria-orientation":u,className:t,"data-group":!0,"data-testid":f,id:f,ref:Z,style:{...c,...fe,display:"flex",flexDirection:u==="horizontal"?"row":"column",flexWrap:"nowrap"},children:e})})}function ht(e,t=10){let n=null;return o=>{n!==null&&clearTimeout(n),n=setTimeout(()=>{e(o)},t)}}function mt(e){return`react-resizable-panels:${e}`}function yt({debounceSaveMs:e=100,storage:t,...n}){const o="id"in n?n.id:n.groupId,r=mt(o),a=x.useSyncExternalStore(gt,()=>t.getItem(r),()=>t.getItem(r)),l=x.useMemo(()=>a?JSON.parse(a):void 0,[a]),i=x.useMemo(()=>{const s=u=>{try{t.setItem(r,JSON.stringify(u))}catch(c){console.error(c)}};return e>0?ht(s,e):s},[e,t,r]);return{defaultLayout:l,onLayoutChange:i}}function gt(){return function(){}}function St(){return x.useState(null)}function vt(){return x.useRef(null)}function ce(){const e=x.useContext(Ne);return b(e,"Group Context not found; did you render a Panel or Separator outside of a Group?"),e}function xt({groupId:e,panelId:t}){const n=()=>{const{mountedGroups:i}=D();for(const[s,{defaultLayoutDeferred:u,derivedPanelConstraints:c,layout:h,separatorToPanels:m}]of i)if(s.id===e)return{defaultLayoutDeferred:u,derivedPanelConstraints:c,group:s,layout:h,separatorToPanels:m};throw Error(`Group ${e} not found`)},o=()=>{const i=n().derivedPanelConstraints.find(s=>s.panelId===t);if(i!==void 0)return i;throw Error(`Panel constraints not found for Panel ${t}`)},r=()=>{const i=n().group.panels.find(s=>s.id===t);if(i!==void 0)return i;throw Error(`Layout not found for Panel ${t}`)},a=()=>{const i=n().layout[t];if(i!==void 0)return i;throw Error(`Layout not found for Panel ${t}`)},l=i=>{const s=a();if(i===s)return;const{defaultLayoutDeferred:u,derivedPanelConstraints:c,group:h,layout:m,separatorToPanels:p}=n(),f=h.panels.findIndex(v=>v.id===t),d=f===h.panels.length-1,y=K({delta:d?s-i:i-s,initialLayout:m,panelConstraints:c,pivotIndices:d?[f-1,f]:[f,f+1],prevLayout:m,trigger:"imperative-api"}),S=_({layout:y,panelConstraints:c});B(m,S)||M(v=>({mountedGroups:new Map(v.mountedGroups).set(h,{defaultLayoutDeferred:u,derivedPanelConstraints:c,layout:S,separatorToPanels:p})}))};return{collapse:()=>{const{collapsible:i,collapsedSize:s}=o(),u=a();i&&u!==s&&l(s)},expand:()=>{const{collapsible:i,collapsedSize:s,minSize:u}=o(),c=a();i&&c===s&&l(u)},getSize:()=>{const{group:i}=n(),s=a(),{element:u}=r(),c=i.orientation==="horizontal"?u.offsetWidth:u.offsetHeight;return{asPercentage:s,inPixels:c}},isCollapsed:()=>{const{collapsible:i,collapsedSize:s}=o(),u=a();return i&&R(s,u)},resize:i=>{if(a()!==i){let u;switch(typeof i){case"number":{const{group:c}=n(),h=W({group:c});u=I(i/h*100);break}case"string":{u=parseFloat(i);break}}l(u)}}}}function zt(e,t){const{id:n}=ce(),o=x.useRef({collapse:oe,expand:oe,getSize:()=>({asPercentage:0,inPixels:0}),isCollapsed:()=>!1,resize:oe});x.useImperativeHandle(t,()=>o.current,[]),A(()=>{Object.assign(o.current,xt({groupId:n,panelId:e}))})}function bt({children:e,className:t,collapsedSize:n="0%",collapsible:o=!1,defaultSize:r,elementRef:a,id:l,maxSize:i="100%",minSize:s="0%",onResize:u,panelRef:c,style:h,...m}){const p=!!l,f=ae(l),[d,y]=x.useState(null),S=ue(y,a),{id:v,registerPanel:z}=ce(),g=u!==null,L=le(C=>{u?.(C,l)});A(()=>{if(d!==null)return z({element:d,id:f,idIsStable:p,onResize:g?L:void 0,panelConstraints:{collapsedSize:n,collapsible:o,defaultSize:r,maxSize:i,minSize:s}})},[n,o,r,d,g,f,p,i,s,L,z]),zt(f,c);const P=Ae(v,f);return V.jsx("div",{...m,"data-panel":!0,"data-testid":f,id:f,ref:S,style:{...wt,flexBasis:0,flexGrow:`var(${P}, 1)`,flexShrink:1,overflow:"hidden",pointerEvents:`var(${_e})`},children:V.jsx("div",{className:t,style:{width:"100%",height:"100%",...h},children:e})})}const wt={minHeight:"unset",maxHeight:"unset",height:"unset",minWidth:"unset",maxWidth:"unset",width:"unset",flex:"unset",flexBasis:"unset",flexShrink:"unset",flexGrow:"unset",border:"unset",borderWidth:"unset",padding:"unset",margin:"unset"};function Lt(){return x.useState(null)}function Pt(){return x.useRef(null)}function Rt({layout:e,panelConstraints:t,panelId:n,panelIndex:o}){let r,a;const l=e[n],i=t.find(s=>s.panelId===n);if(i){const s=i.maxSize,u=a=i.collapsible?i.collapsedSize:i.minSize,c=[o,o+1];a=_({layout:K({delta:u-l,initialLayout:e,panelConstraints:t,pivotIndices:c,prevLayout:e,trigger:"keyboard"}),panelConstraints:t})[n],r=_({layout:K({delta:s-l,initialLayout:e,panelConstraints:t,pivotIndices:c,prevLayout:e,trigger:"keyboard"}),panelConstraints:t})[n]}return{valueControls:n,valueMax:r,valueMin:a,valueNow:l}}function Ct({children:e,className:t,elementRef:n,id:o,style:r,...a}){const l=ae(o),[i,s]=x.useState({}),[u,c]=x.useState("inactive"),[h,m]=x.useState(null),p=ue(m,n),{id:f,orientation:d,registerSeparator:y}=ce(),S=d==="horizontal"?"vertical":"horizontal";return A(()=>{if(h!==null){const v={element:h,id:l},z=y(v),g=T.addListener("interactionStateChange",P=>{c(P.state!=="inactive"&&P.hitRegions.some(C=>C.separator===v)?P.state:"inactive")}),L=T.addListener("mountedGroupsChange",P=>{P.forEach(({derivedPanelConstraints:C,layout:X,separatorToPanels:Y},Z)=>{if(Z.id===f){const J=Y.get(v);if(J){const N=J[0],U=Z.panels.indexOf(N);s(Rt({layout:X,panelConstraints:C,panelId:N.id,panelIndex:U}))}}})});return()=>{g(),L(),z()}}},[h,f,l,y]),V.jsx("div",{...a,"aria-controls":i.valueControls,"aria-orientation":S,"aria-valuemax":i.valueMax,"aria-valuemin":i.valueMin,"aria-valuenow":i.valueNow,children:e,className:t,"data-separator":u,"data-testid":l,id:l,ref:p,role:"separator",style:{flexBasis:"auto",...r,flexGrow:0,flexShrink:0},tabIndex:0})}exports.Group=pt;exports.Panel=bt;exports.Separator=Ct;exports.useDefaultLayout=yt;exports.useGroupCallbackRef=St;exports.useGroupRef=vt;exports.usePanelCallbackRef=Lt;exports.usePanelRef=Pt;
|
|
2
2
|
//# sourceMappingURL=react-resizable-panels.cjs.map
|