!function(t){ if("object" == typeof exports && "undefined" != typeof module) module.exports=t(); else if("function" == typeof define && define.amd) define([],t); else{ var e; "undefined" != typeof window ? e=window :"undefined" != typeof global ? e=global :"undefined" != typeof self && (e=self), e.Slideout=t() } }(function(){ var t,e,n; return function i(t,e,n){ function o(r,a){ if(!e[r]){ if(!t[r]){ var u=typeof require == "function" && require; if(!a && u) return u(r,!0); if(s) return s(r,!0); var l=new Error("Cannot find module '"+r+"'"); throw l.code="MODULE_NOT_FOUND", l } var h=e[r]={exports:{}}; t[r][0].call(h.exports,function(e){ var n=t[r][1][e]; return o(n ? n :e) },h,h.exports,i,t,e,n) } return e[r].exports } var s=typeof require == "function" && require; for(var r=0; r < n.length; r++) o(n[r]); return o }({ 1:[function(t,e,n){ "use strict"; var i=t("decouple"); var o=t("emitter"); var s; var r=false; var a=window.document; var u=a.documentElement; var l=window.navigator.msPointerEnabled; var h={start:l ? "MSPointerDown" :"touchstart",move:l ? "MSPointerMove" :"touchmove",end:l ? "MSPointerUp" :"touchend"}; var f=function v(){ var t=/^(Webkit|Khtml|Moz|ms|O)(?=[A-Z])/; var e=a.getElementsByTagName("script")[0].style; for(var n in e){ if(t.test(n)){ return "-"+n.match(t)[0].toLowerCase()+"-" } } if("WebkitOpacity" in e){ return "-webkit-" } if("KhtmlOpacity" in e){ return "-khtml-" } return "" }(); function c(t,e){ for(var n in e){ if(e[n]){ t[n]=e[n] } } return t } function p(t,e){ t.prototype=c(t.prototype || {},e.prototype) } function d(t){ while (t.parentNode) { if(t.getAttribute("data-slideout-ignore") !== null){ return t } t=t.parentNode } return null } function _(t){ t=t || {}; this._startOffsetX=0; this._currentOffsetX=0; this._opening=false; this._moved=false; this._opened=false; this._preventOpen=false; this.panel=t.panel; this.menu=t.menu; this._touch=t.touch === undefined ? true :t.touch && true; this._side=t.side || "left"; this._easing=t.fx || t.easing || "ease"; this._duration=parseInt(t.duration,10) || 300; this._tolerance=parseInt(t.tolerance,10) || 70; this._padding=this._translateTo=parseInt(t.padding,10) || 256; this._orientation=this._side === "right" ? -1 :1; this._translateTo*=this._orientation; if(!this.panel.classList.contains("slideout-panel")){ this.panel.classList.add("slideout-panel") } if(!this.panel.classList.contains("slideout-panel-"+this._side)){ this.panel.classList.add("slideout-panel-"+this._side) } if(!this.menu.classList.contains("slideout-menu")){ this.menu.classList.add("slideout-menu") } if(!this.menu.classList.contains("slideout-menu-"+this._side)){ this.menu.classList.add("slideout-menu-"+this._side) } if(this._touch){ this._initTouchEvents() } } p(_,o); _.prototype.open=function(){ var t=this; this.emit("beforeopen"); if(!u.classList.contains("slideout-open")){ u.classList.add("slideout-open") } this._setTransition(); this._translateXTo(this._translateTo); this._opened=true; setTimeout(function(){ t.panel.style.transition=t.panel.style["-webkit-transition"]=""; t.emit("open") },this._duration+50); return this }; _.prototype.close=function(){ var t=this; if(!this.isOpen() && !this._opening){ return this } this.emit("beforeclose"); this._setTransition(); this._translateXTo(0); this._opened=false; setTimeout(function(){ u.classList.remove("slideout-open"); t.panel.style.transition=t.panel.style["-webkit-transition"]=t.panel.style[f+"transform"]=t.panel.style.transform=""; t.emit("close") },this._duration+50); return this }; _.prototype.toggle=function(){ return this.isOpen() ? this.close() :this.open() }; _.prototype.isOpen=function(){ return this._opened }; _.prototype._translateXTo=function(t){ this._currentOffsetX=t; this.panel.style[f+"transform"]=this.panel.style.transform="translateX("+t+"px)"; return this }; _.prototype._setTransition=function(){ this.panel.style[f+"transition"]=this.panel.style.transition=f+"transform "+this._duration+"ms "+this._easing; return this }; _.prototype._initTouchEvents=function(){ var t=this; this._onScrollFn=i(a,"scroll",function(){ if(!t._moved){ clearTimeout(s); r=true; s=setTimeout(function(){ r=false },250) } }); this._preventMove=function(e){ if(t._moved){ e.preventDefault() } }; a.addEventListener(h.move,this._preventMove); this._resetTouchFn=function(e){ if(typeof e.touches === "undefined"){ return } t._moved=false; t._opening=false; t._startOffsetX=e.touches[0].pageX; t._preventOpen=!t._touch || !t.isOpen() && t.menu.clientWidth !== 0 }; this.panel.addEventListener(h.start,this._resetTouchFn); this._onTouchCancelFn=function(){ t._moved=false; t._opening=false }; this.panel.addEventListener("touchcancel",this._onTouchCancelFn); this._onTouchEndFn=function(){ if(t._moved){ t.emit("translateend"); t._opening && Math.abs(t._currentOffsetX) > t._tolerance ? t.open() :t.close() } t._moved=false }; this.panel.addEventListener(h.end,this._onTouchEndFn); this._onTouchMoveFn=function(e){ if(r || t._preventOpen || typeof e.touches === "undefined" || d(e.target)){ return } var n=e.touches[0].clientX-t._startOffsetX; var i=t._currentOffsetX=n; if(Math.abs(i) > t._padding){ return } if(Math.abs(n) > 20){ t._opening=true; var o=n*t._orientation; if(t._opened && o > 0 || !t._opened && o < 0){ return } if(!t._moved){ t.emit("translatestart") } if(o <= 0){ i=n+t._padding*t._orientation; t._opening=false } if(!(t._moved && u.classList.contains("slideout-open"))){ u.classList.add("slideout-open") } t.panel.style[f+"transform"]=t.panel.style.transform="translateX("+i+"px)"; t.emit("translate",i); t._moved=true } }; this.panel.addEventListener(h.move,this._onTouchMoveFn); return this }; _.prototype.enableTouch=function(){ this._touch=true; return this }; _.prototype.disableTouch=function(){ this._touch=false; return this }; _.prototype.destroy=function(){ this.close(); a.removeEventListener(h.move,this._preventMove); this.panel.removeEventListener(h.start,this._resetTouchFn); this.panel.removeEventListener("touchcancel",this._onTouchCancelFn); this.panel.removeEventListener(h.end,this._onTouchEndFn); this.panel.removeEventListener(h.move,this._onTouchMoveFn); a.removeEventListener("scroll",this._onScrollFn); this.open=this.close=function(){ }; return this }; e.exports=_ },{decouple:2,emitter:3}],2:[function(t,e,n){ "use strict"; var i=function(){ return window.requestAnimationFrame || window.webkitRequestAnimationFrame || function(t){ window.setTimeout(t,1e3/60) } }(); function o(t,e,n){ var o,s=false; function r(t){ o=t; a() } function a(){ if(!s){ i(u); s=true } } function u(){ n.call(t,o); s=false } t.addEventListener(e,r,false); return r } e.exports=o },{}],3:[function(t,e,n){ "use strict"; var i=function(t,e){ if(!(t instanceof e)){ throw new TypeError("Cannot call a class as a function") } }; n.__esModule=true; var o=function(){ function t(){ i(this,t) } t.prototype.on=function e(t,n){ this._eventCollection=this._eventCollection || {}; this._eventCollection[t]=this._eventCollection[t] || []; this._eventCollection[t].push(n); return this }; t.prototype.once=function n(t,e){ var n=this; function i(){ n.off(t,i); e.apply(this,arguments) } i.listener=e; this.on(t,i); return this }; t.prototype.off=function o(t,e){ var n=undefined; if(!this._eventCollection || !(n=this._eventCollection[t])){ return this } n.forEach(function(t,i){ if(t === e || t.listener === e){ n.splice(i,1) } }); if(n.length === 0){ delete this._eventCollection[t] } return this }; t.prototype.emit=function s(t){ var e=this; for(var n=arguments.length,i=Array(n > 1 ? n-1 :0),o=1; o < n; o++){ i[o-1]=arguments[o] } var s=undefined; if(!this._eventCollection || !(s=this._eventCollection[t])){ return this } s=s.slice(0); s.forEach(function(t){ return t.apply(e,i) }); return this }; return t }(); n["default"]=o; e.exports=n["default"] },{}] },{},[1])(1) });