UNPKG

sss-leash

Version:

Browser scrollbar helper (Disable/Enable by X, Y) and more...

4 lines 4.06 kB
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("Leash",[],t):"object"==typeof exports?exports.Leash=t():e.Leash=t()}(window,function(){return function(n){var i={};function r(e){if(i[e])return i[e].exports;var t=i[e]={i:e,l:!1,exports:{}};return n[e].call(t.exports,t,t.exports,r),t.l=!0,t.exports}return r.m=n,r.c=i,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(t,e){if(1&e&&(t=r(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var i in t)r.d(n,i,function(e){return t[e]}.bind(null,i));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=0)}([function(e,t,n){"use strict";n.r(t);var r={display:"none",position:"absolute",top:0,bottom:0,right:0,zIndex:99,boxSizing:"border-box",overflowY:"scroll"},o={display:""},l={display:"none"},c={boxSizing:"border-box"},s={overflowY:"hidden"},a={overflowX:"hidden"},u={overflowY:""},f={overflowX:""};function i(){return(i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e}).apply(this,arguments)}var d=function(e){var t=e.clientWidth,n=e.clientHeight;e.style.overflow="hidden";var i=e.clientWidth,r=e.clientHeight;return e.style.overflow="",{y:t!==i,x:n!==r}},h=function(e){var t={x:e.scrollLeft,y:e.scrollTop};e.scrollTop=0,e.scrollTop=1,e.scrollLeft=0,e.scrollLeft=1;var n=e.scrollLeft,i=e.scrollTop;return e.scrollTop=t.y,e.scrollLeft=t.x,{y:t.y!==i,x:t.x!==n}},v=function(e,t){return i(e.style,t)},p=function(t,n,i){Object.keys(t).forEach(function(e){t[e].style[n]=i})};function y(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e} /*! SmokinSexySoftware: sss-leash * https://github.com/Natteke * Copyright (c) 2019-present Andrey Ponomarenko; */var b=function n(e){var i=this;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,n),y(this,"isActiveX",!1),y(this,"isActiveY",!1),y(this,"overlay",document.createElement("div")),y(this,"init",function(){var e=i.overlay,t=i.container;v(e,r),v(t,c),i.container.insertAdjacentElement("afterbegin",e),i.container.setAttribute(n.leashSelector,i.id),"static"===getComputedStyle(i.container).position&&(i.container.style.position="relative")}),y(this,"lockY",function(){var e=this.container,t=this.overlay,n=e.clientWidth,i=d(e).y;if(v(e,s),i){v(t,o);var r="".concat(e.clientWidth-n,"px");e.style.paddingRight=r,p(this.selectFixedElements(),"marginRight",r)}this.isActiveY=!0}.bind(this)),y(this,"lockX",function(){var e=this.container;v(e,a),this.isActiveX=!0}.bind(this)),y(this,"releaseY",function(){var e=this.container,t=this.overlay;this.isActiveY&&(v(e,u),v(t,l),e.style.paddingRight="",p(this.selectFixedElements(),"marginRight",""),this.isActiveY=!1)}.bind(this)),y(this,"releaseX",function(){var e=this.container;this.isActiveX&&(v(e,f),this.isActiveX=!1)}.bind(this)),y(this,"selectFixedElements",function(){return document.querySelectorAll("[".concat(n.leashSelector,'="').concat(i.id,'"] ').concat(n.fixedSelector))}),n.counter+=1,this.container=e||function(){return new Error("1st argument element required")},this.id=n.counter,this.init()};y(b,"counter",0),y(b,"preventDefault",function(e){return e.preventDefault}),y(b,"isScrollBar",d),y(b,"isScrollAvailable",h),y(b,"isScrollable",function(e){var t=h(e),n=d(e);return{y:t.y&&n.y,x:t.x&&n.x}}),y(b,"leashSelector","data-leash"),y(b,"fixedSelector","[data-scroll-fixed]");t.default=b}]).default});