first commit
This commit is contained in:
+7
File diff suppressed because one or more lines are too long
+8
@@ -0,0 +1,8 @@
|
||||
/*!
|
||||
* Bootstrap Reboot v4.5.0 (https://getbootstrap.com/)
|
||||
* Copyright 2011-2020 The Bootstrap Authors
|
||||
* Copyright 2011-2020 Twitter, Inc.
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||
* Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
|
||||
*/*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus:not(:focus-visible){outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]){color:inherit;text-decoration:none}a:not([href]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto;-ms-overflow-style:scrollbar}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg{overflow:hidden;vertical-align:middle}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}
|
||||
/*# sourceMappingURL=bootstrap-reboot.min.css.map */
|
||||
File diff suppressed because one or more lines are too long
Binary file not shown.
Binary file not shown.
+7
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Binary file not shown.
File diff suppressed because one or more lines are too long
Binary file not shown.
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
+59
@@ -0,0 +1,59 @@
|
||||
/*
|
||||
* Easing Compatibility v1 - http://gsgd.co.uk/sandbox/jquery/easing
|
||||
*
|
||||
* Adds compatibility for applications that use the pre 1.2 easing names
|
||||
*
|
||||
* Copyright (c) 2007 George Smith
|
||||
* Licensed under the MIT License:
|
||||
* http://www.opensource.org/licenses/mit-license.php
|
||||
*/
|
||||
|
||||
(function($){
|
||||
$.extend( $.easing,
|
||||
{
|
||||
easeIn: function (x, t, b, c, d) {
|
||||
return $.easing.easeInQuad(x, t, b, c, d);
|
||||
},
|
||||
easeOut: function (x, t, b, c, d) {
|
||||
return $.easing.easeOutQuad(x, t, b, c, d);
|
||||
},
|
||||
easeInOut: function (x, t, b, c, d) {
|
||||
return $.easing.easeInOutQuad(x, t, b, c, d);
|
||||
},
|
||||
expoin: function(x, t, b, c, d) {
|
||||
return $.easing.easeInExpo(x, t, b, c, d);
|
||||
},
|
||||
expoout: function(x, t, b, c, d) {
|
||||
return $.easing.easeOutExpo(x, t, b, c, d);
|
||||
},
|
||||
expoinout: function(x, t, b, c, d) {
|
||||
return $.easing.easeInOutExpo(x, t, b, c, d);
|
||||
},
|
||||
bouncein: function(x, t, b, c, d) {
|
||||
return $.easing.easeInBounce(x, t, b, c, d);
|
||||
},
|
||||
bounceout: function(x, t, b, c, d) {
|
||||
return $.easing.easeOutBounce(x, t, b, c, d);
|
||||
},
|
||||
bounceinout: function(x, t, b, c, d) {
|
||||
return $.easing.easeInOutBounce(x, t, b, c, d);
|
||||
},
|
||||
elasin: function(x, t, b, c, d) {
|
||||
return $.easing.easeInElastic(x, t, b, c, d);
|
||||
},
|
||||
elasout: function(x, t, b, c, d) {
|
||||
return $.easing.easeOutElastic(x, t, b, c, d);
|
||||
},
|
||||
elasinout: function(x, t, b, c, d) {
|
||||
return $.easing.easeInOutElastic(x, t, b, c, d);
|
||||
},
|
||||
backin: function(x, t, b, c, d) {
|
||||
return $.easing.easeInBack(x, t, b, c, d);
|
||||
},
|
||||
backout: function(x, t, b, c, d) {
|
||||
return $.easing.easeOutBack(x, t, b, c, d);
|
||||
},
|
||||
backinout: function(x, t, b, c, d) {
|
||||
return $.easing.easeInOutBack(x, t, b, c, d);
|
||||
}
|
||||
});})(jQuery);
|
||||
+14
@@ -0,0 +1,14 @@
|
||||
/*
|
||||
* jQuery Easing v1.3.2 - http://gsgd.co.uk/sandbox/jquery/easing/
|
||||
* Open source under the BSD License.
|
||||
* Copyright © 2008 George McGinley Smith
|
||||
* All rights reserved.
|
||||
* https://raw.github.com/gdsmith/jquery-easing/master/LICENSE
|
||||
*/
|
||||
(function(h){h.easing.jswing=h.easing.swing;h.extend(h.easing,{def:"easeOutQuad",swing:function(e,a,c,b,d){return h.easing[h.easing.def](e,a,c,b,d)},easeInQuad:function(e,a,c,b,d){return b*(a/=d)*a+c},easeOutQuad:function(e,a,c,b,d){return-b*(a/=d)*(a-2)+c},easeInOutQuad:function(e,a,c,b,d){return 1>(a/=d/2)?b/2*a*a+c:-b/2*(--a*(a-2)-1)+c},easeInCubic:function(e,a,c,b,d){return b*(a/=d)*a*a+c},easeOutCubic:function(e,a,c,b,d){return b*((a=a/d-1)*a*a+1)+c},easeInOutCubic:function(e,a,c,b,d){return 1>
|
||||
(a/=d/2)?b/2*a*a*a+c:b/2*((a-=2)*a*a+2)+c},easeInQuart:function(e,a,c,b,d){return b*(a/=d)*a*a*a+c},easeOutQuart:function(e,a,c,b,d){return-b*((a=a/d-1)*a*a*a-1)+c},easeInOutQuart:function(e,a,c,b,d){return 1>(a/=d/2)?b/2*a*a*a*a+c:-b/2*((a-=2)*a*a*a-2)+c},easeInQuint:function(e,a,c,b,d){return b*(a/=d)*a*a*a*a+c},easeOutQuint:function(e,a,c,b,d){return b*((a=a/d-1)*a*a*a*a+1)+c},easeInOutQuint:function(e,a,c,b,d){return 1>(a/=d/2)?b/2*a*a*a*a*a+c:b/2*((a-=2)*a*a*a*a+2)+c},easeInSine:function(e,a,
|
||||
c,b,d){return-b*Math.cos(a/d*(Math.PI/2))+b+c},easeOutSine:function(e,a,c,b,d){return b*Math.sin(a/d*(Math.PI/2))+c},easeInOutSine:function(e,a,c,b,d){return-b/2*(Math.cos(Math.PI*a/d)-1)+c},easeInExpo:function(e,a,c,b,d){return 0==a?c:b*Math.pow(2,10*(a/d-1))+c},easeOutExpo:function(e,a,c,b,d){return a==d?c+b:b*(-Math.pow(2,-10*a/d)+1)+c},easeInOutExpo:function(e,a,c,b,d){return 0==a?c:a==d?c+b:1>(a/=d/2)?b/2*Math.pow(2,10*(a-1))+c:b/2*(-Math.pow(2,-10*--a)+2)+c},easeInCirc:function(e,a,c,b,d){return-b*
|
||||
(Math.sqrt(1-(a/=d)*a)-1)+c},easeOutCirc:function(e,a,c,b,d){return b*Math.sqrt(1-(a=a/d-1)*a)+c},easeInOutCirc:function(e,a,c,b,d){return 1>(a/=d/2)?-b/2*(Math.sqrt(1-a*a)-1)+c:b/2*(Math.sqrt(1-(a-=2)*a)+1)+c},easeInElastic:function(e,a,c,b,d){e=1.70158;var f=0,g=b;if(0==a)return c;if(1==(a/=d))return c+b;f||(f=.3*d);g<Math.abs(b)?(g=b,e=f/4):e=f/(2*Math.PI)*Math.asin(b/g);return-(g*Math.pow(2,10*--a)*Math.sin(2*(a*d-e)*Math.PI/f))+c},easeOutElastic:function(e,a,c,b,d){e=1.70158;var f=0,g=b;if(0==
|
||||
a)return c;if(1==(a/=d))return c+b;f||(f=.3*d);g<Math.abs(b)?(g=b,e=f/4):e=f/(2*Math.PI)*Math.asin(b/g);return g*Math.pow(2,-10*a)*Math.sin(2*(a*d-e)*Math.PI/f)+b+c},easeInOutElastic:function(e,a,c,b,d){e=1.70158;var f=0,g=b;if(0==a)return c;if(2==(a/=d/2))return c+b;f||(f=.3*d*1.5);g<Math.abs(b)?(g=b,e=f/4):e=f/(2*Math.PI)*Math.asin(b/g);return 1>a?-.5*g*Math.pow(2,10*--a)*Math.sin(2*(a*d-e)*Math.PI/f)+c:g*Math.pow(2,-10*--a)*Math.sin(2*(a*d-e)*Math.PI/f)*.5+b+c},easeInBack:function(e,a,c,b,d,f){void 0==
|
||||
f&&(f=1.70158);return b*(a/=d)*a*((f+1)*a-f)+c},easeOutBack:function(e,a,c,b,d,f){void 0==f&&(f=1.70158);return b*((a=a/d-1)*a*((f+1)*a+f)+1)+c},easeInOutBack:function(e,a,c,b,d,f){void 0==f&&(f=1.70158);return 1>(a/=d/2)?b/2*a*a*(((f*=1.525)+1)*a-f)+c:b/2*((a-=2)*a*(((f*=1.525)+1)*a+f)+2)+c},easeInBounce:function(e,a,c,b,d){return b-h.easing.easeOutBounce(e,d-a,0,b,d)+c},easeOutBounce:function(e,a,c,b,d){return(a/=d)<1/2.75?7.5625*b*a*a+c:a<2/2.75?b*(7.5625*(a-=1.5/2.75)*a+.75)+c:a<2.5/2.75?b*(7.5625*
|
||||
(a-=2.25/2.75)*a+.9375)+c:b*(7.5625*(a-=2.625/2.75)*a+.984375)+c},easeInOutBounce:function(e,a,c,b,d){return a<d/2?.5*h.easing.easeInBounce(e,2*a,0,b,d)+c:.5*h.easing.easeOutBounce(e,2*a-d,0,b,d)+.5*b+c}})})(jQuery);
|
||||
Vendored
+21
@@ -0,0 +1,21 @@
|
||||
Copyright 2014 jQuery Foundation and other contributors
|
||||
http://jquery.com/
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
"Software"), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
Vendored
BIN
Binary file not shown.
public/copiaintegra/Documentation/assets/libs/jquery.easing/bower_components/jquery/dist/desktop.ini
Vendored
BIN
Binary file not shown.
Vendored
+5
File diff suppressed because one or more lines are too long
Vendored
BIN
Binary file not shown.
Binary file not shown.
Binary file not shown.
+59
@@ -0,0 +1,59 @@
|
||||
/*
|
||||
* Easing Compatibility v1 - http://gsgd.co.uk/sandbox/jquery/easing
|
||||
*
|
||||
* Adds compatibility for applications that use the pre 1.2 easing names
|
||||
*
|
||||
* Copyright (c) 2007 George Smith
|
||||
* Licensed under the MIT License:
|
||||
* http://www.opensource.org/licenses/mit-license.php
|
||||
*/
|
||||
|
||||
(function($){
|
||||
$.extend( $.easing,
|
||||
{
|
||||
easeIn: function (x, t, b, c, d) {
|
||||
return $.easing.easeInQuad(x, t, b, c, d);
|
||||
},
|
||||
easeOut: function (x, t, b, c, d) {
|
||||
return $.easing.easeOutQuad(x, t, b, c, d);
|
||||
},
|
||||
easeInOut: function (x, t, b, c, d) {
|
||||
return $.easing.easeInOutQuad(x, t, b, c, d);
|
||||
},
|
||||
expoin: function(x, t, b, c, d) {
|
||||
return $.easing.easeInExpo(x, t, b, c, d);
|
||||
},
|
||||
expoout: function(x, t, b, c, d) {
|
||||
return $.easing.easeOutExpo(x, t, b, c, d);
|
||||
},
|
||||
expoinout: function(x, t, b, c, d) {
|
||||
return $.easing.easeInOutExpo(x, t, b, c, d);
|
||||
},
|
||||
bouncein: function(x, t, b, c, d) {
|
||||
return $.easing.easeInBounce(x, t, b, c, d);
|
||||
},
|
||||
bounceout: function(x, t, b, c, d) {
|
||||
return $.easing.easeOutBounce(x, t, b, c, d);
|
||||
},
|
||||
bounceinout: function(x, t, b, c, d) {
|
||||
return $.easing.easeInOutBounce(x, t, b, c, d);
|
||||
},
|
||||
elasin: function(x, t, b, c, d) {
|
||||
return $.easing.easeInElastic(x, t, b, c, d);
|
||||
},
|
||||
elasout: function(x, t, b, c, d) {
|
||||
return $.easing.easeOutElastic(x, t, b, c, d);
|
||||
},
|
||||
elasinout: function(x, t, b, c, d) {
|
||||
return $.easing.easeInOutElastic(x, t, b, c, d);
|
||||
},
|
||||
backin: function(x, t, b, c, d) {
|
||||
return $.easing.easeInBack(x, t, b, c, d);
|
||||
},
|
||||
backout: function(x, t, b, c, d) {
|
||||
return $.easing.easeOutBack(x, t, b, c, d);
|
||||
},
|
||||
backinout: function(x, t, b, c, d) {
|
||||
return $.easing.easeInOutBack(x, t, b, c, d);
|
||||
}
|
||||
});})(jQuery);
|
||||
+1
@@ -0,0 +1 @@
|
||||
(function(factory){if(typeof define==="function"&&define.amd){define(["jquery"],function($){return factory($)})}else if(typeof module==="object"&&typeof module.exports==="object"){exports=factory(require("jquery"))}else{factory(jQuery)}})(function($){$.easing.jswing=$.easing.swing;var pow=Math.pow,sqrt=Math.sqrt,sin=Math.sin,cos=Math.cos,PI=Math.PI,c1=1.70158,c2=c1*1.525,c3=c1+1,c4=2*PI/3,c5=2*PI/4.5;function bounceOut(x){var n1=7.5625,d1=2.75;if(x<1/d1){return n1*x*x}else if(x<2/d1){return n1*(x-=1.5/d1)*x+.75}else if(x<2.5/d1){return n1*(x-=2.25/d1)*x+.9375}else{return n1*(x-=2.625/d1)*x+.984375}}$.extend($.easing,{def:"easeOutQuad",swing:function(x){return $.easing[$.easing.def](x)},easeInQuad:function(x){return x*x},easeOutQuad:function(x){return 1-(1-x)*(1-x)},easeInOutQuad:function(x){return x<.5?2*x*x:1-pow(-2*x+2,2)/2},easeInCubic:function(x){return x*x*x},easeOutCubic:function(x){return 1-pow(1-x,3)},easeInOutCubic:function(x){return x<.5?4*x*x*x:1-pow(-2*x+2,3)/2},easeInQuart:function(x){return x*x*x*x},easeOutQuart:function(x){return 1-pow(1-x,4)},easeInOutQuart:function(x){return x<.5?8*x*x*x*x:1-pow(-2*x+2,4)/2},easeInQuint:function(x){return x*x*x*x*x},easeOutQuint:function(x){return 1-pow(1-x,5)},easeInOutQuint:function(x){return x<.5?16*x*x*x*x*x:1-pow(-2*x+2,5)/2},easeInSine:function(x){return 1-cos(x*PI/2)},easeOutSine:function(x){return sin(x*PI/2)},easeInOutSine:function(x){return-(cos(PI*x)-1)/2},easeInExpo:function(x){return x===0?0:pow(2,10*x-10)},easeOutExpo:function(x){return x===1?1:1-pow(2,-10*x)},easeInOutExpo:function(x){return x===0?0:x===1?1:x<.5?pow(2,20*x-10)/2:(2-pow(2,-20*x+10))/2},easeInCirc:function(x){return 1-sqrt(1-pow(x,2))},easeOutCirc:function(x){return sqrt(1-pow(x-1,2))},easeInOutCirc:function(x){return x<.5?(1-sqrt(1-pow(2*x,2)))/2:(sqrt(1-pow(-2*x+2,2))+1)/2},easeInElastic:function(x){return x===0?0:x===1?1:-pow(2,10*x-10)*sin((x*10-10.75)*c4)},easeOutElastic:function(x){return x===0?0:x===1?1:pow(2,-10*x)*sin((x*10-.75)*c4)+1},easeInOutElastic:function(x){return x===0?0:x===1?1:x<.5?-(pow(2,20*x-10)*sin((20*x-11.125)*c5))/2:pow(2,-20*x+10)*sin((20*x-11.125)*c5)/2+1},easeInBack:function(x){return c3*x*x*x-c1*x*x},easeOutBack:function(x){return 1+c3*pow(x-1,3)+c1*pow(x-1,2)},easeInOutBack:function(x){return x<.5?pow(2*x,2)*((c2+1)*2*x-c2)/2:(pow(2*x-2,2)*((c2+1)*(x*2-2)+c2)+2)/2},easeInBounce:function(x){return 1-bounceOut(1-x)},easeOutBounce:bounceOut,easeInOutBounce:function(x){return x<.5?(1-bounceOut(1-2*x))/2:(1+bounceOut(2*x-1))/2}})});
|
||||
Binary file not shown.
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Binary file not shown.
@@ -0,0 +1,9 @@
|
||||
/*!
|
||||
* metismenu https://github.com/onokumus/metismenu#readme
|
||||
* A collapsible jQuery menu plugin
|
||||
* @version 3.0.7
|
||||
* @author Osman Nuri Okumus <onokumus@gmail.com> (https://github.com/onokumus)
|
||||
* @license: MIT
|
||||
*/
|
||||
import $ from"jquery";const Util=(e=>{const t="transitionend",s={TRANSITION_END:"mmTransitionEnd",triggerTransitionEnd(s){e(s).trigger(t)},supportsTransitionEnd:()=>Boolean(t)};function n(t){let n=!1;return e(this).one(s.TRANSITION_END,(()=>{n=!0})),setTimeout((()=>{n||s.triggerTransitionEnd(this)}),t),this}return e.fn.mmEmulateTransitionEnd=n,e.event.special[s.TRANSITION_END]={bindType:t,delegateType:t,handle(t){if(e(t.target).is(this))return t.handleObj.handler.apply(this,arguments)}},s})($),NAME="metisMenu",DATA_KEY="metisMenu",EVENT_KEY=".metisMenu",DATA_API_KEY=".data-api",JQUERY_NO_CONFLICT=$.fn[NAME],TRANSITION_DURATION=350,Default={toggle:!0,preventDefault:!0,triggerElement:"a",parentTrigger:"li",subMenu:"ul"},Event={SHOW:"show.metisMenu",SHOWN:"shown.metisMenu",HIDE:"hide.metisMenu",HIDDEN:"hidden.metisMenu",CLICK_DATA_API:"click.metisMenu.data-api"},ClassName={METIS:"metismenu",ACTIVE:"mm-active",SHOW:"mm-show",COLLAPSE:"mm-collapse",COLLAPSING:"mm-collapsing",COLLAPSED:"mm-collapsed"};class MetisMenu{constructor(e,t){this.element=e,this.config={...Default,...t},this.transitioning=null,this.init()}init(){const e=this,t=this.config,s=$(this.element);s.addClass(ClassName.METIS),s.find(`${t.parentTrigger}.${ClassName.ACTIVE}`).children(t.triggerElement).attr("aria-expanded","true"),s.find(`${t.parentTrigger}.${ClassName.ACTIVE}`).parents(t.parentTrigger).addClass(ClassName.ACTIVE),s.find(`${t.parentTrigger}.${ClassName.ACTIVE}`).parents(t.parentTrigger).children(t.triggerElement).attr("aria-expanded","true"),s.find(`${t.parentTrigger}.${ClassName.ACTIVE}`).has(t.subMenu).children(t.subMenu).addClass(`${ClassName.COLLAPSE} ${ClassName.SHOW}`),s.find(t.parentTrigger).not(`.${ClassName.ACTIVE}`).has(t.subMenu).children(t.subMenu).addClass(ClassName.COLLAPSE),s.find(t.parentTrigger).children(t.triggerElement).on(Event.CLICK_DATA_API,(function(s){const n=$(this);if("true"===n.attr("aria-disabled"))return;t.preventDefault&&"#"===n.attr("href")&&s.preventDefault();const i=n.parent(t.parentTrigger),a=i.siblings(t.parentTrigger),r=a.children(t.triggerElement);i.hasClass(ClassName.ACTIVE)?(n.attr("aria-expanded","false"),e.removeActive(i)):(n.attr("aria-expanded","true"),e.setActive(i),t.toggle&&(e.removeActive(a),r.attr("aria-expanded","false"))),t.onTransitionStart&&t.onTransitionStart(s)}))}setActive(e){$(e).addClass(ClassName.ACTIVE);const t=$(e).children(this.config.subMenu);t.length>0&&!t.hasClass(ClassName.SHOW)&&this.show(t)}removeActive(e){$(e).removeClass(ClassName.ACTIVE);const t=$(e).children(`${this.config.subMenu}.${ClassName.SHOW}`);t.length>0&&this.hide(t)}show(e){if(this.transitioning||$(e).hasClass(ClassName.COLLAPSING))return;const t=$(e),s=$.Event(Event.SHOW);if(t.trigger(s),s.isDefaultPrevented())return;if(t.parent(this.config.parentTrigger).addClass(ClassName.ACTIVE),this.config.toggle){const e=t.parent(this.config.parentTrigger).siblings().children(`${this.config.subMenu}.${ClassName.SHOW}`);this.hide(e)}t.removeClass(ClassName.COLLAPSE).addClass(ClassName.COLLAPSING).height(0),this.setTransitioning(!0);t.height(e[0].scrollHeight).one(Util.TRANSITION_END,(()=>{this.config&&this.element&&(t.removeClass(ClassName.COLLAPSING).addClass(`${ClassName.COLLAPSE} ${ClassName.SHOW}`).height(""),this.setTransitioning(!1),t.trigger(Event.SHOWN))})).mmEmulateTransitionEnd(350)}hide(e){if(this.transitioning||!$(e).hasClass(ClassName.SHOW))return;const t=$(e),s=$.Event(Event.HIDE);if(t.trigger(s),s.isDefaultPrevented())return;t.parent(this.config.parentTrigger).removeClass(ClassName.ACTIVE),t.height(t.height())[0].offsetHeight,t.addClass(ClassName.COLLAPSING).removeClass(ClassName.COLLAPSE).removeClass(ClassName.SHOW),this.setTransitioning(!0);const n=()=>{this.config&&this.element&&(this.transitioning&&this.config.onTransitionEnd&&this.config.onTransitionEnd(),this.setTransitioning(!1),t.trigger(Event.HIDDEN),t.removeClass(ClassName.COLLAPSING).addClass(ClassName.COLLAPSE))};0===t.height()||"none"===t.css("display")?n():t.height(0).one(Util.TRANSITION_END,n).mmEmulateTransitionEnd(350)}setTransitioning(e){this.transitioning=e}dispose(){$.removeData(this.element,DATA_KEY),$(this.element).find(this.config.parentTrigger).children(this.config.triggerElement).off(Event.CLICK_DATA_API),this.transitioning=null,this.config=null,this.element=null}static jQueryInterface(e){return this.each((function(){const t=$(this);let s=t.data(DATA_KEY);const n={...Default,...t.data(),..."object"==typeof e&&e?e:{}};if(s||(s=new MetisMenu(this,n),t.data(DATA_KEY,s)),"string"==typeof e){if(void 0===s[e])throw new Error(`No method named "${e}"`);s[e]()}}))}}$.fn[NAME]=MetisMenu.jQueryInterface,$.fn[NAME].Constructor=MetisMenu,$.fn[NAME].noConflict=()=>($.fn[NAME]=JQUERY_NO_CONFLICT,MetisMenu.jQueryInterface);export default MetisMenu;
|
||||
//# sourceMappingURL=metisMenu.esm.min.js.map
|
||||
@@ -0,0 +1,7 @@
|
||||
/*!
|
||||
* metismenu https://github.com/onokumus/metismenu#readme
|
||||
* A collapsible jQuery menu plugin
|
||||
* @version 3.0.6
|
||||
* @author Osman Nuri Okumus <onokumus@gmail.com> (https://github.com/onokumus)
|
||||
* @license: MIT
|
||||
*/.metismenu .arrow{float:right;line-height:1.42857}*[dir=rtl] .metismenu .arrow{float:left}.metismenu .glyphicon.arrow:before{content:""}.metismenu .mm-active>a>.glyphicon.arrow:before{content:""}.metismenu .fa.arrow:before{content:""}.metismenu .mm-active>a>.fa.arrow:before{content:""}.metismenu .ion.arrow:before{content:""}.metismenu .mm-active>a>.ion.arrow:before{content:""}.metismenu .plus-times{float:right}*[dir=rtl] .metismenu .plus-times{float:left}.metismenu .fa.plus-times:before{content:""}.metismenu .mm-active>a>.fa.plus-times{transform:rotate(45deg)}.metismenu .plus-minus{float:right}*[dir=rtl] .metismenu .plus-minus{float:left}.metismenu .fa.plus-minus:before{content:""}.metismenu .mm-active>a>.fa.plus-minus:before{content:""}.metismenu .mm-collapse:not(.mm-show){display:none}.metismenu .mm-collapsing{position:relative;height:0;overflow:hidden;transition-timing-function:ease;transition-duration:.35s;transition-property:height,visibility}.metismenu .has-arrow{position:relative}.metismenu .has-arrow::after{position:absolute;content:"";width:.5em;height:.5em;border-width:1px 0 0 1px;border-style:solid;border-color:initial;right:1em;transform:rotate(-45deg) translate(0, -50%);transform-origin:top;top:50%;transition:all .3s ease-out}*[dir=rtl] .metismenu .has-arrow::after{right:auto;left:1em;transform:rotate(135deg) translate(0, -50%)}.metismenu .mm-active>.has-arrow::after,.metismenu .has-arrow[aria-expanded=true]::after{transform:rotate(-135deg) translate(0, -50%)}*[dir=rtl] .metismenu .mm-active>.has-arrow::after,*[dir=rtl] .metismenu .has-arrow[aria-expanded=true]::after{transform:rotate(225deg) translate(0, -50%)}/*# sourceMappingURL=metisMenu.min.css.map */
|
||||
@@ -0,0 +1,9 @@
|
||||
/*!
|
||||
* metismenu https://github.com/onokumus/metismenu#readme
|
||||
* A collapsible jQuery menu plugin
|
||||
* @version 3.0.7
|
||||
* @author Osman Nuri Okumus <onokumus@gmail.com> (https://github.com/onokumus)
|
||||
* @license: MIT
|
||||
*/
|
||||
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("jquery")):"function"==typeof define&&define.amd?define(["jquery"],t):(e="undefined"!=typeof globalThis?globalThis:e||self).metisMenu=t(e.$)}(this,(function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e);const i=(e=>{const t="transitionend",n={TRANSITION_END:"mmTransitionEnd",triggerTransitionEnd(n){e(n).trigger(t)},supportsTransitionEnd:()=>Boolean(t)};function i(t){let i=!1;return e(this).one(n.TRANSITION_END,(()=>{i=!0})),setTimeout((()=>{i||n.triggerTransitionEnd(this)}),t),this}return e.fn.mmEmulateTransitionEnd=i,e.event.special[n.TRANSITION_END]={bindType:t,delegateType:t,handle(t){if(e(t.target).is(this))return t.handleObj.handler.apply(this,arguments)}},n})(n.default),s="metisMenu",r="metisMenu",a=n.default.fn[s],o={toggle:!0,preventDefault:!0,triggerElement:"a",parentTrigger:"li",subMenu:"ul"},l={SHOW:"show.metisMenu",SHOWN:"shown.metisMenu",HIDE:"hide.metisMenu",HIDDEN:"hidden.metisMenu",CLICK_DATA_API:"click.metisMenu.data-api"},d="metismenu",g="mm-active",h="mm-show",u="mm-collapse",f="mm-collapsing";class c{constructor(e,t){this.element=e,this.config={...o,...t},this.transitioning=null,this.init()}init(){const e=this,t=this.config,i=n.default(this.element);i.addClass(d),i.find(`${t.parentTrigger}.${g}`).children(t.triggerElement).attr("aria-expanded","true"),i.find(`${t.parentTrigger}.${g}`).parents(t.parentTrigger).addClass(g),i.find(`${t.parentTrigger}.${g}`).parents(t.parentTrigger).children(t.triggerElement).attr("aria-expanded","true"),i.find(`${t.parentTrigger}.${g}`).has(t.subMenu).children(t.subMenu).addClass(`${u} ${h}`),i.find(t.parentTrigger).not(`.${g}`).has(t.subMenu).children(t.subMenu).addClass(u),i.find(t.parentTrigger).children(t.triggerElement).on(l.CLICK_DATA_API,(function(i){const s=n.default(this);if("true"===s.attr("aria-disabled"))return;t.preventDefault&&"#"===s.attr("href")&&i.preventDefault();const r=s.parent(t.parentTrigger),a=r.siblings(t.parentTrigger),o=a.children(t.triggerElement);r.hasClass(g)?(s.attr("aria-expanded","false"),e.removeActive(r)):(s.attr("aria-expanded","true"),e.setActive(r),t.toggle&&(e.removeActive(a),o.attr("aria-expanded","false"))),t.onTransitionStart&&t.onTransitionStart(i)}))}setActive(e){n.default(e).addClass(g);const t=n.default(e).children(this.config.subMenu);t.length>0&&!t.hasClass(h)&&this.show(t)}removeActive(e){n.default(e).removeClass(g);const t=n.default(e).children(`${this.config.subMenu}.${h}`);t.length>0&&this.hide(t)}show(e){if(this.transitioning||n.default(e).hasClass(f))return;const t=n.default(e),s=n.default.Event(l.SHOW);if(t.trigger(s),s.isDefaultPrevented())return;if(t.parent(this.config.parentTrigger).addClass(g),this.config.toggle){const e=t.parent(this.config.parentTrigger).siblings().children(`${this.config.subMenu}.${h}`);this.hide(e)}t.removeClass(u).addClass(f).height(0),this.setTransitioning(!0);t.height(e[0].scrollHeight).one(i.TRANSITION_END,(()=>{this.config&&this.element&&(t.removeClass(f).addClass(`${u} ${h}`).height(""),this.setTransitioning(!1),t.trigger(l.SHOWN))})).mmEmulateTransitionEnd(350)}hide(e){if(this.transitioning||!n.default(e).hasClass(h))return;const t=n.default(e),s=n.default.Event(l.HIDE);if(t.trigger(s),s.isDefaultPrevented())return;t.parent(this.config.parentTrigger).removeClass(g),t.height(t.height())[0].offsetHeight,t.addClass(f).removeClass(u).removeClass(h),this.setTransitioning(!0);const r=()=>{this.config&&this.element&&(this.transitioning&&this.config.onTransitionEnd&&this.config.onTransitionEnd(),this.setTransitioning(!1),t.trigger(l.HIDDEN),t.removeClass(f).addClass(u))};0===t.height()||"none"===t.css("display")?r():t.height(0).one(i.TRANSITION_END,r).mmEmulateTransitionEnd(350)}setTransitioning(e){this.transitioning=e}dispose(){n.default.removeData(this.element,r),n.default(this.element).find(this.config.parentTrigger).children(this.config.triggerElement).off(l.CLICK_DATA_API),this.transitioning=null,this.config=null,this.element=null}static jQueryInterface(e){return this.each((function(){const t=n.default(this);let i=t.data(r);const s={...o,...t.data(),..."object"==typeof e&&e?e:{}};if(i||(i=new c(this,s),t.data(r,i)),"string"==typeof e){if(void 0===i[e])throw new Error(`No method named "${e}"`);i[e]()}}))}}return n.default.fn[s]=c.jQueryInterface,n.default.fn[s].Constructor=c,n.default.fn[s].noConflict=()=>(n.default.fn[s]=a,c.jQueryInterface),c}));
|
||||
//# sourceMappingURL=metisMenu.min.js.map
|
||||
Binary file not shown.
@@ -0,0 +1,855 @@
|
||||
/**
|
||||
* SimpleBar.js - v4.2.3
|
||||
* Scrollbars, simpler.
|
||||
* https://grsmto.github.io/simplebar/
|
||||
*
|
||||
* Made by Adrien Denat from a fork by Jonathan Nicol
|
||||
* Under MIT License
|
||||
*/
|
||||
|
||||
import 'core-js/modules/es.array.filter';
|
||||
import 'core-js/modules/es.array.for-each';
|
||||
import 'core-js/modules/es.array.reduce';
|
||||
import 'core-js/modules/es.function.name';
|
||||
import 'core-js/modules/es.object.assign';
|
||||
import 'core-js/modules/es.parse-int';
|
||||
import 'core-js/modules/es.regexp.exec';
|
||||
import 'core-js/modules/es.string.match';
|
||||
import 'core-js/modules/es.string.replace';
|
||||
import 'core-js/modules/web.dom-collections.for-each';
|
||||
import throttle from 'lodash.throttle';
|
||||
import debounce from 'lodash.debounce';
|
||||
import memoize from 'lodash.memoize';
|
||||
import ResizeObserver from 'resize-observer-polyfill';
|
||||
import canUseDOM from 'can-use-dom';
|
||||
|
||||
function scrollbarWidth() {
|
||||
if (typeof document === 'undefined') {
|
||||
return 0;
|
||||
}
|
||||
|
||||
var body = document.body;
|
||||
var box = document.createElement('div');
|
||||
var boxStyle = box.style;
|
||||
boxStyle.position = 'fixed';
|
||||
boxStyle.left = 0;
|
||||
boxStyle.visibility = 'hidden';
|
||||
boxStyle.overflowY = 'scroll';
|
||||
body.appendChild(box);
|
||||
var width = box.getBoundingClientRect().right;
|
||||
body.removeChild(box);
|
||||
return width;
|
||||
}
|
||||
|
||||
var SimpleBar =
|
||||
/*#__PURE__*/
|
||||
function () {
|
||||
function SimpleBar(element, options) {
|
||||
var _this = this;
|
||||
|
||||
this.onScroll = function () {
|
||||
if (!_this.scrollXTicking) {
|
||||
window.requestAnimationFrame(_this.scrollX);
|
||||
_this.scrollXTicking = true;
|
||||
}
|
||||
|
||||
if (!_this.scrollYTicking) {
|
||||
window.requestAnimationFrame(_this.scrollY);
|
||||
_this.scrollYTicking = true;
|
||||
}
|
||||
};
|
||||
|
||||
this.scrollX = function () {
|
||||
if (_this.axis.x.isOverflowing) {
|
||||
_this.showScrollbar('x');
|
||||
|
||||
_this.positionScrollbar('x');
|
||||
}
|
||||
|
||||
_this.scrollXTicking = false;
|
||||
};
|
||||
|
||||
this.scrollY = function () {
|
||||
if (_this.axis.y.isOverflowing) {
|
||||
_this.showScrollbar('y');
|
||||
|
||||
_this.positionScrollbar('y');
|
||||
}
|
||||
|
||||
_this.scrollYTicking = false;
|
||||
};
|
||||
|
||||
this.onMouseEnter = function () {
|
||||
_this.showScrollbar('x');
|
||||
|
||||
_this.showScrollbar('y');
|
||||
};
|
||||
|
||||
this.onMouseMove = function (e) {
|
||||
_this.mouseX = e.clientX;
|
||||
_this.mouseY = e.clientY;
|
||||
|
||||
if (_this.axis.x.isOverflowing || _this.axis.x.forceVisible) {
|
||||
_this.onMouseMoveForAxis('x');
|
||||
}
|
||||
|
||||
if (_this.axis.y.isOverflowing || _this.axis.y.forceVisible) {
|
||||
_this.onMouseMoveForAxis('y');
|
||||
}
|
||||
};
|
||||
|
||||
this.onMouseLeave = function () {
|
||||
_this.onMouseMove.cancel();
|
||||
|
||||
if (_this.axis.x.isOverflowing || _this.axis.x.forceVisible) {
|
||||
_this.onMouseLeaveForAxis('x');
|
||||
}
|
||||
|
||||
if (_this.axis.y.isOverflowing || _this.axis.y.forceVisible) {
|
||||
_this.onMouseLeaveForAxis('y');
|
||||
}
|
||||
|
||||
_this.mouseX = -1;
|
||||
_this.mouseY = -1;
|
||||
};
|
||||
|
||||
this.onWindowResize = function () {
|
||||
// Recalculate scrollbarWidth in case it's a zoom
|
||||
_this.scrollbarWidth = scrollbarWidth();
|
||||
|
||||
_this.hideNativeScrollbar();
|
||||
};
|
||||
|
||||
this.hideScrollbars = function () {
|
||||
_this.axis.x.track.rect = _this.axis.x.track.el.getBoundingClientRect();
|
||||
_this.axis.y.track.rect = _this.axis.y.track.el.getBoundingClientRect();
|
||||
|
||||
if (!_this.isWithinBounds(_this.axis.y.track.rect)) {
|
||||
_this.axis.y.scrollbar.el.classList.remove(_this.classNames.visible);
|
||||
|
||||
_this.axis.y.isVisible = false;
|
||||
}
|
||||
|
||||
if (!_this.isWithinBounds(_this.axis.x.track.rect)) {
|
||||
_this.axis.x.scrollbar.el.classList.remove(_this.classNames.visible);
|
||||
|
||||
_this.axis.x.isVisible = false;
|
||||
}
|
||||
};
|
||||
|
||||
this.onPointerEvent = function (e) {
|
||||
var isWithinBoundsY, isWithinBoundsX;
|
||||
_this.axis.x.scrollbar.rect = _this.axis.x.scrollbar.el.getBoundingClientRect();
|
||||
_this.axis.y.scrollbar.rect = _this.axis.y.scrollbar.el.getBoundingClientRect();
|
||||
|
||||
if (_this.axis.x.isOverflowing || _this.axis.x.forceVisible) {
|
||||
isWithinBoundsX = _this.isWithinBounds(_this.axis.x.scrollbar.rect);
|
||||
}
|
||||
|
||||
if (_this.axis.y.isOverflowing || _this.axis.y.forceVisible) {
|
||||
isWithinBoundsY = _this.isWithinBounds(_this.axis.y.scrollbar.rect);
|
||||
} // If any pointer event is called on the scrollbar
|
||||
|
||||
|
||||
if (isWithinBoundsY || isWithinBoundsX) {
|
||||
// Preventing the event's default action stops text being
|
||||
// selectable during the drag.
|
||||
e.preventDefault(); // Prevent event leaking
|
||||
|
||||
e.stopPropagation();
|
||||
|
||||
if (e.type === 'mousedown') {
|
||||
if (isWithinBoundsY) {
|
||||
_this.onDragStart(e, 'y');
|
||||
}
|
||||
|
||||
if (isWithinBoundsX) {
|
||||
_this.onDragStart(e, 'x');
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
this.drag = function (e) {
|
||||
var eventOffset;
|
||||
var track = _this.axis[_this.draggedAxis].track;
|
||||
var trackSize = track.rect[_this.axis[_this.draggedAxis].sizeAttr];
|
||||
var scrollbar = _this.axis[_this.draggedAxis].scrollbar;
|
||||
var contentSize = _this.contentWrapperEl[_this.axis[_this.draggedAxis].scrollSizeAttr];
|
||||
var hostSize = parseInt(_this.elStyles[_this.axis[_this.draggedAxis].sizeAttr], 10);
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
|
||||
if (_this.draggedAxis === 'y') {
|
||||
eventOffset = e.pageY;
|
||||
} else {
|
||||
eventOffset = e.pageX;
|
||||
} // Calculate how far the user's mouse is from the top/left of the scrollbar (minus the dragOffset).
|
||||
|
||||
|
||||
var dragPos = eventOffset - track.rect[_this.axis[_this.draggedAxis].offsetAttr] - _this.axis[_this.draggedAxis].dragOffset; // Convert the mouse position into a percentage of the scrollbar height/width.
|
||||
|
||||
var dragPerc = dragPos / (trackSize - scrollbar.size); // Scroll the content by the same percentage.
|
||||
|
||||
var scrollPos = dragPerc * (contentSize - hostSize); // Fix browsers inconsistency on RTL
|
||||
|
||||
if (_this.draggedAxis === 'x') {
|
||||
scrollPos = _this.isRtl && SimpleBar.getRtlHelpers().isRtlScrollbarInverted ? scrollPos - (trackSize + scrollbar.size) : scrollPos;
|
||||
scrollPos = _this.isRtl && SimpleBar.getRtlHelpers().isRtlScrollingInverted ? -scrollPos : scrollPos;
|
||||
}
|
||||
|
||||
_this.contentWrapperEl[_this.axis[_this.draggedAxis].scrollOffsetAttr] = scrollPos;
|
||||
};
|
||||
|
||||
this.onEndDrag = function (e) {
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
|
||||
_this.el.classList.remove(_this.classNames.dragging);
|
||||
|
||||
document.removeEventListener('mousemove', _this.drag, true);
|
||||
document.removeEventListener('mouseup', _this.onEndDrag, true);
|
||||
_this.removePreventClickId = window.setTimeout(function () {
|
||||
// Remove these asynchronously so we still suppress click events
|
||||
// generated simultaneously with mouseup.
|
||||
document.removeEventListener('click', _this.preventClick, true);
|
||||
document.removeEventListener('dblclick', _this.preventClick, true);
|
||||
_this.removePreventClickId = null;
|
||||
});
|
||||
};
|
||||
|
||||
this.preventClick = function (e) {
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
};
|
||||
|
||||
this.el = element;
|
||||
this.flashTimeout;
|
||||
this.contentEl;
|
||||
this.contentWrapperEl;
|
||||
this.offsetEl;
|
||||
this.maskEl;
|
||||
this.globalObserver;
|
||||
this.mutationObserver;
|
||||
this.resizeObserver;
|
||||
this.scrollbarWidth;
|
||||
this.minScrollbarWidth = 20;
|
||||
this.options = Object.assign({}, SimpleBar.defaultOptions, options);
|
||||
this.classNames = Object.assign({}, SimpleBar.defaultOptions.classNames, this.options.classNames);
|
||||
this.isRtl;
|
||||
this.axis = {
|
||||
x: {
|
||||
scrollOffsetAttr: 'scrollLeft',
|
||||
sizeAttr: 'width',
|
||||
scrollSizeAttr: 'scrollWidth',
|
||||
offsetAttr: 'left',
|
||||
overflowAttr: 'overflowX',
|
||||
dragOffset: 0,
|
||||
isOverflowing: true,
|
||||
isVisible: false,
|
||||
forceVisible: false,
|
||||
track: {},
|
||||
scrollbar: {}
|
||||
},
|
||||
y: {
|
||||
scrollOffsetAttr: 'scrollTop',
|
||||
sizeAttr: 'height',
|
||||
scrollSizeAttr: 'scrollHeight',
|
||||
offsetAttr: 'top',
|
||||
overflowAttr: 'overflowY',
|
||||
dragOffset: 0,
|
||||
isOverflowing: true,
|
||||
isVisible: false,
|
||||
forceVisible: false,
|
||||
track: {},
|
||||
scrollbar: {}
|
||||
}
|
||||
};
|
||||
this.removePreventClickId = null; // Don't re-instantiate over an existing one
|
||||
|
||||
if (this.el.SimpleBar) {
|
||||
return;
|
||||
}
|
||||
|
||||
this.recalculate = throttle(this.recalculate.bind(this), 64);
|
||||
this.onMouseMove = throttle(this.onMouseMove.bind(this), 64);
|
||||
this.hideScrollbars = debounce(this.hideScrollbars.bind(this), this.options.timeout);
|
||||
this.onWindowResize = debounce(this.onWindowResize.bind(this), 64, {
|
||||
leading: true
|
||||
});
|
||||
SimpleBar.getRtlHelpers = memoize(SimpleBar.getRtlHelpers);
|
||||
this.init();
|
||||
}
|
||||
/**
|
||||
* Static properties
|
||||
*/
|
||||
|
||||
/**
|
||||
* Helper to fix browsers inconsistency on RTL:
|
||||
* - Firefox inverts the scrollbar initial position
|
||||
* - IE11 inverts both scrollbar position and scrolling offset
|
||||
* Directly inspired by @KingSora's OverlayScrollbars https://github.com/KingSora/OverlayScrollbars/blob/master/js/OverlayScrollbars.js#L1634
|
||||
*/
|
||||
|
||||
|
||||
SimpleBar.getRtlHelpers = function getRtlHelpers() {
|
||||
var dummyDiv = document.createElement('div');
|
||||
dummyDiv.innerHTML = '<div class="hs-dummy-scrollbar-size"><div style="height: 200%; width: 200%; margin: 10px 0;"></div></div>';
|
||||
var scrollbarDummyEl = dummyDiv.firstElementChild;
|
||||
document.body.appendChild(scrollbarDummyEl);
|
||||
var dummyContainerChild = scrollbarDummyEl.firstElementChild;
|
||||
scrollbarDummyEl.scrollLeft = 0;
|
||||
var dummyContainerOffset = SimpleBar.getOffset(scrollbarDummyEl);
|
||||
var dummyContainerChildOffset = SimpleBar.getOffset(dummyContainerChild);
|
||||
scrollbarDummyEl.scrollLeft = 999;
|
||||
var dummyContainerScrollOffsetAfterScroll = SimpleBar.getOffset(dummyContainerChild);
|
||||
return {
|
||||
// determines if the scrolling is responding with negative values
|
||||
isRtlScrollingInverted: dummyContainerOffset.left !== dummyContainerChildOffset.left && dummyContainerChildOffset.left - dummyContainerScrollOffsetAfterScroll.left !== 0,
|
||||
// determines if the origin scrollbar position is inverted or not (positioned on left or right)
|
||||
isRtlScrollbarInverted: dummyContainerOffset.left !== dummyContainerChildOffset.left
|
||||
};
|
||||
};
|
||||
|
||||
SimpleBar.initHtmlApi = function initHtmlApi() {
|
||||
this.initDOMLoadedElements = this.initDOMLoadedElements.bind(this); // MutationObserver is IE11+
|
||||
|
||||
if (typeof MutationObserver !== 'undefined') {
|
||||
// Mutation observer to observe dynamically added elements
|
||||
this.globalObserver = new MutationObserver(function (mutations) {
|
||||
mutations.forEach(function (mutation) {
|
||||
Array.prototype.forEach.call(mutation.addedNodes, function (addedNode) {
|
||||
if (addedNode.nodeType === 1) {
|
||||
if (addedNode.hasAttribute('data-simplebar')) {
|
||||
!addedNode.SimpleBar && new SimpleBar(addedNode, SimpleBar.getElOptions(addedNode));
|
||||
} else {
|
||||
Array.prototype.forEach.call(addedNode.querySelectorAll('[data-simplebar]'), function (el) {
|
||||
!el.SimpleBar && new SimpleBar(el, SimpleBar.getElOptions(el));
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
Array.prototype.forEach.call(mutation.removedNodes, function (removedNode) {
|
||||
if (removedNode.nodeType === 1) {
|
||||
if (removedNode.hasAttribute('data-simplebar')) {
|
||||
removedNode.SimpleBar && removedNode.SimpleBar.unMount();
|
||||
} else {
|
||||
Array.prototype.forEach.call(removedNode.querySelectorAll('[data-simplebar]'), function (el) {
|
||||
el.SimpleBar && el.SimpleBar.unMount();
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
this.globalObserver.observe(document, {
|
||||
childList: true,
|
||||
subtree: true
|
||||
});
|
||||
} // Taken from jQuery `ready` function
|
||||
// Instantiate elements already present on the page
|
||||
|
||||
|
||||
if (document.readyState === 'complete' || document.readyState !== 'loading' && !document.documentElement.doScroll) {
|
||||
// Handle it asynchronously to allow scripts the opportunity to delay init
|
||||
window.setTimeout(this.initDOMLoadedElements);
|
||||
} else {
|
||||
document.addEventListener('DOMContentLoaded', this.initDOMLoadedElements);
|
||||
window.addEventListener('load', this.initDOMLoadedElements);
|
||||
}
|
||||
} // Helper function to retrieve options from element attributes
|
||||
;
|
||||
|
||||
SimpleBar.getElOptions = function getElOptions(el) {
|
||||
var options = Array.prototype.reduce.call(el.attributes, function (acc, attribute) {
|
||||
var option = attribute.name.match(/data-simplebar-(.+)/);
|
||||
|
||||
if (option) {
|
||||
var key = option[1].replace(/\W+(.)/g, function (x, chr) {
|
||||
return chr.toUpperCase();
|
||||
});
|
||||
|
||||
switch (attribute.value) {
|
||||
case 'true':
|
||||
acc[key] = true;
|
||||
break;
|
||||
|
||||
case 'false':
|
||||
acc[key] = false;
|
||||
break;
|
||||
|
||||
case undefined:
|
||||
acc[key] = true;
|
||||
break;
|
||||
|
||||
default:
|
||||
acc[key] = attribute.value;
|
||||
}
|
||||
}
|
||||
|
||||
return acc;
|
||||
}, {});
|
||||
return options;
|
||||
};
|
||||
|
||||
SimpleBar.removeObserver = function removeObserver() {
|
||||
this.globalObserver.disconnect();
|
||||
};
|
||||
|
||||
SimpleBar.initDOMLoadedElements = function initDOMLoadedElements() {
|
||||
document.removeEventListener('DOMContentLoaded', this.initDOMLoadedElements);
|
||||
window.removeEventListener('load', this.initDOMLoadedElements);
|
||||
Array.prototype.forEach.call(document.querySelectorAll('[data-simplebar]'), function (el) {
|
||||
if (!el.SimpleBar) new SimpleBar(el, SimpleBar.getElOptions(el));
|
||||
});
|
||||
};
|
||||
|
||||
SimpleBar.getOffset = function getOffset(el) {
|
||||
var rect = el.getBoundingClientRect();
|
||||
return {
|
||||
top: rect.top + (window.pageYOffset || document.documentElement.scrollTop),
|
||||
left: rect.left + (window.pageXOffset || document.documentElement.scrollLeft)
|
||||
};
|
||||
};
|
||||
|
||||
var _proto = SimpleBar.prototype;
|
||||
|
||||
_proto.init = function init() {
|
||||
// Save a reference to the instance, so we know this DOM node has already been instancied
|
||||
this.el.SimpleBar = this; // We stop here on server-side
|
||||
|
||||
if (canUseDOM) {
|
||||
this.initDOM();
|
||||
this.scrollbarWidth = scrollbarWidth();
|
||||
this.recalculate();
|
||||
this.initListeners();
|
||||
}
|
||||
};
|
||||
|
||||
_proto.initDOM = function initDOM() {
|
||||
var _this2 = this;
|
||||
|
||||
// make sure this element doesn't have the elements yet
|
||||
if (Array.prototype.filter.call(this.el.children, function (child) {
|
||||
return child.classList.contains(_this2.classNames.wrapper);
|
||||
}).length) {
|
||||
// assume that element has his DOM already initiated
|
||||
this.wrapperEl = this.el.querySelector("." + this.classNames.wrapper);
|
||||
this.contentWrapperEl = this.el.querySelector("." + this.classNames.contentWrapper);
|
||||
this.offsetEl = this.el.querySelector("." + this.classNames.offset);
|
||||
this.maskEl = this.el.querySelector("." + this.classNames.mask);
|
||||
this.contentEl = this.el.querySelector("." + this.classNames.contentEl);
|
||||
this.placeholderEl = this.el.querySelector("." + this.classNames.placeholder);
|
||||
this.heightAutoObserverWrapperEl = this.el.querySelector("." + this.classNames.heightAutoObserverWrapperEl);
|
||||
this.heightAutoObserverEl = this.el.querySelector("." + this.classNames.heightAutoObserverEl);
|
||||
this.axis.x.track.el = this.findChild(this.el, "." + this.classNames.track + "." + this.classNames.horizontal);
|
||||
this.axis.y.track.el = this.findChild(this.el, "." + this.classNames.track + "." + this.classNames.vertical);
|
||||
} else {
|
||||
// Prepare DOM
|
||||
this.wrapperEl = document.createElement('div');
|
||||
this.contentWrapperEl = document.createElement('div');
|
||||
this.offsetEl = document.createElement('div');
|
||||
this.maskEl = document.createElement('div');
|
||||
this.contentEl = document.createElement('div');
|
||||
this.placeholderEl = document.createElement('div');
|
||||
this.heightAutoObserverWrapperEl = document.createElement('div');
|
||||
this.heightAutoObserverEl = document.createElement('div');
|
||||
this.wrapperEl.classList.add(this.classNames.wrapper);
|
||||
this.contentWrapperEl.classList.add(this.classNames.contentWrapper);
|
||||
this.offsetEl.classList.add(this.classNames.offset);
|
||||
this.maskEl.classList.add(this.classNames.mask);
|
||||
this.contentEl.classList.add(this.classNames.contentEl);
|
||||
this.placeholderEl.classList.add(this.classNames.placeholder);
|
||||
this.heightAutoObserverWrapperEl.classList.add(this.classNames.heightAutoObserverWrapperEl);
|
||||
this.heightAutoObserverEl.classList.add(this.classNames.heightAutoObserverEl);
|
||||
|
||||
while (this.el.firstChild) {
|
||||
this.contentEl.appendChild(this.el.firstChild);
|
||||
}
|
||||
|
||||
this.contentWrapperEl.appendChild(this.contentEl);
|
||||
this.offsetEl.appendChild(this.contentWrapperEl);
|
||||
this.maskEl.appendChild(this.offsetEl);
|
||||
this.heightAutoObserverWrapperEl.appendChild(this.heightAutoObserverEl);
|
||||
this.wrapperEl.appendChild(this.heightAutoObserverWrapperEl);
|
||||
this.wrapperEl.appendChild(this.maskEl);
|
||||
this.wrapperEl.appendChild(this.placeholderEl);
|
||||
this.el.appendChild(this.wrapperEl);
|
||||
}
|
||||
|
||||
if (!this.axis.x.track.el || !this.axis.y.track.el) {
|
||||
var track = document.createElement('div');
|
||||
var scrollbar = document.createElement('div');
|
||||
track.classList.add(this.classNames.track);
|
||||
scrollbar.classList.add(this.classNames.scrollbar);
|
||||
track.appendChild(scrollbar);
|
||||
this.axis.x.track.el = track.cloneNode(true);
|
||||
this.axis.x.track.el.classList.add(this.classNames.horizontal);
|
||||
this.axis.y.track.el = track.cloneNode(true);
|
||||
this.axis.y.track.el.classList.add(this.classNames.vertical);
|
||||
this.el.appendChild(this.axis.x.track.el);
|
||||
this.el.appendChild(this.axis.y.track.el);
|
||||
}
|
||||
|
||||
this.axis.x.scrollbar.el = this.axis.x.track.el.querySelector("." + this.classNames.scrollbar);
|
||||
this.axis.y.scrollbar.el = this.axis.y.track.el.querySelector("." + this.classNames.scrollbar);
|
||||
|
||||
if (!this.options.autoHide) {
|
||||
this.axis.x.scrollbar.el.classList.add(this.classNames.visible);
|
||||
this.axis.y.scrollbar.el.classList.add(this.classNames.visible);
|
||||
}
|
||||
|
||||
this.el.setAttribute('data-simplebar', 'init');
|
||||
};
|
||||
|
||||
_proto.initListeners = function initListeners() {
|
||||
var _this3 = this;
|
||||
|
||||
// Event listeners
|
||||
if (this.options.autoHide) {
|
||||
this.el.addEventListener('mouseenter', this.onMouseEnter);
|
||||
}
|
||||
|
||||
['mousedown', 'click', 'dblclick'].forEach(function (e) {
|
||||
_this3.el.addEventListener(e, _this3.onPointerEvent, true);
|
||||
});
|
||||
['touchstart', 'touchend', 'touchmove'].forEach(function (e) {
|
||||
_this3.el.addEventListener(e, _this3.onPointerEvent, {
|
||||
capture: true,
|
||||
passive: true
|
||||
});
|
||||
});
|
||||
this.el.addEventListener('mousemove', this.onMouseMove);
|
||||
this.el.addEventListener('mouseleave', this.onMouseLeave);
|
||||
this.contentWrapperEl.addEventListener('scroll', this.onScroll); // Browser zoom triggers a window resize
|
||||
|
||||
window.addEventListener('resize', this.onWindowResize);
|
||||
this.resizeObserver = new ResizeObserver(this.recalculate);
|
||||
this.resizeObserver.observe(this.el);
|
||||
this.resizeObserver.observe(this.contentEl);
|
||||
};
|
||||
|
||||
_proto.recalculate = function recalculate() {
|
||||
var isHeightAuto = this.heightAutoObserverEl.offsetHeight <= 1;
|
||||
var isWidthAuto = this.heightAutoObserverEl.offsetWidth <= 1;
|
||||
this.elStyles = window.getComputedStyle(this.el);
|
||||
this.isRtl = this.elStyles.direction === 'rtl';
|
||||
this.contentEl.style.padding = this.elStyles.paddingTop + " " + this.elStyles.paddingRight + " " + this.elStyles.paddingBottom + " " + this.elStyles.paddingLeft;
|
||||
this.wrapperEl.style.margin = "-" + this.elStyles.paddingTop + " -" + this.elStyles.paddingRight + " -" + this.elStyles.paddingBottom + " -" + this.elStyles.paddingLeft;
|
||||
this.contentWrapperEl.style.height = isHeightAuto ? 'auto' : '100%'; // Determine placeholder size
|
||||
|
||||
this.placeholderEl.style.width = isWidthAuto ? this.contentEl.offsetWidth + "px" : 'auto';
|
||||
this.placeholderEl.style.height = this.contentEl.scrollHeight + "px"; // Set isOverflowing to false if scrollbar is not necessary (content is shorter than offset)
|
||||
|
||||
this.axis.x.isOverflowing = this.contentWrapperEl.scrollWidth > this.contentWrapperEl.offsetWidth;
|
||||
this.axis.y.isOverflowing = this.contentWrapperEl.scrollHeight > this.contentWrapperEl.offsetHeight; // Set isOverflowing to false if user explicitely set hidden overflow
|
||||
|
||||
this.axis.x.isOverflowing = this.elStyles.overflowX === 'hidden' ? false : this.axis.x.isOverflowing;
|
||||
this.axis.y.isOverflowing = this.elStyles.overflowY === 'hidden' ? false : this.axis.y.isOverflowing;
|
||||
this.axis.x.forceVisible = this.options.forceVisible === 'x' || this.options.forceVisible === true;
|
||||
this.axis.y.forceVisible = this.options.forceVisible === 'y' || this.options.forceVisible === true;
|
||||
this.hideNativeScrollbar();
|
||||
this.axis.x.track.rect = this.axis.x.track.el.getBoundingClientRect();
|
||||
this.axis.y.track.rect = this.axis.y.track.el.getBoundingClientRect();
|
||||
this.axis.x.scrollbar.size = this.getScrollbarSize('x');
|
||||
this.axis.y.scrollbar.size = this.getScrollbarSize('y');
|
||||
this.axis.x.scrollbar.el.style.width = this.axis.x.scrollbar.size + "px";
|
||||
this.axis.y.scrollbar.el.style.height = this.axis.y.scrollbar.size + "px";
|
||||
this.positionScrollbar('x');
|
||||
this.positionScrollbar('y');
|
||||
this.toggleTrackVisibility('x');
|
||||
this.toggleTrackVisibility('y');
|
||||
}
|
||||
/**
|
||||
* Calculate scrollbar size
|
||||
*/
|
||||
;
|
||||
|
||||
_proto.getScrollbarSize = function getScrollbarSize(axis) {
|
||||
if (axis === void 0) {
|
||||
axis = 'y';
|
||||
}
|
||||
|
||||
var contentSize = this.scrollbarWidth ? this.contentWrapperEl[this.axis[axis].scrollSizeAttr] : this.contentWrapperEl[this.axis[axis].scrollSizeAttr] - this.minScrollbarWidth;
|
||||
var trackSize = this.axis[axis].track.rect[this.axis[axis].sizeAttr];
|
||||
var scrollbarSize;
|
||||
|
||||
if (!this.axis[axis].isOverflowing) {
|
||||
return;
|
||||
}
|
||||
|
||||
var scrollbarRatio = trackSize / contentSize; // Calculate new height/position of drag handle.
|
||||
|
||||
scrollbarSize = Math.max(~~(scrollbarRatio * trackSize), this.options.scrollbarMinSize);
|
||||
|
||||
if (this.options.scrollbarMaxSize) {
|
||||
scrollbarSize = Math.min(scrollbarSize, this.options.scrollbarMaxSize);
|
||||
}
|
||||
|
||||
return scrollbarSize;
|
||||
};
|
||||
|
||||
_proto.positionScrollbar = function positionScrollbar(axis) {
|
||||
if (axis === void 0) {
|
||||
axis = 'y';
|
||||
}
|
||||
|
||||
var contentSize = this.contentWrapperEl[this.axis[axis].scrollSizeAttr];
|
||||
var trackSize = this.axis[axis].track.rect[this.axis[axis].sizeAttr];
|
||||
var hostSize = parseInt(this.elStyles[this.axis[axis].sizeAttr], 10);
|
||||
var scrollbar = this.axis[axis].scrollbar;
|
||||
var scrollOffset = this.contentWrapperEl[this.axis[axis].scrollOffsetAttr];
|
||||
scrollOffset = axis === 'x' && this.isRtl && SimpleBar.getRtlHelpers().isRtlScrollingInverted ? -scrollOffset : scrollOffset;
|
||||
var scrollPourcent = scrollOffset / (contentSize - hostSize);
|
||||
var handleOffset = ~~((trackSize - scrollbar.size) * scrollPourcent);
|
||||
handleOffset = axis === 'x' && this.isRtl && SimpleBar.getRtlHelpers().isRtlScrollbarInverted ? handleOffset + (trackSize - scrollbar.size) : handleOffset;
|
||||
scrollbar.el.style.transform = axis === 'x' ? "translate3d(" + handleOffset + "px, 0, 0)" : "translate3d(0, " + handleOffset + "px, 0)";
|
||||
};
|
||||
|
||||
_proto.toggleTrackVisibility = function toggleTrackVisibility(axis) {
|
||||
if (axis === void 0) {
|
||||
axis = 'y';
|
||||
}
|
||||
|
||||
var track = this.axis[axis].track.el;
|
||||
var scrollbar = this.axis[axis].scrollbar.el;
|
||||
|
||||
if (this.axis[axis].isOverflowing || this.axis[axis].forceVisible) {
|
||||
track.style.visibility = 'visible';
|
||||
this.contentWrapperEl.style[this.axis[axis].overflowAttr] = 'scroll';
|
||||
} else {
|
||||
track.style.visibility = 'hidden';
|
||||
this.contentWrapperEl.style[this.axis[axis].overflowAttr] = 'hidden';
|
||||
} // Even if forceVisible is enabled, scrollbar itself should be hidden
|
||||
|
||||
|
||||
if (this.axis[axis].isOverflowing) {
|
||||
scrollbar.style.display = 'block';
|
||||
} else {
|
||||
scrollbar.style.display = 'none';
|
||||
}
|
||||
};
|
||||
|
||||
_proto.hideNativeScrollbar = function hideNativeScrollbar() {
|
||||
this.offsetEl.style[this.isRtl ? 'left' : 'right'] = this.axis.y.isOverflowing || this.axis.y.forceVisible ? "-" + (this.scrollbarWidth || this.minScrollbarWidth) + "px" : 0;
|
||||
this.offsetEl.style.bottom = this.axis.x.isOverflowing || this.axis.x.forceVisible ? "-" + (this.scrollbarWidth || this.minScrollbarWidth) + "px" : 0; // If floating scrollbar
|
||||
|
||||
if (!this.scrollbarWidth) {
|
||||
var paddingDirection = [this.isRtl ? 'paddingLeft' : 'paddingRight'];
|
||||
this.contentWrapperEl.style[paddingDirection] = this.axis.y.isOverflowing || this.axis.y.forceVisible ? this.minScrollbarWidth + "px" : 0;
|
||||
this.contentWrapperEl.style.paddingBottom = this.axis.x.isOverflowing || this.axis.x.forceVisible ? this.minScrollbarWidth + "px" : 0;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* On scroll event handling
|
||||
*/
|
||||
;
|
||||
|
||||
_proto.onMouseMoveForAxis = function onMouseMoveForAxis(axis) {
|
||||
if (axis === void 0) {
|
||||
axis = 'y';
|
||||
}
|
||||
|
||||
this.axis[axis].track.rect = this.axis[axis].track.el.getBoundingClientRect();
|
||||
this.axis[axis].scrollbar.rect = this.axis[axis].scrollbar.el.getBoundingClientRect();
|
||||
var isWithinScrollbarBoundsX = this.isWithinBounds(this.axis[axis].scrollbar.rect);
|
||||
|
||||
if (isWithinScrollbarBoundsX) {
|
||||
this.axis[axis].scrollbar.el.classList.add(this.classNames.hover);
|
||||
} else {
|
||||
this.axis[axis].scrollbar.el.classList.remove(this.classNames.hover);
|
||||
}
|
||||
|
||||
if (this.isWithinBounds(this.axis[axis].track.rect)) {
|
||||
this.showScrollbar(axis);
|
||||
this.axis[axis].track.el.classList.add(this.classNames.hover);
|
||||
} else {
|
||||
this.axis[axis].track.el.classList.remove(this.classNames.hover);
|
||||
}
|
||||
};
|
||||
|
||||
_proto.onMouseLeaveForAxis = function onMouseLeaveForAxis(axis) {
|
||||
if (axis === void 0) {
|
||||
axis = 'y';
|
||||
}
|
||||
|
||||
this.axis[axis].track.el.classList.remove(this.classNames.hover);
|
||||
this.axis[axis].scrollbar.el.classList.remove(this.classNames.hover);
|
||||
};
|
||||
|
||||
/**
|
||||
* Show scrollbar
|
||||
*/
|
||||
_proto.showScrollbar = function showScrollbar(axis) {
|
||||
if (axis === void 0) {
|
||||
axis = 'y';
|
||||
}
|
||||
|
||||
var scrollbar = this.axis[axis].scrollbar.el;
|
||||
|
||||
if (!this.axis[axis].isVisible) {
|
||||
scrollbar.classList.add(this.classNames.visible);
|
||||
this.axis[axis].isVisible = true;
|
||||
}
|
||||
|
||||
if (this.options.autoHide) {
|
||||
this.hideScrollbars();
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Hide Scrollbar
|
||||
*/
|
||||
;
|
||||
|
||||
/**
|
||||
* on scrollbar handle drag movement starts
|
||||
*/
|
||||
_proto.onDragStart = function onDragStart(e, axis) {
|
||||
if (axis === void 0) {
|
||||
axis = 'y';
|
||||
}
|
||||
|
||||
var scrollbar = this.axis[axis].scrollbar.el; // Measure how far the user's mouse is from the top of the scrollbar drag handle.
|
||||
|
||||
var eventOffset = axis === 'y' ? e.pageY : e.pageX;
|
||||
this.axis[axis].dragOffset = eventOffset - scrollbar.getBoundingClientRect()[this.axis[axis].offsetAttr];
|
||||
this.draggedAxis = axis;
|
||||
this.el.classList.add(this.classNames.dragging);
|
||||
document.addEventListener('mousemove', this.drag, true);
|
||||
document.addEventListener('mouseup', this.onEndDrag, true);
|
||||
|
||||
if (this.removePreventClickId === null) {
|
||||
document.addEventListener('click', this.preventClick, true);
|
||||
document.addEventListener('dblclick', this.preventClick, true);
|
||||
} else {
|
||||
window.clearTimeout(this.removePreventClickId);
|
||||
this.removePreventClickId = null;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Drag scrollbar handle
|
||||
*/
|
||||
;
|
||||
|
||||
/**
|
||||
* Getter for content element
|
||||
*/
|
||||
_proto.getContentElement = function getContentElement() {
|
||||
return this.contentEl;
|
||||
}
|
||||
/**
|
||||
* Getter for original scrolling element
|
||||
*/
|
||||
;
|
||||
|
||||
_proto.getScrollElement = function getScrollElement() {
|
||||
return this.contentWrapperEl;
|
||||
};
|
||||
|
||||
_proto.removeListeners = function removeListeners() {
|
||||
var _this4 = this;
|
||||
|
||||
// Event listeners
|
||||
if (this.options.autoHide) {
|
||||
this.el.removeEventListener('mouseenter', this.onMouseEnter);
|
||||
}
|
||||
|
||||
['mousedown', 'click', 'dblclick'].forEach(function (e) {
|
||||
_this4.el.removeEventListener(e, _this4.onPointerEvent, true);
|
||||
});
|
||||
['touchstart', 'touchend', 'touchmove'].forEach(function (e) {
|
||||
_this4.el.removeEventListener(e, _this4.onPointerEvent, {
|
||||
capture: true,
|
||||
passive: true
|
||||
});
|
||||
});
|
||||
this.el.removeEventListener('mousemove', this.onMouseMove);
|
||||
this.el.removeEventListener('mouseleave', this.onMouseLeave);
|
||||
this.contentWrapperEl.removeEventListener('scroll', this.onScroll);
|
||||
window.removeEventListener('resize', this.onWindowResize);
|
||||
this.mutationObserver && this.mutationObserver.disconnect();
|
||||
this.resizeObserver.disconnect(); // Cancel all debounced functions
|
||||
|
||||
this.recalculate.cancel();
|
||||
this.onMouseMove.cancel();
|
||||
this.hideScrollbars.cancel();
|
||||
this.onWindowResize.cancel();
|
||||
}
|
||||
/**
|
||||
* UnMount mutation observer and delete SimpleBar instance from DOM element
|
||||
*/
|
||||
;
|
||||
|
||||
_proto.unMount = function unMount() {
|
||||
this.removeListeners();
|
||||
this.el.SimpleBar = null;
|
||||
}
|
||||
/**
|
||||
* Recursively walks up the parent nodes looking for this.el
|
||||
*/
|
||||
;
|
||||
|
||||
_proto.isChildNode = function isChildNode(el) {
|
||||
if (el === null) return false;
|
||||
if (el === this.el) return true;
|
||||
return this.isChildNode(el.parentNode);
|
||||
}
|
||||
/**
|
||||
* Check if mouse is within bounds
|
||||
*/
|
||||
;
|
||||
|
||||
_proto.isWithinBounds = function isWithinBounds(bbox) {
|
||||
return this.mouseX >= bbox.left && this.mouseX <= bbox.left + bbox.width && this.mouseY >= bbox.top && this.mouseY <= bbox.top + bbox.height;
|
||||
}
|
||||
/**
|
||||
* Find element children matches query
|
||||
*/
|
||||
;
|
||||
|
||||
_proto.findChild = function findChild(el, query) {
|
||||
var matches = el.matches || el.webkitMatchesSelector || el.mozMatchesSelector || el.msMatchesSelector;
|
||||
return Array.prototype.filter.call(el.children, function (child) {
|
||||
return matches.call(child, query);
|
||||
})[0];
|
||||
};
|
||||
|
||||
return SimpleBar;
|
||||
}();
|
||||
/**
|
||||
* HTML API
|
||||
* Called only in a browser env.
|
||||
*/
|
||||
|
||||
|
||||
SimpleBar.defaultOptions = {
|
||||
autoHide: true,
|
||||
forceVisible: false,
|
||||
classNames: {
|
||||
contentEl: 'simplebar-content',
|
||||
contentWrapper: 'simplebar-content-wrapper',
|
||||
offset: 'simplebar-offset',
|
||||
mask: 'simplebar-mask',
|
||||
wrapper: 'simplebar-wrapper',
|
||||
placeholder: 'simplebar-placeholder',
|
||||
scrollbar: 'simplebar-scrollbar',
|
||||
track: 'simplebar-track',
|
||||
heightAutoObserverWrapperEl: 'simplebar-height-auto-observer-wrapper',
|
||||
heightAutoObserverEl: 'simplebar-height-auto-observer',
|
||||
visible: 'simplebar-visible',
|
||||
horizontal: 'simplebar-horizontal',
|
||||
vertical: 'simplebar-vertical',
|
||||
hover: 'simplebar-hover',
|
||||
dragging: 'simplebar-dragging'
|
||||
},
|
||||
scrollbarMinSize: 25,
|
||||
scrollbarMaxSize: 0,
|
||||
timeout: 1000
|
||||
};
|
||||
|
||||
if (canUseDOM) {
|
||||
SimpleBar.initHtmlApi();
|
||||
}
|
||||
|
||||
export default SimpleBar;
|
||||
//# sourceMappingURL=simplebar.esm.js.map
|
||||
@@ -0,0 +1 @@
|
||||
[data-simplebar]{position:relative;flex-direction:column;flex-wrap:wrap;justify-content:flex-start;align-content:flex-start;align-items:flex-start}.simplebar-wrapper{overflow:hidden;width:inherit;height:inherit;max-width:inherit;max-height:inherit}.simplebar-mask{direction:inherit;position:absolute;overflow:hidden;padding:0;margin:0;left:0;top:0;bottom:0;right:0;width:auto!important;height:auto!important;z-index:0}.simplebar-offset{direction:inherit!important;box-sizing:inherit!important;resize:none!important;position:absolute;top:0;left:0;bottom:0;right:0;padding:0;margin:0;-webkit-overflow-scrolling:touch}.simplebar-content-wrapper{direction:inherit;box-sizing:border-box!important;position:relative;display:block;height:100%;width:auto;visibility:visible;overflow:auto;max-width:100%;max-height:100%}.simplebar-content:after,.simplebar-content:before{content:' ';display:table}.simplebar-placeholder{max-height:100%;max-width:100%;width:100%;pointer-events:none}.simplebar-height-auto-observer-wrapper{box-sizing:inherit!important;height:100%;width:100%;max-width:1px;position:relative;float:left;max-height:1px;overflow:hidden;z-index:-1;padding:0;margin:0;pointer-events:none;flex-grow:inherit;flex-shrink:0;flex-basis:0}.simplebar-height-auto-observer{box-sizing:inherit;display:block;opacity:0;position:absolute;top:0;left:0;height:1000%;width:1000%;min-height:1px;min-width:1px;overflow:hidden;pointer-events:none;z-index:-1}.simplebar-track{z-index:1;position:absolute;right:0;bottom:0;pointer-events:none;overflow:hidden}[data-simplebar].simplebar-dragging .simplebar-content{pointer-events:none;user-select:none;-webkit-user-select:none}[data-simplebar].simplebar-dragging .simplebar-track{pointer-events:all}.simplebar-scrollbar{position:absolute;right:2px;width:7px;min-height:10px}.simplebar-scrollbar:before{position:absolute;content:'';background:#000;border-radius:7px;left:0;right:0;opacity:0;transition:opacity .2s linear}.simplebar-track .simplebar-scrollbar.simplebar-visible:before{opacity:.5;transition:opacity 0s linear}.simplebar-track.simplebar-vertical{top:0;width:11px}.simplebar-track.simplebar-vertical .simplebar-scrollbar:before{top:2px;bottom:2px}.simplebar-track.simplebar-horizontal{left:0;height:11px}.simplebar-track.simplebar-horizontal .simplebar-scrollbar:before{height:100%;left:2px;right:2px}.simplebar-track.simplebar-horizontal .simplebar-scrollbar{right:auto;left:0;top:2px;height:7px;min-height:0;min-width:10px;width:auto}[data-simplebar-direction=rtl] .simplebar-track.simplebar-vertical{right:auto;left:0}.hs-dummy-scrollbar-size{direction:rtl;position:fixed;opacity:0;visibility:hidden;height:500px;width:500px;overflow-y:hidden;overflow-x:scroll}
|
||||
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user