panel-splitjs 0.3.1__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.1'
32
- __version_tuple__ = version_tuple = (0, 3, 1)
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},m=function(e,a,r){var c=e[a];return c!==void 0?c:r},K=function(e,a,r,c){if(a){if(c==="end")return 0;if(c==="center")return e/2}else if(r){if(c==="start")return 0;if(c==="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 c={};return ue(a)?c[e]=a:c[e]=_e+"("+a+"% - "+r+"px)",c},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,c,b,w,_,f,o;Array.from&&(r=Array.from(r));var v=oe(r[0]),u=v.parentNode,h=getComputedStyle?getComputedStyle(u):null,S=h?h.flexDirection:null,y=m(a,"sizes")||r.map(function(){return 100/r.length}),p=m(a,"minSize",100),M=Array.isArray(p)?p:r.map(function(){return p}),P=m(a,"maxSize",1/0),R=Array.isArray(P)?P:r.map(function(){return P}),k=m(a,"expandToMin",!1),C=m(a,"gutterSize",10),l=m(a,"gutterAlign","center"),z=m(a,"snapOffset",30),U=Array.isArray(z)?z:r.map(function(){return z}),$=m(a,"dragInterval",1),N=m(a,"direction",J),F=m(a,"cursor",N===J?"col-resize":"row-resize"),fe=m(a,"gutter",be),ne=m(a,"elementStyle",we),de=m(a,"gutterStyle",xe);N===J?(c="width",b="clientX",w="left",_="right",f="clientWidth"):N==="vertical"&&(c="height",b="clientY",w="top",_="bottom",f="clientHeight");function W(i,t,n,s){var g=ne(c,t,n,s);Object.keys(g).forEach(function(d){i.style[d]=g[d]})}function ve(i,t,n){var s=de(c,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),m(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[c]+s[c]+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,l),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&&m(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||m(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}}y=ae(y);var B=[];o=r.map(function(i,t){var n={element:oe(i),size:y[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,l),s[A]=K(C,!1,t===r.length-1,l),S==="row-reverse"||S==="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,l),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]()[c];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(c,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[c,b]=Array.isArray(e.min_size)?e.min_size:[e.min_size,e.min_size];e.orientation==="horizontal"?r.style.minWidth=`${c+b+e.gutter_size}px`:r.style.minHeight=`${c+b+e.gutter_size}px`;let w=document.createElement("div");w.className="split-panel",c&&(e.orientation==="horizontal"?w.style.minWidth=`${c}px`:w.style.minHeight=`${c}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[l,z]=e.get_child("objects");f.append(l),o.append(z)}w.append(f),_.append(o),e.on("objects",()=>{let[l,z]=e.get_child("objects");[...f.children].includes(l)||f.replaceChildren(l),[...o.children].includes(z)||o.replaceChildren(z)});let v,u,h=0,S=0;function y(){h=S=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++,S=0;let l;h===1&&e.sizes[1]<e.expanded_sizes[1]?(l=e.expanded_sizes,p=null):(p=0,l=[0,100],h=0),k(l,!0)}),u.addEventListener("click",()=>{S++,h=0;let l;S===1&&e.sizes[0]<e.expanded_sizes[0]?(l=e.expanded_sizes,p=null):(p=1,l=[100,0],S=0),k(l,!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:(l,z)=>{let U=document.createElement("div");U.className=`gutter gutter-${z}`;let $=document.createElement("div");return $.className="divider",U.append($),U},direction:e.orientation,onDrag:l=>{let z=l[0]<=I?0:l[1]<=I?1:null;p!==z&&(p=z,k(l))},onDragEnd:l=>{p=l[0]<=I?0:l[1]<=I?1:null,e.collapsed=p,k(l,!0),y()}});function k(l=null,z=!1){let U=l?l[0]<=I&&c<I:!1,$=l?l[1]<=I&&b<I:!1,[N,F]=l;$?(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",z&&(R.setSizes([N,F]),l=[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 l=p===0?[0,100]:p===1?[100,0]:e.expanded_sizes;k(l,!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 c=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=()=>{c!=null&&(c.destroy(),c=null);let f=e.objects?e.get_child("objects"):[],o=[];for(let u=0;u<f.length;u++){let h=f[u],S=`split-panel-${e.objects[u].id}`,y=a.querySelector(`#${S}`);y==null&&(y=document.createElement("div"),y.className="split-panel",y.id=S,y.replaceChildren(h)),o.push(y)}b(r,o);let v=e.sizes;c=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 S=document.createElement("div");S.className=`gutter gutter-${h}`;let y=document.createElement("div");return y.className="divider",S.append(y),S},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,c.setSizes(sizes))});let _=!1;e.on("after_layout",()=>{_||(_=!0,r.style.visibility="",r.classList.remove("loading"))}),e.on("remove",()=>c.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 {
@@ -117,7 +119,7 @@ export function render({ model, el }) {
117
119
 
118
120
  let is_collapsed = model.collapsed
119
121
  let sizes = model.sizes
120
- const init_sizes = is_collapsed ? [100, 0] : model.sizes
122
+ const init_sizes = is_collapsed == null ? model.sizes : (is_collapsed ? [100, 0] : [0, 100])
121
123
  const split_instance = Split([split0, split1], {
122
124
  sizes: init_sizes,
123
125
  minSize: model.min_size,
@@ -168,11 +170,13 @@ export function render({ model, el }) {
168
170
  } else {
169
171
  left_content_wrapper.className = "content-wrapper"
170
172
  }
171
- if (resize) {
173
+ if (resize && initialized) {
172
174
  split_instance.setSizes([ls, rs])
173
175
  sizes = [ls, rs]
174
176
  window.dispatchEvent(new Event('resize'))
175
177
  requestAnimationFrame(() => { model.sizes = split_instance.getSizes() })
178
+ } else if (resize) {
179
+ sizes = [ls, rs]
176
180
  }
177
181
  }
178
182
 
@@ -182,7 +186,7 @@ export function render({ model, el }) {
182
186
  }
183
187
  sizes = model.sizes
184
188
  model.collapsed = (1-sizes[0]) >= 0 ? 0 : (1-sizes[1]) >= 0 ? 1 : null
185
- sync_ui(sizes, true)
189
+ sync_ui(sizes, initialized)
186
190
  })
187
191
 
188
192
  model.on("collapsed", () => {
@@ -191,10 +195,9 @@ export function render({ model, el }) {
191
195
  }
192
196
  is_collapsed = model.collapsed
193
197
  const new_sizes = is_collapsed === 0 ? [0, 100] : (is_collapsed === 1 ? [100, 0] : model.expanded_sizes)
194
- sync_ui(new_sizes, true)
198
+ sync_ui(new_sizes, initialized)
195
199
  })
196
200
 
197
- let initialized = false
198
201
  model.on("after_layout", () => {
199
202
  if (initialized) {
200
203
  return
@@ -211,9 +214,9 @@ export function render({ model, el }) {
211
214
  right_arrow_button.classList.remove("animated")
212
215
  }, 1500)
213
216
  }
214
- window.dispatchEvent(new Event('resize'))
215
217
  split_div.style.visibility = ""
216
218
  split_div.classList.remove("loading")
219
+ sync_ui(is_collapsed == null ? sizes : (is_collapsed ? [100, 0] : [0, 100]), true)
217
220
  })
218
221
 
219
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.1
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=gGLpQUQx-ty9SEy9PYw9OgJWWzJLBnCpfJOfzL7SjlI,704
4
- panel_splitjs/base.py,sha256=QglUWw4lvtPr0UseVeI0JDYVO_bsPB6CN2Wyv3Katps,6480
5
- panel_splitjs/dist/panel-splitjs.bundle.js,sha256=gAH4d50QSNX5SDk9lSlaF0a3GdcavHJRmvLlEskEdng,10817
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=JOWgBXgXPiPFa1ww2XBryhvX7Yf5imDCju_oh1fsHrs,7079
15
- panel_splitjs-0.3.1.dist-info/METADATA,sha256=Ax27ONGyav8WC7e9c-aXBfh5Ax30RXSIqV2XvvWhPws,13068
16
- panel_splitjs-0.3.1.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
17
- panel_splitjs-0.3.1.dist-info/licenses/LICENSE.txt,sha256=q8G87qfLzElD9n5Nxl1sOuzafC0z7H_nPgUcGWKzCTw,1515
18
- panel_splitjs-0.3.1.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,,