From 6e082597598975874fb056f52c798a409306e044 Mon Sep 17 00:00:00 2001 From: ildyria Date: Sun, 17 Sep 2023 12:38:33 +0200 Subject: [PATCH] cleaning unused files + sync front end --- public/Lychee-front | 2 +- public/css/app.css | 3388 ------------------ public/dist/frontend.js | 20 +- public/dist/landing.js | 4 +- public/js/app.js | 166 - public/mix-manifest.json | 4 - resources/assets/js/app.js | 0 resources/assets/scss/_animations.scss | 79 - resources/assets/scss/_content.scss | 513 --- resources/assets/scss/_footer.scss | 33 - resources/assets/scss/_header.scss | 272 -- resources/assets/scss/_imageview.scss | 271 -- resources/assets/scss/_justified_layout.scss | 75 - resources/assets/scss/_leftMenu.scss | 95 - resources/assets/scss/_loading.scss | 55 - resources/assets/scss/_logs_diagnostics.scss | 94 - resources/assets/scss/_message.scss | 514 --- resources/assets/scss/_multiselect.scss | 7 - resources/assets/scss/_photo-links.scss | 76 - resources/assets/scss/_photo-thumbs.scss | 451 --- resources/assets/scss/_reset.scss | 139 - resources/assets/scss/_settings.scss | 410 --- resources/assets/scss/_sharing.scss | 284 -- resources/assets/scss/_sidebar.scss | 352 -- resources/assets/scss/_social-footer.scss | 59 - resources/assets/scss/_u2f.scss | 256 -- resources/assets/scss/_users.scss | 280 -- resources/assets/scss/_warning.scss | 24 - resources/assets/scss/app.scss | 101 - resources/js/vendor/webauthn/webauthn.js | 356 -- resources/views/layouts/app.blade.php | 37 - 31 files changed, 13 insertions(+), 8404 deletions(-) delete mode 100644 public/css/app.css delete mode 100644 public/js/app.js delete mode 100644 public/mix-manifest.json delete mode 100644 resources/assets/js/app.js delete mode 100644 resources/assets/scss/_animations.scss delete mode 100644 resources/assets/scss/_content.scss delete mode 100644 resources/assets/scss/_footer.scss delete mode 100644 resources/assets/scss/_header.scss delete mode 100644 resources/assets/scss/_imageview.scss delete mode 100644 resources/assets/scss/_justified_layout.scss delete mode 100644 resources/assets/scss/_leftMenu.scss delete mode 100644 resources/assets/scss/_loading.scss delete mode 100644 resources/assets/scss/_logs_diagnostics.scss delete mode 100644 resources/assets/scss/_message.scss delete mode 100644 resources/assets/scss/_multiselect.scss delete mode 100644 resources/assets/scss/_photo-links.scss delete mode 100644 resources/assets/scss/_photo-thumbs.scss delete mode 100644 resources/assets/scss/_reset.scss delete mode 100644 resources/assets/scss/_settings.scss delete mode 100644 resources/assets/scss/_sharing.scss delete mode 100644 resources/assets/scss/_sidebar.scss delete mode 100644 resources/assets/scss/_social-footer.scss delete mode 100644 resources/assets/scss/_u2f.scss delete mode 100644 resources/assets/scss/_users.scss delete mode 100644 resources/assets/scss/_warning.scss delete mode 100644 resources/assets/scss/app.scss delete mode 100644 resources/js/vendor/webauthn/webauthn.js delete mode 100644 resources/views/layouts/app.blade.php diff --git a/public/Lychee-front b/public/Lychee-front index 742e4538b0..a6eb679e3e 160000 --- a/public/Lychee-front +++ b/public/Lychee-front @@ -1 +1 @@ -Subproject commit 742e4538b0827a72f23d2ea05dd8e2ad9cd3df28 +Subproject commit a6eb679e3e13a49239901ba87bd695ba1dc04cf6 diff --git a/public/css/app.css b/public/css/app.css deleted file mode 100644 index 2b67d1837d..0000000000 --- a/public/css/app.css +++ /dev/null @@ -1,3388 +0,0 @@ -@charset "UTF-8"; -html, -body, -div, -span, -applet, -object, -iframe, -h1, -h2, -h3, -h4, -h5, -h6, -p, -blockquote, -pre, -a, -abbr, -acronym, -address, -big, -cite, -code, -del, -dfn, -em, -img, -ins, -kbd, -q, -s, -samp, -small, -strike, -strong, -sub, -sup, -tt, -var, -b, -u, -i, -center, -dl, -dt, -dd, -ol, -ul, -li, -fieldset, -form, -label, -legend, -table, -caption, -tbody, -tfoot, -thead, -tr, -th, -td, -article, -aside, -canvas, -details, -embed, -figure, -figcaption, -footer, -header, -hgroup, -menu, -nav, -output, -ruby, -section, -summary, -time, -mark, -audio, -video { - margin: 0; - padding: 0; - border: 0; - font: inherit; - font-size: 100%; - vertical-align: baseline; -} - -article, -aside, -details, -figcaption, -figure, -footer, -header, -hgroup, -menu, -nav, -section { - display: block; -} - -body { - line-height: 1; -} - -ol, -ul { - list-style: none; -} - -blockquote, -q { - quotes: none; -} - -blockquote:before, -blockquote:after, -q:before, -q:after { - content: ""; - content: none; -} - -table { - border-collapse: collapse; - border-spacing: 0; -} - -em, -i { - font-style: italic; -} - -strong, -b { - font-weight: bold; -} - -* { - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - transition: color 0.3s, opacity 0.3s ease-out, transform 0.3s ease-out, box-shadow 0.3s; -} - -html, -body { - min-height: 100vh; - position: relative; -} - -body { - background-color: #1d1d1d; - font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; - font-size: 12px; - -webkit-font-smoothing: antialiased; - -moz-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} -body.view { - background-color: #0f0f0f; -} - -div#container { - position: relative; -} - -input { - -webkit-user-select: text !important; - -moz-user-select: text !important; - -ms-user-select: text !important; - user-select: text !important; -} - -.svgsprite { - display: none; -} - -.iconic { - width: 100%; - height: 100%; -} - -#upload { - display: none; -} - -.fadeIn { - -webkit-animation-name: fadeIn; - animation-name: fadeIn; - -webkit-animation-duration: 0.3s; - animation-duration: 0.3s; - -webkit-animation-fill-mode: forwards; - animation-fill-mode: forwards; - -webkit-animation-timing-function: cubic-bezier(0.51, 0.92, 0.24, 1); - animation-timing-function: cubic-bezier(0.51, 0.92, 0.24, 1); -} - -.fadeOut { - -webkit-animation-name: fadeOut; - animation-name: fadeOut; - -webkit-animation-duration: 0.3s; - animation-duration: 0.3s; - -webkit-animation-fill-mode: forwards; - animation-fill-mode: forwards; - -webkit-animation-timing-function: cubic-bezier(0.51, 0.92, 0.24, 1); - animation-timing-function: cubic-bezier(0.51, 0.92, 0.24, 1); -} - -@-webkit-keyframes fadeIn { - 0% { - opacity: 0; - } - 100% { - opacity: 1; - } -} - -@keyframes fadeIn { - 0% { - opacity: 0; - } - 100% { - opacity: 1; - } -} -@-webkit-keyframes fadeOut { - 0% { - opacity: 1; - } - 100% { - opacity: 0; - } -} -@keyframes fadeOut { - 0% { - opacity: 1; - } - 100% { - opacity: 0; - } -} -@-webkit-keyframes moveBackground { - 0% { - background-position-x: 0px; - } - 100% { - background-position-x: -100px; - } -} -@keyframes moveBackground { - 0% { - background-position-x: 0px; - } - 100% { - background-position-x: -100px; - } -} -@-webkit-keyframes zoomIn { - 0% { - opacity: 0; - transform: scale(0.8); - } - 100% { - opacity: 1; - transform: scale(1); - } -} -@keyframes zoomIn { - 0% { - opacity: 0; - transform: scale(0.8); - } - 100% { - opacity: 1; - transform: scale(1); - } -} -@-webkit-keyframes zoomOut { - 0% { - opacity: 1; - transform: scale(1); - } - 100% { - opacity: 0; - transform: scale(0.8); - } -} -@keyframes zoomOut { - 0% { - opacity: 1; - transform: scale(1); - } - 100% { - opacity: 0; - transform: scale(0.8); - } -} -@-webkit-keyframes pulse { - 0% { - opacity: 1; - } - 50% { - opacity: 0.3; - } - 100% { - opacity: 1; - } -} -@keyframes pulse { - 0% { - opacity: 1; - } - 50% { - opacity: 0.3; - } - 100% { - opacity: 1; - } -} -.content { - display: flex; - flex-wrap: wrap; - align-content: flex-start; - padding: 50px 30px 33px 0; - width: calc(100% - 30px); - transition: margin-left 0.5s; - -webkit-overflow-scrolling: touch; - max-width: calc(100vw - 10px); -} -.content::before { - content: ""; - position: absolute; - left: 0; - width: 100%; - height: 1px; - background: rgba(255, 255, 255, 0.02); -} -.content--sidebar { - width: calc(100% - 380px); -} -.content.contentZoomIn .album, .content.contentZoomIn .photo { - -webkit-animation-name: zoomIn; - animation-name: zoomIn; -} -.content.contentZoomIn .divider { - -webkit-animation-name: fadeIn; - animation-name: fadeIn; -} -.content.contentZoomOut .album, .content.contentZoomOut .photo { - -webkit-animation-name: zoomOut; - animation-name: zoomOut; -} -.content.contentZoomOut .divider { - -webkit-animation-name: fadeOut; - animation-name: fadeOut; -} -.content .album { - position: relative; - width: 202px; - height: 202px; - margin: 30px 0 0 30px; - cursor: default; - -webkit-animation-duration: 0.2s; - animation-duration: 0.2s; - -webkit-animation-fill-mode: forwards; - animation-fill-mode: forwards; - -webkit-animation-timing-function: cubic-bezier(0.51, 0.92, 0.24, 1); - animation-timing-function: cubic-bezier(0.51, 0.92, 0.24, 1); -} -.content .album .thumbimg { - position: absolute; - width: 100%; - height: 100%; - background: #222; - color: #222; - box-shadow: 0 2px 5px rgba(0, 0, 0, 0.5); - border: 1px solid rgba(255, 255, 255, 0.5); - transition: opacity 0.3s ease-out, transform 0.3s ease-out, border-color 0.3s ease-out; -} -.content .album .thumbimg > img { - width: 100%; - height: 100%; -} -.content .album:focus .thumbimg, .content .album.active .thumbimg { - border-color: #2293ec; -} -.content .album:active .thumbimg { - transition: none; - border-color: #0f6ab2; -} -.content .album.selected img { - outline: 1px solid #2293ec; -} -.content .album .video::before { - content: ""; - position: absolute; - display: block; - height: 100%; - width: 100%; - background: url("../img/play-icon.png") no-repeat 46% 50%; - transition: all 0.3s; - will-change: opacity, height; -} -.content .album .video:focus::before { - opacity: 0.75; -} -.content .album .livephoto::before { - content: ""; - position: absolute; - display: block; - height: 100%; - width: 100%; - background: url("../img/live-photo-icon.png") no-repeat 46% 50%; - background-position: 2% 2%; - transition: all 0.3s; - will-change: opacity, height; -} -.content .album .livephoto:focus::before { - opacity: 0.75; -} -.content .album .thumbimg:first-child, -.content .album .thumbimg:nth-child(2) { - transform: rotate(0) translateY(0) translateX(0); - opacity: 0; -} -.content .album:focus .thumbimg:nth-child(1), .content .album:focus .thumbimg:nth-child(2) { - opacity: 1; - will-change: transform; -} -.content .album:focus .thumbimg:nth-child(1) { - transform: rotate(-2deg) translateY(10px) translateX(-12px); -} -.content .album:focus .thumbimg:nth-child(2) { - transform: rotate(5deg) translateY(-8px) translateX(12px); -} -.content .blurred span { - overflow: hidden; -} -.content .blurred img { - /* Safari 6.0 - 9.0 */ - filter: blur(5px); -} -.content .album .overlay { - position: absolute; - margin: 0 1px; - width: 100%; - background: linear-gradient(to bottom, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.6)); - bottom: 0px; -} -.content .album .overlay h1 { - min-height: 19px; - width: 180px; - margin: 12px 0 5px 15px; - color: #fff; - text-shadow: 0 1px 3px rgba(0, 0, 0, 0.4); - font-size: 16px; - font-weight: bold; - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; -} -.content .album .overlay a { - display: block; - margin: 0 0 12px 15px; - font-size: 11px; - color: #ccc; - text-shadow: 0 1px 3px rgba(0, 0, 0, 0.4); -} -.content .album .overlay a .iconic { - fill: #ccc; - margin: 0 5px 0 0; - width: 8px; - height: 8px; -} -.content .album .thumbimg[data-overlay=false] + .overlay { - background: none; -} -.content .album .thumbimg[data-overlay=false] + .overlay h1, .content .album .thumbimg[data-overlay=false] + .overlay a { - text-shadow: none; -} -.content .album .badges { - position: relative; - margin: -1px 0 0 6px; -} -.content .album .subalbum_badge { - position: absolute; - right: 0; - top: 0; -} -.content .album .badge { - display: none; - margin: 0 0 0 6px; - padding: 12px 8px 6px; - width: 18px; - background: #d92c34; - box-shadow: 0 0 2px rgba(0, 0, 0, 0.6); - border-radius: 0 0 5px 5px; - border: 1px solid #fff; - border-top: none; - color: #fff; - text-align: center; - text-shadow: 0 1px 0 rgba(0, 0, 0, 0.4); - opacity: 0.9; -} -.content .album .badge--visible { - display: inline-block; -} -.content .album .badge--not--hidden { - background: #00aa00; -} -.content .album .badge--hidden { - background: #ff9900; -} -.content .album .badge--cover { - display: "inline-block"; - background: #ff9900; -} -.content .album .badge--star { - display: inline-block; - background: #ffcc00; -} -.content .album .badge--nsfw { - display: inline-block; - background: #ff82ee; -} -.content .album .badge--list { - background: #2293ec; -} -.content .album .badge--tag { - display: inline-block; - background: #00aa00; -} -.content .album .badge .iconic { - fill: #fff; - width: 16px; - height: 16px; -} -.content .album .badge--folder { - display: inline-block; - box-shadow: none; - background: none; - border: none; -} -.content .album .badge--folder .iconic { - width: 12px; - height: 12px; -} -.content .divider { - margin: 50px 0 0; - padding: 10px 0 0; - width: 100%; - opacity: 0; - border-top: 1px solid rgba(255, 255, 255, 0.02); - box-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2); - -webkit-animation-duration: 0.2s; - animation-duration: 0.2s; - -webkit-animation-fill-mode: forwards; - animation-fill-mode: forwards; - -webkit-animation-timing-function: cubic-bezier(0.51, 0.92, 0.24, 1); - animation-timing-function: cubic-bezier(0.51, 0.92, 0.24, 1); -} -.content .divider:first-child { - margin-top: 10px; - border-top: 0; - box-shadow: none; -} -.content .divider h1 { - margin: 0 0 0 30px; - color: rgba(255, 255, 255, 0.6); - font-size: 14px; - font-weight: bold; -} - -@media only screen and (min-width: 320px) and (max-width: 567px) { - .content { - padding: 50px 0 33px 0; - width: 100%; - max-width: 100%; - } - .content .album { - --size: calc((100vw - 3px) / 3); - width: calc(var(--size) - 3px); - height: calc(var(--size) - 3px); - margin: 3px 0 0 3px; - } - .content .album .thumbimg { - width: calc(var(--size) - 5px); - height: calc(var(--size) - 5px); - } - .content .album .overlay { - width: calc(var(--size) - 5px); - } - .content .album .overlay h1 { - min-height: 14px; - width: calc(var(--size) - 19px); - margin: 8px 0 2px 6px; - font-size: 12px; - } - .content .album .overlay a { - display: none; - } - .content .album .badge { - padding: 4px 3px 3px; - width: 12px; - } - .content .album .badge .iconic { - width: 12px; - height: 12px; - } - .content .album .badge--folder .iconic { - width: 8px; - height: 8px; - } - .content .divider { - margin: 20px 0 0; - } - .content .divider:first-child { - margin-top: 0; - } - .content .divider h1 { - margin: 0 0 6px 8px; - font-size: 12px; - } -} -@media only screen and (min-width: 568px) and (max-width: 639px) { - .content { - padding: 50px 0 33px 0; - width: 100%; - max-width: 100%; - } - .content .album { - --size: calc((100vw - 3px) / 4); - width: calc(var(--size) - 3px); - height: calc(var(--size) - 3px); - margin: 3px 0 0 3px; - } - .content .album .thumbimg { - width: calc(var(--size) - 5px); - height: calc(var(--size) - 5px); - } - .content .album .overlay { - width: calc(var(--size) - 5px); - } - .content .album .overlay h1 { - min-height: 14px; - width: calc(var(--size) - 19px); - margin: 8px 0 2px 6px; - font-size: 12px; - } - .content .album .overlay a { - display: none; - } - .content .album .badge { - padding: 4px 3px 3px; - width: 14px; - } - .content .album .badge .iconic { - width: 14px; - height: 14px; - } - .content .album .badge--folder .iconic { - width: 9px; - height: 9px; - } - .content .divider { - margin: 24px 0 0; - } - .content .divider:first-child { - margin-top: 0; - } - .content .divider h1 { - margin: 0 0 6px 10px; - } -} -@media only screen and (min-width: 640px) and (max-width: 768px) { - .content { - padding: 50px 0 33px 0; - width: 100%; - max-width: 100%; - } - .content .album { - --size: calc((100vw - 5px) / 5); - width: calc(var(--size) - 5px); - height: calc(var(--size) - 5px); - margin: 5px 0 0 5px; - } - .content .album .thumbimg { - width: calc(var(--size) - 7px); - height: calc(var(--size) - 7px); - } - .content .album .overlay { - width: calc(var(--size) - 7px); - } - .content .album .overlay h1 { - min-height: 14px; - width: calc(var(--size) - 21px); - margin: 10px 0 3px 8px; - font-size: 12px; - } - .content .album .overlay a { - display: none; - } - .content .album .badge { - padding: 6px 4px 4px; - width: 16px; - } - .content .album .badge .iconic { - width: 16px; - height: 16px; - } - .content .album .badge--folder .iconic { - width: 10px; - height: 10px; - } - .content .divider { - margin: 28px 0 0; - } - .content .divider:first-child { - margin-top: 0; - } - .content .divider h1 { - margin: 0 0 6px 10px; - } -} -.no_content { - position: absolute; - top: 50%; - left: 50%; - padding-top: 20px; - color: rgba(255, 255, 255, 0.35); - text-align: center; - transform: translateX(-50%) translateY(-50%); -} -.no_content .iconic { - fill: rgba(255, 255, 255, 0.3); - margin: 0 0 10px; - width: 50px; - height: 50px; -} -.no_content p { - font-size: 16px; - font-weight: bold; -} - -.leftMenu__open { - margin-left: 250px; - width: calc(100% - 280px); -} - -@media (hover: hover) { - .content .album:hover .thumbimg, -.content .photo:hover .thumbimg { - border-color: #2293ec; - } - .content .album .video:hover::before, -.content .album .livephoto:hover::before, -.content .photo .video:hover::before, -.content .photo .livephoto:hover::before { - opacity: 0.75; - } - .content .album:hover .thumbimg:nth-child(1), -.content .album:hover .thumbimg:nth-child(2) { - opacity: 1; - will-change: transform; - } - .content .album:hover .thumbimg:nth-child(1) { - transform: rotate(-2deg) translateY(10px) translateX(-12px); - } - .content .album:hover .thumbimg:nth-child(2) { - transform: rotate(5deg) translateY(-8px) translateX(12px); - } - .content .photo:hover .overlay { - opacity: 1; - } -} -.photo { - cursor: default; - -webkit-animation-duration: 0.2s; - animation-duration: 0.2s; - -webkit-animation-fill-mode: forwards; - animation-fill-mode: forwards; - -webkit-animation-timing-function: cubic-bezier(0.51, 0.92, 0.24, 1); - animation-timing-function: cubic-bezier(0.51, 0.92, 0.24, 1); -} -.photo .thumbimg { - width: 100%; - height: 100%; - background: #222; - color: #222; - box-shadow: 0 2px 5px rgba(0, 0, 0, 0.5); - transition: opacity 0.3s ease-out, transform 0.3s ease-out, border-color 0.3s ease-out; -} -.photo .thumbimg > img { - width: 100%; - height: 100%; -} -.photo:focus .thumbimg, .photo.active .thumbimg { - border-color: #2293ec; -} -.photo:active .thumbimg { - transition: none; - border-color: #0f6ab2; -} -.photo.selected img { - outline: 1px solid #2293ec; -} -.photo .video::before { - content: ""; - position: absolute; - display: block; - height: 100%; - width: 100%; - background: url("../img/play-icon.png") no-repeat 46% 50%; - transition: all 0.3s; - will-change: opacity, height; -} -.photo .video:focus::before { - opacity: 0.75; -} -.photo .livephoto::before { - content: ""; - position: absolute; - display: block; - height: 100%; - width: 100%; - background: url("../img/live-photo-icon.png") no-repeat 46% 50%; - background-position: 2% 2%; - transition: all 0.3s; - will-change: opacity, height; -} -.photo .livephoto:focus::before { - opacity: 0.75; -} -.photo .overlay { - position: absolute; - margin: 0 0px; - width: 100%; - background: linear-gradient(to bottom, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.6)); - bottom: 0px; - opacity: 0; -} -.photo:focus .overlay, .photo.active .overlay { - opacity: 1; -} -.photo .overlay h1 { - min-height: 19px; - width: 180px; - margin: 12px 0 5px 15px; - color: #fff; - text-shadow: 0 1px 3px rgba(0, 0, 0, 0.4); - font-size: 16px; - font-weight: bold; - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; -} -.photo .overlay a { - display: block; - margin: 0 0 12px 15px; - font-size: 11px; - color: #ccc; - text-shadow: 0 1px 3px rgba(0, 0, 0, 0.4); -} -.photo .overlay a .iconic { - fill: #ccc; - margin: 0 5px 0 0; - width: 8px; - height: 8px; -} -.photo .badges { - position: relative; - margin: -1px 0 0 6px; -} -.photo .badge { - display: none; - margin: 0 0 0 6px; - padding: 12px 8px 6px; - width: 18px; - background: #d92c34; - box-shadow: 0 0 2px rgba(0, 0, 0, 0.6); - border-radius: 0 0 5px 5px; - border: 1px solid #fff; - border-top: none; - color: #fff; - text-align: center; - text-shadow: 0 1px 0 rgba(0, 0, 0, 0.4); - opacity: 0.9; -} -.photo .badge--visible { - display: inline-block; -} -.photo .badge--not--hidden { - background: #00aa00; -} -.photo .badge--hidden { - background: #ff9900; -} -.photo .badge--cover { - display: "inline-block"; - background: #ff9900; -} -.photo .badge--star { - display: inline-block; - background: #ffcc00; -} -.photo .badge--nsfw { - display: inline-block; - background: #ff82ee; -} -.photo .badge--list { - background: #2293ec; -} -.photo .badge--tag { - display: inline-block; - background: #00aa00; -} -.photo .badge .iconic { - fill: #fff; - width: 16px; - height: 16px; -} -.photo .badge--folder { - display: inline-block; - box-shadow: none; - background: none; - border: none; -} -.photo .badge--folder .iconic { - width: 12px; - height: 12px; -} - -.flkr { - display: flex; - flex-wrap: wrap; - flex-grow: 1; - align-content: flex-start; - width: 100%; -} -@media (min-width: 768px) { - .flkr { - /* FLICKR like image display */ - margin: 30px 0 0 30px; - } - .flkr > div, .flkr::after { - --ratio: calc(var(--w) / var(--h)); - --row-height: 260px; - flex-basis: calc(var(--ratio) * var(--row-height)); - } - .flkr > div { - margin: 0.25rem; - flex-grow: calc(var(--ratio) * 100); - } - .flkr::after { - --w: 2; - --h: 1; - content: ""; - flex-grow: 1000000; - } - .flkr > div > span { - display: block; - height: 100%; - width: 100%; - } - .flkr > div > span > img { - width: 100%; - } -} - -@media only screen and (min-width: 320px) and (max-width: 567px) { - .block .content { - padding: 50px 0 33px 0; - width: 100%; - max-width: 100%; - } - .block .content .photo { - --size: calc((100vw - 3px) / 3); - width: calc(var(--size) - 3px); - height: calc(var(--size) - 3px); - margin: 3px 0 0 3px; - } - .block .content .photo .thumbimg { - width: calc(var(--size) - 5px); - height: calc(var(--size) - 5px); - } - .block .content .photo .overlay { - width: calc(var(--size) - 5px); - } - .block .content .photo .overlay h1 { - min-height: 14px; - width: calc(var(--size) - 19px); - margin: 8px 0 2px 6px; - font-size: 12px; - } - .block .content .photo .overlay a { - display: none; - } - .block .content .photo .badge { - padding: 4px 3px 3px; - width: 12px; - } - .block .content .photo .badge .iconic { - width: 12px; - height: 12px; - } - .block .content .photo .badge--folder .iconic { - width: 8px; - height: 8px; - } - .block .content .divider { - margin: 20px 0 0; - } - .block .content .divider:first-child { - margin-top: 0; - } - .block .content .divider h1 { - margin: 0 0 6px 8px; - font-size: 12px; - } -} -@media only screen and (min-width: 568px) and (max-width: 639px) { - .block .content { - padding: 50px 0 33px 0; - width: 100%; - max-width: 100%; - } - .block .content .photo { - --size: calc((100vw - 3px) / 4); - width: calc(var(--size) - 3px); - height: calc(var(--size) - 3px); - margin: 3px 0 0 3px; - } - .block .content .photo .thumbimg { - width: calc(var(--size) - 5px); - height: calc(var(--size) - 5px); - } - .block .content .photo .overlay { - width: calc(var(--size) - 5px); - } - .block .content .photo .overlay h1 { - min-height: 14px; - width: calc(var(--size) - 19px); - margin: 8px 0 2px 6px; - font-size: 12px; - } - .block .content .photo .overlay a { - display: none; - } - .block .content .photo .badge { - padding: 4px 3px 3px; - width: 14px; - } - .block .content .photo .badge .iconic { - width: 14px; - height: 14px; - } - .block .content .photo .badge--folder .iconic { - width: 9px; - height: 9px; - } - .block .content .divider { - margin: 24px 0 0; - } - .block .content .divider:first-child { - margin-top: 0; - } - .block .content .divider h1 { - margin: 0 0 6px 10px; - } -} -@media only screen and (min-width: 640px) and (max-width: 768px) { - .block .content { - padding: 50px 0 33px 0; - width: 100%; - max-width: 100%; - } - .block .content .photo { - --size: calc((100vw - 5px) / 5); - width: calc(var(--size) - 5px); - height: calc(var(--size) - 5px); - margin: 5px 0 0 5px; - } - .block .content .photo .thumbimg { - width: calc(var(--size) - 7px); - height: calc(var(--size) - 7px); - } - .block .content .photo .overlay { - width: calc(var(--size) - 7px); - } - .block .content .photo .overlay h1 { - min-height: 14px; - width: calc(var(--size) - 21px); - margin: 10px 0 3px 8px; - font-size: 12px; - } - .block .content .photo .overlay a { - display: none; - } - .block .content .photo .badge { - padding: 6px 4px 4px; - width: 16px; - } - .block .content .photo .badge .iconic { - width: 16px; - height: 16px; - } - .block .content .photo .badge--folder .iconic { - width: 10px; - height: 10px; - } - .block .content .divider { - margin: 28px 0 0; - } - .block .content .divider:first-child { - margin-top: 0; - } - .block .content .divider h1 { - margin: 0 0 6px 10px; - } -} - -.masonry { - -moz-column-gap: 16px; - column-gap: 16px; -} -@media (max-width: calc((240px + 16px)* 14)) { - .masonry { - -moz-columns: 14; - columns: 14; - } -} -@media (max-width: calc((240px + 16px)* 13)) { - .masonry { - -moz-columns: 13; - columns: 13; - } -} -@media (max-width: calc((240px + 16px)* 12)) { - .masonry { - -moz-columns: 12; - columns: 12; - } -} -@media (max-width: calc((240px + 16px)* 11)) { - .masonry { - -moz-columns: 11; - columns: 11; - } -} -@media (max-width: calc((240px + 16px)* 10)) { - .masonry { - -moz-columns: 10; - columns: 10; - } -} -@media (max-width: calc((240px + 16px)* 9)) { - .masonry { - -moz-columns: 9; - columns: 9; - } -} -@media (max-width: calc((240px + 16px)* 8)) { - .masonry { - -moz-columns: 8; - columns: 8; - } -} -@media (max-width: calc((240px + 16px)* 7)) { - .masonry { - -moz-columns: 7; - columns: 7; - } -} -@media (max-width: calc((240px + 16px)* 6)) { - .masonry { - -moz-columns: 6; - columns: 6; - } -} -@media (max-width: calc((240px + 16px)* 5)) { - .masonry { - -moz-columns: 5; - columns: 5; - } -} -@media (max-width: calc((240px + 16px)* 4)) { - .masonry { - -moz-columns: 4; - columns: 4; - } -} -@media (max-width: calc((240px + 16px)* 3)) { - .masonry { - -moz-columns: 3; - columns: 3; - } -} -@media (max-width: calc((240px + 16px)* 2)) { - .masonry { - -moz-columns: 2; - columns: 2; - } -} -.masonry .photo { - display: inline-block; - margin-bottom: 16px; - position: relative; -} -.masonry .photo .thumbimg { - width: 100%; - height: 100%; - display: grid; -} -.masonry .photo img { - width: 100%; - border-radius: 5px; -} -.masonry .photo .overlay { - opacity: 1; -} - -/* The side navigation menu */ -.leftMenu { - height: 100vh; - /* 100% Full-height */ - width: 0; - /* 0 width - change this with JavaScript */ - position: fixed; - /* Stay in place */ - z-index: 4; - /* Stay on top */ - top: 0; - /* Stay at the top */ - left: 0; - background-color: #111; - /* Black*/ - overflow-x: hidden; - /* Disable horizontal scroll */ - padding-top: 49px; - /* Place content 49px from the top (same as menu bar height) */ - transition: 0.5s; - /* 0.5 second transition effect to slide in the sidenav */ -} - -/* The navigation menu links */ -.leftMenu a { - padding: 8px 8px 8px 32px; - text-decoration: none; - font-size: 18px; - color: #818181; - display: block; - transition: 0.3s; -} -.leftMenu a.linkMenu { - white-space: nowrap; -} - -/* Position and style the close button (top right corner) */ -.leftMenu .closebtn { - position: absolute; - top: 0; - right: 25px; - font-size: 36px; - margin-left: 50px; -} - -.leftMenu .closetxt { - position: absolute; - top: 0; - left: 0; - font-size: 24px; - height: 28px; - padding-top: 16px; - color: #111; - display: inline-block; - width: 210px; -} - -.leftMenu .iconic { - display: inline-block; - margin: 0 10px 0 1px; - width: 15px; - height: 14px; - fill: #818181; -} - -.leftMenu .iconic.ionicons { - margin: 0 8px -2px 0; - width: 18px; - height: 18px; -} - -.leftMenu__visible { - width: 250px; -} - -@media only screen and (max-width: 567px), only screen and (max-width: 640px) and (orientation: portrait) { - .leftMenu { - display: none !important; - } -} -@media (hover: hover) { - .leftMenu { - /* When you mouse over the navigation links, change their color */ - } - .leftMenu .closetxt:hover { - color: #818181; - } - .leftMenu a:hover { - color: #f1f1f1; - } -} -@media (hover: none) { - .leftMenu a { - padding: 14px 8px 14px 32px; - } -} -.header { - position: fixed; - height: 49px; - width: 100%; - background: linear-gradient(to bottom, #222222, #1a1a1a); - border-bottom: 1px solid #0f0f0f; - z-index: 1; - transition: transform 0.3s ease-out; -} -.header--hidden { - transform: translateY(-60px); -} -.header--loading { - transform: translateY(2px); -} -.header--error { - transform: translateY(40px); -} -.header--view { - border-bottom: none; -} -.header--view.header--error { - background-color: rgba(10, 10, 10, 0.99); -} -.header__toolbar { - display: none; - align-items: center; - position: relative; - box-sizing: border-box; - width: 100%; - height: 100%; -} -.header__toolbar--visible { - display: flex; -} -.header__toolbar--config .button .iconic { - transform: rotate(45deg); -} -.header__toolbar--config .header__title { - padding-right: 80px; -} -.header__title { - width: 100%; - padding: 16px 0; - color: #fff; - font-size: 16px; - font-weight: bold; - text-align: center; - cursor: default; - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; - transition: margin-left 0.5s; -} -.header__title .iconic { - display: none; - margin: 0 0 0 5px; - width: 10px; - height: 10px; - fill: rgba(255, 255, 255, 0.5); - transition: fill 0.2s ease-out; -} -.header__title:active .iconic { - transition: none; - fill: rgba(255, 255, 255, 0.8); -} -.header__title--editable .iconic { - display: inline-block; -} -.header .button { - flex-shrink: 0; - padding: 16px 8px; - height: 15px; -} -.header .button .iconic { - width: 15px; - height: 15px; - fill: rgba(255, 255, 255, 0.5); - transition: fill 0.2s ease-out; -} -.header .button:active .iconic { - transition: none; - fill: rgba(255, 255, 255, 0.8); -} -.header .button--star.active .iconic { - fill: #f0ef77; -} -.header .button--eye.active .iconic { - fill: #d92c34; -} -.header .button--eye.active--not-hidden .iconic { - fill: #00aa00; -} -.header .button--eye.active--hidden .iconic { - fill: #ff9900; -} -.header .button--share .iconic.ionicons { - margin: -2px 0 -2px; - width: 18px; - height: 18px; -} -.header .button--nsfw.active .iconic { - fill: #ff82ee; -} -.header .button--info.active .iconic { - fill: #2293ec; -} -.header #button_back, -.header #button_back_home, -.header #button_settings, -.header #button_close_config, -.header #button_signin { - padding: 16px 12px 16px 18px; -} -.header .button_add { - padding: 16px 18px 16px 12px; -} -.header__divider { - flex-shrink: 0; - width: 14px; -} -.header__search { - flex-shrink: 0; - width: 80px; - margin: 0; - padding: 5px 12px 6px 12px; - background-color: #1d1d1d; - color: #fff; - border: 1px solid rgba(0, 0, 0, 0.9); - box-shadow: 0 1px 0 rgba(255, 255, 255, 0.04); - outline: none; - border-radius: 50px; - opacity: 0.6; - transition: opacity 0.3s ease-out, box-shadow 0.3s ease-out, width 0.2s ease-out; -} -.header__search:focus { - width: 140px; - border-color: #2293ec; - box-shadow: 0 1px 0 rgba(255, 255, 255, 0); - opacity: 1; -} -.header__search:focus ~ .header__clear { - opacity: 1; -} -.header__search::-ms-clear { - display: none; -} -.header__search__field { - position: relative; -} -.header__clear { - position: absolute; - top: 50%; - -ms-transform: translateY(-50%); - transform: translateY(-50%); - right: 8px; - padding: 0; - color: rgba(255, 255, 255, 0.5); - font-size: 24px; - opacity: 0; - transition: color 0.2s ease-out; - cursor: default; -} -.header__clear_nomap { - right: 60px; -} -.header__hostedwith { - flex-shrink: 0; - padding: 5px 10px; - margin: 11px 0; - color: #888; - font-size: 13px; - border-radius: 100px; - cursor: default; -} -.header .leftMenu__open { - margin-left: 250px; -} - -@media (hover: hover) { - .header__title:hover .iconic, -.header .button:hover .iconic { - fill: white; - } - .header__clear:hover { - color: white; - } - .header__hostedwith:hover { - background-color: rgba(0, 0, 0, 0.3); - } -} -@media only screen and (max-width: 640px) { - #button_move, -#button_move_album, -#button_trash, -#button_trash_album, -#button_visibility, -#button_visibility_album, -#button_nsfw_album { - display: none !important; - } -} -@media only screen and (max-width: 640px) and (max-width: 567px) { - #button_rotate_ccwise, -#button_rotate_cwise { - display: none !important; - } - - .header__divider { - width: 0; - } -} -#imageview { - position: fixed; - display: none; - top: 0; - left: 0; - width: 100%; - height: 100%; - background-color: rgba(10, 10, 10, 0.98); - transition: background-color 0.3s; -} -#imageview.view { - background-color: inherit; -} -#imageview.full { - background-color: black; - cursor: none; -} -#imageview #image, -#imageview #livephoto { - position: absolute; - top: 60px; - right: 30px; - bottom: 30px; - left: 30px; - margin: auto; - max-width: calc(100% - 60px); - max-height: calc(100% - 90px); - width: auto; - height: auto; - transition: top 0.3s, right 0.3s, bottom 0.3s, left 0.3s, max-width 0.3s, max-height 0.3s; - -webkit-animation-name: zoomIn; - animation-name: zoomIn; - -webkit-animation-duration: 0.3s; - animation-duration: 0.3s; - -webkit-animation-timing-function: cubic-bezier(0.51, 0.92, 0.24, 1.15); - animation-timing-function: cubic-bezier(0.51, 0.92, 0.24, 1.15); - background-size: contain; - background-position: center; - background-repeat: no-repeat; -} -#imageview.full #image, #imageview.full #livephoto { - top: 0; - right: 0; - bottom: 0; - left: 0; - max-width: 100%; - max-height: 100%; -} -#imageview.image--sidebar #image, #imageview.image--sidebar #livephoto { - right: 380px; - max-width: calc(100% - 410px); -} -#imageview #image_overlay { - position: absolute; - bottom: 30px; - left: 30px; - color: #ffffff; - text-shadow: 1px 1px 2px #000000; - z-index: 3; -} -#imageview #image_overlay h1 { - font-size: 28px; - font-weight: 500; - transition: visibility 0.3s linear, opacity 0.3s linear; -} -#imageview #image_overlay p { - margin-top: 5px; - font-size: 20px; - line-height: 24px; -} -#imageview #image_overlay a .iconic { - fill: #fff; - margin: 0 5px 0 0; - width: 14px; - height: 14px; -} -#imageview .arrow_wrapper { - position: fixed; - width: 15%; - height: calc(100% - 60px); - top: 60px; -} -#imageview .arrow_wrapper--previous { - left: 0; -} -#imageview .arrow_wrapper--next { - right: 0; -} -#imageview .arrow_wrapper a { - position: fixed; - top: 50%; - margin: -19px 0 0; - padding: 8px 12px; - width: 16px; - height: 22px; - background-size: 100% 100%; - border: 1px solid rgba(255, 255, 255, 0.8); - opacity: 0.6; - z-index: 2; - transition: transform 0.2s ease-out, opacity 0.2s ease-out; - will-change: transform; -} -#imageview .arrow_wrapper a#previous { - left: -1px; - transform: translateX(-100%); -} -#imageview .arrow_wrapper a#next { - right: -1px; - transform: translateX(100%); -} -#imageview .arrow_wrapper .iconic { - fill: rgba(255, 255, 255, 0.8); -} -#imageview.image--sidebar .arrow_wrapper--next { - right: 350px; -} -#imageview.image--sidebar .arrow_wrapper a#next { - right: 349px; -} -#imageview video { - z-index: 1; -} - -@media (hover: hover) { - #imageview .arrow_wrapper:hover a#previous, #imageview .arrow_wrapper:hover a#next { - transform: translateX(0); - } - #imageview .arrow_wrapper a:hover { - opacity: 1; - } -} -@media only screen and (max-width: 567px), only screen and (max-width: 640px) and (orientation: portrait) { - #imageview #image, -#imageview #livephoto { - top: 0; - right: 0; - bottom: 0; - left: 0; - max-width: 100%; - max-height: 100%; - } - #imageview.image--sidebar #image, -#imageview.image--sidebar #livephoto { - right: 0; - max-width: 100%; - } - #imageview.image--sidebar .arrow_wrapper--next { - right: 0; - } - #imageview.image--sidebar .arrow_wrapper a#next { - right: -1px; - } - #imageview #image_overlay h1 { - font-size: 14px; - } - #imageview #image_overlay p { - margin-top: 2px; - font-size: 11px; - line-height: 13px; - } - #imageview #image_overlay a .iconic { - width: 9px; - height: 9px; - } -} -@media only screen and (min-width: 568px) and (max-width: 768px), only screen and (min-width: 568px) and (max-width: 640px) and (orientation: landscape) { - #imageview #image, -#imageview #livephoto { - top: 0; - right: 0; - bottom: 0; - left: 0; - max-width: 100%; - max-height: 100%; - } - #imageview.image--sidebar #image, -#imageview.image--sidebar #livephoto { - top: 50px; - right: 280px; - max-width: calc(100% - 280px); - max-height: calc(100% - 50px); - } - #imageview.image--sidebar .arrow_wrapper--next { - right: 280px; - } - #imageview.image--sidebar .arrow_wrapper a#next { - right: 279px; - } - #imageview #image_overlay h1 { - font-size: 18px; - } - #imageview #image_overlay p { - margin-top: 4px; - font-size: 14px; - line-height: 16px; - } - #imageview #image_overlay a .iconic { - width: 12px; - height: 12px; - } -} -.sidebar { - position: fixed; - top: 49px; - right: -360px; - width: 350px; - height: calc(100% - 49px); - background-color: rgba(25, 25, 25, 0.98); - border-left: 1px solid rgba(0, 0, 0, 0.2); - transform: translateX(0); - transition: transform 0.3s cubic-bezier(0.51, 0.92, 0.24, 1); - z-index: 4; -} -.sidebar.active { - transform: translateX(-360px); -} -.sidebar__header { - float: left; - height: 49px; - width: 100%; - background: linear-gradient(to bottom, rgba(255, 255, 255, 0.02), rgba(0, 0, 0, 0)); - border-top: 1px solid #2293ec; -} -.sidebar__header h1 { - position: absolute; - margin: 15px 0 15px 0; - width: 100%; - color: #fff; - font-size: 16px; - font-weight: bold; - text-align: center; - -webkit-user-select: text; - -moz-user-select: text; - -ms-user-select: text; - user-select: text; -} -.sidebar__wrapper { - float: left; - height: calc(100% - 49px); - width: 350px; - overflow: auto; - -webkit-overflow-scrolling: touch; -} -.sidebar__divider { - float: left; - padding: 12px 0 8px; - width: 100%; - border-top: 1px solid rgba(255, 255, 255, 0.02); - box-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2); -} -.sidebar__divider:first-child { - border-top: 0; - box-shadow: none; -} -.sidebar__divider h1 { - margin: 0 0 0 20px; - color: rgba(255, 255, 255, 0.6); - font-size: 14px; - font-weight: bold; - -webkit-user-select: text; - -moz-user-select: text; - -ms-user-select: text; - user-select: text; -} -.sidebar .edit { - display: inline-block; - margin-left: 3px; - width: 10px; -} -.sidebar .edit .iconic { - width: 10px; - height: 10px; - fill: rgba(255, 255, 255, 0.5); - transition: fill 0.2s ease-out; -} -.sidebar .edit:active .iconic { - transition: none; - fill: rgba(255, 255, 255, 0.8); -} -.sidebar table { - float: left; - margin: 10px 0 15px 20px; - width: calc(100% - 20px); -} -.sidebar table tr td { - padding: 5px 0px; - color: #fff; - font-size: 14px; - line-height: 19px; - -webkit-user-select: text; - -moz-user-select: text; - -ms-user-select: text; - user-select: text; -} -.sidebar table tr td:first-child { - width: 110px; -} -.sidebar table tr td:last-child { - padding-right: 10px; -} -.sidebar table tr td span { - -webkit-user-select: text; - -moz-user-select: text; - -ms-user-select: text; - user-select: text; -} -.sidebar #tags { - width: calc(100% - 40px); - margin: 16px 20px 12px 20px; - color: #fff; - display: inline-block; -} -.sidebar #tags > div { - display: inline-block; -} -.sidebar #tags .empty { - font-size: 14px; - margin: 0 2px 8px 0; - -webkit-user-select: text; - -moz-user-select: text; - -ms-user-select: text; - user-select: text; -} -.sidebar #tags .edit { - margin-top: 6px; -} -.sidebar #tags .empty .edit { - margin-top: 0; -} -.sidebar #tags .tag { - cursor: default; - display: inline-block; - padding: 6px 10px; - margin: 0 6px 8px 0; - background-color: rgba(0, 0, 0, 0.5); - border-radius: 100px; - font-size: 12px; - transition: background-color 0.2s; - -webkit-user-select: text; - -moz-user-select: text; - -ms-user-select: text; - user-select: text; -} -.sidebar #tags .tag span { - float: right; - padding: 0; - margin: 0 0 -2px 0; - width: 0; - overflow: hidden; - transform: scale(0); - transition: width 0.2s, margin 0.2s, transform 0.2s, fill 0.2s ease-out; -} -.sidebar #tags .tag span .iconic { - fill: #d92c34; - width: 8px; - height: 8px; -} -.sidebar #tags .tag span:active .iconic { - transition: none; - fill: #b22027; -} -.sidebar #leaflet_map_single_photo { - margin: 10px 0px 0px 20px; - height: 180px; - width: calc(100% - 40px); - float: left; -} -.sidebar .attr_location.search { - cursor: pointer; -} - -@media (hover: hover) { - .sidebar .edit:hover .iconic { - fill: white; - } - .sidebar #tags .tag:hover { - background-color: rgba(0, 0, 0, 0.3); - } - .sidebar #tags .tag:hover.search { - cursor: pointer; - } - .sidebar #tags .tag:hover span { - width: 9px; - margin: 0 0 -2px 5px; - transform: scale(1); - } - .sidebar #tags .tag span:hover .iconic { - fill: #e1575e; - } -} -@media only screen and (max-width: 567px), only screen and (max-width: 640px) and (orientation: portrait) { - .sidebar { - width: 240px; - height: unset; - background-color: rgba(0, 0, 0, 0.6); - } - .sidebar__wrapper { - padding-bottom: 10px; - } - .sidebar__header { - height: 22px; - } - .sidebar__header h1 { - margin: 6px 0; - font-size: 13px; - } - .sidebar__divider { - padding: 6px 0 2px; - } - .sidebar__divider h1 { - margin: 0 0 0 10px; - font-size: 12px; - } - .sidebar table { - margin: 4px 0 6px 10px; - width: calc(100% - 16px); - } - .sidebar table tr td { - padding: 2px 0; - font-size: 11px; - line-height: 12px; - } - .sidebar table tr td:first-child { - width: 80px; - } - .sidebar #tags { - margin: 4px 0 6px 10px; - width: calc(100% - 16px); - } - .sidebar #tags .empty { - margin: 0; - font-size: 11px; - } -} -@media only screen and (min-width: 568px) and (max-width: 768px), only screen and (min-width: 568px) and (max-width: 640px) and (orientation: landscape) { - .sidebar { - width: 280px; - } - .sidebar__wrapper { - padding-bottom: 10px; - } - .sidebar__header { - height: 28px; - } - .sidebar__header h1 { - margin: 8px 0; - font-size: 15px; - } - .sidebar__divider { - padding: 8px 0 4px; - } - .sidebar__divider h1 { - margin: 0 0 0 10px; - font-size: 13px; - } - .sidebar table { - margin: 4px 0 6px 10px; - width: calc(100% - 16px); - } - .sidebar table tr td { - padding: 2px 0; - font-size: 12px; - line-height: 13px; - } - .sidebar table tr td:first-child { - width: 90px; - } - .sidebar #tags { - margin: 4px 0 6px 10px; - width: calc(100% - 16px); - } - .sidebar #tags .empty { - margin: 0; - font-size: 12px; - } -} -#sensitive_warning { - background: rgba(100, 0, 0, 0.95); - width: 100vw; - height: 100vh; - position: fixed; - top: 0px; - text-align: center; - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; - color: white; -} -#sensitive_warning h1 { - font-size: 36px; - font-weight: bold; - border-bottom: 2px solid white; - margin-bottom: 15px; -} -#sensitive_warning p { - font-size: 20px; - max-width: 40%; - margin-top: 15px; -} - -.settings_view { - width: 90%; - max-width: 700px; - margin-left: auto; - margin-right: auto; -} -.settings_view input.text { - padding: 9px 2px; - width: calc(50% - 4px); - background-color: transparent; - color: #fff; - border: none; - border-bottom: 1px solid #222; - border-radius: 0; - box-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); - outline: 0; -} -.settings_view input.text:focus { - border-bottom-color: #2293ec; -} -.settings_view input.text .error { - border-bottom-color: #d92c34; -} -.settings_view .basicModal__button { - color: #2293ec; - display: inline-block; - box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.02), inset 1px 0 0 rgba(0, 0, 0, 0.2); - border-radius: 5px; -} -.settings_view .basicModal__button_MORE, -.settings_view .basicModal__button_SAVE { - color: #b22027; - border-radius: 5px; -} -.settings_view > div { - font-size: 14px; - width: 100%; - padding: 12px 0; - /* The switch - the box around the slider */ - /* Hide default HTML checkbox */ - /* The slider */ - /* Rounded sliders */ -} -.settings_view > div p { - margin: 0 0 5%; - width: 100%; - color: #ccc; - line-height: 16px; -} -.settings_view > div p a { - color: rgba(255, 255, 255, 0.9); - text-decoration: none; - border-bottom: 1px dashed #888; -} -.settings_view > div p:last-of-type { - margin: 0; -} -.settings_view > div input.text { - width: 100%; -} -.settings_view > div textarea { - padding: 9px 9px; - width: calc(100% - 18px); - height: 100px; - background-color: transparent; - color: #fff; - border: 1px solid #666666; - border-radius: 0; - box-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); - outline: 0; - resize: vertical; -} -.settings_view > div textarea:focus { - border-color: #2293ec; -} -.settings_view > div .choice { - padding: 0 30px 15px; - width: 100%; - color: #fff; -} -.settings_view > div .choice:last-child { - padding-bottom: 40px; -} -.settings_view > div .choice label { - float: left; - color: #fff; - font-size: 14px; - font-weight: 700; -} -.settings_view > div .choice label input { - position: absolute; - margin: 0; - opacity: 0; -} -.settings_view > div .choice label .checkbox { - float: left; - display: block; - width: 16px; - height: 16px; - background: rgba(0, 0, 0, 0.5); - border-radius: 3px; - box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.7); -} -.settings_view > div .choice label .checkbox .iconic { - box-sizing: border-box; - fill: #2293ec; - padding: 2px; - opacity: 0; - transform: scale(0); - transition: opacity 0.2s cubic-bezier(0.51, 0.92, 0.24, 1), transform 0.2s cubic-bezier(0.51, 0.92, 0.24, 1); -} -.settings_view > div .select { - position: relative; - margin: 1px 5px; - padding: 0; - width: 110px; - color: #fff; - border-radius: 3px; - border: 1px solid rgba(0, 0, 0, 0.2); - box-shadow: 0 1px 0 rgba(255, 255, 255, 0.02); - font-size: 11px; - line-height: 16px; - overflow: hidden; - outline: 0; - vertical-align: middle; - background: rgba(0, 0, 0, 0.3); - display: inline-block; -} -.settings_view > div .select select { - margin: 0; - padding: 4px 8px; - width: 120%; - color: #fff; - font-size: 11px; - line-height: 16px; - border: 0; - outline: 0; - box-shadow: none; - border-radius: 0; - background-color: transparent; - background-image: none; - -moz-appearance: none; - -webkit-appearance: none; - appearance: none; -} -.settings_view > div .select select option { - margin: 0; - padding: 0; - background: #fff; - color: #333; - transition: none; -} -.settings_view > div .select select:disabled { - color: #000; - cursor: not-allowed; -} -.settings_view > div .select::after { - position: absolute; - content: "≡"; - right: 8px; - top: 4px; - color: #2293ec; - font-size: 16px; - line-height: 16px; - font-weight: 700; - pointer-events: none; -} -.settings_view > div .switch { - position: relative; - display: inline-block; - width: 42px; - height: 22px; - bottom: -2px; - line-height: 24px; -} -.settings_view > div .switch input { - opacity: 0; - width: 0; - height: 0; -} -.settings_view > div .slider { - position: absolute; - cursor: pointer; - top: 0; - left: 0; - right: 0; - bottom: 0; - border: 1px solid rgba(0, 0, 0, 0.2); - box-shadow: 0 1px 0 rgba(255, 255, 255, 0.02); - background: rgba(0, 0, 0, 0.3); - transition: 0.4s; -} -.settings_view > div .slider:before { - position: absolute; - content: ""; - height: 14px; - width: 14px; - left: 3px; - bottom: 3px; - background-color: #2293ec; -} -.settings_view > div input:checked + .slider { - background-color: #2293ec; -} -.settings_view > div input:checked + .slider:before { - transform: translateX(20px); - background-color: #ffffff; -} -.settings_view > div .slider.round { - border-radius: 20px; -} -.settings_view > div .slider.round:before { - border-radius: 50%; -} -.settings_view .setting_category { - font-size: 20px; - width: 100%; - padding-top: 10px; - padding-left: 4px; - border-bottom: dotted 1px #222222; - margin-top: 20px; - color: #ffffff; - font-weight: bold; - text-transform: capitalize; -} -.settings_view .setting_line { - font-size: 14px; - width: 100%; -} -.settings_view .setting_line:last-child, .settings_view .setting_line:first-child { - padding-top: 50px; -} -.settings_view .setting_line p { - min-width: 550px; - margin: 0 0 0 0; - color: #ccc; - display: inline-block; - width: 100%; - overflow-wrap: break-word; -} -.settings_view .setting_line p a { - color: rgba(255, 255, 255, 0.9); - text-decoration: none; - border-bottom: 1px dashed #888; -} -.settings_view .setting_line p:last-of-type { - margin: 0; -} -.settings_view .setting_line p .warning { - margin-bottom: 30px; - color: #d92c34; - font-weight: bold; - font-size: 18px; - text-align: justify; - line-height: 22px; -} -.settings_view .setting_line span.text { - display: inline-block; - padding: 9px 4px; - width: calc(50% - 12px); - background-color: transparent; - color: #fff; - border: none; -} -.settings_view .setting_line span.text_icon { - width: 5%; -} -.settings_view .setting_line span.text_icon .iconic { - width: 15px; - height: 14px; - margin: 0 10px 0 1px; - fill: #ffffff; -} -.settings_view .setting_line input.text { - width: calc(50% - 4px); -} - -@media (hover: hover) { - .settings_view .basicModal__button:hover { - background: #2293ec; - color: #ffffff; - cursor: pointer; - } - .settings_view .basicModal__button_MORE:hover, -.settings_view .basicModal__button_SAVE:hover { - background: #b22027; - color: #ffffff; - } - .settings_view input:hover { - border-bottom: #2293ec solid 1px; - } -} -@media (hover: none) { - .settings_view input.text { - border-bottom: #2293ec solid 1px; - margin: 6px 0; - } - .settings_view > div { - padding: 16px 0; - } - .settings_view .basicModal__button { - background: #2293ec; - color: #ffffff; - max-width: 320px; - margin-top: 20px; - } - .settings_view .basicModal__button_MORE, .settings_view .basicModal__button_SAVE { - background: #b22027; - } -} -@media only screen and (max-width: 567px), only screen and (max-width: 640px) and (orientation: portrait) { - .settings_view { - max-width: 100%; - } - .settings_view .setting_category { - font-size: 14px; - padding-left: 0; - margin-bottom: 4px; - } - .settings_view .setting_line { - font-size: 12px; - } - .settings_view .setting_line:first-child { - padding-top: 20px; - } - .settings_view .setting_line p { - min-width: unset; - line-height: 20px; - } - .settings_view .setting_line p.warning { - font-size: 14px; - line-height: 16px; - margin-bottom: 0; - } - .settings_view .setting_line p span, -.settings_view .setting_line p input { - padding: 0; - } - .settings_view .basicModal__button_SAVE { - margin-top: 20px; - } -} -.users_view { - width: 90%; - max-width: 700px; - margin-left: auto; - margin-right: auto; -} - -.users_view_line { - font-size: 14px; - width: 100%; -} -.users_view_line:last-child, .users_view_line:first-child { - padding-top: 50px; -} -.users_view_line p { - width: 550px; - margin: 0 0 5%; - color: #ccc; - display: inline-block; -} -.users_view_line p a { - color: rgba(255, 255, 255, 0.9); - text-decoration: none; - border-bottom: 1px dashed #888; -} -.users_view_line p:last-of-type { - margin: 0; -} -.users_view_line p.line { - margin: 0 0 0 0; -} -.users_view_line span.text { - display: inline-block; - padding: 9px 6px 9px 0; - width: 40%; - background-color: transparent; - color: #fff; - border: none; -} -.users_view_line span.text_icon { - width: 5%; - min-width: 32px; -} -.users_view_line span.text_icon .iconic { - width: 15px; - height: 14px; - margin: 0 8px; - fill: #ffffff; -} -.users_view_line input.text { - padding: 9px 6px 9px 0; - width: 40%; - background-color: transparent; - color: #fff; - border: none; - border-bottom: 1px solid #222; - border-radius: 0; - box-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); - outline: 0; - margin: 0 0 10px; -} -.users_view_line input.text:focus { - border-bottom-color: #2293ec; -} -.users_view_line input.text.error { - border-bottom-color: #d92c34; -} -.users_view_line .choice label input:checked ~ .checkbox .iconic { - opacity: 1; - transform: scale(1); -} -.users_view_line .choice { - display: inline-block; - width: 5%; - min-width: 32px; - color: #fff; -} -.users_view_line .choice input { - position: absolute; - margin: 0; - opacity: 0; -} -.users_view_line .choice .checkbox { - display: inline-block; - width: 16px; - height: 16px; - margin: 10px 8px 0; - background: rgba(0, 0, 0, 0.5); - border-radius: 3px; - box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.7); -} -.users_view_line .choice .checkbox .iconic { - box-sizing: border-box; - fill: #2293ec; - padding: 2px; - opacity: 0; - transform: scale(0); - transition: opacity 0.2s cubic-bezier(0.51, 0.92, 0.24, 1), transform 0.2s cubic-bezier(0.51, 0.92, 0.24, 1); -} -.users_view_line .basicModal__button { - display: inline-block; - box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.02), inset 1px 0 0 rgba(0, 0, 0, 0.2); - width: 10%; - min-width: 72px; - border-radius: 0 0 0 0; -} -.users_view_line .basicModal__button_OK { - color: #2293ec; - border-radius: 5px 0 0 5px; - margin-right: -4px; -} -.users_view_line .basicModal__button_DEL { - color: #b22027; - border-radius: 0 5px 5px 0; -} -.users_view_line .basicModal__button_CREATE { - width: 20%; - color: #009900; - border-radius: 5px; - min-width: 144px; -} -.users_view_line .select { - position: relative; - margin: 1px 5px; - padding: 0; - width: 110px; - color: #fff; - border-radius: 3px; - border: 1px solid rgba(0, 0, 0, 0.2); - box-shadow: 0 1px 0 rgba(255, 255, 255, 0.02); - font-size: 11px; - line-height: 16px; - overflow: hidden; - outline: 0; - vertical-align: middle; - background: rgba(0, 0, 0, 0.3); - display: inline-block; -} -.users_view_line .select select { - margin: 0; - padding: 4px 8px; - width: 120%; - color: #fff; - font-size: 11px; - line-height: 16px; - border: 0; - outline: 0; - box-shadow: none; - border-radius: 0; - background: transparent none; - -moz-appearance: none; - -webkit-appearance: none; - appearance: none; -} -.users_view_line .select select option { - margin: 0; - padding: 0; - background: #fff; - color: #333; - transition: none; -} -.users_view_line .select::after { - position: absolute; - content: "≡"; - right: 8px; - top: 4px; - color: #2293ec; - font-size: 16px; - line-height: 16px; - font-weight: 700; - pointer-events: none; -} - -@media (hover: hover) { - .users_view_line .basicModal__button:hover { - cursor: pointer; - color: #ffffff; - } - .users_view_line .basicModal__button_OK:hover { - background: #2293ec; - } - .users_view_line .basicModal__button_DEL:hover { - background: #b22027; - } - .users_view_line .basicModal__button_CREATE:hover { - background: #009900; - } - .users_view_line input:hover { - border-bottom: #2293ec solid 1px; - } -} -@media (hover: none) { - .users_view_line .basicModal__button { - color: #ffffff; - } - .users_view_line .basicModal__button_OK { - background: #2293ec; - } - .users_view_line .basicModal__button_DEL { - background: #b22027; - } - .users_view_line .basicModal__button_CREATE { - background: #009900; - } - .users_view_line input { - border-bottom: #2293ec solid 1px; - } -} -@media only screen and (max-width: 567px), only screen and (max-width: 640px) and (orientation: portrait) { - .users_view { - width: 100%; - max-width: 100%; - padding: 20px; - } - - .users_view_line p { - width: 100%; - } - .users_view_line p .text, -.users_view_line p input.text { - width: 36%; - font-size: smaller; - } - .users_view_line .choice { - margin-left: -8px; - margin-right: 3px; - } -} -.u2f_view { - width: 90%; - max-width: 700px; - margin-left: auto; - margin-right: auto; -} - -.u2f_view_line { - font-size: 14px; - width: 100%; -} -.u2f_view_line:last-child, .u2f_view_line:first-child { - padding-top: 50px; -} -.u2f_view_line p { - width: 550px; - margin: 0 0 5%; - color: #ccc; - display: inline-block; -} -.u2f_view_line p a { - color: rgba(255, 255, 255, 0.9); - text-decoration: none; - border-bottom: 1px dashed #888; -} -.u2f_view_line p:last-of-type { - margin: 0; -} -.u2f_view_line p.line { - margin: 0 0 0 0; -} -.u2f_view_line p.single { - text-align: center; -} -.u2f_view_line span.text { - display: inline-block; - padding: 9px 4px; - width: 80%; - background-color: transparent; - color: #fff; - border: none; -} -.u2f_view_line span.text_icon { - width: 5%; -} -.u2f_view_line span.text_icon .iconic { - width: 15px; - height: 14px; - margin: 0 15px 0 1px; - fill: #ffffff; -} -.u2f_view_line .choice label input:checked ~ .checkbox .iconic { - opacity: 1; - transform: scale(1); -} -.u2f_view_line .choice { - display: inline-block; - width: 5%; - color: #fff; -} -.u2f_view_line .choice input { - position: absolute; - margin: 0; - opacity: 0; -} -.u2f_view_line .choice .checkbox { - display: inline-block; - width: 16px; - height: 16px; - margin-top: 10px; - margin-left: 2px; - background: rgba(0, 0, 0, 0.5); - border-radius: 3px; - box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.7); -} -.u2f_view_line .choice .checkbox .iconic { - box-sizing: border-box; - fill: #2293ec; - padding: 2px; - opacity: 0; - transform: scale(0); - transition: opacity 0.2s cubic-bezier(0.51, 0.92, 0.24, 1), transform 0.2s cubic-bezier(0.51, 0.92, 0.24, 1); -} -.u2f_view_line .basicModal__button { - display: inline-block; - box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.02), inset 1px 0 0 rgba(0, 0, 0, 0.2); - width: 20%; - min-width: 50px; - border-radius: 0 0 0 0; -} -.u2f_view_line .basicModal__button_OK { - color: #2293ec; - border-radius: 5px 0 0 5px; -} -.u2f_view_line .basicModal__button_DEL { - color: #b22027; - border-radius: 0 5px 5px 0; -} -.u2f_view_line .basicModal__button_CREATE { - width: 100%; - color: #009900; - border-radius: 5px; -} -.u2f_view_line .select { - position: relative; - margin: 1px 5px; - padding: 0; - width: 110px; - color: #fff; - border-radius: 3px; - border: 1px solid rgba(0, 0, 0, 0.2); - box-shadow: 0 1px 0 rgba(255, 255, 255, 0.02); - font-size: 11px; - line-height: 16px; - overflow: hidden; - outline: 0; - vertical-align: middle; - background: rgba(0, 0, 0, 0.3); - display: inline-block; -} -.u2f_view_line .select select { - margin: 0; - padding: 4px 8px; - width: 120%; - color: #fff; - font-size: 11px; - line-height: 16px; - border: 0; - outline: 0; - box-shadow: none; - border-radius: 0; - background: transparent none; - -moz-appearance: none; - -webkit-appearance: none; - appearance: none; -} -.u2f_view_line .select select option { - margin: 0; - padding: 0; - background: #fff; - color: #333; - transition: none; -} -.u2f_view_line .select::after { - position: absolute; - content: "≡"; - right: 8px; - top: 4px; - color: #2293ec; - font-size: 16px; - line-height: 16px; - font-weight: 700; - pointer-events: none; -} - -/* When you mouse over the navigation links, change their color */ -.signInKeyLess { - display: block; - padding: 10px 10px; - position: absolute; - cursor: pointer; -} -.signInKeyLess .iconic { - display: inline-block; - margin: 0 0px 0 0px; - width: 20px; - height: 20px; - fill: #818181; -} -.signInKeyLess .iconic.ionicons { - margin: 0 8px -2px 0; - width: 18px; - height: 18px; -} - -@media (hover: hover) { - .u2f_view_line .basicModal__button:hover { - cursor: pointer; - } - .u2f_view_line .basicModal__button_OK:hover { - background: #2293ec; - color: #ffffff; - } - .u2f_view_line .basicModal__button_DEL:hover { - background: #b22027; - color: #ffffff; - } - .u2f_view_line .basicModal__button_CREATE:hover { - background: #009900; - color: #ffffff; - } - .u2f_view_line input:hover { - border-bottom: #2293ec solid 1px; - } - - .signInKeyLess:hover .iconic { - fill: #ffffff; - } -} -@media (hover: none) { - .u2f_view_line .basicModal__button { - color: #ffffff; - } - .u2f_view_line .basicModal__button_OK { - background: #2293ec; - } - .u2f_view_line .basicModal__button_DEL { - background: #b22027; - } - .u2f_view_line .basicModal__button_CREATE { - background: #009900; - } - .u2f_view_line input { - border-bottom: #2293ec solid 1px; - } -} -@media only screen and (max-width: 567px), only screen and (max-width: 640px) and (orientation: portrait) { - .u2f_view { - width: 100%; - max-width: 100%; - padding: 20px; - } - - .u2f_view_line p { - width: 100%; - } - .u2f_view_line .basicModal__button_CREATE { - width: 80%; - margin: 0 10%; - } -} -.logs_diagnostics_view { - width: 90%; - margin-left: auto; - margin-right: auto; - color: #ccc; - font-size: 12px; - line-height: 14px; -} -.logs_diagnostics_view pre { - font-family: monospace; - -webkit-user-select: text; - -moz-user-select: text; - -ms-user-select: text; - user-select: text; - width: -webkit-fit-content; - width: -moz-fit-content; - width: fit-content; - padding-right: 30px; -} - -.clear_logs_update { - margin-left: auto; - margin-right: auto; - margin-bottom: 20px; - margin-top: 20px; - padding-left: 30px; -} - -.clear_logs_update .basicModal__button, -.logs_diagnostics_view .basicModal__button { - color: #2293ec; - display: inline-block; - box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.02), inset 1px 0 0 rgba(0, 0, 0, 0.2); - border-radius: 5px; -} -.clear_logs_update .iconic, -.logs_diagnostics_view .iconic { - display: inline-block; - margin: 0 10px 0 1px; - width: 13px; - height: 12px; - fill: #2293ec; -} -.clear_logs_update .button_left, -.logs_diagnostics_view .button_left { - margin-left: 24px; - width: 400px; -} - -@media (hover: none) { - .clear_logs_update .basicModal__button, -.logs_diagnostics_view .basicModal__button { - background: #2293ec; - color: #fff; - max-width: 320px; - margin-top: 20px; - } - .clear_logs_update .iconic, -.logs_diagnostics_view .iconic { - fill: #fff; - } -} -@media only screen and (max-width: 567px), only screen and (max-width: 640px) and (orientation: portrait) { - .logs_diagnostics_view, -.clear_logs_update { - width: 100%; - max-width: 100%; - font-size: 11px; - line-height: 12px; - } - .logs_diagnostics_view .basicModal__button, -.logs_diagnostics_view .button_left, -.clear_logs_update .basicModal__button, -.clear_logs_update .button_left { - width: 80%; - margin: 0 10%; - } - - .logs_diagnostics_view { - padding: 10px 10px 0 0; - } - - .clear_logs_update { - padding: 10px 10px 0 10px; - margin: 0; - } -} -.sharing_view { - width: 90%; - max-width: 700px; - margin-left: auto; - margin-right: auto; - margin-top: 20px; -} -.sharing_view .sharing_view_line { - width: 100%; - display: block; - clear: left; -} -.sharing_view .col-xs-1, -.sharing_view .col-xs-10, -.sharing_view .col-xs-11, -.sharing_view .col-xs-12, -.sharing_view .col-xs-2, -.sharing_view .col-xs-3, -.sharing_view .col-xs-4, -.sharing_view .col-xs-5, -.sharing_view .col-xs-6, -.sharing_view .col-xs-7, -.sharing_view .col-xs-8, -.sharing_view .col-xs-9 { - float: left; - position: relative; - min-height: 1px; -} -.sharing_view .col-xs-2 { - width: 10%; - padding-right: 3%; - padding-left: 3%; -} -.sharing_view .col-xs-5 { - width: 42%; -} -.sharing_view .btn-block + .btn-block { - margin-top: 5px; -} -.sharing_view .btn-block { - display: block; - width: 100%; -} -.sharing_view .btn-default { - color: #2293ec; - border-color: #2293ec; - background: rgba(0, 0, 0, 0.5); - border-radius: 3px; - box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.7); -} -.sharing_view .btn { - display: inline-block; - padding: 6px 12px; - margin-bottom: 0; - font-size: 14px; - font-weight: 400; - line-height: 1.42857143; - text-align: center; - white-space: nowrap; - vertical-align: middle; - touch-action: manipulation; - cursor: pointer; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - background-image: none; - border: 1px solid transparent; - border-radius: 4px; -} -.sharing_view select[multiple], -.sharing_view select[size] { - height: 150px; -} -.sharing_view .form-control { - display: block; - width: 100%; - height: 34px; - padding: 6px 12px; - font-size: 14px; - line-height: 1.42857143; - color: #555; - background-color: #fff; - background-image: none; - border: 1px solid #ccc; - border-radius: 4px; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s; -} -.sharing_view .iconic { - display: inline-block; - width: 15px; - height: 14px; - fill: #2293ec; -} -.sharing_view .iconic .iconic.ionicons { - margin: 0 8px -2px 0; - width: 18px; - height: 18px; -} -.sharing_view .blue .iconic { - fill: #2293ec; -} -.sharing_view .grey .iconic { - fill: #b4b4b4; -} -.sharing_view p { - width: 100%; - color: #ccc; - text-align: center; - font-size: 14px; - display: block; -} -.sharing_view p.with { - padding: 15px 0; -} -.sharing_view span.text { - display: inline-block; - padding: 0 2px; - width: 40%; - background-color: transparent; - color: #fff; - border: none; -} -.sharing_view span.text:last-of-type { - width: 5%; -} -.sharing_view span.text .iconic { - width: 15px; - height: 14px; - margin: 0 10px 0 1px; - fill: #ffffff; -} -.sharing_view .basicModal__button { - margin-top: 10px; - color: #2293ec; - display: inline-block; - box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.02), inset 1px 0 0 rgba(0, 0, 0, 0.2); - border-radius: 5px; -} -.sharing_view .choice label input:checked ~ .checkbox .iconic { - opacity: 1; - transform: scale(1); -} -.sharing_view .choice { - display: inline-block; - width: 5%; - margin: 0 10px; - color: #fff; -} -.sharing_view .choice input { - position: absolute; - margin: 0; - opacity: 0; -} -.sharing_view .choice .checkbox { - display: inline-block; - width: 16px; - height: 16px; - margin-top: 10px; - margin-left: 2px; - background: rgba(0, 0, 0, 0.5); - border-radius: 3px; - box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.7); -} -.sharing_view .choice .checkbox .iconic { - box-sizing: border-box; - fill: #2293ec; - padding: 2px; - opacity: 0; - transform: scale(0); - transition: opacity 0.2s cubic-bezier(0.51, 0.92, 0.24, 1), transform 0.2s cubic-bezier(0.51, 0.92, 0.24, 1); -} -.sharing_view .select { - position: relative; - padding: 0; - color: #fff; - border-radius: 3px; - border: 1px solid rgba(0, 0, 0, 0.2); - box-shadow: 0 1px 0 rgba(255, 255, 255, 0.02); - font-size: 14px; - line-height: 16px; - outline: 0; - vertical-align: middle; - background: rgba(0, 0, 0, 0.3); - display: inline-block; -} -.sharing_view .borderBlue { - border: 1px solid #2293ec; -} - -@media (hover: hover) { - .sharing_view .basicModal__button:hover { - background: #2293ec; - color: #ffffff; - cursor: pointer; - } - .sharing_view input:hover { - border-bottom: #2293ec solid 1px; - } -} -@media (hover: none) { - .sharing_view .basicModal__button { - background: #2293ec; - color: #ffffff; - } - .sharing_view input { - border-bottom: #2293ec solid 1px; - } -} -@media only screen and (max-width: 567px), only screen and (max-width: 640px) and (orientation: portrait) { - .sharing_view { - width: 100%; - max-width: 100%; - padding: 10px; - } - .sharing_view .select { - font-size: 12px; - } - .sharing_view .iconic { - margin-left: -4px; - } - - .sharing_view_line p { - width: 100%; - } - .sharing_view_line .basicModal__button { - width: 80%; - margin: 0 10%; - } -} -#multiselect { - position: absolute; - background-color: rgba(0, 94, 204, 0.3); - border: 1px solid #005ecc; - border-radius: 3px; - z-index: 5; -} - -.justified-layout { - margin: 30px 0 0 30px; - width: 100%; - position: relative; -} - -.unjustified-layout { - margin: 25px -5px -5px 25px; - width: 100%; - position: relative; - overflow: hidden; -} - -.justified-layout > .photo { - position: absolute; - --lychee-default-height: 320px; - margin: 0; -} - -.unjustified-layout > .photo { - float: left; - max-height: 240px; - margin: 5px; -} - -.justified-layout > .photo > .thumbimg > img, -.justified-layout > .photo > .thumbimg, -.unjustified-layout > .photo > .thumbimg > img, -.unjustified-layout > .photo > .thumbimg { - width: 100%; - height: 100%; - border: none; - -o-object-fit: cover; - object-fit: cover; -} - -.justified-layout > .photo > .overlay, -.unjustified-layout > .photo > .overlay { - width: 100%; - bottom: 0; - margin: 0 0 0 0; -} - -.justified-layout > .photo > .overlay > h1, -.unjustified-layout > .photo > .overlay > h1 { - width: auto; - margin-right: 15px; -} - -@media only screen and (min-width: 320px) and (max-width: 567px) { - .content > .justified-layout { - margin: 8px 8px 0 8px; - } - .content > .justified-layout .photo { - --lychee-default-height: 160px; - } -} -@media only screen and (min-width: 568px) and (max-width: 639px) { - .content > .justified-layout { - margin: 9px 9px 0 9px; - } - .content > .justified-layout .photo { - --lychee-default-height: 200px; - } -} -@media only screen and (min-width: 640px) and (max-width: 768px) { - .content > .justified-layout { - margin: 10px 10px 0 10px; - } - .content > .justified-layout .photo { - --lychee-default-height: 240px; - } -} -#footer { - z-index: 3; - left: 0; - right: 0; - bottom: 0; - text-align: center; - padding: 5px 0 5px 0; - transition: color 0.3s, opacity 0.3s ease-out, transform 0.3s ease-out, box-shadow 0.3s, margin-left 0.5s; - position: absolute; - background: #1d1d1d; -} -#footer p.hosted_by, -#footer p.home_copyright { - text-transform: uppercase; -} -#footer p { - color: #cccccc; - font-size: 0.75em; - line-height: 26px; -} -#footer p a { - color: #ccc; -} -#footer p a:visited { - color: #ccc; -} - -.hide_footer { - display: none; -} - -@font-face { - font-family: "socials"; - src: url("fonts/socials.eot?egvu10"); - src: url("fonts/socials.eot?egvu10#iefix") format("embedded-opentype"), url("fonts/socials.ttf?egvu10") format("truetype"), url("fonts/socials.woff?egvu10") format("woff"), url("fonts/socials.svg?egvu10#socials") format("svg"); - font-weight: normal; - font-style: normal; -} -#socials_footer { - padding: 0; - text-align: center; - left: 0; - right: 0; -} - -.socialicons { - display: inline-block; - font-size: 18px; - font-family: "socials" !important; - speak: none; - color: #cccccc; - text-decoration: none; - margin: 15px 15px 5px 15px; - transition: all 0.3s; - -webkit-transition: all 0.3s; - -moz-transition: all 0.3s; - -o-transition: all 0.3s; -} - -#twitter:before { - content: ""; -} - -#instagram:before { - content: ""; -} - -#youtube:before { - content: ""; -} - -#flickr:before { - content: ""; -} - -#facebook:before { - content: ""; -} - -@media (hover: hover) { - .socialicons:hover { - color: #b5b5b5; - transform: scale(1.3); - -webkit-transform: scale(1.3); - } -} -.directLinks input.text { - width: calc(100% - 30px); - color: rgba(255, 255, 255, 0.6); - padding: 2px; -} -.directLinks .basicModal__button { - display: inline-block; - box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.02), inset 1px 0 0 rgba(0, 0, 0, 0.2); - width: 25px; - height: 25px; - border-radius: 5px; - border-bottom: 0; - padding: 3px 0 0; - margin-top: -5px; - float: right; -} -.directLinks .basicModal__button .iconic { - fill: #2293ec; - width: 16px; - height: 16px; -} -.directLinks .imageLinks { - margin-top: -30px; - padding-bottom: 40px; -} -.directLinks .imageLinks p { - padding: 10px 30px 0; - font-size: 12px; - line-height: 15px; -} -.directLinks .imageLinks .basicModal__button { - margin-top: -8px; -} - -.downloads { - padding: 30px; -} -.downloads .basicModal__button { - color: #2293ec; - display: inline-block; - box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.02), inset 1px 0 0 rgba(0, 0, 0, 0.2); - border-radius: 5px; - border-bottom: 0; - margin: 5px 0; -} -.downloads .basicModal__button .iconic { - fill: #2293ec; - margin: 0 10px 0 1px; - width: 11px; - height: 10px; -} - -@media (hover: hover) { - .directLinks .basicModal__button:hover, -.downloads .basicModal__button:hover { - background: #2293ec; - cursor: pointer; - } - .directLinks .basicModal__button:hover .iconic, -.downloads .basicModal__button:hover .iconic { - fill: #ffffff; - } - - .downloads .basicModal__button:hover { - color: #ffffff; - } -} diff --git a/public/dist/frontend.js b/public/dist/frontend.js index 0f7530b1cf..f3240ec4be 100644 --- a/public/dist/frontend.js +++ b/public/dist/frontend.js @@ -1,5 +1,5 @@ -/*! jQuery v3.7.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */ -!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(ie,e){"use strict";var oe=[],r=Object.getPrototypeOf,ae=oe.slice,g=oe.flat?function(e){return oe.flat.call(e)}:function(e){return oe.concat.apply([],e)},s=oe.push,se=oe.indexOf,n={},i=n.toString,ue=n.hasOwnProperty,o=ue.toString,a=o.call(Object),le={},v=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},y=function(e){return null!=e&&e===e.window},C=ie.document,u={type:!0,src:!0,nonce:!0,noModule:!0};function m(e,t,n){var r,i,o=(n=n||C).createElement("script");if(o.text=e,t)for(r in u)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function x(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[i.call(e)]||"object":typeof e}var t="3.7.0",l=/HTML$/i,ce=function(e,t){return new ce.fn.init(e,t)};function c(e){var t=!!e&&"length"in e&&e.length,n=x(e);return!v(e)&&!y(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+ge+")"+ge+"*"),x=new RegExp(ge+"|>"),j=new RegExp(g),A=new RegExp("^"+t+"$"),D={ID:new RegExp("^#("+t+")"),CLASS:new RegExp("^\\.("+t+")"),TAG:new RegExp("^("+t+"|[*])"),ATTR:new RegExp("^"+p),PSEUDO:new RegExp("^"+g),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+ge+"*(even|odd|(([+-]|)(\\d*)n|)"+ge+"*(?:([+-]|)"+ge+"*(\\d+)|))"+ge+"*\\)|)","i"),bool:new RegExp("^(?:"+f+")$","i"),needsContext:new RegExp("^"+ge+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+ge+"*((?:-\\d)?\\d*)"+ge+"*\\)|)(?=[^-]|$)","i")},N=/^(?:input|select|textarea|button)$/i,q=/^h\d$/i,L=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,H=/[+~]/,O=new RegExp("\\\\[\\da-fA-F]{1,6}"+ge+"?|\\\\([^\\r\\n\\f])","g"),P=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},R=function(){V()},M=J(function(e){return!0===e.disabled&&fe(e,"fieldset")},{dir:"parentNode",next:"legend"});try{k.apply(oe=ae.call(ye.childNodes),ye.childNodes),oe[ye.childNodes.length].nodeType}catch(e){k={apply:function(e,t){me.apply(e,ae.call(t))},call:function(e){me.apply(e,ae.call(arguments,1))}}}function I(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(V(e),e=e||T,C)){if(11!==p&&(u=L.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return k.call(n,a),n}else if(f&&(a=f.getElementById(i))&&I.contains(e,a)&&a.id===i)return k.call(n,a),n}else{if(u[2])return k.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&e.getElementsByClassName)return k.apply(n,e.getElementsByClassName(i)),n}if(!(h[t+" "]||d&&d.test(t))){if(c=t,f=e,1===p&&(x.test(t)||m.test(t))){(f=H.test(t)&&z(e.parentNode)||e)==e&&le.scope||((s=e.getAttribute("id"))?s=ce.escapeSelector(s):e.setAttribute("id",s=S)),o=(l=Y(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+Q(l[o]);c=l.join(",")}try{return k.apply(n,f.querySelectorAll(c)),n}catch(e){h(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return re(t.replace(ve,"$1"),e,n,r)}function W(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function F(e){return e[S]=!0,e}function $(e){var t=T.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function B(t){return function(e){return fe(e,"input")&&e.type===t}}function _(t){return function(e){return(fe(e,"input")||fe(e,"button"))&&e.type===t}}function X(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&M(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function U(a){return F(function(o){return o=+o,F(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function z(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}function V(e){var t,n=e?e.ownerDocument||e:ye;return n!=T&&9===n.nodeType&&n.documentElement&&(r=(T=n).documentElement,C=!ce.isXMLDoc(T),i=r.matches||r.webkitMatchesSelector||r.msMatchesSelector,ye!=T&&(t=T.defaultView)&&t.top!==t&&t.addEventListener("unload",R),le.getById=$(function(e){return r.appendChild(e).id=ce.expando,!T.getElementsByName||!T.getElementsByName(ce.expando).length}),le.disconnectedMatch=$(function(e){return i.call(e,"*")}),le.scope=$(function(){return T.querySelectorAll(":scope")}),le.cssHas=$(function(){try{return T.querySelector(":has(*,:jqfake)"),!1}catch(e){return!0}}),le.getById?(b.filter.ID=function(e){var t=e.replace(O,P);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&C){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(O,P);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&C){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):t.querySelectorAll(e)},b.find.CLASS=function(e,t){if("undefined"!=typeof t.getElementsByClassName&&C)return t.getElementsByClassName(e)},d=[],$(function(e){var t;r.appendChild(e).innerHTML="",e.querySelectorAll("[selected]").length||d.push("\\["+ge+"*(?:value|"+f+")"),e.querySelectorAll("[id~="+S+"-]").length||d.push("~="),e.querySelectorAll("a#"+S+"+*").length||d.push(".#.+[+~]"),e.querySelectorAll(":checked").length||d.push(":checked"),(t=T.createElement("input")).setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),r.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&d.push(":enabled",":disabled"),(t=T.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||d.push("\\["+ge+"*name"+ge+"*="+ge+"*(?:''|\"\")")}),le.cssHas||d.push(":has"),d=d.length&&new RegExp(d.join("|")),l=function(e,t){if(e===t)return a=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!le.sortDetached&&t.compareDocumentPosition(e)===n?e===T||e.ownerDocument==ye&&I.contains(ye,e)?-1:t===T||t.ownerDocument==ye&&I.contains(ye,t)?1:o?se.call(o,e)-se.call(o,t):0:4&n?-1:1)}),T}for(e in I.matches=function(e,t){return I(e,null,null,t)},I.matchesSelector=function(e,t){if(V(e),C&&!h[t+" "]&&(!d||!d.test(t)))try{var n=i.call(e,t);if(n||le.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){h(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(O,P),e[3]=(e[3]||e[4]||e[5]||"").replace(O,P),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||I.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&I.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return D.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&j.test(n)&&(t=Y(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(O,P).toLowerCase();return"*"===e?function(){return!0}:function(e){return fe(e,t)}},CLASS:function(e){var t=s[e+" "];return t||(t=new RegExp("(^|"+ge+")"+e+"("+ge+"|$)"))&&s(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=I.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function T(e,n,r){return v(n)?ce.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?ce.grep(e,function(e){return e===n!==r}):"string"!=typeof n?ce.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(ce.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||k,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:S.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof ce?t[0]:t,ce.merge(this,ce.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:C,!0)),w.test(r[1])&&ce.isPlainObject(t))for(r in t)v(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=C.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):v(e)?void 0!==n.ready?n.ready(e):e(ce):ce.makeArray(e,this)}).prototype=ce.fn,k=ce(C);var E=/^(?:parents|prev(?:Until|All))/,j={children:!0,contents:!0,next:!0,prev:!0};function A(e,t){while((e=e[t])&&1!==e.nodeType);return e}ce.fn.extend({has:function(e){var t=ce(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,Ce=/^$|^module$|\/(?:java|ecma)script/i;xe=C.createDocumentFragment().appendChild(C.createElement("div")),(be=C.createElement("input")).setAttribute("type","radio"),be.setAttribute("checked","checked"),be.setAttribute("name","t"),xe.appendChild(be),le.checkClone=xe.cloneNode(!0).cloneNode(!0).lastChild.checked,xe.innerHTML="",le.noCloneChecked=!!xe.cloneNode(!0).lastChild.defaultValue,xe.innerHTML="",le.option=!!xe.lastChild;var ke={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function Se(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&fe(e,t)?ce.merge([e],n):n}function Ee(e,t){for(var n=0,r=e.length;n",""]);var je=/<|&#?\w+;/;function Ae(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function Me(e,t){return fe(e,"table")&&fe(11!==t.nodeType?t:t.firstChild,"tr")&&ce(e).children("tbody")[0]||e}function Ie(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function We(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Fe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(_.hasData(e)&&(s=_.get(e).events))for(i in _.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),C.head.appendChild(r[0])},abort:function(){i&&i()}}});var Jt,Kt=[],Zt=/(=)\?(?=&|$)|\?\?/;ce.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Kt.pop()||ce.expando+"_"+jt.guid++;return this[e]=!0,e}}),ce.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Zt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Zt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=v(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Zt,"$1"+r):!1!==e.jsonp&&(e.url+=(At.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||ce.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=ie[r],ie[r]=function(){o=arguments},n.always(function(){void 0===i?ce(ie).removeProp(r):ie[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Kt.push(r)),o&&v(i)&&i(o[0]),o=i=void 0}),"script"}),le.createHTMLDocument=((Jt=C.implementation.createHTMLDocument("").body).innerHTML="
",2===Jt.childNodes.length),ce.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(le.createHTMLDocument?((r=(t=C.implementation.createHTMLDocument("")).createElement("base")).href=C.location.href,t.head.appendChild(r)):t=C),o=!n&&[],(i=w.exec(e))?[t.createElement(i[1])]:(i=Ae([e],t,o),o&&o.length&&ce(o).remove(),ce.merge([],i.childNodes)));var r,i,o},ce.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(ce.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},ce.expr.pseudos.animated=function(t){return ce.grep(ce.timers,function(e){return t===e.elem}).length},ce.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=ce.css(e,"position"),c=ce(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=ce.css(e,"top"),u=ce.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),v(t)&&(t=t.call(e,n,ce.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},ce.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){ce.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===ce.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===ce.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=ce(e).offset()).top+=ce.css(e,"borderTopWidth",!0),i.left+=ce.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-ce.css(r,"marginTop",!0),left:t.left-i.left-ce.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===ce.css(e,"position"))e=e.offsetParent;return e||J})}}),ce.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;ce.fn[t]=function(e){return R(this,function(e,t,n){var r;if(y(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),ce.each(["top","left"],function(e,n){ce.cssHooks[n]=Ye(le.pixelPosition,function(e,t){if(t)return t=Ge(e,n),_e.test(t)?ce(e).position()[n]+"px":t})}),ce.each({Height:"height",Width:"width"},function(a,s){ce.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){ce.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return R(this,function(e,t,n){var r;return y(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?ce.css(e,t,i):ce.style(e,t,n,i)},s,n?e:void 0,n)}})}),ce.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){ce.fn[t]=function(e){return this.on(t,e)}}),ce.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),ce.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){ce.fn[n]=function(e,t){return 0+~]|"+ge+")"+ge+"*"),x=new RegExp(ge+"|>"),j=new RegExp(g),A=new RegExp("^"+t+"$"),D={ID:new RegExp("^#("+t+")"),CLASS:new RegExp("^\\.("+t+")"),TAG:new RegExp("^("+t+"|[*])"),ATTR:new RegExp("^"+p),PSEUDO:new RegExp("^"+g),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+ge+"*(even|odd|(([+-]|)(\\d*)n|)"+ge+"*(?:([+-]|)"+ge+"*(\\d+)|))"+ge+"*\\)|)","i"),bool:new RegExp("^(?:"+f+")$","i"),needsContext:new RegExp("^"+ge+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+ge+"*((?:-\\d)?\\d*)"+ge+"*\\)|)(?=[^-]|$)","i")},N=/^(?:input|select|textarea|button)$/i,q=/^h\d$/i,L=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,H=/[+~]/,O=new RegExp("\\\\[\\da-fA-F]{1,6}"+ge+"?|\\\\([^\\r\\n\\f])","g"),P=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},M=function(){V()},R=J(function(e){return!0===e.disabled&&fe(e,"fieldset")},{dir:"parentNode",next:"legend"});try{k.apply(oe=ae.call(ye.childNodes),ye.childNodes),oe[ye.childNodes.length].nodeType}catch(e){k={apply:function(e,t){me.apply(e,ae.call(t))},call:function(e){me.apply(e,ae.call(arguments,1))}}}function I(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(V(e),e=e||T,C)){if(11!==p&&(u=L.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return k.call(n,a),n}else if(f&&(a=f.getElementById(i))&&I.contains(e,a)&&a.id===i)return k.call(n,a),n}else{if(u[2])return k.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&e.getElementsByClassName)return k.apply(n,e.getElementsByClassName(i)),n}if(!(h[t+" "]||d&&d.test(t))){if(c=t,f=e,1===p&&(x.test(t)||m.test(t))){(f=H.test(t)&&U(e.parentNode)||e)==e&&le.scope||((s=e.getAttribute("id"))?s=ce.escapeSelector(s):e.setAttribute("id",s=S)),o=(l=Y(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+Q(l[o]);c=l.join(",")}try{return k.apply(n,f.querySelectorAll(c)),n}catch(e){h(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return re(t.replace(ve,"$1"),e,n,r)}function W(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function F(e){return e[S]=!0,e}function $(e){var t=T.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function B(t){return function(e){return fe(e,"input")&&e.type===t}}function _(t){return function(e){return(fe(e,"input")||fe(e,"button"))&&e.type===t}}function z(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&R(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function X(a){return F(function(o){return o=+o,F(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function U(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}function V(e){var t,n=e?e.ownerDocument||e:ye;return n!=T&&9===n.nodeType&&n.documentElement&&(r=(T=n).documentElement,C=!ce.isXMLDoc(T),i=r.matches||r.webkitMatchesSelector||r.msMatchesSelector,r.msMatchesSelector&&ye!=T&&(t=T.defaultView)&&t.top!==t&&t.addEventListener("unload",M),le.getById=$(function(e){return r.appendChild(e).id=ce.expando,!T.getElementsByName||!T.getElementsByName(ce.expando).length}),le.disconnectedMatch=$(function(e){return i.call(e,"*")}),le.scope=$(function(){return T.querySelectorAll(":scope")}),le.cssHas=$(function(){try{return T.querySelector(":has(*,:jqfake)"),!1}catch(e){return!0}}),le.getById?(b.filter.ID=function(e){var t=e.replace(O,P);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&C){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(O,P);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&C){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):t.querySelectorAll(e)},b.find.CLASS=function(e,t){if("undefined"!=typeof t.getElementsByClassName&&C)return t.getElementsByClassName(e)},d=[],$(function(e){var t;r.appendChild(e).innerHTML="",e.querySelectorAll("[selected]").length||d.push("\\["+ge+"*(?:value|"+f+")"),e.querySelectorAll("[id~="+S+"-]").length||d.push("~="),e.querySelectorAll("a#"+S+"+*").length||d.push(".#.+[+~]"),e.querySelectorAll(":checked").length||d.push(":checked"),(t=T.createElement("input")).setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),r.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&d.push(":enabled",":disabled"),(t=T.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||d.push("\\["+ge+"*name"+ge+"*="+ge+"*(?:''|\"\")")}),le.cssHas||d.push(":has"),d=d.length&&new RegExp(d.join("|")),l=function(e,t){if(e===t)return a=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!le.sortDetached&&t.compareDocumentPosition(e)===n?e===T||e.ownerDocument==ye&&I.contains(ye,e)?-1:t===T||t.ownerDocument==ye&&I.contains(ye,t)?1:o?se.call(o,e)-se.call(o,t):0:4&n?-1:1)}),T}for(e in I.matches=function(e,t){return I(e,null,null,t)},I.matchesSelector=function(e,t){if(V(e),C&&!h[t+" "]&&(!d||!d.test(t)))try{var n=i.call(e,t);if(n||le.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){h(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(O,P),e[3]=(e[3]||e[4]||e[5]||"").replace(O,P),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||I.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&I.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return D.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&j.test(n)&&(t=Y(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(O,P).toLowerCase();return"*"===e?function(){return!0}:function(e){return fe(e,t)}},CLASS:function(e){var t=s[e+" "];return t||(t=new RegExp("(^|"+ge+")"+e+"("+ge+"|$)"))&&s(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=I.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function T(e,n,r){return v(n)?ce.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?ce.grep(e,function(e){return e===n!==r}):"string"!=typeof n?ce.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(ce.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||k,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:S.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof ce?t[0]:t,ce.merge(this,ce.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:C,!0)),w.test(r[1])&&ce.isPlainObject(t))for(r in t)v(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=C.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):v(e)?void 0!==n.ready?n.ready(e):e(ce):ce.makeArray(e,this)}).prototype=ce.fn,k=ce(C);var E=/^(?:parents|prev(?:Until|All))/,j={children:!0,contents:!0,next:!0,prev:!0};function A(e,t){while((e=e[t])&&1!==e.nodeType);return e}ce.fn.extend({has:function(e){var t=ce(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,Ce=/^$|^module$|\/(?:java|ecma)script/i;xe=C.createDocumentFragment().appendChild(C.createElement("div")),(be=C.createElement("input")).setAttribute("type","radio"),be.setAttribute("checked","checked"),be.setAttribute("name","t"),xe.appendChild(be),le.checkClone=xe.cloneNode(!0).cloneNode(!0).lastChild.checked,xe.innerHTML="",le.noCloneChecked=!!xe.cloneNode(!0).lastChild.defaultValue,xe.innerHTML="",le.option=!!xe.lastChild;var ke={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function Se(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&fe(e,t)?ce.merge([e],n):n}function Ee(e,t){for(var n=0,r=e.length;n",""]);var je=/<|&#?\w+;/;function Ae(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function Re(e,t){return fe(e,"table")&&fe(11!==t.nodeType?t:t.firstChild,"tr")&&ce(e).children("tbody")[0]||e}function Ie(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function We(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Fe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(_.hasData(e)&&(s=_.get(e).events))for(i in _.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),C.head.appendChild(r[0])},abort:function(){i&&i()}}});var Jt,Kt=[],Zt=/(=)\?(?=&|$)|\?\?/;ce.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Kt.pop()||ce.expando+"_"+jt.guid++;return this[e]=!0,e}}),ce.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Zt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Zt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=v(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Zt,"$1"+r):!1!==e.jsonp&&(e.url+=(At.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||ce.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=ie[r],ie[r]=function(){o=arguments},n.always(function(){void 0===i?ce(ie).removeProp(r):ie[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Kt.push(r)),o&&v(i)&&i(o[0]),o=i=void 0}),"script"}),le.createHTMLDocument=((Jt=C.implementation.createHTMLDocument("").body).innerHTML="
",2===Jt.childNodes.length),ce.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(le.createHTMLDocument?((r=(t=C.implementation.createHTMLDocument("")).createElement("base")).href=C.location.href,t.head.appendChild(r)):t=C),o=!n&&[],(i=w.exec(e))?[t.createElement(i[1])]:(i=Ae([e],t,o),o&&o.length&&ce(o).remove(),ce.merge([],i.childNodes)));var r,i,o},ce.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(ce.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},ce.expr.pseudos.animated=function(t){return ce.grep(ce.timers,function(e){return t===e.elem}).length},ce.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=ce.css(e,"position"),c=ce(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=ce.css(e,"top"),u=ce.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),v(t)&&(t=t.call(e,n,ce.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},ce.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){ce.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===ce.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===ce.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=ce(e).offset()).top+=ce.css(e,"borderTopWidth",!0),i.left+=ce.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-ce.css(r,"marginTop",!0),left:t.left-i.left-ce.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===ce.css(e,"position"))e=e.offsetParent;return e||J})}}),ce.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;ce.fn[t]=function(e){return M(this,function(e,t,n){var r;if(y(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),ce.each(["top","left"],function(e,n){ce.cssHooks[n]=Ye(le.pixelPosition,function(e,t){if(t)return t=Ge(e,n),_e.test(t)?ce(e).position()[n]+"px":t})}),ce.each({Height:"height",Width:"width"},function(a,s){ce.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){ce.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return M(this,function(e,t,n){var r;return y(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?ce.css(e,t,i):ce.style(e,t,n,i)},s,n?e:void 0,n)}})}),ce.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){ce.fn[t]=function(e){return this.on(t,e)}}),ce.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.on("mouseenter",e).on("mouseleave",t||e)}}),ce.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){ce.fn[n]=function(e,t){return 0=p;p+=1)if(!(0> typeof e)throw Error("bad rs block @ typeNumber:"+b+"/errorCorrectLevel:"+a);b=e.length/3;a=[];for(var d=0;d | BSD-3-Clause */ +/*! sprintf-js v1.1.3 | Copyright (c) 2007-present, Alexandru Mărășteanu | BSD-3-Clause */ !function(){"use strict";var g={not_string:/[^s]/,not_bool:/[^t]/,not_type:/[^T]/,not_primitive:/[^v]/,number:/[diefg]/,numeric_arg:/[bcdiefguxX]/,json:/[j]/,not_json:/[^j]/,text:/^[^\x25]+/,modulo:/^\x25{2}/,placeholder:/^\x25(?:([1-9]\d*)\$|\(([^)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijostTuvxX])/,key:/^([a-z_][a-z_\d]*)/i,key_access:/^\.([a-z_][a-z_\d]*)/i,index_access:/^\[(\d+)\]/,sign:/^[+-]/};function y(e){return function(e,t){var r,n,i,s,a,o,p,c,l,u=1,f=e.length,d="";for(n=0;n>>0).toString(8);break;case"s":r=String(r),r=s.precision?r.substring(0,s.precision):r;break;case"t":r=String(!!r),r=s.precision?r.substring(0,s.precision):r;break;case"T":r=Object.prototype.toString.call(r).slice(8,-1).toLowerCase(),r=s.precision?r.substring(0,s.precision):r;break;case"u":r=parseInt(r,10)>>>0;break;case"v":r=r.valueOf(),r=s.precision?r.substring(0,s.precision):r;break;case"x":r=(parseInt(r,10)>>>0).toString(16);break;case"X":r=(parseInt(r,10)>>>0).toString(16).toUpperCase()}g.json.test(s.type)?d+=r:(!g.number.test(s.type)||c&&!s.sign?l="":(l=c?"+":"-",r=r.toString().replace(g.sign,"")),o=s.pad_char?"0"===s.pad_char?"0":s.pad_char.charAt(1):" ",p=s.width-(l+r).length,a=s.width&&0=0;--i){var entry=this.tryEntries[i],record=entry.completion;if("root"===entry.tryLoc)return handle("end");if(entry.tryLoc<=this.prev){var hasCatch=hasOwn.call(entry,"catchLoc"),hasFinally=hasOwn.call(entry,"finallyLoc");if(hasCatch&&hasFinally){if(this.prev=0;--i){var entry=this.tryEntries[i];if(entry.tryLoc<=this.prev&&hasOwn.call(entry,"finallyLoc")&&this.prev=0;--i){var entry=this.tryEntries[i];if(entry.finallyLoc===finallyLoc)return this.complete(entry.completion,entry.afterLoc),resetTryEntry(entry),ContinueSentinel;}},"catch":function _catch(tryLoc){for(var i=this.tryEntries.length-1;i>=0;--i){var entry=this.tryEntries[i];if(entry.tryLoc===tryLoc){var record=entry.completion;if("throw"===record.type){var thrown=record.arg;resetTryEntry(entry);}return thrown;}}throw new Error("illegal catch attempt");},delegateYield:function delegateYield(iterable,resultName,nextLoc){return this.delegate={iterator:values(iterable),resultName:resultName,nextLoc:nextLoc},"next"===this.method&&(this.arg=undefined),ContinueSentinel;}},exports;}function asyncGeneratorStep(gen,resolve,reject,_next,_throw,key,arg){try{var info=gen[key](arg);var value=info.value;}catch(error){reject(error);return;}if(info.done){resolve(value);}else{Promise.resolve(value).then(_next,_throw);}}function _asyncToGenerator(fn){return function(){var self=this,args=arguments;return new Promise(function(resolve,reject){var gen=fn.apply(self,args);function _next(value){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"next",value);}function _throw(err){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"throw",err);}_next(undefined);});};}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _defineProperties(target,props){for(var i=0;i]+)>/g,function(_,name){var group=groups[name];return"$"+(Array.isArray(group)?group.join("$"):group);}));}if("function"==typeof substitution){var _this=this;return _super[Symbol.replace].call(this,str,function(){var args=arguments;return"object"!=_typeof(args[args.length-1])&&(args=[].slice.call(args)).push(buildGroups(args,_this)),substitution.apply(this,args);});}return _super[Symbol.replace].call(this,str,substitution);},_wrapRegExp.apply(this,arguments);}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function");}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:true,configurable:true}});Object.defineProperty(subClass,"prototype",{writable:false});if(superClass)_setPrototypeOf(subClass,superClass);}function _setPrototypeOf(o,p){_setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function _setPrototypeOf(o,p){o.__proto__=p;return o;};return _setPrototypeOf(o,p);}function _typeof(obj){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(obj){return typeof obj;}:function(obj){return obj&&"function"==typeof Symbol&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj;},_typeof(obj);}function _taggedTemplateLiteral(strings,raw){if(!raw){raw=strings.slice(0);}return Object.freeze(Object.defineProperties(strings,{raw:{value:Object.freeze(raw)}}));}function _slicedToArray(arr,i){return _arrayWithHoles(arr)||_iterableToArrayLimit(arr,i)||_unsupportedIterableToArray(arr,i)||_nonIterableRest();}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");}function _unsupportedIterableToArray(o,minLen){if(!o)return;if(typeof o==="string")return _arrayLikeToArray(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(o);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _arrayLikeToArray(o,minLen);}function _arrayLikeToArray(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i=0;--o){var i=this.tryEntries[o],a=i.completion;if("root"===i.tryLoc)return handle("end");if(i.tryLoc<=this.prev){var c=n.call(i,"catchLoc"),u=n.call(i,"finallyLoc");if(c&&u){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),resetTryEntry(r),y;}},"catch":function _catch(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;resetTryEntry(r);}return o;}}throw new Error("illegal catch attempt");},delegateYield:function delegateYield(e,r,n){return this.delegate={iterator:values(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),y;}},e;}function asyncGeneratorStep(gen,resolve,reject,_next,_throw,key,arg){try{var info=gen[key](arg);var value=info.value;}catch(error){reject(error);return;}if(info.done){resolve(value);}else{Promise.resolve(value).then(_next,_throw);}}function _asyncToGenerator(fn){return function(){var self=this,args=arguments;return new Promise(function(resolve,reject){var gen=fn.apply(self,args);function _next(value){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"next",value);}function _throw(err){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"throw",err);}_next(undefined);});};}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _defineProperties(target,props){for(var i=0;i]+)>/g,function(e,r){var t=o[r];return"$"+(Array.isArray(t)?t.join("$"):t);}));}if("function"==typeof p){var i=this;return e[Symbol.replace].call(this,t,function(){var e=arguments;return"object"!=_typeof(e[e.length-1])&&(e=[].slice.call(e)).push(buildGroups(e,i)),p.apply(this,e);});}return e[Symbol.replace].call(this,t,p);},_wrapRegExp.apply(this,arguments);}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function");}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:true,configurable:true}});Object.defineProperty(subClass,"prototype",{writable:false});if(superClass)_setPrototypeOf(subClass,superClass);}function _setPrototypeOf(o,p){_setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function _setPrototypeOf(o,p){o.__proto__=p;return o;};return _setPrototypeOf(o,p);}function _typeof(o){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(o){return typeof o;}:function(o){return o&&"function"==typeof Symbol&&o.constructor===Symbol&&o!==Symbol.prototype?"symbol":typeof o;},_typeof(o);}function _taggedTemplateLiteral(strings,raw){if(!raw){raw=strings.slice(0);}return Object.freeze(Object.defineProperties(strings,{raw:{value:Object.freeze(raw)}}));}function _slicedToArray(arr,i){return _arrayWithHoles(arr)||_iterableToArrayLimit(arr,i)||_unsupportedIterableToArray(arr,i)||_nonIterableRest();}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");}function _unsupportedIterableToArray(o,minLen){if(!o)return;if(typeof o==="string")return _arrayLikeToArray(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(o);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _arrayLikeToArray(o,minLen);}function _arrayLikeToArray(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i - */function(){var _register=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(){var request,response,optionsResponse,json,publicKey,credentials,publicKeyCredential,_args=arguments;return _regeneratorRuntime().wrap(function _callee$(_context){while(1)switch(_context.prev=_context.next){case 0:request=_args.length>0&&_args[0]!==undefined?_args[0]:{};response=_args.length>1&&_args[1]!==undefined?_args[1]:{};_context.next=4;return _classPrivateMethodGet(this,_fetch,_fetch2).call(this,request,_classPrivateFieldGet(this,_routes).registerOptions);case 4:optionsResponse=_context.sent;_context.next=7;return optionsResponse.json();case 7:json=_context.sent;publicKey=_classPrivateMethodGet(this,_parseIncomingServerOptions,_parseIncomingServerOptions2).call(this,json);_context.next=11;return navigator.credentials.create({publicKey:publicKey});case 11:credentials=_context.sent;publicKeyCredential=_classPrivateMethodGet(this,_parseOutgoingCredentials,_parseOutgoingCredentials2).call(this,credentials);Object.assign(publicKeyCredential,response);Object.assign(publicKeyCredential,request);_context.next=17;return _classPrivateMethodGet(this,_fetch,_fetch2).call(this,publicKeyCredential,_classPrivateFieldGet(this,_routes).register).then(_classStaticPrivateMethodGet(WebAuthn,WebAuthn,_handleResponse));case 17:return _context.abrupt("return",_context.sent);case 18:case"end":return _context.stop();}},_callee,this);}));function register(){return _register.apply(this,arguments);}return register;}()/** + */function register(){return(_register=_register||_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(){var request,response,optionsResponse,json,publicKey,credentials,publicKeyCredential,_args=arguments;return _regeneratorRuntime().wrap(function _callee$(_context){while(1)switch(_context.prev=_context.next){case 0:request=_args.length>0&&_args[0]!==undefined?_args[0]:{};response=_args.length>1&&_args[1]!==undefined?_args[1]:{};_context.next=4;return _classPrivateMethodGet(this,_fetch,_fetch2).call(this,request,_classPrivateFieldGet(this,_routes).registerOptions);case 4:optionsResponse=_context.sent;_context.next=7;return optionsResponse.json();case 7:json=_context.sent;publicKey=_classPrivateMethodGet(this,_parseIncomingServerOptions,_parseIncomingServerOptions2).call(this,json);_context.next=11;return navigator.credentials.create({publicKey:publicKey});case 11:credentials=_context.sent;publicKeyCredential=_classPrivateMethodGet(this,_parseOutgoingCredentials,_parseOutgoingCredentials2).call(this,credentials);Object.assign(publicKeyCredential,response);Object.assign(publicKeyCredential,request);_context.next=17;return _classPrivateMethodGet(this,_fetch,_fetch2).call(this,publicKeyCredential,_classPrivateFieldGet(this,_routes).register).then(_classStaticPrivateMethodGet(WebAuthn,WebAuthn,_handleResponse));case 17:return _context.abrupt("return",_context.sent);case 18:case"end":return _context.stop();}},_callee,this);}))).apply(this,arguments);}/** * Log in a user with his credentials. * * If no credentials are given, the app may return a blank assertion for userless login. @@ -5564,7 +5564,7 @@ throw new TypeError('Ensure a CSRF/XSRF token is manually set, or provided in a * @param request {{string}} * @param response {{string}} * @returns Promise - */},{key:"login",value:function(){var _login=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2(){var request,response,optionsResponse,json,publicKey,credentials,publicKeyCredential,_args2=arguments;return _regeneratorRuntime().wrap(function _callee2$(_context2){while(1)switch(_context2.prev=_context2.next){case 0:request=_args2.length>0&&_args2[0]!==undefined?_args2[0]:{};response=_args2.length>1&&_args2[1]!==undefined?_args2[1]:{};_context2.next=4;return _classPrivateMethodGet(this,_fetch,_fetch2).call(this,request,_classPrivateFieldGet(this,_routes).loginOptions);case 4:optionsResponse=_context2.sent;_context2.next=7;return optionsResponse.json();case 7:json=_context2.sent;publicKey=_classPrivateMethodGet(this,_parseIncomingServerOptions,_parseIncomingServerOptions2).call(this,json);_context2.next=11;return navigator.credentials.get({publicKey:publicKey});case 11:credentials=_context2.sent;publicKeyCredential=_classPrivateMethodGet(this,_parseOutgoingCredentials,_parseOutgoingCredentials2).call(this,credentials);Object.assign(publicKeyCredential,response);console.log(publicKeyCredential);_context2.next=17;return _classPrivateMethodGet(this,_fetch,_fetch2).call(this,publicKeyCredential,_classPrivateFieldGet(this,_routes).login,response).then(_classStaticPrivateMethodGet(WebAuthn,WebAuthn,_handleResponse));case 17:return _context2.abrupt("return",_context2.sent);case 18:case"end":return _context2.stop();}},_callee2,this);}));function login(){return _login.apply(this,arguments);}return login;}()/** + */},{key:"login",value:function login(){return(_login=_login||_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2(){var request,response,optionsResponse,json,publicKey,credentials,publicKeyCredential,_args2=arguments;return _regeneratorRuntime().wrap(function _callee2$(_context2){while(1)switch(_context2.prev=_context2.next){case 0:request=_args2.length>0&&_args2[0]!==undefined?_args2[0]:{};response=_args2.length>1&&_args2[1]!==undefined?_args2[1]:{};_context2.next=4;return _classPrivateMethodGet(this,_fetch,_fetch2).call(this,request,_classPrivateFieldGet(this,_routes).loginOptions);case 4:optionsResponse=_context2.sent;_context2.next=7;return optionsResponse.json();case 7:json=_context2.sent;publicKey=_classPrivateMethodGet(this,_parseIncomingServerOptions,_parseIncomingServerOptions2).call(this,json);_context2.next=11;return navigator.credentials.get({publicKey:publicKey});case 11:credentials=_context2.sent;publicKeyCredential=_classPrivateMethodGet(this,_parseOutgoingCredentials,_parseOutgoingCredentials2).call(this,credentials);Object.assign(publicKeyCredential,response);console.log(publicKeyCredential);_context2.next=17;return _classPrivateMethodGet(this,_fetch,_fetch2).call(this,publicKeyCredential,_classPrivateFieldGet(this,_routes).login,response).then(_classStaticPrivateMethodGet(WebAuthn,WebAuthn,_handleResponse));case 17:return _context2.abrupt("return",_context2.sent);case 18:case"end":return _context2.stop();}},_callee2,this);}))).apply(this,arguments);}/** * Checks if the browser supports WebAuthn. * * @returns {boolean} @@ -5572,7 +5572,7 @@ throw new TypeError('Ensure a CSRF/XSRF token is manually set, or provided in a * Checks if the browser doesn't support WebAuthn. * * @returns {boolean} - */},{key:"doesntSupportWebAuthn",value:function doesntSupportWebAuthn(){return!this.supportsWebAuthn();}}]);return WebAuthn;}();function _get_firstInputWithCsrfToken(){// First, try finding an CSRF Token in the head. + */},{key:"doesntSupportWebAuthn",value:function doesntSupportWebAuthn(){return!this.supportsWebAuthn();}}]);return WebAuthn;}();_class=WebAuthn;function _get_firstInputWithCsrfToken(){// First, try finding an CSRF Token in the head. var token=Array.from(document.head.getElementsByTagName("meta")).find(function(element){return element.name==="csrf-token";});if(token){return token.content;}// Then, try to find a hidden input containing the CSRF token. token=Array.from(document.getElementsByTagName("input")).find(function(input){return input.name==="_token"&&input.type==="hidden";});if(token){return token.value;}return null;}/** * Returns the value of the XSRF token if it exists in a cookie. @@ -5603,12 +5603,12 @@ return cookie?cookie.split("=")[1].trim().replaceAll("%3D",""):null;}function _f * @param input {string} * @param useAtob {boolean} * @returns {Uint8Array} - */function _uint8Array(input){var useAtob=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;return Uint8Array.from(useAtob?atob(input):_classStaticPrivateMethodGet(WebAuthn,WebAuthn,_base64UrlDecode).call(WebAuthn,input),function(c){return c.charCodeAt(0);});}/** + */function _uint8Array(input){var useAtob=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;return Uint8Array.from(useAtob?atob(input):_classStaticPrivateMethodGet(_class,_class,_base64UrlDecode).call(_class,input),function(c){return c.charCodeAt(0);});}/** * Encodes an array of bytes to a BASE64 URL string * * @param arrayBuffer {ArrayBuffer|Uint8Array} * @returns {string} - */function _arrayToBase64String(arrayBuffer){return btoa(String.fromCharCode.apply(String,_toConsumableArray(new Uint8Array(arrayBuffer))));}function _parseIncomingServerOptions2(publicKey){console.debug(publicKey);publicKey.challenge=_classStaticPrivateMethodGet(WebAuthn,WebAuthn,_uint8Array).call(WebAuthn,publicKey.challenge);if("user"in publicKey){publicKey.user=_objectSpread(_objectSpread({},publicKey.user),{},{id:_classStaticPrivateMethodGet(WebAuthn,WebAuthn,_uint8Array).call(WebAuthn,publicKey.user.id)});}["excludeCredentials","allowCredentials"].filter(function(key){return key in publicKey;}).forEach(function(key){publicKey[key]=publicKey[key].map(function(data){return _objectSpread(_objectSpread({},data),{},{id:_classStaticPrivateMethodGet(WebAuthn,WebAuthn,_uint8Array).call(WebAuthn,data.id)});});});console.log(publicKey);return publicKey;}function _parseOutgoingCredentials2(credentials){var parseCredentials={id:credentials.id,type:credentials.type,rawId:_classStaticPrivateMethodGet(WebAuthn,WebAuthn,_arrayToBase64String).call(WebAuthn,credentials.rawId),response:{}};["clientDataJSON","attestationObject","authenticatorData","signature","userHandle"].filter(function(key){return key in credentials.response;}).forEach(function(key){return parseCredentials.response[key]=_classStaticPrivateMethodGet(WebAuthn,WebAuthn,_arrayToBase64String).call(WebAuthn,credentials.response[key]);});return parseCredentials;}/** + */function _arrayToBase64String(arrayBuffer){return btoa(String.fromCharCode.apply(String,_toConsumableArray(new Uint8Array(arrayBuffer))));}function _parseIncomingServerOptions2(publicKey){console.debug(publicKey);publicKey.challenge=_classStaticPrivateMethodGet(_class,_class,_uint8Array).call(_class,publicKey.challenge);if("user"in publicKey){publicKey.user=_objectSpread(_objectSpread({},publicKey.user),{},{id:_classStaticPrivateMethodGet(_class,_class,_uint8Array).call(_class,publicKey.user.id)});}["excludeCredentials","allowCredentials"].filter(function(key){return key in publicKey;}).forEach(function(key){publicKey[key]=publicKey[key].map(function(data){return _objectSpread(_objectSpread({},data),{},{id:_classStaticPrivateMethodGet(_class,_class,_uint8Array).call(_class,data.id)});});});console.log(publicKey);return publicKey;}function _parseOutgoingCredentials2(credentials){var parseCredentials={id:credentials.id,type:credentials.type,rawId:_classStaticPrivateMethodGet(_class,_class,_arrayToBase64String).call(_class,credentials.rawId),response:{}};["clientDataJSON","attestationObject","authenticatorData","signature","userHandle"].filter(function(key){return key in credentials.response;}).forEach(function(key){return parseCredentials.response[key]=_classStaticPrivateMethodGet(_class,_class,_arrayToBase64String).call(_class,credentials.response[key]);});return parseCredentials;}/** * Handles the response from the Server. * * Throws the entire response if is not OK (HTTP 2XX). diff --git a/public/dist/landing.js b/public/dist/landing.js index be17a259f0..8cb2444f06 100644 --- a/public/dist/landing.js +++ b/public/dist/landing.js @@ -1,5 +1,5 @@ -/*! jQuery v3.7.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */ -!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(ie,e){"use strict";var oe=[],r=Object.getPrototypeOf,ae=oe.slice,g=oe.flat?function(e){return oe.flat.call(e)}:function(e){return oe.concat.apply([],e)},s=oe.push,se=oe.indexOf,n={},i=n.toString,ue=n.hasOwnProperty,o=ue.toString,a=o.call(Object),le={},v=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},y=function(e){return null!=e&&e===e.window},C=ie.document,u={type:!0,src:!0,nonce:!0,noModule:!0};function m(e,t,n){var r,i,o=(n=n||C).createElement("script");if(o.text=e,t)for(r in u)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function x(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[i.call(e)]||"object":typeof e}var t="3.7.0",l=/HTML$/i,ce=function(e,t){return new ce.fn.init(e,t)};function c(e){var t=!!e&&"length"in e&&e.length,n=x(e);return!v(e)&&!y(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+ge+")"+ge+"*"),x=new RegExp(ge+"|>"),j=new RegExp(g),A=new RegExp("^"+t+"$"),D={ID:new RegExp("^#("+t+")"),CLASS:new RegExp("^\\.("+t+")"),TAG:new RegExp("^("+t+"|[*])"),ATTR:new RegExp("^"+p),PSEUDO:new RegExp("^"+g),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+ge+"*(even|odd|(([+-]|)(\\d*)n|)"+ge+"*(?:([+-]|)"+ge+"*(\\d+)|))"+ge+"*\\)|)","i"),bool:new RegExp("^(?:"+f+")$","i"),needsContext:new RegExp("^"+ge+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+ge+"*((?:-\\d)?\\d*)"+ge+"*\\)|)(?=[^-]|$)","i")},N=/^(?:input|select|textarea|button)$/i,q=/^h\d$/i,L=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,H=/[+~]/,O=new RegExp("\\\\[\\da-fA-F]{1,6}"+ge+"?|\\\\([^\\r\\n\\f])","g"),P=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},R=function(){V()},M=J(function(e){return!0===e.disabled&&fe(e,"fieldset")},{dir:"parentNode",next:"legend"});try{k.apply(oe=ae.call(ye.childNodes),ye.childNodes),oe[ye.childNodes.length].nodeType}catch(e){k={apply:function(e,t){me.apply(e,ae.call(t))},call:function(e){me.apply(e,ae.call(arguments,1))}}}function I(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(V(e),e=e||T,C)){if(11!==p&&(u=L.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return k.call(n,a),n}else if(f&&(a=f.getElementById(i))&&I.contains(e,a)&&a.id===i)return k.call(n,a),n}else{if(u[2])return k.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&e.getElementsByClassName)return k.apply(n,e.getElementsByClassName(i)),n}if(!(h[t+" "]||d&&d.test(t))){if(c=t,f=e,1===p&&(x.test(t)||m.test(t))){(f=H.test(t)&&z(e.parentNode)||e)==e&&le.scope||((s=e.getAttribute("id"))?s=ce.escapeSelector(s):e.setAttribute("id",s=S)),o=(l=Y(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+Q(l[o]);c=l.join(",")}try{return k.apply(n,f.querySelectorAll(c)),n}catch(e){h(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return re(t.replace(ve,"$1"),e,n,r)}function W(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function F(e){return e[S]=!0,e}function $(e){var t=T.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function B(t){return function(e){return fe(e,"input")&&e.type===t}}function _(t){return function(e){return(fe(e,"input")||fe(e,"button"))&&e.type===t}}function X(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&M(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function U(a){return F(function(o){return o=+o,F(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function z(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}function V(e){var t,n=e?e.ownerDocument||e:ye;return n!=T&&9===n.nodeType&&n.documentElement&&(r=(T=n).documentElement,C=!ce.isXMLDoc(T),i=r.matches||r.webkitMatchesSelector||r.msMatchesSelector,ye!=T&&(t=T.defaultView)&&t.top!==t&&t.addEventListener("unload",R),le.getById=$(function(e){return r.appendChild(e).id=ce.expando,!T.getElementsByName||!T.getElementsByName(ce.expando).length}),le.disconnectedMatch=$(function(e){return i.call(e,"*")}),le.scope=$(function(){return T.querySelectorAll(":scope")}),le.cssHas=$(function(){try{return T.querySelector(":has(*,:jqfake)"),!1}catch(e){return!0}}),le.getById?(b.filter.ID=function(e){var t=e.replace(O,P);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&C){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(O,P);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&C){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):t.querySelectorAll(e)},b.find.CLASS=function(e,t){if("undefined"!=typeof t.getElementsByClassName&&C)return t.getElementsByClassName(e)},d=[],$(function(e){var t;r.appendChild(e).innerHTML="",e.querySelectorAll("[selected]").length||d.push("\\["+ge+"*(?:value|"+f+")"),e.querySelectorAll("[id~="+S+"-]").length||d.push("~="),e.querySelectorAll("a#"+S+"+*").length||d.push(".#.+[+~]"),e.querySelectorAll(":checked").length||d.push(":checked"),(t=T.createElement("input")).setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),r.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&d.push(":enabled",":disabled"),(t=T.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||d.push("\\["+ge+"*name"+ge+"*="+ge+"*(?:''|\"\")")}),le.cssHas||d.push(":has"),d=d.length&&new RegExp(d.join("|")),l=function(e,t){if(e===t)return a=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!le.sortDetached&&t.compareDocumentPosition(e)===n?e===T||e.ownerDocument==ye&&I.contains(ye,e)?-1:t===T||t.ownerDocument==ye&&I.contains(ye,t)?1:o?se.call(o,e)-se.call(o,t):0:4&n?-1:1)}),T}for(e in I.matches=function(e,t){return I(e,null,null,t)},I.matchesSelector=function(e,t){if(V(e),C&&!h[t+" "]&&(!d||!d.test(t)))try{var n=i.call(e,t);if(n||le.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){h(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(O,P),e[3]=(e[3]||e[4]||e[5]||"").replace(O,P),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||I.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&I.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return D.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&j.test(n)&&(t=Y(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(O,P).toLowerCase();return"*"===e?function(){return!0}:function(e){return fe(e,t)}},CLASS:function(e){var t=s[e+" "];return t||(t=new RegExp("(^|"+ge+")"+e+"("+ge+"|$)"))&&s(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=I.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function T(e,n,r){return v(n)?ce.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?ce.grep(e,function(e){return e===n!==r}):"string"!=typeof n?ce.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(ce.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||k,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:S.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof ce?t[0]:t,ce.merge(this,ce.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:C,!0)),w.test(r[1])&&ce.isPlainObject(t))for(r in t)v(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=C.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):v(e)?void 0!==n.ready?n.ready(e):e(ce):ce.makeArray(e,this)}).prototype=ce.fn,k=ce(C);var E=/^(?:parents|prev(?:Until|All))/,j={children:!0,contents:!0,next:!0,prev:!0};function A(e,t){while((e=e[t])&&1!==e.nodeType);return e}ce.fn.extend({has:function(e){var t=ce(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,Ce=/^$|^module$|\/(?:java|ecma)script/i;xe=C.createDocumentFragment().appendChild(C.createElement("div")),(be=C.createElement("input")).setAttribute("type","radio"),be.setAttribute("checked","checked"),be.setAttribute("name","t"),xe.appendChild(be),le.checkClone=xe.cloneNode(!0).cloneNode(!0).lastChild.checked,xe.innerHTML="",le.noCloneChecked=!!xe.cloneNode(!0).lastChild.defaultValue,xe.innerHTML="",le.option=!!xe.lastChild;var ke={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function Se(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&fe(e,t)?ce.merge([e],n):n}function Ee(e,t){for(var n=0,r=e.length;n",""]);var je=/<|&#?\w+;/;function Ae(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function Me(e,t){return fe(e,"table")&&fe(11!==t.nodeType?t:t.firstChild,"tr")&&ce(e).children("tbody")[0]||e}function Ie(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function We(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Fe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(_.hasData(e)&&(s=_.get(e).events))for(i in _.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),C.head.appendChild(r[0])},abort:function(){i&&i()}}});var Jt,Kt=[],Zt=/(=)\?(?=&|$)|\?\?/;ce.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Kt.pop()||ce.expando+"_"+jt.guid++;return this[e]=!0,e}}),ce.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Zt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Zt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=v(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Zt,"$1"+r):!1!==e.jsonp&&(e.url+=(At.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||ce.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=ie[r],ie[r]=function(){o=arguments},n.always(function(){void 0===i?ce(ie).removeProp(r):ie[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Kt.push(r)),o&&v(i)&&i(o[0]),o=i=void 0}),"script"}),le.createHTMLDocument=((Jt=C.implementation.createHTMLDocument("").body).innerHTML="
",2===Jt.childNodes.length),ce.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(le.createHTMLDocument?((r=(t=C.implementation.createHTMLDocument("")).createElement("base")).href=C.location.href,t.head.appendChild(r)):t=C),o=!n&&[],(i=w.exec(e))?[t.createElement(i[1])]:(i=Ae([e],t,o),o&&o.length&&ce(o).remove(),ce.merge([],i.childNodes)));var r,i,o},ce.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(ce.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},ce.expr.pseudos.animated=function(t){return ce.grep(ce.timers,function(e){return t===e.elem}).length},ce.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=ce.css(e,"position"),c=ce(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=ce.css(e,"top"),u=ce.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),v(t)&&(t=t.call(e,n,ce.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},ce.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){ce.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===ce.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===ce.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=ce(e).offset()).top+=ce.css(e,"borderTopWidth",!0),i.left+=ce.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-ce.css(r,"marginTop",!0),left:t.left-i.left-ce.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===ce.css(e,"position"))e=e.offsetParent;return e||J})}}),ce.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;ce.fn[t]=function(e){return R(this,function(e,t,n){var r;if(y(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),ce.each(["top","left"],function(e,n){ce.cssHooks[n]=Ye(le.pixelPosition,function(e,t){if(t)return t=Ge(e,n),_e.test(t)?ce(e).position()[n]+"px":t})}),ce.each({Height:"height",Width:"width"},function(a,s){ce.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){ce.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return R(this,function(e,t,n){var r;return y(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?ce.css(e,t,i):ce.style(e,t,n,i)},s,n?e:void 0,n)}})}),ce.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){ce.fn[t]=function(e){return this.on(t,e)}}),ce.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),ce.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){ce.fn[n]=function(e,t){return 0+~]|"+ge+")"+ge+"*"),x=new RegExp(ge+"|>"),j=new RegExp(g),A=new RegExp("^"+t+"$"),D={ID:new RegExp("^#("+t+")"),CLASS:new RegExp("^\\.("+t+")"),TAG:new RegExp("^("+t+"|[*])"),ATTR:new RegExp("^"+p),PSEUDO:new RegExp("^"+g),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+ge+"*(even|odd|(([+-]|)(\\d*)n|)"+ge+"*(?:([+-]|)"+ge+"*(\\d+)|))"+ge+"*\\)|)","i"),bool:new RegExp("^(?:"+f+")$","i"),needsContext:new RegExp("^"+ge+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+ge+"*((?:-\\d)?\\d*)"+ge+"*\\)|)(?=[^-]|$)","i")},N=/^(?:input|select|textarea|button)$/i,q=/^h\d$/i,L=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,H=/[+~]/,O=new RegExp("\\\\[\\da-fA-F]{1,6}"+ge+"?|\\\\([^\\r\\n\\f])","g"),P=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},M=function(){V()},R=J(function(e){return!0===e.disabled&&fe(e,"fieldset")},{dir:"parentNode",next:"legend"});try{k.apply(oe=ae.call(ye.childNodes),ye.childNodes),oe[ye.childNodes.length].nodeType}catch(e){k={apply:function(e,t){me.apply(e,ae.call(t))},call:function(e){me.apply(e,ae.call(arguments,1))}}}function I(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(V(e),e=e||T,C)){if(11!==p&&(u=L.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return k.call(n,a),n}else if(f&&(a=f.getElementById(i))&&I.contains(e,a)&&a.id===i)return k.call(n,a),n}else{if(u[2])return k.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&e.getElementsByClassName)return k.apply(n,e.getElementsByClassName(i)),n}if(!(h[t+" "]||d&&d.test(t))){if(c=t,f=e,1===p&&(x.test(t)||m.test(t))){(f=H.test(t)&&U(e.parentNode)||e)==e&&le.scope||((s=e.getAttribute("id"))?s=ce.escapeSelector(s):e.setAttribute("id",s=S)),o=(l=Y(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+Q(l[o]);c=l.join(",")}try{return k.apply(n,f.querySelectorAll(c)),n}catch(e){h(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return re(t.replace(ve,"$1"),e,n,r)}function W(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function F(e){return e[S]=!0,e}function $(e){var t=T.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function B(t){return function(e){return fe(e,"input")&&e.type===t}}function _(t){return function(e){return(fe(e,"input")||fe(e,"button"))&&e.type===t}}function z(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&R(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function X(a){return F(function(o){return o=+o,F(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function U(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}function V(e){var t,n=e?e.ownerDocument||e:ye;return n!=T&&9===n.nodeType&&n.documentElement&&(r=(T=n).documentElement,C=!ce.isXMLDoc(T),i=r.matches||r.webkitMatchesSelector||r.msMatchesSelector,r.msMatchesSelector&&ye!=T&&(t=T.defaultView)&&t.top!==t&&t.addEventListener("unload",M),le.getById=$(function(e){return r.appendChild(e).id=ce.expando,!T.getElementsByName||!T.getElementsByName(ce.expando).length}),le.disconnectedMatch=$(function(e){return i.call(e,"*")}),le.scope=$(function(){return T.querySelectorAll(":scope")}),le.cssHas=$(function(){try{return T.querySelector(":has(*,:jqfake)"),!1}catch(e){return!0}}),le.getById?(b.filter.ID=function(e){var t=e.replace(O,P);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&C){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(O,P);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&C){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):t.querySelectorAll(e)},b.find.CLASS=function(e,t){if("undefined"!=typeof t.getElementsByClassName&&C)return t.getElementsByClassName(e)},d=[],$(function(e){var t;r.appendChild(e).innerHTML="",e.querySelectorAll("[selected]").length||d.push("\\["+ge+"*(?:value|"+f+")"),e.querySelectorAll("[id~="+S+"-]").length||d.push("~="),e.querySelectorAll("a#"+S+"+*").length||d.push(".#.+[+~]"),e.querySelectorAll(":checked").length||d.push(":checked"),(t=T.createElement("input")).setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),r.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&d.push(":enabled",":disabled"),(t=T.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||d.push("\\["+ge+"*name"+ge+"*="+ge+"*(?:''|\"\")")}),le.cssHas||d.push(":has"),d=d.length&&new RegExp(d.join("|")),l=function(e,t){if(e===t)return a=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!le.sortDetached&&t.compareDocumentPosition(e)===n?e===T||e.ownerDocument==ye&&I.contains(ye,e)?-1:t===T||t.ownerDocument==ye&&I.contains(ye,t)?1:o?se.call(o,e)-se.call(o,t):0:4&n?-1:1)}),T}for(e in I.matches=function(e,t){return I(e,null,null,t)},I.matchesSelector=function(e,t){if(V(e),C&&!h[t+" "]&&(!d||!d.test(t)))try{var n=i.call(e,t);if(n||le.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){h(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(O,P),e[3]=(e[3]||e[4]||e[5]||"").replace(O,P),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||I.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&I.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return D.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&j.test(n)&&(t=Y(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(O,P).toLowerCase();return"*"===e?function(){return!0}:function(e){return fe(e,t)}},CLASS:function(e){var t=s[e+" "];return t||(t=new RegExp("(^|"+ge+")"+e+"("+ge+"|$)"))&&s(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=I.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function T(e,n,r){return v(n)?ce.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?ce.grep(e,function(e){return e===n!==r}):"string"!=typeof n?ce.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(ce.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||k,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:S.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof ce?t[0]:t,ce.merge(this,ce.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:C,!0)),w.test(r[1])&&ce.isPlainObject(t))for(r in t)v(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=C.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):v(e)?void 0!==n.ready?n.ready(e):e(ce):ce.makeArray(e,this)}).prototype=ce.fn,k=ce(C);var E=/^(?:parents|prev(?:Until|All))/,j={children:!0,contents:!0,next:!0,prev:!0};function A(e,t){while((e=e[t])&&1!==e.nodeType);return e}ce.fn.extend({has:function(e){var t=ce(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,Ce=/^$|^module$|\/(?:java|ecma)script/i;xe=C.createDocumentFragment().appendChild(C.createElement("div")),(be=C.createElement("input")).setAttribute("type","radio"),be.setAttribute("checked","checked"),be.setAttribute("name","t"),xe.appendChild(be),le.checkClone=xe.cloneNode(!0).cloneNode(!0).lastChild.checked,xe.innerHTML="",le.noCloneChecked=!!xe.cloneNode(!0).lastChild.defaultValue,xe.innerHTML="",le.option=!!xe.lastChild;var ke={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function Se(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&fe(e,t)?ce.merge([e],n):n}function Ee(e,t){for(var n=0,r=e.length;n",""]);var je=/<|&#?\w+;/;function Ae(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function Re(e,t){return fe(e,"table")&&fe(11!==t.nodeType?t:t.firstChild,"tr")&&ce(e).children("tbody")[0]||e}function Ie(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function We(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Fe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(_.hasData(e)&&(s=_.get(e).events))for(i in _.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),C.head.appendChild(r[0])},abort:function(){i&&i()}}});var Jt,Kt=[],Zt=/(=)\?(?=&|$)|\?\?/;ce.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Kt.pop()||ce.expando+"_"+jt.guid++;return this[e]=!0,e}}),ce.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Zt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Zt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=v(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Zt,"$1"+r):!1!==e.jsonp&&(e.url+=(At.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||ce.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=ie[r],ie[r]=function(){o=arguments},n.always(function(){void 0===i?ce(ie).removeProp(r):ie[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Kt.push(r)),o&&v(i)&&i(o[0]),o=i=void 0}),"script"}),le.createHTMLDocument=((Jt=C.implementation.createHTMLDocument("").body).innerHTML="
",2===Jt.childNodes.length),ce.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(le.createHTMLDocument?((r=(t=C.implementation.createHTMLDocument("")).createElement("base")).href=C.location.href,t.head.appendChild(r)):t=C),o=!n&&[],(i=w.exec(e))?[t.createElement(i[1])]:(i=Ae([e],t,o),o&&o.length&&ce(o).remove(),ce.merge([],i.childNodes)));var r,i,o},ce.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(ce.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},ce.expr.pseudos.animated=function(t){return ce.grep(ce.timers,function(e){return t===e.elem}).length},ce.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=ce.css(e,"position"),c=ce(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=ce.css(e,"top"),u=ce.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),v(t)&&(t=t.call(e,n,ce.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},ce.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){ce.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===ce.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===ce.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=ce(e).offset()).top+=ce.css(e,"borderTopWidth",!0),i.left+=ce.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-ce.css(r,"marginTop",!0),left:t.left-i.left-ce.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===ce.css(e,"position"))e=e.offsetParent;return e||J})}}),ce.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;ce.fn[t]=function(e){return M(this,function(e,t,n){var r;if(y(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),ce.each(["top","left"],function(e,n){ce.cssHooks[n]=Ye(le.pixelPosition,function(e,t){if(t)return t=Ge(e,n),_e.test(t)?ce(e).position()[n]+"px":t})}),ce.each({Height:"height",Width:"width"},function(a,s){ce.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){ce.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return M(this,function(e,t,n){var r;return y(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?ce.css(e,t,i):ce.style(e,t,n,i)},s,n?e:void 0,n)}})}),ce.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){ce.fn[t]=function(e){return this.on(t,e)}}),ce.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.on("mouseenter",e).on("mouseleave",t||e)}}),ce.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){ce.fn[n]=function(e,t){return 0 { // webpackBootstrap -/******/ var __webpack_modules__ = ({ - -/***/ "./resources/assets/js/app.js": -/*!************************************!*\ - !*** ./resources/assets/js/app.js ***! - \************************************/ -/***/ (() => { - - - -/***/ }), - -/***/ "./resources/assets/scss/app.scss": -/*!****************************************!*\ - !*** ./resources/assets/scss/app.scss ***! - \****************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -// extracted by mini-css-extract-plugin - - -/***/ }) - -/******/ }); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = __webpack_modules__; -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/chunk loaded */ -/******/ (() => { -/******/ var deferred = []; -/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { -/******/ if(chunkIds) { -/******/ priority = priority || 0; -/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; -/******/ deferred[i] = [chunkIds, fn, priority]; -/******/ return; -/******/ } -/******/ var notFulfilled = Infinity; -/******/ for (var i = 0; i < deferred.length; i++) { -/******/ var [chunkIds, fn, priority] = deferred[i]; -/******/ var fulfilled = true; -/******/ for (var j = 0; j < chunkIds.length; j++) { -/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { -/******/ chunkIds.splice(j--, 1); -/******/ } else { -/******/ fulfilled = false; -/******/ if(priority < notFulfilled) notFulfilled = priority; -/******/ } -/******/ } -/******/ if(fulfilled) { -/******/ deferred.splice(i--, 1) -/******/ result = fn(); -/******/ } -/******/ } -/******/ return result; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/hasOwnProperty shorthand */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/jsonp chunk loading */ -/******/ (() => { -/******/ // no baseURI -/******/ -/******/ // object to store loaded and loading chunks -/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched -/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded -/******/ var installedChunks = { -/******/ "/js/app": 0, -/******/ "css/app": 0 -/******/ }; -/******/ -/******/ // no chunk on demand loading -/******/ -/******/ // no prefetching -/******/ -/******/ // no preloaded -/******/ -/******/ // no HMR -/******/ -/******/ // no HMR manifest -/******/ -/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); -/******/ -/******/ // install a JSONP callback for chunk loading -/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { -/******/ var [chunkIds, moreModules, runtime] = data; -/******/ // add "moreModules" to the modules object, -/******/ // then flag all "chunkIds" as loaded and fire callback -/******/ var moduleId, chunkId, i = 0; -/******/ for(moduleId in moreModules) { -/******/ if(__webpack_require__.o(moreModules, moduleId)) { -/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; -/******/ } -/******/ } -/******/ if(runtime) var result = runtime(__webpack_require__); -/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); -/******/ for(;i < chunkIds.length; i++) { -/******/ chunkId = chunkIds[i]; -/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { -/******/ installedChunks[chunkId][0](); -/******/ } -/******/ installedChunks[chunkIds[i]] = 0; -/******/ } -/******/ return __webpack_require__.O(result); -/******/ } -/******/ -/******/ var chunkLoadingGlobal = self["webpackChunk"] = self["webpackChunk"] || []; -/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); -/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); -/******/ })(); -/******/ -/************************************************************************/ -/******/ -/******/ // startup -/******/ // Load entry module and return exports -/******/ // This entry module depends on other loaded chunks and execution need to be delayed -/******/ __webpack_require__.O(undefined, ["css/app"], () => (__webpack_require__("./resources/assets/js/app.js"))) -/******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["css/app"], () => (__webpack_require__("./resources/assets/scss/app.scss"))) -/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__); -/******/ -/******/ })() -; \ No newline at end of file diff --git a/public/mix-manifest.json b/public/mix-manifest.json deleted file mode 100644 index 2d60117130..0000000000 --- a/public/mix-manifest.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "/js/app.js": "/js/app.js", - "/css/app.css": "/css/app.css" -} diff --git a/resources/assets/js/app.js b/resources/assets/js/app.js deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/resources/assets/scss/_animations.scss b/resources/assets/scss/_animations.scss deleted file mode 100644 index 6e3180f8da..0000000000 --- a/resources/assets/scss/_animations.scss +++ /dev/null @@ -1,79 +0,0 @@ -// Animation Setter ---------------------------------------------------- // -.fadeIn { - animation-name: fadeIn; - animation-duration: 0.3s; - animation-fill-mode: forwards; - animation-timing-function: $timing; -} - -.fadeOut { - animation-name: fadeOut; - animation-duration: 0.3s; - animation-fill-mode: forwards; - animation-timing-function: $timing; -} - -// Fade -------------------------------------------------------------- // -@keyframes fadeIn { - 0% { - opacity: 0; - } - 100% { - opacity: 1; - } -} - -@keyframes fadeOut { - 0% { - opacity: 1; - } - 100% { - opacity: 0; - } -} - -// Move -------------------------------------------------------------- // -@keyframes moveBackground { - 0% { - background-position-x: 0px; - } - 100% { - background-position-x: -100px; - } -} - -// Zoom -------------------------------------------------------------- // -@keyframes zoomIn { - 0% { - opacity: 0; - transform: scale(0.8); - } - 100% { - opacity: 1; - transform: scale(1); - } -} - -@keyframes zoomOut { - 0% { - opacity: 1; - transform: scale(1); - } - 100% { - opacity: 0; - transform: scale(0.8); - } -} - -// Pulse -------------------------------------------------------------- // -@keyframes pulse { - 0% { - opacity: 1; - } - 50% { - opacity: 0.3; - } - 100% { - opacity: 1; - } -} diff --git a/resources/assets/scss/_content.scss b/resources/assets/scss/_content.scss deleted file mode 100644 index b744f7b7c7..0000000000 --- a/resources/assets/scss/_content.scss +++ /dev/null @@ -1,513 +0,0 @@ -.content { - display: flex; - flex-wrap: wrap; - align-content: flex-start; - padding: 50px 30px 33px 0; - width: calc(100% - 30px); - // We will set min-height from JavaScript, accounting for the - // height of the footer, which can vary. - //min-height: calc(100vh - 50px - 33px - ); - transition: margin-left 0.5s; - -webkit-overflow-scrolling: touch; - max-width: calc(100vw - 10px); - &::before { - content: ""; - position: absolute; - left: 0; - width: 100%; - height: 1px; - background: white(0.02); - } - &--sidebar { - width: calc(100% - 380px); - } - // Animations -------------------------------------------------------------- // - &.contentZoomIn .album, - &.contentZoomIn .photo { - animation-name: zoomIn; - } - &.contentZoomIn .divider { - animation-name: fadeIn; - } - &.contentZoomOut .album, - &.contentZoomOut .photo { - animation-name: zoomOut; - } - &.contentZoomOut .divider { - animation-name: fadeOut; - } - // Albums and Photos ------------------------------------------------------ // - .album { - position: relative; - width: 202px; - height: 202px; - margin: 30px 0 0 30px; - cursor: default; - - animation-duration: 0.2s; - animation-fill-mode: forwards; - animation-timing-function: $timing; - .thumbimg { - position: absolute; - width: 100%; - height: 100%; - background: #222; - color: #222; - box-shadow: 0 2px 5px black(0.5); - border: 1px solid white(0.5); - transition: opacity 0.3s ease-out, transform 0.3s ease-out, - border-color 0.3s ease-out; - } - .thumbimg > img { - width: 100%; - height: 100%; - } - &:focus .thumbimg, - &.active .thumbimg { - border-color: $colorBlue; - } - &:active .thumbimg { - transition: none; - border-color: darken($colorBlue, 15%); - } - &.selected img { - outline: 1px solid $colorBlue; - } - .video { - &::before { - content: ""; - position: absolute; - display: block; - height: 100%; - width: 100%; - background: url("../img/play-icon.png") no-repeat 46% 50%; - transition: all 0.3s; - will-change: opacity, height; - } - &:focus::before { - opacity: 0.75; - } - } - .livephoto { - &::before { - content: ""; - position: absolute; - display: block; - height: 100%; - width: 100%; - background: url("../img/live-photo-icon.png") no-repeat 46% 50%; - background-position: 2% 2%; - transition: all 0.3s; - will-change: opacity, height; - } - &:focus::before { - opacity: 0.75; - } - } - } - - // Album -------------------------------------------------------------- // - .album { - .thumbimg:first-child, - .thumbimg:nth-child(2) { - transform: rotate(0) translateY(0) translateX(0); - opacity: 0; - } - &:focus .thumbimg:nth-child(1), - &:focus .thumbimg:nth-child(2) { - opacity: 1; - // Keep the composited layer created by the browser during the animation. - // Makes the border of the transformed thumb look better. - // See https://github.com/electerious/Lychee/pull/626 for more. - will-change: transform; - } - &:focus .thumbimg:nth-child(1) { - transform: rotate(-2deg) translateY(10px) translateX(-12px); - } - &:focus .thumbimg:nth-child(2) { - transform: rotate(5deg) translateY(-8px) translateX(12px); - } - } - .blurred { - span { - overflow: hidden; - } - img { - /* Safari 6.0 - 9.0 */ - -webkit-filter: blur(5px); - filter: blur(5px); - } - } - // Overlay -------------------------------------------------------------- // - .album { - .overlay { - position: absolute; - margin: 0 1px; - width: 100%; - background: linear-gradient(to bottom, black(0), black(0.6)); - bottom: 0px; - h1 { - min-height: 19px; - width: 180px; - margin: 12px 0 5px 15px; - color: #fff; - text-shadow: 0 1px 3px black(0.4); - font-size: 16px; - font-weight: bold; - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; - } - a { - display: block; - margin: 0 0 12px 15px; - font-size: 11px; - color: #ccc; - text-shadow: 0 1px 3px black(0.4); - } - a .iconic { - fill: #ccc; - margin: 0 5px 0 0; - width: 8px; - height: 8px; - } - } - // No overlay for empty albums - .thumbimg[data-overlay="false"] + .overlay { - background: none; - h1, a { - text-shadow: none; - } - } - // Badge -------------------------------------------------------------- // - .badges { - position: relative; - margin: -1px 0 0 6px; - } - .subalbum_badge { - position: absolute; - right: 0; - top: 0; - //margin: -1px 0 0 6px; - } - .badge { - display: none; - margin: 0 0 0 6px; - padding: 12px 8px 6px; - width: 18px; - background: $colorRed; - box-shadow: 0 0 2px black(0.6); - border-radius: 0 0 5px 5px; - border: 1px solid #fff; - border-top: none; - color: #fff; - text-align: center; - text-shadow: 0 1px 0 black(0.4); - opacity: 0.9; - - &--visible { - display: inline-block; - } - &--not--hidden { - background: $colorGreen; - } - &--hidden { - background: $colorOrange; - } - &--cover { - display: "inline-block"; - background: $colorOrange; - } - &--star { - display: inline-block; - background: $colorYellow; - } - &--nsfw { - display: inline-block; - background: $colorPink; - } - &--list { - background: $colorBlue; - } - &--tag { - display: inline-block; - background: $colorGreen; - } - .iconic { - fill: #fff; - width: 16px; - height: 16px; - } - &--folder { - display: inline-block; - box-shadow: none; - background: none; - border: none; - .iconic { - width: 12px; - height: 12px; - } - } - } - } - // Divider -------------------------------------------------------------- // - .divider { - margin: 50px 0 0; - padding: 10px 0 0; - width: 100%; - opacity: 0; - border-top: 1px solid white(0.02); - box-shadow: $shadow; - - animation-duration: 0.2s; - animation-fill-mode: forwards; - animation-timing-function: $timing; - &:first-child { - margin-top: 10px; - border-top: 0; - box-shadow: none; - } - h1 { - margin: 0 0 0 30px; - color: white(0.6); - font-size: 14px; - font-weight: bold; - } - } -} - -// responsive web design for smaller screens -@media only screen and (min-width: 320px) and (max-width: 567px) { - .content { - padding: 50px 0 33px 0; - width: 100%; - max-width: 100%; - - .album { - // 3 thumbnails per row - --size: calc((100vw - 3px) / 3); - width: calc(var(--size) - 3px); - height: calc(var(--size) - 3px); - margin: 3px 0 0 3px; - .thumbimg { - width: calc(var(--size) - 5px); - height: calc(var(--size) - 5px); - } - .overlay { - width: calc(var(--size) - 5px); - h1 { - min-height: 14px; - width: calc(var(--size) - 19px); - margin: 8px 0 2px 6px; - font-size: 12px; - } - a { - // suppress subtitles on small screens - display: none; - } - } - .badge { - padding: 4px 3px 3px; - width: 12px; - .iconic { - width: 12px; - height: 12px; - } - &--folder { - .iconic { - width: 8px; - height: 8px; - } - } - } - } - .divider { - margin: 20px 0 0; - &:first-child { - margin-top: 0; - } - h1 { - margin: 0 0 6px 8px; - font-size: 12px; - } - } - } -} - -@media only screen and (min-width: 568px) and (max-width: 639px) { - .content { - padding: 50px 0 33px 0; - width: 100%; - max-width: 100%; - - .album { - // 4 thumbnails per row - --size: calc((100vw - 3px) / 4); - width: calc(var(--size) - 3px); - height: calc(var(--size) - 3px); - margin: 3px 0 0 3px; - .thumbimg { - width: calc(var(--size) - 5px); - height: calc(var(--size) - 5px); - } - .overlay { - width: calc(var(--size) - 5px); - h1 { - min-height: 14px; - width: calc(var(--size) - 19px); - margin: 8px 0 2px 6px; - font-size: 12px; - } - a { - // suppress subtitles on small screens - display: none; - } - } - .badge { - padding: 4px 3px 3px; - width: 14px; - .iconic { - width: 14px; - height: 14px; - } - &--folder { - .iconic { - width: 9px; - height: 9px; - } - } - } - } - .divider { - margin: 24px 0 0; - &:first-child { - margin-top: 0; - } - h1 { - margin: 0 0 6px 10px; - } - } - } -} - -@media only screen and (min-width: 640px) and (max-width: 768px) { - .content { - padding: 50px 0 33px 0; - width: 100%; - max-width: 100%; - - .album { - // 5 thumbnails per row - --size: calc((100vw - 5px) / 5); - width: calc(var(--size) - 5px); - height: calc(var(--size) - 5px); - margin: 5px 0 0 5px; - .thumbimg { - width: calc(var(--size) - 7px); - height: calc(var(--size) - 7px); - } - .overlay { - width: calc(var(--size) - 7px); - h1 { - min-height: 14px; - width: calc(var(--size) - 21px); - margin: 10px 0 3px 8px; - font-size: 12px; - } - a { - // suppress subtitles on small screens - display: none; - } - } - .badge { - padding: 6px 4px 4px; - width: 16px; - .iconic { - width: 16px; - height: 16px; - } - &--folder { - .iconic { - width: 10px; - height: 10px; - } - } - } - } - .divider { - margin: 28px 0 0; - &:first-child { - margin-top: 0; - } - h1 { - margin: 0 0 6px 10px; - } - } - } -} - -// No content -------------------------------------------------------------- // -.no_content { - position: absolute; - top: 50%; - left: 50%; - padding-top: 20px; - color: white(0.35); - text-align: center; - transform: translateX(-50%) translateY(-50%); - .iconic { - fill: white(0.3); - margin: 0 0 10px; - width: 50px; - height: 50px; - } - p { - font-size: 16px; - font-weight: bold; - } -} - -.leftMenu__open { - margin-left: 250px; - width: calc(100% - 280px); -} - -// restrict hover features to devices that support it -@media (hover: hover) { - .content { - .album, - .photo { - &:hover .thumbimg { - border-color: $colorBlue; - } - - .video, - .livephoto { - &:hover::before { - opacity: 0.75; - } - } - } - - .album:hover { - .thumbimg:nth-child(1), - .thumbimg:nth-child(2) { - opacity: 1; - // Keep the composited layer created by the browser during the animation. - // Makes the border of the transformed thumb look better. - // See https://github.com/electerious/Lychee/pull/626 for more. - will-change: transform; - } - .thumbimg:nth-child(1) { - transform: rotate(-2deg) translateY(10px) translateX(-12px); - } - .thumbimg:nth-child(2) { - transform: rotate(5deg) translateY(-8px) translateX(12px); - } - } - - .photo:hover .overlay { - opacity: 1; - } - } -} diff --git a/resources/assets/scss/_footer.scss b/resources/assets/scss/_footer.scss deleted file mode 100644 index f148bf9fc2..0000000000 --- a/resources/assets/scss/_footer.scss +++ /dev/null @@ -1,33 +0,0 @@ -#footer { - z-index: 3; - left: 0; - right: 0; - bottom: 0; - text-align: center; - padding: 5px 0 5px 0; - transition: color 0.3s, opacity 0.3s ease-out, transform 0.3s ease-out, box-shadow 0.3s, margin-left 0.5s; - position: absolute; - background: #1d1d1d; - - p.hosted_by, - p.home_copyright { - text-transform: uppercase; - } - - p { - color: #cccccc; - font-size: 0.75em; - line-height: 26px; - - a { - color: #ccc; - } - a:visited { - color: #ccc; - } - } -} - -.hide_footer { - display: none; -} diff --git a/resources/assets/scss/_header.scss b/resources/assets/scss/_header.scss deleted file mode 100644 index 60acbf638d..0000000000 --- a/resources/assets/scss/_header.scss +++ /dev/null @@ -1,272 +0,0 @@ -.header { - position: fixed; - height: 49px; - width: 100%; - background: linear-gradient(to bottom, #222222, #1a1a1a); - border-bottom: 1px solid #0f0f0f; - z-index: 1; - transition: transform 0.3s ease-out; - - // Modes -------------------------------------------------------------- // - &--hidden { - transform: translateY(-60px); - } - - &--loading { - transform: translateY(2px); - } - - &--error { - transform: translateY(40px); - } - - &--view { - border-bottom: none; - - &.header--error { - background-color: rgba(10, 10, 10, 0.99); - } - } - - // Toolbars -------------------------------------------------------------- // - &__toolbar { - display: none; - align-items: center; - position: relative; - box-sizing: border-box; - width: 100%; - height: 100%; - - &--visible { - display: flex; - } - - &--config { - .button .iconic { - transform: rotate(45deg); - } - - .header__title { - padding-right: 80px; - } - } - } - - // Title -------------------------------------------------------------- // - &__title { - width: 100%; - padding: 16px 0; - color: #fff; - font-size: 16px; - font-weight: bold; - text-align: center; - cursor: default; - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; - transition: margin-left 0.5s; - - .iconic { - display: none; - margin: 0 0 0 5px; - width: 10px; - height: 10px; - fill: white(0.5); - transition: fill 0.2s ease-out; - } - - &:active .iconic { - transition: none; - fill: white(0.8); - } - - &--editable .iconic { - display: inline-block; - } - } - - // Buttons -------------------------------------------------------------- // - .button { - flex-shrink: 0; - padding: 16px 8px; - height: 15px; - - .iconic { - width: 15px; - height: 15px; - fill: white(0.5); - transition: fill 0.2s ease-out; - } - - &:active .iconic { - transition: none; - fill: white(0.8); - } - - &--star.active .iconic { - fill: #f0ef77; - } - - &--eye.active .iconic { - fill: $colorRed; - } - - &--eye.active--not-hidden .iconic { - fill: $colorGreen; - } - - &--eye.active--hidden .iconic { - fill: $colorOrange; - } - - &--share .iconic.ionicons { - margin: -2px 0 -2px; - width: 18px; - height: 18px; - } - - &--nsfw.active .iconic { - fill: $colorPink; - } - - &--info.active .iconic { - fill: $colorBlue; - } - } - - #button_back, - #button_back_home, - #button_settings, - #button_close_config, - #button_signin { - // back button too small on small touch devices - // remove left padding of menu bar and add here plus more padding on - // the right as well - padding: 16px 12px 16px 18px; - } - - .button_add { - padding: 16px 18px 16px 12px; - } - - // Divider -------------------------------------------------------------- // - &__divider { - flex-shrink: 0; - width: 14px; - } - - // Search -------------------------------------------------------------- // - &__search { - flex-shrink: 0; - width: 80px; - margin: 0; - padding: 5px 12px 6px 12px; - background-color: #1d1d1d; - color: #fff; - border: 1px solid black(0.9); - box-shadow: 0 1px 0 white(0.04); - outline: none; - border-radius: 50px; - opacity: 0.6; - transition: opacity 0.3s ease-out, box-shadow 0.3s ease-out, width 0.2s ease-out; - - &:focus { - width: 140px; - border-color: $colorBlue; - box-shadow: 0 1px 0 white(0); - opacity: 1; - } - - &:focus ~ .header__clear { - opacity: 1; - } - - &::-ms-clear { - display: none; - } - - &__field { - position: relative; - } - } - - &__clear { - position: absolute; - top: 50%; - -ms-transform: translateY(-50%); - transform: translateY(-50%); - right: 8px; - padding: 0; - color: white(0.5); - font-size: 24px; - opacity: 0; - transition: color 0.2s ease-out; - cursor: default; - } - - &__clear_nomap { - right: 60px; - } - - // Hosted with -------------------------------------------------------------- // - &__hostedwith { - flex-shrink: 0; - padding: 5px 10px; - margin: 11px 0; - color: #888; - font-size: 13px; - border-radius: 100px; - cursor: default; - } - - .leftMenu__open { - margin-left: 250px; - } -} - -// restrict hover features to devices that support it -@media (hover: hover) { - .header { - &__title, - .button { - &:hover .iconic { - fill: white(1); - } - } - - &__clear:hover { - color: white(1); - } - - &__hostedwith:hover { - background-color: black(0.3); - } - } -} - -// responsive web design for smaller screens -@media only screen and (max-width: 640px) { - // reduce entries in menu bar on small screens - // corresponding entries are added to the 'more' menu - #button_move, - #button_move_album, - #button_trash, - #button_trash_album, - #button_visibility, - #button_visibility_album, - #button_nsfw_album { - display: none !important; - } - - @media (max-width: 567px) { - // remove further buttons on tiny screens - #button_rotate_ccwise, - #button_rotate_cwise { - display: none !important; - } - - .header__divider { - width: 0; - } - } -} diff --git a/resources/assets/scss/_imageview.scss b/resources/assets/scss/_imageview.scss deleted file mode 100644 index 52454a7ab3..0000000000 --- a/resources/assets/scss/_imageview.scss +++ /dev/null @@ -1,271 +0,0 @@ -#imageview { - position: fixed; - display: none; - top: 0; - left: 0; - width: 100%; - height: 100%; - background-color: rgba(10, 10, 10, 0.98); - transition: background-color 0.3s; - - // Modes -------------------------------------------------------------- // - &.view { - background-color: inherit; - } - - &.full { - background-color: black(1); - cursor: none; - } - - // ImageView -------------------------------------------------------------- // - #image, - #livephoto { - position: absolute; - top: 60px; - right: 30px; - bottom: 30px; - left: 30px; - margin: auto; - max-width: calc(100% - 60px); - max-height: calc(100% - 90px); - width: auto; - height: auto; - transition: top 0.3s, right 0.3s, bottom 0.3s, left 0.3s, max-width 0.3s, max-height 0.3s; - - animation-name: zoomIn; - animation-duration: 0.3s; - animation-timing-function: $timingBounce; - background-size: contain; - background-position: center; - background-repeat: no-repeat; - } - - &.full #image, - &.full #livephoto { - top: 0; - right: 0; - bottom: 0; - left: 0; - max-width: 100%; - max-height: 100%; - } - - &.image--sidebar #image, - &.image--sidebar #livephoto { - right: 380px; - max-width: calc(100% - 410px); - } - - #image_overlay { - position: absolute; - bottom: 30px; - left: 30px; - color: #ffffff; - text-shadow: 1px 1px 2px #000000; - z-index: 3; - - h1 { - font-size: 28px; - font-weight: 500; - transition: visibility 0.3s linear, opacity 0.3s linear; - } - - p { - margin-top: 5px; - font-size: 20px; - line-height: 24px; - } - - a .iconic { - fill: #fff; - margin: 0 5px 0 0; - width: 14px; - height: 14px; - } - } - - // Previous/Next Buttons -------------------------------------------------------------- // - .arrow_wrapper { - position: fixed; - width: 15%; - height: calc(100% - 60px); - top: 60px; - - &--previous { - left: 0; - } - - &--next { - right: 0; - } - - a { - position: fixed; - top: 50%; - margin: -19px 0 0; - padding: 8px 12px; - width: 16px; - height: 22px; - // The background-image will be styled dynamically via JS - // background-image: linear-gradient(to bottom, rgba(0, 0, 0, .4), rgba(0, 0, 0, .4)), url(''); - background-size: 100% 100%; - border: 1px solid white(0.8); - opacity: 0.6; - z-index: 2; - transition: transform 0.2s ease-out, opacity 0.2s ease-out; - will-change: transform; - - &#previous { - left: -1px; - transform: translateX(-100%); - } - - &#next { - right: -1px; - transform: translateX(100%); - } - } - - .iconic { - fill: white(0.8); - } - } - - &.image--sidebar .arrow_wrapper { - &--next { - right: 350px; - } - - a { - &#next { - right: 349px; - } - } - } - - // We must not allow the wide next/prev arrow wrappers to cover the - // on-screen buttons in videos. This is imperfect as now the video - // covers part of the background image. - video { - z-index: 1; - } -} - -// restrict hover features to devices that support it -@media (hover: hover) { - #imageview .arrow_wrapper { - &:hover a#previous, - &:hover a#next { - transform: translateX(0); - } - - a:hover { - opacity: 1; - } - } -} - -// responsive web design for smaller screens -@media only screen and (max-width: 567px), only screen and (max-width: 640px) and (orientation: portrait) { - // sidebar as overlay, small size - #imageview { - #image, - #livephoto { - top: 0; - right: 0; - bottom: 0; - left: 0; - max-width: 100%; - max-height: 100%; - } - - &.image--sidebar { - #image, - #livephoto { - right: 0; - max-width: 100%; - } - - .arrow_wrapper { - &--next { - right: 0; - } - - a#next { - right: -1px; - } - } - } - - #image_overlay { - h1 { - font-size: 14px; - } - - p { - margin-top: 2px; - font-size: 11px; - line-height: 13px; - } - - a .iconic { - width: 9px; - height: 9px; - } - } - } -} - -@media only screen and (min-width: 568px) and (max-width: 768px), - only screen and (min-width: 568px) and (max-width: 640px) and (orientation: landscape) { - // sidebar on side, medium size - #imageview { - #image, - #livephoto { - top: 0; - right: 0; - bottom: 0; - left: 0; - max-width: 100%; - max-height: 100%; - } - - &.image--sidebar { - #image, - #livephoto { - top: 50px; - right: 280px; - max-width: calc(100% - 280px); - max-height: calc(100% - 50px); - } - - .arrow_wrapper { - &--next { - right: 280px; - } - - a#next { - right: 279px; - } - } - } - - #image_overlay { - h1 { - font-size: 18px; - } - - p { - margin-top: 4px; - font-size: 14px; - line-height: 16px; - } - - a .iconic { - width: 12px; - height: 12px; - } - } - } -} diff --git a/resources/assets/scss/_justified_layout.scss b/resources/assets/scss/_justified_layout.scss deleted file mode 100644 index c2ac964827..0000000000 --- a/resources/assets/scss/_justified_layout.scss +++ /dev/null @@ -1,75 +0,0 @@ -.justified-layout { - margin: 30px 0 0 30px; - width: 100%; - position: relative; -} - -.unjustified-layout { - margin: 25px -5px -5px 25px; - width: 100%; - position: relative; - overflow: hidden; -} - -.justified-layout > .photo { - position: absolute; - --lychee-default-height: 320px; - margin: 0; -} - -.unjustified-layout > .photo { - float: left; - max-height: 240px; - margin: 5px; -} - -.justified-layout > .photo > .thumbimg > img, -.justified-layout > .photo > .thumbimg, -.unjustified-layout > .photo > .thumbimg > img, -.unjustified-layout > .photo > .thumbimg { - width: 100%; - height: 100%; - border: none; - object-fit: cover; -} - -.justified-layout > .photo > .overlay, -.unjustified-layout > .photo > .overlay { - width: 100%; - bottom: 0; - margin: 0 0 0 0; -} - -.justified-layout > .photo > .overlay > h1, -.unjustified-layout > .photo > .overlay > h1 { - width: auto; - margin-right: 15px; -} - -// responsive web design for smaller screens -@media only screen and (min-width: 320px) and (max-width: 567px) { - .content > .justified-layout { - margin: 8px 8px 0 8px; - .photo { - --lychee-default-height: 160px; - } - } -} - -@media only screen and (min-width: 568px) and (max-width: 639px) { - .content > .justified-layout { - margin: 9px 9px 0 9px; - .photo { - --lychee-default-height: 200px; - } - } -} - -@media only screen and (min-width: 640px) and (max-width: 768px) { - .content > .justified-layout { - margin: 10px 10px 0 10px; - .photo { - --lychee-default-height: 240px; - } - } -} diff --git a/resources/assets/scss/_leftMenu.scss b/resources/assets/scss/_leftMenu.scss deleted file mode 100644 index a3f97650ae..0000000000 --- a/resources/assets/scss/_leftMenu.scss +++ /dev/null @@ -1,95 +0,0 @@ -/* The side navigation menu */ -.leftMenu { - height: 100vh; /* 100% Full-height */ - width: 0; /* 0 width - change this with JavaScript */ - position: fixed; /* Stay in place */ - z-index: 4; /* Stay on top */ - top: 0; /* Stay at the top */ - left: 0; - background-color: #111; /* Black*/ - overflow-x: hidden; /* Disable horizontal scroll */ - padding-top: 49px; /* Place content 49px from the top (same as menu bar height) */ - transition: 0.5s; /* 0.5 second transition effect to slide in the sidenav */ -} - -/* The navigation menu links */ -.leftMenu a { - padding: 8px 8px 8px 32px; - text-decoration: none; - font-size: 18px; - color: #818181; - display: block; - transition: 0.3s; - - &.linkMenu { - white-space: nowrap; - } -} - -/* Position and style the close button (top right corner) */ -.leftMenu .closebtn { - position: absolute; - top: 0; - right: 25px; - font-size: 36px; - margin-left: 50px; -} - -.leftMenu .closetxt { - position: absolute; - top: 0; - left: 0; - font-size: 24px; - height: 28px; - padding-top: 16px; - color: #111; - display: inline-block; - width: 210px; -} - -.leftMenu .iconic { - display: inline-block; - margin: 0 10px 0 1px; - width: 15px; - height: 14px; - fill: #818181; -} - -.leftMenu .iconic.ionicons { - margin: 0 8px -2px 0; - width: 18px; - height: 18px; -} - -.leftMenu__visible { - width: 250px; -} - -// responsive web design for smaller screens -@media only screen and (max-width: 567px), only screen and (max-width: 640px) and (orientation: portrait) { - // disable left menu on small devices and use context menu instead - .leftMenu { - display: none !important; - } -} - -// restrict hover features to devices that support it -@media (hover: hover) { - .leftMenu { - .closetxt:hover { - color: #818181; - } - - /* When you mouse over the navigation links, change their color */ - a:hover { - color: #f1f1f1; - } - } -} - -// on touch devices increase space between entries -@media (hover: none) { - .leftMenu a { - padding: 14px 8px 14px 32px; - } -} diff --git a/resources/assets/scss/_loading.scss b/resources/assets/scss/_loading.scss deleted file mode 100644 index 575c91600f..0000000000 --- a/resources/assets/scss/_loading.scss +++ /dev/null @@ -1,55 +0,0 @@ -#loading { - display: none; - position: fixed; - width: 100%; - height: 3px; - background-size: 100px 3px; - background-repeat: repeat-x; - border-bottom: 1px solid black(0.3); - - animation-name: moveBackground; - animation-duration: 0.3s; - animation-iteration-count: infinite; - animation-timing-function: linear; - - // Modes -------------------------------------------------------------- // - &.loading { - height: 3px; - background-image: linear-gradient(to right, #153674 0%, #153674 47%, #2651ae 53%, #2651ae 100%); - z-index: 2; - } - - &.error { - height: 40px; - background-color: #2f0d0e; - background-image: linear-gradient(to right, #451317 0%, #451317 47%, #aa3039 53%, #aa3039 100%); - z-index: 1; - } - - &.success { - height: 40px; - background-color: #007700; - background-image: linear-gradient(to right, #007700 0%, #009900 47%, #00aa00 53%, #00cc00 100%); - z-index: 1; - } - - .leftMenu__open { - padding-left: 250px; - } - - // Content -------------------------------------------------------------- // - h1 { - margin: 13px 13px 0 13px; - color: #ddd; - font-size: 14px; - font-weight: bold; - text-shadow: 0 1px 0 black(1); - text-transform: capitalize; - - span { - margin-left: 10px; - font-weight: normal; - text-transform: none; - } - } -} diff --git a/resources/assets/scss/_logs_diagnostics.scss b/resources/assets/scss/_logs_diagnostics.scss deleted file mode 100644 index 36eef2a72a..0000000000 --- a/resources/assets/scss/_logs_diagnostics.scss +++ /dev/null @@ -1,94 +0,0 @@ -.logs_diagnostics_view { - width: 90%; - margin-left: auto; - margin-right: auto; - color: #ccc; - font-size: 12px; - line-height: 14px; - - pre { - font-family: monospace; - -webkit-user-select: text; - -moz-user-select: text; - -ms-user-select: text; - user-select: text; - width: fit-content; - padding-right: 30px; - } -} - -.clear_logs_update { - margin-left: auto; - margin-right: auto; - margin-bottom: 20px; - margin-top: 20px; - padding-left: 30px; -} - -.clear_logs_update, -.logs_diagnostics_view { - .basicModal__button { - //margin-top: 10px; - color: #2293ec; - display: inline-block; - -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.02), inset 1px 0 0 rgba(0, 0, 0, 0.2); - box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.02), inset 1px 0 0 rgba(0, 0, 0, 0.2); - border-radius: 5px; - } - - .iconic { - display: inline-block; - margin: 0 10px 0 1px; - width: 13px; - height: 12px; - fill: #2293ec; - } - - .button_left { - margin-left: 24px; - width: 400px; - } -} - -// on touch devices draw buttons in color -@media (hover: none) { - .clear_logs_update, - .logs_diagnostics_view { - .basicModal__button { - background: #2293ec; - color: #fff; - max-width: 320px; - margin-top: 20px; - } - - .iconic { - fill: #fff; - } - } -} - -// responsive web design for smaller screens -@media only screen and (max-width: 567px), only screen and (max-width: 640px) and (orientation: portrait) { - .logs_diagnostics_view, - .clear_logs_update { - width: 100%; - max-width: 100%; - font-size: 11px; - line-height: 12px; - - .basicModal__button, - .button_left { - width: 80%; - margin: 0 10%; - } - } - - .logs_diagnostics_view { - padding: 10px 10px 0 0; - } - - .clear_logs_update { - padding: 10px 10px 0 10px; - margin: 0; - } -} diff --git a/resources/assets/scss/_message.scss b/resources/assets/scss/_message.scss deleted file mode 100644 index 9e64a64c58..0000000000 --- a/resources/assets/scss/_message.scss +++ /dev/null @@ -1,514 +0,0 @@ -.basicModalContainer { - background-color: black(0.85); - - &--error { - transform: translateY(40px); - } -} - -.basicModal { - background: linear-gradient(to bottom, #444, #333); - box-shadow: 0 1px 4px black(0.2), inset 0 1px 0 white(0.05); - - &--error { - transform: translateY(-40px); - } - - // Reset -------------------------------------------------------------- // - &__content { - padding: 0; - } - - &__content p { - margin: 0; - } - - &__buttons { - box-shadow: none; - } - - // Text -------------------------------------------------------------- // - p { - padding: 10px 30px; - color: white(0.9); - font-size: 14px; - text-align: left; - line-height: 20px; - - b { - font-weight: bold; - color: white(1); - } - - a { - color: white(0.9); - text-decoration: none; - border-bottom: 1px dashed #888; - } - - &:first-of-type { - padding-top: 42px; - } - - &:last-of-type { - padding-bottom: 40px; - } - - &.signIn:first-of-type { - padding-top: 30px; - } - - &.signIn:last-of-type { - padding-bottom: 30px; - } - - &.less { - padding-bottom: 30px; - } - - &.photoPublic { - padding: 0 30px; - margin: 30px 0; - } - - &.importServer:last-of-type { - padding-bottom: 0px; - } - } - - // Buttons -------------------------------------------------------------- // - &__button { - padding: 13px 0 15px; - background: black(0.02); - color: white(0.5); - border-top: 1px solid black(0.2); - box-shadow: inset 0 1px 0 white(0.02); - cursor: default; - - &:active, - &--active { - transition: none; - background: black(0.1); - } - - &#basicModal__action { - color: $colorBlue; - box-shadow: inset 0 1px 0 white(0.02), inset 1px 0 0 black(0.2); - } - - &#basicModal__action.red, - &#basicModal__cancel.red { - color: $colorRed; - } - - &.hidden { - display: none; - } - - &.busy { - cursor: wait; - } - } - - // Inputs -------------------------------------------------------------- // - input.text { - padding: 9px 2px; - width: 100%; - background-color: transparent; - color: #fff; - border: none; - // Do not use rgba() for border-bottom - // to avoid a blurry line in Safari on non-retina screens - border-bottom: 1px solid #222; - border-radius: 0; - box-shadow: 0 1px 0 white(0.05); - outline: none; - - &:focus { - border-bottom-color: $colorBlue; - } - - &.error { - border-bottom-color: $colorRed; - } - - &:first-child { - margin-top: 10px; - } - - &:last-child { - margin-bottom: 10px; - } - } - - // Radio Buttons ----------------------------------------------------------- // - .choice { - padding: 0 30px 15px; - width: 100%; - color: #fff; - - &:first-child { - padding-top: 42px; - } - - &:last-child { - padding-bottom: 40px; - } - - label { - float: left; - color: white(1); - font-size: 14px; - font-weight: 700; - } - - label input { - position: absolute; - margin: 0; - opacity: 0; - } - - label .checkbox { - float: left; - display: block; - width: 16px; - height: 16px; - background: black(0.5); - border-radius: 3px; - box-shadow: 0 0 0 1px black(0.7); - - .iconic { - box-sizing: border-box; - fill: $colorBlue; - padding: 2px; - opacity: 0; - transform: scale(0); - transition: opacity 0.2s $timing, transform 0.2s $timing; - } - } - - // Checked - label input:checked ~ .checkbox { - background: black(0.5); - .iconic { - opacity: 1; - transform: scale(1); - } - } - - // Active - label input:active ~ .checkbox { - background: black(0.3); - .iconic { - opacity: 0.8; - } - } - - label input:disabled ~ .checkbox { - background: black(0.2); - .iconic { - opacity: 0.3; - } - cursor: not-allowed; - } - - label input:disabled ~ .label { - color: white(0.3); - } - - label .label { - margin: 0 0 0 18px; - } - - p { - clear: both; - padding: 2px 0 0 35px; - margin: 0; - width: 100%; - color: white(0.6); - font-size: 13px; - } - - input.text { - display: none; - margin-top: 5px; - margin-left: 35px; - width: calc(100% - 35px); - } - - input.text:disabled { - cursor: not-allowed; - } - } - - // Select -------------------------------------------------------------- // - .select { - display: inline-block; - position: relative; - margin: 5px 7px; - padding: 0; - width: 210px; - background: black(0.3); - color: #fff; - border-radius: 3px; - border: 1px solid black(0.2); - box-shadow: 0 1px 0 white(0.02); - font-size: 11px; - line-height: 16px; - overflow: hidden; - outline: 0; - vertical-align: middle; - - &::after { - position: absolute; - content: "≡"; - right: 8px; - top: 4px; - color: $colorBlue; - font-size: 16px; - line-height: 16px; - font-weight: bold; - pointer-events: none; - } - - select { - margin: 0; - padding: 4px 8px; - width: 120%; - color: #fff; - font-size: 11px; - line-height: 16px; - border: 0; - outline: 0; - box-shadow: none; - border-radius: 0; - background-color: transparent; - background-image: none; - -moz-appearance: none; - -webkit-appearance: none; - appearance: none; - - &:focus { - outline: none; - } - } - - select option { - margin: 0; - padding: 0; - background: #fff; - color: #333; - transition: none; - } - } - - // Version -------------------------------------------------------------- // - .version { - margin: -5px 0 0; - padding: 0 30px 30px !important; - color: white(0.3); - font-size: 12px; - text-align: right; - - span { - display: none; - } - - span a { - color: white(0.3); - } - } - div.version { - position: absolute; - top: 20px; - right: 0px; - } - - // Title -------------------------------------------------------------- // - h1 { - float: left; - width: 100%; - padding: 12px 0; - color: #fff; - font-size: 16px; - font-weight: bold; - text-align: center; - } - - // Rows -------------------------------------------------------------- // - .rows { - margin: 0 8px 8px; - width: calc(100% - 16px); - height: 300px; - background-color: black(0.4); - overflow: hidden; - overflow-y: auto; - border-radius: 3px; - box-shadow: inset 0 0 3px black(0.4); - } - - // Row -------------------------------------------------------------- // - .rows .row { - float: left; - padding: 8px 0; - width: 100%; - background-color: white(0.02); - - &:nth-child(2n) { - background-color: white(0); - } - - a.name { - float: left; - padding: 5px 10px; - width: 70%; - color: #fff; - font-size: 14px; - white-space: nowrap; - overflow: hidden; - } - - a.status { - float: left; - padding: 5px 10px; - width: 30%; - color: white(0.5); - font-size: 14px; - text-align: right; - - animation-name: pulse; - animation-duration: 2s; - animation-timing-function: ease-in-out; - animation-iteration-count: infinite; - - &.error, - &.warning, - &.success { - animation: none; - } - - &.error { - color: rgb(233, 42, 0); - } - - &.warning { - color: rgb(228, 233, 0); - } - - &.success { - color: rgb(126, 233, 0); - } - } - - p.notice { - display: none; - float: left; - padding: 2px 10px 5px; - width: 100%; - color: white(0.5); - font-size: 12px; - overflow: hidden; - line-height: 16px; - } - } - - // Sliders ----------------------------------------------------------- // - .switch { - padding: 0 30px; - margin-bottom: 15px; - width: 100%; - color: #fff; - - &:first-child { - padding-top: 42px; - } - - input { - opacity: 0; - width: 0; - height: 0; - margin: 0; - } - - label { - float: left; - color: white(1); - font-size: 14px; - font-weight: 700; - } - - .slider { - display: inline-block; - width: 42px; - height: 22px; - left: -9px; - bottom: -6px; - position: relative; - cursor: pointer; - border: 1px solid rgba(0, 0, 0, 0.2); - box-shadow: 0 1px 0 rgba(255, 255, 255, 0.02); - background: rgba(0, 0, 0, 0.3); - -webkit-transition: 0.4s; - transition: 0.4s; - } - - .slider:before { - position: absolute; - content: ""; - height: 14px; - width: 14px; - left: 3px; - bottom: 3px; - background-color: $colorBlue; - -webkit-transition: 0.4s; - transition: 0.4s; - } - - input:checked + .slider { - background-color: $colorBlue; - } - - input:checked + .slider:before { - -ms-transform: translateX(20px); - transform: translateX(20px); - background-color: #ffffff; - } - - /* Rounded sliders */ - .slider.round { - border-radius: 20px; - } - - .slider.round:before { - border-radius: 50%; - } - - label input:disabled ~ .slider { - background: black(0.2); - .iconic { - opacity: 0.3; - } - cursor: not-allowed; - } - - .label--disabled { - color: white(0.6); - } - - p { - clear: both; - padding: 2px 0 0; - margin: 0; - width: 100%; - color: white(0.6); - font-size: 13px; - } - } -} - -// restrict hover features to devices that support it -@media (hover: hover) { - .basicModal__button:hover { - background: white(0.02); - } -} diff --git a/resources/assets/scss/_multiselect.scss b/resources/assets/scss/_multiselect.scss deleted file mode 100644 index 5eb163a99b..0000000000 --- a/resources/assets/scss/_multiselect.scss +++ /dev/null @@ -1,7 +0,0 @@ -#multiselect { - position: absolute; - background-color: rgba(0, 94, 204, 0.3); - border: 1px solid rgba(0, 94, 204, 1); - border-radius: 3px; - z-index: 5; -} diff --git a/resources/assets/scss/_photo-links.scss b/resources/assets/scss/_photo-links.scss deleted file mode 100644 index 8ed40a55cd..0000000000 --- a/resources/assets/scss/_photo-links.scss +++ /dev/null @@ -1,76 +0,0 @@ -.directLinks { - input.text { - width: calc(100% - 30px); - color: white(0.6); - padding: 2px; - } - - .basicModal__button { - display: inline-block; - box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.02), inset 1px 0 0 rgba(0, 0, 0, 0.2); - width: 25px; - height: 25px; - border-radius: 5px; - border-bottom: 0; - padding: 3px 0 0; - margin-top: -5px; - float: right; - - .iconic { - fill: #2293ec; - width: 16px; - height: 16px; - } - } - - .imageLinks { - margin-top: -30px; - padding-bottom: 40px; - - p { - padding: 10px 30px 0; - font-size: 12px; - line-height: 15px; - } - - .basicModal__button { - margin-top: -8px; - } - } -} - -.downloads { - padding: 30px; - - .basicModal__button { - color: #2293ec; - display: inline-block; - box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.02), inset 1px 0 0 rgba(0, 0, 0, 0.2); - border-radius: 5px; - border-bottom: 0; - margin: 5px 0; - - .iconic { - fill: #2293ec; - margin: 0 10px 0 1px; - width: 11px; - height: 10px; - } - } -} - -// restrict hover features to devices that support it -@media (hover: hover) { - .directLinks .basicModal__button:hover, - .downloads .basicModal__button:hover { - background: #2293ec; - cursor: pointer; - - .iconic { - fill: #ffffff; - } - } - .downloads .basicModal__button:hover { - color: #ffffff; - } -} diff --git a/resources/assets/scss/_photo-thumbs.scss b/resources/assets/scss/_photo-thumbs.scss deleted file mode 100644 index facc91674b..0000000000 --- a/resources/assets/scss/_photo-thumbs.scss +++ /dev/null @@ -1,451 +0,0 @@ -.photo { - // position: relative; - // width: 202px; - // height: 202px; - // margin: 30px 0 0 30px; - cursor: default; - - animation-duration: 0.2s; - animation-fill-mode: forwards; - animation-timing-function: $timing; - .thumbimg { - width: 100%; - height: 100%; - background: #222; - color: #222; - box-shadow: 0 2px 5px black(0.5); - // border: 1px solid white(0.5); - transition: opacity 0.3s ease-out, transform 0.3s ease-out, - border-color 0.3s ease-out; - } - .thumbimg > img { - width: 100%; - height: 100%; - } - &:focus .thumbimg, - &.active .thumbimg { - border-color: $colorBlue; - } - &:active .thumbimg { - transition: none; - border-color: darken($colorBlue, 15%); - } - &.selected img { - outline: 1px solid $colorBlue; - } - .video { - &::before { - content: ""; - position: absolute; - display: block; - height: 100%; - width: 100%; - background: url("../img/play-icon.png") no-repeat 46% 50%; - transition: all 0.3s; - will-change: opacity, height; - } - &:focus::before { - opacity: 0.75; - } - } - .livephoto { - &::before { - content: ""; - position: absolute; - display: block; - height: 100%; - width: 100%; - background: url("../img/live-photo-icon.png") no-repeat 46% 50%; - background-position: 2% 2%; - transition: all 0.3s; - will-change: opacity, height; - } - &:focus::before { - opacity: 0.75; - } - } - // Overlay -------------------------------------------------------------- // - .overlay { - position: absolute; - margin: 0 0px; - width: 100%; - background: linear-gradient(to bottom, black(0), black(0.6)); - bottom: 0px; - opacity: 0; - } - &:focus .overlay, - &.active .overlay { - opacity: 1; - } - .overlay { - h1 { - min-height: 19px; - width: 180px; - margin: 12px 0 5px 15px; - color: #fff; - text-shadow: 0 1px 3px black(0.4); - font-size: 16px; - font-weight: bold; - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; - } - a { - display: block; - margin: 0 0 12px 15px; - font-size: 11px; - color: #ccc; - text-shadow: 0 1px 3px black(0.4); - .iconic { - fill: #ccc; - margin: 0 5px 0 0; - width: 8px; - height: 8px; - } - } - } - - // Badge -------------------------------------------------------------- // - .badges { - position: relative; - margin: -1px 0 0 6px; - } - .badge { - display: none; - margin: 0 0 0 6px; - padding: 12px 8px 6px; - width: 18px; - background: $colorRed; - box-shadow: 0 0 2px black(0.6); - border-radius: 0 0 5px 5px; - border: 1px solid #fff; - border-top: none; - color: #fff; - text-align: center; - text-shadow: 0 1px 0 black(0.4); - opacity: 0.9; - - &--visible { - display: inline-block; - } - &--not--hidden { - background: $colorGreen; - } - &--hidden { - background: $colorOrange; - } - &--cover { - display: "inline-block"; - background: $colorOrange; - } - &--star { - display: inline-block; - background: $colorYellow; - } - &--nsfw { - display: inline-block; - background: $colorPink; - } - &--list { - background: $colorBlue; - } - &--tag { - display: inline-block; - background: $colorGreen; - } - .iconic { - fill: #fff; - width: 16px; - height: 16px; - } - &--folder { - display: inline-block; - box-shadow: none; - background: none; - border: none; - .iconic { - width: 12px; - height: 12px; - } - } - } -} - -.flkr { - display: flex; - flex-wrap: wrap; - flex-grow: 1; - align-content: flex-start; - width: 100%; - - @media (min-width: 768px) { - /* FLICKR like image display */ - margin: 30px 0 0 30px; - - & > div, - &::after { - --ratio: calc(var(--w) / var(--h)); - --row-height: 260px; - flex-basis: calc(var(--ratio) * var(--row-height)); - } - - & > div { - margin: 0.25rem; - flex-grow: calc(var(--ratio) * 100); - } - - &::after { - --w: 2; - --h: 1; - content: ""; - flex-grow: 1000000; - } - - & > div > span { - display: block; - height: 100%; - width: 100%; - } - - & > div > span > img { - width: 100%; - } - } - -} - -.block{ - - // responsive web design for smaller screens - @media only screen and (min-width: 320px) and (max-width: 567px) { - .content { - padding: 50px 0 33px 0; - width: 100%; - max-width: 100%; - - .photo { - // 3 thumbnails per row - --size: calc((100vw - 3px) / 3); - width: calc(var(--size) - 3px); - height: calc(var(--size) - 3px); - margin: 3px 0 0 3px; - .thumbimg { - width: calc(var(--size) - 5px); - height: calc(var(--size) - 5px); - } - .overlay { - width: calc(var(--size) - 5px); - h1 { - min-height: 14px; - width: calc(var(--size) - 19px); - margin: 8px 0 2px 6px; - font-size: 12px; - } - a { - // suppress subtitles on small screens - display: none; - } - } - .badge { - padding: 4px 3px 3px; - width: 12px; - .iconic { - width: 12px; - height: 12px; - } - &--folder { - .iconic { - width: 8px; - height: 8px; - } - } - } - } - .divider { - margin: 20px 0 0; - &:first-child { - margin-top: 0; - } - h1 { - margin: 0 0 6px 8px; - font-size: 12px; - } - } - } - } - - @media only screen and (min-width: 568px) and (max-width: 639px) { - .content { - padding: 50px 0 33px 0; - width: 100%; - max-width: 100%; - - .photo { - // 4 thumbnails per row - --size: calc((100vw - 3px) / 4); - width: calc(var(--size) - 3px); - height: calc(var(--size) - 3px); - margin: 3px 0 0 3px; - .thumbimg { - width: calc(var(--size) - 5px); - height: calc(var(--size) - 5px); - } - .overlay { - width: calc(var(--size) - 5px); - h1 { - min-height: 14px; - width: calc(var(--size) - 19px); - margin: 8px 0 2px 6px; - font-size: 12px; - } - a { - // suppress subtitles on small screens - display: none; - } - } - .badge { - padding: 4px 3px 3px; - width: 14px; - .iconic { - width: 14px; - height: 14px; - } - &--folder { - .iconic { - width: 9px; - height: 9px; - } - } - } - } - .divider { - margin: 24px 0 0; - &:first-child { - margin-top: 0; - } - h1 { - margin: 0 0 6px 10px; - } - } - } - } - - - @media only screen and (min-width: 640px) and (max-width: 768px) { - .content { - padding: 50px 0 33px 0; - width: 100%; - max-width: 100%; - - .photo { - // 5 thumbnails per row - --size: calc((100vw - 5px) / 5); - width: calc(var(--size) - 5px); - height: calc(var(--size) - 5px); - margin: 5px 0 0 5px; - .thumbimg { - width: calc(var(--size) - 7px); - height: calc(var(--size) - 7px); - } - .overlay { - width: calc(var(--size) - 7px); - h1 { - min-height: 14px; - width: calc(var(--size) - 21px); - margin: 10px 0 3px 8px; - font-size: 12px; - } - a { - // suppress subtitles on small screens - display: none; - } - } - .badge { - padding: 6px 4px 4px; - width: 16px; - .iconic { - width: 16px; - height: 16px; - } - &--folder { - .iconic { - width: 10px; - height: 10px; - } - } - } - } - .divider { - margin: 28px 0 0; - &:first-child { - margin-top: 0; - } - h1 { - margin: 0 0 6px 10px; - } - } - } - } -} - - -.masonry { - column-gap: 16px; - @media (max-width: calc((240px + 16px)* 14) ) { - columns: 14; - } - @media (max-width: calc((240px + 16px)* 13) ) { - columns: 13; - } - @media (max-width: calc((240px + 16px)* 12) ) { - columns: 12; - } - @media (max-width: calc((240px + 16px)* 11) ) { - columns: 11; - } - @media (max-width: calc((240px + 16px)* 10) ) { - columns: 10; - } - @media (max-width: calc((240px + 16px)* 9)) { - columns: 9; - } - @media (max-width: calc((240px + 16px)* 8)) { - columns: 8; - } - @media (max-width: calc((240px + 16px)* 7)) { - columns: 7; - } - @media (max-width: calc((240px + 16px)* 6)) { - columns: 6; - } - @media (max-width: calc((240px + 16px)* 5)) { - columns: 5; - } - @media (max-width: calc((240px + 16px)* 4)) { - columns: 4; - } - @media (max-width: calc((240px + 16px)* 3)) { - columns: 3; - } - @media (max-width: calc((240px + 16px)* 2)) { - columns: 2; - } - - .photo { - display: inline-block; - margin-bottom: 16px; - position: relative; - .thumbimg { - width: 100%; - height: 100%; - display: grid; - } - img { - width: 100%; - border-radius: 5px; - } - .overlay { - opacity: 1; - } - } -} \ No newline at end of file diff --git a/resources/assets/scss/_reset.scss b/resources/assets/scss/_reset.scss deleted file mode 100644 index e7929c4efd..0000000000 --- a/resources/assets/scss/_reset.scss +++ /dev/null @@ -1,139 +0,0 @@ -html, -body, -div, -span, -applet, -object, -iframe, -h1, -h2, -h3, -h4, -h5, -h6, -p, -blockquote, -pre, -a, -abbr, -acronym, -address, -big, -cite, -code, -del, -dfn, -em, -img, -ins, -kbd, -q, -s, -samp, -small, -strike, -strong, -sub, -sup, -tt, -var, -b, -u, -i, -center, -dl, -dt, -dd, -ol, -ul, -li, -fieldset, -form, -label, -legend, -table, -caption, -tbody, -tfoot, -thead, -tr, -th, -td, -article, -aside, -canvas, -details, -embed, -figure, -figcaption, -footer, -header, -hgroup, -menu, -nav, -output, -ruby, -section, -summary, -time, -mark, -audio, -video { - margin: 0; - padding: 0; - border: 0; - font: inherit; - font-size: 100%; - vertical-align: baseline; -} - -article, -aside, -details, -figcaption, -figure, -footer, -header, -hgroup, -menu, -nav, -section { - display: block; -} - -body { - line-height: 1; -} - -ol, -ul { - list-style: none; -} - -blockquote, -q { - quotes: none; -} - -blockquote:before, -blockquote:after, -q:before, -q:after { - content: ""; - content: none; -} - -table { - border-collapse: collapse; - border-spacing: 0; -} - -em, -i { - font-style: italic; -} - -strong, -b { - font-weight: bold; -} diff --git a/resources/assets/scss/_settings.scss b/resources/assets/scss/_settings.scss deleted file mode 100644 index 19805579ff..0000000000 --- a/resources/assets/scss/_settings.scss +++ /dev/null @@ -1,410 +0,0 @@ -.settings_view { - width: 90%; - max-width: 700px; - margin-left: auto; - margin-right: auto; - - input.text { - padding: 9px 2px; - width: calc(50% - 4px); - background-color: transparent; - color: #fff; - border: none; - border-bottom: 1px solid #222; - border-radius: 0; - box-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); - outline: 0; - - &:focus { - border-bottom-color: #2293ec; - } - - .error { - border-bottom-color: #d92c34; - } - } - - .basicModal__button { - color: #2293ec; - display: inline-block; - box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.02), inset 1px 0 0 rgba(0, 0, 0, 0.2); - border-radius: 5px; - } - - .basicModal__button_MORE, - .basicModal__button_SAVE { - color: #b22027; - border-radius: 5px; - } - - > div { - font-size: 14px; - width: 100%; - padding: 12px 0; - - p { - margin: 0 0 5%; - width: 100%; - color: #ccc; - line-height: 16px; - - a { - color: rgba(255, 255, 255, 0.9); - text-decoration: none; - border-bottom: 1px dashed #888; - } - } - - p:last-of-type { - margin: 0; - } - - input.text { - width: 100%; - } - - textarea { - padding: 9px 9px; - width: calc(100% - 18px); - height: 100px; - background-color: transparent; - color: #fff; - border: 1px solid #666666; - border-radius: 0; - box-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); - outline: 0; - resize: vertical; - - &:focus { - border-color: #2293ec; - } - } - - .choice { - padding: 0 30px 15px; - width: 100%; - color: #fff; - } - - .choice:last-child { - padding-bottom: 40px; - } - - .choice label { - float: left; - color: #fff; - font-size: 14px; - font-weight: 700; - } - - .choice label input { - position: absolute; - margin: 0; - opacity: 0; - } - - .choice label .checkbox { - float: left; - display: block; - width: 16px; - height: 16px; - background: rgba(0, 0, 0, 0.5); - border-radius: 3px; - box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.7); - } - - .choice label .checkbox .iconic { - box-sizing: border-box; - fill: #2293ec; - padding: 2px; - opacity: 0; - -ms-transform: scale(0); - transform: scale(0); - transition: opacity 0.2s cubic-bezier(0.51, 0.92, 0.24, 1), transform 0.2s cubic-bezier(0.51, 0.92, 0.24, 1); - } - - .select { - position: relative; - margin: 1px 5px; - padding: 0; - width: 110px; - color: #fff; - border-radius: 3px; - border: 1px solid rgba(0, 0, 0, 0.2); - box-shadow: 0 1px 0 rgba(255, 255, 255, 0.02); - font-size: 11px; - line-height: 16px; - overflow: hidden; - outline: 0; - vertical-align: middle; - background: rgba(0, 0, 0, 0.3); - display: inline-block; - - select { - margin: 0; - padding: 4px 8px; - width: 120%; - color: #fff; - font-size: 11px; - line-height: 16px; - border: 0; - outline: 0; - box-shadow: none; - border-radius: 0; - background-color: transparent; - background-image: none; - -moz-appearance: none; - -webkit-appearance: none; - appearance: none; - - option { - margin: 0; - padding: 0; - background: #fff; - color: #333; - transition: none; - } - } - - select:disabled { - color: #000; - cursor: not-allowed; - } - } - - .select::after { - position: absolute; - content: "≡"; - right: 8px; - top: 4px; - color: #2293ec; - font-size: 16px; - line-height: 16px; - font-weight: 700; - pointer-events: none; - } - - /* The switch - the box around the slider */ - .switch { - position: relative; - display: inline-block; - width: 42px; - height: 22px; - bottom: -2px; - line-height: 24px; - } - - /* Hide default HTML checkbox */ - .switch input { - opacity: 0; - width: 0; - height: 0; - } - - /* The slider */ - .slider { - position: absolute; - cursor: pointer; - top: 0; - left: 0; - right: 0; - bottom: 0; - border: 1px solid rgba(0, 0, 0, 0.2); - box-shadow: 0 1px 0 rgba(255, 255, 255, 0.02); - background: rgba(0, 0, 0, 0.3); - -webkit-transition: 0.4s; - transition: 0.4s; - - &:before { - position: absolute; - content: ""; - height: 14px; - width: 14px; - left: 3px; - bottom: 3px; - background-color: $colorBlue; - } - } - - input:checked + .slider { - background-color: $colorBlue; - } - - input:checked + .slider:before { - -ms-transform: translateX(20px); - transform: translateX(20px); - background-color: #ffffff; - } - - /* Rounded sliders */ - .slider.round { - border-radius: 20px; - } - - .slider.round:before { - border-radius: 50%; - } - } - - .setting_category { - font-size: 20px; - width: 100%; - padding-top: 10px; - padding-left: 4px; - border-bottom: dotted 1px #222222; - margin-top: 20px; - color: #ffffff; - font-weight: bold; - text-transform: capitalize; - } - - .setting_line { - font-size: 14px; - width: 100%; - - &:last-child, - &:first-child { - padding-top: 50px; - } - - p { - min-width: 550px; - margin: 0 0 0 0; - color: #ccc; - display: inline-block; - width: 100%; - overflow-wrap: break-word; - - a { - color: rgba(255, 255, 255, 0.9); - text-decoration: none; - border-bottom: 1px dashed #888; - } - - &:last-of-type { - margin: 0; - } - - .warning { - margin-bottom: 30px; - color: $colorRed; - font-weight: bold; - font-size: 18px; - text-align: justify; - line-height: 22px; - } - } - - span.text { - display: inline-block; - padding: 9px 4px; - width: calc(50% - 12px); - background-color: transparent; - color: #fff; - border: none; - - &_icon { - width: 5%; - - .iconic { - width: 15px; - height: 14px; - margin: 0 10px 0 1px; - fill: #ffffff; - } - } - } - - input.text { - width: calc(50% - 4px); - } - } -} - -// restrict hover features to devices that support it -@media (hover: hover) { - .settings_view { - .basicModal__button:hover { - background: #2293ec; - color: #ffffff; - cursor: pointer; - } - - .basicModal__button_MORE:hover, - .basicModal__button_SAVE:hover { - background: #b22027; - color: #ffffff; - } - - input:hover { - border-bottom: #2293ec solid 1px; - } - } -} - -// on touch devices draw buttons in color -@media (hover: none) { - .settings_view { - input.text { - border-bottom: #2293ec solid 1px; - margin: 6px 0; - } - - > div { - padding: 16px 0; - } - - .basicModal__button { - background: #2293ec; - color: #ffffff; - max-width: 320px; - margin-top: 20px; - - &_MORE, - &_SAVE { - background: #b22027; - } - } - } -} - -// responsive web design for smaller screens -@media only screen and (max-width: 567px), only screen and (max-width: 640px) and (orientation: portrait) { - .settings_view { - max-width: 100%; - - .setting_category { - font-size: 14px; - padding-left: 0; - margin-bottom: 4px; - } - - .setting_line { - font-size: 12px; - - &:first-child { - padding-top: 20px; - } - - p { - min-width: unset; - line-height: 20px; - - &.warning { - font-size: 14px; - line-height: 16px; - margin-bottom: 0; - } - - span, - input { - padding: 0; - } - } - } - - .basicModal__button_SAVE { - margin-top: 20px; - } - } -} diff --git a/resources/assets/scss/_sharing.scss b/resources/assets/scss/_sharing.scss deleted file mode 100644 index 19495f4a23..0000000000 --- a/resources/assets/scss/_sharing.scss +++ /dev/null @@ -1,284 +0,0 @@ -.sharing_view { - width: 90%; - max-width: 700px; - margin-left: auto; - margin-right: auto; - margin-top: 20px; - - .sharing_view_line { - width: 100%; - display: block; - clear: left; - } - - .col-xs-1, - .col-xs-10, - .col-xs-11, - .col-xs-12, - .col-xs-2, - .col-xs-3, - .col-xs-4, - .col-xs-5, - .col-xs-6, - .col-xs-7, - .col-xs-8, - .col-xs-9 { - float: left; - position: relative; - min-height: 1px; - } - - .col-xs-2 { - width: 10%; - padding-right: 3%; - padding-left: 3%; - } - - .col-xs-5 { - width: 42%; - } - - .btn-block + .btn-block { - margin-top: 5px; - } - - .btn-block { - display: block; - width: 100%; - } - - .btn-default { - color: $colorBlue; - border-color: $colorBlue; - background: rgba(0, 0, 0, 0.5); - border-radius: 3px; - box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.7); - } - - .btn { - display: inline-block; - padding: 6px 12px; - margin-bottom: 0; - font-size: 14px; - font-weight: 400; - line-height: 1.42857143; - text-align: center; - white-space: nowrap; - vertical-align: middle; - -ms-touch-action: manipulation; - touch-action: manipulation; - cursor: pointer; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - background-image: none; - border: 1px solid transparent; - border-radius: 4px; - } - - select[multiple], - select[size] { - height: 150px; - } - - .form-control { - display: block; - width: 100%; - height: 34px; - padding: 6px 12px; - font-size: 14px; - line-height: 1.42857143; - color: #555; - background-color: #fff; - background-image: none; - border: 1px solid #ccc; - border-radius: 4px; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - -webkit-transition: border-color ease-in-out 0.15s, -webkit-box-shadow ease-in-out 0.15s; - -o-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s; - transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s; - } - - .iconic { - display: inline-block; - width: 15px; - height: 14px; - fill: $colorBlue; - - .iconic.ionicons { - margin: 0 8px -2px 0; - width: 18px; - height: 18px; - } - } - - .blue .iconic { - fill: $colorBlue; - } - - .grey .iconic { - fill: #b4b4b4; - } - - p { - //margin: 0 0 5%; - width: 100%; - color: #ccc; - text-align: center; - font-size: 14px; - display: block; - } - - p.with { - padding: 15px 0; - } - - span.text { - display: inline-block; - padding: 0 2px; - width: 40%; - background-color: transparent; - color: #fff; - border: none; - - &:last-of-type { - width: 5%; - } - - .iconic { - width: 15px; - height: 14px; - margin: 0 10px 0 1px; - fill: #ffffff; - } - } - - .basicModal__button { - margin-top: 10px; - color: #2293ec; - display: inline-block; - box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.02), inset 1px 0 0 rgba(0, 0, 0, 0.2); - border-radius: 5px; - } - - .choice label input:checked ~ .checkbox .iconic { - opacity: 1; - -ms-transform: scale(1); - transform: scale(1); - } - - .choice { - display: inline-block; - //padding: 9px 2px; - width: 5%; - margin: 0 10px; - color: #fff; - - input { - position: absolute; - margin: 0; - opacity: 0; - } - - .checkbox { - display: inline-block; - width: 16px; - height: 16px; - margin-top: 10px; - margin-left: 2px; - background: rgba(0, 0, 0, 0.5); - border-radius: 3px; - box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.7); - - .iconic { - box-sizing: border-box; - fill: #2293ec; - padding: 2px; - opacity: 0; - -ms-transform: scale(0); - transform: scale(0); - transition: opacity 0.2s cubic-bezier(0.51, 0.92, 0.24, 1), transform 0.2s cubic-bezier(0.51, 0.92, 0.24, 1); - } - } - } - - .select { - position: relative; - //margin: 1px 5px; - padding: 0; - color: #fff; - border-radius: 3px; - border: 1px solid rgba(0, 0, 0, 0.2); - box-shadow: 0 1px 0 rgba(255, 255, 255, 0.02); - font-size: 14px; - line-height: 16px; - //overflow: hidden; - outline: 0; - vertical-align: middle; - background: rgba(0, 0, 0, 0.3); - display: inline-block; - } - - .borderBlue { - border: 1px solid $colorBlue; - } -} - -// restrict hover features to devices that support it -@media (hover: hover) { - .sharing_view { - .basicModal__button:hover { - background: #2293ec; - color: #ffffff; - cursor: pointer; - } - - input:hover { - border-bottom: #2293ec solid 1px; - } - } -} - -// on touch devices draw buttons in color -@media (hover: none) { - .sharing_view { - .basicModal__button { - background: #2293ec; - color: #ffffff; - } - - input { - border-bottom: #2293ec solid 1px; - } - } -} - -// responsive web design for smaller screens -@media only screen and (max-width: 567px), only screen and (max-width: 640px) and (orientation: portrait) { - .sharing_view { - width: 100%; - max-width: 100%; - padding: 10px; - - .select { - font-size: 12px; - } - - .iconic { - margin-left: -4px; // help with centering - } - } - - .sharing_view_line { - p { - width: 100%; - } - - .basicModal__button { - width: 80%; - margin: 0 10%; - } - } -} diff --git a/resources/assets/scss/_sidebar.scss b/resources/assets/scss/_sidebar.scss deleted file mode 100644 index de0e88ca92..0000000000 --- a/resources/assets/scss/_sidebar.scss +++ /dev/null @@ -1,352 +0,0 @@ -.sidebar { - position: fixed; - top: 49px; - right: -360px; - width: 350px; - height: calc(100% - 49px); - background-color: rgba(25, 25, 25, 0.98); - border-left: 1px solid black(0.2); - transform: translateX(0); - transition: transform 0.3s $timing; - z-index: 4; - - &.active { - transform: translateX(-360px); - } - - // Doesn't seem to be needed when user-select is globally disabled in main.scss. - // &.notSelectable { - // -webkit-user-select: none !important; - // -moz-user-select: none !important; - // -ms-user-select: none !important; - // user-select: none !important; - // } - - // Header -------------------------------------------------------------- // - &__header { - float: left; - height: 49px; - width: 100%; - background: linear-gradient(to bottom, white(0.02), black(0)); - border-top: 1px solid $colorBlue; - } - - &__header h1 { - position: absolute; - margin: 15px 0 15px 0; - width: 100%; - color: #fff; - font-size: 16px; - font-weight: bold; - text-align: center; - -webkit-user-select: text; - -moz-user-select: text; - -ms-user-select: text; - user-select: text; - } - - // Wrapper -------------------------------------------------------------- // - &__wrapper { - float: left; - height: calc(100% - 49px); - width: 350px; - overflow: auto; - -webkit-overflow-scrolling: touch; - } - - // Divider -------------------------------------------------------------- // - &__divider { - float: left; - padding: 12px 0 8px; - width: 100%; - border-top: 1px solid white(0.02); - box-shadow: $shadow; - - &:first-child { - border-top: 0; - box-shadow: none; - } - - h1 { - margin: 0 0 0 20px; - color: white(0.6); - font-size: 14px; - font-weight: bold; - -webkit-user-select: text; - -moz-user-select: text; - -ms-user-select: text; - user-select: text; - } - } - - // Edit -------------------------------------------------------------- // - .edit { - display: inline-block; - margin-left: 3px; - width: 10px; - - .iconic { - width: 10px; - height: 10px; - fill: white(0.5); - transition: fill 0.2s ease-out; - } - - &:active .iconic { - transition: none; - fill: white(0.8); - } - } - - // Table -------------------------------------------------------------- // - table { - float: left; - margin: 10px 0 15px 20px; - width: calc(100% - 20px); - } - - table tr td { - padding: 5px 0px; - color: #fff; - font-size: 14px; - line-height: 19px; - -webkit-user-select: text; - -moz-user-select: text; - -ms-user-select: text; - user-select: text; - - &:first-child { - width: 110px; - } - - &:last-child { - padding-right: 10px; - } - - span { - -webkit-user-select: text; - -moz-user-select: text; - -ms-user-select: text; - user-select: text; - } - } - - // Tags -------------------------------------------------------------- // - #tags { - width: calc(100% - 40px); - margin: 16px 20px 12px 20px; - color: #fff; - display: inline-block; - } - - #tags > div { - display: inline-block; - } - - #tags .empty { - font-size: 14px; - margin: 0 2px 8px 0; - -webkit-user-select: text; - -moz-user-select: text; - -ms-user-select: text; - user-select: text; - } - - #tags .edit { - margin-top: 6px; - } - - #tags .empty .edit { - margin-top: 0; - } - - #tags .tag { - cursor: default; - display: inline-block; - padding: 6px 10px; - margin: 0 6px 8px 0; - background-color: black(0.5); - border-radius: 100px; - font-size: 12px; - transition: background-color 0.2s; - -webkit-user-select: text; - -moz-user-select: text; - -ms-user-select: text; - user-select: text; - } - - #tags .tag span { - float: right; - padding: 0; - margin: 0 0 -2px 0; - width: 0; - overflow: hidden; - transform: scale(0); - transition: width 0.2s, margin 0.2s, transform 0.2s, fill 0.2s ease-out; - - .iconic { - fill: $colorRed; - width: 8px; - height: 8px; - } - - &:active .iconic { - transition: none; - fill: darken($colorRed, 10%); - } - } - - #leaflet_map_single_photo { - margin: 10px 0px 0px 20px; - height: 180px; - width: calc(100% - 40px); - float: left; - } - - .attr_location { - &.search { - cursor: pointer; - } - } -} - -// restrict hover features to devices that support it -@media (hover: hover) { - .sidebar { - .edit:hover .iconic { - fill: white(1); - } - - #tags .tag { - &:hover { - background-color: black(0.3); - - &.search { - cursor: pointer; - } - - span { - width: 9px; - margin: 0 0 -2px 5px; - transform: scale(1); - } - } - - span:hover .iconic { - fill: lighten($colorRed, 10%); - } - } - } -} - -// responsive web design for smaller screens -@media only screen and (max-width: 567px), only screen and (max-width: 640px) and (orientation: portrait) { - // sidebar as overlay, small size - .sidebar { - width: 240px; - height: unset; - background-color: rgba(0, 0, 0, 0.6); - - &__wrapper { - padding-bottom: 10px; - } - - &__header { - height: 22px; - - h1 { - margin: 6px 0; - font-size: 13px; - } - } - - &__divider { - padding: 6px 0 2px; - - h1 { - margin: 0 0 0 10px; - font-size: 12px; - } - } - - table { - margin: 4px 0 6px 10px; - width: calc(100% - 16px); - - tr td { - padding: 2px 0; - font-size: 11px; - line-height: 12px; - - &:first-child { - width: 80px; - } - } - } - - #tags { - margin: 4px 0 6px 10px; - width: calc(100% - 16px); - - .empty { - margin: 0; - font-size: 11px; - } - } - } -} - -@media only screen and (min-width: 568px) and (max-width: 768px), - only screen and (min-width: 568px) and (max-width: 640px) and (orientation: landscape) { - // sidebar on side, medium size - .sidebar { - width: 280px; - - &__wrapper { - padding-bottom: 10px; - } - - &__header { - height: 28px; - - h1 { - margin: 8px 0; - font-size: 15px; - } - } - - &__divider { - padding: 8px 0 4px; - - h1 { - margin: 0 0 0 10px; - font-size: 13px; - } - } - - table { - margin: 4px 0 6px 10px; - width: calc(100% - 16px); - - tr td { - padding: 2px 0; - font-size: 12px; - line-height: 13px; - - &:first-child { - width: 90px; - } - } - } - - #tags { - margin: 4px 0 6px 10px; - width: calc(100% - 16px); - - .empty { - margin: 0; - font-size: 12px; - } - } - } -} diff --git a/resources/assets/scss/_social-footer.scss b/resources/assets/scss/_social-footer.scss deleted file mode 100644 index 1451e41dad..0000000000 --- a/resources/assets/scss/_social-footer.scss +++ /dev/null @@ -1,59 +0,0 @@ -@font-face { - font-family: "socials"; - src: url("fonts/socials.eot?egvu10"); - src: url("fonts/socials.eot?egvu10#iefix") format("embedded-opentype"), url("fonts/socials.ttf?egvu10") format("truetype"), - url("fonts/socials.woff?egvu10") format("woff"), url("fonts/socials.svg?egvu10#socials") format("svg"); - font-weight: normal; - font-style: normal; -} - -#socials_footer { - padding: 0; - text-align: center; - left: 0; - right: 0; -} - -.socialicons { - display: inline-block; - font-size: 18px; - font-family: "socials" !important; - speak: none; - color: #cccccc; - text-decoration: none; - margin: 15px 15px 5px 15px; - transition: all 0.3s; - -webkit-transition: all 0.3s; - -moz-transition: all 0.3s; - -o-transition: all 0.3s; -} - -#twitter:before { - content: "\ea96"; -} - -#instagram:before { - content: "\ea92"; -} - -#youtube:before { - content: "\ea9d"; -} - -#flickr:before { - content: "\eaa4"; -} - -#facebook:before { - content: "\ea91"; -} - -// restrict hover features to devices that support it -@media (hover: hover) { - .socialicons:hover { - color: #b5b5b5; - -ms-transform: scale(1.3); - transform: scale(1.3); - -webkit-transform: scale(1.3); - } -} diff --git a/resources/assets/scss/_u2f.scss b/resources/assets/scss/_u2f.scss deleted file mode 100644 index ef6900460f..0000000000 --- a/resources/assets/scss/_u2f.scss +++ /dev/null @@ -1,256 +0,0 @@ -.u2f_view { - width: 90%; - max-width: 700px; - margin-left: auto; - margin-right: auto; -} - -.u2f_view_line { - font-size: 14px; - width: 100%; - &:last-child, - &:first-child { - padding-top: 50px; - } - p { - width: 550px; - margin: 0 0 5%; - color: #ccc; - display: inline-block; - a { - color: rgba(255, 255, 255, 0.9); - text-decoration: none; - border-bottom: 1px dashed #888; - } - &:last-of-type { - margin: 0; - } - } - p.line { - margin: 0 0 0 0; - } - p.single { - text-align: center; - } - span.text { - display: inline-block; - padding: 9px 4px; - width: 80%; - //margin: 0 2%; - background-color: transparent; - color: #fff; - border: none; - &_icon { - width: 5%; - .iconic { - width: 15px; - height: 14px; - margin: 0 15px 0 1px; - fill: #ffffff; - } - } - } - .choice label input:checked ~ .checkbox .iconic { - opacity: 1; - -ms-transform: scale(1); - transform: scale(1); - } - .choice { - display: inline-block; - width: 5%; - color: #fff; - input { - position: absolute; - margin: 0; - opacity: 0; - } - .checkbox { - display: inline-block; - width: 16px; - height: 16px; - margin-top: 10px; - margin-left: 2px; - background: rgba(0, 0, 0, 0.5); - border-radius: 3px; - box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.7); - .iconic { - box-sizing: border-box; - fill: #2293ec; - padding: 2px; - opacity: 0; - -ms-transform: scale(0); - transform: scale(0); - transition: opacity 0.2s cubic-bezier(0.51, 0.92, 0.24, 1), transform 0.2s cubic-bezier(0.51, 0.92, 0.24, 1); - } - } - } - .basicModal__button { - display: inline-block; - box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.02), inset 1px 0 0 rgba(0, 0, 0, 0.2); - width: 20%; - min-width: 50px; - border-radius: 0 0 0 0; - } - .basicModal__button_OK { - color: #2293ec; - border-radius: 5px 0 0 5px; - } - .basicModal__button_DEL { - color: #b22027; - border-radius: 0 5px 5px 0; - } - .basicModal__button_CREATE { - width: 100%; - color: #009900; - border-radius: 5px; - } - .select { - position: relative; - margin: 1px 5px; - padding: 0; - width: 110px; - color: #fff; - border-radius: 3px; - border: 1px solid rgba(0, 0, 0, 0.2); - box-shadow: 0 1px 0 rgba(255, 255, 255, 0.02); - font-size: 11px; - line-height: 16px; - overflow: hidden; - outline: 0; - vertical-align: middle; - background: rgba(0, 0, 0, 0.3); - display: inline-block; - select { - margin: 0; - padding: 4px 8px; - width: 120%; - color: #fff; - font-size: 11px; - line-height: 16px; - border: 0; - outline: 0; - box-shadow: none; - border-radius: 0; - background: transparent none; - -moz-appearance: none; - -webkit-appearance: none; - appearance: none; - option { - margin: 0; - padding: 0; - background: #fff; - color: #333; - transition: none; - } - } - &::after { - position: absolute; - content: "≡"; - right: 8px; - top: 4px; - color: #2293ec; - font-size: 16px; - line-height: 16px; - font-weight: 700; - pointer-events: none; - } - } -} - -/* When you mouse over the navigation links, change their color */ - -.signInKeyLess { - display: block; - padding: 10px 10px; - position: absolute; - cursor: pointer; - .iconic { - display: inline-block; - margin: 0 0px 0 0px; - width: 20px; - height: 20px; - fill: #818181; - } - .iconic.ionicons { - margin: 0 8px -2px 0; - width: 18px; - height: 18px; - } -} - -// restrict hover features to devices that support it -@media (hover: hover) { - .u2f_view_line { - .basicModal__button:hover { - cursor: pointer; - } - - .basicModal__button_OK:hover { - background: #2293ec; - color: #ffffff; - } - - .basicModal__button_DEL:hover { - background: #b22027; - color: #ffffff; - } - - .basicModal__button_CREATE:hover { - background: #009900; - color: #ffffff; - } - - input:hover { - border-bottom: #2293ec solid 1px; - } - } - - .signInKeyLess:hover .iconic { - fill: #ffffff; - } -} - -// on touch devices draw buttons in color -@media (hover: none) { - .u2f_view_line { - .basicModal__button { - color: #ffffff; - - &_OK { - background: #2293ec; - } - - &_DEL { - background: #b22027; - } - - &_CREATE { - background: #009900; - } - } - - input { - border-bottom: #2293ec solid 1px; - } - } -} - -// responsive web design for smaller screens -@media only screen and (max-width: 567px), only screen and (max-width: 640px) and (orientation: portrait) { - .u2f_view { - width: 100%; - max-width: 100%; - padding: 20px; - } - - .u2f_view_line { - p { - width: 100%; - } - - .basicModal__button_CREATE { - width: 80%; - margin: 0 10%; - } - } -} diff --git a/resources/assets/scss/_users.scss b/resources/assets/scss/_users.scss deleted file mode 100644 index 584bb64f11..0000000000 --- a/resources/assets/scss/_users.scss +++ /dev/null @@ -1,280 +0,0 @@ -.users_view { - width: 90%; - max-width: 700px; - margin-left: auto; - margin-right: auto; -} - -.users_view_line { - font-size: 14px; - width: 100%; - - &:last-child, - &:first-child { - padding-top: 50px; - } - - p { - width: 550px; - margin: 0 0 5%; - color: #ccc; - display: inline-block; - - a { - color: rgba(255, 255, 255, 0.9); - text-decoration: none; - border-bottom: 1px dashed #888; - } - - &:last-of-type { - margin: 0; - } - } - - p.line { - margin: 0 0 0 0; - } - - span.text { - display: inline-block; - padding: 9px 6px 9px 0; - width: 40%; - //margin: 0 2%; - background-color: transparent; - color: #fff; - border: none; - - &_icon { - width: 5%; - min-width: 32px; - - .iconic { - width: 15px; - height: 14px; - margin: 0 8px; - fill: #ffffff; - } - } - } - - input.text { - padding: 9px 6px 9px 0; - width: 40%; - //margin: 0 2%; - background-color: transparent; - color: #fff; - border: none; - border-bottom: 1px solid #222; - border-radius: 0; - box-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); - outline: 0; - margin: 0 0 10px; - - &:focus { - border-bottom-color: #2293ec; - } - } - - input.text.error { - border-bottom-color: #d92c34; - } - - .choice label input:checked ~ .checkbox .iconic { - opacity: 1; - -ms-transform: scale(1); - transform: scale(1); - } - - .choice { - display: inline-block; - width: 5%; - min-width: 32px; - color: #fff; - - input { - position: absolute; - margin: 0; - opacity: 0; - } - - .checkbox { - display: inline-block; - width: 16px; - height: 16px; - margin: 10px 8px 0; - background: rgba(0, 0, 0, 0.5); - border-radius: 3px; - box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.7); - - .iconic { - box-sizing: border-box; - fill: #2293ec; - padding: 2px; - opacity: 0; - -ms-transform: scale(0); - transform: scale(0); - transition: opacity 0.2s cubic-bezier(0.51, 0.92, 0.24, 1), transform 0.2s cubic-bezier(0.51, 0.92, 0.24, 1); - } - } - } - - .basicModal__button { - display: inline-block; - box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.02), inset 1px 0 0 rgba(0, 0, 0, 0.2); - width: 10%; - min-width: 72px; - border-radius: 0 0 0 0; - } - - .basicModal__button_OK { - color: #2293ec; - border-radius: 5px 0 0 5px; - margin-right: -4px; - } - - .basicModal__button_DEL { - color: #b22027; - border-radius: 0 5px 5px 0; - } - - .basicModal__button_CREATE { - width: 20%; - color: #009900; - border-radius: 5px; - min-width: 144px; - } - - .select { - position: relative; - margin: 1px 5px; - padding: 0; - width: 110px; - color: #fff; - border-radius: 3px; - border: 1px solid rgba(0, 0, 0, 0.2); - box-shadow: 0 1px 0 rgba(255, 255, 255, 0.02); - font-size: 11px; - line-height: 16px; - overflow: hidden; - outline: 0; - vertical-align: middle; - background: rgba(0, 0, 0, 0.3); - display: inline-block; - - select { - margin: 0; - padding: 4px 8px; - width: 120%; - color: #fff; - font-size: 11px; - line-height: 16px; - border: 0; - outline: 0; - box-shadow: none; - border-radius: 0; - background: transparent none; - -moz-appearance: none; - -webkit-appearance: none; - appearance: none; - - option { - margin: 0; - padding: 0; - background: #fff; - color: #333; - transition: none; - } - } - - &::after { - position: absolute; - content: "≡"; - right: 8px; - top: 4px; - color: #2293ec; - font-size: 16px; - line-height: 16px; - font-weight: 700; - pointer-events: none; - } - } -} - -// restrict hover features to devices that support it -@media (hover: hover) { - .users_view_line { - .basicModal__button { - &:hover { - cursor: pointer; - color: #ffffff; - } - - &_OK:hover { - background: #2293ec; - } - - &_DEL:hover { - background: #b22027; - } - - &_CREATE:hover { - background: #009900; - } - } - - input:hover { - border-bottom: #2293ec solid 1px; - } - } -} - -// on touch devices draw buttons in color -@media (hover: none) { - .users_view_line { - .basicModal__button { - color: #ffffff; - - &_OK { - background: #2293ec; - } - - &_DEL { - background: #b22027; - } - - &_CREATE { - background: #009900; - } - } - - input { - border-bottom: #2293ec solid 1px; - } - } -} - -// responsive web design for smaller screens -@media only screen and (max-width: 567px), only screen and (max-width: 640px) and (orientation: portrait) { - .users_view { - width: 100%; - max-width: 100%; - padding: 20px; - } - - .users_view_line { - p { - width: 100%; - - .text, - input.text { - width: 36%; - font-size: smaller; - } - } - .choice { - // aligning elements is painful - should use table... - margin-left: -8px; - margin-right: 3px; - } - } -} diff --git a/resources/assets/scss/_warning.scss b/resources/assets/scss/_warning.scss deleted file mode 100644 index 529ce04bef..0000000000 --- a/resources/assets/scss/_warning.scss +++ /dev/null @@ -1,24 +0,0 @@ -#sensitive_warning { - background: rgba(100, 0, 0, 0.95); - width: 100vw; - height: 100vh; - position: fixed; - top: 0px; - text-align: center; - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; - color: white; - h1 { - font-size: 36px; - font-weight: bold; - border-bottom: 2px solid white; - margin-bottom: 15px; - } - p { - font-size: 20px; - max-width: 40%; - margin-top: 15px; - } -} diff --git a/resources/assets/scss/app.scss b/resources/assets/scss/app.scss deleted file mode 100644 index 7a5faaf129..0000000000 --- a/resources/assets/scss/app.scss +++ /dev/null @@ -1,101 +0,0 @@ -// Functions --------------------------------------------------------------- // -@function black($opacity) { - @return rgba(0, 0, 0, $opacity); -} - -@function white($opacity) { - @return rgba(255, 255, 255, $opacity); -} - -// Properties -------------------------------------------------------------- // -$shadow: 0 -1px 0 black(0.2); -// Colors ------------------------------------------------------------------ // -$colorBlue: #2293ec; -$colorRed: #d92c34; -$colorPink: #ff82ee; -$colorGreen: #00aa00; -$colorYellow: #ffcc00; -$colorOrange: #ff9900; -// Animations -------------------------------------------------------------- // -$timing: cubic-bezier(0.51, 0.92, 0.24, 1); -$timingBounce: cubic-bezier(0.51, 0.92, 0.24, 1.15); -// Rest -------------------------------------------------------------------- // -@import "_reset"; -* { - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - transition: color 0.3s, opacity 0.3s ease-out, transform 0.3s ease-out, box-shadow 0.3s; -} - -html, -body { - min-height: 100vh; - position: relative; -} - -body { - background-color: #1d1d1d; - font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; - font-size: 12px; - -webkit-font-smoothing: antialiased; - -moz-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - &.view { - background-color: #0f0f0f; - } -} - -div#container { - // If there is a footer, we will set padding-bottom to its height - // using JavaScript since the height of the footer can vary. - position: relative; -} - -input { - -webkit-user-select: text !important; - -moz-user-select: text !important; - -ms-user-select: text !important; - user-select: text !important; -} - -.svgsprite { - display: none; -} - -.iconic { - width: 100%; - height: 100%; -} - -#upload { - display: none; -} - -// Files ------------------------------------------------------------------- // -@import "animations"; -@import "content"; -@import "photo-thumbs"; -@import "leftMenu"; -// @import "basicContext.custom"; -// @import "basicContext.extended"; -// @import "basicModal.custom"; -@import "header"; -@import "imageview"; -// @import "mapview"; -@import "sidebar"; -// @import "loading"; -// @import "message"; -@import "warning"; -@import "settings"; -@import "users"; -@import "u2f"; -@import "logs_diagnostics"; -@import "sharing"; -@import "multiselect"; -@import "justified_layout"; -// @import "../page/footer"; -@import "footer"; -@import "social-footer"; -@import "photo-links"; diff --git a/resources/js/vendor/webauthn/webauthn.js b/resources/js/vendor/webauthn/webauthn.js deleted file mode 100644 index a5301930d4..0000000000 --- a/resources/js/vendor/webauthn/webauthn.js +++ /dev/null @@ -1,356 +0,0 @@ -/** - * MIT License - * - * Copyright (c) Italo Israel Baeza Cabrera - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -class WebAuthn { - /** - * Routes for WebAuthn assertion (login) and attestation (register). - * - * @type {{registerOptions: string, register: string, loginOptions: string, login: string, }} - */ - #routes = { - registerOptions: "webauthn::register/options", - register: "webauthn::register", - loginOptions: "webauthn::login/options", - login: "webauthn::login", - } - - /** - * Headers to use in ALL requests done. - * - * @type {{Accept: string, "Content-Type": string, "X-Requested-With": string}} - */ - #headers = { - "Accept": "application/json", - "Content-Type": "application/json", - "X-Requested-With": "XMLHttpRequest" - }; - - /** - * If set to true, the credentials option will be set to 'include' on all fetch calls, - * or else it will use the default 'same-origin'. Use this if the backend is not the - * same origin as the client or the XSRF protection will break without the session. - * - * @type {boolean} - */ - #includeCredentials = false - - /** - * Create a new WebAuthn instance. - * - * @param routes {{registerOptions: string, register: string, loginOptions: string, login: string}} - * @param headers {{string}} - * @param includeCredentials {boolean} - * @param xcsrfToken {string|null} Either a csrf token (40 chars) or xsrfToken (224 chars) - */ - constructor(routes = {}, headers = {}, includeCredentials = false, xcsrfToken = null) { - Object.assign(this.#routes, routes); - Object.assign(this.#headers, headers); - - this.#includeCredentials = includeCredentials; - - let xsrfToken; - let csrfToken; - - if (xcsrfToken === null) { - // If the developer didn't issue an XSRF token, we will find it ourselves. - xsrfToken = WebAuthn.#XsrfToken; - csrfToken = WebAuthn.#firstInputWithCsrfToken; - } else{ - // Check if it is a CSRF or XSRF token - if (xcsrfToken.length === 40) { - csrfToken = xcsrfToken; - } else if (xcsrfToken.length === 224) { - xsrfToken = xcsrfToken; - } else { - throw new TypeError('CSRF token or XSRF token provided does not match requirements. Must be 40 or 224 characters.'); - } - } - - if (xsrfToken !== null) { - this.#headers["X-XSRF-TOKEN"] ??= xsrfToken; - } else if (csrfToken !== null) { - this.#headers["X-CSRF-TOKEN"] ??= csrfToken; - } else { - // We didn't find it, and since is required, we will bail out. - throw new TypeError('Ensure a CSRF/XSRF token is manually set, or provided in a cookie "XSRF-TOKEN" or or there is meta tag named "csrf-token".'); - } - } - - /** - * Returns the CSRF token if it exists as a form input tag. - * - * @returns string - * @throws TypeError - */ - static get #firstInputWithCsrfToken() { - // First, try finding an CSRF Token in the head. - let token = Array.from(document.head.getElementsByTagName("meta")) - .find(element => element.name === "csrf-token"); - - if (token) { - return token.content; - } - - // Then, try to find a hidden input containing the CSRF token. - token = Array.from(document.getElementsByTagName('input')) - .find(input => input.name === "_token" && input.type === "hidden") - - if (token) { - return token.value; - } - - return null; - } - - /** - * Returns the value of the XSRF token if it exists in a cookie. - * - * Inspired by https://developer.mozilla.org/en-US/docs/Web/API/Document/cookie#example_2_get_a_sample_cookie_named_test2 - * - * @returns {?string} - */ - static get #XsrfToken() { - const cookie = document.cookie.split(";").find((row) => /^\s*(X-)?[XC]SRF-TOKEN\s*=/.test(row)); - // We must remove all '%3D' from the end of the string. - // Background: - // The actual binary value of the CSFR value is encoded in Base64. - // If the length of original, binary value is not a multiple of 3 bytes, - // the encoding gets padded with `=` on the right; i.e. there might be - // zero, one or two `=` at the end of the encoded value. - // If the value is sent from the server to the client as part of a cookie, - // the `=` character is URL-encoded as `%3D`, because `=` is already used - // to separate a cookie key from its value. - // When we send back the value to the server as part of an AJAX request, - // Laravel expects an unpadded value. - // Hence, we must remove the `%3D`. - return cookie ? cookie.split("=")[1].trim().replaceAll("%3D", "") : null; - }; - - /** - * Returns a fetch promise to resolve later. - * - * @param data {Object} - * @param route {string} - * @param headers {{string}} - * @returns {Promise} - */ - #fetch(data, route, headers = {}) { - return fetch(route, { - method: "POST", - credentials: this.#includeCredentials ? "include" : "same-origin", - redirect: "error", - headers: {...this.#headers, ...headers}, - body: JSON.stringify(data) - }); - } - - /** - * Decodes a BASE64 URL string into a normal string. - * - * @param input {string} - * @returns {string|Iterable} - */ - static #base64UrlDecode(input) { - input = input.replace(/-/g, "+").replace(/_/g, "/"); - - const pad = input.length % 4; - - if (pad) { - if (pad === 1) { - throw new Error("InvalidLengthError: Input base64url string is the wrong length to determine padding"); - } - - input += new Array(5 - pad).join("="); - } - - return atob(input); - } - - /** - * Transform a string into Uint8Array instance. - * - * @param input {string} - * @param useAtob {boolean} - * @returns {Uint8Array} - */ - static #uint8Array(input, useAtob = false) { - return Uint8Array.from( - useAtob ? atob(input) : WebAuthn.#base64UrlDecode(input), c => c.charCodeAt(0) - ); - } - - /** - * Encodes an array of bytes to a BASE64 URL string - * - * @param arrayBuffer {ArrayBuffer|Uint8Array} - * @returns {string} - */ - static #arrayToBase64String(arrayBuffer) { - return btoa(String.fromCharCode(...new Uint8Array(arrayBuffer))); - } - - /** - * Parses the Public Key Options received from the Server for the browser. - * - * @param publicKey {Object} - * @returns {Object} - */ - #parseIncomingServerOptions(publicKey) { - console.debug(publicKey); - - publicKey.challenge = WebAuthn.#uint8Array(publicKey.challenge); - - if ('user' in publicKey) { - publicKey.user = { - ...publicKey.user, - id: WebAuthn.#uint8Array(publicKey.user.id) - }; - } - - [ - "excludeCredentials", - "allowCredentials" - ] - .filter(key => key in publicKey) - .forEach(key => { - publicKey[key] = publicKey[key].map(data => { - return {...data, id: WebAuthn.#uint8Array(data.id)}; - }); - }); - - return publicKey; - } - - /** - * Parses the outgoing credentials from the browser to the server. - * - * @param credentials {Credential|PublicKeyCredential} - * @return {{response: {string}, rawId: string, id: string, type: string}} - */ - #parseOutgoingCredentials(credentials) { - let parseCredentials = { - id: credentials.id, - type: credentials.type, - rawId: WebAuthn.#arrayToBase64String(credentials.rawId), - response: {} - }; - - [ - "clientDataJSON", - "attestationObject", - "authenticatorData", - "signature", - "userHandle" - ] - .filter(key => key in credentials.response) - .forEach(key => parseCredentials.response[key] = WebAuthn.#arrayToBase64String(credentials.response[key])); - - return parseCredentials; - } - - /** - * Handles the response from the Server. - * - * Throws the entire response if is not OK (HTTP 2XX). - * - * @param response {Response} - * @returns Promise - * @throws Response - */ - static #handleResponse(response) { - if (!response.ok) { - throw response; - } - - // Here we will do a small trick. Since most of the responses from the server - // are JSON, we will automatically parse the JSON body from the response. If - // it's not JSON, we will push the body verbatim and let the dev handle it. - return new Promise((resolve) => { - response - .json() - .then((json) => resolve(json)) - .catch(() => resolve(response.body)); - }); - } - - /** - * Register the user credentials from the browser/device. - * - * You can add request input if you are planning to register a user with WebAuthn from scratch. - * - * @param request {{string}} - * @param response {{string}} - * @returns Promise - */ - async register(request = {}, response = {}) { - const optionsResponse = await this.#fetch(request, this.#routes.registerOptions); - const json = await optionsResponse.json(); - const publicKey = this.#parseIncomingServerOptions(json); - const credentials = await navigator.credentials.create({publicKey}); - const publicKeyCredential = this.#parseOutgoingCredentials(credentials); - - Object.assign(publicKeyCredential, response); - - return await this.#fetch(publicKeyCredential, this.#routes.register).then(WebAuthn.#handleResponse); - } - - /** - * Log in a user with his credentials. - * - * If no credentials are given, the app may return a blank assertion for userless login. - * - * @param request {{string}} - * @param response {{string}} - * @returns Promise - */ - async login(request = {}, response = {}) { - const optionsResponse = await this.#fetch(request, this.#routes.loginOptions); - const json = await optionsResponse.json(); - const publicKey = this.#parseIncomingServerOptions(json); - const credentials = await navigator.credentials.get({publicKey}); - const publicKeyCredential = this.#parseOutgoingCredentials(credentials); - - Object.assign(publicKeyCredential, response); - - return await this.#fetch(publicKeyCredential, this.#routes.login, response).then(WebAuthn.#handleResponse); - } - - /** - * Checks if the browser supports WebAuthn. - * - * @returns {boolean} - */ - static supportsWebAuthn() { - return typeof PublicKeyCredential != "undefined"; - } - - /** - * Checks if the browser doesn't support WebAuthn. - * - * @returns {boolean} - */ - static doesntSupportWebAuthn() { - return !this.supportsWebAuthn(); - } -} diff --git a/resources/views/layouts/app.blade.php b/resources/views/layouts/app.blade.php deleted file mode 100644 index cf46e6ee10..0000000000 --- a/resources/views/layouts/app.blade.php +++ /dev/null @@ -1,37 +0,0 @@ - - - - - {{ App\Models\Configs::getValueAsString('site_title') }} - - - - - - - - - - - - - - - {{-- --}} - @if (Helpers::getDeviceType()=="television") - - @endif - - {{-- @if($rss_enable) - @include('feed::links') - @endif --}} - - @yield('head-meta') -@livewireStyles - - - {{ $slot }} - @include('includes.svg') - @livewireScripts - - \ No newline at end of file