@egjs/axes
Advanced tools
Comparing version 3.0.0 to 3.0.1-snapshot
@@ -25,3 +25,3 @@ import { Axis, AxisManager } from "./AxisManager"; | ||
interpolate(displacement: number, threshold: number): number; | ||
stopAnimation(axes: string[], option?: ChangeEventOption): void; | ||
stopAnimation(option?: ChangeEventOption): void; | ||
getEventInfo(): ChangeEventOption; | ||
@@ -28,0 +28,0 @@ restore(option: ChangeEventOption): void; |
@@ -16,2 +16,3 @@ import Component from "@egjs/component"; | ||
round?: number; | ||
nested?: boolean; | ||
} | ||
@@ -18,0 +19,0 @@ declare class Axes extends Component<AxesEvents> { |
@@ -0,0 +0,0 @@ import { ObjectInterface } from "./types"; |
declare let win: any; | ||
export { win as window }; |
@@ -0,0 +0,0 @@ export declare const DIRECTION_NONE = 1; |
export declare const getInsidePosition: (destPos: number, range: number[], circular: boolean[], bounce?: number[]) => number; | ||
export declare const isOutside: (pos: number, range: number[]) => boolean; | ||
export declare const isEndofBounce: (pos: number, range: number[], bounce: number[], circular: boolean[]) => boolean; | ||
export declare const getDuration: (distance: number, deceleration: any) => number; | ||
export declare const isCircularable: (destPos: number, range: number[], circular: boolean[]) => boolean; | ||
export declare const getCirculatedPos: (pos: number, range: number[], circular: boolean[]) => number; |
@@ -8,4 +8,4 @@ import { ExtendedEvent, InputEventType } from "../types"; | ||
prevEvent: ExtendedEvent; | ||
abstract onEventStart(event: InputEventType): ExtendedEvent; | ||
abstract onEventMove(event: InputEventType): ExtendedEvent; | ||
abstract onEventStart(event: InputEventType, inputButton?: string[]): ExtendedEvent; | ||
abstract onEventMove(event: InputEventType, inputButton?: string[]): ExtendedEvent; | ||
abstract onEventEnd(event: InputEventType): void; | ||
@@ -24,2 +24,7 @@ abstract getTouches(event: InputEventType): number; | ||
protected _getDistance(start: Touch | PointerEvent, end: Touch | PointerEvent): number; | ||
protected _getButton(event: InputEventType): string; | ||
protected _isTouchEvent(event: InputEventType): event is TouchEvent; | ||
protected _isValidButton(button: string, inputButton: string[]): boolean; | ||
protected _preventMouseButton(event: InputEventType, button: string): void; | ||
private _stopContextMenu; | ||
} |
@@ -7,4 +7,4 @@ import { InputEventType, ExtendedEvent } from "../types"; | ||
readonly end: string[]; | ||
onEventStart(event: InputEventType): ExtendedEvent; | ||
onEventMove(event: InputEventType): ExtendedEvent; | ||
onEventStart(event: InputEventType, inputButton?: string[]): ExtendedEvent; | ||
onEventMove(event: InputEventType, inputButton?: string[]): ExtendedEvent; | ||
onEventEnd(): void; | ||
@@ -11,0 +11,0 @@ getTouches(): number; |
@@ -9,4 +9,4 @@ import { InputEventType, ExtendedEvent } from "../types"; | ||
private _recentInputs; | ||
onEventStart(event: InputEventType): ExtendedEvent; | ||
onEventMove(event: InputEventType): ExtendedEvent; | ||
onEventStart(event: InputEventType, inputButton?: string[]): ExtendedEvent; | ||
onEventMove(event: InputEventType, inputButton?: string[]): ExtendedEvent; | ||
onEventEnd(event: InputEventType): void; | ||
@@ -13,0 +13,0 @@ getTouches(): number; |
@@ -7,6 +7,6 @@ import { InputEventType, ExtendedEvent } from "../types"; | ||
readonly end: string[]; | ||
private _firstTouch; | ||
private _baseTouches; | ||
onEventStart(event: InputEventType): ExtendedEvent; | ||
onEventMove(event: InputEventType): ExtendedEvent; | ||
onEventEnd(): void; | ||
onEventEnd(event: InputEventType): void; | ||
getTouches(event: InputEventType): number; | ||
@@ -13,0 +13,0 @@ protected _getScale(event: TouchEvent): number; |
@@ -7,6 +7,6 @@ import { InputEventType, ExtendedEvent } from "../types"; | ||
readonly end: string[]; | ||
private _firstTouch; | ||
onEventStart(event: InputEventType): ExtendedEvent; | ||
onEventMove(event: InputEventType): ExtendedEvent; | ||
onEventEnd(): void; | ||
private _baseTouches; | ||
onEventStart(event: InputEventType, inputButton?: string[]): ExtendedEvent; | ||
onEventMove(event: InputEventType, inputButton?: string[]): ExtendedEvent; | ||
onEventEnd(event: InputEventType): void; | ||
getTouches(event: InputEventType): number; | ||
@@ -22,3 +22,2 @@ protected _getScale(event: MouseEvent | TouchEvent): number; | ||
}; | ||
private _isTouchEvent; | ||
} |
@@ -16,4 +16,4 @@ import { InputType } from "./inputType/InputType"; | ||
triggerRelease(param: AnimationParam): void; | ||
triggerChange(pos: Axis, isAccurate?: boolean, depaPos?: Axis, option?: ChangeEventOption, holding?: boolean): Axes; | ||
triggerAnimationStart(param: AnimationParam): Axes; | ||
triggerChange(pos: Axis, depaPos?: Axis, option?: ChangeEventOption, holding?: boolean): boolean; | ||
triggerAnimationStart(param: AnimationParam): boolean; | ||
triggerAnimationEnd(isTrusted?: boolean): void; | ||
@@ -20,0 +20,0 @@ triggerFinish(isTrusted?: boolean): void; |
@@ -0,0 +0,0 @@ import Axes from "./Axes"; |
import Axes from "./Axes"; | ||
export default Axes; |
@@ -28,2 +28,3 @@ import { InterruptManager } from "./InterruptManager"; | ||
private _atOutside; | ||
private _isEndofAxis; | ||
} |
@@ -0,0 +0,0 @@ import { Axis } from "../AxisManager"; |
@@ -0,0 +0,0 @@ import { InputType, InputTypeObserver } from "./InputType"; |
@@ -5,2 +5,3 @@ import { ActiveInput, InputEventType } from "../types"; | ||
inputType?: string[]; | ||
inputButton?: string[]; | ||
scale?: number[]; | ||
@@ -20,3 +21,2 @@ thresholdAngle?: number; | ||
protected _direction: any; | ||
protected _panFlag: boolean; | ||
protected _enabled: boolean; | ||
@@ -38,5 +38,7 @@ protected _activeInput: ActiveInput; | ||
protected _onPanend(event: InputEventType): void; | ||
private _attachEvent; | ||
private _detachEvent; | ||
protected _attachWindowEvent(activeInput: ActiveInput): void; | ||
protected _detachWindowEvent(activeInput: ActiveInput): void; | ||
private _attachElementEvent; | ||
private _detachElementEvent; | ||
private _getOffset; | ||
} |
@@ -0,0 +0,0 @@ import { InputType, InputTypeObserver } from "./InputType"; |
@@ -0,0 +0,0 @@ import { PanInput, PanInputOption } from "./PanInput"; |
@@ -0,0 +0,0 @@ import { InputType, InputTypeObserver } from "./InputType"; |
@@ -0,0 +0,0 @@ import { AxesOption } from "./Axes"; |
@@ -0,0 +0,0 @@ import { Axis } from "./AxisManager"; |
@@ -0,0 +0,0 @@ import { ObjectInterface } from "./types"; |
@@ -7,5 +7,5 @@ /* | ||
repository: https://github.com/naver/egjs-axes | ||
version: 3.0.0 | ||
version: 3.0.1-snapshot | ||
*/ | ||
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("@egjs/agent"),require("@egjs/component")):"function"==typeof define&&define.amd?define(["@egjs/agent","@egjs/component"],e):(t.eg=t.eg||{},t.eg.Axes=e(t.eg.agent,t.eg.Component))}(this,function(t,p){"use strict";var i=function(t,e){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])})(t,e)};function s(t,e){function n(){this.constructor=t}i(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}function _(t,e,n,i){var r=t,s=[!n[0]&&i?e[0]-i[0]:e[0],!n[1]&&i?e[1]+i[1]:e[1]],r=Math.max(s[0],r);return Math.min(s[1],r)}function u(t,e){return t<e[0]||t>e[1]}function h(t,e,n){return n[1]&&t>e[1]||n[0]&&t<e[0]}function v(t,e,n){var i=t,r=e[0],s=e[1],a=s-r;return n[1]&&s<t&&(i=(i-s)%a+r),n[0]&&t<r&&(i=(i-r)%a+s),i}function r(t){for(var e=[],n=0,i=t.length;n<i;n++)e.push(t[n]);return e}var a,o,d=function(){return(d=Object.assign||function(t){for(var e,n=1,i=arguments.length;n<i;n++)for(var r in e=arguments[n])Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t}).apply(this,arguments)},c="undefined"==typeof window?{navigator:{userAgent:""}}:window,l="ontouchstart"in c&&"safari"===t().browser.name,n=function(){if("undefined"==typeof document)return"";for(var t=(document.head||document.getElementsByTagName("head")[0]).style,e=["transform","webkitTransform","msTransform","mozTransform"],n=0,i=e.length;n<i;n++)if(e[n]in t)return e[n];return""}(),g={"touch-action":"none","user-select":"none","-webkit-user-drag":"none"},f=function(t,e){var n,i;return void 0===e&&(e=!1),"string"==typeof t?(i=t.match(/^<([a-z]+)\s*([^>]*)>/)?((n=document.createElement("div")).innerHTML=t,r(n.childNodes)):r(document.querySelectorAll(t)),e||(i=1<=i.length?i[0]:void 0)):t!==c&&(!t.nodeName||1!==t.nodeType&&9!==t.nodeType)?"jQuery"in c&&t instanceof jQuery||t.constructor.prototype.jquery?i=e?t.toArray():t.get(0):Array.isArray(t)&&(i=t.map(function(t){return f(t)}),e||(i=1<=i.length?i[0]:void 0)):i=t,i},m=c.requestAnimationFrame||c.webkitRequestAnimationFrame,E=c.cancelAnimationFrame||c.webkitCancelAnimationFrame;m&&!E?(a={},o=m,m=function(e){var n=o(function(t){a[n]&&e(t)});return a[n]=!0,n},E=function(t){delete a[t]}):m&&E||(m=function(t){return c.setTimeout(function(){t(c.performance&&c.performance.now&&c.performance.now()||(new Date).getTime())},16)},E=c.clearTimeout);function x(t,e){var n={};for(var i in t)i&&(n[i]=e(t[i],i));return n}function M(t,e){var n={};for(var i in t)i&&e(t[i],i)&&(n[i]=t[i]);return n}function b(t,e){for(var n in t)if(n&&!e(t[n],n))return!1;return!0}function P(t,n){return b(t,function(t,e){return t===n[e]})}function y(t,e){return R[e]||(R[e]=F(e)),R[e](t)}function I(t,n){return t&&n?x(t,function(t,e){return y(t,"number"==typeof n?n:n[e])}):t}function T(t){if(!isFinite(t))return 0;var e=""+t;if(0<=e.indexOf("e")){for(var n=0,i=1;Math.round(t*i)/i!==t;)i*=10,n++;return n}return 0<=e.indexOf(".")?e.length-e.indexOf(".")-1:0}function O(t,e){return 180*Math.atan2(e,t)/Math.PI}function w(e,t){var n,i={};return e.style&&(n=t||g,Object.keys(n).forEach(function(t){i[t]=e.style[t],e.style[t]=n[t]})),i}function D(t,e,n){return Math.max(Math.min(t,n),e)}function A(i,t){return t.reduce(function(t,e,n){return i[n]&&(t[i[n]]=e),t},{})}function C(t){void 0===t&&(t=[]);var e=!1,n=!1,i=!1;return t.forEach(function(t){switch(t){case"mouse":n=!0;break;case"touch":e=j;break;case"pointer":i=K}}),i?new W:e&&n?new Q:e?new B:n?new q:null}function S(t,e,n){return n?!!(30===e||e&t&&n&t):!!(e&t)}var R={},F=function(e){var n=e<1?Math.pow(10,T(e)):1;return function(t){return 0===e?0:Math.round(Math.round(t/e)*e*n)/n}},L=function(){function t(t){var e=t.options,n=t.interruptManager,i=t.eventManager,r=t.axisManager;this._options=e,this.interruptManager=n,this.eventManager=i,this.axisManager=r,this.animationEnd=this.animationEnd.bind(this)}var e=t.prototype;return e.getDuration=function(s,t,e){var n,i,a=this;return i=void 0!==e?e:(n=x(t,function(t,e){return n=Math.abs(t-s[e]),i=a._options.deceleration,(r=Math.sqrt(n/i*2))<100?0:r;var n,i,r}),Object.keys(n).reduce(function(t,e){return Math.max(t,n[e])},-1/0)),D(i,this._options.minimumDuration,this._options.maximumDuration)},e.getDisplacement=function(t){var e=Math.pow(t.reduce(function(t,e){return t+e*e},0),1/t.length),n=Math.abs(e/-this._options.deceleration);return t.map(function(t){return t/2*n})},e.interpolate=function(t,e){var n=this.easing(1e-5)/1e-5;return this.easing(t/(e*n))*e},e.stopAnimation=function(t,e){var n,i,r;this._animateParam&&t.length&&(n=this.axisManager.get(t),i=this.axisManager.map(n,function(t,e){return v(t,e.range,e.circular)}),b(i,function(t,e){return n[e]===t})||this.eventManager.triggerChange(i,!1,n,e,!!e),this._animateParam=null,this._raf&&(r=this._raf,E(r)),this._raf=null,this.eventManager.triggerAnimationEnd(!(null==e||!e.event)))},e.getEventInfo=function(){return this._animateParam&&this._animateParam.input&&this._animateParam.inputEvent?{input:this._animateParam.input,event:this._animateParam.inputEvent}:null},e.restore=function(t){var e=this.axisManager.get(),n=this.axisManager.map(e,function(t,e){return Math.min(e.range[1],Math.max(e.range[0],t))});this.stopAnimation(Object.keys(this.axisManager.get())),this.animateTo(n,this.getDuration(e,n),t)},e.animationEnd=function(){var t=this.getEventInfo();this._animateParam=null;var e=this.axisManager.filter(this.axisManager.get(),function(t,e){return h(t,e.range,e.circular)});0<Object.keys(e).length&&this.setTo(this.axisManager.map(e,function(t,e){return v(t,e.range,e.circular)})),this.interruptManager.setInterrupt(!1),this.eventManager.triggerAnimationEnd(!!t),this.axisManager.isOutside()?this.restore(t):this.finish(!!t)},e.finish=function(t){this._animateParam=null,this.interruptManager.setInterrupt(!1),this.eventManager.triggerFinish(t)},e.getUserControl=function(t){var e=t.setTo();return e.destPos=this.axisManager.get(e.destPos),e.duration=D(e.duration,this._options.minimumDuration,this._options.maximumDuration),e},e.animateTo=function(t,e,n){var i,r=this,s=this._createAnimationParam(t,e,n),a=d({},s.depaPos),o=this.eventManager.triggerAnimationStart(s),u=this.getUserControl(s);!o&&this.axisManager.every(u.destPos,function(t,e){return h(t,e.range,e.circular)})&&console.warn("You can't stop the 'animation' event when 'circular' is true."),o&&!P(u.destPos,a)&&(i=(null==n?void 0:n.event)||null,this._animateLoop({depaPos:a,destPos:u.destPos,duration:u.duration,delta:this.axisManager.getDelta(a,u.destPos),isTrusted:!!i,inputEvent:i,input:(null==n?void 0:n.input)||null},function(){return r.animationEnd()}))},e.easing=function(t){return 1<t?1:this._options.easing(t)},e.setTo=function(t,e){void 0===e&&(e=0);var n=Object.keys(t);this.stopAnimation(n);var i=this.axisManager.get(n);if(P(t,i))return this;this.interruptManager.setInterrupt(!0);var r=M(t,function(t,e){return i[e]!==t});return Object.keys(r).length?(r=this.axisManager.map(r,function(t,e){var n=e.range,i=e.circular;return i&&(i[0]||i[1])?t:_(t,n,i)}),P(r,i)||(0<e?this.animateTo(r,e):(this.eventManager.triggerChange(r),this.finish(!1))),this):this},e.setBy=function(n,t){return void 0===t&&(t=0),this.setTo(x(this.axisManager.get(Object.keys(n)),function(t,e){return t+n[e]}),t)},e.updateAnimation=function(t){var e,n,i,r,s,a=this._animateParam;a&&(e=(new Date).getTime()-a.startTime,n=(null==t?void 0:t.destPos)||a.destPos,i=(null==t?void 0:t.duration)||a.duration,null!=t&&t.restart||i<=e?this.setTo(n,i-e):(null!=t&&t.destPos&&(r=this.axisManager.get(),this._initialEasingPer=this._prevEasingPer,a.delta=this.axisManager.getDelta(r,n),a.destPos=n),null!=t&&t.duration&&(s=(e+this._durationOffset)/a.duration,this._durationOffset=s*i-e,a.duration=i)))},e._createAnimationParam=function(t,e,n){var i=this.axisManager.get(),r=t,s=(null==n?void 0:n.event)||null;return{depaPos:i,destPos:r,duration:D(e,this._options.minimumDuration,this._options.maximumDuration),delta:this.axisManager.getDelta(i,r),inputEvent:s,input:(null==n?void 0:n.input)||null,isTrusted:!!s,done:this.animationEnd}},e._animateLoop=function(n,i){var h,c,r,s,l=this;n.duration?(h=n.depaPos,this._initialEasingPer=0,this._prevEasingPer=0,this._durationOffset=0,this._animateParam=d(d({},n),{startTime:(new Date).getTime()}),c=x(h,function(t,e){return t<=n.destPos[e]?1:-1}),r=x(n.destPos,function(t){return t}),(s=function(){var a=l._animateParam,o=((new Date).getTime()-a.startTime+l._durationOffset)/a.duration,u=l.easing(o);l._raf=null;var t=l.axisManager.map(h,function(t,e,n){var i,r=1<=o?a.destPos[n]:t+a.delta[n]*(u-l._prevEasingPer)/(1-l._initialEasingPer),s=v(r,e.range,e.circular);return r!==s&&(i=c[n]*(e.range[1]-e.range[0]),a.destPos[n]-=i,h[n]-=i),s}),e=!l.eventManager.triggerChange(t,!1,h);if(h=t,1<=(l._prevEasingPer=u))return a.destPos=l._getFinalPos(a.destPos,r),P(a.destPos,l.axisManager.get(Object.keys(a.destPos)))||l.eventManager.triggerChange(a.destPos,!0,h),void i();e?l.finish(!1):l._raf=m(s)})()):(this.eventManager.triggerChange(n.destPos,!0),i())},e._getFinalPos=function(t,i){var r=this;return x(t,function(t,e){if(t>=i[e]-1e-6&&t<=i[e]+1e-6)return i[e];var n=r._getRoundUnit(t,e);return y(t,n)})},e._getRoundUnit=function(t,e){var n,i,r=this._options.round,s=null;return r||(n=this.axisManager.getAxisOptions(e),i=Math.max(T(n.range[0]),T(n.range[1]),T(t)),s=1/Math.pow(10,i)),s||r},t}(),k=function(){function t(t){this._axes=t}var e=t.prototype;return e.hold=function(t,e){var n=this._getRoundPos(t).roundPos;this._axes.trigger(new p.ComponentEvent("hold",{pos:n,input:e.input||null,inputEvent:e.event||null,isTrusted:!0}))},e.triggerRelease=function(t){var e=this._getRoundPos(t.destPos,t.depaPos),n=e.roundPos,i=e.roundDepa;t.destPos=n,t.depaPos=i,t.setTo=this._createUserControll(t.destPos,t.duration),this._axes.trigger(new p.ComponentEvent("release",d(d({},t),{bounceRatio:this._getBounceRatio(n)})))},e.triggerChange=function(t,e,n,i,r){void 0===r&&(r=!1);var s=this.animationManager,a=s.axisManager,o=s.getEventInfo(),u=this._getRoundPos(t,n),h=u.roundPos,c=u.roundDepa,l=a.moveTo(h,c),v=(null==i?void 0:i.event)||(null==o?void 0:o.event)||null,_={pos:l.pos,delta:l.delta,bounceRatio:this._getBounceRatio(l.pos),holding:r,inputEvent:v,isTrusted:!!v,input:(null==i?void 0:i.input)||(null==o?void 0:o.input)||null,set:v?this._createUserControll(l.pos):function(){}},d=this._axes.trigger(new p.ComponentEvent("change",_));return v&&a.set(_.set().destPos),d},e.triggerAnimationStart=function(t){var e=this._getRoundPos(t.destPos,t.depaPos),n=e.roundPos,i=e.roundDepa;return t.destPos=n,t.depaPos=i,t.setTo=this._createUserControll(t.destPos,t.duration),this._axes.trigger(new p.ComponentEvent("animationStart",t))},e.triggerAnimationEnd=function(t){void 0===t&&(t=!1),this._axes.trigger(new p.ComponentEvent("animationEnd",{isTrusted:t}))},e.triggerFinish=function(t){void 0===t&&(t=!1),this._axes.trigger(new p.ComponentEvent("finish",{isTrusted:t}))},e.setAnimationManager=function(t){this.animationManager=t},e.destroy=function(){this._axes.off()},e._createUserControll=function(t,e){void 0===e&&(e=0);var n={destPos:d({},t),duration:e};return function(t,e){return t&&(n.destPos=d({},t)),void 0!==e&&(n.duration=e),n}},e._getRoundPos=function(t,e){var n=this._axes.options.round;return{roundPos:I(t,n),roundDepa:I(e,n)}},e._getBounceRatio=function(t){return this._axes.axisManager.map(t,function(t,e){return t<e.range[0]&&0!==e.bounce[0]?(e.range[0]-t)/e.bounce[0]:t>e.range[1]&&0!==e.bounce[1]?(t-e.range[1])/e.bounce[1]:0})},t}(),Y=function(){function t(t){this._options=t,this._prevented=!1}var e=t.prototype;return e.isInterrupting=function(){return this._options.interruptable||this._prevented},e.isInterrupted=function(){return!this._options.interruptable&&this._prevented},e.setInterrupt=function(t){this._options.interruptable||(this._prevented=t)},t}(),X=function(){function t(t){var n=this;this._axis=t,this._complementOptions(),this._pos=Object.keys(this._axis).reduce(function(t,e){return t[e]=n._axis[e].range[0],t},{})}var e=t.prototype;return e.getDelta=function(t,e){var n=this.get(t);return x(this.get(e),function(t,e){return t-n[e]})},e.get=function(t){var n=this;return t&&Array.isArray(t)?t.reduce(function(t,e){return e&&e in n._pos&&(t[e]=n._pos[e]),t},{}):d(d({},this._pos),t||{})},e.moveTo=function(n,i){void 0===i&&(i=this._pos);var t=x(this._pos,function(t,e){return e in n&&e in i?n[e]-i[e]:0});return this.set(this.map(n,function(t,e){return e?v(t,e.range,e.circular):0})),{pos:d({},this._pos),delta:t}},e.set=function(t){for(var e in t)e&&e in this._pos&&(this._pos[e]=t[e])},e.every=function(t,n){var i=this._axis;return b(t,function(t,e){return n(t,i[e],e)})},e.filter=function(t,n){var i=this._axis;return M(t,function(t,e){return n(t,i[e],e)})},e.map=function(t,n){var i=this._axis;return x(t,function(t,e){return n(t,i[e],e)})},e.isOutside=function(t){return!this.every(t?this.get(t):this._pos,function(t,e){return!u(t,e.range)})},e.getAxisOptions=function(t){return this._axis[t]},e._complementOptions=function(){var r=this;Object.keys(this._axis).forEach(function(i){r._axis[i]=d({range:[0,100],bounce:[0,0],circular:[!1,!1]},r._axis[i]),["bounce","circular"].forEach(function(t){var e=r._axis,n=e[i][t];/string|number|boolean/.test(typeof n)&&(e[i][t]=[n,n])})})},t}(),j="ontouchstart"in c,N="PointerEvent"in c,e="MSPointerEvent"in c,K=N||e,U=function(){function t(){}var e=t.prototype;return e.extendEvent=function(t){var e=this.prevEvent,n=this._getCenter(t),i=e?this._getMovement(t):{x:0,y:0},r=e?this._getScale(t):1,s=e?O(n.x-e.center.x,n.y-e.center.y):0,a=e?e.deltaX+i.x:i.x,o=e?e.deltaY+i.y:i.y,u=e?a-e.deltaX:0,h=e?o-e.deltaY:0,c=e?t.timeStamp-e.srcEvent.timeStamp:0;return{srcEvent:t,scale:r,angle:s,center:n,deltaX:a,deltaY:o,offsetX:u,offsetY:h,velocityX:e&&0!=c?u/c:0,velocityY:e&&0!=c?h/c:0,preventSystemEvent:!0}},e._getDistance=function(t,e){var n=e.clientX-t.clientX,i=e.clientY-t.clientY;return Math.sqrt(n*n+i*i)},t}(),q=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.start=["mousedown"],t.move=["mousemove"],t.end=["mouseup"],t}s(t,e);var n=t.prototype;return n.onEventStart=function(t){return this.extendEvent(t)},n.onEventMove=function(t){return this.extendEvent(t)},n.onEventEnd=function(){},n.getTouches=function(){return 0},n._getScale=function(){return 1},n._getCenter=function(t){return{x:t.clientX,y:t.clientY}},n._getMovement=function(t){var e=this.prevEvent.srcEvent;return{x:t.pageX-e.pageX,y:t.pageY-e.pageY}},t}(U),B=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.start=["touchstart"],t.move=["touchmove"],t.end=["touchend","touchcancel"],t}s(t,e);var n=t.prototype;return n.onEventStart=function(t){return this._firstTouch=t,this.extendEvent(t)},n.onEventMove=function(t){return this.extendEvent(t)},n.onEventEnd=function(){},n.getTouches=function(t){return t.touches.length},n._getScale=function(t){return 2!==t.touches.length?null:this._getDistance(t.touches[0],t.touches[1])/this._getDistance(this._firstTouch.touches[0],this._firstTouch.touches[1])},n._getCenter=function(t){return{x:t.touches[0].clientX,y:t.touches[0].clientY}},n._getMovement=function(t){var e=this.prevEvent.srcEvent;return t.touches[0].identifier!==e.touches[0].identifier?{x:0,y:0}:{x:t.touches[0].pageX-e.touches[0].pageX,y:t.touches[0].pageY-e.touches[0].pageY}},t}(U),W=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.start=N?["pointerdown"]:["MSPointerDown"],t.move=N?["pointermove"]:["MSPointerMove"],t.end=N?["pointerup","pointercancel"]:["MSPointerUp","MSPointerCancel"],t._firstInputs=[],t._recentInputs=[],t}s(t,e);var n=t.prototype;return n.onEventStart=function(t){return this._updatePointerEvent(t),this.extendEvent(t)},n.onEventMove=function(t){return this._updatePointerEvent(t),this.extendEvent(t)},n.onEventEnd=function(t){this._removePointerEvent(t)},n.getTouches=function(){return this._recentInputs.length},n._getScale=function(){return 2!==this._recentInputs.length?null:this._getDistance(this._recentInputs[0],this._recentInputs[1])/this._getDistance(this._firstInputs[0],this._firstInputs[1])},n._getCenter=function(t){return{x:t.clientX,y:t.clientY}},n._getMovement=function(t){var e=this.prevEvent.srcEvent;return t.pointerId!==e.pointerId?{x:0,y:0}:{x:t.pageX-e.pageX,y:t.pageY-e.pageY}},n._updatePointerEvent=function(n){var i=this,r=!1;this._recentInputs.forEach(function(t,e){t.pointerId===n.pointerId&&(r=!0,i._recentInputs[e]=n)}),r||(this._firstInputs.push(n),this._recentInputs.push(n))},n._removePointerEvent=function(e){this._firstInputs=this._firstInputs.filter(function(t){return t.pointerId!==e.pointerId}),this._recentInputs=this._recentInputs.filter(function(t){return t.pointerId!==e.pointerId})},t}(U),Q=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.start=["mousedown","touchstart"],t.move=["mousemove","touchmove"],t.end=["mouseup","touchend","touchcancel"],t}s(t,e);var n=t.prototype;return n.onEventStart=function(t){return this._firstTouch=t.hasOwnProperty("touches")?t:null,this.extendEvent(t)},n.onEventMove=function(t){return this.extendEvent(t)},n.onEventEnd=function(){},n.getTouches=function(t){return this._isTouchEvent(t)?t.touches.length:0},n._getScale=function(t){return!this._firstTouch||this._isTouchEvent(t)&&2!==t.touches.length?1:this._isTouchEvent(t)?this._getDistance(t.touches[0],t.touches[1])/this._getDistance(this._firstTouch.touches[0],this._firstTouch.touches[1]):this.prevEvent.scale},n._getCenter=function(t){return this._isTouchEvent(t)?{x:t.touches[0].clientX,y:t.touches[0].clientY}:{x:t.clientX,y:t.clientY}},n._getMovement=function(e){var n=this,t=this.prevEvent.srcEvent,i=[e,t].map(function(t){return n._isTouchEvent(e)?{id:t.touches[0].identifier,x:t.touches[0].pageX,y:t.touches[0].pageY}:{id:null,x:t.pageX,y:t.pageY}}),r=i[0],s=i[1];return r.id===s.id?{x:r.x-s.x,y:r.y-s.y}:{x:0,y:0}},n._isTouchEvent=function(t){return t.hasOwnProperty("touches")},t}(U),V=function(){function t(t){var e=t.options,n=t.interruptManager,i=t.eventManager,r=t.axisManager,s=t.animationManager;this._isOutside=!1,this._moveDistance=null,this._isStopped=!1,this.options=e,this._interruptManager=n,this._eventManager=i,this._axisManager=r,this._animationManager=s}var e=t.prototype;return e.get=function(t){return this._axisManager.get(t.axes)},e.hold=function(t,e){var n;!this._interruptManager.isInterrupted()&&t.axes.length&&(n={input:t,event:e},this._isStopped=!1,this._interruptManager.setInterrupt(!0),this._animationManager.stopAnimation(t.axes,n),this._moveDistance||this._eventManager.hold(this._axisManager.get(),n),this._isOutside=this._axisManager.isOutside(t.axes),this._moveDistance=this._axisManager.get(t.axes))},e.change=function(t,e,n,i){var r,s,a,o;this._isStopped||!this._interruptManager.isInterrupting()||this._axisManager.every(n,function(t){return 0===t})||(r=this._moveDistance||this._axisManager.get(t.axes),s=x(r,function(t,e){return t+(n[e]||0)}),this._moveDistance&&(this._moveDistance=this._axisManager.map(s,function(t,e){var n=e.circular,i=e.range;return n&&(n[0]||n[1])?v(t,i,n):t})),this._isOutside&&this._axisManager.every(r,function(t,e){return!u(t,e.range)})&&(this._isOutside=!1),r=this._atOutside(r),s=this._atOutside(s),a={input:t,event:e},i?(o=this._animationManager.getDuration(s,r),this._animationManager.stopAnimation(t.axes,a),this._animationManager.animateTo(s,o,a)):this._eventManager.triggerChange(s,!1,r,a,!0)||(this._isStopped=!0,this._moveDistance=null,this._animationManager.finish(!1)))},e.release=function(t,e,n,i){var r,s,a,o,u,h,c,l,v;!this._isStopped&&this._interruptManager.isInterrupting()&&this._moveDistance&&(r=this._axisManager.get(t.axes),s=this._axisManager.get(),a=this._animationManager.getDisplacement(n),o=A(t.axes,a),h={depaPos:s,destPos:u=this._axisManager.get(this._axisManager.map(o,function(t,e,n){return e.circular&&(e.circular[0]||e.circular[1])?r[n]+t:_(r[n]+t,e.range,e.circular,e.bounce)})),duration:this._animationManager.getDuration(u,r,i),delta:this._axisManager.getDelta(s,u),inputEvent:e,input:t,isTrusted:!0},this._eventManager.triggerRelease(h),this._moveDistance=null,c=this._animationManager.getUserControl(h),v={input:t,event:e},(l=P(c.destPos,s))||0===c.duration?(l||this._eventManager.triggerChange(c.destPos,!1,s,v,!0),this._interruptManager.setInterrupt(!1),this._axisManager.isOutside()?this._animationManager.restore(v):this._eventManager.triggerFinish(!0)):this._animationManager.animateTo(c.destPos,c.duration,v))},e._atOutside=function(t){var a=this;return this._isOutside?this._axisManager.map(t,function(t,e){var n=e.range[0]-e.bounce[0],i=e.range[1]+e.bounce[1];return i<t?i:t<n?n:t}):this._axisManager.map(t,function(t,e){var n=e.range[0],i=e.range[1],r=e.bounce,s=e.circular;return s&&(s[0]||s[1])?t:t<n?n-a._animationManager.interpolate(n-t,r[0]):i<t?i+a._animationManager.interpolate(t-i,r[1]):t})},t}(),z=function(r){function t(t,e,n){void 0===t&&(t={}),void 0===e&&(e={}),void 0===n&&(n=null);var i=r.call(this)||this;return i.axis=t,i._inputs=[],i.options=d({easing:function(t){return 1-Math.pow(1-t,3)},interruptable:!0,maximumDuration:1/0,minimumDuration:0,deceleration:6e-4,round:null},e),i.interruptManager=new Y(i.options),i.axisManager=new X(i.axis),i.eventManager=new k(i),i.animationManager=new L(i),i.inputObserver=new V(i),i.eventManager.setAnimationManager(i.animationManager),n&&i.eventManager.triggerChange(n),i}s(t,r);var e=t.prototype;return e.connect=function(t,e){var n="string"==typeof t?t.split(" "):t.concat();return~this._inputs.indexOf(e)&&this.disconnect(e),e.mapAxes(n),e.connect(this.inputObserver),this._inputs.push(e),this},e.disconnect=function(t){var e;return t?0<=(e=this._inputs.indexOf(t))&&(this._inputs[e].disconnect(),this._inputs.splice(e,1)):(this._inputs.forEach(function(t){return t.disconnect()}),this._inputs=[]),this},e.get=function(t){return this.axisManager.get(t)},e.setTo=function(t,e){return void 0===e&&(e=0),this.animationManager.setTo(t,e),this},e.setBy=function(t,e){return void 0===e&&(e=0),this.animationManager.setBy(t,e),this},e.stopAnimation=function(){return this.animationManager.stopAnimation(Object.keys(this.axisManager.get())),this},e.updateAnimation=function(t){return this.animationManager.updateAnimation(t),this},e.isBounceArea=function(t){return this.axisManager.isOutside(t)},e.destroy=function(){this.disconnect(),this.eventManager.destroy()},t.VERSION="3.0.0",t.TRANSFORM=n,t.DIRECTION_NONE=1,t.DIRECTION_LEFT=2,t.DIRECTION_RIGHT=4,t.DIRECTION_UP=8,t.DIRECTION_DOWN=16,t.DIRECTION_HORIZONTAL=6,t.DIRECTION_VERTICAL=24,t.DIRECTION_ALL=30,t}(p),H=function(){function t(t,e){this.axes=[],this.element=null,this._panFlag=!1,this._enabled=!1,this._activeInput=null,this._atRightEdge=!1,this._rightEdgeTimer=0,this.element=f(t),this.options=d({inputType:["touch","mouse","pointer"],scale:[1,1],thresholdAngle:45,threshold:0,iOSEdgeSwipeThreshold:30,releaseOnScroll:!1},e),this._onPanstart=this._onPanstart.bind(this),this._onPanmove=this._onPanmove.bind(this),this._onPanend=this._onPanend.bind(this)}var e=t.prototype;return e.mapAxes=function(t){var e=!!t[0],n=!!t[1];this._direction=e&&n?30:e?6:n?24:1,this.axes=t},e.connect=function(t){return this._activeInput&&this._detachEvent(),this._attachEvent(t),this._originalCssProps=w(this.element),this},e.disconnect=function(){return this._detachEvent(),this._originalCssProps!==g&&w(this.element,this._originalCssProps),this._direction=1,this},e.destroy=function(){this.disconnect(),this.element=null},e.enable=function(){return this._enabled=!0,this},e.disable=function(){return this._enabled=!1,this},e.isEnabled=function(){return this._enabled},e._onPanstart=function(t){var e,n;this._activeInput.onEventStart(t),!this._enabled||1<this._activeInput.getTouches(t)||(e=this._activeInput.extendEvent(t),(this._panFlag=!1)!==e.srcEvent.cancelable&&(n=this.options.iOSEdgeSwipeThreshold,this._observer.hold(this,e),this._atRightEdge=l&&e.center.x>window.innerWidth-n,this._panFlag=!0,this._activeInput.prevEvent=e))},e._onPanmove=function(t){var e=this;if(this._activeInput.onEventMove(t),this._panFlag&&this._enabled&&!(1<this._activeInput.getTouches(t))){var n=this._activeInput.extendEvent(t),i=this.options,r=i.iOSEdgeSwipeThreshold,s=i.releaseOnScroll,a=function(t,e){if(e<0||90<e)return 1;var n=Math.abs(t);return e<n&&n<180-e?24:6}(n.angle,this.options.thresholdAngle);if(!s||n.srcEvent.cancelable){if(this._activeInput.prevEvent&&l){if(n.center.x<0)return void this._observer.release(this,this._activeInput.prevEvent,[0,0]);this._atRightEdge&&(clearTimeout(this._rightEdgeTimer),n.deltaX<-r?this._atRightEdge=!1:this._rightEdgeTimer=window.setTimeout(function(){e._observer.release(e,e._activeInput.prevEvent,[0,0])},100))}var o=this._getOffset([n.offsetX,n.offsetY],[S(6,this._direction,a),S(24,this._direction,a)]),u=o.some(function(t){return 0!==t});u&&(!1!==n.srcEvent.cancelable&&n.srcEvent.preventDefault(),n.srcEvent.stopPropagation()),(n.preventSystemEvent=u)&&this._observer.change(this,n,A(this.axes,o)),this._activeInput.prevEvent=n}else this._onPanend(t)}},e._onPanend=function(t){var e,n;this._activeInput.onEventEnd(t),this._panFlag&&this._enabled&&0===this._activeInput.getTouches(t)&&(this._panFlag=!1,clearTimeout(this._rightEdgeTimer),e=this._activeInput.prevEvent,n=this._getOffset([Math.abs(e.velocityX)*(e.offsetX<0?-1:1),Math.abs(e.velocityY)*(e.offsetY<0?-1:1)],[S(6,this._direction),S(24,this._direction)]),this._observer.release(this,e,n))},e._attachEvent=function(t){var e=this,n=C(this.options.inputType);this._observer=t,this._enabled=!0,null!=(this._activeInput=n)&&n.start.forEach(function(t){e.element.addEventListener(t,e._onPanstart,!1)}),null!=n&&n.move.forEach(function(t){window.addEventListener(t,e._onPanmove,!1)}),null!=n&&n.end.forEach(function(t){window.addEventListener(t,e._onPanend,!1)})},e._detachEvent=function(){var e=this,t=this._activeInput;null!=t&&t.start.forEach(function(t){e.element.removeEventListener(t,e._onPanstart,!1)}),null!=t&&t.move.forEach(function(t){window.removeEventListener(t,e._onPanmove,!1)}),null!=t&&t.end.forEach(function(t){window.removeEventListener(t,e._onPanend,!1)}),this._enabled=!1,this._observer=null},e._getOffset=function(t,e){var n=[0,0],i=this.options.scale;return e[0]&&(n[0]=t[0]*i[0]),e[1]&&(n[1]=t[1]*i[1]),n},t}(),G=function(i){function t(t,e){var n=i.call(this,t,e)||this;return n._prevQuadrant=null,n._lastDiff=0,n}s(t,i);var e=t.prototype;return e.mapAxes=function(t){this._direction=z.DIRECTION_ALL,this.axes=t},e._onPanstart=function(t){var e,n;this._activeInput.onEventStart(t),this.isEnabled&&(e=this.element.getBoundingClientRect(),n=this._activeInput.extendEvent(t),this._observer.hold(this,n),this._panFlag=!0,this._coefficientForDistanceToAngle=360/(e.width*Math.PI),this._rotateOrigin=[e.left+(e.width-1)/2,e.top+(e.height-1)/2],this._prevAngle=null,this._triggerChange(n),this._activeInput.prevEvent=n)},e._onPanmove=function(t){var e;this._activeInput.onEventMove(t),this._panFlag&&this.isEnabled&&(!1!==(e=this._activeInput.extendEvent(t)).srcEvent.cancelable&&e.srcEvent.preventDefault(),e.srcEvent.stopPropagation(),this._triggerChange(e),this._activeInput.prevEvent=e)},e._onPanend=function(t){var e,n,i,r;this._activeInput.onEventEnd(t),this._panFlag&&this.isEnabled&&(e=this._activeInput.prevEvent,this._triggerChange(e),n=e.velocityX,i=e.velocityY,r=Math.sqrt(n*n+i*i)*(0<this._lastDiff?-1:1),this._observer.release(this,e,[r*this._coefficientForDistanceToAngle]),this._panFlag=!1)},e._triggerChange=function(t){var e=this._getPosFromOrigin(t.center.x,t.center.y),n=e.x,i=e.y,r=O(n,i),s=r<0?360+r:r,a=this._getQuadrant(t.center.x,t.center.y),o=this._getDifference(this._prevAngle,s,this._prevQuadrant,a);this._prevAngle=s,this._prevQuadrant=a,0!==o&&(this._lastDiff=o,this._observer.change(this,t,A(this.axes,[-o])))},e._getDifference=function(t,e,n,i){var r=null===t?0:1===n&&4===i?-t-(360-e):4===n&&1===i?360-t+e:e-t;return r},e._getPosFromOrigin=function(t,e){return{x:t-this._rotateOrigin[0],y:this._rotateOrigin[1]-e}},e._getQuadrant=function(t,e){var n=this._getPosFromOrigin(t,e),i=n.x,r=n.y,s=0;return 0<=i&&0<=r?s=1:i<0&&0<=r?s=2:i<0&&r<0?s=3:0<=i&&r<0&&(s=4),s},t}(H),Z=function(){function t(t,e){this.axes=[],this.element=null,this._pinchFlag=!1,this._enabled=!1,this._activeInput=null,this.element=f(t),this.options=d({scale:1,threshold:0,inputType:["touch","pointer"]},e),this._onPinchStart=this._onPinchStart.bind(this),this._onPinchMove=this._onPinchMove.bind(this),this._onPinchEnd=this._onPinchEnd.bind(this)}var e=t.prototype;return e.mapAxes=function(t){this.axes=t},e.connect=function(t){return this._activeInput&&this._detachEvent(),this._attachEvent(t),this._originalCssProps=w(this.element),this},e.disconnect=function(){return this._detachEvent(),this._originalCssProps!==g&&w(this.element,this._originalCssProps),this},e.destroy=function(){this.disconnect(),this.element=null},e.enable=function(){return this._enabled=!0,this},e.disable=function(){return this._enabled=!1,this},e.isEnabled=function(){return this._enabled},e._onPinchStart=function(t){var e;this._activeInput.onEventStart(t),this._enabled&&2===this._activeInput.getTouches(t)&&(this._baseValue=this._observer.get(this)[this.axes[0]],this._observer.hold(this,t),this._pinchFlag=!0,e=this._activeInput.extendEvent(t),this._activeInput.prevEvent=e)},e._onPinchMove=function(t){var e,n;this._activeInput.onEventMove(t),this._pinchFlag&&this._enabled&&2===this._activeInput.getTouches(t)&&(e=this._activeInput.extendEvent(t),n=this._getOffset(e.scale,this._activeInput.prevEvent.scale),this._observer.change(this,t,A(this.axes,[n])),this._activeInput.prevEvent=e)},e._onPinchEnd=function(t){this._activeInput.onEventEnd(t),!this._pinchFlag||!this._enabled||2<this._activeInput.getTouches(t)||(this._observer.release(this,t,[0],0),this._baseValue=null,this._pinchFlag=!1,this._activeInput.prevEvent=null)},e._attachEvent=function(t){var e=this,n=C(this.options.inputType);this._observer=t,this._enabled=!0,null!=(this._activeInput=n)&&n.start.forEach(function(t){e.element.addEventListener(t,e._onPinchStart,!1)}),null!=n&&n.move.forEach(function(t){e.element.addEventListener(t,e._onPinchMove,!1)}),null!=n&&n.end.forEach(function(t){e.element.addEventListener(t,e._onPinchEnd,!1)})},e._detachEvent=function(){var e=this,t=this._activeInput;null!=t&&t.start.forEach(function(t){e.element.removeEventListener(t,e._onPinchStart,!1)}),null!=t&&t.move.forEach(function(t){e.element.removeEventListener(t,e._onPinchMove,!1)}),null!=t&&t.end.forEach(function(t){e.element.removeEventListener(t,e._onPinchEnd,!1)}),this._enabled=!1,this._observer=null},e._getOffset=function(t,e){return void 0===e&&(e=1),this._baseValue*(t-e)*this.options.scale},t}(),J=function(){function t(t,e){this.axes=[],this.element=null,this._enabled=!1,this._holding=!1,this._timer=null,this.element=f(t),this.options=d({scale:1,releaseDelay:300,useNormalized:!0},e),this._onWheel=this._onWheel.bind(this)}var e=t.prototype;return e.mapAxes=function(t){this.axes=t},e.connect=function(t){return this._detachEvent(),this._attachEvent(t),this},e.disconnect=function(){return this._detachEvent(),this},e.destroy=function(){this.disconnect(),this.element=null},e.enable=function(){return this._enabled=!0,this},e.disable=function(){return this._enabled=!1,this},e.isEnabled=function(){return this._enabled},e._onWheel=function(t){var e,n=this;this._enabled&&(t.preventDefault(),0!==t.deltaY&&(this._holding||(this._observer.hold(this,t),this._holding=!0),e=(0<t.deltaY?-1:1)*this.options.scale*(this.options.useNormalized?1:Math.abs(t.deltaY)),this._observer.change(this,t,A(this.axes,[e]),!0),clearTimeout(this._timer),this._timer=setTimeout(function(){n._holding&&(n._holding=!1,n._observer.release(n,t,[0]))},this.options.releaseDelay)))},e._attachEvent=function(t){this._observer=t,this.element.addEventListener("wheel",this._onWheel),this._enabled=!0},e._detachEvent=function(){this.element.removeEventListener("wheel",this._onWheel),this._enabled=!1,this._observer=null,this._timer&&(clearTimeout(this._timer),this._timer=null)},t}(),$=function(){function t(t,e){this.axes=[],this.element=null,this._enabled=!1,this._holding=!1,this._timer=null,this.element=f(t),this.options=d({scale:[1,1]},e),this._onKeydown=this._onKeydown.bind(this),this._onKeyup=this._onKeyup.bind(this)}var e=t.prototype;return e.mapAxes=function(t){this.axes=t},e.connect=function(t){return this._detachEvent(),"0"!==this.element.getAttribute("tabindex")&&this.element.setAttribute("tabindex","0"),this._attachEvent(t),this},e.disconnect=function(){return this._detachEvent(),this},e.destroy=function(){this.disconnect(),this.element=null},e.enable=function(){return this._enabled=!0,this},e.disable=function(){return this._enabled=!1,this},e.isEnabled=function(){return this._enabled},e._onKeydown=function(t){if(this._enabled){var e,n=!0,i=1,r=-1;switch(t.keyCode){case 37:case 65:i=-1;break;case 39:case 68:break;case 40:case 83:i=-1,r=1;break;case 38:case 87:r=1;break;default:n=!1}(-1===r&&!this.axes[0]||1===r&&!this.axes[1])&&(n=!1),n&&(t.preventDefault(),e=-1===r?[this.options.scale[0]*i,0]:[0,this.options.scale[1]*i],this._holding||(this._observer.hold(this,t),this._holding=!0),clearTimeout(this._timer),this._observer.change(this,t,A(this.axes,e)))}},e._onKeyup=function(t){var e=this;this._holding&&(clearTimeout(this._timer),this._timer=setTimeout(function(){e._observer.release(e,t,[0,0]),e._holding=!1},80))},e._attachEvent=function(t){this._observer=t,this.element.addEventListener("keydown",this._onKeydown,!1),this.element.addEventListener("keypress",this._onKeydown,!1),this.element.addEventListener("keyup",this._onKeyup,!1),this._enabled=!0},e._detachEvent=function(){this.element.removeEventListener("keydown",this._onKeydown,!1),this.element.removeEventListener("keypress",this._onKeydown,!1),this.element.removeEventListener("keyup",this._onKeyup,!1),this._enabled=!1,this._observer=null},t}();return z.PanInput=H,z.RotatePanInput=G,z.PinchInput=Z,z.WheelInput=J,z.MoveKeyInput=$,z}); | ||
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("@egjs/agent"),require("@egjs/component")):"function"==typeof define&&define.amd?define(["@egjs/agent","@egjs/component"],e):(t.eg=t.eg||{},t.eg.Axes=e(t.eg.agent,t.eg.Component))}(this,function(t,_){"use strict";var i=function(t,e){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])})(t,e)};function s(t,e){function n(){this.constructor=t}i(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}function p(t,e,n,i){var r=t,s=[!n[0]&&i?e[0]-i[0]:e[0],!n[1]&&i?e[1]+i[1]:e[1]],r=Math.max(s[0],r);return Math.min(s[1],r)}function h(t,e){return t<e[0]||t>e[1]}function c(t,e,n){return n[1]&&t>e[1]||n[0]&&t<e[0]}function v(t,e,n){var i=t,r=e[0],s=e[1],a=s-r;return n[1]&&s<t&&(i=(i-s)%a+r),n[0]&&t<r&&(i=(i-r)%a+s),i}function r(t){for(var e=[],n=0,i=t.length;n<i;n++)e.push(t[n]);return e}var a,o,g=function(){return(g=Object.assign||function(t){for(var e,n=1,i=arguments.length;n<i;n++)for(var r in e=arguments[n])Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t}).apply(this,arguments)},u="undefined"==typeof window?{navigator:{userAgent:""}}:window,l="ontouchstart"in u&&"safari"===t().browser.name,n=function(){if("undefined"==typeof document)return"";for(var t=(document.head||document.getElementsByTagName("head")[0]).style,e=["transform","webkitTransform","msTransform","mozTransform"],n=0,i=e.length;n<i;n++)if(e[n]in t)return e[n];return""}(),d={"touch-action":"none","user-select":"none","-webkit-user-drag":"none"},f=function(t,e){var n,i;return void 0===e&&(e=!1),"string"==typeof t?(i=t.match(/^<([a-z]+)\s*([^>]*)>/)?((n=document.createElement("div")).innerHTML=t,r(n.childNodes)):r(document.querySelectorAll(t)),e||(i=1<=i.length?i[0]:void 0)):t!==u&&(!t.nodeName||1!==t.nodeType&&9!==t.nodeType)?"jQuery"in u&&t instanceof jQuery||t.constructor.prototype.jquery?i=e?t.toArray():t.get(0):Array.isArray(t)&&(i=t.map(function(t){return f(t)}),e||(i=1<=i.length?i[0]:void 0)):i=t,i},m=u.requestAnimationFrame||u.webkitRequestAnimationFrame,E=u.cancelAnimationFrame||u.webkitCancelAnimationFrame;m&&!E?(a={},o=m,m=function(e){var n=o(function(t){a[n]&&e(t)});return a[n]=!0,n},E=function(t){delete a[t]}):m&&E||(m=function(t){return u.setTimeout(function(){t(u.performance&&u.performance.now&&u.performance.now()||(new Date).getTime())},16)},E=u.clearTimeout);function x(t,e){var n={};for(var i in t)i&&(n[i]=e(t[i],i));return n}function M(t,e){var n={};for(var i in t)i&&e(t[i],i)&&(n[i]=t[i]);return n}function b(t,e){for(var n in t)if(n&&!e(t[n],n))return!1;return!0}function y(t,n){return b(t,function(t,e){return t===n[e]})}function P(t,e){return R[e]||(R[e]=B(e)),R[e](t)}function T(t,n){return t&&n?x(t,function(t,e){return P(t,"number"==typeof n?n:n[e])}):t}function w(t){if(!isFinite(t))return 0;var e=""+t;if(0<=e.indexOf("e")){for(var n=0,i=1;Math.round(t*i)/i!==t;)i*=10,n++;return n}return 0<=e.indexOf(".")?e.length-e.indexOf(".")-1:0}function I(t,e){return 180*Math.atan2(e,t)/Math.PI}function O(e,t){var n,i={};return e&&e.style&&(n=t||d,Object.keys(n).forEach(function(t){i[t]=e.style[t],e.style[t]=n[t]})),i}function D(t,e,n){return Math.max(Math.min(t,n),e)}function A(i,t){return t.reduce(function(t,e,n){return i[n]&&(t[i[n]]=e),t},{})}function C(t){void 0===t&&(t=[]);var e=!1,n=!1,i=!1;return t.forEach(function(t){switch(t){case"mouse":n=!0;break;case"touch":e=F;break;case"pointer":i=N}}),i?new U:e&&n?new q:e?new V:n?new K:null}function S(t,e,n){return n?!!(30===e||e&t&&n&t):!!(e&t)}var R={},B=function(e){var n=e<1?Math.pow(10,w(e)):1;return function(t){return 0===e?0:Math.round(Math.round(t/e)*e*n)/n}},L=function(){function t(t){var e=t.options,n=t.interruptManager,i=t.eventManager,r=t.axisManager;this._options=e,this.interruptManager=n,this.eventManager=i,this.axisManager=r,this.animationEnd=this.animationEnd.bind(this)}var e=t.prototype;return e.getDuration=function(s,t,e){var n,i,a=this;return i=void 0!==e?e:(n=x(t,function(t,e){return n=Math.abs(t-s[e]),i=a._options.deceleration,(r=Math.sqrt(n/i*2))<100?0:r;var n,i,r}),Object.keys(n).reduce(function(t,e){return Math.max(t,n[e])},-1/0)),D(i,this._options.minimumDuration,this._options.maximumDuration)},e.getDisplacement=function(t){var e=Math.pow(t.reduce(function(t,e){return t+e*e},0),1/t.length),n=Math.abs(e/-this._options.deceleration);return t.map(function(t){return t/2*n})},e.interpolate=function(t,e){var n=this.easing(1e-5)/1e-5;return this.easing(t/(e*n))*e},e.stopAnimation=function(t){var n,e,i;this._animateParam&&(n=this.axisManager.get(),e=this.axisManager.map(n,function(t,e){return v(t,e.range,e.circular)}),b(e,function(t,e){return n[e]===t})||this.eventManager.triggerChange(e,n,t,!!t),this._animateParam=null,this._raf&&(i=this._raf,E(i)),this._raf=null,this.eventManager.triggerAnimationEnd(!(null==t||!t.event)))},e.getEventInfo=function(){return this._animateParam&&this._animateParam.input&&this._animateParam.inputEvent?{input:this._animateParam.input,event:this._animateParam.inputEvent}:null},e.restore=function(t){var e=this.axisManager.get(),n=this.axisManager.map(e,function(t,e){return Math.min(e.range[1],Math.max(e.range[0],t))});this.stopAnimation(),this.animateTo(n,this.getDuration(e,n),t)},e.animationEnd=function(){var t=this.getEventInfo();this._animateParam=null;var e=this.axisManager.filter(this.axisManager.get(),function(t,e){return c(t,e.range,e.circular)});0<Object.keys(e).length&&this.setTo(this.axisManager.map(e,function(t,e){return v(t,e.range,e.circular)})),this.interruptManager.setInterrupt(!1),this.eventManager.triggerAnimationEnd(!!t),this.axisManager.isOutside()?this.restore(t):this.finish(!!t)},e.finish=function(t){this._animateParam=null,this.interruptManager.setInterrupt(!1),this.eventManager.triggerFinish(t)},e.getUserControl=function(t){var e=t.setTo();return e.destPos=this.axisManager.get(e.destPos),e.duration=D(e.duration,this._options.minimumDuration,this._options.maximumDuration),e},e.animateTo=function(t,e,n){var i=this;this.stopAnimation();var r,s=this._createAnimationParam(t,e,n),a=g({},s.depaPos),o=this.eventManager.triggerAnimationStart(s),u=this.getUserControl(s);!o&&this.axisManager.every(u.destPos,function(t,e){return c(t,e.range,e.circular)})&&console.warn("You can't stop the 'animation' event when 'circular' is true."),o&&!y(u.destPos,a)&&(r=(null==n?void 0:n.event)||null,this._animateLoop({depaPos:a,destPos:u.destPos,duration:u.duration,delta:this.axisManager.getDelta(a,u.destPos),isTrusted:!!r,inputEvent:r,input:(null==n?void 0:n.input)||null},function(){return i.animationEnd()}))},e.easing=function(t){return 1<t?1:this._options.easing(t)},e.setTo=function(t,e){void 0===e&&(e=0);var n=Object.keys(t),i=this.axisManager.get(n);if(y(t,i))return this;this.interruptManager.setInterrupt(!0);var r=M(t,function(t,e){return i[e]!==t});return Object.keys(r).length?(r=this.axisManager.map(r,function(t,e){var n=e.range,i=e.circular;return i&&(i[0]||i[1])?t:p(t,n,i)}),y(r,i)||(0<e?this.animateTo(r,e):(this.stopAnimation(),this.eventManager.triggerChange(r),this.finish(!1))),this):this},e.setBy=function(n,t){return void 0===t&&(t=0),this.setTo(x(this.axisManager.get(Object.keys(n)),function(t,e){return t+n[e]}),t)},e.updateAnimation=function(t){var e,n,i,r,s,a=this._animateParam;a&&(e=(new Date).getTime()-a.startTime,n=(null==t?void 0:t.destPos)||a.destPos,i=(null==t?void 0:t.duration)||a.duration,null!=t&&t.restart||i<=e?this.setTo(n,i-e):(null!=t&&t.destPos&&(r=this.axisManager.get(),this._initialEasingPer=this._prevEasingPer,a.delta=this.axisManager.getDelta(r,n),a.destPos=n),null!=t&&t.duration&&(s=(e+this._durationOffset)/a.duration,this._durationOffset=s*i-e,a.duration=i)))},e._createAnimationParam=function(t,e,n){var i=this.axisManager.get(),r=t,s=(null==n?void 0:n.event)||null;return{depaPos:i,destPos:r,duration:D(e,this._options.minimumDuration,this._options.maximumDuration),delta:this.axisManager.getDelta(i,r),inputEvent:s,input:(null==n?void 0:n.input)||null,isTrusted:!!s,done:this.animationEnd}},e._animateLoop=function(n,i){var h,c,r,s,l=this;n.duration?(h=n.depaPos,this._initialEasingPer=0,this._prevEasingPer=0,this._durationOffset=0,this._animateParam=g(g({},n),{startTime:(new Date).getTime()}),c=x(h,function(t,e){return t<=n.destPos[e]?1:-1}),r=x(n.destPos,function(t){return t}),(s=function(){var a=l._animateParam,o=((new Date).getTime()-a.startTime+l._durationOffset)/a.duration,u=l.easing(o);l._raf=null;var t=l.axisManager.map(h,function(t,e,n){var i,r=1<=o?a.destPos[n]:t+a.delta[n]*(u-l._prevEasingPer)/(1-l._initialEasingPer),s=v(r,e.range,e.circular);return r!==s&&(i=c[n]*(e.range[1]-e.range[0]),a.destPos[n]-=i,h[n]-=i),s}),e=!l.eventManager.triggerChange(t,h);if(h=t,1<=(l._prevEasingPer=u))return a.destPos=l._getFinalPos(a.destPos,r),y(a.destPos,l.axisManager.get(Object.keys(a.destPos)))||l.eventManager.triggerChange(a.destPos,h),void i();e?l.finish(!1):l._raf=m(s)})()):(this.eventManager.triggerChange(n.destPos),i())},e._getFinalPos=function(t,i){var r=this;return x(t,function(t,e){if(t>=i[e]-1e-6&&t<=i[e]+1e-6)return i[e];var n=r._getRoundUnit(t,e);return P(t,n)})},e._getRoundUnit=function(t,e){var n,i,r=this._options.round,s=null;return r||(n=this.axisManager.getAxisOptions(e),i=Math.max(w(n.range[0]),w(n.range[1]),w(t)),s=1/Math.pow(10,i)),s||r},t}(),Y=function(){function t(t){this._axes=t}var e=t.prototype;return e.hold=function(t,e){var n=this._getRoundPos(t).roundPos;this._axes.trigger(new _.ComponentEvent("hold",{pos:n,input:e.input||null,inputEvent:e.event||null,isTrusted:!0}))},e.triggerRelease=function(t){var e=this._getRoundPos(t.destPos,t.depaPos),n=e.roundPos,i=e.roundDepa;t.destPos=n,t.depaPos=i,t.setTo=this._createUserControll(t.destPos,t.duration),this._axes.trigger(new _.ComponentEvent("release",g(g({},t),{bounceRatio:this._getBounceRatio(n)})))},e.triggerChange=function(t,e,n,i){void 0===i&&(i=!1);var r=this.animationManager,s=r.axisManager,a=r.getEventInfo(),o=this._getRoundPos(t,e),u=o.roundPos,h=o.roundDepa,c=s.moveTo(u,h),l=(null==n?void 0:n.event)||(null==a?void 0:a.event)||null,v={pos:c.pos,delta:c.delta,bounceRatio:this._getBounceRatio(c.pos),holding:i,inputEvent:l,isTrusted:!!l,input:(null==n?void 0:n.input)||(null==a?void 0:a.input)||null,set:l?this._createUserControll(c.pos):function(){}},d=new _.ComponentEvent("change",v);return this._axes.trigger(d),l&&s.set(v.set().destPos),!d.isCanceled()},e.triggerAnimationStart=function(t){var e=this._getRoundPos(t.destPos,t.depaPos),n=e.roundPos,i=e.roundDepa;t.destPos=n,t.depaPos=i,t.setTo=this._createUserControll(t.destPos,t.duration);var r=new _.ComponentEvent("animationStart",t);return this._axes.trigger(r),!r.isCanceled()},e.triggerAnimationEnd=function(t){void 0===t&&(t=!1),this._axes.trigger(new _.ComponentEvent("animationEnd",{isTrusted:t}))},e.triggerFinish=function(t){void 0===t&&(t=!1),this._axes.trigger(new _.ComponentEvent("finish",{isTrusted:t}))},e.setAnimationManager=function(t){this.animationManager=t},e.destroy=function(){this._axes.off()},e._createUserControll=function(t,e){void 0===e&&(e=0);var n={destPos:g({},t),duration:e};return function(t,e){return t&&(n.destPos=g({},t)),void 0!==e&&(n.duration=e),n}},e._getRoundPos=function(t,e){var n=this._axes.options.round;return{roundPos:T(t,n),roundDepa:T(e,n)}},e._getBounceRatio=function(t){return this._axes.axisManager.map(t,function(t,e){return t<e.range[0]&&0!==e.bounce[0]?(e.range[0]-t)/e.bounce[0]:t>e.range[1]&&0!==e.bounce[1]?(t-e.range[1])/e.bounce[1]:0})},t}(),k=function(){function t(t){this._options=t,this._prevented=!1}var e=t.prototype;return e.isInterrupting=function(){return this._options.interruptable||this._prevented},e.isInterrupted=function(){return!this._options.interruptable&&this._prevented},e.setInterrupt=function(t){this._options.interruptable||(this._prevented=t)},t}(),X=function(){function t(t){var n=this;this._axis=t,this._complementOptions(),this._pos=Object.keys(this._axis).reduce(function(t,e){return t[e]=n._axis[e].range[0],t},{})}var e=t.prototype;return e.getDelta=function(t,e){var n=this.get(t);return x(this.get(e),function(t,e){return t-n[e]})},e.get=function(t){var n=this;return t&&Array.isArray(t)?t.reduce(function(t,e){return e&&e in n._pos&&(t[e]=n._pos[e]),t},{}):g(g({},this._pos),t||{})},e.moveTo=function(n,i){void 0===i&&(i=this._pos);var t=x(this._pos,function(t,e){return e in n&&e in i?n[e]-i[e]:0});return this.set(this.map(n,function(t,e){return e?v(t,e.range,e.circular):0})),{pos:g({},this._pos),delta:t}},e.set=function(t){for(var e in t)e&&e in this._pos&&(this._pos[e]=t[e])},e.every=function(t,n){var i=this._axis;return b(t,function(t,e){return n(t,i[e],e)})},e.filter=function(t,n){var i=this._axis;return M(t,function(t,e){return n(t,i[e],e)})},e.map=function(t,n){var i=this._axis;return x(t,function(t,e){return n(t,i[e],e)})},e.isOutside=function(t){return!this.every(t?this.get(t):this._pos,function(t,e){return!h(t,e.range)})},e.getAxisOptions=function(t){return this._axis[t]},e._complementOptions=function(){var r=this;Object.keys(this._axis).forEach(function(i){r._axis[i]=g({range:[0,100],bounce:[0,0],circular:[!1,!1]},r._axis[i]),["bounce","circular"].forEach(function(t){var e=r._axis,n=e[i][t];/string|number|boolean/.test(typeof n)&&(e[i][t]=[n,n])})})},t}(),F="ontouchstart"in u,j="PointerEvent"in u,e="MSPointerEvent"in u,N=j||e,W=function(){function t(){var e=this;this._stopContextMenu=function(t){t.preventDefault(),u.removeEventListener("contextmenu",e._stopContextMenu)}}var e=t.prototype;return e.extendEvent=function(t){var e=this.prevEvent,n=this._getCenter(t),i=e?this._getMovement(t):{x:0,y:0},r=e?this._getScale(t):1,s=e?I(n.x-e.center.x,n.y-e.center.y):0,a=e?e.deltaX+i.x:i.x,o=e?e.deltaY+i.y:i.y,u=e?a-e.deltaX:0,h=e?o-e.deltaY:0,c=e?t.timeStamp-e.srcEvent.timeStamp:0;return{srcEvent:t,scale:r,angle:s,center:n,deltaX:a,deltaY:o,offsetX:u,offsetY:h,velocityX:e&&0!=c?u/c:0,velocityY:e&&0!=c?h/c:0,preventSystemEvent:!0}},e._getDistance=function(t,e){var n=e.clientX-t.clientX,i=e.clientY-t.clientY;return Math.sqrt(n*n+i*i)},e._getButton=function(t){if(this._isTouchEvent(t))return"left";switch(t.buttons){case 1:return"left";case 2:return"right";case 4:return"middle";default:return null}},e._isTouchEvent=function(t){return-1<t.type.indexOf("touch")},e._isValidButton=function(t,e){return-1<e.indexOf(t)},e._preventMouseButton=function(t,e){"right"===e?u.addEventListener("contextmenu",this._stopContextMenu):"middle"===e&&t.preventDefault()},t}(),K=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.start=["mousedown"],t.move=["mousemove"],t.end=["mouseup"],t}s(t,e);var n=t.prototype;return n.onEventStart=function(t,e){var n=this._getButton(t);return e&&!this._isValidButton(n,e)?null:(this._preventMouseButton(t,n),this.extendEvent(t))},n.onEventMove=function(t,e){return e&&!this._isValidButton(this._getButton(t),e)?null:this.extendEvent(t)},n.onEventEnd=function(){},n.getTouches=function(){return 0},n._getScale=function(){return 1},n._getCenter=function(t){return{x:t.clientX,y:t.clientY}},n._getMovement=function(t){var e=this.prevEvent.srcEvent;return{x:t.pageX-e.pageX,y:t.pageY-e.pageY}},t}(W),V=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.start=["touchstart"],t.move=["touchmove"],t.end=["touchend","touchcancel"],t}s(t,e);var n=t.prototype;return n.onEventStart=function(t){return this._baseTouches=t.touches,this.extendEvent(t)},n.onEventMove=function(t){return this.extendEvent(t)},n.onEventEnd=function(t){this._baseTouches=t.touches},n.getTouches=function(t){return t.touches.length},n._getScale=function(t){return 2!==t.touches.length||this._baseTouches.length<2?null:this._getDistance(t.touches[0],t.touches[1])/this._getDistance(this._baseTouches[0],this._baseTouches[1])},n._getCenter=function(t){return{x:t.touches[0].clientX,y:t.touches[0].clientY}},n._getMovement=function(t){var e=this.prevEvent.srcEvent;return t.touches[0].identifier!==e.touches[0].identifier?{x:0,y:0}:{x:t.touches[0].pageX-e.touches[0].pageX,y:t.touches[0].pageY-e.touches[0].pageY}},t}(W),U=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.start=j?["pointerdown"]:["MSPointerDown"],t.move=j?["pointermove"]:["MSPointerMove"],t.end=j?["pointerup","pointercancel"]:["MSPointerUp","MSPointerCancel"],t._firstInputs=[],t._recentInputs=[],t}s(t,e);var n=t.prototype;return n.onEventStart=function(t,e){var n=this._getButton(t);return e&&!this._isValidButton(n,e)?null:(this._preventMouseButton(t,n),this._updatePointerEvent(t),this.extendEvent(t))},n.onEventMove=function(t,e){return e&&!this._isValidButton(this._getButton(t),e)?null:(this._updatePointerEvent(t),this.extendEvent(t))},n.onEventEnd=function(t){this._removePointerEvent(t)},n.getTouches=function(){return this._recentInputs.length},n._getScale=function(){return 2!==this._recentInputs.length?null:this._getDistance(this._recentInputs[0],this._recentInputs[1])/this._getDistance(this._firstInputs[0],this._firstInputs[1])},n._getCenter=function(t){return{x:t.clientX,y:t.clientY}},n._getMovement=function(t){var e=this.prevEvent.srcEvent;return t.pointerId!==e.pointerId?{x:0,y:0}:{x:t.pageX-e.pageX,y:t.pageY-e.pageY}},n._updatePointerEvent=function(n){var i=this,r=!1;this._recentInputs.forEach(function(t,e){t.pointerId===n.pointerId&&(r=!0,i._recentInputs[e]=n)}),r||(this._firstInputs.push(n),this._recentInputs.push(n))},n._removePointerEvent=function(e){this._firstInputs=this._firstInputs.filter(function(t){return t.pointerId!==e.pointerId}),this._recentInputs=this._recentInputs.filter(function(t){return t.pointerId!==e.pointerId})},t}(W),q=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.start=["mousedown","touchstart"],t.move=["mousemove","touchmove"],t.end=["mouseup","touchend","touchcancel"],t}s(t,e);var n=t.prototype;return n.onEventStart=function(t,e){var n=this._getButton(t);return this._isTouchEvent(t)&&(this._baseTouches=t.touches),e&&!this._isValidButton(n,e)?null:(this._preventMouseButton(t,n),this.extendEvent(t))},n.onEventMove=function(t,e){return e&&!this._isValidButton(this._getButton(t),e)?null:this.extendEvent(t)},n.onEventEnd=function(t){this._isTouchEvent(t)&&(this._baseTouches=t.touches)},n.getTouches=function(t){return this._isTouchEvent(t)?t.touches.length:0},n._getScale=function(t){return this._isTouchEvent(t)?2!==t.touches.length||this._baseTouches.length<2?1:this._getDistance(t.touches[0],t.touches[1])/this._getDistance(this._baseTouches[0],this._baseTouches[1]):this.prevEvent.scale},n._getCenter=function(t){return this._isTouchEvent(t)?{x:t.touches[0].clientX,y:t.touches[0].clientY}:{x:t.clientX,y:t.clientY}},n._getMovement=function(e){var n=this,t=this.prevEvent.srcEvent,i=[e,t].map(function(t){return n._isTouchEvent(e)?{id:t.touches[0].identifier,x:t.touches[0].pageX,y:t.touches[0].pageY}:{id:null,x:t.pageX,y:t.pageY}}),r=i[0],s=i[1];return r.id===s.id?{x:r.x-s.x,y:r.y-s.y}:{x:0,y:0}},t}(W),Q=function(){function t(t){var e=t.options,n=t.interruptManager,i=t.eventManager,r=t.axisManager,s=t.animationManager;this._isOutside=!1,this._moveDistance=null,this._isStopped=!1,this.options=e,this._interruptManager=n,this._eventManager=i,this._axisManager=r,this._animationManager=s}var e=t.prototype;return e.get=function(t){return this._axisManager.get(t.axes)},e.hold=function(t,e){var n;!this._interruptManager.isInterrupted()&&t.axes.length&&(n={input:t,event:e},this._isStopped=!1,this._interruptManager.setInterrupt(!0),this._animationManager.stopAnimation(n),this._moveDistance||this._eventManager.hold(this._axisManager.get(),n),this._isOutside=this._axisManager.isOutside(t.axes),this._moveDistance=this._axisManager.get(t.axes))},e.change=function(t,e,n,i){var r,s,a,o,u;this._isStopped||!this._interruptManager.isInterrupting()||this._axisManager.every(n,function(t){return 0===t})||((r=e.srcEvent?e.srcEvent:e).__childrenAxesAlreadyChanged||(s=this._moveDistance||this._axisManager.get(t.axes),a=x(s,function(t,e){return t+(n[e]||0)}),this._moveDistance&&(this._moveDistance=this._axisManager.map(a,function(t,e){var n=e.circular,i=e.range;return n&&(n[0]||n[1])?v(t,i,n):t})),this._isOutside&&this._axisManager.every(s,function(t,e){return!h(t,e.range)})&&(this._isOutside=!1),s=this._atOutside(s),a=this._atOutside(a),this.options.nested&&this._isEndofAxis(n,s,a)||(r.__childrenAxesAlreadyChanged=!0),o={input:t,event:e},i?(u=this._animationManager.getDuration(a,s),this._animationManager.animateTo(a,u,o)):this._eventManager.triggerChange(a,s,o,!0)||(this._isStopped=!0,this._moveDistance=null,this._animationManager.finish(!1))))},e.release=function(t,e,n,i){var r,s,a,o,u,h,c,l,v,d,_;!this._isStopped&&this._interruptManager.isInterrupting()&&this._moveDistance&&((r=e.srcEvent?e.srcEvent:e).__childrenAxesAlreadyReleased&&(n=n.map(function(){return 0})),s=this._axisManager.get(t.axes),a=this._axisManager.get(),o=this._animationManager.getDisplacement(n),u=A(t.axes,o),h=this._axisManager.get(this._axisManager.map(u,function(t,e,n){return e.circular&&(e.circular[0]||e.circular[1])?s[n]+t:p(s[n]+t,e.range,e.circular,e.bounce)})),r.__childrenAxesAlreadyReleased=!0,0===(c=this._animationManager.getDuration(h,s,i))&&(h=g({},a)),l={depaPos:a,destPos:h,duration:c,delta:this._axisManager.getDelta(a,h),inputEvent:e,input:t,isTrusted:!0},this._eventManager.triggerRelease(l),this._moveDistance=null,v=this._animationManager.getUserControl(l),_={input:t,event:e},(d=y(v.destPos,a))||0===v.duration?(d||this._eventManager.triggerChange(v.destPos,a,_,!0),this._interruptManager.setInterrupt(!1),this._axisManager.isOutside()?this._animationManager.restore(_):this._eventManager.triggerFinish(!0)):this._animationManager.animateTo(v.destPos,v.duration,_))},e._atOutside=function(t){var a=this;return this._isOutside?this._axisManager.map(t,function(t,e){var n=e.range[0]-e.bounce[0],i=e.range[1]+e.bounce[1];return i<t?i:t<n?n:t}):this._axisManager.map(t,function(t,e){var n=e.range[0],i=e.range[1],r=e.bounce,s=e.circular;return s&&(s[0]||s[1])?t:t<n?n-a._animationManager.interpolate(n-t,r[0]):i<t?i+a._animationManager.interpolate(t-i,r[1]):t})},e._isEndofAxis=function(o,u,h){return this._axisManager.every(u,function(t,e,n){return 0===o[n]||u[n]===h[n]&&(i=t,r=e.range,s=e.bounce,!(a=e.circular)[0]&&i===r[0]-s[0]||!a[1]&&i===r[1]+s[1]);var i,r,s,a})},t}(),z=function(r){function t(t,e,n){void 0===t&&(t={}),void 0===e&&(e={}),void 0===n&&(n=null);var i=r.call(this)||this;return i.axis=t,i._inputs=[],i.options=g({easing:function(t){return 1-Math.pow(1-t,3)},interruptable:!0,maximumDuration:1/0,minimumDuration:0,deceleration:6e-4,round:null,nested:!1},e),i.interruptManager=new k(i.options),i.axisManager=new X(i.axis),i.eventManager=new Y(i),i.animationManager=new L(i),i.inputObserver=new Q(i),i.eventManager.setAnimationManager(i.animationManager),n&&i.eventManager.triggerChange(n),i}s(t,r);var e=t.prototype;return e.connect=function(t,e){var n="string"==typeof t?t.split(" "):t.concat();return~this._inputs.indexOf(e)&&this.disconnect(e),e.mapAxes(n),e.connect(this.inputObserver),this._inputs.push(e),this},e.disconnect=function(t){var e;return t?0<=(e=this._inputs.indexOf(t))&&(this._inputs[e].disconnect(),this._inputs.splice(e,1)):(this._inputs.forEach(function(t){return t.disconnect()}),this._inputs=[]),this},e.get=function(t){return this.axisManager.get(t)},e.setTo=function(t,e){return void 0===e&&(e=0),this.animationManager.setTo(t,e),this},e.setBy=function(t,e){return void 0===e&&(e=0),this.animationManager.setBy(t,e),this},e.stopAnimation=function(){return this.animationManager.stopAnimation(),this},e.updateAnimation=function(t){return this.animationManager.updateAnimation(t),this},e.isBounceArea=function(t){return this.axisManager.isOutside(t)},e.destroy=function(){this.disconnect(),this.eventManager.destroy()},t.VERSION="3.0.1-snapshot",t.TRANSFORM=n,t.DIRECTION_NONE=1,t.DIRECTION_LEFT=2,t.DIRECTION_RIGHT=4,t.DIRECTION_UP=8,t.DIRECTION_DOWN=16,t.DIRECTION_HORIZONTAL=6,t.DIRECTION_VERTICAL=24,t.DIRECTION_ALL=30,t}(_),H=function(){function t(t,e){this.axes=[],this.element=null,this._enabled=!1,this._activeInput=null,this._atRightEdge=!1,this._rightEdgeTimer=0,this.element=f(t),this.options=g({inputType:["touch","mouse","pointer"],inputButton:["left"],scale:[1,1],thresholdAngle:45,threshold:0,iOSEdgeSwipeThreshold:30,releaseOnScroll:!1},e),this._onPanstart=this._onPanstart.bind(this),this._onPanmove=this._onPanmove.bind(this),this._onPanend=this._onPanend.bind(this)}var e=t.prototype;return e.mapAxes=function(t){var e=!!t[0],n=!!t[1];this._direction=e&&n?30:e?6:n?24:1,this.axes=t},e.connect=function(t){return this._activeInput&&(this._detachElementEvent(),this._detachWindowEvent(this._activeInput)),this._attachElementEvent(t),this._originalCssProps=O(this.element),this},e.disconnect=function(){return this._detachElementEvent(),this._detachWindowEvent(this._activeInput),this._originalCssProps!==d&&O(this.element,this._originalCssProps),this._direction=1,this},e.destroy=function(){this.disconnect(),this.element=null},e.enable=function(){return this._enabled=!0,this},e.disable=function(){return this._enabled=!1,this},e.isEnabled=function(){return this._enabled},e._onPanstart=function(t){var e,n=this._activeInput,i=n.onEventStart(t,this.options.inputButton);!i||!this._enabled||1<n.getTouches(t)||!1!==i.srcEvent.cancelable&&(e=this.options.iOSEdgeSwipeThreshold,this._observer.hold(this,i),this._atRightEdge=l&&i.center.x>window.innerWidth-e,this._attachWindowEvent(n),n.prevEvent=i)},e._onPanmove=function(t){var e=this,n=this._activeInput,i=n.onEventMove(t,this.options.inputButton);if(i&&this._enabled&&!(1<n.getTouches(t))){var r=this.options,s=r.iOSEdgeSwipeThreshold,a=r.releaseOnScroll,o=function(t,e){if(e<0||90<e)return 1;var n=Math.abs(t);return e<n&&n<180-e?24:6}(i.angle,this.options.thresholdAngle);if(!a||i.srcEvent.cancelable){if(n.prevEvent&&l){if(i.center.x<0)return this._detachWindowEvent(n),void this._observer.release(this,n.prevEvent,[0,0]);this._atRightEdge&&(clearTimeout(this._rightEdgeTimer),i.deltaX<-s?this._atRightEdge=!1:this._rightEdgeTimer=window.setTimeout(function(){e._detachWindowEvent(n),e._observer.release(e,n.prevEvent,[0,0])},100))}var u=this._getOffset([i.offsetX,i.offsetY],[S(6,this._direction,o),S(24,this._direction,o)]),h=u.some(function(t){return 0!==t});h&&(!1!==i.srcEvent.cancelable&&i.srcEvent.preventDefault(),i.srcEvent.stopPropagation()),(i.preventSystemEvent=h)&&this._observer.change(this,i,A(this.axes,u)),n.prevEvent=i}else this._onPanend(t)}},e._onPanend=function(t){var e,n,i=this._activeInput;i.onEventEnd(t),this._enabled&&0===i.getTouches(t)&&(this._detachWindowEvent(i),clearTimeout(this._rightEdgeTimer),e=i.prevEvent,n=this._getOffset([Math.abs(e.velocityX)*(e.offsetX<0?-1:1),Math.abs(e.velocityY)*(e.offsetY<0?-1:1)],[S(6,this._direction),S(24,this._direction)]),this._observer.release(this,e,n),i.prevEvent=null)},e._attachWindowEvent=function(t){var e=this;null!=t&&t.move.forEach(function(t){window.addEventListener(t,e._onPanmove)}),null!=t&&t.end.forEach(function(t){window.addEventListener(t,e._onPanend)})},e._detachWindowEvent=function(t){var e=this;null!=t&&t.move.forEach(function(t){window.removeEventListener(t,e._onPanmove)}),null!=t&&t.end.forEach(function(t){window.removeEventListener(t,e._onPanend)})},e._attachElementEvent=function(t){var n=this,e=C(this.options.inputType);if(!e)throw new Error("There is currently no inputType available for current device. There must be at least one available inputType.");this._observer=t,this._enabled=!0,null!=(this._activeInput=e)&&e.start.forEach(function(t){var e;null!==(e=n.element)&&void 0!==e&&e.addEventListener(t,n._onPanstart)})},e._detachElementEvent=function(){var n=this,t=this._activeInput;null!=t&&t.start.forEach(function(t){var e;null!==(e=n.element)&&void 0!==e&&e.removeEventListener(t,n._onPanstart)}),this._enabled=!1,this._observer=null},e._getOffset=function(t,e){var n=[0,0],i=this.options.scale;return e[0]&&(n[0]=t[0]*i[0]),e[1]&&(n[1]=t[1]*i[1]),n},t}(),G=function(i){function t(t,e){var n=i.call(this,t,e)||this;return n._prevQuadrant=null,n._lastDiff=0,n}s(t,i);var e=t.prototype;return e.mapAxes=function(t){this._direction=z.DIRECTION_ALL,this.axes=t},e._onPanstart=function(t){var e,n=this._activeInput,i=n.onEventStart(t,this.options.inputButton);i&&this.isEnabled()&&(e=this.element.getBoundingClientRect(),this._observer.hold(this,i),this._attachWindowEvent(n),this._coefficientForDistanceToAngle=360/(e.width*Math.PI),this._rotateOrigin=[e.left+(e.width-1)/2,e.top+(e.height-1)/2],this._prevAngle=null,this._triggerChange(i),n.prevEvent=i)},e._onPanmove=function(t){var e=this._activeInput,n=e.onEventMove(t,this.options.inputButton);n&&this.isEnabled()&&(!1!==n.srcEvent.cancelable&&n.srcEvent.preventDefault(),n.srcEvent.stopPropagation(),this._triggerChange(n),e.prevEvent=n)},e._onPanend=function(t){var e,n,i,r,s=this._activeInput;s.onEventEnd(t),this.isEnabled()&&(e=s.prevEvent,this._triggerChange(e),n=e.velocityX,i=e.velocityY,r=Math.sqrt(n*n+i*i)*(0<this._lastDiff?-1:1),this._observer.release(this,e,[r*this._coefficientForDistanceToAngle]),s.prevEvent=null,this._detachWindowEvent(s))},e._triggerChange=function(t){var e=this._getPosFromOrigin(t.center.x,t.center.y),n=e.x,i=e.y,r=I(n,i),s=r<0?360+r:r,a=this._getQuadrant(t.center.x,t.center.y),o=this._getDifference(this._prevAngle,s,this._prevQuadrant,a);this._prevAngle=s,this._prevQuadrant=a,0!==o&&(this._lastDiff=o,this._observer.change(this,t,A(this.axes,[-o])))},e._getDifference=function(t,e,n,i){var r=null===t?0:1===n&&4===i?-t-(360-e):4===n&&1===i?360-t+e:e-t;return r},e._getPosFromOrigin=function(t,e){return{x:t-this._rotateOrigin[0],y:this._rotateOrigin[1]-e}},e._getQuadrant=function(t,e){var n=this._getPosFromOrigin(t,e),i=n.x,r=n.y,s=0;return 0<=i&&0<=r?s=1:i<0&&0<=r?s=2:i<0&&r<0?s=3:0<=i&&r<0&&(s=4),s},t}(H),Z=function(){function t(t,e){this.axes=[],this.element=null,this._pinchFlag=!1,this._enabled=!1,this._activeInput=null,this.element=f(t),this.options=g({scale:1,threshold:0,inputType:["touch","pointer"]},e),this._onPinchStart=this._onPinchStart.bind(this),this._onPinchMove=this._onPinchMove.bind(this),this._onPinchEnd=this._onPinchEnd.bind(this)}var e=t.prototype;return e.mapAxes=function(t){this.axes=t},e.connect=function(t){return this._activeInput&&this._detachEvent(),this._attachEvent(t),this._originalCssProps=O(this.element),this},e.disconnect=function(){return this._detachEvent(),this._originalCssProps!==d&&O(this.element,this._originalCssProps),this},e.destroy=function(){this.disconnect(),this.element=null},e.enable=function(){return this._enabled=!0,this},e.disable=function(){return this._enabled=!1,this},e.isEnabled=function(){return this._enabled},e._onPinchStart=function(t){var e=this._activeInput,n=e.onEventStart(t);n&&this._enabled&&2===e.getTouches(t)&&(this._baseValue=this._observer.get(this)[this.axes[0]],this._observer.hold(this,t),this._pinchFlag=!0,e.prevEvent=n)},e._onPinchMove=function(t){var e,n=this._activeInput,i=n.onEventMove(t);i&&this._pinchFlag&&this._enabled&&2===n.getTouches(t)&&(e=this._getOffset(i.scale,n.prevEvent.scale),this._observer.change(this,t,A(this.axes,[e])),n.prevEvent=i)},e._onPinchEnd=function(t){var e=this._activeInput;e.onEventEnd(t),!this._pinchFlag||!this._enabled||2<=e.getTouches(t)||(this._observer.release(this,t,[0],0),this._baseValue=null,this._pinchFlag=!1,e.prevEvent=null)},e._attachEvent=function(t){var e=this,n=C(this.options.inputType);if(!n)throw new Error("There is currently no inputType available for current device. There must be at least one available inputType.");this._observer=t,this._enabled=!0,null!=(this._activeInput=n)&&n.start.forEach(function(t){e.element.addEventListener(t,e._onPinchStart,!1)}),null!=n&&n.move.forEach(function(t){e.element.addEventListener(t,e._onPinchMove,!1)}),null!=n&&n.end.forEach(function(t){e.element.addEventListener(t,e._onPinchEnd,!1)})},e._detachEvent=function(){var e=this,t=this._activeInput;null!=t&&t.start.forEach(function(t){e.element.removeEventListener(t,e._onPinchStart,!1)}),null!=t&&t.move.forEach(function(t){e.element.removeEventListener(t,e._onPinchMove,!1)}),null!=t&&t.end.forEach(function(t){e.element.removeEventListener(t,e._onPinchEnd,!1)}),this._enabled=!1,this._observer=null},e._getOffset=function(t,e){return void 0===e&&(e=1),this._baseValue*(t-e)*this.options.scale},t}(),J=function(){function t(t,e){this.axes=[],this.element=null,this._enabled=!1,this._holding=!1,this._timer=null,this.element=f(t),this.options=g({scale:1,releaseDelay:300,useNormalized:!0},e),this._onWheel=this._onWheel.bind(this)}var e=t.prototype;return e.mapAxes=function(t){this.axes=t},e.connect=function(t){return this._detachEvent(),this._attachEvent(t),this},e.disconnect=function(){return this._detachEvent(),this},e.destroy=function(){this.disconnect(),this.element=null},e.enable=function(){return this._enabled=!0,this},e.disable=function(){return this._enabled=!1,this},e.isEnabled=function(){return this._enabled},e._onWheel=function(t){var e,n=this;this._enabled&&(t.preventDefault(),0!==t.deltaY&&(this._holding||(this._observer.hold(this,t),this._holding=!0),e=(0<t.deltaY?-1:1)*this.options.scale*(this.options.useNormalized?1:Math.abs(t.deltaY)),this._observer.change(this,t,A(this.axes,[e]),!0),clearTimeout(this._timer),this._timer=setTimeout(function(){n._holding&&(n._holding=!1,n._observer.release(n,t,[0]))},this.options.releaseDelay)))},e._attachEvent=function(t){this._observer=t,this.element.addEventListener("wheel",this._onWheel),this._enabled=!0},e._detachEvent=function(){this.element.removeEventListener("wheel",this._onWheel),this._enabled=!1,this._observer=null,this._timer&&(clearTimeout(this._timer),this._timer=null)},t}(),$=function(){function t(t,e){this.axes=[],this.element=null,this._enabled=!1,this._holding=!1,this._timer=null,this.element=f(t),this.options=g({scale:[1,1]},e),this._onKeydown=this._onKeydown.bind(this),this._onKeyup=this._onKeyup.bind(this)}var e=t.prototype;return e.mapAxes=function(t){this.axes=t},e.connect=function(t){return this._detachEvent(),"0"!==this.element.getAttribute("tabindex")&&this.element.setAttribute("tabindex","0"),this._attachEvent(t),this},e.disconnect=function(){return this._detachEvent(),this},e.destroy=function(){this.disconnect(),this.element=null},e.enable=function(){return this._enabled=!0,this},e.disable=function(){return this._enabled=!1,this},e.isEnabled=function(){return this._enabled},e._onKeydown=function(t){if(this._enabled){var e,n=!0,i=1,r=-1;switch(t.keyCode){case 37:case 65:i=-1;break;case 39:case 68:break;case 40:case 83:i=-1,r=1;break;case 38:case 87:r=1;break;default:n=!1}(-1===r&&!this.axes[0]||1===r&&!this.axes[1])&&(n=!1),n&&(t.preventDefault(),e=-1===r?[this.options.scale[0]*i,0]:[0,this.options.scale[1]*i],this._holding||(this._observer.hold(this,t),this._holding=!0),clearTimeout(this._timer),this._observer.change(this,t,A(this.axes,e)))}},e._onKeyup=function(t){var e=this;this._holding&&(clearTimeout(this._timer),this._timer=setTimeout(function(){e._observer.release(e,t,[0,0]),e._holding=!1},80))},e._attachEvent=function(t){this._observer=t,this.element.addEventListener("keydown",this._onKeydown,!1),this.element.addEventListener("keypress",this._onKeydown,!1),this.element.addEventListener("keyup",this._onKeyup,!1),this._enabled=!0},e._detachEvent=function(){this.element.removeEventListener("keydown",this._onKeydown,!1),this.element.removeEventListener("keypress",this._onKeydown,!1),this.element.removeEventListener("keyup",this._onKeyup,!1),this._enabled=!1,this._observer=null},t}();return z.PanInput=H,z.RotatePanInput=G,z.PinchInput=Z,z.WheelInput=J,z.MoveKeyInput=$,z}); | ||
//# sourceMappingURL=axes.min.js.map |
@@ -7,5 +7,5 @@ /* | ||
repository: https://github.com/naver/egjs-axes | ||
version: 3.0.0 | ||
version: 3.0.1-snapshot | ||
*/ | ||
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t.eg=t.eg||{},t.eg.Axes=e())}(this,function(){"use strict";var i=function(t,e){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])})(t,e)};function s(t,e){function n(){this.constructor=t}i(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}var l=function(){return(l=Object.assign||function(t){for(var e,n=1,i=arguments.length;n<i;n++)for(var r in e=arguments[n])Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t}).apply(this,arguments)};function c(t){var e="function"==typeof Symbol&&Symbol.iterator,n=e&&t[e],i=0;if(n)return n.call(t);if(t&&"number"==typeof t.length)return{next:function(){return t&&i>=t.length&&(t=void 0),{value:t&&t[i++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function a(){for(var t=[],e=0;e<arguments.length;e++)t=t.concat(function(t,e){var n="function"==typeof Symbol&&t[Symbol.iterator];if(!n)return t;var i,r,s=n.call(t),a=[];try{for(;(void 0===e||0<e--)&&!(i=s.next()).done;)a.push(i.value)}catch(t){r={error:t}}finally{try{i&&!i.done&&(n=s.return)&&n.call(s)}finally{if(r)throw r.error}}return a}(arguments[e]));return t}function v(t){return void 0===t}function d(t,e,n,i){var r=t,s=[!n[0]&&i?e[0]-i[0]:e[0],!n[1]&&i?e[1]+i[1]:e[1]],r=Math.max(s[0],r);return Math.min(s[1],r)}function u(t,e){return t<e[0]||t>e[1]}function h(t,e,n){return n[1]&&t>e[1]||n[0]&&t<e[0]}function f(t,e,n){var i=t,r=e[0],s=e[1],a=s-r;return n[1]&&s<t&&(i=(i-s)%a+r),n[0]&&t<r&&(i=(i-r)%a+s),i}var r,o=function(){function t(t,e){var n,i;if(this._canceled=!1,e)try{for(var r=c(Object.keys(e)),s=r.next();!s.done;s=r.next()){var a=s.value;this[a]=e[a]}}catch(t){n={error:t}}finally{try{s&&!s.done&&(i=r.return)&&i.call(r)}finally{if(n)throw n.error}}this.eventType=t}var e=t.prototype;return e.stop=function(){this._canceled=!0},e.isCanceled=function(){return this._canceled},t}(),t=function(){function t(){this._eventHandler={}}var e=t.prototype;return e.trigger=function(e){for(var n=[],t=1;t<arguments.length;t++)n[t-1]=arguments[t];var i=e instanceof o?e.eventType:e,r=a(this._eventHandler[i]||[]);return r.length<=0||(e instanceof o?(e.currentTarget=this,r.forEach(function(t){t(e)})):r.forEach(function(t){t.apply(void 0,a(n))})),this},e.once=function(n,i){var r,s=this;if("object"==typeof n&&v(i)){var t=n;for(var e in t)this.once(e,t[e]);return this}return"string"==typeof n&&"function"==typeof i&&(r=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];i.apply(void 0,a(t)),s.off(n,r)},this.on(n,r)),this},e.hasOn=function(t){return!!this._eventHandler[t]},e.on=function(t,e){if("object"==typeof t&&v(e)){var n=t;for(var i in n)this.on(i,n[i]);return this}var r;return"string"==typeof t&&"function"==typeof e&&(r=this._eventHandler[t],v(r)&&(this._eventHandler[t]=[],r=this._eventHandler[t]),r.push(e)),this},e.off=function(t,e){var n,i;if(v(t))return this._eventHandler={},this;if(v(e)){if("string"==typeof t)return delete this._eventHandler[t],this;var r=t;for(var s in r)this.off(s,r[s]);return this}var a=this._eventHandler[t];if(a){var o=0;try{for(var u=c(a),h=u.next();!h.done;h=u.next()){if(h.value===e){a.splice(o,1),a.length<=0&&delete this._eventHandler[t];break}o++}}catch(t){n={error:t}}finally{try{h&&!h.done&&(i=u.return)&&i.call(u)}finally{if(n)throw n.error}}}return this},t.VERSION="3.0.2",t}(),_=o;function e(t,e){for(var n=t.length,i=0;i<n;++i)if(e(t[i],i))return!0;return!1}function p(t,e){for(var n=t.length,i=0;i<n;++i)if(e(t[i],i))return t[i];return null}function g(t,e){try{return new RegExp(t,"g").exec(e)}catch(t){return null}}function m(t){return t.replace(/_/g,".")}function E(t,r){var s=null,a="-1";return e(t,function(t){var e,n,i=g("("+t.test+")((?:\\/|\\s|:)([0-9|\\.|_]+))?",r);return i&&!t.brand&&(s=t,a=i[3]||"-1",t.versionAlias?a=t.versionAlias:t.versionTest&&(e=t.versionTest.toLowerCase(),n=g("("+e+")((?:\\/|\\s|:)([0-9|\\.|_]+))?",r),a=(n?n[3]:"")||a),a=m(a),1)}),{preset:s,version:a}}function n(t,n){return p(t,function(t){var e=t.brand;return g(""+n.test,e.toLowerCase())})}r="undefined"==typeof window?{navigator:{userAgent:""}}:window;var b=[{test:"phantomjs",id:"phantomjs"},{test:"whale",id:"whale"},{test:"edgios|edge|edg",id:"edge"},{test:"msie|trident|windows phone",id:"ie",versionTest:"iemobile|msie|rv"},{test:"miuibrowser",id:"miui browser"},{test:"samsungbrowser",id:"samsung internet"},{test:"samsung",id:"samsung internet",versionTest:"version"},{test:"chrome|crios",id:"chrome"},{test:"firefox|fxios",id:"firefox"},{test:"android",id:"android browser",versionTest:"version"},{test:"safari|iphone|ipad|ipod",id:"safari",versionTest:"version"}],x=[{test:"(?=.*applewebkit/(53[0-7]|5[0-2]|[0-4]))(?=.*\\schrome)",id:"chrome"},{test:"chromium",id:"chrome"},{test:"whale",id:"chrome",brand:!0}],y=[{test:"applewebkit",id:"webkit"}],M=[{test:"(?=(iphone|ipad))(?!(.*version))",id:"webview"},{test:"(?=(android|iphone|ipad))(?=.*(naver|daum|; wv))",id:"webview"},{test:"webview",id:"webview"}],P=[{test:"windows phone",id:"windows phone"},{test:"windows 2000",id:"window",versionAlias:"5.0"},{test:"windows nt",id:"window"},{test:"iphone|ipad|ipod",id:"ios",versionTest:"iphone os|cpu os"},{test:"mac os x",id:"mac"},{test:"android",id:"android"},{test:"tizen",id:"tizen"},{test:"webos|web0s",id:"webos"}];function w(t){var e=function(t){var e=t;if(void 0===e){if("undefined"==typeof navigator||!navigator)return"";e=navigator.userAgent||""}return e.toLowerCase()}(t),n=!!/mobi/g.exec(e),i={name:"unknown",version:"-1",majorVersion:-1,webview:!!E(M,e).preset,chromium:!!E(x,e).preset,webkit:!1},r={name:"unknown",version:"-1",majorVersion:-1},s=E(b,e),a=s.preset,o=s.version,u=E(P,e),h=u.preset,c=u.version;return i.webkit=!i.chromium&&!!E(y,e).preset,h&&(r.name=h.id,r.version=c,r.majorVersion=parseInt(c,10)),a&&(i.name=a.id,i.version=o,i.webview&&"ios"===r.name&&"safari"!==i.name&&(i.webview=!1)),i.majorVersion=parseInt(i.version,10),{browser:i,os:r,isMobile:n,isHints:!1}}function I(t){for(var e=[],n=0,i=t.length;n<i;n++)e.push(t[n]);return e}var T,O,D,A,S,C,k,R,L,j,F,Y,X="ontouchstart"in r&&"safari"===(void 0===T&&function(){if("undefined"!=typeof navigator&&navigator&&navigator.userAgentData){var t=navigator.userAgentData,e=t.brands||t.uaList;return e&&e.length}}()?(S=navigator.userAgentData,C=(S.uaList||S.brands).slice(),k=S.mobile||!1,R=C[0],L={name:R.brand,version:R.version,majorVersion:-1,webkit:!1,webview:e(M,function(t){return n(C,t)}),chromium:e(x,function(t){return n(C,t)})},j={name:"unknown",version:"-1",majorVersion:-1},L.webkit=!L.chromium&&e(y,function(t){return n(C,t)}),O&&(D=O.platform.toLowerCase(),A=p(P,function(t){return new RegExp(""+t.test,"g").exec(D)}),j.name=A?A.id:D,j.version=O.platformVersion),e(b,function(t){var e=n(C,t);return e&&(L.name=t.id,L.version=O?O.uaFullVersion:e.version,1)}),"Linux armv8l"===navigator.platform?j.name="android":L.webkit&&(j.name=k?"ios":"mac"),"ios"===j.name&&L.webview&&(L.version="-1"),j.version=m(j.version),L.version=m(L.version),j.majorVersion=parseInt(j.version,10),L.majorVersion=parseInt(L.version,10),{browser:L,os:j,isMobile:k,isHints:!0}):w(T)).browser.name,N=function(){if("undefined"==typeof document)return"";for(var t=(document.head||document.getElementsByTagName("head")[0]).style,e=["transform","webkitTransform","msTransform","mozTransform"],n=0,i=e.length;n<i;n++)if(e[n]in t)return e[n];return""}(),V={"touch-action":"none","user-select":"none","-webkit-user-drag":"none"},H=function(t,e){var n,i;return void 0===e&&(e=!1),"string"==typeof t?(i=t.match(/^<([a-z]+)\s*([^>]*)>/)?((n=document.createElement("div")).innerHTML=t,I(n.childNodes)):I(document.querySelectorAll(t)),e||(i=1<=i.length?i[0]:void 0)):t!==r&&(!t.nodeName||1!==t.nodeType&&9!==t.nodeType)?"jQuery"in r&&t instanceof jQuery||t.constructor.prototype.jquery?i=e?t.toArray():t.get(0):Array.isArray(t)&&(i=t.map(function(t){return H(t)}),e||(i=1<=i.length?i[0]:void 0)):i=t,i},K=r.requestAnimationFrame||r.webkitRequestAnimationFrame,U=r.cancelAnimationFrame||r.webkitCancelAnimationFrame;K&&!U?(F={},Y=K,K=function(e){var n=Y(function(t){F[n]&&e(t)});return F[n]=!0,n},U=function(t){delete F[t]}):K&&U||(K=function(t){return r.setTimeout(function(){t(r.performance&&r.performance.now&&r.performance.now()||(new Date).getTime())},16)},U=r.clearTimeout);function B(t,e){var n={};for(var i in t)i&&(n[i]=e(t[i],i));return n}function W(t,e){var n={};for(var i in t)i&&e(t[i],i)&&(n[i]=t[i]);return n}function q(t,e){for(var n in t)if(n&&!e(t[n],n))return!1;return!0}function Q(t,n){return q(t,function(t,e){return t===n[e]})}function z(t,e){return rt[e]||(rt[e]=st(e)),rt[e](t)}function G(t,n){return t&&n?B(t,function(t,e){return z(t,"number"==typeof n?n:n[e])}):t}function Z(t){if(!isFinite(t))return 0;var e=""+t;if(0<=e.indexOf("e")){for(var n=0,i=1;Math.round(t*i)/i!==t;)i*=10,n++;return n}return 0<=e.indexOf(".")?e.length-e.indexOf(".")-1:0}function J(t,e){return 180*Math.atan2(e,t)/Math.PI}function $(e,t){var n,i={};return e.style&&(n=t||V,Object.keys(n).forEach(function(t){i[t]=e.style[t],e.style[t]=n[t]})),i}function tt(t,e,n){return Math.max(Math.min(t,n),e)}function et(i,t){return t.reduce(function(t,e,n){return i[n]&&(t[i[n]]=e),t},{})}function nt(t){void 0===t&&(t=[]);var e=!1,n=!1,i=!1;return t.forEach(function(t){switch(t){case"mouse":n=!0;break;case"touch":e=ct;break;case"pointer":i=dt}}),i?new gt:e&&n?new mt:e?new pt:n?new _t:null}function it(t,e,n){return n?!!(30===e||e&t&&n&t):!!(e&t)}var rt={},st=function(e){var n=e<1?Math.pow(10,Z(e)):1;return function(t){return 0===e?0:Math.round(Math.round(t/e)*e*n)/n}},at=function(){function t(t){var e=t.options,n=t.interruptManager,i=t.eventManager,r=t.axisManager;this._options=e,this.interruptManager=n,this.eventManager=i,this.axisManager=r,this.animationEnd=this.animationEnd.bind(this)}var e=t.prototype;return e.getDuration=function(s,t,e){var n,i,a=this;return i=void 0!==e?e:(n=B(t,function(t,e){return n=Math.abs(t-s[e]),i=a._options.deceleration,(r=Math.sqrt(n/i*2))<100?0:r;var n,i,r}),Object.keys(n).reduce(function(t,e){return Math.max(t,n[e])},-1/0)),tt(i,this._options.minimumDuration,this._options.maximumDuration)},e.getDisplacement=function(t){var e=Math.pow(t.reduce(function(t,e){return t+e*e},0),1/t.length),n=Math.abs(e/-this._options.deceleration);return t.map(function(t){return t/2*n})},e.interpolate=function(t,e){var n=this.easing(1e-5)/1e-5;return this.easing(t/(e*n))*e},e.stopAnimation=function(t,e){var n,i,r;this._animateParam&&t.length&&(n=this.axisManager.get(t),i=this.axisManager.map(n,function(t,e){return f(t,e.range,e.circular)}),q(i,function(t,e){return n[e]===t})||this.eventManager.triggerChange(i,!1,n,e,!!e),this._animateParam=null,this._raf&&(r=this._raf,U(r)),this._raf=null,this.eventManager.triggerAnimationEnd(!(null==e||!e.event)))},e.getEventInfo=function(){return this._animateParam&&this._animateParam.input&&this._animateParam.inputEvent?{input:this._animateParam.input,event:this._animateParam.inputEvent}:null},e.restore=function(t){var e=this.axisManager.get(),n=this.axisManager.map(e,function(t,e){return Math.min(e.range[1],Math.max(e.range[0],t))});this.stopAnimation(Object.keys(this.axisManager.get())),this.animateTo(n,this.getDuration(e,n),t)},e.animationEnd=function(){var t=this.getEventInfo();this._animateParam=null;var e=this.axisManager.filter(this.axisManager.get(),function(t,e){return h(t,e.range,e.circular)});0<Object.keys(e).length&&this.setTo(this.axisManager.map(e,function(t,e){return f(t,e.range,e.circular)})),this.interruptManager.setInterrupt(!1),this.eventManager.triggerAnimationEnd(!!t),this.axisManager.isOutside()?this.restore(t):this.finish(!!t)},e.finish=function(t){this._animateParam=null,this.interruptManager.setInterrupt(!1),this.eventManager.triggerFinish(t)},e.getUserControl=function(t){var e=t.setTo();return e.destPos=this.axisManager.get(e.destPos),e.duration=tt(e.duration,this._options.minimumDuration,this._options.maximumDuration),e},e.animateTo=function(t,e,n){var i,r=this,s=this._createAnimationParam(t,e,n),a=l({},s.depaPos),o=this.eventManager.triggerAnimationStart(s),u=this.getUserControl(s);!o&&this.axisManager.every(u.destPos,function(t,e){return h(t,e.range,e.circular)})&&console.warn("You can't stop the 'animation' event when 'circular' is true."),o&&!Q(u.destPos,a)&&(i=(null==n?void 0:n.event)||null,this._animateLoop({depaPos:a,destPos:u.destPos,duration:u.duration,delta:this.axisManager.getDelta(a,u.destPos),isTrusted:!!i,inputEvent:i,input:(null==n?void 0:n.input)||null},function(){return r.animationEnd()}))},e.easing=function(t){return 1<t?1:this._options.easing(t)},e.setTo=function(t,e){void 0===e&&(e=0);var n=Object.keys(t);this.stopAnimation(n);var i=this.axisManager.get(n);if(Q(t,i))return this;this.interruptManager.setInterrupt(!0);var r=W(t,function(t,e){return i[e]!==t});return Object.keys(r).length?(r=this.axisManager.map(r,function(t,e){var n=e.range,i=e.circular;return i&&(i[0]||i[1])?t:d(t,n,i)}),Q(r,i)||(0<e?this.animateTo(r,e):(this.eventManager.triggerChange(r),this.finish(!1))),this):this},e.setBy=function(n,t){return void 0===t&&(t=0),this.setTo(B(this.axisManager.get(Object.keys(n)),function(t,e){return t+n[e]}),t)},e.updateAnimation=function(t){var e,n,i,r,s,a=this._animateParam;a&&(e=(new Date).getTime()-a.startTime,n=(null==t?void 0:t.destPos)||a.destPos,i=(null==t?void 0:t.duration)||a.duration,null!=t&&t.restart||i<=e?this.setTo(n,i-e):(null!=t&&t.destPos&&(r=this.axisManager.get(),this._initialEasingPer=this._prevEasingPer,a.delta=this.axisManager.getDelta(r,n),a.destPos=n),null!=t&&t.duration&&(s=(e+this._durationOffset)/a.duration,this._durationOffset=s*i-e,a.duration=i)))},e._createAnimationParam=function(t,e,n){var i=this.axisManager.get(),r=t,s=(null==n?void 0:n.event)||null;return{depaPos:i,destPos:r,duration:tt(e,this._options.minimumDuration,this._options.maximumDuration),delta:this.axisManager.getDelta(i,r),inputEvent:s,input:(null==n?void 0:n.input)||null,isTrusted:!!s,done:this.animationEnd}},e._animateLoop=function(n,i){var h,c,r,s,v=this;n.duration?(h=n.depaPos,this._initialEasingPer=0,this._prevEasingPer=0,this._durationOffset=0,this._animateParam=l(l({},n),{startTime:(new Date).getTime()}),c=B(h,function(t,e){return t<=n.destPos[e]?1:-1}),r=B(n.destPos,function(t){return t}),(s=function(){var a=v._animateParam,o=((new Date).getTime()-a.startTime+v._durationOffset)/a.duration,u=v.easing(o);v._raf=null;var t=v.axisManager.map(h,function(t,e,n){var i,r=1<=o?a.destPos[n]:t+a.delta[n]*(u-v._prevEasingPer)/(1-v._initialEasingPer),s=f(r,e.range,e.circular);return r!==s&&(i=c[n]*(e.range[1]-e.range[0]),a.destPos[n]-=i,h[n]-=i),s}),e=!v.eventManager.triggerChange(t,!1,h);if(h=t,1<=(v._prevEasingPer=u))return a.destPos=v._getFinalPos(a.destPos,r),Q(a.destPos,v.axisManager.get(Object.keys(a.destPos)))||v.eventManager.triggerChange(a.destPos,!0,h),void i();e?v.finish(!1):v._raf=K(s)})()):(this.eventManager.triggerChange(n.destPos,!0),i())},e._getFinalPos=function(t,i){var r=this;return B(t,function(t,e){if(t>=i[e]-1e-6&&t<=i[e]+1e-6)return i[e];var n=r._getRoundUnit(t,e);return z(t,n)})},e._getRoundUnit=function(t,e){var n,i,r=this._options.round,s=null;return r||(n=this.axisManager.getAxisOptions(e),i=Math.max(Z(n.range[0]),Z(n.range[1]),Z(t)),s=1/Math.pow(10,i)),s||r},t}(),ot=function(){function t(t){this._axes=t}var e=t.prototype;return e.hold=function(t,e){var n=this._getRoundPos(t).roundPos;this._axes.trigger(new _("hold",{pos:n,input:e.input||null,inputEvent:e.event||null,isTrusted:!0}))},e.triggerRelease=function(t){var e=this._getRoundPos(t.destPos,t.depaPos),n=e.roundPos,i=e.roundDepa;t.destPos=n,t.depaPos=i,t.setTo=this._createUserControll(t.destPos,t.duration),this._axes.trigger(new _("release",l(l({},t),{bounceRatio:this._getBounceRatio(n)})))},e.triggerChange=function(t,e,n,i,r){void 0===r&&(r=!1);var s=this.animationManager,a=s.axisManager,o=s.getEventInfo(),u=this._getRoundPos(t,n),h=u.roundPos,c=u.roundDepa,v=a.moveTo(h,c),l=(null==i?void 0:i.event)||(null==o?void 0:o.event)||null,d={pos:v.pos,delta:v.delta,bounceRatio:this._getBounceRatio(v.pos),holding:r,inputEvent:l,isTrusted:!!l,input:(null==i?void 0:i.input)||(null==o?void 0:o.input)||null,set:l?this._createUserControll(v.pos):function(){}},f=this._axes.trigger(new _("change",d));return l&&a.set(d.set().destPos),f},e.triggerAnimationStart=function(t){var e=this._getRoundPos(t.destPos,t.depaPos),n=e.roundPos,i=e.roundDepa;return t.destPos=n,t.depaPos=i,t.setTo=this._createUserControll(t.destPos,t.duration),this._axes.trigger(new _("animationStart",t))},e.triggerAnimationEnd=function(t){void 0===t&&(t=!1),this._axes.trigger(new _("animationEnd",{isTrusted:t}))},e.triggerFinish=function(t){void 0===t&&(t=!1),this._axes.trigger(new _("finish",{isTrusted:t}))},e.setAnimationManager=function(t){this.animationManager=t},e.destroy=function(){this._axes.off()},e._createUserControll=function(t,e){void 0===e&&(e=0);var n={destPos:l({},t),duration:e};return function(t,e){return t&&(n.destPos=l({},t)),void 0!==e&&(n.duration=e),n}},e._getRoundPos=function(t,e){var n=this._axes.options.round;return{roundPos:G(t,n),roundDepa:G(e,n)}},e._getBounceRatio=function(t){return this._axes.axisManager.map(t,function(t,e){return t<e.range[0]&&0!==e.bounce[0]?(e.range[0]-t)/e.bounce[0]:t>e.range[1]&&0!==e.bounce[1]?(t-e.range[1])/e.bounce[1]:0})},t}(),ut=function(){function t(t){this._options=t,this._prevented=!1}var e=t.prototype;return e.isInterrupting=function(){return this._options.interruptable||this._prevented},e.isInterrupted=function(){return!this._options.interruptable&&this._prevented},e.setInterrupt=function(t){this._options.interruptable||(this._prevented=t)},t}(),ht=function(){function t(t){var n=this;this._axis=t,this._complementOptions(),this._pos=Object.keys(this._axis).reduce(function(t,e){return t[e]=n._axis[e].range[0],t},{})}var e=t.prototype;return e.getDelta=function(t,e){var n=this.get(t);return B(this.get(e),function(t,e){return t-n[e]})},e.get=function(t){var n=this;return t&&Array.isArray(t)?t.reduce(function(t,e){return e&&e in n._pos&&(t[e]=n._pos[e]),t},{}):l(l({},this._pos),t||{})},e.moveTo=function(n,i){void 0===i&&(i=this._pos);var t=B(this._pos,function(t,e){return e in n&&e in i?n[e]-i[e]:0});return this.set(this.map(n,function(t,e){return e?f(t,e.range,e.circular):0})),{pos:l({},this._pos),delta:t}},e.set=function(t){for(var e in t)e&&e in this._pos&&(this._pos[e]=t[e])},e.every=function(t,n){var i=this._axis;return q(t,function(t,e){return n(t,i[e],e)})},e.filter=function(t,n){var i=this._axis;return W(t,function(t,e){return n(t,i[e],e)})},e.map=function(t,n){var i=this._axis;return B(t,function(t,e){return n(t,i[e],e)})},e.isOutside=function(t){return!this.every(t?this.get(t):this._pos,function(t,e){return!u(t,e.range)})},e.getAxisOptions=function(t){return this._axis[t]},e._complementOptions=function(){var r=this;Object.keys(this._axis).forEach(function(i){r._axis[i]=l({range:[0,100],bounce:[0,0],circular:[!1,!1]},r._axis[i]),["bounce","circular"].forEach(function(t){var e=r._axis,n=e[i][t];/string|number|boolean/.test(typeof n)&&(e[i][t]=[n,n])})})},t}(),ct="ontouchstart"in r,vt="PointerEvent"in r,lt="MSPointerEvent"in r,dt=vt||lt,ft=function(){function t(){}var e=t.prototype;return e.extendEvent=function(t){var e=this.prevEvent,n=this._getCenter(t),i=e?this._getMovement(t):{x:0,y:0},r=e?this._getScale(t):1,s=e?J(n.x-e.center.x,n.y-e.center.y):0,a=e?e.deltaX+i.x:i.x,o=e?e.deltaY+i.y:i.y,u=e?a-e.deltaX:0,h=e?o-e.deltaY:0,c=e?t.timeStamp-e.srcEvent.timeStamp:0;return{srcEvent:t,scale:r,angle:s,center:n,deltaX:a,deltaY:o,offsetX:u,offsetY:h,velocityX:e&&0!=c?u/c:0,velocityY:e&&0!=c?h/c:0,preventSystemEvent:!0}},e._getDistance=function(t,e){var n=e.clientX-t.clientX,i=e.clientY-t.clientY;return Math.sqrt(n*n+i*i)},t}(),_t=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.start=["mousedown"],t.move=["mousemove"],t.end=["mouseup"],t}s(t,e);var n=t.prototype;return n.onEventStart=function(t){return this.extendEvent(t)},n.onEventMove=function(t){return this.extendEvent(t)},n.onEventEnd=function(){},n.getTouches=function(){return 0},n._getScale=function(){return 1},n._getCenter=function(t){return{x:t.clientX,y:t.clientY}},n._getMovement=function(t){var e=this.prevEvent.srcEvent;return{x:t.pageX-e.pageX,y:t.pageY-e.pageY}},t}(ft),pt=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.start=["touchstart"],t.move=["touchmove"],t.end=["touchend","touchcancel"],t}s(t,e);var n=t.prototype;return n.onEventStart=function(t){return this._firstTouch=t,this.extendEvent(t)},n.onEventMove=function(t){return this.extendEvent(t)},n.onEventEnd=function(){},n.getTouches=function(t){return t.touches.length},n._getScale=function(t){return 2!==t.touches.length?null:this._getDistance(t.touches[0],t.touches[1])/this._getDistance(this._firstTouch.touches[0],this._firstTouch.touches[1])},n._getCenter=function(t){return{x:t.touches[0].clientX,y:t.touches[0].clientY}},n._getMovement=function(t){var e=this.prevEvent.srcEvent;return t.touches[0].identifier!==e.touches[0].identifier?{x:0,y:0}:{x:t.touches[0].pageX-e.touches[0].pageX,y:t.touches[0].pageY-e.touches[0].pageY}},t}(ft),gt=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.start=vt?["pointerdown"]:["MSPointerDown"],t.move=vt?["pointermove"]:["MSPointerMove"],t.end=vt?["pointerup","pointercancel"]:["MSPointerUp","MSPointerCancel"],t._firstInputs=[],t._recentInputs=[],t}s(t,e);var n=t.prototype;return n.onEventStart=function(t){return this._updatePointerEvent(t),this.extendEvent(t)},n.onEventMove=function(t){return this._updatePointerEvent(t),this.extendEvent(t)},n.onEventEnd=function(t){this._removePointerEvent(t)},n.getTouches=function(){return this._recentInputs.length},n._getScale=function(){return 2!==this._recentInputs.length?null:this._getDistance(this._recentInputs[0],this._recentInputs[1])/this._getDistance(this._firstInputs[0],this._firstInputs[1])},n._getCenter=function(t){return{x:t.clientX,y:t.clientY}},n._getMovement=function(t){var e=this.prevEvent.srcEvent;return t.pointerId!==e.pointerId?{x:0,y:0}:{x:t.pageX-e.pageX,y:t.pageY-e.pageY}},n._updatePointerEvent=function(n){var i=this,r=!1;this._recentInputs.forEach(function(t,e){t.pointerId===n.pointerId&&(r=!0,i._recentInputs[e]=n)}),r||(this._firstInputs.push(n),this._recentInputs.push(n))},n._removePointerEvent=function(e){this._firstInputs=this._firstInputs.filter(function(t){return t.pointerId!==e.pointerId}),this._recentInputs=this._recentInputs.filter(function(t){return t.pointerId!==e.pointerId})},t}(ft),mt=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.start=["mousedown","touchstart"],t.move=["mousemove","touchmove"],t.end=["mouseup","touchend","touchcancel"],t}s(t,e);var n=t.prototype;return n.onEventStart=function(t){return this._firstTouch=t.hasOwnProperty("touches")?t:null,this.extendEvent(t)},n.onEventMove=function(t){return this.extendEvent(t)},n.onEventEnd=function(){},n.getTouches=function(t){return this._isTouchEvent(t)?t.touches.length:0},n._getScale=function(t){return!this._firstTouch||this._isTouchEvent(t)&&2!==t.touches.length?1:this._isTouchEvent(t)?this._getDistance(t.touches[0],t.touches[1])/this._getDistance(this._firstTouch.touches[0],this._firstTouch.touches[1]):this.prevEvent.scale},n._getCenter=function(t){return this._isTouchEvent(t)?{x:t.touches[0].clientX,y:t.touches[0].clientY}:{x:t.clientX,y:t.clientY}},n._getMovement=function(e){var n=this,t=this.prevEvent.srcEvent,i=[e,t].map(function(t){return n._isTouchEvent(e)?{id:t.touches[0].identifier,x:t.touches[0].pageX,y:t.touches[0].pageY}:{id:null,x:t.pageX,y:t.pageY}}),r=i[0],s=i[1];return r.id===s.id?{x:r.x-s.x,y:r.y-s.y}:{x:0,y:0}},n._isTouchEvent=function(t){return t.hasOwnProperty("touches")},t}(ft),Et=function(){function t(t){var e=t.options,n=t.interruptManager,i=t.eventManager,r=t.axisManager,s=t.animationManager;this._isOutside=!1,this._moveDistance=null,this._isStopped=!1,this.options=e,this._interruptManager=n,this._eventManager=i,this._axisManager=r,this._animationManager=s}var e=t.prototype;return e.get=function(t){return this._axisManager.get(t.axes)},e.hold=function(t,e){var n;!this._interruptManager.isInterrupted()&&t.axes.length&&(n={input:t,event:e},this._isStopped=!1,this._interruptManager.setInterrupt(!0),this._animationManager.stopAnimation(t.axes,n),this._moveDistance||this._eventManager.hold(this._axisManager.get(),n),this._isOutside=this._axisManager.isOutside(t.axes),this._moveDistance=this._axisManager.get(t.axes))},e.change=function(t,e,n,i){var r,s,a,o;this._isStopped||!this._interruptManager.isInterrupting()||this._axisManager.every(n,function(t){return 0===t})||(r=this._moveDistance||this._axisManager.get(t.axes),s=B(r,function(t,e){return t+(n[e]||0)}),this._moveDistance&&(this._moveDistance=this._axisManager.map(s,function(t,e){var n=e.circular,i=e.range;return n&&(n[0]||n[1])?f(t,i,n):t})),this._isOutside&&this._axisManager.every(r,function(t,e){return!u(t,e.range)})&&(this._isOutside=!1),r=this._atOutside(r),s=this._atOutside(s),a={input:t,event:e},i?(o=this._animationManager.getDuration(s,r),this._animationManager.stopAnimation(t.axes,a),this._animationManager.animateTo(s,o,a)):this._eventManager.triggerChange(s,!1,r,a,!0)||(this._isStopped=!0,this._moveDistance=null,this._animationManager.finish(!1)))},e.release=function(t,e,n,i){var r,s,a,o,u,h,c,v,l;!this._isStopped&&this._interruptManager.isInterrupting()&&this._moveDistance&&(r=this._axisManager.get(t.axes),s=this._axisManager.get(),a=this._animationManager.getDisplacement(n),o=et(t.axes,a),h={depaPos:s,destPos:u=this._axisManager.get(this._axisManager.map(o,function(t,e,n){return e.circular&&(e.circular[0]||e.circular[1])?r[n]+t:d(r[n]+t,e.range,e.circular,e.bounce)})),duration:this._animationManager.getDuration(u,r,i),delta:this._axisManager.getDelta(s,u),inputEvent:e,input:t,isTrusted:!0},this._eventManager.triggerRelease(h),this._moveDistance=null,c=this._animationManager.getUserControl(h),l={input:t,event:e},(v=Q(c.destPos,s))||0===c.duration?(v||this._eventManager.triggerChange(c.destPos,!1,s,l,!0),this._interruptManager.setInterrupt(!1),this._axisManager.isOutside()?this._animationManager.restore(l):this._eventManager.triggerFinish(!0)):this._animationManager.animateTo(c.destPos,c.duration,l))},e._atOutside=function(t){var a=this;return this._isOutside?this._axisManager.map(t,function(t,e){var n=e.range[0]-e.bounce[0],i=e.range[1]+e.bounce[1];return i<t?i:t<n?n:t}):this._axisManager.map(t,function(t,e){var n=e.range[0],i=e.range[1],r=e.bounce,s=e.circular;return s&&(s[0]||s[1])?t:t<n?n-a._animationManager.interpolate(n-t,r[0]):i<t?i+a._animationManager.interpolate(t-i,r[1]):t})},t}(),bt=function(r){function t(t,e,n){void 0===t&&(t={}),void 0===e&&(e={}),void 0===n&&(n=null);var i=r.call(this)||this;return i.axis=t,i._inputs=[],i.options=l({easing:function(t){return 1-Math.pow(1-t,3)},interruptable:!0,maximumDuration:1/0,minimumDuration:0,deceleration:6e-4,round:null},e),i.interruptManager=new ut(i.options),i.axisManager=new ht(i.axis),i.eventManager=new ot(i),i.animationManager=new at(i),i.inputObserver=new Et(i),i.eventManager.setAnimationManager(i.animationManager),n&&i.eventManager.triggerChange(n),i}s(t,r);var e=t.prototype;return e.connect=function(t,e){var n="string"==typeof t?t.split(" "):t.concat();return~this._inputs.indexOf(e)&&this.disconnect(e),e.mapAxes(n),e.connect(this.inputObserver),this._inputs.push(e),this},e.disconnect=function(t){var e;return t?0<=(e=this._inputs.indexOf(t))&&(this._inputs[e].disconnect(),this._inputs.splice(e,1)):(this._inputs.forEach(function(t){return t.disconnect()}),this._inputs=[]),this},e.get=function(t){return this.axisManager.get(t)},e.setTo=function(t,e){return void 0===e&&(e=0),this.animationManager.setTo(t,e),this},e.setBy=function(t,e){return void 0===e&&(e=0),this.animationManager.setBy(t,e),this},e.stopAnimation=function(){return this.animationManager.stopAnimation(Object.keys(this.axisManager.get())),this},e.updateAnimation=function(t){return this.animationManager.updateAnimation(t),this},e.isBounceArea=function(t){return this.axisManager.isOutside(t)},e.destroy=function(){this.disconnect(),this.eventManager.destroy()},t.VERSION="3.0.0",t.TRANSFORM=N,t.DIRECTION_NONE=1,t.DIRECTION_LEFT=2,t.DIRECTION_RIGHT=4,t.DIRECTION_UP=8,t.DIRECTION_DOWN=16,t.DIRECTION_HORIZONTAL=6,t.DIRECTION_VERTICAL=24,t.DIRECTION_ALL=30,t}(t),xt=function(){function t(t,e){this.axes=[],this.element=null,this._panFlag=!1,this._enabled=!1,this._activeInput=null,this._atRightEdge=!1,this._rightEdgeTimer=0,this.element=H(t),this.options=l({inputType:["touch","mouse","pointer"],scale:[1,1],thresholdAngle:45,threshold:0,iOSEdgeSwipeThreshold:30,releaseOnScroll:!1},e),this._onPanstart=this._onPanstart.bind(this),this._onPanmove=this._onPanmove.bind(this),this._onPanend=this._onPanend.bind(this)}var e=t.prototype;return e.mapAxes=function(t){var e=!!t[0],n=!!t[1];this._direction=e&&n?30:e?6:n?24:1,this.axes=t},e.connect=function(t){return this._activeInput&&this._detachEvent(),this._attachEvent(t),this._originalCssProps=$(this.element),this},e.disconnect=function(){return this._detachEvent(),this._originalCssProps!==V&&$(this.element,this._originalCssProps),this._direction=1,this},e.destroy=function(){this.disconnect(),this.element=null},e.enable=function(){return this._enabled=!0,this},e.disable=function(){return this._enabled=!1,this},e.isEnabled=function(){return this._enabled},e._onPanstart=function(t){var e,n;this._activeInput.onEventStart(t),!this._enabled||1<this._activeInput.getTouches(t)||(e=this._activeInput.extendEvent(t),(this._panFlag=!1)!==e.srcEvent.cancelable&&(n=this.options.iOSEdgeSwipeThreshold,this._observer.hold(this,e),this._atRightEdge=X&&e.center.x>window.innerWidth-n,this._panFlag=!0,this._activeInput.prevEvent=e))},e._onPanmove=function(t){var e=this;if(this._activeInput.onEventMove(t),this._panFlag&&this._enabled&&!(1<this._activeInput.getTouches(t))){var n=this._activeInput.extendEvent(t),i=this.options,r=i.iOSEdgeSwipeThreshold,s=i.releaseOnScroll,a=function(t,e){if(e<0||90<e)return 1;var n=Math.abs(t);return e<n&&n<180-e?24:6}(n.angle,this.options.thresholdAngle);if(!s||n.srcEvent.cancelable){if(this._activeInput.prevEvent&&X){if(n.center.x<0)return void this._observer.release(this,this._activeInput.prevEvent,[0,0]);this._atRightEdge&&(clearTimeout(this._rightEdgeTimer),n.deltaX<-r?this._atRightEdge=!1:this._rightEdgeTimer=window.setTimeout(function(){e._observer.release(e,e._activeInput.prevEvent,[0,0])},100))}var o=this._getOffset([n.offsetX,n.offsetY],[it(6,this._direction,a),it(24,this._direction,a)]),u=o.some(function(t){return 0!==t});u&&(!1!==n.srcEvent.cancelable&&n.srcEvent.preventDefault(),n.srcEvent.stopPropagation()),(n.preventSystemEvent=u)&&this._observer.change(this,n,et(this.axes,o)),this._activeInput.prevEvent=n}else this._onPanend(t)}},e._onPanend=function(t){var e,n;this._activeInput.onEventEnd(t),this._panFlag&&this._enabled&&0===this._activeInput.getTouches(t)&&(this._panFlag=!1,clearTimeout(this._rightEdgeTimer),e=this._activeInput.prevEvent,n=this._getOffset([Math.abs(e.velocityX)*(e.offsetX<0?-1:1),Math.abs(e.velocityY)*(e.offsetY<0?-1:1)],[it(6,this._direction),it(24,this._direction)]),this._observer.release(this,e,n))},e._attachEvent=function(t){var e=this,n=nt(this.options.inputType);this._observer=t,this._enabled=!0,null!=(this._activeInput=n)&&n.start.forEach(function(t){e.element.addEventListener(t,e._onPanstart,!1)}),null!=n&&n.move.forEach(function(t){window.addEventListener(t,e._onPanmove,!1)}),null!=n&&n.end.forEach(function(t){window.addEventListener(t,e._onPanend,!1)})},e._detachEvent=function(){var e=this,t=this._activeInput;null!=t&&t.start.forEach(function(t){e.element.removeEventListener(t,e._onPanstart,!1)}),null!=t&&t.move.forEach(function(t){window.removeEventListener(t,e._onPanmove,!1)}),null!=t&&t.end.forEach(function(t){window.removeEventListener(t,e._onPanend,!1)}),this._enabled=!1,this._observer=null},e._getOffset=function(t,e){var n=[0,0],i=this.options.scale;return e[0]&&(n[0]=t[0]*i[0]),e[1]&&(n[1]=t[1]*i[1]),n},t}(),yt=function(i){function t(t,e){var n=i.call(this,t,e)||this;return n._prevQuadrant=null,n._lastDiff=0,n}s(t,i);var e=t.prototype;return e.mapAxes=function(t){this._direction=bt.DIRECTION_ALL,this.axes=t},e._onPanstart=function(t){var e,n;this._activeInput.onEventStart(t),this.isEnabled&&(e=this.element.getBoundingClientRect(),n=this._activeInput.extendEvent(t),this._observer.hold(this,n),this._panFlag=!0,this._coefficientForDistanceToAngle=360/(e.width*Math.PI),this._rotateOrigin=[e.left+(e.width-1)/2,e.top+(e.height-1)/2],this._prevAngle=null,this._triggerChange(n),this._activeInput.prevEvent=n)},e._onPanmove=function(t){var e;this._activeInput.onEventMove(t),this._panFlag&&this.isEnabled&&(!1!==(e=this._activeInput.extendEvent(t)).srcEvent.cancelable&&e.srcEvent.preventDefault(),e.srcEvent.stopPropagation(),this._triggerChange(e),this._activeInput.prevEvent=e)},e._onPanend=function(t){var e,n,i,r;this._activeInput.onEventEnd(t),this._panFlag&&this.isEnabled&&(e=this._activeInput.prevEvent,this._triggerChange(e),n=e.velocityX,i=e.velocityY,r=Math.sqrt(n*n+i*i)*(0<this._lastDiff?-1:1),this._observer.release(this,e,[r*this._coefficientForDistanceToAngle]),this._panFlag=!1)},e._triggerChange=function(t){var e=this._getPosFromOrigin(t.center.x,t.center.y),n=e.x,i=e.y,r=J(n,i),s=r<0?360+r:r,a=this._getQuadrant(t.center.x,t.center.y),o=this._getDifference(this._prevAngle,s,this._prevQuadrant,a);this._prevAngle=s,this._prevQuadrant=a,0!==o&&(this._lastDiff=o,this._observer.change(this,t,et(this.axes,[-o])))},e._getDifference=function(t,e,n,i){var r=null===t?0:1===n&&4===i?-t-(360-e):4===n&&1===i?360-t+e:e-t;return r},e._getPosFromOrigin=function(t,e){return{x:t-this._rotateOrigin[0],y:this._rotateOrigin[1]-e}},e._getQuadrant=function(t,e){var n=this._getPosFromOrigin(t,e),i=n.x,r=n.y,s=0;return 0<=i&&0<=r?s=1:i<0&&0<=r?s=2:i<0&&r<0?s=3:0<=i&&r<0&&(s=4),s},t}(xt),Mt=function(){function t(t,e){this.axes=[],this.element=null,this._pinchFlag=!1,this._enabled=!1,this._activeInput=null,this.element=H(t),this.options=l({scale:1,threshold:0,inputType:["touch","pointer"]},e),this._onPinchStart=this._onPinchStart.bind(this),this._onPinchMove=this._onPinchMove.bind(this),this._onPinchEnd=this._onPinchEnd.bind(this)}var e=t.prototype;return e.mapAxes=function(t){this.axes=t},e.connect=function(t){return this._activeInput&&this._detachEvent(),this._attachEvent(t),this._originalCssProps=$(this.element),this},e.disconnect=function(){return this._detachEvent(),this._originalCssProps!==V&&$(this.element,this._originalCssProps),this},e.destroy=function(){this.disconnect(),this.element=null},e.enable=function(){return this._enabled=!0,this},e.disable=function(){return this._enabled=!1,this},e.isEnabled=function(){return this._enabled},e._onPinchStart=function(t){var e;this._activeInput.onEventStart(t),this._enabled&&2===this._activeInput.getTouches(t)&&(this._baseValue=this._observer.get(this)[this.axes[0]],this._observer.hold(this,t),this._pinchFlag=!0,e=this._activeInput.extendEvent(t),this._activeInput.prevEvent=e)},e._onPinchMove=function(t){var e,n;this._activeInput.onEventMove(t),this._pinchFlag&&this._enabled&&2===this._activeInput.getTouches(t)&&(e=this._activeInput.extendEvent(t),n=this._getOffset(e.scale,this._activeInput.prevEvent.scale),this._observer.change(this,t,et(this.axes,[n])),this._activeInput.prevEvent=e)},e._onPinchEnd=function(t){this._activeInput.onEventEnd(t),!this._pinchFlag||!this._enabled||2<this._activeInput.getTouches(t)||(this._observer.release(this,t,[0],0),this._baseValue=null,this._pinchFlag=!1,this._activeInput.prevEvent=null)},e._attachEvent=function(t){var e=this,n=nt(this.options.inputType);this._observer=t,this._enabled=!0,null!=(this._activeInput=n)&&n.start.forEach(function(t){e.element.addEventListener(t,e._onPinchStart,!1)}),null!=n&&n.move.forEach(function(t){e.element.addEventListener(t,e._onPinchMove,!1)}),null!=n&&n.end.forEach(function(t){e.element.addEventListener(t,e._onPinchEnd,!1)})},e._detachEvent=function(){var e=this,t=this._activeInput;null!=t&&t.start.forEach(function(t){e.element.removeEventListener(t,e._onPinchStart,!1)}),null!=t&&t.move.forEach(function(t){e.element.removeEventListener(t,e._onPinchMove,!1)}),null!=t&&t.end.forEach(function(t){e.element.removeEventListener(t,e._onPinchEnd,!1)}),this._enabled=!1,this._observer=null},e._getOffset=function(t,e){return void 0===e&&(e=1),this._baseValue*(t-e)*this.options.scale},t}(),Pt=function(){function t(t,e){this.axes=[],this.element=null,this._enabled=!1,this._holding=!1,this._timer=null,this.element=H(t),this.options=l({scale:1,releaseDelay:300,useNormalized:!0},e),this._onWheel=this._onWheel.bind(this)}var e=t.prototype;return e.mapAxes=function(t){this.axes=t},e.connect=function(t){return this._detachEvent(),this._attachEvent(t),this},e.disconnect=function(){return this._detachEvent(),this},e.destroy=function(){this.disconnect(),this.element=null},e.enable=function(){return this._enabled=!0,this},e.disable=function(){return this._enabled=!1,this},e.isEnabled=function(){return this._enabled},e._onWheel=function(t){var e,n=this;this._enabled&&(t.preventDefault(),0!==t.deltaY&&(this._holding||(this._observer.hold(this,t),this._holding=!0),e=(0<t.deltaY?-1:1)*this.options.scale*(this.options.useNormalized?1:Math.abs(t.deltaY)),this._observer.change(this,t,et(this.axes,[e]),!0),clearTimeout(this._timer),this._timer=setTimeout(function(){n._holding&&(n._holding=!1,n._observer.release(n,t,[0]))},this.options.releaseDelay)))},e._attachEvent=function(t){this._observer=t,this.element.addEventListener("wheel",this._onWheel),this._enabled=!0},e._detachEvent=function(){this.element.removeEventListener("wheel",this._onWheel),this._enabled=!1,this._observer=null,this._timer&&(clearTimeout(this._timer),this._timer=null)},t}(),wt=function(){function t(t,e){this.axes=[],this.element=null,this._enabled=!1,this._holding=!1,this._timer=null,this.element=H(t),this.options=l({scale:[1,1]},e),this._onKeydown=this._onKeydown.bind(this),this._onKeyup=this._onKeyup.bind(this)}var e=t.prototype;return e.mapAxes=function(t){this.axes=t},e.connect=function(t){return this._detachEvent(),"0"!==this.element.getAttribute("tabindex")&&this.element.setAttribute("tabindex","0"),this._attachEvent(t),this},e.disconnect=function(){return this._detachEvent(),this},e.destroy=function(){this.disconnect(),this.element=null},e.enable=function(){return this._enabled=!0,this},e.disable=function(){return this._enabled=!1,this},e.isEnabled=function(){return this._enabled},e._onKeydown=function(t){if(this._enabled){var e,n=!0,i=1,r=-1;switch(t.keyCode){case 37:case 65:i=-1;break;case 39:case 68:break;case 40:case 83:i=-1,r=1;break;case 38:case 87:r=1;break;default:n=!1}(-1===r&&!this.axes[0]||1===r&&!this.axes[1])&&(n=!1),n&&(t.preventDefault(),e=-1===r?[this.options.scale[0]*i,0]:[0,this.options.scale[1]*i],this._holding||(this._observer.hold(this,t),this._holding=!0),clearTimeout(this._timer),this._observer.change(this,t,et(this.axes,e)))}},e._onKeyup=function(t){var e=this;this._holding&&(clearTimeout(this._timer),this._timer=setTimeout(function(){e._observer.release(e,t,[0,0]),e._holding=!1},80))},e._attachEvent=function(t){this._observer=t,this.element.addEventListener("keydown",this._onKeydown,!1),this.element.addEventListener("keypress",this._onKeydown,!1),this.element.addEventListener("keyup",this._onKeyup,!1),this._enabled=!0},e._detachEvent=function(){this.element.removeEventListener("keydown",this._onKeydown,!1),this.element.removeEventListener("keypress",this._onKeydown,!1),this.element.removeEventListener("keyup",this._onKeyup,!1),this._enabled=!1,this._observer=null},t}();return bt.PanInput=xt,bt.RotatePanInput=yt,bt.PinchInput=Mt,bt.WheelInput=Pt,bt.MoveKeyInput=wt,bt}); | ||
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t.eg=t.eg||{},t.eg.Axes=e())}(this,function(){"use strict";var i=function(t,e){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])})(t,e)};function s(t,e){function n(){this.constructor=t}i(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}var _=function(){return(_=Object.assign||function(t){for(var e,n=1,i=arguments.length;n<i;n++)for(var r in e=arguments[n])Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t}).apply(this,arguments)};function c(t){var e="function"==typeof Symbol&&Symbol.iterator,n=e&&t[e],i=0;if(n)return n.call(t);if(t&&"number"==typeof t.length)return{next:function(){return t&&i>=t.length&&(t=void 0),{value:t&&t[i++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function o(){for(var t=[],e=0;e<arguments.length;e++)t=t.concat(function(t,e){var n="function"==typeof Symbol&&t[Symbol.iterator];if(!n)return t;var i,r,s=n.call(t),o=[];try{for(;(void 0===e||0<e--)&&!(i=s.next()).done;)o.push(i.value)}catch(t){r={error:t}}finally{try{i&&!i.done&&(n=s.return)&&n.call(s)}finally{if(r)throw r.error}}return o}(arguments[e]));return t}function l(t){return void 0===t}function p(t,e,n,i){var r=t,s=[!n[0]&&i?e[0]-i[0]:e[0],!n[1]&&i?e[1]+i[1]:e[1]],r=Math.max(s[0],r);return Math.min(s[1],r)}function h(t,e){return t<e[0]||t>e[1]}function v(t,e,n){return n[1]&&t>e[1]||n[0]&&t<e[0]}function d(t,e,n){var i=t,r=e[0],s=e[1],o=s-r;return n[1]&&s<t&&(i=(i-s)%o+r),n[0]&&t<r&&(i=(i-r)%o+s),i}var r,a=function(){function t(t,e){var n,i;if(this._canceled=!1,e)try{for(var r=c(Object.keys(e)),s=r.next();!s.done;s=r.next()){var o=s.value;this[o]=e[o]}}catch(t){n={error:t}}finally{try{s&&!s.done&&(i=r.return)&&i.call(r)}finally{if(n)throw n.error}}this.eventType=t}var e=t.prototype;return e.stop=function(){this._canceled=!0},e.isCanceled=function(){return this._canceled},t}(),t=function(){function t(){this._eventHandler={}}var e=t.prototype;return e.trigger=function(e){for(var n=[],t=1;t<arguments.length;t++)n[t-1]=arguments[t];var i=e instanceof a?e.eventType:e,r=o(this._eventHandler[i]||[]);return r.length<=0||(e instanceof a?(e.currentTarget=this,r.forEach(function(t){t(e)})):r.forEach(function(t){t.apply(void 0,o(n))})),this},e.once=function(n,i){var r,s=this;if("object"==typeof n&&l(i)){var t=n;for(var e in t)this.once(e,t[e]);return this}return"string"==typeof n&&"function"==typeof i&&(r=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];i.apply(void 0,o(t)),s.off(n,r)},this.on(n,r)),this},e.hasOn=function(t){return!!this._eventHandler[t]},e.on=function(t,e){if("object"==typeof t&&l(e)){var n=t;for(var i in n)this.on(i,n[i]);return this}var r;return"string"==typeof t&&"function"==typeof e&&(r=this._eventHandler[t],l(r)&&(this._eventHandler[t]=[],r=this._eventHandler[t]),r.push(e)),this},e.off=function(t,e){var n,i;if(l(t))return this._eventHandler={},this;if(l(e)){if("string"==typeof t)return delete this._eventHandler[t],this;var r=t;for(var s in r)this.off(s,r[s]);return this}var o=this._eventHandler[t];if(o){var a=0;try{for(var u=c(o),h=u.next();!h.done;h=u.next()){if(h.value===e){o.splice(a,1),o.length<=0&&delete this._eventHandler[t];break}a++}}catch(t){n={error:t}}finally{try{h&&!h.done&&(i=u.return)&&i.call(u)}finally{if(n)throw n.error}}}return this},t.VERSION="3.0.2",t}(),f=a;function e(t,e){for(var n=t.length,i=0;i<n;++i)if(e(t[i],i))return!0;return!1}function u(t,e){for(var n=t.length,i=0;i<n;++i)if(e(t[i],i))return t[i];return null}function g(t,e){try{return new RegExp(t,"g").exec(e)}catch(t){return null}}function m(t){return t.replace(/_/g,".")}function E(t,r){var s=null,o="-1";return e(t,function(t){var e,n,i=g("("+t.test+")((?:\\/|\\s|:)([0-9|\\.|_]+))?",r);return i&&!t.brand&&(s=t,o=i[3]||"-1",t.versionAlias?o=t.versionAlias:t.versionTest&&(e=t.versionTest.toLowerCase(),n=g("("+e+")((?:\\/|\\s|:)([0-9|\\.|_]+))?",r),o=(n?n[3]:"")||o),o=m(o),1)}),{preset:s,version:o}}function n(t,n){return u(t,function(t){var e=t.brand;return g(""+n.test,e.toLowerCase())})}r="undefined"==typeof window?{navigator:{userAgent:""}}:window;var b=[{test:"phantomjs",id:"phantomjs"},{test:"whale",id:"whale"},{test:"edgios|edge|edg",id:"edge"},{test:"msie|trident|windows phone",id:"ie",versionTest:"iemobile|msie|rv"},{test:"miuibrowser",id:"miui browser"},{test:"samsungbrowser",id:"samsung internet"},{test:"samsung",id:"samsung internet",versionTest:"version"},{test:"chrome|crios",id:"chrome"},{test:"firefox|fxios",id:"firefox"},{test:"android",id:"android browser",versionTest:"version"},{test:"safari|iphone|ipad|ipod",id:"safari",versionTest:"version"}],y=[{test:"(?=.*applewebkit/(53[0-7]|5[0-2]|[0-4]))(?=.*\\schrome)",id:"chrome"},{test:"chromium",id:"chrome"},{test:"whale",id:"chrome",brand:!0}],x=[{test:"applewebkit",id:"webkit"}],M=[{test:"(?=(iphone|ipad))(?!(.*version))",id:"webview"},{test:"(?=(android|iphone|ipad))(?=.*(naver|daum|; wv))",id:"webview"},{test:"webview",id:"webview"}],w=[{test:"windows phone",id:"windows phone"},{test:"windows 2000",id:"window",versionAlias:"5.0"},{test:"windows nt",id:"window"},{test:"iphone|ipad|ipod",id:"ios",versionTest:"iphone os|cpu os"},{test:"mac os x",id:"mac"},{test:"android",id:"android"},{test:"tizen",id:"tizen"},{test:"webos|web0s",id:"webos"}];function P(t){var e=function(t){var e=t;if(void 0===e){if("undefined"==typeof navigator||!navigator)return"";e=navigator.userAgent||""}return e.toLowerCase()}(t),n=!!/mobi/g.exec(e),i={name:"unknown",version:"-1",majorVersion:-1,webview:!!E(M,e).preset,chromium:!!E(y,e).preset,webkit:!1},r={name:"unknown",version:"-1",majorVersion:-1},s=E(b,e),o=s.preset,a=s.version,u=E(w,e),h=u.preset,c=u.version;return i.webkit=!i.chromium&&!!E(x,e).preset,h&&(r.name=h.id,r.version=c,r.majorVersion=parseInt(c,10)),o&&(i.name=o.id,i.version=a,i.webview&&"ios"===r.name&&"safari"!==i.name&&(i.webview=!1)),i.majorVersion=parseInt(i.version,10),{browser:i,os:r,isMobile:n,isHints:!1}}function T(t){for(var e=[],n=0,i=t.length;n<i;n++)e.push(t[n]);return e}var I,O,A,D,C,S,R,k,L,B,j,Y,X="ontouchstart"in r&&"safari"===(void 0===I&&function(){if("undefined"!=typeof navigator&&navigator&&navigator.userAgentData){var t=navigator.userAgentData,e=t.brands||t.uaList;return e&&e.length}}()?(C=navigator.userAgentData,S=(C.uaList||C.brands).slice(),R=C.mobile||!1,k=S[0],L={name:k.brand,version:k.version,majorVersion:-1,webkit:!1,webview:e(M,function(t){return n(S,t)}),chromium:e(y,function(t){return n(S,t)})},B={name:"unknown",version:"-1",majorVersion:-1},L.webkit=!L.chromium&&e(x,function(t){return n(S,t)}),O&&(A=O.platform.toLowerCase(),D=u(w,function(t){return new RegExp(""+t.test,"g").exec(A)}),B.name=D?D.id:A,B.version=O.platformVersion),e(b,function(t){var e=n(S,t);return e&&(L.name=t.id,L.version=O?O.uaFullVersion:e.version,1)}),"Linux armv8l"===navigator.platform?B.name="android":L.webkit&&(B.name=R?"ios":"mac"),"ios"===B.name&&L.webview&&(L.version="-1"),B.version=m(B.version),L.version=m(L.version),B.majorVersion=parseInt(B.version,10),L.majorVersion=parseInt(L.version,10),{browser:L,os:B,isMobile:R,isHints:!0}):P(I)).browser.name,F=function(){if("undefined"==typeof document)return"";for(var t=(document.head||document.getElementsByTagName("head")[0]).style,e=["transform","webkitTransform","msTransform","mozTransform"],n=0,i=e.length;n<i;n++)if(e[n]in t)return e[n];return""}(),V={"touch-action":"none","user-select":"none","-webkit-user-drag":"none"},N=function(t,e){var n,i;return void 0===e&&(e=!1),"string"==typeof t?(i=t.match(/^<([a-z]+)\s*([^>]*)>/)?((n=document.createElement("div")).innerHTML=t,T(n.childNodes)):T(document.querySelectorAll(t)),e||(i=1<=i.length?i[0]:void 0)):t!==r&&(!t.nodeName||1!==t.nodeType&&9!==t.nodeType)?"jQuery"in r&&t instanceof jQuery||t.constructor.prototype.jquery?i=e?t.toArray():t.get(0):Array.isArray(t)&&(i=t.map(function(t){return N(t)}),e||(i=1<=i.length?i[0]:void 0)):i=t,i},W=r.requestAnimationFrame||r.webkitRequestAnimationFrame,H=r.cancelAnimationFrame||r.webkitCancelAnimationFrame;W&&!H?(j={},Y=W,W=function(e){var n=Y(function(t){j[n]&&e(t)});return j[n]=!0,n},H=function(t){delete j[t]}):W&&H||(W=function(t){return r.setTimeout(function(){t(r.performance&&r.performance.now&&r.performance.now()||(new Date).getTime())},16)},H=r.clearTimeout);function K(t,e){var n={};for(var i in t)i&&(n[i]=e(t[i],i));return n}function U(t,e){var n={};for(var i in t)i&&e(t[i],i)&&(n[i]=t[i]);return n}function q(t,e){for(var n in t)if(n&&!e(t[n],n))return!1;return!0}function Q(t,n){return q(t,function(t,e){return t===n[e]})}function z(t,e){return rt[e]||(rt[e]=st(e)),rt[e](t)}function G(t,n){return t&&n?K(t,function(t,e){return z(t,"number"==typeof n?n:n[e])}):t}function Z(t){if(!isFinite(t))return 0;var e=""+t;if(0<=e.indexOf("e")){for(var n=0,i=1;Math.round(t*i)/i!==t;)i*=10,n++;return n}return 0<=e.indexOf(".")?e.length-e.indexOf(".")-1:0}function J(t,e){return 180*Math.atan2(e,t)/Math.PI}function $(e,t){var n,i={};return e&&e.style&&(n=t||V,Object.keys(n).forEach(function(t){i[t]=e.style[t],e.style[t]=n[t]})),i}function tt(t,e,n){return Math.max(Math.min(t,n),e)}function et(i,t){return t.reduce(function(t,e,n){return i[n]&&(t[i[n]]=e),t},{})}function nt(t){void 0===t&&(t=[]);var e=!1,n=!1,i=!1;return t.forEach(function(t){switch(t){case"mouse":n=!0;break;case"touch":e=ct;break;case"pointer":i=dt}}),i?new gt:e&&n?new mt:e?new pt:n?new _t:null}function it(t,e,n){return n?!!(30===e||e&t&&n&t):!!(e&t)}var rt={},st=function(e){var n=e<1?Math.pow(10,Z(e)):1;return function(t){return 0===e?0:Math.round(Math.round(t/e)*e*n)/n}},ot=function(){function t(t){var e=t.options,n=t.interruptManager,i=t.eventManager,r=t.axisManager;this._options=e,this.interruptManager=n,this.eventManager=i,this.axisManager=r,this.animationEnd=this.animationEnd.bind(this)}var e=t.prototype;return e.getDuration=function(s,t,e){var n,i,o=this;return i=void 0!==e?e:(n=K(t,function(t,e){return n=Math.abs(t-s[e]),i=o._options.deceleration,(r=Math.sqrt(n/i*2))<100?0:r;var n,i,r}),Object.keys(n).reduce(function(t,e){return Math.max(t,n[e])},-1/0)),tt(i,this._options.minimumDuration,this._options.maximumDuration)},e.getDisplacement=function(t){var e=Math.pow(t.reduce(function(t,e){return t+e*e},0),1/t.length),n=Math.abs(e/-this._options.deceleration);return t.map(function(t){return t/2*n})},e.interpolate=function(t,e){var n=this.easing(1e-5)/1e-5;return this.easing(t/(e*n))*e},e.stopAnimation=function(t){var n,e,i;this._animateParam&&(n=this.axisManager.get(),e=this.axisManager.map(n,function(t,e){return d(t,e.range,e.circular)}),q(e,function(t,e){return n[e]===t})||this.eventManager.triggerChange(e,n,t,!!t),this._animateParam=null,this._raf&&(i=this._raf,H(i)),this._raf=null,this.eventManager.triggerAnimationEnd(!(null==t||!t.event)))},e.getEventInfo=function(){return this._animateParam&&this._animateParam.input&&this._animateParam.inputEvent?{input:this._animateParam.input,event:this._animateParam.inputEvent}:null},e.restore=function(t){var e=this.axisManager.get(),n=this.axisManager.map(e,function(t,e){return Math.min(e.range[1],Math.max(e.range[0],t))});this.stopAnimation(),this.animateTo(n,this.getDuration(e,n),t)},e.animationEnd=function(){var t=this.getEventInfo();this._animateParam=null;var e=this.axisManager.filter(this.axisManager.get(),function(t,e){return v(t,e.range,e.circular)});0<Object.keys(e).length&&this.setTo(this.axisManager.map(e,function(t,e){return d(t,e.range,e.circular)})),this.interruptManager.setInterrupt(!1),this.eventManager.triggerAnimationEnd(!!t),this.axisManager.isOutside()?this.restore(t):this.finish(!!t)},e.finish=function(t){this._animateParam=null,this.interruptManager.setInterrupt(!1),this.eventManager.triggerFinish(t)},e.getUserControl=function(t){var e=t.setTo();return e.destPos=this.axisManager.get(e.destPos),e.duration=tt(e.duration,this._options.minimumDuration,this._options.maximumDuration),e},e.animateTo=function(t,e,n){var i=this;this.stopAnimation();var r,s=this._createAnimationParam(t,e,n),o=_({},s.depaPos),a=this.eventManager.triggerAnimationStart(s),u=this.getUserControl(s);!a&&this.axisManager.every(u.destPos,function(t,e){return v(t,e.range,e.circular)})&&console.warn("You can't stop the 'animation' event when 'circular' is true."),a&&!Q(u.destPos,o)&&(r=(null==n?void 0:n.event)||null,this._animateLoop({depaPos:o,destPos:u.destPos,duration:u.duration,delta:this.axisManager.getDelta(o,u.destPos),isTrusted:!!r,inputEvent:r,input:(null==n?void 0:n.input)||null},function(){return i.animationEnd()}))},e.easing=function(t){return 1<t?1:this._options.easing(t)},e.setTo=function(t,e){void 0===e&&(e=0);var n=Object.keys(t),i=this.axisManager.get(n);if(Q(t,i))return this;this.interruptManager.setInterrupt(!0);var r=U(t,function(t,e){return i[e]!==t});return Object.keys(r).length?(r=this.axisManager.map(r,function(t,e){var n=e.range,i=e.circular;return i&&(i[0]||i[1])?t:p(t,n,i)}),Q(r,i)||(0<e?this.animateTo(r,e):(this.stopAnimation(),this.eventManager.triggerChange(r),this.finish(!1))),this):this},e.setBy=function(n,t){return void 0===t&&(t=0),this.setTo(K(this.axisManager.get(Object.keys(n)),function(t,e){return t+n[e]}),t)},e.updateAnimation=function(t){var e,n,i,r,s,o=this._animateParam;o&&(e=(new Date).getTime()-o.startTime,n=(null==t?void 0:t.destPos)||o.destPos,i=(null==t?void 0:t.duration)||o.duration,null!=t&&t.restart||i<=e?this.setTo(n,i-e):(null!=t&&t.destPos&&(r=this.axisManager.get(),this._initialEasingPer=this._prevEasingPer,o.delta=this.axisManager.getDelta(r,n),o.destPos=n),null!=t&&t.duration&&(s=(e+this._durationOffset)/o.duration,this._durationOffset=s*i-e,o.duration=i)))},e._createAnimationParam=function(t,e,n){var i=this.axisManager.get(),r=t,s=(null==n?void 0:n.event)||null;return{depaPos:i,destPos:r,duration:tt(e,this._options.minimumDuration,this._options.maximumDuration),delta:this.axisManager.getDelta(i,r),inputEvent:s,input:(null==n?void 0:n.input)||null,isTrusted:!!s,done:this.animationEnd}},e._animateLoop=function(n,i){var h,c,r,s,l=this;n.duration?(h=n.depaPos,this._initialEasingPer=0,this._prevEasingPer=0,this._durationOffset=0,this._animateParam=_(_({},n),{startTime:(new Date).getTime()}),c=K(h,function(t,e){return t<=n.destPos[e]?1:-1}),r=K(n.destPos,function(t){return t}),(s=function(){var o=l._animateParam,a=((new Date).getTime()-o.startTime+l._durationOffset)/o.duration,u=l.easing(a);l._raf=null;var t=l.axisManager.map(h,function(t,e,n){var i,r=1<=a?o.destPos[n]:t+o.delta[n]*(u-l._prevEasingPer)/(1-l._initialEasingPer),s=d(r,e.range,e.circular);return r!==s&&(i=c[n]*(e.range[1]-e.range[0]),o.destPos[n]-=i,h[n]-=i),s}),e=!l.eventManager.triggerChange(t,h);if(h=t,1<=(l._prevEasingPer=u))return o.destPos=l._getFinalPos(o.destPos,r),Q(o.destPos,l.axisManager.get(Object.keys(o.destPos)))||l.eventManager.triggerChange(o.destPos,h),void i();e?l.finish(!1):l._raf=W(s)})()):(this.eventManager.triggerChange(n.destPos),i())},e._getFinalPos=function(t,i){var r=this;return K(t,function(t,e){if(t>=i[e]-1e-6&&t<=i[e]+1e-6)return i[e];var n=r._getRoundUnit(t,e);return z(t,n)})},e._getRoundUnit=function(t,e){var n,i,r=this._options.round,s=null;return r||(n=this.axisManager.getAxisOptions(e),i=Math.max(Z(n.range[0]),Z(n.range[1]),Z(t)),s=1/Math.pow(10,i)),s||r},t}(),at=function(){function t(t){this._axes=t}var e=t.prototype;return e.hold=function(t,e){var n=this._getRoundPos(t).roundPos;this._axes.trigger(new f("hold",{pos:n,input:e.input||null,inputEvent:e.event||null,isTrusted:!0}))},e.triggerRelease=function(t){var e=this._getRoundPos(t.destPos,t.depaPos),n=e.roundPos,i=e.roundDepa;t.destPos=n,t.depaPos=i,t.setTo=this._createUserControll(t.destPos,t.duration),this._axes.trigger(new f("release",_(_({},t),{bounceRatio:this._getBounceRatio(n)})))},e.triggerChange=function(t,e,n,i){void 0===i&&(i=!1);var r=this.animationManager,s=r.axisManager,o=r.getEventInfo(),a=this._getRoundPos(t,e),u=a.roundPos,h=a.roundDepa,c=s.moveTo(u,h),l=(null==n?void 0:n.event)||(null==o?void 0:o.event)||null,v={pos:c.pos,delta:c.delta,bounceRatio:this._getBounceRatio(c.pos),holding:i,inputEvent:l,isTrusted:!!l,input:(null==n?void 0:n.input)||(null==o?void 0:o.input)||null,set:l?this._createUserControll(c.pos):function(){}},d=new f("change",v);return this._axes.trigger(d),l&&s.set(v.set().destPos),!d.isCanceled()},e.triggerAnimationStart=function(t){var e=this._getRoundPos(t.destPos,t.depaPos),n=e.roundPos,i=e.roundDepa;t.destPos=n,t.depaPos=i,t.setTo=this._createUserControll(t.destPos,t.duration);var r=new f("animationStart",t);return this._axes.trigger(r),!r.isCanceled()},e.triggerAnimationEnd=function(t){void 0===t&&(t=!1),this._axes.trigger(new f("animationEnd",{isTrusted:t}))},e.triggerFinish=function(t){void 0===t&&(t=!1),this._axes.trigger(new f("finish",{isTrusted:t}))},e.setAnimationManager=function(t){this.animationManager=t},e.destroy=function(){this._axes.off()},e._createUserControll=function(t,e){void 0===e&&(e=0);var n={destPos:_({},t),duration:e};return function(t,e){return t&&(n.destPos=_({},t)),void 0!==e&&(n.duration=e),n}},e._getRoundPos=function(t,e){var n=this._axes.options.round;return{roundPos:G(t,n),roundDepa:G(e,n)}},e._getBounceRatio=function(t){return this._axes.axisManager.map(t,function(t,e){return t<e.range[0]&&0!==e.bounce[0]?(e.range[0]-t)/e.bounce[0]:t>e.range[1]&&0!==e.bounce[1]?(t-e.range[1])/e.bounce[1]:0})},t}(),ut=function(){function t(t){this._options=t,this._prevented=!1}var e=t.prototype;return e.isInterrupting=function(){return this._options.interruptable||this._prevented},e.isInterrupted=function(){return!this._options.interruptable&&this._prevented},e.setInterrupt=function(t){this._options.interruptable||(this._prevented=t)},t}(),ht=function(){function t(t){var n=this;this._axis=t,this._complementOptions(),this._pos=Object.keys(this._axis).reduce(function(t,e){return t[e]=n._axis[e].range[0],t},{})}var e=t.prototype;return e.getDelta=function(t,e){var n=this.get(t);return K(this.get(e),function(t,e){return t-n[e]})},e.get=function(t){var n=this;return t&&Array.isArray(t)?t.reduce(function(t,e){return e&&e in n._pos&&(t[e]=n._pos[e]),t},{}):_(_({},this._pos),t||{})},e.moveTo=function(n,i){void 0===i&&(i=this._pos);var t=K(this._pos,function(t,e){return e in n&&e in i?n[e]-i[e]:0});return this.set(this.map(n,function(t,e){return e?d(t,e.range,e.circular):0})),{pos:_({},this._pos),delta:t}},e.set=function(t){for(var e in t)e&&e in this._pos&&(this._pos[e]=t[e])},e.every=function(t,n){var i=this._axis;return q(t,function(t,e){return n(t,i[e],e)})},e.filter=function(t,n){var i=this._axis;return U(t,function(t,e){return n(t,i[e],e)})},e.map=function(t,n){var i=this._axis;return K(t,function(t,e){return n(t,i[e],e)})},e.isOutside=function(t){return!this.every(t?this.get(t):this._pos,function(t,e){return!h(t,e.range)})},e.getAxisOptions=function(t){return this._axis[t]},e._complementOptions=function(){var r=this;Object.keys(this._axis).forEach(function(i){r._axis[i]=_({range:[0,100],bounce:[0,0],circular:[!1,!1]},r._axis[i]),["bounce","circular"].forEach(function(t){var e=r._axis,n=e[i][t];/string|number|boolean/.test(typeof n)&&(e[i][t]=[n,n])})})},t}(),ct="ontouchstart"in r,lt="PointerEvent"in r,vt="MSPointerEvent"in r,dt=lt||vt,ft=function(){function t(){var e=this;this._stopContextMenu=function(t){t.preventDefault(),r.removeEventListener("contextmenu",e._stopContextMenu)}}var e=t.prototype;return e.extendEvent=function(t){var e=this.prevEvent,n=this._getCenter(t),i=e?this._getMovement(t):{x:0,y:0},r=e?this._getScale(t):1,s=e?J(n.x-e.center.x,n.y-e.center.y):0,o=e?e.deltaX+i.x:i.x,a=e?e.deltaY+i.y:i.y,u=e?o-e.deltaX:0,h=e?a-e.deltaY:0,c=e?t.timeStamp-e.srcEvent.timeStamp:0;return{srcEvent:t,scale:r,angle:s,center:n,deltaX:o,deltaY:a,offsetX:u,offsetY:h,velocityX:e&&0!=c?u/c:0,velocityY:e&&0!=c?h/c:0,preventSystemEvent:!0}},e._getDistance=function(t,e){var n=e.clientX-t.clientX,i=e.clientY-t.clientY;return Math.sqrt(n*n+i*i)},e._getButton=function(t){if(this._isTouchEvent(t))return"left";switch(t.buttons){case 1:return"left";case 2:return"right";case 4:return"middle";default:return null}},e._isTouchEvent=function(t){return-1<t.type.indexOf("touch")},e._isValidButton=function(t,e){return-1<e.indexOf(t)},e._preventMouseButton=function(t,e){"right"===e?r.addEventListener("contextmenu",this._stopContextMenu):"middle"===e&&t.preventDefault()},t}(),_t=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.start=["mousedown"],t.move=["mousemove"],t.end=["mouseup"],t}s(t,e);var n=t.prototype;return n.onEventStart=function(t,e){var n=this._getButton(t);return e&&!this._isValidButton(n,e)?null:(this._preventMouseButton(t,n),this.extendEvent(t))},n.onEventMove=function(t,e){return e&&!this._isValidButton(this._getButton(t),e)?null:this.extendEvent(t)},n.onEventEnd=function(){},n.getTouches=function(){return 0},n._getScale=function(){return 1},n._getCenter=function(t){return{x:t.clientX,y:t.clientY}},n._getMovement=function(t){var e=this.prevEvent.srcEvent;return{x:t.pageX-e.pageX,y:t.pageY-e.pageY}},t}(ft),pt=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.start=["touchstart"],t.move=["touchmove"],t.end=["touchend","touchcancel"],t}s(t,e);var n=t.prototype;return n.onEventStart=function(t){return this._baseTouches=t.touches,this.extendEvent(t)},n.onEventMove=function(t){return this.extendEvent(t)},n.onEventEnd=function(t){this._baseTouches=t.touches},n.getTouches=function(t){return t.touches.length},n._getScale=function(t){return 2!==t.touches.length||this._baseTouches.length<2?null:this._getDistance(t.touches[0],t.touches[1])/this._getDistance(this._baseTouches[0],this._baseTouches[1])},n._getCenter=function(t){return{x:t.touches[0].clientX,y:t.touches[0].clientY}},n._getMovement=function(t){var e=this.prevEvent.srcEvent;return t.touches[0].identifier!==e.touches[0].identifier?{x:0,y:0}:{x:t.touches[0].pageX-e.touches[0].pageX,y:t.touches[0].pageY-e.touches[0].pageY}},t}(ft),gt=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.start=lt?["pointerdown"]:["MSPointerDown"],t.move=lt?["pointermove"]:["MSPointerMove"],t.end=lt?["pointerup","pointercancel"]:["MSPointerUp","MSPointerCancel"],t._firstInputs=[],t._recentInputs=[],t}s(t,e);var n=t.prototype;return n.onEventStart=function(t,e){var n=this._getButton(t);return e&&!this._isValidButton(n,e)?null:(this._preventMouseButton(t,n),this._updatePointerEvent(t),this.extendEvent(t))},n.onEventMove=function(t,e){return e&&!this._isValidButton(this._getButton(t),e)?null:(this._updatePointerEvent(t),this.extendEvent(t))},n.onEventEnd=function(t){this._removePointerEvent(t)},n.getTouches=function(){return this._recentInputs.length},n._getScale=function(){return 2!==this._recentInputs.length?null:this._getDistance(this._recentInputs[0],this._recentInputs[1])/this._getDistance(this._firstInputs[0],this._firstInputs[1])},n._getCenter=function(t){return{x:t.clientX,y:t.clientY}},n._getMovement=function(t){var e=this.prevEvent.srcEvent;return t.pointerId!==e.pointerId?{x:0,y:0}:{x:t.pageX-e.pageX,y:t.pageY-e.pageY}},n._updatePointerEvent=function(n){var i=this,r=!1;this._recentInputs.forEach(function(t,e){t.pointerId===n.pointerId&&(r=!0,i._recentInputs[e]=n)}),r||(this._firstInputs.push(n),this._recentInputs.push(n))},n._removePointerEvent=function(e){this._firstInputs=this._firstInputs.filter(function(t){return t.pointerId!==e.pointerId}),this._recentInputs=this._recentInputs.filter(function(t){return t.pointerId!==e.pointerId})},t}(ft),mt=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.start=["mousedown","touchstart"],t.move=["mousemove","touchmove"],t.end=["mouseup","touchend","touchcancel"],t}s(t,e);var n=t.prototype;return n.onEventStart=function(t,e){var n=this._getButton(t);return this._isTouchEvent(t)&&(this._baseTouches=t.touches),e&&!this._isValidButton(n,e)?null:(this._preventMouseButton(t,n),this.extendEvent(t))},n.onEventMove=function(t,e){return e&&!this._isValidButton(this._getButton(t),e)?null:this.extendEvent(t)},n.onEventEnd=function(t){this._isTouchEvent(t)&&(this._baseTouches=t.touches)},n.getTouches=function(t){return this._isTouchEvent(t)?t.touches.length:0},n._getScale=function(t){return this._isTouchEvent(t)?2!==t.touches.length||this._baseTouches.length<2?1:this._getDistance(t.touches[0],t.touches[1])/this._getDistance(this._baseTouches[0],this._baseTouches[1]):this.prevEvent.scale},n._getCenter=function(t){return this._isTouchEvent(t)?{x:t.touches[0].clientX,y:t.touches[0].clientY}:{x:t.clientX,y:t.clientY}},n._getMovement=function(e){var n=this,t=this.prevEvent.srcEvent,i=[e,t].map(function(t){return n._isTouchEvent(e)?{id:t.touches[0].identifier,x:t.touches[0].pageX,y:t.touches[0].pageY}:{id:null,x:t.pageX,y:t.pageY}}),r=i[0],s=i[1];return r.id===s.id?{x:r.x-s.x,y:r.y-s.y}:{x:0,y:0}},t}(ft),Et=function(){function t(t){var e=t.options,n=t.interruptManager,i=t.eventManager,r=t.axisManager,s=t.animationManager;this._isOutside=!1,this._moveDistance=null,this._isStopped=!1,this.options=e,this._interruptManager=n,this._eventManager=i,this._axisManager=r,this._animationManager=s}var e=t.prototype;return e.get=function(t){return this._axisManager.get(t.axes)},e.hold=function(t,e){var n;!this._interruptManager.isInterrupted()&&t.axes.length&&(n={input:t,event:e},this._isStopped=!1,this._interruptManager.setInterrupt(!0),this._animationManager.stopAnimation(n),this._moveDistance||this._eventManager.hold(this._axisManager.get(),n),this._isOutside=this._axisManager.isOutside(t.axes),this._moveDistance=this._axisManager.get(t.axes))},e.change=function(t,e,n,i){var r,s,o,a,u;this._isStopped||!this._interruptManager.isInterrupting()||this._axisManager.every(n,function(t){return 0===t})||((r=e.srcEvent?e.srcEvent:e).__childrenAxesAlreadyChanged||(s=this._moveDistance||this._axisManager.get(t.axes),o=K(s,function(t,e){return t+(n[e]||0)}),this._moveDistance&&(this._moveDistance=this._axisManager.map(o,function(t,e){var n=e.circular,i=e.range;return n&&(n[0]||n[1])?d(t,i,n):t})),this._isOutside&&this._axisManager.every(s,function(t,e){return!h(t,e.range)})&&(this._isOutside=!1),s=this._atOutside(s),o=this._atOutside(o),this.options.nested&&this._isEndofAxis(n,s,o)||(r.__childrenAxesAlreadyChanged=!0),a={input:t,event:e},i?(u=this._animationManager.getDuration(o,s),this._animationManager.animateTo(o,u,a)):this._eventManager.triggerChange(o,s,a,!0)||(this._isStopped=!0,this._moveDistance=null,this._animationManager.finish(!1))))},e.release=function(t,e,n,i){var r,s,o,a,u,h,c,l,v,d,f;!this._isStopped&&this._interruptManager.isInterrupting()&&this._moveDistance&&((r=e.srcEvent?e.srcEvent:e).__childrenAxesAlreadyReleased&&(n=n.map(function(){return 0})),s=this._axisManager.get(t.axes),o=this._axisManager.get(),a=this._animationManager.getDisplacement(n),u=et(t.axes,a),h=this._axisManager.get(this._axisManager.map(u,function(t,e,n){return e.circular&&(e.circular[0]||e.circular[1])?s[n]+t:p(s[n]+t,e.range,e.circular,e.bounce)})),r.__childrenAxesAlreadyReleased=!0,0===(c=this._animationManager.getDuration(h,s,i))&&(h=_({},o)),l={depaPos:o,destPos:h,duration:c,delta:this._axisManager.getDelta(o,h),inputEvent:e,input:t,isTrusted:!0},this._eventManager.triggerRelease(l),this._moveDistance=null,v=this._animationManager.getUserControl(l),f={input:t,event:e},(d=Q(v.destPos,o))||0===v.duration?(d||this._eventManager.triggerChange(v.destPos,o,f,!0),this._interruptManager.setInterrupt(!1),this._axisManager.isOutside()?this._animationManager.restore(f):this._eventManager.triggerFinish(!0)):this._animationManager.animateTo(v.destPos,v.duration,f))},e._atOutside=function(t){var o=this;return this._isOutside?this._axisManager.map(t,function(t,e){var n=e.range[0]-e.bounce[0],i=e.range[1]+e.bounce[1];return i<t?i:t<n?n:t}):this._axisManager.map(t,function(t,e){var n=e.range[0],i=e.range[1],r=e.bounce,s=e.circular;return s&&(s[0]||s[1])?t:t<n?n-o._animationManager.interpolate(n-t,r[0]):i<t?i+o._animationManager.interpolate(t-i,r[1]):t})},e._isEndofAxis=function(a,u,h){return this._axisManager.every(u,function(t,e,n){return 0===a[n]||u[n]===h[n]&&(i=t,r=e.range,s=e.bounce,!(o=e.circular)[0]&&i===r[0]-s[0]||!o[1]&&i===r[1]+s[1]);var i,r,s,o})},t}(),bt=function(r){function t(t,e,n){void 0===t&&(t={}),void 0===e&&(e={}),void 0===n&&(n=null);var i=r.call(this)||this;return i.axis=t,i._inputs=[],i.options=_({easing:function(t){return 1-Math.pow(1-t,3)},interruptable:!0,maximumDuration:1/0,minimumDuration:0,deceleration:6e-4,round:null,nested:!1},e),i.interruptManager=new ut(i.options),i.axisManager=new ht(i.axis),i.eventManager=new at(i),i.animationManager=new ot(i),i.inputObserver=new Et(i),i.eventManager.setAnimationManager(i.animationManager),n&&i.eventManager.triggerChange(n),i}s(t,r);var e=t.prototype;return e.connect=function(t,e){var n="string"==typeof t?t.split(" "):t.concat();return~this._inputs.indexOf(e)&&this.disconnect(e),e.mapAxes(n),e.connect(this.inputObserver),this._inputs.push(e),this},e.disconnect=function(t){var e;return t?0<=(e=this._inputs.indexOf(t))&&(this._inputs[e].disconnect(),this._inputs.splice(e,1)):(this._inputs.forEach(function(t){return t.disconnect()}),this._inputs=[]),this},e.get=function(t){return this.axisManager.get(t)},e.setTo=function(t,e){return void 0===e&&(e=0),this.animationManager.setTo(t,e),this},e.setBy=function(t,e){return void 0===e&&(e=0),this.animationManager.setBy(t,e),this},e.stopAnimation=function(){return this.animationManager.stopAnimation(),this},e.updateAnimation=function(t){return this.animationManager.updateAnimation(t),this},e.isBounceArea=function(t){return this.axisManager.isOutside(t)},e.destroy=function(){this.disconnect(),this.eventManager.destroy()},t.VERSION="3.0.1-snapshot",t.TRANSFORM=F,t.DIRECTION_NONE=1,t.DIRECTION_LEFT=2,t.DIRECTION_RIGHT=4,t.DIRECTION_UP=8,t.DIRECTION_DOWN=16,t.DIRECTION_HORIZONTAL=6,t.DIRECTION_VERTICAL=24,t.DIRECTION_ALL=30,t}(t),yt=function(){function t(t,e){this.axes=[],this.element=null,this._enabled=!1,this._activeInput=null,this._atRightEdge=!1,this._rightEdgeTimer=0,this.element=N(t),this.options=_({inputType:["touch","mouse","pointer"],inputButton:["left"],scale:[1,1],thresholdAngle:45,threshold:0,iOSEdgeSwipeThreshold:30,releaseOnScroll:!1},e),this._onPanstart=this._onPanstart.bind(this),this._onPanmove=this._onPanmove.bind(this),this._onPanend=this._onPanend.bind(this)}var e=t.prototype;return e.mapAxes=function(t){var e=!!t[0],n=!!t[1];this._direction=e&&n?30:e?6:n?24:1,this.axes=t},e.connect=function(t){return this._activeInput&&(this._detachElementEvent(),this._detachWindowEvent(this._activeInput)),this._attachElementEvent(t),this._originalCssProps=$(this.element),this},e.disconnect=function(){return this._detachElementEvent(),this._detachWindowEvent(this._activeInput),this._originalCssProps!==V&&$(this.element,this._originalCssProps),this._direction=1,this},e.destroy=function(){this.disconnect(),this.element=null},e.enable=function(){return this._enabled=!0,this},e.disable=function(){return this._enabled=!1,this},e.isEnabled=function(){return this._enabled},e._onPanstart=function(t){var e,n=this._activeInput,i=n.onEventStart(t,this.options.inputButton);!i||!this._enabled||1<n.getTouches(t)||!1!==i.srcEvent.cancelable&&(e=this.options.iOSEdgeSwipeThreshold,this._observer.hold(this,i),this._atRightEdge=X&&i.center.x>window.innerWidth-e,this._attachWindowEvent(n),n.prevEvent=i)},e._onPanmove=function(t){var e=this,n=this._activeInput,i=n.onEventMove(t,this.options.inputButton);if(i&&this._enabled&&!(1<n.getTouches(t))){var r=this.options,s=r.iOSEdgeSwipeThreshold,o=r.releaseOnScroll,a=function(t,e){if(e<0||90<e)return 1;var n=Math.abs(t);return e<n&&n<180-e?24:6}(i.angle,this.options.thresholdAngle);if(!o||i.srcEvent.cancelable){if(n.prevEvent&&X){if(i.center.x<0)return this._detachWindowEvent(n),void this._observer.release(this,n.prevEvent,[0,0]);this._atRightEdge&&(clearTimeout(this._rightEdgeTimer),i.deltaX<-s?this._atRightEdge=!1:this._rightEdgeTimer=window.setTimeout(function(){e._detachWindowEvent(n),e._observer.release(e,n.prevEvent,[0,0])},100))}var u=this._getOffset([i.offsetX,i.offsetY],[it(6,this._direction,a),it(24,this._direction,a)]),h=u.some(function(t){return 0!==t});h&&(!1!==i.srcEvent.cancelable&&i.srcEvent.preventDefault(),i.srcEvent.stopPropagation()),(i.preventSystemEvent=h)&&this._observer.change(this,i,et(this.axes,u)),n.prevEvent=i}else this._onPanend(t)}},e._onPanend=function(t){var e,n,i=this._activeInput;i.onEventEnd(t),this._enabled&&0===i.getTouches(t)&&(this._detachWindowEvent(i),clearTimeout(this._rightEdgeTimer),e=i.prevEvent,n=this._getOffset([Math.abs(e.velocityX)*(e.offsetX<0?-1:1),Math.abs(e.velocityY)*(e.offsetY<0?-1:1)],[it(6,this._direction),it(24,this._direction)]),this._observer.release(this,e,n),i.prevEvent=null)},e._attachWindowEvent=function(t){var e=this;null!=t&&t.move.forEach(function(t){window.addEventListener(t,e._onPanmove)}),null!=t&&t.end.forEach(function(t){window.addEventListener(t,e._onPanend)})},e._detachWindowEvent=function(t){var e=this;null!=t&&t.move.forEach(function(t){window.removeEventListener(t,e._onPanmove)}),null!=t&&t.end.forEach(function(t){window.removeEventListener(t,e._onPanend)})},e._attachElementEvent=function(t){var n=this,e=nt(this.options.inputType);if(!e)throw new Error("There is currently no inputType available for current device. There must be at least one available inputType.");this._observer=t,this._enabled=!0,null!=(this._activeInput=e)&&e.start.forEach(function(t){var e;null!==(e=n.element)&&void 0!==e&&e.addEventListener(t,n._onPanstart)})},e._detachElementEvent=function(){var n=this,t=this._activeInput;null!=t&&t.start.forEach(function(t){var e;null!==(e=n.element)&&void 0!==e&&e.removeEventListener(t,n._onPanstart)}),this._enabled=!1,this._observer=null},e._getOffset=function(t,e){var n=[0,0],i=this.options.scale;return e[0]&&(n[0]=t[0]*i[0]),e[1]&&(n[1]=t[1]*i[1]),n},t}(),xt=function(i){function t(t,e){var n=i.call(this,t,e)||this;return n._prevQuadrant=null,n._lastDiff=0,n}s(t,i);var e=t.prototype;return e.mapAxes=function(t){this._direction=bt.DIRECTION_ALL,this.axes=t},e._onPanstart=function(t){var e,n=this._activeInput,i=n.onEventStart(t,this.options.inputButton);i&&this.isEnabled()&&(e=this.element.getBoundingClientRect(),this._observer.hold(this,i),this._attachWindowEvent(n),this._coefficientForDistanceToAngle=360/(e.width*Math.PI),this._rotateOrigin=[e.left+(e.width-1)/2,e.top+(e.height-1)/2],this._prevAngle=null,this._triggerChange(i),n.prevEvent=i)},e._onPanmove=function(t){var e=this._activeInput,n=e.onEventMove(t,this.options.inputButton);n&&this.isEnabled()&&(!1!==n.srcEvent.cancelable&&n.srcEvent.preventDefault(),n.srcEvent.stopPropagation(),this._triggerChange(n),e.prevEvent=n)},e._onPanend=function(t){var e,n,i,r,s=this._activeInput;s.onEventEnd(t),this.isEnabled()&&(e=s.prevEvent,this._triggerChange(e),n=e.velocityX,i=e.velocityY,r=Math.sqrt(n*n+i*i)*(0<this._lastDiff?-1:1),this._observer.release(this,e,[r*this._coefficientForDistanceToAngle]),s.prevEvent=null,this._detachWindowEvent(s))},e._triggerChange=function(t){var e=this._getPosFromOrigin(t.center.x,t.center.y),n=e.x,i=e.y,r=J(n,i),s=r<0?360+r:r,o=this._getQuadrant(t.center.x,t.center.y),a=this._getDifference(this._prevAngle,s,this._prevQuadrant,o);this._prevAngle=s,this._prevQuadrant=o,0!==a&&(this._lastDiff=a,this._observer.change(this,t,et(this.axes,[-a])))},e._getDifference=function(t,e,n,i){var r=null===t?0:1===n&&4===i?-t-(360-e):4===n&&1===i?360-t+e:e-t;return r},e._getPosFromOrigin=function(t,e){return{x:t-this._rotateOrigin[0],y:this._rotateOrigin[1]-e}},e._getQuadrant=function(t,e){var n=this._getPosFromOrigin(t,e),i=n.x,r=n.y,s=0;return 0<=i&&0<=r?s=1:i<0&&0<=r?s=2:i<0&&r<0?s=3:0<=i&&r<0&&(s=4),s},t}(yt),Mt=function(){function t(t,e){this.axes=[],this.element=null,this._pinchFlag=!1,this._enabled=!1,this._activeInput=null,this.element=N(t),this.options=_({scale:1,threshold:0,inputType:["touch","pointer"]},e),this._onPinchStart=this._onPinchStart.bind(this),this._onPinchMove=this._onPinchMove.bind(this),this._onPinchEnd=this._onPinchEnd.bind(this)}var e=t.prototype;return e.mapAxes=function(t){this.axes=t},e.connect=function(t){return this._activeInput&&this._detachEvent(),this._attachEvent(t),this._originalCssProps=$(this.element),this},e.disconnect=function(){return this._detachEvent(),this._originalCssProps!==V&&$(this.element,this._originalCssProps),this},e.destroy=function(){this.disconnect(),this.element=null},e.enable=function(){return this._enabled=!0,this},e.disable=function(){return this._enabled=!1,this},e.isEnabled=function(){return this._enabled},e._onPinchStart=function(t){var e=this._activeInput,n=e.onEventStart(t);n&&this._enabled&&2===e.getTouches(t)&&(this._baseValue=this._observer.get(this)[this.axes[0]],this._observer.hold(this,t),this._pinchFlag=!0,e.prevEvent=n)},e._onPinchMove=function(t){var e,n=this._activeInput,i=n.onEventMove(t);i&&this._pinchFlag&&this._enabled&&2===n.getTouches(t)&&(e=this._getOffset(i.scale,n.prevEvent.scale),this._observer.change(this,t,et(this.axes,[e])),n.prevEvent=i)},e._onPinchEnd=function(t){var e=this._activeInput;e.onEventEnd(t),!this._pinchFlag||!this._enabled||2<=e.getTouches(t)||(this._observer.release(this,t,[0],0),this._baseValue=null,this._pinchFlag=!1,e.prevEvent=null)},e._attachEvent=function(t){var e=this,n=nt(this.options.inputType);if(!n)throw new Error("There is currently no inputType available for current device. There must be at least one available inputType.");this._observer=t,this._enabled=!0,null!=(this._activeInput=n)&&n.start.forEach(function(t){e.element.addEventListener(t,e._onPinchStart,!1)}),null!=n&&n.move.forEach(function(t){e.element.addEventListener(t,e._onPinchMove,!1)}),null!=n&&n.end.forEach(function(t){e.element.addEventListener(t,e._onPinchEnd,!1)})},e._detachEvent=function(){var e=this,t=this._activeInput;null!=t&&t.start.forEach(function(t){e.element.removeEventListener(t,e._onPinchStart,!1)}),null!=t&&t.move.forEach(function(t){e.element.removeEventListener(t,e._onPinchMove,!1)}),null!=t&&t.end.forEach(function(t){e.element.removeEventListener(t,e._onPinchEnd,!1)}),this._enabled=!1,this._observer=null},e._getOffset=function(t,e){return void 0===e&&(e=1),this._baseValue*(t-e)*this.options.scale},t}(),wt=function(){function t(t,e){this.axes=[],this.element=null,this._enabled=!1,this._holding=!1,this._timer=null,this.element=N(t),this.options=_({scale:1,releaseDelay:300,useNormalized:!0},e),this._onWheel=this._onWheel.bind(this)}var e=t.prototype;return e.mapAxes=function(t){this.axes=t},e.connect=function(t){return this._detachEvent(),this._attachEvent(t),this},e.disconnect=function(){return this._detachEvent(),this},e.destroy=function(){this.disconnect(),this.element=null},e.enable=function(){return this._enabled=!0,this},e.disable=function(){return this._enabled=!1,this},e.isEnabled=function(){return this._enabled},e._onWheel=function(t){var e,n=this;this._enabled&&(t.preventDefault(),0!==t.deltaY&&(this._holding||(this._observer.hold(this,t),this._holding=!0),e=(0<t.deltaY?-1:1)*this.options.scale*(this.options.useNormalized?1:Math.abs(t.deltaY)),this._observer.change(this,t,et(this.axes,[e]),!0),clearTimeout(this._timer),this._timer=setTimeout(function(){n._holding&&(n._holding=!1,n._observer.release(n,t,[0]))},this.options.releaseDelay)))},e._attachEvent=function(t){this._observer=t,this.element.addEventListener("wheel",this._onWheel),this._enabled=!0},e._detachEvent=function(){this.element.removeEventListener("wheel",this._onWheel),this._enabled=!1,this._observer=null,this._timer&&(clearTimeout(this._timer),this._timer=null)},t}(),Pt=function(){function t(t,e){this.axes=[],this.element=null,this._enabled=!1,this._holding=!1,this._timer=null,this.element=N(t),this.options=_({scale:[1,1]},e),this._onKeydown=this._onKeydown.bind(this),this._onKeyup=this._onKeyup.bind(this)}var e=t.prototype;return e.mapAxes=function(t){this.axes=t},e.connect=function(t){return this._detachEvent(),"0"!==this.element.getAttribute("tabindex")&&this.element.setAttribute("tabindex","0"),this._attachEvent(t),this},e.disconnect=function(){return this._detachEvent(),this},e.destroy=function(){this.disconnect(),this.element=null},e.enable=function(){return this._enabled=!0,this},e.disable=function(){return this._enabled=!1,this},e.isEnabled=function(){return this._enabled},e._onKeydown=function(t){if(this._enabled){var e,n=!0,i=1,r=-1;switch(t.keyCode){case 37:case 65:i=-1;break;case 39:case 68:break;case 40:case 83:i=-1,r=1;break;case 38:case 87:r=1;break;default:n=!1}(-1===r&&!this.axes[0]||1===r&&!this.axes[1])&&(n=!1),n&&(t.preventDefault(),e=-1===r?[this.options.scale[0]*i,0]:[0,this.options.scale[1]*i],this._holding||(this._observer.hold(this,t),this._holding=!0),clearTimeout(this._timer),this._observer.change(this,t,et(this.axes,e)))}},e._onKeyup=function(t){var e=this;this._holding&&(clearTimeout(this._timer),this._timer=setTimeout(function(){e._observer.release(e,t,[0,0]),e._holding=!1},80))},e._attachEvent=function(t){this._observer=t,this.element.addEventListener("keydown",this._onKeydown,!1),this.element.addEventListener("keypress",this._onKeydown,!1),this.element.addEventListener("keyup",this._onKeyup,!1),this._enabled=!0},e._detachEvent=function(){this.element.removeEventListener("keydown",this._onKeydown,!1),this.element.removeEventListener("keypress",this._onKeydown,!1),this.element.removeEventListener("keyup",this._onKeyup,!1),this._enabled=!1,this._observer=null},t}();return bt.PanInput=yt,bt.RotatePanInput=xt,bt.PinchInput=Mt,bt.WheelInput=wt,bt.MoveKeyInput=Pt,bt}); | ||
//# sourceMappingURL=axes.pkgd.min.js.map |
@@ -49,5 +49,5 @@ var __assign = (this && this.__assign) || function () { | ||
}; | ||
AnimationManager.prototype.stopAnimation = function (axes, option) { | ||
if (this._animateParam && axes.length) { | ||
var orgPos_1 = this.axisManager.get(axes); | ||
AnimationManager.prototype.stopAnimation = function (option) { | ||
if (this._animateParam) { | ||
var orgPos_1 = this.axisManager.get(); | ||
var pos = this.axisManager.map(orgPos_1, function (v, opt) { | ||
@@ -57,3 +57,3 @@ return getCirculatedPos(v, opt.range, opt.circular); | ||
if (!every(pos, function (v, k) { return orgPos_1[k] === v; })) { | ||
this.eventManager.triggerChange(pos, false, orgPos_1, option, !!option); | ||
this.eventManager.triggerChange(pos, orgPos_1, option, !!option); | ||
} | ||
@@ -86,3 +86,3 @@ this._animateParam = null; | ||
}); | ||
this.stopAnimation(Object.keys(this.axisManager.get())); | ||
this.stopAnimation(); | ||
this.animateTo(destPos, this.getDuration(pos, destPos), option); | ||
@@ -121,2 +121,3 @@ }; | ||
var _this = this; | ||
this.stopAnimation(); | ||
var param = this._createAnimationParam(destPos, duration, option); | ||
@@ -151,3 +152,2 @@ var depaPos = __assign({}, param.depaPos); | ||
var axes = Object.keys(pos); | ||
this.stopAnimation(axes); | ||
var orgPos = this.axisManager.get(axes); | ||
@@ -178,2 +178,3 @@ if (equal(pos, orgPos)) { | ||
else { | ||
this.stopAnimation(); | ||
this.eventManager.triggerChange(movedPos); | ||
@@ -260,3 +261,3 @@ this.finish(false); | ||
}); | ||
var isCanceled = !_this.eventManager.triggerChange(toPos, false, prevPos_1); | ||
var isCanceled = !_this.eventManager.triggerChange(toPos, prevPos_1); | ||
prevPos_1 = toPos; | ||
@@ -267,3 +268,3 @@ _this._prevEasingPer = easingPer; | ||
if (!equal(animateParam.destPos, _this.axisManager.get(Object.keys(animateParam.destPos)))) { | ||
_this.eventManager.triggerChange(animateParam.destPos, true, prevPos_1); | ||
_this.eventManager.triggerChange(animateParam.destPos, prevPos_1); | ||
} | ||
@@ -283,3 +284,3 @@ complete(); | ||
else { | ||
this.eventManager.triggerChange(param.destPos, true); | ||
this.eventManager.triggerChange(param.destPos); | ||
complete(); | ||
@@ -286,0 +287,0 @@ } |
@@ -50,2 +50,3 @@ var __extends = (this && this.__extends) || (function () { | ||
round: null, | ||
nested: false, | ||
}, options); | ||
@@ -107,3 +108,3 @@ _this.interruptManager = new InterruptManager(_this.options); | ||
Axes.prototype.stopAnimation = function () { | ||
this.animationManager.stopAnimation(Object.keys(this.axisManager.get())); | ||
this.animationManager.stopAnimation(); | ||
return this; | ||
@@ -110,0 +111,0 @@ }; |
@@ -0,0 +0,0 @@ var __assign = (this && this.__assign) || function () { |
@@ -0,0 +0,0 @@ var win; |
@@ -0,0 +0,0 @@ export var DIRECTION_NONE = 1; |
@@ -14,2 +14,6 @@ export var getInsidePosition = function (destPos, range, circular, bounce) { | ||
}; | ||
export var isEndofBounce = function (pos, range, bounce, circular) { | ||
return ((!circular[0] && pos === range[0] - bounce[0]) || | ||
(!circular[1] && pos === range[1] + bounce[1])); | ||
}; | ||
export var getDuration = function (distance, deceleration) { | ||
@@ -16,0 +20,0 @@ var duration = Math.sqrt((distance / deceleration) * 2); |
@@ -9,2 +9,7 @@ import { getAngle } from "../utils"; | ||
function EventInput() { | ||
var _this = this; | ||
this._stopContextMenu = function (event) { | ||
event.preventDefault(); | ||
window.removeEventListener("contextmenu", _this._stopContextMenu); | ||
}; | ||
} | ||
@@ -47,2 +52,31 @@ EventInput.prototype.extendEvent = function (event) { | ||
}; | ||
EventInput.prototype._getButton = function (event) { | ||
if (this._isTouchEvent(event)) { | ||
return "left"; | ||
} | ||
switch (event.buttons) { | ||
case 1: | ||
return "left"; | ||
case 2: | ||
return "right"; | ||
case 4: | ||
return "middle"; | ||
default: | ||
return null; | ||
} | ||
}; | ||
EventInput.prototype._isTouchEvent = function (event) { | ||
return event.type.indexOf("touch") > -1; | ||
}; | ||
EventInput.prototype._isValidButton = function (button, inputButton) { | ||
return inputButton.indexOf(button) > -1; | ||
}; | ||
EventInput.prototype._preventMouseButton = function (event, button) { | ||
if (button === "right") { | ||
window.addEventListener("contextmenu", this._stopContextMenu); | ||
} | ||
else if (button === "middle") { | ||
event.preventDefault(); | ||
} | ||
}; | ||
return EventInput; | ||
@@ -49,0 +83,0 @@ }()); |
@@ -24,6 +24,15 @@ var __extends = (this && this.__extends) || (function () { | ||
} | ||
MouseEventInput.prototype.onEventStart = function (event) { | ||
MouseEventInput.prototype.onEventStart = function (event, inputButton) { | ||
var button = this._getButton(event); | ||
if (inputButton && !this._isValidButton(button, inputButton)) { | ||
return null; | ||
} | ||
this._preventMouseButton(event, button); | ||
return this.extendEvent(event); | ||
}; | ||
MouseEventInput.prototype.onEventMove = function (event) { | ||
MouseEventInput.prototype.onEventMove = function (event, inputButton) { | ||
if (inputButton && | ||
!this._isValidButton(this._getButton(event), inputButton)) { | ||
return null; | ||
} | ||
return this.extendEvent(event); | ||
@@ -30,0 +39,0 @@ }; |
@@ -28,7 +28,16 @@ var __extends = (this && this.__extends) || (function () { | ||
} | ||
PointerEventInput.prototype.onEventStart = function (event) { | ||
PointerEventInput.prototype.onEventStart = function (event, inputButton) { | ||
var button = this._getButton(event); | ||
if (inputButton && !this._isValidButton(button, inputButton)) { | ||
return null; | ||
} | ||
this._preventMouseButton(event, button); | ||
this._updatePointerEvent(event); | ||
return this.extendEvent(event); | ||
}; | ||
PointerEventInput.prototype.onEventMove = function (event) { | ||
PointerEventInput.prototype.onEventMove = function (event, inputButton) { | ||
if (inputButton && | ||
!this._isValidButton(this._getButton(event), inputButton)) { | ||
return null; | ||
} | ||
this._updatePointerEvent(event); | ||
@@ -35,0 +44,0 @@ return this.extendEvent(event); |
@@ -25,3 +25,3 @@ var __extends = (this && this.__extends) || (function () { | ||
TouchEventInput.prototype.onEventStart = function (event) { | ||
this._firstTouch = event; | ||
this._baseTouches = event.touches; | ||
return this.extendEvent(event); | ||
@@ -32,3 +32,4 @@ }; | ||
}; | ||
TouchEventInput.prototype.onEventEnd = function () { | ||
TouchEventInput.prototype.onEventEnd = function (event) { | ||
this._baseTouches = event.touches; | ||
return; | ||
@@ -40,7 +41,7 @@ }; | ||
TouchEventInput.prototype._getScale = function (event) { | ||
if (event.touches.length !== 2) { | ||
if (event.touches.length !== 2 || this._baseTouches.length < 2) { | ||
return null; | ||
} | ||
return (this._getDistance(event.touches[0], event.touches[1]) / | ||
this._getDistance(this._firstTouch.touches[0], this._firstTouch.touches[1])); | ||
this._getDistance(this._baseTouches[0], this._baseTouches[1])); | ||
}; | ||
@@ -47,0 +48,0 @@ TouchEventInput.prototype._getCenter = function (event) { |
@@ -24,12 +24,24 @@ var __extends = (this && this.__extends) || (function () { | ||
} | ||
TouchMouseEventInput.prototype.onEventStart = function (event) { | ||
this._firstTouch = event.hasOwnProperty("touches") | ||
? event | ||
: null; | ||
TouchMouseEventInput.prototype.onEventStart = function (event, inputButton) { | ||
var button = this._getButton(event); | ||
if (this._isTouchEvent(event)) { | ||
this._baseTouches = event.touches; | ||
} | ||
if (inputButton && !this._isValidButton(button, inputButton)) { | ||
return null; | ||
} | ||
this._preventMouseButton(event, button); | ||
return this.extendEvent(event); | ||
}; | ||
TouchMouseEventInput.prototype.onEventMove = function (event) { | ||
TouchMouseEventInput.prototype.onEventMove = function (event, inputButton) { | ||
if (inputButton && | ||
!this._isValidButton(this._getButton(event), inputButton)) { | ||
return null; | ||
} | ||
return this.extendEvent(event); | ||
}; | ||
TouchMouseEventInput.prototype.onEventEnd = function () { | ||
TouchMouseEventInput.prototype.onEventEnd = function (event) { | ||
if (this._isTouchEvent(event)) { | ||
this._baseTouches = event.touches; | ||
} | ||
return; | ||
@@ -41,9 +53,8 @@ }; | ||
TouchMouseEventInput.prototype._getScale = function (event) { | ||
if (!this._firstTouch || | ||
(this._isTouchEvent(event) && event.touches.length !== 2)) { | ||
return 1; | ||
} | ||
if (this._isTouchEvent(event)) { | ||
if (event.touches.length !== 2 || this._baseTouches.length < 2) { | ||
return 1; | ||
} | ||
return (this._getDistance(event.touches[0], event.touches[1]) / | ||
this._getDistance(this._firstTouch.touches[0], this._firstTouch.touches[1])); | ||
this._getDistance(this._baseTouches[0], this._baseTouches[1])); | ||
} | ||
@@ -85,5 +96,2 @@ return this.prevEvent.scale; | ||
}; | ||
TouchMouseEventInput.prototype._isTouchEvent = function (event) { | ||
return event.hasOwnProperty("touches"); | ||
}; | ||
return TouchMouseEventInput; | ||
@@ -90,0 +98,0 @@ }(EventInput)); |
@@ -34,3 +34,3 @@ var __assign = (this && this.__assign) || function () { | ||
}; | ||
EventManager.prototype.triggerChange = function (pos, isAccurate, depaPos, option, holding) { | ||
EventManager.prototype.triggerChange = function (pos, depaPos, option, holding) { | ||
if (holding === void 0) { holding = false; } | ||
@@ -53,7 +53,8 @@ var animationManager = this.animationManager; | ||
}; | ||
var result = this._axes.trigger(new ComponentEvent("change", param)); | ||
var event = new ComponentEvent("change", param); | ||
this._axes.trigger(event); | ||
if (inputEvent) { | ||
axisManager.set(param.set().destPos); | ||
} | ||
return result; | ||
return !event.isCanceled(); | ||
}; | ||
@@ -65,3 +66,5 @@ EventManager.prototype.triggerAnimationStart = function (param) { | ||
param.setTo = this._createUserControll(param.destPos, param.duration); | ||
return this._axes.trigger(new ComponentEvent("animationStart", param)); | ||
var event = new ComponentEvent("animationStart", param); | ||
this._axes.trigger(event); | ||
return !event.isCanceled(); | ||
}; | ||
@@ -68,0 +71,0 @@ EventManager.prototype.triggerAnimationEnd = function (isTrusted) { |
@@ -0,0 +0,0 @@ import Axes from "./Axes"; |
@@ -0,0 +0,0 @@ import Axes from "./Axes"; |
@@ -0,3 +1,14 @@ | ||
var __assign = (this && this.__assign) || function () { | ||
__assign = Object.assign || function(t) { | ||
for (var s, i = 1, n = arguments.length; i < n; i++) { | ||
s = arguments[i]; | ||
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) | ||
t[p] = s[p]; | ||
} | ||
return t; | ||
}; | ||
return __assign.apply(this, arguments); | ||
}; | ||
import { toAxis } from "./inputType/InputType"; | ||
import { isOutside, getInsidePosition, getCirculatedPos } from "./Coordinate"; | ||
import { isOutside, getInsidePosition, getCirculatedPos, isEndofBounce, } from "./Coordinate"; | ||
import { map, equal } from "./utils"; | ||
@@ -29,3 +40,3 @@ var InputObserver = (function () { | ||
this._interruptManager.setInterrupt(true); | ||
this._animationManager.stopAnimation(input.axes, changeOption); | ||
this._animationManager.stopAnimation(changeOption); | ||
if (!this._moveDistance) { | ||
@@ -43,2 +54,6 @@ this._eventManager.hold(this._axisManager.get(), changeOption); | ||
} | ||
var nativeEvent = event.srcEvent ? event.srcEvent : event; | ||
if (nativeEvent.__childrenAxesAlreadyChanged) { | ||
return; | ||
} | ||
var depaPos = this._moveDistance || this._axisManager.get(input.axes); | ||
@@ -61,2 +76,5 @@ var destPos; | ||
destPos = this._atOutside(destPos); | ||
if (!this.options.nested || !this._isEndofAxis(offset, depaPos, destPos)) { | ||
nativeEvent.__childrenAxesAlreadyChanged = true; | ||
} | ||
var changeOption = { | ||
@@ -68,7 +86,6 @@ input: input, | ||
var duration = this._animationManager.getDuration(destPos, depaPos); | ||
this._animationManager.stopAnimation(input.axes, changeOption); | ||
this._animationManager.animateTo(destPos, duration, changeOption); | ||
} | ||
else { | ||
var isCanceled = !this._eventManager.triggerChange(destPos, false, depaPos, changeOption, true); | ||
var isCanceled = !this._eventManager.triggerChange(destPos, depaPos, changeOption, true); | ||
if (isCanceled) { | ||
@@ -87,2 +104,6 @@ this._isStopped = true; | ||
} | ||
var nativeEvent = event.srcEvent ? event.srcEvent : event; | ||
if (nativeEvent.__childrenAxesAlreadyReleased) { | ||
velocity = velocity.map(function () { return 0; }); | ||
} | ||
var pos = this._axisManager.get(input.axes); | ||
@@ -100,3 +121,7 @@ var depaPos = this._axisManager.get(); | ||
})); | ||
nativeEvent.__childrenAxesAlreadyReleased = true; | ||
var duration = this._animationManager.getDuration(destPos, pos, inputDuration); | ||
if (duration === 0) { | ||
destPos = __assign({}, depaPos); | ||
} | ||
var param = { | ||
@@ -121,3 +146,3 @@ depaPos: depaPos, | ||
if (!isEqual) { | ||
this._eventManager.triggerChange(userWish.destPos, false, depaPos, changeOption, true); | ||
this._eventManager.triggerChange(userWish.destPos, depaPos, changeOption, true); | ||
} | ||
@@ -164,2 +189,9 @@ this._interruptManager.setInterrupt(false); | ||
}; | ||
InputObserver.prototype._isEndofAxis = function (offset, depaPos, destPos) { | ||
return this._axisManager.every(depaPos, function (value, option, key) { | ||
return offset[key] === 0 || | ||
(depaPos[key] === destPos[key] && | ||
isEndofBounce(value, option.range, option.bounce, option.circular)); | ||
}); | ||
}; | ||
return InputObserver; | ||
@@ -166,0 +198,0 @@ }()); |
@@ -0,0 +0,0 @@ import { MouseEventInput } from "../eventInput/MouseEventInput"; |
@@ -0,0 +0,0 @@ var __assign = (this && this.__assign) || function () { |
@@ -37,3 +37,2 @@ var __assign = (this && this.__assign) || function () { | ||
this.element = null; | ||
this._panFlag = false; | ||
this._enabled = false; | ||
@@ -44,3 +43,3 @@ this._activeInput = null; | ||
this.element = $(el); | ||
this.options = __assign({ inputType: ["touch", "mouse", "pointer"], scale: [1, 1], thresholdAngle: 45, threshold: 0, iOSEdgeSwipeThreshold: IOS_EDGE_THRESHOLD, releaseOnScroll: false }, options); | ||
this.options = __assign({ inputType: ["touch", "mouse", "pointer"], inputButton: ["left"], scale: [1, 1], thresholdAngle: 45, threshold: 0, iOSEdgeSwipeThreshold: IOS_EDGE_THRESHOLD, releaseOnScroll: false }, options); | ||
this._onPanstart = this._onPanstart.bind(this); | ||
@@ -69,5 +68,6 @@ this._onPanmove = this._onPanmove.bind(this); | ||
if (this._activeInput) { | ||
this._detachEvent(); | ||
this._detachElementEvent(); | ||
this._detachWindowEvent(this._activeInput); | ||
} | ||
this._attachEvent(observer); | ||
this._attachElementEvent(observer); | ||
this._originalCssProps = setCssProps(this.element); | ||
@@ -77,3 +77,4 @@ return this; | ||
PanInput.prototype.disconnect = function () { | ||
this._detachEvent(); | ||
this._detachElementEvent(); | ||
this._detachWindowEvent(this._activeInput); | ||
if (this._originalCssProps !== PREVENT_SCROLL_CSSPROPS) { | ||
@@ -101,8 +102,7 @@ setCssProps(this.element, this._originalCssProps); | ||
PanInput.prototype._onPanstart = function (event) { | ||
this._activeInput.onEventStart(event); | ||
if (!this._enabled || this._activeInput.getTouches(event) > 1) { | ||
var activeInput = this._activeInput; | ||
var panEvent = activeInput.onEventStart(event, this.options.inputButton); | ||
if (!panEvent || !this._enabled || activeInput.getTouches(event) > 1) { | ||
return; | ||
} | ||
var panEvent = this._activeInput.extendEvent(event); | ||
this._panFlag = false; | ||
if (panEvent.srcEvent.cancelable !== false) { | ||
@@ -113,4 +113,4 @@ var edgeThreshold = this.options.iOSEdgeSwipeThreshold; | ||
IS_IOS_SAFARI && panEvent.center.x > window.innerWidth - edgeThreshold; | ||
this._panFlag = true; | ||
this._activeInput.prevEvent = panEvent; | ||
this._attachWindowEvent(activeInput); | ||
activeInput.prevEvent = panEvent; | ||
} | ||
@@ -120,9 +120,7 @@ }; | ||
var _this = this; | ||
this._activeInput.onEventMove(event); | ||
if (!this._panFlag || | ||
!this._enabled || | ||
this._activeInput.getTouches(event) > 1) { | ||
var activeInput = this._activeInput; | ||
var panEvent = activeInput.onEventMove(event, this.options.inputButton); | ||
if (!panEvent || !this._enabled || activeInput.getTouches(event) > 1) { | ||
return; | ||
} | ||
var panEvent = this._activeInput.extendEvent(event); | ||
var _a = this.options, iOSEdgeSwipeThreshold = _a.iOSEdgeSwipeThreshold, releaseOnScroll = _a.releaseOnScroll; | ||
@@ -134,6 +132,7 @@ var userDirection = getDirectionByAngle(panEvent.angle, this.options.thresholdAngle); | ||
} | ||
if (this._activeInput.prevEvent && IS_IOS_SAFARI) { | ||
if (activeInput.prevEvent && IS_IOS_SAFARI) { | ||
var swipeLeftToRight = panEvent.center.x < 0; | ||
if (swipeLeftToRight) { | ||
this._observer.release(this, this._activeInput.prevEvent, [0, 0]); | ||
this._detachWindowEvent(activeInput); | ||
this._observer.release(this, activeInput.prevEvent, [0, 0]); | ||
return; | ||
@@ -149,3 +148,4 @@ } | ||
this._rightEdgeTimer = window.setTimeout(function () { | ||
_this._observer.release(_this, _this._activeInput.prevEvent, [0, 0]); | ||
_this._detachWindowEvent(activeInput); | ||
_this._observer.release(_this, activeInput.prevEvent, [0, 0]); | ||
}, 100); | ||
@@ -170,14 +170,13 @@ } | ||
} | ||
this._activeInput.prevEvent = panEvent; | ||
activeInput.prevEvent = panEvent; | ||
}; | ||
PanInput.prototype._onPanend = function (event) { | ||
this._activeInput.onEventEnd(event); | ||
if (!this._panFlag || | ||
!this._enabled || | ||
this._activeInput.getTouches(event) !== 0) { | ||
var activeInput = this._activeInput; | ||
activeInput.onEventEnd(event); | ||
if (!this._enabled || activeInput.getTouches(event) !== 0) { | ||
return; | ||
} | ||
this._panFlag = false; | ||
this._detachWindowEvent(activeInput); | ||
clearTimeout(this._rightEdgeTimer); | ||
var prevEvent = this._activeInput.prevEvent; | ||
var prevEvent = activeInput.prevEvent; | ||
var velocity = this._getOffset([ | ||
@@ -191,6 +190,28 @@ Math.abs(prevEvent.velocityX) * (prevEvent.offsetX < 0 ? -1 : 1), | ||
this._observer.release(this, prevEvent, velocity); | ||
activeInput.prevEvent = null; | ||
}; | ||
PanInput.prototype._attachEvent = function (observer) { | ||
PanInput.prototype._attachWindowEvent = function (activeInput) { | ||
var _this = this; | ||
activeInput === null || activeInput === void 0 ? void 0 : activeInput.move.forEach(function (event) { | ||
window.addEventListener(event, _this._onPanmove); | ||
}); | ||
activeInput === null || activeInput === void 0 ? void 0 : activeInput.end.forEach(function (event) { | ||
window.addEventListener(event, _this._onPanend); | ||
}); | ||
}; | ||
PanInput.prototype._detachWindowEvent = function (activeInput) { | ||
var _this = this; | ||
activeInput === null || activeInput === void 0 ? void 0 : activeInput.move.forEach(function (event) { | ||
window.removeEventListener(event, _this._onPanmove); | ||
}); | ||
activeInput === null || activeInput === void 0 ? void 0 : activeInput.end.forEach(function (event) { | ||
window.removeEventListener(event, _this._onPanend); | ||
}); | ||
}; | ||
PanInput.prototype._attachElementEvent = function (observer) { | ||
var _this = this; | ||
var activeInput = convertInputType(this.options.inputType); | ||
if (!activeInput) { | ||
throw new Error("There is currently no inputType available for current device. There must be at least one available inputType."); | ||
} | ||
this._observer = observer; | ||
@@ -200,23 +221,13 @@ this._enabled = true; | ||
activeInput === null || activeInput === void 0 ? void 0 : activeInput.start.forEach(function (event) { | ||
_this.element.addEventListener(event, _this._onPanstart, false); | ||
var _a; | ||
(_a = _this.element) === null || _a === void 0 ? void 0 : _a.addEventListener(event, _this._onPanstart); | ||
}); | ||
activeInput === null || activeInput === void 0 ? void 0 : activeInput.move.forEach(function (event) { | ||
window.addEventListener(event, _this._onPanmove, false); | ||
}); | ||
activeInput === null || activeInput === void 0 ? void 0 : activeInput.end.forEach(function (event) { | ||
window.addEventListener(event, _this._onPanend, false); | ||
}); | ||
}; | ||
PanInput.prototype._detachEvent = function () { | ||
PanInput.prototype._detachElementEvent = function () { | ||
var _this = this; | ||
var activeInput = this._activeInput; | ||
activeInput === null || activeInput === void 0 ? void 0 : activeInput.start.forEach(function (event) { | ||
_this.element.removeEventListener(event, _this._onPanstart, false); | ||
var _a; | ||
(_a = _this.element) === null || _a === void 0 ? void 0 : _a.removeEventListener(event, _this._onPanstart); | ||
}); | ||
activeInput === null || activeInput === void 0 ? void 0 : activeInput.move.forEach(function (event) { | ||
window.removeEventListener(event, _this._onPanmove, false); | ||
}); | ||
activeInput === null || activeInput === void 0 ? void 0 : activeInput.end.forEach(function (event) { | ||
window.removeEventListener(event, _this._onPanend, false); | ||
}); | ||
this._enabled = false; | ||
@@ -223,0 +234,0 @@ this._observer = null; |
@@ -62,4 +62,5 @@ var __assign = (this && this.__assign) || function () { | ||
PinchInput.prototype._onPinchStart = function (event) { | ||
this._activeInput.onEventStart(event); | ||
if (!this._enabled || this._activeInput.getTouches(event) !== 2) { | ||
var activeInput = this._activeInput; | ||
var pinchEvent = activeInput.onEventStart(event); | ||
if (!pinchEvent || !this._enabled || activeInput.getTouches(event) !== 2) { | ||
return; | ||
@@ -70,22 +71,23 @@ } | ||
this._pinchFlag = true; | ||
var pinchEvent = this._activeInput.extendEvent(event); | ||
this._activeInput.prevEvent = pinchEvent; | ||
activeInput.prevEvent = pinchEvent; | ||
}; | ||
PinchInput.prototype._onPinchMove = function (event) { | ||
this._activeInput.onEventMove(event); | ||
if (!this._pinchFlag || | ||
var activeInput = this._activeInput; | ||
var pinchEvent = activeInput.onEventMove(event); | ||
if (!pinchEvent || | ||
!this._pinchFlag || | ||
!this._enabled || | ||
this._activeInput.getTouches(event) !== 2) { | ||
activeInput.getTouches(event) !== 2) { | ||
return; | ||
} | ||
var pinchEvent = this._activeInput.extendEvent(event); | ||
var offset = this._getOffset(pinchEvent.scale, this._activeInput.prevEvent.scale); | ||
var offset = this._getOffset(pinchEvent.scale, activeInput.prevEvent.scale); | ||
this._observer.change(this, event, toAxis(this.axes, [offset])); | ||
this._activeInput.prevEvent = pinchEvent; | ||
activeInput.prevEvent = pinchEvent; | ||
}; | ||
PinchInput.prototype._onPinchEnd = function (event) { | ||
this._activeInput.onEventEnd(event); | ||
var activeInput = this._activeInput; | ||
activeInput.onEventEnd(event); | ||
if (!this._pinchFlag || | ||
!this._enabled || | ||
this._activeInput.getTouches(event) > 2) { | ||
activeInput.getTouches(event) >= 2) { | ||
return; | ||
@@ -96,3 +98,3 @@ } | ||
this._pinchFlag = false; | ||
this._activeInput.prevEvent = null; | ||
activeInput.prevEvent = null; | ||
}; | ||
@@ -102,2 +104,5 @@ PinchInput.prototype._attachEvent = function (observer) { | ||
var activeInput = convertInputType(this.options.inputType); | ||
if (!activeInput) { | ||
throw new Error("There is currently no inputType available for current device. There must be at least one available inputType."); | ||
} | ||
this._observer = observer; | ||
@@ -104,0 +109,0 @@ this._enabled = true; |
@@ -31,10 +31,10 @@ var __extends = (this && this.__extends) || (function () { | ||
RotatePanInput.prototype._onPanstart = function (event) { | ||
this._activeInput.onEventStart(event); | ||
if (!this.isEnabled) { | ||
var activeInput = this._activeInput; | ||
var panEvent = activeInput.onEventStart(event, this.options.inputButton); | ||
if (!panEvent || !this.isEnabled()) { | ||
return; | ||
} | ||
var rect = this.element.getBoundingClientRect(); | ||
var panEvent = this._activeInput.extendEvent(event); | ||
this._observer.hold(this, panEvent); | ||
this._panFlag = true; | ||
this._attachWindowEvent(activeInput); | ||
this._coefficientForDistanceToAngle = 360 / (rect.width * Math.PI); | ||
@@ -47,10 +47,10 @@ this._rotateOrigin = [ | ||
this._triggerChange(panEvent); | ||
this._activeInput.prevEvent = panEvent; | ||
activeInput.prevEvent = panEvent; | ||
}; | ||
RotatePanInput.prototype._onPanmove = function (event) { | ||
this._activeInput.onEventMove(event); | ||
if (!this._panFlag || !this.isEnabled) { | ||
var activeInput = this._activeInput; | ||
var panEvent = activeInput.onEventMove(event, this.options.inputButton); | ||
if (!panEvent || !this.isEnabled()) { | ||
return; | ||
} | ||
var panEvent = this._activeInput.extendEvent(event); | ||
if (panEvent.srcEvent.cancelable !== false) { | ||
@@ -61,10 +61,11 @@ panEvent.srcEvent.preventDefault(); | ||
this._triggerChange(panEvent); | ||
this._activeInput.prevEvent = panEvent; | ||
activeInput.prevEvent = panEvent; | ||
}; | ||
RotatePanInput.prototype._onPanend = function (event) { | ||
this._activeInput.onEventEnd(event); | ||
if (!this._panFlag || !this.isEnabled) { | ||
var activeInput = this._activeInput; | ||
activeInput.onEventEnd(event); | ||
if (!this.isEnabled()) { | ||
return; | ||
} | ||
var prevEvent = this._activeInput.prevEvent; | ||
var prevEvent = activeInput.prevEvent; | ||
this._triggerChange(prevEvent); | ||
@@ -77,3 +78,4 @@ var vx = prevEvent.velocityX; | ||
]); | ||
this._panFlag = false; | ||
activeInput.prevEvent = null; | ||
this._detachWindowEvent(activeInput); | ||
}; | ||
@@ -80,0 +82,0 @@ RotatePanInput.prototype._triggerChange = function (event) { |
@@ -0,0 +0,0 @@ var __assign = (this && this.__assign) || function () { |
@@ -0,0 +0,0 @@ var InterruptManager = (function () { |
@@ -157,3 +157,3 @@ import { window } from "./browser"; | ||
var oldCssProps = {}; | ||
if (element.style) { | ||
if (element && element.style) { | ||
var newCssProps_1 = originalCssProps | ||
@@ -160,0 +160,0 @@ ? originalCssProps |
{ | ||
"name": "@egjs/axes", | ||
"version": "3.0.0", | ||
"version": "3.0.1-snapshot", | ||
"description": "A module used to change the information of user action entered by various input devices such as touch screen or mouse into the logical virtual coordinates. You can easily create a UI that responds to user actions.", | ||
@@ -5,0 +5,0 @@ "sideEffects": false, |
241
README.md
@@ -1,56 +0,48 @@ | ||
# egjs-axes [](https://badge.fury.io/js/%40egjs%2Faxes) [](https://travis-ci.org/naver/egjs-axes) [](https://coveralls.io/github/naver/egjs-axes?branch=master) | ||
<h1 align="center" style="max-width: 100%;"> | ||
<img width="256" alt="Axes Logo" src="https://raw.githubusercontent.com/naver/egjs-axes/master/demo/static/img/axes.svg" style="max-width: 256px;" /><br/> | ||
<a href="https://naver.github.io/egjs-axes/">@egjs/axes</a> | ||
</h1> | ||
A module used to change the information of user action entered by various input devices such as touch screen or mouse into the logical virtual coordinates. | ||
<p align="center" style="line-height: 2;"> | ||
<a href="https://www.npmjs.com/package/@egjs/axes" target="_blank"><img src="https://img.shields.io/npm/v/@egjs/axes.svg?style=flat-square&color=007acc&label=version&logo=NPM" alt="version" /></a> | ||
<a href="https://www.npmjs.com/package/@egjs/axes" target="_blank"><img alt="npm weekly downloads" src="https://img.shields.io/npm/dw/@egjs/axes?logo=npm&style=flat-square&color=007acc" /></a> | ||
<a href="https://www.npmjs.com/package/@egjs/axes" target="_blank"><img alt="npm bundle size (scoped)" src="https://img.shields.io/bundlephobia/minzip/@egjs/axes.svg?style=flat-square&label=%F0%9F%92%BE%20gzipped&color=007acc" /></a> | ||
<a href="https://travis-ci.org/naver/egjs-axes" target="_blank"><img alt="Build Status" src="https://api.travis-ci.org/naver/egjs-axes.svg?branch=master" /></a> | ||
<a href="https://coveralls.io/github/naver/egjs-axes?branch=master&style=flat-square" target="_blank"><img alt="Coveralls github" src="https://img.shields.io/coveralls/github/naver/egjs-axes.svg?style=flat-square&label=%E2%9C%85%20coverage" /></a> | ||
<a href="https://github.com/naver/egjs-axes/blob/main/LICENSE" target="_blank"><img src="https://img.shields.io/static/v1?style=flat-square&label=%F0%9F%93%9C%20license&message=MIT&color=08CE5D" /></a> | ||
<img src="https://img.shields.io/static/v1.svg?label=&message=TypeScript&color=294E80&style=flat-square&logo=typescript" /> | ||
</p> | ||
You can easily create a UI that responds to user actions. | ||
<h3 align="center"> | ||
<a href="https://naver.github.io/egjs-axes/">Demo</a> / <a href="https://naver.github.io/egjs-axes/docs/api/Axes">Documentation</a> / <a href="https://naver.github.io/egjs/"><img height="20" src="https://naver.github.io/egjs/img/logo.svg"/> Other components</a> | ||
</h3> | ||
## Documents | ||
- [Get Started and Demos](https://naver.github.io/egjs-axes/) | ||
- [API documentation](https://naver.github.io/egjs-axes/release/latest/doc/) | ||
- [How to create an ui that responds to user actions using eg.axes](https://medium.com/@sculove/how-to-create-a-ui-that-responds-to-user-actions-using-eg-axes-5037d180d5ab) | ||
- [How to create a custom InputType](https://github.com/naver/egjs-axes/wiki/How-to-create-a-custom-InputType) | ||
<p align="center"> | ||
<b>You can easily create a UI that responds to user actions.</b><br /> | ||
</p> | ||
----- | ||
<img src="https://github.com/naver/egjs-axes/raw/master/demo/static/img/demos/structure.png" style="width:100%"> | ||
## Third party applications | ||
- [@egjs/react-axes](https://github.com/naver/egjs-axes/tree/master/packages/react): A react component that can easily use egjs-axes | ||
## ✨ Features | ||
- Axes translate user action entered by various input devices into the virtual coordinate system. | ||
- You can create an UI that responds to user actions. | ||
- Provides five input types. These can be associated with a user interface. | ||
- [PanInput](https://naver.github.io/egjs-axes/docs/api/PanInput) | ||
- [RotatePanInput](https://naver.github.io/egjs-axes/docs/api/RotatePanInput) | ||
- [PinchInput](https://naver.github.io/egjs-axes/docs/api/PinchInput) | ||
- [WheelInput](https://naver.github.io/egjs-axes/docs/api/WheelInput) | ||
- [MoveKeyInput](https://naver.github.io/egjs-axes/docs/api/MoveKeyInput) | ||
- Provides six types of events generated by InputTypes. | ||
- [hold](https://naver.github.io/egjs-axes/docs/api/Axes#event-hold) | ||
- [change](https://naver.github.io/egjs-axes/docs/api/Axes#event-change) | ||
- [release](https://naver.github.io/egjs-axes/docs/api/Axes#event-release) | ||
- [animationStart](https://naver.github.io/egjs-axes/docs/api/Axes#event-animationStart) | ||
- [animationEnd](https://naver.github.io/egjs-axes/docs/api/Axes#event-animationEnd) | ||
- [finish](https://naver.github.io/egjs-axes/docs/api/Axes#event-finish) | ||
- Moreover, you can create your own custom InputTypes! | ||
## Download and Installation | ||
Download dist files from repo directly or install it via npm. | ||
### For development (Uncompressed) | ||
You can download the uncompressed files for development | ||
- Latest : https://naver.github.io/egjs-axes/release/latest/axes.js | ||
- Specific version : https://naver.github.io/egjs-axes/release/[VERSION]/axes.js | ||
### For production (Compressed) | ||
You can download the compressed files for production | ||
- Latest : https://naver.github.io/egjs-axes/release/latest/axes.min.js | ||
- Specific version : https://naver.github.io/egjs-axes/release/[VERSION]/axes.min.js | ||
### Packaged version (with Dependencies) | ||
> Packaged version is not an official distribution. | ||
> Is just to provide for ease use of 'egjs-axes' with dependency. | ||
- **Latest** | ||
- https://naver.github.io/egjs-axes/release/latest/axes.pkgd.js | ||
- https://naver.github.io/egjs-axes/release/latest/axes.pkgd.min.js | ||
- **Specific version(3.x)** | ||
- https://naver.github.io/egjs-axes/release/[VERSION]/axes.pkgd.js | ||
- https://naver.github.io/egjs-axes/release/[VERSION]/axes.pkgd.min.js | ||
- **Specific version(under 2.x)** | ||
- https://naver.github.io/egjs-axes/release/[VERSION]/dist/axes.pkgd.js | ||
- https://naver.github.io/egjs-axes/release/[VERSION]/dist/axes.pkgd.min.js | ||
### Installation with npm | ||
The following command shows how to install egjs-axes using npm. | ||
## ⚙️ Installation | ||
#### npm | ||
```bash | ||
@@ -60,105 +52,100 @@ $ npm install @egjs/axes | ||
#### CDN | ||
- jsDelivr: https://cdn.jsdelivr.net/npm/@egjs/axes/dist/ | ||
- unpkg: https://unpkg.com/@egjs/axes@latest/dist/ | ||
- cdnjs: https://cdnjs.com/libraries/egjs-axes | ||
## Supported Browsers | ||
The following are the supported browsers. | ||
## 🏃 Quick Start | ||
#### 1. Set up your HTML | ||
|Internet Explorer|Chrome|Firefox|Safari|iOS|Android| | ||
|---|---|---|---|---|---| | ||
|10+|Latest|Latest|Latest|7+|2.3+(except 3.x)| | ||
## Dependency | ||
egjs-axes has the dependencies for the following libraries: | ||
|[egjs-component](http://github.com/naver/egjs-component)| | ||
|----| | ||
|3.0.1+| | ||
## Edge swipe issue in iOS Safari | ||
When swipe on iOS safari edge, clientX bounces or stops the touch event. | ||
* When swiping from left to right, clientX is minus. | ||
* Swiping from right to left stops the touch event. | ||
In Axes, this was solved by forcing the `release` event in this problem. | ||
* hold -> change -> **release(forced release)** | ||
## How to start developing egjs-axes? | ||
For anyone interested to develop egjs-axes, follow the instructions below. | ||
### Development Environment | ||
#### 1. Clone the repository | ||
Clone the egjs-axes repository and install the dependency modules. | ||
```bash | ||
# Clone the repository. | ||
$ git clone https://github.com/naver/egjs-axes.git | ||
``` html | ||
<div id="area"></div> | ||
``` | ||
#### 2. Install dependencies | ||
`npm` is supported. | ||
#### 2. Load files or import library | ||
##### ES5 | ||
``` html | ||
<script src="https://naver.github.io/egjs-axes/release/latest/axes.pkgd.js"></script> | ||
``` | ||
# Install the dependency modules. | ||
$ npm install | ||
```js | ||
var Axes = eg.Axes; | ||
var PanInput = Axes.PanInput; | ||
var PinchInput = Axes.PinchInput; | ||
var WheelInput = Axes.WheelInput; | ||
var MoveKeyInput = Axes.MoveKeyInput; | ||
``` | ||
#### 3. Build | ||
##### ES6+ | ||
```js | ||
import Axes, {PanInput, PinchInput, WheelInput, MoveKeyInput} from "@egjs/axes"; | ||
``` | ||
Use npm script to build eg.Axes | ||
#### 3. Initialize Axes | ||
```bash | ||
# Run webpack-dev-server for development | ||
$ npm start | ||
```js | ||
// create eg.Axes with option | ||
const axes = new Axes({ | ||
something1: { range: [0, 100] }, | ||
something2: { range: [0, 100] }, | ||
somethingN: { range: [-200, 200] } | ||
}); | ||
``` | ||
# Build | ||
$ npm run build | ||
#### 4. Attach event handlers | ||
```js | ||
axes.on({ | ||
"change": evt => /* ... */ | ||
}); | ||
``` | ||
# Generate jsdoc | ||
$ npm run jsdoc | ||
#### 5. Initialize InputTypes to use | ||
```js | ||
const panInput = new PanInput("#area"); | ||
const wheelInput = new WheelInput("#wArea"); | ||
const pinchInput = new PinchInput("#pArea"); | ||
const movekeyInput = new MoveKeyInput("#mArea"); | ||
``` | ||
Two folders will be created after complete build is completed. | ||
#### 6. Connect eg.Axes and InputTypes | ||
- **dist** folder: Includes the **axes.js** and **axes.min.js** files. | ||
- **doc** folder: Includes API documentation. The home page for the documentation is **doc/index.html**. | ||
### Linting | ||
To keep the same code style, we adopted [TSLint](https://palantir.github.io/tslint/) to maintain our code quality. | ||
```bash | ||
$ npm run lint | ||
```js | ||
axes.connect(["something2", "somethingN"], panInput); | ||
axes.connect(["something1"], wheelInput); | ||
axes.connect(["something2"], pinchInput); | ||
axes.connect(["something1", "something2"], movekeyInput); | ||
``` | ||
### Test | ||
#### 7. Enjoy! | ||
You can change the value of the axis through touch screen, mouse or anything else. | ||
Once you created a branch and done with development, you must perform a test running `npm run test` command before you push code to a remote repository. | ||
## 🌐 Supported Browsers | ||
|<img width="20" src="https://simpleicons.org/icons/internetexplorer.svg" alt="IE" />|<img width="20" src="https://simpleicons.org/icons/googlechrome.svg" alt="Chrome" />|<img width="20" src="https://simpleicons.org/icons/firefoxbrowser.svg" alt="Firefox" />|<img width="20" src="https://simpleicons.org/icons/safari.svg" alt="Safari" />|<img width="20" src="https://simpleicons.org/icons/apple.svg" alt="iOS" />|<img width="20" src="https://simpleicons.org/icons/android.svg" alt="Android" />| | ||
|:---:|:---:|:---:|:---:|:---:|:---:| | ||
|10+|Latest|Latest|Latest|7+|2.3+(except 3.x)| | ||
```bash | ||
$ npm run test | ||
``` | ||
Running a `npm run test` command will start [Mocha](https://mochajs.org/) tests via [Karma-runner](https://karma-runner.github.io/). | ||
## 🔧 Dependency | ||
egjs-axes has the dependencies for the following libraries: | ||
|[eg.Component](http://github.com/naver/egjs-component)|[eg.Agent](http://github.com/naver/egjs-agent)| | ||
|----|----| | ||
|3.0.1+|2.2.1+| | ||
## Bug Report | ||
## 📼 Demos | ||
Check our [Demos](https://naver.github.io/egjs-axes/). | ||
If you find a bug, please report it to us using the [Issues](https://github.com/naver/egjs-axes/issues) page on GitHub. | ||
## 📖 Documentation | ||
See [Documentation](https://naver.github.io/egjs-axes/docs/api/Axes) page. | ||
## 🙌 Contributing | ||
See [CONTRIBUTING.md](https://github.com/naver/egjs-axes/blob/master/CONTRIBUTING.md). | ||
## License | ||
egjs-axes is released under the [MIT license](https://github.com/naver/egjs-axes/blob/master/LICENSE). | ||
## 📝 Feedback & Bug Report | ||
Please file an [Issue](https://github.com/naver/egjs-axes/issues). | ||
## 📜 License | ||
@egjs/axes is released under the [MIT license](https://github.com/naver/egjs-axes/blob/master/LICENSE). | ||
``` | ||
Copyright (c) 2017 NAVER Corp. | ||
Copyright (c) 2015 NAVER Corp. | ||
Permission is hereby granted, free of charge, to any person obtaining a copy | ||
@@ -170,6 +157,4 @@ of this software and associated documentation files (the "Software"), to deal | ||
furnished to do so, subject to the following conditions: | ||
The above copyright notice and this permission notice shall be included in | ||
all copies or substantial portions of the Software. | ||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
@@ -183,1 +168,5 @@ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
``` | ||
<p align="center"> | ||
<a href="https://naver.github.io/egjs/"><img height="50" src="https://naver.github.io/egjs/img/logotype1_black.svg" /></a> <a href="https://github.com/naver"><img height="50" src="https://naver.github.io/OpenSourceGuide/book/assets/naver_logo.png" /></a> | ||
</p> |
@@ -99,5 +99,5 @@ import { | ||
public stopAnimation(axes: string[], option?: ChangeEventOption): void { | ||
if (this._animateParam && axes.length) { | ||
const orgPos: Axis = this.axisManager.get(axes); | ||
public stopAnimation(option?: ChangeEventOption): void { | ||
if (this._animateParam) { | ||
const orgPos: Axis = this.axisManager.get(); | ||
const pos: Axis = this.axisManager.map(orgPos, (v, opt) => | ||
@@ -107,3 +107,3 @@ getCirculatedPos(v, opt.range, opt.circular as boolean[]) | ||
if (!every(pos, (v, k) => orgPos[k] === v)) { | ||
this.eventManager.triggerChange(pos, false, orgPos, option, !!option); | ||
this.eventManager.triggerChange(pos, orgPos, option, !!option); | ||
} | ||
@@ -139,3 +139,3 @@ this._animateParam = null; | ||
); | ||
this.stopAnimation(Object.keys(this.axisManager.get())); | ||
this.stopAnimation(); | ||
this.animateTo(destPos, this.getDuration(pos, destPos), option); | ||
@@ -194,2 +194,3 @@ } | ||
): void { | ||
this.stopAnimation(); | ||
const param: AnimationParam = this._createAnimationParam( | ||
@@ -241,3 +242,2 @@ destPos, | ||
const axes: string[] = Object.keys(pos); | ||
this.stopAnimation(axes); | ||
const orgPos: Axis = this.axisManager.get(axes); | ||
@@ -271,2 +271,3 @@ | ||
} else { | ||
this.stopAnimation(); | ||
this.eventManager.triggerChange(movedPos); | ||
@@ -393,7 +394,3 @@ this.finish(false); | ||
); | ||
const isCanceled = !this.eventManager.triggerChange( | ||
toPos, | ||
false, | ||
prevPos | ||
); | ||
const isCanceled = !this.eventManager.triggerChange(toPos, prevPos); | ||
@@ -414,7 +411,3 @@ prevPos = toPos; | ||
) { | ||
this.eventManager.triggerChange( | ||
animateParam.destPos, | ||
true, | ||
prevPos | ||
); | ||
this.eventManager.triggerChange(animateParam.destPos, prevPos); | ||
} | ||
@@ -432,3 +425,3 @@ complete(); | ||
} else { | ||
this.eventManager.triggerChange(param.destPos, true); | ||
this.eventManager.triggerChange(param.destPos); | ||
complete(); | ||
@@ -435,0 +428,0 @@ } |
@@ -29,2 +29,3 @@ import Component from "@egjs/component"; | ||
round?: number; | ||
nested?: boolean; | ||
} | ||
@@ -62,2 +63,3 @@ | ||
* [상세내용](https://github.com/naver/egjs-axes/wiki/round-option)</ko> | ||
* @param {Boolean} [nested=false] Whether the event propagates to other instances when the coordinates reach the end of the movable area <ko>좌표가 이동 가능한 영역의 끝까지 도달했을 때 다른 인스턴스들로의 이벤트 전파 여부</ko> | ||
**/ | ||
@@ -246,2 +248,3 @@ | ||
round: null, | ||
nested: false, | ||
}, | ||
@@ -463,3 +466,3 @@ ...options, | ||
public stopAnimation() { | ||
this.animationManager.stopAnimation(Object.keys(this.axisManager.get())); | ||
this.animationManager.stopAnimation(); | ||
return this; | ||
@@ -466,0 +469,0 @@ } |
@@ -24,2 +24,15 @@ export const getInsidePosition = ( | ||
// determine whether position has reached the maximum moveable area | ||
export const isEndofBounce = ( | ||
pos: number, | ||
range: number[], | ||
bounce: number[], | ||
circular: boolean[] | ||
): boolean => { | ||
return ( | ||
(!circular[0] && pos === range[0] - bounce[0]) || | ||
(!circular[1] && pos === range[1] + bounce[1]) | ||
); | ||
}; | ||
export const getDuration = (distance: number, deceleration): number => { | ||
@@ -26,0 +39,0 @@ const duration = Math.sqrt((distance / deceleration) * 2); |
@@ -10,6 +10,6 @@ import { InputEventType, ExtendedEvent } from "../types"; | ||
private _firstTouch: TouchEvent; | ||
private _baseTouches: TouchList; | ||
public onEventStart(event: InputEventType): ExtendedEvent { | ||
this._firstTouch = event as TouchEvent; | ||
this._baseTouches = (event as TouchEvent).touches; | ||
return this.extendEvent(event); | ||
@@ -22,3 +22,4 @@ } | ||
public onEventEnd(): void { | ||
public onEventEnd(event: InputEventType): void { | ||
this._baseTouches = (event as TouchEvent).touches; | ||
return; | ||
@@ -32,3 +33,3 @@ } | ||
protected _getScale(event: TouchEvent): number { | ||
if (event.touches.length !== 2) { | ||
if (event.touches.length !== 2 || this._baseTouches.length < 2) { | ||
return null; // TODO: consider calculating non-pinch gesture scale | ||
@@ -38,6 +39,3 @@ } | ||
this._getDistance(event.touches[0], event.touches[1]) / | ||
this._getDistance( | ||
this._firstTouch.touches[0], | ||
this._firstTouch.touches[1] | ||
) | ||
this._getDistance(this._baseTouches[0], this._baseTouches[1]) | ||
); | ||
@@ -44,0 +42,0 @@ } |
@@ -10,8 +10,8 @@ import { InputEventType, ExtendedEvent } from "../types"; | ||
private _firstTouch: TouchEvent; | ||
private _baseTouches: TouchList; | ||
public onEventStart(event: InputEventType): ExtendedEvent { | ||
this._firstTouch = event.hasOwnProperty("touches") | ||
? (event as TouchEvent) | ||
: null; | ||
if (this._isTouchEvent(event)) { | ||
this._baseTouches = (event as TouchEvent).touches; | ||
} | ||
return this.extendEvent(event); | ||
@@ -24,3 +24,6 @@ } | ||
public onEventEnd(): void { | ||
public onEventEnd(event: InputEventType): void { | ||
if (this._isTouchEvent(event)) { | ||
this._baseTouches = (event as TouchEvent).touches; | ||
} | ||
return; | ||
@@ -34,9 +37,9 @@ } | ||
protected _getScale(event: MouseEvent | TouchEvent): number { | ||
if ( | ||
!this._firstTouch || | ||
(this._isTouchEvent(event) && (event as TouchEvent).touches.length !== 2) | ||
) { | ||
return 1; // TODO: consider calculating non-pinch gesture scale | ||
} | ||
if (this._isTouchEvent(event)) { | ||
if ( | ||
(event as TouchEvent).touches.length !== 2 || | ||
this._baseTouches.length < 2 | ||
) { | ||
return 1; // TODO: consider calculating non-pinch gesture scale | ||
} | ||
return ( | ||
@@ -46,7 +49,3 @@ this._getDistance( | ||
(event as TouchEvent).touches[1] | ||
) / | ||
this._getDistance( | ||
this._firstTouch.touches[0], | ||
this._firstTouch.touches[1] | ||
) | ||
) / this._getDistance(this._baseTouches[0], this._baseTouches[1]) | ||
); | ||
@@ -53,0 +52,0 @@ } |
@@ -102,2 +102,3 @@ import { ComponentEvent } from "@egjs/component"; | ||
* @property {Object.<string, number>} delta The movement variation of coordinate <ko>좌표의 변화량</ko> | ||
* @property {Object.<string, number>} bounceRatio If the coordinates at the time of release are in the bounce area, the current bounce value divided by the maximum bounce value <ko>손을 뗐을 때의 좌표가 bounce 영역에 있는 경우 현재 bounce된 값을 최대 bounce 값으로 나눈 수치.</ko> | ||
* @property {Object} inputEvent The event object received from inputType <ko>inputType으로 부터 받은 이벤트 객체</ko> | ||
@@ -154,2 +155,3 @@ * @property {Object} input The instance of inputType where the event occurred<ko>이벤트가 발생한 inputType 인스턴스</ko> | ||
* @property {Object.<string, number>} delta The movement variation of coordinate <ko>좌표의 변화량</ko> | ||
* @property {Object.<string, number>} bounceRatio If the current coordinates are in the bounce area, the current bounce value divided by the maximum bounce value <ko>현재 좌표가 bounce 영역에 있는 경우 현재 bounce된 값을 최대 bounce 값으로 나눈 수치.</ko> | ||
* @property {Boolean} holding Indicates whether a user holds an element on the screen of the device.<ko>사용자가 기기의 화면을 누르고 있는지 여부</ko> | ||
@@ -187,3 +189,2 @@ * @property {Object} input The instance of inputType where the event occurred. If the value is changed by animation, it returns 'null'.<ko>이벤트가 발생한 inputType 인스턴스. 애니메이션에 의해 값이 변경될 경우에는 'null'을 반환한다.</ko> | ||
pos: Axis, | ||
isAccurate?: boolean, | ||
depaPos?: Axis, | ||
@@ -209,3 +210,4 @@ option?: ChangeEventOption, | ||
}; | ||
const result = this._axes.trigger(new ComponentEvent("change", param)); | ||
const event = new ComponentEvent("change", param); | ||
this._axes.trigger(event); | ||
@@ -218,3 +220,3 @@ if (inputEvent) { | ||
return result; | ||
return !event.isCanceled(); | ||
} | ||
@@ -259,3 +261,3 @@ | ||
*/ | ||
public triggerAnimationStart(param: AnimationParam): Axes { | ||
public triggerAnimationStart(param: AnimationParam): boolean { | ||
const { roundPos, roundDepa } = this._getRoundPos( | ||
@@ -268,5 +270,8 @@ param.destPos, | ||
param.setTo = this._createUserControll(param.destPos, param.duration); | ||
return this._axes.trigger( | ||
new ComponentEvent("animationStart", param as OnAnimationStart) | ||
const event = new ComponentEvent( | ||
"animationStart", | ||
param as OnAnimationStart | ||
); | ||
this._axes.trigger(event); | ||
return !event.isCanceled(); | ||
} | ||
@@ -273,0 +278,0 @@ |
@@ -7,3 +7,8 @@ import { InterruptManager } from "./InterruptManager"; | ||
import { AxesOption } from "./Axes"; | ||
import { isOutside, getInsidePosition, getCirculatedPos } from "./Coordinate"; | ||
import { | ||
isOutside, | ||
getInsidePosition, | ||
getCirculatedPos, | ||
isEndofBounce, | ||
} from "./Coordinate"; | ||
import { map, equal } from "./utils"; | ||
@@ -55,3 +60,3 @@ import { AnimationParam } from "./types"; | ||
this._interruptManager.setInterrupt(true); | ||
this._animationManager.stopAnimation(input.axes, changeOption); | ||
this._animationManager.stopAnimation(changeOption); | ||
if (!this._moveDistance) { | ||
@@ -72,2 +77,6 @@ this._eventManager.hold(this._axisManager.get(), changeOption); | ||
} | ||
const nativeEvent = event.srcEvent ? event.srcEvent : event; | ||
if (nativeEvent.__childrenAxesAlreadyChanged) { | ||
return; | ||
} | ||
let depaPos: Axis = this._moveDistance || this._axisManager.get(input.axes); | ||
@@ -96,2 +105,7 @@ let destPos: Axis; | ||
destPos = this._atOutside(destPos); | ||
if (!this.options.nested || !this._isEndofAxis(offset, depaPos, destPos)) { | ||
nativeEvent.__childrenAxesAlreadyChanged = true; | ||
} | ||
const changeOption: ChangeEventOption = { | ||
@@ -103,3 +117,2 @@ input, | ||
const duration = this._animationManager.getDuration(destPos, depaPos); | ||
this._animationManager.stopAnimation(input.axes, changeOption); | ||
this._animationManager.animateTo(destPos, duration, changeOption); | ||
@@ -109,3 +122,2 @@ } else { | ||
destPos, | ||
false, | ||
depaPos, | ||
@@ -136,2 +148,6 @@ changeOption, | ||
} | ||
const nativeEvent = event.srcEvent ? event.srcEvent : event; | ||
if (nativeEvent.__childrenAxesAlreadyReleased) { | ||
velocity = velocity.map(() => 0); | ||
} | ||
const pos: Axis = this._axisManager.get(input.axes); | ||
@@ -141,3 +157,3 @@ const depaPos: Axis = this._axisManager.get(); | ||
const offset = toAxis(input.axes, displacement); | ||
const destPos: Axis = this._axisManager.get( | ||
let destPos: Axis = this._axisManager.get( | ||
this._axisManager.map(offset, (v, opt, k) => { | ||
@@ -156,2 +172,3 @@ if (opt.circular && (opt.circular[0] || opt.circular[1])) { | ||
); | ||
nativeEvent.__childrenAxesAlreadyReleased = true; | ||
const duration = this._animationManager.getDuration( | ||
@@ -163,2 +180,5 @@ destPos, | ||
if (duration === 0) { | ||
destPos = { ...depaPos }; | ||
} | ||
// prepare params | ||
@@ -188,3 +208,2 @@ const param: AnimationParam = { | ||
userWish.destPos, | ||
false, | ||
depaPos, | ||
@@ -242,2 +261,17 @@ changeOption, | ||
} | ||
private _isEndofAxis(offset: Axis, depaPos: Axis, destPos: Axis) { | ||
return this._axisManager.every( | ||
depaPos, | ||
(value, option, key) => | ||
offset[key] === 0 || | ||
(depaPos[key] === destPos[key] && | ||
isEndofBounce( | ||
value, | ||
option.range, | ||
option.bounce as number[], | ||
option.circular as boolean[] | ||
)) | ||
); | ||
} | ||
} |
@@ -100,3 +100,2 @@ import { $, setCssProps } from "../utils"; | ||
protected _direction; | ||
protected _panFlag = false; | ||
protected _enabled = false; | ||
@@ -144,5 +143,6 @@ protected _activeInput: ActiveInput = null; | ||
if (this._activeInput) { | ||
this._detachEvent(); | ||
this._detachElementEvent(); | ||
this._detachWindowEvent(this._activeInput); | ||
} | ||
this._attachEvent(observer); | ||
this._attachElementEvent(observer); | ||
this._originalCssProps = setCssProps(this.element); | ||
@@ -153,3 +153,4 @@ return this; | ||
public disconnect() { | ||
this._detachEvent(); | ||
this._detachElementEvent(); | ||
this._detachWindowEvent(this._activeInput); | ||
if (this._originalCssProps !== PREVENT_SCROLL_CSSPROPS) { | ||
@@ -201,9 +202,9 @@ setCssProps(this.element, this._originalCssProps); | ||
protected _onPanstart(event: InputEventType) { | ||
this._activeInput.onEventStart(event); | ||
if (!this._enabled || this._activeInput.getTouches(event) > 1) { | ||
const activeInput = this._activeInput; | ||
activeInput.onEventStart(event); | ||
if (!this._enabled || activeInput.getTouches(event) > 1) { | ||
return; | ||
} | ||
const panEvent = this._activeInput.extendEvent(event); | ||
this._panFlag = false; | ||
const panEvent = activeInput.extendEvent(event); | ||
@@ -216,4 +217,4 @@ if (panEvent.srcEvent.cancelable !== false) { | ||
IS_IOS_SAFARI && panEvent.center.x > window.innerWidth - edgeThreshold; | ||
this._panFlag = true; | ||
this._activeInput.prevEvent = panEvent; | ||
this._attachWindowEvent(activeInput); | ||
activeInput.prevEvent = panEvent; | ||
} | ||
@@ -223,12 +224,9 @@ } | ||
protected _onPanmove(event: InputEventType) { | ||
this._activeInput.onEventMove(event); | ||
if ( | ||
!this._panFlag || | ||
!this._enabled || | ||
this._activeInput.getTouches(event) > 1 | ||
) { | ||
const activeInput = this._activeInput; | ||
activeInput.onEventMove(event); | ||
if (!this._enabled || activeInput.getTouches(event) > 1) { | ||
return; | ||
} | ||
const panEvent = this._activeInput.extendEvent(event); | ||
const panEvent = activeInput.extendEvent(event); | ||
const { iOSEdgeSwipeThreshold, releaseOnScroll } = this.options; | ||
@@ -245,3 +243,3 @@ const userDirection = getDirectionByAngle( | ||
if (this._activeInput.prevEvent && IS_IOS_SAFARI) { | ||
if (activeInput.prevEvent && IS_IOS_SAFARI) { | ||
const swipeLeftToRight = panEvent.center.x < 0; | ||
@@ -251,3 +249,4 @@ | ||
// iOS swipe left => right | ||
this._observer.release(this, this._activeInput.prevEvent, [0, 0]); | ||
this._detachWindowEvent(activeInput); | ||
this._observer.release(this, activeInput.prevEvent, [0, 0]); | ||
return; | ||
@@ -265,3 +264,4 @@ } else if (this._atRightEdge) { | ||
this._rightEdgeTimer = window.setTimeout(() => { | ||
this._observer.release(this, this._activeInput.prevEvent, [0, 0]); | ||
this._detachWindowEvent(activeInput); | ||
this._observer.release(this, activeInput.prevEvent, [0, 0]); | ||
}, 100); | ||
@@ -290,17 +290,14 @@ } | ||
} | ||
this._activeInput.prevEvent = panEvent; | ||
activeInput.prevEvent = panEvent; | ||
} | ||
protected _onPanend(event: InputEventType) { | ||
this._activeInput.onEventEnd(event); | ||
if ( | ||
!this._panFlag || | ||
!this._enabled || | ||
this._activeInput.getTouches(event) !== 0 | ||
) { | ||
const activeInput = this._activeInput; | ||
activeInput.onEventEnd(event); | ||
if (!this._enabled || activeInput.getTouches(event) !== 0) { | ||
return; | ||
} | ||
this._panFlag = false; | ||
this._detachWindowEvent(activeInput); | ||
clearTimeout(this._rightEdgeTimer); | ||
const prevEvent = this._activeInput.prevEvent; | ||
const prevEvent = activeInput.prevEvent; | ||
const velocity = this._getOffset( | ||
@@ -319,10 +316,3 @@ [ | ||
private _attachEvent(observer: InputTypeObserver) { | ||
const activeInput = convertInputType(this.options.inputType); | ||
this._observer = observer; | ||
this._enabled = true; | ||
this._activeInput = activeInput; | ||
activeInput?.start.forEach((event) => { | ||
this.element.addEventListener(event, this._onPanstart, false); | ||
}); | ||
protected _attachWindowEvent(activeInput: ActiveInput) { | ||
activeInput?.move.forEach((event) => { | ||
@@ -336,7 +326,3 @@ window.addEventListener(event, this._onPanmove, false); | ||
private _detachEvent() { | ||
const activeInput = this._activeInput; | ||
activeInput?.start.forEach((event) => { | ||
this.element.removeEventListener(event, this._onPanstart, false); | ||
}); | ||
protected _detachWindowEvent(activeInput: ActiveInput) { | ||
activeInput?.move.forEach((event) => { | ||
@@ -348,2 +334,24 @@ window.removeEventListener(event, this._onPanmove, false); | ||
}); | ||
} | ||
private _attachElementEvent(observer: InputTypeObserver) { | ||
const activeInput = convertInputType(this.options.inputType); | ||
if (!activeInput) { | ||
throw new Error( | ||
"There is currently no inputType available for current device. There must be at least one available inputType." | ||
); | ||
} | ||
this._observer = observer; | ||
this._enabled = true; | ||
this._activeInput = activeInput; | ||
activeInput?.start.forEach((event) => { | ||
this.element?.addEventListener(event, this._onPanstart, false); | ||
}); | ||
} | ||
private _detachElementEvent() { | ||
const activeInput = this._activeInput; | ||
activeInput?.start.forEach((event) => { | ||
this.element?.removeEventListener(event, this._onPanstart, false); | ||
}); | ||
this._enabled = false; | ||
@@ -350,0 +358,0 @@ this._observer = null; |
@@ -163,3 +163,3 @@ import { $, setCssProps } from "../utils"; | ||
!this._enabled || | ||
this._activeInput.getTouches(event) > 2 | ||
this._activeInput.getTouches(event) >= 2 | ||
) { | ||
@@ -177,2 +177,7 @@ return; | ||
const activeInput = convertInputType(this.options.inputType); | ||
if (!activeInput) { | ||
throw new Error( | ||
"There is currently no inputType available for current device. There must be at least one available inputType." | ||
); | ||
} | ||
this._observer = observer; | ||
@@ -179,0 +184,0 @@ this._enabled = true; |
@@ -51,3 +51,4 @@ import { ExtendedEvent } from "../types"; | ||
protected _onPanstart(event: MouseEvent) { | ||
this._activeInput.onEventStart(event); | ||
const activeInput = this._activeInput; | ||
activeInput.onEventStart(event); | ||
if (!this.isEnabled) { | ||
@@ -58,6 +59,6 @@ return; | ||
const rect = this.element.getBoundingClientRect(); | ||
const panEvent = this._activeInput.extendEvent(event); | ||
const panEvent = activeInput.extendEvent(event); | ||
this._observer.hold(this, panEvent); | ||
this._panFlag = true; | ||
this._attachWindowEvent(activeInput); | ||
// TODO: how to do if element is ellipse not circle. | ||
@@ -75,12 +76,13 @@ this._coefficientForDistanceToAngle = 360 / (rect.width * Math.PI); // from 2*pi*r * x / 360 | ||
this._triggerChange(panEvent); | ||
this._activeInput.prevEvent = panEvent; | ||
activeInput.prevEvent = panEvent; | ||
} | ||
protected _onPanmove(event: MouseEvent) { | ||
this._activeInput.onEventMove(event); | ||
if (!this._panFlag || !this.isEnabled) { | ||
const activeInput = this._activeInput; | ||
activeInput.onEventMove(event); | ||
if (!this.isEnabled) { | ||
return; | ||
} | ||
const panEvent = this._activeInput.extendEvent(event); | ||
const panEvent = activeInput.extendEvent(event); | ||
@@ -92,11 +94,12 @@ if (panEvent.srcEvent.cancelable !== false) { | ||
this._triggerChange(panEvent); | ||
this._activeInput.prevEvent = panEvent; | ||
activeInput.prevEvent = panEvent; | ||
} | ||
protected _onPanend(event: MouseEvent) { | ||
this._activeInput.onEventEnd(event); | ||
if (!this._panFlag || !this.isEnabled) { | ||
const activeInput = this._activeInput; | ||
activeInput.onEventEnd(event); | ||
if (!this.isEnabled) { | ||
return; | ||
} | ||
const prevEvent = this._activeInput.prevEvent; | ||
const prevEvent = activeInput.prevEvent; | ||
this._triggerChange(prevEvent); | ||
@@ -110,3 +113,3 @@ const vx = prevEvent.velocityX; | ||
]); | ||
this._panFlag = false; | ||
this._detachWindowEvent(activeInput); | ||
} | ||
@@ -113,0 +116,0 @@ |
@@ -233,3 +233,3 @@ import { window } from "./browser"; | ||
const oldCssProps = {}; | ||
if (element.style) { | ||
if (element && element.style) { | ||
const newCssProps = originalCssProps | ||
@@ -236,0 +236,0 @@ ? originalCssProps |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
No v1
QualityPackage is not semver >=1. This means it is not stable and does not support ^ ranges.
Found 1 instance in 1 package
1744030
16920
2
170