New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@egjs/axes

Package Overview
Dependencies
Maintainers
9
Versions
76
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@egjs/axes - npm Package Compare versions

Comparing version 3.0.0 to 3.0.1-snapshot

2

declaration/AnimationManager.d.ts

@@ -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,

@@ -1,56 +0,48 @@

# egjs-axes [![npm version](https://badge.fury.io/js/%40egjs%2Faxes.svg)](https://badge.fury.io/js/%40egjs%2Faxes) [![Build Status](https://travis-ci.org/naver/egjs-axes.svg?branch=master)](https://travis-ci.org/naver/egjs-axes) [![Coverage Status](https://coveralls.io/repos/github/naver/egjs-axes/badge.svg?branch=master)](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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<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

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc