@opendaw/studio-core 0.0.18 → 0.0.19

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.
package/dist/workers.js CHANGED
@@ -1,4 +1,4 @@
1
- var d=s=>s!=null;var w=(s,t="asDefined failed")=>s??u(t);var de=(s,t)=>s instanceof t?s:u(`${s} is not instance of ${t}`);var rt=s=>s instanceof Function?s():s;var F=(s,...t)=>s?.apply(null,t),D=s=>{throw new Error(`Unhandled ${s}`)},u=s=>{throw s instanceof Error?s:new Error(s)},g=(s,t)=>s?void 0:u(rt(t));var Kt=s=>new Proxy({},{get(){return u(s)}});var pe=s=>{try{return{error:null,value:s(),status:"success"}}catch(t){return{error:t,value:null,status:"failure"}}};var zt=()=>{};var me=s=>{};var qt;(function(s){s[s.Ascending=1]="Ascending",s[s.Descending=-1]="Descending"})(qt||(qt={}));var m=class{static#t=Object.freeze(new Array(0));static empty=()=>this.#t;static clear=t=>{t.length=0};static replace=(t,e)=>{t.length=0,t.push(...e)};static consume=(t,e)=>{for(let r=0;r<t.length;)e(t[r])?t.splice(r,1):r++};static peekFirst=t=>t.at(0)??null;static peekLast=t=>t.at(-1)??null;static getFirst=(t,e)=>w(t.at(0),e);static getLast=(t,e)=>w(t.at(-1),e);static removeLast=(t,e)=>w(t.pop(),e);static create=(t,e)=>{let r=new Array(e);for(let n=0;n<e;n++)r[n]=t(n);return r};static equals=(t,e)=>{if(t.length!==e.length)return!1;for(let r=0;r<t.length;r++)if(t[r]!==e[r])return!1;return!0};static satisfy=(t,e)=>{if(t.length<2)return!0;let r=t[0];for(let n=1;n<t.length;n++)if(!e(r,t[n]))return!1;return!0};static remove=(t,e)=>{let r=t.indexOf(e);if(r===-1)return u(`${e} not found in ${t}`);t.splice(r,1)};static removeOpt=(t,e)=>{let r=t.indexOf(e);return r===-1?!1:(t.splice(r,1),!0)};static hasDuplicates=t=>new Set(t).size<t.length;static removeDuplicates=t=>{let e=0,r=new Set;for(let n of t)r.has(n)||(r.add(n),t[e++]=n);return t.length=e,t};static removeDuplicateKeys=(t,e)=>{let r=0,n=new Set;for(let i of t){let o=i[e];n.has(o)||(n.add(o),t[r++]=i)}return t.length=r,t};static*iterate(t){for(let e=0;e<t.length;e++)yield t[e]}static*iterateReverse(t){for(let e=t.length-1;e>=0;e--)yield t[e]}static*iterateStateFull(t){let e=t.length-1;for(let r=0;r<=e;r++)yield{value:t[r],isFirst:r===0,isLast:r===e}}static isSorted(t,e=qt.Ascending){if(t.length<2)return!0;let r=t[0];for(let n=1;n<t.length;n++){let i=t[n];if(Math.sign(r-i)===e)return!1;r=i}return!0}};var p;(function(s){s.wrap=e=>d(e)?new t(e):s.None,s.from=e=>s.wrap(e()),s.tryFrom=e=>{try{return s.wrap(e())}catch{return s.None}},s.execute=(e,...r)=>s.wrap(e?.apply(null,r)),s.async=e=>e.then(r=>s.wrap(r),()=>s.None);class t{#t;constructor(r){this.#t=w(r)}unwrap(){return this.#t}unwrapOrElse(r){return this.#t}unwrapOrNull(){return this.#t}unwrapOrUndefined(){return this.#t}contains(r){return r===this.#t}match(r){return r.some(this.#t)}ifSome(r){return r(this.#t)}isEmpty(){return!1}nonEmpty(){return!0}map(r){return s.wrap(r(this.#t))}mapOr(r,n){return r(this.#t)}flatMap(r){return r(this.#t)}equals(r){return this.unwrapOrNull()===r.unwrapOrNull()}assert(r){return this}toString(){return`{Option.Some(${this.#t})}`}get[Symbol.toStringTag](){return this.toString()}}s.Some=t,s.None=new class{unwrap=e=>u(d(e)?rt(e):"unwrap failed");unwrapOrElse=e=>rt(e);unwrapOrNull=()=>null;unwrapOrUndefined=()=>{};contains=e=>!1;match=e=>e.none();ifSome=e=>{};isEmpty=()=>!0;nonEmpty=()=>!1;map=e=>s.None;mapOr=(e,r)=>rt(r);flatMap=e=>s.None;equals=e=>e.isEmpty();assert=e=>u(rt(e)??"assert failed");toString=()=>"{Option.None}";get[Symbol.toStringTag](){return this.toString()}}})(p||(p={}));var ge;(function(s){s.async=t=>t.then(e=>s.ok(e),e=>s.err(e)),s.tryGet=t=>{try{return s.ok(t())}catch(e){return s.err(e)}},s.ok=t=>new class{value;constructor(e){this.value=e}asOption=()=>p.wrap(this.value);failureReason=()=>{throw new Error("Attempt was successful.")};isFailure=()=>!1;isSuccess=()=>!0;result=()=>this.value;map=e=>{try{return s.ok(e(this.value))}catch(r){return s.err(r)}};flatMap=e=>e(this.value);match=e=>e.ok(this.value);toVoid=()=>s.ok(void 0);failure=()=>{throw new Error("Attempt was successful.")};toString=()=>`{Success: ${this.value}`;get[Symbol.toStringTag](){return"Success"}}(t),s.Ok=new class{constructor(){}asOption=()=>p.None;failureReason=()=>{throw new Error("Attempt was successful.")};isFailure=()=>!1;isSuccess=()=>!0;result=()=>{};map=t=>s.ok(t());flatMap=t=>t();match=t=>t.ok();toVoid=()=>s.ok(void 0);failure=()=>{throw new Error("Attempt was successful.")};toString=()=>"{Success: Ok";get[Symbol.toStringTag](){return"Success"}},s.err=t=>new class{reason;constructor(e){this.reason=e}asOption=()=>p.None;failureReason=()=>this.reason;isFailure=()=>!0;isSuccess=()=>!1;result=()=>{throw new Error(`No result because '${this.reason}'`)};map=()=>this;flatMap=()=>this;match=e=>e.err(this.reason);toVoid=()=>s.err(this.reason);failure=()=>this;toString=()=>`{Failure: ${this.reason}`;get[Symbol.toStringTag](){return"Failure"}}(t)})(ge||(ge={}));var A;(function(s){s.exact=(t,e,r)=>{let n=0,i=t.length-1;for(;n<=i;){let o=n+i>>>1,a=r(t[o],e);if(a===0)return o;a<0?n=o+1:i=o-1}return-1},s.exactMapped=(t,e,r,n)=>{let i=0,o=t.length-1;for(;i<=o;){let a=i+o>>>1,c=r(n(t[a]),e);if(c===0)return a;c<0?i=a+1:o=a-1}return-1},s.leftMost=(t,e,r)=>{let n=0,i=t.length;for(;n<i;){let o=n+i>>>1;r(t[o],e)<0?n=o+1:i=o}return n},s.rightMost=(t,e,r)=>{let n=0,i=t.length;for(;n<i;){let o=n+i>>>1;r(t[o],e)<=0?n=o+1:i=o}return i-1},s.leftMostMapped=(t,e,r,n)=>{let i=0,o=t.length;for(;i<o;){let a=i+o>>>1;r(n(t[a]),e)<0?i=a+1:o=a}return i},s.rightMostMapped=(t,e,r,n)=>{let i=0,o=t.length;for(;i<o;){let a=i+o>>>1;r(n(t[a]),e)<=0?i=a+1:o=a}return o-1},s.rangeMapped=(t,e,r,n)=>[s.leftMostMapped(t,e,r,n),s.rightMostMapped(t,e,r,n)]})(A||(A={}));var Et;(function(s){s.parseCssRgbOrRgba=t=>{let e=t.match(/\(([^)]+)\)/)?.at(1)?.split(",")?.map(Number);if(d(e)&&e.every(r=>!isNaN(r))){if(e.length===3)return[e[0]/255,e[1]/255,e[2]/255,1];if(e.length===4)return[e[0]/255,e[1]/255,e[2]/255,e[3]]}throw new Error(`${t} is not proper formatted. Example: 'rgb(255, 255, 255)' or 'rgba(255, 255, 255, 1)'`)}})(Et||(Et={}));var jt=(s,t)=>s-t;var Br=Math.PI*2,Nr=Math.PI/2,Fr=Math.PI/4,Or=1/Math.sqrt(2),y=(s,t,e)=>Math.max(t,Math.min(s,e));var Wt=s=>Math.pow(2,Math.ceil(Math.log(s)/Math.log(2)));var ye;(function(s){s.valueAt=({slope:n,steps:i,y0:o,y1:a},c)=>s.normalizedAt(c/i,n)*(a-o)+o,s.normalizedAt=(n,i)=>{if(i>.499999&&i<.500001)return n;{let o=y(i,1e-15,.999999999999999);return o*o/(1-o*2)*(Math.pow((1-o)/o,2*n)-1)}},s.inverseAt=(n,i)=>{let o=y(i,1e-15,.999999999999999);return Math.log(n*(1-2*o)/(o*o)+1)/(2*Math.log((1-o)/o))},s.coefficients=n=>{let i=s.valueAt(n,1),a=(s.valueAt(n,2)-i)/(i-n.y0),c=i-a*n.y0;return{m:a,q:c}};function*e(n,i,o,a){let{m:c,q:h}=s.coefficients({slope:n,steps:i,y0:o,y1:a});for(let l=0,f=o;l<i;l++)yield f=c*f+h}s.walk=e;function*r(n,i){let o=1/i,a=s.normalizedAt(o,n),h=(s.normalizedAt(2*o,n)-a)/a;for(let l=0,f=0;l<i;l++)yield f=h*f+a}s.walkNormalized=r,s.byHalf=(n,i,o,a)=>({slope:s.slopeByHalf(i,o,a),steps:n,y0:i,y1:a}),s.slopeByHalf=(n,i,o)=>Math.abs(o-n)<1e-6?.5:(i-n)/(o-n)})(ye||(ye={}));var O=new DataView(new ArrayBuffer(8)),k;(function(s){s.MIN_VALUE=-2147483648,s.MAX_VALUE=2147483647,s.toByte=t=>(O.setInt8(0,t),O.getInt8(0)),s.toShort=t=>(O.setInt16(0,t),O.getInt16(0)),s.toInt=t=>(O.setInt32(0,t),O.getInt32(0))})(k||(k={}));var X;(function(s){let r=new ArrayBuffer(Float32Array.BYTES_PER_ELEMENT),n=new Float32Array(r),i=new Int32Array(r);s.floatToIntBits=o=>{let a=s.floatToRawIntBits(o);return(a&2139095040)===2139095040&&(a&8388607)!==0?2143289344:a},s.intBitsToFloat=o=>(i[0]=o,n[0]),s.floatToRawIntBits=o=>(n[0]=o,i[0]),s.toFloat32=o=>(O.setFloat32(0,o),O.getFloat32(0))})(X||(X={}));var z;(function(s){s.floatToIntBits=t=>{let e=X.floatToIntBits(t),r=e>>>16&32768,n=(e&2147483647)+4096;return n>=1199570944?(e&2147483647)>=1199570944?n<2139095040?r|31744:r|31744|(e&8388607)>>>13:r|31743:n>=947912704?r|n-939524096>>>13:n<855638016?r:(n=(e&2147483647)>>>23,r|(e&8388607|8388608)+(8388608>>>n-102)>>>126-n)},s.intBitsToFloat=t=>{let e=t&1023,r=t&31744;if(r===31744)r=261120;else if(r!==0){if(r+=114688,e===0&&r>115712)return X.intBitsToFloat((t&32768)<<16|r<<13|1023)}else if(e!==0){r=115712;do e<<=1,r-=1024;while((e&1024)===0);e&=1023}return X.intBitsToFloat((t&32768)<<16|(r|e)<<13)}})(z||(z={}));var Yt;(function(s){let t=9218868437227405312n,e=4503599627370495n,r=new ArrayBuffer(BigInt64Array.BYTES_PER_ELEMENT),n=new Float64Array(r),i=new BigInt64Array(r);s.float64ToLongBits=o=>{let a=s.float64ToRawLongBits(o);return(a&t)===t&&(a&e)!==0n?0x7ff8000000000000n:a},s.longBitsToFloat64=o=>(i[0]=o,n[0]),s.float64ToRawLongBits=o=>(n[0]=o,i[0]),s.clamp=o=>(O.setFloat64(0,o),O.getFloat64(0))})(Yt||(Yt={}));var M=class{static*empty(){}static one(t){return[t]}static count(t){let e=0;for(let r of t)e++;return e}static some(t,e){for(let r of t)if(e(r))return!0;return!1}static every(t,e){for(let r of t)if(!e(r))return!1;return!0}static reduce(t,e,r){let n=r,i=0;for(let o of t)n=e(n,o,i++);return n}static includes(t,e){for(let r of t)if(r===e)return!0;return!1}static forEach(t,e){for(let r of t)e(r)}static*map(t,e){let r=0;for(let n of t)yield e(n,r++)}static*take(t,e){let r=0;for(let n of t){if(r++>=e)return;yield n}}static filter(t,e){let r=[];for(let n of t)e(n)&&r.push(n);return r}static filterMap(t,e){let r=[];for(let n of t){let i=e(n);d(i)&&r.push(i)}return r}static reverse(t){let e=[];for(let r of t)e.push(r);return e.reverse()}static*pairWise(t){let e=t[Symbol.iterator](),{done:r,value:n}=e.next(),i=n;if(r!==!0)for(;;){let{done:o,value:a}=e.next();if(o===!0){yield[i,null];return}yield[i,a],i=a}}};var v=class s{static create(t=1024){return this.use(new ArrayBuffer(t))}static use(t,e=0){return new s(new DataView(t,e))}littleEndian=!1;#t;#e=0;constructor(t){this.#t=t}get remaining(){return this.#t.byteLength-this.#e}get position(){return this.#e}set position(t){t<0?u(`position(${t}) cannot be negative.`):t>this.#t.byteLength?u(`position(${t}) is outside range (${this.#t.byteLength}).`):this.#e=t}writeBoolean(t){this.writeByte(t?1:0)}writeByte(t){this.#r(1),this.#t.setInt8(this.#e++,t)}writeShort(t){this.#r(Int16Array.BYTES_PER_ELEMENT),this.#t.setInt16(this.#e,t,this.littleEndian),this.#e+=Int16Array.BYTES_PER_ELEMENT}writeInt(t){this.#r(Int32Array.BYTES_PER_ELEMENT),this.#t.setInt32(this.#e,t,this.littleEndian),this.#e+=Int32Array.BYTES_PER_ELEMENT}writeLong(t){this.#r(BigInt64Array.BYTES_PER_ELEMENT),this.#t.setBigInt64(this.#e,t,this.littleEndian),this.#e+=BigInt64Array.BYTES_PER_ELEMENT}writeFloat(t){this.#r(Float32Array.BYTES_PER_ELEMENT),this.#t.setFloat32(this.#e,t,this.littleEndian),this.#e+=Float32Array.BYTES_PER_ELEMENT}writeDouble(t){this.#r(Float64Array.BYTES_PER_ELEMENT),this.#t.setFloat64(this.#e,t,this.littleEndian),this.#e+=Float64Array.BYTES_PER_ELEMENT}writeBytes(t){this.#r(t.length);for(let e=0;e<t.length;++e)this.#t.setInt8(this.#e++,t[e])}writeString(t){let e=t.length;this.#r(Int32Array.BYTES_PER_ELEMENT+e*Int16Array.BYTES_PER_ELEMENT),this.writeInt(e);for(let r=0;r<e;r++)this.writeShort(t.charCodeAt(r))}toArrayBuffer(){return this.#t.buffer.slice(0,this.#e)}#r(t){let e=this.#t.byteLength;if(this.#e+t>e){let r=this.#t;this.#t=new DataView(new ArrayBuffer(Wt(e+t)));for(let n=0;n<this.#e;n++)this.#t.setInt8(n,r.getInt8(n))}}},st=class{#t=0;writeByte(t){this.#t++}writeShort(t){this.#t+=2}writeInt(t){this.#t+=4}writeLong(t){this.#t+=8}writeFloat(t){this.#t+=4}writeDouble(t){this.#t+=8}writeBoolean(t){this.#t++}writeBytes(t){this.#t+=t.length}writeString(t){this.#t+=t.length+4}get count(){return this.#t}};var B=class{littleEndian=!1;#t;#e=0;constructor(t,e=0){this.#t=new DataView(t,e)}get position(){return this.#e}set position(t){t<0?u(`position(${t}) cannot be negative.`):t>this.#t.byteLength?u(`position(${t}) is outside range (${this.#t.byteLength}).`):this.#e=t}readByte(){return this.#t.getInt8(this.#e++)}readShort(){let t=this.#t.getInt16(this.#e,this.littleEndian);return this.#e+=Int16Array.BYTES_PER_ELEMENT,t}readInt(){let t=this.#t.getInt32(this.#e,this.littleEndian);return this.#e+=Int32Array.BYTES_PER_ELEMENT,t}readLong(){let t=this.#t.getBigInt64(this.#e,this.littleEndian);return this.#e+=BigInt64Array.BYTES_PER_ELEMENT,t}readFloat(){let t=this.#t.getFloat32(this.#e,this.littleEndian);return this.#e+=Float32Array.BYTES_PER_ELEMENT,t}readDouble(){let t=this.#t.getFloat64(this.#e,this.littleEndian);return this.#e+=Float64Array.BYTES_PER_ELEMENT,t}readBoolean(){return this.readByte()===1}readBytes(t){for(let e=0;e<t.length;e++)t[e]=this.readByte()}readString(){let t=this.readInt(),e="";for(let r=0;r<t;r++)e+=String.fromCharCode(this.readShort());return e}available(t){return this.#e+t<=this.#t.byteLength}remaining(){return this.#t.byteLength-this.#e}skip(t){this.position+=t}};var ar=s=>d(s)?s.value!==void 0?"value":s.get!==void 0?"get":u(`Cannot resolve method key of ${s}`):u("Cannot resolve method key of undefined descriptor"),nt=(s,t,e)=>{if(!d(e))return function(i,o){if(o&&o.kind==="getter")return function(){let a=Object.getOwnPropertyDescriptor(Object.getPrototypeOf(this),t);if(!d(a?.get))return u(`Cannot find getter for property '${t}'`);let c=a.get.apply(this);return Object.defineProperty(this,t,{value:c,configurable:!1,writable:!1,enumerable:!1}),c}};let r=ar(e),n=w(e[r]);return{[r]:function(...i){if(i.length>0)return u("lazy accessory must not have any construction parameters");let o=n.apply(this);return Object.defineProperty(this,t,{value:r==="get"?o:()=>o,configurable:!1,writable:!1,enumerable:!1}),o}}};var we;(function(s){function*t(){}s.empty=t,s.next=r=>{let{value:n,done:i}=r.next();return i?null:n};function*e(...r){for(let n of r)for(let i of n)yield i}s.flatten=e})(we||(we={}));var it;(function(s){s[s.T=0]="T",s[s.R=1]="R",s[s.B=2]="B",s[s.L=3]="L"})(it||(it={}));var ot;(function(s){s[s.TL=0]="TL",s[s.TR=1]="TR",s[s.BR=2]="BR",s[s.BL=3]="BL"})(ot||(ot={}));var xe;(function(s){s.outerTangentPoints=(t,e)=>{let r=e.x-t.x,n=e.y-t.y,i=Math.atan2(n,r)+Math.acos((t.r-e.r)/Math.sqrt(r*r+n*n)),o=Math.cos(i),a=Math.sin(i);return[{x:t.x+t.r*o,y:t.y+t.r*a},{x:e.x+e.r*o,y:e.y+e.r*a}]}})(xe||(xe={}));var be;(function(s){s.zero=()=>({x:0,y:0}),s.create=(t,e)=>({x:t,y:e}),s.clone=t=>({...t}),s.floor=t=>({x:Math.floor(t.x),y:Math.floor(t.y)}),s.length=t=>Math.sqrt(t.x*t.x+t.y*t.y),s.distance=(t,e)=>Math.sqrt((e.x-t.x)**2+(e.y-t.y)**2),s.add=(t,e)=>({x:t.x+e.x,y:t.y+e.y}),s.subtract=(t,e)=>({x:t.x-e.x,y:t.y-e.y}),s.scaleBy=(t,e)=>({x:t.x*e,y:t.y*e}),s.scaleTo=(t,e)=>{let r=e/s.length(t);return{x:t.x*r,y:t.y*r}},s.fromClient=t=>({x:t.clientX,y:t.clientY})})(be||(be={}));var yt;(function(s){s.Empty=Object.freeze({x:0,y:0,width:0,height:0}),s.corners=t=>{let e=t.x,r=t.y,n=e+t.width,i=r+t.height;return[{x:e,y:r},{x:n,y:r},{x:n,y:i},{x:e,y:i}]},s.inflate=(t,e)=>({x:t.x-e,y:t.y-e,width:t.width+e*2,height:t.height+e*2}),s.contains=(t,e)=>{let r=e.x>=t.x&&e.y>=t.y,n=e.x+e.width<=t.x+t.width&&e.y+e.height<=t.y+t.height;return r&&n},s.isPointInside=(t,e)=>t.x>=e.x&&t.x<=e.x+e.width&&t.y>=e.y&&t.y<=e.y+e.height,s.intersect=(t,e)=>{let r=Math.max(t.x,e.x),n=Math.min(t.x+t.width,e.x+e.width),i=Math.min(t.y+t.height,e.y+e.height),o=Math.max(t.y,e.y);return n>r&&i>o},s.axis=(t,e)=>{switch(e){case it.T:return t.y;case it.R:return t.x+t.width;case it.B:return t.y+t.height;case it.L:return t.x;default:return D(e)}},s.corner=(t,e)=>{switch(e){case ot.TL:return{x:t.x,y:t.y};case ot.TR:return{x:t.x+t.width,y:t.y};case ot.BR:return{x:t.x+t.width,y:t.y+t.height};case ot.BL:return{x:t.x,y:t.y+t.height};default:return D(e)}},s.center=t=>({x:t.x+t.width*.5,y:t.y+t.height*.5}),s.isEmpty=t=>t.width===0||t.height===0,s.union=(t,e)=>{if(s.isEmpty(t))s.isEmpty(e)||(t.x=e.x,t.y=e.y,t.width=e.width,t.height=e.height);else if(!s.isEmpty(e)){let r=e.x,n=e.y,i=Math.min(t.x,r),o=Math.min(t.y,n);t.width=Math.max(t.x+t.width,r+e.width)-i,t.height=Math.max(t.y+t.height,n+e.height)-o,t.x=i,t.y=o}}})(yt||(yt={}));var Ee;(function(s){s.width=t=>t.xMax-t.xMin,s.height=t=>t.yMax-t.yMin,s.from=(t,e)=>{t.xMin=e.xMin,t.xMax=e.xMax,t.yMin=e.yMin,t.yMax=e.yMax},s.extend=(t,e)=>{t.xMin-=e,t.yMin-=e,t.xMax+=e,t.yMax+=e},s.padding=(t,[e,r,n,i])=>(t.xMin+=i,t.yMin+=e,t.xMax-=r,t.yMax-=n,t),s.intersectPoint=(t,e)=>t.xMin<=e.x&&e.x<t.xMax&&t.yMin<=e.y&&e.y<t.yMax,s.intersectThat=(t,e)=>e.xMin<t.xMax&&e.xMax>t.xMin&&e.yMin<t.yMax&&e.yMax>t.yMin,s.center=t=>({x:(t.xMin+t.xMax)*.5,y:(t.yMin+t.yMax)*.5})})(Ee||(Ee={}));var Ae;(function(s){s.Identity=Object.freeze([0,0,0,0])})(Ae||(Ae={}));var Ie;(function(s){s.intersects=(r,n,i,o,a,c,h,l)=>{let f=t(r,n,i,o,a,c),x=t(r,n,i,o,h,l);if((f|x)===0||(f&x)!==0)return!1;let P=e(a,c,h,l,r,i);return P!==e(a,c,h,l,n,i)||P!==e(a,c,h,l,n,o)||P!==e(a,c,h,l,r,o)};let t=(r,n,i,o,a,c)=>{let h=0;return a<=r?h|=1:a>=n&&(h|=2),c<=i?h|=8:c>=o&&(h|=4),h},e=(r,n,i,o,a,c)=>(i-r)*(c-n)-(a-r)*(o-n)>=0})(Ie||(Ie={}));var ve;(function(s){s.Identity={valueToAxis:t=>t,axisToValue:t=>t},s.toClamped=(t,e,r)=>({valueToAxis:n=>t.valueToAxis(y(n,e,r)),axisToValue:n=>y(t.axisToValue(n),e,r)}),s.createClamped=(t,e)=>({valueToAxis:r=>y(r,t,e),axisToValue:r=>y(r,t,e)})})(ve||(ve={}));var Se;(function(s){s.fromBuffers=async(...t)=>{let e=t.reduce((i,o)=>i+o.byteLength,0),r=new Uint8Array(e),n=0;for(let i of t)r.set(new Uint8Array(i),n),n+=i.byteLength;return await crypto.subtle.digest("SHA-256",r)},s.equals=(t,e)=>{g(t.byteLength===32,"First hash has invalid length"),g(e.byteLength===32,"Second hash has invalid length");let r=new Uint8Array(t),n=new Uint8Array(e);for(let i=0;i<32;i++)if(r[i]!==n[i])return!1;return!0},s.toString=t=>Array.from(new Uint8Array(t)).map(e=>e.toString(16).padStart(2,"0")).join("")})(Se||(Se={}));var Te;(function(s){s.intersect1D=(t,e,r,n)=>Math.max(t,r)<=Math.min(e,n)})(Te||(Te={}));var at=class{#t=new Set;#e;constructor(){this.#e=new Proxy({},{get:(t,e)=>(...r)=>this.#t.forEach(n=>Object.getPrototypeOf(n)===Object.getPrototypeOf({})?F(n[e],...r):n[e]?.apply(n,r))})}get proxy(){return this.#e}get size(){return this.#t.size}subscribe(t){return this.#t.add(t),{terminate:()=>this.#t.delete(t)}}forEach(t){this.#t.forEach(t)}terminate(){this.#t.clear()}};var Gt=class s{static#t=Object.freeze(new Set);static empty=()=>s.#t};var Me;(function(s){s.mergeNoOverlap=(t,e)=>{let r=new Set(Object.keys(t));for(let n of Object.keys(e))if(r.has(n))return u(`'${n}' is an overlapping key`);return{...t,...e}},s.include=(t,...e)=>e.reduce((r,n)=>(r[n]=t[n],r),{}),s.exclude=(t,...e)=>{let r=new Set(e);return Object.entries(t).reduce((n,[i,o])=>(r.has(i)||(n[i]=o),n),{})},s.overwrite=(t,e)=>Object.assign(t,e)})(Me||(Me={}));var N=Object.freeze({Empty:{terminate:zt},create:s=>({terminate:s}),many:(...s)=>({terminate:()=>{for(;s.length>0;)s.pop().terminate()}})}),Q=class s{#t=[];own(t){return this.#t.push(t),t}ownAll(...t){for(let e of t)this.#t.push(e)}spawn(){let t=new s;return t.own({terminate:()=>m.removeOpt(this.#t,t)}),this.own(t)}terminate(){for(;this.#t.length>0;)this.#t.pop().terminate()}};var q=class{static subscribeMany(t,...e){return N.many(...e.map(r=>r.subscribe(()=>t(r))))}#t=new Set;subscribe(t){return this.#t.add(t),{terminate:()=>this.#t.delete(t)}}isEmpty(){return this.#t.size===0}notify(t){this.#t.forEach(e=>e(t))}observers(){return this.#t}terminate(){this.#t.clear()}},Be;(function(s){s.make=t=>new class{getValue(){return t}subscribe(e){return N.Empty}catchupAndSubscribe(e){return e(this),N.Empty}}})(Be||(Be={}));var Ne;(function(s){s.False=new class{getValue(){return!1}setValue(t){}subscribe(t){return N.Empty}catchupAndSubscribe(t){return t(this),N.Empty}},s.inverseBoolean=t=>new class{getValue(){return!t.getValue()}setValue(e){t.setValue(!e)}subscribe(e){return t.subscribe(e)}catchupAndSubscribe(e){return e(this),this.subscribe(e)}}})(Ne||(Ne={}));var At=class{#t;#e=p.None;#r;constructor(t,e){this.#t=new q,this.#r=e?.guard(t)??t,this.#e=p.wrap(e)}setValue(t){this.#e.nonEmpty()&&(t=this.#e.unwrap().guard(t)),this.#r!==t&&(this.#r=t,this.#t.notify(this))}getValue(){return this.#r}subscribe(t){return this.#t.subscribe(t)}catchupAndSubscribe(t){return t(this),this.#t.subscribe(t)}terminate(){this.#t.terminate()}toString(){return`{DefaultObservableValue value: ${this.#r}`}};var Ht=class{#t;#e;#r;constructor(t,e){this.#t=t,this.#e=e,this.#r=e-t}x(t){return(this.clamp(t)-this.#t)/this.#r}y(t){return this.#t+y(t,0,1)*this.#r}clamp(t){return y(t,this.#t,this.#e)}floating(){return!0}},Xt=class{#t;#e;#r;constructor(t,e){this.#t=y(Math.round(t),k.MIN_VALUE,k.MAX_VALUE),this.#e=y(Math.round(e),k.MIN_VALUE,k.MAX_VALUE),this.#r=this.#e-this.#t}x(t){return(this.clamp(t)-this.#t)/this.#r}y(t){return this.#t+Math.round(y(t,0,1)*this.#r)}clamp(t){return y(Math.round(t),this.#t,this.#e)}floating(){return!1}},Qt=class{#t;#e;#r;constructor(t,e){this.#t=t,this.#e=e,this.#r=Math.log(e/t)}x(t){return Math.log(y(t,this.#t,this.#e)/this.#t)/this.#r}y(t){return this.#t*Math.exp(y(t,0,1)*this.#r)}clamp(t){return Math.min(this.#e,Math.max(this.#t,t))}floating(){return!0}},Jt=class{#t;constructor(t){this.#t=t}x(t){let e=this.#t.findIndex(r=>r===t);return e===-1?u(`Could not find index for ${t}`):e/(this.#t.length-1)}y(t){let e=Math.round(y(t,0,1)*(this.#t.length-1));return e>-1?w(this.#t.at(e),`Could not find value for ${t}`):u(`Index ${e} is out of box.`)}clamp(t){return t}floating(){return!1}},Zt=class{#t;#e;#r;#s;#n;constructor(t,e,r){this.#t=t,this.#e=r;let n=t*t,i=r*r,o=e*e,a=t+r-2*e,c=r-e;this.#r=((2*r-e)*t-e*r)/a,this.#s=(c*n+(o-i)*t+e*i-o*r)/(n+(2*r-4*e)*t+i-4*e*r+4*o),this.#n=-c/a}y(t){return t<=0?Number.NEGATIVE_INFINITY:t>=1?this.#e:this.#r-this.#s/(t+this.#n)}x(t){return this.#t>=t?0:this.#e<=t?1:-this.#s/(t-this.#r)-this.#n}clamp(t){return Math.min(this.#e,t)}floating(){return!0}},te;(function(s){s.linear=(i,o)=>new Ht(i,o),s.linearInteger=(i,o)=>new Xt(i,o),s.exponential=(i,o)=>new Qt(i,o),s.values=i=>new Jt(i),s.decibel=(i,o,a)=>new Zt(i,o,a);let t=new class{x(i){return i?1:0}y(i){return i>=.5}clamp(i){return i}floating(){return!1}},e=s.linear(0,1),r=s.linear(-1,1);s.bool=t;let n=s.decibel(-72,-12,0);s.unipolar=()=>e,s.bipolar=()=>r,s.DefaultDecibel=n})(te||(te={}));var ee;(function(s){s.percent=({bipolar:i,fractionDigits:o}={})=>new t("%",o,!1,i),s.numeric=({unit:i,fractionDigits:o,unitPrefix:a,bipolar:c}={})=>new t(i,o,a,c),s.indices=(i,o)=>new class{x(a){return{unit:i,value:o[a]}}y(a){let c=o.indexOf(a);return c===-1?{type:"unknown",value:"\u{1F4A3}"}:{type:"explicit",value:c}}},s.values=(i,o,a)=>new class{x(c){return{unit:i,value:a.at(o.indexOf(c))??"N/A"}}y(c){let h=a.indexOf(c);return h===-1?{type:"unknown",value:"\u{1F4A3}"}:{type:"explicit",value:o[h]}}},s.bool=new class{y(i){switch(i.trim()){case"on":case"yes":case"true":return{type:"explicit",value:!0};default:return{type:"explicit",value:!1}}}x(i){return{value:String(i),unit:""}}};class t{#t;#e;#r;#s;constructor(o,a,c,h){this.#t=o??"",this.#e=a??0,this.#r=c??!1,this.#s=h??!1}y(o){let a=o.trim(),c=parseFloat(a);if(isNaN(c))return{type:"unknown",value:a};if(this.#t==="%")return{type:"explicit",value:c/100};if(a.endsWith("%"))return{type:"unitValue",value:this.#s?y(c/200+.5,0,1):y(c/100,0,1)};{a.endsWith(this.#t)&&this.#t.length>0&&(a=a.slice(0,-this.#t.length));let f=/(\d+)(\D+)/.exec(a)?.at(2)?.at(0);if(d(f)){let x=e.indexOf(f);if(x>-1)return{type:"explicit",value:c*Math.pow(10,(x-4)*3)}}return{type:"explicit",value:c}}}x(o){if(Number.isNaN(o))return{value:"\u{1F4A3}",unit:this.#t};if(Number.isFinite(o)){if(this.#t==="%")return this.#s?{value:(o*200-100).toFixed(this.#e),unit:this.#t}:{value:(o*100).toFixed(this.#e),unit:this.#t};if(this.#r){let{value:a,prefix:c}=n(o);return{value:a.toFixed(this.#e),unit:`${c}${this.#t}`}}else return{value:o.toFixed(this.#e),unit:this.#t}}else return{value:o===Number.POSITIVE_INFINITY?"\u221E":"-\u221E",unit:this.#t}}}let e=Object.freeze(["p","n","\u03BC","m","","k","M","G","T"]),r=i=>Math.log(i)/Math.log(9.999999999999998),n=i=>{let o=Math.floor(r(i)/3),a=e[o+4];return d(a)?{value:i*Math.pow(10,o*-3),prefix:a}:{value:i,prefix:""}};s.decible=s.numeric({unit:"db",fractionDigits:1}),s.panning=s.percent({unit:"%",fractionDigits:0})})(ee||(ee={}));var Fe;(function(s){s.alwaysTrue=()=>!0,s.alwaysFalse=()=>!1,s.definedPredicate=t=>t!=null})(Fe||(Fe={}));var Oe;(function(s){s.split=(t,e)=>{let r=new Float32Array(e);return m.create(n=>i=>{r[n]=i,t(r.reduce((o,a)=>o+a,0)/e)},e)}})(Oe||(Oe={}));var $e;(function(s){s.create=(t=252854082)=>new re(t),s.monotoneAscending=(t,e=128,r=s.create())=>{let n=t.length;if(n<2)return u("Array must have at least 2 elements");let i=0;for(let a=1;a<n;a++){let c=Math.floor(r.uniform()*(1+e))+1;t[a]=c,i+=c}let o=0;t[0]=0;for(let a=1;a<n;a++)o+=t[a],t[a]=o/i;return t}})($e||($e={}));var re=class{#t=0;constructor(t){this.setSeed(t)}setSeed(t){this.#t=t&4294967295}nextDouble(t,e){return t+this.uniform()*(e-t)}nextInt(t,e){return t+Math.floor(this.uniform()*(e-t))}nextElement(t){return t[Math.floor(this.uniform()*t.length)]}nextBoolean(){return this.uniform()<.5}uniform(){let t=this.#t+=1831565813;return t=Math.imul(t^t>>>15,t|1),t^=t+Math.imul(t^t>>>7,t|61),((t^t>>>14)>>>0)/4294967296}};var Re;(function(s){class t{}s.createBuilder=r=>{let n=i=>{let o=i instanceof Array?[]:{};return Object.entries(i).forEach(([a,c])=>{c instanceof t?o[a]=c.initialValue():typeof c=="object"&&(o[a]=n(c))}),o};return()=>new e(r,Object.seal(n(r)))},s.bool=new class extends t{read(r){return r.readByte()===1}write(r,n){r.writeByte(n?1:0)}initialValue(){return!1}},s.int8=new class extends t{read(r){return r.readByte()}write(r,n){r.writeByte(n)}initialValue(){return 0}},s.int16=new class extends t{read(r){return r.readShort()}write(r,n){r.writeShort(n)}initialValue(){return 0}},s.int32=new class extends t{read(r){return r.readInt()}write(r,n){r.writeInt(n)}initialValue(){return 0}},s.float=new class extends t{read(r){return r.readFloat()}write(r,n){r.writeFloat(n)}initialValue(){return 0}},s.double=new class extends t{read(r){return r.readDouble()}write(r,n){r.writeDouble(n)}initialValue(){return 0}},s.int64=new class extends t{read(r){return r.readLong()}write(r,n){r.writeLong(n)}initialValue(){return 0n}},s.floats=r=>new class extends t{read(n,i){for(let o=0;o<i.length;o++)i[o]=n.readFloat();return i}write(n,i){for(let o=0;o<i.length;o++)n.writeFloat(i[o])}initialValue(){return new Float32Array(r)}},s.doubles=r=>new class extends t{read(n,i){for(let o=0;o<i.length;o++)i[o]=n.readDouble();return i}write(n,i){for(let o=0;o<i.length;o++)n.writeDouble(i[o])}initialValue(){return new Float64Array(r)}};class e{#t;#e;#r;constructor(n,i){this.#t=n,this.#e=i,this.#r=this.#s()}get object(){return this.#e}get bytesTotal(){return this.#r}read(n){let i=(o,a)=>{Object.entries(o).forEach(([c,h])=>{let l=a;h instanceof t?l[c]=h.read(n,l[c]):typeof h=="object"&&i(h,l[c])})};i(this.#t,this.#e)}write(n){let i=(o,a)=>{Object.entries(o).forEach(([c,h])=>{let l=a;h instanceof t?h.write(n,l[c]):typeof h=="object"&&i(h,l[c])})};i(this.#t,this.#e)}#s(){let n=new st;return this.write(n),n.count}}})(Re||(Re={}));var ct=class{#t;#e;#r;constructor(t,e){this.#t=t,this.#e=e,this.#r=[]}add(t,e=!1){let r=this.#t(t),n=A.leftMostMapped(this.#r,r,this.#e,this.#t),i=this.#r[n];return d(i)&&this.#e(this.#t(i),r)===0?e?(this.#r.splice(n,1,t),!0):!1:(this.#r.splice(n,0,t),!0)}getOrCreate(t,e){let r=A.leftMostMapped(this.#r,t,this.#e,this.#t),n=this.#r[r];if(d(n)&&this.#e(this.#t(n),t)===0)return n;let i=e(t);return this.#r.splice(r,0,i),i}addMany(t){for(let e of t)this.#r.push(e);try{return this.#r.sort((e,r)=>{let n=this.#e(this.#t(e),this.#t(r));if(n===0)throw"cancel";return n}),!0}catch(e){if(e==="cancel"){let r=new Map(this.entries());return this.#r.splice(0,this.#r.length,...r.values()),this.#r.sort((n,i)=>this.#e(this.#t(n),this.#t(i))),!1}return u(e)}}removeByValue(t){return this.removeByKey(this.#t(t))}removeByKey(t){let e=A.leftMostMapped(this.#r,t,this.#e,this.#t),r=this.#r[e];return d(r)&&this.#e(this.#t(r),t)===0?(this.#r.splice(e,1),r):u(`Could not remove ${t}`)}removeRange(t,e){this.#r.splice(t,(e??this.#r.length)-t)}removeByPredicate(t){let e=0,r=this.#r.length;for(;--r>=0;)t(this.#r[r])&&(this.#r.splice(r,1),e++);return e}get(t){let e=this.#s(t);return d(e)?e:u(`Unknown key: ${t}`)}getOrThrow(t,e){let r=this.#s(t);if(d(r))return r;throw e()}opt(t){return p.wrap(this.#s(t))}getOrNull(t){return this.#s(t)??null}getByIndex(t){return this.#r[t]}hasKey(t){return d(this.#s(t))}hasValue(t){return d(this.#s(this.#t(t)))}size(){return this.#r.length}isEmpty(){return this.#r.length===0}forEach(t){this.values().forEach(t)}values(){return this.#r}entries(){return this.#r.map(t=>[this.#t(t),t])}clear(){m.clear(this.#r)}[Symbol.iterator](){return this.#r.values()}#s(t){let e=A.leftMostMapped(this.#r,t,this.#e,this.#t),r=this.#r[e];return d(r)&&this.#e(this.#t(r),t)===0?r:void 0}};var Ve;(function(s){s.hyphenToCamelCase=t=>t.replace(/-([a-z])/g,e=>e[1].toUpperCase()),s.fallback=(t,e)=>d(t)&&t.length>0?t:e,s.endsWithDigit=t=>/\d$/.test(t),s.nonEmpty=(t,e)=>d(t)&&t.trim().length>0?t:e,s.toArrayBuffer=t=>{let e=new ArrayBuffer(t.length),r=new Uint8Array(e);for(let n=0;n<t.length;n++)r[n]=t.charCodeAt(n);return e},s.getUniqueName=(t,e)=>{let r=new Set(t),n=e,i=1;if(r.has(e)||r.has(`${e} 1`))i=2;else return e;for(;r.has(n=`${e} ${i++}`););return n}})(Ve||(Ve={}));var J=class s{static POSITIVE_INFINITY=new s(Number.POSITIVE_INFINITY);static millis=t=>new s(t);static seconds=t=>new s(t*s.#t);static minutes=t=>new s(t*s.#e);static hours=t=>new s(t*s.#r);static days=t=>new s(t*s.#s);static#t=1e3;static#e=6e4;static#r=36e5;static#s=864e5;#n;constructor(t){this.#n=t}millis(){return this.#n}absSeconds(){return Math.abs(this.#n)/s.#t}absMinutes(){return Math.abs(this.#n)/s.#e}absHours(){return Math.abs(this.#n)/s.#r}absDays(){return Math.abs(this.#n)/s.#s}split(){return{d:Math.floor(this.absDays()),h:Math.floor(this.absHours())%24,m:Math.floor(this.absMinutes())%60,s:Math.floor(this.absSeconds())%60}}isNow(){return this.#n===0}isPast(){return this.#n<0}isFuture(){return this.#n>0}toUnitString(){let t,e,r=Math.floor(Math.abs(this.#n)/1e3),n=Math.floor(r/60),i=Math.floor(n/60),o=Math.floor(i/24);return r<60?(t=r,e="second"):n<60?(t=n,e="minute"):i<24?(t=i,e="hour"):(t=o,e="day"),new Intl.RelativeTimeFormat("en",{numeric:"auto",style:"long"}).format(t*Math.sign(this.#n),e)}toString(){if(isNaN(this.#n))return"NaN";if(!isFinite(this.#n))return"\u221E";let{d:t,h:e,m:r,s:n}=this.split();return t>0?[s.#i("d",t),s.#i("h",e),s.#i("m",r),s.#i("s",n)].join(", "):e>0?[s.#i("h",e),s.#i("m",r),s.#i("s",n)].join(", "):r>0?[s.#i("m",r),s.#i("s",n)].join(", "):n>0?s.#i("s",n):"now"}static#i=(t,e)=>{switch(t){case"d":return`${e} ${e<2?"day":"days"}`;case"h":return`${e} ${e<2?"hour":"hours"}`;case"m":return`${e} ${e<2?"minute":"minutes"}`;case"s":return`${e} ${e<2?"second":"seconds"}`;default:return D(t)}}};var Le;(function(s){let t;(function(e){e[e.READING=0]="READING",e[e.READ=1]="READ",e[e.WRITING=2]="WRITING",e[e.WRITTEN=3]="WRITTEN"})(t||(t={})),s.writer=(e,r,n)=>{if(e.bytesTotal+1>r.byteLength)return u("Insufficient memory allocated.");let i=new Uint8Array(r),o=v.use(r,1);return Atomics.store(i,0,t.READ),{tryWrite:()=>Atomics.compareExchange(i,0,t.READ,t.WRITING)===t.WRITING?(n(e.object),o.position=0,e.write(o),Atomics.store(i,0,t.WRITTEN),!0):!1}},s.reader=(e,r)=>{let n=new SharedArrayBuffer(e.bytesTotal+1),i=new Uint8Array(n),o=new B(n,1);return{buffer:n,tryRead:()=>Atomics.compareExchange(i,0,t.WRITTEN,t.READING)===t.READING?(o.position=0,e.read(o),r(e.object),Atomics.store(i,0,t.READ),!0):!1}}})(Le||(Le={}));var b;(function(s){s.length=16,s.generate=()=>t(crypto.getRandomValues(new Uint8Array(s.length))),s.sha256=async e=>crypto.subtle.digest("SHA-256",e).then(r=>t(new Uint8Array(r.slice(0,s.length)))),s.validate=e=>s.parse(s.toString(e)),s.fromDataInput=e=>{let r=new Uint8Array(s.length);return e.readBytes(new Int8Array(r.buffer)),r},s.toDataOutput=(e,r)=>e.writeBytes(new Int8Array(r.buffer)),s.toString=e=>{let r=m.create(n=>(n+256).toString(16).substring(1),256);return r[e[0]]+r[e[1]]+r[e[2]]+r[e[3]]+"-"+r[e[4]]+r[e[5]]+"-"+r[e[6]]+r[e[7]]+"-"+r[e[8]]+r[e[9]]+"-"+r[e[10]]+r[e[11]]+r[e[12]]+r[e[13]]+r[e[14]]+r[e[15]]},s.parse=e=>{let r=e.replace(/-/g,"").toLowerCase();if(r.length!==32)return u("Invalid UUID format");let n=new Uint8Array(s.length);for(let i=0,o=0;i<32;i+=2,o++)n[o]=parseInt(r.slice(i,i+2),16);return n},s.Comparator=(e,r)=>{if(e.length!==s.length||r.length!==s.length)return u("Unexpected array length for uuid(v4)");for(let n=0;n<s.length;n++){let i=e[n]-r[n];if(i!==0)return i}return 0},s.equals=(e,r)=>s.Comparator(e,r)===0,s.newSet=e=>new ct(e,s.Comparator),s.Lowest=s.parse("00000000-0000-4000-8000-000000000000"),s.Highest=s.parse("FFFFFFFF-FFFF-4FFF-BFFF-FFFFFFFFFFFF"),s.fromInt=e=>{let r=new Uint8Array(s.Lowest),n=new Uint8Array(new Uint32Array([e]).buffer);for(let i=0;i<4;i++)r[i]=n[i];return r};let t=e=>(g(e.length===s.length,"UUID must be 16 bytes long"),e[6]=e[6]&15|64,e[8]=e[8]&63|128,e)})(b||(b={}));var Pe;(function(s){s.create=i=>d(i)?d(i?.snap)?s.snap(i?.trackLength,i?.snap?.snapLength,Array.isArray(i?.snap?.threshold)?i?.snap.threshold:[i?.snap?.threshold]):s.identity(i?.trackLength):s.identity(),s.snap=(i=t,o=e,a)=>new n(i,o/i,a),s.identity=(i=t)=>new r(i);let t=128,e=24;class r{length;#t=NaN;#e=NaN;#r=1;constructor(o){this.length=o}begin(o){this.#e=this.#t=o}moveBy(o){g(!isNaN(this.#e),()=>"value has never been set"),this.#t+=o/this.length*this.#r,this.#e=y(this.#t,0,1)}ratio(o){this.#r=o}value(){return g(!isNaN(this.#e),()=>"value has never been set"),this.#e}disable(){}enable(){}}class n{#t;#e;#r;#s;#n=NaN;#i=NaN;#a=1;#o=!0;constructor(o,a,c){g(a>0,()=>`margin(${a}) must be greater then 0`),g(m.isSorted(c),()=>"thresholds are not sorted"),g(a<o,()=>`margin(${a}) must be lower then length(${o})`),this.#t=o,this.#e=a,this.#r=c,this.#s=c.map((h,l)=>h+l*this.#e)}begin(o){this.#o&&(this.#n=this.valueToX(o)),this.#i=o}moveBy(o){g(!isNaN(this.#i),()=>"value has never been set"),this.#n+=o/this.#t*this.#a,this.#i=this.#o?this.xToValue(this.#n):y(this.#n,0,1)}ratio(o){this.#a=o}value(){return g(!isNaN(this.#i),()=>"value has never been set"),this.#i}disable(){this.#o&&(this.#o=!1,this.#n=this.xToValue(this.#n))}enable(){this.#o||(this.#o=!0,this.#n=this.valueToX(this.#n))}valueToX(o){let a=A.rightMost(this.#r,o,jt);if(a<0)return o;{let c=this.#s[a],h=this.#r[a];return o===h?c+this.#e/2:c+this.#e+(o-h)}}xToValue(o){let a=y(o,0,1+this.#e*this.#r.length),c=A.rightMost(this.#s,a,jt);if(c<0)return a;{let h=this.#s[c],l=this.#r[c];return a>h+this.#e?a-(h+this.#e)+l:l}}get margin(){return this.#e}}})(Pe||(Pe={}));var It=Symbol.for("@openDAW/lib-std");globalThis[It]?console.debug(`%c${It.description}%c is already available in ${globalThis.constructor.name}.`,"color: hsl(10, 83%, 60%)","color: inherit"):(globalThis[It]=!0,console.debug(`%c${It.description}%c is now available in ${globalThis.constructor.name}.`,"color: hsl(200, 83%, 60%)","color: inherit"));var $;(function(s){s.sender=(r,n)=>n(new t(r)),s.executor=(r,n)=>new e(r,n);class t{#t;#e=new Map;#r;#s=0;constructor(n){this.#t=n,this.#r=n.subscribe(this.#n)}terminate(){this.#r.terminate()}dispatchAndForget=(n,...i)=>this.#t.send({type:"send",returnId:!1,func:n.name,args:Array.from(M.map(i,o=>({value:o})))});dispatchAndReturn=(n,...i)=>new Promise((o,a)=>{let c=M.reduce(i,(h,l,f)=>(typeof l=="function"&&h.push([f,l]),h),[]);this.#e.set(this.#s,{executorTuple:{resolve:o,reject:a},callbacks:new Map(c)}),this.#t.send({type:"send",returnId:this.#s,func:n.name,args:Array.from(M.map(i,(h,l)=>typeof h=="function"?{callback:l}:{value:h}))}),this.#s++});#n=n=>{let i=this.#e.get(n.returnId);d(i)?n.type==="resolve"?(i.executorTuple.resolve(n.resolve),this.#e.delete(n.returnId)):n.type==="reject"?(i.executorTuple.reject(n.reject),this.#e.delete(n.returnId)):n.type==="callback"&&i.callbacks?.get(n.funcAt).apply(this,n.args):u(`Promise has already been resolved. ${JSON.stringify(n)}`)}}class e{#t;#e;#r;constructor(n,i){this.#t=n,this.#e=i,this.#r=n.subscribe(this.#s)}terminate(){this.#r.terminate()}#s=n=>{g(n.type==="send",()=>"Message type must be 'send'");let i=Object.getPrototypeOf(this.#e)===Object.getPrototypeOf({})?this.#e:Object.getPrototypeOf(this.#e),o=w(i[n.func],`${n.func.toString()} does not exists on ${this.#e}`),a=n.returnId;if(a===!1)o.apply(this.#e,n.args.map(c=>"value"in c?c.value:u(`${n.func.toString()} has no promise.`)));else try{o.apply(this.#e,n.args.map(h=>"callback"in h?(...l)=>this.#a(a,h.callback,l):h.value)).then(h=>this.#n(a,h),h=>this.#i(a,h))}catch(c){this.#i(a,c)}};#n=(n,i)=>this.#t.send({type:"resolve",returnId:n,resolve:i});#i=(n,i)=>this.#t.send({type:"reject",returnId:n,reject:i});#a=(n,i,o)=>this.#t.send({type:"callback",returnId:n,funcAt:i,args:o})}s.Executor=e})($||($={}));var Ce;(function(s){s.ProgressArrayBuffer=t=>async e=>{if(!e.headers.has("Content-Length"))return console.debug("No Content-Length"),e.arrayBuffer();let r=parseInt(e.headers.get("Content-Length"));if(console.debug(`Content-Length: ${r}b`),isNaN(r)||r<4096)return e.arrayBuffer();t(0);let n=v.create(r),i=w(e.body,"response.body is empty").getReader();for(;;){let{done:o,value:a}=await i.read();if(o)break;a.forEach(c=>n.writeByte(c)),t(n.position/r)}return t(1),n.toArrayBuffer()}})(Ce||(Ce={}));var De;(function(s){s.debounce=(()=>{let t;return(e,r=1e3)=>{clearTimeout(t),t=setTimeout(e,r)}})(),s.scheduleInterval=(t,e,...r)=>{let n=setInterval(t,e,...r);return{terminate:()=>clearInterval(n)}},s.scheduleTimeout=(t,e,...r)=>{let n=setTimeout(t,e,...r);return{terminate:()=>clearTimeout(n)}}})(De||(De={}));var ke={for:s=>new se(s)},se=class{#t;#e=new q;constructor(t){if(this.#t=t,d(t.onmessage)||d(t.onmessageerror))throw console.error(t),new Error(`${t} is already wrapped.`);t.onmessage=e=>this.#e.notify(e.data),t.onmessageerror=e=>{throw new Error(e.type)}}send(t){this.#t.postMessage(t)}channel(t){return new ne(this,t)}subscribe(t){return this.#e.subscribe(t)}terminate(){this.#e.terminate(),this.#t.onmessage=null,this.#t.onmessageerror=null}},ne=class s{#t;#e;#r=new q;#s;constructor(t,e){this.#t=t,this.#e=e,this.#s=t.subscribe(r=>{"message"in r&&"channel"in r&&r.channel===e&&this.#r.notify(r.message)})}send(t){this.#t.send({channel:this.#e,message:t})}channel(t){return new s(this,t)}subscribe(t){return this.#r.subscribe(t)}terminate(){this.#s.terminate(),this.#r.terminate()}};var ie=class{maxRetry;timeSpan;#t=0;constructor(t,e){this.maxRetry=t,this.timeSpan=e}retry(t,e){return++this.#t===this.maxRetry?!1:(console.debug(`${t} > will retry in ${this.timeSpan.toString()}`),setTimeout(e,this.timeSpan.millis()),!0)}},R;(function(s){class t{value;status="resolved";constructor(o){this.value=o}error=Kt("Cannot access error when promise is resolved")}class e{error;status="rejected";constructor(o){this.error=o}value=Kt("Cannot access value when promise is rejected")}s.makeAbortable=async(i,o)=>{let a=!0;return i.own(N.create(()=>a=!1)),new Promise((c,h)=>o.then(l=>{a&&c(l)},l=>{a&&h(l)}))},s.tryCatch=i=>i.then(o=>new t(o),o=>new e(o)),s.retry=(i,o=new ie(3,J.seconds(3)))=>i().catch(a=>new Promise((c,h)=>{let l=f=>{o.retry(f,()=>i().then(x=>c(x),l))||h(f)};l(a)})),s.fail=(i,o)=>{let a=()=>new Promise((c,h)=>setTimeout(()=>h("fails first"),i.millis()));return()=>{let c=a();return a=o,c}},s.timeout=(i,o,a)=>new Promise((c,h)=>{let l=!0,f=setTimeout(()=>{l=!1,h(new Error(a??"timeout"))},o.millis());i.then(x=>{l&&c(x)},x=>{l&&h(x)}).finally(()=>clearTimeout(f))}),s.sequential=i=>{let o=Promise.resolve(null);return a=>o=o.then(()=>i(a))};class r{max;#t;#e=0;constructor(o=1){this.max=o,this.#t=[]}async add(o){if(this.#e<this.max)return this.#e++,o().finally(()=>this.#r());{let a=Promise.withResolvers();return this.#t.push([o,a]),a.promise.finally(()=>this.#r())}}#r(){if(g(this.#e>0,"Internal Error in Promises.Limit"),--this.#e<this.max&&this.#t.length>0){let[o,{resolve:a,reject:c}]=this.#t.shift();this.#e++,o().then(a,c)}}}s.Limit=r;class n{#t;#e;#r;#s=p.None;constructor(o,a,c){this.#t=o,this.#e=a,this.#r=c}update(o){this.#s=p.wrap(o),o.then(a=>{this.#s.contains(o)&&this.#t(a)}).catch(a=>{this.#s.contains(o)&&this.#e(a)}).finally(()=>{this.#s.contains(o)&&(this.terminate(),F(this.#r))})}terminate(){this.#s=p.None}}s.Latest=n})(R||(R={}));var _e;(function(s){let t=new R.Limit(4);s.limitFetch=(e,r)=>t.add(()=>fetch(e,r))})(_e||(_e={}));var Ue=(s="debug")=>{let t=performance.now();return{lab:e=>console[s].call(console,`${e} in ${(performance.now()-t).toFixed(1)}ms`)}};var Ke;(function(s){s.startEstimator=()=>{let t=performance.now();return e=>{if(e===0)return J.POSITIVE_INFINITY;let r=performance.now()-t;return J.millis(r/e-r)}}})(Ke||(Ke={}));var ze;(function(s){s.frame=()=>new Promise(t=>requestAnimationFrame(()=>t())),s.frames=t=>new Promise(e=>{let r=t,n=()=>{--r<=0?e():requestAnimationFrame(n)};requestAnimationFrame(n)}),s.timeSpan=(t,...e)=>new Promise(r=>setTimeout(r,t.millis(),...e)),s.event=(t,e)=>new Promise(r=>t.addEventListener(e,r,{once:!0})),s.observable=t=>new Promise(e=>{let r=t.subscribe(()=>{r.terminate(),e()})}),s.complete=t=>new Promise((e,r)=>{let n=setInterval(()=>{let{status:i,value:o,error:a}=pe(()=>t.next());if(i==="success"){let{done:c,value:h}=o;c&&(clearInterval(n),e(h))}else clearInterval(n),r(a)},0)})})(ze||(ze={}));var vt=Symbol.for("@openDAW/lib-runtime");globalThis[vt]?console.debug(`%c${vt.description}%c is already available in ${globalThis.constructor.name}.`,"color: hsl(10, 83%, 60%)","color: inherit"):(globalThis[vt]=!0,console.debug(`%c${vt.description}%c is now available in ${globalThis.constructor.name}.`,"color: hsl(200, 83%, 60%)","color: inherit"));var E=class s{static newSet(t){return new ct(t,s.Comparator)}static compose=(t,...e)=>{let r=e.length===0?this.#t:new Int16Array(e);return g(r.every((n,i)=>n===e[i]),`fieldKeys (${r.join(",")}) only allows i16`),new s(t,r)};static decode(t){let e=t.split("/");return g(e.length>0,"Unable to parse Address"),s.compose(b.parse(e[0]),...e.slice(1).map(r=>parseInt(r)))}static reconstruct(t){return this.compose(t[0],...t[1])}static boxRange(t,e,r){let n=t.values(),i=A.leftMostMapped(n,e,b.Comparator,r),o=n.length;if(i<0||i>=o)return null;for(let a=i;a<o;a++)if(b.Comparator(r(n[a]),e)!==0)return i<a?[i,a]:null;return[i,o]}static Comparator=(t,e)=>{let r=b.Comparator(t.#e,e.#e);if(r!==0)return r;let n=Math.min(t.#r.length,e.#r.length);for(let i=0;i<n;i++){let o=t.#r[i]-e.#r[i];if(o!==0)return o}return t.#r.length-e.#r.length};static MinimalComparator=(t,e)=>{let r=b.Comparator(t.#e,e.#e);if(r!==0)return r;let n=Math.min(t.#r.length,e.#r.length);for(let i=0;i<n;i++){let o=t.#r[i]-e.#r[i];if(o!==0)return o}return 0};static LengthComparator=(t,e)=>{let r=b.Comparator(t.#e,e.#e);return r!==0?r:e.#r.length-t.#r.length};static#t=new Int16Array(0);#e;#r;constructor(t,e){this.#e=t,this.#r=e}get uuid(){return this.#e}get fieldKeys(){return this.#r}isBox(){return this.#r.length===0}isContent(){return!this.isBox()}equals(t){return s.Comparator(this,t)===0}compareTo(t){return s.Comparator(this,t)}append(t){return new s(this.#e,new Int16Array([...this.#r,t]))}startsWith(t){return b.Comparator(t.#e,this.#e)===0&&t.#r.length<=this.#r.length&&t.#r.every((e,r)=>this.#r[r]===e)}write(t){t.writeBytes(new Int8Array(this.#e.buffer)),t.writeByte(this.#r.length),this.#r.forEach(e=>t.writeShort(e))}decompose(){return[this.#e,this.#r]}toJSON(){return{uuid:Array.from(this.#e.values()),fields:Array.from(this.#r.values())}}toArrayBuffer(){let t=new Uint8Array(b.length+this.#r.length);return t.set(this.#e,0),t.set(this.#r,b.length),t.buffer}toString(){return[b.toString(this.#e),...this.#r].join("/")}static read(t){let e=b.fromDataInput(t),r=t.readByte();return s.compose(e,...m.create(()=>t.readShort(),r))}},Z;(function(s){s.AddressReader=t=>t.address,s.Comparator=({address:t},{address:e})=>E.Comparator(t,e),s.equals=(t,e)=>{let[r,n]=A.rangeMapped(e,t,E.Comparator,s.AddressReader);return e.slice(r,n+1)},s.startsWith=(t,e)=>{let[r,n]=A.rangeMapped(e,t,E.MinimalComparator,s.AddressReader);return e.slice(r,n+1).filter(i=>i.address.startsWith(t))},s.endsWith=(t,e)=>{let r=A.leftMostMapped(e,t,E.LengthComparator,s.AddressReader),n=A.rightMostMapped(e,t,E.MinimalComparator,s.AddressReader);return e.slice(r,n+1).filter(i=>t.startsWith(i.address))}})(Z||(Z={}));var _=class s{static validate(t,e){return t.address.equals(e.address)?p.wrap(`PointerField cannot point to itself: ${t}`):e.pointerRules.accepts.some(r=>r===t.pointerType)?p.None:(console.warn(e.pointerRules),p.wrap(`${t.toString()} does not satisfy any of the allowed types (${e.pointerRules}).`))}#t;#e;#r;#s=p.None;constructor(t){this.#t=t,this.#e=new at,this.#r=new at}subscribeImmediate(t,...e){return this.#n(this.#e,t,e)}subscribeTransactual(t,...e){return this.#n(this.#r,t,e)}catchupAndSubscribeTransactual(t,...e){let r=E.newSet(n=>n.address);return r.addMany(this.filter(...e)),r.forEach(n=>t.onAdd(n)),this.subscribeTransactual({onAdd:n=>{r.add(n)&&t.onAdd(n)},onRemove:n=>{r.removeByKey(n.address),t.onRemove(n)}},...e)}filter(...t){return t.length===0?this.incoming():M.filter(this.incoming().values(),e=>t.some(r=>r===e.pointerType))}size(){return this.incoming().length}isEmpty(){return this.size()===0}nonEmpty(){return this.size()>0}contains(t){return this.incoming().some(e=>t.address.equals(e.address))}incoming(){return this.#t.graph.edges().incomingEdgesOf(this.#t)}onAdded(t){let e=s.validate(t,this.#t);if(e.nonEmpty())return u(e.unwrap());this.#s.isEmpty()?(this.#t.graph.subscribeEndTransaction(this.#i),this.#s=p.wrap([{type:"add",pointerField:t}])):this.#s.unwrap().push({type:"add",pointerField:t}),this.#e.proxy.onAdd(t)}onRemoved(t){this.#s.isEmpty()?(this.#t.graph.subscribeEndTransaction(this.#i),this.#s=p.wrap([{type:"remove",pointerField:t}])):this.#s.unwrap().push({type:"remove",pointerField:t}),this.#e.proxy.onRemove(t)}toString(){return`{Pointers ${this.#t.address}, pointers: ${this.incoming().values().map(t=>t.toString())}}`}#n(t,e,r){return t.subscribe({onAdd:n=>{(r.length===0||r.some(i=>i===n.pointerType))&&e.onAdd(n)},onRemove:n=>{(r.length===0||r.some(i=>i===n.pointerType))&&e.onRemove(n)}})}#i=()=>{if(this.#t.isAttached()){let t=this.#s.unwrap("Callback without ChangeLog");t.forEach(({type:e,pointerField:r})=>{e==="add"?this.#r.proxy.onAdd(r):e==="remove"?this.#r.proxy.onRemove(r):u(`Unknown type: ${e}`)}),t.length=0}this.#s=p.None}};var oe=function(s,t,e,r){var n=arguments.length,i=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(s,t,e,r);else for(var a=s.length-1;a>=0;a--)(o=s[a])&&(i=(n<3?o(i):n>3?o(t,e,i):o(t,e))||i);return n>3&&i&&Object.defineProperty(t,e,i),i},ht=function(s,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(s,t)},V=class s{static hook(t){return new s(t)}#t;#e;#r;#s;constructor({parent:t,fieldKey:e,fieldName:r,pointerRules:n}){this.#t=t,this.#e=e,this.#r=r,this.#s=n,n.mandatory&&this.graph.edges().watchVertex(this)}accept(t){return F(t.visitField,this)}get box(){return this.#t.box}get graph(){return this.#t.graph}get parent(){return this.#t}get fieldKey(){return this.#e}get fieldName(){return this.#r}get pointerRules(){return this.#s}get pointerHub(){return new _(this)}get address(){return this.#t.address.append(this.#e)}get debugPath(){return`${this.box.name}:${this.box.mapFields(t=>t.fieldName,...this.address.fieldKeys).join("/")}`}isBox(){return!1}isField(){return!0}isAttached(){return this.graph.findBox(this.address.uuid).nonEmpty()}fields(){return M.empty()}getField(t){return u()}optField(t){return p.None}read(t){}write(t){}disconnect(){if(this.pointerHub.isEmpty())return;let t=this.pointerHub.incoming();t.forEach(e=>{e.defer(),(e.mandatory||this.pointerRules.mandatory&&t.length===1)&&e.box.delete()})}toString(){return`{${this.box.constructor.name}:${this.constructor.name} (${this.fieldName}) ${this.address.toString()}`}};oe([nt,ht("design:type",_),ht("design:paramtypes",[])],V.prototype,"pointerHub",null);oe([nt,ht("design:type",E),ht("design:paramtypes",[])],V.prototype,"address",null);oe([nt,ht("design:type",String),ht("design:paramtypes",[])],V.prototype,"debugPath",null);var cr=Object.freeze({mandatory:!1,accepts:[]});var lt;(function(s){s.writeFields=(e,r)=>{let n=Object.entries(r);e.writeInt(1179403347),e.writeShort(n.length),n.forEach(([i,o])=>{let a=v.create();o.write(a);let c=new Int8Array(a.toArrayBuffer());e.writeShort(Number(i)),e.writeInt(c.length),e.writeBytes(c)})},s.readFields=(e,r)=>{g(e.readInt()===1179403347,"Serializer header is corrupt");let n=e.readShort();for(let i=0;i<n;i++){let o=e.readShort(),a=e.readInt(),c=new Int8Array(a);e.readBytes(c),r[o]?.read(new B(c.buffer))}}})(lt||(lt={}));var hr=function(s,t,e,r){var n=arguments.length,i=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(s,t,e,r);else for(var a=s.length-1;a>=0;a--)(o=s[a])&&(i=(n<3?o(i):n>3?o(t,e,i):o(t,e))||i);return n>3&&i&&Object.defineProperty(t,e,i),i},qe=function(s,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(s,t)},ae=class s{static DEBUG_DELETION=!1;static Index=0;#t;#e;#r;#s;#n;#i=s.Index++;constructor({uuid:t,graph:e,name:r,pointerRules:n}){this.#t=E.compose(t),this.#e=e,this.#r=r,this.#s=n,this.#n=this.initializeFields(),n.mandatory&&this.graph.edges().watchVertex(this)}fields(){return Object.values(this.#n)}getField(t){return w(this.#n[t])}optField(t){return p.wrap(this.#n[t])}subscribe(t,e){return this.graph.subscribeVertexUpdates(t,this.address,e)}get box(){return this}get name(){return this.#r}get graph(){return this.#e}get parent(){return this}get address(){return this.#t}get pointerRules(){return this.#s}get creationIndex(){return this.#i}get pointerHub(){return new _(this)}estimateMemory(){let t=new st;return this.write(t),t.count}isBox(){return!0}asBox(t){return de(this,t)}isField(){return!1}isAttached(){return this.#e.findBox(this.address.uuid).nonEmpty()}read(t){lt.readFields(t,this.#n)}write(t){lt.writeFields(t,this.#n)}serialize(){let t=v.create();return t.writeInt(this.#i),t.writeString(this.name),t.writeBytes(new Int8Array(this.address.uuid.buffer)),this.write(t),t.toArrayBuffer()}toArrayBuffer(){let t=v.create();return this.write(t),t.toArrayBuffer()}incomingEdges(){return this.graph.edges().incomingEdgesOf(this)}outgoingEdges(){return this.graph.edges().outgoingEdgesOf(this)}mapFields(t,...e){if(e.length===0)return m.empty();let r=this.getField(e[0]),n=[t(r)];for(let i=1;i<e.length;i++)r=r.getField(e[i]),n.push(t(r));return n}searchVertex(t){if(t.length===0)return p.wrap(this);let e=this.optField(t[0]);if(e.isEmpty())return p.None;for(let r=1;r<t.length;r++)if(e=e.unwrap().optField(t[r]),e.isEmpty())return p.None;return e}delete(){let{boxes:t,pointers:e}=this.graph.dependenciesOf(this);s.DEBUG_DELETION&&(console.debug(`Delete ${this.toString()}`),console.debug(" unplugs",[...e].map(r=>r.toString()).join(`
1
+ var d=s=>s!=null;var w=(s,t="asDefined failed")=>s??u(t);var de=(s,t)=>s instanceof t?s:u(`${s} is not instance of ${t}`);var rt=s=>s instanceof Function?s():s;var F=(s,...t)=>s?.apply(null,t),D=s=>{throw new Error(`Unhandled ${s}`)},u=s=>{throw s instanceof Error?s:new Error(s)},g=(s,t)=>s?void 0:u(rt(t));var Kt=s=>new Proxy({},{get(){return u(s)}});var pe=s=>{try{return{error:null,value:s(),status:"success"}}catch(t){return{error:t,value:null,status:"failure"}}};var zt=()=>{};var me=s=>{};var qt;(function(s){s[s.Ascending=1]="Ascending",s[s.Descending=-1]="Descending"})(qt||(qt={}));var m=class{static#t=Object.freeze(new Array(0));static empty=()=>this.#t;static clear=t=>{t.length=0};static replace=(t,e)=>{t.length=0,t.push(...e)};static consume=(t,e)=>{for(let r=0;r<t.length;)e(t[r])?t.splice(r,1):r++};static peekFirst=t=>t.at(0)??null;static peekLast=t=>t.at(-1)??null;static getFirst=(t,e)=>w(t.at(0),e);static getLast=(t,e)=>w(t.at(-1),e);static removeLast=(t,e)=>w(t.pop(),e);static create=(t,e)=>{let r=new Array(e);for(let n=0;n<e;n++)r[n]=t(n);return r};static equals=(t,e)=>{if(t.length!==e.length)return!1;for(let r=0;r<t.length;r++)if(t[r]!==e[r])return!1;return!0};static satisfy=(t,e)=>{if(t.length<2)return!0;let r=t[0];for(let n=1;n<t.length;n++)if(!e(r,t[n]))return!1;return!0};static remove=(t,e)=>{let r=t.indexOf(e);if(r===-1)return u(`${e} not found in ${t}`);t.splice(r,1)};static removeOpt=(t,e)=>{let r=t.indexOf(e);return r===-1?!1:(t.splice(r,1),!0)};static hasDuplicates=t=>new Set(t).size<t.length;static removeDuplicates=t=>{let e=0,r=new Set;for(let n of t)r.has(n)||(r.add(n),t[e++]=n);return t.length=e,t};static removeDuplicateKeys=(t,e)=>{let r=0,n=new Set;for(let i of t){let o=i[e];n.has(o)||(n.add(o),t[r++]=i)}return t.length=r,t};static*iterate(t){for(let e=0;e<t.length;e++)yield t[e]}static*iterateReverse(t){for(let e=t.length-1;e>=0;e--)yield t[e]}static*iterateStateFull(t){let e=t.length-1;for(let r=0;r<=e;r++)yield{value:t[r],isFirst:r===0,isLast:r===e}}static isSorted(t,e=qt.Ascending){if(t.length<2)return!0;let r=t[0];for(let n=1;n<t.length;n++){let i=t[n];if(Math.sign(r-i)===e)return!1;r=i}return!0}};var p;(function(s){s.wrap=e=>d(e)?new t(e):s.None,s.from=e=>s.wrap(e()),s.tryFrom=e=>{try{return s.wrap(e())}catch{return s.None}},s.execute=(e,...r)=>s.wrap(e?.apply(null,r)),s.async=e=>e.then(r=>s.wrap(r),()=>s.None);class t{#t;constructor(r){this.#t=w(r)}unwrap(){return this.#t}unwrapOrElse(r){return this.#t}unwrapOrNull(){return this.#t}unwrapOrUndefined(){return this.#t}contains(r){return r===this.#t}match(r){return r.some(this.#t)}ifSome(r){return r(this.#t)}isEmpty(){return!1}nonEmpty(){return!0}map(r){return s.wrap(r(this.#t))}mapOr(r,n){return r(this.#t)}flatMap(r){return r(this.#t)}equals(r){return this.unwrapOrNull()===r.unwrapOrNull()}assert(r){return this}toString(){return`{Option.Some(${this.#t})}`}get[Symbol.toStringTag](){return this.toString()}}s.Some=t,s.None=new class{unwrap=e=>u(d(e)?rt(e):"unwrap failed");unwrapOrElse=e=>rt(e);unwrapOrNull=()=>null;unwrapOrUndefined=()=>{};contains=e=>!1;match=e=>e.none();ifSome=e=>{};isEmpty=()=>!0;nonEmpty=()=>!1;map=e=>s.None;mapOr=(e,r)=>rt(r);flatMap=e=>s.None;equals=e=>e.isEmpty();assert=e=>u(rt(e)??"assert failed");toString=()=>"{Option.None}";get[Symbol.toStringTag](){return this.toString()}}})(p||(p={}));var ge;(function(s){s.async=t=>t.then(e=>s.ok(e),e=>s.err(e)),s.tryGet=t=>{try{return s.ok(t())}catch(e){return s.err(e)}},s.ok=t=>new class{value;constructor(e){this.value=e}asOption=()=>p.wrap(this.value);failureReason=()=>{throw new Error("Attempt was successful.")};isFailure=()=>!1;isSuccess=()=>!0;result=()=>this.value;map=e=>{try{return s.ok(e(this.value))}catch(r){return s.err(r)}};flatMap=e=>e(this.value);match=e=>e.ok(this.value);toVoid=()=>s.ok(void 0);failure=()=>{throw new Error("Attempt was successful.")};toString=()=>`{Success: ${this.value}`;get[Symbol.toStringTag](){return"Success"}}(t),s.Ok=new class{constructor(){}asOption=()=>p.None;failureReason=()=>{throw new Error("Attempt was successful.")};isFailure=()=>!1;isSuccess=()=>!0;result=()=>{};map=t=>s.ok(t());flatMap=t=>t();match=t=>t.ok();toVoid=()=>s.ok(void 0);failure=()=>{throw new Error("Attempt was successful.")};toString=()=>"{Success: Ok";get[Symbol.toStringTag](){return"Success"}},s.err=t=>new class{reason;constructor(e){this.reason=e}asOption=()=>p.None;failureReason=()=>this.reason;isFailure=()=>!0;isSuccess=()=>!1;result=()=>{throw new Error(`No result because '${this.reason}'`)};map=()=>this;flatMap=()=>this;match=e=>e.err(this.reason);toVoid=()=>s.err(this.reason);failure=()=>this;toString=()=>`{Failure: ${this.reason}`;get[Symbol.toStringTag](){return"Failure"}}(t)})(ge||(ge={}));var A;(function(s){s.exact=(t,e,r)=>{let n=0,i=t.length-1;for(;n<=i;){let o=n+i>>>1,a=r(t[o],e);if(a===0)return o;a<0?n=o+1:i=o-1}return-1},s.exactMapped=(t,e,r,n)=>{let i=0,o=t.length-1;for(;i<=o;){let a=i+o>>>1,c=r(n(t[a]),e);if(c===0)return a;c<0?i=a+1:o=a-1}return-1},s.leftMost=(t,e,r)=>{let n=0,i=t.length;for(;n<i;){let o=n+i>>>1;r(t[o],e)<0?n=o+1:i=o}return n},s.rightMost=(t,e,r)=>{let n=0,i=t.length;for(;n<i;){let o=n+i>>>1;r(t[o],e)<=0?n=o+1:i=o}return i-1},s.leftMostMapped=(t,e,r,n)=>{let i=0,o=t.length;for(;i<o;){let a=i+o>>>1;r(n(t[a]),e)<0?i=a+1:o=a}return i},s.rightMostMapped=(t,e,r,n)=>{let i=0,o=t.length;for(;i<o;){let a=i+o>>>1;r(n(t[a]),e)<=0?i=a+1:o=a}return o-1},s.rangeMapped=(t,e,r,n)=>[s.leftMostMapped(t,e,r,n),s.rightMostMapped(t,e,r,n)]})(A||(A={}));var Et;(function(s){s.parseCssRgbOrRgba=t=>{let e=t.match(/\(([^)]+)\)/)?.at(1)?.split(",")?.map(Number);if(d(e)&&e.every(r=>!isNaN(r))){if(e.length===3)return[e[0]/255,e[1]/255,e[2]/255,1];if(e.length===4)return[e[0]/255,e[1]/255,e[2]/255,e[3]]}throw new Error(`${t} is not proper formatted. Example: 'rgb(255, 255, 255)' or 'rgba(255, 255, 255, 1)'`)}})(Et||(Et={}));var jt=(s,t)=>s-t;var Br=Math.PI*2,Nr=Math.PI/2,Fr=Math.PI/4,Or=1/Math.sqrt(2),y=(s,t,e)=>Math.max(t,Math.min(s,e));var Wt=s=>Math.pow(2,Math.ceil(Math.log(s)/Math.log(2)));var ye;(function(s){s.valueAt=({slope:n,steps:i,y0:o,y1:a},c)=>s.normalizedAt(c/i,n)*(a-o)+o,s.normalizedAt=(n,i)=>{if(i>.499999&&i<.500001)return n;{let o=y(i,1e-15,.999999999999999);return o*o/(1-o*2)*(Math.pow((1-o)/o,2*n)-1)}},s.inverseAt=(n,i)=>{let o=y(i,1e-15,.999999999999999);return Math.log(n*(1-2*o)/(o*o)+1)/(2*Math.log((1-o)/o))},s.coefficients=n=>{let i=s.valueAt(n,1),a=(s.valueAt(n,2)-i)/(i-n.y0),c=i-a*n.y0;return{m:a,q:c}};function*e(n,i,o,a){let{m:c,q:h}=s.coefficients({slope:n,steps:i,y0:o,y1:a});for(let l=0,f=o;l<i;l++)yield f=c*f+h}s.walk=e;function*r(n,i){let o=1/i,a=s.normalizedAt(o,n),h=(s.normalizedAt(2*o,n)-a)/a;for(let l=0,f=0;l<i;l++)yield f=h*f+a}s.walkNormalized=r,s.byHalf=(n,i,o,a)=>({slope:s.slopeByHalf(i,o,a),steps:n,y0:i,y1:a}),s.slopeByHalf=(n,i,o)=>Math.abs(o-n)<1e-6?.5:(i-n)/(o-n)})(ye||(ye={}));var O=new DataView(new ArrayBuffer(8)),k;(function(s){s.MIN_VALUE=-2147483648,s.MAX_VALUE=2147483647,s.toByte=t=>(O.setInt8(0,t),O.getInt8(0)),s.toShort=t=>(O.setInt16(0,t),O.getInt16(0)),s.toInt=t=>(O.setInt32(0,t),O.getInt32(0))})(k||(k={}));var X;(function(s){let r=new ArrayBuffer(Float32Array.BYTES_PER_ELEMENT),n=new Float32Array(r),i=new Int32Array(r);s.floatToIntBits=o=>{let a=s.floatToRawIntBits(o);return(a&2139095040)===2139095040&&(a&8388607)!==0?2143289344:a},s.intBitsToFloat=o=>(i[0]=o,n[0]),s.floatToRawIntBits=o=>(n[0]=o,i[0]),s.toFloat32=o=>(O.setFloat32(0,o),O.getFloat32(0))})(X||(X={}));var z;(function(s){s.floatToIntBits=t=>{let e=X.floatToIntBits(t),r=e>>>16&32768,n=(e&2147483647)+4096;return n>=1199570944?(e&2147483647)>=1199570944?n<2139095040?r|31744:r|31744|(e&8388607)>>>13:r|31743:n>=947912704?r|n-939524096>>>13:n<855638016?r:(n=(e&2147483647)>>>23,r|(e&8388607|8388608)+(8388608>>>n-102)>>>126-n)},s.intBitsToFloat=t=>{let e=t&1023,r=t&31744;if(r===31744)r=261120;else if(r!==0){if(r+=114688,e===0&&r>115712)return X.intBitsToFloat((t&32768)<<16|r<<13|1023)}else if(e!==0){r=115712;do e<<=1,r-=1024;while((e&1024)===0);e&=1023}return X.intBitsToFloat((t&32768)<<16|(r|e)<<13)}})(z||(z={}));var Yt;(function(s){let t=9218868437227405312n,e=4503599627370495n,r=new ArrayBuffer(BigInt64Array.BYTES_PER_ELEMENT),n=new Float64Array(r),i=new BigInt64Array(r);s.float64ToLongBits=o=>{let a=s.float64ToRawLongBits(o);return(a&t)===t&&(a&e)!==0n?0x7ff8000000000000n:a},s.longBitsToFloat64=o=>(i[0]=o,n[0]),s.float64ToRawLongBits=o=>(n[0]=o,i[0]),s.clamp=o=>(O.setFloat64(0,o),O.getFloat64(0))})(Yt||(Yt={}));var M=class{static*empty(){}static one(t){return[t]}static count(t){let e=0;for(let r of t)e++;return e}static some(t,e){for(let r of t)if(e(r))return!0;return!1}static every(t,e){for(let r of t)if(!e(r))return!1;return!0}static reduce(t,e,r){let n=r,i=0;for(let o of t)n=e(n,o,i++);return n}static includes(t,e){for(let r of t)if(r===e)return!0;return!1}static forEach(t,e){for(let r of t)e(r)}static*map(t,e){let r=0;for(let n of t)yield e(n,r++)}static*take(t,e){let r=0;for(let n of t){if(r++>=e)return;yield n}}static filter(t,e){let r=[];for(let n of t)e(n)&&r.push(n);return r}static filterMap(t,e){let r=[];for(let n of t){let i=e(n);d(i)&&r.push(i)}return r}static reverse(t){let e=[];for(let r of t)e.push(r);return e.reverse()}static*pairWise(t){let e=t[Symbol.iterator](),{done:r,value:n}=e.next(),i=n;if(r!==!0)for(;;){let{done:o,value:a}=e.next();if(o===!0){yield[i,null];return}yield[i,a],i=a}}};var v=class s{static create(t=1024){return this.use(new ArrayBuffer(t))}static use(t,e=0){return new s(new DataView(t,e))}littleEndian=!1;#t;#e=0;constructor(t){this.#t=t}get remaining(){return this.#t.byteLength-this.#e}get position(){return this.#e}set position(t){t<0?u(`position(${t}) cannot be negative.`):t>this.#t.byteLength?u(`position(${t}) is outside range (${this.#t.byteLength}).`):this.#e=t}writeBoolean(t){this.writeByte(t?1:0)}writeByte(t){this.#r(1),this.#t.setInt8(this.#e++,t)}writeShort(t){this.#r(Int16Array.BYTES_PER_ELEMENT),this.#t.setInt16(this.#e,t,this.littleEndian),this.#e+=Int16Array.BYTES_PER_ELEMENT}writeInt(t){this.#r(Int32Array.BYTES_PER_ELEMENT),this.#t.setInt32(this.#e,t,this.littleEndian),this.#e+=Int32Array.BYTES_PER_ELEMENT}writeLong(t){this.#r(BigInt64Array.BYTES_PER_ELEMENT),this.#t.setBigInt64(this.#e,t,this.littleEndian),this.#e+=BigInt64Array.BYTES_PER_ELEMENT}writeFloat(t){this.#r(Float32Array.BYTES_PER_ELEMENT),this.#t.setFloat32(this.#e,t,this.littleEndian),this.#e+=Float32Array.BYTES_PER_ELEMENT}writeDouble(t){this.#r(Float64Array.BYTES_PER_ELEMENT),this.#t.setFloat64(this.#e,t,this.littleEndian),this.#e+=Float64Array.BYTES_PER_ELEMENT}writeBytes(t){this.#r(t.length);for(let e=0;e<t.length;++e)this.#t.setInt8(this.#e++,t[e])}writeString(t){let e=t.length;this.#r(Int32Array.BYTES_PER_ELEMENT+e*Int16Array.BYTES_PER_ELEMENT),this.writeInt(e);for(let r=0;r<e;r++)this.writeShort(t.charCodeAt(r))}toArrayBuffer(){return this.#t.buffer.slice(0,this.#e)}#r(t){let e=this.#t.byteLength;if(this.#e+t>e){let r=this.#t;this.#t=new DataView(new ArrayBuffer(Wt(e+t)));for(let n=0;n<this.#e;n++)this.#t.setInt8(n,r.getInt8(n))}}},st=class{#t=0;writeByte(t){this.#t++}writeShort(t){this.#t+=2}writeInt(t){this.#t+=4}writeLong(t){this.#t+=8}writeFloat(t){this.#t+=4}writeDouble(t){this.#t+=8}writeBoolean(t){this.#t++}writeBytes(t){this.#t+=t.length}writeString(t){this.#t+=t.length+4}get count(){return this.#t}};var B=class{littleEndian=!1;#t;#e=0;constructor(t,e=0){this.#t=new DataView(t,e)}get position(){return this.#e}set position(t){t<0?u(`position(${t}) cannot be negative.`):t>this.#t.byteLength?u(`position(${t}) is outside range (${this.#t.byteLength}).`):this.#e=t}readByte(){return this.#t.getInt8(this.#e++)}readShort(){let t=this.#t.getInt16(this.#e,this.littleEndian);return this.#e+=Int16Array.BYTES_PER_ELEMENT,t}readInt(){let t=this.#t.getInt32(this.#e,this.littleEndian);return this.#e+=Int32Array.BYTES_PER_ELEMENT,t}readLong(){let t=this.#t.getBigInt64(this.#e,this.littleEndian);return this.#e+=BigInt64Array.BYTES_PER_ELEMENT,t}readFloat(){let t=this.#t.getFloat32(this.#e,this.littleEndian);return this.#e+=Float32Array.BYTES_PER_ELEMENT,t}readDouble(){let t=this.#t.getFloat64(this.#e,this.littleEndian);return this.#e+=Float64Array.BYTES_PER_ELEMENT,t}readBoolean(){return this.readByte()===1}readBytes(t){for(let e=0;e<t.length;e++)t[e]=this.readByte()}readString(){let t=this.readInt(),e="";for(let r=0;r<t;r++)e+=String.fromCharCode(this.readShort());return e}available(t){return this.#e+t<=this.#t.byteLength}remaining(){return this.#t.byteLength-this.#e}skip(t){this.position+=t}};var ar=s=>d(s)?s.value!==void 0?"value":s.get!==void 0?"get":u(`Cannot resolve method key of ${s}`):u("Cannot resolve method key of undefined descriptor"),nt=(s,t,e)=>{if(!d(e))return function(i,o){if(o&&o.kind==="getter")return function(){let a=Object.getOwnPropertyDescriptor(Object.getPrototypeOf(this),t);if(!d(a?.get))return u(`Cannot find getter for property '${t}'`);let c=a.get.apply(this);return Object.defineProperty(this,t,{value:c,configurable:!1,writable:!1,enumerable:!1}),c}};let r=ar(e),n=w(e[r]);return{[r]:function(...i){if(i.length>0)return u("lazy accessory must not have any construction parameters");let o=n.apply(this);return Object.defineProperty(this,t,{value:r==="get"?o:()=>o,configurable:!1,writable:!1,enumerable:!1}),o}}};var we;(function(s){function*t(){}s.empty=t,s.next=r=>{let{value:n,done:i}=r.next();return i?null:n};function*e(...r){for(let n of r)for(let i of n)yield i}s.flatten=e})(we||(we={}));var it;(function(s){s[s.T=0]="T",s[s.R=1]="R",s[s.B=2]="B",s[s.L=3]="L"})(it||(it={}));var ot;(function(s){s[s.TL=0]="TL",s[s.TR=1]="TR",s[s.BR=2]="BR",s[s.BL=3]="BL"})(ot||(ot={}));var xe;(function(s){s.outerTangentPoints=(t,e)=>{let r=e.x-t.x,n=e.y-t.y,i=Math.atan2(n,r)+Math.acos((t.r-e.r)/Math.sqrt(r*r+n*n)),o=Math.cos(i),a=Math.sin(i);return[{x:t.x+t.r*o,y:t.y+t.r*a},{x:e.x+e.r*o,y:e.y+e.r*a}]}})(xe||(xe={}));var be;(function(s){s.zero=()=>({x:0,y:0}),s.create=(t,e)=>({x:t,y:e}),s.clone=t=>({...t}),s.floor=t=>({x:Math.floor(t.x),y:Math.floor(t.y)}),s.length=t=>Math.sqrt(t.x*t.x+t.y*t.y),s.distance=(t,e)=>Math.sqrt((e.x-t.x)**2+(e.y-t.y)**2),s.add=(t,e)=>({x:t.x+e.x,y:t.y+e.y}),s.subtract=(t,e)=>({x:t.x-e.x,y:t.y-e.y}),s.scaleBy=(t,e)=>({x:t.x*e,y:t.y*e}),s.scaleTo=(t,e)=>{let r=e/s.length(t);return{x:t.x*r,y:t.y*r}},s.fromClient=t=>({x:t.clientX,y:t.clientY})})(be||(be={}));var yt;(function(s){s.Empty=Object.freeze({x:0,y:0,width:0,height:0}),s.corners=t=>{let e=t.x,r=t.y,n=e+t.width,i=r+t.height;return[{x:e,y:r},{x:n,y:r},{x:n,y:i},{x:e,y:i}]},s.inflate=(t,e)=>({x:t.x-e,y:t.y-e,width:t.width+e*2,height:t.height+e*2}),s.contains=(t,e)=>{let r=e.x>=t.x&&e.y>=t.y,n=e.x+e.width<=t.x+t.width&&e.y+e.height<=t.y+t.height;return r&&n},s.isPointInside=(t,e)=>t.x>=e.x&&t.x<=e.x+e.width&&t.y>=e.y&&t.y<=e.y+e.height,s.intersect=(t,e)=>{let r=Math.max(t.x,e.x),n=Math.min(t.x+t.width,e.x+e.width),i=Math.min(t.y+t.height,e.y+e.height),o=Math.max(t.y,e.y);return n>r&&i>o},s.axis=(t,e)=>{switch(e){case it.T:return t.y;case it.R:return t.x+t.width;case it.B:return t.y+t.height;case it.L:return t.x;default:return D(e)}},s.corner=(t,e)=>{switch(e){case ot.TL:return{x:t.x,y:t.y};case ot.TR:return{x:t.x+t.width,y:t.y};case ot.BR:return{x:t.x+t.width,y:t.y+t.height};case ot.BL:return{x:t.x,y:t.y+t.height};default:return D(e)}},s.center=t=>({x:t.x+t.width*.5,y:t.y+t.height*.5}),s.isEmpty=t=>t.width===0||t.height===0,s.union=(t,e)=>{if(s.isEmpty(t))s.isEmpty(e)||(t.x=e.x,t.y=e.y,t.width=e.width,t.height=e.height);else if(!s.isEmpty(e)){let r=e.x,n=e.y,i=Math.min(t.x,r),o=Math.min(t.y,n);t.width=Math.max(t.x+t.width,r+e.width)-i,t.height=Math.max(t.y+t.height,n+e.height)-o,t.x=i,t.y=o}}})(yt||(yt={}));var Ee;(function(s){s.width=t=>t.xMax-t.xMin,s.height=t=>t.yMax-t.yMin,s.from=(t,e)=>{t.xMin=e.xMin,t.xMax=e.xMax,t.yMin=e.yMin,t.yMax=e.yMax},s.extend=(t,e)=>{t.xMin-=e,t.yMin-=e,t.xMax+=e,t.yMax+=e},s.padding=(t,[e,r,n,i])=>(t.xMin+=i,t.yMin+=e,t.xMax-=r,t.yMax-=n,t),s.intersectPoint=(t,e)=>t.xMin<=e.x&&e.x<t.xMax&&t.yMin<=e.y&&e.y<t.yMax,s.intersectThat=(t,e)=>e.xMin<t.xMax&&e.xMax>t.xMin&&e.yMin<t.yMax&&e.yMax>t.yMin,s.center=t=>({x:(t.xMin+t.xMax)*.5,y:(t.yMin+t.yMax)*.5})})(Ee||(Ee={}));var Ae;(function(s){s.Identity=Object.freeze([0,0,0,0])})(Ae||(Ae={}));var Ie;(function(s){s.intersects=(r,n,i,o,a,c,h,l)=>{let f=t(r,n,i,o,a,c),x=t(r,n,i,o,h,l);if((f|x)===0||(f&x)!==0)return!1;let P=e(a,c,h,l,r,i);return P!==e(a,c,h,l,n,i)||P!==e(a,c,h,l,n,o)||P!==e(a,c,h,l,r,o)};let t=(r,n,i,o,a,c)=>{let h=0;return a<=r?h|=1:a>=n&&(h|=2),c<=i?h|=8:c>=o&&(h|=4),h},e=(r,n,i,o,a,c)=>(i-r)*(c-n)-(a-r)*(o-n)>=0})(Ie||(Ie={}));var ve;(function(s){s.Identity={valueToAxis:t=>t,axisToValue:t=>t},s.toClamped=(t,e,r)=>({valueToAxis:n=>t.valueToAxis(y(n,e,r)),axisToValue:n=>y(t.axisToValue(n),e,r)}),s.createClamped=(t,e)=>({valueToAxis:r=>y(r,t,e),axisToValue:r=>y(r,t,e)})})(ve||(ve={}));var Se;(function(s){s.fromBuffers=async(...t)=>{let e=t.reduce((i,o)=>i+o.byteLength,0),r=new Uint8Array(e),n=0;for(let i of t)r.set(new Uint8Array(i),n),n+=i.byteLength;return await crypto.subtle.digest("SHA-256",r)},s.equals=(t,e)=>{g(t.byteLength===32,"First hash has invalid length"),g(e.byteLength===32,"Second hash has invalid length");let r=new Uint8Array(t),n=new Uint8Array(e);for(let i=0;i<32;i++)if(r[i]!==n[i])return!1;return!0},s.toString=t=>Array.from(new Uint8Array(t)).map(e=>e.toString(16).padStart(2,"0")).join("")})(Se||(Se={}));var Te;(function(s){s.intersect1D=(t,e,r,n)=>Math.max(t,r)<=Math.min(e,n)})(Te||(Te={}));var at=class{#t=new Set;#e;constructor(){this.#e=new Proxy({},{get:(t,e)=>(...r)=>this.#t.forEach(n=>Object.getPrototypeOf(n)===Object.getPrototypeOf({})?F(n[e],...r):n[e]?.apply(n,r))})}get proxy(){return this.#e}get size(){return this.#t.size}subscribe(t){return this.#t.add(t),{terminate:()=>this.#t.delete(t)}}forEach(t){this.#t.forEach(t)}terminate(){this.#t.clear()}};var Gt=class s{static#t=Object.freeze(new Set);static empty=()=>s.#t};var Me;(function(s){s.mergeNoOverlap=(t,e)=>{let r=new Set(Object.keys(t));for(let n of Object.keys(e))if(r.has(n))return u(`'${n}' is an overlapping key`);return{...t,...e}},s.include=(t,...e)=>e.reduce((r,n)=>(r[n]=t[n],r),{}),s.exclude=(t,...e)=>{let r=new Set(e);return Object.entries(t).reduce((n,[i,o])=>(r.has(i)||(n[i]=o),n),{})},s.overwrite=(t,e)=>Object.assign(t,e)})(Me||(Me={}));var N=Object.freeze({Empty:{terminate:zt},create:s=>({terminate:s}),many:(...s)=>({terminate:()=>{for(;s.length>0;)s.pop().terminate()}})}),Q=class s{#t=[];own(t){return this.#t.push(t),t}ownAll(...t){for(let e of t)this.#t.push(e)}spawn(){let t=new s;return t.own({terminate:()=>m.removeOpt(this.#t,t)}),this.own(t)}terminate(){for(;this.#t.length>0;)this.#t.pop().terminate()}};var q=class{static subscribeMany(t,...e){return N.many(...e.map(r=>r.subscribe(()=>t(r))))}#t=new Set;subscribe(t){return this.#t.add(t),{terminate:()=>this.#t.delete(t)}}isEmpty(){return this.#t.size===0}notify(t){this.#t.forEach(e=>e(t))}observers(){return this.#t}terminate(){this.#t.clear()}},Be;(function(s){s.make=t=>new class{getValue(){return t}subscribe(e){return N.Empty}catchupAndSubscribe(e){return e(this),N.Empty}}})(Be||(Be={}));var Ne;(function(s){s.False=new class{getValue(){return!1}setValue(t){}subscribe(t){return N.Empty}catchupAndSubscribe(t){return t(this),N.Empty}},s.inverseBoolean=t=>new class{getValue(){return!t.getValue()}setValue(e){t.setValue(!e)}subscribe(e){return t.subscribe(e)}catchupAndSubscribe(e){return e(this),this.subscribe(e)}}})(Ne||(Ne={}));var At=class{#t;#e=p.None;#r;constructor(t,e){this.#t=new q,this.#r=e?.guard(t)??t,this.#e=p.wrap(e)}setValue(t){this.#e.nonEmpty()&&(t=this.#e.unwrap().guard(t)),this.#r!==t&&(this.#r=t,this.#t.notify(this))}getValue(){return this.#r}subscribe(t){return this.#t.subscribe(t)}catchupAndSubscribe(t){return t(this),this.#t.subscribe(t)}terminate(){this.#t.terminate()}toString(){return`{DefaultObservableValue value: ${this.#r}`}};var Ht=class{#t;#e;#r;constructor(t,e){this.#t=t,this.#e=e,this.#r=e-t}x(t){return(this.clamp(t)-this.#t)/this.#r}y(t){return this.#t+y(t,0,1)*this.#r}clamp(t){return y(t,this.#t,this.#e)}floating(){return!0}},Xt=class{#t;#e;#r;constructor(t,e){this.#t=y(Math.round(t),k.MIN_VALUE,k.MAX_VALUE),this.#e=y(Math.round(e),k.MIN_VALUE,k.MAX_VALUE),this.#r=this.#e-this.#t}x(t){return(this.clamp(t)-this.#t)/this.#r}y(t){return this.#t+Math.round(y(t,0,1)*this.#r)}clamp(t){return y(Math.round(t),this.#t,this.#e)}floating(){return!1}},Qt=class{#t;#e;#r;constructor(t,e){this.#t=t,this.#e=e,this.#r=Math.log(e/t)}x(t){return Math.log(y(t,this.#t,this.#e)/this.#t)/this.#r}y(t){return this.#t*Math.exp(y(t,0,1)*this.#r)}clamp(t){return Math.min(this.#e,Math.max(this.#t,t))}floating(){return!0}},Jt=class{#t;constructor(t){this.#t=t}x(t){let e=this.#t.findIndex(r=>r===t);return e===-1?u(`Could not find index for ${t}`):e/(this.#t.length-1)}y(t){let e=Math.round(y(t,0,1)*(this.#t.length-1));return e>-1?w(this.#t.at(e),`Could not find value for ${t}`):u(`Index ${e} is out of box.`)}clamp(t){return t}floating(){return!1}},Zt=class{#t;#e;#r;#s;#n;constructor(t,e,r){this.#t=t,this.#e=r;let n=t*t,i=r*r,o=e*e,a=t+r-2*e,c=r-e;this.#r=((2*r-e)*t-e*r)/a,this.#s=(c*n+(o-i)*t+e*i-o*r)/(n+(2*r-4*e)*t+i-4*e*r+4*o),this.#n=-c/a}y(t){return t<=0?Number.NEGATIVE_INFINITY:t>=1?this.#e:this.#r-this.#s/(t+this.#n)}x(t){return this.#t>=t?0:this.#e<=t?1:-this.#s/(t-this.#r)-this.#n}clamp(t){return Math.min(this.#e,t)}floating(){return!0}},te;(function(s){s.linear=(i,o)=>new Ht(i,o),s.linearInteger=(i,o)=>new Xt(i,o),s.exponential=(i,o)=>new Qt(i,o),s.values=i=>new Jt(i),s.decibel=(i,o,a)=>new Zt(i,o,a);let t=new class{x(i){return i?1:0}y(i){return i>=.5}clamp(i){return i}floating(){return!1}},e=s.linear(0,1),r=s.linear(-1,1);s.bool=t;let n=s.decibel(-72,-12,0);s.unipolar=()=>e,s.bipolar=()=>r,s.DefaultDecibel=n})(te||(te={}));var ee;(function(s){s.percent=({bipolar:i,fractionDigits:o}={})=>new t("%",o,!1,i),s.numeric=({unit:i,fractionDigits:o,unitPrefix:a,bipolar:c}={})=>new t(i,o,a,c),s.indices=(i,o)=>new class{x(a){return{unit:i,value:o[a]}}y(a){let c=o.indexOf(a);return c===-1?{type:"unknown",value:"\u{1F4A3}"}:{type:"explicit",value:c}}},s.values=(i,o,a)=>new class{x(c){return{unit:i,value:a.at(o.indexOf(c))??"N/A"}}y(c){let h=a.indexOf(c);return h===-1?{type:"unknown",value:"\u{1F4A3}"}:{type:"explicit",value:o[h]}}},s.bool=new class{y(i){switch(i.trim()){case"on":case"yes":case"true":return{type:"explicit",value:!0};default:return{type:"explicit",value:!1}}}x(i){return{value:String(i),unit:""}}};class t{#t;#e;#r;#s;constructor(o,a,c,h){this.#t=o??"",this.#e=a??0,this.#r=c??!1,this.#s=h??!1}y(o){let a=o.trim(),c=parseFloat(a);if(isNaN(c))return{type:"unknown",value:a};if(this.#t==="%")return{type:"explicit",value:c/100};if(a.endsWith("%"))return{type:"unitValue",value:this.#s?y(c/200+.5,0,1):y(c/100,0,1)};{a.endsWith(this.#t)&&this.#t.length>0&&(a=a.slice(0,-this.#t.length));let f=/(\d+)(\D+)/.exec(a)?.at(2)?.at(0);if(d(f)){let x=e.indexOf(f);if(x>-1)return{type:"explicit",value:c*Math.pow(10,(x-4)*3)}}return{type:"explicit",value:c}}}x(o){if(Number.isNaN(o))return{value:"\u{1F4A3}",unit:this.#t};if(Number.isFinite(o)){if(this.#t==="%")return this.#s?{value:(o*200-100).toFixed(this.#e),unit:this.#t}:{value:(o*100).toFixed(this.#e),unit:this.#t};if(this.#r){let{value:a,prefix:c}=n(o);return{value:a.toFixed(this.#e),unit:`${c}${this.#t}`}}else return{value:o.toFixed(this.#e),unit:this.#t}}else return{value:o===Number.POSITIVE_INFINITY?"\u221E":"-\u221E",unit:this.#t}}}let e=Object.freeze(["p","n","\u03BC","m","","k","M","G","T"]),r=i=>Math.log(i)/Math.log(9.999999999999998),n=i=>{let o=Math.floor(r(i)/3),a=e[o+4];return d(a)?{value:i*Math.pow(10,o*-3),prefix:a}:{value:i,prefix:""}};s.decible=s.numeric({unit:"db",fractionDigits:1}),s.panning=s.percent({unit:"%",fractionDigits:0})})(ee||(ee={}));var Fe;(function(s){s.alwaysTrue=()=>!0,s.alwaysFalse=()=>!1,s.definedPredicate=t=>t!=null})(Fe||(Fe={}));var Oe;(function(s){s.split=(t,e)=>{let r=new Float32Array(e);return m.create(n=>i=>{r[n]=i,t(r.reduce((o,a)=>o+a,0)/e)},e)}})(Oe||(Oe={}));var $e;(function(s){s.create=(t=252854082)=>new re(t),s.monotoneAscending=(t,e=128,r=s.create())=>{let n=t.length;if(n<2)return u("Array must have at least 2 elements");let i=0;for(let a=1;a<n;a++){let c=Math.floor(r.uniform()*(1+e))+1;t[a]=c,i+=c}let o=0;t[0]=0;for(let a=1;a<n;a++)o+=t[a],t[a]=o/i;return t}})($e||($e={}));var re=class{#t=0;constructor(t){this.setSeed(t)}setSeed(t){this.#t=t&4294967295}nextDouble(t,e){return t+this.uniform()*(e-t)}nextInt(t,e){return t+Math.floor(this.uniform()*(e-t))}nextElement(t){return t[Math.floor(this.uniform()*t.length)]}nextBoolean(){return this.uniform()<.5}uniform(){let t=this.#t+=1831565813;return t=Math.imul(t^t>>>15,t|1),t^=t+Math.imul(t^t>>>7,t|61),((t^t>>>14)>>>0)/4294967296}};var Ve;(function(s){class t{}s.createBuilder=r=>{let n=i=>{let o=i instanceof Array?[]:{};return Object.entries(i).forEach(([a,c])=>{c instanceof t?o[a]=c.initialValue():typeof c=="object"&&(o[a]=n(c))}),o};return()=>new e(r,Object.seal(n(r)))},s.bool=new class extends t{read(r){return r.readByte()===1}write(r,n){r.writeByte(n?1:0)}initialValue(){return!1}},s.int8=new class extends t{read(r){return r.readByte()}write(r,n){r.writeByte(n)}initialValue(){return 0}},s.int16=new class extends t{read(r){return r.readShort()}write(r,n){r.writeShort(n)}initialValue(){return 0}},s.int32=new class extends t{read(r){return r.readInt()}write(r,n){r.writeInt(n)}initialValue(){return 0}},s.float=new class extends t{read(r){return r.readFloat()}write(r,n){r.writeFloat(n)}initialValue(){return 0}},s.double=new class extends t{read(r){return r.readDouble()}write(r,n){r.writeDouble(n)}initialValue(){return 0}},s.int64=new class extends t{read(r){return r.readLong()}write(r,n){r.writeLong(n)}initialValue(){return 0n}},s.floats=r=>new class extends t{read(n,i){for(let o=0;o<i.length;o++)i[o]=n.readFloat();return i}write(n,i){for(let o=0;o<i.length;o++)n.writeFloat(i[o])}initialValue(){return new Float32Array(r)}},s.doubles=r=>new class extends t{read(n,i){for(let o=0;o<i.length;o++)i[o]=n.readDouble();return i}write(n,i){for(let o=0;o<i.length;o++)n.writeDouble(i[o])}initialValue(){return new Float64Array(r)}};class e{#t;#e;#r;constructor(n,i){this.#t=n,this.#e=i,this.#r=this.#s()}get object(){return this.#e}get bytesTotal(){return this.#r}read(n){let i=(o,a)=>{Object.entries(o).forEach(([c,h])=>{let l=a;h instanceof t?l[c]=h.read(n,l[c]):typeof h=="object"&&i(h,l[c])})};i(this.#t,this.#e)}write(n){let i=(o,a)=>{Object.entries(o).forEach(([c,h])=>{let l=a;h instanceof t?h.write(n,l[c]):typeof h=="object"&&i(h,l[c])})};i(this.#t,this.#e)}#s(){let n=new st;return this.write(n),n.count}}})(Ve||(Ve={}));var ct=class{#t;#e;#r;constructor(t,e){this.#t=t,this.#e=e,this.#r=[]}add(t,e=!1){let r=this.#t(t),n=A.leftMostMapped(this.#r,r,this.#e,this.#t),i=this.#r[n];return d(i)&&this.#e(this.#t(i),r)===0?e?(this.#r.splice(n,1,t),!0):!1:(this.#r.splice(n,0,t),!0)}getOrCreate(t,e){let r=A.leftMostMapped(this.#r,t,this.#e,this.#t),n=this.#r[r];if(d(n)&&this.#e(this.#t(n),t)===0)return n;let i=e(t);return this.#r.splice(r,0,i),i}addMany(t){for(let e of t)this.#r.push(e);try{return this.#r.sort((e,r)=>{let n=this.#e(this.#t(e),this.#t(r));if(n===0)throw"cancel";return n}),!0}catch(e){if(e==="cancel"){let r=new Map(this.entries());return this.#r.splice(0,this.#r.length,...r.values()),this.#r.sort((n,i)=>this.#e(this.#t(n),this.#t(i))),!1}return u(e)}}removeByValue(t){return this.removeByKey(this.#t(t))}removeByKey(t){let e=A.leftMostMapped(this.#r,t,this.#e,this.#t),r=this.#r[e];return d(r)&&this.#e(this.#t(r),t)===0?(this.#r.splice(e,1),r):u(`Could not remove ${t}`)}removeRange(t,e){this.#r.splice(t,(e??this.#r.length)-t)}removeByPredicate(t){let e=0,r=this.#r.length;for(;--r>=0;)t(this.#r[r])&&(this.#r.splice(r,1),e++);return e}get(t){let e=this.#s(t);return d(e)?e:u(`Unknown key: ${t}`)}getOrThrow(t,e){let r=this.#s(t);if(d(r))return r;throw e()}opt(t){return p.wrap(this.#s(t))}getOrNull(t){return this.#s(t)??null}getByIndex(t){return this.#r[t]}hasKey(t){return d(this.#s(t))}hasValue(t){return d(this.#s(this.#t(t)))}size(){return this.#r.length}isEmpty(){return this.#r.length===0}forEach(t){this.values().forEach(t)}values(){return this.#r}entries(){return this.#r.map(t=>[this.#t(t),t])}clear(){m.clear(this.#r)}[Symbol.iterator](){return this.#r.values()}#s(t){let e=A.leftMostMapped(this.#r,t,this.#e,this.#t),r=this.#r[e];return d(r)&&this.#e(this.#t(r),t)===0?r:void 0}};var Re;(function(s){s.hyphenToCamelCase=t=>t.replace(/-([a-z])/g,e=>e[1].toUpperCase()),s.fallback=(t,e)=>d(t)&&t.length>0?t:e,s.endsWithDigit=t=>/\d$/.test(t),s.nonEmpty=(t,e)=>d(t)&&t.trim().length>0?t:e,s.toArrayBuffer=t=>{let e=new ArrayBuffer(t.length),r=new Uint8Array(e);for(let n=0;n<t.length;n++)r[n]=t.charCodeAt(n);return e},s.getUniqueName=(t,e)=>{let r=new Set(t),n=e,i=1;if(r.has(e)||r.has(`${e} 1`))i=2;else return e;for(;r.has(n=`${e} ${i++}`););return n}})(Re||(Re={}));var J=class s{static POSITIVE_INFINITY=new s(Number.POSITIVE_INFINITY);static millis=t=>new s(t);static seconds=t=>new s(t*s.#t);static minutes=t=>new s(t*s.#e);static hours=t=>new s(t*s.#r);static days=t=>new s(t*s.#s);static#t=1e3;static#e=6e4;static#r=36e5;static#s=864e5;#n;constructor(t){this.#n=t}millis(){return this.#n}absSeconds(){return Math.abs(this.#n)/s.#t}absMinutes(){return Math.abs(this.#n)/s.#e}absHours(){return Math.abs(this.#n)/s.#r}absDays(){return Math.abs(this.#n)/s.#s}split(){return{d:Math.floor(this.absDays()),h:Math.floor(this.absHours())%24,m:Math.floor(this.absMinutes())%60,s:Math.floor(this.absSeconds())%60}}isNow(){return this.#n===0}isPast(){return this.#n<0}isFuture(){return this.#n>0}toUnitString(){let t,e,r=Math.floor(Math.abs(this.#n)/1e3),n=Math.floor(r/60),i=Math.floor(n/60),o=Math.floor(i/24);return r<60?(t=r,e="second"):n<60?(t=n,e="minute"):i<24?(t=i,e="hour"):(t=o,e="day"),new Intl.RelativeTimeFormat("en",{numeric:"auto",style:"long"}).format(t*Math.sign(this.#n),e)}toString(){if(isNaN(this.#n))return"NaN";if(!isFinite(this.#n))return"\u221E";let{d:t,h:e,m:r,s:n}=this.split();return t>0?[s.#i("d",t),s.#i("h",e),s.#i("m",r),s.#i("s",n)].join(", "):e>0?[s.#i("h",e),s.#i("m",r),s.#i("s",n)].join(", "):r>0?[s.#i("m",r),s.#i("s",n)].join(", "):n>0?s.#i("s",n):"now"}static#i=(t,e)=>{switch(t){case"d":return`${e} ${e<2?"day":"days"}`;case"h":return`${e} ${e<2?"hour":"hours"}`;case"m":return`${e} ${e<2?"minute":"minutes"}`;case"s":return`${e} ${e<2?"second":"seconds"}`;default:return D(t)}}};var Le;(function(s){let t;(function(e){e[e.READING=0]="READING",e[e.READ=1]="READ",e[e.WRITING=2]="WRITING",e[e.WRITTEN=3]="WRITTEN"})(t||(t={})),s.writer=(e,r,n)=>{if(e.bytesTotal+1>r.byteLength)return u("Insufficient memory allocated.");let i=new Uint8Array(r),o=v.use(r,1);return Atomics.store(i,0,t.READ),{tryWrite:()=>Atomics.compareExchange(i,0,t.READ,t.WRITING)===t.WRITING?(n(e.object),o.position=0,e.write(o),Atomics.store(i,0,t.WRITTEN),!0):!1}},s.reader=(e,r)=>{let n=new SharedArrayBuffer(e.bytesTotal+1),i=new Uint8Array(n),o=new B(n,1);return{buffer:n,tryRead:()=>Atomics.compareExchange(i,0,t.WRITTEN,t.READING)===t.READING?(o.position=0,e.read(o),r(e.object),Atomics.store(i,0,t.READ),!0):!1}}})(Le||(Le={}));var b;(function(s){s.length=16,s.generate=()=>t(crypto.getRandomValues(new Uint8Array(s.length))),s.sha256=async e=>{let r=typeof process<"u"&&process.env?.VITEST==="true";return crypto.subtle.digest("SHA-256",r?new Uint8Array(e.slice(0)):e).then(n=>t(new Uint8Array(n.slice(0,s.length))))},s.validate=e=>s.parse(s.toString(e)),s.fromDataInput=e=>{let r=new Uint8Array(s.length);return e.readBytes(new Int8Array(r.buffer)),r},s.toDataOutput=(e,r)=>e.writeBytes(new Int8Array(r.buffer)),s.toString=e=>{let r=m.create(n=>(n+256).toString(16).substring(1),256);return r[e[0]]+r[e[1]]+r[e[2]]+r[e[3]]+"-"+r[e[4]]+r[e[5]]+"-"+r[e[6]]+r[e[7]]+"-"+r[e[8]]+r[e[9]]+"-"+r[e[10]]+r[e[11]]+r[e[12]]+r[e[13]]+r[e[14]]+r[e[15]]},s.parse=e=>{let r=e.replace(/-/g,"").toLowerCase();if(r.length!==32)return u("Invalid UUID format");let n=new Uint8Array(s.length);for(let i=0,o=0;i<32;i+=2,o++)n[o]=parseInt(r.slice(i,i+2),16);return n},s.Comparator=(e,r)=>{if(e.length!==s.length||r.length!==s.length)return u("Unexpected array length for uuid(v4)");for(let n=0;n<s.length;n++){let i=e[n]-r[n];if(i!==0)return i}return 0},s.equals=(e,r)=>s.Comparator(e,r)===0,s.newSet=e=>new ct(e,s.Comparator),s.Lowest=s.parse("00000000-0000-4000-8000-000000000000"),s.Highest=s.parse("FFFFFFFF-FFFF-4FFF-BFFF-FFFFFFFFFFFF"),s.fromInt=e=>{let r=new Uint8Array(s.Lowest),n=new Uint8Array(new Uint32Array([e]).buffer);for(let i=0;i<4;i++)r[i]=n[i];return r};let t=e=>(g(e.length===s.length,"UUID must be 16 bytes long"),e[6]=e[6]&15|64,e[8]=e[8]&63|128,e)})(b||(b={}));var Pe;(function(s){s.create=i=>d(i)?d(i?.snap)?s.snap(i?.trackLength,i?.snap?.snapLength,Array.isArray(i?.snap?.threshold)?i?.snap.threshold:[i?.snap?.threshold]):s.identity(i?.trackLength):s.identity(),s.snap=(i=t,o=e,a)=>new n(i,o/i,a),s.identity=(i=t)=>new r(i);let t=128,e=24;class r{length;#t=NaN;#e=NaN;#r=1;constructor(o){this.length=o}begin(o){this.#e=this.#t=o}moveBy(o){g(!isNaN(this.#e),()=>"value has never been set"),this.#t+=o/this.length*this.#r,this.#e=y(this.#t,0,1)}ratio(o){this.#r=o}value(){return g(!isNaN(this.#e),()=>"value has never been set"),this.#e}disable(){}enable(){}}class n{#t;#e;#r;#s;#n=NaN;#i=NaN;#a=1;#o=!0;constructor(o,a,c){g(a>0,()=>`margin(${a}) must be greater then 0`),g(m.isSorted(c),()=>"thresholds are not sorted"),g(a<o,()=>`margin(${a}) must be lower then length(${o})`),this.#t=o,this.#e=a,this.#r=c,this.#s=c.map((h,l)=>h+l*this.#e)}begin(o){this.#o&&(this.#n=this.valueToX(o)),this.#i=o}moveBy(o){g(!isNaN(this.#i),()=>"value has never been set"),this.#n+=o/this.#t*this.#a,this.#i=this.#o?this.xToValue(this.#n):y(this.#n,0,1)}ratio(o){this.#a=o}value(){return g(!isNaN(this.#i),()=>"value has never been set"),this.#i}disable(){this.#o&&(this.#o=!1,this.#n=this.xToValue(this.#n))}enable(){this.#o||(this.#o=!0,this.#n=this.valueToX(this.#n))}valueToX(o){let a=A.rightMost(this.#r,o,jt);if(a<0)return o;{let c=this.#s[a],h=this.#r[a];return o===h?c+this.#e/2:c+this.#e+(o-h)}}xToValue(o){let a=y(o,0,1+this.#e*this.#r.length),c=A.rightMost(this.#s,a,jt);if(c<0)return a;{let h=this.#s[c],l=this.#r[c];return a>h+this.#e?a-(h+this.#e)+l:l}}get margin(){return this.#e}}})(Pe||(Pe={}));var It=Symbol.for("@openDAW/lib-std");globalThis[It]?console.debug(`%c${It.description}%c is already available in ${globalThis.constructor.name}.`,"color: hsl(10, 83%, 60%)","color: inherit"):(globalThis[It]=!0,console.debug(`%c${It.description}%c is now available in ${globalThis.constructor.name}.`,"color: hsl(200, 83%, 60%)","color: inherit"));var $;(function(s){s.sender=(r,n)=>n(new t(r)),s.executor=(r,n)=>new e(r,n);class t{#t;#e=new Map;#r;#s=0;constructor(n){this.#t=n,this.#r=n.subscribe(this.#n)}terminate(){this.#r.terminate()}dispatchAndForget=(n,...i)=>this.#t.send({type:"send",returnId:!1,func:n.name,args:Array.from(M.map(i,o=>({value:o})))});dispatchAndReturn=(n,...i)=>new Promise((o,a)=>{let c=M.reduce(i,(h,l,f)=>(typeof l=="function"&&h.push([f,l]),h),[]);this.#e.set(this.#s,{executorTuple:{resolve:o,reject:a},callbacks:new Map(c)}),this.#t.send({type:"send",returnId:this.#s,func:n.name,args:Array.from(M.map(i,(h,l)=>typeof h=="function"?{callback:l}:{value:h}))}),this.#s++});#n=n=>{let i=this.#e.get(n.returnId);d(i)?n.type==="resolve"?(i.executorTuple.resolve(n.resolve),this.#e.delete(n.returnId)):n.type==="reject"?(i.executorTuple.reject(n.reject),this.#e.delete(n.returnId)):n.type==="callback"&&i.callbacks?.get(n.funcAt).apply(this,n.args):u(`Promise has already been resolved. ${JSON.stringify(n)}`)}}class e{#t;#e;#r;constructor(n,i){this.#t=n,this.#e=i,this.#r=n.subscribe(this.#s)}terminate(){this.#r.terminate()}#s=n=>{g(n.type==="send",()=>"Message type must be 'send'");let i=Object.getPrototypeOf(this.#e)===Object.getPrototypeOf({})?this.#e:Object.getPrototypeOf(this.#e),o=w(i[n.func],`${n.func.toString()} does not exists on ${this.#e}`),a=n.returnId;if(a===!1)o.apply(this.#e,n.args.map(c=>"value"in c?c.value:u(`${n.func.toString()} has no promise.`)));else try{o.apply(this.#e,n.args.map(h=>"callback"in h?(...l)=>this.#a(a,h.callback,l):h.value)).then(h=>this.#n(a,h),h=>this.#i(a,h))}catch(c){this.#i(a,c)}};#n=(n,i)=>this.#t.send({type:"resolve",returnId:n,resolve:i});#i=(n,i)=>this.#t.send({type:"reject",returnId:n,reject:i});#a=(n,i,o)=>this.#t.send({type:"callback",returnId:n,funcAt:i,args:o})}s.Executor=e})($||($={}));var Ce;(function(s){s.ProgressArrayBuffer=t=>async e=>{if(!e.headers.has("Content-Length"))return console.debug("No Content-Length"),e.arrayBuffer();let r=parseInt(e.headers.get("Content-Length"));if(console.debug(`Content-Length: ${r}b`),isNaN(r)||r<4096)return e.arrayBuffer();t(0);let n=v.create(r),i=w(e.body,"response.body is empty").getReader();for(;;){let{done:o,value:a}=await i.read();if(o)break;a.forEach(c=>n.writeByte(c)),t(n.position/r)}return t(1),n.toArrayBuffer()}})(Ce||(Ce={}));var De;(function(s){s.debounce=(()=>{let t;return(e,r=1e3)=>{clearTimeout(t),t=setTimeout(e,r)}})(),s.scheduleInterval=(t,e,...r)=>{let n=setInterval(t,e,...r);return{terminate:()=>clearInterval(n)}},s.scheduleTimeout=(t,e,...r)=>{let n=setTimeout(t,e,...r);return{terminate:()=>clearTimeout(n)}}})(De||(De={}));var ke={for:s=>new se(s)},se=class{#t;#e=new q;constructor(t){if(this.#t=t,d(t.onmessage)||d(t.onmessageerror))throw console.error(t),new Error(`${t} is already wrapped.`);t.onmessage=e=>this.#e.notify(e.data),t.onmessageerror=e=>{throw new Error(e.type)}}send(t){this.#t.postMessage(t)}channel(t){return new ne(this,t)}subscribe(t){return this.#e.subscribe(t)}terminate(){this.#e.terminate(),this.#t.onmessage=null,this.#t.onmessageerror=null}},ne=class s{#t;#e;#r=new q;#s;constructor(t,e){this.#t=t,this.#e=e,this.#s=t.subscribe(r=>{"message"in r&&"channel"in r&&r.channel===e&&this.#r.notify(r.message)})}send(t){this.#t.send({channel:this.#e,message:t})}channel(t){return new s(this,t)}subscribe(t){return this.#r.subscribe(t)}terminate(){this.#s.terminate(),this.#r.terminate()}};var ie=class{maxRetry;timeSpan;#t=0;constructor(t,e){this.maxRetry=t,this.timeSpan=e}retry(t,e){return++this.#t===this.maxRetry?!1:(console.debug(`${t} > will retry in ${this.timeSpan.toString()}`),setTimeout(e,this.timeSpan.millis()),!0)}},V;(function(s){class t{value;status="resolved";constructor(o){this.value=o}error=Kt("Cannot access error when promise is resolved")}class e{error;status="rejected";constructor(o){this.error=o}value=Kt("Cannot access value when promise is rejected")}s.makeAbortable=async(i,o)=>{let a=!0;return i.own(N.create(()=>a=!1)),new Promise((c,h)=>o.then(l=>{a&&c(l)},l=>{a&&h(l)}))},s.tryCatch=i=>i.then(o=>new t(o),o=>new e(o)),s.retry=(i,o=new ie(3,J.seconds(3)))=>i().catch(a=>new Promise((c,h)=>{let l=f=>{o.retry(f,()=>i().then(x=>c(x),l))||h(f)};l(a)})),s.fail=(i,o)=>{let a=()=>new Promise((c,h)=>setTimeout(()=>h("fails first"),i.millis()));return()=>{let c=a();return a=o,c}},s.timeout=(i,o,a)=>new Promise((c,h)=>{let l=!0,f=setTimeout(()=>{l=!1,h(new Error(a??"timeout"))},o.millis());i.then(x=>{l&&c(x)},x=>{l&&h(x)}).finally(()=>clearTimeout(f))}),s.sequential=i=>{let o=Promise.resolve(null);return a=>o=o.then(()=>i(a))};class r{max;#t;#e=0;constructor(o=1){this.max=o,this.#t=[]}async add(o){if(this.#e<this.max)return this.#e++,o().finally(()=>this.#r());{let a=Promise.withResolvers();return this.#t.push([o,a]),a.promise.finally(()=>this.#r())}}#r(){if(g(this.#e>0,"Internal Error in Promises.Limit"),--this.#e<this.max&&this.#t.length>0){let[o,{resolve:a,reject:c}]=this.#t.shift();this.#e++,o().then(a,c)}}}s.Limit=r;class n{#t;#e;#r;#s=p.None;constructor(o,a,c){this.#t=o,this.#e=a,this.#r=c}update(o){this.#s=p.wrap(o),o.then(a=>{this.#s.contains(o)&&this.#t(a)}).catch(a=>{this.#s.contains(o)&&this.#e(a)}).finally(()=>{this.#s.contains(o)&&(this.terminate(),F(this.#r))})}terminate(){this.#s=p.None}}s.Latest=n})(V||(V={}));var _e;(function(s){let t=new V.Limit(4);s.limitFetch=(e,r)=>t.add(()=>fetch(e,r))})(_e||(_e={}));var Ue=(s="debug")=>{let t=performance.now();return{lab:e=>console[s].call(console,`${e} in ${(performance.now()-t).toFixed(1)}ms`)}};var Ke;(function(s){s.startEstimator=()=>{let t=performance.now();return e=>{if(e===0)return J.POSITIVE_INFINITY;let r=performance.now()-t;return J.millis(r/e-r)}}})(Ke||(Ke={}));var ze;(function(s){s.frame=()=>new Promise(t=>requestAnimationFrame(()=>t())),s.frames=t=>new Promise(e=>{let r=t,n=()=>{--r<=0?e():requestAnimationFrame(n)};requestAnimationFrame(n)}),s.timeSpan=(t,...e)=>new Promise(r=>setTimeout(r,t.millis(),...e)),s.event=(t,e)=>new Promise(r=>t.addEventListener(e,r,{once:!0})),s.observable=t=>new Promise(e=>{let r=t.subscribe(()=>{r.terminate(),e()})}),s.complete=t=>new Promise((e,r)=>{let n=setInterval(()=>{let{status:i,value:o,error:a}=pe(()=>t.next());if(i==="success"){let{done:c,value:h}=o;c&&(clearInterval(n),e(h))}else clearInterval(n),r(a)},0)})})(ze||(ze={}));var vt=Symbol.for("@openDAW/lib-runtime");globalThis[vt]?console.debug(`%c${vt.description}%c is already available in ${globalThis.constructor.name}.`,"color: hsl(10, 83%, 60%)","color: inherit"):(globalThis[vt]=!0,console.debug(`%c${vt.description}%c is now available in ${globalThis.constructor.name}.`,"color: hsl(200, 83%, 60%)","color: inherit"));var E=class s{static newSet(t){return new ct(t,s.Comparator)}static compose=(t,...e)=>{let r=e.length===0?this.#t:new Int16Array(e);return g(r.every((n,i)=>n===e[i]),`fieldKeys (${r.join(",")}) only allows i16`),new s(t,r)};static decode(t){let e=t.split("/");return g(e.length>0,"Unable to parse Address"),s.compose(b.parse(e[0]),...e.slice(1).map(r=>parseInt(r)))}static reconstruct(t){return this.compose(t[0],...t[1])}static boxRange(t,e,r){let n=t.values(),i=A.leftMostMapped(n,e,b.Comparator,r),o=n.length;if(i<0||i>=o)return null;for(let a=i;a<o;a++)if(b.Comparator(r(n[a]),e)!==0)return i<a?[i,a]:null;return[i,o]}static Comparator=(t,e)=>{let r=b.Comparator(t.#e,e.#e);if(r!==0)return r;let n=Math.min(t.#r.length,e.#r.length);for(let i=0;i<n;i++){let o=t.#r[i]-e.#r[i];if(o!==0)return o}return t.#r.length-e.#r.length};static MinimalComparator=(t,e)=>{let r=b.Comparator(t.#e,e.#e);if(r!==0)return r;let n=Math.min(t.#r.length,e.#r.length);for(let i=0;i<n;i++){let o=t.#r[i]-e.#r[i];if(o!==0)return o}return 0};static LengthComparator=(t,e)=>{let r=b.Comparator(t.#e,e.#e);return r!==0?r:e.#r.length-t.#r.length};static#t=new Int16Array(0);#e;#r;constructor(t,e){this.#e=t,this.#r=e}get uuid(){return this.#e}get fieldKeys(){return this.#r}isBox(){return this.#r.length===0}isContent(){return!this.isBox()}equals(t){return s.Comparator(this,t)===0}compareTo(t){return s.Comparator(this,t)}append(t){return new s(this.#e,new Int16Array([...this.#r,t]))}startsWith(t){return b.Comparator(t.#e,this.#e)===0&&t.#r.length<=this.#r.length&&t.#r.every((e,r)=>this.#r[r]===e)}write(t){t.writeBytes(new Int8Array(this.#e.buffer)),t.writeByte(this.#r.length),this.#r.forEach(e=>t.writeShort(e))}decompose(){return[this.#e,this.#r]}toJSON(){return{uuid:Array.from(this.#e.values()),fields:Array.from(this.#r.values())}}toArrayBuffer(){let t=new Uint8Array(b.length+this.#r.length);return t.set(this.#e,0),t.set(this.#r,b.length),t.buffer}toString(){return[b.toString(this.#e),...this.#r].join("/")}static read(t){let e=b.fromDataInput(t),r=t.readByte();return s.compose(e,...m.create(()=>t.readShort(),r))}},Z;(function(s){s.AddressReader=t=>t.address,s.Comparator=({address:t},{address:e})=>E.Comparator(t,e),s.equals=(t,e)=>{let[r,n]=A.rangeMapped(e,t,E.Comparator,s.AddressReader);return e.slice(r,n+1)},s.startsWith=(t,e)=>{let[r,n]=A.rangeMapped(e,t,E.MinimalComparator,s.AddressReader);return e.slice(r,n+1).filter(i=>i.address.startsWith(t))},s.endsWith=(t,e)=>{let r=A.leftMostMapped(e,t,E.LengthComparator,s.AddressReader),n=A.rightMostMapped(e,t,E.MinimalComparator,s.AddressReader);return e.slice(r,n+1).filter(i=>t.startsWith(i.address))}})(Z||(Z={}));var _=class s{static validate(t,e){return t.address.equals(e.address)?p.wrap(`PointerField cannot point to itself: ${t}`):e.pointerRules.accepts.some(r=>r===t.pointerType)?p.None:(console.warn(e.pointerRules),p.wrap(`${t.toString()} does not satisfy any of the allowed types (${e.pointerRules}).`))}#t;#e;#r;#s=p.None;constructor(t){this.#t=t,this.#e=new at,this.#r=new at}subscribeImmediate(t,...e){return this.#n(this.#e,t,e)}subscribeTransactual(t,...e){return this.#n(this.#r,t,e)}catchupAndSubscribeTransactual(t,...e){let r=E.newSet(n=>n.address);return r.addMany(this.filter(...e)),r.forEach(n=>t.onAdd(n)),this.subscribeTransactual({onAdd:n=>{r.add(n)&&t.onAdd(n)},onRemove:n=>{r.removeByKey(n.address),t.onRemove(n)}},...e)}filter(...t){return t.length===0?this.incoming():M.filter(this.incoming().values(),e=>t.some(r=>r===e.pointerType))}size(){return this.incoming().length}isEmpty(){return this.size()===0}nonEmpty(){return this.size()>0}contains(t){return this.incoming().some(e=>t.address.equals(e.address))}incoming(){return this.#t.graph.edges().incomingEdgesOf(this.#t)}onAdded(t){let e=s.validate(t,this.#t);if(e.nonEmpty())return u(e.unwrap());this.#s.isEmpty()?(this.#t.graph.subscribeEndTransaction(this.#i),this.#s=p.wrap([{type:"add",pointerField:t}])):this.#s.unwrap().push({type:"add",pointerField:t}),this.#e.proxy.onAdd(t)}onRemoved(t){this.#s.isEmpty()?(this.#t.graph.subscribeEndTransaction(this.#i),this.#s=p.wrap([{type:"remove",pointerField:t}])):this.#s.unwrap().push({type:"remove",pointerField:t}),this.#e.proxy.onRemove(t)}toString(){return`{Pointers ${this.#t.address}, pointers: ${this.incoming().values().map(t=>t.toString())}}`}#n(t,e,r){return t.subscribe({onAdd:n=>{(r.length===0||r.some(i=>i===n.pointerType))&&e.onAdd(n)},onRemove:n=>{(r.length===0||r.some(i=>i===n.pointerType))&&e.onRemove(n)}})}#i=()=>{if(this.#t.isAttached()){let t=this.#s.unwrap("Callback without ChangeLog");t.forEach(({type:e,pointerField:r})=>{e==="add"?this.#r.proxy.onAdd(r):e==="remove"?this.#r.proxy.onRemove(r):u(`Unknown type: ${e}`)}),t.length=0}this.#s=p.None}};var oe=function(s,t,e,r){var n=arguments.length,i=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(s,t,e,r);else for(var a=s.length-1;a>=0;a--)(o=s[a])&&(i=(n<3?o(i):n>3?o(t,e,i):o(t,e))||i);return n>3&&i&&Object.defineProperty(t,e,i),i},ht=function(s,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(s,t)},R=class s{static hook(t){return new s(t)}#t;#e;#r;#s;constructor({parent:t,fieldKey:e,fieldName:r,pointerRules:n}){this.#t=t,this.#e=e,this.#r=r,this.#s=n,n.mandatory&&this.graph.edges().watchVertex(this)}accept(t){return F(t.visitField,this)}get box(){return this.#t.box}get graph(){return this.#t.graph}get parent(){return this.#t}get fieldKey(){return this.#e}get fieldName(){return this.#r}get pointerRules(){return this.#s}get pointerHub(){return new _(this)}get address(){return this.#t.address.append(this.#e)}get debugPath(){return`${this.box.name}:${this.box.mapFields(t=>t.fieldName,...this.address.fieldKeys).join("/")}`}isBox(){return!1}isField(){return!0}isAttached(){return this.graph.findBox(this.address.uuid).nonEmpty()}fields(){return M.empty()}getField(t){return u()}optField(t){return p.None}read(t){}write(t){}disconnect(){if(this.pointerHub.isEmpty())return;let t=this.pointerHub.incoming();t.forEach(e=>{e.defer(),(e.mandatory||this.pointerRules.mandatory&&t.length===1)&&e.box.delete()})}toString(){return`{${this.box.constructor.name}:${this.constructor.name} (${this.fieldName}) ${this.address.toString()}`}};oe([nt,ht("design:type",_),ht("design:paramtypes",[])],R.prototype,"pointerHub",null);oe([nt,ht("design:type",E),ht("design:paramtypes",[])],R.prototype,"address",null);oe([nt,ht("design:type",String),ht("design:paramtypes",[])],R.prototype,"debugPath",null);var cr=Object.freeze({mandatory:!1,accepts:[]});var lt;(function(s){s.writeFields=(e,r)=>{let n=Object.entries(r);e.writeInt(1179403347),e.writeShort(n.length),n.forEach(([i,o])=>{let a=v.create();o.write(a);let c=new Int8Array(a.toArrayBuffer());e.writeShort(Number(i)),e.writeInt(c.length),e.writeBytes(c)})},s.readFields=(e,r)=>{g(e.readInt()===1179403347,"Serializer header is corrupt");let n=e.readShort();for(let i=0;i<n;i++){let o=e.readShort(),a=e.readInt(),c=new Int8Array(a);e.readBytes(c),r[o]?.read(new B(c.buffer))}}})(lt||(lt={}));var hr=function(s,t,e,r){var n=arguments.length,i=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(s,t,e,r);else for(var a=s.length-1;a>=0;a--)(o=s[a])&&(i=(n<3?o(i):n>3?o(t,e,i):o(t,e))||i);return n>3&&i&&Object.defineProperty(t,e,i),i},qe=function(s,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(s,t)},ae=class s{static DEBUG_DELETION=!1;static Index=0;#t;#e;#r;#s;#n;#i=s.Index++;constructor({uuid:t,graph:e,name:r,pointerRules:n}){this.#t=E.compose(t),this.#e=e,this.#r=r,this.#s=n,this.#n=this.initializeFields(),n.mandatory&&this.graph.edges().watchVertex(this)}fields(){return Object.values(this.#n)}getField(t){return w(this.#n[t])}optField(t){return p.wrap(this.#n[t])}subscribe(t,e){return this.graph.subscribeVertexUpdates(t,this.address,e)}get box(){return this}get name(){return this.#r}get graph(){return this.#e}get parent(){return this}get address(){return this.#t}get pointerRules(){return this.#s}get creationIndex(){return this.#i}get pointerHub(){return new _(this)}estimateMemory(){let t=new st;return this.write(t),t.count}isBox(){return!0}asBox(t){return de(this,t)}isField(){return!1}isAttached(){return this.#e.findBox(this.address.uuid).nonEmpty()}read(t){lt.readFields(t,this.#n)}write(t){lt.writeFields(t,this.#n)}serialize(){let t=v.create();return t.writeInt(this.#i),t.writeString(this.name),t.writeBytes(new Int8Array(this.address.uuid.buffer)),this.write(t),t.toArrayBuffer()}toArrayBuffer(){let t=v.create();return this.write(t),t.toArrayBuffer()}incomingEdges(){return this.graph.edges().incomingEdgesOf(this)}outgoingEdges(){return this.graph.edges().outgoingEdgesOf(this)}mapFields(t,...e){if(e.length===0)return m.empty();let r=this.getField(e[0]),n=[t(r)];for(let i=1;i<e.length;i++)r=r.getField(e[i]),n.push(t(r));return n}searchVertex(t){if(t.length===0)return p.wrap(this);let e=this.optField(t[0]);if(e.isEmpty())return p.None;for(let r=1;r<t.length;r++)if(e=e.unwrap().optField(t[r]),e.isEmpty())return p.None;return e}delete(){let{boxes:t,pointers:e}=this.graph.dependenciesOf(this);s.DEBUG_DELETION&&(console.debug(`Delete ${this.toString()}`),console.debug(" unplugs",[...e].map(r=>r.toString()).join(`
2
2
  `)),console.debug(" unstages",[...t].map(r=>r.toString()).join(`
3
- `),this));for(let r of e)r.defer();for(let r of t)r.unstage();this.unstage()}unstage(){this.graph.unstageBox(this)}toString(){return`${this.constructor.name} ${this.address.toString()}`}};hr([nt,qe("design:type",_),qe("design:paramtypes",[])],ae.prototype,"pointerHub",null);var U;(function(s){s[s.This=0]="This",s[s.Parent=1]="Parent",s[s.Children=2]="Children"})(U||(U={}));var ce;(function(s){s.create=()=>new he})(ce||(ce={}));var he=class{#t=new wt(Z.equals);#e=new wt(Z.startsWith);#r=new wt(Z.endsWith);#s=[];#n=0;#i=!1;subscribe(t,e,r){let n=new le(e,t,this.#n++,r);if(this.#i){let i=new ue(n,t);return this.#s.push(i),i}else return this.subscribeMonitor(n,t)}dispatch(t){this.#i=!0,[...this.#t.filter(t),...this.#e.filter(t),...this.#r.filter(t)].sort(({order:r},{order:n})=>r-n).forEach(r=>r.procedure(t)),this.#i=!1,this.#s.forEach(r=>r.subscribe(this)),this.#s.length=0}subscribeMonitor(t,e){switch(e){case U.This:return this.#t.subscribe(t);case U.Parent:return this.#e.subscribe(t);case U.Children:return this.#r.subscribe(t);default:return D(e)}}countStations(){return this.#t.count()+this.#e.count()+this.#r.count()}},le=class{address;propagation;order;procedure;constructor(t,e,r,n){this.address=t,this.propagation=e,this.order=r,this.procedure=n}toString(){return`{ Monitor address: ${this.address}, propagation: ${U[this.propagation]}, order: ${this.order} }`}},wt=class{filterStrategy;#t=[];#e=!0;constructor(t){this.filterStrategy=t}subscribe(t){return this.#t.push(t),this.#e=this.#t.length<2,{terminate:()=>{let e=this.#t.length;for(;--e>=0;)this.#t[e]===t&&this.#t.splice(e,1)}}}stations(){return this.#e||(this.#t.sort(Z.Comparator),this.#e=!0),this.#t}filter(t){return this.filterStrategy(t.address,this.stations())}count(){return this.#t.length}},ue=class{monitor;propagation;#t=new Q;#e=!1;constructor(t,e){this.monitor=t,this.propagation=e}subscribe(t){this.#e||(this.#t.terminate(),this.#t.own(t.subscribeMonitor(this.monitor,this.propagation)))}terminate(){this.#e=!0,this.#t.terminate()}};var I;(function(s){s.Boolean="boolean",s.Float32="float32",s.Int32="int32",s.String="string",s.Bytes="bytes"})(I||(I={}));var Mt={[I.Boolean]:{type:I.Boolean,encode:(s,t)=>s.writeBoolean(t),decode:s=>s.readBoolean()},[I.Float32]:{type:I.Float32,encode:(s,t)=>s.writeFloat(t),decode:s=>s.readFloat()},[I.Int32]:{type:I.Int32,encode:(s,t)=>s.writeInt(t),decode:s=>s.readInt()},[I.String]:{type:I.String,encode:(s,t)=>s.writeString(t),decode:s=>s.readString()},[I.Bytes]:{type:I.Bytes,encode:(s,t)=>{s.writeInt(t.length),s.writeBytes(t)},decode:s=>{let t=new Int8Array(s.readInt());return s.readBytes(t),t}}},St=class extends V{#t;#e;#r;constructor(t,e,r){super(t),this.#t=e,this.#e=this.clamp(r),this.#r=this.#e}accept(t){return F(t.visitPrimitiveField,this)}subscribe(t){return this.graph.subscribeVertexUpdates(U.This,this.address,()=>t(this))}catchupAndSubscribe(t){return t(this),this.subscribe(t)}get type(){return this.#t}get initValue(){return this.#e}setInitValue(t){g(this.graph.constructingBox(),"Cannot change initial value at runtime"),this.setValue(this.#e=t)}getValue(){return this.#r}setValue(t){let e=this.#r,r=this.clamp(t);this.equals(r)||(this.#r=t,this.graph.onPrimitiveValueUpdate(this,e,r))}writeValue(t,e){this.serialization().encode(t,e)}readValue(t){return this.serialization().decode(t)}reset(){this.setValue(this.#e)}};var Tt=class s extends St{static create(t,e=0){return new s(t,e)}constructor(t,e){super(t,I.Int32,e)}serialization(){return Mt[I.Int32]}equals(t){return this.getValue()===t}clamp(t){return k.toInt(t)}read(t){this.setValue(t.readInt())}write(t){t.writeInt(this.getValue())}};var je=class s extends St{static create(t,e=this.#t){return new s(t,e)}static#t=Object.freeze(new Int8Array(0));constructor(t,e){super(t,I.Bytes,e)}serialization(){return Mt[I.Bytes]}equals(t){return this.getValue().length===t.length&&this.getValue().every((e,r)=>t[r]===e)}clamp(t){return t}read(t){let e=new Int8Array(t.readInt());t.readBytes(e),this.setValue(e)}write(t){let e=this.getValue();t.writeInt(e.length),t.writeBytes(e)}};var We;(function(s){s.decode=t=>{let e=t.readInt();return m.create(()=>{switch(t.readString()){case"new":{let n=b.fromDataInput(t),i=t.readString(),o=new Int8Array(t.readInt());return t.readBytes(o),new Bt(n,i,o.buffer)}case"pointer":{let n=E.read(t),i=t.readBoolean()?p.wrap(E.read(t)):p.None,o=t.readBoolean()?p.wrap(E.read(t)):p.None;return new Ft(n,i,o)}case"primitive":{let n=E.read(t),i=t.readString(),o=Mt[i],a=o.decode(t),c=o.decode(t);return new Nt(n,o,a,c)}case"delete":{let n=b.fromDataInput(t),i=t.readString(),o=new Int8Array(t.readInt());return t.readBytes(o),new Ot(n,i,o.buffer)}}},e)}})(We||(We={}));var Bt=class{type="new";#t;#e;#r;constructor(t,e,r){this.#t=t,this.#e=e,this.#r=r}get uuid(){return this.#t}get name(){return this.#e}get settings(){return this.#r}forward(t){t.createBox(this.#e,this.#t,e=>e.read(new B(this.#r)))}inverse(t){t.findBox(this.#t).unwrap(()=>`Could not find ${this.#e}`).unstage()}write(t){t.writeString(this.type),b.toDataOutput(t,this.#t),t.writeString(this.#e),t.writeInt(this.#r.byteLength),t.writeBytes(new Int8Array(this.#r))}toString(){return`{NewUpdate uuid: ${b.toString(this.#t)}, attachment: ${this.settings.byteLength}b`}toDebugString(t){return this.toString()}},Nt=class{type="primitive";#t;#e;#r;#s;constructor(t,e,r,n){this.#t=t,this.#e=e,this.#r=r,this.#s=n}get address(){return this.#t}get oldValue(){return this.#r}get newValue(){return this.#s}matches(t){return t.address.equals(this.address)}inverse(t){this.field(t).setValue(this.#r)}forward(t){this.field(t).setValue(this.#s)}field(t){return t.findVertex(this.#t).unwrap(()=>`Could not find PrimitiveField at ${this.#t}`)}write(t){t.writeString(this.type),this.#t.write(t),t.writeString(this.#e.type),this.#e.encode(t,this.#r),this.#e.encode(t,this.#s)}toString(){return`{PrimitiveUpdate oldValue: ${this.#r}, newValue: ${this.#s}`}},Ft=class{type="pointer";#t;#e;#r;constructor(t,e,r){this.#t=t,this.#e=e,this.#r=r}get address(){return this.#t}get oldAddress(){return this.#e}get newAddress(){return this.#r}matches(t){return t.address.equals(this.address)}inverse(t){this.field(t).targetAddress=this.#e}forward(t){this.field(t).targetAddress=this.#r}field(t){return t.findVertex(this.#t).unwrap(()=>`Could not find PointerField at ${this.#t}`)}write(t){t.writeString(this.type),this.#t.write(t),this.#e.match({none:()=>t.writeBoolean(!1),some:e=>{t.writeBoolean(!0),e.write(t)}}),this.#r.match({none:()=>t.writeBoolean(!1),some:e=>{t.writeBoolean(!0),e.write(t)}})}toString(){return`{PointerUpdate oldValue: ${this.#e.unwrapOrNull()}, newValue: ${this.#r.unwrapOrNull()}`}},Ot=class{type="delete";#t;#e;#r;constructor(t,e,r){this.#t=t,this.#e=e,this.#r=r}get uuid(){return this.#t}get name(){return this.#e}get settings(){return this.#r}forward(t){t.findBox(this.#t).unwrap(()=>`Could not find ${this.#e}`).unstage()}inverse(t){t.createBox(this.#e,this.#t,e=>e.read(new B(this.#r)))}write(t){t.writeString(this.type),b.toDataOutput(t,this.#t),t.writeString(this.#e),t.writeInt(this.#r.byteLength),t.writeBytes(new Int8Array(this.#r))}toString(){return`{DeleteUpdate uuid: ${b.toString(this.#t)}, attachment: ${this.settings.byteLength}b`}};var To=Symbol("Unreferenceable");var Ye;(function(s){s.insertOrder=(t,e=Number.MAX_SAFE_INTEGER)=>{let r=s.collectIndexedBoxes(t),n=y(e,0,r.length);if(n<r.length)for(let i=n;i<r.length;i++)r[i].index.setValue(i+1);return n},s.removeOrder=(t,e)=>{let r=s.collectIndexedBoxes(t);if(e<r.length)for(let n=e+1;n<r.length;n++)r[n].index.setValue(n-1)},s.moveIndex=(t,e,r)=>{let n=s.collectIndexedBoxes(t),i=n[e];if(r<0){let o=y(e+r,0,n.length-1);for(let a=o;a<e;a++)n[a].index.setValue(a+1);i.index.setValue(o)}else if(r>1){let o=y(e+(r-1),0,n.length-1);for(let a=e;a<o;a++)n[a+1].index.setValue(a);i.index.setValue(o)}else console.warn(`moveIndex had no effect: startIndex: ${e}, delta: ${r}`)},s.isIndexedBox=t=>"index"in t&&t.index instanceof Tt,s.collectIndexedBoxes=(t,e)=>t.pointerHub.incoming().map(({box:r})=>s.isIndexedBox(r)&&(e===void 0||r instanceof e)?r:u(`${r} has no index field`)).sort((r,n)=>r.index.getValue()-n.index.getValue())})(Ye||(Ye={}));var $t=Symbol.for("@openDAW/lib-box");globalThis[$t]?console.debug(`%c${$t.description}%c is already available in ${globalThis.constructor.name}.`,"color: hsl(10, 83%, 60%)","color: inherit"):(globalThis[$t]=!0,console.debug(`%c${$t.description}%c is now available in ${globalThis.constructor.name}.`,"color: hsl(200, 83%, 60%)","color: inherit"));var j;(function(s){let t=typeof self<"u"&&"location"in self&&typeof self.location!==void 0,e=typeof self<"u"&&"navigator"in self&&typeof self.navigator!==void 0;s.isLocalHost=()=>t&&location.host.includes("localhost"),s.isMacOS=()=>e&&navigator.userAgent.includes("Mac OS X"),s.isWindows=()=>e&&navigator.userAgent.includes("Windows"),s.isFirefox=()=>e&&navigator.userAgent.toLowerCase().includes("firefox"),s.isWeb=()=>!s.isTauriApp(),s.isTauriApp=()=>"__TAURI__"in window,s.userAgent=e?navigator.userAgent.replace(/^Mozilla\/[\d.]+\s*/,"").replace(/\bAppleWebKit\/[\d.]+\s*/g,"").replace(/\(KHTML, like Gecko\)\s*/g,"").replace(/\bSafari\/[\d.]+\s*/g,"").replace(/\s+/g," ").trim():"N/A"})(j||(j={}));var Ge;(function(s){s.encode=async(t,e="gzip")=>{let r=new CompressionStream(e),n=r.writable.getWriter();return n.write(new Uint8Array(t)),n.close(),new Response(r.readable).arrayBuffer()},s.decode=async(t,e="gzip")=>{let r=new DecompressionStream(e),n=r.writable.getWriter();return n.write(new Uint8Array(t)),n.close(),new Response(r.readable).arrayBuffer()}})(Ge||(Ge={}));var He;(function(s){s.exportMethod=(n,i)=>r(n,{value:i}),s.exportBoolean=(n,i=!1)=>{let o=new At(i);return s.exportAccessor(n,()=>o.getValue(),a=>{let c=!!a;console.debug(`set to ${c}`),o.setValue(c)}),o},s.exportAccessor=(n,i,o=me)=>r(n,{get:()=>{try{return console.debug(i()),0}catch(a){return console.error(a),1}},set:a=>{try{return o(a),i()}catch(c){return console.error(c),1}},enumerable:!1,configurable:!1});let t=(()=>{try{return self}catch{return{}}})(),e=t.opendaw??={},r=(n,i)=>{let o=n.split("."),a=o.splice(-1)[0],c=e;for(let h of o)c=c[h]??={};Object.defineProperty(c,a,i),console.debug(`Console command 'opendaw.${n}' exported`)}})(He||(He={}));var Xe;(function(s){s.truncateText=(t,e,r)=>{if(e.length===0)return{text:"",width:0};let n=t.measureText(e).width;if(n<=r)return{text:e,width:n};let i=t.measureText("\u2026").width,o=0,a=e.length|0;for(;o<a;){let h=a+o>>>1;n=t.measureText(e.substring(0,h+1)).width+i,n<=r?o=h+1:a=h}if(o===0)return{text:"",width:0};let c=e.substring(0,o);return{text:c+"\u2026",width:t.measureText(c).width+i}}})(Xe||(Xe={}));var Qe;(function(s){s.calc=(e,r,n)=>{let i=/([0-9]*\.?[0-9]+)([a-zA-Z%]*)/g,o=e;return o.split(/\+|(?<!\d)-/).flatMap(a=>Array.from(a.matchAll(i))).forEach(([a,c,h])=>{let l=parseFloat(c);if(isNaN(l))return u(`${a} does not contain a number`);if(h==="em")o=o.replaceAll(a,`${l*n}`);else if(h==="%")o=o.replaceAll(a,`${l/100*r}`);else if(h==="px")o=o.replaceAll(a,`${l}`);else return u(`Unknown unit '${h}'`)}),Function(`return ${o}`)()};let t=new Map;s.registerCustomCursor=(e,r)=>t.set(e,r),s.setCursor=(e,r=document)=>{r.documentElement.style.cursor=typeof e=="number"?t.get(e)??"auto":e}})(Qe||(Qe={}));var xt;(function(s){let t=new Set,e=new Set,r=new Array,n=-1;s.add=i=>(e.add(i),{terminate:()=>e.delete(i)}),s.once=i=>{t.add(i)},s.start=()=>{console.debug("AnimationFrame start");let i=()=>{(e.size>0||t.size>0)&&(e.forEach(o=>r.push(o)),t.forEach(o=>r.push(o)),t.clear(),r.forEach(o=>o()),r.length=0),n=requestAnimationFrame(i)};n=requestAnimationFrame(i)},s.terminate=()=>{console.debug("AnimationFrame terminate"),t.clear(),e.clear(),r.length=0,cancelAnimationFrame(n)}})(xt||(xt={}));var S=class{static subscribe(t,e,r,n){return t.addEventListener(e,r,n),{terminate:()=>t.removeEventListener(e,r,n)}}static subscribeAny(t,e,r,n){return t.addEventListener(e,r,n),{terminate:()=>t.removeEventListener(e,r,n)}}static DOUBLE_DOWN_THRESHOLD=200;static subscribeDblDwn=(t,e)=>{let r=0;return this.subscribe(t,"pointerdown",n=>{let i=performance.now();i-r<this.DOUBLE_DOWN_THRESHOLD&&e(n),r=i},{capture:!0})};static PreventDefault=t=>t.preventDefault();static isTextInput=t=>t instanceof HTMLInputElement||t instanceof HTMLTextAreaElement||t instanceof HTMLElement&&d(t.getAttribute("contenteditable"))};var W;(function(s){s.isControlKey=({ctrlKey:t,metaKey:e})=>j.isMacOS()?e:t,s.isCopyKey=({altKey:t})=>t,s.GlobalShortcut=Object.freeze({isDelete:t=>!S.isTextInput(t.target)&&(t.code==="Delete"||t.code==="Backspace"),isSelectAll:t=>s.isControlKey(t)&&!t.shiftKey&&t.code==="KeyA",isDeselectAll:t=>s.isControlKey(t)&&t.shiftKey&&t.code==="KeyA"})})(W||(W={}));var Je;(function(s){s.attach=(t,e,r)=>{let n=new Q;return N.many(n,S.subscribe(t,"pointerdown",i=>{if(r?.multiTouch!==!0&&!i.isPrimary||i.buttons!==1||j.isMacOS()&&i.ctrlKey)return;let o=e(i);if(o.isEmpty())return;let a=o.unwrap(),c=i.pointerId;i.stopPropagation(),i.stopImmediatePropagation(),t.setPointerCapture(c);let h={clientX:i.clientX,clientY:i.clientY,altKey:i.altKey,shiftKey:i.shiftKey,ctrlKey:W.isControlKey(i)};r?.immediate===!0&&a.update(h),r?.permanentUpdates===!0?(n.own(xt.add(()=>a.update(h))),n.own(S.subscribe(t,"pointermove",f=>{f.pointerId===c&&(h.clientX=f.clientX,h.clientY=f.clientY,h.altKey=f.altKey,h.shiftKey=f.shiftKey,h.ctrlKey=W.isControlKey(f))}))):n.own(S.subscribe(t,"pointermove",f=>{f.pointerId===c&&(h.clientX=f.clientX,h.clientY=f.clientY,h.altKey=f.altKey,h.shiftKey=f.shiftKey,h.ctrlKey=W.isControlKey(f),a.update(h))}));let l=()=>{a.cancel?.call(a),a.finally?.call(a),n.terminate()};n.ownAll(S.subscribe(t,"pointerup",f=>{f.pointerId===c&&(a.approve?.call(a),a.finally?.call(a),n.terminate())},{capture:!0}),S.subscribe(t,"pointercancel",f=>{console.debug(f.type),f.pointerId===c&&(t.releasePointerCapture(c),l())},{capture:!0}),S.subscribe(self,"beforeunload",f=>{t.releasePointerCapture(c),l()},{capture:!0}),S.subscribe(window,"keydown",f=>{h.altKey=f.altKey,h.shiftKey=f.shiftKey,h.ctrlKey=W.isControlKey(f),f.key==="Escape"?l():a.update(h)}),S.subscribe(window,"keyup",f=>{h.altKey=f.altKey,h.shiftKey=f.shiftKey,h.ctrlKey=W.isControlKey(f),a.update(h)})),a.abortSignal&&n.own(S.subscribe(a.abortSignal,"abort",()=>{t.releasePointerCapture(c),l()}))}))}})(Je||(Je={}));var Ze;(function(s){s.AbortError=typeof DOMException>"u"?NaN:Object.freeze(new DOMException("AbortError")),s.isAbort=t=>t===s.AbortError||t instanceof DOMException&&t.name==="AbortError"})(Ze||(Ze={}));var tr;(function(s){s.save=async(t,e)=>{if(d(window.showSaveFilePicker)){let r=await window.showSaveFilePicker(e),n=await r.createWritable();return await n.truncate(0),await n.write(t),await n.close(),r.name??"unknown"}else{let r=new Blob([t]),n=URL.createObjectURL(r),i=document.createElement("a");return i.href=n,i.download=e?.suggestedName??"unknown",i.click(),URL.revokeObjectURL(n),e?.suggestedName??"Unknown"}},s.open=async t=>{if(d(window.showOpenFilePicker)){let{status:e,value:r,error:n}=await R.tryCatch(window.showOpenFilePicker(t));return e==="rejected"?Promise.reject(n):Promise.all(r.map(i=>i.getFile()))}else return new Promise((e,r)=>{d(t)&&console.warn("FileApi.showOpenFilePicker is emulated in this browser. OpenFilePickerOptions are ignored.");let n=document.createElement("input");n.type="file",n.multiple=t?.multiple??!1,n.style.display="none",n.addEventListener("cancel",async()=>{n.remove(),r(new DOMException("cancel","AbortError"))}),n.addEventListener("change",async i=>{let a=i.target.files;d(a)?e(m.create(c=>w(a.item(c),`No file at index ${c}`),a.length)):r(new DOMException("cancel","AbortError")),n.remove()}),document.body.appendChild(n),n.click()})}})(tr||(tr={}));var er;(function(s){s.parse=t=>{let e=document.createElement("div");if(e.innerHTML=t,e.childElementCount!==1)return u(`Source html has more than one root elements: '${t}'`);let r=e.firstChild;return r instanceof HTMLElement||r instanceof SVGSVGElement?r:u(`Cannot parse to HTMLOrSVGElement from '${t}'`)},s.empty=t=>{for(;t.firstChild!==null;)t.firstChild.remove()},s.replace=(t,...e)=>{s.empty(t),t.append(...e)},s.query=(t,e=document)=>w(e.querySelector(t)),s.queryAll=(t,e=document)=>Array.from(e.querySelectorAll(t)),s.nextID=(()=>{let t=0;return()=>(++t).toString(16).padStart(4,"0")})(),s.adoptStyleSheet=(t,e)=>{g(t.includes("component"),`No 'component' found in: ${t}`);let r=`${e??"C"}${s.nextID()}`,n=new CSSStyleSheet;return n.replaceSync(t.replaceAll("component",`.${r}`)),n.cssRules.length===0?u(`No cssRules found in: ${t}`):(document.adoptedStyleSheets.push(n),r)},s.buildClassList=(...t)=>t.filter(e=>e!==!1&&e!==void 0).join(" "),s.readCssVarColor=(...t)=>{let e=document.createElement("div");document.body.appendChild(e);let r=t.map(n=>(e.style.color=n,Et.parseCssRgbOrRgba(getComputedStyle(e).color)));return e.remove(),r},s.watchResize=(t,e,r)=>{let n=new ResizeObserver(([i],o)=>e(i,o));return n.observe(t,r),{terminate:()=>n.disconnect()}},s.watchIntersection=(t,e,r)=>{let n=new IntersectionObserver(e,r);return n.observe(t),{terminate:()=>n.disconnect()}},s.secureBoundingBox=t=>{let e=t.getBoundingClientRect();if(!yt.isEmpty(e))return e;for(let r of t.children)yt.union(e,s.secureBoundingBox(r));return e},s.unfocus=(t=self)=>{let e=t.document.activeElement;e!==null&&"blur"in e&&typeof e.blur=="function"&&e.blur()},s.selectContent=t=>{let e=document.createRange(),r=window.getSelection();d(r)&&(e.selectNodeContents(t),r.removeAllRanges(),r.addRange(e))},s.unselectContent=t=>{let e=window.getSelection();!d(e)||e.rangeCount===0||t.contains(e.getRangeAt(0).commonAncestorContainer)&&e.removeAllRanges()},s.limitChars=(t,e,r)=>{if(!(e in t))return u(`${e} not found in ${t}`);if(typeof t[e]!="string")return u(`${e} in ${t} is not a string`);if(t[e].length>r)if(t[e]=t[e].substring(0,r),t instanceof HTMLInputElement||t instanceof HTMLTextAreaElement)t.setSelectionRange(r,r);else{let n=t.ownerDocument,i=n.createRange(),o=n.defaultView?.getSelection();if(!d(o))return;i.selectNodeContents(t),i.collapse(!1),o.removeAllRanges(),o.addRange(i)}},s.EmptyGif="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII="})(er||(er={}));var Ya=(()=>{let s={Cmd:"\u2318",Opt:"\u2325",Shift:"\u21E7"},t={Cmd:"Ctrl",Opt:"Alt",Shift:"\u21E7"};return Object.freeze({Mac:s,Win:t,System:j.isMacOS()?s:t})})();var rr;(function(s){s.read=async t=>{let e=[];for(;;){let{done:o,value:a}=await t.read();if(o)break;e.push(a)}let r=e.reduce((o,a)=>o+a.length,0),n=new Uint8Array(r),i=0;for(let o of e)n.set(o,i),i+=o.length;return n.buffer}})(rr||(rr={}));var sr;(function(s){s.pathBuilder=()=>new class{#t="";moveTo(t,e){return this.#t+=`M${t.toFixed(3)} ${e.toFixed(3)}`,this}lineTo(t,e){return this.#t+=`L${t.toFixed(3)} ${e.toFixed(3)}`,this}quadratic(t,e,r,n){return this.#t+=`Q${t.toFixed(3)} ${e.toFixed(3)} ${r.toFixed(3)} ${n.toFixed(3)}`,this}quadraticTo(t,e){return this.#t+=`T${t.toFixed(3)} ${e.toFixed(3)}`,this}cubic(t,e,r,n,i,o){return this.#t+=`Q${t.toFixed(3)} ${e.toFixed(3)} ${r.toFixed(3)} ${n.toFixed(3)} ${i.toFixed(3)} ${o.toFixed(3)}`,this}arc(t,e,r,n,i,o,a){return this.#t+=`A${t} ${e} ${r} ${n?1:0} ${i?1:0} ${o.toFixed(3)} ${a.toFixed(3)}`,this}circleSegment(t,e,r,n,i){let o=t+Math.cos(n)*r,a=e+Math.sin(n)*r,c=t+Math.cos(i)*r,h=e+Math.sin(i)*r,l=i-n;for(;l<0;)l+=Math.PI*2;return this.moveTo(o,a).arc(r,r,0,l>Math.PI,!0,c,h)}close(){return this.#t+="Z",this}get(){return this.#t}}})(sr||(sr={}));var nr;(function(s){let t=new Array;s.watchWeak=(r,n)=>{let i=new WeakRef(r),o=n(i);return t.push([i,o]),t.length===1&&e(),r};let e=()=>{console.debug("start weak watching");let r=setInterval(()=>{let n=t.length;for(;--n>=0;){let i=t[n];i[0].deref()===void 0&&(i[1].terminate(),t.splice(n,1),t.length===0&&(console.debug("stop weak watching"),clearInterval(r)))}},1e3)}})(nr||(nr={}));var Rt=Symbol.for("@openDAW/lib-dom");globalThis[Rt]?console.debug(`%c${Rt.description}%c is already available in ${globalThis.constructor.name}.`,"color: hsl(10, 83%, 60%)","color: inherit"):(globalThis[Rt]=!0,console.debug(`%c${Rt.description}%c is now available in ${globalThis.constructor.name}.`,"color: hsl(200, 83%, 60%)","color: inherit"));var Vt;(function(s){s[s.Float=0]="Float",s[s.FloatArray=1]="FloatArray",s[s.Integer=2]="Integer",s[s.IntegerArray=3]="IntegerArray",s[s.ByteArray=4]="ByteArray"})(Vt||(Vt={}));var Lt;(function(s){s[s.WRITE=0]="WRITE",s[s.READ=1]="READ"})(Lt||(Lt={}));var Pt;(function(s){s[s.ID=15793935]="ID",s[s.START=15790320]="START",s[s.END=986895]="END"})(Pt||(Pt={}));var L=class s{stages;data;numFrames;numChannels;static from(t){g(t.readString()==="PEAKS","Wrong header");let e=t.readInt(),r=[];for(let c=0;c<e;c++){let h=t.readInt(),l=t.readInt(),f=t.readInt(),x=t.readInt();r[c]=new s.Stage(x,f,l,h)}let n=t.readInt(),i=[];for(let c=0;c<n;c++){let h=new Int8Array(t.readInt());t.readBytes(h),i[c]=new Int32Array(h.buffer)}let o=t.readInt(),a=t.readInt();return new s(r,i,o,a)}static None=new s([],[],0,0);constructor(t,e,r,n){this.stages=t,this.data=e,this.numFrames=r,this.numChannels=n}nearest(t){if(this.stages.length===0)return null;let e=Math.floor(Math.log(Math.abs(t))/Math.LN2),r=this.stages.length;for(;--r>-1;)if(e>=this.stages[r].shift)return this.stages[r];return this.stages[0]}toArrayBuffer(){let t=v.create();t.writeString("PEAKS"),t.writeInt(this.stages.length);for(let e=0;e<this.stages.length;e++){let{dataOffset:r,numPeaks:n,shift:i,mask:o}=this.stages[e];t.writeInt(r),t.writeInt(n),t.writeInt(i),t.writeInt(o)}t.writeInt(this.data.length);for(let e=0;e<this.data.length;e++){let r=new Int8Array(this.data[e].buffer);t.writeInt(r.length),t.writeBytes(r)}return t.writeInt(this.numFrames),t.writeInt(this.numChannels),t.toArrayBuffer()}toString(){return`{Peaks num-stages: ${this.stages.length}}`}};(function(s){s.findBestFit=(e,r=1200)=>{let n=e/r;if(n<=1)return new Uint8Array(0);let i=3,o=Math.floor(Math.log(n)/Math.LN2),a=Math.max(1,Math.floor(o/i));return new Uint8Array(m.create(c=>i*(c+1),a))};class t{mask;shift;numPeaks;dataOffset;constructor(r,n,i,o){this.mask=r,this.shift=n,this.numPeaks=i,this.dataOffset=o}unitsEachPeak(){return 1<<this.shift}}s.Stage=t,s.unpack=(e,r)=>{switch(r){case 0:return z.intBitsToFloat(e);case 1:return z.intBitsToFloat(e>>16);default:return D(r)}}})(L||(L={}));var Ct;(function(s){s.install=n=>$.executor(n.channel("peaks"),new class{async generateAsync(i,o,a,c,h){return t(i,o,a,c,h).toArrayBuffer()}});let t=(n,i,o,a,c)=>{if(o.length!==c)return u(`Invalid numberOfChannels. Expected: ${c}. Got ${o.length}`);class h{min=Number.POSITIVE_INFINITY;max=Number.NEGATIVE_INFINITY;index=0}let l=Ue(),f=i.length,[x,P]=e(i,a),ut=m.create(()=>new Int32Array(P),c),_t=x[0].mask,Ut=c*a,ft=0;for(let C=0;C<c;++C){let dt=ut[C],Y=o[C],G=m.create(()=>new h,f),tt=Number.POSITIVE_INFINITY,K=Number.NEGATIVE_INFINITY,pt=0;for(let et=0;et<a;++et){let mt=Y[et];if(tt=Math.min(mt,tt),K=Math.max(mt,K),(++pt&_t)===0){for(let H=0;H<f;++H){let gt=x[H],T=G[H];T.min=Math.min(T.min,tt),T.max=Math.max(T.max,K),(gt.mask&pt)===0&&(dt[gt.dataOffset+T.index++]=r(T.min,T.max),T.min=Number.POSITIVE_INFINITY,T.max=Number.NEGATIVE_INFINITY)}tt=Number.POSITIVE_INFINITY,K=Number.NEGATIVE_INFINITY}(++ft&65535)===0&&n(ft/Ut)}}return n(1),l.lab(`Peak-Gen '${self.constructor.name}'`),new L(x,ut,a,c)},e=(n,i)=>{let o=0;return[m.create(c=>{let h=n[c],l=Math.ceil(i/(1<<h)),f=new L.Stage((1<<h)-1,h,l,o);return o+=l,f},n.length),o]},r=(n,i)=>{let o=z.floatToIntBits(n),a=z.floatToIntBits(i);return o|a<<16}})(Ct||(Ct={}));var ir;(function(s){s.renderBlocks=(t,e,r,{u0:n,u1:i,v0:o,v1:a,x0:c,x1:h,y0:l,y1:f})=>{let x=(i-n)/(h-c),P=e.nearest(x);if(P===null)return;let ut=(f-l-1)/(a-o),_t=P.unitsEachPeak(),Ut=c-Math.floor(c),ft=x/_t,C=(n-Ut*x)/x*ft,dt=Math.floor(C),Y=0,G=0,tt=e.data[r];for(let K=Math.floor(c);K<Math.floor(h);K++){let pt=C+ft,et=Math.floor(pt),mt=!1;for(;dt<et;){let bt=tt[P.dataOffset+dt++];Y=Math.min(L.unpack(bt,0),Y),G=Math.max(L.unpack(bt,1),G),mt=!0}let H=l+Math.floor((Y-o)*ut),gt=l+Math.floor((G-o)*ut),T=Math.max(l,Math.min(H,gt)),fe=Math.min(f,Math.max(H,gt));if(t.fillRect(K,T,1,fe===T?1:fe-T),mt){let bt=G;G=Y,Y=bt}C=pt,dt=et}}})(ir||(ir={}));var Dt;(function(s){let e=new R.Limit(1),r=new R.Limit(1);s.init=i=>$.executor(i.channel("opfs"),new class{async write(o,a){return r.add(()=>this.#t(o,{create:!0}).then(c=>{c.truncate(a.length),c.write(a,{at:0}),c.flush(),c.close()}))}async read(o){return e.add(()=>this.#t(o).then(a=>{let c=a.getSize(),h=new Uint8Array(c);return a.read(h),a.close(),h}))}async delete(o){let a=n(o);return this.#e(a.slice(0,-1)).then(c=>c.removeEntry(w(a.at(-1)),{recursive:!0}))}async list(o){let a=n(o),{status:c,value:h}=await R.tryCatch(this.#e(a));if(c==="rejected")return m.empty();let l=[];for await(let{name:f,kind:x}of h.values())l.push({name:f,kind:x});return l}async#t(o,a){let c=n(o);return this.#e(c.slice(0,-1),a).then(h=>h.getFileHandle(w(c.at(-1)),a).then(l=>l.createSyncAccessHandle()))}async#e(o,a){let c=await navigator.storage.getDirectory();for(let h of o)c=await c.getDirectoryHandle(h,a);return c}});let n=i=>{let o=i.replace(/^\/+|\/+$/g,"");return o===""?[]:o.split("/")}})(Dt||(Dt={}));var kt=Symbol.for("@openDAW/lib-fusion");globalThis[kt]?console.debug(`%c${kt.description}%c is already available in ${globalThis.constructor.name}.`,"color: hsl(10, 83%, 60%)","color: inherit"):(globalThis[kt]=!0,console.debug(`%c${kt.description}%c is now available in ${globalThis.constructor.name}.`,"color: hsl(200, 83%, 60%)","color: inherit"));var or=ke.for(self);Dt.init(or);Ct.install(or);
3
+ `),this));for(let r of e)r.defer();for(let r of t)r.unstage();this.unstage()}unstage(){this.graph.unstageBox(this)}toString(){return`${this.constructor.name} ${this.address.toString()}`}};hr([nt,qe("design:type",_),qe("design:paramtypes",[])],ae.prototype,"pointerHub",null);var U;(function(s){s[s.This=0]="This",s[s.Parent=1]="Parent",s[s.Children=2]="Children"})(U||(U={}));var ce;(function(s){s.create=()=>new he})(ce||(ce={}));var he=class{#t=new wt(Z.equals);#e=new wt(Z.startsWith);#r=new wt(Z.endsWith);#s=[];#n=0;#i=!1;subscribe(t,e,r){let n=new le(e,t,this.#n++,r);if(this.#i){let i=new ue(n,t);return this.#s.push(i),i}else return this.subscribeMonitor(n,t)}dispatch(t){this.#i=!0,[...this.#t.filter(t),...this.#e.filter(t),...this.#r.filter(t)].sort(({order:r},{order:n})=>r-n).forEach(r=>r.procedure(t)),this.#i=!1,this.#s.forEach(r=>r.subscribe(this)),this.#s.length=0}subscribeMonitor(t,e){switch(e){case U.This:return this.#t.subscribe(t);case U.Parent:return this.#e.subscribe(t);case U.Children:return this.#r.subscribe(t);default:return D(e)}}countStations(){return this.#t.count()+this.#e.count()+this.#r.count()}},le=class{address;propagation;order;procedure;constructor(t,e,r,n){this.address=t,this.propagation=e,this.order=r,this.procedure=n}toString(){return`{ Monitor address: ${this.address}, propagation: ${U[this.propagation]}, order: ${this.order} }`}},wt=class{filterStrategy;#t=[];#e=!0;constructor(t){this.filterStrategy=t}subscribe(t){return this.#t.push(t),this.#e=this.#t.length<2,{terminate:()=>{let e=this.#t.length;for(;--e>=0;)this.#t[e]===t&&this.#t.splice(e,1)}}}stations(){return this.#e||(this.#t.sort(Z.Comparator),this.#e=!0),this.#t}filter(t){return this.filterStrategy(t.address,this.stations())}count(){return this.#t.length}},ue=class{monitor;propagation;#t=new Q;#e=!1;constructor(t,e){this.monitor=t,this.propagation=e}subscribe(t){this.#e||(this.#t.terminate(),this.#t.own(t.subscribeMonitor(this.monitor,this.propagation)))}terminate(){this.#e=!0,this.#t.terminate()}};var I;(function(s){s.Boolean="boolean",s.Float32="float32",s.Int32="int32",s.String="string",s.Bytes="bytes"})(I||(I={}));var Mt={[I.Boolean]:{type:I.Boolean,encode:(s,t)=>s.writeBoolean(t),decode:s=>s.readBoolean()},[I.Float32]:{type:I.Float32,encode:(s,t)=>s.writeFloat(t),decode:s=>s.readFloat()},[I.Int32]:{type:I.Int32,encode:(s,t)=>s.writeInt(t),decode:s=>s.readInt()},[I.String]:{type:I.String,encode:(s,t)=>s.writeString(t),decode:s=>s.readString()},[I.Bytes]:{type:I.Bytes,encode:(s,t)=>{s.writeInt(t.length),s.writeBytes(t)},decode:s=>{let t=new Int8Array(s.readInt());return s.readBytes(t),t}}},St=class extends R{#t;#e;#r;constructor(t,e,r){super(t),this.#t=e,this.#e=this.clamp(r),this.#r=this.#e}accept(t){return F(t.visitPrimitiveField,this)}subscribe(t){return this.graph.subscribeVertexUpdates(U.This,this.address,()=>t(this))}catchupAndSubscribe(t){return t(this),this.subscribe(t)}get type(){return this.#t}get initValue(){return this.#e}setInitValue(t){g(this.graph.constructingBox(),"Cannot change initial value at runtime"),this.setValue(this.#e=t)}getValue(){return this.#r}setValue(t){let e=this.#r,r=this.clamp(t);this.equals(r)||(this.#r=t,this.graph.onPrimitiveValueUpdate(this,e,r))}writeValue(t,e){this.serialization().encode(t,e)}readValue(t){return this.serialization().decode(t)}reset(){this.setValue(this.#e)}};var Tt=class s extends St{static create(t,e=0){return new s(t,e)}constructor(t,e){super(t,I.Int32,e)}serialization(){return Mt[I.Int32]}equals(t){return this.getValue()===t}clamp(t){return k.toInt(t)}read(t){this.setValue(t.readInt())}write(t){t.writeInt(this.getValue())}};var je=class s extends St{static create(t,e=this.#t){return new s(t,e)}static#t=Object.freeze(new Int8Array(0));constructor(t,e){super(t,I.Bytes,e)}serialization(){return Mt[I.Bytes]}equals(t){return this.getValue().length===t.length&&this.getValue().every((e,r)=>t[r]===e)}clamp(t){return t}read(t){let e=new Int8Array(t.readInt());t.readBytes(e),this.setValue(e)}write(t){let e=this.getValue();t.writeInt(e.length),t.writeBytes(e)}};var We;(function(s){s.decode=t=>{let e=t.readInt();return m.create(()=>{switch(t.readString()){case"new":{let n=b.fromDataInput(t),i=t.readString(),o=new Int8Array(t.readInt());return t.readBytes(o),new Bt(n,i,o.buffer)}case"pointer":{let n=E.read(t),i=t.readBoolean()?p.wrap(E.read(t)):p.None,o=t.readBoolean()?p.wrap(E.read(t)):p.None;return new Ft(n,i,o)}case"primitive":{let n=E.read(t),i=t.readString(),o=Mt[i],a=o.decode(t),c=o.decode(t);return new Nt(n,o,a,c)}case"delete":{let n=b.fromDataInput(t),i=t.readString(),o=new Int8Array(t.readInt());return t.readBytes(o),new Ot(n,i,o.buffer)}}},e)}})(We||(We={}));var Bt=class{type="new";#t;#e;#r;constructor(t,e,r){this.#t=t,this.#e=e,this.#r=r}get uuid(){return this.#t}get name(){return this.#e}get settings(){return this.#r}forward(t){t.createBox(this.#e,this.#t,e=>e.read(new B(this.#r)))}inverse(t){t.findBox(this.#t).unwrap(()=>`Could not find ${this.#e}`).unstage()}write(t){t.writeString(this.type),b.toDataOutput(t,this.#t),t.writeString(this.#e),t.writeInt(this.#r.byteLength),t.writeBytes(new Int8Array(this.#r))}toString(){return`{NewUpdate uuid: ${b.toString(this.#t)}, attachment: ${this.settings.byteLength}b`}toDebugString(t){return this.toString()}},Nt=class{type="primitive";#t;#e;#r;#s;constructor(t,e,r,n){this.#t=t,this.#e=e,this.#r=r,this.#s=n}get address(){return this.#t}get oldValue(){return this.#r}get newValue(){return this.#s}matches(t){return t.address.equals(this.address)}inverse(t){this.field(t).setValue(this.#r)}forward(t){this.field(t).setValue(this.#s)}field(t){return t.findVertex(this.#t).unwrap(()=>`Could not find PrimitiveField at ${this.#t}`)}write(t){t.writeString(this.type),this.#t.write(t),t.writeString(this.#e.type),this.#e.encode(t,this.#r),this.#e.encode(t,this.#s)}toString(){return`{PrimitiveUpdate oldValue: ${this.#r}, newValue: ${this.#s}`}},Ft=class{type="pointer";#t;#e;#r;constructor(t,e,r){this.#t=t,this.#e=e,this.#r=r}get address(){return this.#t}get oldAddress(){return this.#e}get newAddress(){return this.#r}matches(t){return t.address.equals(this.address)}inverse(t){this.field(t).targetAddress=this.#e}forward(t){this.field(t).targetAddress=this.#r}field(t){return t.findVertex(this.#t).unwrap(()=>`Could not find PointerField at ${this.#t}`)}write(t){t.writeString(this.type),this.#t.write(t),this.#e.match({none:()=>t.writeBoolean(!1),some:e=>{t.writeBoolean(!0),e.write(t)}}),this.#r.match({none:()=>t.writeBoolean(!1),some:e=>{t.writeBoolean(!0),e.write(t)}})}toString(){return`{PointerUpdate oldValue: ${this.#e.unwrapOrNull()}, newValue: ${this.#r.unwrapOrNull()}`}},Ot=class{type="delete";#t;#e;#r;constructor(t,e,r){this.#t=t,this.#e=e,this.#r=r}get uuid(){return this.#t}get name(){return this.#e}get settings(){return this.#r}forward(t){t.findBox(this.#t).unwrap(()=>`Could not find ${this.#e}`).unstage()}inverse(t){t.createBox(this.#e,this.#t,e=>e.read(new B(this.#r)))}write(t){t.writeString(this.type),b.toDataOutput(t,this.#t),t.writeString(this.#e),t.writeInt(this.#r.byteLength),t.writeBytes(new Int8Array(this.#r))}toString(){return`{DeleteUpdate uuid: ${b.toString(this.#t)}, attachment: ${this.settings.byteLength}b`}};var To=Symbol("Unreferenceable");var Ye;(function(s){s.insertOrder=(t,e=Number.MAX_SAFE_INTEGER)=>{let r=s.collectIndexedBoxes(t),n=y(e,0,r.length);if(n<r.length)for(let i=n;i<r.length;i++)r[i].index.setValue(i+1);return n},s.removeOrder=(t,e)=>{let r=s.collectIndexedBoxes(t);if(e<r.length)for(let n=e+1;n<r.length;n++)r[n].index.setValue(n-1)},s.moveIndex=(t,e,r)=>{let n=s.collectIndexedBoxes(t),i=n[e];if(r<0){let o=y(e+r,0,n.length-1);for(let a=o;a<e;a++)n[a].index.setValue(a+1);i.index.setValue(o)}else if(r>1){let o=y(e+(r-1),0,n.length-1);for(let a=e;a<o;a++)n[a+1].index.setValue(a);i.index.setValue(o)}else console.warn(`moveIndex had no effect: startIndex: ${e}, delta: ${r}`)},s.isIndexedBox=t=>"index"in t&&t.index instanceof Tt,s.collectIndexedBoxes=(t,e)=>t.pointerHub.incoming().map(({box:r})=>s.isIndexedBox(r)&&(e===void 0||r instanceof e)?r:u(`${r} has no index field`)).sort((r,n)=>r.index.getValue()-n.index.getValue())})(Ye||(Ye={}));var $t=Symbol.for("@openDAW/lib-box");globalThis[$t]?console.debug(`%c${$t.description}%c is already available in ${globalThis.constructor.name}.`,"color: hsl(10, 83%, 60%)","color: inherit"):(globalThis[$t]=!0,console.debug(`%c${$t.description}%c is now available in ${globalThis.constructor.name}.`,"color: hsl(200, 83%, 60%)","color: inherit"));var j;(function(s){let t=typeof self<"u"&&"location"in self&&typeof self.location!==void 0,e=typeof self<"u"&&"navigator"in self&&typeof self.navigator!==void 0;s.isLocalHost=()=>t&&location.host.includes("localhost"),s.isMacOS=()=>e&&navigator.userAgent.includes("Mac OS X"),s.isWindows=()=>e&&navigator.userAgent.includes("Windows"),s.isFirefox=()=>e&&navigator.userAgent.toLowerCase().includes("firefox"),s.isWeb=()=>!s.isTauriApp(),s.isVitest=typeof process<"u"&&process.env?.VITEST==="true",s.isTauriApp=()=>"__TAURI__"in window,s.userAgent=e?navigator.userAgent.replace(/^Mozilla\/[\d.]+\s*/,"").replace(/\bAppleWebKit\/[\d.]+\s*/g,"").replace(/\(KHTML, like Gecko\)\s*/g,"").replace(/\bSafari\/[\d.]+\s*/g,"").replace(/\s+/g," ").trim():"N/A"})(j||(j={}));var Ge;(function(s){s.encode=async(t,e="gzip")=>{let r=new CompressionStream(e),n=r.writable.getWriter();return n.write(new Uint8Array(t)),n.close(),new Response(r.readable).arrayBuffer()},s.decode=async(t,e="gzip")=>{let r=new DecompressionStream(e),n=r.writable.getWriter();return n.write(new Uint8Array(t)),n.close(),new Response(r.readable).arrayBuffer()}})(Ge||(Ge={}));var He;(function(s){s.exportMethod=(n,i)=>r(n,{value:i}),s.exportBoolean=(n,i=!1)=>{let o=new At(i);return s.exportAccessor(n,()=>o.getValue(),a=>{let c=!!a;console.debug(`set to ${c}`),o.setValue(c)}),o},s.exportAccessor=(n,i,o=me)=>r(n,{get:()=>{try{return console.debug(i()),0}catch(a){return console.error(a),1}},set:a=>{try{return o(a),i()}catch(c){return console.error(c),1}},enumerable:!1,configurable:!1});let t=(()=>{try{return self}catch{return{}}})(),e=t.opendaw??={},r=(n,i)=>{let o=n.split("."),a=o.splice(-1)[0],c=e;for(let h of o)c=c[h]??={};Object.defineProperty(c,a,i),console.debug(`Console command 'opendaw.${n}' exported`)}})(He||(He={}));var Xe;(function(s){s.truncateText=(t,e,r)=>{if(e.length===0)return{text:"",width:0};let n=t.measureText(e).width;if(n<=r)return{text:e,width:n};let i=t.measureText("\u2026").width,o=0,a=e.length|0;for(;o<a;){let h=a+o>>>1;n=t.measureText(e.substring(0,h+1)).width+i,n<=r?o=h+1:a=h}if(o===0)return{text:"",width:0};let c=e.substring(0,o);return{text:c+"\u2026",width:t.measureText(c).width+i}}})(Xe||(Xe={}));var Qe;(function(s){s.calc=(e,r,n)=>{let i=/([0-9]*\.?[0-9]+)([a-zA-Z%]*)/g,o=e;return o.split(/\+|(?<!\d)-/).flatMap(a=>Array.from(a.matchAll(i))).forEach(([a,c,h])=>{let l=parseFloat(c);if(isNaN(l))return u(`${a} does not contain a number`);if(h==="em")o=o.replaceAll(a,`${l*n}`);else if(h==="%")o=o.replaceAll(a,`${l/100*r}`);else if(h==="px")o=o.replaceAll(a,`${l}`);else return u(`Unknown unit '${h}'`)}),Function(`return ${o}`)()};let t=new Map;s.registerCustomCursor=(e,r)=>t.set(e,r),s.setCursor=(e,r=document)=>{r.documentElement.style.cursor=typeof e=="number"?t.get(e)??"auto":e}})(Qe||(Qe={}));var xt;(function(s){let t=new Set,e=new Set,r=new Array,n=-1;s.add=i=>(e.add(i),{terminate:()=>e.delete(i)}),s.once=i=>{t.add(i)},s.start=()=>{console.debug("AnimationFrame start");let i=()=>{(e.size>0||t.size>0)&&(e.forEach(o=>r.push(o)),t.forEach(o=>r.push(o)),t.clear(),r.forEach(o=>o()),r.length=0),n=requestAnimationFrame(i)};n=requestAnimationFrame(i)},s.terminate=()=>{console.debug("AnimationFrame terminate"),t.clear(),e.clear(),r.length=0,cancelAnimationFrame(n)}})(xt||(xt={}));var S=class{static subscribe(t,e,r,n){return t.addEventListener(e,r,n),{terminate:()=>t.removeEventListener(e,r,n)}}static subscribeAny(t,e,r,n){return t.addEventListener(e,r,n),{terminate:()=>t.removeEventListener(e,r,n)}}static DOUBLE_DOWN_THRESHOLD=200;static subscribeDblDwn=(t,e)=>{let r=0;return this.subscribe(t,"pointerdown",n=>{let i=performance.now();i-r<this.DOUBLE_DOWN_THRESHOLD&&e(n),r=i},{capture:!0})};static PreventDefault=t=>t.preventDefault();static isTextInput=t=>t instanceof HTMLInputElement||t instanceof HTMLTextAreaElement||t instanceof HTMLElement&&d(t.getAttribute("contenteditable"))};var W;(function(s){s.isControlKey=({ctrlKey:t,metaKey:e})=>j.isMacOS()?e:t,s.isCopyKey=({altKey:t})=>t,s.GlobalShortcut=Object.freeze({isDelete:t=>!S.isTextInput(t.target)&&(t.code==="Delete"||t.code==="Backspace"),isSelectAll:t=>s.isControlKey(t)&&!t.shiftKey&&t.code==="KeyA",isDeselectAll:t=>s.isControlKey(t)&&t.shiftKey&&t.code==="KeyA"})})(W||(W={}));var Je;(function(s){s.attach=(t,e,r)=>{let n=new Q;return N.many(n,S.subscribe(t,"pointerdown",i=>{if(r?.multiTouch!==!0&&!i.isPrimary||i.buttons!==1||j.isMacOS()&&i.ctrlKey)return;let o=e(i);if(o.isEmpty())return;let a=o.unwrap(),c=i.pointerId;i.stopPropagation(),i.stopImmediatePropagation(),t.setPointerCapture(c);let h={clientX:i.clientX,clientY:i.clientY,altKey:i.altKey,shiftKey:i.shiftKey,ctrlKey:W.isControlKey(i)};r?.immediate===!0&&a.update(h),r?.permanentUpdates===!0?(n.own(xt.add(()=>a.update(h))),n.own(S.subscribe(t,"pointermove",f=>{f.pointerId===c&&(h.clientX=f.clientX,h.clientY=f.clientY,h.altKey=f.altKey,h.shiftKey=f.shiftKey,h.ctrlKey=W.isControlKey(f))}))):n.own(S.subscribe(t,"pointermove",f=>{f.pointerId===c&&(h.clientX=f.clientX,h.clientY=f.clientY,h.altKey=f.altKey,h.shiftKey=f.shiftKey,h.ctrlKey=W.isControlKey(f),a.update(h))}));let l=()=>{a.cancel?.call(a),a.finally?.call(a),n.terminate()};n.ownAll(S.subscribe(t,"pointerup",f=>{f.pointerId===c&&(a.approve?.call(a),a.finally?.call(a),n.terminate())},{capture:!0}),S.subscribe(t,"pointercancel",f=>{console.debug(f.type),f.pointerId===c&&(t.releasePointerCapture(c),l())},{capture:!0}),S.subscribe(self,"beforeunload",f=>{t.releasePointerCapture(c),l()},{capture:!0}),S.subscribe(window,"keydown",f=>{h.altKey=f.altKey,h.shiftKey=f.shiftKey,h.ctrlKey=W.isControlKey(f),f.key==="Escape"?l():a.update(h)}),S.subscribe(window,"keyup",f=>{h.altKey=f.altKey,h.shiftKey=f.shiftKey,h.ctrlKey=W.isControlKey(f),a.update(h)})),a.abortSignal&&n.own(S.subscribe(a.abortSignal,"abort",()=>{t.releasePointerCapture(c),l()}))}))}})(Je||(Je={}));var Ze;(function(s){s.AbortError=typeof DOMException>"u"?NaN:Object.freeze(new DOMException("AbortError")),s.isAbort=t=>t===s.AbortError||t instanceof DOMException&&t.name==="AbortError"})(Ze||(Ze={}));var tr;(function(s){s.save=async(t,e)=>{if(d(window.showSaveFilePicker)){let r=await window.showSaveFilePicker(e),n=await r.createWritable();return await n.truncate(0),await n.write(t),await n.close(),r.name??"unknown"}else{let r=new Blob([t]),n=URL.createObjectURL(r),i=document.createElement("a");return i.href=n,i.download=e?.suggestedName??"unknown",i.click(),URL.revokeObjectURL(n),e?.suggestedName??"Unknown"}},s.open=async t=>{if(d(window.showOpenFilePicker)){let{status:e,value:r,error:n}=await V.tryCatch(window.showOpenFilePicker(t));return e==="rejected"?Promise.reject(n):Promise.all(r.map(i=>i.getFile()))}else return new Promise((e,r)=>{d(t)&&console.warn("FileApi.showOpenFilePicker is emulated in this browser. OpenFilePickerOptions are ignored.");let n=document.createElement("input");n.type="file",n.multiple=t?.multiple??!1,n.style.display="none",n.addEventListener("cancel",async()=>{n.remove(),r(new DOMException("cancel","AbortError"))}),n.addEventListener("change",async i=>{let a=i.target.files;d(a)?e(m.create(c=>w(a.item(c),`No file at index ${c}`),a.length)):r(new DOMException("cancel","AbortError")),n.remove()}),document.body.appendChild(n),n.click()})}})(tr||(tr={}));var er;(function(s){s.parse=t=>{let e=document.createElement("div");if(e.innerHTML=t,e.childElementCount!==1)return u(`Source html has more than one root elements: '${t}'`);let r=e.firstChild;return r instanceof HTMLElement||r instanceof SVGSVGElement?r:u(`Cannot parse to HTMLOrSVGElement from '${t}'`)},s.empty=t=>{for(;t.firstChild!==null;)t.firstChild.remove()},s.replace=(t,...e)=>{s.empty(t),t.append(...e)},s.query=(t,e=document)=>w(e.querySelector(t)),s.queryAll=(t,e=document)=>Array.from(e.querySelectorAll(t)),s.nextID=(()=>{let t=0;return()=>(++t).toString(16).padStart(4,"0")})(),s.adoptStyleSheet=(t,e)=>{g(t.includes("component"),`No 'component' found in: ${t}`);let r=`${e??"C"}${s.nextID()}`,n=new CSSStyleSheet;return n.replaceSync(t.replaceAll("component",`.${r}`)),n.cssRules.length===0?u(`No cssRules found in: ${t}`):(document.adoptedStyleSheets.push(n),r)},s.buildClassList=(...t)=>t.filter(e=>e!==!1&&e!==void 0).join(" "),s.readCssVarColor=(...t)=>{let e=document.createElement("div");document.body.appendChild(e);let r=t.map(n=>(e.style.color=n,Et.parseCssRgbOrRgba(getComputedStyle(e).color)));return e.remove(),r},s.watchResize=(t,e,r)=>{let n=new ResizeObserver(([i],o)=>e(i,o));return n.observe(t,r),{terminate:()=>n.disconnect()}},s.watchIntersection=(t,e,r)=>{let n=new IntersectionObserver(e,r);return n.observe(t),{terminate:()=>n.disconnect()}},s.secureBoundingBox=t=>{let e=t.getBoundingClientRect();if(!yt.isEmpty(e))return e;for(let r of t.children)yt.union(e,s.secureBoundingBox(r));return e},s.unfocus=(t=self)=>{let e=t.document.activeElement;e!==null&&"blur"in e&&typeof e.blur=="function"&&e.blur()},s.selectContent=t=>{let e=document.createRange(),r=window.getSelection();d(r)&&(e.selectNodeContents(t),r.removeAllRanges(),r.addRange(e))},s.unselectContent=t=>{let e=window.getSelection();!d(e)||e.rangeCount===0||t.contains(e.getRangeAt(0).commonAncestorContainer)&&e.removeAllRanges()},s.limitChars=(t,e,r)=>{if(!(e in t))return u(`${e} not found in ${t}`);if(typeof t[e]!="string")return u(`${e} in ${t} is not a string`);if(t[e].length>r)if(t[e]=t[e].substring(0,r),t instanceof HTMLInputElement||t instanceof HTMLTextAreaElement)t.setSelectionRange(r,r);else{let n=t.ownerDocument,i=n.createRange(),o=n.defaultView?.getSelection();if(!d(o))return;i.selectNodeContents(t),i.collapse(!1),o.removeAllRanges(),o.addRange(i)}},s.EmptyGif="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII="})(er||(er={}));var Ya=(()=>{let s={Cmd:"\u2318",Opt:"\u2325",Shift:"\u21E7"},t={Cmd:"Ctrl",Opt:"Alt",Shift:"\u21E7"};return Object.freeze({Mac:s,Win:t,System:j.isMacOS()?s:t})})();var rr;(function(s){s.read=async t=>{let e=[];for(;;){let{done:o,value:a}=await t.read();if(o)break;e.push(a)}let r=e.reduce((o,a)=>o+a.length,0),n=new Uint8Array(r),i=0;for(let o of e)n.set(o,i),i+=o.length;return n.buffer}})(rr||(rr={}));var sr;(function(s){s.pathBuilder=()=>new class{#t="";moveTo(t,e){return this.#t+=`M${t.toFixed(3)} ${e.toFixed(3)}`,this}lineTo(t,e){return this.#t+=`L${t.toFixed(3)} ${e.toFixed(3)}`,this}quadratic(t,e,r,n){return this.#t+=`Q${t.toFixed(3)} ${e.toFixed(3)} ${r.toFixed(3)} ${n.toFixed(3)}`,this}quadraticTo(t,e){return this.#t+=`T${t.toFixed(3)} ${e.toFixed(3)}`,this}cubic(t,e,r,n,i,o){return this.#t+=`Q${t.toFixed(3)} ${e.toFixed(3)} ${r.toFixed(3)} ${n.toFixed(3)} ${i.toFixed(3)} ${o.toFixed(3)}`,this}arc(t,e,r,n,i,o,a){return this.#t+=`A${t} ${e} ${r} ${n?1:0} ${i?1:0} ${o.toFixed(3)} ${a.toFixed(3)}`,this}circleSegment(t,e,r,n,i){let o=t+Math.cos(n)*r,a=e+Math.sin(n)*r,c=t+Math.cos(i)*r,h=e+Math.sin(i)*r,l=i-n;for(;l<0;)l+=Math.PI*2;return this.moveTo(o,a).arc(r,r,0,l>Math.PI,!0,c,h)}close(){return this.#t+="Z",this}get(){return this.#t}}})(sr||(sr={}));var nr;(function(s){let t=new Array;s.watchWeak=(r,n)=>{let i=new WeakRef(r),o=n(i);return t.push([i,o]),t.length===1&&e(),r};let e=()=>{console.debug("start weak watching");let r=setInterval(()=>{let n=t.length;for(;--n>=0;){let i=t[n];i[0].deref()===void 0&&(i[1].terminate(),t.splice(n,1),t.length===0&&(console.debug("stop weak watching"),clearInterval(r)))}},1e3)}})(nr||(nr={}));var Vt=Symbol.for("@openDAW/lib-dom");globalThis[Vt]?console.debug(`%c${Vt.description}%c is already available in ${globalThis.constructor.name}.`,"color: hsl(10, 83%, 60%)","color: inherit"):(globalThis[Vt]=!0,console.debug(`%c${Vt.description}%c is now available in ${globalThis.constructor.name}.`,"color: hsl(200, 83%, 60%)","color: inherit"));var Rt;(function(s){s[s.Float=0]="Float",s[s.FloatArray=1]="FloatArray",s[s.Integer=2]="Integer",s[s.IntegerArray=3]="IntegerArray",s[s.ByteArray=4]="ByteArray"})(Rt||(Rt={}));var Lt;(function(s){s[s.WRITE=0]="WRITE",s[s.READ=1]="READ"})(Lt||(Lt={}));var Pt;(function(s){s[s.ID=15793935]="ID",s[s.START=15790320]="START",s[s.END=986895]="END"})(Pt||(Pt={}));var L=class s{stages;data;numFrames;numChannels;static from(t){g(t.readString()==="PEAKS","Wrong header");let e=t.readInt(),r=[];for(let c=0;c<e;c++){let h=t.readInt(),l=t.readInt(),f=t.readInt(),x=t.readInt();r[c]=new s.Stage(x,f,l,h)}let n=t.readInt(),i=[];for(let c=0;c<n;c++){let h=new Int8Array(t.readInt());t.readBytes(h),i[c]=new Int32Array(h.buffer)}let o=t.readInt(),a=t.readInt();return new s(r,i,o,a)}static None=new s([],[],0,0);constructor(t,e,r,n){this.stages=t,this.data=e,this.numFrames=r,this.numChannels=n}nearest(t){if(this.stages.length===0)return null;let e=Math.floor(Math.log(Math.abs(t))/Math.LN2),r=this.stages.length;for(;--r>-1;)if(e>=this.stages[r].shift)return this.stages[r];return this.stages[0]}toArrayBuffer(){let t=v.create();t.writeString("PEAKS"),t.writeInt(this.stages.length);for(let e=0;e<this.stages.length;e++){let{dataOffset:r,numPeaks:n,shift:i,mask:o}=this.stages[e];t.writeInt(r),t.writeInt(n),t.writeInt(i),t.writeInt(o)}t.writeInt(this.data.length);for(let e=0;e<this.data.length;e++){let r=new Int8Array(this.data[e].buffer);t.writeInt(r.length),t.writeBytes(r)}return t.writeInt(this.numFrames),t.writeInt(this.numChannels),t.toArrayBuffer()}toString(){return`{Peaks num-stages: ${this.stages.length}}`}};(function(s){s.findBestFit=(e,r=1200)=>{let n=e/r;if(n<=1)return new Uint8Array(0);let i=3,o=Math.floor(Math.log(n)/Math.LN2),a=Math.max(1,Math.floor(o/i));return new Uint8Array(m.create(c=>i*(c+1),a))};class t{mask;shift;numPeaks;dataOffset;constructor(r,n,i,o){this.mask=r,this.shift=n,this.numPeaks=i,this.dataOffset=o}unitsEachPeak(){return 1<<this.shift}}s.Stage=t,s.unpack=(e,r)=>{switch(r){case 0:return z.intBitsToFloat(e);case 1:return z.intBitsToFloat(e>>16);default:return D(r)}}})(L||(L={}));var Ct;(function(s){s.install=n=>$.executor(n.channel("peaks"),new class{async generateAsync(i,o,a,c,h){return t(i,o,a,c,h).toArrayBuffer()}});let t=(n,i,o,a,c)=>{if(o.length!==c)return u(`Invalid numberOfChannels. Expected: ${c}. Got ${o.length}`);class h{min=Number.POSITIVE_INFINITY;max=Number.NEGATIVE_INFINITY;index=0}let l=Ue(),f=i.length,[x,P]=e(i,a),ut=m.create(()=>new Int32Array(P),c),_t=x[0].mask,Ut=c*a,ft=0;for(let C=0;C<c;++C){let dt=ut[C],Y=o[C],G=m.create(()=>new h,f),tt=Number.POSITIVE_INFINITY,K=Number.NEGATIVE_INFINITY,pt=0;for(let et=0;et<a;++et){let mt=Y[et];if(tt=Math.min(mt,tt),K=Math.max(mt,K),(++pt&_t)===0){for(let H=0;H<f;++H){let gt=x[H],T=G[H];T.min=Math.min(T.min,tt),T.max=Math.max(T.max,K),(gt.mask&pt)===0&&(dt[gt.dataOffset+T.index++]=r(T.min,T.max),T.min=Number.POSITIVE_INFINITY,T.max=Number.NEGATIVE_INFINITY)}tt=Number.POSITIVE_INFINITY,K=Number.NEGATIVE_INFINITY}(++ft&65535)===0&&n(ft/Ut)}}return n(1),l.lab(`Peak-Gen '${self.constructor.name}'`),new L(x,ut,a,c)},e=(n,i)=>{let o=0;return[m.create(c=>{let h=n[c],l=Math.ceil(i/(1<<h)),f=new L.Stage((1<<h)-1,h,l,o);return o+=l,f},n.length),o]},r=(n,i)=>{let o=z.floatToIntBits(n),a=z.floatToIntBits(i);return o|a<<16}})(Ct||(Ct={}));var ir;(function(s){s.renderBlocks=(t,e,r,{u0:n,u1:i,v0:o,v1:a,x0:c,x1:h,y0:l,y1:f})=>{let x=(i-n)/(h-c),P=e.nearest(x);if(P===null)return;let ut=(f-l-1)/(a-o),_t=P.unitsEachPeak(),Ut=c-Math.floor(c),ft=x/_t,C=(n-Ut*x)/x*ft,dt=Math.floor(C),Y=0,G=0,tt=e.data[r];for(let K=Math.floor(c);K<Math.floor(h);K++){let pt=C+ft,et=Math.floor(pt),mt=!1;for(;dt<et;){let bt=tt[P.dataOffset+dt++];Y=Math.min(L.unpack(bt,0),Y),G=Math.max(L.unpack(bt,1),G),mt=!0}let H=l+Math.floor((Y-o)*ut),gt=l+Math.floor((G-o)*ut),T=Math.max(l,Math.min(H,gt)),fe=Math.min(f,Math.max(H,gt));if(t.fillRect(K,T,1,fe===T?1:fe-T),mt){let bt=G;G=Y,Y=bt}C=pt,dt=et}}})(ir||(ir={}));var Dt;(function(s){let e=new V.Limit(1),r=new V.Limit(1);s.init=i=>$.executor(i.channel("opfs"),new class{async write(o,a){return r.add(()=>this.#t(o,{create:!0}).then(c=>{c.truncate(a.length),c.write(a,{at:0}),c.flush(),c.close()}))}async read(o){return e.add(()=>this.#t(o).then(a=>{let c=a.getSize(),h=new Uint8Array(c);return a.read(h),a.close(),h}))}async delete(o){let a=n(o);return this.#e(a.slice(0,-1)).then(c=>c.removeEntry(w(a.at(-1)),{recursive:!0}))}async list(o){let a=n(o),{status:c,value:h}=await V.tryCatch(this.#e(a));if(c==="rejected")return m.empty();let l=[];for await(let{name:f,kind:x}of h.values())l.push({name:f,kind:x});return l}async#t(o,a){let c=n(o);return this.#e(c.slice(0,-1),a).then(h=>h.getFileHandle(w(c.at(-1)),a).then(l=>l.createSyncAccessHandle()))}async#e(o,a){let c=await navigator.storage.getDirectory();for(let h of o)c=await c.getDirectoryHandle(h,a);return c}});let n=i=>{let o=i.replace(/^\/+|\/+$/g,"");return o===""?[]:o.split("/")}})(Dt||(Dt={}));var kt=Symbol.for("@openDAW/lib-fusion");globalThis[kt]?console.debug(`%c${kt.description}%c is already available in ${globalThis.constructor.name}.`,"color: hsl(10, 83%, 60%)","color: inherit"):(globalThis[kt]=!0,console.debug(`%c${kt.description}%c is now available in ${globalThis.constructor.name}.`,"color: hsl(200, 83%, 60%)","color: inherit"));var or=ke.for(self);Dt.init(or);Ct.install(or);
4
4
  //# sourceMappingURL=workers.js.map