basb-cli
Version:
Blog as Second Brain!
2 lines (1 loc) • 612 B
JavaScript
function n(n,s,u,i,r,t){n=n||0;var g=u[1]-u[0];if(null!=r&&(r=l(r,[0,g])),null!=t&&(t=Math.max(t,null!=r?r:0)),"all"===i){var e=Math.abs(s[1]-s[0]);e=l(e,[0,g]),r=t=l(e,[r,t]),i=0}s[0]=l(s[0],u),s[1]=l(s[1],u);var h=a(s,i);s[i]+=n;var v,M=r||0,c=u.slice();return h.sign<0?c[0]+=M:c[1]-=M,s[i]=l(s[i],c),v=a(s,i),null!=r&&(v.sign!==h.sign||v.span<r)&&(s[1-i]=s[i]+h.sign*r),v=a(s,i),null!=t&&v.span>t&&(s[1-i]=s[i]+v.sign*t),s}function a(n,a){var l=n[a]-n[1-a];return{span:Math.abs(l),sign:l>0?-1:l<0?1:a?-1:1}}function l(n,a){return Math.min(null!=a[1]?a[1]:1/0,Math.max(null!=a[0]?a[0]:-1/0,n))}export{n as s};