(()=>{return(t,e)=>{window["Slip"]=function(){"use strict";var t={container:{ariaRole:"listbox",tabIndex:0,focus:false},items:{ariaRole:"option",tabIndex:-1,focus:false}};var e=/Chrome\/[3-5]/.test(navigator.userAgent);var i=e;var n=e;var s=document.createElement("div").style;var o="transition"in s?"transition":"webkitTransition";var a="transform"in s?"transform":"webkitTransform";var r=a==="webkitTransform"?"-webkit-transform":"transform";var h="userSelect"in s?"userSelect":"webkitUserSelect";s[a]="translateZ(0)";var l=s[a]?"translateZ(0) ":"";var c=s[a]?"translateZ(1px) ":"";s=null;var u=0;var d=false;var f=function(){};function g(t,e){if("string"===typeof t)t=document.querySelector(t);if(!t||!t.addEventListener)throw new Error("Please specify DOM node to attach to");if(!this||this===window)return new g(t,e);this.options=e=e||{};this.options.keepSwipingPercent=e.keepSwipingPercent||0;this.options.minimumSwipeVelocity=e.minimumSwipeVelocity||1;this.options.minimumSwipeTime=e.minimumSwipeTime||110;this.options.ignoredElements=e.ignoredElements||[];if(!Array.isArray(this.options.ignoredElements))throw new Error("ignoredElements must be an Array");this.cancel=this.setState.bind(this,this.states.idle);this.onTouchStart=this.onTouchStart.bind(this);this.onTouchMove=this.onTouchMove.bind(this);this.onTouchEnd=this.onTouchEnd.bind(this);this.onMouseDown=this.onMouseDown.bind(this);this.onMouseMove=this.onMouseMove.bind(this);this.onMouseUp=this.onMouseUp.bind(this);this.onMouseLeave=this.onMouseLeave.bind(this);this.onSelection=this.onSelection.bind(this);this.onContainerFocus=this.onContainerFocus.bind(this);this.setState(this.states.idle);this.attach(t)}function m(t){var e=t.style[a];if(e){return{value:e,original:e}}if(window.getComputedStyle){var i=window.getComputedStyle(t).getPropertyValue(r);if(i&&i!=="none")return{value:i,original:""}}return{value:"",original:""}}function v(t,e){var i=0;var n=0;for(var s=0;s20&&t.y20){this.setState(this.states.idle)}if(t.x>t.y*1.2)return false},onLeave:function(){this.setState(this.states.idle)},onEnd:function(){var t=this.dispatch(this.target.originalTarget,"tap");this.setState(this.states.idle);return t}}},swipe:function t(){var e=false;var i=this.container;var n=v(this.target,this.container.childNodes);i.classList.add("slip-swiping-container");function s(){i.classList.remove("slip-swiping-container")}this.target.height=this.target.node.offsetHeight;return{leaveState:function(){if(e){this.animateSwipe(function(t){t.node.style[a]=t.baseTransform.original;if(this.dispatch(t.node,"afterswipe")){s();return true}else{this.animateToZero(undefined,t)}}.bind(this))}else{this.animateToZero(s)}},onMove:function(){var t=this.getTotalMovement();if(Math.abs(t.y)this.options.minimumSwipeVelocity&&t.time>this.options.minimumSwipeTime||this.options.keepSwipingPercent&&s>this.options.keepSwipingPercent;if(o){if(this.dispatch(this.target.node,"swipe",{direction:t.directionX,originalIndex:n})){e=true}}else{this.dispatch(this.target.node,"cancelswipe")}this.setState(this.states.idle);return!o}}},reorder:function e(){if(this.target.node.focus&&t.items.focus){this.target.node.focus()}this.target.height=this.target.node.offsetHeight;var i;if(this.options.ignoredElements.length){var s=this.container;var o=s.tagName.toLowerCase();if(s.getAttribute("id")){o="#"+s.getAttribute("id")}else if(s.classList.length){o+="."+s.getAttribute("class").replace(" ",".")}o+=" > ";this.options.ignoredElements.forEach(function(t){o+=":not("+t+")"});try{i=s.parentNode.querySelectorAll(o)}catch(t){if(t instanceof DOMException&&t.name==="SyntaxError")throw new Error("ignoredElements you specified contain invalid query");else throw t}}else{i=this.container.childNodes}var r=v(this.target,i);var u;var d=this.target.node.offsetTop+this.target.height/2;var f=[];for(var g=0;gt.y){n=e}else if(i.pos>0&&t.y>0&&i.post.y){break}}i=e}else{for(e=f.length-1;e>=0;e--){if(f[e].pos1){this.setState(this.states.idle);return}if(!this.setTarget(t))return;this.startAtPosition({x:t.touches[0].clientX,y:t.touches[0].clientY,time:t.timeStamp})},setTarget:function(t){var e=this.findTargetNode(t.target);if(!e){this.setState(this.states.idle);return false}var i=this.options.scrollContainer;if(!i){var n=document.scrollingElement||document.documentElement;i=e.parentNode;while(i){if(i==n)break;if(i!=document.body&&i.scrollHeight>i.clientHeight&&window.getComputedStyle(i)["overflow-y"]!="visible")break;i=i.parentNode}i=i||n}this.target={originalTarget:t.target,node:e,scrollContainer:i,origScrollTop:i.scrollTop,origScrollHeight:i.scrollHeight,baseTransform:m(e)};return true},startAtPosition:function(t){this.startPosition=this.previousPosition=this.latestPosition=t;this.setState(this.states.undecided)},updatePosition:function(t,e){if(this.target==null){return}this.latestPosition=e;if(this.state.onMove){if(this.state.onMove.call(this)===false){t.preventDefault()}}if(this.latestPosition.time-this.previousPosition.time>100){this.previousPosition=this.latestPosition}},onMouseMove:function(t){t.stopPropagation();this.updatePosition(t,{x:t.clientX,y:t.clientY,time:t.timeStamp})},onTouchMove:function(t){t.stopPropagation();this.updatePosition(t,{x:t.touches[0].clientX,y:t.touches[0].clientY,time:t.timeStamp});this.canPreventScrolling=false},onMouseUp:function(t){t.stopPropagation();if(this.usingTouch||t.button!==0)return;if(this.state.onEnd&&false===this.state.onEnd.call(this)){t.preventDefault()}},onTouchEnd:function(t){t.stopPropagation();if(t.touches.length>1){this.cancel()}else if(this.state.onEnd&&false===this.state.onEnd.call(this)){t.preventDefault()}},getTotalMovement:function(){var t=this.target.scrollContainer.scrollTop-this.target.origScrollTop;return{x:this.latestPosition.x-this.startPosition.x,y:this.latestPosition.y-this.startPosition.y+t,time:this.latestPosition.time-this.startPosition.time}},getAbsoluteMovement:function(){var t=this.getTotalMovement();return{x:Math.abs(t.x),y:Math.abs(t.y),time:t.time,directionX:t.x<0?"left":"right",directionY:t.y<0?"up":"down"}},updateScrolling:function(){var t=40,e=0;var i=this.target.scrollContainer,n=i.getBoundingClientRect(),s=this.target.node.getBoundingClientRect(),o=Math.min(n.bottom,window.innerHeight)-s.bottom,a=s.top-Math.max(n.top,0),r=this.target.origScrollHeight-Math.min(i.clientHeight,window.innerHeight);if(o0?"":"-")+"100%,0) "+l+e.baseTransform.value;setTimeout(function(){if(t.call(this,e)){i.forEach(function(t){t.node.style[a]=n+t.baseTransform.value});setTimeout(function(){i.forEach(function(t){t.node.style[a]="translate(0,0) "+l+t.baseTransform.value});setTimeout(function(){i.forEach(function(t){t.node.style[a]=t.baseTransform.original})},101)},1)}}.bind(this),101)}};if("function"===typeof define&&define.amd){define(function(){return g})}if("object"===typeof module&&module.exports){module.exports=g}return g}()}})();