Current section
Files
Jump to
Current section
Files
priv/static/live_pane.min.js
"use strict";var LiveMotion=(()=>{var L=Object.defineProperty;var ne=Object.getOwnPropertyDescriptor;var re=Object.getOwnPropertyNames;var oe=Object.prototype.hasOwnProperty;var ie=(t,e)=>{for(var n in e)L(t,n,{get:e[n],enumerable:!0})},se=(t,e,n,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of re(e))!oe.call(t,r)&&r!==n&&L(t,r,{get:()=>e[r],enumerable:!(a=ne(e,r))||a.enumerable});return t};var ae=t=>se(L({},"__esModule",{value:!0}),t);var Ee={};ie(Ee,{createLivePaneHooks:()=>ve});function p(t,e="Assertion failed!"){if(!t)throw console.error(e),Error(e)}function U(t,e){return t!=t?e==e:t!==e||t&&typeof t=="object"||typeof t=="function"}function C(t){return t.type.startsWith("mouse")}function W(t){return t.type.startsWith("touch")}function G(t){return t.type==="keydown"}function z(t){let e=new Set;function n(s){if(U(t,s)){t=s;for(let i of e)i(s)}}function a(){return t}function r(s){n(s(t))}function o(s){return e.add(s),s(t),()=>{e.delete(s)}}return{set:n,get:a,update:r,subscribe:o}}var I=10,v=new Map,w=new Map,T=new Map,g=z(null);function y(t,e,n=I){return S(t,e,n)===0}function S(t,e,n=I){let a=B(t,n),r=B(e,n);return Math.sign(a-r)}function R(t,e){if(t.length!==e.length)return!1;for(let n=0;n<t.length;n++)if(t[n]!==e[n])return!1;return!0}function B(t,e){return parseFloat(t.toFixed(e))}function D({paneConstraintsArray:t,paneIndex:e,size:n}){p(t[e]!=null,"Pane constraints should not be null.");let{collapsedSize:a,collapsible:r,maxSize:o,minSize:s}=t[e],i=n;return S(i,s)<0&&(i=le(i,r,a,s)),i=Math.min(o,i),parseFloat(i.toFixed(I))}function le(t,e,n,a){if(!e)return a;let r=(n+a)/2;return S(t,r)<0?n:a}function O(){return{mounted(){if(!this.el.id)throw Error("Pane Group must have an id.");if(v.has(this.el.id))throw Error(`Pane Group with id "${this.el.id}" already exists.`);let e=this.el.getAttribute("data-pane-direction")||"horizontal",n=this.el.getAttribute("keyboard-resize-by"),a=n?Number(n):null,r=z([]),o=z(!1),s=z(e),i=z([]),l=z(0),d="",u=ue(i,r,o),c={paneDataArray:r,paneDataArrayChanged:o,direction:s,dragHandleId:d,layout:i,prevDelta:l,keyboardResizeBy:a,unsubFromPaneDataChange:u};v.set(this.el.id,c)},destroyed(){var e;(e=v.get(this.el.id))==null||e.unsubFromPaneDataChange(),v.delete(this.el.id)}}}function ue(t,e,n){return n.subscribe(a=>{if(!a)return;n.set(!1);let r=t.get(),o=e.get(),s=null;s==null&&(s=ce({paneDataArray:o}));let i=de({layout:s,paneConstraintsArray:o.map(l=>l.constraints)});R(r,i)||t.set(i)})}function ce({paneDataArray:t}){let e=Array(t.length),n=t.map(o=>o.constraints),a=0,r=100;for(let o=0;o<t.length;o++){let s=n[o];p(s);let{defaultSize:i}=s;i!=null&&(a++,e[o]=i,r-=i)}for(let o=0;o<t.length;o++){let s=n[o];p(s);let{defaultSize:i}=s;if(i!=null)continue;let l=t.length-a,d=r/l;a++,e[o]=d,r-=d}return e}function de({layout:t,paneConstraintsArray:e}){let n=[...t],a=n.reduce((o,s)=>o+s,0);if(n.length!==e.length)throw Error(`Invalid ${e.length} pane layout: ${n.map(o=>`${o}%`).join(", ")}`);if(!y(a,100))for(let o=0;o<e.length;o++){let s=n[o];p(s!=null);let i=100/a*s;n[o]=i}let r=0;for(let o=0;o<e.length;o++){let s=n[o];p(s!=null);let i=D({paneConstraintsArray:e,paneIndex:o,size:s});s!=i&&(r+=s-i,n[o]=i)}if(!y(r,0))for(let o=0;o<e.length;o++){let s=n[o];p(s!=null);let i=s+r,l=D({paneConstraintsArray:e,paneIndex:o,size:i});if(s!==l&&(r-=l-s,n[o]=l,y(r,0)))break}return n}function F(t){return Object.keys(t).reduce((e,n)=>t[n]===void 0?e:e+`${n}:${t[n]};`,"")}var $=null,P=null;function N(t){switch(t){case"horizontal":return"ew-resize";case"horizontal-max":return"w-resize";case"horizontal-min":return"e-resize";case"vertical":return"ns-resize";case"vertical-max":return"n-resize";case"vertical-min":return"s-resize"}}function k(){P!==null&&(document.head.removeChild(P),$=null,P=null)}function A(t){if($===t)return;$=t;let e=N(t);P===null&&(P=document.createElement("style"),document.head.appendChild(P)),P.innerHTML=`*{cursor: ${e}!important;}`}function j({defaultSize:t,dragState:e,layout:n,paneData:a,paneIndex:r,precision:o=3}){let s=n[r],i;return s==null?i=t!=null?t:"1":a.length===1?i="1":i=s.toPrecision(o),F({"flex-basis":0,"flex-grow":i,"flex-shrink":1,overflow:"hidden","pointer-events":e!==null?"none":void 0})}function q(){return{mounted(){let e=this.el.getAttribute("data-pane-group-id");if(!e)throw Error("data-pane-group-id must exist for pane components!");let n=this.el.id;if(!n)throw Error("Id must exist for pane components!");let a=this.el.getAttribute("data-pane-order"),r=a?Number(a):0,o=v.get(e);if(!o)throw Error('Group with id "'+e+'" does not exist.');let s=Number(this.el.getAttribute("collapsed-size"))||0,i=this.el.getAttribute("collapsible")==="true",l=Number(this.el.getAttribute("default-size"))||void 0,d=Number(this.el.getAttribute("max-size"))||100,u=Number(this.el.getAttribute("min-size"))||0,c={id:this.el.id,order:r,constraints:{collapsedSize:s,collapsible:i,defaultSize:l,maxSize:d,minSize:u}};pe(c,o.paneDataArray,o.paneDataArrayChanged);let m=me(this.el,o,c,void 0);w.set(n,{groupId:e,unsubs:m})},destroyed(){let{groupId:e,unsubs:n}=w.get(this.el.id);for(let r of n)r();let a=v.get(e);fe(this.el.id,a.paneDataArray,a.paneDataArrayChanged),w.delete(this.el.id)}}}function pe(t,e,n){e.update(a=>{let r=[...a,t];return r.sort((o,s)=>{let i=o.order,l=s.order;return i==null&&l==null?0:i==null?-1:l==null?1:i-l}),r}),n.set(!0)}function fe(t,e,n){let a=e.get(),r=K(a,t);r<0||e.update(o=>(o.splice(r,1),n.set(!0),o))}function K(t,e){return t.findIndex(n=>n.id===e)}function me(t,e,n,a){let r=()=>{let l=K(e.paneDataArray.get(),n.id);return j({defaultSize:a,dragState:g.get(),layout:e.layout.get(),paneData:e.paneDataArray.get(),paneIndex:l})},o=e.paneDataArray.subscribe(l=>t.style.cssText=r()),s=e.layout.subscribe(l=>{t.style.cssText=r()}),i=g.subscribe(l=>t.style.cssText=r());return[o,s,i]}function _(...t){return(...e)=>{for(let n of t)typeof n=="function"&&n(...e)}}function H(t,e,n,a){let r=Array.isArray(e)?e:[e];return r.forEach(o=>t.addEventListener(o,n,a)),()=>{r.forEach(o=>t.removeEventListener(o,n,a))}}function V({delta:t,layout:e,paneConstraintsArray:n,pivotIndices:a,trigger:r}){if(y(t,0))return e;let o=[...e],[s,i]=a;p(s!=null,"Invalid first pivot index"),p(i!=null,"Invalid second pivot index");let l=0;if(r==="keyboard"){{let u=t<0?i:s,c=n[u];if(p(c),c.collapsible){let m=e[u];p(m!=null);let f=n[u];p(f);let{collapsedSize:b=0,minSize:x=0}=f;if(y(m,b)){let h=x-m;S(h,Math.abs(t))>0&&(t=t<0?0-h:h)}}}{let u=t<0?s:i,c=n[u];p(c);let{collapsible:m}=c;if(m){let f=e[u];p(f!=null);let b=n[u];p(b);let{collapsedSize:x=0,minSize:h=0}=b;if(y(f,h)){let E=f-x;S(E,Math.abs(t))>0&&(t=t<0?0-E:E)}}}}{let u=t<0?1:-1,c=t<0?i:s,m=0;for(;;){let b=e[c];p(b!=null);let h=D({paneConstraintsArray:n,paneIndex:c,size:100})-b;if(m+=h,c+=u,c<0||c>=n.length)break}let f=Math.min(Math.abs(t),Math.abs(m));t=t<0?0-f:f}{let c=t<0?s:i;for(;c>=0&&c<n.length;){let m=Math.abs(t)-Math.abs(l),f=e[c];p(f!=null);let b=f-m,x=D({paneConstraintsArray:n,paneIndex:c,size:b});if(!y(f,x)&&(l+=f-x,o[c]=x,l.toPrecision(3).localeCompare(Math.abs(t).toPrecision(3),void 0,{numeric:!0})>=0))break;t<0?c--:c++}}if(y(l,0))return e;{let u=t<0?i:s,c=e[u];p(c!=null);let m=c+l,f=D({paneConstraintsArray:n,paneIndex:u,size:m});if(o[u]=f,!y(f,m)){let b=m-f,h=t<0?i:s;for(;h>=0&&h<n.length;){let E=o[h];p(E!=null);let te=E+b,M=D({paneConstraintsArray:n,paneIndex:h,size:te});if(y(E,M)||(b-=M-E,o[h]=M),y(b,0))break;t>0?h--:h++}}}let d=o.reduce((u,c)=>c+u,0);return y(d,100)?o:e}function Y(){return{mounted(){let e=this.el.getAttribute("data-pane-group-id");if(!e)throw Error("data-pane-group-id must exist for resizer components!");let n=this.el.getAttribute("id");if(!n)throw Error("Resizer id must exist for resizer components!");let a=v.get(e);if(!a)throw Error(`Missing group "${e} for resizer "${n}`);let r={disabled:z(!1),isDragging:z(!1),resizeHandlerCallback:null,unsubs:[],isFocused:z(!1)};if(T.set(n,r),a.dragHandleId=n,r.disabled.set(this.el.getAttribute("data-pane-disabled")==="true"),!r.disabled.get()){let i=a.keyboardResizeBy;r.resizeHandlerCallback=l=>{var c,m,f,b;let d=(m=(c=g.get())==null?void 0:c.initialCursorPosition)!=null?m:null,u=(b=(f=g.get())==null?void 0:f.initialLayout)!=null?b:null;ge(e,a,u,d,i,l)}}let o=be(n,this.el,r);r.unsubs.push(o);let s=F({cursor:N(a.direction.get()),"touch-action":"none","user-select":"none","-webkit-user-select":"none","-webkit-touch-callout":"none"});this.el.style.cssText=s,this.el.onblur=()=>r.isFocused.set(!1),this.el.onfocus=()=>r.isFocused.set(!0),this.el.onmousedown=i=>{var d;i.preventDefault();let l=X(a.direction,a.layout,a.dragHandleId,i);g.set(l),r.isDragging.set(((d=g.get())==null?void 0:d.dragHandleId)===n)},this.el.onmouseup=()=>{g.set(null),k(),r.isDragging.set(!1)},this.el.ontouchcancel=()=>{g.set(null),k(),r.isDragging.set(!1)},this.el.ontouchend=()=>{g.set(null),k(),r.isDragging.set(!1)},this.el.ontouchstart=i=>{var d;i.preventDefault();let l=X(a.direction,a.layout,a.dragHandleId,i);g.set(l),r.isDragging.set(((d=g.get())==null?void 0:d.dragHandleId)===n)},this.el.onkeydown=i=>{ze(e,n,r.disabled.get(),r.resizeHandlerCallback,i)}},destroyed(){var n,a;let e=this.el.getAttribute("id");for(let r of(a=(n=T.get(e))==null?void 0:n.unsubs)!=null?a:[])r();T.delete(e)}}}function be(t,e,n){let{disabled:a,resizeHandlerCallback:r,isDragging:o}=n,s=d=>{var u;t!==((u=g.get())==null?void 0:u.dragHandleId)||a.get()||!o.get()||r===null||r(d)},i=d=>{var u;t!==((u=g.get())==null?void 0:u.dragHandleId)||a.get()||!o.get()||r===null||r(d)},l=()=>{var d;t===((d=g.get())==null?void 0:d.dragHandleId)&&(e.blur(),o.set(!1),g.set(null),k())};return _(H(document.body,"contextmenu",l),H(document.body,"mousemove",s),H(document.body,"mouseleave",i),H(window,"mouseup",l),H(document.body,"touchmove",s,{passive:!1}),H(window,"touchend",l))}function ge(t,e,n,a,r,o){o.preventDefault();let s=e.direction.get(),i=e.layout.get(),l=e.paneDataArray.get(),d=he(t,e.dragHandleId),u=ye(o,e.dragHandleId,s,a,r);if(u===0)return;let c=s==="horizontal";document.dir==="rtl"&&c&&(u=-u);let m=l.map(x=>x.constraints),f=V({delta:u,layout:n!=null?n:i,paneConstraintsArray:m,pivotIndices:d,trigger:G(o)?"keyboard":"mouse-or-touch"}),b=!R(i,f);(C(o)||W(o))&&e.prevDelta.get()!=u&&(e.prevDelta.set(u),b?A(c?"horizontal":"vertical"):c?A(u<0?"horizontal-min":"horizontal-max"):A(u<0?"vertical-min":"vertical-max")),b&&e.layout.set(f)}function X(t,e,n,a){let r=ee(n);return p(r),{dragHandleId:n,dragHandleRect:r.getBoundingClientRect(),initialCursorPosition:J(t.get(),a),initialLayout:e.get()}}function he(t,e){let n=Z(t,e);return n!=null?[n,n+1]:[-1,-1]}function ye(t,e,n,a,r){if(G(t)){let o=n==="horizontal",s=0;t.shiftKey?s=100:r!=null||(s=5);let i=0;switch(t.key){case"ArrowDown":i=o?0:s;break;case"ArrowLeft":i=o?-s:0;break;case"ArrowRight":i=o?s:0;break;case"ArrowUp":i=o?0:-s;break;case"End":i=100;break;case"Home":i=-100;break}return i}else{if(a==null)return 0;let o=n==="horizontal",s=ee(e);p(s);let i=s.getAttribute("data-pane-group-id");p(i);let l=J(n,t),d=xe(i);p(d);let u=d.getBoundingClientRect(),c=o?u.width:u.height;return(l-a)/c*100}}function J(t,e){var a;let n=t==="horizontal";if(C(e))return n?e.clientX:e.clientY;if(W(e)){let r=e.touches[0];return p(r),n?r.screenX:r.screenY}else throw Error(`Unsupported event type "${(a=e.type)!=null?a:"unknown"}"`)}function Q(t){return Array.from(document.querySelectorAll(`[data-pane-resizer-id][data-pane-group-id="${t}"]`))}function Z(t,e){let a=Q(t).findIndex(r=>r.getAttribute("data-pane-resizer-id")===e);return a!=null?a:null}function ee(t){let e=document.querySelector(`[data-pane-resizer][data-pane-resizer-id="${t}"]`);return e||null}function xe(t){let e=document.querySelector(`[data-pane-group][data-pane-group-id="${t}"]`);return e||null}function ze(t,e,n,a,r){if(n||!a||r.defaultPrevented)return;if(["ArrowDown","ArrowLeft","ArrowRight","ArrowUp","End","Home"].includes(r.key)){r.preventDefault(),a(r);return}if(r.key!=="F6")return;r.preventDefault();let s=Q(t),i=Z(t,e);if(i===null)return;let l=r.shiftKey?i>0?i-1:s.length-1:i+1<s.length?i+1:0;s[l].focus()}function ve(){let t=O(),e=q(),n=Y();return{groupHook:t,paneHook:e,resizerHook:n}}return ae(Ee);})();