UNPKG

ixfx

Version:

Bundle of ixfx libraries

1 lines 25.1 kB
import{n as e}from"./chunk-BKBlUVio.js";import{Dt as t,M as n,N as r,h as i,j as a,l as o}from"./src-DlHqXvlb.js";import{C as s,M as c,n as l,s as u,v as d}from"./src-CrVWx2VD.js";import{n as f}from"./src-CIW3LrR8.js";import{F as p,P as m,f as h,rt as g}from"./src-CWZAMrn_.js";import{Bt as _,C as v,Ct as y,Dt as ee,Et as te,H as ne,Lt as re,Ot as ie,Rt as ae,S as oe,St as b,T as x,Tt as se,U as S,V as ce,Vt as C,_t as w,bt as T,dt as le,et as ue,gt as de,ht as fe,tt as pe,vt as me,w as E,wt as he,xt as D,yt as ge,zt as O}from"./src-YsNzeaaT.js";import{O as _e,d as ve,f as k,g as ye,h as be,m as xe,r as Se,u as A,y as Ce}from"./src-B8K2o5HY.js";import{T as we,w as Te}from"./src-BeF32bo4.js";const Ee=(e,t)=>n=>{let r=1-n,i=r*r,a=n*n,o=a*n;return 3*e*i*n+3*t*r*a+o},De=e=>{let t=performance.now();return{update:(n=1)=>{let r=e*(performance.now()-t)%1;return t=performance.now(),(n+r)%1},reset:()=>{t=performance.now()}}},Oe=Math.pow,ke=1/Math.sqrt(2*Math.PI),j=(e=.4)=>t=>{let n=ke/e,r=-2.5,i=(t-.5)/e;i*=i,r*=i;let a=n*Oe(Math.E,r);return a>1?1:a<0?0:a};var Ae=e({arch:()=>Pe,backIn:()=>$e,backInOut:()=>nt,backOut:()=>et,bell:()=>ot,bounceIn:()=>at,bounceInOut:()=>ct,bounceOut:()=>I,circIn:()=>Ze,circInOut:()=>tt,circOut:()=>Qe,cubicIn:()=>Ue,cubicOut:()=>We,elasticIn:()=>rt,elasticInOut:()=>st,elasticOut:()=>it,expoIn:()=>qe,expoInOut:()=>Xe,expoOut:()=>Je,quadIn:()=>ze,quadInOut:()=>He,quadOut:()=>Be,quartIn:()=>Ge,quartOut:()=>Ke,quintIn:()=>Me,quintInOut:()=>Ye,quintOut:()=>Ne,sineIn:()=>Le,sineInOut:()=>Ve,sineOut:()=>Re,smootherstep:()=>Ie,smoothstep:()=>Fe});const M=Math.sqrt,N=Math.pow,je=Math.cos,P=Math.PI,F=Math.sin,I=e=>{let t=7.5625,n=2.75;return e<1/n?t*e*e:e<2/n?t*(e-=1.5/n)*e+.75:e<2.5/n?t*(e-=2.25/n)*e+.9375:t*(e-=2.625/n)*e+.984375},Me=e=>e*e*e*e*e,Ne=e=>1-N(1-e,5),Pe=e=>e*(1-e)*4,Fe=e=>e*e*(3-2*e),Ie=e=>(e*(e*6-15)+10)*e*e*e,Le=e=>1-je(e*P/2),Re=e=>F(e*P/2),ze=e=>e*e,Be=e=>1-(1-e)*(1-e),Ve=e=>-(je(P*e)-1)/2,He=e=>e<.5?2*e*e:1-N(-2*e+2,2)/2,Ue=e=>e*e*e,We=e=>1-N(1-e,3),Ge=e=>e*e*e*e,Ke=e=>1-N(1-e,4),qe=e=>e===0?0:N(2,10*e-10),Je=e=>e===1?1:1-N(2,-10*e),Ye=e=>e<.5?16*e*e*e*e*e:1-N(-2*e+2,5)/2,Xe=e=>e===0?0:e===1?1:e<.5?N(2,20*e-10)/2:(2-N(2,-20*e+10))/2,Ze=e=>1-M(1-N(e,2)),Qe=e=>M(1-N(e-1,2)),$e=e=>{let t=1.70158;return(t+1)*e*e*e-t*e*e},et=e=>{let t=1.70158;return 1+(t+1)*N(e-1,3)+t*N(e-1,2)},tt=e=>e<.5?(1-M(1-N(2*e,2)))/2:(M(1-N(-2*e+2,2))+1)/2,nt=e=>{let t=1.70158*1.525;return e<.5?N(2*e,2)*((t+1)*2*e-t)/2:(N(2*e-2,2)*((t+1)*(e*2-2)+t)+2)/2},rt=e=>{let t=2*P/3;return e===0?0:e===1?1:-N(2,10*e-10)*F((e*10-10.75)*t)},it=e=>{let t=2*P/3;return e===0?0:e===1?1:N(2,-10*e)*F((e*10-.75)*t)+1},at=e=>1-I(1-e),ot=j(),st=e=>{let t=2*P/4.5;return e===0?0:e===1?1:e<.5?-(N(2,20*e-10)*F((20*e-11.125)*t))/2:N(2,-20*e+10)*F((20*e-11.125)*t)/2+1},ct=e=>e<.5?(1-I(1-2*e))/2:(1+I(2*e-1))/2,lt=(e=0,t=0)=>{let n={x:h(e,-1,1,0,1),y:h(e,-1,1,1,0)},r=b(Math.abs(e),y,n);e!==0&&t>0&&(r=e>0?b(t,r,{x:0,y:n.x*2}):b(t,r,{x:n.y*2,y:0}));let i=v(oe(y,he,r,n));return e=>i(e)},ut=(e,t)=>{c(u(e,`fn`));let n;return()=>(n===void 0&&(n=xe(t,{clampValue:!0})),e(n()))},dt=(e,t)=>{c(u(e,`fn`));let n=A(),r=i(t);if(r===void 0)throw Error(`Param 'duration' not provided`);return Ce(e,ye(r,{timer:n,clampValue:!0}))},ft=(e,t)=>{c(u(e,`fn`));let n;return()=>(n===void 0&&(n=be(t,{clampValue:!0})),e(n()))},L=(e,t)=>(c(u(e,`fn`)),Ce(e,ye(t,{timer:ve(),clampValue:!0})));var pt=e({Named:()=>Ae,create:()=>mt,get:()=>B,getEasingNames:()=>bt,line:()=>lt,tickEasing:()=>vt,ticks:()=>_t,time:()=>gt,timeEasing:()=>ht});const mt=e=>{let t=R(e.name??`quintIn`)??e.fn;if(t===void 0)throw Error(`Either 'name' or 'fn' must be set`);if(`duration`in e)return gt(t,e.duration);if(`ticks`in e)return _t(t,e.ticks);throw Error(`Expected 'duration' or 'ticks' in options`)},ht=(e,t)=>dt(R(e),t),gt=(e,t)=>ut(R(e),t),_t=(e,t)=>ft(R(e),t),vt=(e,t)=>L(R(e),t),R=e=>{let t=typeof e==`function`?e:B(e);if(t===void 0)throw typeof e==`string`?Error(`Easing function not found: '${e}'`):Error(`Easing function not found`);return t};let z;const B=function(e){c(l(e,`non-empty`,`easingName`));let t=yt().get(e.toLowerCase());if(t===void 0)throw Error(`Easing not found: '${e}'`);return t};function yt(){if(z===void 0){z=new Map;for(let[e,t]of Object.entries(Ae))z.set(e.toLowerCase(),t);return z}else return z}function*bt(){yield*yt().keys()}const xt=Object.freeze({attack:[`decay`,`release`],decay:[`sustain`,`release`],sustain:[`release`],release:[`complete`],complete:null}),V={attackDuration:600,decayDuration:200,releaseDuration:800,shouldLoop:!1};var St=class extends f{#e;#t;#n;#r;#i;#a=!1;#o=!1;attackDuration;decayDuration;releaseDuration;decayDurationTotal;shouldLoop;constructor(e={}){super(),this.attackDuration=e.attackDuration??V.attackDuration,this.decayDuration=e.decayDuration??V.decayDuration,this.releaseDuration=e.releaseDuration??V.releaseDuration,this.shouldLoop=e.shouldLoop??V.shouldLoop,this.#e=new Se(xt,{initial:`attack`}),this.#e.addEventListener(`change`,e=>{e.newState===`release`&&this.#i&&this.#n?.reset(),super.fireEvent(`change`,e)}),this.#e.addEventListener(`stop`,e=>{super.fireEvent(`complete`,e)}),this.#t=()=>A(),this.#r=this.#i=!1,this.decayDurationTotal=this.attackDuration+this.decayDuration}dispose(){this.#a||this.#e.dispose()}get isDisposed(){return this.#a}switchStateIfNeeded(e){if(this.#n===void 0)return!1;let t=this.#n.elapsed,n=this.#i&&!this.#r,r=!1,i=this.#e.state;do switch(r=!1,i=this.#e.state,i){case`attack`:(t>this.attackDuration||n)&&(this.#e.next(),r=!0);break;case`decay`:(t>this.decayDurationTotal||n)&&(this.#e.next(),r=!0);break;case`sustain`:(!this.#r||n)&&(t=0,this.#e.next(),this.#n.reset(),r=!0);break;case`release`:t>this.releaseDuration&&(this.#e.next(),r=!0);break;case`complete`:this.shouldLoop&&e&&this.trigger(this.#i)}while(r&&i!==`complete`);return r}computeRaw(e=!0,t=!0){if(this.#n===void 0)return[void 0,0,this.#e.state];e&&this.switchStateIfNeeded(t);let n=this.#e.state,r=this.#n.elapsed,i=0,a=this.#e.state;switch(a){case`attack`:i=r/this.attackDuration;break;case`decay`:i=(r-this.attackDuration)/this.decayDuration;break;case`sustain`:i=1;break;case`release`:i=Math.min(r/this.releaseDuration,1);break;case`complete`:return[`complete`,1,n];default:throw Error(`State machine in unknown state: ${a}`)}return[a,i,n]}get isDone(){return this.#e.isDone}onTrigger(){}trigger(e=!1){this.onTrigger(),this.#o=!0,this.#e.reset(),this.#n=this.#t(),this.#r=e,this.#i=e}get hasTriggered(){return this.#o}compute(){}release(){this.isDone||!this.#i||(this.#r=!1,this.compute())}};const H={attackBend:-1,decayBend:-.3,releaseBend:-.3,peakLevel:1,initialLevel:0,sustainLevel:.6,releaseLevel:0,retrigger:!1};var Ct=class{constructor(e){this.adsr=e}next(...e){this.adsr.hasTriggered||this.adsr.trigger();let t=this.adsr.compute();return{value:t[1],done:t[0]===`complete`}}[Symbol.toStringTag]=`Generator`},U=class extends St{attackPath;decayPath;releasePath;initialLevel;peakLevel;releaseLevel;sustainLevel;attackBend;decayBend;releaseBend;initialLevelOverride;retrigger;releasedAt;constructor(e={}){super(e),this.retrigger=e.retrigger??H.retrigger,this.initialLevel=e.initialLevel??H.initialLevel,this.peakLevel=e.peakLevel??H.peakLevel,this.releaseLevel=e.releaseLevel??H.releaseLevel,this.sustainLevel=e.sustainLevel??H.sustainLevel,this.attackBend=e.attackBend??H.attackBend,this.releaseBend=e.releaseBend??H.releaseBend,this.decayBend=e.decayBend??H.decayBend,this.attackPath=x(E({x:0,y:this.initialLevel},{x:1,y:this.peakLevel},-this.attackBend)),this.decayPath=x(E({x:0,y:this.peakLevel},{x:1,y:this.sustainLevel},-this.decayBend)),this.releasePath=x(E({x:0,y:this.sustainLevel},{x:1,y:this.releaseLevel},-this.releaseBend))}onTrigger(){if(this.initialLevelOverride=void 0,!this.retrigger){let[e,t,n]=this.compute(!0,!1);!Number.isNaN(t)&&t>0&&(this.initialLevelOverride=t)}}[Symbol.iterator](){return new Ct(this)}get value(){return this.compute(!0)[1]}compute(e=!0,t=!0){let[n,r]=super.computeRaw(e,t);if(n===void 0)return[void 0,NaN,NaN];let i;switch(n){case`attack`:i=this.attackPath.interpolate(r).y,this.initialLevelOverride!==void 0&&(i=h(i,0,1,this.initialLevelOverride,1)),this.releasedAt=i;break;case`decay`:i=this.decayPath.interpolate(r).y,this.releasedAt=i;break;case`sustain`:i=this.sustainLevel,this.releasedAt=i;break;case`release`:i=this.releasePath.interpolate(r).y,this.releasedAt!==void 0&&(i=h(i,0,this.sustainLevel,0,this.releasedAt));break;case`complete`:i=this.releaseLevel,this.releasedAt=void 0;break;default:throw Error(`Unknown state: ${n}`)}return[n,i,r]}},wt=e({Adsr:()=>U,AdsrBase:()=>St,AdsrIterator:()=>Ct,adsr:()=>Tt,adsrIterable:()=>Et,adsrStateTransitions:()=>xt,defaultAdsrOpts:()=>H,defaultAdsrTimingOpts:()=>V});const Tt=(e={})=>{let t=new U(e),n=t.releaseLevel,r=t[Symbol.iterator]();return()=>o(r,{overrideWithLast:!0,value:n})};async function*Et(e){let t=new U(e.env),n=e.sampleRateMs??100;t.trigger();let r=_e(()=>t.value,{while:()=>!t.isDone,delay:n,signal:e.signal});for await(let e of r)yield e}var Dt=e({accelerationForce:()=>Pt,angleFromAccelerationForce:()=>zt,angleFromVelocityForce:()=>Bt,angularForce:()=>Rt,apply:()=>Nt,attractionForce:()=>At,computeAccelerationToTarget:()=>Ut,computeAttractionForce:()=>jt,computePositionFromAngle:()=>Wt,computePositionFromVelocity:()=>K,computeVelocity:()=>G,constrainBounce:()=>kt,guard:()=>Ot,magnitudeForce:()=>Ft,nullForce:()=>It,orientationForce:()=>qt,pendulumForce:()=>Ht,springForce:()=>Vt,targetForce:()=>Mt,velocityForce:()=>Lt});const Ot=(e,t=`t`)=>{if(e===void 0)throw Error(`Parameter ${t} is undefined. Expected ForceAffected`);if(e===null)throw Error(`Parameter ${t} is null. Expected ForceAffected`);if(typeof e!=`object`)throw TypeError(`Parameter ${t} is type ${typeof e}. Expected object of shape ForceAffected`)},kt=(e,t=1)=>{e||={width:1,height:1};let n=re(e,`left`),r=re(e,`right`),i=ae(e,`top`),a=ae(e,`bottom`);return e=>{let o=K(e.position??y,e.velocity??y),s=e.velocity??y,{x:c,y:l}=o;return c>r?(c=r,s=D(T(s,t),`x`)):c<n&&(c=n,s=D(T(s,t),`x`)),l>a?(l=a,s=T(D(s,`y`),t)):o.y<i&&(l=i,s=D(T(s,t),`y`)),Object.freeze({...e,position:{x:c,y:l},velocity:s})}},At=(e,t,n={})=>r=>{let i=r.acceleration??y;for(let a of e){if(a===r)continue;let e=jt(a,r,t,n);i=_(i,e)}return{...r,acceleration:i}},jt=(e,t,n,r={})=>{if(e.position===void 0)throw Error(`attractor.position not set`);if(t.position===void 0)throw Error(`attractee.position not set`);let i=r.min??.01,a=r.max??.7,o=w(O(e.position,t.position)),s=g(C(o),i,a);return T(o,n*(e.mass??1)*(t.mass??1)/(s*s))},Mt=(e,t={})=>n=>{let r=Ut(e,n.position??{x:.5,y:.5},t);return{...n,acceleration:_(n.acceleration??y,r)}},Nt=(e,...t)=>{if(e===void 0)throw Error(`t parameter is undefined`);for(let n of t)n!=null&&(e=typeof n==`function`?n(e):{...e,acceleration:_(e.acceleration??y,n)});let n=G(e.acceleration??y,e.velocity??y),r=K(e.position??y,n);return{...e,position:r,velocity:n,acceleration:y}},Pt=(e,t=`ignored`)=>n=>Object.freeze({...n,acceleration:W(e,n,t)}),W=(e,t,n=`ignored`)=>{let r;switch(n){case`dampen`:r=t=>se(e,t,t);break;case`multiply`:r=t=>ge(e,t,t);break;case`ignored`:r=t=>e;break;default:throw Error(`Unknown 'mass' parameter '${n}. Expected 'dampen', 'multiply' or 'ignored'`)}return _(t.acceleration??y,r(t.mass??1))},Ft=(e,t=`ignored`)=>n=>{if(n.velocity===void 0)return n;let r=C(w(n.velocity)),i=e*r*r,a=T(D(n.velocity),i);return Object.freeze({...n,acceleration:W(a,n,t)})},It=e=>e,Lt=(e,t)=>{let n=fe(D,t=>T(t,e));return e=>{if(e.velocity===void 0)return e;let r=n(e.velocity);return Object.freeze({...e,acceleration:W(r,e,t)})}},Rt=()=>e=>{let t=e.angularAcceleration??0,n=e.angularVelocity??0,r=e.angle??0,i=n+t,a=r+i;return Object.freeze({...e,angle:a,angularVelocity:i,angularAcceleration:0})},zt=(e=20)=>t=>{let n=t.acceleration??y;return Object.freeze({...t,angularAcceleration:n.x*e})},Bt=(e=1)=>t=>{let n=ee(t.velocity??y);return Object.freeze({...t,angle:e<1?p(e,t.angle??0,n):n})},Vt=(e,t=.5,n=2e-4,r=.999)=>i=>{let a=O(i.position??y,e),o=C(a),s=Math.abs(t-o),c=ge(G(W(de(a,w,e=>T(e,-n*s)),i,`dampen`)??y,i.velocity??y),r,r);return{...i,velocity:c,acceleration:y}},Ht=(e,t={})=>n=>{e||={x:0,y:0};let r=t.length??C(e,n.position??y),i=t.speed??.001,a=t.damping??.995,o=n.angle;o===void 0&&(o=n.position?ee(e,n.position)-Math.PI/2:0);let s=-1*i/r*Math.sin(o),c=(n.angularVelocity??0)+s;return o+=c,Object.freeze({angularVelocity:c*a,angle:o,position:Wt(r,o+Math.PI/2,e)})},G=(e,t,n)=>{let r=_(t,e);return n===void 0?r:me(r,n)},Ut=(e,t,n={})=>{let r=n.diminishBy??.001,i=O(e,t);return n.range&&te(ie(i),n.range)===-2?y:T(i,r)},K=(e,t)=>_(e,t),Wt=(e,t,n)=>ce(e,t,n),Gt=Rt(),Kt=zt(),qt=(e=.5)=>{let t=Bt(e);return e=>(e=Gt(e),e=Kt(e),e=t(e),e)},q=Math.PI*2;function Jt(e,t,n,r){let i,a,o,s=NaN;typeof e==`number`&&ue(t)&&ue(n)?(s=e,i=S(t),a=S(n),o=r):(i=S(e),a=S(t),o=n);let c=le(i),l=le(a);c===0&&l>Math.PI&&(c=q);let u=J(c,l,o),d=e=>{let t=u(e);return a.unit===`rad`?t.value:ne(t,a.unit).value};return Number.isNaN(s)?d:d(s)}function J(e,t,n){let r=n?.limits??`clamp`,i=pe(e,t,n?.direction);return t=>{let n=e+m(t,0,i);return n>q&&r===`clamp`&&(n=Math.abs(n-q)),n<0&&r===`clamp`&&(n=q+n),{unit:`rad`,value:n}}}function Y(e,t,n){let r=n?.threshold??.5;return i=>{let a=n?.easing?B(n.easing)?.(i)??i:i;if(a===void 0)throw Error(`Easing function '${n?.easing}' not found`);if(n?.transform){if(typeof n.transform!=`function`)throw Error(`Param 'transform' is expected to be a function. Got: ${typeof n.transform}`);return n.transform(i)<.5?e:t}return a<r?e:t}}function X(e,t,n,r){let i,a=`clamp`,o=e=>(i&&(e=i(e)),a===void 0||a===`clamp`?e=g(e):a===`wrap`&&(e>1?e%=1:e<0&&(e=1+e%1)),e),l=(e,t,n)=>(c(s(t,``,`a`),s(n,``,`b`),s(e,``,`amount`)),e=o(e),(1-e)*t+e*n),u=(e={})=>{if(e.easing){let t=B(e.easing);if(!t)throw Error(`Easing function '${e.easing}' not found`);i=t}else if(e.transform){if(typeof e.transform!=`function`)throw Error(`Param 'transform' is expected to be a function. Got: ${typeof e.transform}`);i=e.transform}a=e.limits??`clamp`},d=(e,t,n)=>(1-e)*t+e*n;if(typeof e!=`number`)throw TypeError(`First param is expected to be a number. Got: ${typeof e}`);if(typeof t==`number`){let i,a;if(n===void 0||typeof n==`object`)return i=e,a=t,u(n),e=>l(e,i,a);if(typeof n==`number`)return i=t,a=n,u(r),l(e,i,a);throw TypeError(`Values for 'a' and 'b' not defined`)}else if(t===void 0||typeof t==`object`){let n=o(e);return u(t),c(s(n,``,`amount`)),(e,t)=>d(n,e,t)}}function Yt(e,t=0,n=1,r=0,i){let a=r;return(r,o)=>{if(r!==void 0&&(n=r),o!==void 0&&(t=o),a>=1)return n;let s=X(a,t,n,i);return a+=e,s}}function Xt(e,t=0,n=1,r){let i=xe(e,{clampValue:!0});return(e,a)=>{let o=i();return e!==void 0&&(n=e),a!==void 0&&(t=a),o>=1?n:X(o,t,n,r)}}function Z(e,t,r,i){let o,u=`clamp`,d=`token`,f=a(),p,m,h,_=e=>(o&&(e=o(e)),u===void 0||u===`clamp`?e=g(e):u===`wrap`&&(e>1?e%=1:e<0&&(e=1+e%1)),e),v=(e,t,n)=>{if(c(l(t,``,`a`),l(n,``,`b`),s(e,``,`amount`)),e=_(e),!p||t!==m||n!==h)switch(m=t,h=n,d){case`centered`:p=Qt(t,n,f);break;case`human`:p=$t(t,n);break;case`token`:p=Zt(t,n,f);break;default:throw TypeError(`Unknown interpolation style: ${d}`)}return p(e)},y=(e={})=>{if(e.easing){let t=B(e.easing);if(!t)throw Error(`Easing function '${e.easing}' not found`);o=t}else if(e.transform){if(typeof e.transform!=`function`)throw Error(`Param 'transform' is expected to be a function. Got: ${typeof e.transform}`);o=e.transform}u=e.limits??`clamp`,d=e.style??`token`,f=e.tokenise===`word`?n():e.tokenise===`character`?a():e.tokeniser??a()};if(typeof t==`string`){let n,a;if((r===void 0||typeof r==`object`)&&typeof e==`string`)return n=e,a=t,y(r),e=>v(e,n,a);if(typeof r==`string`&&typeof e==`number`)return n=t,a=r,y(i),v(e,n,a);throw TypeError(`Values for 'a' and 'b' not defined`)}else if(typeof e==`number`&&(t===void 0||typeof t==`object`)){let n=_(e);return y(t),c(s(n,``,`amount`)),(e,t)=>v(n,e,t)}}function Zt(e,t,n=a()){if(typeof e!=`string`)throw TypeError(`Param 'a' is not a string. Got: ${typeof e}`);if(typeof t!=`string`)throw TypeError(`Param 'b' is not a string. Got: ${typeof t}`);let r=n.split(e),i=n.split(t),o=Math.max(r.length,i.length);return a=>{if(a<=0)return e;if(a>=1)return t;let s=[],c=Math.round(a*o);for(let e=0;e<o;e++){let t=r[e]??``,n=i[e]??``;s.push(e<c?n:t)}return s.join(n.joinWith)}}function Qt(e,t,n=a()){if(typeof e!=`string`)throw TypeError(`Param 'a' is not a string. Got: ${typeof e}`);if(typeof t!=`string`)throw TypeError(`Param 'b' is not a string. Got: ${typeof t}`);let r=n.split(e),i=n.split(t),o=Math.max(r.length,i.length);return a=>{if(a<=0)return e;if(a>=1)return t;let s=[];for(let e=0;e<o;e++)s[e]=r[e]??``;let c=(o-1)/2,l=Array.from({length:o},(e,t)=>t).sort((e,t)=>{let n=Math.abs(e-c),r=Math.abs(t-c);return n===r?e-t:n-r}),u=Math.round(a*o);for(let e=0;e<u;e++){let t=l[e];s[t]=i[t]??``}return s.join(n.joinWith)}}function $t(e,t){let n=r(e,t),i=n.filter(e=>e.type!==`keep`);return r=>{if(r<=0)return e;if(r>=1)return t;let a=Math.round(i.length*r),o=0,s=``;for(let e of n)switch(e.type){case`keep`:s+=e.char;break;case`replace`:o<a?s+=e.to:s+=e.from,o++;break;case`insert`:o<a&&(s+=e.char),o++;break;case`delete`:o>=a&&(s+=e.char),o++;break}return s}}function en(e,n,r={}){let i=r.valueEq??t,a=r.fallbackThreshold??.5,o={},s=e,c=r.b??e,l=!1,u=()=>{l=!0,o={};for(let t in e){let i=e[t];if(t in n){let e=n[t];if(e){o[t]=e(s[t],c[t]);continue}}typeof i==`string`?o[t]=Z(s[t],c[t],r.optionsStrings):typeof i==`number`?o[t]=X(s[t],c[t],r.optionsNumbers):typeof i==`boolean`&&(o[t]=Y(s[t],c[t],r.optionsBooleans))}},d=(e,t)=>{let n=t??s,r=e??c;l&&i(n,s)&&i(r,c)||(s=n,c=r,u())};return(e,t,n)=>{d(t,n);let r={};for(let t in c){let n=o[t];n===void 0?e<a?r[t]=s[t]:r[t]=c[t]:r[t]=n(e)}return r}}const tn=e=>{let{relative:t,absolute:n}=e,r=e.clamped??!1,i=e.source??Math.random;if(n!==void 0)return e=>{let t=e+(i()*n*2-n);return r?g(t,0,e):t};if(t!==void 0)return e=>{let n=e*t,a=e+(i()*n*2-n);return r?g(a,0,e):a};throw Error(`Either absolute or relative fields expected`)},nn=(e={})=>{let t=e.clamped??!0,n=e=>0;if(e.absolute!==void 0){c(s(e.absolute,t?`percentage`:`bipolar`,`opts.absolute`));let r=we({min:-e.absolute,max:e.absolute,source:e.source});n=e=>e+r()}else if(e.relative===void 0)throw TypeError(`Either absolute or relative jitter amount is required.`);else{let r=e.relative??.1;c(s(r,t?`percentage`:`bipolar`,`opts.relative`)),n=t=>t+Te({min:-Math.abs(r*t),max:Math.abs(r*t),source:e.source})}return e=>{c(s(e,t?`percentage`:`bipolar`,`value`));let r=n(e);return t&&(r=g(r)),r}},rn=(e,t,n)=>{let r=n*e;return(1-e)*t+t*r},an=(e,t,n)=>r=>m(e,t(r),n(r)),on=(e,t)=>n=>an(n,e,t)(n),sn=e=>e;var cn=e({saw:()=>pn,sine:()=>un,sineBipolar:()=>dn,square:()=>mn,triangle:()=>fn});const ln=Math.PI*2;function*un(e){if(e===void 0)throw TypeError(`Parameter 'timerOrFreq' is undefined`);for(typeof e==`number`&&(e=k(e));;)yield(Math.sin(e.elapsed*ln)+1)/2}function*dn(e){if(e===void 0)throw TypeError(`Parameter 'timerOrFreq' is undefined`);for(typeof e==`number`&&(e=k(e));;)yield Math.sin(e.elapsed*ln)}function*fn(e){for(typeof e==`number`&&(e=k(e));;){let t=e.elapsed;t<.5?t*=2:t=2-t*2,yield t}}function*pn(e){if(e===void 0)throw TypeError(`Parameter 'timerOrFreq' is undefined`);for(typeof e==`number`&&(e=k(e));;)yield e.elapsed}function*mn(e){for(typeof e==`number`&&(e=k(e));;)yield e.elapsed<.5?0:1}const hn=function(e=.1,t,n,r,i){return t===void 0&&(t=0),n===void 0&&(n=1),r===void 0&&(r=t),c(s(e,`bipolar`,`interval`),s(n,`bipolar`,`end`),s(r,`bipolar`,`offset`),s(t,`bipolar`,`start`)),gn(e,t,n,r,i)},gn=function*(e,t,n,r,i){if(t===void 0)throw Error(`Parameter 'lower' is undefined`);if(e===void 0)throw Error(`Parameter 'interval' is undefined`);if(n===void 0)throw Error(`Parameter 'upper' is undefined`);if(i===void 0&&e<=1&&e>=0?i=10/e:i===void 0&&(i=1234),Number.isNaN(e))throw Error(`interval parameter is NaN`);if(Number.isNaN(t))throw Error(`lower parameter is NaN`);if(Number.isNaN(n)||Number.isNaN(r))throw Error(`upper parameter is NaN`);if(t>=n)throw Error(`lower must be less than upper`);if(e===0)throw Error(`Interval cannot be zero`);let a=n-t;if(Math.abs(e)>=a)throw Error(`Interval should be between -${a} and ${a}`);let o=e>0;if(n=Math.floor(n*i),t=Math.floor(t*i),e=Math.floor(Math.abs(e*i)),e===0)throw Error(`Interval is zero (rounding: ${i})`);if(r=r===void 0?t:Math.floor(r*i),r>n||r<t)throw Error(`Start (${r/i}) must be within lower (${t/i}) and upper (${n/i})`);let s=r;yield s/i;let c=!0;for(;;)s+=o?e:-e,o&&s>=n?(o=!1,s=n,s===n&&c&&(s=t,o=!0)):!o&&s<=t&&(o=!0,s=t,s===t&&c&&(s=n,o=!1)),yield s/i,c=!1},_n=(e,t={})=>{let n=e/1e3,r=t.min??-(2**53-1),i=t.max??2**53-1,a=t.clamp??!1;if(a&&t.max)throw Error(`Use either 'max' or 'clamp', not both.`);a&&(i=e);let o=performance.now();return()=>{let e=performance.now(),t=e-o;o=e;let a=n*t;return a>i?i:a<r?r:a}},vn=(e,t={})=>_n(e/60,t);function yn(e,t={}){c(d(e,`aboveZero`,`totalTicks`));let n=t.exclusiveStart??!1,r=t.exclusiveEnd??!1,i=t.cycleLimit??2**53-1,a=n?1:0,o=r?e-1:e,s=0,l=t.startAt??a;if(t.startAtRelative){let i=e;n&&i--,r&&i--,l=Math.round(t.startAtRelative*i)}return t=>{if(t&&(t.resetAt!==void 0&&(l=t.resetAt),t.resetAtRelative!==void 0&&(l=Math.floor(t.resetAtRelative*e))),s>=i)return 1;let n=l/e;return l++,l>o&&(s++,l=a),n}}function Q(e,t={}){let n=t.cycleLimit??2**53-1,r=t.timeSource??performance.now.bind(performance),a=t.startAt??r(),o=0,l=i(e,1e3);return t.startAtRelative&&(c(s(t.startAtRelative,`percentage`,`startAtRelative`)),a=r()-l*t.startAtRelative),e=>{if(e&&(e.resetAt!==void 0&&(a=e.resetAt,a===0&&(a=r())),e.resetAtRelative!==void 0&&(c(s(e.resetAtRelative,`percentage`,`resetAtRelative`)),a=r()-l*e.resetAtRelative)),o>=n)return 1;let t=r(),i=t-a;return i>=l&&(o+=Math.floor(i/l),a=t,o>=n)?1:i%l/l}}function bn(e,t={}){return Q(60*1e3/e,t)}function xn(e,t={}){return Q(1e3/e,t)}var Sn=e({bpm:()=>bn,elapsed:()=>Q,hertz:()=>xn,perMinute:()=>vn,perSecond:()=>_n,ticks:()=>yn});function*Cn(e={},t){t===void 0?t=A():typeof t==`number`&&(t=k(t));let n=$(e),r=e.countdown??10;for(;r>0;){let e=n(t.elapsed/1e3);yield e,e===1?r--:r=100}}function wn(e={},t){let n=Cn(e,t);return()=>{let e=n.next();return e.done?1:e.value}}const $=(e={})=>{let t=e.mass??1,n=e.stiffness??100,r=e.soft??!1,i=e.damping??10,a=e.velocity??.1;if(r||1<=i/(2*Math.sqrt(n*t))){let e=-Math.sqrt(n/t),r=-e*1-a;return t=>1-(1+t*r)*Math.E**(t*e)}else{let e=Math.sqrt(4*t*n-i**2),r=(i*1-2*t*a)/e,o=.5*e/t,s=-(.5*i)/t;return e=>1-(Math.cos(e*o)*1+Math.sin(e*o)*r)*Math.E**(e*s)}},Tn=(e,t,n={})=>{switch(e){case`elapsed`:return()=>Q(t,n);case`bpm`:return()=>bn(t,n);case`hertz`:return()=>xn(t,n);default:throw Error(`Unknown source '${e}'. Expected: 'elapsed', 'hertz' or 'bpm'`)}};function En(e=1){e=1/e;let t=e/2;return n=>Math.abs(n%e-t)}function Dn(e=1){e=1/e;let t=e/2;return n=>n%e<t?1:0}function On(e=1){return e*=Math.PI*2,t=>(Math.sin(t*e)+1)/2}function kn(e=1){return e*=Math.PI*2,t=>Math.abs(Math.sin(t*e))}function An(e=1){return e*=Math.PI*2,t=>Math.sin(t*e)}function jn(e){let t=e.shape??`sine`,n=e.invert??!1,r=e.period??1,i;c(d(r,`aboveZero`,`period`));let a={...e};i=e.ticks?yn(e.ticks,a):e.hertz?xn(e.hertz,a):e.millis?Q(e.millis,a):e.source?e.source:Q((e.secs??5)*1e3,a);let o;switch(t){case`saw`:o=e=>e;break;case`sine`:o=On(r);break;case`sine-bipolar`:o=An(r);break;case`square`:o=Dn(r);break;case`triangle`:o=En(r);break;case`arc`:o=kn(r);break;default:throw Error(`Unknown wave shape '${t}'. Expected: sine, sine-bipolar, saw, triangle, arc or square`)}return Mn(i,o,n)}function Mn(e,t,n=!1){return r=>{let i=e(r?.clock);return r?.override&&(i=r.override),i=t(i),n&&(i=1-i),i}}const Nn=(e,t,n)=>(e*(n-1)+t)/n,Pn=(e=`quadIn`)=>Fn(e)(),Fn=(e=`quadIn`)=>{let t=typeof e==`string`?{easing:e}:e,n=t.source??Math.random,r=t.easing??`quadIn`,i=B(r);if(i===void 0)throw Error(`Easing function '${r}' not found.`);return()=>i(n())};var In=e({Easings:()=>pt,Envelopes:()=>wt,Forces:()=>Dt,Oscillators:()=>cn,Sources:()=>Sn,arcShape:()=>kn,crossfade:()=>on,cubicBezierShape:()=>Ee,drift:()=>De,gaussian:()=>j,interpolate:()=>m,interpolateString:()=>Z,interpolatorAngle:()=>Jt,interpolatorAngleRadian:()=>J,interpolatorBoolean:()=>Y,interpolatorByTokens:()=>Zt,interpolatorCentered:()=>Qt,interpolatorHuman:()=>$t,interpolatorInterval:()=>Xt,interpolatorObject:()=>en,interpolatorStepped:()=>Yt,jitter:()=>nn,jitterAbsolute:()=>tn,mix:()=>rn,mixModulators:()=>an,noop:()=>sn,pingPong:()=>gn,pingPongPercent:()=>hn,sineBipolarShape:()=>An,sineShape:()=>On,spring:()=>Cn,springShape:()=>$,springValue:()=>wn,squareShape:()=>Dn,tickModulator:()=>L,ticks:()=>ft,time:()=>ut,timeModulator:()=>dt,timingSourceFactory:()=>Tn,triangleShape:()=>En,wave:()=>jn,waveFromSource:()=>Mn,weighted:()=>Pn,weightedAverage:()=>Nn,weightedSource:()=>Fn});export{$t as A,ft as B,an as C,Z as D,en as E,J as F,Ee as G,dt as H,Dt as I,wt as L,Yt as M,Y as N,Zt as O,Jt as P,pt as R,rn as S,tn as T,j as U,ut as V,De as W,gn as _,kn as a,sn as b,Dn as c,Mn as d,Tn as f,Sn as g,wn as h,Nn as i,Xt as j,Qt as k,En as l,$ as m,Pn as n,An as o,Cn as p,Fn as r,On as s,In as t,jn as u,hn as v,nn as w,on as x,cn as y,L as z};