/** * jQuery asScrollbar v0.5.7 * https://github.com/amazingSurge/jquery-asScrollbar * * Copyright (c) amazingSurge * Released under the LGPL-3.0 license */ !function(t,e){if("function"==typeof define&&define.amd)define(["jquery"],e);else if("undefined"!=typeof exports)e(require("jquery"));else{var n={exports:{}};e(t.jQuery),t.jqueryAsScrollbarEs=n.exports}}(this,function(t){"use strict";function e(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function n(t){return"string"==typeof t&&-1!==t.indexOf("%")}function i(t){return parseFloat(t.slice(0,-1)/100,10)}function s(t){return!(!t||"matrix"!==t.substr(0,6))&&t.replace(/^.*\((.*)\)$/g,"$1").replace(/px/g,"").split(/, +/)}function a(){return void 0!==window.performance&&window.performance.now?window.performance.now():Date.now()}var o=function(t){return t&&t.__esModule?t:{default:t}}(t),r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},h=function(){function t(t,e){for(var n=0;n',barClass:null,handleClass:null,disabledClass:"is-disabled",draggingClass:"is-dragging",hoveringClass:"is-hovering",direction:"vertical",barLength:null,handleLength:null,minHandleLength:30,maxHandleLength:null,mouseDrag:!0,touchDrag:!0,pointerDrag:!0,clickMove:!0,clickMoveStep:.3,mousewheel:!0,mousewheelSpeed:50,keyboard:!0,useCssTransforms3d:!0,useCssTransforms:!0,useCssTransitions:!0,duration:"500",easing:"ease"},u=function(t,e,n,i){var s=function(t,e){return 1-3*e+3*t},a=function(t,e){return 3*e-6*t},o=function(t){return 3*t},r=function(t,e,n){return((s(e,n)*t+a(e,n))*t+o(e))*t},h=function(t,e,n){return 3*s(e,n)*t*t+2*a(e,n)*t+o(e)},l=function(e){for(var i=e,s=0;s<4;++s){var a=h(i,t,n);if(0===a)return i;i-=(r(i,t,n)-e)/a}return i};return t===e&&n===i?{css:"linear",fn:function(t){return t}}:{css:"cubic-bezier("+t+","+e+","+n+","+i+")",fn:function(t){return r(l(t),e,i)}}},d={ease:u(.25,.1,.25,1),linear:u(0,0,1,1),"ease-in":u(.42,0,1,1),"ease-out":u(0,0,.58,1),"ease-in-out":u(.42,0,.58,1)};Date.now||(Date.now=function(){return(new Date).getTime()});for(var c=["webkit","moz"],f=0;f").get(0).style,s={csstransforms:function(){return Boolean(a("transform"))},csstransforms3d:function(){return Boolean(a("perspective"))},csstransitions:function(){return Boolean(a("transition"))},cssanimations:function(){return Boolean(a("animation"))}},a=function(t,e){var s=!1,a=t.charAt(0).toUpperCase()+t.slice(1);return void 0!==i[t]&&(s=t),s||o.default.each(n,function(t,e){return void 0===i[e+a]||(s="-"+e.toLowerCase()+"-"+a,!1)}),e?s:!!s},r=function(t){return a(t,!0)};s.csstransitions()&&(t.transition=new String(r("transition")),t.transition.end=e.transition.end[t.transition]),s.cssanimations()&&(t.animation=new String(r("animation")),t.animation.end=e.animation.end[t.animation]),s.csstransforms()&&(t.transform=new String(r("transform")),t.transform3d=s.csstransforms3d()),"ontouchstart"in window||window.DocumentTouch&&document instanceof window.DocumentTouch?t.touch=!0:t.touch=!1,window.PointerEvent||window.MSPointerEvent?t.pointer=!0:t.pointer=!1,t.prefixPointerEvent=function(t){return window.MSPointerEvent?"MSPointer"+t.charAt(9).toUpperCase()+t.substr(10):t}}(m);var p=function(){function t(n){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};e(this,t),this.$bar=(0,o.default)(n),i=this.options=o.default.extend({},l,i,this.$bar.data("options")||{}),n.direction=this.options.direction,this.classes={directionClass:i.namespace+"-"+i.direction,barClass:i.barClass?i.barClass:i.namespace,handleClass:i.handleClass?i.handleClass:i.namespace+"-handle"},"vertical"===this.options.direction?this.attributes={axis:"Y",position:"top",length:"height",clientLength:"clientHeight"}:"horizontal"===this.options.direction&&(this.attributes={axis:"X",position:"left",length:"width",clientLength:"clientWidth"}),this._states={},this._drag={time:null,pointer:null},this._frameId=null,this.handlePosition=0,this.easing=d[this.options.easing]||d.ease,this.init()}return h(t,[{key:"init",value:function(){var t=this.options;this.$handle=this.$bar.find(this.options.handleSelector),0===this.$handle.length?this.$handle=(0,o.default)(t.handleTemplate.replace(/\{\{handle\}\}/g,this.classes.handleClass)).appendTo(this.$bar):this.$handle.addClass(this.classes.handleClass),this.$bar.addClass(this.classes.barClass).addClass(this.classes.directionClass).attr("draggable",!1),t.skin&&this.$bar.addClass(t.skin),null!==t.barLength&&this.setBarLength(t.barLength),null!==t.handleLength&&this.setHandleLength(t.handleLength),this.updateLength(),this.bindEvents(),this.trigger("ready")}},{key:"trigger",value:function(t){for(var e=arguments.length,n=Array(e>1?e-1:0),i=1;i0}},{key:"enter",value:function(t){void 0===this._states[t]&&(this._states[t]=0),this._states[t]++}},{key:"leave",value:function(t){this._states[t]--}},{key:"eventName",value:function(t){if("string"!=typeof t||""===t)return"."+this.options.namespace;for(var e=(t=t.split(" ")).length,n=0;n0||(i>=t.barLength&&n<0||(i-=t.options.mousewheelSpeed*n,t.move(i,!0),!1))}),this.$bar.on(this.eventName("mouseenter"),function(){t.$bar.addClass(t.options.hoveringClass),t.enter("hovering"),t.trigger("hover")}),this.$bar.on(this.eventName("mouseleave"),function(){t.$bar.removeClass(t.options.hoveringClass),t.is("hovering")&&(t.leave("hovering"),t.trigger("hovered"))}),this.options.keyboard&&(0,o.default)(document).on(this.eventName("keydown"),function(e){if((!e.isDefaultPrevented||!e.isDefaultPrevented())&&t.is("hovering")){for(var n=document.activeElement;n.shadowRoot;)n=n.shadowRoot.activeElement;if(!(0,o.default)(n).is(":input,select,option,[contenteditable]")){var i=0,s=null;switch(e.which){case 37:case 63232:i=-30;break;case 38:case 63233:i=-30;break;case 39:case 63234:i=30;break;case 40:case 63235:i=30;break;case 33:case 63276:i=-90;break;case 32:case 34:case 63277:i=-90;break;case 35:case 63275:s="100%";break;case 36:case 63273:s=0;break;default:return}(i||null!==s)&&(i?t.moveBy(i,!0):null!==s&&t.moveTo(s,!0),e.preventDefault())}}})}},{key:"onClick",value:function(t){if(3!==t.which&&t.target!==this.$handle[0]){this._drag.time=(new Date).getTime(),this._drag.pointer=this.pointer(t);var e=this.$handle.offset(),n=this.distance({x:e.left,y:e.top},this._drag.pointer),i=1;n>0?n-=this.handleLength:(n=Math.abs(n),i=-1),n>this.barLength*this.options.clickMoveStep&&(n=this.barLength*this.options.clickMoveStep),this.moveBy(i*n,!0)}}},{key:"onDragStart",value:function(t){var e=this;if(3!==t.which){this.$bar.addClass(this.options.draggingClass),this._drag.time=(new Date).getTime(),this._drag.pointer=this.pointer(t);var n=function(){e.enter("dragging"),e.trigger("drag")};this.options.mouseDrag&&((0,o.default)(document).on(this.eventName("mouseup"),o.default.proxy(this.onDragEnd,this)),(0,o.default)(document).one(this.eventName("mousemove"),o.default.proxy(function(){(0,o.default)(document).on(e.eventName("mousemove"),o.default.proxy(e.onDragMove,e)),n()},this))),this.options.touchDrag&&m.touch&&((0,o.default)(document).on(this.eventName("touchend"),o.default.proxy(this.onDragEnd,this)),(0,o.default)(document).one(this.eventName("touchmove"),o.default.proxy(function(){(0,o.default)(document).on(e.eventName("touchmove"),o.default.proxy(e.onDragMove,e)),n()},this))),this.options.pointerDrag&&m.pointer&&((0,o.default)(document).on(this.eventName(m.prefixPointerEvent("pointerup")),o.default.proxy(this.onDragEnd,this)),(0,o.default)(document).one(this.eventName(m.prefixPointerEvent("pointermove")),o.default.proxy(function(){(0,o.default)(document).on(e.eventName(m.prefixPointerEvent("pointermove")),o.default.proxy(e.onDragMove,e)),n()},this))),(0,o.default)(document).on(this.eventName("blur"),o.default.proxy(this.onDragEnd,this))}}},{key:"onDragMove",value:function(t){var e=this.distance(this._drag.pointer,this.pointer(t));this.is("dragging")&&(t.preventDefault(),this.moveBy(e,!0))}},{key:"onDragEnd",value:function(){(0,o.default)(document).off(this.eventName("mousemove mouseup touchmove touchend pointermove pointerup MSPointerMove MSPointerUp blur")),this.$bar.removeClass(this.options.draggingClass),this.handlePosition=this.getHandlePosition(),this.is("dragging")&&(this.leave("dragging"),this.trigger("dragged"))}},{key:"pointer",value:function(t){var e={x:null,y:null};return t=t.originalEvent||t||window.event,(t=t.touches&&t.touches.length?t.touches[0]:t.changedTouches&&t.changedTouches.length?t.changedTouches[0]:t).pageX?(e.x=t.pageX,e.y=t.pageY):(e.x=t.clientX,e.y=t.clientY),e}},{key:"distance",value:function(t,e){return"vertical"===this.options.direction?e.y-t.y:e.x-t.x}},{key:"setBarLength",value:function(t,e){void 0!==t&&this.$bar.css(this.attributes.length,t),!1!==e&&this.updateLength()}},{key:"setHandleLength",value:function(t,e){void 0!==t&&(tthis.options.maxHandleLength&&(t=this.options.maxHandleLength),this.$handle.css(this.attributes.length,t),!1!==e&&this.updateLength(t))}},{key:"updateLength",value:function(t,e){this.handleLength=void 0!==t?t:this.getHandleLenght(),this.barLength=void 0!==e?e:this.getBarLength()}},{key:"getBarLength",value:function(){return this.$bar[0][this.attributes.clientLength]}},{key:"getHandleLenght",value:function(){return this.$handle[0][this.attributes.clientLength]}},{key:"getHandlePosition",value:function(){var t=void 0;if(this.options.useCssTransforms&&m.transform){if(!(t=s(this.$handle.css(m.transform))))return 0;t="X"===this.attributes.axis?t[12]||t[4]:t[13]||t[5]}else t=this.$handle.css(this.attributes.position);return parseFloat(t.replace("px",""))}},{key:"makeHandlePositionStyle",value:function(t){var e=void 0,n="0",i="0";this.options.useCssTransforms&&m.transform?("X"===this.attributes.axis?n=t+"px":i=t+"px",e=m.transform.toString(),t=this.options.useCssTransforms3d&&m.transform3d?"translate3d("+n+","+i+",0)":"translate("+n+","+i+")"):e=this.attributes.position;var s={};return s[e]=t,s}},{key:"setHandlePosition",value:function(t){var e=this.makeHandlePositionStyle(t);this.$handle.css(e),this.is("dragging")||(this.handlePosition=parseFloat(t))}},{key:"moveTo",value:function(t,e,s){var a=void 0===t?"undefined":r(t);"string"===a&&(n(t)&&(t=i(t)*(this.barLength-this.handleLength)),t=parseFloat(t),a="number"),"number"===a&&this.move(t,e,s)}},{key:"moveBy",value:function(t,e,s){var a=void 0===t?"undefined":r(t);"string"===a&&(n(t)&&(t=i(t)*(this.barLength-this.handleLength)),t=parseFloat(t),a="number"),"number"===a&&this.move(this.handlePosition+t,e,s)}},{key:"move",value:function(t,e,n){"number"!=typeof t||this.is("disabled")||(t<0?t=0:t+this.handleLength>this.barLength&&(t=this.barLength-this.handleLength),this.is("dragging")||!0===n?(this.setHandlePosition(t),e&&this.trigger("change",t/(this.barLength-this.handleLength))):this.doMove(t,this.options.duration,this.options.easing,e))}},{key:"doMove",value:function(t,e,n,i){var s=this,o=void 0;this.enter("moving"),e=e||this.options.duration,n=n||this.options.easing;var r=this.makeHandlePositionStyle(t);for(o in r)if({}.hasOwnProperty.call(r,o))break;if(this.options.useCssTransitions&&m.transition)this.enter("transition"),this.prepareTransition(o,e,n),this.$handle.one(m.transition.end,function(){s.$handle.css(m.transition,""),i&&s.trigger("change",t/(s.barLength-s.handleLength)),s.leave("transition"),s.leave("moving")}),this.setHandlePosition(t);else{this.enter("animating");var h=a(),l=this.getHandlePosition(),u=t;this._frameId=window.requestAnimationFrame(function t(e){var n=(e-h)/s.options.duration;n>1&&(n=1),n=s.easing.fn(n);var a=parseFloat(l+n*(u-l),10);s.setHandlePosition(a),i&&s.trigger("change",a/(s.barLength-s.handleLength)),1===n?(window.cancelAnimationFrame(s._frameId),s._frameId=null,s.leave("animating"),s.leave("moving")):s._frameId=window.requestAnimationFrame(t)})}}},{key:"prepareTransition",value:function(t,e,n,i){var s=[];t&&s.push(t),e&&(o.default.isNumeric(e)&&(e+="ms"),s.push(e)),n?s.push(n):s.push(this.easing.css),i&&s.push(i),this.$handle.css(m.transition,s.join(" "))}},{key:"enable",value:function(){this._states.disabled=0,this.$bar.removeClass(this.options.disabledClass),this.trigger("enable")}},{key:"disable",value:function(){this._states.disabled=1,this.$bar.addClass(this.options.disabledClass),this.trigger("disable")}},{key:"destroy",value:function(){this.$handle.removeClass(this.classes.handleClass),this.$bar.removeClass(this.classes.barClass).removeClass(this.classes.directionClass).attr("draggable",null),this.options.skin&&this.$bar.removeClass(this.options.skin),this.$bar.off(this.eventName()),this.$handle.off(this.eventName()),this.trigger("destroy")}}],[{key:"registerEasing",value:function(t){for(var e=arguments.length,n=Array(e>1?e-1:0),i=1;i1?e-1:0),i=1;i