@pixodesk/svg-animator-web 1.0.28 → 1.0.30
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/README.md +1 -1
- package/dist/index.cjs +107 -25
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +105 -24
- package/dist/index.js.map +1 -1
- package/dist/index.min.cjs +1 -1
- package/dist/index.min.js +1 -1
- package/dist/index.prerendered-waapi.umd.js.map +1 -1
- package/dist/index.prerendered.umd.js +28 -2
- package/dist/index.prerendered.umd.js.map +1 -1
- package/dist/index.prerendered.umd.min.js +1 -1
- package/dist/index.umd.js +104 -24
- package/dist/index.umd.js.map +1 -1
- package/dist/index.umd.min.js +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var PixodeskAnimator=(()=>{var n=Object.defineProperty,t=Object.defineProperties,e=Object.getOwnPropertyDescriptor,o=Object.getOwnPropertyDescriptors,r=Object.getOwnPropertyNames,l=Object.getOwnPropertySymbols,i=Object.prototype.hasOwnProperty,u=Object.prototype.propertyIsEnumerable,c=(t,e,o)=>e in t?n(t,e,{enumerable:!0,configurable:!0,writable:!0,value:o}):t[e]=o,s=(n,t)=>{for(var e in t||(t={}))i.call(t,e)&&c(n,e,t[e]);if(l)for(var e of l(t))u.call(t,e)&&c(n,e,t[e]);return n},a=(n,e)=>t(n,o(e)),f={};function v(n,t=!1){var e,o,r,l;const i=n.v,u=n.i,c=n.o,s=n.c;if(!i.length)return"";const a=[],f=i.length;a.push("M"+i[0][0]+","+i[0][1]);for(let n=1;n<f;n++){const r=i[n-1],l=null!=(e=null==c?void 0:c[n-1])?e:r,s=null!=(o=null==u?void 0:u[n])?o:i[n],f=i[n];t||l[0]!==r[0]||l[1]!==r[1]||s[0]!==f[0]||s[1]!==f[1]?a.push("C"+l[0]+","+l[1]+","+s[0]+","+s[1]+","+f[0]+","+f[1]):a.push("L"+f[0]+","+f[1])}if(s&&f>0){const n=i[f-1],e=null!=(r=null==c?void 0:c[f-1])?r:n,o=null!=(l=null==u?void 0:u[0])?l:i[0],s=i[0];!t&&e[0]===n[0]&&e[1]===n[1]&&o[0]===s[0]&&o[1]===s[1]||a.push("C"+e[0]+","+e[1]+","+o[0]+","+o[1]+","+s[0]+","+s[1]),a.push("z")}return a.join("")}function d(n,t,e){return n+(t-n)*e}function m(n,t,e){const o=[],r=Math.max(n.length,t.length);for(let l=0;l<r;l++)o[l]=d(n[l]||0,t[l]||0,e);return o}function y(n,t,e){return[d(n[0]||0,t[0]||0,e),d(n[1]||0,t[1]||0,e),d(n[2]||0,t[2]||0,e),d(void 0===n[3]?1:n[3],void 0===t[3]?1:t[3],e)]}function p(n,t,e){const o=Math.max(n.length,t.length),r=[];for(let l=0;l<o;l++)r.push(b(n[l],t[l],e));return r}function b(n,t,e){var o,r,l,i,u,c,s,a,f;if(!n||!t)return n||t||{v:[]};const v=Math.min(Math.max(e,0),1),d=Math.min(n.v.length,t.v.length),y=[],p=[],b=[];for(let e=0;e<d;e++){const f=n.v[e],d=t.v[e];y.push(m(f,d,v));const h=null!=(r=null==(o=n.i)?void 0:o[e])?r:f,g=null!=(i=null==(l=t.i)?void 0:l[e])?i:d;p.push(m(h,g,v));const A=null!=(c=null==(u=n.o)?void 0:u[e])?c:f,w=null!=(a=null==(s=t.o)?void 0:s[e])?a:d;b.push(m(A,w,v))}return{v:y,i:p.length?p:void 0,o:b.length?b:void 0,c:null!=(f=n.c)?f:t.c}}function h(n,t,e){if(e<=0)return 0;if(e>=1)return 1;const o=3*n,r=3*(t-n)-o,l=1-o-r;function i(n){return((l*n+r)*n+o)*n}function u(n){return(3*l*n+2*r)*n+o}let c=e,s=0,a=1;for(let n=0;n<8;n++){const n=i(c)-e;if(Math.abs(n)<1e-6)return c;const t=u(c);if(Math.abs(t)<1e-6)break;c-=n/t}for(c=e;s<a;){const n=i(c);if(Math.abs(n-e)<1e-6)return c;e>n?s=c:a=c,c=(a+s)/2}return c}function g(n){const[t,e,o,r]=n,l=3*e,i=3*(r-e)-l,u=1-l-i;return function(n){return e=h(t,o,n),((u*e+i)*e+l)*e;var e}}function A(n,t,e){return[n[0]+(t[0]-n[0])*e,n[1]+(t[1]-n[1])*e]}function w(n,t){if(!n)return{left:void 0,right:void 0};if(t<=0)return{left:void 0,right:n};if(t>=1)return{left:n,right:void 0};const[e,o,r,l]=n,i=h(e,r,t),u=[e,o],c=[r,l],{left:s,right:a}=function(n,t,e,o,r){const l=A(n,t,r),i=A(t,e,r),u=A(e,o,r),c=A(l,i,r),s=A(i,u,r),a=A(c,s,r);return{left:[n,l,c,a],right:[a,s,u,o]}}([0,0],u,c,[1,1],i),f=s[3][0],v=s[3][1];let d,m;f>1e-9&&Math.abs(v)>1e-9&&(d=[s[1][0]/f,s[1][1]/v,s[2][0]/f,s[2][1]/v]);const y=1-f,p=1-v;return y>1e-9&&Math.abs(p)>1e-9&&(m=[(a[1][0]-f)/y,(a[1][1]-v)/p,(a[2][0]-f)/y,(a[2][1]-v)/p]),{left:d,right:m}}function M(n){if(n)return[1-n[2],1-n[3],1-n[0],1-n[1]]}function k(n){const t=Math.round(255*n[0]),e=Math.round(255*n[1]),o=Math.round(255*n[2]);return 4===n.length?"rgba("+t+","+e+","+o+","+n[3]+")":"rgb("+t+","+e+","+o+")"}function j(n){if(n){if(Array.isArray(n))return n;if("string"==typeof n)return n.startsWith("#")?function(n){const t=n.slice(1),e=t.length<=4,o=e?t[0]+t[0]:t.slice(0,2),r=e?t[1]+t[1]:t.slice(2,4),l=e?t[2]+t[2]:t.slice(4,6),i=4===t.length?t[3]+t[3]:8===t.length?t.slice(6,8):null,u=[parseInt(o,16)/255,parseInt(r,16)/255,parseInt(l,16)/255];return null!==i&&u.push(parseInt(i,16)/255),u}(n):n.startsWith("rgb")?function(n){var t;const e=null==(t=n.match(/rgba?\((.*)\)/))?void 0:t[1];if(!e)throw new Error("Invalid rgb/rgba format");const o=e.split(",").map(n=>+n.trim());return[o[0]/255,o[1]/255,o[2]/255,...void 0!==o[3]?[o[3]]:[]]}(n):void console.warn("Unsupported color format: "+n)}}((t,e)=>{for(var o in e)n(t,o,{get:e[o],enumerable:!0})})(f,{PX_ANIMATOR_DATA_KEY:()=>Yn,createAnimator:()=>Zn,setupAnimationTriggers:()=>Tn});var O=new Set(["color","fill","flood-color","lighting-color","stop-color","stroke"]),x=new Set(["translate","rotate","scale","skew"]),N=new Set(["offset-distance","offsetDistance"]);function S(n,t){var e;if(!n)return"";const o=null==(e=null==t?void 0:t.l)||e,r=[],l=n.translate,i=n.origin,u=n.rotate,c=n.skew,s=n.scale,a=o?"px":"",f=o?"deg":"";return l&&r.push("translate("+l[0]+a+","+l[1]+a+")"),i&&r.push("translate("+i[0]+a+","+i[1]+a+")"),null!=u&&r.push("rotate("+u+f+")"),null!=c&&r.push("skewX("+c+f+")"),s&&r.push("scale("+s[0]+","+s[1]+")"),i&&r.push("translate("+-i[0]+a+","+-i[1]+a+")"),r.join("")}var C=new Set(["offset-distance","offsetDistance"]),T=1e3;function U(n){return!n.includes("-")&&/[a-z][A-Z]/.test(n)}var z=new Set(["viewBox","preserveAspectRatio","gradientUnits","gradientTransform","spreadMethod","patternUnits","patternContentUnits","patternTransform","clipPathUnits","maskUnits","maskContentUnits","markerUnits","markerWidth","markerHeight","refX","refY","textLength","lengthAdjust","startOffset","filterUnits","primitiveUnits","tableValues","stdDeviation","baseFrequency","numOctaves","surfaceScale","diffuseConstant","specularConstant","specularExponent","kernelMatrix","kernelUnitLength","edgeMode","preserveAlpha","targetX","targetY"]);function F(n){return z.has(n)?n:n.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}function P(n,t,e){return Math.max(t,Math.min(n,e))}function I(n,t,e,o,r){if(r<=0)return[n[0],n[1]];if(r>=1)return[o[0],o[1]];const l=1-r,i=l*l,u=r*r,c=i*l,s=3*r*i,a=3*u*l,f=u*r;return[c*n[0]+s*t[0]+a*e[0]+f*o[0],c*n[1]+s*t[1]+a*e[1]+f*o[1]]}var R=1e-4;function D(n,t,e,o,r){const l=E(n,t,e,o,r);return 0===l[0]&&0===l[1]?E(n,t,e,o,r<.5?r+R:r-R):l}function E(n,t,e,o,r){const l=1-r,i=3*l*l,u=6*r*l,c=3*r*r;return[i*(t[0]-n[0])+u*(e[0]-t[0])+c*(o[0]-e[0]),i*(t[1]-n[1])+u*(e[1]-t[1])+c*(o[1]-e[1])]}function L(n,t){const{ts:e,ds:o}=n,r=e.length-1;if(t<=e[0])return o[0];if(t>=e[r])return o[r];let l=1,i=r;for(;l<i;){const n=l+i>>>1;e[n]<t?l=n+1:i=n}const u=e[i-1],c=e[i]-u,s=c>0?(t-u)/c:0;return o[i-1]+s*(o[i]-o[i-1])}function _(n){return"scroll"===(null==n?void 0:n.timelineSource)}var q="cover";function K(n,t,e,o){var r;const[l,i]=function(n,t,e){const o=t,r=e;switch(n){case"cover":return[0,o+r];case"entry":return[0,Math.min(o,r)];case"contain":return[Math.min(o,r),Math.max(o,r)];case"exit":return[Math.max(o,r),o+r];case"entry-crossing":return[0,o];case"exit-crossing":return[r,o+r]}}(null!=(r=null==n?void 0:n.phase)?r:q,e,o);return l+("number"==typeof(null==n?void 0:n.fraction)?n.fraction:t)*(i-l)}var V={auto:"auto",waapi:"waapi",frames:"frames"},W={waapi:V.waapi,frames:V.frames},Z={before:"before",after:"after"};function X(n){var t;return(null==n?void 0:n.animator)||(null==(t=null==n?void 0:n.meta)?void 0:t.animator)}function Y(n){var t;const e=null!=(t=n.value)?t:n.v;if(!e)return;if(Array.isArray(e)&&e.length>=2&&"number"==typeof e[0]&&"number"==typeof e[1])return[e[0],e[1]];const o=e.translate;return Array.isArray(o)&&o.length>=2?[o[0],o[1]]:void 0}function G(n){var t,e;return null!=(e=null!=(t=n.time)?t:n.t)?e:0}function H(n){var t;return null!=(t=n.easing)?t:n.e}function $(n){var t,e,o;const r=null!=(t=n.keyframes)?t:n.kfs;if(!Array.isArray(r))return!1;if(n.autoOrient)return!0;for(const n of r)if((null!=(e=n.tangentIn)?e:n.ti)||(null!=(o=n.tangentOut)?o:n.to))return!0;return!1}var B=new WeakMap;function Q(n,t,e,o){var r,l;let i=B.get(n);const u=null==i?void 0:i.get(t);if(u)return u;const c=null!=(r=n.tangentOut)?r:n.to,s=null!=(l=t.tangentIn)?l:t.ti,a=[e[0]+(c?c[0]:0),e[1]+(c?c[1]:0)],f=[o[0]+(s?s[0]:0),o[1]+(s?s[1]:0)],v=function(n,t,e,o,r=100){const l=r+1,i=new Float64Array(l),u=new Float64Array(l);let c=I(n,t,e,o,0);i[0]=0,u[0]=0;let s=0;for(let a=1;a<l;a++){const l=a/r,f=I(n,t,e,o,l),v=f[0]-c[0],d=f[1]-c[1];s+=Math.sqrt(v*v+d*d),i[a]=l,u[a]=s,c=f}return{ts:i,ds:u}}(e,a,f,o),d={P0:e,P1:a,P2:f,P3:o,m:v,h:v.ds[v.ds.length-1]};return i||(i=new WeakMap,B.set(n,i)),i.set(t,d),d}var J=.5,nn=5,tn=32;function en(n,t){var e,o,r,l;if(!$(n))return n;const i=null!=(e=n.keyframes)?e:n.kfs;if(!Array.isArray(i)||i.length<2)return n;const u=!!n.autoOrient,c=null!=(o=null==t?void 0:t.A)?o:J,s=null!=(r=null==t?void 0:t.M)?r:nn,a=null!=(l=null==t?void 0:t.j)?l:tn,f=[],v=Y(i[0]);if(!v)return n;const d=u?function(n,t){const e=Y(n),o=Y(t);if(!e||!o)return 0;const r=Q(n,t,e,o),l=D(r.P0,r.P1,r.P2,r.P3,0);return 180*Math.atan2(l[1],l[0])/Math.PI}(i[0],i[1]):void 0;f.push(on(G(i[0]),un(rn(i[0]),rn(i[0]),0,v,d,u)));for(let n=0;n<i.length-1;n++){const t=i[n],e=i[n+1],o=Y(t),r=Y(e);o&&r?(u&&n>0&&sn(f,t,e,o,r,s),fn(f,t,e,o,r,u,c,s,a)):f.push(on(G(e),un(rn(e),rn(e),1,null!=r?r:[0,0],void 0,u)))}const m=H(i[i.length-1]);m&&(f[f.length-1].e=m),u&&function(n){var t;let e;for(const o of n){const n=null!=(t=o.v)?t:o.value;if(!n||"number"!=typeof n.rotate)continue;if(void 0===e){e=n.rotate;continue}let r=n.rotate;for(;r-e>180;)r-=360;for(;r-e<-180;)r+=360;n.rotate=r,e=r}}(f);const y={kfs:f};return void 0!==n.loop&&(y.loop=n.loop),y}function on(n,t){return{t:n,v:t}}function rn(n){var t;const e=null!=(t=n.value)?t:n.v;if(e&&"object"==typeof e&&!Array.isArray(e))return e}function ln(n,t,e){if(void 0===n)return t;if(void 0===t)return n;if("number"==typeof n&&"number"==typeof t)return n+(t-n)*e;if(Array.isArray(n)&&Array.isArray(t)&&n.length===t.length){const o=new Array(n.length);for(let r=0;r<n.length;r++){const l="number"==typeof n[r]?n[r]:0,i="number"==typeof t[r]?t[r]:0;o[r]=l+(i-l)*e}return o}return e<.5?n:t}function un(n,t,e,o,r,l){const i={translate:o},u=new Set;if(n)for(const t of Object.keys(n))u.add(t);if(t)for(const n of Object.keys(t))u.add(n);for(const o of u){if("translate"===o)continue;if("rotate"===o&&l)continue;const r=null==n?void 0:n[o],u=null==t?void 0:t[o];void 0===r&&void 0===u||(i[o]=ln(r,u,e))}return void 0!==r&&(i.rotate=r+cn(n,t,e)),i}function cn(n,t,e){const o="number"==typeof(null==n?void 0:n.rotate)?n.rotate:void 0,r="number"==typeof(null==t?void 0:t.rotate)?t.rotate:void 0;if(void 0===o&&void 0===r)return 0;const l=ln(o,r,e);return"number"==typeof l?l:0}function sn(n,t,e,o,r,l){var i;const u=n[n.length-1],c=null!=(i=u.v)?i:u.value,s=null==c?void 0:c.rotate;if("number"!=typeof s)return;const a=rn(t),f=s-cn(a,a,0),v=Q(t,e,o,r),d=D(v.P0,v.P1,v.P2,v.P3,0),m=180*Math.atan2(d[1],d[0])/Math.PI,y=function(n,t){let e=n-t;for(;e>180;)e-=360;for(;e<-180;)e+=360;return e}(m,f);if(Math.abs(y)<=l)return;const p=G(t),b=Math.min(p+an,(p+G(e))/2),h=un(rn(t),rn(t),0,o,m,!0);n.push(on(b,h))}var an=.05;function fn(n,t,e,o,r,l,i,u,c){const s=Q(t,e,o,r),a=G(t),f=G(e),v=H(t),d=(m=v)?g([m[1],m[0],m[3],m[2]]):n=>n;var m;const y=rn(t),p=rn(e),b=function(n,t,e,o,r){const l=[];vn(n.P0[0],n.P1[0],n.P2[0],n.P3[0],l),vn(n.P0[1],n.P1[1],n.P2[1],n.P3[1],l),l.sort((n,t)=>n-t);const i=[0];for(const n of l)n>i[i.length-1]+1e-6&&n<.999999&&i.push(n);i.push(1);const u=[],c={O:r-i.length};for(let r=0;r<i.length-1;r++)dn(i[r],i[r+1],u,n,t,e,o,c);return u}(s,l,i,u,c),h=[];for(const n of b){const t=L(s.m,n),e=P(s.h>0?t/s.h:n,0,1),o={u:P(d(e),0,1),p:e,N:I(s.P0,s.P1,s.P2,s.P3,n)};if(l){const t=D(s.P0,s.P1,s.P2,s.P3,n);o.S=180*Math.atan2(t[1],t[0])/Math.PI}h.push(o)}let A=v,M=0;const k=n.length-1;for(let t=0;t<h.length;t++){const e=h[t],o=M<1?P((e.u-M)/(1-M),0,1):1,{left:r,right:i}=w(A,o),u=0===t?k:n.length-1;r?n[u].e=r:delete n[u].e;const c=a+e.u*(f-a),s=un(y,p,e.p,e.N,e.S,l);n.push(on(c,s)),A=i,M=e.u}}function vn(n,t,e,o,r){const l=t-n,i=e-t,u=l-2*i+(o-e),c=2*(i-l),s=l;if(Math.abs(u)<1e-10){if(Math.abs(c)>1e-10){const n=-s/c;n>1e-6&&n<.999999&&r.push(n)}return}const a=c*c-4*u*s;if(a<0)return;const f=Math.sqrt(a),v=(-c-f)/(2*u),d=(-c+f)/(2*u);v>1e-6&&v<.999999&&r.push(v),d>1e-6&&d<.999999&&r.push(d)}function dn(n,t,e,o,r,l,i,u){const c=(n+t)/2,s=I(o.P0,o.P1,o.P2,o.P3,n),a=I(o.P0,o.P1,o.P2,o.P3,t),f=t-n,v=I(o.P0,o.P1,o.P2,o.P3,n+.25*f),d=I(o.P0,o.P1,o.P2,o.P3,c),m=I(o.P0,o.P1,o.P2,o.P3,n+.75*f),y=Math.max(mn(v,s,a),mn(d,s,a),mn(m,s,a));let p=!0;if(r){const e=D(o.P0,o.P1,o.P2,o.P3,n),r=D(o.P0,o.P1,o.P2,o.P3,t),l=180*Math.atan2(e[1],e[0])/Math.PI,u=180*Math.atan2(r[1],r[0])/Math.PI;let c=Math.abs(l-u);c>180&&(c=360-c),c>i&&(p=!1)}y<=l&&p||u.O<=0||f<1e-6?e.push(t):(u.O-=1,dn(n,c,e,o,r,l,i,u),dn(c,t,e,o,r,l,i,u))}function mn(n,t,e){const o=e[0]-t[0],r=e[1]-t[1],l=o*o+r*r;if(l<1e-20){const e=n[0]-t[0],o=n[1]-t[1];return Math.sqrt(e*e+o*o)}const i=(n[0]-t[0])*r-(n[1]-t[1])*o;return Math.abs(i)/Math.sqrt(l)}var yn=1;function pn(n,t){if(n===t)return!0;if(typeof n!=typeof t||null===n||null===t||"object"!=typeof n)return!1;if(Array.isArray(n)!==Array.isArray(t))return!1;const e=Object.keys(n),o=Object.keys(t);return e.length===o.length&&e.every(e=>pn(n[e],t[e]))}function bn(n){const t=[];let e;const o=function(n){const t=n.split(/([MLCZmlcz]|[\s,]+)/).map(n=>n.trim()).filter(n=>n&&","!==n),e=[];let o=null;for(const n of t)if(/[MLCZmlcz]/.test(n))o={type:n,values:[]},e.push(o);else if(o){const t=+n;o.values.push(Number.isNaN(t)?0:t)}return e}(n);for(const n of o){const o=n.type,r=n.values;if("M"===o||"m"===o){const n=r[0]||0,o=r[1]||0;e={v:[[n,o]],i:[[n,o]],o:[[n,o]],c:!1},t.push(e);continue}if(e||(e={v:[[0,0]],i:[[0,0]],o:[[0,0]],c:!1},t.push(e)),"L"===o){const n=r[0]||0,t=r[1]||0;e.v.push([n,t]),e.i.push([n,t]),e.o.push([n,t])}else if("C"===o){const n=r[0]||0,t=r[1]||0,o=r[2]||0,l=r[3]||0,i=r[4]||0,u=r[5]||0;e.o[e.o.length-1]=[n,t],e.v.push([i,u]),e.i.push([o,l]),e.o.push([i,u])}else"Z"===o||"z"===o?e.c=!0:console.warn('Unsupported path command "'+o+'"')}return t}function hn(n){return n.startsWith("path(")&&n.endsWith(")")?n.slice(5,-1):/^[MmZzLlHhVvCcSsQqTtAa]/.test(n)?n:void 0}function gn(n){return"string"==typeof n&&void 0!==hn(n)}function An(n){if(n&&"object"==typeof n&&"string"==typeof n.path){const t=hn(n.path);return t?{paths:bn(t)}:n}if(n&&"object"==typeof n&&"paths"in n){const t=n.paths;if(Array.isArray(t)&&t.length>0&&gn(t[0])){const n=[];for(const e of t){const t=hn(e);t&&n.push(...bn(t))}return{paths:n}}return n}if(Array.isArray(n)){if(n.length>0&&gn(n[0])){const t=[];for(const e of n){const n=hn(e);n&&t.push(...bn(n))}return{paths:t}}return{paths:n}}return gn(n)?{paths:bn(hn(n))}:n}function wn(n,t){var e;if(n)return Array.isArray(n)?n:(null==(e=null==t?void 0:t.easings)?void 0:e[n])?t.easings[n]:void console.warn("Unknown easing name: "+n)}function Mn(n,t){var e;if("string"==typeof n){const o=null==(e=null==t?void 0:t.animations)?void 0:e[n];return o||console.warn("Unknown animation name: "+n),o}return n}function kn(n,t,e,o){var r,l;return"d"===n?{paths:p(null!=(r=null==t?void 0:t.paths)?r:Array.isArray(t)?t:[],null!=(l=null==e?void 0:e.paths)?l:Array.isArray(e)?e:[],o)}:O.has(n)?y(t||[0,0,0,1],e||[0,0,0,1],o):"transform"!==n||"object"!=typeof t||null===t||Array.isArray(t)||"object"!=typeof e||null===e||Array.isArray(e)?"rotate"===n&&"number"==typeof t&&"number"==typeof e?d(t,e,o):x.has(n)||"stroke-dasharray"===n||"strokeDasharray"===n?m(t||[],e||[],o):d(+(t||0),+(e||0),o):function(n,t,e){const o=new Set([...Object.keys(null!=n?n:{}),...Object.keys(null!=t?t:{})]),r={};for(const l of o){const o=null==n?void 0:n[l],i=null==t?void 0:t[l];if("rotate"===l||"skew"===l)r[l]=d(+(null!=o?o:0),+(null!=i?i:0),e);else if("translate"===l||"scale"===l||"origin"===l){const n="scale"===l?[1,1]:[0,0];r[l]=m(o||n,i||n,e)}else r[l]=null!=i?i:o}return r}(t,e,o)}function jn(n,t,e,o){var r,l,i,u,c,f,v;const d=t.keyframes||t.kfs||[],m=[];for(const t of d){const e=null!=(l=null!=(r=t.time)?r:t.t)?l:0;let s=null!=(i=t.value)?i:t.v;const a=null!=(u=t.easing)?u:t.e;"d"===n&&(s=An(s));const d=U(n)?F(n):n;O.has(d)&&(s=null!=(c=j(s))?c:s);const y={t:e,v:s,e:wn(a,o)},p=null!=(f=t.tangentIn)?f:t.ti,b=null!=(v=t.tangentOut)?v:t.to;p&&(y.tangentIn=p),b&&(y.tangentOut=b),m.push(y)}m.sort((n,t)=>{var e,o;return(null!=(e=n.t)?e:0)-(null!=(o=t.t)?o:0)});const y=t.loop,p=!0===y?{}:y||void 0;return p&&m.length>=2?function(n,t,e,o){var r,l,i,u,c;const f=t.length-1,v=P(null!=(r=e.segmentCount)?r:f,1,f);let d;d=e.extend===Z.before?t.slice(0,v+1):t.slice(f-v);const m=null!=(l=t[0].t)?l:0,y=null!=(i=t[t.length-1].t)?i:0;let p,b;e.extend===Z.before?(p=0,b=m):(p=y,b=o);const h=b-p;if(h<=0)return t;const A=null!=(u=d[0].t)?u:0,k=(null!=(c=d[d.length-1].t)?c:0)-A;if(k<=0)return t;const j=d.map(n=>{var t,e;return{C:(n.t-A)/k,v:n.v,e:n.e,tangentIn:null!=(t=n.tangentIn)?t:n.ti,tangentOut:null!=(e=n.tangentOut)?e:n.to}}),O=Math.floor(h/k),x=h-O*k,N=x/k,S=[],C=e.extend!==Z.before,T=t[t.length-1];let U,z=!1;function F(t,e,o){var r;let l;if(e){l=[];for(let n=j.length-1;n>=0;n--)l.push({C:1-j[n].C,v:j[n].v,e:n>0?M(j[n-1].e):void 0,tangentIn:j[n].tangentOut,tangentOut:j[n].tangentIn})}else l=j;const i=void 0!==o?o:1;for(let e=0;e<l.length;e++){const o=l[e];if(o.C>i+1e-9){const r=l[e-1],u=o.C-r.C,c=(i-r.C)/u,s=r.e?g(r.e)(c):c,a=kn(n,r.v,o.v,s),{left:f}=w(r.e,c);return S.length>0&&r.C<=i&&(S[S.length-1].e=f),void S.push({t:t+i*k,v:a,e:void 0})}const u=S.length>0?S[S.length-1]:T,c=C&&0===e&&void 0!==u&&Math.abs((null!=(r=u.t)?r:0)-(t+o.C*k))<1e-9;if(c){if(pn(u.v,o.v)){S.length>0?(u.e=o.e,u.tangentOut=o.tangentOut):(U=o.e,z=!0);continue}S.length>0&&(delete u.tangentIn,delete u.tangentOut)}const s={t:t+o.C*k+(c?yn:0),v:o.v,e:e<l.length-1?o.e:void 0};o.tangentIn&&(s.tangentIn=o.tangentIn),o.tangentOut&&(s.tangentOut=o.tangentOut),S.push(s)}}if(e.extend===Z.before){N>1e-9&&function(t,e,o){let r;if(e){r=[];for(let n=j.length-1;n>=0;n--)r.push({C:1-j[n].C,v:j[n].v,e:n>0?M(j[n-1].e):void 0,tangentIn:j[n].tangentOut,tangentOut:j[n].tangentIn})}else r=j;const l=1-o;for(let e=0;e<r.length;e++){const o=r[e];if(o.C<l-1e-9)continue;const i=r[e-1];if(i&&i.C<l-1e-9&&o.C>l+1e-9){const e=o.C-i.C,r=(l-i.C)/e,u=i.e?g(i.e)(r):r,c=kn(n,i.v,o.v,u),{right:s}=w(i.e,r);S.push({t:t,v:c,e:s})}const u={t:t+(o.C-l)*k,v:o.v,e:e<r.length-1?o.e:void 0};o.tangentIn&&(u.tangentIn=o.tangentIn),o.tangentOut&&(u.tangentOut=o.tangentOut),S.push(u)}}(p,!!e.alternate&&O%2==0,N);for(let n=0;n<O;n++){const t=O-1-n,o=!!e.alternate&&t%2==0;F(p+x+n*k,o)}}else{for(let n=0;n<O;n++){const t=!!e.alternate&&n%2==0;F(p+n*k,t)}if(N>1e-9){const n=!!e.alternate&&O%2==0;F(p+O*k,n,N)}}return e.extend===Z.before?[...S,...t]:z&&t.length>0?[...t.slice(0,-1),a(s({},t[t.length-1]),{e:U}),...S]:[...t,...S]}(n,m,p,e):m}var On=0;function xn(n,t=W.waapi){const e=X(n)||{},o=function(n){var t;if(n)return null==(t=X(n))?void 0:t.definitions}(n),r=e.duration||1e3,l=[],i=(n,e)=>{if(!e)return null;const l=function(n,t){if(!n)return[];const e=[];if("string"==typeof n){const o=Mn(n,t);o&&e.push(o)}else if(Array.isArray(n))for(const o of n){const n=Mn(o,t);n&&e.push(n)}else e.push(n);return e}(e,o);if(0===l.length)return null;const i=function(n,t,e,o=W.waapi){const r={};for(const[l,i]of Object.entries(n)){if("transform"===l&&"offsetPath"===i.T&&void 0!==n.offsetDistance)continue;const u=jn(l,i,t,e);if(u.length>0){const n={kfs:u};void 0!==i.autoOrient&&(n.autoOrient=i.autoOrient),void 0!==i.loop&&(n.loop=i.loop),r[l]=o===W.waapi&&"transform"===l?en(n):n}}return r}(function(n){const t={};for(const e of n)for(const[n,o]of Object.entries(e))t[n]=o;return t}(l),r,o,t);return 0===Object.keys(i).length?null:{id:n,animate:i}},u=function(n){var t;if(!n)return;const e=null==(t=X(n))?void 0:t.animateById;return e?Object.entries(e).map(([n,t])=>({id:n,animate:t})):void 0}(n);if(u)for(const n of u){const t=i(n.id,n.animate);t&&l.push(t)}const c=n=>{const t=n.animate;if(t&&Object.keys(t).length>0){const e=n.id||"_px_el_"+ ++On;n.id=e;const o=i(e,t);o&&l.push(o)}if(n.children)for(let t=0;t<n.children.length;t++)c(n.children[t])};if(n.children)for(let t=0;t<n.children.length;t++)c(n.children[t]);return l}function Nn(n,t,e){var o,r,l,i,u,c,s;const a=t.kfs||t.keyframes||[];if(0===a.length)return null;const{U:f,F:b}=function(n,t){var e,o;const r=n.length-1;let l=n[0],i=n[r>0?1:0];for(let u=0;u<r;u++){const c=null!=(e=n[u].t)?e:0,s=null!=(o=n[u+1].t)?o:0;if(c<=t&&t<=s){l=n[u],i=n[u+1];break}t>s&&u===r-1&&(l=n[r>0?r-1:0],i=n[r])}return{U:l,F:i}}(a,e);let h=f===b?0:(A=e,w=null!=(o=f.t)?o:0,(M=null!=(r=b.t)?r:0)===w?0:0+(A-w)/(M-w)*1);var A,w,M;h=P(h,0,1);const j=null!=(l=f.e)?l:f.easing;if(j&&Array.isArray(j))try{h=g(j)(h)}catch(n){}let x=U(n)?F(n):n,C=null;const T=null!=(i=null==f?void 0:f.v)?i:null==f?void 0:f.value,z=null!=(u=null==b?void 0:b.v)?u:null==b?void 0:b.value;if("d"===x)C=p(null!=(c=null==T?void 0:T.paths)?c:Array.isArray(T)?T:[],null!=(s=null==z?void 0:z.paths)?s:Array.isArray(z)?z:[],h).map(n=>v(n)).join("");else if(O.has(x))C=k(y(T||[0,0,0,1],z||[0,0,0,1],h)),x=n;else if("stroke-dasharray"===x)C=m(T||[],z||[],h).join(" "),x=n;else if("transform"!==x||null===T||"object"!=typeof T||Array.isArray(T))"translate"===x?(C="translate("+m(T||[0,0],z||[0,0],h).join(",")+")",x="transform"):"rotate"===x?(C="rotate("+d(+(T||0),+(z||0),h)+")",x="transform"):"scale"===x?(C="scale("+m(T||[1,1],z||[1,1],h).join(",")+")",x="transform"):C=d(+(T||0),+(z||0),h);else{const n=new Set([...T?Object.keys(T):[],...z?Object.keys(z):[]]),e={};for(const t of n){const n=null==T?void 0:T[t],o=null==z?void 0:z[t];if("rotate"===t||"skew"===t)e[t]=d(+(null!=n?n:0),+(null!=o?o:0),h);else if("translate"===t||"scale"===t||"origin"===t){const r="scale"===t?[1,1]:[0,0],l=m(n||r,o||r,h);e[t]=l}}if($(t)){const n=T.translate,o=z.translate;if(Array.isArray(n)&&Array.isArray(o)){const r=function(n,t,e,o,r,l){const i=Q(n,t,e,o),u=0===i.h?r:function(n,t){const e=t*n.ds[n.ds.length-1],{ts:o,ds:r}=n,l=r.length-1;if(e<=0)return o[0];if(e>=r[l])return o[l];let i=1,u=l;for(;i<u;){const n=i+u>>>1;r[n]<e?i=n+1:u=n}const c=r[u-1],s=r[u]-c,a=s>0?(e-c)/s:0;return o[u-1]+a*(o[u]-o[u-1])}(i.m,r),c=I(i.P0,i.P1,i.P2,i.P3,u);if(!l)return{translate:c};const s=D(i.P0,i.P1,i.P2,i.P3,u);return{translate:c,S:180*Math.atan2(s[1],s[0])/Math.PI}}(f,b,[+n[0],+n[1]],[+o[0],+o[1]],h,!!t.autoOrient);e.translate=[r.translate[0],r.translate[1]],void 0!==r.S&&(e.rotate=r.S)}}C=S(e,{l:!1}),x="transform"}return N.has(x)&&"number"==typeof C&&(C=100*C+"%"),{k:x,v:null===C?"":""+C}}function Sn(n,t){const e={};for(const[o,r]of Object.entries(n)){const n=Nn(o,r,t);n&&(e[n.k]=n.v)}return e}function Cn(n){const t=globalThis;"function"!=typeof t.cancelAnimationFrame?t.clearTimeout(n):t.cancelAnimationFrame(n)}function Tn(n,t){const{startOn:e,outAction:o="continue",scrollIntoViewThreshold:r=0}=t,l=n.getRootElement();if(!l)return console.warn("setupAnimationTriggers: No root element found for animation."),n;let i=!1;const u=()=>{i&&(i=!1,n.setPlaybackRate(1)),n.play()},c=()=>{switch(o){case"pause":n.pause();break;case"reset":n.cancel();break;case"reverse":i=!0,n.setPlaybackRate(-1),n.play()}};switch(e){case"load":{const n=()=>u();"complete"===document.readyState?n():window.addEventListener("load",n,{once:!0});break}case"mouseOver":{let n=!1;const t=()=>{n=!0,u()},e=()=>{n&&c()};l.addEventListener("mouseenter",t),l.addEventListener("mouseleave",e);break}case"click":{const t=()=>{n.isPlaying()?c():u()};l.addEventListener("click",t);break}case"scrollIntoView":{const n=n=>{var t,e;const o=n.boundingClientRect,r=n.intersectionRect;if(!(null==o?void 0:o.height)||!r)return n.intersectionRatio;const l="undefined"!=typeof window&&window.innerHeight?window.innerHeight:1/0,i=null!=(e=null==(t=n.rootBounds)?void 0:t.height)?e:1/0,u=Math.min(l,i),c=Math.min(o.height,Number.isFinite(u)?u:o.height);return c>0?r.height/c:n.intersectionRatio},t=Array.from({length:21},(n,t)=>t/20);let e=!1;new IntersectionObserver(t=>{t.forEach(t=>{t.isIntersecting&&n(t)>=r?(e=!0,u()):e&&(e=!1,c())})},{threshold:t}).observe(l);break}}return n}function Un(n){return"#"+n}function zn(n,t,e,o){const r=X(n)||{};if(!o)if(n.id){const t=Un(n.id);(o=document.querySelector(t))||console.warn("createFrameLoopAnimator: No root element found for selector: ",t)}else console.warn("createFrameLoopAnimator: No root element provided");const l=function(n,t,e){var o;const r=X(n)||{},l=xn(n,W.frames),i=r.iterations;let u=1;"number"==typeof i&&(u=i||1),"infinite"===i&&(u=1/0),u<1&&(u=1);const c=+(r.duration||T),s=c&&u?c*(u===1/0?1/0:u):c?(null!=u?u:1)*c:0,a=r.direction||"normal",f=null!=(o=r.fill)?o:"forwards",v="forwards"===f||"both"===f,d="backwards"===f||"both"===f;let m=null,y=!1,p=-(r.delay||0),b=0,h=1,g=!1;const A=r.frameRate,w=A&&A>0?1e3/A:0;let M=0;const k=()=>{const n=b?(Date.now()-b)*h:0;return p+n},j=()=>{let n=k();return Number.isFinite(s)&&n>s&&(n=s),n<0&&(n=0),n};function O(n){let e=function(){const t=c>0?c:1;let e=0,o=0;c>0?(n=P(n,0,u*t),o=Math.max(0,Math.ceil(n/t)-1),o=Math.min(o,u-1),e=P((n-o*t)/t,0,1)):e=n;const r=a||"normal";let l=e;return"reverse"===r?l=1-e:"alternate"===r?o%2==1&&(l=1-e):"alternate-reverse"===r&&o%2==0&&(l=1-e),l}();for(const n of l||[]){const o=n.animate;if(!o||"object"!=typeof o||Array.isArray(o)){console.warn("Empty or unresolved binding",n);continue}const r=Sn(o,e*c);for(const[e,o]of Object.entries(r))t.setAttribute(n.id,e,o)}}r.delay&&(r.delay<0?O(j()):d&&O(0));const x=()=>!!y&&!!t.isConnected()&&(h<0?k()>0:!(Number.isFinite(s)&&j()>=s)),N=n=>{null!==m&&(Cn(m),m=null),(n||x())&&(m=function(n){const t=globalThis;return"function"==typeof t.requestAnimationFrame?t.requestAnimationFrame(n):t.setTimeout(n,16)}(()=>{m=null,(()=>{var n,o;if(!t.isConnected())return void S();const r=j(),l=k();if(l<0&&h>0)d&&O(0);else{if(h<0&&l<=0)return S(),O(0),void(g||(g=!0,null==(n=null==e?void 0:e.P)||n.call(e)));if(h>0&&s&&Number.isFinite(s)&&r>=s)return S(),O(v?s:0),void(g||(g=!0,null==(o=null==e?void 0:e.P)||o.call(e)));if(w>0){const n=Date.now();if(M&&n-M<w)return;M=n}O(r)}})(),N()}))},S=()=>{if(!y)return;let n=k();Number.isFinite(s)&&n>s&&(n=s),p=n,b=0,y=!1,null!==m&&(Cn(m),m=null),n>=0?O(n):d&&O(0)},C={isReady:()=>!0,getRootElement:()=>null,isPlaying:()=>x(),play:()=>{var n;(()=>{if(!y){if(h>=0)Number.isFinite(s)&&p>=s&&(p=0);else if(p<=0){if(!Number.isFinite(s))return void console.warn("play: cannot start reverse playback of an infinite animation from time 0");p=s}g=!1,y=!0,b=Date.now(),N(!0)}})(),null==(n=null==e?void 0:e.I)||n.call(e)},pause:()=>{var n;S(),null==(n=null==e?void 0:e.R)||n.call(e)},cancel:()=>{var n;S(),p=0,b=0,y=!1,g=!1,O(p),null==(n=null==e?void 0:e.D)||n.call(e)},finish:()=>{((n=!0)=>{var t;p=Number.isFinite(s)?s:j(),b=0,y=!1,null!==m&&(Cn(m),m=null),O(v?p:0),n&&!g&&(g=!0,null==(t=null==e?void 0:e.P)||t.call(e))})(!0)},setPlaybackRate:n=>{if(!isFinite(n)||0===n)return void console.warn("setPlaybackRate: rate must be finite and non-zero");let t=k();Number.isFinite(s)&&t>s&&(t=s),n<0!=h<0&&(g=!1),h=n,p=t,y&&(b=Date.now())},getCurrentTime:()=>j(),setCurrentTime:n=>{n<0&&(n=0),Number.isFinite(s)&&n>s&&(n=s),p=n,y&&(b=Date.now()),(!Number.isFinite(s)||n<s)&&(g=!1),O(j())},destroy:()=>{var n;C.cancel(),null==(n=null==e?void 0:e.L)||n.call(e)}};return C}(n,t||function(n){const t=new Set;return{isConnected:()=>!n||n.isConnected,setAttribute:(e,o,r)=>{o=F(o);const l=Un(e),i=(null==n?void 0:n.querySelectorAll(l))||document.querySelectorAll(l);0!==i.length||t.has(l)||(t.add(l),console.warn('setAttribute: No elements found for selector "'+l+'"'));for(let n=0;n<i.length;n++){const t=i[n],e="transform"===o&&"pattern"===t.tagName?"patternTransform":o;t.setAttribute(e,r),C.has(o)&&(t.style[o]=r)}}}}(o),e),i=a(s({},l),{getRootElement:()=>o||null});return r.trigger&&(_(r)?console.warn("scroll timeline: `animator.trigger` is ignored (triggers do not apply to scroll-driven playback)"):Tn(i,r.trigger)),i}function Fn(n,t,e,o){var r,l;let i=null!=(r=n.v)?r:n.value;const u=null!=(l=n.e)?l:n.easing,c={offset:t,easing:u&&Array.isArray(u)?"cubic-bezier("+u.join(",")+")":void 0};let s,a=e;var f;return O.has(e)&&Array.isArray(i)?s=k(i):"transform"!==e||null===i||"object"!=typeof i||Array.isArray(i)?x.has(e)?(Array.isArray(i)&&("translate"===e&&(i=i.map(n=>n+"px")),i=i.join(",")),"rotate"===e&&(i+="deg"),s=e+"("+i+")",a="transform"):s="d"===e?'path("'+(i&&"object"==typeof i&&Array.isArray(i.paths)?i.paths:[]).map(n=>v(n,!0)).join("")+'")':N.has(e)&&"number"==typeof i?100*i+"%":""+i:(s=S(i,{l:!0}),a="transform"),CSS.supports(F(a),s)||o.add(a),a=(f=a).includes("-")?f.replace(/-([a-z])/g,(n,t)=>t.toUpperCase()):f,c[a]=s,c}function Pn(n,t,e){var o,r,l,i,u;const c=[];for(let f=0;f<t.length;f++){const v=t[f],d=null!=(o=v.t)?o:0;if(d<0){const e=t[f+1];if(e&&(null!=(r=e.t)?r:0)>=0){const t=(0-d)/((null!=(l=e.t)?l:0)-d),o=v.e?g(v.e)(t):t,{right:r}=w(v.e,t);c.push({t:0,v:kn(n,v.v,e.v,o),e:r})}continue}if(d>e){const o=t[f-1];if(o&&(null!=(i=o.t)?i:0)<=e){const t=null!=(u=o.t)?u:0,r=(e-t)/(d-t),l=o.e?g(o.e)(r):r,{left:i}=w(o.e,r);c.length>0&&(c[c.length-1]=a(s({},c[c.length-1]),{e:i})),c.push({t:e,v:kn(n,o.v,v.v,l),e:void 0})}break}c.push(v)}return c}function In(n,t,e){var o;const r=new Map;for(const[l,i]of Object.entries(n)){const n=e.duration||1,u=Pn(l,i.kfs||i.keyframes||[],n),c=[];for(let e=0;e<u.length;e++){const r=u[e],i=Fn(r,P((null!=(o=r.t)?o:0)/n,0,1),l,t);0===e&&(i.offset||0)>0&&c.push(a(s({},i),{offset:0})),c.push(i)}c.length>0&&(c[c.length-1].offset||0)<1&&c.push(a(s({},c[c.length-1]),{offset:1})),c.length>0&&r.set(l,c)}return r}function Rn(n,t,e,o,r){var l;const i=X(n)||{};if(!e)if(n.id){const t=Un(n.id);(e=document.querySelector(t))||console.warn("createFrameLoopAnimator: No root element found for selector: ",t)}else console.warn("createFrameLoopAnimator: No root element provided");const u=xn(n,W.waapi),c=[],s=i.iterations;let a;"number"==typeof s&&(a=s),"infinite"===s&&(a=1/0);const f=new Set;let v=!1,d=!1;(null==u?void 0:u.length)||console.warn("createWebApiAnimator: No animation bindings defined");for(const n of u||[]){const o=n.animate;if(!o||"object"!=typeof o||Array.isArray(o)){console.warn("createWebApiAnimator: Empty or unresolved binding",n);continue}const u=Un(n.id),s=(null==e?void 0:e.querySelectorAll(u))||document.querySelectorAll(u);0===s.length&&console.warn('createWebApiAnimator: No elements found for selector "'+u+'"');const m=In(o,f,i),y=i.delay&&i.delay>0?i.delay:void 0;let p;if(i.delay&&i.delay<0&&i.duration){const n=-i.delay;p=a===1/0?n%i.duration:Math.min(n,i.duration*(null!=a?a:1))}const b={duration:i.duration,delay:y,fill:null!=(l=i.fill)?l:"forwards",direction:i.direction,iterations:a};for(let n=0;n<s.length;n++){const e=s[n];for(const[,n]of m)if(n.length>0)try{const o=new KeyframeEffect(e,n,b),l=new Animation(o,r?r.timeline:document.timeline);if(r){const n=l;r.rangeStart&&(n.rangeStart=r.rangeStart),r.rangeEnd&&(n.rangeEnd=r.rangeEnd)}(null==t?void 0:t.P)&&(l.onfinish=()=>{var n;v||(v=!0,null==(n=t.P)||n.call(t))}),(null==t?void 0:t.L)&&(l.onremove=()=>{var n;d||(d=!0,null==(n=t.L)||n.call(t))}),void 0!==p&&(l.currentTime=p),c.push(l)}catch(n){console.warn(n)}}}if(!o&&f.size)return console.warn("Unsupported CSS attrs: "+[...f].join(", ")),null;const m={isReady:()=>!0,getRootElement:()=>e||null,isPlaying:()=>{var n;return"running"===(null==(n=c[0])?void 0:n.playState)},play:()=>{var n;v=!1,c.forEach(n=>n.play()),null==(n=null==t?void 0:t.I)||n.call(t)},pause:()=>{var n;c.forEach(n=>n.pause()),null==(n=null==t?void 0:t.R)||n.call(t)},cancel:()=>{var n;v=!1,c.forEach(n=>n.cancel()),null==(n=null==t?void 0:t.D)||n.call(t)},finish:()=>{var n;for(const t of c)try{(null==(n=t.effect)?void 0:n.getTiming().iterations)===1/0?(t.effect.updateTiming({iterations:1}),t.finish(),t.effect.updateTiming({iterations:1/0})):t.finish()}catch(n){t.cancel()}},setPlaybackRate:n=>(c.forEach(t=>t.playbackRate=n),m),getCurrentTime:()=>{var n,t;const e=null!=(t=null==(n=c[0])?void 0:n.currentTime)?t:null;return null!==e?+e:null},setCurrentTime:n=>{v=!1,c.forEach(t=>{t.currentTime=n})},destroy:()=>{var n;m.cancel(),c.splice(0,c.length),d||(d=!0,null==(n=null==t?void 0:t.L)||n.call(t))}};return i.trigger&&("scroll"===i.timelineSource?console.warn("scroll timeline: `animator.trigger` is ignored (triggers do not apply to scroll-driven playback)"):Tn(m,i.trigger)),r&&c.forEach(n=>n.play()),m}function Dn(n,t,e){var o,r,l;const i="number"==typeof(null==n?void 0:n.fraction)?n.fraction:t,u=null==(r=null==(o=globalThis.CSS)?void 0:o.percent)?void 0:r.call(o,100*i);if(void 0!==u)return e?{_:null!=(l=null==n?void 0:n.phase)?l:"cover",offset:u}:{offset:u}}function En(n,t){const e=document.body,o=document.documentElement;for(let r=n.parentElement;r;r=r.parentElement){if(r===e||r===o)return null;const n=getComputedStyle(r),l="y"===t?n.overflowY:n.overflowX;if("auto"===l||"scroll"===l||"hidden"===l||"overlay"===l)return r}return null}function Ln(){return document.scrollingElement||document.documentElement}var _n="parent",qn="scroller";function Kn(n,t){var e,o;const r=null==t?void 0:t.trim();if(!r)return n;if(r===_n){let t=null;for(let e=n.parentElement;e&&e!==document.body;e=e.parentElement){const n=getComputedStyle(e).position;"sticky"!==n&&"fixed"!==n||(t=e)}return null!=(o=null!=(e=null==t?void 0:t.parentElement)?e:n.parentElement)?o:n}if(r===qn)return En(n,"y")||En(n,"x")||Ln();let l=null;try{l=document.querySelector(r)}catch(t){return console.warn('scroll timeline: subject "'+r+'" is not a valid selector — measuring the SVG itself'),n}return l||(console.warn('scroll timeline: subject "'+r+'" matched no element — measuring the SVG itself'),n)}function Vn(n,t){var e;const o=n;if(!(null==t?void 0:t.pin)||!o.style)return()=>{};const r=o.style,l=r.position,i=r.top;r.position="sticky",r.top=(null!=(e=t.pinTop)?e:0)+"px";let u=null;const c=n.parentElement;return t.pinDistance&&t.pinDistance>0&&c&&(u=document.createElement("div"),u.setAttribute("data-px-pin",""),u.style.height=100*t.pinDistance+"vh",c.insertBefore(u,n),u.appendChild(n)),()=>{r.position=l,r.top=i,(null==u?void 0:u.parentElement)&&(u.parentElement.insertBefore(n,u),u.remove())}}function Wn(n,t,e){let o,r=t;n.resetOnFinish&&(r=a(s({},t),{P:()=>{var n;null==(n=null==t?void 0:t.P)||n.call(t),null==o||o.cancel()}}));const l=e(r);return o=l,n.debugInstName&&(window[n.debugInstName]=l),l}function Zn(n){return function(n,t,e,o){const r=X(n)||{};return _(r)?Wn(r,e,e=>{var l,i;let u=()=>{};if(r.mode!==V.frames&&"native"===(null==(l=r.scroll)?void 0:l.driver)&&o){u=Vn(o,r.scroll);const t=function(n,t){var e,o,r,l;if(!t||!_(t))return null;const i=t.scroll||{},u=null!=(e=i.kind)?e:"view";if(i.smoothing)return console.warn('scroll timeline: `smoothing` needs the built-in driver — ignoring `driver: "native"`'),null;const c=globalThis,s="view"===u,a=s?c.ViewTimeline:c.ScrollTimeline;if("function"!=typeof a)return null;const f=null!=(o=i.axis)?o:"block";let v;try{v=new a(s?{subject:Kn(n,i.subject),axis:f}:{source:"root"===i.source?Ln():En(n,"y")||En(n,"x")||Ln(),axis:f})}catch(n){return console.warn("scroll timeline: native timeline construction failed — falling back to the custom driver",n),null}return{timeline:v,rangeStart:Dn(null==(r=i.range)?void 0:r.start,0,s),rangeEnd:Dn(null==(l=i.range)?void 0:l.end,1,s)}}(o,r);if(t){const l=Rn(n,e,o,r.mode===V.waapi,t);if(l){const n=l.destroy.bind(l);return l.destroy=()=>{u(),n()},l}}u(),u=()=>{}}const c=(r.mode!==V.frames?Rn(n,e,o,r.mode===V.waapi):null)||zn(n,t,e,o),s=(null==(i=c.getRootElement)?void 0:i.call(c))||o;if(s){u=Vn(s,r.scroll);const n=("number"==typeof(null==(a=r)?void 0:a.duration)&&a.duration>0?a.duration:T)*("number"==typeof(null==a?void 0:a.iterations)&&a.iterations>0?a.iterations:1),t=function(n,t,e){var o,r;if(!t||!_(t))return null;const l=t.scroll||{},i=null!=(o=l.kind)?o:"view",u=Kn(n,l.subject),c=En(n,"y")||En(n,"x"),s="scroll"===i&&"root"===l.source?Ln():c||Ln(),a=s===Ln(),f=function(n,t){const e=null!=n?n:"block";if("x"===e||"y"===e)return e;const o=!!t&&t.startsWith("vertical");return"inline"===e?o?"y":"x":o?"x":"y"}(l.axis,getComputedStyle(s).writingMode),v=()=>{if("scroll"===i)return function(n,t,e){var o,r;const l=t>0?P(n/t,0,1):1,i="number"==typeof(null==(o=null==e?void 0:e.start)?void 0:o.fraction)?e.start.fraction:0,u="number"==typeof(null==(r=null==e?void 0:e.end)?void 0:r.fraction)?e.end.fraction:1;return u<=i?l>=u?1:0:P((l-i)/(u-i),0,1)}("y"===f?s.scrollTop:s.scrollLeft,"y"===f?s.scrollHeight-s.clientHeight:s.scrollWidth-s.clientWidth,l.range);const n=u.getBoundingClientRect();let t,e;if(a)t=0,e="y"===f?document.documentElement.clientHeight:document.documentElement.clientWidth;else{const n=s.getBoundingClientRect();t="y"===f?n.top:n.left,e="y"===f?s.clientHeight:s.clientWidth}return function(n,t,e,o){const r=e-n,l=K(null==o?void 0:o.start,0,t,e),i=K(null==o?void 0:o.end,1,t,e);return i<=l?r>=i?1:0:P((r-l)/(i-l),0,1)}(("y"===f?n.top:n.left)-t,"y"===f?n.height:n.width,e,l.range)},d=Math.max(0,null!=(r=l.smoothing)?r:0)/1e3;let m=!1,y=null,p=null,b=0,h=null;const g=()=>{h=null,m||(n=>{if(!d)return void e(n);if(null===y)return y=n,void e(n);if(null!==p)return;b=0;const t=n=>{if(p=null,m)return;const o=b?Math.min(.1,(n-b)/1e3):1/60;b=n;const r=v(),l=1-Math.exp(-o/d);y+=(r-y)*l,Math.abs(r-y)<.001&&(y=r),e(y),y!==r&&(p=requestAnimationFrame(t))};p=requestAnimationFrame(t)})(v())},A=()=>{m||null!==h||(h=requestAnimationFrame(g))},w=a?window:s;let M;w.addEventListener("scroll",A,{passive:!0}),window.addEventListener("resize",A,{passive:!0}),"undefined"!=typeof ResizeObserver&&(M=new ResizeObserver(A),M.observe(u),u!==n&&M.observe(n),a||M.observe(s));const k={destroy:()=>{m||(m=!0,w.removeEventListener("scroll",A),window.removeEventListener("resize",A),null==M||M.disconnect(),null!==h&&(cancelAnimationFrame(h),h=null),null!==p&&(cancelAnimationFrame(p),p=null))},refresh:()=>{m||(y=v(),e(y))}};return k.refresh(),k}(s,r,t=>c.setCurrentTime(t*n));if(t){const n=c.destroy.bind(c);c.destroy=()=>{t.destroy(),u(),n()}}}else console.warn("scroll timeline: no root element to observe — animation will stay at frame 0");var a;return c}):Wn(r,e,e=>r.mode===V.frames?zn(n,t,e,o):Rn(n,e,o,r.mode===V.waapi)||zn(n,t,e,o))}(function(n){if(!(null==n?void 0:n.data))throw new Error("createAnimator: `data` is required");return n.data}(n),n.q,n.K,null)}var Xn,Yn="data";return Xn=f,((t,o,l,u)=>{if(o&&"object"==typeof o||"function"==typeof o)for(let l of r(o))i.call(t,l)||void 0===l||n(t,l,{get:()=>o[l],enumerable:!(u=e(o,l))||u.enumerable});return t})(n({},"__esModule",{value:!0}),Xn)})();
|
|
1
|
+
"use strict";var PixodeskAnimator=(()=>{var n=Object.defineProperty,t=Object.defineProperties,e=Object.getOwnPropertyDescriptor,o=Object.getOwnPropertyDescriptors,r=Object.getOwnPropertyNames,l=Object.getOwnPropertySymbols,i=Object.prototype.hasOwnProperty,u=Object.prototype.propertyIsEnumerable,c=(t,e,o)=>e in t?n(t,e,{enumerable:!0,configurable:!0,writable:!0,value:o}):t[e]=o,s=(n,t)=>{for(var e in t||(t={}))i.call(t,e)&&c(n,e,t[e]);if(l)for(var e of l(t))u.call(t,e)&&c(n,e,t[e]);return n},a=(n,e)=>t(n,o(e)),f={};function v(n,t=!1){var e,o,r,l;const i=n.v,u=n.i,c=n.o,s=n.c;if(!i.length)return"";const a=[],f=i.length;a.push("M"+i[0][0]+","+i[0][1]);for(let n=1;n<f;n++){const r=i[n-1],l=null!=(e=null==c?void 0:c[n-1])?e:r,s=null!=(o=null==u?void 0:u[n])?o:i[n],f=i[n];t||l[0]!==r[0]||l[1]!==r[1]||s[0]!==f[0]||s[1]!==f[1]?a.push("C"+l[0]+","+l[1]+","+s[0]+","+s[1]+","+f[0]+","+f[1]):a.push("L"+f[0]+","+f[1])}if(s&&f>0){const n=i[f-1],e=null!=(r=null==c?void 0:c[f-1])?r:n,o=null!=(l=null==u?void 0:u[0])?l:i[0],s=i[0];!t&&e[0]===n[0]&&e[1]===n[1]&&o[0]===s[0]&&o[1]===s[1]||a.push("C"+e[0]+","+e[1]+","+o[0]+","+o[1]+","+s[0]+","+s[1]),a.push("z")}return a.join("")}function d(n,t,e){return n+(t-n)*e}function m(n,t,e){const o=[],r=Math.max(n.length,t.length);for(let l=0;l<r;l++)o[l]=d(n[l]||0,t[l]||0,e);return o}function y(n,t,e){return[d(n[0]||0,t[0]||0,e),d(n[1]||0,t[1]||0,e),d(n[2]||0,t[2]||0,e),d(void 0===n[3]?1:n[3],void 0===t[3]?1:t[3],e)]}function p(n,t,e){const o=Math.max(n.length,t.length),r=[];for(let l=0;l<o;l++)r.push(b(n[l],t[l],e));return r}function b(n,t,e){var o,r,l,i,u,c,s,a,f;if(!n||!t)return n||t||{v:[]};const v=Math.min(Math.max(e,0),1),d=Math.min(n.v.length,t.v.length),y=[],p=[],b=[];for(let e=0;e<d;e++){const f=n.v[e],d=t.v[e];y.push(m(f,d,v));const h=null!=(r=null==(o=n.i)?void 0:o[e])?r:f,g=null!=(i=null==(l=t.i)?void 0:l[e])?i:d;p.push(m(h,g,v));const w=null!=(c=null==(u=n.o)?void 0:u[e])?c:f,A=null!=(a=null==(s=t.o)?void 0:s[e])?a:d;b.push(m(w,A,v))}return{v:y,i:p.length?p:void 0,o:b.length?b:void 0,c:null!=(f=n.c)?f:t.c}}function h(n,t,e){if(e<=0)return 0;if(e>=1)return 1;const o=3*n,r=3*(t-n)-o,l=1-o-r;function i(n){return((l*n+r)*n+o)*n}function u(n){return(3*l*n+2*r)*n+o}let c=e,s=0,a=1;for(let n=0;n<8;n++){const n=i(c)-e;if(Math.abs(n)<1e-6)return c;const t=u(c);if(Math.abs(t)<1e-6)break;c-=n/t}for(c=e;s<a;){const n=i(c);if(Math.abs(n-e)<1e-6)return c;e>n?s=c:a=c,c=(a+s)/2}return c}function g(n){const[t,e,o,r]=n,l=3*e,i=3*(r-e)-l,u=1-l-i;return function(n){return e=h(t,o,n),((u*e+i)*e+l)*e;var e}}function w(n,t,e){return[n[0]+(t[0]-n[0])*e,n[1]+(t[1]-n[1])*e]}function A(n,t){if(!n)return{left:void 0,right:void 0};if(t<=0)return{left:void 0,right:n};if(t>=1)return{left:n,right:void 0};const[e,o,r,l]=n,i=h(e,r,t),u=[e,o],c=[r,l],{left:s,right:a}=function(n,t,e,o,r){const l=w(n,t,r),i=w(t,e,r),u=w(e,o,r),c=w(l,i,r),s=w(i,u,r),a=w(c,s,r);return{left:[n,l,c,a],right:[a,s,u,o]}}([0,0],u,c,[1,1],i),f=s[3][0],v=s[3][1];let d,m;f>1e-9&&Math.abs(v)>1e-9&&(d=[s[1][0]/f,s[1][1]/v,s[2][0]/f,s[2][1]/v]);const y=1-f,p=1-v;return y>1e-9&&Math.abs(p)>1e-9&&(m=[(a[1][0]-f)/y,(a[1][1]-v)/p,(a[2][0]-f)/y,(a[2][1]-v)/p]),{left:d,right:m}}function M(n){if(n)return[1-n[2],1-n[3],1-n[0],1-n[1]]}function k(n){const t=Math.round(255*n[0]),e=Math.round(255*n[1]),o=Math.round(255*n[2]);return 4===n.length?"rgba("+t+","+e+","+o+","+n[3]+")":"rgb("+t+","+e+","+o+")"}function j(n){if(n){if(Array.isArray(n))return n;if("string"==typeof n)return n.startsWith("#")?function(n){const t=n.slice(1),e=t.length<=4,o=e?t[0]+t[0]:t.slice(0,2),r=e?t[1]+t[1]:t.slice(2,4),l=e?t[2]+t[2]:t.slice(4,6),i=4===t.length?t[3]+t[3]:8===t.length?t.slice(6,8):null,u=[parseInt(o,16)/255,parseInt(r,16)/255,parseInt(l,16)/255];return null!==i&&u.push(parseInt(i,16)/255),u}(n):n.startsWith("rgb")?function(n){var t;const e=null==(t=n.match(/rgba?\((.*)\)/))?void 0:t[1];if(!e)throw new Error("Invalid rgb/rgba format");const o=e.split(",").map(n=>+n.trim());return[o[0]/255,o[1]/255,o[2]/255,...void 0!==o[3]?[o[3]]:[]]}(n):void console.warn("Unsupported color format: "+n)}}((t,e)=>{for(var o in e)n(t,o,{get:e[o],enumerable:!0})})(f,{PX_ANIMATOR_DATA_KEY:()=>Yn,createAnimator:()=>Zn,setupAnimationTriggers:()=>Tn});var O=new Set(["color","fill","flood-color","lighting-color","stop-color","stroke"]),x=new Set(["translate","rotate","scale","skew"]),N=new Set(["offset-distance","offsetDistance"]);function S(n,t){var e;if(!n)return"";const o=null==(e=null==t?void 0:t.l)||e,r=[],l=n.translate,i=n.origin,u=n.rotate,c=n.skew,s=n.scale,a=o?"px":"",f=o?"deg":"";return l&&r.push("translate("+l[0]+a+","+l[1]+a+")"),i&&r.push("translate("+i[0]+a+","+i[1]+a+")"),null!=u&&r.push("rotate("+u+f+")"),null!=c&&r.push("skewX("+c+f+")"),s&&r.push("scale("+s[0]+","+s[1]+")"),i&&r.push("translate("+-i[0]+a+","+-i[1]+a+")"),r.join("")}var C=new Set(["offset-distance","offsetDistance"]),T=1e3;function z(n){return!n.includes("-")&&/[a-z][A-Z]/.test(n)}var U=new Set(["viewBox","preserveAspectRatio","gradientUnits","gradientTransform","spreadMethod","patternUnits","patternContentUnits","patternTransform","clipPathUnits","maskUnits","maskContentUnits","markerUnits","markerWidth","markerHeight","refX","refY","textLength","lengthAdjust","startOffset","filterUnits","primitiveUnits","tableValues","stdDeviation","baseFrequency","numOctaves","surfaceScale","diffuseConstant","specularConstant","specularExponent","kernelMatrix","kernelUnitLength","edgeMode","preserveAlpha","targetX","targetY"]);function F(n){return U.has(n)?n:n.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}function R(n,t,e){return Math.max(t,Math.min(n,e))}function P(n,t,e,o,r){if(r<=0)return[n[0],n[1]];if(r>=1)return[o[0],o[1]];const l=1-r,i=l*l,u=r*r,c=i*l,s=3*r*i,a=3*u*l,f=u*r;return[c*n[0]+s*t[0]+a*e[0]+f*o[0],c*n[1]+s*t[1]+a*e[1]+f*o[1]]}var I=1e-4;function D(n,t,e,o,r){const l=E(n,t,e,o,r);return 0===l[0]&&0===l[1]?E(n,t,e,o,r<.5?r+I:r-I):l}function E(n,t,e,o,r){const l=1-r,i=3*l*l,u=6*r*l,c=3*r*r;return[i*(t[0]-n[0])+u*(e[0]-t[0])+c*(o[0]-e[0]),i*(t[1]-n[1])+u*(e[1]-t[1])+c*(o[1]-e[1])]}function L(n,t){const{ts:e,ds:o}=n,r=e.length-1;if(t<=e[0])return o[0];if(t>=e[r])return o[r];let l=1,i=r;for(;l<i;){const n=l+i>>>1;e[n]<t?l=n+1:i=n}const u=e[i-1],c=e[i]-u,s=c>0?(t-u)/c:0;return o[i-1]+s*(o[i]-o[i-1])}function _(n){return"scroll"===(null==n?void 0:n.timelineSource)}var q="cover";function K(n,t,e,o){var r;const[l,i]=function(n,t,e){const o=t,r=e;switch(n){case"cover":return[0,o+r];case"entry":return[0,Math.min(o,r)];case"contain":return[Math.min(o,r),Math.max(o,r)];case"exit":return[Math.max(o,r),o+r];case"entry-crossing":return[0,o];case"exit-crossing":return[r,o+r]}}(null!=(r=null==n?void 0:n.phase)?r:q,e,o);return l+("number"==typeof(null==n?void 0:n.fraction)?n.fraction:t)*(i-l)}var V={auto:"auto",waapi:"waapi",frames:"frames"},W={waapi:V.waapi,frames:V.frames},Z={before:"before",after:"after"};function X(n){var t;return(null==n?void 0:n.animator)||(null==(t=null==n?void 0:n.meta)?void 0:t.animator)}function Y(n){var t;const e=null!=(t=n.value)?t:n.v;if(!e)return;if(Array.isArray(e)&&e.length>=2&&"number"==typeof e[0]&&"number"==typeof e[1])return[e[0],e[1]];const o=e.translate;return Array.isArray(o)&&o.length>=2?[o[0],o[1]]:void 0}function G(n){var t,e;return null!=(e=null!=(t=n.time)?t:n.t)?e:0}function H(n){var t;return null!=(t=n.easing)?t:n.e}function $(n){var t,e,o;const r=null!=(t=n.keyframes)?t:n.kfs;if(!Array.isArray(r))return!1;if(n.autoOrient)return!0;for(const n of r)if((null!=(e=n.tangentIn)?e:n.ti)||(null!=(o=n.tangentOut)?o:n.to))return!0;return!1}var B=new WeakMap;function Q(n,t,e,o){var r,l;let i=B.get(n);const u=null==i?void 0:i.get(t);if(u)return u;const c=null!=(r=n.tangentOut)?r:n.to,s=null!=(l=t.tangentIn)?l:t.ti,a=[e[0]+(c?c[0]:0),e[1]+(c?c[1]:0)],f=[o[0]+(s?s[0]:0),o[1]+(s?s[1]:0)],v=function(n,t,e,o,r=100){const l=r+1,i=new Float64Array(l),u=new Float64Array(l);let c=P(n,t,e,o,0);i[0]=0,u[0]=0;let s=0;for(let a=1;a<l;a++){const l=a/r,f=P(n,t,e,o,l),v=f[0]-c[0],d=f[1]-c[1];s+=Math.sqrt(v*v+d*d),i[a]=l,u[a]=s,c=f}return{ts:i,ds:u}}(e,a,f,o),d={P0:e,P1:a,P2:f,P3:o,m:v,h:v.ds[v.ds.length-1]};return i||(i=new WeakMap,B.set(n,i)),i.set(t,d),d}var J=.5,nn=5,tn=32;function en(n,t){var e,o,r,l;if(!$(n))return n;const i=null!=(e=n.keyframes)?e:n.kfs;if(!Array.isArray(i)||i.length<2)return n;const u=!!n.autoOrient,c=null!=(o=null==t?void 0:t.A)?o:J,s=null!=(r=null==t?void 0:t.M)?r:nn,a=null!=(l=null==t?void 0:t.j)?l:tn,f=[],v=Y(i[0]);if(!v)return n;const d=u?function(n,t){const e=Y(n),o=Y(t);if(!e||!o)return 0;const r=Q(n,t,e,o),l=D(r.P0,r.P1,r.P2,r.P3,0);return 180*Math.atan2(l[1],l[0])/Math.PI}(i[0],i[1]):void 0;f.push(on(G(i[0]),un(rn(i[0]),rn(i[0]),0,v,d,u)));for(let n=0;n<i.length-1;n++){const t=i[n],e=i[n+1],o=Y(t),r=Y(e);o&&r?(u&&n>0&&sn(f,t,e,o,r,s),fn(f,t,e,o,r,u,c,s,a)):f.push(on(G(e),un(rn(e),rn(e),1,null!=r?r:[0,0],void 0,u)))}const m=H(i[i.length-1]);m&&(f[f.length-1].e=m),u&&function(n){var t;let e;for(const o of n){const n=null!=(t=o.v)?t:o.value;if(!n||"number"!=typeof n.rotate)continue;if(void 0===e){e=n.rotate;continue}let r=n.rotate;for(;r-e>180;)r-=360;for(;r-e<-180;)r+=360;n.rotate=r,e=r}}(f);const y={kfs:f};return void 0!==n.loop&&(y.loop=n.loop),y}function on(n,t){return{t:n,v:t}}function rn(n){var t;const e=null!=(t=n.value)?t:n.v;if(e&&"object"==typeof e&&!Array.isArray(e))return e}function ln(n,t,e){if(void 0===n)return t;if(void 0===t)return n;if("number"==typeof n&&"number"==typeof t)return n+(t-n)*e;if(Array.isArray(n)&&Array.isArray(t)&&n.length===t.length){const o=new Array(n.length);for(let r=0;r<n.length;r++){const l="number"==typeof n[r]?n[r]:0,i="number"==typeof t[r]?t[r]:0;o[r]=l+(i-l)*e}return o}return e<.5?n:t}function un(n,t,e,o,r,l){const i={translate:o},u=new Set;if(n)for(const t of Object.keys(n))u.add(t);if(t)for(const n of Object.keys(t))u.add(n);for(const o of u){if("translate"===o)continue;if("rotate"===o&&l)continue;const r=null==n?void 0:n[o],u=null==t?void 0:t[o];void 0===r&&void 0===u||(i[o]=ln(r,u,e))}return void 0!==r&&(i.rotate=r+cn(n,t,e)),i}function cn(n,t,e){const o="number"==typeof(null==n?void 0:n.rotate)?n.rotate:void 0,r="number"==typeof(null==t?void 0:t.rotate)?t.rotate:void 0;if(void 0===o&&void 0===r)return 0;const l=ln(o,r,e);return"number"==typeof l?l:0}function sn(n,t,e,o,r,l){var i;const u=n[n.length-1],c=null!=(i=u.v)?i:u.value,s=null==c?void 0:c.rotate;if("number"!=typeof s)return;const a=rn(t),f=s-cn(a,a,0),v=Q(t,e,o,r),d=D(v.P0,v.P1,v.P2,v.P3,0),m=180*Math.atan2(d[1],d[0])/Math.PI,y=function(n,t){let e=n-t;for(;e>180;)e-=360;for(;e<-180;)e+=360;return e}(m,f);if(Math.abs(y)<=l)return;const p=G(t),b=Math.min(p+an,(p+G(e))/2),h=un(rn(t),rn(t),0,o,m,!0);n.push(on(b,h))}var an=.05;function fn(n,t,e,o,r,l,i,u,c){const s=Q(t,e,o,r),a=G(t),f=G(e),v=H(t),d=(m=v)?g([m[1],m[0],m[3],m[2]]):n=>n;var m;const y=rn(t),p=rn(e),b=function(n,t,e,o,r){const l=[];vn(n.P0[0],n.P1[0],n.P2[0],n.P3[0],l),vn(n.P0[1],n.P1[1],n.P2[1],n.P3[1],l),l.sort((n,t)=>n-t);const i=[0];for(const n of l)n>i[i.length-1]+1e-6&&n<.999999&&i.push(n);i.push(1);const u=[],c={O:r-i.length};for(let r=0;r<i.length-1;r++)dn(i[r],i[r+1],u,n,t,e,o,c);return u}(s,l,i,u,c),h=[];for(const n of b){const t=L(s.m,n),e=R(s.h>0?t/s.h:n,0,1),o={u:R(d(e),0,1),p:e,N:P(s.P0,s.P1,s.P2,s.P3,n)};if(l){const t=D(s.P0,s.P1,s.P2,s.P3,n);o.S=180*Math.atan2(t[1],t[0])/Math.PI}h.push(o)}let w=v,M=0;const k=n.length-1;for(let t=0;t<h.length;t++){const e=h[t],o=M<1?R((e.u-M)/(1-M),0,1):1,{left:r,right:i}=A(w,o),u=0===t?k:n.length-1;r?n[u].e=r:delete n[u].e;const c=a+e.u*(f-a),s=un(y,p,e.p,e.N,e.S,l);n.push(on(c,s)),w=i,M=e.u}}function vn(n,t,e,o,r){const l=t-n,i=e-t,u=l-2*i+(o-e),c=2*(i-l),s=l;if(Math.abs(u)<1e-10){if(Math.abs(c)>1e-10){const n=-s/c;n>1e-6&&n<.999999&&r.push(n)}return}const a=c*c-4*u*s;if(a<0)return;const f=Math.sqrt(a),v=(-c-f)/(2*u),d=(-c+f)/(2*u);v>1e-6&&v<.999999&&r.push(v),d>1e-6&&d<.999999&&r.push(d)}function dn(n,t,e,o,r,l,i,u){const c=(n+t)/2,s=P(o.P0,o.P1,o.P2,o.P3,n),a=P(o.P0,o.P1,o.P2,o.P3,t),f=t-n,v=P(o.P0,o.P1,o.P2,o.P3,n+.25*f),d=P(o.P0,o.P1,o.P2,o.P3,c),m=P(o.P0,o.P1,o.P2,o.P3,n+.75*f),y=Math.max(mn(v,s,a),mn(d,s,a),mn(m,s,a));let p=!0;if(r){const e=D(o.P0,o.P1,o.P2,o.P3,n),r=D(o.P0,o.P1,o.P2,o.P3,t),l=180*Math.atan2(e[1],e[0])/Math.PI,u=180*Math.atan2(r[1],r[0])/Math.PI;let c=Math.abs(l-u);c>180&&(c=360-c),c>i&&(p=!1)}y<=l&&p||u.O<=0||f<1e-6?e.push(t):(u.O-=1,dn(n,c,e,o,r,l,i,u),dn(c,t,e,o,r,l,i,u))}function mn(n,t,e){const o=e[0]-t[0],r=e[1]-t[1],l=o*o+r*r;if(l<1e-20){const e=n[0]-t[0],o=n[1]-t[1];return Math.sqrt(e*e+o*o)}const i=(n[0]-t[0])*r-(n[1]-t[1])*o;return Math.abs(i)/Math.sqrt(l)}var yn=1;function pn(n,t){if(n===t)return!0;if(typeof n!=typeof t||null===n||null===t||"object"!=typeof n)return!1;if(Array.isArray(n)!==Array.isArray(t))return!1;const e=Object.keys(n),o=Object.keys(t);return e.length===o.length&&e.every(e=>pn(n[e],t[e]))}function bn(n){const t=[];let e;const o=function(n){const t=n.split(/([MLCZmlcz]|[\s,]+)/).map(n=>n.trim()).filter(n=>n&&","!==n),e=[];let o=null;for(const n of t)if(/[MLCZmlcz]/.test(n))o={type:n,values:[]},e.push(o);else if(o){const t=+n;o.values.push(Number.isNaN(t)?0:t)}return e}(n);for(const n of o){const o=n.type,r=n.values;if("M"===o||"m"===o){const n=r[0]||0,o=r[1]||0;e={v:[[n,o]],i:[[n,o]],o:[[n,o]],c:!1},t.push(e);continue}if(e||(e={v:[[0,0]],i:[[0,0]],o:[[0,0]],c:!1},t.push(e)),"L"===o){const n=r[0]||0,t=r[1]||0;e.v.push([n,t]),e.i.push([n,t]),e.o.push([n,t])}else if("C"===o){const n=r[0]||0,t=r[1]||0,o=r[2]||0,l=r[3]||0,i=r[4]||0,u=r[5]||0;e.o[e.o.length-1]=[n,t],e.v.push([i,u]),e.i.push([o,l]),e.o.push([i,u])}else"Z"===o||"z"===o?e.c=!0:console.warn('Unsupported path command "'+o+'"')}return t}function hn(n){return n.startsWith("path(")&&n.endsWith(")")?n.slice(5,-1):/^[MmZzLlHhVvCcSsQqTtAa]/.test(n)?n:void 0}function gn(n){return"string"==typeof n&&void 0!==hn(n)}function wn(n){if(n&&"object"==typeof n&&"string"==typeof n.path){const t=hn(n.path);return t?{paths:bn(t)}:n}if(n&&"object"==typeof n&&"paths"in n){const t=n.paths;if(Array.isArray(t)&&t.length>0&&gn(t[0])){const n=[];for(const e of t){const t=hn(e);t&&n.push(...bn(t))}return{paths:n}}return n}if(Array.isArray(n)){if(n.length>0&&gn(n[0])){const t=[];for(const e of n){const n=hn(e);n&&t.push(...bn(n))}return{paths:t}}return{paths:n}}return gn(n)?{paths:bn(hn(n))}:n}function An(n,t){var e;if(n)return Array.isArray(n)?n:(null==(e=null==t?void 0:t.easings)?void 0:e[n])?t.easings[n]:void console.warn("Unknown easing name: "+n)}function Mn(n,t){var e;if("string"==typeof n){const o=null==(e=null==t?void 0:t.animations)?void 0:e[n];return o||console.warn("Unknown animation name: "+n),o}return n}function kn(n,t,e,o){var r,l;return"d"===n?{paths:p(null!=(r=null==t?void 0:t.paths)?r:Array.isArray(t)?t:[],null!=(l=null==e?void 0:e.paths)?l:Array.isArray(e)?e:[],o)}:O.has(n)?y(t||[0,0,0,1],e||[0,0,0,1],o):"transform"!==n||"object"!=typeof t||null===t||Array.isArray(t)||"object"!=typeof e||null===e||Array.isArray(e)?"rotate"===n&&"number"==typeof t&&"number"==typeof e?d(t,e,o):x.has(n)||"stroke-dasharray"===n||"strokeDasharray"===n?m(t||[],e||[],o):d(+(t||0),+(e||0),o):function(n,t,e){const o=new Set([...Object.keys(null!=n?n:{}),...Object.keys(null!=t?t:{})]),r={};for(const l of o){const o=null==n?void 0:n[l],i=null==t?void 0:t[l];if("rotate"===l||"skew"===l)r[l]=d(+(null!=o?o:0),+(null!=i?i:0),e);else if("translate"===l||"scale"===l||"origin"===l){const n="scale"===l?[1,1]:[0,0];r[l]=m(o||n,i||n,e)}else r[l]=null!=i?i:o}return r}(t,e,o)}function jn(n,t,e,o){var r,l,i,u,c,f,v;const d=t.keyframes||t.kfs||[],m=[];for(const t of d){const e=null!=(l=null!=(r=t.time)?r:t.t)?l:0;let s=null!=(i=t.value)?i:t.v;const a=null!=(u=t.easing)?u:t.e;"d"===n&&(s=wn(s));const d=z(n)?F(n):n;O.has(d)&&(s=null!=(c=j(s))?c:s);const y={t:e,v:s,e:An(a,o)},p=null!=(f=t.tangentIn)?f:t.ti,b=null!=(v=t.tangentOut)?v:t.to;p&&(y.tangentIn=p),b&&(y.tangentOut=b),m.push(y)}m.sort((n,t)=>{var e,o;return(null!=(e=n.t)?e:0)-(null!=(o=t.t)?o:0)});const y=t.loop,p=!0===y?{}:y||void 0;return p&&m.length>=2?function(n,t,e,o){var r,l,i,u,c;const f=t.length-1,v=R(null!=(r=e.segmentCount)?r:f,1,f);let d;d=e.extend===Z.before?t.slice(0,v+1):t.slice(f-v);const m=null!=(l=t[0].t)?l:0,y=null!=(i=t[t.length-1].t)?i:0;let p,b;e.extend===Z.before?(p=0,b=m):(p=y,b=o);const h=b-p;if(h<=0)return t;const w=null!=(u=d[0].t)?u:0,k=(null!=(c=d[d.length-1].t)?c:0)-w;if(k<=0)return t;const j=d.map(n=>{var t,e;return{C:(n.t-w)/k,v:n.v,e:n.e,tangentIn:null!=(t=n.tangentIn)?t:n.ti,tangentOut:null!=(e=n.tangentOut)?e:n.to}}),O=Math.floor(h/k),x=h-O*k,N=x/k,S=[],C=e.extend!==Z.before,T=t[t.length-1];let z,U=!1;function F(t,e,o){var r;let l;if(e){l=[];for(let n=j.length-1;n>=0;n--)l.push({C:1-j[n].C,v:j[n].v,e:n>0?M(j[n-1].e):void 0,tangentIn:j[n].tangentOut,tangentOut:j[n].tangentIn})}else l=j;const i=void 0!==o?o:1;for(let e=0;e<l.length;e++){const o=l[e];if(o.C>i+1e-9){const r=l[e-1],u=o.C-r.C,c=(i-r.C)/u,s=r.e?g(r.e)(c):c,a=kn(n,r.v,o.v,s),{left:f}=A(r.e,c);return S.length>0&&r.C<=i&&(S[S.length-1].e=f),void S.push({t:t+i*k,v:a,e:void 0})}const u=S.length>0?S[S.length-1]:T,c=C&&0===e&&void 0!==u&&Math.abs((null!=(r=u.t)?r:0)-(t+o.C*k))<1e-9;if(c){if(pn(u.v,o.v)){S.length>0?(u.e=o.e,u.tangentOut=o.tangentOut):(z=o.e,U=!0);continue}S.length>0&&(delete u.tangentIn,delete u.tangentOut)}const s={t:t+o.C*k+(c?yn:0),v:o.v,e:e<l.length-1?o.e:void 0};o.tangentIn&&(s.tangentIn=o.tangentIn),o.tangentOut&&(s.tangentOut=o.tangentOut),S.push(s)}}if(e.extend===Z.before){N>1e-9&&function(t,e,o){let r;if(e){r=[];for(let n=j.length-1;n>=0;n--)r.push({C:1-j[n].C,v:j[n].v,e:n>0?M(j[n-1].e):void 0,tangentIn:j[n].tangentOut,tangentOut:j[n].tangentIn})}else r=j;const l=1-o;for(let e=0;e<r.length;e++){const o=r[e];if(o.C<l-1e-9)continue;const i=r[e-1];if(i&&i.C<l-1e-9&&o.C>l+1e-9){const e=o.C-i.C,r=(l-i.C)/e,u=i.e?g(i.e)(r):r,c=kn(n,i.v,o.v,u),{right:s}=A(i.e,r);S.push({t:t,v:c,e:s})}const u={t:t+(o.C-l)*k,v:o.v,e:e<r.length-1?o.e:void 0};o.tangentIn&&(u.tangentIn=o.tangentIn),o.tangentOut&&(u.tangentOut=o.tangentOut),S.push(u)}}(p,!!e.alternate&&O%2==0,N);for(let n=0;n<O;n++){const t=O-1-n,o=!!e.alternate&&t%2==0;F(p+x+n*k,o)}}else{for(let n=0;n<O;n++){const t=!!e.alternate&&n%2==0;F(p+n*k,t)}if(N>1e-9){const n=!!e.alternate&&O%2==0;F(p+O*k,n,N)}}return e.extend===Z.before?[...S,...t]:U&&t.length>0?[...t.slice(0,-1),a(s({},t[t.length-1]),{e:z}),...S]:[...t,...S]}(n,m,p,e):m}var On=0;function xn(n,t=W.waapi){const e=X(n)||{},o=function(n){var t;if(n)return null==(t=X(n))?void 0:t.definitions}(n),r=e.duration||1e3,l=[],i=(n,e)=>{if(!e)return null;const l=function(n,t){if(!n)return[];const e=[];if("string"==typeof n){const o=Mn(n,t);o&&e.push(o)}else if(Array.isArray(n))for(const o of n){const n=Mn(o,t);n&&e.push(n)}else e.push(n);return e}(e,o);if(0===l.length)return null;const i=function(n,t,e,o=W.waapi){const r={};for(const[l,i]of Object.entries(n)){if("transform"===l&&"offsetPath"===i.T&&void 0!==n.offsetDistance)continue;const u=jn(l,i,t,e);if(u.length>0){const n={kfs:u};void 0!==i.autoOrient&&(n.autoOrient=i.autoOrient),void 0!==i.loop&&(n.loop=i.loop),r[l]=o===W.waapi&&"transform"===l?en(n):n}}return r}(function(n){const t={};for(const e of n)for(const[n,o]of Object.entries(e))t[n]=o;return t}(l),r,o,t);return 0===Object.keys(i).length?null:{id:n,animate:i}},u=function(n){var t;if(!n)return;const e=null==(t=X(n))?void 0:t.animateById;return e?Object.entries(e).map(([n,t])=>({id:n,animate:t})):void 0}(n);if(u)for(const n of u){const t=i(n.id,n.animate);t&&l.push(t)}const c=n=>{const t=n.animate;if(t&&Object.keys(t).length>0){const e=n.id||"_px_el_"+ ++On;n.id=e;const o=i(e,t);o&&l.push(o)}if(n.children)for(let t=0;t<n.children.length;t++)c(n.children[t])};if(n.children)for(let t=0;t<n.children.length;t++)c(n.children[t]);return l}function Nn(n,t,e){var o,r,l,i,u,c,s;const a=t.kfs||t.keyframes||[];if(0===a.length)return null;const{U:f,F:b}=function(n,t){var e,o;const r=n.length-1;let l=n[0],i=n[r>0?1:0];for(let u=0;u<r;u++){const c=null!=(e=n[u].t)?e:0,s=null!=(o=n[u+1].t)?o:0;if(c<=t&&t<=s){l=n[u],i=n[u+1];break}t>s&&u===r-1&&(l=n[r>0?r-1:0],i=n[r])}return{U:l,F:i}}(a,e);let h=f===b?0:(w=e,A=null!=(o=f.t)?o:0,(M=null!=(r=b.t)?r:0)===A?0:0+(w-A)/(M-A)*1);var w,A,M;h=R(h,0,1);const j=null!=(l=f.e)?l:f.easing;if(j&&Array.isArray(j))try{h=g(j)(h)}catch(n){}let x=z(n)?F(n):n,C=null;const T=null!=(i=null==f?void 0:f.v)?i:null==f?void 0:f.value,U=null!=(u=null==b?void 0:b.v)?u:null==b?void 0:b.value;if("d"===x)C=p(null!=(c=null==T?void 0:T.paths)?c:Array.isArray(T)?T:[],null!=(s=null==U?void 0:U.paths)?s:Array.isArray(U)?U:[],h).map(n=>v(n)).join("");else if(O.has(x))C=k(y(T||[0,0,0,1],U||[0,0,0,1],h)),x=n;else if("stroke-dasharray"===x)C=m(T||[],U||[],h).join(" "),x=n;else if("transform"!==x||null===T||"object"!=typeof T||Array.isArray(T))"translate"===x?(C="translate("+m(T||[0,0],U||[0,0],h).join(",")+")",x="transform"):"rotate"===x?(C="rotate("+d(+(T||0),+(U||0),h)+")",x="transform"):"scale"===x?(C="scale("+m(T||[1,1],U||[1,1],h).join(",")+")",x="transform"):C=d(+(T||0),+(U||0),h);else{const n=new Set([...T?Object.keys(T):[],...U?Object.keys(U):[]]),e={};for(const t of n){const n=null==T?void 0:T[t],o=null==U?void 0:U[t];if("rotate"===t||"skew"===t)e[t]=d(+(null!=n?n:0),+(null!=o?o:0),h);else if("translate"===t||"scale"===t||"origin"===t){const r="scale"===t?[1,1]:[0,0],l=m(n||r,o||r,h);e[t]=l}}if($(t)){const n=T.translate,o=U.translate;if(Array.isArray(n)&&Array.isArray(o)){const r=function(n,t,e,o,r,l){const i=Q(n,t,e,o),u=0===i.h?r:function(n,t){const e=t*n.ds[n.ds.length-1],{ts:o,ds:r}=n,l=r.length-1;if(e<=0)return o[0];if(e>=r[l])return o[l];let i=1,u=l;for(;i<u;){const n=i+u>>>1;r[n]<e?i=n+1:u=n}const c=r[u-1],s=r[u]-c,a=s>0?(e-c)/s:0;return o[u-1]+a*(o[u]-o[u-1])}(i.m,r),c=P(i.P0,i.P1,i.P2,i.P3,u);if(!l)return{translate:c};const s=D(i.P0,i.P1,i.P2,i.P3,u);return{translate:c,S:180*Math.atan2(s[1],s[0])/Math.PI}}(f,b,[+n[0],+n[1]],[+o[0],+o[1]],h,!!t.autoOrient);e.translate=[r.translate[0],r.translate[1]],void 0!==r.S&&(e.rotate=r.S)}}C=S(e,{l:!1}),x="transform"}return N.has(x)&&"number"==typeof C&&(C=100*C+"%"),{k:x,v:null===C?"":""+C}}function Sn(n,t){const e={};for(const[o,r]of Object.entries(n)){const n=Nn(o,r,t);n&&(e[n.k]=n.v)}return e}function Cn(n){const t=globalThis;"function"!=typeof t.cancelAnimationFrame?t.clearTimeout(n):t.cancelAnimationFrame(n)}function Tn(n,t){const{startOn:e,outAction:o="continue",scrollIntoViewThreshold:r=0}=t,l=n.getRootElement();if(!l)return console.warn("setupAnimationTriggers: No root element found for animation."),n;let i=!1;const u=()=>{i&&(i=!1,n.setPlaybackRate(1)),n.play()},c=()=>{switch(o){case"pause":n.pause();break;case"reset":n.cancel();break;case"reverse":i=!0,n.setPlaybackRate(-1),n.play()}};switch(e){case"load":{const n=()=>u();"complete"===document.readyState?n():window.addEventListener("load",n,{once:!0});break}case"mouseOver":{let n=!1;const t=()=>{n=!0,u()},e=()=>{n&&c()};l.addEventListener("mouseenter",t),l.addEventListener("mouseleave",e);break}case"click":{const t=()=>{n.isPlaying()?c():u()};l.addEventListener("click",t);break}case"scrollIntoView":{const n=n=>{var t,e;const o=n.boundingClientRect,r=n.intersectionRect;if(!(null==o?void 0:o.height)||!r)return n.intersectionRatio;const l="undefined"!=typeof window&&window.innerHeight?window.innerHeight:1/0,i=null!=(e=null==(t=n.rootBounds)?void 0:t.height)?e:1/0,u=Math.min(l,i),c=Math.min(o.height,Number.isFinite(u)?u:o.height);return c>0?r.height/c:n.intersectionRatio},t=Array.from({length:21},(n,t)=>t/20);let e=!1;new IntersectionObserver(t=>{t.forEach(t=>{t.isIntersecting&&n(t)>=r?(e=!0,u()):e&&(e=!1,c())})},{threshold:t}).observe(l);break}}return n}function zn(n){return"#"+n}function Un(n,t,e,o){const r=X(n)||{};if(!o)if(n.id){const t=zn(n.id);(o=document.querySelector(t))||console.warn("createFrameLoopAnimator: No root element found for selector: ",t)}else console.warn("createFrameLoopAnimator: No root element provided");const l=function(n,t,e){var o;const r=X(n)||{},l=xn(n,W.frames),i=r.iterations;let u=1;"number"==typeof i&&(u=i||1),"infinite"===i&&(u=1/0),u<1&&(u=1);const c=+(r.duration||T),s=c&&u?c*(u===1/0?1/0:u):c?(null!=u?u:1)*c:0,a=r.direction||"normal",f=null!=(o=r.fill)?o:"forwards",v="forwards"===f||"both"===f,d="backwards"===f||"both"===f;let m=null,y=!1,p=-(r.delay||0),b=0,h=1,g=!1;const w=r.frameRate,A=w&&w>0?1e3/w:0;let M=0;const k=()=>{const n=b?(Date.now()-b)*h:0;return p+n},j=()=>{let n=k();return Number.isFinite(s)&&n>s&&(n=s),n<0&&(n=0),n};function O(n){let e=function(){const t=c>0?c:1;let e=0,o=0;c>0?(n=R(n,0,u*t),o=Math.max(0,Math.ceil(n/t)-1),o=Math.min(o,u-1),e=R((n-o*t)/t,0,1)):e=n;const r=a||"normal";let l=e;return"reverse"===r?l=1-e:"alternate"===r?o%2==1&&(l=1-e):"alternate-reverse"===r&&o%2==0&&(l=1-e),l}();for(const n of l||[]){const o=n.animate;if(!o||"object"!=typeof o||Array.isArray(o)){console.warn("Empty or unresolved binding",n);continue}const r=Sn(o,e*c);for(const[e,o]of Object.entries(r))t.setAttribute(n.id,e,o)}}r.delay&&(r.delay<0?O(j()):d&&O(0));const x=()=>!!y&&!!t.isConnected()&&(h<0?k()>0:!(Number.isFinite(s)&&j()>=s)),N=n=>{null!==m&&(Cn(m),m=null),(n||x())&&(m=function(n){const t=globalThis;return"function"==typeof t.requestAnimationFrame?t.requestAnimationFrame(n):t.setTimeout(n,16)}(()=>{m=null,(()=>{var n,o;if(!t.isConnected())return void S();const r=j(),l=k();if(l<0&&h>0)d&&O(0);else{if(h<0&&l<=0)return S(),O(0),void(g||(g=!0,null==(n=null==e?void 0:e.R)||n.call(e)));if(h>0&&s&&Number.isFinite(s)&&r>=s)return S(),O(v?s:0),void(g||(g=!0,null==(o=null==e?void 0:e.R)||o.call(e)));if(A>0){const n=Date.now();if(M&&n-M<A)return;M=n}O(r)}})(),N()}))},S=()=>{if(!y)return;let n=k();Number.isFinite(s)&&n>s&&(n=s),p=n,b=0,y=!1,null!==m&&(Cn(m),m=null),n>=0?O(n):d&&O(0)},C={isReady:()=>!0,getRootElement:()=>null,isPlaying:()=>x(),play:()=>{var n;(()=>{if(!y){if(h>=0)Number.isFinite(s)&&p>=s&&(p=0);else if(p<=0){if(!Number.isFinite(s))return void console.warn("play: cannot start reverse playback of an infinite animation from time 0");p=s}g=!1,y=!0,b=Date.now(),N(!0)}})(),null==(n=null==e?void 0:e.P)||n.call(e)},pause:()=>{var n;S(),null==(n=null==e?void 0:e.I)||n.call(e)},cancel:()=>{var n;S(),p=0,b=0,y=!1,g=!1,O(p),null==(n=null==e?void 0:e.D)||n.call(e)},finish:()=>{((n=!0)=>{var t;p=Number.isFinite(s)?s:j(),b=0,y=!1,null!==m&&(Cn(m),m=null),O(v?p:0),n&&!g&&(g=!0,null==(t=null==e?void 0:e.R)||t.call(e))})(!0)},setPlaybackRate:n=>{if(!isFinite(n)||0===n)return void console.warn("setPlaybackRate: rate must be finite and non-zero");let t=k();Number.isFinite(s)&&t>s&&(t=s),n<0!=h<0&&(g=!1),h=n,p=t,y&&(b=Date.now())},getCurrentTime:()=>j(),setCurrentTime:n=>{n<0&&(n=0),Number.isFinite(s)&&n>s&&(n=s),p=n,y&&(b=Date.now()),(!Number.isFinite(s)||n<s)&&(g=!1),O(j())},destroy:()=>{var n;C.cancel(),null==(n=null==e?void 0:e.L)||n.call(e)}};return C}(n,t||function(n){const t=new Set;return{isConnected:()=>!n||n.isConnected,setAttribute:(e,o,r)=>{o=F(o);const l=zn(e),i=(null==n?void 0:n.querySelectorAll(l))||document.querySelectorAll(l);0!==i.length||t.has(l)||(t.add(l),console.warn('setAttribute: No elements found for selector "'+l+'"'));for(let n=0;n<i.length;n++){const t=i[n],e="transform"===o&&"pattern"===t.tagName?"patternTransform":o;t.setAttribute(e,r),C.has(o)&&(t.style[o]=r)}}}}(o),e),i=a(s({},l),{getRootElement:()=>o||null});return r.trigger&&(_(r)?console.warn("scroll timeline: `animator.trigger` is ignored (triggers do not apply to scroll-driven playback)"):Tn(i,r.trigger)),i}function Fn(n,t,e,o){var r,l;let i=null!=(r=n.v)?r:n.value;const u=null!=(l=n.e)?l:n.easing,c={offset:t,easing:u&&Array.isArray(u)?"cubic-bezier("+u.join(",")+")":void 0};let s,a=e;var f;return O.has(e)&&Array.isArray(i)?s=k(i):"transform"!==e||null===i||"object"!=typeof i||Array.isArray(i)?x.has(e)?(Array.isArray(i)&&("translate"===e&&(i=i.map(n=>n+"px")),i=i.join(",")),"rotate"===e&&(i+="deg"),s=e+"("+i+")",a="transform"):s="d"===e?'path("'+(i&&"object"==typeof i&&Array.isArray(i.paths)?i.paths:[]).map(n=>v(n,!0)).join("")+'")':N.has(e)&&"number"==typeof i?100*i+"%":""+i:(s=S(i,{l:!0}),a="transform"),CSS.supports(F(a),s)||o.add(a),a=(f=a).includes("-")?f.replace(/-([a-z])/g,(n,t)=>t.toUpperCase()):f,c[a]=s,c}function Rn(n,t,e){var o,r,l,i,u;const c=[];for(let f=0;f<t.length;f++){const v=t[f],d=null!=(o=v.t)?o:0;if(d<0){const e=t[f+1];if(e&&(null!=(r=e.t)?r:0)>=0){const t=(0-d)/((null!=(l=e.t)?l:0)-d),o=v.e?g(v.e)(t):t,{right:r}=A(v.e,t);c.push({t:0,v:kn(n,v.v,e.v,o),e:r})}continue}if(d>e){const o=t[f-1];if(o&&(null!=(i=o.t)?i:0)<=e){const t=null!=(u=o.t)?u:0,r=(e-t)/(d-t),l=o.e?g(o.e)(r):r,{left:i}=A(o.e,r);c.length>0&&(c[c.length-1]=a(s({},c[c.length-1]),{e:i})),c.push({t:e,v:kn(n,o.v,v.v,l),e:void 0})}break}c.push(v)}return c}function Pn(n,t,e){var o;const r=new Map;for(const[l,i]of Object.entries(n)){const n=e.duration||1,u=Rn(l,i.kfs||i.keyframes||[],n),c=[];for(let e=0;e<u.length;e++){const r=u[e],i=Fn(r,R((null!=(o=r.t)?o:0)/n,0,1),l,t);0===e&&(i.offset||0)>0&&c.push(a(s({},i),{offset:0})),c.push(i)}c.length>0&&(c[c.length-1].offset||0)<1&&c.push(a(s({},c[c.length-1]),{offset:1})),c.length>0&&r.set(l,c)}return r}function In(n,t,e,o,r){var l;const i=X(n)||{};if(!e)if(n.id){const t=zn(n.id);(e=document.querySelector(t))||console.warn("createFrameLoopAnimator: No root element found for selector: ",t)}else console.warn("createFrameLoopAnimator: No root element provided");const u=xn(n,W.waapi),c=[],s=i.iterations;let a;"number"==typeof s&&(a=s),"infinite"===s&&(a=1/0);const f=new Set;let v=!1,d=!1;(null==u?void 0:u.length)||console.warn("createWebApiAnimator: No animation bindings defined");for(const n of u||[]){const o=n.animate;if(!o||"object"!=typeof o||Array.isArray(o)){console.warn("createWebApiAnimator: Empty or unresolved binding",n);continue}const u=zn(n.id),s=(null==e?void 0:e.querySelectorAll(u))||document.querySelectorAll(u);0===s.length&&console.warn('createWebApiAnimator: No elements found for selector "'+u+'"');const m=Pn(o,f,i),y=i.delay&&i.delay>0?i.delay:void 0;let p;if(i.delay&&i.delay<0&&i.duration){const n=-i.delay;p=a===1/0?n%i.duration:Math.min(n,i.duration*(null!=a?a:1))}const b={duration:i.duration,delay:y,fill:null!=(l=i.fill)?l:"forwards",direction:i.direction,iterations:a};for(let n=0;n<s.length;n++){const e=s[n];for(const[,n]of m)if(n.length>0)try{const o=new KeyframeEffect(e,n,b),l=new Animation(o,r?r.timeline:document.timeline);if(r){const n=l;r.rangeStart&&(n.rangeStart=r.rangeStart),r.rangeEnd&&(n.rangeEnd=r.rangeEnd)}(null==t?void 0:t.R)&&(l.onfinish=()=>{var n;v||(v=!0,null==(n=t.R)||n.call(t))}),(null==t?void 0:t.L)&&(l.onremove=()=>{var n;d||(d=!0,null==(n=t.L)||n.call(t))}),void 0!==p&&(l.currentTime=p),c.push(l)}catch(n){console.warn(n)}}}if(!o&&f.size)return console.warn("Unsupported CSS attrs: "+[...f].join(", ")),null;const m={isReady:()=>!0,getRootElement:()=>e||null,isPlaying:()=>{var n;return"running"===(null==(n=c[0])?void 0:n.playState)},play:()=>{var n;v=!1,c.forEach(n=>n.play()),null==(n=null==t?void 0:t.P)||n.call(t)},pause:()=>{var n;c.forEach(n=>n.pause()),null==(n=null==t?void 0:t.I)||n.call(t)},cancel:()=>{var n;v=!1,c.forEach(n=>n.cancel()),null==(n=null==t?void 0:t.D)||n.call(t)},finish:()=>{var n;for(const t of c)try{(null==(n=t.effect)?void 0:n.getTiming().iterations)===1/0?(t.effect.updateTiming({iterations:1}),t.finish(),t.effect.updateTiming({iterations:1/0})):t.finish()}catch(n){t.cancel()}},setPlaybackRate:n=>(c.forEach(t=>t.playbackRate=n),m),getCurrentTime:()=>{var n,t;const e=null!=(t=null==(n=c[0])?void 0:n.currentTime)?t:null;return null!==e?+e:null},setCurrentTime:n=>{v=!1,c.forEach(t=>{t.currentTime=n})},destroy:()=>{var n;m.cancel(),c.splice(0,c.length),d||(d=!0,null==(n=null==t?void 0:t.L)||n.call(t))}};return i.trigger&&("scroll"===i.timelineSource?console.warn("scroll timeline: `animator.trigger` is ignored (triggers do not apply to scroll-driven playback)"):Tn(m,i.trigger)),r&&c.forEach(n=>n.play()),m}function Dn(n,t,e){var o,r,l;const i="number"==typeof(null==n?void 0:n.fraction)?n.fraction:t,u=null==(r=null==(o=globalThis.CSS)?void 0:o.percent)?void 0:r.call(o,100*i);if(void 0!==u)return e?{_:null!=(l=null==n?void 0:n.phase)?l:"cover",offset:u}:{offset:u}}function En(n,t){const e=document.body,o=document.documentElement;for(let r=n.parentElement;r;r=r.parentElement){if(r===e||r===o)return null;const n=getComputedStyle(r),l="y"===t?n.overflowY:n.overflowX;if("auto"===l||"scroll"===l||"hidden"===l||"overlay"===l)return r}return null}function Ln(){return document.scrollingElement||document.documentElement}var _n="parent",qn="scroller";function Kn(n,t){var e,o;const r=null==t?void 0:t.trim();if(!r)return n;if(r===_n){let t=null;for(let e=n.parentElement;e&&e!==document.body;e=e.parentElement){const n=getComputedStyle(e).position;"sticky"!==n&&"fixed"!==n||(t=e)}return null!=(o=null!=(e=null==t?void 0:t.parentElement)?e:n.parentElement)?o:n}if(r===qn)return En(n,"y")||En(n,"x")||Ln();let l=null;try{l=document.querySelector(r)}catch(t){return console.warn('scroll timeline: subject "'+r+'" is not a valid selector — measuring the SVG itself'),n}return l||(console.warn('scroll timeline: subject "'+r+'" matched no element — measuring the SVG itself'),n)}function Vn(n,t){const e=n;if(!(null==t?void 0:t.pin)||!e.style)return()=>{};const o=e.style,r=o.position,l=o.top;o.position="sticky";const i="center"===t.pinAlign?.5:"bottom"===t.pinAlign?1:0,u=()=>{var e;const r=null!=(e=t.pinTop)?e:0;if(!i)return void(o.top=r+"px");const l=function(n){const t=En(n,"y");return t?t.clientHeight:document.documentElement.clientHeight}(n),u=n.getBoundingClientRect().height;o.top=Math.round((l-u)*i+r)+"px"};u();let c=null;const s=i?u:null;i&&(s&&window.addEventListener("resize",s),"undefined"!=typeof ResizeObserver&&(c=new ResizeObserver(u),c.observe(n)));let a=null;const f=n.parentElement;return t.pinDistance&&t.pinDistance>0&&f&&(a=document.createElement("div"),a.setAttribute("data-px-pin",""),a.style.height=100*t.pinDistance+"vh",f.insertBefore(a,n),a.appendChild(n)),()=>{s&&window.removeEventListener("resize",s),null==c||c.disconnect(),o.position=r,o.top=l,(null==a?void 0:a.parentElement)&&(a.parentElement.insertBefore(n,a),a.remove())}}function Wn(n,t,e){let o,r=t;n.resetOnFinish&&(r=a(s({},t),{R:()=>{var n;null==(n=null==t?void 0:t.R)||n.call(t),null==o||o.cancel()}}));const l=e(r);return o=l,n.debugInstName&&(window[n.debugInstName]=l),l}function Zn(n){return function(n,t,e,o){const r=X(n)||{};return _(r)?Wn(r,e,e=>{var l,i;let u=()=>{};if(r.mode!==V.frames&&"native"===(null==(l=r.scroll)?void 0:l.driver)&&o){u=Vn(o,r.scroll);const t=function(n,t){var e,o,r,l;if(!t||!_(t))return null;const i=t.scroll||{},u=null!=(e=i.kind)?e:"view";if(i.smoothing)return console.warn('scroll timeline: `smoothing` needs the built-in driver — ignoring `driver: "native"`'),null;const c=globalThis,s="view"===u,a=s?c.ViewTimeline:c.ScrollTimeline;if("function"!=typeof a)return null;const f=null!=(o=i.axis)?o:"block";let v;try{v=new a(s?{subject:Kn(n,i.subject),axis:f}:{source:"root"===i.source?Ln():En(n,"y")||En(n,"x")||Ln(),axis:f})}catch(n){return console.warn("scroll timeline: native timeline construction failed — falling back to the custom driver",n),null}return{timeline:v,rangeStart:Dn(null==(r=i.range)?void 0:r.start,0,s),rangeEnd:Dn(null==(l=i.range)?void 0:l.end,1,s)}}(o,r);if(t){const l=In(n,e,o,r.mode===V.waapi,t);if(l){const n=l.destroy.bind(l);return l.destroy=()=>{u(),n()},l}}u(),u=()=>{}}const c=(r.mode!==V.frames?In(n,e,o,r.mode===V.waapi):null)||Un(n,t,e,o),s=(null==(i=c.getRootElement)?void 0:i.call(c))||o;if(s){u=Vn(s,r.scroll);const n=("number"==typeof(null==(a=r)?void 0:a.duration)&&a.duration>0?a.duration:T)*("number"==typeof(null==a?void 0:a.iterations)&&a.iterations>0?a.iterations:1),t=function(n,t,e){var o,r;if(!t||!_(t))return null;const l=t.scroll||{},i=null!=(o=l.kind)?o:"view",u=Kn(n,l.subject),c=En(n,"y")||En(n,"x"),s="scroll"===i&&"root"===l.source?Ln():c||Ln(),a=s===Ln(),f=function(n,t){const e=null!=n?n:"block";if("x"===e||"y"===e)return e;const o=!!t&&t.startsWith("vertical");return"inline"===e?o?"y":"x":o?"x":"y"}(l.axis,getComputedStyle(s).writingMode),v=()=>{if("scroll"===i)return function(n,t,e){var o,r;const l=t>0?R(n/t,0,1):1,i="number"==typeof(null==(o=null==e?void 0:e.start)?void 0:o.fraction)?e.start.fraction:0,u="number"==typeof(null==(r=null==e?void 0:e.end)?void 0:r.fraction)?e.end.fraction:1;return u<=i?l>=u?1:0:R((l-i)/(u-i),0,1)}("y"===f?s.scrollTop:s.scrollLeft,"y"===f?s.scrollHeight-s.clientHeight:s.scrollWidth-s.clientWidth,l.range);const n=u.getBoundingClientRect();let t,e;if(a)t=0,e="y"===f?document.documentElement.clientHeight:document.documentElement.clientWidth;else{const n=s.getBoundingClientRect();t="y"===f?n.top:n.left,e="y"===f?s.clientHeight:s.clientWidth}return function(n,t,e,o){const r=e-n,l=K(null==o?void 0:o.start,0,t,e),i=K(null==o?void 0:o.end,1,t,e);return i<=l?r>=i?1:0:R((r-l)/(i-l),0,1)}(("y"===f?n.top:n.left)-t,"y"===f?n.height:n.width,e,l.range)},d=Math.max(0,null!=(r=l.smoothing)?r:0)/1e3;let m=!1,y=null,p=null,b=0,h=null;const g=()=>{h=null,m||(n=>{if(!d)return void e(n);if(null===y)return y=n,void e(n);if(null!==p)return;b=0;const t=n=>{if(p=null,m)return;const o=b?Math.min(.1,(n-b)/1e3):1/60;b=n;const r=v(),l=1-Math.exp(-o/d);y+=(r-y)*l,Math.abs(r-y)<.001&&(y=r),e(y),y!==r&&(p=requestAnimationFrame(t))};p=requestAnimationFrame(t)})(v())},w=()=>{m||null!==h||(h=requestAnimationFrame(g))},A=a?window:s;let M;A.addEventListener("scroll",w,{passive:!0}),window.addEventListener("resize",w,{passive:!0}),"undefined"!=typeof ResizeObserver&&(M=new ResizeObserver(w),M.observe(u),u!==n&&M.observe(n),a||M.observe(s));const k={destroy:()=>{m||(m=!0,A.removeEventListener("scroll",w),window.removeEventListener("resize",w),null==M||M.disconnect(),null!==h&&(cancelAnimationFrame(h),h=null),null!==p&&(cancelAnimationFrame(p),p=null))},refresh:()=>{m||(y=v(),e(y))}};return k.refresh(),k}(s,r,t=>c.setCurrentTime(t*n));if(t){const n=c.destroy.bind(c);c.destroy=()=>{t.destroy(),u(),n()}}}else console.warn("scroll timeline: no root element to observe — animation will stay at frame 0");var a;return c}):Wn(r,e,e=>r.mode===V.frames?Un(n,t,e,o):In(n,e,o,r.mode===V.waapi)||Un(n,t,e,o))}(function(n){if(!(null==n?void 0:n.data))throw new Error("createAnimator: `data` is required");return n.data}(n),n.q,n.K,null)}var Xn,Yn="data";return Xn=f,((t,o,l,u)=>{if(o&&"object"==typeof o||"function"==typeof o)for(let l of r(o))i.call(t,l)||void 0===l||n(t,l,{get:()=>o[l],enumerable:!(u=e(o,l))||u.enumerable});return t})(n({},"__esModule",{value:!0}),Xn)})();
|
package/dist/index.umd.js
CHANGED
|
@@ -1045,7 +1045,7 @@ var PixodeskAnimator = (() => {
|
|
|
1045
1045
|
auto: "auto",
|
|
1046
1046
|
exact: "exact"
|
|
1047
1047
|
};
|
|
1048
|
-
var
|
|
1048
|
+
var PxStrokeTrimSubPaths = {
|
|
1049
1049
|
separate: "separate",
|
|
1050
1050
|
combined: "combined"
|
|
1051
1051
|
};
|
|
@@ -1202,6 +1202,7 @@ var PixodeskAnimator = (() => {
|
|
|
1202
1202
|
subject: px.string().optional(),
|
|
1203
1203
|
smoothing: px.number().optional(),
|
|
1204
1204
|
pin: px.boolean().optional(),
|
|
1205
|
+
pinAlign: px.enum(["top", "center", "bottom"]).optional(),
|
|
1205
1206
|
pinTop: px.number().optional(),
|
|
1206
1207
|
pinDistance: px.number().optional(),
|
|
1207
1208
|
range: PxScrollRangeSchema.optional()
|
|
@@ -1284,10 +1285,10 @@ var PixodeskAnimator = (() => {
|
|
|
1284
1285
|
d: PxAnimatableStringSchema.optional(),
|
|
1285
1286
|
animate: PxPropertyAnimationSchema.optional()
|
|
1286
1287
|
}));
|
|
1287
|
-
var
|
|
1288
|
+
var PxStrokeTrimEffectSchema = implementsInterface()(px.object({
|
|
1288
1289
|
offset: PxAnimatableNumberSchema.optional(),
|
|
1289
1290
|
range: PxAnimatableVec2Schema.optional(),
|
|
1290
|
-
subPaths: px.enum([
|
|
1291
|
+
subPaths: px.enum([PxStrokeTrimSubPaths.separate, PxStrokeTrimSubPaths.combined]).optional()
|
|
1291
1292
|
}));
|
|
1292
1293
|
var PxRetimeEffectSchema = implementsInterface()(px.object({
|
|
1293
1294
|
sourceId: px.string().optional(),
|
|
@@ -1341,7 +1342,7 @@ var PixodeskAnimator = (() => {
|
|
|
1341
1342
|
repeater: PxRepeaterEffectSchema.optional(),
|
|
1342
1343
|
maskedBy: PxMaskedByEffectSchema.optional(),
|
|
1343
1344
|
clipPath: PxClipPathEffectSchema.optional(),
|
|
1344
|
-
|
|
1345
|
+
strokeTrim: PxStrokeTrimEffectSchema.optional(),
|
|
1345
1346
|
clone: PxCloneEffectSchema.optional(),
|
|
1346
1347
|
fillGradient: PxFillGradientEffectSchema.optional(),
|
|
1347
1348
|
strokeGradient: PxStrokeGradientEffectSchema.optional(),
|
|
@@ -4471,6 +4472,19 @@ var PixodeskAnimator = (() => {
|
|
|
4471
4472
|
TEXT_CONTENT_ATTR,
|
|
4472
4473
|
"xml:space"
|
|
4473
4474
|
];
|
|
4475
|
+
var PAINT_STATIC_KEYS = [
|
|
4476
|
+
"fillOpacity",
|
|
4477
|
+
"fillRule",
|
|
4478
|
+
"strokeOpacity",
|
|
4479
|
+
"strokeDasharray",
|
|
4480
|
+
"strokeDashoffset",
|
|
4481
|
+
"strokeLinecap",
|
|
4482
|
+
"strokeLinejoin",
|
|
4483
|
+
"strokeMiterlimit",
|
|
4484
|
+
"mixBlendMode",
|
|
4485
|
+
"filter"
|
|
4486
|
+
];
|
|
4487
|
+
var PAINT_ANIMATE_KEYS = ["fill", "stroke", "strokeWidth", "opacity", "fillOpacity", "strokeOpacity", "strokeDasharray", "strokeDashoffset"];
|
|
4474
4488
|
function parseLen(v) {
|
|
4475
4489
|
if (typeof v === "number") return v;
|
|
4476
4490
|
if (typeof v === "string") {
|
|
@@ -4482,17 +4496,39 @@ var PixodeskAnimator = (() => {
|
|
|
4482
4496
|
function str(v) {
|
|
4483
4497
|
return typeof v === "string" ? v : void 0;
|
|
4484
4498
|
}
|
|
4499
|
+
function paintAnimateOf(node) {
|
|
4500
|
+
const bag = node.animate;
|
|
4501
|
+
if (!bag || typeof bag !== "object") return void 0;
|
|
4502
|
+
let out;
|
|
4503
|
+
for (const k of PAINT_ANIMATE_KEYS) {
|
|
4504
|
+
if (bag[k] !== void 0) (out != null ? out : out = {})[k] = bag[k];
|
|
4505
|
+
}
|
|
4506
|
+
return out;
|
|
4507
|
+
}
|
|
4485
4508
|
function resolveStyle2(node, parent) {
|
|
4486
|
-
var _a, _b, _c, _d, _e, _f, _g;
|
|
4487
|
-
|
|
4509
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j;
|
|
4510
|
+
const isTextRoot = node.type === "text";
|
|
4511
|
+
const nodeStyle = node.style;
|
|
4512
|
+
const own = (key) => {
|
|
4513
|
+
var _a2;
|
|
4514
|
+
return isTextRoot ? void 0 : (_a2 = node[key]) != null ? _a2 : nodeStyle == null ? void 0 : nodeStyle[key];
|
|
4515
|
+
};
|
|
4516
|
+
const res = {
|
|
4488
4517
|
fontFamily: (_a = str(node.fontFamily)) != null ? _a : parent.fontFamily,
|
|
4489
4518
|
fontSize: (_b = parseLen(node.fontSize)) != null ? _b : parent.fontSize,
|
|
4490
4519
|
fill: (_c = node.fill) != null ? _c : parent.fill,
|
|
4491
4520
|
stroke: (_d = node.stroke) != null ? _d : parent.stroke,
|
|
4492
4521
|
strokeWidth: (_e = node.strokeWidth) != null ? _e : parent.strokeWidth,
|
|
4493
4522
|
letterSpacing: (_f = parseLen(node.letterSpacing)) != null ? _f : parent.letterSpacing,
|
|
4494
|
-
wordSpacing: (_g = parseLen(node.wordSpacing)) != null ? _g : parent.wordSpacing
|
|
4523
|
+
wordSpacing: (_g = parseLen(node.wordSpacing)) != null ? _g : parent.wordSpacing,
|
|
4524
|
+
opacity: (_h = parseLen(own("opacity"))) != null ? _h : parent.opacity,
|
|
4525
|
+
animate: (_i = isTextRoot ? void 0 : paintAnimateOf(node)) != null ? _i : parent.animate
|
|
4495
4526
|
};
|
|
4527
|
+
for (const key of PAINT_STATIC_KEYS) {
|
|
4528
|
+
const v = (_j = own(key)) != null ? _j : parent[key];
|
|
4529
|
+
if (v !== void 0) res[key] = v;
|
|
4530
|
+
}
|
|
4531
|
+
return res;
|
|
4496
4532
|
}
|
|
4497
4533
|
function rootStyleOf(node) {
|
|
4498
4534
|
var _a, _b, _c;
|
|
@@ -4511,6 +4547,11 @@ var PixodeskAnimator = (() => {
|
|
|
4511
4547
|
if (s.fill !== void 0) p.fill = s.fill;
|
|
4512
4548
|
if (s.stroke !== void 0) p.stroke = s.stroke;
|
|
4513
4549
|
if (s.strokeWidth !== void 0) p.strokeWidth = s.strokeWidth;
|
|
4550
|
+
if (s.opacity !== void 0 && s.opacity !== 1) p.opacity = s.opacity;
|
|
4551
|
+
for (const key of PAINT_STATIC_KEYS) {
|
|
4552
|
+
if (s[key] !== void 0) p[key] = s[key];
|
|
4553
|
+
}
|
|
4554
|
+
if (s.animate !== void 0) p.animate = s.animate;
|
|
4514
4555
|
return p;
|
|
4515
4556
|
}
|
|
4516
4557
|
function glyphFontFor(s, glyphs, soleFont, warnings) {
|
|
@@ -4524,6 +4565,7 @@ var PixodeskAnimator = (() => {
|
|
|
4524
4565
|
return names.length === 1 ? glyphs[names[0]] : void 0;
|
|
4525
4566
|
}
|
|
4526
4567
|
var MISSING_GLYPH_ADVANCE_EM = 0.6;
|
|
4568
|
+
var MISSING_GLYPH_CLASS_NAME = "px-missing-glyph";
|
|
4527
4569
|
function missingGlyphBoxEm(advanceEm, ascentEm) {
|
|
4528
4570
|
if (advanceEm <= 0 || ascentEm <= 0) return "";
|
|
4529
4571
|
const inset = 0.08;
|
|
@@ -4559,7 +4601,7 @@ var PixodeskAnimator = (() => {
|
|
|
4559
4601
|
pen.x += g.width * scale;
|
|
4560
4602
|
} else if (/\S/.test(ch)) {
|
|
4561
4603
|
const advEm = g && g.width > 0 ? g.width : MISSING_GLYPH_ADVANCE_EM * upm;
|
|
4562
|
-
placements.push({ glyphD: missingGlyphBoxEm(advEm, ascentEm), m: [scale, 0, 0, scale, pen.x, pen.y], paint, line, x: pen.x, y: pen.y, scale });
|
|
4604
|
+
placements.push({ glyphD: missingGlyphBoxEm(advEm, ascentEm), m: [scale, 0, 0, scale, pen.x, pen.y], paint, isMissing: true, line, x: pen.x, y: pen.y, scale });
|
|
4563
4605
|
pen.x += advEm * scale;
|
|
4564
4606
|
} else {
|
|
4565
4607
|
pen.x += (g ? g.width : 0) * scale;
|
|
@@ -4622,7 +4664,7 @@ var PixodeskAnimator = (() => {
|
|
|
4622
4664
|
} else if (/\S/.test(ch)) {
|
|
4623
4665
|
const wEm = g && g.width > 0 ? g.width : MISSING_GLYPH_ADVANCE_EM * gf.unitsPerEm;
|
|
4624
4666
|
const boxAdv = wEm * scale;
|
|
4625
|
-
cells.push({ glyphD: missingGlyphBoxEm(wEm, ascentEm), widthEm: wEm, scale, paint, midBase: adv + boxAdv / 2 });
|
|
4667
|
+
cells.push({ glyphD: missingGlyphBoxEm(wEm, ascentEm), widthEm: wEm, scale, paint, isMissing: true, midBase: adv + boxAdv / 2 });
|
|
4626
4668
|
adv += boxAdv;
|
|
4627
4669
|
} else {
|
|
4628
4670
|
adv += (g ? g.width : 0) * scale;
|
|
@@ -4678,6 +4720,7 @@ var PixodeskAnimator = (() => {
|
|
|
4678
4720
|
const placements = placeCells.map((c) => ({
|
|
4679
4721
|
glyphD: c.glyphD,
|
|
4680
4722
|
paint: c.paint,
|
|
4723
|
+
isMissing: c.isMissing,
|
|
4681
4724
|
m: alongAffine(sampler, base + c.midBase * k, c.scale, c.widthEm, perp)
|
|
4682
4725
|
}));
|
|
4683
4726
|
return toGroup(node, buildPaths(placements, create, warnings), create);
|
|
@@ -4760,12 +4803,13 @@ var PixodeskAnimator = (() => {
|
|
|
4760
4803
|
const transform = { keyframes: kfs };
|
|
4761
4804
|
if (loop !== void 0) transform.loop = loop;
|
|
4762
4805
|
const animate = { transform };
|
|
4806
|
+
if (c.paint.animate) Object.assign(animate, c.paint.animate);
|
|
4763
4807
|
if (isClip && opKfs.some((k) => k.value === 0)) {
|
|
4764
4808
|
const op = { keyframes: opKfs };
|
|
4765
4809
|
if (loop !== void 0) op.loop = loop;
|
|
4766
4810
|
animate.opacity = op;
|
|
4767
4811
|
}
|
|
4768
|
-
out.push(create("path", __spreadProps(__spreadValues({ d }, paintProps(c.paint)), { animate }), []));
|
|
4812
|
+
out.push(create("path", __spreadProps(__spreadValues(__spreadValues({ d }, paintProps(c.paint)), missingGlyphProps(c.isMissing)), { animate }), []));
|
|
4769
4813
|
}
|
|
4770
4814
|
return out;
|
|
4771
4815
|
}
|
|
@@ -4774,24 +4818,34 @@ var PixodeskAnimator = (() => {
|
|
|
4774
4818
|
if (paint.fill !== void 0) p.fill = paint.fill;
|
|
4775
4819
|
if (paint.stroke !== void 0) p.stroke = paint.stroke;
|
|
4776
4820
|
if (paint.strokeWidth !== void 0) p.strokeWidth = paint.strokeWidth;
|
|
4821
|
+
if (paint.opacity !== void 0) p.opacity = paint.opacity;
|
|
4822
|
+
for (const key of PAINT_STATIC_KEYS) {
|
|
4823
|
+
if (paint[key] !== void 0) p[key] = paint[key];
|
|
4824
|
+
}
|
|
4777
4825
|
return p;
|
|
4778
4826
|
}
|
|
4827
|
+
function missingGlyphProps(isMissing) {
|
|
4828
|
+
return isMissing ? { class: MISSING_GLYPH_CLASS_NAME } : {};
|
|
4829
|
+
}
|
|
4779
4830
|
function buildPaths(placements, create, warnings) {
|
|
4780
|
-
var _a, _b, _c;
|
|
4781
4831
|
if (!placements.length) {
|
|
4782
4832
|
warnings == null ? void 0 : warnings.push("textGlyphs: nothing to render");
|
|
4783
4833
|
return [];
|
|
4784
4834
|
}
|
|
4785
4835
|
const byPaint = /* @__PURE__ */ new Map();
|
|
4786
4836
|
for (const p of placements) {
|
|
4787
|
-
const key = JSON.stringify([
|
|
4837
|
+
const key = JSON.stringify([p.paint, !!p.isMissing]);
|
|
4788
4838
|
const baked = transformPathData(p.glyphD, p.m);
|
|
4789
4839
|
const entry = byPaint.get(key);
|
|
4790
4840
|
if (entry) entry.d += baked;
|
|
4791
|
-
else byPaint.set(key, { paint: p.paint, d: baked });
|
|
4841
|
+
else byPaint.set(key, { paint: p.paint, d: baked, isMissing: p.isMissing });
|
|
4792
4842
|
}
|
|
4793
4843
|
const out = [];
|
|
4794
|
-
for (const { paint, d } of byPaint.values())
|
|
4844
|
+
for (const { paint, d, isMissing } of byPaint.values()) {
|
|
4845
|
+
out.push(create("path", __spreadValues(__spreadValues(__spreadValues({
|
|
4846
|
+
d
|
|
4847
|
+
}, paintProps(paint)), missingGlyphProps(isMissing)), paint.animate !== void 0 ? { animate: __spreadValues({}, paint.animate) } : {}), []));
|
|
4848
|
+
}
|
|
4795
4849
|
return out;
|
|
4796
4850
|
}
|
|
4797
4851
|
function toGroup(node, children, create) {
|
|
@@ -4824,10 +4878,10 @@ var PixodeskAnimator = (() => {
|
|
|
4824
4878
|
return materialiseGlyphTextAlongPath(node, pathD, startOffset, { glyphs: ctx.glyphs, warnings: ctx.warnings }, textLength, pathOverflow);
|
|
4825
4879
|
}
|
|
4826
4880
|
|
|
4827
|
-
// ../svg-animator-core/src/effects/
|
|
4828
|
-
function
|
|
4829
|
-
if (!
|
|
4830
|
-
const combined =
|
|
4881
|
+
// ../svg-animator-core/src/effects/strokeTrimEffect.ts
|
|
4882
|
+
function applyStrokeTrimEffect(node, strokeTrim, ctx) {
|
|
4883
|
+
if (!strokeTrim) return node;
|
|
4884
|
+
const combined = strokeTrim.subPaths === PxStrokeTrimSubPaths.combined;
|
|
4831
4885
|
const leafEntries = [];
|
|
4832
4886
|
const measure = (n) => {
|
|
4833
4887
|
if (Array.isArray(n.children) && n.children.length > 0) {
|
|
@@ -4858,9 +4912,9 @@ var PixodeskAnimator = (() => {
|
|
|
4858
4912
|
}
|
|
4859
4913
|
const chainLengthPx = acc;
|
|
4860
4914
|
if (combined && chainLengthPx < 1e-3) return node;
|
|
4861
|
-
const offsetReadRaw = readAnimatable(
|
|
4915
|
+
const offsetReadRaw = readAnimatable(strokeTrim.offset);
|
|
4862
4916
|
const offsetRead = offsetReadRaw.kind === "absent" /* Absent */ ? { kind: "static" /* Static */, value: 0 } : offsetReadRaw;
|
|
4863
|
-
const rangeReadRaw = readRangeWithCrossings(
|
|
4917
|
+
const rangeReadRaw = readRangeWithCrossings(strokeTrim.range);
|
|
4864
4918
|
const rangeRead = rangeReadRaw.kind === "absent" /* Absent */ ? { kind: "static" /* Static */, value: [0, 1] } : rangeReadRaw;
|
|
4865
4919
|
const offsetValues = readScalarValues(offsetRead);
|
|
4866
4920
|
const minOffset = offsetValues.length ? Math.min(...offsetValues) : 0;
|
|
@@ -5192,7 +5246,7 @@ var PixodeskAnimator = (() => {
|
|
|
5192
5246
|
const originalId = typeof node.id === "string" ? node.id : void 0;
|
|
5193
5247
|
const innerIdForContentRef = originalId ? ctx.contentRefInnerIds.get(originalId) : void 0;
|
|
5194
5248
|
if (!fx && !innerIdForContentRef) return node;
|
|
5195
|
-
const { transformBy, repeater, maskedBy, clipPath,
|
|
5249
|
+
const { transformBy, repeater, maskedBy, clipPath, strokeTrim, clone: cloneFx, fillGradient, strokeGradient, textPath, text } = fx != null ? fx : {};
|
|
5196
5250
|
if (fx) delete node.effects;
|
|
5197
5251
|
let n = node;
|
|
5198
5252
|
let consumedByGlyphs = false;
|
|
@@ -5212,7 +5266,7 @@ var PixodeskAnimator = (() => {
|
|
|
5212
5266
|
if (!consumedByGlyphs) n = applyTextPathEffect(n, textPath, ctx);
|
|
5213
5267
|
n = applyFillGradientEffect(n, fillGradient, ctx);
|
|
5214
5268
|
n = applyStrokeGradientEffect(n, strokeGradient, ctx);
|
|
5215
|
-
n =
|
|
5269
|
+
n = applyStrokeTrimEffect(n, strokeTrim, ctx);
|
|
5216
5270
|
n = applyRepeaterEffect(n, repeater, ctx);
|
|
5217
5271
|
n = applyMaskedByEffect(n, maskedBy, transformBy, ctx);
|
|
5218
5272
|
n = applyClipPathEffect(n, clipPath, ctx);
|
|
@@ -6310,8 +6364,11 @@ var PixodeskAnimator = (() => {
|
|
|
6310
6364
|
driver.refresh();
|
|
6311
6365
|
return driver;
|
|
6312
6366
|
}
|
|
6367
|
+
function pinScrollportHeight(svgRoot) {
|
|
6368
|
+
const scroller = findNearestScroller(svgRoot, "y");
|
|
6369
|
+
return scroller ? scroller.clientHeight : document.documentElement.clientHeight;
|
|
6370
|
+
}
|
|
6313
6371
|
function applyScrollPin(svgRoot, scroll) {
|
|
6314
|
-
var _a;
|
|
6315
6372
|
const styled = svgRoot;
|
|
6316
6373
|
if (!(scroll == null ? void 0 : scroll.pin) || !styled.style) return () => {
|
|
6317
6374
|
};
|
|
@@ -6319,7 +6376,28 @@ var PixodeskAnimator = (() => {
|
|
|
6319
6376
|
const prevPosition = style.position;
|
|
6320
6377
|
const prevTop = style.top;
|
|
6321
6378
|
style.position = "sticky";
|
|
6322
|
-
|
|
6379
|
+
const alignFactor = scroll.pinAlign === "center" ? 0.5 : scroll.pinAlign === "bottom" ? 1 : 0;
|
|
6380
|
+
const applyTop = () => {
|
|
6381
|
+
var _a;
|
|
6382
|
+
const extra = (_a = scroll.pinTop) != null ? _a : 0;
|
|
6383
|
+
if (!alignFactor) {
|
|
6384
|
+
style.top = extra + "px";
|
|
6385
|
+
return;
|
|
6386
|
+
}
|
|
6387
|
+
const portSize = pinScrollportHeight(svgRoot);
|
|
6388
|
+
const ownSize = svgRoot.getBoundingClientRect().height;
|
|
6389
|
+
style.top = Math.round((portSize - ownSize) * alignFactor + extra) + "px";
|
|
6390
|
+
};
|
|
6391
|
+
applyTop();
|
|
6392
|
+
let resizeObserver = null;
|
|
6393
|
+
const onWindowResize = alignFactor ? applyTop : null;
|
|
6394
|
+
if (alignFactor) {
|
|
6395
|
+
if (onWindowResize) window.addEventListener("resize", onWindowResize);
|
|
6396
|
+
if (typeof ResizeObserver !== "undefined") {
|
|
6397
|
+
resizeObserver = new ResizeObserver(applyTop);
|
|
6398
|
+
resizeObserver.observe(svgRoot);
|
|
6399
|
+
}
|
|
6400
|
+
}
|
|
6323
6401
|
let wrapper = null;
|
|
6324
6402
|
const parent = svgRoot.parentElement;
|
|
6325
6403
|
if (scroll.pinDistance && scroll.pinDistance > 0 && parent) {
|
|
@@ -6330,6 +6408,8 @@ var PixodeskAnimator = (() => {
|
|
|
6330
6408
|
wrapper.appendChild(svgRoot);
|
|
6331
6409
|
}
|
|
6332
6410
|
return () => {
|
|
6411
|
+
if (onWindowResize) window.removeEventListener("resize", onWindowResize);
|
|
6412
|
+
resizeObserver == null ? void 0 : resizeObserver.disconnect();
|
|
6333
6413
|
style.position = prevPosition;
|
|
6334
6414
|
style.top = prevTop;
|
|
6335
6415
|
if (wrapper == null ? void 0 : wrapper.parentElement) {
|