Component
-| - Class: - | -- {{ componentClass }} - | -
| - Description: - | -OverlayScrollbars as a {{ framework }}-Component. | -
-
- {{ loremIpsumShort }} -
-
- {{ loremIpsumShort }} -
-
- {{ loremIpsumLong }} -
- {{ item }} -
diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index 70ffdca..e9a3c3c 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -9,4 +9,4 @@ community_bridge: # Replace with a single Community Bridge project-name e.g., cl liberapay: # Replace with a single Liberapay username issuehunt: # Replace with a single IssueHunt username otechie: # Replace with a single Otechie username -custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] +custom: ['https://www.paypal.me/ReneHaas'] # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] diff --git a/css/OverlayScrollbars.css b/css/OverlayScrollbars.css deleted file mode 100644 index 3818091..0000000 --- a/css/OverlayScrollbars.css +++ /dev/null @@ -1,635 +0,0 @@ -/*! - * OverlayScrollbars - * https://github.com/KingSora/OverlayScrollbars - * - * Version: 1.13.0 - * - * Copyright KingSora | Rene Haas. - * https://github.com/KingSora - * - * Released under the MIT license. - * Date: 02.08.2020 - */ - -/* -OVERLAY SCROLLBARS CORE: -*/ - -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; /* could be position: fixed; but it causes issues on iOS (-webkit-overflow-scrolling: touch) */ -} -html.os-html > .os-host > .os-padding { - position: absolute; /* could be position: fixed; but it causes issues on iOS (-webkit-overflow-scrolling: touch) */ -} -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; -} -/* fix restricted measuring */ -#os-dummy-scrollbar-size:before, -#os-dummy-scrollbar-size:after, -.os-content:before, -.os-content:after { - content: ''; - display: table; - width: 0.01px; - height: 0.01px; - line-height: 0; - font-size: 0; - flex-grow: 0; - flex-shrink: 0; - visibility: hidden; -} -#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: 0; -} -.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 > .os-textarea { - box-sizing: border-box !important; - direction: inherit !important; - background: transparent !important; - outline: 0px 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: 0px; -} -.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; - visibility: hidden; - 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.observed { - display: flex; - flex-direction: column; - justify-content: flex-start; - align-items: flex-start; -} -.os-resize-observer-host > .os-resize-observer, -.os-resize-observer-host.observed > .os-resize-observer { - height: 200%; - width: 200%; - padding: inherit; - border: inherit; - margin: 0; - display: block; - box-sizing: content-box; -} -.os-resize-observer-host.observed > .os-resize-observer, -.os-resize-observer-host.observed > .os-resize-observer:before { - display: flex; - position: relative; - flex-grow: 1; - flex-shrink: 0; - flex-basis: auto; - box-sizing: border-box; -} -.os-resize-observer-host.observed > .os-resize-observer:before { - content: ''; - box-sizing: content-box; - padding: inherit; - border: inherit; - margin: 0; -} -.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: os-resize-observer-dummy-animation; - animation-name: os-resize-observer-dummy-animation; -} -object.os-resize-observer { - box-sizing: border-box !important; -} -@-webkit-keyframes os-resize-observer-dummy-animation { - from { - cursor: auto; - } - to { - cursor: none; - } -} -@keyframes os-resize-observer-dummy-animation { - from { - cursor: auto; - } - to { - cursor: none; - } -} - -/* -CUSTOM SCROLLBARS AND CORNER CORE: -*/ - -.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; /* could be position: fixed; but it causes issues on iOS (-webkit-overflow-scrolling: touch) */ - z-index: 999999; /* highest z-index of the page */ -} -.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; -} -.os-host-overflow-x { -} -.os-host-overflow-y { -} - -/* -THEMES: -*/ - -/* NONE THEME: */ -.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; -} -/* DARK & LIGHT THEME: */ -.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, 0.4); -} -.os-theme-light > .os-scrollbar > .os-scrollbar-track > .os-scrollbar-handle { - background: rgba(255, 255, 255, 0.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; -} diff --git a/css/OverlayScrollbars.min.css b/css/OverlayScrollbars.min.css deleted file mode 100644 index d9edf05..0000000 --- a/css/OverlayScrollbars.min.css +++ /dev/null @@ -1,13 +0,0 @@ -/*! - * OverlayScrollbars - * https://github.com/KingSora/OverlayScrollbars - * - * Version: 1.13.0 - * - * Copyright KingSora | Rene Haas. - * https://github.com/KingSora - * - * Released under the MIT license. - * Date: 02.08.2020 - */ -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:before,#os-dummy-scrollbar-size:after,.os-content:before,.os-content:after{content:'';display:table;width:.01px;height:.01px;line-height:0;font-size:0;flex-grow:0;flex-shrink:0;visibility:hidden}#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:0!important;height:0!important;visibility:hidden!important;background:0 0!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:0}.os-host-overflow>.os-padding{overflow:hidden}.os-viewport{direction:inherit!important;box-sizing:inherit!important;resize:none!important;outline:0!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>.os-textarea{box-sizing:border-box!important;direction:inherit!important;background:0 0!important;outline:0 transparent!important;overflow:hidden!important;position:absolute!important;display:block!important;top:0!important;left:0!important;margin:0!important;border-radius:0!important;float:none!important;-webkit-filter:none!important;filter:none!important;border:0!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:0!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;visibility:hidden;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.observed{display:flex;flex-direction:column;justify-content:flex-start;align-items:flex-start}.os-resize-observer-host>.os-resize-observer,.os-resize-observer-host.observed>.os-resize-observer{height:200%;width:200%;padding:inherit;border:inherit;margin:0;display:block;box-sizing:content-box}.os-resize-observer-host.observed>.os-resize-observer,.os-resize-observer-host.observed>.os-resize-observer:before{display:flex;position:relative;flex-grow:1;flex-shrink:0;flex-basis:auto;box-sizing:border-box}.os-resize-observer-host.observed>.os-resize-observer:before{content:'';box-sizing:content-box;padding:inherit;border:inherit;margin:0}.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:.001s;animation-duration:.001s;-webkit-animation-name:os-resize-observer-dummy-animation;animation-name:os-resize-observer-dummy-animation}object.os-resize-observer{box-sizing:border-box!important}@-webkit-keyframes os-resize-observer-dummy-animation{0%{cursor:auto}to{cursor:none}}@keyframes os-resize-observer-dummy-animation{0%{cursor:auto}to{cursor:none}}.os-host-transition>.os-scrollbar,.os-host-transition>.os-scrollbar-corner{-webkit-transition:opacity .3s,visibility .3s,top .3s,right .3s,bottom .3s,left .3s;transition:opacity .3s,visibility .3s,top .3s,right .3s,bottom .3s,left .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:0!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}.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:0 0}.os-theme-dark>.os-scrollbar.os-scrollbar-unusable,.os-theme-light>.os-scrollbar.os-scrollbar-unusable{background:0 0}.os-theme-dark>.os-scrollbar>.os-scrollbar-track,.os-theme-light>.os-scrollbar>.os-scrollbar-track{background:0 0}.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 .3s;transition:background-color .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 deleted file mode 100644 index 5b48912..0000000 --- a/js/OverlayScrollbars.js +++ /dev/null @@ -1,6670 +0,0 @@ -/*! - * OverlayScrollbars - * https://github.com/KingSora/OverlayScrollbars - * - * Version: 1.13.3 - * - * Copyright KingSora | Rene Haas. - * https://github.com/KingSora - * - * Released under the MIT license. - * Date: 20.07.2022 - */ - -(function (global, factory) { - if (typeof define === 'function' && define.amd) - define(function () { return factory(global, global.document, undefined); }); - else if (typeof module === 'object' && typeof module.exports === 'object') - module.exports = factory(global, global.document, undefined); - else - factory(global, global.document, undefined); -}(typeof window !== 'undefined' ? window : this, - function (window, document, undefined) { - 'use strict'; - var PLUGINNAME = 'OverlayScrollbars'; - var TYPES = { - o: 'object', - f: 'function', - a: 'array', - s: 'string', - b: 'boolean', - n: 'number', - u: 'undefined', - z: 'null' - //d : 'date', - //e : 'error', - //r : 'regexp', - //y : 'symbol' - }; - var LEXICON = { - c: 'class', - s: 'style', - i: 'id', - l: 'length', - p: 'prototype', - ti: 'tabindex', - oH: 'offsetHeight', - cH: 'clientHeight', - sH: 'scrollHeight', - oW: 'offsetWidth', - cW: 'clientWidth', - sW: 'scrollWidth', - hOP: 'hasOwnProperty', - bCR: 'getBoundingClientRect' - }; - var VENDORS = (function () { - //https://developer.mozilla.org/en-US/docs/Glossary/Vendor_Prefix - var jsCache = {}; - var cssCache = {}; - var cssPrefixes = ['-webkit-', '-moz-', '-o-', '-ms-']; - var jsPrefixes = ['WebKit', 'Moz', 'O', 'MS']; - function firstLetterToUpper(str) { - return str.charAt(0).toUpperCase() + str.slice(1); - } - - return { - _cssPrefixes: cssPrefixes, - _jsPrefixes: jsPrefixes, - _cssProperty: function (name) { - var result = cssCache[name]; - - if (cssCache[LEXICON.hOP](name)) - return result; - - var uppercasedName = firstLetterToUpper(name); - var elmStyle = document.createElement('div')[LEXICON.s]; - var resultPossibilities; - var i = 0; - var v; - var currVendorWithoutDashes; - - for (; i < cssPrefixes.length; i++) { - currVendorWithoutDashes = cssPrefixes[i].replace(/-/g, ''); - resultPossibilities = [ - name, //transition - cssPrefixes[i] + name, //-webkit-transition - currVendorWithoutDashes + uppercasedName, //webkitTransition - firstLetterToUpper(currVendorWithoutDashes) + uppercasedName //WebkitTransition - ]; - for (v = 0; v < resultPossibilities[LEXICON.l]; v++) { - if (elmStyle[resultPossibilities[v]] !== undefined) { - result = resultPossibilities[v]; - break; - } - } - } - - cssCache[name] = result; - return result; - }, - _cssPropertyValue: function (property, values, suffix) { - var name = property + ' ' + values; - var result = cssCache[name]; - - if (cssCache[LEXICON.hOP](name)) - return result; - - var dummyStyle = document.createElement('div')[LEXICON.s]; - var possbleValues = values.split(' '); - var preparedSuffix = suffix || ''; - var i = 0; - var v = -1; - var prop; - - for (; i < possbleValues[LEXICON.l]; i++) { - for (; v < VENDORS._cssPrefixes[LEXICON.l]; v++) { - prop = v < 0 ? possbleValues[i] : VENDORS._cssPrefixes[v] + possbleValues[i]; - dummyStyle.cssText = property + ':' + prop + preparedSuffix; - if (dummyStyle[LEXICON.l]) { - result = prop; - break; - } - } - } - - cssCache[name] = result; - return result; - }, - _jsAPI: function (name, isInterface, fallback) { - var i = 0; - var result = jsCache[name]; - - if (!jsCache[LEXICON.hOP](name)) { - result = window[name]; - for (; i < jsPrefixes[LEXICON.l]; i++) - result = result || window[(isInterface ? jsPrefixes[i] : jsPrefixes[i].toLowerCase()) + firstLetterToUpper(name)]; - jsCache[name] = result; - } - return result || fallback; - } - } - })(); - var COMPATIBILITY = (function () { - function windowSize(x) { - return x ? window.innerWidth || document.documentElement[LEXICON.cW] || document.body[LEXICON.cW] : window.innerHeight || document.documentElement[LEXICON.cH] || document.body[LEXICON.cH]; - } - function bind(func, thisObj) { - if (typeof func != TYPES.f) { - throw "Can't bind function!"; - // closest thing possible to the ECMAScript 5 - // internal IsCallable function - //throw new TypeError('Function.prototype.bind - what is trying to be bound is not callable'); - } - var proto = LEXICON.p; - var aArgs = Array[proto].slice.call(arguments, 2); - var fNOP = function () { }; - var fBound = function () { return func.apply(this instanceof fNOP ? this : thisObj, aArgs.concat(Array[proto].slice.call(arguments))); }; - - if (func[proto]) - fNOP[proto] = func[proto]; // Function.prototype doesn't have a prototype property - fBound[proto] = new fNOP(); - - return fBound; - } - - return { - /** - * Gets the current window width. - * @returns {Number|number} The current window width in pixel. - */ - wW: bind(windowSize, 0, true), - - /** - * Gets the current window height. - * @returns {Number|number} The current window height in pixel. - */ - wH: bind(windowSize, 0), - - /** - * Gets the MutationObserver Object or undefined if not supported. - * @returns {MutationObserver|*|undefined} The MutationsObserver Object or undefined. - */ - mO: bind(VENDORS._jsAPI, 0, 'MutationObserver', true), - - /** - * Gets the ResizeObserver Object or undefined if not supported. - * @returns {MutationObserver|*|undefined} The ResizeObserver Object or undefined. - */ - rO: bind(VENDORS._jsAPI, 0, 'ResizeObserver', true), - - /** - * Gets the RequestAnimationFrame method or it's corresponding polyfill. - * @returns {*|Function} The RequestAnimationFrame method or it's corresponding polyfill. - */ - rAF: bind(VENDORS._jsAPI, 0, 'requestAnimationFrame', false, function (func) { return window.setTimeout(func, 1000 / 60); }), - - /** - * Gets the CancelAnimationFrame method or it's corresponding polyfill. - * @returns {*|Function} The CancelAnimationFrame method or it's corresponding polyfill. - */ - cAF: bind(VENDORS._jsAPI, 0, 'cancelAnimationFrame', false, function (id) { return window.clearTimeout(id); }), - - /** - * Gets the current time. - * @returns {number} The current time. - */ - now: function () { - return Date.now && Date.now() || new Date().getTime(); - }, - - /** - * Stops the propagation of the given event. - * @param event The event of which the propagation shall be stoped. - */ - stpP: function (event) { - if (event.stopPropagation) - event.stopPropagation(); - else - event.cancelBubble = true; - }, - - /** - * Prevents the default action of the given event. - * @param event The event of which the default action shall be prevented. - */ - prvD: function (event) { - if (event.preventDefault && event.cancelable) - event.preventDefault(); - else - event.returnValue = false; - }, - - /** - * Gets the pageX and pageY values of the given mouse event. - * @param event The mouse event of which the pageX and pageX shall be got. - * @returns {{x: number, y: number}} x = pageX value, y = pageY value. - */ - page: function (event) { - event = event.originalEvent || event; - - var strPage = 'page'; - var strClient = 'client'; - var strX = 'X'; - var strY = 'Y'; - var target = event.target || event.srcElement || document; - var eventDoc = target.ownerDocument || document; - var doc = eventDoc.documentElement; - var body = eventDoc.body; - - //if touch event return return pageX/Y of it - if (event.touches !== undefined) { - var touch = event.touches[0]; - return { - x: touch[strPage + strX], - y: touch[strPage + strY] - } - } - - // Calculate pageX/Y if not native supported - if (!event[strPage + strX] && event[strClient + strX] && event[strClient + strX] != null) { - - return { - x: event[strClient + strX] + - (doc && doc.scrollLeft || body && body.scrollLeft || 0) - - (doc && doc.clientLeft || body && body.clientLeft || 0), - y: event[strClient + strY] + - (doc && doc.scrollTop || body && body.scrollTop || 0) - - (doc && doc.clientTop || body && body.clientTop || 0) - } - } - return { - x: event[strPage + strX], - y: event[strPage + strY] - }; - }, - - /** - * Gets the clicked mouse button of the given mouse event. - * @param event The mouse event of which the clicked button shal be got. - * @returns {number} The number of the clicked mouse button. (0 : none | 1 : leftButton | 2 : middleButton | 3 : rightButton) - */ - mBtn: function (event) { - var button = event.button; - if (!event.which && button !== undefined) - return (button & 1 ? 1 : (button & 2 ? 3 : (button & 4 ? 2 : 0))); - else - return event.which; - }, - - /** - * Checks whether a item is in the given array and returns its index. - * @param item The item of which the position in the array shall be determined. - * @param arr The array. - * @returns {number} The zero based index of the item or -1 if the item isn't in the array. - */ - inA: function (item, arr) { - for (var i = 0; i < arr[LEXICON.l]; i++) - //Sometiems in IE a "SCRIPT70" Permission denied error occurs if HTML elements in a iFrame are compared - try { - if (arr[i] === item) - return i; - } - catch (e) { } - return -1; - }, - - /** - * Returns true if the given value is a array. - * @param arr The potential array. - * @returns {boolean} True if the given value is a array, false otherwise. - */ - isA: function (arr) { - var def = Array.isArray; - return def ? def(arr) : this.type(arr) == TYPES.a; - }, - - /** - * Determine the internal JavaScript [[Class]] of the given object. - * @param obj The object of which the type shall be determined. - * @returns {string} The type of the given object. - */ - type: function (obj) { - if (obj === undefined) - return obj + ''; - if (obj === null) - return obj + ''; - return Object[LEXICON.p].toString.call(obj).replace(/^\[object (.+)\]$/, '$1').toLowerCase(); - }, - - - bind: bind - - /** - * Gets the vendor-prefixed CSS property by the given name. - * For example the given name is "transform" and you're using a old Firefox browser then the returned value would be "-moz-transform". - * If the browser doesn't need a vendor-prefix, then the returned string is the given name. - * If the browser doesn't support the given property name at all (not even with a vendor-prefix) the returned value is null. - * @param propName The unprefixed CSS property name. - * @returns {string|null} The vendor-prefixed CSS property or null if the browser doesn't support the given CSS property. - - cssProp: function(propName) { - return VENDORS._cssProperty(propName); - } - */ - } - })(); - - - var MATH = Math; - var JQUERY = window.jQuery; - var EASING = (function () { - var _easingsMath = { - p: MATH.PI, - c: MATH.cos, - s: MATH.sin, - w: MATH.pow, - t: MATH.sqrt, - n: MATH.asin, - a: MATH.abs, - o: 1.70158 - }; - - /* - x : current percent (0 - 1), - t : current time (duration * percent), - b : start value (from), - c : end value (to), - d : duration - - easingName : function(x, t, b, c, d) { return easedValue; } - */ - - return { - swing: function (x, t, b, c, d) { - return 0.5 - _easingsMath.c(x * _easingsMath.p) / 2; - }, - linear: function (x, t, b, c, d) { - return x; - }, - easeInQuad: function (x, t, b, c, d) { - return c * (t /= d) * t + b; - }, - easeOutQuad: function (x, t, b, c, d) { - return -c * (t /= d) * (t - 2) + b; - }, - easeInOutQuad: function (x, t, b, c, d) { - return ((t /= d / 2) < 1) ? c / 2 * t * t + b : -c / 2 * ((--t) * (t - 2) - 1) + b; - }, - easeInCubic: function (x, t, b, c, d) { - return c * (t /= d) * t * t + b; - }, - easeOutCubic: function (x, t, b, c, d) { - return c * ((t = t / d - 1) * t * t + 1) + b; - }, - easeInOutCubic: function (x, t, b, c, d) { - return ((t /= d / 2) < 1) ? c / 2 * t * t * t + b : c / 2 * ((t -= 2) * t * t + 2) + b; - }, - easeInQuart: function (x, t, b, c, d) { - return c * (t /= d) * t * t * t + b; - }, - easeOutQuart: function (x, t, b, c, d) { - return -c * ((t = t / d - 1) * t * t * t - 1) + b; - }, - easeInOutQuart: function (x, t, b, c, d) { - return ((t /= d / 2) < 1) ? c / 2 * t * t * t * t + b : -c / 2 * ((t -= 2) * t * t * t - 2) + b; - }, - easeInQuint: function (x, t, b, c, d) { - return c * (t /= d) * t * t * t * t + b; - }, - easeOutQuint: function (x, t, b, c, d) { - return c * ((t = t / d - 1) * t * t * t * t + 1) + b; - }, - easeInOutQuint: function (x, t, b, c, d) { - return ((t /= d / 2) < 1) ? c / 2 * t * t * t * t * t + b : c / 2 * ((t -= 2) * t * t * t * t + 2) + b; - }, - easeInSine: function (x, t, b, c, d) { - return -c * _easingsMath.c(t / d * (_easingsMath.p / 2)) + c + b; - }, - easeOutSine: function (x, t, b, c, d) { - return c * _easingsMath.s(t / d * (_easingsMath.p / 2)) + b; - }, - easeInOutSine: function (x, t, b, c, d) { - return -c / 2 * (_easingsMath.c(_easingsMath.p * t / d) - 1) + b; - }, - easeInExpo: function (x, t, b, c, d) { - return (t == 0) ? b : c * _easingsMath.w(2, 10 * (t / d - 1)) + b; - }, - easeOutExpo: function (x, t, b, c, d) { - return (t == d) ? b + c : c * (-_easingsMath.w(2, -10 * t / d) + 1) + b; - }, - easeInOutExpo: function (x, t, b, c, d) { - if (t == 0) return b; - if (t == d) return b + c; - if ((t /= d / 2) < 1) return c / 2 * _easingsMath.w(2, 10 * (t - 1)) + b; - return c / 2 * (-_easingsMath.w(2, -10 * --t) + 2) + b; - }, - easeInCirc: function (x, t, b, c, d) { - return -c * (_easingsMath.t(1 - (t /= d) * t) - 1) + b; - }, - easeOutCirc: function (x, t, b, c, d) { - return c * _easingsMath.t(1 - (t = t / d - 1) * t) + b; - }, - easeInOutCirc: function (x, t, b, c, d) { - return ((t /= d / 2) < 1) ? -c / 2 * (_easingsMath.t(1 - t * t) - 1) + b : c / 2 * (_easingsMath.t(1 - (t -= 2) * t) + 1) + b; - }, - easeInElastic: function (x, t, b, c, d) { - var s = _easingsMath.o; var p = 0; var a = c; - if (t == 0) return b; if ((t /= d) == 1) return b + c; if (!p) p = d * .3; - if (a < _easingsMath.a(c)) { a = c; s = p / 4; } - else s = p / (2 * _easingsMath.p) * _easingsMath.n(c / a); - return -(a * _easingsMath.w(2, 10 * (t -= 1)) * _easingsMath.s((t * d - s) * (2 * _easingsMath.p) / p)) + b; - }, - easeOutElastic: function (x, t, b, c, d) { - var s = _easingsMath.o; var p = 0; var a = c; - if (t == 0) return b; - if ((t /= d) == 1) return b + c; - if (!p) p = d * .3; - if (a < _easingsMath.a(c)) { a = c; s = p / 4; } - else s = p / (2 * _easingsMath.p) * _easingsMath.n(c / a); - return a * _easingsMath.w(2, -10 * t) * _easingsMath.s((t * d - s) * (2 * _easingsMath.p) / p) + c + b; - }, - easeInOutElastic: function (x, t, b, c, d) { - var s = _easingsMath.o; var p = 0; var a = c; - if (t == 0) return b; - if ((t /= d / 2) == 2) return b + c; - if (!p) p = d * (.3 * 1.5); - if (a < _easingsMath.a(c)) { a = c; s = p / 4; } - else s = p / (2 * _easingsMath.p) * _easingsMath.n(c / a); - if (t < 1) return -.5 * (a * _easingsMath.w(2, 10 * (t -= 1)) * _easingsMath.s((t * d - s) * (2 * _easingsMath.p) / p)) + b; - return a * _easingsMath.w(2, -10 * (t -= 1)) * _easingsMath.s((t * d - s) * (2 * _easingsMath.p) / p) * .5 + c + b; - }, - easeInBack: function (x, t, b, c, d, s) { - s = s || _easingsMath.o; - return c * (t /= d) * t * ((s + 1) * t - s) + b; - }, - easeOutBack: function (x, t, b, c, d, s) { - s = s || _easingsMath.o; - return c * ((t = t / d - 1) * t * ((s + 1) * t + s) + 1) + b; - }, - easeInOutBack: function (x, t, b, c, d, s) { - s = s || _easingsMath.o; - return ((t /= d / 2) < 1) ? c / 2 * (t * t * (((s *= (1.525)) + 1) * t - s)) + b : c / 2 * ((t -= 2) * t * (((s *= (1.525)) + 1) * t + s) + 2) + b; - }, - easeInBounce: function (x, t, b, c, d) { - return c - this.easeOutBounce(x, d - t, 0, c, d) + b; - }, - easeOutBounce: function (x, t, b, c, d) { - var o = 7.5625; - if ((t /= d) < (1 / 2.75)) { - return c * (o * t * t) + b; - } else if (t < (2 / 2.75)) { - return c * (o * (t -= (1.5 / 2.75)) * t + .75) + b; - } else if (t < (2.5 / 2.75)) { - return c * (o * (t -= (2.25 / 2.75)) * t + .9375) + b; - } else { - return c * (o * (t -= (2.625 / 2.75)) * t + .984375) + b; - } - }, - easeInOutBounce: function (x, t, b, c, d) { - return (t < d / 2) ? this.easeInBounce(x, t * 2, 0, c, d) * .5 + b : this.easeOutBounce(x, t * 2 - d, 0, c, d) * .5 + c * .5 + b; - } - }; - /* - * - * TERMS OF USE - EASING EQUATIONS - * - * Open source under the BSD License. - * - * Copyright © 2001 Robert Penner - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted provided that the following conditions are met: - * - * Redistributions of source code must retain the above copyright notice, this list of - * conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, this list - * of conditions and the following disclaimer in the documentation and/or other materials - * provided with the distribution. - * - * Neither the name of the author nor the names of contributors may be used to endorse - * or promote products derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED - * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * - */ - })(); - var FRAMEWORK = (function () { - var _rnothtmlwhite = (/[^\x20\t\r\n\f]+/g); - var _strSpace = ' '; - var _strEmpty = ''; - var _strScrollLeft = 'scrollLeft'; - var _strScrollTop = 'scrollTop'; - var _animations = []; - var _type = COMPATIBILITY.type; - var _cssNumber = { - animationIterationCount: true, - columnCount: true, - fillOpacity: true, - flexGrow: true, - flexShrink: true, - fontWeight: true, - lineHeight: true, - opacity: true, - order: true, - orphans: true, - widows: true, - zIndex: true, - zoom: true - }; - - function extend() { - var src, copyIsArray, copy, name, options, clone, target = arguments[0] || {}, - i = 1, - length = arguments[LEXICON.l], - deep = false; - - // Handle a deep copy situation - if (_type(target) == TYPES.b) { - deep = target; - target = arguments[1] || {}; - // skip the boolean and the target - i = 2; - } - - // Handle case when target is a string or something (possible in deep copy) - if (_type(target) != TYPES.o && !_type(target) == TYPES.f) { - target = {}; - } - - // extend jQuery itself if only one argument is passed - if (length === i) { - target = FakejQuery; - --i; - } - - for (; i < length; i++) { - // Only deal with non-null/undefined values - if ((options = arguments[i]) != null) { - // Extend the base object - for (name in options) { - src = target[name]; - copy = options[name]; - - // Prevent never-ending loop - if (target === copy) { - continue; - } - - // Recurse if we're merging plain objects or arrays - if (deep && copy && (isPlainObject(copy) || (copyIsArray = COMPATIBILITY.isA(copy)))) { - if (copyIsArray) { - copyIsArray = false; - clone = src && COMPATIBILITY.isA(src) ? src : []; - - } else { - clone = src && isPlainObject(src) ? src : {}; - } - - // Never move original objects, clone them - target[name] = extend(deep, clone, copy); - - // Don't bring in undefined values - } else if (copy !== undefined) { - target[name] = copy; - } - } - } - } - - // Return the modified object - return target; - }; - - function inArray(item, arr, fromIndex) { - for (var i = fromIndex || 0; i < arr[LEXICON.l]; i++) - if (arr[i] === item) - return i; - return -1; - } - - function isFunction(obj) { - return _type(obj) == TYPES.f; - }; - - function isEmptyObject(obj) { - for (var name in obj) - return false; - return true; - }; - - function isPlainObject(obj) { - if (!obj || _type(obj) != TYPES.o) - return false; - - var key; - var proto = LEXICON.p; - var hasOwnProperty = Object[proto].hasOwnProperty; - var hasOwnConstructor = hasOwnProperty.call(obj, 'constructor'); - var hasIsPrototypeOf = obj.constructor && obj.constructor[proto] && hasOwnProperty.call(obj.constructor[proto], 'isPrototypeOf'); - - if (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) { - return false; - } - - - for (key in obj) { /**/ } - - return _type(key) == TYPES.u || hasOwnProperty.call(obj, key); - }; - - function each(obj, callback) { - var i = 0; - - if (isArrayLike(obj)) { - for (; i < obj[LEXICON.l]; i++) { - if (callback.call(obj[i], i, obj[i]) === false) - break; - } - } - else { - for (i in obj) { - if (callback.call(obj[i], i, obj[i]) === false) - break; - } - } - - return obj; - }; - - function isArrayLike(obj) { - var length = !!obj && [LEXICON.l] in obj && obj[LEXICON.l]; - var t = _type(obj); - return isFunction(t) ? false : (t == TYPES.a || length === 0 || _type(length) == TYPES.n && length > 0 && (length - 1) in obj); - } - - function stripAndCollapse(value) { - var tokens = value.match(_rnothtmlwhite) || []; - return tokens.join(_strSpace); - } - - function matches(elem, selector) { - var nodeList = (elem.parentNode || document).querySelectorAll(selector) || []; - var i = nodeList[LEXICON.l]; - - while (i--) - if (nodeList[i] == elem) - return true; - - return false; - } - - function insertAdjacentElement(el, strategy, child) { - if (COMPATIBILITY.isA(child)) { - for (var i = 0; i < child[LEXICON.l]; i++) - insertAdjacentElement(el, strategy, child[i]); - } - else if (_type(child) == TYPES.s) - el.insertAdjacentHTML(strategy, child); - else - el.insertAdjacentElement(strategy, child.nodeType ? child : child[0]); - } - - function setCSSVal(el, prop, val) { - try { - if (el[LEXICON.s][prop] !== undefined) - el[LEXICON.s][prop] = parseCSSVal(prop, val); - } catch (e) { } - } - - function parseCSSVal(prop, val) { - if (!_cssNumber[prop.toLowerCase()] && _type(val) == TYPES.n) - val += 'px'; - return val; - } - - function startNextAnimationInQ(animObj, removeFromQ) { - var index; - var nextAnim; - if (removeFromQ !== false) - animObj.q.splice(0, 1); - if (animObj.q[LEXICON.l] > 0) { - nextAnim = animObj.q[0]; - animate(animObj.el, nextAnim.props, nextAnim.duration, nextAnim.easing, nextAnim.complete, true); - } - else { - index = inArray(animObj, _animations); - if (index > -1) - _animations.splice(index, 1); - } - } - - function setAnimationValue(el, prop, value) { - if (prop === _strScrollLeft || prop === _strScrollTop) - el[prop] = value; - else - setCSSVal(el, prop, value); - } - - function animate(el, props, options, easing, complete, guaranteedNext) { - var hasOptions = isPlainObject(options); - var from = {}; - var to = {}; - var i = 0; - var key; - var animObj; - var start; - var progress; - var step; - var specialEasing; - var duration; - if (hasOptions) { - easing = options.easing; - start = options.start; - progress = options.progress; - step = options.step; - specialEasing = options.specialEasing; - complete = options.complete; - duration = options.duration; - } - else - duration = options; - specialEasing = specialEasing || {}; - duration = duration || 400; - easing = easing || 'swing'; - guaranteedNext = guaranteedNext || false; - - for (; i < _animations[LEXICON.l]; i++) { - if (_animations[i].el === el) { - animObj = _animations[i]; - break; - } - } - - if (!animObj) { - animObj = { - el: el, - q: [] - }; - _animations.push(animObj); - } - - for (key in props) { - if (key === _strScrollLeft || key === _strScrollTop) - from[key] = el[key]; - else - from[key] = FakejQuery(el).css(key); - } - - for (key in from) { - if (from[key] !== props[key] && props[key] !== undefined) - to[key] = props[key]; - } - - if (!isEmptyObject(to)) { - var timeNow; - var end; - var percent; - var fromVal; - var toVal; - var easedVal; - var timeStart; - var frame; - var elapsed; - var qPos = guaranteedNext ? 0 : inArray(qObj, animObj.q); - var qObj = { - props: to, - duration: hasOptions ? options : duration, - easing: easing, - complete: complete - }; - if (qPos === -1) { - qPos = animObj.q[LEXICON.l]; - animObj.q.push(qObj); - } - - if (qPos === 0) { - if (duration > 0) { - timeStart = COMPATIBILITY.now(); - frame = function () { - timeNow = COMPATIBILITY.now(); - elapsed = (timeNow - timeStart); - end = qObj.stop || elapsed >= duration; - percent = 1 - ((MATH.max(0, timeStart + duration - timeNow) / duration) || 0); - - for (key in to) { - fromVal = parseFloat(from[key]); - toVal = parseFloat(to[key]); - easedVal = (toVal - fromVal) * EASING[specialEasing[key] || easing](percent, percent * duration, 0, 1, duration) + fromVal; - setAnimationValue(el, key, easedVal); - if (isFunction(step)) { - step(easedVal, { - elem: el, - prop: key, - start: fromVal, - now: easedVal, - end: toVal, - pos: percent, - options: { - easing: easing, - speacialEasing: specialEasing, - duration: duration, - complete: complete, - step: step - }, - startTime: timeStart - }); - } - } - - if (isFunction(progress)) - progress({}, percent, MATH.max(0, duration - elapsed)); - - if (end) { - startNextAnimationInQ(animObj); - if (isFunction(complete)) - complete(); - } - else - qObj.frame = COMPATIBILITY.rAF()(frame); - }; - qObj.frame = COMPATIBILITY.rAF()(frame); - } - else { - for (key in to) - setAnimationValue(el, key, to[key]); - startNextAnimationInQ(animObj); - } - } - } - else if (guaranteedNext) - startNextAnimationInQ(animObj); - } - - function stop(el, clearQ, jumpToEnd) { - var animObj; - var qObj; - var key; - var i = 0; - for (; i < _animations[LEXICON.l]; i++) { - animObj = _animations[i]; - if (animObj.el === el) { - if (animObj.q[LEXICON.l] > 0) { - qObj = animObj.q[0]; - qObj.stop = true; - COMPATIBILITY.cAF()(qObj.frame); - animObj.q.splice(0, 1); - - if (jumpToEnd) - for (key in qObj.props) - setAnimationValue(el, key, qObj.props[key]); - - if (clearQ) - animObj.q = []; - else - startNextAnimationInQ(animObj, false); - } - break; - } - } - } - - function elementIsVisible(el) { - return !!(el[LEXICON.oW] || el[LEXICON.oH] || el.getClientRects()[LEXICON.l]); - } - - function FakejQuery(selector) { - if (arguments[LEXICON.l] === 0) - return this; - - var base = new FakejQuery(); - var elements = selector; - var i = 0; - var elms; - var el; - - if (_type(selector) == TYPES.s) { - elements = []; - if (selector.charAt(0) === '<') { - el = document.createElement('div'); - el.innerHTML = selector; - elms = el.children; - } - else { - elms = document.querySelectorAll(selector); - } - - for (; i < elms[LEXICON.l]; i++) - elements.push(elms[i]); - } - - if (elements) { - if (_type(elements) != TYPES.s && (!isArrayLike(elements) || elements === window || elements === elements.self)) - elements = [elements]; - - for (i = 0; i < elements[LEXICON.l]; i++) - base[i] = elements[i]; - - base[LEXICON.l] = elements[LEXICON.l]; - } - - return base; - }; - - FakejQuery[LEXICON.p] = { - - //EVENTS: - - on: function (eventName, handler) { - eventName = (eventName || _strEmpty).match(_rnothtmlwhite) || [_strEmpty]; - - var eventNameLength = eventName[LEXICON.l]; - var i = 0; - var el; - return this.each(function () { - el = this; - try { - if (el.addEventListener) { - for (; i < eventNameLength; i++) - el.addEventListener(eventName[i], handler); - } - else if (el.detachEvent) { - for (; i < eventNameLength; i++) - el.attachEvent('on' + eventName[i], handler); - } - } catch (e) { } - }); - }, - - off: function (eventName, handler) { - eventName = (eventName || _strEmpty).match(_rnothtmlwhite) || [_strEmpty]; - - var eventNameLength = eventName[LEXICON.l]; - var i = 0; - var el; - return this.each(function () { - el = this; - try { - if (el.removeEventListener) { - for (; i < eventNameLength; i++) - el.removeEventListener(eventName[i], handler); - } - else if (el.detachEvent) { - for (; i < eventNameLength; i++) - el.detachEvent('on' + eventName[i], handler); - } - } catch (e) { } - }); - }, - - one: function (eventName, handler) { - eventName = (eventName || _strEmpty).match(_rnothtmlwhite) || [_strEmpty]; - return this.each(function () { - var el = FakejQuery(this); - FakejQuery.each(eventName, function (i, oneEventName) { - var oneHandler = function (e) { - handler.call(this, e); - el.off(oneEventName, oneHandler); - }; - el.on(oneEventName, oneHandler); - }); - }); - }, - - trigger: function (eventName) { - var el; - var event; - return this.each(function () { - el = this; - if (document.createEvent) { - event = document.createEvent('HTMLEvents'); - event.initEvent(eventName, true, false); - el.dispatchEvent(event); - } - else { - el.fireEvent('on' + eventName); - } - }); - }, - - //DOM NODE INSERTING / REMOVING: - - append: function (child) { - return this.each(function () { insertAdjacentElement(this, 'beforeend', child); }); - }, - - prepend: function (child) { - return this.each(function () { insertAdjacentElement(this, 'afterbegin', child); }); - }, - - before: function (child) { - return this.each(function () { insertAdjacentElement(this, 'beforebegin', child); }); - }, - - after: function (child) { - return this.each(function () { insertAdjacentElement(this, 'afterend', child); }); - }, - - remove: function () { - return this.each(function () { - var el = this; - var parentNode = el.parentNode; - if (parentNode != null) - parentNode.removeChild(el); - }); - }, - - unwrap: function () { - var parents = []; - var i; - var el; - var parent; - - this.each(function () { - parent = this.parentNode; - if (inArray(parent, parents) === - 1) - parents.push(parent); - }); - - for (i = 0; i < parents[LEXICON.l]; i++) { - el = parents[i]; - parent = el.parentNode; - while (el.firstChild) - parent.insertBefore(el.firstChild, el); - parent.removeChild(el); - } - - return this; - }, - - wrapAll: function (wrapperHTML) { - var i; - var nodes = this; - var wrapper = FakejQuery(wrapperHTML)[0]; - var deepest = wrapper; - var parent = nodes[0].parentNode; - var previousSibling = nodes[0].previousSibling; - while (deepest.childNodes[LEXICON.l] > 0) - deepest = deepest.childNodes[0]; - - for (i = 0; nodes[LEXICON.l] - i; deepest.firstChild === nodes[0] && i++) - deepest.appendChild(nodes[i]); - - var nextSibling = previousSibling ? previousSibling.nextSibling : parent.firstChild; - parent.insertBefore(wrapper, nextSibling); - - return this; - }, - - wrapInner: function (wrapperHTML) { - return this.each(function () { - var el = FakejQuery(this); - var contents = el.contents(); - - if (contents[LEXICON.l]) - contents.wrapAll(wrapperHTML); - else - el.append(wrapperHTML); - }); - }, - - wrap: function (wrapperHTML) { - return this.each(function () { FakejQuery(this).wrapAll(wrapperHTML); }); - }, - - - //DOM NODE MANIPULATION / INFORMATION: - - css: function (styles, val) { - var el; - var key; - var cptStyle; - var getCptStyle = window.getComputedStyle; - if (_type(styles) == TYPES.s) { - if (val === undefined) { - el = this[0]; - cptStyle = getCptStyle ? getCptStyle(el, null) : el.currentStyle[styles]; - - //https://bugzilla.mozilla.org/show_bug.cgi?id=548397 can be null sometimes if iframe with display: none (firefox only!) - return getCptStyle ? cptStyle != null ? cptStyle.getPropertyValue(styles) : el[LEXICON.s][styles] : cptStyle; - } - else { - return this.each(function () { - setCSSVal(this, styles, val); - }); - } - } - else { - return this.each(function () { - for (key in styles) - setCSSVal(this, key, styles[key]); - }); - } - }, - - hasClass: function (className) { - var elem, i = 0; - var classNamePrepared = _strSpace + className + _strSpace; - var classList; - - while ((elem = this[i++])) { - classList = elem.classList; - if (classList && classList.contains(className)) - return true; - else if (elem.nodeType === 1 && (_strSpace + stripAndCollapse(elem.className + _strEmpty) + _strSpace).indexOf(classNamePrepared) > -1) - return true; - } - - return false; - }, - - addClass: function (className) { - var classes; - var elem; - var cur; - var curValue; - var clazz; - var finalValue; - var supportClassList; - var elmClassList; - var i = 0; - var v = 0; - - if (className) { - classes = className.match(_rnothtmlwhite) || []; - - while ((elem = this[i++])) { - elmClassList = elem.classList; - if (supportClassList === undefined) - supportClassList = elmClassList !== undefined; - - if (supportClassList) { - while ((clazz = classes[v++])) - elmClassList.add(clazz); - } - else { - curValue = elem.className + _strEmpty; - cur = elem.nodeType === 1 && (_strSpace + stripAndCollapse(curValue) + _strSpace); - - if (cur) { - while ((clazz = classes[v++])) - if (cur.indexOf(_strSpace + clazz + _strSpace) < 0) - cur += clazz + _strSpace; - - finalValue = stripAndCollapse(cur); - if (curValue !== finalValue) - elem.className = finalValue; - } - } - } - } - - return this; - }, - - removeClass: function (className) { - var classes; - var elem; - var cur; - var curValue; - var clazz; - var finalValue; - var supportClassList; - var elmClassList; - var i = 0; - var v = 0; - - if (className) { - classes = className.match(_rnothtmlwhite) || []; - - while ((elem = this[i++])) { - elmClassList = elem.classList; - if (supportClassList === undefined) - supportClassList = elmClassList !== undefined; - - if (supportClassList) { - while ((clazz = classes[v++])) - elmClassList.remove(clazz); - } - else { - curValue = elem.className + _strEmpty; - cur = elem.nodeType === 1 && (_strSpace + stripAndCollapse(curValue) + _strSpace); - - if (cur) { - while ((clazz = classes[v++])) - while (cur.indexOf(_strSpace + clazz + _strSpace) > -1) - cur = cur.replace(_strSpace + clazz + _strSpace, _strSpace); - - finalValue = stripAndCollapse(cur); - if (curValue !== finalValue) - elem.className = finalValue; - } - } - } - } - - return this; - }, - - hide: function () { - return this.each(function () { this[LEXICON.s].display = 'none'; }); - }, - - show: function () { - return this.each(function () { this[LEXICON.s].display = 'block'; }); - }, - - attr: function (attrName, value) { - var i = 0; - var el; - while (el = this[i++]) { - if (value === undefined) - return el.getAttribute(attrName); - el.setAttribute(attrName, value); - } - return this; - }, - - removeAttr: function (attrName) { - return this.each(function () { this.removeAttribute(attrName); }); - }, - - offset: function () { - var el = this[0]; - var rect = el[LEXICON.bCR](); - var scrollLeft = window.pageXOffset || document.documentElement[_strScrollLeft]; - var scrollTop = window.pageYOffset || document.documentElement[_strScrollTop]; - return { - top: rect.top + scrollTop, - left: rect.left + scrollLeft - }; - }, - - position: function () { - var el = this[0]; - return { - top: el.offsetTop, - left: el.offsetLeft - }; - }, - - scrollLeft: function (value) { - var i = 0; - var el; - while (el = this[i++]) { - if (value === undefined) - return el[_strScrollLeft]; - el[_strScrollLeft] = value; - } - return this; - }, - - scrollTop: function (value) { - var i = 0; - var el; - while (el = this[i++]) { - if (value === undefined) - return el[_strScrollTop]; - el[_strScrollTop] = value; - } - return this; - }, - - val: function (value) { - var el = this[0]; - if (!value) - return el.value; - el.value = value; - return this; - }, - - - //DOM TRAVERSAL / FILTERING: - - first: function () { - return this.eq(0); - }, - - last: function () { - return this.eq(-1); - }, - - eq: function (index) { - return FakejQuery(this[index >= 0 ? index : this[LEXICON.l] + index]); - }, - - find: function (selector) { - var children = []; - var i; - this.each(function () { - var el = this; - var ch = el.querySelectorAll(selector); - for (i = 0; i < ch[LEXICON.l]; i++) - children.push(ch[i]); - }); - return FakejQuery(children); - }, - - children: function (selector) { - var children = []; - var el; - var ch; - var i; - - this.each(function () { - ch = this.children; - for (i = 0; i < ch[LEXICON.l]; i++) { - el = ch[i]; - if (selector) { - if ((el.matches && el.matches(selector)) || matches(el, selector)) - children.push(el); - } - else - children.push(el); - } - }); - return FakejQuery(children); - }, - - parent: function (selector) { - var parents = []; - var parent; - this.each(function () { - parent = this.parentNode; - if (selector ? FakejQuery(parent).is(selector) : true) - parents.push(parent); - }); - return FakejQuery(parents); - }, - - is: function (selector) { - - var el; - var i; - for (i = 0; i < this[LEXICON.l]; i++) { - el = this[i]; - if (selector === ':visible') - return elementIsVisible(el); - if (selector === ':hidden') - return !elementIsVisible(el); - if ((el.matches && el.matches(selector)) || matches(el, selector)) - return true; - } - return false; - }, - - contents: function () { - var contents = []; - var childs; - var i; - - this.each(function () { - childs = this.childNodes; - for (i = 0; i < childs[LEXICON.l]; i++) - contents.push(childs[i]); - }); - - return FakejQuery(contents); - }, - - each: function (callback) { - return each(this, callback); - }, - - - //ANIMATION: - - animate: function (props, duration, easing, complete) { - return this.each(function () { animate(this, props, duration, easing, complete); }); - }, - - stop: function (clearQ, jump) { - return this.each(function () { stop(this, clearQ, jump); }); - } - }; - - extend(FakejQuery, { - extend: extend, - inArray: inArray, - isEmptyObject: isEmptyObject, - isPlainObject: isPlainObject, - each: each - }); - - return FakejQuery; - })(); - var INSTANCES = (function () { - var _targets = []; - var _instancePropertyString = '__overlayScrollbars__'; - - /** - * Register, unregister or get a certain (or all) instances. - * Register: Pass the target and the instance. - * Unregister: Pass the target and null. - * Get Instance: Pass the target from which the instance shall be got. - * Get Targets: Pass no arguments. - * @param target The target to which the instance shall be registered / from which the instance shall be unregistered / the instance shall be got - * @param instance The instance. - * @returns {*|void} Returns the instance from the given target. - */ - return function (target, instance) { - var argLen = arguments[LEXICON.l]; - if (argLen < 1) { - //return all targets - return _targets; - } - else { - if (instance) { - //register instance - target[_instancePropertyString] = instance; - _targets.push(target); - } - else { - var index = COMPATIBILITY.inA(target, _targets); - if (index > -1) { - if (argLen > 1) { - //unregister instance - delete target[_instancePropertyString]; - _targets.splice(index, 1); - } - else { - //get instance from target - return _targets[index][_instancePropertyString]; - } - } - } - } - } - })(); - var PLUGIN = (function () { - var _plugin; - var _pluginsGlobals; - var _pluginsAutoUpdateLoop; - var _pluginsExtensions = []; - var _pluginsOptions = (function () { - var type = COMPATIBILITY.type; - var possibleTemplateTypes = [ - TYPES.b, //boolean - TYPES.n, //number - TYPES.s, //string - TYPES.a, //array - TYPES.o, //object - TYPES.f, //function - TYPES.z //null - ]; - var restrictedStringsSplit = ' '; - var restrictedStringsPossibilitiesSplit = ':'; - var classNameAllowedValues = [TYPES.z, TYPES.s]; - var numberAllowedValues = TYPES.n; - var booleanNullAllowedValues = [TYPES.z, TYPES.b]; - var booleanTrueTemplate = [true, TYPES.b]; - var booleanFalseTemplate = [false, TYPES.b]; - var callbackTemplate = [null, [TYPES.z, TYPES.f]]; - var updateOnLoadTemplate = [['img'], [TYPES.s, TYPES.a, TYPES.z]]; - var inheritedAttrsTemplate = [['style', 'class'], [TYPES.s, TYPES.a, TYPES.z]]; - var resizeAllowedValues = 'n:none b:both h:horizontal v:vertical'; - var overflowBehaviorAllowedValues = 'v-h:visible-hidden v-s:visible-scroll s:scroll h:hidden'; - var scrollbarsVisibilityAllowedValues = 'v:visible h:hidden a:auto'; - var scrollbarsAutoHideAllowedValues = 'n:never s:scroll l:leave m:move'; - var optionsDefaultsAndTemplate = { - className: ['os-theme-dark', classNameAllowedValues], //null || string - resize: ['none', resizeAllowedValues], //none || both || horizontal || vertical || n || b || h || v - sizeAutoCapable: booleanTrueTemplate, //true || false - clipAlways: booleanTrueTemplate, //true || false - normalizeRTL: booleanTrueTemplate, //true || false - paddingAbsolute: booleanFalseTemplate, //true || false - autoUpdate: [null, booleanNullAllowedValues], //true || false || null - autoUpdateInterval: [33, numberAllowedValues], //number - updateOnLoad: updateOnLoadTemplate, //string || array || null - nativeScrollbarsOverlaid: { - showNativeScrollbars: booleanFalseTemplate, //true || false - initialize: booleanTrueTemplate //true || false - }, - overflowBehavior: { - x: ['scroll', overflowBehaviorAllowedValues], //visible-hidden || visible-scroll || hidden || scroll || v-h || v-s || h || s - y: ['scroll', overflowBehaviorAllowedValues] //visible-hidden || visible-scroll || hidden || scroll || v-h || v-s || h || s - }, - scrollbars: { - visibility: ['auto', scrollbarsVisibilityAllowedValues], //visible || hidden || auto || v || h || a - autoHide: ['never', scrollbarsAutoHideAllowedValues], //never || scroll || leave || move || n || s || l || m - autoHideDelay: [800, numberAllowedValues], //number - dragScrolling: booleanTrueTemplate, //true || false - clickScrolling: booleanFalseTemplate, //true || false - touchSupport: booleanTrueTemplate, //true || false - snapHandle: booleanFalseTemplate //true || false - }, - textarea: { - dynWidth: booleanFalseTemplate, //true || false - dynHeight: booleanFalseTemplate, //true || false - inheritedAttrs: inheritedAttrsTemplate //string || array || null - }, - callbacks: { - onInitialized: callbackTemplate, //null || function - onInitializationWithdrawn: callbackTemplate, //null || function - onDestroyed: callbackTemplate, //null || function - onScrollStart: callbackTemplate, //null || function - onScroll: callbackTemplate, //null || function - onScrollStop: callbackTemplate, //null || function - onOverflowChanged: callbackTemplate, //null || function - onOverflowAmountChanged: callbackTemplate, //null || function - onDirectionChanged: callbackTemplate, //null || function - onContentSizeChanged: callbackTemplate, //null || function - onHostSizeChanged: callbackTemplate, //null || function - onUpdated: callbackTemplate //null || function - } - }; - var convert = function (template) { - var recursive = function (obj) { - var key; - var val; - var valType; - for (key in obj) { - if (!obj[LEXICON.hOP](key)) - continue; - val = obj[key]; - valType = type(val); - if (valType == TYPES.a) - obj[key] = val[template ? 1 : 0]; - else if (valType == TYPES.o) - obj[key] = recursive(val); - } - return obj; - }; - return recursive(FRAMEWORK.extend(true, {}, optionsDefaultsAndTemplate)); - }; - - return { - _defaults: convert(), - - _template: convert(true), - - /** - * Validates the passed object by the passed template. - * @param obj The object which shall be validated. - * @param template The template which defines the allowed values and types. - * @param writeErrors True if errors shall be logged to the console. - * @param diffObj If a object is passed then only valid differences to this object will be returned. - * @returns {{}} A object which contains two objects called "default" and "prepared" which contains only the valid properties of the passed original object and discards not different values compared to the passed diffObj. - */ - _validate: function (obj, template, writeErrors, diffObj) { - var validatedOptions = {}; - var validatedOptionsPrepared = {}; - var objectCopy = FRAMEWORK.extend(true, {}, obj); - var inArray = FRAMEWORK.inArray; - var isEmptyObj = FRAMEWORK.isEmptyObject; - var checkObjectProps = function (data, template, diffData, validatedOptions, validatedOptionsPrepared, prevPropName) { - for (var prop in template) { - if (template[LEXICON.hOP](prop) && data[LEXICON.hOP](prop)) { - var isValid = false; - var isDiff = false; - var templateValue = template[prop]; - var templateValueType = type(templateValue); - var templateIsComplex = templateValueType == TYPES.o; - var templateTypes = !COMPATIBILITY.isA(templateValue) ? [templateValue] : templateValue; - var dataDiffValue = diffData[prop]; - var dataValue = data[prop]; - var dataValueType = type(dataValue); - var propPrefix = prevPropName ? prevPropName + '.' : ''; - var error = "The option \"" + propPrefix + prop + "\" wasn't set, because"; - var errorPossibleTypes = []; - var errorRestrictedStrings = []; - var restrictedStringValuesSplit; - var restrictedStringValuesPossibilitiesSplit; - var isRestrictedValue; - var mainPossibility; - var currType; - var i; - var v; - var j; - - dataDiffValue = dataDiffValue === undefined ? {} : dataDiffValue; - - //if the template has a object as value, it means that the options are complex (verschachtelt) - if (templateIsComplex && dataValueType == TYPES.o) { - validatedOptions[prop] = {}; - validatedOptionsPrepared[prop] = {}; - checkObjectProps(dataValue, templateValue, dataDiffValue, validatedOptions[prop], validatedOptionsPrepared[prop], propPrefix + prop); - FRAMEWORK.each([data, validatedOptions, validatedOptionsPrepared], function (index, value) { - if (isEmptyObj(value[prop])) { - delete value[prop]; - } - }); - } - else if (!templateIsComplex) { - for (i = 0; i < templateTypes[LEXICON.l]; i++) { - currType = templateTypes[i]; - templateValueType = type(currType); - //if currtype is string and starts with restrictedStringPrefix and end with restrictedStringSuffix - isRestrictedValue = templateValueType == TYPES.s && inArray(currType, possibleTemplateTypes) === -1; - if (isRestrictedValue) { - errorPossibleTypes.push(TYPES.s); - - //split it into a array which contains all possible values for example: ["y:yes", "n:no", "m:maybe"] - restrictedStringValuesSplit = currType.split(restrictedStringsSplit); - errorRestrictedStrings = errorRestrictedStrings.concat(restrictedStringValuesSplit); - for (v = 0; v < restrictedStringValuesSplit[LEXICON.l]; v++) { - //split the possible values into their possibiliteis for example: ["y", "yes"] -> the first is always the mainPossibility - restrictedStringValuesPossibilitiesSplit = restrictedStringValuesSplit[v].split(restrictedStringsPossibilitiesSplit); - mainPossibility = restrictedStringValuesPossibilitiesSplit[0]; - for (j = 0; j < restrictedStringValuesPossibilitiesSplit[LEXICON.l]; j++) { - //if any possibility matches with the dataValue, its valid - if (dataValue === restrictedStringValuesPossibilitiesSplit[j]) { - isValid = true; - break; - } - } - if (isValid) - break; - } - } - else { - errorPossibleTypes.push(currType); - - if (dataValueType === currType) { - isValid = true; - break; - } - } - } - - if (isValid) { - isDiff = dataValue !== dataDiffValue; - - if (isDiff) - validatedOptions[prop] = dataValue; - - if (isRestrictedValue ? inArray(dataDiffValue, restrictedStringValuesPossibilitiesSplit) < 0 : isDiff) - validatedOptionsPrepared[prop] = isRestrictedValue ? mainPossibility : dataValue; - } - else if (writeErrors) { - console.warn(error + " it doesn't accept the type [ " + dataValueType.toUpperCase() + " ] with the value of \"" + dataValue + "\".\r\n" + - "Accepted types are: [ " + errorPossibleTypes.join(', ').toUpperCase() + " ]." + - (errorRestrictedStrings[length] > 0 ? "\r\nValid strings are: [ " + errorRestrictedStrings.join(', ').split(restrictedStringsPossibilitiesSplit).join(', ') + " ]." : '')); - } - delete data[prop]; - } - } - } - }; - checkObjectProps(objectCopy, template, diffObj || {}, validatedOptions, validatedOptionsPrepared); - - //add values which aren't specified in the template to the finished validated object to prevent them from being discarded - /* - if(keepForeignProps) { - FRAMEWORK.extend(true, validatedOptions, objectCopy); - FRAMEWORK.extend(true, validatedOptionsPrepared, objectCopy); - } - */ - - if (!isEmptyObj(objectCopy) && writeErrors) - console.warn('The following options are discarded due to invalidity:\r\n' + window.JSON.stringify(objectCopy, null, 2)); - - return { - _default: validatedOptions, - _prepared: validatedOptionsPrepared - }; - } - } - }()); - - /** - * Initializes the object which contains global information about the plugin and each instance of it. - */ - function initOverlayScrollbarsStatics() { - if (!_pluginsGlobals) - _pluginsGlobals = new OverlayScrollbarsGlobals(_pluginsOptions._defaults); - if (!_pluginsAutoUpdateLoop) - _pluginsAutoUpdateLoop = new OverlayScrollbarsAutoUpdateLoop(_pluginsGlobals); - } - - /** - * The global object for the OverlayScrollbars objects. It contains resources which every OverlayScrollbars object needs. This object is initialized only once: if the first OverlayScrollbars object gets initialized. - * @param defaultOptions - * @constructor - */ - function OverlayScrollbarsGlobals(defaultOptions) { - var _base = this; - var strOverflow = 'overflow'; - var strHidden = 'hidden'; - var strScroll = 'scroll'; - var bodyElement = FRAMEWORK('body'); - var scrollbarDummyElement = FRAMEWORK('
- import
- {{ " { " }}
- OverlayScrollbarsComponent
- {{ " } " }}
- from
- {{ " 'overlayscrollbars-ngx'" }}
- ;
-
-| - Class: - | -- {{ componentClass }} - | -
| - Description: - | -OverlayScrollbars as a {{ framework }}-Component. | -
- import
- {{ " { " }}
- OverlayScrollbarsComponent
- {{ " } " }}
- from
- {{ " 'overlayscrollbars-vue'" }}
- ;
-
- | - Class: - | -- {{ componentClass }} - | -
| - Description: - | -OverlayScrollbars as a {{ framework }}-Component. | -