wip relation manager :(

This commit is contained in:
salam committed 2026-01-31 19:02:15 +01:00
1 parent ae5b566231
commit 94a3c6c472
24 files changed
+318 -217

No files matched your search

@@ -37,7 +37,7 @@ xmlns="http://www.w3.org/2000/svg">
${p.outerHTML}${_}
</g>
</g>
</svg>`;n(X)},o.readAsText(e)}),ng=e=>{let t;try{t=new ImageData(e.width,e.height)}catch{t=document.createElement("canvas").getContext("2d").createImageData(e.width,e.height)}return t.data.set(e.data),t},lg=()=>{let e={resize:c,filter:p},t=(d,m)=>(d.forEach(u=>{m=e[u.type](m,u.data)}),m),i=(d,m)=>{let u=d.transforms,g=null;if(u.forEach(f=>{f.type==="filter"&&(g=f)}),g){let f=null;u.forEach(h=>{h.type==="resize"&&(f=h)}),f&&(f.data.matrix=g.data,u=u.filter(h=>h.type!=="filter"))}m(t(u,d.imageData))};self.onmessage=d=>{i(d.data.message,m=>{self.postMessage({id:d.data.id,message:m},[m.data.buffer])})};let a=1,n=1,l=1;function o(d,m,u){let g=m[d]/255,f=m[d+1]/255,h=m[d+2]/255,I=m[d+3]/255,b=g*u[0]+f*u[1]+h*u[2]+I*u[3]+u[4],E=g*u[5]+f*u[6]+h*u[7]+I*u[8]+u[9],v=g*u[10]+f*u[11]+h*u[12]+I*u[13]+u[14],y=g*u[15]+f*u[16]+h*u[17]+I*u[18]+u[19],T=Math.max(0,b*y)+a*(1-y),_=Math.max(0,E*y)+n*(1-y),x=Math.max(0,v*y)+l*(1-y);m[d]=Math.max(0,Math.min(1,T))*255,m[d+1]=Math.max(0,Math.min(1,_))*255,m[d+2]=Math.max(0,Math.min(1,x))*255}let r=self.JSON.stringify([1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0]);function s(d){return self.JSON.stringify(d||[])===r}function p(d,m){if(!m||s(m))return d;let u=d.data,g=u.length,f=m[0],h=m[1],I=m[2],b=m[3],E=m[4],v=m[5],y=m[6],T=m[7],_=m[8],x=m[9],R=m[10],P=m[11],z=m[12],A=m[13],k=m[14],w=m[15],O=m[16],S=m[17],L=m[18],C=m[19],D=0,U=0,B=0,$=0,X=0,K=0,ce=0,V=0,H=0,Y=0,ie=0,ee=0;for(;D<g;D+=4)U=u[D]/255,B=u[D+1]/255,$=u[D+2]/255,X=u[D+3]/255,K=U*f+B*h+$*I+X*b+E,ce=U*v+B*y+$*T+X*_+x,V=U*R+B*P+$*z+X*A+k,H=U*w+B*O+$*S+X*L+C,Y=Math.max(0,K*H)+a*(1-H),ie=Math.max(0,ce*H)+n*(1-H),ee=Math.max(0,V*H)+l*(1-H),u[D]=Math.max(0,Math.min(1,Y))*255,u[D+1]=Math.max(0,Math.min(1,ie))*255,u[D+2]=Math.max(0,Math.min(1,ee))*255;return d}function c(d,m){let{mode:u="contain",upscale:g=!1,width:f,height:h,matrix:I}=m;if(I=!I||s(I)?null:I,!f&&!h)return p(d,I);if(f===null?f=h:h===null&&(h=f),u!=="force"){let A=f/d.width,k=h/d.height,w=1;if(u==="cover"?w=Math.max(A,k):u==="contain"&&(w=Math.min(A,k)),w>1&&g===!1)return p(d,I);f=d.width*w,h=d.height*w}let b=d.width,E=d.height,v=Math.round(f),y=Math.round(h),T=d.data,_=new Uint8ClampedArray(v*y*4),x=b/v,R=E/y,P=Math.ceil(x*.5),z=Math.ceil(R*.5);for(let A=0;A<y;A++)for(let k=0;k<v;k++){let w=(k+A*v)*4,O=0,S=0,L=0,C=0,D=0,U=0,B=0,$=(A+.5)*R;for(let X=Math.floor(A*R);X<(A+1)*R;X++){let K=Math.abs($-(X+.5))/z,ce=(k+.5)*x,V=K*K;for(let H=Math.floor(k*x);H<(k+1)*x;H++){let Y=Math.abs(ce-(H+.5))/P,ie=Math.sqrt(V+Y*Y);if(ie>=-1&&ie<=1&&(O=2*ie*ie*ie-3*ie*ie+1,O>0)){Y=4*(H+X*b);let ee=T[Y+3];B+=O*ee,L+=O,ee<255&&(O=O*ee/250),C+=O*T[Y],D+=O*T[Y+1],U+=O*T[Y+2],S+=O}}}_[w]=C/S,_[w+1]=D/S,_[w+2]=U/S,_[w+3]=B/L,I&&o(w,_,I)}return{data:_,width:v,height:y}}},og=(e,t)=>{if(e.getUint32(t+4,!1)!==1165519206)return;t+=4;let i=e.getUint16(t+=6,!1)===18761;t+=e.getUint32(t+4,i);let a=e.getUint16(t,i);t+=2;for(let n=0;n<a;n++)if(e.getUint16(t+n*12,i)===274)return e.setUint16(t+n*12+8,1,i),!0;return!1},rg=e=>{let t=new DataView(e);if(t.getUint16(0)!==65496)return null;let i=2,a,n,l=!1;for(;i<t.byteLength&&(a=t.getUint16(i,!1),n=t.getUint16(i+2,!1)+2,!(!(a>=65504&&a<=65519||a===65534)||(l||(l=og(t,i,n)),i+n>t.byteLength)));)i+=n;return e.slice(0,i)},sg=e=>new Promise(t=>{let i=new FileReader;i.onload=()=>t(rg(i.result)||null),i.readAsArrayBuffer(e.slice(0,256*1024))}),cg=()=>window.BlobBuilder=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder||window.MSBlobBuilder,dg=(e,t)=>{let i=cg();if(i){let a=new i;return a.append(e),a.getBlob(t)}return new Blob([e],{type:t})},pg=()=>Math.random().toString(36).substr(2,9),mg=e=>{let t=new Blob(["(",e.toString(),")()"],{type:"application/javascript"}),i=URL.createObjectURL(t),a=new Worker(i),n=[];return{transfer:()=>{},post:(l,o,r)=>{let s=pg();n[s]=o,a.onmessage=p=>{let c=n[p.data.id];c&&(c(p.data.message),delete n[p.data.id])},a.postMessage({id:s,message:l},r)},terminate:()=>{a.terminate(),URL.revokeObjectURL(i)}}},ug=e=>new Promise((t,i)=>{let a=new Image;a.onload=()=>{t(a)},a.onerror=n=>{i(n)},a.src=e}),gg=e=>e.reduce((t,i)=>t.then(a=>i().then(Array.prototype.concat.bind(a))),Promise.resolve([])),fg=(e,t)=>new Promise(i=>{let a={width:e.width,height:e.height},n=e.getContext("2d"),l=t.sort(Ro).map(o=>()=>new Promise(r=>{xg[o[0]](n,a,o[1],r)&&r()}));gg(l).then(()=>i(e))}),Lt=(e,t)=>{e.beginPath(),e.lineCap=t["stroke-linecap"],e.lineJoin=t["stroke-linejoin"],e.lineWidth=t["stroke-width"],t["stroke-dasharray"].length&&e.setLineDash(t["stroke-dasharray"].split(",")),e.fillStyle=t.fill,e.strokeStyle=t.stroke,e.globalAlpha=t.opacity||1},Mt=e=>{e.fill(),e.stroke(),e.globalAlpha=1},hg=(e,t,i)=>{let a=wt(i,t),n=ct(i,t);return Lt(e,n),e.rect(a.x,a.y,a.width,a.height),Mt(e,n),!0},bg=(e,t,i)=>{let a=wt(i,t),n=ct(i,t);Lt(e,n);let l=a.x,o=a.y,r=a.width,s=a.height,p=.5522848,c=r/2*p,d=s/2*p,m=l+r,u=o+s,g=l+r/2,f=o+s/2;return e.moveTo(l,f),e.bezierCurveTo(l,f-d,g-c,o,g,o),e.bezierCurveTo(g+c,o,m,f-d,m,f),e.bezierCurveTo(m,f+d,g+c,u,g,u),e.bezierCurveTo(Line truncated
</svg>`;n(X)},o.readAsText(e)}),ng=e=>{let t;try{t=new ImageData(e.width,e.height)}catch{t=document.createElement("canvas").getContext("2d").createImageData(e.width,e.height)}return t.data.set(e.data),t},lg=()=>{let e={resize:c,filter:p},t=(d,m)=>(d.forEach(u=>{m=e[u.type](m,u.data)}),m),i=(d,m)=>{let u=d.transforms,g=null;if(u.forEach(f=>{f.type==="filter"&&(g=f)}),g){let f=null;u.forEach(h=>{h.type==="resize"&&(f=h)}),f&&(f.data.matrix=g.data,u=u.filter(h=>h.type!=="filter"))}m(t(u,d.imageData))};self.onmessage=d=>{i(d.data.message,m=>{self.postMessage({id:d.data.id,message:m},[m.data.buffer])})};let a=1,n=1,l=1;function o(d,m,u){let g=m[d]/255,f=m[d+1]/255,h=m[d+2]/255,I=m[d+3]/255,b=g*u[0]+f*u[1]+h*u[2]+I*u[3]+u[4],E=g*u[5]+f*u[6]+h*u[7]+I*u[8]+u[9],v=g*u[10]+f*u[11]+h*u[12]+I*u[13]+u[14],y=g*u[15]+f*u[16]+h*u[17]+I*u[18]+u[19],T=Math.max(0,b*y)+a*(1-y),_=Math.max(0,E*y)+n*(1-y),x=Math.max(0,v*y)+l*(1-y);m[d]=Math.max(0,Math.min(1,T))*255,m[d+1]=Math.max(0,Math.min(1,_))*255,m[d+2]=Math.max(0,Math.min(1,x))*255}let r=self.JSON.stringify([1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0]);function s(d){return self.JSON.stringify(d||[])===r}function p(d,m){if(!m||s(m))return d;let u=d.data,g=u.length,f=m[0],h=m[1],I=m[2],b=m[3],E=m[4],v=m[5],y=m[6],T=m[7],_=m[8],x=m[9],R=m[10],P=m[11],z=m[12],A=m[13],k=m[14],w=m[15],O=m[16],S=m[17],L=m[18],C=m[19],D=0,U=0,B=0,$=0,X=0,K=0,ce=0,V=0,H=0,Y=0,ie=0,ee=0;for(;D<g;D+=4)U=u[D]/255,B=u[D+1]/255,$=u[D+2]/255,X=u[D+3]/255,K=U*f+B*h+$*I+X*b+E,ce=U*v+B*y+$*T+X*_+x,V=U*R+B*P+$*z+X*A+k,H=U*w+B*O+$*S+X*L+C,Y=Math.max(0,K*H)+a*(1-H),ie=Math.max(0,ce*H)+n*(1-H),ee=Math.max(0,V*H)+l*(1-H),u[D]=Math.max(0,Math.min(1,Y))*255,u[D+1]=Math.max(0,Math.min(1,ie))*255,u[D+2]=Math.max(0,Math.min(1,ee))*255;return d}function c(d,m){let{mode:u="contain",upscale:g=!1,width:f,height:h,matrix:I}=m;if(I=!I||s(I)?null:I,!f&&!h)return p(d,I);if(f===null?f=h:h===null&&(h=f),u!=="force"){let A=f/d.width,k=h/d.height,w=1;if(u==="cover"?w=Math.max(A,k):u==="contain"&&(w=Math.min(A,k)),w>1&&g===!1)return p(d,I);f=d.width*w,h=d.height*w}let b=d.width,E=d.height,v=Math.round(f),y=Math.round(h),T=d.data,_=new Uint8ClampedArray(v*y*4),x=b/v,R=E/y,P=Math.ceil(x*.5),z=Math.ceil(R*.5);for(let A=0;A<y;A++)for(let k=0;k<v;k++){let w=(k+A*v)*4,O=0,S=0,L=0,C=0,D=0,U=0,B=0,$=(A+.5)*R;for(let X=Math.floor(A*R);X<(A+1)*R;X++){let K=Math.abs($-(X+.5))/z,ce=(k+.5)*x,V=K*K;for(let H=Math.floor(k*x);H<(k+1)*x;H++){let Y=Math.abs(ce-(H+.5))/P,ie=Math.sqrt(V+Y*Y);if(ie>=-1&&ie<=1&&(O=2*ie*ie*ie-3*ie*ie+1,O>0)){Y=4*(H+X*b);let ee=T[Y+3];B+=O*ee,L+=O,ee<255&&(O=O*ee/250),C+=O*T[Y],D+=O*T[Y+1],U+=O*T[Y+2],S+=O}}}_[w]=C/S,_[w+1]=D/S,_[w+2]=U/S,_[w+3]=B/L,I&&o(w,_,I)}return{data:_,width:v,height:y}}},og=(e,t)=>{if(e.getUint32(t+4,!1)!==1165519206)return;t+=4;let i=e.getUint16(t+=6,!1)===18761;t+=e.getUint32(t+4,i);let a=e.getUint16(t,i);t+=2;for(let n=0;n<a;n++)if(e.getUint16(t+n*12,i)===274)return e.setUint16(t+n*12+8,1,i),!0;return!1},rg=e=>{let t=new DataView(e);if(t.getUint16(0)!==65496)return null;let i=2,a,n,l=!1;for(;i<t.byteLength&&(a=t.getUint16(i,!1),n=t.getUint16(i+2,!1)+2,!(!(a>=65504&&a<=65519||a===65534)||(l||(l=og(t,i,n)),i+n>t.byteLength)));)i+=n;return e.slice(0,i)},sg=e=>new Promise(t=>{let i=new FileReader;i.onload=()=>t(rg(i.result)||null),i.readAsArrayBuffer(e.slice(0,256*1024))}),cg=()=>window.BlobBuilder=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder||window.MSBlobBuilder,dg=(e,t)=>{let i=cg();if(i){let a=new i;return a.append(e),a.getBlob(t)}return new Blob([e],{type:t})},pg=()=>Math.random().toString(36).substr(2,9),mg=e=>{let t=new Blob(["(",e.toString(),")()"],{type:"application/javascript"}),i=URL.createObjectURL(t),a=new Worker(i),n=[];return{transfer:()=>{},post:(l,o,r)=>{let s=pg();n[s]=o,a.onmessage=p=>{let c=n[p.data.id];c&&(c(p.data.message),delete n[p.data.id])},a.postMessage({id:s,message:l},r)},terminate:()=>{a.terminate(),URL.revokeObjectURL(i)}}},ug=e=>new Promise((t,i)=>{let a=new Image;a.onload=()=>{t(a)},a.onerror=n=>{i(n)},a.src=e}),gg=e=>e.reduce((t,i)=>t.then(a=>i().then(Array.prototype.concat.bind(a))),Promise.resolve([])),fg=(e,t)=>new Promise(i=>{let a={width:e.width,height:e.height},n=e.getContext("2d"),l=t.sort(Ro).map(o=>()=>new Promise(r=>{xg[o[0]](n,a,o[1],r)&&r()}));gg(l).then(()=>i(e))}),Lt=(e,t)=>{e.beginPath(),e.lineCap=t["stroke-linecap"],e.lineJoin=t["stroke-linejoin"],e.lineWidth=t["stroke-width"],t["stroke-dasharray"].length&&e.setLineDash(t["stroke-dasharray"].split(",")),e.fillStyle=t.fill,e.strokeStyle=t.stroke,e.globalAlpha=t.opacity||1},Mt=e=>{e.fill(),e.stroke(),e.globalAlpha=1},hg=(e,t,i)=>{let a=wt(i,t),n=ct(i,t);return Lt(e,n),e.rect(a.x,a.y,a.width,a.height),Mt(e,n),!0},bg=(e,t,i)=>{let a=wt(i,t),n=ct(i,t);Lt(e,n);let l=a.x,o=a.y,r=a.width,s=a.height,p=.5522848,c=r/2*p,d=s/2*p,m=l+r,u=o+s,g=l+r/2,f=o+s/2;return e.moveTo(l,f),e.bezierCurveTo(l,f-d,g-c,o,g,o),e.bezierCurveTo(g+c,o,m,f-d,m,f),e.bezierCurveTo(m,f+d,g+c,u,g,u),e.bezierCurveTo(Line truncated
/*! Bundled license information:
filepond/dist/filepond.esm.js: