mirror of
https://github.com/tenrok/OverlayScrollbars.git
synced 2026-06-17 14:50:36 +03:00
1 line
7.3 KiB
JavaScript
1 line
7.3 KiB
JavaScript
!function(n,r){"object"==typeof exports&&"undefined"!=typeof module?module.exports=r():"function"==typeof define&&define.amd?define(r):(n="undefined"!=typeof globalThis?globalThis:n||self).OverlayScrollbars=r()}(this,(function(){"use strict";function n(n){return"number"==typeof n}function r(n){return"string"==typeof n}function i(n){return Array.isArray(n)}function t(r){var t=!!r&&r.length;return i(r)||!function(n){return"function"==typeof n}(r)&&n(t)&&t>-1&&t%1==0}function o(n,r,i,t){if(void 0===t)return i?i[n]:r;i&&(i[n]=t)}function e(n,r){return o("scrollLeft",0,n,r)}function u(n,r){return o("scrollTop",0,n,r)}var c=/[^\x20\t\r\n\f]+/g,s=function(n,i){!function(n,i,t){var o,e=0,u=!1;if(n&&r(i)){var s=i.match(c)||[];for(u=s.length>0;o=s[e++];)u=t(n.classList,o)&&u}}(n,i,(function(n,r){return n.add(r)}))};function l(n,r){if(t(n))for(var i=0;i<n.length&&!1!==r(n[i],i,n);i++);else n&&l(Object.keys(n),(function(i){return r(n[i],i,n)}));return n}var a,f=function(n){if(Array.from)return Array.from(n);var r=[];return l(n,(function(n){r.push(n)})),r},v=function(n){n instanceof Set?n.forEach((function(n){return n&&n()})):l(n,(function(n){return n&&n()}))},d=function(n,r,i){if(i){var o,e=r;n&&(t(i)?(o=document.createDocumentFragment(),l(i,(function(n){n===e&&(e=n.previousSibling),o.appendChild(n)}))):o=i,r&&(e?e!==r&&(e=e.nextSibling):e=n.firstChild),n.insertBefore(o,e))}},w=function(n,r){d(n,null,r)},b=function n(r){if(t(r))l(f(r),(function(r){return n(r)}));else if(r){var i=(o=r)?o.parentElement:null;i&&i.removeChild(r)}var o},h=function(n){var r,i=document.createElement("div");return i.innerHTML=n.trim(),l((r=i)?f(r.childNodes):[],(function(n){return b(n)}))},m={w:0,h:0},p=function(){return{w:window.innerWidth,h:window.innerHeight}},y=function(n){return n?{w:n.offsetWidth,h:n.offsetHeight}:m},g=function(n,r,i,t){l(r.split(" "),(function(r){n.removeEventListener(r,i,t)}))},z=function(n,r,i,t){var o=function(){if(void 0===a){a=!1;try{window.addEventListener("test",null,Object.defineProperty({},"passive",{get:function(){a=!0}}))}catch(n){}}return a}(),e=o&&t&&t.t||!1,u=t&&t.o||!1,c=t&&t.u||!1,s=[],f=o?{passive:e,capture:u}:u;return l(r.split(" "),(function(r){var t=c?function(o){n.removeEventListener(r,t,u),i&&i(o)}:i;s.push(g.bind(null,n,r,t,u)),n.addEventListener(r,t,f)})),v.bind(0,s)},_=function(n){return n.stopPropagation()},x=function(n){return n.preventDefault()},O={animationiterationcount:1,columncount:1,fillopacity:1,flexgrow:1,flexshrink:1,fontweight:1,lineheight:1,opacity:1,order:1,orphans:1,widows:1,zindex:1,zoom:1},j=function(n,r,i){return null!=r?r.getPropertyValue(i):n.style[i]},S=function(r,i,t){try{r&&void 0!==r.style[i]&&(r.style[i]=function(r,i){return!O[r.toLowerCase()]&&n(i)?i+"px":i}(i,t))}catch(o){}};function k(n,t){var o,e=r(t);if(i(t)||e){var u=e?"":{};if(n){var c=window.getComputedStyle(n,null);u=e?j(n,c,t):t.reduce((function(r,i){return r[i]=j(n,c,i),r}),u)}return u}l((o=t)?Object.keys(o):[],(function(r){return S(n,r,t[r])}))}var A={x:0,y:0},L=function(n){var r=n?function(n){return n.getBoundingClientRect()}(n):0;return r?{x:r.left+window.pageYOffset,y:r.top+window.pageXOffset}:A},T=["WebKit","Moz","O","MS","webkit","moz","o","ms"],M={},q=function(n){var r,i,t=M[n]||window[n];return r=M,i=n,Object.prototype.hasOwnProperty.call(r,i)||(l(T,(function(r){var i;return!(t=t||window[r+(i=n,i.charAt(0).toUpperCase()+i.slice(1))])})),M[n]=t),t};q("ResizeObserver");!function(n,r,i){n(i={path:r,exports:{},require:function(n,r){return function(){throw new Error("Dynamic requires are not currently supported by @rollup/plugin-commonjs")}(null==r&&i.path)}},i.exports),i.exports}((function(n){function r(){return n.exports=r=Object.assign||function(n){for(var r=1;r<arguments.length;r++){var i=arguments[r];for(var t in i)Object.prototype.hasOwnProperty.call(i,t)&&(n[t]=i[t])}return n},r.apply(this,arguments)}n.exports=r}));var E,F=["__TPL_","_TYPE__"],P=(["boolean","number","string","array","object","function","null"].reduce((function(n,r){return n[r]=F[0]+r+F[1],n}),{}),Math.abs),R=Math.round,Y=function(n,r){w(n,r);var i,t=(i=r)?{w:i.clientWidth,h:i.clientHeight}:m,o=y(r);return{x:o.h-t.h,y:o.w-t.w}},B=function(n){var r=!1;s(n,"os-viewport-native-scrollbars-invisible");try{r="none"===k(n,"scrollbar-width")||"none"===window.getComputedStyle(n,"::-webkit-scrollbar").getPropertyValue("display")}catch(i){}return r},D=function(n,r){k(n,{overflowX:"hidden",overflowY:"hidden",direction:"rtl"}),e(n,0);var i=L(n),t=L(r);e(n,-999);var o=L(r);return{i:i.x===t.x,n:t.x!==o.x}},I=function(){var n=window.screen.deviceXDPI||0,r=window.screen.logicalXDPI||1;return window.devicePixelRatio||n/r},K=function(){var n,r,i=document.body,t=h('<div id="os-environment"><div></div></div>')[0],o=t.firstChild,e=new Set,u=Y(i,t),c={x:0===u.x,y:0===u.y},s={s:!1,l:u,v:c,m:B(t),p:D(t,o),g:function(n){e.add(n)},_:function(n){e.delete(n)}};if(r="style",null==(n=t)||n.removeAttribute(r),b(t),!c.x||!c.y){var l=p(),a=I(),f=u;window.addEventListener("resize",(function(){if(e.size){var n=p(),r={w:n.w-l.w,h:n.h-l.h};if(0===r.w&&0===r.h)return;var o={w:P(r.w),h:P(r.h)},u={w:P(R(n.w/(l.w/100))),h:P(R(n.h/(l.h/100)))},c=I(),s=o.w>2&&o.h>2,d=(h=u.h,m=P(u.w),y=P(h),!(m!==y&&m+1!==y&&m-1!==y));if(s&&d&&(c!==a&&a>0)){var w=E.l=Y(i,t);b(t),f.x===w.x&&f.y===w.y||v(e),f=w}l=n,a=c}var h,m,y}))}return s},U=function(){return E||(E=K()),E},W=q("ResizeObserver"),X=cancelAnimationFrame,C=requestAnimationFrame,G=function(n){return k(n,"direction")},H=function(n,r,i){var t,o,c,s=U().p,l=h('<div class="os-size-observer"><div class="os-size-observer-listener"></div></div>')[0],a=l.firstChild,f=function(n){if(i){var t="rtl"===G(l);e(l,t?s.n?-3333333:s.i?0:3333333:3333333),u(l,3333333)}r(!0===n)},m=[],p=f;if(W){new W(f).observe(a)}else{var g=h('<div class="os-size-observer-listener-item" dir="ltr"><div class="os-size-observer-listener-item"><div class="os-size-observer-listener-item-final"></div></div><div class="os-size-observer-listener-item"><div class="os-size-observer-listener-item-final" style="width: 200%; height: 200%"></div></div></div>');w(a,g);var O,j=g[0],S=j.lastChild,A=j.firstChild,L=null==A?void 0:A.firstChild,T=y(a),M=T,q=!1,E=function(){e(A,3333333),u(A,3333333),e(S,3333333),u(S,3333333)},F=function(){O=0,q&&(T=M,f())},P=function(n){return M=y(a),q=!n||M.w!==T.w||M.h!==T.h,n&&q&&!O?(X(O),O=C(F)):n||F(),E(),n&&(x(n),_(n)),!1};m.push(z(A,"scroll",P)),m.push(z(S,"scroll",P)),k(L,{width:3333333,height:3333333}),E(),p=P}i&&m.push(z(l,"scroll",(function(n){var r=G(l);return r!==t&&(k(a,"rtl"===r?{left:"auto",right:0}:{left:0,right:"auto"}),t=r,f(!0)),x(n),_(n),!1})));return m.push(z(l,"animationstart",p)),c=l,d(o=n,o&&o.firstChild,c),function(){v(m),b(l)}};return function(){return[U(),H(document.body,(function(){})),h(' <div class="os-host"> <div class="os-resize-observer-host"></div> <div class="os-padding"> <div class="os-viewport"> <div class="os-content"> fdfhdfgh </div> </div> </div> <div class="os-scrollbar os-scrollbar-horizontal"> <div class="os-scrollbar-track"> <div class="os-scrollbar-handle"></div> </div> </div> <div class="os-scrollbar os-scrollbar-vertical"> <div class="os-scrollbar-track"> <div class="os-scrollbar-handle"></div> </div> </div> <div class="os-scrollbar-corner"></div> </div>')]}})); |