Files
OverlayScrollbars/packages/overlayscrollbars/dist/overlayscrollbars.min.js
T
2021-02-06 19:57:17 +01:00

1 line
15 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";var n=Node.ELEMENT_NODE,r=Object.prototype,t=r.toString,i=r.hasOwnProperty;function e(n){return void 0===n}function o(n){return null===n}var u=function(n){return e(n)||o(n)?""+n:t.call(n).replace(/^\[object (.+)\]$/,"$1").toLowerCase()};function c(n){return"number"==typeof n}function a(n){return"string"==typeof n}function f(n){return"function"==typeof n}function s(n){return Array.isArray(n)}function l(n){return"object"==typeof n&&!s(n)&&!o(n)}function v(n){var r=!!n&&n.length,t=c(r)&&r>-1&&r%1==0;return!!(s(n)||!f(n)&&t)&&(!(r>0&&l(n))||r-1 in n)}function d(n){if(!n||!l(n)||"object"!==u(n))return!1;var r,t=n.constructor,o=t&&t.prototype,c=i.call(n,"constructor"),a=o&&i.call(o,"isPrototypeOf");if(t&&!c&&!a)return!1;for(r in n);return e(r)||i.call(n,r)}function h(r){var t=window.Element;return!!r&&(t?r instanceof t:r.nodeType===n)}function b(n,r,t,i){if(e(i))return t?t[n]:r;t&&(t[n]=i)}function w(n,r,t){if(e(t))return n?n.getAttribute(r):null;n&&n.setAttribute(r,t)}var p=function(n,r){n&&n.removeAttribute(r)};function _(n,r){return b("scrollLeft",0,n,r)}function m(n,r){return b("scrollTop",0,n,r)}function g(n,r){if(v(n))for(var t=0;t<n.length&&!1!==r(n[t],t,n);t++);else n&&g(Object.keys(n),(function(t){return r(n[t],t,n)}));return n}var y=function(n,r,t){return t||a(r)||!v(r)?n.push(r):Array.prototype.push.apply(n,r),n},x=function(n){if(Array.from)return Array.from(n);var r=[];return g(n,(function(n){y(r,n)})),r},z=function(n){return n&&0===n.length},O=function(n,r){var t=function(n){return n&&n(r)};n instanceof Set?n.forEach(t):g(n,t)},S=function(n,r){return Object.prototype.hasOwnProperty.call(n,r)},j=function(n){return n?Object.keys(n):[]};function M(n,r,t,i,e,u,c){var a=[r,t,i,e,u,c];return"object"==typeof n&&!o(n)||f(n)||(n={}),g(a,(function(r){g(j(r),(function(t){var i=r[t];if(n===i)return!0;var e=s(i);if(i&&(d(i)||e)){var o=n[t],u=o;e&&!s(o)?u=[]:e||d(o)||(u={}),n[t]=M(u,i)}else n[t]=i}))})),n}function A(n){for(var r in n)return!1;return!0}var L,T=/[^\x20\t\r\n\f]+/g,k=function(n,r){!function(n,r,t){var i,e=0,o=!1;if(n&&a(r)){var u=r.match(T)||[];for(o=u.length>0;i=u[e++];)o=!!t(n.classList,i)&&o}}(n,r,(function(n,r){return n.add(r)}))},C=Element.prototype,q=function(n,r){var t=[],i=r?h(r)?r:null:document;return i?y(t,i.querySelectorAll(n)):t},E=function(n,r){return!!h(n)&&(C.matches||C.msMatchesSelector).call(n,r)},F=function(n){return n?x(n.childNodes):[]},V=function(n,r,t){if(t){var i,e=r;n&&(v(t)?(i=document.createDocumentFragment(),g(t,(function(n){n===e&&(e=n.previousSibling),i.appendChild(n)}))):i=t,r&&(e?e!==r&&(e=e.nextSibling):e=n.firstChild),n.insertBefore(i,e))}},I=function(n,r){V(n,null,r)},N=function(n,r){V(n,n&&n.firstChild,r)},P=function n(r){if(v(r))g(x(r),(function(r){return n(r)}));else if(r){var t=(i=r)?i.parentElement:null;t&&t.removeChild(r)}var i},B=function(n){var r=document.createElement("div");return n&&w(r,"class",n),r},U=function(n){var r=B();return r.innerHTML=n.trim(),g(F(r),(function(n){return P(n)}))},Y={w:0,h:0},$=function(){return{w:window.innerWidth,h:window.innerHeight}},D=function(n){return n?{w:n.offsetWidth,h:n.offsetHeight}:Y},G=function(n){return n.split(" ")},J=function(n,r,t,i){g(G(r),(function(r){n.removeEventListener(r,t,i)}))},K=function(n,r,t,i){var o=function(){if(e(L)){L=!1;try{window.addEventListener("test",null,Object.defineProperty({},"passive",{get:function(){L=!0}}))}catch(n){}}return L}(),u=o&&i&&i.o||!1,c=i&&i.u||!1,a=i&&i.s||!1,f=[],s=o?{passive:u,capture:c}:c;return g(G(r),(function(r){var i=a?function(e){n.removeEventListener(r,i,c),t&&t(e)}:t;y(f,J.bind(null,n,r,i,c)),n.addEventListener(r,i,s)})),O.bind(0,f)},R=function(n){return n.stopPropagation()},W=function(n){return n.preventDefault()},X=function(n,r,t){if(n&&r){var i=!0;return g(t,(function(t){n[t]!==r[t]&&(i=!1)})),i}return!1},H=function(n,r){return X(n,r,["w","h"])},Q=function(n,r){return X(n,r,["x","y"])},Z=function(n,r){return X(n,r,["t","r","b","l"])},nn=function(n){return n.charAt(0).toUpperCase()+n.slice(1)},rn=["-webkit-","-moz-","-o-","-ms-"],tn=["WebKit","Moz","O","MS","webkit","moz","o","ms"],en={},on={},un=function(n){var r=on[n];if(S(on,n))return r;var t=nn(n),i=B().style;return g(rn,(function(e){var o=e.replace(/-/g,""),u=[n,e+n,o+t,nn(o)+t];return!(r=u.find((function(n){return void 0!==i[n]})))})),on[n]=r,r},cn=function(n){var r=en[n]||window[n];return S(en,n)||(g(tn,(function(t){return!(r=r||window[t+nn(n)])})),en[n]=r),r},an=cn("MutationObserver"),fn=cn("IntersectionObserver"),sn=cn("ResizeObserver"),ln=cn("cancelAnimationFrame"),vn=cn("requestAnimationFrame"),dn=function(){},hn={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},bn=function(n,r){var t=r?parseFloat(n):parseInt(n,10);return Number.isNaN(t)?0:t},wn=function(n,r,t){return null!=r?r.getPropertyValue(t):n.style[t]},pn=function(n,r,t){try{n&&void 0!==n.style[r]&&(n.style[r]=function(n,r){return!hn[n.toLowerCase()]&&c(r)?r+"px":r}(r,t))}catch(i){}};function _n(n,r){var t=a(r);if(s(r)||t){var i=t?"":{};if(n){var e=window.getComputedStyle(n,null);i=t?wn(n,e,r):r.reduce((function(r,t){return r[t]=wn(n,e,t),r}),i)}return i}g(j(r),(function(t){return pn(n,t,r[t])}))}var mn={x:0,y:0},gn=function(n){var r=n?function(n){return n.getBoundingClientRect()}(n):0;return r?{x:r.left+window.pageYOffset,y:r.top+window.pageXOffset}:mn},yn=function(n,r){var t,i=r||{},e=i.v,o=i.p,u=i._,c=o;return function(r,i){var o=c,a=n?n(i,c,t):i,f=r||(e?!e(o,a):o!==a);return(f||u)&&(c=a,t=o),{m:c,g:t,O:f}}};var xn=function(n){var r={exports:{}};return n(r,r.exports),r.exports}((function(n){function r(){return n.exports=r=Object.assign||function(n){for(var r=1;r<arguments.length;r++){var t=arguments[r];for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(n[i]=t[i])}return n},r.apply(this,arguments)}n.exports=r})),zn=JSON.stringify,On=["__TPL_","_TYPE__"],Sn=["boolean","number","string","array","object","function","null"].reduce((function(n,r){return n[r]=On[0]+r+On[1],n}),{}),jn=function(n,r,t,i){return function n(r,t,i,o,c){var f={},l=xn({},r);return g(j(t).filter((function(n){return S(r,n)})),(function(v){var h=e(i[v])?{}:i[v],b=r[v],w=t[v],p=d(w),_=c?c+".":"";if(p&&d(b)){var m=n(b,w,h,o,_+v);f[v]=m.S,l[v]=m.j,g([l,f],(function(n){A(n[v])&&delete n[v]}))}else if(!p){var x=!1,z=[],O=[],S=u(b);if(g(s(w)?w:[w],(function(n){var r;g(Sn,(function(t,i){t===n&&(r=i)}));var t=e(r);if(t&&a(b)){var i=n.split(" ");x=!!i.find((function(n){return n===b})),y(z,i)}else x=Sn[S]===n;return y(O,t?Sn.string:r),!x})),x)(s(b)||d(b)?zn(b)!==zn(h):b!==h)&&(f[v]=b);else o&&console.warn('The option "'+_+v+"\" wasn't set, because it doesn't accept the type [ "+S.toUpperCase()+' ] with the value of "'+b+'".\r\nAccepted types are: [ '+O.join(", ").toUpperCase()+" ].\r\n"+(z.length>0?"\r\nValid strings are: [ "+z.join(", ")+" ].":""));delete l[v]}})),{j:l,S:f}}(n,r,t||{},i||!1)};var Mn,An=Math.abs,Ln=Math.round,Tn=function(n,r){I(n,r);var t,i=(t=r)?{w:t.clientWidth,h:t.clientHeight}:Y,e=D(r);return{x:e.h-i.h,y:e.w-i.w}},kn=function(n){var r=!1;k(n,"os-viewport-scrollbar-styled");try{r="none"===_n(n,"scrollbar-width")||"none"===window.getComputedStyle(n,"::-webkit-scrollbar").getPropertyValue("display")}catch(t){}return r},Cn=function(n,r){_n(n,{overflowX:"hidden",overflowY:"hidden",direction:"rtl"}),_(n,0);var t=gn(n),i=gn(r);_(n,-999);var e=gn(r);return{i:t.x===i.x,n:i.x!==e.x}},qn=function(n,r){k(n,"os-environment-flexbox-glue");var t=D(n),i=D(r),e=H(i,t);k(n,"os-environment-flexbox-glue-max");var o=D(n),u=D(r),c=H(u,o);return e&&c},En=function(){var n=window.screen.deviceXDPI||0,r=window.screen.logicalXDPI||1;return window.devicePixelRatio||n/r},Fn=function(){var n=document.body,r=U('<div class="os-environment"><div></div></div>')[0],t=r.firstChild,i=new Set,e=Tn(n,r),o={x:0===e.x,y:0===e.y},u={M:!1,A:e,L:o,T:kn(r),k:Cn(r,t),C:qn(r,t),q:function(n){i.add(n)},F:function(n){i.delete(n)}};if(p(r,"style"),p(r,"class"),P(r),!o.x||!o.y){var c=$(),a=En(),f=e;window.addEventListener("resize",(function(){if(i.size){var t=$(),e={w:t.w-c.w,h:t.h-c.h};if(0===e.w&&0===e.h)return;var o={w:An(e.w),h:An(e.h)},u={w:An(Ln(t.w/(c.w/100))),h:An(Ln(t.h/(c.h/100)))},s=En(),l=o.w>2&&o.h>2,v=(h=u.h,b=An(u.w),w=An(h),!(b!==w&&b+1!==w&&b-1!==w));if(l&&v&&(s!==a&&a>0)){var d=Mn.A=Tn(n,r);P(r),f.x===d.x&&f.y===d.y||O(i),f=d}c=t,a=s}var h,b,w}))}return u},Vn=function(){return Mn||(Mn=Fn()),Mn},In=function(n,r){return n&&r.split(".").reduce((function(n,r){return n&&S(n,r)?n[r]:void 0}),n)},Nn=function(n,r,t){var i=function n(r){var t={V:{},I:{}};return g(j(r),(function(i){var e=r[i];if(s(e))t.V[i]=e[1],t.I[i]=e[0];else{var o=n(e);t.V[i]=o.V,t.I[i]=o.I}})),t}(n),e=i.V,o=M({},i.I,jn(r||{},e,null,!0).S),u=function(n){var r=n.N,i=n.P;t(!!r,(function(n){return{m:In(o,n),O:r||void 0!==In(i,n)}}))};return u({N:!0}),{I:function(n){if(n){var r=jn(n,e,o,!0).S;A(r)||(M(o,r),u({P:r}))}return o},B:function(n){u({N:n})}}},Pn={paddingAbsolute:[!1,Sn.boolean],overflowBehavior:{x:["scroll","visible-hidden visible-scroll scroll hidden"],y:["scroll","visible-hidden visible-scroll scroll hidden"]}},Bn=un("margin-inline-end"),Un=un("border-inline-end"),Yn=function(n,r){var t=n.host,i=n.padding,e=(n.viewport,n.content),o=[],u=Vn(),c=u.L,a=u.T,f=(u.C,Bn&&Un||a||c.y,yn((function(){return u=_n(t,[r=(n="padding"||"")+"-top",i=n+"-right",e=n+"-bottom",o=n+"-left"]),{t:bn(u[r]),r:bn(u[i]),b:bn(u[e]),l:bn(u[o])};var n,r,i,e,o,u}),{v:Z})),s=yn((function(n){return{x:Math.max(0,Math.round(100*(n.U.w-n.Y.w))/100),y:Math.max(0,Math.round(100*(n.U.h-n.Y.h))/100)}}),{v:Q}),l=Nn(Pn,r,(function(n,r){var t=r("paddingAbsolute"),o=t.m,u=t.O,c=f(n),a=c.m,l=c.O;if(u||l){var v={t:0,r:0,b:0,l:0};o||(v.t=-a.t,v.r=-(a.r+a.l),v.b=-(a.b+a.t),v.l=-a.l),_n(i,{top:v.t,left:v.l,"margin-right":v.r,"margin-bottom":v.b,"max-width":"calc(100% + "+-1*v.r+"px)"})}var d,h=D(i),b=D(e),w=(d=e)?{w:d.scrollWidth,h:d.scrollHeight}:Y,p=s(n,{U:w,Y:{w:h.w+Math.max(0,b.w-w.w),h:h.h+Math.max(0,b.h-w.h)}}),_=p.m,m=p.O;console.log("overflowAmount",_),console.log("overflowAmountChanged",m)})),v=l.I,d=l.B;return{I:v,B:d,$:function(){d()},D:function(n,r){var t=r.O,i=r.m;t&&_n(e,{height:i?"auto":"100%"})},G:function(){O(o)}}},$n=function(n){return _n(n,"direction")},Dn=function(n){return n&&(n.height>0||n.width>0)},Gn=function(n,r,t){var i=t||{},e=i.J,o=void 0!==e&&e,u=i.K,c=void 0!==u&&u,a=Vn().k,f=U('<div class="os-size-observer"><div class="os-size-observer-listener"></div></div>')[0],l=f.firstChild,v=yn(0,{_:!0,v:function(n,r){return!(!n||!Dn(n)&&Dn(r))}}),d=function(n){var t=n&&n.m,i=!1,e=!0;if(s(n)&&n.length>0){var u=v(0,n.pop().contentRect),c=u.g,l=u.m,d=u.O;e=!(i=!c||!Dn(l))&&d}else t&&(e=n.O);if(o&&e){var h="rtl"===(t||$n(f));_(f,h?a.n?-3333333:a.i?0:3333333:3333333),m(f,3333333)}i||r(t?n:void 0)},h=[],b=!!c&&d;if(sn){var w=new sn(d);w.observe(l),y(h,(function(){return w.disconnect()}))}else{var p=U('<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>');I(l,p),k(l,"os-size-observer-listener-scroll");var g,x=p[0],z=x.lastChild,S=x.firstChild,j=null==S?void 0:S.firstChild,M=D(l),A=M,L=!1,T=function(){_(S,3333333),m(S,3333333),_(z,3333333),m(z,3333333)},C=function(){g=0,L&&(M=A,d())},q=function(n){return A=D(l),L=!n||!H(A,M),n&&L&&!g?(ln(g),g=vn(C)):n||C(),T(),n&&(W(n),R(n)),!1};y(h,[K(S,"scroll",q),K(z,"scroll",q)]),_n(j,{width:3333333,height:3333333}),T(),b=c?function(){return q()}:T}if(o){var E=yn((function(){return $n(f)}));y(h,K(f,"scroll",(function(n){var r=E(),t=r.m;return r.O&&(_n(l,"rtl"===t?{left:"auto",right:0}:{left:0,right:"auto"}),d(r)),W(n),R(n),!1})))}return b&&(k(f,"os-size-observer-appear"),y(h,K(f,"animationstart",b,{s:!!sn}))),N(n,f),function(){O(h),P(f)}},Jn=function(n,r,t,i){var o,u=function(){t.forEach((function(n,r){J(r,n,i)})),t.clear()},c=function(r){o&&g(o.reduce((function(t,i){if(i){var e=i[0],o=i[1],u=o&&e&&(r?r(e):q(e,n));u&&y(t,[u,f(o)?o(u):o],!0)}return t}),[]),(function(n){var r=n[0],o=n[1];g(r,(function(n){!function(n,r){var o=t.get(n),u=e(o),c=function(){t.set(n,r),K(n,r,i)};u||r===o?u&&c():(J(n,o,i),c())}(n,o)}))}))},a=function(n){o=n,u(),c()};return r&&a(r),{R:u,W:c,B:a}},Kn=function(n,r,t){var i,e,o,u,f,s,l,v,d,h,b=!1,p=t||{},_=p.X,m=p.H,x=p.Z,O=p.nn,S=p.rn,j=p.tn,M=p.in,A=Jn(n,_&&O,new Map,(i=function(){b&&r([],!1,!0)},s=c(e=80)&&e>0,l=c(o)&&o>0,v=s?window.clearTimeout:ln,d=s?window.setTimeout:vn,h=function(n){f=l?performance.now():0,u&&v(u),i.apply(this,n)},function(){var n=h.bind(this,arguments),r=!!l&&performance.now()-f>=o;u&&v(u),u=r?n():d(n,e)})),L=A.W,T=A.R,k=A.B,C=x||[],F=(m||[]).concat(C),V=function(i){var e=j||dn,o=M||dn,u=[],c=[],f=!1,s=!1,l=!1;g(i,(function(r){var i,v,d=r.attributeName,h=r.target,b=r.type,p=r.oldValue,m=r.addedNodes,g="attributes"===b,x="childList"===b,z=n===h,O=g&&a(d)?w(h,d):0,j=0!==O&&p!==O,M=j&&z&&!_&&!e(h,d,p,O),A=(i=d,C.indexOf(i,v)>-1&&j);if(M&&y(u,d),_){var L=!g,T=g&&A&&!z,k=T&&S&&E(h,S),q=(k?!e(h,d,p,O):L||T)&&!o(r,!!k,n,t);y(c,m),s=s||q,l=l||x}f=f||M&&A})),l&&!z(c)&&L((function(n){return c.reduce((function(r,t){return y(r,q(n,t)),E(t,n)?y(r,t):r}),[])})),(!z(u)||f||s)&&r(u,f,s)},I=new an(V);return I.observe(n,{attributes:!0,attributeOldValue:!0,attributeFilter:F,subtree:_,childList:_,characterData:_}),b=!0,{en:function(){b&&(T(),I.disconnect(),b=!1)},on:function(n){k(b&&_&&n)},B:function(){b&&V(I.takeRecords())}}},Rn=function(r){if(u=r,c=window.HTMLElement,u&&(c?u instanceof c:u.nodeType===n)){var t=E(r,"textarea")?B():r,i=B("os-padding"),e=B("os-viewport"),o=B("os-content");return I(i,e),I(e,o),I(o,F(r)),I(r,i),k(t,"os-host"),{target:r,host:t,padding:i,viewport:e,content:o}}var u,c,a=r.host,f=r.padding,s=r.viewport,l=r.content;return k(a,"os-host"),k(f,"os-padding"),k(s,"os-viewport"),k(l,"os-content"),r},Wn=function(n,r,t){var i=Rn(n),e=[],o=i.host,u=i.content;y(e,Yn(i));Gn(o,(function(n){g(e,n?function(r){r.un&&r.un(n)}:function(n){n.$&&n.$()})}),{K:!0,J:!0}),function(n,r){var t=U('<div class="os-trinsic-observer"></div>')[0],i=[],e=yn((function(n){return 0===n.h||n.isIntersecting||n.intersectionRatio>0}),{p:!1});if(fn){var o=new fn((function(n){if(n&&n.length>0){var t=n.pop();if(t){var i=e(0,t);i.O&&r(!1,i)}}}),{root:n});o.observe(t),y(i,(function(){return o.disconnect()}))}else y(i,Gn(t,(function(){var n=D(t),i=e(0,n);i.O&&r(!1,i)})));N(n,t)}(o,(function(n,r){g(e,(function(t){t.D&&t.D(n,r)}))})),Kn(o,(function(){return null})),Kn(u,(function(){return null}),{X:!0})};return function(){return[Vn(),Wn(document.body),U(' <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>')]}}));