react_pull_refresh
Version:
A React component for pull to refresh on the web.
6 lines • 24.9 kB
JavaScript
!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(require("React")):"function"==typeof define&&define.amd?define(["React"],e):"object"==typeof exports?exports["react-pull-to-refresh.min"]=e(require("React")):t["react-pull-to-refresh.min"]=e(t.React)}(this,function(t){return function(t){function e(i){if(n[i])return n[i].exports;var r=n[i]={exports:{},id:i,loaded:!1};return t[i].call(r.exports,r,r.exports,e),r.loaded=!0,r.exports}var n={};return e.m=t,e.c=n,e.p="",e(0)}([function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var r=n(1),s=i(r);e["default"]=s["default"],t.exports=e["default"]},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{"default":t}}function r(t,e){var n={};for(var i in t)e.indexOf(i)>=0||Object.prototype.hasOwnProperty.call(t,i)&&(n[i]=t[i]);return n}function s(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var a=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},u=function(){function t(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}return function(e,n,i){return n&&t(e.prototype,n),i&&t(e,i),e}}(),c=function(t,e,n){for(var i=!0;i;){var r=t,s=e,o=n;i=!1,null===r&&(r=Function.prototype);var a=Object.getOwnPropertyDescriptor(r,s);if(void 0!==a){if("value"in a)return a.value;var u=a.get;return void 0===u?void 0:u.call(o)}var c=Object.getPrototypeOf(r);if(null===c)return void 0;t=c,e=s,n=o,i=!0,a=c=void 0}},h=n(2),l=i(h),p=n(3),f=i(p),d=function(t){function e(t){s(this,e),c(Object.getPrototypeOf(e.prototype),"constructor",this).call(this,t),this.state={initialized:!1},this.handleRefresh=this.handleRefresh.bind(this)}return o(e,t),u(e,[{key:"handleRefresh",value:function(){var t=this;return new Promise(function(e,n){t.props.onRefresh(e,n)})}},{key:"init",value:function(){this.state.initialized||(f["default"]().init({contentEl:this.refs.refresh,ptrEl:this.refs.ptr,bodyEl:this.refs.body,distanceToRefresh:this.props.distanceToRefresh||void 0,loadingFunction:this.handleRefresh,resistance:this.props.resistance||void 0,hammerOptions:this.props.hammerOptions||void 0}),this.setState({initialized:!0}))}},{key:"componentDidMount",value:function(){this.props.disabled||this.init()}},{key:"componentDidUpdate",value:function(){this.props.disabled||this.init()}},{key:"render",value:function(){var t=this.props,e=t.children,n=t.disabled,i=(t.distanceToRefresh,t.hammerOptions,t.icon),s=t.loading,o=(t.onRefresh,t.resistance,r(t,["children","disabled","distanceToRefresh","hammerOptions","icon","loading","onRefresh","resistance"]));return n?l["default"].createElement("div",o,e):l["default"].createElement("div",a({className:"body",ref:"body"},o),l["default"].createElement("div",{ref:"ptr",className:"ptr-element"},i||l["default"].createElement("span",{className:"genericon genericon-next"}),s||l["default"].createElement("div",{className:"loading"},l["default"].createElement("span",{className:"loading-ptr-1"}),l["default"].createElement("span",{className:"loading-ptr-2"}),l["default"].createElement("span",{className:"loading-ptr-3"}))),l["default"].createElement("div",{ref:"refresh",className:"refresh-view"},e))}}]),e}(h.Component);e["default"]=d,d.propTypes={onRefresh:h.PropTypes.func.isRequired,icon:h.PropTypes.element,loading:h.PropTypes.element,disabled:h.PropTypes.bool,className:h.PropTypes.string,style:h.PropTypes.object,distanceToRefresh:h.PropTypes.number,resistance:h.PropTypes.number,hammerOptions:h.PropTypes.object},t.exports=e["default"]},function(e,n){e.exports=t},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{"default":t}}function r(){var t={contentEl:"content",ptrEl:"ptr",bodyEl:document.body,distanceToRefresh:70,loadingFunction:!1,resistance:2.5},e={},n={enabled:!1,distance:0,startingPositionY:0},i=t.bodyEl.classList,r=function(n){if(n=n||{},e={contentEl:n.contentEl||document.getElementById(t.contentEl),ptrEl:n.ptrEl||document.getElementById(t.ptrEl),bodyEl:n.bodyEl||t.bodyEl,distanceToRefresh:n.distanceToRefresh||t.distanceToRefresh,loadingFunction:n.loadingFunction||t.loadingFunction,resistance:n.resistance||t.resistance,hammerOptions:n.hammerOptions||{}},!e.contentEl||!e.ptrEl)return!1;i=e.bodyEl.classList;var r=new o["default"](e.contentEl,e.hammerOptions);r.get("pan").set({direction:o["default"].DIRECTION_VERTICAL}),r.on("panstart",s),r.on("pandown",a),r.on("panup",u),r.on("panend",l)},s=function(t){n.startingPositionY=e.bodyEl.scrollTop,0===n.startingPositionY&&(n.enabled=!0)},a=function(t){n.enabled&&(t.preventDefault(),n.distance=t.distance/e.resistance,c(),h())},u=function(t){n.enabled&&0!==n.distance&&(t.preventDefault(),n.distance<t.distance/e.resistance?n.distance=0:n.distance=t.distance/e.resistance,c(),h())},c=function(){e.contentEl.style.transform=e.contentEl.style.webkitTransform="translate3d( 0, "+n.distance+"px, 0 )",e.ptrEl.style.transform=e.ptrEl.style.webkitTransform="translate3d( 0, "+(n.distance-e.ptrEl.offsetHeight)+"px, 0 )"},h=function(){n.distance>e.distanceToRefresh?i.add("ptr-refresh"):i.remove("ptr-refresh")},l=function(t){n.enabled&&(t.preventDefault(),e.contentEl.style.transform=e.contentEl.style.webkitTransform="",e.ptrEl.style.transform=e.ptrEl.style.webkitTransform="",e.bodyEl.classList.contains("ptr-refresh")?p():f(),n.distance=0,n.enabled=!1)},p=function(){if(i.add("ptr-loading"),!e.loadingFunction)return f();var t=e.loadingFunction();setTimeout(function(){t.then(f)},1e3)},f=function(){i.remove("ptr-loading"),i.remove("ptr-refresh"),i.add("ptr-reset");var t=function n(){i.remove("ptr-reset"),e.bodyEl.removeEventListener("transitionend",n,!1)};e.bodyEl.addEventListener("transitionend",t,!1)};return{init:r}}Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=r;var s=n(4),o=i(s);t.exports=e["default"]},function(t,e,n){var i;/*! Hammer.JS - v2.0.4 - 2014-09-28
* http://hammerjs.github.io/
*
* Copyright (c) 2014 Jorik Tangelder;
* Licensed under the MIT license */
!function(r,s,o,a){"use strict";function u(t,e,n){return setTimeout(d(t,n),e)}function c(t,e,n){return Array.isArray(t)?(h(t,n[e],n),!0):!1}function h(t,e,n){var i;if(t)if(t.forEach)t.forEach(e,n);else if(t.length!==a)for(i=0;i<t.length;)e.call(n,t[i],i,t),i++;else for(i in t)t.hasOwnProperty(i)&&e.call(n,t[i],i,t)}function l(t,e,n){for(var i=Object.keys(e),r=0;r<i.length;)(!n||n&&t[i[r]]===a)&&(t[i[r]]=e[i[r]]),r++;return t}function p(t,e){return l(t,e,!0)}function f(t,e,n){var i,r=e.prototype;i=t.prototype=Object.create(r),i.constructor=t,i._super=r,n&&l(i,n)}function d(t,e){return function(){return t.apply(e,arguments)}}function v(t,e){return typeof t==dt?t.apply(e?e[0]||a:a,e):t}function m(t,e){return t===a?e:t}function g(t,e,n){h(b(e),function(e){t.addEventListener(e,n,!1)})}function y(t,e,n){h(b(e),function(e){t.removeEventListener(e,n,!1)})}function T(t,e){for(;t;){if(t==e)return!0;t=t.parentNode}return!1}function E(t,e){return t.indexOf(e)>-1}function b(t){return t.trim().split(/\s+/g)}function _(t,e,n){if(t.indexOf&&!n)return t.indexOf(e);for(var i=0;i<t.length;){if(n&&t[i][n]==e||!n&&t[i]===e)return i;i++}return-1}function R(t){return Array.prototype.slice.call(t,0)}function O(t,e,n){for(var i=[],r=[],s=0;s<t.length;){var o=e?t[s][e]:t[s];_(r,o)<0&&i.push(t[s]),r[s]=o,s++}return n&&(i=e?i.sort(function(t,n){return t[e]>n[e]}):i.sort()),i}function I(t,e){for(var n,i,r=e[0].toUpperCase()+e.slice(1),s=0;s<pt.length;){if(n=pt[s],i=n?n+r:e,i in t)return i;s++}return a}function P(){return yt++}function w(t){var e=t.ownerDocument;return e.defaultView||e.parentWindow}function A(t,e){var n=this;this.manager=t,this.callback=e,this.element=t.element,this.target=t.options.inputTarget,this.domHandler=function(e){v(t.options.enable,[t])&&n.handler(e)},this.init()}function x(t){var e,n=t.options.inputClass;return new(e=n?n:bt?W:_t?V:Et?G:q)(t,D)}function D(t,e,n){var i=n.pointers.length,r=n.changedPointers.length,s=e&At&&i-r===0,o=e&(Dt|Nt)&&i-r===0;n.isFirst=!!s,n.isFinal=!!o,s&&(t.session={}),n.eventType=e,N(t,n),t.emit("hammer.input",n),t.recognize(n),t.session.prevInput=n}function N(t,e){var n=t.session,i=e.pointers,r=i.length;n.firstInput||(n.firstInput=M(e)),r>1&&!n.firstMultiple?n.firstMultiple=M(e):1===r&&(n.firstMultiple=!1);var s=n.firstInput,o=n.firstMultiple,a=o?o.center:s.center,u=e.center=z(i);e.timeStamp=gt(),e.deltaTime=e.timeStamp-s.timeStamp,e.angle=X(a,u),e.distance=j(a,u),S(n,e),e.offsetDirection=Y(e.deltaX,e.deltaY),e.scale=o?k(o.pointers,i):1,e.rotation=o?L(o.pointers,i):0,C(n,e);var c=t.element;T(e.srcEvent.target,c)&&(c=e.srcEvent.target),e.target=c}function S(t,e){var n=e.center,i=t.offsetDelta||{},r=t.prevDelta||{},s=t.prevInput||{};(e.eventType===At||s.eventType===Dt)&&(r=t.prevDelta={x:s.deltaX||0,y:s.deltaY||0},i=t.offsetDelta={x:n.x,y:n.y}),e.deltaX=r.x+(n.x-i.x),e.deltaY=r.y+(n.y-i.y)}function C(t,e){var n,i,r,s,o=t.lastInterval||e,u=e.timeStamp-o.timeStamp;if(e.eventType!=Nt&&(u>wt||o.velocity===a)){var c=o.deltaX-e.deltaX,h=o.deltaY-e.deltaY,l=F(u,c,h);i=l.x,r=l.y,n=mt(l.x)>mt(l.y)?l.x:l.y,s=Y(c,h),t.lastInterval=e}else n=o.velocity,i=o.velocityX,r=o.velocityY,s=o.direction;e.velocity=n,e.velocityX=i,e.velocityY=r,e.direction=s}function M(t){for(var e=[],n=0;n<t.pointers.length;)e[n]={clientX:vt(t.pointers[n].clientX),clientY:vt(t.pointers[n].clientY)},n++;return{timeStamp:gt(),pointers:e,center:z(e),deltaX:t.deltaX,deltaY:t.deltaY}}function z(t){var e=t.length;if(1===e)return{x:vt(t[0].clientX),y:vt(t[0].clientY)};for(var n=0,i=0,r=0;e>r;)n+=t[r].clientX,i+=t[r].clientY,r++;return{x:vt(n/e),y:vt(i/e)}}function F(t,e,n){return{x:e/t||0,y:n/t||0}}function Y(t,e){return t===e?St:mt(t)>=mt(e)?t>0?Ct:Mt:e>0?zt:Ft}function j(t,e,n){n||(n=Lt);var i=e[n[0]]-t[n[0]],r=e[n[1]]-t[n[1]];return Math.sqrt(i*i+r*r)}function X(t,e,n){n||(n=Lt);var i=e[n[0]]-t[n[0]],r=e[n[1]]-t[n[1]];return 180*Math.atan2(r,i)/Math.PI}function L(t,e){return X(e[1],e[0],kt)-X(t[1],t[0],kt)}function k(t,e){return j(e[0],e[1],kt)/j(t[0],t[1],kt)}function q(){this.evEl=Wt,this.evWin=Ht,this.allow=!0,this.pressed=!1,A.apply(this,arguments)}function W(){this.evEl=Bt,this.evWin=Gt,A.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}function H(){this.evTarget=Jt,this.evWin=Kt,this.started=!1,A.apply(this,arguments)}function U(t,e){var n=R(t.touches),i=R(t.changedTouches);return e&(Dt|Nt)&&(n=O(n.concat(i),"identifier",!0)),[n,i]}function V(){this.evTarget=$t,this.targetIds={},A.apply(this,arguments)}function B(t,e){var n=R(t.touches),i=this.targetIds;if(e&(At|xt)&&1===n.length)return i[n[0].identifier]=!0,[n,n];var r,s,o=R(t.changedTouches),a=[],u=this.target;if(s=n.filter(function(t){return T(t.target,u)}),e===At)for(r=0;r<s.length;)i[s[r].identifier]=!0,r++;for(r=0;r<o.length;)i[o[r].identifier]&&a.push(o[r]),e&(Dt|Nt)&&delete i[o[r].identifier],r++;return a.length?[O(s.concat(a),"identifier",!0),a]:void 0}function G(){A.apply(this,arguments);var t=d(this.handler,this);this.touch=new V(this.manager,t),this.mouse=new q(this.manager,t)}function Z(t,e){this.manager=t,this.set(e)}function J(t){if(E(t,se))return se;var e=E(t,oe),n=E(t,ae);return e&&n?oe+" "+ae:e||n?e?oe:ae:E(t,re)?re:ie}function K(t){this.id=P(),this.manager=null,this.options=p(t||{},this.defaults),this.options.enable=m(this.options.enable,!0),this.state=ue,this.simultaneous={},this.requireFail=[]}function Q(t){return t&fe?"cancel":t&le?"end":t&he?"move":t&ce?"start":""}function $(t){return t==Ft?"down":t==zt?"up":t==Ct?"left":t==Mt?"right":""}function tt(t,e){var n=e.manager;return n?n.get(t):t}function et(){K.apply(this,arguments)}function nt(){et.apply(this,arguments),this.pX=null,this.pY=null}function it(){et.apply(this,arguments)}function rt(){K.apply(this,arguments),this._timer=null,this._input=null}function st(){et.apply(this,arguments)}function ot(){et.apply(this,arguments)}function at(){K.apply(this,arguments),this.pTime=!1,this.pCenter=!1,this._timer=null,this._input=null,this.count=0}function ut(t,e){return e=e||{},e.recognizers=m(e.recognizers,ut.defaults.preset),new ct(t,e)}function ct(t,e){e=e||{},this.options=p(e,ut.defaults),this.options.inputTarget=this.options.inputTarget||t,this.handlers={},this.session={},this.recognizers=[],this.element=t,this.input=x(this),this.touchAction=new Z(this,this.options.touchAction),ht(this,!0),h(e.recognizers,function(t){var e=this.add(new t[0](t[1]));t[2]&&e.recognizeWith(t[2]),t[3]&&e.requireFailure(t[3])},this)}function ht(t,e){var n=t.element;h(t.options.cssProps,function(t,i){n.style[I(n.style,i)]=e?t:""})}function lt(t,e){var n=s.createEvent("Event");n.initEvent(t,!0,!0),n.gesture=e,e.target.dispatchEvent(n)}var pt=["","webkit","moz","MS","ms","o"],ft=s.createElement("div"),dt="function",vt=Math.round,mt=Math.abs,gt=Date.now,yt=1,Tt=/mobile|tablet|ip(ad|hone|od)|android/i,Et="ontouchstart"in r,bt=I(r,"PointerEvent")!==a,_t=Et&&Tt.test(navigator.userAgent),Rt="touch",Ot="pen",It="mouse",Pt="kinect",wt=25,At=1,xt=2,Dt=4,Nt=8,St=1,Ct=2,Mt=4,zt=8,Ft=16,Yt=Ct|Mt,jt=zt|Ft,Xt=Yt|jt,Lt=["x","y"],kt=["clientX","clientY"];A.prototype={handler:function(){},init:function(){this.evEl&&g(this.element,this.evEl,this.domHandler),this.evTarget&&g(this.target,this.evTarget,this.domHandler),this.evWin&&g(w(this.element),this.evWin,this.domHandler)},destroy:function(){this.evEl&&y(this.element,this.evEl,this.domHandler),this.evTarget&&y(this.target,this.evTarget,this.domHandler),this.evWin&&y(w(this.element),this.evWin,this.domHandler)}};var qt={mousedown:At,mousemove:xt,mouseup:Dt},Wt="mousedown",Ht="mousemove mouseup";f(q,A,{handler:function(t){var e=qt[t.type];e&At&&0===t.button&&(this.pressed=!0),e&xt&&1!==t.which&&(e=Dt),this.pressed&&this.allow&&(e&Dt&&(this.pressed=!1),this.callback(this.manager,e,{pointers:[t],changedPointers:[t],pointerType:It,srcEvent:t}))}});var Ut={pointerdown:At,pointermove:xt,pointerup:Dt,pointercancel:Nt,pointerout:Nt},Vt={2:Rt,3:Ot,4:It,5:Pt},Bt="pointerdown",Gt="pointermove pointerup pointercancel";r.MSPointerEvent&&(Bt="MSPointerDown",Gt="MSPointerMove MSPointerUp MSPointerCancel"),f(W,A,{handler:function(t){var e=this.store,n=!1,i=t.type.toLowerCase().replace("ms",""),r=Ut[i],s=Vt[t.pointerType]||t.pointerType,o=s==Rt,a=_(e,t.pointerId,"pointerId");r&At&&(0===t.button||o)?0>a&&(e.push(t),a=e.length-1):r&(Dt|Nt)&&(n=!0),0>a||(e[a]=t,this.callback(this.manager,r,{pointers:e,changedPointers:[t],pointerType:s,srcEvent:t}),n&&e.splice(a,1))}});var Zt={touchstart:At,touchmove:xt,touchend:Dt,touchcancel:Nt},Jt="touchstart",Kt="touchstart touchmove touchend touchcancel";f(H,A,{handler:function(t){var e=Zt[t.type];if(e===At&&(this.started=!0),this.started){var n=U.call(this,t,e);e&(Dt|Nt)&&n[0].length-n[1].length===0&&(this.started=!1),this.callback(this.manager,e,{pointers:n[0],changedPointers:n[1],pointerType:Rt,srcEvent:t})}}});var Qt={touchstart:At,touchmove:xt,touchend:Dt,touchcancel:Nt},$t="touchstart touchmove touchend touchcancel";f(V,A,{handler:function(t){var e=Qt[t.type],n=B.call(this,t,e);n&&this.callback(this.manager,e,{pointers:n[0],changedPointers:n[1],pointerType:Rt,srcEvent:t})}}),f(G,A,{handler:function(t,e,n){var i=n.pointerType==Rt,r=n.pointerType==It;if(i)this.mouse.allow=!1;else if(r&&!this.mouse.allow)return;e&(Dt|Nt)&&(this.mouse.allow=!0),this.callback(t,e,n)},destroy:function(){this.touch.destroy(),this.mouse.destroy()}});var te=I(ft.style,"touchAction"),ee=te!==a,ne="compute",ie="auto",re="manipulation",se="none",oe="pan-x",ae="pan-y";Z.prototype={set:function(t){t==ne&&(t=this.compute()),ee&&(this.manager.element.style[te]=t),this.actions=t.toLowerCase().trim()},update:function(){this.set(this.manager.options.touchAction)},compute:function(){var t=[];return h(this.manager.recognizers,function(e){v(e.options.enable,[e])&&(t=t.concat(e.getTouchAction()))}),J(t.join(" "))},preventDefaults:function(t){if(!ee){var e=t.srcEvent,n=t.offsetDirection;if(this.manager.session.prevented)return void e.preventDefault();var i=this.actions,r=E(i,se),s=E(i,ae),o=E(i,oe);return r||s&&n&Yt||o&&n&jt?this.preventSrc(e):void 0}},preventSrc:function(t){this.manager.session.prevented=!0,t.preventDefault()}};var ue=1,ce=2,he=4,le=8,pe=le,fe=16,de=32;K.prototype={defaults:{},set:function(t){return l(this.options,t),this.manager&&this.manager.touchAction.update(),this},recognizeWith:function(t){if(c(t,"recognizeWith",this))return this;var e=this.simultaneous;return t=tt(t,this),e[t.id]||(e[t.id]=t,t.recognizeWith(this)),this},dropRecognizeWith:function(t){return c(t,"dropRecognizeWith",this)?this:(t=tt(t,this),delete this.simultaneous[t.id],this)},requireFailure:function(t){if(c(t,"requireFailure",this))return this;var e=this.requireFail;return t=tt(t,this),-1===_(e,t)&&(e.push(t),t.requireFailure(this)),this},dropRequireFailure:function(t){if(c(t,"dropRequireFailure",this))return this;t=tt(t,this);var e=_(this.requireFail,t);return e>-1&&this.requireFail.splice(e,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(t){return!!this.simultaneous[t.id]},emit:function(t){function e(e){n.manager.emit(n.options.event+(e?Q(i):""),t)}var n=this,i=this.state;le>i&&e(!0),e(),i>=le&&e(!0)},tryEmit:function(t){return this.canEmit()?this.emit(t):void(this.state=de)},canEmit:function(){for(var t=0;t<this.requireFail.length;){if(!(this.requireFail[t].state&(de|ue)))return!1;t++}return!0},recognize:function(t){var e=l({},t);return v(this.options.enable,[this,e])?(this.state&(pe|fe|de)&&(this.state=ue),this.state=this.process(e),void(this.state&(ce|he|le|fe)&&this.tryEmit(e))):(this.reset(),void(this.state=de))},process:function(t){},getTouchAction:function(){},reset:function(){}},f(et,K,{defaults:{pointers:1},attrTest:function(t){var e=this.options.pointers;return 0===e||t.pointers.length===e},process:function(t){var e=this.state,n=t.eventType,i=e&(ce|he),r=this.attrTest(t);return i&&(n&Nt||!r)?e|fe:i||r?n&Dt?e|le:e&ce?e|he:ce:de}}),f(nt,et,{defaults:{event:"pan",threshold:10,pointers:1,direction:Xt},getTouchAction:function(){var t=this.options.direction,e=[];return t&Yt&&e.push(ae),t&jt&&e.push(oe),e},directionTest:function(t){var e=this.options,n=!0,i=t.distance,r=t.direction,s=t.deltaX,o=t.deltaY;return r&e.direction||(e.direction&Yt?(r=0===s?St:0>s?Ct:Mt,n=s!=this.pX,i=Math.abs(t.deltaX)):(r=0===o?St:0>o?zt:Ft,n=o!=this.pY,i=Math.abs(t.deltaY))),t.direction=r,n&&i>e.threshold&&r&e.direction},attrTest:function(t){return et.prototype.attrTest.call(this,t)&&(this.state&ce||!(this.state&ce)&&this.directionTest(t))},emit:function(t){this.pX=t.deltaX,this.pY=t.deltaY;var e=$(t.direction);e&&this.manager.emit(this.options.event+e,t),this._super.emit.call(this,t)}}),f(it,et,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[se]},attrTest:function(t){return this._super.attrTest.call(this,t)&&(Math.abs(t.scale-1)>this.options.threshold||this.state&ce)},emit:function(t){if(this._super.emit.call(this,t),1!==t.scale){var e=t.scale<1?"in":"out";this.manager.emit(this.options.event+e,t)}}}),f(rt,K,{defaults:{event:"press",pointers:1,time:500,threshold:5},getTouchAction:function(){return[ie]},process:function(t){var e=this.options,n=t.pointers.length===e.pointers,i=t.distance<e.threshold,r=t.deltaTime>e.time;if(this._input=t,!i||!n||t.eventType&(Dt|Nt)&&!r)this.reset();else if(t.eventType&At)this.reset(),this._timer=u(function(){this.state=pe,this.tryEmit()},e.time,this);else if(t.eventType&Dt)return pe;return de},reset:function(){clearTimeout(this._timer)},emit:function(t){this.state===pe&&(t&&t.eventType&Dt?this.manager.emit(this.options.event+"up",t):(this._input.timeStamp=gt(),this.manager.emit(this.options.event,this._input)))}}),f(st,et,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[se]},attrTest:function(t){return this._super.attrTest.call(this,t)&&(Math.abs(t.rotation)>this.options.threshold||this.state&ce)}}),f(ot,et,{defaults:{event:"swipe",threshold:10,velocity:.65,direction:Yt|jt,pointers:1},getTouchAction:function(){return nt.prototype.getTouchAction.call(this)},attrTest:function(t){var e,n=this.options.direction;return n&(Yt|jt)?e=t.velocity:n&Yt?e=t.velocityX:n&jt&&(e=t.velocityY),this._super.attrTest.call(this,t)&&n&t.direction&&t.distance>this.options.threshold&&mt(e)>this.options.velocity&&t.eventType&Dt},emit:function(t){var e=$(t.direction);e&&this.manager.emit(this.options.event+e,t),this.manager.emit(this.options.event,t)}}),f(at,K,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:2,posThreshold:10},getTouchAction:function(){return[re]},process:function(t){var e=this.options,n=t.pointers.length===e.pointers,i=t.distance<e.threshold,r=t.deltaTime<e.time;if(this.reset(),t.eventType&At&&0===this.count)return this.failTimeout();if(i&&r&&n){if(t.eventType!=Dt)return this.failTimeout();var s=this.pTime?t.timeStamp-this.pTime<e.interval:!0,o=!this.pCenter||j(this.pCenter,t.center)<e.posThreshold;this.pTime=t.timeStamp,this.pCenter=t.center,o&&s?this.count+=1:this.count=1,this._input=t;var a=this.count%e.taps;if(0===a)return this.hasRequireFailures()?(this._timer=u(function(){this.state=pe,this.tryEmit()},e.interval,this),ce):pe}return de},failTimeout:function(){return this._timer=u(function(){this.state=de},this.options.interval,this),de},reset:function(){clearTimeout(this._timer)},emit:function(){this.state==pe&&(this._input.tapCount=this.count,this.manager.emit(this.options.event,this._input))}}),ut.VERSION="2.0.4",ut.defaults={domEvents:!1,touchAction:ne,enable:!0,inputTarget:null,inputClass:null,preset:[[st,{enable:!1}],[it,{enable:!1},["rotate"]],[ot,{direction:Yt}],[nt,{direction:Yt},["swipe"]],[at],[at,{event:"doubletap",taps:2},["tap"]],[rt]],cssProps:{userSelect:"none",touchSelect:"none",touchCallout:"none",contentZooming:"none",userDrag:"none",tapHighlightColor:"rgba(0,0,0,0)"}};var ve=1,me=2;ct.prototype={set:function(t){return l(this.options,t),t.touchAction&&this.touchAction.update(),t.inputTarget&&(this.input.destroy(),this.input.target=t.inputTarget,this.input.init()),this},stop:function(t){this.session.stopped=t?me:ve},recognize:function(t){var e=this.session;if(!e.stopped){this.touchAction.preventDefaults(t);var n,i=this.recognizers,r=e.curRecognizer;(!r||r&&r.state&pe)&&(r=e.curRecognizer=null);for(var s=0;s<i.length;)n=i[s],e.stopped===me||r&&n!=r&&!n.canRecognizeWith(r)?n.reset():n.recognize(t),!r&&n.state&(ce|he|le)&&(r=e.curRecognizer=n),s++}},get:function(t){if(t instanceof K)return t;for(var e=this.recognizers,n=0;n<e.length;n++)if(e[n].options.event==t)return e[n];return null},add:function(t){if(c(t,"add",this))return this;var e=this.get(t.options.event);return e&&this.remove(e),this.recognizers.push(t),t.manager=this,this.touchAction.update(),t},remove:function(t){if(c(t,"remove",this))return this;var e=this.recognizers;return t=this.get(t),e.splice(_(e,t),1),this.touchAction.update(),this},on:function(t,e){var n=this.handlers;return h(b(t),function(t){n[t]=n[t]||[],n[t].push(e)}),this},off:function(t,e){var n=this.handlers;return h(b(t),function(t){e?n[t].splice(_(n[t],e),1):delete n[t]}),this},emit:function(t,e){this.options.domEvents&<(t,e);var n=this.handlers[t]&&this.handlers[t].slice();if(n&&n.length){e.type=t,e.preventDefault=function(){e.srcEvent.preventDefault()};for(var i=0;i<n.length;)n[i](e),i++}},destroy:function(){this.element&&ht(this,!1),this.handlers={},this.session={},this.input.destroy(),this.element=null}},l(ut,{INPUT_START:At,INPUT_MOVE:xt,INPUT_END:Dt,INPUT_CANCEL:Nt,STATE_POSSIBLE:ue,STATE_BEGAN:ce,STATE_CHANGED:he,STATE_ENDED:le,STATE_RECOGNIZED:pe,STATE_CANCELLED:fe,STATE_FAILED:de,DIRECTION_NONE:St,DIRECTION_LEFT:Ct,DIRECTION_RIGHT:Mt,DIRECTION_UP:zt,DIRECTION_DOWN:Ft,DIRECTION_HORIZONTAL:Yt,DIRECTION_VERTICAL:jt,DIRECTION_ALL:Xt,Manager:ct,Input:A,TouchAction:Z,TouchInput:V,MouseInput:q,PointerEventInput:W,TouchMouseInput:G,SingleTouchInput:H,Recognizer:K,AttrRecognizer:et,Tap:at,Pan:nt,Swipe:ot,Pinch:it,Rotate:st,Press:rt,on:g,off:y,each:h,merge:p,extend:l,inherit:f,bindFn:d,prefixed:I}),"function"==dt&&n(5)?(i=function(){return ut}.call(e,n,e,t),!(i!==a&&(t.exports=i))):"undefined"!=typeof t&&t.exports?t.exports=ut:r[o]=ut}(window,document,"Hammer")},function(t,e){(function(e){t.exports=e}).call(e,{})}])});