xiaohe-transition
Advanced tools
Comparing version 0.0.18 to 0.0.19
@@ -1,1 +0,1 @@ | ||
!function(t,s){"object"==typeof exports&&"undefined"!=typeof module?s(exports,require("nanoevents"),require("bezier-easing")):"function"==typeof define&&define.amd?define(["exports","nanoevents","bezier-easing"],s):s((t="undefined"!=typeof globalThis?globalThis:t||self).xh_transition={},t.nanoevents,t.BezierEasing)}(this,(function(t,s,i){"use strict";var e,n,r,a;t.XhTransitionPresetBezier=void 0,(e=t.XhTransitionPresetBezier||(t.XhTransitionPresetBezier={})).linear="linear",e.ease="ease",e.easeIn="ease-in",e.easeOut="ease-out",e.easeInOut="ease-in-out",t.XhTransitionWorkStatus=void 0,(n=t.XhTransitionWorkStatus||(t.XhTransitionWorkStatus={})).free="free",n.working="working",n.paused="paused",t.XhTransitionRepeatMode=void 0,(r=t.XhTransitionRepeatMode||(t.XhTransitionRepeatMode={})).normal="normal",r.alternate="alternate",t.XhTransitionRepeatDirection=void 0,(a=t.XhTransitionRepeatDirection||(t.XhTransitionRepeatDirection={})).forward="forward",a.backward="backward";const o=300,h=t.XhTransitionPresetBezier.linear,u=0,p=-1,_={[t.XhTransitionPresetBezier.linear]:[0,0,1,1],[t.XhTransitionPresetBezier.ease]:[.25,.1,.25,1],[t.XhTransitionPresetBezier.easeIn]:[.42,0,1,1],[t.XhTransitionPresetBezier.easeOut]:[0,0,.58,1],[t.XhTransitionPresetBezier.easeInOut]:[.42,0,.58,1]},c=-1,l=t.XhTransitionRepeatMode.normal;class d{_emitter;constructor(){this._emitter=s.createNanoEvents()}events(){return this._emitter.events}emit(t){for(var s=arguments.length,i=new Array(s>1?s-1:0),e=1;e<s;e++)i[e-1]=arguments[e];return this._emitter.emit(t,...i),this}on(t,s){return this._emitter.on(t,s)}once(t,s){const i=this.on(t,(function(){i(),s(...arguments)}));return i}clearEvents(){return this._emitter.events={},this}}function m(t){return 0===t?0:1e3/t}class T{_id=null;_timing=!1;_fps;_callback;constructor(t,s){this._fps=t>0?t:this.supportAnimationFrame()?-1:30,this._callback=s}id(){return this._id}start(){return this.stop(),this.useAnimationFrame()?this._id=requestAnimationFrame((()=>{this.animate()})):this._id=setInterval((()=>{this._callback()}),m(this._fps)),this._timing=!0,this}stop(){return null==this._id||(this.useAnimationFrame()?cancelAnimationFrame(this._id):clearInterval(this._id),this._timing=!1,this._id=null),this}animate(){this._timing&&(this._callback(),this._id=requestAnimationFrame((()=>{this.animate()})))}supportAnimationFrame(){return"function"==typeof requestAnimationFrame}useAnimationFrame(){return this.supportAnimationFrame()&&this._fps<=0}}class X extends d{_options;_callback;_status=t.XhTransitionWorkStatus.free;_progress=0;_bezier=null;_timer=null;_last=0;_pauses=0;constructor(t,s){super(),"function"==typeof t?(this._options={},this._callback=t):(this._options=t,this._callback=s)}options(t){return null!=t&&(this._options=Object.assign({},this._options,t)),this._options}status(){return this._status}progress(){return this._progress}value(){const{start:t=0,target:s=0}=this._options;if(null==this._bezier)throw new Error("需要先调用XhTransition#start方法以创建BezierEasing实例!");return this._bezier(this.progress())*(s-t)+t}start(s){this.status()!==t.XhTransitionWorkStatus.free&&this.stop();const{duration:e=o,preset:n=h,bezier:r,delay:a=u,fps:c=p}=this.options(s);this._bezier=i(...r??_[n]);const l=Date.now()+a;return this._timer=new T(c,(()=>{const t=(Date.now()-l-this._pauses)/e;this._progress=Math.max(0,Math.min(1,t)),this._callback(this.value(),this),this.progress()>=1&&(this.stop(),this._options.completed?.(this),this.emit("completed",this))})).start(),this._status=t.XhTransitionWorkStatus.working,this._options.started?.(this),this.emit("started",this),this}pause(){return this.status()!==t.XhTransitionWorkStatus.working||null==this._timer||(this._timer.stop(),this._last=Date.now(),this._status=t.XhTransitionWorkStatus.paused,this._options.paused?.(this),this.emit("paused",this)),this}resume(){return this.status()!==t.XhTransitionWorkStatus.paused||null==this._timer||(this._last>0&&(this._pauses+=Date.now()-this._last),this._timer.start(),this._status=t.XhTransitionWorkStatus.working,this._options.resumed?.(this),this.emit("resumed",this)),this}stop(){return null!=this._timer&&(this._timer.stop(),this._timer=null),this.reset(),this._options.stopped?.(this),this.emit("stopped",this),this}destroy(){this.status()!==t.XhTransitionWorkStatus.free&&this.stop(),this.clearEvents()}reset(){this._status=t.XhTransitionWorkStatus.free,this._progress=0,this._bezier=null,this._last=0,this._pauses=0}}t.XhDefaultTransitionCompatibleFps=30,t.XhDefaultTransitionDelay=u,t.XhDefaultTransitionDuration=o,t.XhDefaultTransitionFps=p,t.XhDefaultTransitionPreset=h,t.XhDefaultTransitionRepeatCount=c,t.XhDefaultTransitionRepeatMode=l,t.XhTransition=X,t.XhTransitionEmitter=d,t.XhTransitionPresetBezierConfig=_,t.XhTransitionRepeater=class extends d{_transition;_options;_status=t.XhTransitionWorkStatus.free;_counts=0;_direction=t.XhTransitionRepeatDirection.forward;constructor(t,s){super(),this._transition=t,this._options=s??{}}options(t){return null!=t&&(this._options=Object.assign({},this._options,t)),this._options}status(){return this._status}counts(){return this._counts}direction(){return this._direction}start(s){this.status()!==t.XhTransitionWorkStatus.free&&this.stop();const{count:i=c,mode:e=l}=this.options(s),n=s=>{if(this._counts+=1,this._options.repeated?.(this.counts(),this,s),this.emit("repeated",this.counts(),this,s),i>0&&this.counts()>=i)return this._options.completed?.(this,this._transition),void this.emit("completed",this,this._transition);const{start:r,target:a}=s.options();switch(e){case t.XhTransitionRepeatMode.normal:s.start({start:r,target:a,completed:n}),this._direction=t.XhTransitionRepeatDirection.forward;break;case t.XhTransitionRepeatMode.alternate:{const i=this.direction();switch(s.start({start:a,target:r,completed:n}),i){case t.XhTransitionRepeatDirection.forward:this._direction=t.XhTransitionRepeatDirection.backward;break;case t.XhTransitionRepeatDirection.backward:this._direction=t.XhTransitionRepeatDirection.forward}break}}};return this._transition.start({completed:n}),this._status=t.XhTransitionWorkStatus.working,this._options.started?.(this,this._transition),this.emit("started",this,this._transition),this}pause(){return this.status()!==t.XhTransitionWorkStatus.working||(this._transition.pause(),this._status=t.XhTransitionWorkStatus.paused,this._options.paused?.(this,this._transition),this.emit("paused",this,this._transition)),this}resume(){return this.status()!==t.XhTransitionWorkStatus.paused||(this._transition.resume(),this._status=t.XhTransitionWorkStatus.working,this._options.resumed?.(this,this._transition),this.emit("resumed",this,this._transition)),this}stop(){return this._transition.stop(),this.reset(),this._options.stopped?.(this,this._transition),this.emit("stopped",this,this._transition),this}destroy(){this.status()!==t.XhTransitionWorkStatus.free&&this.stop(),this.clearEvents()}reset(){this._status=t.XhTransitionWorkStatus.free,this._counts=0,this._direction=t.XhTransitionRepeatDirection.forward}},t.XhTransitionTimer=T,t.default=X,t.fps2ms=m,Object.defineProperty(t,"__esModule",{value:!0})})); | ||
!function(t,s){"object"==typeof exports&&"undefined"!=typeof module?s(exports,require("bezier-easing")):"function"==typeof define&&define.amd?define(["exports","bezier-easing"],s):s((t="undefined"!=typeof globalThis?globalThis:t||self).xh_transition={},t.BezierEasing)}(this,(function(t,s){"use strict";var i,e,n,r;t.XhTransitionPresetBezier=void 0,(i=t.XhTransitionPresetBezier||(t.XhTransitionPresetBezier={})).linear="linear",i.ease="ease",i.easeIn="ease-in",i.easeOut="ease-out",i.easeInOut="ease-in-out",t.XhTransitionWorkStatus=void 0,(e=t.XhTransitionWorkStatus||(t.XhTransitionWorkStatus={})).free="free",e.working="working",e.paused="paused",t.XhTransitionRepeatMode=void 0,(n=t.XhTransitionRepeatMode||(t.XhTransitionRepeatMode={})).normal="normal",n.alternate="alternate",t.XhTransitionRepeatDirection=void 0,(r=t.XhTransitionRepeatDirection||(t.XhTransitionRepeatDirection={})).forward="forward",r.backward="backward";const a=300,o=t.XhTransitionPresetBezier.linear,h=0,u=-1,p={[t.XhTransitionPresetBezier.linear]:[0,0,1,1],[t.XhTransitionPresetBezier.ease]:[.25,.1,.25,1],[t.XhTransitionPresetBezier.easeIn]:[.42,0,1,1],[t.XhTransitionPresetBezier.easeOut]:[0,0,.58,1],[t.XhTransitionPresetBezier.easeInOut]:[.42,0,.58,1]},_=-1,c=t.XhTransitionRepeatMode.normal;class l{_emitter;constructor(){this._emitter={emit(t){const s=this.events[t]??[];for(var i=arguments.length,e=new Array(i>1?i-1:0),n=1;n<i;n++)e[n-1]=arguments[n];for(const t of s)t(...e)},events:{},on(t,s){return this.events[t]?.push(s)||(this.events[t]=[s]),()=>{this.events[t]=this.events[t]?.filter((t=>s!==t))}}}}events(){return this._emitter.events}emit(t){for(var s=arguments.length,i=new Array(s>1?s-1:0),e=1;e<s;e++)i[e-1]=arguments[e];return this._emitter.emit(t,...i),this}on(t,s){return this._emitter.on(t,s)}once(t,s){const i=this.on(t,(function(){i(),s(...arguments)}));return i}clearEvents(){return this._emitter.events={},this}}function d(t){return 0===t?0:1e3/t}class m{_id=null;_timing=!1;_fps;_callback;constructor(t,s){this._fps=t>0?t:this.supportAnimationFrame()?-1:30,this._callback=s}id(){return this._id}start(){return this.stop(),this.useAnimationFrame()?this._id=requestAnimationFrame((()=>{this.animate()})):this._id=setInterval((()=>{this._callback()}),d(this._fps)),this._timing=!0,this}stop(){return null==this._id||(this.useAnimationFrame()?cancelAnimationFrame(this._id):clearInterval(this._id),this._timing=!1,this._id=null),this}animate(){this._timing&&(this._callback(),this._id=requestAnimationFrame((()=>{this.animate()})))}supportAnimationFrame(){return"function"==typeof requestAnimationFrame}useAnimationFrame(){return this.supportAnimationFrame()&&this._fps<=0}}class T extends l{_options;_callback;_status=t.XhTransitionWorkStatus.free;_progress=0;_bezier=null;_timer=null;_last=0;_pauses=0;constructor(t,s){super(),"function"==typeof t?(this._options={},this._callback=t):(this._options=t,this._callback=s)}options(t){return null!=t&&(this._options=Object.assign({},this._options,t)),this._options}status(){return this._status}progress(){return this._progress}value(){const{start:t=0,target:s=0}=this._options;if(null==this._bezier)throw new Error("需要先调用XhTransition#start方法以创建BezierEasing实例!");return this._bezier(this.progress())*(s-t)+t}start(i){this.status()!==t.XhTransitionWorkStatus.free&&this.stop();const{duration:e=a,preset:n=o,bezier:r,delay:_=h,fps:c=u}=this.options(i);this._bezier=s(...r??p[n]);const l=Date.now()+_;return this._timer=new m(c,(()=>{const t=(Date.now()-l-this._pauses)/e;this._progress=Math.max(0,Math.min(1,t)),this._callback(this.value(),this),this.progress()>=1&&(this.stop(),this._options.completed?.(this),this.emit("completed",this))})).start(),this._status=t.XhTransitionWorkStatus.working,this._options.started?.(this),this.emit("started",this),this}pause(){return this.status()!==t.XhTransitionWorkStatus.working||null==this._timer||(this._timer.stop(),this._last=Date.now(),this._status=t.XhTransitionWorkStatus.paused,this._options.paused?.(this),this.emit("paused",this)),this}resume(){return this.status()!==t.XhTransitionWorkStatus.paused||null==this._timer||(this._last>0&&(this._pauses+=Date.now()-this._last),this._timer.start(),this._status=t.XhTransitionWorkStatus.working,this._options.resumed?.(this),this.emit("resumed",this)),this}stop(){return null!=this._timer&&(this._timer.stop(),this._timer=null),this.reset(),this._options.stopped?.(this),this.emit("stopped",this),this}destroy(){this.status()!==t.XhTransitionWorkStatus.free&&this.stop(),this.clearEvents()}reset(){this._status=t.XhTransitionWorkStatus.free,this._progress=0,this._bezier=null,this._last=0,this._pauses=0}}t.XhDefaultTransitionCompatibleFps=30,t.XhDefaultTransitionDelay=h,t.XhDefaultTransitionDuration=a,t.XhDefaultTransitionFps=u,t.XhDefaultTransitionPreset=o,t.XhDefaultTransitionRepeatCount=_,t.XhDefaultTransitionRepeatMode=c,t.XhTransition=T,t.XhTransitionEmitter=l,t.XhTransitionPresetBezierConfig=p,t.XhTransitionRepeater=class extends l{_transition;_options;_status=t.XhTransitionWorkStatus.free;_counts=0;_direction=t.XhTransitionRepeatDirection.forward;constructor(t,s){super(),this._transition=t,this._options=s??{}}options(t){return null!=t&&(this._options=Object.assign({},this._options,t)),this._options}status(){return this._status}counts(){return this._counts}direction(){return this._direction}start(s){this.status()!==t.XhTransitionWorkStatus.free&&this.stop();const{count:i=_,mode:e=c}=this.options(s),n=s=>{if(this._counts+=1,this._options.repeated?.(this.counts(),this,s),this.emit("repeated",this.counts(),this,s),i>0&&this.counts()>=i)return this._options.completed?.(this,this._transition),void this.emit("completed",this,this._transition);const{start:r,target:a}=s.options();switch(e){case t.XhTransitionRepeatMode.normal:s.start({start:r,target:a,completed:n}),this._direction=t.XhTransitionRepeatDirection.forward;break;case t.XhTransitionRepeatMode.alternate:{const i=this.direction();switch(s.start({start:a,target:r,completed:n}),i){case t.XhTransitionRepeatDirection.forward:this._direction=t.XhTransitionRepeatDirection.backward;break;case t.XhTransitionRepeatDirection.backward:this._direction=t.XhTransitionRepeatDirection.forward}break}}};return this._transition.start({completed:n}),this._status=t.XhTransitionWorkStatus.working,this._options.started?.(this,this._transition),this.emit("started",this,this._transition),this}pause(){return this.status()!==t.XhTransitionWorkStatus.working||(this._transition.pause(),this._status=t.XhTransitionWorkStatus.paused,this._options.paused?.(this,this._transition),this.emit("paused",this,this._transition)),this}resume(){return this.status()!==t.XhTransitionWorkStatus.paused||(this._transition.resume(),this._status=t.XhTransitionWorkStatus.working,this._options.resumed?.(this,this._transition),this.emit("resumed",this,this._transition)),this}stop(){return this._transition.stop(),this.reset(),this._options.stopped?.(this,this._transition),this.emit("stopped",this,this._transition),this}destroy(){this.status()!==t.XhTransitionWorkStatus.free&&this.stop(),this.clearEvents()}reset(){this._status=t.XhTransitionWorkStatus.free,this._counts=0,this._direction=t.XhTransitionRepeatDirection.forward}},t.XhTransitionTimer=m,t.default=T,t.fps2ms=d,Object.defineProperty(t,"__esModule",{value:!0})})); |
@@ -1,2 +0,2 @@ | ||
import { DefaultEvents, Emitter, EventsMap, Unsubscribe } from "nanoevents"; | ||
import { DefaultEvents, Emitter, EventsMap, Unsubscribe } from "./plugins/events.js"; | ||
/** | ||
@@ -3,0 +3,0 @@ * 过渡动画事件触发器 |
@@ -1,1 +0,1 @@ | ||
import{createNanoEvents as t}from"nanoevents";class e{_emitter;constructor(){this._emitter=t()}events(){return this._emitter.events}emit(t){for(var e=arguments.length,r=new Array(e>1?e-1:0),n=1;n<e;n++)r[n-1]=arguments[n];return this._emitter.emit(t,...r),this}on(t,e){return this._emitter.on(t,e)}once(t,e){const r=this.on(t,(function(){r(),e(...arguments)}));return r}clearEvents(){return this._emitter.events={},this}}export{e as default}; | ||
import{createNanoEvents as t}from"./plugins/events.js";class e{_emitter;constructor(){this._emitter=t()}events(){return this._emitter.events}emit(t){for(var e=arguments.length,r=new Array(e>1?e-1:0),n=1;n<e;n++)r[n-1]=arguments[n];return this._emitter.emit(t,...r),this}on(t,e){return this._emitter.on(t,e)}once(t,e){const r=this.on(t,(function(){r(),e(...arguments)}));return r}clearEvents(){return this._emitter.events={},this}}export{e as default}; |
@@ -1,1 +0,1 @@ | ||
export{default as XhTransition,default}from"./transition.js";export{default as XhTransitionTimer}from"./timer.js";export{default as XhTransitionRepeater}from"./repeater.js";export{default as XhTransitionEmitter}from"./emitter.js";export{XhTransitionPresetBezier,XhTransitionRepeatDirection,XhTransitionRepeatMode,XhTransitionWorkStatus}from"./types.js";export{XhDefaultTransitionCompatibleFps,XhDefaultTransitionDelay,XhDefaultTransitionDuration,XhDefaultTransitionFps,XhDefaultTransitionPreset,XhDefaultTransitionRepeatCount,XhDefaultTransitionRepeatMode,XhTransitionPresetBezierConfig}from"./config.js";export{fps2ms}from"./utils.js";import"bezier-easing";import"nanoevents"; | ||
export{default as XhTransition,default}from"./transition.js";export{default as XhTransitionTimer}from"./timer.js";export{default as XhTransitionRepeater}from"./repeater.js";export{default as XhTransitionEmitter}from"./emitter.js";export{XhTransitionPresetBezier,XhTransitionRepeatDirection,XhTransitionRepeatMode,XhTransitionWorkStatus}from"./types.js";export{XhDefaultTransitionCompatibleFps,XhDefaultTransitionDelay,XhDefaultTransitionDuration,XhDefaultTransitionFps,XhDefaultTransitionPreset,XhDefaultTransitionRepeatCount,XhDefaultTransitionRepeatMode,XhTransitionPresetBezierConfig}from"./config.js";export{fps2ms}from"./utils.js";import"bezier-easing";import"./plugins/events.js"; |
@@ -1,1 +0,1 @@ | ||
import{XhTransitionWorkStatus as t,XhTransitionRepeatDirection as s,XhTransitionRepeatMode as i}from"./types.js";import{XhDefaultTransitionRepeatCount as r,XhDefaultTransitionRepeatMode as o}from"./config.js";import e from"./emitter.js";import"nanoevents";class n extends e{_transition;_options;_status=t.free;_counts=0;_direction=s.forward;constructor(t,s){super(),this._transition=t,this._options=s??{}}options(t){return null!=t&&(this._options=Object.assign({},this._options,t)),this._options}status(){return this._status}counts(){return this._counts}direction(){return this._direction}start(e){this.status()!==t.free&&this.stop();const{count:n=r,mode:h=o}=this.options(e),a=t=>{if(this._counts+=1,this._options.repeated?.(this.counts(),this,t),this.emit("repeated",this.counts(),this,t),n>0&&this.counts()>=n)return this._options.completed?.(this,this._transition),void this.emit("completed",this,this._transition);const{start:r,target:o}=t.options();switch(h){case i.normal:t.start({start:r,target:o,completed:a}),this._direction=s.forward;break;case i.alternate:{const i=this.direction();switch(t.start({start:o,target:r,completed:a}),i){case s.forward:this._direction=s.backward;break;case s.backward:this._direction=s.forward}break}}};return this._transition.start({completed:a}),this._status=t.working,this._options.started?.(this,this._transition),this.emit("started",this,this._transition),this}pause(){return this.status()!==t.working||(this._transition.pause(),this._status=t.paused,this._options.paused?.(this,this._transition),this.emit("paused",this,this._transition)),this}resume(){return this.status()!==t.paused||(this._transition.resume(),this._status=t.working,this._options.resumed?.(this,this._transition),this.emit("resumed",this,this._transition)),this}stop(){return this._transition.stop(),this.reset(),this._options.stopped?.(this,this._transition),this.emit("stopped",this,this._transition),this}destroy(){this.status()!==t.free&&this.stop(),this.clearEvents()}reset(){this._status=t.free,this._counts=0,this._direction=s.forward}}export{n as default}; | ||
import{XhTransitionWorkStatus as t,XhTransitionRepeatDirection as s,XhTransitionRepeatMode as i}from"./types.js";import{XhDefaultTransitionRepeatCount as r,XhDefaultTransitionRepeatMode as o}from"./config.js";import e from"./emitter.js";import"./plugins/events.js";class n extends e{_transition;_options;_status=t.free;_counts=0;_direction=s.forward;constructor(t,s){super(),this._transition=t,this._options=s??{}}options(t){return null!=t&&(this._options=Object.assign({},this._options,t)),this._options}status(){return this._status}counts(){return this._counts}direction(){return this._direction}start(e){this.status()!==t.free&&this.stop();const{count:n=r,mode:h=o}=this.options(e),a=t=>{if(this._counts+=1,this._options.repeated?.(this.counts(),this,t),this.emit("repeated",this.counts(),this,t),n>0&&this.counts()>=n)return this._options.completed?.(this,this._transition),void this.emit("completed",this,this._transition);const{start:r,target:o}=t.options();switch(h){case i.normal:t.start({start:r,target:o,completed:a}),this._direction=s.forward;break;case i.alternate:{const i=this.direction();switch(t.start({start:o,target:r,completed:a}),i){case s.forward:this._direction=s.backward;break;case s.backward:this._direction=s.forward}break}}};return this._transition.start({completed:a}),this._status=t.working,this._options.started?.(this,this._transition),this.emit("started",this,this._transition),this}pause(){return this.status()!==t.working||(this._transition.pause(),this._status=t.paused,this._options.paused?.(this,this._transition),this.emit("paused",this,this._transition)),this}resume(){return this.status()!==t.paused||(this._transition.resume(),this._status=t.working,this._options.resumed?.(this,this._transition),this.emit("resumed",this,this._transition)),this}stop(){return this._transition.stop(),this.reset(),this._options.stopped?.(this,this._transition),this.emit("stopped",this,this._transition),this}destroy(){this.status()!==t.free&&this.stop(),this.clearEvents()}reset(){this._status=t.free,this._counts=0,this._direction=s.forward}}export{n as default}; |
@@ -1,1 +0,1 @@ | ||
import{XhTransitionWorkStatus as t}from"./types.js";import{XhTransitionPresetBezierConfig as s,XhDefaultTransitionDuration as i,XhDefaultTransitionPreset as e,XhDefaultTransitionDelay as r,XhDefaultTransitionFps as o}from"./config.js";import h from"./emitter.js";import a from"./timer.js";import n from"bezier-easing";import"nanoevents";import"./utils.js";class p extends h{_options;_callback;_status=t.free;_progress=0;_bezier=null;_timer=null;_last=0;_pauses=0;constructor(t,s){super(),"function"==typeof t?(this._options={},this._callback=t):(this._options=t,this._callback=s)}options(t){return null!=t&&(this._options=Object.assign({},this._options,t)),this._options}status(){return this._status}progress(){return this._progress}value(){const{start:t=0,target:s=0}=this._options;if(null==this._bezier)throw new Error("需要先调用XhTransition#start方法以创建BezierEasing实例!");return this._bezier(this.progress())*(s-t)+t}start(h){this.status()!==t.free&&this.stop();const{duration:p=i,preset:_=e,bezier:u,delay:l=r,fps:m=o}=this.options(h);this._bezier=n(...u??s[_]);const c=Date.now()+l;return this._timer=new a(m,(()=>{const t=(Date.now()-c-this._pauses)/p;this._progress=Math.max(0,Math.min(1,t)),this._callback(this.value(),this),this.progress()>=1&&(this.stop(),this._options.completed?.(this),this.emit("completed",this))})).start(),this._status=t.working,this._options.started?.(this),this.emit("started",this),this}pause(){return this.status()!==t.working||null==this._timer||(this._timer.stop(),this._last=Date.now(),this._status=t.paused,this._options.paused?.(this),this.emit("paused",this)),this}resume(){return this.status()!==t.paused||null==this._timer||(this._last>0&&(this._pauses+=Date.now()-this._last),this._timer.start(),this._status=t.working,this._options.resumed?.(this),this.emit("resumed",this)),this}stop(){return null!=this._timer&&(this._timer.stop(),this._timer=null),this.reset(),this._options.stopped?.(this),this.emit("stopped",this),this}destroy(){this.status()!==t.free&&this.stop(),this.clearEvents()}reset(){this._status=t.free,this._progress=0,this._bezier=null,this._last=0,this._pauses=0}}export{p as default}; | ||
import{XhTransitionWorkStatus as t}from"./types.js";import{XhTransitionPresetBezierConfig as s,XhDefaultTransitionDuration as i,XhDefaultTransitionPreset as e,XhDefaultTransitionDelay as r,XhDefaultTransitionFps as o}from"./config.js";import h from"./emitter.js";import a from"./timer.js";import n from"bezier-easing";import"./plugins/events.js";import"./utils.js";class p extends h{_options;_callback;_status=t.free;_progress=0;_bezier=null;_timer=null;_last=0;_pauses=0;constructor(t,s){super(),"function"==typeof t?(this._options={},this._callback=t):(this._options=t,this._callback=s)}options(t){return null!=t&&(this._options=Object.assign({},this._options,t)),this._options}status(){return this._status}progress(){return this._progress}value(){const{start:t=0,target:s=0}=this._options;if(null==this._bezier)throw new Error("需要先调用XhTransition#start方法以创建BezierEasing实例!");return this._bezier(this.progress())*(s-t)+t}start(h){this.status()!==t.free&&this.stop();const{duration:p=i,preset:u=e,bezier:_,delay:l=r,fps:m=o}=this.options(h);this._bezier=n(..._??s[u]);const c=Date.now()+l;return this._timer=new a(m,(()=>{const t=(Date.now()-c-this._pauses)/p;this._progress=Math.max(0,Math.min(1,t)),this._callback(this.value(),this),this.progress()>=1&&(this.stop(),this._options.completed?.(this),this.emit("completed",this))})).start(),this._status=t.working,this._options.started?.(this),this.emit("started",this),this}pause(){return this.status()!==t.working||null==this._timer||(this._timer.stop(),this._last=Date.now(),this._status=t.paused,this._options.paused?.(this),this.emit("paused",this)),this}resume(){return this.status()!==t.paused||null==this._timer||(this._last>0&&(this._pauses+=Date.now()-this._last),this._timer.start(),this._status=t.working,this._options.resumed?.(this),this.emit("resumed",this)),this}stop(){return null!=this._timer&&(this._timer.stop(),this._timer=null),this.reset(),this._options.stopped?.(this),this.emit("stopped",this),this}destroy(){this.status()!==t.free&&this.stop(),this.clearEvents()}reset(){this._status=t.free,this._progress=0,this._bezier=null,this._last=0,this._pauses=0}}export{p as default}; |
import XhTransition from "./transition.js"; | ||
import XhTransitionRepeater from "./repeater.js"; | ||
type NullableBoolean = boolean | null; | ||
type NullableNumber = number | null; | ||
type NullableString = string | null; | ||
type NullableObject<T> = T | null; | ||
type NullableNumber = NullableObject<number>; | ||
type NullableString = NullableObject<string>; | ||
type NullableBoolean = NullableObject<boolean>; | ||
/** | ||
@@ -220,2 +221,2 @@ * 过渡动画曲线配置 | ||
} | ||
export { NullableBoolean, NullableNumber, NullableString, XhTransitionBezier, XhTransitionPresetBezier, XhTransitionPresetBezierConfigType, IXhTransitionOptions, IXhTransitionEvents, XhTransitionCommonCallback, XhTransitionValueCallback, XhTransitionWorkStatus, XhTransitionTimerCallback, IXhTransitionRepeaterOptions, IXhTransitionRepeaterEvents, XhTransitionRepeaterCommonCallback, XhTransitionRepeaterCountCallback, XhTransitionRepeatMode, XhTransitionRepeatDirection }; | ||
export { NullableObject, NullableNumber, NullableString, NullableBoolean, XhTransitionBezier, XhTransitionPresetBezier, XhTransitionPresetBezierConfigType, IXhTransitionOptions, IXhTransitionEvents, XhTransitionCommonCallback, XhTransitionValueCallback, XhTransitionWorkStatus, XhTransitionTimerCallback, IXhTransitionRepeaterOptions, IXhTransitionRepeaterEvents, XhTransitionRepeaterCommonCallback, XhTransitionRepeaterCountCallback, XhTransitionRepeatMode, XhTransitionRepeatDirection }; |
{ | ||
"name": "xiaohe-transition", | ||
"version": "0.0.18", | ||
"version": "0.0.19", | ||
"description": "🏀 一个简单易用的贝塞尔曲线过渡动画工具", | ||
@@ -10,4 +10,3 @@ "scripts": { | ||
"dependencies": { | ||
"bezier-easing": "^2.1.0", | ||
"nanoevents": "^8.0.0" | ||
"bezier-easing": "^2.1.0" | ||
}, | ||
@@ -14,0 +13,0 @@ "devDependencies": { |
44695
1
22
867
- Removednanoevents@^8.0.0
- Removednanoevents@8.0.0(transitive)