lwa 0.2.3-alpha → 0.3.0

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 CHANGED
@@ -1,13 +1,16 @@
1
1
  # lwa
2
2
 
3
- 轻量级的动画库。
3
+ > 轻量级的动画库,支持按需加载与摇树优化。
4
4
 
5
- - 按需加载
6
- - 摇树优化
5
+ - 🧩 按需加载,摇树优化
6
+ - 🎬 支持 CSS 属性、Transform、颜色、相对值、函数值、关键帧等多种值类型
7
+ - ⏱ 内置时间轴(Timeline),支持交错(Stagger)动画
8
+ - 📐 支持 SVG 路径描边、形状变形与运动路径
9
+ - 🗜 体积小巧,UMD / ESM / CJS 多种格式
7
10
 
8
11
  ## 文档与演示
9
12
 
10
- [https://sutras.github.io/lwa-docs](https://sutras.github.io/lwa-docs)
13
+ 在线文档与演示:[https://lwa.wzt.zone/](https://lwa.wzt.zone/)
11
14
 
12
15
  ## 安装
13
16
 
@@ -15,7 +18,11 @@
15
18
  npm install lwa
16
19
  ```
17
20
 
18
- ## 注册插件
21
+ 也支持 `pnpm`、`yarn` 或 `bun` 安装。
22
+
23
+ ## 按需加载(推荐)
24
+
25
+ `lwa` 提供了模块化的入口,仅包含核心逻辑,可按需注册插件,配合打包工具的摇树优化减小体积。
19
26
 
20
27
  ```js
21
28
  import {
@@ -25,19 +32,61 @@ import {
25
32
  relativePlugin,
26
33
  svgPlugin,
27
34
  interpPlugin,
35
+ createAnimation,
28
36
  } from "lwa";
29
37
 
38
+ // 注册所需插件
30
39
  use([cssPlugin, colorPlugin, relativePlugin, svgPlugin, interpPlugin]);
40
+
41
+ createAnimation("#el", {
42
+ translateX: 200,
43
+ });
44
+ ```
45
+
46
+ ## 完整版 / CDN
47
+
48
+ `lwa` 的完整版内置并自动注册了全部插件,可通过默认导出直接调用,适合无需打包的 CDN 场景。
49
+
50
+ ### global (UMD)
51
+
52
+ ```html
53
+ <script src="https://unpkg.com/lwa/dist/lwa.full.umd.js"></script>
54
+
55
+ <script>
56
+ lwa("#el", {
57
+ translateX: 200,
58
+ });
59
+ </script>
31
60
  ```
32
61
 
33
- ## 使用
62
+ ### ES Modules
34
63
 
35
64
  ```js
36
- import { createAnimation } from "lwa";
65
+ import lwa from "https://unpkg.com/lwa/dist/lwa.full.es.js";
37
66
 
38
- createAnimation("#el", {
67
+ lwa("#el", {
68
+ translateX: 200,
69
+ });
70
+ ```
71
+
72
+ 完整版同样可以通过 `lwa.createAnimation`、`lwa.timeline`、`lwa.stagger` 等方式调用。
73
+
74
+ ## 基础用法
75
+
76
+ ```js
77
+ import lwa from "lwa";
78
+
79
+ // 创建单个动画
80
+ const animation = lwa("#el", {
39
81
  translateX: 200,
82
+ rotate: 360,
40
83
  });
84
+
85
+ // 时间轴
86
+ lwa
87
+ .timeline()
88
+ .add("#el1", { translateX: 200 })
89
+ .add("#el2", { translateX: 200 }, "<");
41
90
  ```
42
91
 
43
92
  ## 维护
@@ -54,13 +103,19 @@ git clone https://github.com/sutras/lwa.git
54
103
  pnpm install
55
104
  ```
56
105
 
57
- ### 启动开发环境
106
+ ### 启动开发环境(文档)
58
107
 
59
108
  ```bash
60
109
  npm run dev
61
110
  ```
62
111
 
63
- ### 打包案例文档和部署
112
+ ### 构建文档
113
+
114
+ ```bash
115
+ npm run build:docs
116
+ ```
117
+
118
+ ### 打包案例文档并部署
64
119
 
65
120
  ```bash
66
121
  npm run buildDocsAndDeploy
@@ -71,3 +126,7 @@ npm run buildDocsAndDeploy
71
126
  ```bash
72
127
  npm run build:lib
73
128
  ```
129
+
130
+ ## License
131
+
132
+ [MIT](./LICENSE)
package/dist/lwa.cjs CHANGED
@@ -1,2 +1,2 @@
1
- /* lwa 0.2.3-alpha | MIT license | https://github.com/sutras/lwa */
2
- "use strict";var e=Object.defineProperty,t=Math.pow,n=(t,n,r)=>((t,n,r)=>n in t?e(t,n,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[n]=r)(t,"symbol"!=typeof n?n+"":n,r);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const{request:r,cancel:o}=function(){if("function"==typeof requestAnimationFrame)return{request:requestAnimationFrame,cancel:cancelAnimationFrame};const e=[];let t,n=1,r=0;function o(){t=void 0;const n=e.slice();r+=e.length,e.length=0,n.forEach((e=>{0!==e&&e(Date.now())}))}return{request:r=>(e.push(r),t||(t=setTimeout(o,1e3/60)),n++),cancel(t){e[t-r]=0}}}(),a=new Set;let i=0,f=!0;function s(){0===a.size?f||(f=!0,o(i)):(new Set(a).forEach((e=>e())),i=r(s))}const c={add:function(e){a.add(e),f&&(f=!1,i=r(s))},remove:function(e){a.delete(e)}},u={linear:()=>e=>e},l={Sine:()=>e=>1-Math.cos(e*Math.PI/2),Expo:()=>e=>e?Math.pow(1024,e-1):0,Circ:()=>e=>1-Math.sqrt(1-e*e),Elastic:()=>e=>0===e||1===e?e:-Math.pow(2,10*e-10)*Math.sin(2*(10*e-10.75)*Math.PI/3),Back:()=>e=>{const t=1.70158;return e*e*((t+1)*e-t)},Bounce:()=>e=>{const t=7.5625,n=2.75;return 1-((e=1-e)<1/n?t*e*e:e<2/n?t*(e-=1.5/n)*e+.75:e<2.5/n?t*(e-=2.25/n)*e+.9375:t*(e-=2.625/n)*e+.984375)}};["Quad","Cubic","Quart","Quint"].forEach(((e,t)=>{l[e]=()=>e=>Math.pow(e,t+2)})),Object.keys(l).forEach((e=>{const t=l[e];u["easeIn"+e]=t,u["easeOut"+e]=(e,n)=>r=>1-t(e,n)(1-r),u["easeInOut"+e]=(e,n)=>r=>r<.5?t(e,n)(2*r)/2:1-t(e,n)(2-2*r)/2}));const d=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/,g=new RegExp("^([+\\-*/%]=|)("+d.source+")("+/%|px|rpx|em|rem|vw|vh|deg|rad|turn|ex|ch|vmin|vmax|pc|pt|in|cm|mm/.source+"|)$","i"),p=new RegExp(d.source,"g"),m=new RegExp("^([<>]|)([+-]=|)("+d.source+"|)(%|)$");function h(e){return"number"==typeof e}function b(e){return"string"==typeof e}function y(e){return null!==e&&"object"==typeof e}function w(e){return"function"==typeof e}function x(e){return Array.isArray(e)}function k(e){return Array.isArray(e)?e:[e]}function v(e){return w(e)?e:()=>(u[e]||u.linear)(0,0)}const M=Symbol();class E{}class S extends E{constructor(e,t){super(),n(this,"from"),n(this,"to"),this.from=e,this.to=t}}class q extends E{constructor(e,t,r){super(),n(this,"el"),n(this,"prop"),n(this,"totalLength"),this.el=e,this.prop=t,this.totalLength=r}}const A=[];function O(e){const n=[];return x(e)||(e=[e]),e.flat().forEach((e=>{e&&(b(e)?n.push(...Array.from(document.querySelectorAll(e))):!function(e){let n;return y(e)&&Number.isInteger(n=e.length)&&n<t(2,32)}(e)?(y(e)||w(e))&&n.push(e):n.push(...Array.from(e)))})),Array.from(new Set(n))}function P(e,t){return w(e)?e(t.target,t.index,t.total):e}function T(e,t){const{duration:n,delay:r,begin:o,easing:a,between:i}=t;return i.map((t=>function(t){const{from:i,to:f,round:s}=t;let c=e<=o+r?i:e>=o+r+n?f:i+a((e-o-r)/n)*(f-i);return s&&(c=Math.round(c*s)/s),c}(t)))}function C(e,t){return x(e=P(e,t))?e.map((e=>C(e,t)[0])):((h(e)||b(e)||e instanceof E)&&(e={value:e}),[e])}function D(e,t,n,r,o,a,i){const f=t.length;let s,c=o||0;i=(null!=i?i:r.duration)/f;const u=t.map(((t,o)=>s=function(t,o,s){var u,l,d,p,m,h,y;const w=P(null!=(u=t.duration)?u:i,e),x=P(null!=(l=t.delay)?l:0===o?r.delay:0,e),k=P(null!=(d=t.endDelay)?d:o===f-1?r.endDelay:0,e),E=P(v(null!=(p=t.easing)?p:r.easing),e),q=P(null!=(m=t.round)?m:r.round,e),O=x+w+k,T=c,C=T+O;if(c+=O,!s){let e;s=(e=a[n])?e[e.length-1]:void 0}const D=t.value;let $,j;const L=D instanceof S;L?(j=P(D.from,e),$=P(D.to,e)):$=D,!L&&s&&(j=s.to);let I=!1;void 0===j&&(j=e.target[n],I=!0);let F="",N="";if(b($)){const e=g.exec($);e&&(F=e[1],$=parseFloat(e[2])||0,N=e[3])}const z={animatedTarget:e,prop:n,duration:w,delay:x,endDelay:k,begin:T,end:C,easing:E,data:{},from:j,to:$,withoutFrom:I,round:q,unit:N,operator:F,between:[]};for(let e=0,n=A.length;e<n&&(null==(y=(h=A[e]).init)?void 0:y.call(h,z,M))!==M;e++);return z}(t,o,s))).sort(((e,t)=>e.begin-t.begin));return{endTime:c,tweens:u}}function $(e,t,n){const r={},o=P(n.duration,e)/t.length;let a=0;return t.forEach((t=>{const i=function(e,t,n,r,o,a){let i={};for(let f in t){const s=t[f];null!=s&&(i[f]=D(e,C(s,e),f,n,r,o,a))}return i}(e,t,n,a,r,o);for(let e in i)a=Math.max(a,i[e].endTime),r[e]=(r[e]||[]).concat(i[e].tweens)})),r}function j(e,t,n){return e.map((e=>{const r=$(e,t,n);return Object.keys(r).map((e=>{return{seek:function(e){var n,r;let o;for(let a,i=0;a=t[i++];){if(a.begin<=e&&a.end>=e){o=a;break}e>a.end&&(!t[i+1]||t[i+1].begin>e)&&(o=a)}if(o){let t,a=T(e,o);for(let e=A.length-1;e>=0;e--){if(t=null==(r=(n=A[e]).update)?void 0:r.call(n,o,a,M),t===M)return;void 0!==t&&(a=t)}}},getDuration:function(){return Math.max(...t.map((e=>e.end)))},tweens:t=r[e]};var t}))})).flat()}const L={duration:500,delay:0,endDelay:0,easing:"easeInOutQuad",round:0};function I(e){k(e).forEach((e=>{A.includes(e)||(A.push(e),A.sort(((e,t)=>t.order-e.order)))}))}const F="alternate-reverse",N="reverse",z="alternate";function R(e){return e===N||e===F}function X(e){return e===z||e===F}const Y={externalTicker:!1,autoplay:!0,direction:"normal",loop:1},B=["begin","loopBegin","complete","loopComplete","pause","play","update"];function G(e){const t=Object.assign({},Y,e),{externalTicker:n,autoplay:r,direction:o,loop:a}=t;let i=!1,f=!0,s=0,u=0,l=a,d=R(o),g=0,p=[];const w=function(){const e={};function t(t,n){let r=e[t];r||(r=e[t]=new Set),r.add(n)}function n(t,n){if(n){const r=e[t];r&&(r.delete(n),0===r.size&&delete e[t])}else delete e[t]}return{on:t,off:n,once:function(e,r){t(e,(function t(...o){r(...o),n(e,t)}))},emit:function(t,...n){const r=e[t];r&&r.forEach((e=>{e(...n)}))}}}();function k(){return 0===l&&u===g}function v(e){let t=!1;e>=g?(e=g,t=!0):e<0&&(e=0),u=e;const n=d?g-u:u;p.forEach((({target:e,begin:t})=>{e.seek(n-t)})),w.emit("update",n,0===g?0:u/g),t&&(w.emit("loopComplete"),--l<0&&(l=0),0===l?(q(),w.emit("complete")):f||(X(o)&&(d=!d),E()))}function M(){if(!f){let e=Date.now();v(e-s+u),s=e}}function E(){i?u=0:(i=!0,w.emit("begin")),w.emit("loopBegin"),S()}function S(){i?f&&(f=!1,k()?(X(o)&&(d=!d),A()):(s=Date.now(),n||c.add(M),w.emit("play"))):E()}function q(){f||(f=!0,n||c.remove(M),w.emit("pause"))}function A(){q(),u=0,i=!1,l=a,d=R(o),S()}function P(e,t,n,r){if(function(e){return y(e)&&"getDuration"in e&&"seek"in e}(e)){let n=g;if(h(r=null!=t?t:">"))n=r;else{const{begin:e,end:t}=p[p.length-1]||{begin:0,end:0},o=t-e,[,a,i,f,s]=m.exec(r)||[,">","","",""];n="<"===a?e:">"===a?t:n;let c=+f;"%"===s&&(c=(a?o:g)/100*+f),n+="-="===i?-c:c}n=Math.max(0,n);const o=n+e.getDuration();p.push({target:e,position:r,begin:n,end:o}),g=Math.max(g,o)}else{(h(n)||b(n))&&(r=n,n=void 0);const o=function(e,t,n){const r=Object.assign({},L,n);return j((o=O(e)).map(((e,t)=>({target:e,index:t,total:o.length}))),x(t)?t:[t],r);var o}(e,t,n);o.forEach(((e,t)=>{P(e,0===t?r:"<")}))}return T}B.forEach((e=>{t[e]&&w.on(e,t[e])})),r&&0!==a&&E();const T={play:S,pause:q,finish:function(){k()||v(g)},restart:A,seek:v,progress:function(e){var t,n,r;v((r=1,((t=e)<(n=0)?n:t>r?r:t)*g))},tick:()=>{n&&M()},getPosition:()=>u,getDuration:()=>g,getProgress:()=>0===g?0:u/g,isReverse:()=>d,add:P,remove:function(e){const t=p.findIndex((t=>t.target===e));-1!==t&&(p.splice(t,1),function(){const e=[...p];p=[],g=0,e.forEach((e=>{P(e.target,e.position)}))}())},clear:function(){q(),g=0,p=[]},events:p,on:w.on,off:w.off,once:w.once};return T}const Q={start:0,from:0,direction:"normal",easing:"linear",grid:null,axis:null};const Z={order:100,update(e,t,n){const{animatedTarget:r,prop:o,unit:a}=e;let i=x(t)?t[0]:t;return a&&(i+=a),r.target[o]=i,n}},U={order:0,init(e,t){if(0===e.between.length){const n=k(e.to),r=k(e.from);return e.between=n.map(((t,n)=>({from:+r[n]||0,to:+t||0,round:e.round}))),t}}},V={},_=["","webkit","Moz"],H=document.documentElement,W=["translateX","translateY","translateZ","scale","scaleX","scaleY","scaleZ","rotate","rotateX","rotateY","rotateZ","skew","skewX","skewY","perspective"],J=te(W),K=te(["columnCount","fillOpacity","fontSizeAdjust","fontWeight","lineHeight","opacity","orphans","widows","zIndex","zoom","scale","scaleX","scaleY","scaleZ","order","flexGrow","flexShrink","scrollLeft","scrollTop","strokeDashoffset","strokeDasharray"]),ee=te(["value"]);function te(e){const t={};for(let n=0,r=e.length;n<r;n++)t[e[n]]=!0;return t}function ne(e){return e.replace(/[-]([^-])/g,((e,t)=>t.toUpperCase())).replace(/^./,(e=>e.toLowerCase()))}function re(e,t){if(V[e])return V[e];t=t||H.style;for(let n=0,r=_.length;n<r;n++){const t=_[n];let r=t?t+String(e).replace(/[-]([^-])/g,((e,t)=>t.toUpperCase())).replace(/^./,(e=>e.toUpperCase())):ne(String(e));if(r in H.style)return V[e]=r}return""}function oe(e,t){return t+(Number.isNaN(+t)||K[e]?"":"px")}function ae(e,t){return window.getComputedStyle(e)[re(t)]}function ie(e,t,n){e.style[re(t)]=n}function fe(e,t){let n="";t.forEach(((e,t)=>n+=t+"("+e+") ")),ie(e,"transform",n)}const se={_default:{get:(e,t)=>ae(e,t),set(e,t,n){!function(e,t,n){e.style[re(t)]=oe(String(t),n)}(e,t,n)}}};function ce(e){return/rotate|skew/.test(e)?"deg":K[e]?"":"px"}function ue(e){const t=e.style.getPropertyValue(re("transform")),n=/(\w+)\(([^)]+)\)/g;let r;const o=[];for(;r=n.exec(t);)o.push([r[1],r[2]]);return o.sort(((e,t)=>W.indexOf(e[0])-W.indexOf(t[0]))),new Map(o)}function le(e){const t=[...e].sort(((e,t)=>W.indexOf(e[0])-W.indexOf(t[0])));e.clear(),t.forEach((([t,n])=>{e.set(t,n)}))}function de(e){var t;return(null==(t=g.exec(e))?void 0:t[3])||""}function ge(e,t,n){if(-1!==[de(String(t)),"deg","rad","turn"].indexOf(n))return t;const r=document.createElement(e.tagName);r.style.position="absolute",r.style.width=100+n;const o=e.parentNode&&e.parentNode!==document?e.parentNode:document.body;o.appendChild(r);const a=100/r.offsetWidth;return o.removeChild(r),a*parseFloat(String(t))}function pe(e,t,n,r){switch(r){case"trans":return function(e,t,n){let r=ue(e).get(t)||(/scale/.test(t)?1:0+ce(t));return n?ge(e,r,n):r}(e,t,n);case"css":return function(e,t,n){let r=ae(e,t);return n&&b(r)?ge(e,r,n):r}(e,t,n);case"attr":return function(e,t){return e.getAttribute(t)}(e,t)}}function me(e,t){return function(e){return!!J[e]}(t)?"trans":re(t)?"css":!ee[t]&&e.hasAttribute(t)?"attr":""}["scrollTop","scrollLeft"].forEach((e=>{se[e]={get:(e,t)=>e[t],set(e,t,n){e[t]=n}}})),W.forEach((e=>{se[e]={get:(e,t)=>ue(e).get(t)||"",set(e,t,n){const r=ue(e);r.set(t,oe(t,n)),le(r),fe(e,r)}}}));const he={order:90,init(e){const{animatedTarget:t,prop:n,data:r}=e,o=t.target;if(function(e){return e instanceof HTMLElement||e instanceof SVGElement}(o)){const a=me(o,n);if(a){if(r.css=a,"trans"===a&&(t.transforms||(t.transforms={map:ue(o)})),e.withoutFrom){e.from=pe(o,n,e.unit,a);const t=g.exec(e.from);t&&(e.from=parseFloat(t[2]))}e.unit||(e.unit=ce(n))}}},update(e,t,n){const r=e.data.css;if(r){const{animatedTarget:o,prop:a,unit:i}=e,f=o.target;let s=x(t)?t[0]:t;switch("attr"!==r&&(s+=i),r){case"trans":let e=o.transforms.map;const t=e.has(a);e.set(a,s),t||le(e),fe(f,e);break;case"css":ie(f,a,s);break;case"attr":f.setAttribute(a,s)}return n}}},be={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"00ffff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000000",blanchedalmond:"ffebcd",blue:"0000ff",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"00ffff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"ff00ff",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"778899",lightslategrey:"778899",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"00ff00",limegreen:"32cd32",linen:"faf0e6",magenta:"ff00ff",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"ff0000",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"ffffff",whitesmoke:"f5f5f5",yellow:"ffff00",yellowgreen:"9acd32"};function ye(e){let t,n=/[0-9a-f]{2}/gi,r=[];for(;t=n.exec(e);)r.push(parseInt(t[0],16));return r}function we(e){let t,n=/[.\d]+/g,r=[];for(;t=n.exec(e);)r.push(+t[0]);return r}function xe(e){let t;if(e=String(e),/^#?[0-9a-f]{3}$/i.test(e))t=ye(e.replace(/(.)(.)(.)$/,"$1$1$2$2$3$3"));else if(/^#?([0-9a-f]{6})$/i.test(e))t=ye(RegExp.$1);else if(/^rgb/i.test(e))t=we(e);else if(/^hsl/i.test(e)){const n=we(e);n[0]/=360,n[1]/=100,n[2]/=100,t=function(e,t,n){let r,o,a;function i(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+6*(t-e)*n:n<.5?t:n<2/3?e+(t-e)*(2/3-n)*6:e}if(0==t)r=o=a=n;else{let f=n<.5?n*(1+t):n+t-n*t,s=2*n-f;r=i(s,f,e+1/3),o=i(s,f,e),a=i(s,f,e-1/3)}return[Math.round(255*r),Math.round(255*o),Math.round(255*a)]}(...n).concat(n[3])}else t=be.hasOwnProperty(e=e.toLowerCase())?ye(be[e]):[0,0,0,1];return h(t[3])||(t[3]=1),t}const ke={order:80,init(e,t){if(b(e.to)&&(n=e.to,be.hasOwnProperty(String(n).toLowerCase())||/^(?:rgb|hsl|#(?:[0-9a-f]{6}|[0-9a-f]{3})$)/i.test(n))){const n=e.data,r=xe(String(e.from)),o=xe(e.to);return e.between=o.map(((e,t)=>({from:r[t],to:e,round:3===t?0:1}))),e.unit="",n.color={},t}var n},update(e,t){if(e.data.color)return"rgba("+t.join(",")+")"}};const ve={order:70,init(e){if(e.operator){let t=e.from;h(t)||(t=Number(t)||0),e.to=function(e,t,n){switch(n[0]){case"+":return e+t;case"-":return e-t;case"*":return e*t;case"/":return e/t;case"%":return e%t}return 0}(t,e.to,e.operator),e.from=t}}};function Me(e,t){return function(e,t){return Math.atan2(t.y-e.y,t.x-e.x)}(e,t)/Math.PI*180}const Ee={order:60,init(e){const{data:t,to:n}=e;n instanceof q&&(t.svg=n,e.from=0,e.to=n.totalLength,e.unit="")},update(e,t){const n=e.data.svg;if(n){let e=function(e){return n.el.getPointAtLength(r+e)};const r=x(t)?t[0]:t,o=e(-1),a=e(0);switch(n.prop){case"x":return a.x+"px";case"y":return a.y+"px";case"angle":return Me(o,a)+"deg"}}}},Se={order:50,init(e){let t,n=e.to;if(b(n)&&(t=n.match(p))){e.data.interp=n.split(p);let r,o=e.from;b(o)&&(r=o.match(p))?o=r:x(o)||(o=[e.from]),e.from=o,e.to=t}},update(e,t){const n=e.data.interp;if(n)return t.map(((e,t)=>n[t]+e)).join("")}};I(Z),I(U),exports.colorPlugin=ke,exports.createAnimation=function(e,t,n){return G(n).add(e,t,n)},exports.createTimeline=G,exports.css=function e(t,n,r){if(y(n))for(let o in n)e(t,o,n[o]);else{if(void 0===r)return(se[n]&&se[n].get||se._default.get)(t,n);(se[n]&&se[n].set||se._default.set)(t,n,r)}},exports.cssPlugin=he,exports.easings=u,exports.geometry=function(e,t=100){return e=b(e)?document.querySelector(e):e,n=>new q(e,n,e.getTotalLength()*(t/100))},exports.getPrefixedCssProp=re,exports.interpPlugin=Se,exports.random=function(e,t){return Math.floor(Math.random()*(t-e+1)+e)},exports.relativePlugin=ve,exports.setDashoffset=e=>{if(e instanceof SVGGeometryElement){let t=e.getTotalLength();return e.setAttribute("stroke-dasharray",String(t)),t}return 0},exports.stagger=function(e,t){let{direction:n,grid:r,axis:o,from:a,start:i,easing:f}=Object.assign({},Q,t);f=v(f);let s=x(e);const[c,u]=s?e:[0,e];let l=[],d=0;return i=i||c,(e,t,g)=>{const p="center"===a,m="first"===a?0:p?(g-1)/2:"last"===a?g-1:a;if(!l.length){for(let e=0;e<g;e++){if(r){const[t,n]=r,a=(p?(n-1)/2:m%n)-e%n,i=(p?(t-1)/2:~~(m/n))-~~(e/n);let f=Math.sqrt(a*a+i*i);f="x"===o?-a:"y"===o?-i:f,l.push(f)}else l.push(Math.abs(m-e));d=Math.max(...l)}l=l.map((n=>f(e,t,g)(n/d)*d)),"reverse"===n&&(l=l.map((e=>o?-e:Math.abs(d-e))))}let h=s?(u-c)/d:u;return h===1/0&&(h=0),i+h*(Math.round(100*l[t])/100)}},exports.svgPlugin=Ee,exports.ticker=c,exports.use=I,exports.withFrom=function(e,t){return new S(e,t)};
1
+ /* lwa 0.2.3 | MIT license | https://github.com/sutras/lwa */
2
+ "use strict";var e=Object.defineProperty,t=Math.pow,n=(t,n,r)=>((t,n,r)=>n in t?e(t,n,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[n]=r)(t,"symbol"!=typeof n?n+"":n,r);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=new Set;let o=0,a=!0;function i(){0===r.size?a||(a=!0,cancelAnimationFrame(o)):(new Set(r).forEach((e=>e())),o=requestAnimationFrame(i))}const f={add:function(e){r.add(e),a&&(a=!1,o=requestAnimationFrame(i))},remove:function(e){r.delete(e)}},s={linear:()=>e=>e},c={Sine:()=>e=>1-Math.cos(e*Math.PI/2),Expo:()=>e=>e?Math.pow(1024,e-1):0,Circ:()=>e=>1-Math.sqrt(1-e*e),Elastic:()=>e=>0===e||1===e?e:-Math.pow(2,10*e-10)*Math.sin(2*(10*e-10.75)*Math.PI/3),Back:()=>e=>{const t=1.70158;return e*e*((t+1)*e-t)},Bounce:()=>e=>{const t=7.5625,n=2.75;return 1-((e=1-e)<1/n?t*e*e:e<2/n?t*(e-=1.5/n)*e+.75:e<2.5/n?t*(e-=2.25/n)*e+.9375:t*(e-=2.625/n)*e+.984375)}};["Quad","Cubic","Quart","Quint"].forEach(((e,t)=>{c[e]=()=>e=>Math.pow(e,t+2)})),Object.keys(c).forEach((e=>{const t=c[e];s["easeIn"+e]=t,s["easeOut"+e]=(e,n)=>r=>1-t(e,n)(1-r),s["easeInOut"+e]=(e,n)=>r=>r<.5?t(e,n)(2*r)/2:1-t(e,n)(2-2*r)/2}));const l=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/,u=new RegExp("^([+\\-*/%]=|)("+l.source+")("+/%|px|rpx|em|rem|vw|vh|deg|rad|turn|ex|ch|vmin|vmax|pc|pt|in|cm|mm/.source+"|)$","i"),d=new RegExp(l.source,"g"),g=new RegExp("^([<>]|)([+-]=|)("+l.source+"|)(%|)$");function p(e){return"number"==typeof e}function m(e){return"string"==typeof e}function h(e){return null!==e&&"object"==typeof e}function b(e){return"function"==typeof e}function y(e){return Array.isArray(e)}function w(e){return Array.isArray(e)?e:[e]}function x(e){return b(e)?e:()=>(s[e]||s.linear)(0,0)}const k=Symbol();class v{}class M extends v{constructor(e,t){super(),n(this,"from"),n(this,"to"),this.from=e,this.to=t}}class E extends v{constructor(e,t,r){super(),n(this,"el"),n(this,"prop"),n(this,"totalLength"),this.el=e,this.prop=t,this.totalLength=r}}const S=[];function A(e){const n=[];return y(e)||(e=[e]),e.flat().forEach((e=>{e&&(m(e)?n.push(...Array.from(document.querySelectorAll(e))):!function(e){let n;return h(e)&&Number.isInteger(n=e.length)&&n<t(2,32)}(e)?(h(e)||b(e))&&n.push(e):n.push(...Array.from(e)))})),Array.from(new Set(n))}function O(e,t){return b(e)?e(t.target,t.index,t.total):e}function P(e,t){const{duration:n,delay:r,begin:o,easing:a,between:i}=t;return i.map((t=>function(t){const{from:i,to:f,round:s}=t;let c=e<=o+r?i:e>=o+r+n?f:i+a((e-o-r)/n)*(f-i);return s&&(c=Math.round(c*s)/s),c}(t)))}function q(e,t){return y(e=O(e,t))?e.map((e=>q(e,t)[0])):((p(e)||m(e)||e instanceof v)&&(e={value:e}),[e])}function C(e,t,n,r,o,a,i){const f=t.length;let s,c=o||0;i=(null!=i?i:r.duration)/f;const l=t.map(((t,o)=>s=function(t,o,s){var l,d,g,p,h,b,y;const w=O(null!=(l=t.duration)?l:i,e),v=O(null!=(d=t.delay)?d:0===o?r.delay:0,e),E=O(null!=(g=t.endDelay)?g:o===f-1?r.endDelay:0,e),A=O(x(null!=(p=t.easing)?p:r.easing),e),P=O(null!=(h=t.round)?h:r.round,e),q=v+w+E,C=c,T=C+q;if(c+=q,!s){let e;s=(e=a[n])?e[e.length-1]:void 0}const D=t.value;let $,j;const L=D instanceof M;L?(j=O(D.from,e),$=O(D.to,e)):$=D,!L&&s&&(j=s.to);let I=!1;void 0===j&&(j=e.target[n],I=!0);let F="",N="";if(m($)){const e=u.exec($);e&&(F=e[1],$=parseFloat(e[2])||0,N=e[3])}const z={animatedTarget:e,prop:n,duration:w,delay:v,endDelay:E,begin:C,end:T,easing:A,data:{},from:j,to:$,withoutFrom:I,round:P,unit:N,operator:F,between:[]};for(let e=0,n=S.length;e<n&&(null==(y=(b=S[e]).init)?void 0:y.call(b,z,k))!==k;e++);return z}(t,o,s))).sort(((e,t)=>e.begin-t.begin));return{endTime:c,tweens:l}}function T(e,t,n){const r={},o=O(n.duration,e)/t.length;let a=0;return t.forEach((t=>{const i=function(e,t,n,r,o,a){let i={};for(let f in t){const s=t[f];null!=s&&(i[f]=C(e,q(s,e),f,n,r,o,a))}return i}(e,t,n,a,r,o);for(let e in i)a=Math.max(a,i[e].endTime),r[e]=(r[e]||[]).concat(i[e].tweens)})),r}function D(e,t,n){return e.map((e=>{const r=T(e,t,n);return Object.keys(r).map((e=>{return{seek:function(e){var n,r;let o;for(let a,i=0;a=t[i++];){if(a.begin<=e&&a.end>=e){o=a;break}e>a.end&&(!t[i+1]||t[i+1].begin>e)&&(o=a)}if(o){let t,a=P(e,o);for(let e=S.length-1;e>=0;e--){if(t=null==(r=(n=S[e]).update)?void 0:r.call(n,o,a,k),t===k)return;void 0!==t&&(a=t)}}},getDuration:function(){return Math.max(...t.map((e=>e.end)))},tweens:t=r[e]};var t}))})).flat()}const $={duration:500,delay:0,endDelay:0,easing:"easeInOutQuad",round:0};function j(e){w(e).forEach((e=>{S.includes(e)||(S.push(e),S.sort(((e,t)=>t.order-e.order)))}))}const L="alternate-reverse",I="reverse",F="alternate";function N(e){return e===I||e===L}function z(e){return e===F||e===L}const R={externalTicker:!1,autoplay:!0,direction:"normal",loop:1},X=["begin","loopBegin","complete","loopComplete","pause","play","update"];function Y(e){const t=Object.assign({},R,e),{externalTicker:n,autoplay:r,direction:o,loop:a}=t;let i=!1,s=!0,c=0,l=0,u=a,d=N(o),b=0,w=[];const x=function(){const e={};function t(t,n){let r=e[t];r||(r=e[t]=new Set),r.add(n)}function n(t,n){if(n){const r=e[t];r&&(r.delete(n),0===r.size&&delete e[t])}else delete e[t]}return{on:t,off:n,once:function(e,r){t(e,(function t(...o){r(...o),n(e,t)}))},emit:function(t,...n){const r=e[t];r&&r.forEach((e=>{e(...n)}))}}}();function k(){return 0===u&&l===b}function v(e){let t=!1;e>=b?(e=b,t=!0):e<0&&(e=0),l=e;const n=d?b-l:l;w.forEach((({target:e,begin:t})=>{e.seek(n-t)})),x.emit("update",n,0===b?0:l/b),t&&(x.emit("loopComplete"),--u<0&&(u=0),0===u?(O(),x.emit("complete")):s||(z(o)&&(d=!d),E()))}function M(){if(!s){let e=Date.now();v(e-c+l),c=e}}function E(){i?l=0:(i=!0,x.emit("begin")),x.emit("loopBegin"),S()}function S(){i?s&&(s=!1,k()?(z(o)&&(d=!d),P()):(c=Date.now(),n||f.add(M),x.emit("play"))):E()}function O(){s||(s=!0,n||f.remove(M),x.emit("pause"))}function P(){O(),l=0,i=!1,u=a,d=N(o),S()}function q(e,t,n,r){if(function(e){return h(e)&&"getDuration"in e&&"seek"in e}(e)){let n=b;if(p(r=null!=t?t:">"))n=r;else{const{begin:e,end:t}=w[w.length-1]||{begin:0,end:0},o=t-e,[,a,i,f,s]=g.exec(r)||[,">","","",""];n="<"===a?e:">"===a?t:n;let c=+f;"%"===s&&(c=(a?o:b)/100*+f),n+="-="===i?-c:c}n=Math.max(0,n);const o=n+e.getDuration();w.push({target:e,position:r,begin:n,end:o}),b=Math.max(b,o)}else{(p(n)||m(n))&&(r=n,n=void 0);const o=function(e,t,n){const r=Object.assign({},$,n);return D((o=A(e)).map(((e,t)=>({target:e,index:t,total:o.length}))),y(t)?t:[t],r);var o}(e,t,n);o.forEach(((e,t)=>{q(e,0===t?r:"<")}))}return C}X.forEach((e=>{t[e]&&x.on(e,t[e])})),r&&0!==a&&E();const C={play:S,pause:O,finish:function(){k()||v(b)},restart:P,seek:v,progress:function(e){var t,n,r;v((r=1,((t=e)<(n=0)?n:t>r?r:t)*b))},tick:()=>{n&&M()},getPosition:()=>l,getDuration:()=>b,getProgress:()=>0===b?0:l/b,isReverse:()=>d,add:q,remove:function(e){const t=w.findIndex((t=>t.target===e));-1!==t&&(w.splice(t,1),function(){const e=[...w];w=[],b=0,e.forEach((e=>{q(e.target,e.position)}))}())},clear:function(){O(),b=0,w=[]},events:w,on:x.on,off:x.off,once:x.once};return C}const B={start:0,from:0,direction:"normal",easing:"linear",grid:null,axis:null};const G={order:100,update(e,t,n){const{animatedTarget:r,prop:o,unit:a}=e;let i=y(t)?t[0]:t;return a&&(i+=a),r.target[o]=i,n}},Q={order:0,init(e,t){if(0===e.between.length){const n=w(e.to),r=w(e.from);return e.between=n.map(((t,n)=>({from:+r[n]||0,to:+t||0,round:e.round}))),t}}},Z={},U=["","webkit","Moz"],V=document.documentElement,H=["translateX","translateY","translateZ","scale","scaleX","scaleY","scaleZ","rotate","rotateX","rotateY","rotateZ","skew","skewX","skewY","perspective"];let W=null;let _=null;function J(e){return _||(_=ee(["columnCount","fillOpacity","fontSizeAdjust","fontWeight","lineHeight","opacity","orphans","widows","zIndex","zoom","scale","scaleX","scaleY","scaleZ","order","flexGrow","flexShrink","scrollLeft","scrollTop","strokeDashoffset","strokeDasharray"])),_[e]}let K=null;function ee(e){const t={};for(let n=0,r=e.length;n<r;n++)t[e[n]]=!0;return t}function te(e){return e.replace(/[-]([^-])/g,((e,t)=>t.toUpperCase())).replace(/^./,(e=>e.toLowerCase()))}function ne(e,t){if(Z[e])return Z[e];t=t||V.style;for(let n=0,r=U.length;n<r;n++){const r=U[n];let o=r?r+String(e).replace(/[-]([^-])/g,((e,t)=>t.toUpperCase())).replace(/^./,(e=>e.toUpperCase())):te(String(e));if(o in t)return Z[e]=o}return""}function re(e,t){return t+(Number.isNaN(+t)||J(e)?"":"px")}function oe(e,t){return window.getComputedStyle(e)[ne(t)]}function ae(e,t,n){e.style[ne(t)]=n}function ie(e,t){let n="";t.forEach(((e,t)=>n+=t+"("+e+") ")),ae(e,"transform",n)}let fe=null;function se(e){return fe||(fe={_default:{get:(e,t)=>oe(e,t),set(e,t,n){!function(e,t,n){e.style[ne(t)]=re(String(t),n)}(e,t,n)}}},["scrollTop","scrollLeft"].forEach((e=>{fe[e]={get:(e,t)=>e[t],set(e,t,n){e[t]=n}}})),H.forEach((e=>{fe[e]={get:(e,t)=>le(e).get(t)||"",set(e,t,n){const r=le(e);r.set(t,re(t,n)),ue(r),ie(e,r)}}}))),fe[e]||fe._default}function ce(e){return/rotate|skew/.test(e)?"deg":J(e)?"":"px"}function le(e){const t=e.style.getPropertyValue(ne("transform")),n=/(\w+)\(([^)]+)\)/g;let r;const o=[];for(;r=n.exec(t);)o.push([r[1],r[2]]);return o.sort(((e,t)=>H.indexOf(e[0])-H.indexOf(t[0]))),new Map(o)}function ue(e){const t=[...e].sort(((e,t)=>H.indexOf(e[0])-H.indexOf(t[0])));e.clear(),t.forEach((([t,n])=>{e.set(t,n)}))}function de(e){var t;return(null==(t=u.exec(e))?void 0:t[3])||""}function ge(e,t,n){if(-1!==[de(String(t)),"deg","rad","turn"].indexOf(n))return t;const r=document.createElement(e.tagName);r.style.position="absolute",r.style.width=100+n;const o=e.parentNode&&e.parentNode!==document?e.parentNode:document.body;o.appendChild(r);const a=100/r.offsetWidth;return o.removeChild(r),a*parseFloat(String(t))}function pe(e,t,n,r){switch(r){case"trans":return function(e,t,n){let r=le(e).get(t)||(/scale/.test(t)?1:0+ce(t));return n?ge(e,r,n):r}(e,t,n);case"css":return function(e,t,n){let r=oe(e,t);return n&&m(r)?ge(e,r,n):r}(e,t,n);case"attr":return function(e,t){return e.getAttribute(t)}(e,t)}}function me(e,t){return function(e){return W||(W=ee(H)),!!W[e]}(t)?"trans":ne(t)?"css":(n=t,K||(K=ee(["value"])),!K[n]&&e.hasAttribute(t)?"attr":"");var n}const he={order:90,init(e){const{animatedTarget:t,prop:n,data:r}=e,o=t.target;if(function(e){return e instanceof HTMLElement||e instanceof SVGElement}(o)){const a=me(o,n);if(a){if(r.css=a,"trans"===a&&(t.transforms||(t.transforms={map:le(o)})),e.withoutFrom){e.from=pe(o,n,e.unit,a);const t=u.exec(e.from);t&&(e.from=parseFloat(t[2]))}e.unit||(e.unit=ce(n))}}},update(e,t,n){const r=e.data.css;if(r){const{animatedTarget:o,prop:a,unit:i}=e,f=o.target;let s=y(t)?t[0]:t;switch("attr"!==r&&(s+=i),r){case"trans":let e=o.transforms.map;const t=e.has(a);e.set(a,s),t||ue(e),ie(f,e);break;case"css":ae(f,a,s);break;case"attr":f.setAttribute(a,s)}return n}}},be={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"00ffff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000000",blanchedalmond:"ffebcd",blue:"0000ff",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"00ffff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"ff00ff",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"778899",lightslategrey:"778899",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"00ff00",limegreen:"32cd32",linen:"faf0e6",magenta:"ff00ff",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"ff0000",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"ffffff",whitesmoke:"f5f5f5",yellow:"ffff00",yellowgreen:"9acd32"};function ye(e){let t,n=/[0-9a-f]{2}/gi,r=[];for(;t=n.exec(e);)r.push(parseInt(t[0],16));return r}function we(e){let t,n=/[.\d]+/g,r=[];for(;t=n.exec(e);)r.push(+t[0]);return r}function xe(e){let t;if(e=String(e),/^#?[0-9a-f]{3}$/i.test(e))t=ye(e.replace(/(.)(.)(.)$/,"$1$1$2$2$3$3"));else if(/^#?([0-9a-f]{6})$/i.test(e))t=ye(RegExp.$1);else if(/^rgb/i.test(e))t=we(e);else if(/^hsl/i.test(e)){const n=we(e);n[0]/=360,n[1]/=100,n[2]/=100,t=function(e,t,n){let r,o,a;function i(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+6*(t-e)*n:n<.5?t:n<2/3?e+(t-e)*(2/3-n)*6:e}if(0==t)r=o=a=n;else{let f=n<.5?n*(1+t):n+t-n*t,s=2*n-f;r=i(s,f,e+1/3),o=i(s,f,e),a=i(s,f,e-1/3)}return[Math.round(255*r),Math.round(255*o),Math.round(255*a)]}(...n).concat(n[3])}else t=be.hasOwnProperty(e=e.toLowerCase())?ye(be[e]):[0,0,0,1];return p(t[3])||(t[3]=1),t}const ke={order:80,init(e,t){if(m(e.to)&&(n=e.to,be.hasOwnProperty(String(n).toLowerCase())||/^(?:rgb|hsl|#(?:[0-9a-f]{6}|[0-9a-f]{3})$)/i.test(n))){const n=e.data,r=xe(String(e.from)),o=xe(e.to);return e.between=o.map(((e,t)=>({from:r[t],to:e,round:3===t?0:1}))),e.unit="",n.color={},t}var n},update(e,t){if(e.data.color)return"rgba("+t.join(",")+")"}};const ve={order:70,init(e){if(e.operator){let t=e.from;p(t)||(t=Number(t)||0),e.to=function(e,t,n){switch(n[0]){case"+":return e+t;case"-":return e-t;case"*":return e*t;case"/":return e/t;case"%":return e%t}return 0}(t,e.to,e.operator),e.from=t}}};function Me(e,t){return function(e,t){return Math.atan2(t.y-e.y,t.x-e.x)}(e,t)/Math.PI*180}const Ee={order:60,init(e){const{data:t,to:n}=e;n instanceof E&&(t.svg=n,e.from=0,e.to=n.totalLength,e.unit="")},update(e,t){const n=e.data.svg;if(n){let e=function(e){return n.el.getPointAtLength(r+e)};const r=y(t)?t[0]:t,o=e(-1),a=e(0);switch(n.prop){case"x":return a.x+"px";case"y":return a.y+"px";case"angle":return Me(o,a)+"deg"}}}},Se={order:50,init(e){let t,n=e.to;if(m(n)&&(t=n.match(d))){e.data.interp=n.split(d);let r,o=e.from;m(o)&&(r=o.match(d))?o=r:y(o)||(o=[e.from]),e.from=o,e.to=t}},update(e,t){const n=e.data.interp;if(n)return t.map(((e,t)=>n[t]+e)).join("")}};j(G),j(Q),exports.colorPlugin=ke,exports.createAnimation=function(e,t,n){return Y(n).add(e,t,n)},exports.createTimeline=Y,exports.css=function e(t,n,r){if(h(n))for(let o in n)e(t,o,n[o]);else{if(void 0===r)return se(n).get(t,n);se(n).set(t,n,r)}},exports.cssPlugin=he,exports.easings=s,exports.geometry=function(e,t=100){return e=m(e)?document.querySelector(e):e,n=>new E(e,n,e.getTotalLength()*(t/100))},exports.getPrefixedCssProp=ne,exports.interpPlugin=Se,exports.random=function(e,t){return Math.floor(Math.random()*(t-e+1)+e)},exports.relativePlugin=ve,exports.setDashoffset=e=>{if(e instanceof SVGGeometryElement){let t=e.getTotalLength();return e.setAttribute("stroke-dasharray",String(t)),t}return 0},exports.stagger=function(e,t){let{direction:n,grid:r,axis:o,from:a,start:i,easing:f}=Object.assign({},B,t);f=x(f);let s=y(e);const[c,l]=s?e:[0,e];let u=[],d=0;return i=i||c,(e,t,g)=>{const p="center"===a,m="first"===a?0:p?(g-1)/2:"last"===a?g-1:a;if(!u.length){for(let e=0;e<g;e++){if(r){const[t,n]=r,a=(p?(n-1)/2:m%n)-e%n,i=(p?(t-1)/2:~~(m/n))-~~(e/n);let f=Math.sqrt(a*a+i*i);f="x"===o?-a:"y"===o?-i:f,u.push(f)}else u.push(Math.abs(m-e));d=Math.max(...u)}u=u.map((n=>f(e,t,g)(n/d)*d)),"reverse"===n&&(u=u.map((e=>o?-e:Math.abs(d-e))))}let h=s?(l-c)/d:l;return h===1/0&&(h=0),i+h*(Math.round(100*u[t])/100)}},exports.svgPlugin=Ee,exports.ticker=f,exports.use=j,exports.withFrom=function(e,t){return new M(e,t)};
@@ -1,45 +1,8 @@
1
- /* lwa 0.2.3-alpha | MIT license | https://github.com/sutras/lwa */
1
+ /* lwa 0.2.3 | MIT license | https://github.com/sutras/lwa */
2
2
  var __defProp = Object.defineProperty;
3
3
  var __pow = Math.pow;
4
4
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
5
5
  var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
6
- function getAnimationFrameController() {
7
- if (typeof requestAnimationFrame === "function") {
8
- return {
9
- request: requestAnimationFrame,
10
- cancel: cancelAnimationFrame
11
- };
12
- }
13
- const fps = 60;
14
- const callbacks = [];
15
- let id2 = 1;
16
- let cursor = 0;
17
- let timer;
18
- function playAll() {
19
- timer = void 0;
20
- const cloned = callbacks.slice();
21
- cursor += callbacks.length;
22
- callbacks.length = 0;
23
- cloned.forEach((callback) => {
24
- if (callback !== 0) {
25
- callback(Date.now());
26
- }
27
- });
28
- }
29
- return {
30
- request(handler) {
31
- callbacks.push(handler);
32
- if (!timer) {
33
- timer = setTimeout(playAll, 1e3 / fps);
34
- }
35
- return id2++;
36
- },
37
- cancel(id22) {
38
- callbacks[id22 - cursor] = 0;
39
- }
40
- };
41
- }
42
- const { request, cancel } = getAnimationFrameController();
43
6
  const ticks = /* @__PURE__ */ new Set();
44
7
  let id = 0;
45
8
  let paused = true;
@@ -55,19 +18,19 @@ function step() {
55
18
  stop();
56
19
  } else {
57
20
  new Set(ticks).forEach((tick) => tick());
58
- id = request(step);
21
+ id = requestAnimationFrame(step);
59
22
  }
60
23
  }
61
24
  function run() {
62
25
  if (paused) {
63
26
  paused = false;
64
- id = request(step);
27
+ id = requestAnimationFrame(step);
65
28
  }
66
29
  }
67
30
  function stop() {
68
31
  if (!paused) {
69
32
  paused = true;
70
- cancel(id);
33
+ cancelAnimationFrame(id);
71
34
  }
72
35
  }
73
36
  const ticker = {
@@ -267,18 +230,18 @@ function normalizeTweens(animatedTarget, objectValues, prop, options, beginTime,
267
230
  let endTime = beginTime || 0;
268
231
  let prevTween;
269
232
  averageDuration = (averageDuration != null ? averageDuration : options.duration) / l;
270
- function normalizeTween(objectValue, index2, prevTween2) {
233
+ function normalizeTween(objectValue, index, prevTween2) {
271
234
  var _a, _b, _c, _d, _e, _f, _g;
272
235
  const duration = getFuncValue(
273
236
  (_a = objectValue.duration) != null ? _a : averageDuration,
274
237
  animatedTarget
275
238
  );
276
239
  const delay = getFuncValue(
277
- (_b = objectValue.delay) != null ? _b : index2 === 0 ? options.delay : 0,
240
+ (_b = objectValue.delay) != null ? _b : index === 0 ? options.delay : 0,
278
241
  animatedTarget
279
242
  );
280
243
  const endDelay = getFuncValue(
281
- (_c = objectValue.endDelay) != null ? _c : index2 === l - 1 ? options.endDelay : 0,
244
+ (_c = objectValue.endDelay) != null ? _c : index === l - 1 ? options.endDelay : 0,
282
245
  animatedTarget
283
246
  );
284
247
  const easing = getFuncValue(
@@ -352,7 +315,7 @@ function normalizeTweens(animatedTarget, objectValues, prop, options, beginTime,
352
315
  return tween;
353
316
  }
354
317
  const tweens = objectValues.map(
355
- (objectValue, index2) => prevTween = normalizeTween(objectValue, index2, prevTween)
318
+ (objectValue, index) => prevTween = normalizeTween(objectValue, index, prevTween)
356
319
  ).sort((a, b) => a.begin - b.begin);
357
320
  return {
358
321
  endTime,
@@ -657,16 +620,16 @@ function createTimeline(options) {
657
620
  positionOrKeyframes,
658
621
  optionsOrPosition
659
622
  );
660
- animations.forEach((animation, index2) => {
661
- add2(animation, index2 === 0 ? position2 : "<");
623
+ animations.forEach((animation, index) => {
624
+ add2(animation, index === 0 ? position2 : "<");
662
625
  });
663
626
  }
664
627
  return timeline;
665
628
  }
666
629
  function remove2(target) {
667
- const index2 = events.findIndex((e) => e.target === target);
668
- if (index2 !== -1) {
669
- events.splice(index2, 1);
630
+ const index = events.findIndex((e) => e.target === target);
631
+ if (index !== -1) {
632
+ events.splice(index, 1);
670
633
  update();
671
634
  }
672
635
  }
@@ -740,7 +703,7 @@ function stagger(value, options) {
740
703
  let values = [];
741
704
  let maxValue = 0;
742
705
  start = start || min;
743
- return (el, index2, total) => {
706
+ return (el, index, total) => {
744
707
  const fromCenter = from === "center";
745
708
  const fromIndex = from === "first" ? 0 : fromCenter ? (total - 1) / 2 : from === "last" ? total - 1 : from;
746
709
  if (!values.length) {
@@ -762,7 +725,7 @@ function stagger(value, options) {
762
725
  maxValue = Math.max(...values);
763
726
  }
764
727
  values = values.map(
765
- (val) => easing(el, index2, total)(val / maxValue) * maxValue
728
+ (val) => easing(el, index, total)(val / maxValue) * maxValue
766
729
  );
767
730
  if (direction === "reverse") {
768
731
  values = values.map((val) => axis ? -val : Math.abs(maxValue - val));
@@ -772,7 +735,7 @@ function stagger(value, options) {
772
735
  if (spacing === Infinity) {
773
736
  spacing = 0;
774
737
  }
775
- return start + spacing * (Math.round(values[index2] * 100) / 100);
738
+ return start + spacing * (Math.round(values[index] * 100) / 100);
776
739
  };
777
740
  }
778
741
  function definePlugin(plugin) {
@@ -825,31 +788,49 @@ const transformValues = [
825
788
  "skewY",
826
789
  "perspective"
827
790
  ];
828
- const transformValuesMap = arrayToObject(transformValues);
829
- const optionalUnitProperties = arrayToObject([
830
- "columnCount",
831
- "fillOpacity",
832
- "fontSizeAdjust",
833
- "fontWeight",
834
- "lineHeight",
835
- "opacity",
836
- "orphans",
837
- "widows",
838
- "zIndex",
839
- "zoom",
840
- "scale",
841
- "scaleX",
842
- "scaleY",
843
- "scaleZ",
844
- "order",
845
- "flexGrow",
846
- "flexShrink",
847
- "scrollLeft",
848
- "scrollTop",
849
- "strokeDashoffset",
850
- "strokeDasharray"
851
- ]);
852
- const domDotAttributes = arrayToObject(["value"]);
791
+ let transformValuesMap = null;
792
+ function isTransform(prop) {
793
+ if (!transformValuesMap) {
794
+ transformValuesMap = arrayToObject(transformValues);
795
+ }
796
+ return !!transformValuesMap[prop];
797
+ }
798
+ let optionalUnitProperties = null;
799
+ function isOptionalUnitProperty(prop) {
800
+ if (!optionalUnitProperties) {
801
+ optionalUnitProperties = arrayToObject([
802
+ "columnCount",
803
+ "fillOpacity",
804
+ "fontSizeAdjust",
805
+ "fontWeight",
806
+ "lineHeight",
807
+ "opacity",
808
+ "orphans",
809
+ "widows",
810
+ "zIndex",
811
+ "zoom",
812
+ "scale",
813
+ "scaleX",
814
+ "scaleY",
815
+ "scaleZ",
816
+ "order",
817
+ "flexGrow",
818
+ "flexShrink",
819
+ "scrollLeft",
820
+ "scrollTop",
821
+ "strokeDashoffset",
822
+ "strokeDasharray"
823
+ ]);
824
+ }
825
+ return optionalUnitProperties[prop];
826
+ }
827
+ let domDotAttributes = null;
828
+ function isDomDotAttribute(attr) {
829
+ if (!domDotAttributes) {
830
+ domDotAttributes = arrayToObject(["value"]);
831
+ }
832
+ return domDotAttributes[attr];
833
+ }
853
834
  function arrayToObject(array) {
854
835
  const map = {};
855
836
  for (let i = 0, l = array.length; i < l; i++) {
@@ -874,14 +855,14 @@ function getPrefixedCssProp(name, host) {
874
855
  for (let i = 0, l = prefixes.length; i < l; i++) {
875
856
  const prefix = prefixes[i];
876
857
  let fitName = prefix ? prefix + pascalCase(String(name)) : camalCase(String(name));
877
- if (fitName in html.style) {
858
+ if (fitName in host) {
878
859
  return cssProps[name] = fitName;
879
860
  }
880
861
  }
881
862
  return "";
882
863
  }
883
864
  function combinedWithUnit(prop, value) {
884
- return value + (!Number.isNaN(+value) && !optionalUnitProperties[prop] ? "px" : "");
865
+ return value + (!Number.isNaN(+value) && !isOptionalUnitProperty(prop) ? "px" : "");
885
866
  }
886
867
  function getStyle(elem, prop) {
887
868
  return window.getComputedStyle(elem)[getPrefixedCssProp(prop)];
@@ -900,39 +881,45 @@ function setStyleFromTransformMap(elem, map) {
900
881
  map.forEach((val, key) => value += key + "(" + val + ") ");
901
882
  setStyleIgnoreUnit(elem, "transform", value);
902
883
  }
903
- const cssHooks = {
904
- _default: {
905
- get(elem, prop) {
906
- return getStyle(elem, prop);
907
- },
908
- set(elem, prop, value) {
909
- setStyle(elem, prop, value);
910
- }
884
+ let cssHooks = null;
885
+ function getCssHook(prop) {
886
+ if (!cssHooks) {
887
+ cssHooks = {
888
+ _default: {
889
+ get(elem, prop2) {
890
+ return getStyle(elem, prop2);
891
+ },
892
+ set(elem, prop2, value) {
893
+ setStyle(elem, prop2, value);
894
+ }
895
+ }
896
+ };
897
+ ["scrollTop", "scrollLeft"].forEach((item) => {
898
+ cssHooks[item] = {
899
+ get(elem, prop2) {
900
+ return elem[prop2];
901
+ },
902
+ set(elem, prop2, value) {
903
+ elem[prop2] = value;
904
+ }
905
+ };
906
+ });
907
+ transformValues.forEach((item) => {
908
+ cssHooks[item] = {
909
+ get(elem, prop2) {
910
+ return getTransformValuesMap(elem).get(prop2) || "";
911
+ },
912
+ set(elem, prop2, value) {
913
+ const transformValuesMap2 = getTransformValuesMap(elem);
914
+ transformValuesMap2.set(prop2, combinedWithUnit(prop2, value));
915
+ sortTransformValues(transformValuesMap2);
916
+ setStyleFromTransformMap(elem, transformValuesMap2);
917
+ }
918
+ };
919
+ });
911
920
  }
912
- };
913
- ["scrollTop", "scrollLeft"].forEach((item) => {
914
- cssHooks[item] = {
915
- get(elem, prop) {
916
- return elem[prop];
917
- },
918
- set(elem, prop, value) {
919
- elem[prop] = value;
920
- }
921
- };
922
- });
923
- transformValues.forEach((item) => {
924
- cssHooks[item] = {
925
- get(elem, prop) {
926
- return getTransformValuesMap(elem).get(prop) || "";
927
- },
928
- set(elem, prop, value) {
929
- const transformValuesMap2 = getTransformValuesMap(elem);
930
- transformValuesMap2.set(prop, combinedWithUnit(prop, value));
931
- sortTransformValues(transformValuesMap2);
932
- setStyleFromTransformMap(elem, transformValuesMap2);
933
- }
934
- };
935
- });
921
+ return cssHooks[prop] || cssHooks._default;
922
+ }
936
923
  function css(elem, prop, value) {
937
924
  if (isObject(prop)) {
938
925
  for (let i in prop) {
@@ -943,20 +930,13 @@ function css(elem, prop, value) {
943
930
  );
944
931
  }
945
932
  } else if (value === void 0) {
946
- return (cssHooks[prop] && cssHooks[prop].get || cssHooks._default.get)(
947
- elem,
948
- prop
949
- );
933
+ return getCssHook(prop).get(elem, prop);
950
934
  } else {
951
- (cssHooks[prop] && cssHooks[prop].set || cssHooks._default.set)(
952
- elem,
953
- prop,
954
- value
955
- );
935
+ getCssHook(prop).set(elem, prop, value);
956
936
  }
957
937
  }
958
938
  function getDefaultUnit(prop) {
959
- return /rotate|skew/.test(prop) ? "deg" : optionalUnitProperties[prop] ? "" : "px";
939
+ return /rotate|skew/.test(prop) ? "deg" : isOptionalUnitProperty(prop) ? "" : "px";
960
940
  }
961
941
  function getTransformValuesMap(target) {
962
942
  const value = target.style.getPropertyValue(getPrefixedCssProp("transform"));
@@ -1020,10 +1000,7 @@ function getOriginalValue(target, prop, unit, propType) {
1020
1000
  }
1021
1001
  }
1022
1002
  function getPropType(target, prop) {
1023
- return isTransform(prop) ? "trans" : getPrefixedCssProp(prop) ? "css" : !domDotAttributes[prop] && target.hasAttribute(prop) ? "attr" : "";
1024
- }
1025
- function isTransform(prop) {
1026
- return !!transformValuesMap[prop];
1003
+ return isTransform(prop) ? "trans" : getPrefixedCssProp(prop) ? "css" : !isDomDotAttribute(prop) && target.hasAttribute(prop) ? "attr" : "";
1027
1004
  }
1028
1005
  const cssPlugin = definePlugin({
1029
1006
  order: 90,
@@ -1432,7 +1409,7 @@ function createAnimation(target, keyframes, options) {
1432
1409
  return createTimeline(options).add(target, keyframes, options);
1433
1410
  }
1434
1411
  use([cssPlugin, colorPlugin, relativePlugin, svgPlugin, interpPlugin]);
1435
- const index = Object.assign(
1412
+ const index_full = Object.assign(
1436
1413
  (...args) => {
1437
1414
  return createAnimation(...args);
1438
1415
  },
@@ -1453,5 +1430,5 @@ const index = Object.assign(
1453
1430
  }
1454
1431
  );
1455
1432
  export {
1456
- index as default
1433
+ index_full as default
1457
1434
  };