diff --git a/css/OverlayScrollbars.css b/css/OverlayScrollbars.css
index 7c7fbe6..cbe232f 100644
--- a/css/OverlayScrollbars.css
+++ b/css/OverlayScrollbars.css
@@ -2,13 +2,13 @@
* OverlayScrollbars
* https://github.com/KingSora/OverlayScrollbars
*
- * Version: 1.7.2
+ * Version: 1.7.3
*
* Copyright KingSora.
* https://github.com/KingSora
*
* Released under the MIT license.
- * Date: 10.06.2019
+ * Date: 23.06.2019
*/
/*
diff --git a/css/OverlayScrollbars.min.css b/css/OverlayScrollbars.min.css
index 8821ec0..02f819f 100644
--- a/css/OverlayScrollbars.min.css
+++ b/css/OverlayScrollbars.min.css
@@ -2,12 +2,12 @@
* OverlayScrollbars
* https://github.com/KingSora/OverlayScrollbars
*
- * Version: 1.7.2
+ * Version: 1.7.3
*
* Copyright KingSora.
* https://github.com/KingSora
*
* Released under the MIT license.
- * Date: 10.06.2019
+ * Date: 23.06.2019
*/
html.os-html,html.os-html>.os-host{display:block;overflow:hidden;box-sizing:border-box;height:100%!important;width:100%!important;min-width:100%!important;min-height:100%!important;margin:0!important;position:absolute!important}html.os-html>.os-host>.os-padding{position:absolute}body.os-dragging,body.os-dragging *{cursor:default}.os-host,.os-host-textarea{position:relative;overflow:visible!important;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-ms-flex-line-pack:start;align-content:flex-start;-webkit-box-align:start;-ms-flex-align:start;-ms-grid-row-align:flex-start;align-items:flex-start}.os-host-flexbox{overflow:hidden!important;display:-webkit-box;display:-ms-flexbox;display:flex}.os-host-flexbox>.os-size-auto-observer{height:inherit!important}.os-host-flexbox>.os-content-glue{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;-ms-flex-negative:0;flex-shrink:0}.os-host-flexbox>.os-size-auto-observer,.os-host-flexbox>.os-content-glue{min-height:0;min-width:0;-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:1;flex-shrink:1;-ms-flex-preferred-size:auto;flex-basis:auto}#os-dummy-scrollbar-size{position:fixed;opacity:0;-ms-filter:'progid:DXImageTransform.Microsoft.Alpha(Opacity=0)';visibility:hidden;overflow:scroll;height:500px;width:500px}#os-dummy-scrollbar-size>div{width:200%;height:200%;margin:10px 0}#os-dummy-scrollbar-size,.os-viewport{-ms-overflow-style:scrollbar!important}.os-viewport-native-scrollbars-invisible#os-dummy-scrollbar-size,.os-viewport-native-scrollbars-invisible.os-viewport{scrollbar-width:none!important}.os-viewport-native-scrollbars-invisible#os-dummy-scrollbar-size::-webkit-scrollbar,.os-viewport-native-scrollbars-invisible.os-viewport::-webkit-scrollbar,.os-viewport-native-scrollbars-invisible#os-dummy-scrollbar-size::-webkit-scrollbar-corner,.os-viewport-native-scrollbars-invisible.os-viewport::-webkit-scrollbar-corner{display:none!important;width:0px!important;height:0px!important;visibility:hidden!important;background:transparent!important}.os-content-glue{box-sizing:inherit;max-height:100%;max-width:100%;width:100%;pointer-events:none}.os-padding{box-sizing:inherit;direction:inherit;position:absolute;overflow:visible;padding:0;margin:0;left:0;top:0;bottom:0;right:0;width:auto!important;height:auto!important;z-index:1}.os-host-overflow>.os-padding{overflow:hidden}.os-viewport{direction:inherit!important;box-sizing:inherit!important;resize:none!important;outline:none!important;position:absolute;overflow:hidden;top:0;left:0;bottom:0;right:0;padding:0;margin:0;-webkit-overflow-scrolling:touch}.os-content-arrange{position:absolute;z-index:-1;min-height:1px;min-width:1px;pointer-events:none}.os-content{direction:inherit;box-sizing:border-box!important;position:relative;display:block;height:100%;width:100%;height:100%;width:100%;visibility:visible}.os-content:before,.os-content:after{content:'';display:table;width:0;height:0;line-height:0;font-size:0}.os-content>.os-textarea{box-sizing:border-box!important;direction:inherit!important;background:transparent!important;outline:0 none transparent!important;overflow:hidden!important;position:absolute!important;display:block!important;top:0!important;left:0!important;margin:0!important;border-radius:0px!important;float:none!important;-webkit-filter:none!important;filter:none!important;border:none!important;resize:none!important;-webkit-transform:none!important;transform:none!important;max-width:none!important;max-height:none!important;box-shadow:none!important;-webkit-perspective:none!important;perspective:none!important;opacity:1!important;z-index:1!important;clip:auto!important;vertical-align:baseline!important;padding:0}.os-host-rtl>.os-padding>.os-viewport>.os-content>.os-textarea{right:0!important}.os-content>.os-textarea-cover{z-index:-1;pointer-events:none}.os-content>.os-textarea[wrap='off']{white-space:pre!important;margin:0px!important}.os-text-inherit{font-family:inherit;font-size:inherit;font-weight:inherit;font-style:inherit;font-variant:inherit;text-transform:inherit;text-decoration:inherit;text-indent:inherit;text-align:inherit;text-shadow:inherit;text-overflow:inherit;letter-spacing:inherit;word-spacing:inherit;line-height:inherit;unicode-bidi:inherit;direction:inherit;color:inherit;cursor:text}.os-resize-observer,.os-resize-observer-host{box-sizing:inherit;display:block;opacity:0;position:absolute;top:0;left:0;height:100%;width:100%;overflow:hidden;pointer-events:none;z-index:-1}.os-resize-observer-host{padding:inherit;border:inherit;border-color:transparent;border-style:solid;box-sizing:border-box}.os-resize-observer-host:after{content:''}.os-resize-observer-host>.os-resize-observer,.os-resize-observer-host:after{height:200%;width:200%;padding:inherit;border:inherit;margin:0;display:block;box-sizing:content-box}.os-resize-observer.observed,object.os-resize-observer{box-sizing:border-box!important}.os-size-auto-observer{box-sizing:inherit!important;height:100%;width:inherit;max-width:1px;position:relative;float:left;max-height:1px;overflow:hidden;z-index:-1;padding:0;margin:0;pointer-events:none;-webkit-box-flex:inherit;-ms-flex-positive:inherit;flex-grow:inherit;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:0;flex-basis:0%}.os-size-auto-observer>.os-resize-observer{width:1000%;height:1000%;min-height:1px;min-width:1px}.os-resize-observer-item{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;z-index:-1;opacity:0;direction:ltr!important;-webkit-box-flex:0!important;-ms-flex:none!important;flex:none!important}.os-resize-observer-item-final{position:absolute;left:0;top:0;-webkit-transition:none!important;transition:none!important;-webkit-box-flex:0!important;-ms-flex:none!important;flex:none!important}.os-resize-observer{-webkit-animation-duration:0.001s;animation-duration:0.001s;-webkit-animation-name:hs-resize-observer-dummy-animation;animation-name:hs-resize-observer-dummy-animation}.os-host-transition>.os-scrollbar,.os-host-transition>.os-scrollbar-corner{-webkit-transition:opacity 0.3s,visibility 0.3s,top 0.3s,right 0.3s,bottom 0.3s,left 0.3s;transition:opacity 0.3s,visibility 0.3s,top 0.3s,right 0.3s,bottom 0.3s,left 0.3s}html.os-html>.os-host>.os-scrollbar{position:absolute;z-index:999999}.os-scrollbar,.os-scrollbar-corner{position:absolute;opacity:1;-ms-filter:'progid:DXImageTransform.Microsoft.Alpha(Opacity=100)';z-index:1}.os-scrollbar-corner{bottom:0;right:0}.os-scrollbar{pointer-events:none}.os-scrollbar-track{pointer-events:auto;position:relative;height:100%;width:100%;padding:0!important;border:none!important}.os-scrollbar-handle{pointer-events:auto;position:absolute;width:100%;height:100%}.os-scrollbar-handle-off,.os-scrollbar-track-off{pointer-events:none}.os-scrollbar.os-scrollbar-unusable,.os-scrollbar.os-scrollbar-unusable *{pointer-events:none!important}.os-scrollbar.os-scrollbar-unusable .os-scrollbar-handle{opacity:0!important}.os-scrollbar-horizontal{bottom:0;left:0}.os-scrollbar-vertical{top:0;right:0}.os-host-rtl>.os-scrollbar-horizontal{right:0}.os-host-rtl>.os-scrollbar-vertical{right:auto;left:0}.os-host-rtl>.os-scrollbar-corner{right:auto;left:0}.os-scrollbar-auto-hidden,.os-padding + .os-scrollbar-corner,.os-host-resize-disabled.os-host-scrollbar-horizontal-hidden>.os-scrollbar-corner,.os-host-scrollbar-horizontal-hidden>.os-scrollbar-horizontal,.os-host-resize-disabled.os-host-scrollbar-vertical-hidden>.os-scrollbar-corner,.os-host-scrollbar-vertical-hidden>.os-scrollbar-vertical,.os-scrollbar-horizontal.os-scrollbar-auto-hidden + .os-scrollbar-vertical + .os-scrollbar-corner,.os-scrollbar-horizontal + .os-scrollbar-vertical.os-scrollbar-auto-hidden + .os-scrollbar-corner,.os-scrollbar-horizontal.os-scrollbar-auto-hidden + .os-scrollbar-vertical.os-scrollbar-auto-hidden + .os-scrollbar-corner{opacity:0;visibility:hidden;pointer-events:none}.os-scrollbar-corner-resize-both{cursor:nwse-resize}.os-host-rtl>.os-scrollbar-corner-resize-both{cursor:nesw-resize}.os-scrollbar-corner-resize-horizontal{cursor:ew-resize}.os-scrollbar-corner-resize-vertical{cursor:ns-resize}.os-dragging .os-scrollbar-corner.os-scrollbar-corner-resize{cursor:default}.os-host-resize-disabled.os-host-scrollbar-horizontal-hidden>.os-scrollbar-vertical{top:0;bottom:0}.os-host-resize-disabled.os-host-scrollbar-vertical-hidden>.os-scrollbar-horizontal,.os-host-rtl.os-host-resize-disabled.os-host-scrollbar-vertical-hidden>.os-scrollbar-horizontal{right:0;left:0}.os-scrollbar:hover,.os-scrollbar-corner.os-scrollbar-corner-resize{opacity:1!important;visibility:visible!important}.os-scrollbar-corner.os-scrollbar-corner-resize{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+PHN2ZyAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIgICB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgICB3aWR0aD0iMTAiICAgaGVpZ2h0PSIxMCIgICB2ZXJzaW9uPSIxLjEiPiAgPGcgICAgIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAsLTEwNDIuMzYyMikiICAgICBzdHlsZT0iZGlzcGxheTppbmxpbmUiPiAgICA8cGF0aCAgICAgICBzdHlsZT0iZmlsbDojMDAwMDAwO2ZpbGwtb3BhY2l0eTowLjQ5NDExNzY1O2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTpub25lIiAgICAgICBkPSJtIDcuNDI0MjE4NywxMDQyLjM2MjIgYyAtMC43MjM1NzkyLDAgLTEuMzEwMTU2MiwwLjU4NjYgLTEuMzEwMTU2MiwxLjMxMDIgMCwwLjI5OSAwLjEwNDM0MTksMC41NzEgMC4yNzI5NDkyLDAuNzkxNSAwLjIwOTEwMjQsMC4xNDEzIDAuNDY1NjIwNiwwLjIxODQgMC43MzY5NjI5LDAuMjE4NCAwLjcyMzU3OTMsMCAxLjMxMDE1NjMsLTAuNTg2NiAxLjMxMDE1NjMsLTEuMzEwMiAwLC0wLjI3MTMgLTAuMDc3MDkzLC0wLjUyNzggLTAuMjE4MzU5NCwtMC43MzcgLTAuMjIwNDk0MSwtMC4xNjg2IC0wLjQ5MjU0NDMsLTAuMjcyOSAtMC43OTE1NTI4LC0wLjI3MjkgeiBtIDAsMy4wODQzIGMgLTAuNzIzNTc5MiwwIC0xLjMxMDE1NjIsMC41ODY2IC0xLjMxMDE1NjIsMS4zMTAyIDAsMC4yOTkgMC4xMDQzNDE5LDAuNTcxIDAuMjcyOTQ5MiwwLjc5MTUgMC4yMDkxMDI0LDAuMTQxMyAwLjQ2NTYyMDYsMC4yMTg0IDAuNzM2OTYyOSwwLjIxODQgMC43MjM1NzkzLDAgMS4zMTAxNTYzLC0wLjU4NjYgMS4zMTAxNTYzLC0xLjMxMDIgMCwtMC4yNzEzIC0wLjA3NzA5MywtMC41Mjc4IC0wLjIxODM1OTQsLTAuNzM2OSAtMC4yMjA0OTQxLC0wLjE2ODYgLTAuNDkyNTQ0MywtMC4yNzMgLTAuNzkxNTUyOCwtMC4yNzMgeiBtIC0zLjA4NDMyNjEsMCBjIC0wLjcyMzU3OTMsMCAtMS4zMTAxNTYzLDAuNTg2NiAtMS4zMTAxNTYzLDEuMzEwMiAwLDAuMjk5IDAuMTA0MzQxOSwwLjU3MSAwLjI3Mjk0OTIsMC43OTE1IDAuMjA5MTAyNCwwLjE0MTMgMC40NjU2MjA3LDAuMjE4NCAwLjczNjk2MjksMC4yMTg0IDAuNzIzNTc5MywwIDEuMzEwMTU2MywtMC41ODY2IDEuMzEwMTU2MywtMS4zMTAyIDAsLTAuMjcxMyAtMC4wNzcwOTMsLTAuNTI3OCAtMC4yMTgzNTk0LC0wLjczNjkgLTAuMjIwNDk0LC0wLjE2ODYgLTAuNDkyNTQ0MiwtMC4yNzMgLTAuNzkxNTUyNywtMC4yNzMgeiBtIC0zLjAyOTczNjQsMy4wMjk4IEMgMC41ODY1NzY5MywxMDQ4LjQ3NjMgMCwxMDQ5LjA2MjggMCwxMDQ5Ljc4NjQgYyAwLDAuMjk5IDAuMTA0MzQxOSwwLjU3MTEgMC4yNzI5NDkyMiwwLjc5MTYgMC4yMDkxMDIyOSwwLjE0MTIgMC40NjU2MjA2NSwwLjIxODMgMC43MzY5NjI4OCwwLjIxODMgMC43MjM1NzkzLDAgMS4zMTAxNTYzLC0wLjU4NjUgMS4zMTAxNTYzLC0xLjMxMDEgMCwtMC4yNzE0IC0wLjA3NzA5MywtMC41Mjc5IC0wLjIxODM1OTQsLTAuNzM3IC0wLjIyMDQ5NDEsLTAuMTY4NiAtMC40OTI1NDQzLC0wLjI3MjkgLTAuNzkxNTUyOCwtMC4yNzI5IHogbSAzLjAyOTczNjQsMCBjIC0wLjcyMzU3OTMsMCAtMS4zMTAxNTYzLDAuNTg2NSAtMS4zMTAxNTYzLDEuMzEwMSAwLDAuMjk5IDAuMTA0MzQxOSwwLjU3MTEgMC4yNzI5NDkyLDAuNzkxNiAwLjIwOTEwMjQsMC4xNDEyIDAuNDY1NjIwNywwLjIxODMgMC43MzY5NjI5LDAuMjE4MyAwLjcyMzU3OTMsMCAxLjMxMDE1NjMsLTAuNTg2NSAxLjMxMDE1NjMsLTEuMzEwMSAwLC0wLjI3MTQgLTAuMDc3MDkzLC0wLjUyNzkgLTAuMjE4MzU5NCwtMC43MzcgLTAuMjIwNDk0LC0wLjE2ODYgLTAuNDkyNTQ0MiwtMC4yNzI5IC0wLjc5MTU1MjcsLTAuMjcyOSB6IG0gMy4wODQzMjYxLDAgYyAtMC43MjM1NzkyLDAgLTEuMzEwMTU2MiwwLjU4NjUgLTEuMzEwMTU2MiwxLjMxMDEgMCwwLjI5OSAwLjEwNDM0MTksMC41NzExIDAuMjcyOTQ5MiwwLjc5MTYgMC4yMDkxMDI0LDAuMTQxMiAwLjQ2NTYyMDYsMC4yMTgzIDAuNzM2OTYyOSwwLjIxODMgMC43MjM1NzkzLDAgMS4zMTAxNTYzLC0wLjU4NjUgMS4zMTAxNTYzLC0xLjMxMDEgMCwtMC4yNzE0IC0wLjA3NzA5MywtMC41Mjc5IC0wLjIxODM1OTQsLTAuNzM3IC0wLjIyMDQ5NDEsLTAuMTY4NiAtMC40OTI1NDQzLC0wLjI3MjkgLTAuNzkxNTUyOCwtMC4yNzI5IHoiLz4gIDwvZz4gIDxnICAgICBzdHlsZT0iZGlzcGxheTppbmxpbmUiPiAgICA8cGF0aCAgICAgICBzdHlsZT0iZmlsbDojZmZmZmZmO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTpub25lIiAgICAgICBkPSJtIDguMjE1NzcxNSwwLjI3Mjk0OTIyIGMgMC4xNDEyNjY3LDAuMjA5MTAyMjkgMC4yMTgzNTk0LDAuNDY1NjIwNjUgMC4yMTgzNTk0LDAuNzM2OTYyODggMCwwLjcyMzU3OTMgLTAuNTg2NTc3LDEuMzEwMTU2MyAtMS4zMTAxNTYzLDEuMzEwMTU2MyAtMC4yNzEzNDIzLDAgLTAuNTI3ODYwNSwtMC4wNzcwOTMgLTAuNzM2OTYyOSwtMC4yMTgzNTk0IDAuMjM5NDEwNCwwLjMxMzA4NTkgMC42MTI2MzYyLDAuNTE4NjAzNSAxLjAzNzIwNywwLjUxODYwMzUgMC43MjM1NzkzLDAgMS4zMTAxNTYzLC0wLjU4NjU3NyAxLjMxMDE1NjMsLTEuMzEwMTU2MyAwLC0wLjQyNDU3MDc2IC0wLjIwNTUxNzYsLTAuNzk3Nzk2NTkgLTAuNTE4NjAzNSwtMS4wMzcyMDY5OCB6IG0gMCwzLjA4NDMyNjE4IGMgMC4xNDEyNjY3LDAuMjA5MTAyMyAwLjIxODM1OTQsMC40NjU2MjA2IDAuMjE4MzU5NCwwLjczNjk2MjkgMCwwLjcyMzU3OTMgLTAuNTg2NTc3LDEuMzEwMTU2MiAtMS4zMTAxNTYzLDEuMzEwMTU2MiAtMC4yNzEzNDIzLDAgLTAuNTI3ODYwNSwtMC4wNzcwOTMgLTAuNzM2OTYyOSwtMC4yMTgzNTkzIDAuMjM5NDEwNCwwLjMxMzA4NTkgMC42MTI2MzYyLDAuNTE4NjAzNSAxLjAzNzIwNywwLjUxODYwMzUgMC43MjM1NzkzLDAgMS4zMTAxNTYzLC0wLjU4NjU3NyAxLjMxMDE1NjMsLTEuMzEwMTU2MyAwLC0wLjQyNDU3MDggLTAuMjA1NTE3NiwtMC43OTc3OTY3IC0wLjUxODYwMzUsLTEuMDM3MjA3IHogbSAtMy4wODQzMjYyLDAgYyAwLjE0MTI2NjcsMC4yMDkxMDIzIDAuMjE4MzU5NCwwLjQ2NTYyMDYgMC4yMTgzNTk0LDAuNzM2OTYyOSAwLDAuNzIzNTc5MyAtMC41ODY1NzcsMS4zMTAxNTYyIC0xLjMxMDE1NjMsMS4zMTAxNTYyIC0wLjI3MTM0MjIsMCAtMC41Mjc4NjA1LC0wLjA3NzA5MyAtMC43MzY5NjI5LC0wLjIxODM1OTMgMC4yMzk0MTA0LDAuMzEzMDg1OSAwLjYxMjYzNjMsMC41MTg2MDM1IDEuMDM3MjA3MSwwLjUxODYwMzUgMC43MjM1NzkzLDAgMS4zMTAxNTYyLC0wLjU4NjU3NyAxLjMxMDE1NjIsLTEuMzEwMTU2MyAwLC0wLjQyNDU3MDggLTAuMjA1NTE3NSwtMC43OTc3OTY3IC0wLjUxODYwMzUsLTEuMDM3MjA3IHogTSAyLjEwMTcwOSw2LjM4NzAxMTcgYyAwLjE0MTI2NjcsMC4yMDkxMDI0IDAuMjE4MzU5NCwwLjQ2NTYyMDYgMC4yMTgzNTk0LDAuNzM2OTYyOSAwLDAuNzIzNTc5MyAtMC41ODY1NzcsMS4zMTAxNTYzIC0xLjMxMDE1NjMsMS4zMTAxNTYzIC0wLjI3MTM0MjIzLDAgLTAuNTI3ODYwNTksLTAuMDc3MDkzIC0wLjczNjk2Mjg4LC0wLjIxODM1OTQgMC4yMzk0MTAzOSwwLjMxMzA4NTkgMC42MTI2MzYyMiwwLjUxODYwMzUgMS4wMzcyMDY5OCwwLjUxODYwMzUgMC43MjM1NzkzLDAgMS4zMTAxNTYzLC0wLjU4NjU3NyAxLjMxMDE1NjMsLTEuMzEwMTU2MyAwLC0wLjQyNDU3MDggLTAuMjA1NTE3NiwtMC43OTc3OTY2IC0wLjUxODYwMzUsLTEuMDM3MjA3IHogbSAzLjAyOTczNjMsMCBjIDAuMTQxMjY2NywwLjIwOTEwMjQgMC4yMTgzNTk0LDAuNDY1NjIwNiAwLjIxODM1OTQsMC43MzY5NjI5IDAsMC43MjM1NzkzIC0wLjU4NjU3NywxLjMxMDE1NjMgLTEuMzEwMTU2MywxLjMxMDE1NjMgLTAuMjcxMzQyMiwwIC0wLjUyNzg2MDUsLTAuMDc3MDkzIC0wLjczNjk2MjksLTAuMjE4MzU5NCAwLjIzOTQxMDQsMC4zMTMwODU5IDAuNjEyNjM2MywwLjUxODYwMzUgMS4wMzcyMDcxLDAuNTE4NjAzNSAwLjcyMzU3OTMsMCAxLjMxMDE1NjIsLTAuNTg2NTc3IDEuMzEwMTU2MiwtMS4zMTAxNTYzIDAsLTAuNDI0NTcwOCAtMC4yMDU1MTc1LC0wLjc5Nzc5NjYgLTAuNTE4NjAzNSwtMS4wMzcyMDcgeiBtIDMuMDg0MzI2MiwwIGMgMC4xNDEyNjY3LDAuMjA5MTAyNCAwLjIxODM1OTQsMC40NjU2MjA2IDAuMjE4MzU5NCwwLjczNjk2MjkgMCwwLjcyMzU3OTMgLTAuNTg2NTc3LDEuMzEwMTU2MyAtMS4zMTAxNTYzLDEuMzEwMTU2MyAtMC4yNzEzNDIzLDAgLTAuNTI3ODYwNSwtMC4wNzcwOTMgLTAuNzM2OTYyOSwtMC4yMTgzNTk0IDAuMjM5NDEwNCwwLjMxMzA4NTkgMC42MTI2MzYyLDAuNTE4NjAzNSAxLjAzNzIwNywwLjUxODYwMzUgMC43MjM1NzkzLDAgMS4zMTAxNTYzLC0wLjU4NjU3NyAxLjMxMDE1NjMsLTEuMzEwMTU2MyAwLC0wLjQyNDU3MDggLTAuMjA1NTE3NiwtMC43OTc3OTY2IC0wLjUxODYwMzUsLTEuMDM3MjA3IHoiIC8+ICA8L2c+PC9zdmc+);background-repeat:no-repeat;background-position:100% 100%;pointer-events:auto!important}.os-host-rtl>.os-scrollbar-corner.os-scrollbar-corner-resize{-webkit-transform:scale(-1,1);transform:scale(-1,1)}.os-host-overflow{overflow:hidden!important}@-webkit-keyframes hs-resize-observer-dummy-animation{from{z-index:0}to{z-index:-1}}@keyframes hs-resize-observer-dummy-animation{from{z-index:0}to{z-index:-1}}.os-theme-none>.os-scrollbar-horizontal,.os-theme-none>.os-scrollbar-vertical,.os-theme-none>.os-scrollbar-corner{display:none!important}.os-theme-none>.os-scrollbar-corner-resize{display:block!important;min-width:10px;min-height:10px}.os-theme-dark>.os-scrollbar-horizontal,.os-theme-light>.os-scrollbar-horizontal{right:10px;height:10px}.os-theme-dark>.os-scrollbar-vertical,.os-theme-light>.os-scrollbar-vertical{bottom:10px;width:10px}.os-theme-dark.os-host-rtl>.os-scrollbar-horizontal,.os-theme-light.os-host-rtl>.os-scrollbar-horizontal{left:10px;right:0}.os-theme-dark>.os-scrollbar-corner,.os-theme-light>.os-scrollbar-corner{height:10px;width:10px}.os-theme-dark>.os-scrollbar-corner,.os-theme-light>.os-scrollbar-corner{background-color:transparent}.os-theme-dark>.os-scrollbar,.os-theme-light>.os-scrollbar{padding:2px;box-sizing:border-box;background:transparent}.os-theme-dark>.os-scrollbar.os-scrollbar-unusable,.os-theme-light>.os-scrollbar.os-scrollbar-unusable{background:transparent}.os-theme-dark>.os-scrollbar>.os-scrollbar-track,.os-theme-light>.os-scrollbar>.os-scrollbar-track{background:transparent}.os-theme-dark>.os-scrollbar-horizontal>.os-scrollbar-track>.os-scrollbar-handle,.os-theme-light>.os-scrollbar-horizontal>.os-scrollbar-track>.os-scrollbar-handle{min-width:30px}.os-theme-dark>.os-scrollbar-vertical>.os-scrollbar-track>.os-scrollbar-handle,.os-theme-light>.os-scrollbar-vertical>.os-scrollbar-track>.os-scrollbar-handle{min-height:30px}.os-theme-dark.os-host-transition>.os-scrollbar>.os-scrollbar-track>.os-scrollbar-handle,.os-theme-light.os-host-transition>.os-scrollbar>.os-scrollbar-track>.os-scrollbar-handle{-webkit-transition:background-color 0.3s;transition:background-color 0.3s}.os-theme-dark>.os-scrollbar>.os-scrollbar-track>.os-scrollbar-handle,.os-theme-light>.os-scrollbar>.os-scrollbar-track>.os-scrollbar-handle,.os-theme-dark>.os-scrollbar>.os-scrollbar-track,.os-theme-light>.os-scrollbar>.os-scrollbar-track{border-radius:10px}.os-theme-dark>.os-scrollbar>.os-scrollbar-track>.os-scrollbar-handle{background:rgba(0,0,0,.4)}.os-theme-light>.os-scrollbar>.os-scrollbar-track>.os-scrollbar-handle{background:rgba(255,255,255,.4)}.os-theme-dark>.os-scrollbar:hover>.os-scrollbar-track>.os-scrollbar-handle{background:rgba(0,0,0,.55)}.os-theme-light>.os-scrollbar:hover>.os-scrollbar-track>.os-scrollbar-handle{background:rgba(255,255,255,.55)}.os-theme-dark>.os-scrollbar>.os-scrollbar-track>.os-scrollbar-handle.active{background:rgba(0,0,0,.7)}.os-theme-light>.os-scrollbar>.os-scrollbar-track>.os-scrollbar-handle.active{background:rgba(255,255,255,.7)}.os-theme-dark>.os-scrollbar-horizontal .os-scrollbar-handle:before,.os-theme-dark>.os-scrollbar-vertical .os-scrollbar-handle:before,.os-theme-light>.os-scrollbar-horizontal .os-scrollbar-handle:before,.os-theme-light>.os-scrollbar-vertical .os-scrollbar-handle:before{content:'';position:absolute;left:0;right:0;top:0;bottom:0;display:block}.os-theme-dark.os-host-scrollbar-horizontal-hidden>.os-scrollbar-horizontal .os-scrollbar-handle:before,.os-theme-dark.os-host-scrollbar-vertical-hidden>.os-scrollbar-vertical .os-scrollbar-handle:before,.os-theme-light.os-host-scrollbar-horizontal-hidden>.os-scrollbar-horizontal .os-scrollbar-handle:before,.os-theme-light.os-host-scrollbar-vertical-hidden>.os-scrollbar-vertical .os-scrollbar-handle:before{display:none}.os-theme-dark>.os-scrollbar-horizontal .os-scrollbar-handle:before,.os-theme-light>.os-scrollbar-horizontal .os-scrollbar-handle:before{top:-6px;bottom:-2px}.os-theme-dark>.os-scrollbar-vertical .os-scrollbar-handle:before,.os-theme-light>.os-scrollbar-vertical .os-scrollbar-handle:before{left:-6px;right:-2px}.os-host-rtl.os-theme-dark>.os-scrollbar-vertical .os-scrollbar-handle:before,.os-host-rtl.os-theme-light>.os-scrollbar-vertical .os-scrollbar-handle:before{right:-6px;left:-2px}
\ No newline at end of file
diff --git a/js/OverlayScrollbars.js b/js/OverlayScrollbars.js
index fb3e69a..8527ef3 100644
--- a/js/OverlayScrollbars.js
+++ b/js/OverlayScrollbars.js
@@ -2,13 +2,13 @@
* OverlayScrollbars
* https://github.com/KingSora/OverlayScrollbars
*
- * Version: 1.7.2
+ * Version: 1.7.3
*
* Copyright KingSora.
* https://github.com/KingSora
*
* Released under the MIT license.
- * Date: 10.06.2019
+ * Date: 23.06.2019
*/
(function (global, factory) {
@@ -1665,6 +1665,7 @@
var scrollbarDummyElement = FRAMEWORK('
');
var scrollbarDummyElement0 = scrollbarDummyElement[0];
var dummyContainerChild = FRAMEWORK(scrollbarDummyElement.children('div').eq(0));
+ var getCptStyle = window.getComputedStyle;
bodyElement.append(scrollbarDummyElement);
scrollbarDummyElement.hide().show(); //fix IE8 bug (incorrect measuring)
@@ -1689,7 +1690,7 @@
//scrollbarDummyElement.css(strOverflow, strHidden).hide().css(strOverflow, strScroll).show();
//return (scrollbarDummyElement0[LEXICON.oH] - scrollbarDummyElement0[LEXICON.cH]) === 0 && (scrollbarDummyElement0[LEXICON.oW] - scrollbarDummyElement0[LEXICON.cW]) === 0;
- return scrollbarDummyElement.css('scrollbar-width') === 'none' || window.getComputedStyle(scrollbarDummyElement0, '::-webkit-scrollbar').getPropertyValue('display') === 'none';
+ return scrollbarDummyElement.css('scrollbar-width') === 'none' || (getCptStyle ? getCptStyle(scrollbarDummyElement0, '::-webkit-scrollbar').getPropertyValue('display') === 'none' : false);
})(),
overlayScrollbarDummySize : { x: 30, y: 30 },
msie : (function() {
@@ -2211,6 +2212,8 @@
//MutationObserver:
var _mutationObserverHost;
var _mutationObserverContent;
+ var _mutationObserverHostCallback;
+ var _mutationObserverContentCallback;
var _mutationObserversConnected;
//textarea:
@@ -2520,67 +2523,72 @@
var sizeAuto;
var action;
- _mutationObserverHost = new mutationObserver(function (mutations) {
- if (!_initialized || _isSleeping)
- return;
-
+ _mutationObserverHostCallback = function(mutations) {
var doUpdate = false;
var mutation;
- FRAMEWORK.each(mutations, function () {
- mutation = this;
- mutationTarget = mutation.target;
- mutationAttrName = mutation.attributeName;
+
+ if (_initialized && !_isSleeping) {
+ FRAMEWORK.each(mutations, function () {
+ mutation = this;
+ mutationTarget = mutation.target;
+ mutationAttrName = mutation.attributeName;
- if (mutationAttrName === LEXICON.c)
- doUpdate = hostClassNamesChanged(mutation.oldValue, mutationTarget.className);
- else if (mutationAttrName === LEXICON.s)
- doUpdate = mutation.oldValue !== mutationTarget[LEXICON.s].cssText;
- else
- doUpdate = true;
+ if (mutationAttrName === LEXICON.c)
+ doUpdate = hostClassNamesChanged(mutation.oldValue, mutationTarget.className);
+ else if (mutationAttrName === LEXICON.s)
+ doUpdate = mutation.oldValue !== mutationTarget[LEXICON.s].cssText;
+ else
+ doUpdate = true;
+
+ if (doUpdate)
+ return false;
+ });
if (doUpdate)
- return false;
- });
-
- if (doUpdate)
- _base.update(_strAuto);
- });
- _mutationObserverContent = new mutationObserver(function (mutations) {
- if (!_initialized || _isSleeping)
- return;
-
+ _base.update(_strAuto);
+ }
+ return doUpdate;
+ };
+ _mutationObserverContentCallback = function (mutations) {
var doUpdate = false;
var mutation;
- FRAMEWORK.each(mutations, function () {
- mutation = this;
- doUpdate = isUnknownMutation(mutation);
- return !doUpdate;
- });
+
+ if (_initialized && !_isSleeping) {
+ FRAMEWORK.each(mutations, function () {
+ mutation = this;
+ doUpdate = isUnknownMutation(mutation);
+ return !doUpdate;
+ });
- if (doUpdate) {
- now = COMPATIBILITY.now();
- sizeAuto = (_heightAutoCache || _widthAutoCache);
- action = function () {
- if(!_destroyed) {
- contentLastUpdate = now;
+ if (doUpdate) {
+ now = COMPATIBILITY.now();
+ sizeAuto = (_heightAutoCache || _widthAutoCache);
+ action = function () {
+ if(!_destroyed) {
+ contentLastUpdate = now;
- //if cols, rows or wrap attr was changed
- if (_isTextarea)
- textareaUpdate();
+ //if cols, rows or wrap attr was changed
+ if (_isTextarea)
+ textareaUpdate();
- if (sizeAuto)
- update();
- else
- _base.update(_strAuto);
- }
- };
- clearTimeout(contentTimeout);
- if (mutationObserverContentLag <= 0 || now - contentLastUpdate > mutationObserverContentLag || !sizeAuto)
- action();
- else
- contentTimeout = setTimeout(action, mutationObserverContentLag);
+ if (sizeAuto)
+ update();
+ else
+ _base.update(_strAuto);
+ }
+ };
+ clearTimeout(contentTimeout);
+ if (mutationObserverContentLag <= 0 || now - contentLastUpdate > mutationObserverContentLag || !sizeAuto)
+ action();
+ else
+ contentTimeout = setTimeout(action, mutationObserverContentLag);
+ }
}
- });
+ return doUpdate;
+ }
+
+ _mutationObserverHost = new mutationObserver(_mutationObserverHostCallback);
+ _mutationObserverContent = new mutationObserver(_mutationObserverContentCallback);
}
}
@@ -2601,7 +2609,7 @@
subtree: !_isTextarea,
childList: !_isTextarea,
characterData: !_isTextarea,
- attributeFilter: _isTextarea ? ['wrap', 'cols', 'rows'] : [LEXICON.i, LEXICON.c, LEXICON.s]
+ attributeFilter: _isTextarea ? ['wrap', 'cols', 'rows'] : [LEXICON.i, LEXICON.c, LEXICON.s, 'open']
});
_mutationObserversConnected = true;
@@ -2620,8 +2628,21 @@
}
}
+ /**
+ * Disconnects the MutationObservers if they are supported.
+ * @returns {boolean|undefined} True if the MutationObservers needed to be synchronized, false or undefined otherwise.
+ */
+ function synchronizeMutationObservers() {
+ if(_mutationObserversConnected) {
+ var mutHost = _mutationObserverHostCallback(_mutationObserverHost.takeRecords());
+ var mutContent = _mutationObserverContentCallback(_mutationObserverContent.takeRecords());
- //==== Events of elements ====//
+ return mutHost || mutContent;
+ }
+ }
+
+
+ //==== Events of elements ====//
/**
* This method gets called every time the host element gets resized. IMPORTANT: Padding changes are detected too!!
@@ -2988,7 +3009,7 @@
return sizeIsAffected;
}
-
+
//==== Update ====//
/**
@@ -3057,7 +3078,7 @@
* @param hostSizeChanged True if this method was called due to a host size change.
* @param contentSizeChanged True if this method was called due to a content size change.
* @param force True if every property shall be updated and the cache shall be ignored.
- * @param preventSwallowing True if this method shall be executed event if it could be swallowed.
+ * @param preventSwallowing True if this method shall be executed even if it could be swallowed.
*/
function update(hostSizeChanged, contentSizeChanged, force, preventSwallowing) {
var now = COMPATIBILITY.now();
@@ -4115,7 +4136,7 @@
dispatchCallback("onUpdated", { forced: force });
}
-
+
//==== Options ====//
/**
@@ -5088,8 +5109,8 @@
function getHostElementInvertedScale() {
var rect = _paddingElementNative.getBoundingClientRect();
return {
- x : _supportTransform ? 1 / (MATH.round(rect.width) / _paddingElementNative[LEXICON.oW]) : 1,
- y : _supportTransform ? 1 / (MATH.round(rect.height) / _paddingElementNative[LEXICON.oH]) : 1
+ x : _supportTransform ? 1 / (MATH.round(rect.width) / _paddingElementNative[LEXICON.oW]) || 1 : 1,
+ y : _supportTransform ? 1 / (MATH.round(rect.height) / _paddingElementNative[LEXICON.oH]) || 1 : 1
};
}
@@ -5398,18 +5419,18 @@
var isString = type(force) == TYPES.s;
var imgElementSelector = 'img';
var imgElementLoadEvent = 'load';
- var isPlus = isString && force.slice(-1) == '+';
+
if(isString) {
- if (force.indexOf(_strAuto) === 0) {
+ if (force === _strAuto) {
attrsChanged = meaningfulAttrsChanged();
contentSizeC = updateAutoContentSizeChanged();
- if (attrsChanged || contentSizeC || isPlus)
- update(false, contentSizeC, false, isPlus);
+ if (attrsChanged || contentSizeC)
+ update(false, contentSizeC, false);
}
else if (force === 'zoom')
update(true, true);
}
- else {
+ else if(!synchronizeMutationObservers() || force) {
force = _isSleeping || force;
_isSleeping = false;
update(false, false, force, true);
@@ -5421,6 +5442,7 @@
FRAMEWORK(el).off(imgElementLoadEvent, imgOnLoad).on(imgElementLoadEvent, imgOnLoad);
});
}
+
};
/**
@@ -5628,7 +5650,9 @@
isRTLNormalized: _normalizeRTLCache
};
}
-
+
+ synchronizeMutationObservers();
+
var normalizeRTL = _normalizeRTLCache;
var coordinatesXAxisProps = [_strX, _strLeft, 'l'];
var coordinatesYAxisProps = [_strY, _strTop, 't'];
@@ -5691,8 +5715,6 @@
};
var getFinalScroll = function (isX, rawScroll) {
var isString = type(rawScroll) == TYPES.s;
- if(isString)
- _base.update(_strAuto + '+');
var operator;
var amount;
var scrollInfo = isX ? _scrollHorizontalInfo : _scrollVerticalInfo;
@@ -5822,8 +5844,6 @@
if (finalElement[strLength] === 0)
return;
- _base.update(_strAuto + '+');
-
//margin can be [ boolean, number, array of 2, array of 4, object ]
if (marginType == TYPES.n || marginType == TYPES.b)
margin = generateMargin([margin, margin, margin, margin]);
diff --git a/js/OverlayScrollbars.min.js b/js/OverlayScrollbars.min.js
index 78ed0cb..4c110dc 100644
--- a/js/OverlayScrollbars.min.js
+++ b/js/OverlayScrollbars.min.js
@@ -2,12 +2,12 @@
* OverlayScrollbars
* https://github.com/KingSora/OverlayScrollbars
*
- * Version: 1.7.2
+ * Version: 1.7.3
*
* Copyright KingSora.
* https://github.com/KingSora
*
* Released under the MIT license.
- * Date: 10.06.2019
+ * Date: 23.06.2019
*/
-!function(n,t){"function"==typeof define&&define.amd?define(function(){return t(n,n.document,undefined)}):"object"==typeof module&&"object"==typeof module.exports?module.exports=t(n,n.document,undefined):t(n,n.document,undefined)}("undefined"!=typeof window?window:this,function(ht,dt,Se){"use strict";var a,e,o,pt="OverlayScrollbars",bt="object",mt="function",wt="array",gt="string",yt="boolean",xt="number",p="undefined",h="null",Ot="class",_e="style",St="id",_t="length",zt="prototype",ze="offsetHeight",Te="clientHeight",ke="scrollHeight",Ie="offsetWidth",Ce="clientWidth",Ae="scrollWidth",Tt={u:{},v:{},m:["-webkit-","-moz-","-o-","-ms-"],g:["WebKit","Moz","O","MS"],O:function(n){var t=this.v;if(t[n])return t[n];for(var r,i,e=this.m,o=this.S(n),u=dt.createElement("div")[_e],f=0,a=0;f'),o=_[0],i=Le(_.children("div").eq(0));S.append(_),_.hide().show();var t,r,u,f,a,c,s,l,v,h=z(o),d={x:0===h.x,y:0===h.y};function z(n){return{x:n[ze]-n[Te],y:n[Ie]-n[Ce]}}Le.extend(O,{defaultOptions:n,autoUpdateLoop:!1,autoUpdateRecommended:!He.mO(),nativeScrollbarSize:h,nativeScrollbarIsOverlaid:d,nativeScrollbarStyling:(_.addClass("os-viewport-native-scrollbars-invisible"),"none"===_.css("scrollbar-width")||"none"===ht.getComputedStyle(o,"::-webkit-scrollbar").getPropertyValue("display")),overlayScrollbarDummySize:{x:30,y:30},msie:(r=ht.navigator.userAgent,u="indexOf",f="substring",a=r[u]("MSIE "),c=r[u]("Trident/"),s=r[u]("Edge/"),l=r[u]("rv:"),v=parseInt,0e&&(t.update("auto"),h[a]=new Date(o+=e)),n=Ne.max(1,Ne.min(n,e)));p=n}}else p=33};this.add=function(n){-1===Le.inArray(n,v)&&(v.push(n),h.push(He.now()),0/g,(l?"-":Ti)+Ci)[v](/px/g,Ti)[v](/%/g," * "+c*(s&&Ht.n?-1:1)/100)[v](/vw/g," * "+vi.w)[v](/vh/g," * "+vi.h),de(isNaN(t)?de(h(t),!0).toFixed():t)):t)!==Se&&!isNaN(i)&&at(i)==xt){var d=y&&s,p=a*(d&&Ht.n?-1:1),b=d&&Ht.i,m=d&&Ht.n;switch(p=b?c-p:p,r){case"+=":o=p+i;break;case"-=":o=p-i;break;case"*=":o=p*i;break;case"/=":o=p/i;break;default:o=i}o=b?c-o:o,o*=m?-1:1,o=s&&Ht.n?Ne.min(0,Ne.max(c,o)):Ne.max(0,Ne.min(c,o))}return o===a?Se:o},U=function(n,t,r,i){var e,o,u=[r,r],f=at(n);if(f==t)n=[n,n];else if(f==wt){if(2<(e=n[N])||e<1)n=u;else for(1===e&&(n[1]=r),l=0;l=t.left&&n.clientX<=t.right&&n.clientY>=t.top&&n.clientY<=t.bottom||Xn(),(ri||ii)&&fe(!1)}}function E(n){e=or[I](),e=isNaN(e)?0:e,($t&&O&&!Ht.n||!$t)&&(e=e<0?0:e),z=et()[k],_=a(n),Q=!c(u),xe(M,Mn),xe(r.en,o),xe(r.an,o),D.on(J,h).on(K,N).on(en,$n),!L&&p||He.prvD(n),He.stpP(n)}r.en.on(Ri,function(n){H(n)&&E(n)}),r.un.on(Ri,function(n){if(H(n)){var h,d=Ne.round(vi[r.W]),p=r.un.offset()[r.j],t=n.ctrlKey,b=n.shiftKey,m=b&&t,w=!0,g=function(n){Q&&ce(O,n)},y=function(){g(),E(n)},x=function(){if(!Wt){var n=(_-p)*z,t=T.N,r=T.D,i=T.L,e=T.H,o=T.C,u=270*C,f=w?Ne.max(400,u):u,a=e*((n-i/2)/(r-i)),c=$t&&O&&(!Ht.i&&!Ht.n||Vr),s=c?t"+(n||Ti)+""}function ft(n,t){for(var r,i=t.split(X),e=0;e'),o=_[0],i=Me(_.children("div").eq(0)),t=bt.getComputedStyle;S.append(_),_.hide().show();var r,u,f,a,c,s,l,v,h,d=z(o),p={x:0===d.x,y:0===d.y};function z(n){return{x:n[ke]-n[Ie],y:n[Ae]-n[He]}}Me.extend(O,{defaultOptions:n,autoUpdateLoop:!1,autoUpdateRecommended:!Le.mO(),nativeScrollbarSize:d,nativeScrollbarIsOverlaid:p,nativeScrollbarStyling:(_.addClass("os-viewport-native-scrollbars-invisible"),"none"===_.css("scrollbar-width")||!!t&&"none"===t(o,"::-webkit-scrollbar").getPropertyValue("display")),overlayScrollbarDummySize:{x:30,y:30},msie:(u=bt.navigator.userAgent,f="indexOf",a="substring",c=u[f]("MSIE "),s=u[f]("Trident/"),l=u[f]("Edge/"),v=u[f]("rv:"),h=parseInt,0e&&(t.update("auto"),h[a]=new Date(o+=e)),n=Re.max(1,Re.min(n,e)));p=n}}else p=33};this.add=function(n){-1===Me.inArray(n,v)&&(v.push(n),h.push(Le.now()),0/g,(l?"-":Ti)+Ci)[v](/px/g,Ti)[v](/%/g," * "+c*(s&&Ht.n?-1:1)/100)[v](/vw/g," * "+vi.w)[v](/vh/g," * "+vi.h),de(isNaN(t)?de(h(t),!0).toFixed():t)):t)!==Se&&!isNaN(i)&<(i)==_t){var d=y&&s,p=a*(d&&Ht.n?-1:1),b=d&&Ht.i,m=d&&Ht.n;switch(p=b?c-p:p,r){case"+=":e=p+i;break;case"-=":e=p-i;break;case"*=":e=p*i;break;case"/=":e=p/i;break;default:e=i}e=b?c-e:e,e*=m?-1:1,e=s&&Ht.n?Re.min(0,Re.max(c,e)):Re.max(0,Re.min(c,e))}return e===a?Se:e},U=function(n,t,r,i){var e,o,u=[r,r],f=lt(n);if(f==t)n=[n,n];else if(f==xt){if(2<(e=n[N])||e<1)n=u;else for(1===e&&(n[1]=r),l=0;l=t.left&&n.clientX<=t.right&&n.clientY>=t.top&&n.clientY<=t.bottom||Gn(),(ri||ii)&&fe(!1)}}function E(n){e=or[I](),e=isNaN(e)?0:e,($t&&O&&!Ht.n||!$t)&&(e=e<0?0:e),z=ft()[k],_=a(n),V=!c(u),xe(M,jn),xe(r.en,o),xe(r.an,o),D.on(nn,h).on(Z,N).on(un,Jn),!L&&p||Le.prvD(n),Le.stpP(n)}r.en.on(Ri,function(n){H(n)&&E(n)}),r.un.on(Ri,function(n){if(H(n)){var h,d=Re.round(vi[r.W]),p=r.un.offset()[r.j],t=n.ctrlKey,b=n.shiftKey,m=b&&t,w=!0,g=function(n){V&&ce(O,n)},y=function(){g(),E(n)},x=function(){if(!Wt){var n=(_-p)*z,t=T.N,r=T.D,i=T.L,e=T.H,o=T.C,u=270*C,f=w?Re.max(400,u):u,a=e*((n-i/2)/(r-i)),c=$t&&O&&(!Ht.i&&!Ht.n||Vr),s=c?t"+(n||Ti)+""}function st(n,t){for(var r,i=t.split($),e=0;e');
var scrollbarDummyElement0 = scrollbarDummyElement[0];
var dummyContainerChild = FRAMEWORK(scrollbarDummyElement.children('div').eq(0));
+ var getCptStyle = window.getComputedStyle;
bodyElement.append(scrollbarDummyElement);
scrollbarDummyElement.hide().show(); //fix IE8 bug (incorrect measuring)
@@ -612,7 +613,7 @@
//scrollbarDummyElement.css(strOverflow, strHidden).hide().css(strOverflow, strScroll).show();
//return (scrollbarDummyElement0[LEXICON.oH] - scrollbarDummyElement0[LEXICON.cH]) === 0 && (scrollbarDummyElement0[LEXICON.oW] - scrollbarDummyElement0[LEXICON.cW]) === 0;
- return scrollbarDummyElement.css('scrollbar-width') === 'none' || window.getComputedStyle(scrollbarDummyElement0, '::-webkit-scrollbar').getPropertyValue('display') === 'none';
+ return scrollbarDummyElement.css('scrollbar-width') === 'none' || (getCptStyle ? getCptStyle(scrollbarDummyElement0, '::-webkit-scrollbar').getPropertyValue('display') === 'none' : false);
})(),
overlayScrollbarDummySize : { x: 30, y: 30 },
msie : (function() {
@@ -1134,6 +1135,8 @@
//MutationObserver:
var _mutationObserverHost;
var _mutationObserverContent;
+ var _mutationObserverHostCallback;
+ var _mutationObserverContentCallback;
var _mutationObserversConnected;
//textarea:
@@ -1443,67 +1446,72 @@
var sizeAuto;
var action;
- _mutationObserverHost = new mutationObserver(function (mutations) {
- if (!_initialized || _isSleeping)
- return;
-
+ _mutationObserverHostCallback = function(mutations) {
var doUpdate = false;
var mutation;
- FRAMEWORK.each(mutations, function () {
- mutation = this;
- mutationTarget = mutation.target;
- mutationAttrName = mutation.attributeName;
+
+ if (_initialized && !_isSleeping) {
+ FRAMEWORK.each(mutations, function () {
+ mutation = this;
+ mutationTarget = mutation.target;
+ mutationAttrName = mutation.attributeName;
- if (mutationAttrName === LEXICON.c)
- doUpdate = hostClassNamesChanged(mutation.oldValue, mutationTarget.className);
- else if (mutationAttrName === LEXICON.s)
- doUpdate = mutation.oldValue !== mutationTarget[LEXICON.s].cssText;
- else
- doUpdate = true;
+ if (mutationAttrName === LEXICON.c)
+ doUpdate = hostClassNamesChanged(mutation.oldValue, mutationTarget.className);
+ else if (mutationAttrName === LEXICON.s)
+ doUpdate = mutation.oldValue !== mutationTarget[LEXICON.s].cssText;
+ else
+ doUpdate = true;
+
+ if (doUpdate)
+ return false;
+ });
if (doUpdate)
- return false;
- });
-
- if (doUpdate)
- _base.update(_strAuto);
- });
- _mutationObserverContent = new mutationObserver(function (mutations) {
- if (!_initialized || _isSleeping)
- return;
-
+ _base.update(_strAuto);
+ }
+ return doUpdate;
+ };
+ _mutationObserverContentCallback = function (mutations) {
var doUpdate = false;
var mutation;
- FRAMEWORK.each(mutations, function () {
- mutation = this;
- doUpdate = isUnknownMutation(mutation);
- return !doUpdate;
- });
+
+ if (_initialized && !_isSleeping) {
+ FRAMEWORK.each(mutations, function () {
+ mutation = this;
+ doUpdate = isUnknownMutation(mutation);
+ return !doUpdate;
+ });
- if (doUpdate) {
- now = COMPATIBILITY.now();
- sizeAuto = (_heightAutoCache || _widthAutoCache);
- action = function () {
- if(!_destroyed) {
- contentLastUpdate = now;
+ if (doUpdate) {
+ now = COMPATIBILITY.now();
+ sizeAuto = (_heightAutoCache || _widthAutoCache);
+ action = function () {
+ if(!_destroyed) {
+ contentLastUpdate = now;
- //if cols, rows or wrap attr was changed
- if (_isTextarea)
- textareaUpdate();
+ //if cols, rows or wrap attr was changed
+ if (_isTextarea)
+ textareaUpdate();
- if (sizeAuto)
- update();
- else
- _base.update(_strAuto);
- }
- };
- clearTimeout(contentTimeout);
- if (mutationObserverContentLag <= 0 || now - contentLastUpdate > mutationObserverContentLag || !sizeAuto)
- action();
- else
- contentTimeout = setTimeout(action, mutationObserverContentLag);
+ if (sizeAuto)
+ update();
+ else
+ _base.update(_strAuto);
+ }
+ };
+ clearTimeout(contentTimeout);
+ if (mutationObserverContentLag <= 0 || now - contentLastUpdate > mutationObserverContentLag || !sizeAuto)
+ action();
+ else
+ contentTimeout = setTimeout(action, mutationObserverContentLag);
+ }
}
- });
+ return doUpdate;
+ }
+
+ _mutationObserverHost = new mutationObserver(_mutationObserverHostCallback);
+ _mutationObserverContent = new mutationObserver(_mutationObserverContentCallback);
}
}
@@ -1524,7 +1532,7 @@
subtree: !_isTextarea,
childList: !_isTextarea,
characterData: !_isTextarea,
- attributeFilter: _isTextarea ? ['wrap', 'cols', 'rows'] : [LEXICON.i, LEXICON.c, LEXICON.s]
+ attributeFilter: _isTextarea ? ['wrap', 'cols', 'rows'] : [LEXICON.i, LEXICON.c, LEXICON.s, 'open']
});
_mutationObserversConnected = true;
@@ -1543,8 +1551,21 @@
}
}
+ /**
+ * Disconnects the MutationObservers if they are supported.
+ * @returns {boolean|undefined} True if the MutationObservers needed to be synchronized, false or undefined otherwise.
+ */
+ function synchronizeMutationObservers() {
+ if(_mutationObserversConnected) {
+ var mutHost = _mutationObserverHostCallback(_mutationObserverHost.takeRecords());
+ var mutContent = _mutationObserverContentCallback(_mutationObserverContent.takeRecords());
- //==== Events of elements ====//
+ return mutHost || mutContent;
+ }
+ }
+
+
+ //==== Events of elements ====//
/**
* This method gets called every time the host element gets resized. IMPORTANT: Padding changes are detected too!!
@@ -1911,7 +1932,7 @@
return sizeIsAffected;
}
-
+
//==== Update ====//
/**
@@ -1980,7 +2001,7 @@
* @param hostSizeChanged True if this method was called due to a host size change.
* @param contentSizeChanged True if this method was called due to a content size change.
* @param force True if every property shall be updated and the cache shall be ignored.
- * @param preventSwallowing True if this method shall be executed event if it could be swallowed.
+ * @param preventSwallowing True if this method shall be executed even if it could be swallowed.
*/
function update(hostSizeChanged, contentSizeChanged, force, preventSwallowing) {
var now = COMPATIBILITY.now();
@@ -3038,7 +3059,7 @@
dispatchCallback("onUpdated", { forced: force });
}
-
+
//==== Options ====//
/**
@@ -4011,8 +4032,8 @@
function getHostElementInvertedScale() {
var rect = _paddingElementNative.getBoundingClientRect();
return {
- x : _supportTransform ? 1 / (MATH.round(rect.width) / _paddingElementNative[LEXICON.oW]) : 1,
- y : _supportTransform ? 1 / (MATH.round(rect.height) / _paddingElementNative[LEXICON.oH]) : 1
+ x : _supportTransform ? 1 / (MATH.round(rect.width) / _paddingElementNative[LEXICON.oW]) || 1 : 1,
+ y : _supportTransform ? 1 / (MATH.round(rect.height) / _paddingElementNative[LEXICON.oH]) || 1 : 1
};
}
@@ -4321,18 +4342,18 @@
var isString = type(force) == TYPES.s;
var imgElementSelector = 'img';
var imgElementLoadEvent = 'load';
- var isPlus = isString && force.slice(-1) == '+';
+
if(isString) {
- if (force.indexOf(_strAuto) === 0) {
+ if (force === _strAuto) {
attrsChanged = meaningfulAttrsChanged();
contentSizeC = updateAutoContentSizeChanged();
- if (attrsChanged || contentSizeC || isPlus)
- update(false, contentSizeC, false, isPlus);
+ if (attrsChanged || contentSizeC)
+ update(false, contentSizeC, false);
}
else if (force === 'zoom')
update(true, true);
}
- else {
+ else if(!synchronizeMutationObservers() || force) {
force = _isSleeping || force;
_isSleeping = false;
update(false, false, force, true);
@@ -4344,6 +4365,7 @@
FRAMEWORK(el).off(imgElementLoadEvent, imgOnLoad).on(imgElementLoadEvent, imgOnLoad);
});
}
+
};
/**
@@ -4551,7 +4573,9 @@
isRTLNormalized: _normalizeRTLCache
};
}
-
+
+ synchronizeMutationObservers();
+
var normalizeRTL = _normalizeRTLCache;
var coordinatesXAxisProps = [_strX, _strLeft, 'l'];
var coordinatesYAxisProps = [_strY, _strTop, 't'];
@@ -4614,8 +4638,6 @@
};
var getFinalScroll = function (isX, rawScroll) {
var isString = type(rawScroll) == TYPES.s;
- if(isString)
- _base.update(_strAuto + '+');
var operator;
var amount;
var scrollInfo = isX ? _scrollHorizontalInfo : _scrollVerticalInfo;
@@ -4745,8 +4767,6 @@
if (finalElement[strLength] === 0)
return;
- _base.update(_strAuto + '+');
-
//margin can be [ boolean, number, array of 2, array of 4, object ]
if (marginType == TYPES.n || marginType == TYPES.b)
margin = generateMargin([margin, margin, margin, margin]);
diff --git a/js/jquery.overlayScrollbars.min.js b/js/jquery.overlayScrollbars.min.js
index ecdc4d2..ef7fa25 100644
--- a/js/jquery.overlayScrollbars.min.js
+++ b/js/jquery.overlayScrollbars.min.js
@@ -2,12 +2,12 @@
* OverlayScrollbars
* https://github.com/KingSora/OverlayScrollbars
*
- * Version: 1.7.2
+ * Version: 1.7.3
*
* Copyright KingSora.
* https://github.com/KingSora
*
* Released under the MIT license.
- * Date: 10.06.2019
+ * Date: 23.06.2019
*/
-!function(t,r){"function"==typeof define&&define.amd?define(["jquery"],function(n){return r(t,t.document,undefined,n)}):"object"==typeof module&&"object"==typeof module.exports?module.exports=r(t,t.document,undefined,require("jquery")):r(t,t.document,undefined,t.jQuery)}("undefined"!=typeof window?window:this,function(dt,ht,Si,n){"use strict";var i,o,pt="OverlayScrollbars",bt="object",mt="function",wt="array",yt="string",gt="boolean",xt="number",d="null",_t="class",zi="style",St="id",zt="length",Tt="prototype",Ti="offsetHeight",ki="clientHeight",Oi="scrollHeight",Ai="offsetWidth",Ci="clientWidth",Ni="scrollWidth",kt={o:{},u:{},s:["-webkit-","-moz-","-o-","-ms-"],v:["WebKit","Moz","O","MS"],p:function(n){var t=this.u;if(t[n])return t[n];for(var r,e,i=this.s,o=this.m(n),a=ht.createElement("div")[zi],u=0,f=0;u'),o=z[0],e=Di(z.children("div").eq(0));S.append(z),z.hide().show();var t,r,a,u,f,c,l,s,v,d=T(o),h={x:0===d.x,y:0===d.y};function T(n){return{x:n[Ti]-n[ki],y:n[Ai]-n[Ci]}}Di.extend(_,{defaultOptions:n,autoUpdateLoop:!1,autoUpdateRecommended:!Hi.mO(),nativeScrollbarSize:d,nativeScrollbarIsOverlaid:h,nativeScrollbarStyling:(z.addClass("os-viewport-native-scrollbars-invisible"),"none"===z.css("scrollbar-width")||"none"===dt.getComputedStyle(o,"::-webkit-scrollbar").getPropertyValue("display")),overlayScrollbarDummySize:{x:30,y:30},msie:(r=dt.navigator.userAgent,a="indexOf",u="substring",f=r[a]("MSIE "),c=r[a]("Trident/"),l=r[a]("Edge/"),s=r[a]("rv:"),v=parseInt,0i&&(t.update("auto"),d[f]=new Date(o+=i)),n=Li.max(1,Li.min(n,i)));p=n}}else p=33};this.add=function(n){-1===Di.inArray(n,v)&&(v.push(n),d.push(Hi.now()),0/g,(s?"-":ke)+Ce)[v](/px/g,ke)[v](/%/g," * "+c*(l&&Ht.n?-1:1)/100)[v](/vw/g," * "+ve.w)[v](/vh/g," * "+ve.h),hi(isNaN(t)?hi(d(t),!0).toFixed():t)):t)!==Si&&!isNaN(e)&&ft(e)==xt){var h=g&&l,p=f*(h&&Ht.n?-1:1),b=h&&Ht.i,m=h&&Ht.n;switch(p=b?c-p:p,r){case"+=":o=p+e;break;case"-=":o=p-e;break;case"*=":o=p*e;break;case"/=":o=p/e;break;default:o=e}o=b?c-o:o,o*=m?-1:1,o=l&&Ht.n?Li.min(0,Li.max(c,o)):Li.max(0,Li.min(c,o))}return o===f?Si:o},V=function(n,t,r,e){var i,o,a=[r,r],u=ft(n);if(u==t)n=[n,n];else if(u==wt){if(2<(i=n[L])||i<1)n=a;else for(1===i&&(n[1]=r),s=0;s=t.left&&n.clientX<=t.right&&n.clientY>=t.top&&n.clientY<=t.bottom||Yn(),(re||ee)&&ui(!1)}}function R(n){i=or[A](),i=isNaN(i)?0:i,(Kt&&_&&!Ht.n||!Kt)&&(i=i<0?0:i),T=it()[O],z=f(n),q=!c(a),xi(W,Wn),xi(r.nn,o),xi(r.rn,o),M.on(Q,d).on(J,L).on(en,Kn),!D&&p||Hi.prvD(n),Hi.stpP(n)}r.nn.on(Ie,function(n){H(n)&&R(n)}),r.tn.on(Ie,function(n){if(H(n)){var d,h=Li.round(ve[r.D]),p=r.tn.offset()[r.I],t=n.ctrlKey,b=n.shiftKey,m=b&&t,w=!0,y=function(n){q&&ci(_,n)},g=function(){y(),R(n)},x=function(){if(!jt){var n=(z-p)*T,t=k.C,r=k.L,e=k.N,i=k.A,o=k.k,a=270*C,u=w?Li.max(400,a):a,f=i*((n-e/2)/(r-e)),c=Kt&&_&&(!Ht.i&&!Ht.n||Br),l=c?t"+(n||ke)+""}function ut(n,t){for(var r,e=t.split(Y),i=0;i'),o=z[0],e=Wi(z.children("div").eq(0)),t=bt.getComputedStyle;S.append(z),z.hide().show();var r,a,u,f,c,l,s,v,d,h=T(o),p={x:0===h.x,y:0===h.y};function T(n){return{x:n[Oi]-n[Ai],y:n[Ni]-n[Hi]}}Wi.extend(_,{defaultOptions:n,autoUpdateLoop:!1,autoUpdateRecommended:!Di.mO(),nativeScrollbarSize:h,nativeScrollbarIsOverlaid:p,nativeScrollbarStyling:(z.addClass("os-viewport-native-scrollbars-invisible"),"none"===z.css("scrollbar-width")||!!t&&"none"===t(o,"::-webkit-scrollbar").getPropertyValue("display")),overlayScrollbarDummySize:{x:30,y:30},msie:(a=bt.navigator.userAgent,u="indexOf",f="substring",c=a[u]("MSIE "),l=a[u]("Trident/"),s=a[u]("Edge/"),v=a[u]("rv:"),d=parseInt,0i&&(t.update("auto"),d[f]=new Date(o+=i)),n=Ii.max(1,Ii.min(n,i)));p=n}}else p=33};this.add=function(n){-1===Wi.inArray(n,v)&&(v.push(n),d.push(Di.now()),0/g,(s?"-":ke)+Ce)[v](/px/g,ke)[v](/%/g," * "+c*(l&&Ht.n?-1:1)/100)[v](/vw/g," * "+ve.w)[v](/vh/g," * "+ve.h),hi(isNaN(t)?hi(d(t),!0).toFixed():t)):t)!==Si&&!isNaN(e)&&st(e)==zt){var h=g&&l,p=f*(h&&Ht.n?-1:1),b=h&&Ht.i,m=h&&Ht.n;switch(p=b?c-p:p,r){case"+=":i=p+e;break;case"-=":i=p-e;break;case"*=":i=p*e;break;case"/=":i=p/e;break;default:i=e}i=b?c-i:i,i*=m?-1:1,i=l&&Ht.n?Ii.min(0,Ii.max(c,i)):Ii.max(0,Ii.min(c,i))}return i===f?Si:i},V=function(n,t,r,e){var i,o,a=[r,r],u=st(n);if(u==t)n=[n,n];else if(u==xt){if(2<(i=n[L])||i<1)n=a;else for(1===i&&(n[1]=r),s=0;s=t.left&&n.clientX<=t.right&&n.clientY>=t.top&&n.clientY<=t.bottom||Gn(),(re||ee)&&ui(!1)}}function R(n){i=or[A](),i=isNaN(i)?0:i,(Kt&&_&&!Ht.n||!Kt)&&(i=i<0?0:i),T=ut()[O],z=f(n),B=!c(a),xi(W,Fn),xi(r.nn,o),xi(r.rn,o),M.on(nn,d).on(Z,L).on(an,Qn),!D&&p||Di.prvD(n),Di.stpP(n)}r.nn.on(Ie,function(n){H(n)&&R(n)}),r.tn.on(Ie,function(n){if(H(n)){var d,h=Ii.round(ve[r.D]),p=r.tn.offset()[r.I],t=n.ctrlKey,b=n.shiftKey,m=b&&t,w=!0,y=function(n){B&&ci(_,n)},g=function(){y(),R(n)},x=function(){if(!jt){var n=(z-p)*T,t=k.C,r=k.L,e=k.N,i=k.A,o=k.k,a=270*C,u=w?Ii.max(400,a):a,f=i*((n-e/2)/(r-e)),c=Kt&&_&&(!Ht.i&&!Ht.n||Br),l=c?t"+(n||ke)+""}function lt(n,t){for(var r,e=t.split(K),i=0;i