diff --git a/bower.json b/bower.json index a937fdb..9653218 100755 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "jquery-asScrollable", - "version": "0.4.6", + "version": "0.4.7", "description": "A jquery plugin that make a block element scrollable.", "main": "dist/jquery-asScrollable.js", "copyright": "amazingSurge", diff --git a/dist/css/asScrollable.css b/dist/css/asScrollable.css index c741711..97661b4 100644 --- a/dist/css/asScrollable.css +++ b/dist/css/asScrollable.css @@ -1,5 +1,5 @@ /** -* jQuery asScrollable v0.4.6 +* jQuery asScrollable v0.4.7 * https://github.com/amazingSurge/jquery-asScrollable * * Copyright (c) amazingSurge diff --git a/dist/css/asScrollable.min.css b/dist/css/asScrollable.min.css index a4bb3cb..7039a91 100644 --- a/dist/css/asScrollable.min.css +++ b/dist/css/asScrollable.min.css @@ -1,5 +1,5 @@ /** -* jQuery asScrollable v0.4.6 +* jQuery asScrollable v0.4.7 * https://github.com/amazingSurge/jquery-asScrollable * * Copyright (c) amazingSurge diff --git a/dist/jquery-asScrollable.es.js b/dist/jquery-asScrollable.es.js index 75f3875..0065a74 100644 --- a/dist/jquery-asScrollable.es.js +++ b/dist/jquery-asScrollable.es.js @@ -1,5 +1,5 @@ /** -* jQuery asScrollable v0.4.6 +* jQuery asScrollable v0.4.7 * https://github.com/amazingSurge/jquery-asScrollable * * Copyright (c) amazingSurge @@ -449,14 +449,17 @@ class AsScrollable { this._states[state] = 0; } - this._states[state]++; + // this._states[state]++; + this._states[state] = 1; } /** * Leaves a state. */ leave(state) { - this._states[state]--; + // this._states[state]--; + + this._states[state] = -1; } eventName(events) { @@ -837,7 +840,7 @@ class AsScrollable { } var info = { - version:'0.4.6' + version:'0.4.7' }; const NAMESPACE = 'asScrollable'; diff --git a/dist/jquery-asScrollable.js b/dist/jquery-asScrollable.js index 616ef2f..95bd507 100644 --- a/dist/jquery-asScrollable.js +++ b/dist/jquery-asScrollable.js @@ -1,5 +1,5 @@ /** -* jQuery asScrollable v0.4.6 +* jQuery asScrollable v0.4.7 * https://github.com/amazingSurge/jquery-asScrollable * * Copyright (c) amazingSurge @@ -584,12 +584,15 @@ this._states[state] = 0; } - this._states[state]++; + // this._states[state]++; + this._states[state] = 1; } }, { key: 'leave', value: function leave(state) { - this._states[state]--; + // this._states[state]--; + + this._states[state] = -1; } }, { key: 'eventName', @@ -1040,7 +1043,7 @@ }(); var info = { - version: '0.4.6' + version: '0.4.7' }; var NAMESPACE = 'asScrollable'; diff --git a/dist/jquery-asScrollable.min.js b/dist/jquery-asScrollable.min.js index 0bef4d6..d7cb422 100644 --- a/dist/jquery-asScrollable.min.js +++ b/dist/jquery-asScrollable.min.js @@ -1,8 +1,8 @@ /** -* jQuery asScrollable v0.4.6 +* jQuery asScrollable v0.4.7 * https://github.com/amazingSurge/jquery-asScrollable * * 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 i={exports:{}};e(t.jQuery),t.jqueryAsScrollableEs=i.exports}}(this,function(t){"use strict";function e(t){return t&&t.__esModule?t:{default:t}}function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function s(){return"undefined"!=typeof window.performance&&window.performance.now?window.performance.now():Date.now()}function n(t){return"string"==typeof t&&t.indexOf("%")!==-1}function o(t){return t<0?t=0:t>1&&(t=1),100*parseFloat(t).toFixed(4)+"%"}function a(t){return parseFloat(t.slice(0,-1)/100,10)}var r=e(t),l="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 i=0;i23)}(),u="asScrollable",d=0,v=function(){function t(e,s){i(this,t),this.$element=(0,r.default)(e),s=this.options=r.default.extend({},c,s||{},this.$element.data("options")||{}),this.classes={wrap:s.namespace,content:s.namespace+"-content",container:s.namespace+"-container",bar:s.namespace+"-bar",barHide:s.namespace+"-bar-hide",skin:s.skin},this.attributes={vertical:{axis:"Y",overflow:"overflow-y",scroll:"scrollTop",scrollLength:"scrollHeight",pageOffset:"pageYOffset",ffPadding:"padding-right",length:"height",clientLength:"clientHeight",offset:"offsetHeight",crossLength:"width",crossClientLength:"clientWidth",crossOffset:"offsetWidth"},horizontal:{axis:"X",overflow:"overflow-x",scroll:"scrollLeft",scrollLength:"scrollWidth",pageOffset:"pageXOffset",ffPadding:"padding-bottom",length:"width",clientLength:"clientWidth",offset:"offsetWidth",crossLength:"height",crossClientLength:"clientHeight",crossOffset:"offsetHeight"}},this._states={},this.horizontal=null,this.vertical=null,this.$bar=null,this._frameId=null,this._timeoutId=null,this.instanceId=++d,this.easing=r.default.asScrollbar.getEasing(this.options.easing)||r.default.asScrollbar.getEasing("ease"),this.init()}return h(t,[{key:"init",value:function(){var t=this.$element.css("position");switch(this.options.containerSelector?(this.$container=this.$element.find(this.options.containerSelector),this.$wrap=this.$element,"static"===t&&this.$wrap.css("position","relative")):(this.$container=this.$element.wrap("
"),this.$wrap=this.$container.parent(),this.$wrap.height(this.$element.height()),"static"!==t?this.$wrap.css("position",t):this.$wrap.css("position","relative")),this.options.contentSelector?this.$content=this.$container.find(this.options.contentSelector):(this.$content=this.$container.wrap("
"),this.$container=this.$content.parent()),this.options.direction){case"vertical":this.vertical=!0;break;case"horizontal":this.horizontal=!0;break;case"both":this.horizontal=!0,this.vertical=!0;break;case"auto":var e=this.$element.css("overflow-x"),i=this.$element.css("overflow-y");"scroll"!==e&&"auto"!==e||(this.horizontal=!0),"scroll"!==i&&"auto"!==i||(this.vertical=!0)}(this.vertical||this.horizontal)&&(this.$wrap.addClass(this.classes.wrap),this.$container.addClass(this.classes.container),this.$content.addClass(this.classes.content),this.options.skin&&this.$wrap.addClass(this.classes.skin),this.$wrap.addClass(this.options.enabledClass),this.vertical&&(this.$wrap.addClass(this.classes.wrap+"-vertical"),this.initLayout("vertical"),this.createBar("vertical")),this.horizontal&&(this.$wrap.addClass(this.classes.wrap+"-horizontal"),this.initLayout("horizontal"),this.createBar("horizontal")),this.bindEvents(),this.trigger("ready"))}},{key:"bindEvents",value:function(){var t=this;if(this.options.responsive&&((0,r.default)(window).on(this.eventNameWithId("orientationchange"),function(){t.update()}),(0,r.default)(window).on(this.eventNameWithId("resize"),this.throttle(function(){t.update()},this.options.throttle))),this.horizontal||this.vertical){var e=this;this.$wrap.on(this.eventName("mouseenter"),function(){e.$wrap.addClass(t.options.hoveringClass),e.enter("hovering"),e.trigger("hover")}),this.$wrap.on(this.eventName("mouseleave"),function(){e.$wrap.removeClass(t.options.hoveringClass),e.is("hovering")&&(e.leave("hovering"),e.trigger("hovered"))}),this.options.showOnHover&&(this.options.showOnBarHover?this.$bar.on("asScrollbar::hover",function(){e.horizontal&&e.showBar("horizontal"),e.vertical&&e.showBar("vertical")}).on("asScrollbar::hovered",function(){e.horizontal&&e.hideBar("horizontal"),e.vertical&&e.hideBar("vertical")}):(this.$element.on(u+"::hover",r.default.proxy(this.showBar,this)),this.$element.on(u+"::hovered",r.default.proxy(this.hideBar,this)))),this.$container.on(this.eventName("scroll"),function(){if(e.horizontal){var t=e.offsetLeft;e.offsetLeft=e.getOffset("horizontal"),t!==e.offsetLeft&&(e.trigger("scroll",e.getPercentOffset("horizontal"),"horizontal"),0===e.offsetLeft&&e.trigger("scrolltop","horizontal"),e.offsetLeft===e.getScrollLength("horizontal")&&e.trigger("scrollend","horizontal"))}if(e.vertical){var i=e.offsetTop;e.offsetTop=e.getOffset("vertical"),i!==e.offsetTop&&(e.trigger("scroll",e.getPercentOffset("vertical"),"vertical"),0===e.offsetTop&&e.trigger("scrolltop","vertical"),e.offsetTop===e.getScrollLength("vertical")&&e.trigger("scrollend","vertical"))}}),this.$element.on(u+"::scroll",function(t,i,s,n){e.is("scrolling")||(e.enter("scrolling"),e.$wrap.addClass(e.options.scrollingClass));var a=i.getBarApi(n);a.moveTo(o(s),!1,!0),clearTimeout(e._timeoutId),e._timeoutId=setTimeout(function(){e.$wrap.removeClass(e.options.scrollingClass),e.leave("scrolling")},200)}),this.$bar.on("asScrollbar::change",function(t,i,s){"string"==typeof t.target.direction&&e.scrollTo(t.target.direction,o(s),!1,!0)}),this.$bar.on("asScrollbar::drag",function(){e.$wrap.addClass(e.options.draggingClass)}).on("asScrollbar::dragged",function(){e.$wrap.removeClass(e.options.draggingClass)})}}},{key:"unbindEvents",value:function(){this.$wrap.off(this.eventName()),this.$element.off(u+"::scroll").off(u+"::hover").off(u+"::hovered"),this.$container.off(this.eventName()),(0,r.default)(window).off(this.eventNameWithId())}},{key:"initLayout",value:function(t){"vertical"===t&&this.$container.css("height",this.$wrap.height());var e=this.attributes[t],i=this.$container[0],s=i.parentNode[e.crossClientLength],n=this.getBrowserScrollbarWidth(t);this.$content.css(e.crossLength,s+"px"),this.$container.css(e.crossLength,n+s+"px"),0===n&&f&&this.$container.css(e.ffPadding,16)}},{key:"createBar",value:function(t){var e=r.default.extend(this.options.scrollbar,{namespace:this.classes.bar,direction:t,useCssTransitions:!1,keyboard:!1}),i=(0,r.default)("
");i.asScrollbar(e),this.options.showOnHover&&i.addClass(this.classes.barHide),i.appendTo(this.$wrap),this["$"+t]=i,null===this.$bar?this.$bar=i:this.$bar=this.$bar.add(i),this.updateBarHandle(t)}},{key:"trigger",value:function(t){for(var e=arguments.length,i=Array(e>1?e-1:0),s=1;s0}},{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;t=t.split(" ");for(var e=t.length,i=0;ie?(n&&(clearTimeout(n),n=null),l=d,r=t.apply(o,a),n||(o=a=null)):n||(n=setTimeout(h,v)),r}}},{key:"getBrowserScrollbarWidth",value:function(t){var e=this.attributes[t],i=void 0,s=void 0;return e.scrollbarWidth?e.scrollbarWidth:(i=document.createElement("div"),s=i.style,s.position="absolute",s.width="100px",s.height="100px",s.overflow="scroll",s.top="-9999px",document.body.appendChild(i),e.scrollbarWidth=i[e.offset]-i[e.clientLength],document.body.removeChild(i),e.scrollbarWidth)}},{key:"getOffset",value:function(t){var e=this.attributes[t],i=this.$container[0];return i[e.pageOffset]||i[e.scroll]}},{key:"getPercentOffset",value:function(t){return this.getOffset(t)/this.getScrollLength(t)}},{key:"getContainerLength",value:function(t){return this.$container[0][this.attributes[t].clientLength]}},{key:"getScrollLength",value:function(t){var e=this.$content[0][this.attributes[t].scrollLength];return e-this.getContainerLength(t)}},{key:"scrollTo",value:function(t,e,i,s){var o="undefined"==typeof e?"undefined":l(e);"string"===o&&(n(e)&&(e=a(e)*this.getScrollLength(t)),e=parseFloat(e),o="number"),"number"===o&&this.move(t,e,i,s)}},{key:"scrollBy",value:function(t,e,i,s){var o="undefined"==typeof e?"undefined":l(e);"string"===o&&(n(e)&&(e=a(e)*this.getScrollLength(t)),e=parseFloat(e),o="number"),"number"===o&&this.move(t,this.getOffset(t)+e,i,s)}},{key:"move",value:function(t,e,i,n){var o=this;if(this[t]===!0&&"number"==typeof e){this.enter("moving"),e<0?e=0:e>this.getScrollLength(t)&&(e=this.getScrollLength(t));var a=this.attributes[t],r=this,l=function(){r.leave("moving")};n?(this.$container[0][a.scroll]=e,i!==!1&&this.trigger("change",e/this.getScrollLength(t),t),l()):!function(){o.enter("animating");var n=s(),h=o.getOffset(t),c=e,f=function s(o){var f=(o-n)/r.options.duration;f>1&&(f=1),f=r.easing.fn(f);var u=parseFloat(h+f*(c-h),10);r.$container[0][a.scroll]=u,i!==!1&&r.trigger("change",e/r.getScrollLength(t),t),1===f?(window.cancelAnimationFrame(r._frameId),r._frameId=null,r.leave("animating"),l()):r._frameId=window.requestAnimationFrame(s)};o._frameId=window.requestAnimationFrame(f)}()}}},{key:"scrollXto",value:function(t,e,i){return this.scrollTo("horizontal",t,e,i)}},{key:"scrollYto",value:function(t,e,i){return this.scrollTo("vertical",t,e,i)}},{key:"scrollXby",value:function(t,e,i){return this.scrollBy("horizontal",t,e,i)}},{key:"scrollYby",value:function(t,e,i){return this.scrollBy("vertical",t,e,i)}},{key:"getBar",value:function(t){return t&&this["$"+t]?this["$"+t]:this.$bar}},{key:"getBarApi",value:function(t){return this.getBar(t).data("asScrollbar")}},{key:"getBarX",value:function(){return this.getBar("horizontal")}},{key:"getBarY",value:function(){return this.getBar("vertical")}},{key:"showBar",value:function(t){this.getBar(t).removeClass(this.classes.barHide)}},{key:"hideBar",value:function(t){this.getBar(t).addClass(this.classes.barHide)}},{key:"updateBarHandle",value:function(t){var e=this.getBarApi(t);if(e){var i=this.getContainerLength(t),s=this.getScrollLength(t);s>0?(e.is("disabled")&&e.enable(),e.setHandleLength(e.getBarLength()*i/(s+i),!0)):e.disable()}}},{key:"disable",value:function(){this.is("disabled")||(this.enter("disabled"),this.$wrap.addClass(this.options.disabledClass).removeClass(this.options.enabledClass),this.unbindEvents(),this.unStyle()),this.trigger("disable")}},{key:"enable",value:function(){this.is("disabled")&&(this.leave("disabled"),this.$wrap.addClass(this.options.enabledClass).removeClass(this.options.disabledClass),this.bindEvents(),this.update()),this.trigger("enable")}},{key:"update",value:function(){this.is("disabled")||this.$element.is(":visible")&&(this.vertical&&(this.initLayout("vertical"),this.updateBarHandle("vertical")),this.horizontal&&(this.initLayout("horizontal"),this.updateBarHandle("horizontal")))}},{key:"unStyle",value:function(){this.horizontal&&(this.$container.css({height:"","padding-bottom":""}),this.$content.css({height:""})),this.vertical&&(this.$container.css({width:"",height:"","padding-right":""}),this.$content.css({width:""})),this.options.containerSelector||this.$wrap.css({height:""})}},{key:"destroy",value:function(){this.$wrap.removeClass(this.classes.wrap+"-vertical").removeClass(this.classes.wrap+"-horizontal").removeClass(this.classes.wrap).removeClass(this.options.enabledClass).removeClass(this.classes.disabledClass),this.unStyle(),this.$bar&&this.$bar.remove(),this.unbindEvents(),this.options.containerSelector?this.$container.removeClass(this.classes.container):this.$container.unwrap(),this.options.contentSelector||this.$content.unwrap(),this.$content.removeClass(this.classes.content),this.$element.data(u,null),this.trigger("destroy")}}],[{key:"setDefaults",value:function(t){r.default.extend(c,r.default.isPlainObject(t)&&t)}}]),t}(),g={version:"0.4.6"},p="asScrollable",b=r.default.fn.asScrollable,m=function(t){for(var e=this,i=arguments.length,s=Array(i>1?i-1:0),n=1;n1&&(t=1),100*parseFloat(t).toFixed(4)+"%"}function a(t){return parseFloat(t.slice(0,-1)/100,10)}var r=e(t),l="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 i=0;i23)}(),u="asScrollable",d=0,v=function(){function t(e,s){i(this,t),this.$element=(0,r.default)(e),s=this.options=r.default.extend({},c,s||{},this.$element.data("options")||{}),this.classes={wrap:s.namespace,content:s.namespace+"-content",container:s.namespace+"-container",bar:s.namespace+"-bar",barHide:s.namespace+"-bar-hide",skin:s.skin},this.attributes={vertical:{axis:"Y",overflow:"overflow-y",scroll:"scrollTop",scrollLength:"scrollHeight",pageOffset:"pageYOffset",ffPadding:"padding-right",length:"height",clientLength:"clientHeight",offset:"offsetHeight",crossLength:"width",crossClientLength:"clientWidth",crossOffset:"offsetWidth"},horizontal:{axis:"X",overflow:"overflow-x",scroll:"scrollLeft",scrollLength:"scrollWidth",pageOffset:"pageXOffset",ffPadding:"padding-bottom",length:"width",clientLength:"clientWidth",offset:"offsetWidth",crossLength:"height",crossClientLength:"clientHeight",crossOffset:"offsetHeight"}},this._states={},this.horizontal=null,this.vertical=null,this.$bar=null,this._frameId=null,this._timeoutId=null,this.instanceId=++d,this.easing=r.default.asScrollbar.getEasing(this.options.easing)||r.default.asScrollbar.getEasing("ease"),this.init()}return h(t,[{key:"init",value:function(){var t=this.$element.css("position");switch(this.options.containerSelector?(this.$container=this.$element.find(this.options.containerSelector),this.$wrap=this.$element,"static"===t&&this.$wrap.css("position","relative")):(this.$container=this.$element.wrap("
"),this.$wrap=this.$container.parent(),this.$wrap.height(this.$element.height()),"static"!==t?this.$wrap.css("position",t):this.$wrap.css("position","relative")),this.options.contentSelector?this.$content=this.$container.find(this.options.contentSelector):(this.$content=this.$container.wrap("
"),this.$container=this.$content.parent()),this.options.direction){case"vertical":this.vertical=!0;break;case"horizontal":this.horizontal=!0;break;case"both":this.horizontal=!0,this.vertical=!0;break;case"auto":var e=this.$element.css("overflow-x"),i=this.$element.css("overflow-y");"scroll"!==e&&"auto"!==e||(this.horizontal=!0),"scroll"!==i&&"auto"!==i||(this.vertical=!0)}(this.vertical||this.horizontal)&&(this.$wrap.addClass(this.classes.wrap),this.$container.addClass(this.classes.container),this.$content.addClass(this.classes.content),this.options.skin&&this.$wrap.addClass(this.classes.skin),this.$wrap.addClass(this.options.enabledClass),this.vertical&&(this.$wrap.addClass(this.classes.wrap+"-vertical"),this.initLayout("vertical"),this.createBar("vertical")),this.horizontal&&(this.$wrap.addClass(this.classes.wrap+"-horizontal"),this.initLayout("horizontal"),this.createBar("horizontal")),this.bindEvents(),this.trigger("ready"))}},{key:"bindEvents",value:function(){var t=this;if(this.options.responsive&&((0,r.default)(window).on(this.eventNameWithId("orientationchange"),function(){t.update()}),(0,r.default)(window).on(this.eventNameWithId("resize"),this.throttle(function(){t.update()},this.options.throttle))),this.horizontal||this.vertical){var e=this;this.$wrap.on(this.eventName("mouseenter"),function(){e.$wrap.addClass(t.options.hoveringClass),e.enter("hovering"),e.trigger("hover")}),this.$wrap.on(this.eventName("mouseleave"),function(){e.$wrap.removeClass(t.options.hoveringClass),e.is("hovering")&&(e.leave("hovering"),e.trigger("hovered"))}),this.options.showOnHover&&(this.options.showOnBarHover?this.$bar.on("asScrollbar::hover",function(){e.horizontal&&e.showBar("horizontal"),e.vertical&&e.showBar("vertical")}).on("asScrollbar::hovered",function(){e.horizontal&&e.hideBar("horizontal"),e.vertical&&e.hideBar("vertical")}):(this.$element.on(u+"::hover",r.default.proxy(this.showBar,this)),this.$element.on(u+"::hovered",r.default.proxy(this.hideBar,this)))),this.$container.on(this.eventName("scroll"),function(){if(e.horizontal){var t=e.offsetLeft;e.offsetLeft=e.getOffset("horizontal"),t!==e.offsetLeft&&(e.trigger("scroll",e.getPercentOffset("horizontal"),"horizontal"),0===e.offsetLeft&&e.trigger("scrolltop","horizontal"),e.offsetLeft===e.getScrollLength("horizontal")&&e.trigger("scrollend","horizontal"))}if(e.vertical){var i=e.offsetTop;e.offsetTop=e.getOffset("vertical"),i!==e.offsetTop&&(e.trigger("scroll",e.getPercentOffset("vertical"),"vertical"),0===e.offsetTop&&e.trigger("scrolltop","vertical"),e.offsetTop===e.getScrollLength("vertical")&&e.trigger("scrollend","vertical"))}}),this.$element.on(u+"::scroll",function(t,i,s,n){e.is("scrolling")||(e.enter("scrolling"),e.$wrap.addClass(e.options.scrollingClass));var a=i.getBarApi(n);a.moveTo(o(s),!1,!0),clearTimeout(e._timeoutId),e._timeoutId=setTimeout(function(){e.$wrap.removeClass(e.options.scrollingClass),e.leave("scrolling")},200)}),this.$bar.on("asScrollbar::change",function(t,i,s){"string"==typeof t.target.direction&&e.scrollTo(t.target.direction,o(s),!1,!0)}),this.$bar.on("asScrollbar::drag",function(){e.$wrap.addClass(e.options.draggingClass)}).on("asScrollbar::dragged",function(){e.$wrap.removeClass(e.options.draggingClass)})}}},{key:"unbindEvents",value:function(){this.$wrap.off(this.eventName()),this.$element.off(u+"::scroll").off(u+"::hover").off(u+"::hovered"),this.$container.off(this.eventName()),(0,r.default)(window).off(this.eventNameWithId())}},{key:"initLayout",value:function(t){"vertical"===t&&this.$container.css("height",this.$wrap.height());var e=this.attributes[t],i=this.$container[0],s=i.parentNode[e.crossClientLength],n=this.getBrowserScrollbarWidth(t);this.$content.css(e.crossLength,s+"px"),this.$container.css(e.crossLength,n+s+"px"),0===n&&f&&this.$container.css(e.ffPadding,16)}},{key:"createBar",value:function(t){var e=r.default.extend(this.options.scrollbar,{namespace:this.classes.bar,direction:t,useCssTransitions:!1,keyboard:!1}),i=(0,r.default)("
");i.asScrollbar(e),this.options.showOnHover&&i.addClass(this.classes.barHide),i.appendTo(this.$wrap),this["$"+t]=i,null===this.$bar?this.$bar=i:this.$bar=this.$bar.add(i),this.updateBarHandle(t)}},{key:"trigger",value:function(t){for(var e=arguments.length,i=Array(e>1?e-1:0),s=1;s0}},{key:"enter",value:function(t){void 0===this._states[t]&&(this._states[t]=0),this._states[t]=1}},{key:"leave",value:function(t){this._states[t]=-1}},{key:"eventName",value:function(t){if("string"!=typeof t||""===t)return"."+this.options.namespace;t=t.split(" ");for(var e=t.length,i=0;ie?(n&&(clearTimeout(n),n=null),l=d,r=t.apply(o,a),n||(o=a=null)):n||(n=setTimeout(h,v)),r}}},{key:"getBrowserScrollbarWidth",value:function(t){var e=this.attributes[t],i=void 0,s=void 0;return e.scrollbarWidth?e.scrollbarWidth:(i=document.createElement("div"),s=i.style,s.position="absolute",s.width="100px",s.height="100px",s.overflow="scroll",s.top="-9999px",document.body.appendChild(i),e.scrollbarWidth=i[e.offset]-i[e.clientLength],document.body.removeChild(i),e.scrollbarWidth)}},{key:"getOffset",value:function(t){var e=this.attributes[t],i=this.$container[0];return i[e.pageOffset]||i[e.scroll]}},{key:"getPercentOffset",value:function(t){return this.getOffset(t)/this.getScrollLength(t)}},{key:"getContainerLength",value:function(t){return this.$container[0][this.attributes[t].clientLength]}},{key:"getScrollLength",value:function(t){var e=this.$content[0][this.attributes[t].scrollLength];return e-this.getContainerLength(t)}},{key:"scrollTo",value:function(t,e,i,s){var o="undefined"==typeof e?"undefined":l(e);"string"===o&&(n(e)&&(e=a(e)*this.getScrollLength(t)),e=parseFloat(e),o="number"),"number"===o&&this.move(t,e,i,s)}},{key:"scrollBy",value:function(t,e,i,s){var o="undefined"==typeof e?"undefined":l(e);"string"===o&&(n(e)&&(e=a(e)*this.getScrollLength(t)),e=parseFloat(e),o="number"),"number"===o&&this.move(t,this.getOffset(t)+e,i,s)}},{key:"move",value:function(t,e,i,n){var o=this;if(this[t]===!0&&"number"==typeof e){this.enter("moving"),e<0?e=0:e>this.getScrollLength(t)&&(e=this.getScrollLength(t));var a=this.attributes[t],r=this,l=function(){r.leave("moving")};n?(this.$container[0][a.scroll]=e,i!==!1&&this.trigger("change",e/this.getScrollLength(t),t),l()):!function(){o.enter("animating");var n=s(),h=o.getOffset(t),c=e,f=function s(o){var f=(o-n)/r.options.duration;f>1&&(f=1),f=r.easing.fn(f);var u=parseFloat(h+f*(c-h),10);r.$container[0][a.scroll]=u,i!==!1&&r.trigger("change",e/r.getScrollLength(t),t),1===f?(window.cancelAnimationFrame(r._frameId),r._frameId=null,r.leave("animating"),l()):r._frameId=window.requestAnimationFrame(s)};o._frameId=window.requestAnimationFrame(f)}()}}},{key:"scrollXto",value:function(t,e,i){return this.scrollTo("horizontal",t,e,i)}},{key:"scrollYto",value:function(t,e,i){return this.scrollTo("vertical",t,e,i)}},{key:"scrollXby",value:function(t,e,i){return this.scrollBy("horizontal",t,e,i)}},{key:"scrollYby",value:function(t,e,i){return this.scrollBy("vertical",t,e,i)}},{key:"getBar",value:function(t){return t&&this["$"+t]?this["$"+t]:this.$bar}},{key:"getBarApi",value:function(t){return this.getBar(t).data("asScrollbar")}},{key:"getBarX",value:function(){return this.getBar("horizontal")}},{key:"getBarY",value:function(){return this.getBar("vertical")}},{key:"showBar",value:function(t){this.getBar(t).removeClass(this.classes.barHide)}},{key:"hideBar",value:function(t){this.getBar(t).addClass(this.classes.barHide)}},{key:"updateBarHandle",value:function(t){var e=this.getBarApi(t);if(e){var i=this.getContainerLength(t),s=this.getScrollLength(t);s>0?(e.is("disabled")&&e.enable(),e.setHandleLength(e.getBarLength()*i/(s+i),!0)):e.disable()}}},{key:"disable",value:function(){this.is("disabled")||(this.enter("disabled"),this.$wrap.addClass(this.options.disabledClass).removeClass(this.options.enabledClass),this.unbindEvents(),this.unStyle()),this.trigger("disable")}},{key:"enable",value:function(){this.is("disabled")&&(this.leave("disabled"),this.$wrap.addClass(this.options.enabledClass).removeClass(this.options.disabledClass),this.bindEvents(),this.update()),this.trigger("enable")}},{key:"update",value:function(){this.is("disabled")||this.$element.is(":visible")&&(this.vertical&&(this.initLayout("vertical"),this.updateBarHandle("vertical")),this.horizontal&&(this.initLayout("horizontal"),this.updateBarHandle("horizontal")))}},{key:"unStyle",value:function(){this.horizontal&&(this.$container.css({height:"","padding-bottom":""}),this.$content.css({height:""})),this.vertical&&(this.$container.css({width:"",height:"","padding-right":""}),this.$content.css({width:""})),this.options.containerSelector||this.$wrap.css({height:""})}},{key:"destroy",value:function(){this.$wrap.removeClass(this.classes.wrap+"-vertical").removeClass(this.classes.wrap+"-horizontal").removeClass(this.classes.wrap).removeClass(this.options.enabledClass).removeClass(this.classes.disabledClass),this.unStyle(),this.$bar&&this.$bar.remove(),this.unbindEvents(),this.options.containerSelector?this.$container.removeClass(this.classes.container):this.$container.unwrap(),this.options.contentSelector||this.$content.unwrap(),this.$content.removeClass(this.classes.content),this.$element.data(u,null),this.trigger("destroy")}}],[{key:"setDefaults",value:function(t){r.default.extend(c,r.default.isPlainObject(t)&&t)}}]),t}(),g={version:"0.4.7"},p="asScrollable",b=r.default.fn.asScrollable,m=function(t){for(var e=this,i=arguments.length,s=Array(i>1?i-1:0),n=1;n