panel-splitjs 0.3.0__py3-none-any.whl → 0.3.2__py3-none-any.whl

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.
panel_splitjs/_version.py CHANGED
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
28
28
  commit_id: COMMIT_ID
29
29
  __commit_id__: COMMIT_ID
30
30
 
31
- __version__ = version = '0.3.0'
32
- __version_tuple__ = version_tuple = (0, 3, 0)
31
+ __version__ = version = '0.3.2'
32
+ __version_tuple__ = version_tuple = (0, 3, 2)
33
33
 
34
34
  __commit_id__ = commit_id = None
panel_splitjs/base.py CHANGED
@@ -13,7 +13,7 @@ IS_RELEASE = __version__ == base_version(__version__)
13
13
  BASE_PATH = Path(__file__).parent
14
14
  DIST_PATH = BASE_PATH / 'dist'
15
15
  CDN_BASE = f"https://cdn.holoviz.org/panel-splitjs/v{base_version(__version__)}"
16
- CDN_DIST = f"{CDN_BASE}/panel-material-ui.bundle.js"
16
+ CDN_DIST = f"{CDN_BASE}/panel-splitjs.bundle.js"
17
17
 
18
18
  extension_dirs['panel-splitjs'] = DIST_PATH
19
19
  EXTENSION_CDN[DIST_PATH] = CDN_BASE
@@ -97,7 +97,7 @@ class Split(SplitBase):
97
97
  collapsed = param.Integer(default=None, doc="""
98
98
  Whether the first or second panel is collapsed. 0 for first panel, 1 for second panel, None for not collapsed.""")
99
99
 
100
- expanded_sizes = param.NumericTuple(default=(50, 50), length=2, doc="""
100
+ expanded_sizes = Size(default=(50, 50), allow_None=True, length=2, doc="""
101
101
  The sizes of the two panels when expanded (as percentages).
102
102
  Default is (50, 50) .
103
103
  When invert=True, these percentages are automatically swapped.""")
@@ -116,7 +116,7 @@ class Split(SplitBase):
116
116
  Whether to show the toggle buttons on the divider.
117
117
  When False, the buttons are hidden and panels can only be resized by dragging.""")
118
118
 
119
- sizes = param.NumericTuple(default=(50, 50), length=2, doc="""
119
+ sizes = Size(default=(50, 50), allow_None=True, length=2, doc="""
120
120
  The initial sizes of the two panels (as percentages).
121
121
  Default is (50, 50) which means the left panel takes up 50% of the space
122
122
  and the right panel is not visible.""")
@@ -1 +1 @@
1
- var ye=Object.defineProperty;var ce=(e,a)=>{for(var r in a)ye(e,r,{get:a[r],enumerable:!0})};var H={};ce(H,{render:()=>Ne});var E=typeof window<"u"?window:null,ee=E===null,Z=ee?void 0:E.document,O="addEventListener",L="removeEventListener",T="getBoundingClientRect",q="_a",j="_b",A="_c",J="horizontal",D=function(){return!1},_e=ee?"calc":["","-webkit-","-moz-","-o-"].filter(function(e){var a=Z.createElement("div");return a.style.cssText="width:"+e+"calc(9px)",!!a.style.length}).shift()+"calc",ue=function(e){return typeof e=="string"||e instanceof String},oe=function(e){if(ue(e)){var a=Z.querySelector(e);if(!a)throw new Error("Selector "+e+" did not match a DOM element");return a}return e},z=function(e,a,r){var l=e[a];return l!==void 0?l:r},K=function(e,a,r,l){if(a){if(l==="end")return 0;if(l==="center")return e/2}else if(r){if(l==="start")return 0;if(l==="center")return e/2}return e},be=function(e,a){var r=Z.createElement("div");return r.className="gutter gutter-"+a,r},we=function(e,a,r){var l={};return ue(a)?l[e]=a:l[e]=_e+"("+a+"% - "+r+"px)",l},xe=function(e,a){var r;return r={},r[e]=a+"px",r},Ee=function(e,a){if(a===void 0&&(a={}),ee)return{};var r=e,l,b,w,_,f,o;Array.from&&(r=Array.from(r));var v=oe(r[0]),u=v.parentNode,h=getComputedStyle?getComputedStyle(u):null,m=h?h.flexDirection:null,S=z(a,"sizes")||r.map(function(){return 100/r.length}),p=z(a,"minSize",100),M=Array.isArray(p)?p:r.map(function(){return p}),P=z(a,"maxSize",1/0),R=Array.isArray(P)?P:r.map(function(){return P}),k=z(a,"expandToMin",!1),C=z(a,"gutterSize",10),c=z(a,"gutterAlign","center"),y=z(a,"snapOffset",30),U=Array.isArray(y)?y:r.map(function(){return y}),$=z(a,"dragInterval",1),N=z(a,"direction",J),F=z(a,"cursor",N===J?"col-resize":"row-resize"),fe=z(a,"gutter",be),ne=z(a,"elementStyle",we),de=z(a,"gutterStyle",xe);N===J?(l="width",b="clientX",w="left",_="right",f="clientWidth"):N==="vertical"&&(l="height",b="clientY",w="top",_="bottom",f="clientHeight");function W(i,t,n,s){var g=ne(l,t,n,s);Object.keys(g).forEach(function(d){i.style[d]=g[d]})}function ve(i,t,n){var s=de(l,t,n);Object.keys(s).forEach(function(g){i.style[g]=s[g]})}function V(){return o.map(function(i){return i.size})}function ie(i){return"touches"in i?i.touches[0][b]:i[b]}function se(i){var t=o[this.a],n=o[this.b],s=t.size+n.size;t.size=i/this.size*s,n.size=s-i/this.size*s,W(t.element,t.size,this[j],t.i),W(n.element,n.size,this[A],n.i)}function pe(i){var t,n=o[this.a],s=o[this.b];this.dragging&&(t=ie(i)-this.start+(this[j]-this.dragOffset),$>1&&(t=Math.round(t/$)*$),t<=n.minSize+n.snapOffset+this[j]?t=n.minSize+this[j]:t>=this.size-(s.minSize+s.snapOffset+this[A])&&(t=this.size-(s.minSize+this[A])),t>=n.maxSize-n.snapOffset+this[j]?t=n.maxSize+this[j]:t<=this.size-(s.maxSize-s.snapOffset+this[A])&&(t=this.size-(s.maxSize+this[A])),se.call(this,t),z(a,"onDrag",D)(V()))}function re(){var i=o[this.a].element,t=o[this.b].element,n=i[T](),s=t[T]();this.size=n[l]+s[l]+this[j]+this[A],this.start=n[w],this.end=n[_]}function ge(i){if(!getComputedStyle)return null;var t=getComputedStyle(i);if(!t)return null;var n=i[f];return n===0?null:(N===J?n-=parseFloat(t.paddingLeft)+parseFloat(t.paddingRight):n-=parseFloat(t.paddingTop)+parseFloat(t.paddingBottom),n)}function ae(i){var t=ge(u);if(t===null||M.reduce(function(d,x){return d+x},0)>t)return i;var n=0,s=[],g=i.map(function(d,x){var G=t*d/100,X=K(C,x===0,x===i.length-1,c),Y=M[x]+X;return G<Y?(n+=Y-G,s.push(0),Y):(s.push(G-Y),G)});return n===0?i:g.map(function(d,x){var G=d;if(n>0&&s[x]-n>0){var X=Math.min(n,s[x]-n);n-=X,G=d-X}return G/t*100})}function he(){var i=this,t=o[i.a].element,n=o[i.b].element;i.dragging&&z(a,"onDragEnd",D)(V()),i.dragging=!1,E[L]("mouseup",i.stop),E[L]("touchend",i.stop),E[L]("touchcancel",i.stop),E[L]("mousemove",i.move),E[L]("touchmove",i.move),i.stop=null,i.move=null,t[L]("selectstart",D),t[L]("dragstart",D),n[L]("selectstart",D),n[L]("dragstart",D),t.style.userSelect="",t.style.webkitUserSelect="",t.style.MozUserSelect="",t.style.pointerEvents="",n.style.userSelect="",n.style.webkitUserSelect="",n.style.MozUserSelect="",n.style.pointerEvents="",i.gutter.style.cursor="",i.parent.style.cursor="",Z.body.style.cursor=""}function ze(i){if(!("button"in i&&i.button!==0)){var t=this,n=o[t.a].element,s=o[t.b].element;t.dragging||z(a,"onDragStart",D)(V()),i.preventDefault(),t.dragging=!0,t.move=pe.bind(t),t.stop=he.bind(t),E[O]("mouseup",t.stop),E[O]("touchend",t.stop),E[O]("touchcancel",t.stop),E[O]("mousemove",t.move),E[O]("touchmove",t.move),n[O]("selectstart",D),n[O]("dragstart",D),s[O]("selectstart",D),s[O]("dragstart",D),n.style.userSelect="none",n.style.webkitUserSelect="none",n.style.MozUserSelect="none",n.style.pointerEvents="none",s.style.userSelect="none",s.style.webkitUserSelect="none",s.style.MozUserSelect="none",s.style.pointerEvents="none",t.gutter.style.cursor=F,t.parent.style.cursor=F,Z.body.style.cursor=F,re.call(t),t.dragOffset=ie(i)-t.end}}S=ae(S);var B=[];o=r.map(function(i,t){var n={element:oe(i),size:S[t],minSize:M[t],maxSize:R[t],snapOffset:U[t],i:t},s;if(t>0&&(s={a:t-1,b:t,dragging:!1,direction:N,parent:u},s[j]=K(C,t-1===0,!1,c),s[A]=K(C,!1,t===r.length-1,c),m==="row-reverse"||m==="column-reverse")){var g=s.a;s.a=s.b,s.b=g}if(t>0){var d=fe(t,N,n.element);ve(d,C,t),s[q]=ze.bind(s),d[O]("mousedown",s[q]),d[O]("touchstart",s[q]),u.insertBefore(d,n.element),s.gutter=d}return W(n.element,n.size,K(C,t===0,t===r.length-1,c),t),t>0&&B.push(s),n});function le(i){var t=i.i===B.length,n=t?B[i.i-1]:B[i.i];re.call(n);var s=t?n.size-i.minSize-n[A]:i.minSize+n[j];se.call(n,s)}o.forEach(function(i){var t=i.element[T]()[l];t<i.minSize&&(k?le(i):i.minSize=t)});function me(i){var t=ae(i);t.forEach(function(n,s){if(s>0){var g=B[s-1],d=o[g.a],x=o[g.b];d.size=t[s-1],x.size=n,W(d.element,d.size,g[j],d.i),W(x.element,x.size,g[A],x.i)}})}function Se(i,t){B.forEach(function(n){if(t!==!0?n.parent.removeChild(n.gutter):(n.gutter[L]("mousedown",n[q]),n.gutter[L]("touchstart",n[q])),i!==!0){var s=ne(l,n.a.size,n[j]);Object.keys(s).forEach(function(g){o[n.a].element.style[g]="",o[n.b].element.style[g]=""})}})}return{setSizes:me,getSizes:V,collapse:function(t){le(o[t])},destroy:Se,parent:u,pairs:B}},Q=Ee;var I=5;function Ne({model:e,el:a}){let r=document.createElement("div");r.className=`split single-split ${e.orientation} `,r.style.visibility="hidden",r.classList.add("loading"),e.show_buttons&&r.classList.add("expand-buttons");let[l,b]=Array.isArray(e.min_size)?e.min_size:[e.min_size,e.min_size];e.orientation==="horizontal"?r.style.minWidth=`${l+b+e.gutter_size}px`:r.style.minHeight=`${l+b+e.gutter_size}px`;let w=document.createElement("div");w.className="split-panel",l&&(e.orientation==="horizontal"?w.style.minWidth=`${l}px`:w.style.minHeight=`${l}px`);let _=document.createElement("div");_.className="split-panel",b&&(e.orientation==="horizontal"?_.style.minWidth=`${b}px`:_.style.minHeight=`${b}px`),r.append(w,_);let f=document.createElement("div"),o=document.createElement("div");if(f.className=e.collapsed===0?"collapsed-content":"content-wrapper",o.className=e.collapsed===1?"collapsed-content":"content-wrapper",e.objects!=null&&e.objects.length==2){let[c,y]=e.get_child("objects");f.append(c),o.append(y)}w.append(f),_.append(o),e.on("objects",()=>{let[c,y]=e.get_child("objects");f.replaceChildren(c),o.replaceChildren(y)});let v,u,h=0,m=0;function S(){h=m=0}e.show_buttons&&(v=document.createElement("div"),u=document.createElement("div"),e.orientation==="horizontal"?(v.className="toggle-button-left",u.className="toggle-button-right"):(v.className="toggle-button-up",u.className="toggle-button-down"),_.append(v,u),v.addEventListener("click",()=>{h++,m=0;let c;h===1&&e.sizes[1]<e.expanded_sizes[1]?(c=e.expanded_sizes,p=null):(p=0,c=[0,100],h=0),k(c,!0)}),u.addEventListener("click",()=>{m++,h=0;let c;m===1&&e.sizes[0]<e.expanded_sizes[0]?(c=e.expanded_sizes,p=null):(p=1,c=[100,0],m=0),k(c,!0)})),a.append(r);let p=e.collapsed,M=e.sizes,P=p?[100,0]:e.sizes,R=Q([w,_],{sizes:P,minSize:e.min_size,maxSize:e.max_size||+"Infinity",dragInterval:e.step_size,snapOffset:e.snap_size,gutterSize:e.gutter_size,gutter:(c,y)=>{let U=document.createElement("div");U.className=`gutter gutter-${y}`;let $=document.createElement("div");return $.className="divider",U.append($),U},direction:e.orientation,onDrag:c=>{let y=c[0]<=I?0:c[1]<=I?1:null;p!==y&&(p=y,k(c))},onDragEnd:c=>{p=c[0]<=I?0:c[1]<=I?1:null,e.collapsed=p,k(c,!0),S()}});function k(c=null,y=!1){let U=c?c[0]<=I&&l<I:!1,$=c?c[1]<=I&&b<I:!1,[N,F]=c;$?(o.className="collapsed-content",[N,F]=[100,0]):o.className="content-wrapper",U?(f.className="collapsed-content",[N,F]=[0,100]):f.className="content-wrapper",y&&(R.setSizes([N,F]),c=[N,F],window.dispatchEvent(new Event("resize")),requestAnimationFrame(()=>{e.sizes=R.getSizes()}))}e.on("sizes",()=>{M!==e.sizes&&(M=e.sizes,e.collapsed=1-M[0]>=0?0:1-M[1]>=0?1:null,k(M,!0))}),e.on("collapsed",()=>{if(p===e.collapsed)return;p=e.collapsed;let c=p===0?[0,100]:p===1?[100,0]:e.expanded_sizes;k(c,!0)});let C=!1;e.on("after_layout",()=>{C||(C=!0,e.show_buttons&&(v.classList.add("animated"),u.classList.add("animated"),setTimeout(()=>{v.classList.remove("animated"),u.classList.remove("animated")},1500)),window.dispatchEvent(new Event("resize")),r.style.visibility="",r.classList.remove("loading"))}),e.on("remove",()=>R.destroy())}var te={};ce(te,{render:()=>Oe});function Oe({model:e,el:a}){let r=document.createElement("div");r.className=`split multi-split ${e.orientation}`,r.style.visibility="hidden",r.classList.add("loading");let l=null;function b(f,o){for(let v=0;v<o.length;v++){let u=o[v],h=f.children[v];h?.id!==u.id&&(h?f.insertBefore(u,h):f.append(u))}for(;f.children.length>o.length;)f.removeChild(f.lastElementChild)}let w=()=>{l!=null&&(l.destroy(),l=null);let f=e.objects?e.get_child("objects"):[],o=[];for(let u=0;u<f.length;u++){let h=f[u],m=`split-panel-${e.objects[u].id}`,S=a.querySelector(`#${m}`);S==null&&(S=document.createElement("div"),S.className="split-panel",S.id=m,S.replaceChildren(h)),o.push(S)}b(r,o);let v=e.sizes;l=Q(o,{sizes:v,minSize:e.min_size||0,maxSize:e.max_size||+"Infinity",dragInterval:e.step_size||1,snapOffset:e.snap_size||30,gutterSize:e.gutter_size,gutter:(u,h)=>{let m=document.createElement("div");m.className=`gutter gutter-${h}`;let S=document.createElement("div");return S.className="divider",m.append(S),m},direction:e.orientation,onDragEnd:u=>{v=u,this.model.sizes=v}})};w(),a.append(r),e.on("objects",w),e.on("sizes",()=>{sizes!==e.sizes&&(sizes=e.sizes,l.setSizes(sizes))});let _=!1;e.on("after_layout",()=>{_||(_=!0,r.style.visibility="",r.classList.remove("loading"))}),e.on("remove",()=>l.destroy())}var Ae={HSplit:H,MultiSplit:te,Split:H,VSplit:H};export{Ae as default};
1
+ var ye=Object.defineProperty;var ce=(e,a)=>{for(var r in a)ye(e,r,{get:a[r],enumerable:!0})};var G={};ce(G,{render:()=>Ne});var N=typeof window<"u"?window:null,ee=N===null,q=ee?void 0:N.document,L="addEventListener",j="removeEventListener",T="getBoundingClientRect",W="_a",D="_b",C="_c",Y="horizontal",M=function(){return!1},_e=ee?"calc":["","-webkit-","-moz-","-o-"].filter(function(e){var a=q.createElement("div");return a.style.cssText="width:"+e+"calc(9px)",!!a.style.length}).shift()+"calc",ue=function(e){return typeof e=="string"||e instanceof String},oe=function(e){if(ue(e)){var a=q.querySelector(e);if(!a)throw new Error("Selector "+e+" did not match a DOM element");return a}return e},S=function(e,a,r){var l=e[a];return l!==void 0?l:r},J=function(e,a,r,l){if(a){if(l==="end")return 0;if(l==="center")return e/2}else if(r){if(l==="start")return 0;if(l==="center")return e/2}return e},be=function(e,a){var r=q.createElement("div");return r.className="gutter gutter-"+a,r},xe=function(e,a,r){var l={};return ue(a)?l[e]=a:l[e]=_e+"("+a+"% - "+r+"px)",l},we=function(e,a){var r;return r={},r[e]=a+"px",r},Ee=function(e,a){if(a===void 0&&(a={}),ee)return{};var r=e,l,y,O,b,f,o;Array.from&&(r=Array.from(r));var g=oe(r[0]),u=g.parentNode,h=getComputedStyle?getComputedStyle(u):null,_=h?h.flexDirection:null,p=S(a,"sizes")||r.map(function(){return 100/r.length}),H=S(a,"minSize",100),d=Array.isArray(H)?H:r.map(function(){return H}),A=S(a,"maxSize",1/0),Q=Array.isArray(A)?A:r.map(function(){return A}),P=S(a,"expandToMin",!1),x=S(a,"gutterSize",10),c=S(a,"gutterAlign","center"),z=S(a,"snapOffset",30),I=Array.isArray(z)?z:r.map(function(){return z}),$=S(a,"dragInterval",1),E=S(a,"direction",Y),k=S(a,"cursor",E===Y?"col-resize":"row-resize"),fe=S(a,"gutter",be),ne=S(a,"elementStyle",xe),de=S(a,"gutterStyle",we);E===Y?(l="width",y="clientX",O="left",b="right",f="clientWidth"):E==="vertical"&&(l="height",y="clientY",O="top",b="bottom",f="clientHeight");function R(i,t,n,s){var m=ne(l,t,n,s);Object.keys(m).forEach(function(v){i.style[v]=m[v]})}function ve(i,t,n){var s=de(l,t,n);Object.keys(s).forEach(function(m){i.style[m]=s[m]})}function Z(){return o.map(function(i){return i.size})}function ie(i){return"touches"in i?i.touches[0][y]:i[y]}function se(i){var t=o[this.a],n=o[this.b],s=t.size+n.size;t.size=i/this.size*s,n.size=s-i/this.size*s,R(t.element,t.size,this[D],t.i),R(n.element,n.size,this[C],n.i)}function pe(i){var t,n=o[this.a],s=o[this.b];this.dragging&&(t=ie(i)-this.start+(this[D]-this.dragOffset),$>1&&(t=Math.round(t/$)*$),t<=n.minSize+n.snapOffset+this[D]?t=n.minSize+this[D]:t>=this.size-(s.minSize+s.snapOffset+this[C])&&(t=this.size-(s.minSize+this[C])),t>=n.maxSize-n.snapOffset+this[D]?t=n.maxSize+this[D]:t<=this.size-(s.maxSize-s.snapOffset+this[C])&&(t=this.size-(s.maxSize+this[C])),se.call(this,t),S(a,"onDrag",M)(Z()))}function re(){var i=o[this.a].element,t=o[this.b].element,n=i[T](),s=t[T]();this.size=n[l]+s[l]+this[D]+this[C],this.start=n[O],this.end=n[b]}function ge(i){if(!getComputedStyle)return null;var t=getComputedStyle(i);if(!t)return null;var n=i[f];return n===0?null:(E===Y?n-=parseFloat(t.paddingLeft)+parseFloat(t.paddingRight):n-=parseFloat(t.paddingTop)+parseFloat(t.paddingBottom),n)}function ae(i){var t=ge(u);if(t===null||d.reduce(function(v,w){return v+w},0)>t)return i;var n=0,s=[],m=i.map(function(v,w){var B=t*v/100,V=J(x,w===0,w===i.length-1,c),X=d[w]+V;return B<X?(n+=X-B,s.push(0),X):(s.push(B-X),B)});return n===0?i:m.map(function(v,w){var B=v;if(n>0&&s[w]-n>0){var V=Math.min(n,s[w]-n);n-=V,B=v-V}return B/t*100})}function he(){var i=this,t=o[i.a].element,n=o[i.b].element;i.dragging&&S(a,"onDragEnd",M)(Z()),i.dragging=!1,N[j]("mouseup",i.stop),N[j]("touchend",i.stop),N[j]("touchcancel",i.stop),N[j]("mousemove",i.move),N[j]("touchmove",i.move),i.stop=null,i.move=null,t[j]("selectstart",M),t[j]("dragstart",M),n[j]("selectstart",M),n[j]("dragstart",M),t.style.userSelect="",t.style.webkitUserSelect="",t.style.MozUserSelect="",t.style.pointerEvents="",n.style.userSelect="",n.style.webkitUserSelect="",n.style.MozUserSelect="",n.style.pointerEvents="",i.gutter.style.cursor="",i.parent.style.cursor="",q.body.style.cursor=""}function ze(i){if(!("button"in i&&i.button!==0)){var t=this,n=o[t.a].element,s=o[t.b].element;t.dragging||S(a,"onDragStart",M)(Z()),i.preventDefault(),t.dragging=!0,t.move=pe.bind(t),t.stop=he.bind(t),N[L]("mouseup",t.stop),N[L]("touchend",t.stop),N[L]("touchcancel",t.stop),N[L]("mousemove",t.move),N[L]("touchmove",t.move),n[L]("selectstart",M),n[L]("dragstart",M),s[L]("selectstart",M),s[L]("dragstart",M),n.style.userSelect="none",n.style.webkitUserSelect="none",n.style.MozUserSelect="none",n.style.pointerEvents="none",s.style.userSelect="none",s.style.webkitUserSelect="none",s.style.MozUserSelect="none",s.style.pointerEvents="none",t.gutter.style.cursor=k,t.parent.style.cursor=k,q.body.style.cursor=k,re.call(t),t.dragOffset=ie(i)-t.end}}p=ae(p);var U=[];o=r.map(function(i,t){var n={element:oe(i),size:p[t],minSize:d[t],maxSize:Q[t],snapOffset:I[t],i:t},s;if(t>0&&(s={a:t-1,b:t,dragging:!1,direction:E,parent:u},s[D]=J(x,t-1===0,!1,c),s[C]=J(x,!1,t===r.length-1,c),_==="row-reverse"||_==="column-reverse")){var m=s.a;s.a=s.b,s.b=m}if(t>0){var v=fe(t,E,n.element);ve(v,x,t),s[W]=ze.bind(s),v[L]("mousedown",s[W]),v[L]("touchstart",s[W]),u.insertBefore(v,n.element),s.gutter=v}return R(n.element,n.size,J(x,t===0,t===r.length-1,c),t),t>0&&U.push(s),n});function le(i){var t=i.i===U.length,n=t?U[i.i-1]:U[i.i];re.call(n);var s=t?n.size-i.minSize-n[C]:i.minSize+n[D];se.call(n,s)}o.forEach(function(i){var t=i.element[T]()[l];t<i.minSize&&(P?le(i):i.minSize=t)});function me(i){var t=ae(i);t.forEach(function(n,s){if(s>0){var m=U[s-1],v=o[m.a],w=o[m.b];v.size=t[s-1],w.size=n,R(v.element,v.size,m[D],v.i),R(w.element,w.size,m[C],w.i)}})}function Se(i,t){U.forEach(function(n){if(t!==!0?n.parent.removeChild(n.gutter):(n.gutter[j]("mousedown",n[W]),n.gutter[j]("touchstart",n[W])),i!==!0){var s=ne(l,n.a.size,n[D]);Object.keys(s).forEach(function(m){o[n.a].element.style[m]="",o[n.b].element.style[m]=""})}})}return{setSizes:me,getSizes:Z,collapse:function(t){le(o[t])},destroy:Se,parent:u,pairs:U}},K=Ee;var F=5;function Ne({model:e,el:a}){let r=document.createElement("div");r.className=`split single-split ${e.orientation} `,r.style.visibility="hidden",r.classList.add("loading"),e.show_buttons&&r.classList.add("expand-buttons");let[l,y]=Array.isArray(e.min_size)?e.min_size:[e.min_size,e.min_size],O=!1;e.orientation==="horizontal"?r.style.minWidth=`${l+y+e.gutter_size}px`:r.style.minHeight=`${l+y+e.gutter_size}px`;let b=document.createElement("div");b.className="split-panel",l&&(e.orientation==="horizontal"?b.style.minWidth=`${l}px`:b.style.minHeight=`${l}px`);let f=document.createElement("div");f.className="split-panel",y&&(e.orientation==="horizontal"?f.style.minWidth=`${y}px`:f.style.minHeight=`${y}px`),r.append(b,f);let o=document.createElement("div"),g=document.createElement("div");if(o.className=e.collapsed===0?"collapsed-content":"content-wrapper",g.className=e.collapsed===1?"collapsed-content":"content-wrapper",e.objects!=null&&e.objects.length==2){let[c,z]=e.get_child("objects");o.append(c),g.append(z)}b.append(o),f.append(g),e.on("objects",()=>{let[c,z]=e.get_child("objects");[...o.children].includes(c)||o.replaceChildren(c),[...g.children].includes(z)||g.replaceChildren(z)});let u,h,_=0,p=0;function H(){_=p=0}e.show_buttons&&(u=document.createElement("div"),h=document.createElement("div"),e.orientation==="horizontal"?(u.className="toggle-button-left",h.className="toggle-button-right"):(u.className="toggle-button-up",h.className="toggle-button-down"),f.append(u,h),u.addEventListener("click",()=>{_++,p=0;let c;_===1&&e.sizes[1]<e.expanded_sizes[1]?(c=e.expanded_sizes,d=null):(d=0,c=[0,100],_=0),x(c,!0)}),h.addEventListener("click",()=>{p++,_=0;let c;p===1&&e.sizes[0]<e.expanded_sizes[0]?(c=e.expanded_sizes,d=null):(d=1,c=[100,0],p=0),x(c,!0)})),a.append(r);let d=e.collapsed,A=e.sizes,Q=d==null?e.sizes:d?[100,0]:[0,100],P=K([b,f],{sizes:Q,minSize:e.min_size,maxSize:e.max_size||+"Infinity",dragInterval:e.step_size,snapOffset:e.snap_size,gutterSize:e.gutter_size,gutter:(c,z)=>{let I=document.createElement("div");I.className=`gutter gutter-${z}`;let $=document.createElement("div");return $.className="divider",I.append($),I},direction:e.orientation,onDrag:c=>{let z=c[0]<=F?0:c[1]<=F?1:null;d!==z&&(d=z,x(c))},onDragEnd:c=>{d=c[0]<=F?0:c[1]<=F?1:null,e.collapsed=d,x(c,!0),H()}});function x(c=null,z=!1){let I=c?c[0]<=F&&l<F:!1,$=c?c[1]<=F&&y<F:!1,[E,k]=c;$?(g.className="collapsed-content",[E,k]=[100,0]):g.className="content-wrapper",I?(o.className="collapsed-content",[E,k]=[0,100]):o.className="content-wrapper",z&&O?(P.setSizes([E,k]),c=[E,k],window.dispatchEvent(new Event("resize")),requestAnimationFrame(()=>{e.sizes=P.getSizes()})):z&&(c=[E,k])}e.on("sizes",()=>{A!==e.sizes&&(A=e.sizes,e.collapsed=1-A[0]>=0?0:1-A[1]>=0?1:null,x(A,O))}),e.on("collapsed",()=>{if(d===e.collapsed)return;d=e.collapsed;let c=d===0?[0,100]:d===1?[100,0]:e.expanded_sizes;x(c,O)}),e.on("after_layout",()=>{O||(O=!0,e.show_buttons&&(u.classList.add("animated"),h.classList.add("animated"),setTimeout(()=>{u.classList.remove("animated"),h.classList.remove("animated")},1500)),r.style.visibility="",r.classList.remove("loading"),x(d==null?A:d?[100,0]:[0,100],!0))}),e.on("remove",()=>P.destroy())}var te={};ce(te,{render:()=>Oe});function Oe({model:e,el:a}){let r=document.createElement("div");r.className=`split multi-split ${e.orientation}`,r.style.visibility="hidden",r.classList.add("loading");let l=null,y=!1;function O(f,o){for(let g=0;g<o.length;g++){let u=o[g],h=f.children[g];h?.id!==u.id&&(h?f.insertBefore(u,h):f.append(u))}for(;f.children.length>o.length;)f.removeChild(f.lastElementChild)}let b=()=>{l!=null&&(l.destroy(),l=null);let f=e.objects?e.get_child("objects"):[],o=[];for(let u=0;u<f.length;u++){let h=f[u],_=`split-panel-${e.objects[u].id}`,p=a.querySelector(`#${_}`);p==null&&(p=document.createElement("div"),p.className="split-panel",p.id=_,p.replaceChildren(h)),o.push(p)}O(r,o);let g=e.sizes;l=K(o,{sizes:g,minSize:e.min_size||0,maxSize:e.max_size||+"Infinity",dragInterval:e.step_size||1,snapOffset:e.snap_size||30,gutterSize:e.gutter_size,gutter:(u,h)=>{let _=document.createElement("div");_.className=`gutter gutter-${h}`;let p=document.createElement("div");return p.className="divider",_.append(p),_},direction:e.orientation,onDragEnd:u=>{g=u,this.model.sizes=g}})};b(),a.append(r),e.on("objects",b),e.on("sizes",()=>{sizes!==e.sizes&&(sizes=e.sizes,y&&l&&l.setSizes(sizes))}),e.on("after_layout",()=>{y||(y=!0,r.style.visibility="",r.classList.remove("loading"),l&&l.setSizes(sizes))}),e.on("remove",()=>l.destroy())}var Ae={HSplit:G,MultiSplit:te,Split:G,VSplit:G};export{Ae as default};
@@ -7,6 +7,7 @@ export function render({ model, el }) {
7
7
  split_div.classList.add("loading")
8
8
 
9
9
  let split = null
10
+ let initialized = false
10
11
 
11
12
  function reconcileChildren(parent, desiredChildren) {
12
13
  // Ensure each desired child is at the correct index
@@ -88,15 +89,19 @@ export function render({ model, el }) {
88
89
  return
89
90
  }
90
91
  sizes = model.sizes
91
- split.setSizes(sizes)
92
+ if (initialized && split) {
93
+ split.setSizes(sizes)
94
+ }
92
95
  })
93
96
 
94
- let initialized = false
95
97
  model.on("after_layout", () => {
96
98
  if (!initialized) {
97
99
  initialized = true
98
100
  split_div.style.visibility = ""
99
101
  split_div.classList.remove("loading")
102
+ if (split) {
103
+ split.setSizes(sizes)
104
+ }
100
105
  }
101
106
  })
102
107
 
@@ -13,6 +13,8 @@ export function render({ model, el }) {
13
13
 
14
14
  const [left_min, right_min] = Array.isArray(model.min_size) ? model.min_size : [model.min_size, model.min_size]
15
15
 
16
+ let initialized = false
17
+
16
18
  if (model.orientation === "horizontal") {
17
19
  split_div.style.minWidth = `${left_min + right_min + model.gutter_size}px`
18
20
  } else {
@@ -54,8 +56,12 @@ export function render({ model, el }) {
54
56
 
55
57
  model.on("objects", () => {
56
58
  const [left, right] = model.get_child("objects")
57
- left_content_wrapper.replaceChildren(left)
58
- right_content_wrapper.replaceChildren(right)
59
+ if (![...left_content_wrapper.children].includes(left)) {
60
+ left_content_wrapper.replaceChildren(left)
61
+ }
62
+ if (![...right_content_wrapper.children].includes(right)) {
63
+ right_content_wrapper.replaceChildren(right)
64
+ }
59
65
  })
60
66
 
61
67
  let left_arrow_button, right_arrow_button
@@ -113,7 +119,7 @@ export function render({ model, el }) {
113
119
 
114
120
  let is_collapsed = model.collapsed
115
121
  let sizes = model.sizes
116
- const init_sizes = is_collapsed ? [100, 0] : model.sizes
122
+ const init_sizes = is_collapsed == null ? model.sizes : (is_collapsed ? [100, 0] : [0, 100])
117
123
  const split_instance = Split([split0, split1], {
118
124
  sizes: init_sizes,
119
125
  minSize: model.min_size,
@@ -164,11 +170,13 @@ export function render({ model, el }) {
164
170
  } else {
165
171
  left_content_wrapper.className = "content-wrapper"
166
172
  }
167
- if (resize) {
173
+ if (resize && initialized) {
168
174
  split_instance.setSizes([ls, rs])
169
175
  sizes = [ls, rs]
170
176
  window.dispatchEvent(new Event('resize'))
171
177
  requestAnimationFrame(() => { model.sizes = split_instance.getSizes() })
178
+ } else if (resize) {
179
+ sizes = [ls, rs]
172
180
  }
173
181
  }
174
182
 
@@ -178,7 +186,7 @@ export function render({ model, el }) {
178
186
  }
179
187
  sizes = model.sizes
180
188
  model.collapsed = (1-sizes[0]) >= 0 ? 0 : (1-sizes[1]) >= 0 ? 1 : null
181
- sync_ui(sizes, true)
189
+ sync_ui(sizes, initialized)
182
190
  })
183
191
 
184
192
  model.on("collapsed", () => {
@@ -187,10 +195,9 @@ export function render({ model, el }) {
187
195
  }
188
196
  is_collapsed = model.collapsed
189
197
  const new_sizes = is_collapsed === 0 ? [0, 100] : (is_collapsed === 1 ? [100, 0] : model.expanded_sizes)
190
- sync_ui(new_sizes, true)
198
+ sync_ui(new_sizes, initialized)
191
199
  })
192
200
 
193
- let initialized = false
194
201
  model.on("after_layout", () => {
195
202
  if (initialized) {
196
203
  return
@@ -207,9 +214,9 @@ export function render({ model, el }) {
207
214
  right_arrow_button.classList.remove("animated")
208
215
  }, 1500)
209
216
  }
210
- window.dispatchEvent(new Event('resize'))
211
217
  split_div.style.visibility = ""
212
218
  split_div.classList.remove("loading")
219
+ sync_ui(is_collapsed == null ? sizes : (is_collapsed ? [100, 0] : [0, 100]), true)
213
220
  })
214
221
 
215
222
  model.on("remove", () => split_instance.destroy())
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: panel-splitjs
3
- Version: 0.3.0
3
+ Version: 0.3.2
4
4
  Summary: Provides split.js components for Panel.
5
5
  Project-URL: Homepage, https://github.com/panel-extensions/panel-splitjs
6
6
  Project-URL: Source, https://github.com/panel-extensions/panel-splitjs
@@ -40,7 +40,7 @@ Description-Content-Type: text/markdown
40
40
 
41
41
  # panel-splitjs
42
42
 
43
- [![CI](https://img.shields.io/github/actions/workflow/status/panel-extensions/panel-splitjs/ci.yml?style=flat-square&branch=main)](https://github.com/panel-extensions/panel-splitjs/actions/workflows/ci.yml)
43
+ [![CI](https://img.shields.io/github/actions/workflow/status/panel-extensions/panel-splitjs/test.yml?style=flat-square&branch=main)](https://github.com/panel-extensions/panel-splitjs/actions/workflows/test.yml)
44
44
  [![conda-forge](https://img.shields.io/conda/vn/conda-forge/panel-splitjs?logoColor=white&logo=conda-forge&style=flat-square)](https://prefix.dev/channels/conda-forge/packages/panel-splitjs)
45
45
  [![pypi-version](https://img.shields.io/pypi/v/panel-splitjs.svg?logo=pypi&logoColor=white&style=flat-square)](https://pypi.org/project/panel-splitjs)
46
46
  [![python-version](https://img.shields.io/pypi/pyversions/panel-splitjs?logoColor=white&logo=python&style=flat-square)](https://pypi.org/project/panel-splitjs)
@@ -1,8 +1,8 @@
1
1
  panel_splitjs/__init__.py,sha256=BKEeHeKAv90kV3GybL6FH8RCwFZM4B6gffr7T8242Qk,150
2
2
  panel_splitjs/__version.py,sha256=rpIYpR7RLjD5NBNasrT3f60C0qTL-nnHBifOofA_qyo,1778
3
- panel_splitjs/_version.py,sha256=5zTqm8rgXsWYBpB2M3Zw_K1D-aV8wP7NsBLrmMKkrAQ,704
4
- panel_splitjs/base.py,sha256=QglUWw4lvtPr0UseVeI0JDYVO_bsPB6CN2Wyv3Katps,6480
5
- panel_splitjs/dist/panel-splitjs.bundle.js,sha256=ROM8240wfpavN1bJxKolvZ2j1ohpbbJruZq89t0qzZo,10759
3
+ panel_splitjs/_version.py,sha256=e8NqPtZ8fggRgk3GPrqZ_U_BDV8aSULw1u_Gn9NNbnk,704
4
+ panel_splitjs/base.py,sha256=GurJYRlIMFoR24N48p6C-bBoSkArFjir0q72u8uhtDQ,6482
5
+ panel_splitjs/dist/panel-splitjs.bundle.js,sha256=Hsm8i0Ic2UDIqY_BSwqk3SxBsaoIJGoIPUBe5oRBtjo,10857
6
6
  panel_splitjs/dist/css/arrow_down.svg,sha256=pPSAQIH-UkJf1HbWJhAapaT-rROqn6JVPQldOT3Al0I,214
7
7
  panel_splitjs/dist/css/arrow_left.svg,sha256=XZ1Qf7CzKTij-Fa4Up51Gbu_WnBcScK7Qx-tOprvEzE,215
8
8
  panel_splitjs/dist/css/arrow_right.svg,sha256=_-3m5dLhPwH9caIEk8XLp3Z8-xQHHvTBny6AcyFVRb4,214
@@ -10,9 +10,9 @@ panel_splitjs/dist/css/arrow_up.svg,sha256=FoVQYz0kh1SAf7EJAs2ZI-ZuuQjcPzR3uM4uV
10
10
  panel_splitjs/dist/css/handle.svg,sha256=tEQAE3lNBVzPigcp9Z0SQZCW0bSzfECYIvpl19NOd0E,899
11
11
  panel_splitjs/dist/css/handle_vertical.svg,sha256=2QZdZzNiLaJp93Ot4tJBhfGjF07EiMfN-Hq3Uf5Z_BI,801
12
12
  panel_splitjs/dist/css/splitjs.css,sha256=cWv_xwUFFl0rMaQh4CUhBKfOoS0mWu7qhlV439paruA,5555
13
- panel_splitjs/models/multi_split.js,sha256=8Q5CpkoF4Lt14HZeJyvMjMAnPOOiG64m6RuEILG0nPc,2880
14
- panel_splitjs/models/split.js,sha256=vruTcf632VbsVLma-oRlzpXVOMt97z02xyhSMwCz68U,6937
15
- panel_splitjs-0.3.0.dist-info/METADATA,sha256=xCZKv7h977YdiWc68DelFUH62E_J9LaLTWrkffrLZME,13068
16
- panel_splitjs-0.3.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
17
- panel_splitjs-0.3.0.dist-info/licenses/LICENSE.txt,sha256=q8G87qfLzElD9n5Nxl1sOuzafC0z7H_nPgUcGWKzCTw,1515
18
- panel_splitjs-0.3.0.dist-info/RECORD,,
13
+ panel_splitjs/models/multi_split.js,sha256=27yzmGBq_8ZjTzNeiXl6vIbzQlHPNHSDvFepQ_EVNlw,2977
14
+ panel_splitjs/models/split.js,sha256=XtycmywMi7sHj5TrYE2h9l_8MSAAgv9moSCTLlcgbL0,7234
15
+ panel_splitjs-0.3.2.dist-info/METADATA,sha256=s2XFPoR4A5qpQFTpbhNaHddk0RifpYq7zd2BmJCGwqY,13072
16
+ panel_splitjs-0.3.2.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
17
+ panel_splitjs-0.3.2.dist-info/licenses/LICENSE.txt,sha256=q8G87qfLzElD9n5Nxl1sOuzafC0z7H_nPgUcGWKzCTw,1515
18
+ panel_splitjs-0.3.2.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: hatchling 1.27.0
2
+ Generator: hatchling 1.28.0
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any