diff --git a/.jsbeautifyrc b/.jsbeautifyrc deleted file mode 100644 index 9bea123..0000000 --- a/.jsbeautifyrc +++ /dev/null @@ -1,19 +0,0 @@ -{ - "css": { - "allowed_file_extensions": [ - "css", - "scss", - "sass", - "less" - ], - "end_with_newline": true, - "indent_char": " ", - "indent_size": 2, - "indent_with_tabs": true, - "newline_between_rules": true, - "selector_separator": " ", - "selector_separator_newline": false, - "preserve_newlines": true, - "max_preserve_newlines": 3 - } -} diff --git a/README.md b/README.md index 39c22f3..4cd1681 100644 --- a/README.md +++ b/README.md @@ -11,6 +11,15 @@ You can find more informations about deemix at https://deemix.app/ - [deemix-pyweb](https://codeberg.org/RemixDev/deemix-pyweb) - [deemix-tools](https://codeberg.org/RemixDev/deemix-tools) +# "Hidden" features + +- `CTRL+SHIFT+Backspace` deletes all the search bar content +- `CTRL+F` focuses the search bar +- `CTRL+B` toggles the download bar +- `ALT+Left` goes back to the previous page, if present (like would happen in the browser) +- `ALT+Right` goes forward to the next page, if present (like would happen in the browser) +- Custom context menu: on certain elements, like download buttons or album covers, when opening the context menu, a custom one with more options will appear instead of the default one + # License This program is free software: you can redistribute it and/or modify diff --git a/package-lock.json b/package-lock.json index 60a956a..c5e4eaa 100644 --- a/package-lock.json +++ b/package-lock.json @@ -796,6 +796,11 @@ "pinkie-promise": "^2.0.0" } }, + "flag-icon-css": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/flag-icon-css/-/flag-icon-css-3.5.0.tgz", + "integrity": "sha512-pgJnJLrtb0tcDgU1fzGaQXmR8h++nXvILJ+r5SmOXaaL/2pocunQo2a8TAXhjQnBpRLPtZ1KCz/TYpqeNuE2ew==" + }, "forever-agent": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", diff --git a/package.json b/package.json index 17ccdeb..a7e0b7c 100644 --- a/package.json +++ b/package.json @@ -19,6 +19,7 @@ "build": "npm-run-all --sequential clean build:js build:styles" }, "dependencies": { + "flag-icon-css": "^3.5.0", "lodash-es": "^4.17.15", "svg-country-flags": "^1.2.7", "toastify-js": "^1.8.0", diff --git a/public/css/style.css b/public/css/style.css index 2f13459..eca4c4c 100644 --- a/public/css/style.css +++ b/public/css/style.css @@ -1 +1 @@ -html{--main-scroll: hsl(0, 0%, 33%);--panels-scroll: hsl(180, 2%, 17%);--tag-background: hsl(210, 100%, 38%);--tag-text: hsl(0, 0%, 100%);--toast-background: hsla(0, 0%, 0%, 0.867);--toast-secondary: hsla(0, 0%, 100%, 0.133);--toast-text: hsla(0, 0%, 100%, 0.871);--separator: hsl(0, 0%, 50%)}html[data-theme=light]{--main-background: hsl(0, 0%, 100%);--secondary-background: hsl(0, 0%, 93%);--foreground: hsl(0, 0%, 20%);--foreground-inverted: hsl(0, 0%, 93%);--accent-color: hsl(210, 100%, 52%);--secondary-color: hsl(46, 100%, 57%);--panels-background: hsl(210, 3%, 14%);--panels-text: hsl(0, 0%, 100%);--accent-text: hsl(0, 0%, 0%);--sidebar-link-bg: hsl(0, 0%, 24%);--sidebar-link-bg-20: hsla(0, 0%, 24%, 0.2);--icon-hover: var(--accent-color);--table-bg: hsl(0, 0%, 100%);--table-zebra: hsl(0, 0%, 90%);--table-highlight: hsl(0, 0%, 84%)}html[data-theme=dark]{--main-background: hsl(0, 0%, 8%);--secondary-background: hsl(0, 0%, 14%);--foreground: hsl(0, 0%, 93%);--foreground-inverted: hsl(0, 0%, 20%);--accent-color: hsl(210, 100%, 52%);--secondary-color: hsl(46, 100%, 57%);--panels-background: hsl(0, 0%, 10%);--panels-text: hsl(0, 0%, 100%);--accent-text: hsl(0, 0%, 87%);--sidebar-link-bg: hsl(0, 0%, 24%);--sidebar-link-bg-20: hsla(0, 0%, 24%, 0.2);--icon-hover: var(--accent-color);--table-bg: hsl(0, 0%, 8%);--table-zebra: hsl(0, 0%, 14%);--table-highlight: hsl(0, 0%, 20%)}html[data-theme=purple]{--main-background: hsl(261, 74%, 6%);--secondary-background: hsl(257, 61%, 10%);--foreground: hsl(0, 0%, 93%);--foreground-inverted: hsl(258, 62%, 8%);--accent-color: hsl(261, 85%, 37%);--secondary-color: hsl(46, 100%, 57%);--panels-background: hsl(257, 70%, 9%);--panels-text: hsl(0, 0%, 100%);--accent-text: hsl(0, 0%, 87%);--sidebar-link-bg: hsl(257, 70%, 17%);--sidebar-link-bg-20: hsla(257, 70%, 17%, 0.2);--icon-hover: hsl(186, 44%, 54%);--table-bg: hsl(261, 74%, 6%);--table-zebra: hsl(257, 61%, 10%);--table-highlight: hsl(257, 66%, 27%)}html{height:100vh}body{margin:0px;width:100%;height:100%;font-family:"Open Sans","sans-serif";overflow:hidden;background:var(--main-background);color:var(--foreground)}*{margin:0;padding:0;box-sizing:border-box}:root{font-size:16px}table,caption,tbody,tfoot,thead,tr,th,td{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}table{border-collapse:collapse;border-spacing:0}.lds-ring{display:inline-block;position:relative;width:80px;height:80px}.lds-ring div{box-sizing:border-box;display:block;position:absolute;width:64px;height:64px;margin:8px;border:8px solid #fff;border-radius:50%;animation:lds-ring 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;border-color:#fff transparent transparent transparent}.lds-ring div:nth-child(1){animation-delay:-0.45s}.lds-ring div:nth-child(2){animation-delay:-0.3s}.lds-ring div:nth-child(3){animation-delay:-0.15s}@keyframes lds-ring{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@keyframes indeterminate{0%{left:-35%;right:100%}60%{left:100%;right:-90%}100%{left:100%;right:-90%}}@keyframes indeterminate-short{0%{left:-200%;right:100%}60%{left:107%;right:-8%}100%{left:107%;right:-8%}}input[type=text],input[type=password],input[type=number],input[type=search]{-webkit-appearance:none;appearance:none;width:calc(100% - 16px);border:0px solid #000;line-height:36px;padding:0px 8px;border-radius:4px;background-color:var(--secondary-background);color:var(--foreground);margin-bottom:8px}input[type=search]::-webkit-search-cancel-button{-webkit-appearance:none;width:28px;height:28px;background-color:var(--foreground);-webkit-mask-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' height='28' viewBox='0 0 24 24' width='28'%3E%%3Cpath fill='%23ffffff' d='M22 3H7c-.69 0-1.23.35-1.59.88L0 12l5.41 8.11c.36.53.9.89 1.59.89h15c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-3 12.59L17.59 17 14 13.41 10.41 17 9 15.59 12.59 12 9 8.41 10.41 7 14 10.59 17.59 7 19 8.41 15.41 12 19 15.59z'/%3E3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' height='28' viewBox='0 0 24 24' width='28'%3E%%3Cpath fill='%23ffffff' d='M22 3H7c-.69 0-1.23.35-1.59.88L0 12l5.41 8.11c.36.53.9.89 1.59.89h15c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-3 12.59L17.59 17 14 13.41 10.41 17 9 15.59 12.59 12 9 8.41 10.41 7 14 10.59 17.59 7 19 8.41 15.41 12 19 15.59z'/%3E3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3C/svg%3E")}input[type=checkbox]{-webkit-appearance:none;appearance:none;background-color:none;border:2px solid gray;opacity:.5;border-radius:2px;padding:7px;margin:3px;display:inline-block;position:relative}input[type=checkbox]:checked{opacity:1;background-color:var(--accent-color);background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' height='18' viewBox='3 3 18 18' width='18'%3E%3Cpath fill='%23ffffff' d='M 10,17 5,12 6.41,10.59 10,14.17 17.59,6.58 19,8 Z'/%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3C/svg%3E");background-position:center center;border:0px solid var(--accent-color);border-radius:2px;padding:9px;margin:3px;color:var(--accent-text)}select{-webkit-appearance:none;appearance:none;width:100%;border:0px solid #000;line-height:36px;padding:0px 40px 0px 8px;border-radius:4px;background-color:var(--secondary-background);background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' height='24' viewBox='0 0 24 24' width='24'%3E%3Cpath style='fill%3A%23000000%3Bfill-opacity%3A0.25' d='M7 10l5 5 5-5z'/%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3C/svg%3E");background-repeat:no-repeat;background-size:24px;background-position:calc(100% - 8px) center;background-clip:border-box;color:var(--foreground);margin-bottom:8px}p{word-break:break-word}button{min-width:64px;color:var(--accent-text);position:relative;background-color:var(--accent-color);border:1px solid transparent;border-radius:4px;font-family:inherit;font-weight:600;font-size:14px;padding:0px 8px;margin-right:8px;height:36px;text-transform:uppercase;cursor:pointer;transition:transform 50ms ease-in-out,background-color 200ms ease}button[disabled]{background-color:var(--secondary-background);color:var(--foreground);opacity:.75}button.selective{background-color:var(--main-background);color:var(--foreground)}button.selective.active{background-color:var(--accent-color);color:var(--accent-text)}button.with_icon{display:flex;align-items:center}button.with_icon i{margin-left:8px}button.only_icon{min-width:24px;width:48px;margin:0px 0px 0px 8px;padding:0px 4px}button.only_icon i{padding:6px 0px}button:active{background-color:var(--accent-color);transform:scale(0.98)}button:hover{background:none;border:1px solid var(--accent-color)}img.rounded{border-radius:5px}img.circle{border-radius:50%}i.disabled{opacity:.5;cursor:default}i.explicit_icon{color:#ff382e;margin-right:.3125em;margin-left:-3px}i.explicit_icon.explicit_icon--right{margin-left:.3125em;margin-right:0px}span.tag{background-color:var(--tag-background);border-radius:2px;color:var(--tag-text);display:inline-block;font-size:10px;padding:3px 6px;text-transform:capitalize}a{color:#1e90ff}a.single-cover{position:relative;display:inline-block;color:#fff}a:visited{color:#1e90ff}.clickable{cursor:pointer !important}.table--tracklist .clickable:hover,.table--charts .clickable:hover{text-decoration:underline}.fixed_footer footer{position:sticky;display:flex;align-items:center;flex-direction:row;justify-content:flex-end;background-color:var(--main-background);bottom:0px;height:64px;width:100%;margin-top:24px}.fab{width:56px;height:56px;border-radius:28px;display:inline-block;background-color:var(--accent-color);color:var(--accent-text);cursor:pointer}.fab i{font-size:24px;padding:16px}.with_checkbox{display:flex;align-items:center}.with_checkbox [type=checkbox]{cursor:pointer}.with_checkbox .checkbox_text{margin-left:10px;cursor:pointer}.with_checkbox .checkbox_text::selection{background:none}.loading_placeholder{display:flex;justify-content:center;align-items:center;flex-direction:column;flex:1;height:100%}.loading_placeholder.loading_placeholder--hidden{display:none}.loading_placeholder__text{margin-bottom:20px}.loading_placeholder#search_placeholder{height:calc(100% - 93px)}.loading_placeholder#start_app_placeholder{position:absolute;top:0;left:0;width:100vw;height:100vh;background:rgba(0,0,0,.5);z-index:1000}.coverart{background-color:var(--secondary-background)}.cover_container{position:relative}.cover_container .coverart{opacity:1;display:block;width:100%;height:auto;transition:.5s ease;backface-visibility:hidden}.cover_container .download_overlay{transition:.5s ease;opacity:0;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);text-align:center}.cover_container .download_overlay i{background-color:#000;color:#fff;border-radius:50%;padding:10px;cursor:pointer}.cover_container:hover .coverart{opacity:.75}.cover_container:hover .download_overlay{opacity:1}.inline-flex{display:flex;align-items:center}.inline-flex .right{margin-left:auto}.right{float:right}.hide{display:none !important}.changing-theme{transition:all 200ms ease-in-out}[v-cloak]{display:none}.table{width:100%;-webkit-border-horizontal-spacing:0px;-webkit-border-vertical-spacing:0px}.table tbody tr:not(.table__row-no-highlight):hover{background:var(--table-highlight);cursor:default}.table tr{background:var(--table-bg);transition:background-color 175ms ease-in-out}.table tr:nth-child(even){background:var(--table-zebra);transition:background-color 175ms ease-in-out}.table tr:not(:last-child){border-bottom:1px solid var(--table-highlight)}.table td,.table th{vertical-align:middle}.table th .sortable{-webkit-user-select:none;user-select:none}.table th .sort-asc::after,.table th .sort-desc::after{font-size:.7em;padding-left:3px;line-height:.7em}.table th .sort-asc::after{content:"▲"}.table th .sort-desc::after{content:"▼"}.table td{padding:7px 10px}.table td:first-child{padding:7px 10px 7px 20px}.table td:last-child{padding:7px 20px 7px 10px}.table td img{vertical-align:middle}.table--tracks{border-collapse:collapse}.table--tracks thead{border-bottom:2px solid var(--table-highlight)}.table--tracks th{padding-bottom:10px;height:45px}.table--tracks td{height:35px}.table--tracks td.breakline{word-break:break-word}.table--tracks tr:first-child td:first-child{border-top-left-radius:3px}.table--tracks tr:first-child td:last-child{border-top-right-radius:3px}.table--tracks tr:last-child td:first-child{border-bottom-left-radius:3px}.table--tracks tr:last-child td:last-child{border-bottom-right-radius:3px}.table--tracklist thead{border-bottom:2px solid var(--table-highlight);text-transform:capitalize}.table--tracklist th{height:45px;padding:7px 10px}.table--tracklist th:first-child{padding:7px 10px 7px 20px}.table--tracklist th:last-child{padding:7px 20px 7px 10px}.table--tracklist td{height:35px}.table--charts td{height:35px}.table .table__icon{box-sizing:content-box;width:32px}.table .table__icon--big{width:48px;text-align:center}.table .table__cell--x-small{width:.32%}.table .table__cell--small{width:3.2%}.table .table__cell--medium{width:28.7%}.table .table__cell--large{width:50%}.table .table__cell--left{text-align:left}.table .table__cell--center{text-align:center}.table .table__cell--right{text-align:right}.table .table__cell--download{cursor:pointer}.table .table__cell--download i.material-icons{transition:color 175ms ease-in-out}.table .table__cell--download:hover i.material-icons{color:var(--icon-hover)}.table .table__cell-content.table__cell-content--vertical-center{display:flex;align-items:center}.track_row>td>img{width:32px;height:32px}.track_row>td>a>img{width:56px;height:56px}.top-tracks-position{padding:12px;text-align:center;cursor:default}.page_heading{font-size:2.5rem;margin-bottom:35px}.page_heading--capitalize{text-transform:capitalize}.page_heading--uppercase{text-transform:uppercase}.section_heading{font-size:1.75rem;margin-bottom:25px}#about_tab p{margin-bottom:8px}#about_tab h3{margin:8px 0px}#about_tab hr{margin:12px 0px}.charts_grid .release .coverart{width:156px;height:156px}#download_tab_container{height:100%;background-color:var(--panels-background);color:var(--panels-text);display:block;flex-direction:column}#download_tab_container.tab_hidden{width:32px}#download_tab_container.tab_hidden #toggle_download_tab{margin-left:4px}#download_tab_container.tab_hidden #toggle_download_tab::before{font-family:"Material Icons";font-style:normal;font-weight:400;content:"chevron_left"}#download_tab_container.tab_hidden #download_tab_drag_handler{display:none}#download_tab_container.tab_hidden #queue_buttons{opacity:0;visibility:hidden}#download_tab_container.tab_hidden #download_list{display:none}#download_tab_container.tab_hidden #download_tab_label{opacity:1;visibility:visible}#download_tab_container.tab_hidden::after{content:attr(data-label);display:flex;align-items:center;text-transform:capitalize;writing-mode:vertical-rl;line-height:32px}#toggle_download_tab{width:25px;height:25px;margin-left:20px}#toggle_download_tab::before{font-family:"Material Icons";font-style:normal;font-weight:400;content:"chevron_right"}.download_bar_icon{cursor:pointer;font-size:24px;margin:4px}#download_list{width:100%;height:calc(100% - 32px);padding:0px 8px 0px 28px;overflow-y:scroll}#download_list>.download_object{padding-bottom:8px}#download_list>.download_object .download_info{display:flex;align-items:center}#download_list>.download_object .download_info img{width:75px;height:75px;display:inline-block;flex-shrink:0}#download_list>.download_object .download_info .download_line{display:block}#download_list>.download_object .download_info .download_slim_separator{display:none}#download_list>.download_object .download_info_data{width:100%;margin-left:8px}#download_list>.download_object .download_info_status{margin-left:8px;width:80px}#download_list.slim>.download_object .download_info{display:block}#download_list.slim>.download_object .download_info img{display:none}#download_list.slim>.download_object .download_info .download_line{display:inline-block}#download_list.slim>.download_object .download_info .download_slim_separator{display:inline-block}#download_list.slim>.download_object .download_info_data{width:calc(80% - 16px);display:inline-block;padding-left:0px}#download_list.slim>.download_object .download_info_status{width:20%;display:inline-block;float:right}#download_list::-webkit-scrollbar{width:10px}#download_list::-webkit-scrollbar-track{background:var(--panels-background)}#download_list::-webkit-scrollbar-thumb{background:var(--panels-scroll);border-radius:4px;width:6px;padding:0px 2px}.download_object>.download_bar{display:flex;align-items:center;height:24px}.download_object>.download_bar>.queue_icon{cursor:default;margin-left:8px}.download_object>.download_bar>.progress{margin:0px}#download_tab_container #queue_buttons{position:absolute;top:0;right:0;opacity:1;visibility:visible;transition:all 250ms ease-in-out}#download_tab_container #download_tab_label{opacity:0;visibility:hidden;transition:all 250ms ease-in-out}#download_tab_drag_handler{width:15px;height:100%;position:absolute;background-color:#333;cursor:ew-resize}.reload-button.reload-button--inline{display:inline-block}.reload-button.spin i{animation:spin 500ms infinite ease-out reverse}#home_not_logged_text{margin-bottom:15px}.home_section{border-top:1px solid var(--separator);padding-top:25px;padding-bottom:25px}#main_search .search_section{float:none;padding-top:20px;padding-bottom:20px}#main_search .search_section:not(:first-child){border-top:1px solid var(--separator)}#main_search .top_result_header{display:block;cursor:default;font-size:2rem;text-align:center}.search_header{display:inline-block;cursor:pointer;font-size:1.75rem;margin-bottom:25px;text-transform:capitalize}.search_header:not(.top_result_header){transition:color 200ms ease-in-out}.search_header:not(.top_result_header):hover{color:var(--accent-color)}.top_result{display:flex;align-items:center;flex-direction:column}.top_result>.cover_container{width:156px;height:156px}.top_result .info_box{display:flex;flex-direction:column;justify-content:center;align-items:center;margin-top:15px}.top_result .info_box .primary-text,.top_result .info_box .secondary-text{font-size:18px;text-align:center}.top_result .info_box .primary-text{margin-bottom:5px}.top_result .info_box .secondary-text{margin-bottom:10px}.top_result .info_box .tag{width:40px;text-align:center}.release .primary-text,.release .secondary-text{margin:0px;margin-bottom:4px}.release .secondary-text{opacity:.75;font-size:14px}.release .secondary-text .material-icons{font-size:17px !important;margin-left:4px}.release_grid{display:grid;grid-template-columns:repeat(auto-fill, minmax(156px, 1fr));grid-gap:1rem}.release_grid.firstrow_only{grid-template-rows:1fr;grid-auto-rows:0;grid-row-gap:0px;overflow-y:hidden}#settings_picture{width:125px;height:125px}#log_info{display:flex;flex-direction:column;align-items:center}#open_login_prompt{margin:8px 0px}.inline-flex input{margin-bottom:0px}#spotify_icon{width:24px;height:24px;fill:#1db954;margin-right:15px}.settings-group{display:flex;flex-direction:column;justify-content:center;border-top:1px solid var(--separator);padding-top:20px;padding-bottom:20px}.settings-group>*{margin-bottom:15px}.settings-group__header{font-size:1.5rem;margin-bottom:25px}.settings-group__header.settings-group__header--with-icon{display:inline-flex;align-items:center}.settings-group__header.settings-group__header--with-icon i.material-icons{margin-right:15px}.settings-container{display:flex}.settings-container__half{width:50%}.settings-container__third{width:33%}.settings-container__third--only-checkbox{display:flex;flex-direction:column;justify-content:center;align-items:start}.settings-container__half>*,.settings-container__third>*{margin-bottom:15px}.input_group{margin-bottom:25px}.input_group .input_group_text{margin-bottom:7px}.with_checkbox+.input_group{margin-top:10px}.main_tabcontent h1{margin-bottom:12px}.tab{margin:16px 0px}.tab button{background-color:var(--main-background);color:var(--foreground)}.tab button.active{background-color:var(--accent-color)}.release{display:inline-block;width:156px}.release .cover_container{width:156px;height:156px;margin-bottom:10px}.section-tabs{list-style-type:none;display:flex;margin:16px 0 24px 0;cursor:pointer}.section-tabs__tab{flex:1;font-size:1.2rem;padding:.8em;border-top:3px solid var(--foreground);text-align:center;text-transform:capitalize}.section-tabs__tab.active{color:var(--accent-color);border-top:3px solid var(--accent-color)}#search{background-color:var(--secondary-background);width:100%;padding:0 1em;margin-bottom:20px;margin-right:32px;display:flex;align-items:center;border:1px solid transparent;transition:border 200ms ease-in-out}#search .search__icon{width:2rem;height:2rem}#search .search__icon i{font-size:2rem;color:var(--foreground)}#search .search__icon i::selection{background:none}#search:focus-within{border:1px solid var(--foreground)}#search #searchbar{height:calc(2rem + 1em);padding-left:.5em;border:0px;border-radius:0px;background-color:var(--secondary-background);color:var(--foreground);font-size:2rem;font-family:"Open Sans";font-weight:300}#search #searchbar:focus{outline:none}#search #searchbar:-webkit-autofill,#search #searchbar:-webkit-autofill:hover,#search #searchbar:-webkit-autofill:focus,#search #searchbar:-webkit-autofill:active{-webkit-box-shadow:0 0 0 calc(2rem + 1em) var(--secondary-background) inset !important;box-shadow:0 0 0 calc(2rem + 1em) var(--secondary-background) inset !important}#container{--container-width: 95%}@media only screen and (min-width: 601px){#container{--container-width: 85%}}@media only screen and (min-width: 993px){#container{--container-width: 70%}}.smallmodal-content{--modal-content-width: 95%}@media only screen and (min-width: 601px){.smallmodal-content{--modal-content-width: 85%}}@media only screen and (min-width: 993px){.smallmodal-content{--modal-content-width: 70%}}.progress{position:relative;height:4px;display:block;width:100%;background-color:var(--secondary-background);border-radius:2px;margin:.5rem 0 1rem 0;overflow:hidden}.progress .determinate{position:absolute;top:0;left:0;bottom:0;background-color:var(--accent-color);-webkit-transition:width .3s linear;transition:width .3s linear}.progress .converting{background-color:var(--secondary-color);-webkit-transition:none !important;transition:none !important}.progress .indeterminate{background-color:var(--accent-color)}.progress .indeterminate::before{content:"";position:absolute;background-color:inherit;top:0;left:0;bottom:0;will-change:left,right;-webkit-animation:indeterminate 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite;animation:indeterminate 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite}.progress .indeterminate::after{content:"";position:absolute;background-color:inherit;top:0;left:0;bottom:0;will-change:left,right;-webkit-animation:indeterminate-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite;animation:indeterminate-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite;-webkit-animation-delay:1.15s;animation-delay:1.15s}#sidebar{display:flex;flex-direction:column;width:48px;height:100%;position:absolute;top:0;left:0;background-color:var(--panels-background);color:var(--panels-text);transition:width 125ms ease-in-out 75ms;z-index:999}#sidebar:hover{width:200px}#sidebar .main_tablinks{transition:all 500ms}#sidebar .main_tablinks.active{background-color:var(--accent-color)}#sidebar .main_tablinks:not(#theme_selector){display:flex;align-items:center;height:55px;cursor:pointer}#sidebar .main_tablinks:not(#theme_selector):hover{background-color:var(--sidebar-link-bg)}#sidebar .main_tablinks:not(#theme_selector):hover .side_icon{color:var(--accent-color)}#sidebar .main_tablinks_text{margin-left:20px;opacity:0;overflow:hidden;text-transform:capitalize;letter-spacing:1.3px;white-space:nowrap;transition:all 50ms ease-in-out 200ms}#sidebar .side_icon{font-size:30px;padding:9px;transition:all 500ms}#sidebar .side_icon--theme{cursor:default}#sidebar .side_icon::selection{background:none}#sidebar:hover .main_tablinks:hover{background:var(--sidebar-link-bg-20);filter:grayscale(0) opacity(1)}#sidebar:hover .main_tablinks.active{background:var(--sidebar-link-bg);filter:grayscale(1)}html[data-theme=purple] #sidebar:hover .main_tablinks.active{background:var(--sidebar-link-bg-20);filter:grayscale(0)}#sidebar:hover .main_tablinks.active:hover{background:var(--sidebar-link-bg-20);filter:grayscale(0)}#sidebar:hover .main_tablinks_text{opacity:1}#sidebar:hover #theme_togglers{opacity:1}#sidebar #theme_selector{margin-top:20px;display:flex;height:50px}#sidebar #theme_togglers{position:relative;display:flex;justify-content:space-evenly;align-items:center;width:100%;opacity:0;transition:all 125ms ease-in-out 75ms}#sidebar .theme_toggler{width:25px;height:25px;border-radius:1000px;border:1px solid var(--separator);cursor:pointer;transition:border 200ms ease-in-out}#sidebar .theme_toggler--active{border-width:3px}#sidebar .theme_toggler--light{background:#fff}#sidebar .theme_toggler--dark{background:#141414}#sidebar .theme_toggler--purple{background:#460eaf}.image_header header{background-position:0% 35%;background-size:cover;padding:220px 24px 8px;border-radius:8px 8px 0px 0px}.image_header header h1,.image_header header h2{margin:0px}.image_header header h2{font-size:18px;margin-bottom:12px}.preview_controls{opacity:0;display:block;background:rgba(0,0,0,.5);width:56px;height:56px;text-align:center;line-height:56px;position:absolute;border-radius:5px;top:0;right:0;transition:opacity 200ms ease-in-out}.preview_playlist_controls{cursor:pointer}.toast-icon{display:inline-block;margin-right:8px}.circle-loader{display:inline-block;border:2px solid var(--accent-color);border-radius:50%;border-bottom:2px solid var(--secondary-background);width:16px;height:16px;animation:spin 1s linear infinite}.toastify{display:flex;align-items:center;box-shadow:0 3px 6px -1px rgba(0,0,0,.12),0 10px 36px -4px rgba(0,0,0,.3);background:var(--toast-background);color:var(--toast-text)}.toastify .circle-loader{border-bottom-color:var(--toast-secondary)} +html{--main-scroll: hsl(0, 0%, 33%);--panels-scroll: hsl(180, 2%, 17%);--tag-background: hsl(210, 100%, 38%);--tag-text: hsl(0, 0%, 100%);--toast-background: hsla(0, 0%, 0%, 0.867);--toast-secondary: hsla(0, 0%, 100%, 0.133);--toast-text: hsla(0, 0%, 100%, 0.871);--separator: hsl(0, 0%, 50%)}html[data-theme=light]{--main-background: hsl(0, 0%, 100%);--secondary-background: hsl(0, 0%, 93%);--foreground: hsl(0, 0%, 20%);--foreground-inverted: hsl(0, 0%, 93%);--accent-color: hsl(210, 100%, 52%);--secondary-color: hsl(46, 100%, 57%);--panels-background: hsl(210, 3%, 14%);--panels-text: hsl(0, 0%, 100%);--accent-text: hsl(0, 0%, 0%);--sidebar-link-bg: hsl(0, 0%, 24%);--sidebar-link-bg-20: hsla(0, 0%, 24%, 0.2);--icon-hover: var(--accent-color);--table-bg: hsl(0, 0%, 100%);--table-zebra: hsl(0, 0%, 90%);--table-highlight: hsl(0, 0%, 84%)}html[data-theme=dark]{--main-background: hsl(0, 0%, 8%);--secondary-background: hsl(0, 0%, 14%);--foreground: hsl(0, 0%, 93%);--foreground-inverted: hsl(0, 0%, 20%);--accent-color: hsl(210, 100%, 52%);--secondary-color: hsl(46, 100%, 57%);--panels-background: hsl(0, 0%, 10%);--panels-text: hsl(0, 0%, 100%);--accent-text: hsl(0, 0%, 87%);--sidebar-link-bg: hsl(0, 0%, 24%);--sidebar-link-bg-20: hsla(0, 0%, 24%, 0.2);--icon-hover: var(--accent-color);--table-bg: hsl(0, 0%, 8%);--table-zebra: hsl(0, 0%, 14%);--table-highlight: hsl(0, 0%, 20%)}html[data-theme=purple]{--main-background: hsl(261, 74%, 6%);--secondary-background: hsl(257, 61%, 10%);--foreground: hsl(0, 0%, 93%);--foreground-inverted: hsl(258, 62%, 8%);--accent-color: hsl(261, 85%, 37%);--secondary-color: hsl(46, 100%, 57%);--panels-background: hsl(257, 70%, 9%);--panels-text: hsl(0, 0%, 100%);--accent-text: hsl(0, 0%, 87%);--sidebar-link-bg: hsl(257, 70%, 17%);--sidebar-link-bg-20: hsla(257, 70%, 17%, 0.2);--icon-hover: hsl(186, 44%, 54%);--table-bg: hsl(261, 74%, 6%);--table-zebra: hsl(257, 61%, 10%);--table-highlight: hsl(257, 66%, 27%)}html{height:100vh}body{margin:0px;width:100%;height:100%;font-family:"Open Sans","sans-serif";overflow:hidden;background:var(--main-background);color:var(--foreground)}*{margin:0;padding:0;box-sizing:border-box}:root{font-size:16px}table,caption,tbody,tfoot,thead,tr,th,td{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}table{border-collapse:collapse;border-spacing:0}.lds-ring{display:inline-block;position:relative;width:80px;height:80px}.lds-ring div{box-sizing:border-box;display:block;position:absolute;width:64px;height:64px;margin:8px;border:8px solid #fff;border-radius:50%;animation:lds-ring 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;border-color:#fff transparent transparent transparent}.lds-ring div:nth-child(1){animation-delay:-0.45s}.lds-ring div:nth-child(2){animation-delay:-0.3s}.lds-ring div:nth-child(3){animation-delay:-0.15s}@keyframes lds-ring{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@keyframes indeterminate{0%{left:-35%;right:100%}60%{left:100%;right:-90%}100%{left:100%;right:-90%}}@keyframes indeterminate-short{0%{left:-200%;right:100%}60%{left:107%;right:-8%}100%{left:107%;right:-8%}}input[type=text],input[type=password],input[type=number],input[type=search]{-webkit-appearance:none;appearance:none;width:calc(100% - 16px);border:0px solid #000;line-height:36px;padding:0px 8px;border-radius:4px;background-color:var(--secondary-background);color:var(--foreground);margin-bottom:8px}input[type=search]::-webkit-search-cancel-button{-webkit-appearance:none;width:28px;height:28px;background-color:var(--foreground);-webkit-mask-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' height='28' viewBox='0 0 24 24' width='28'%3E%%3Cpath fill='%23ffffff' d='M22 3H7c-.69 0-1.23.35-1.59.88L0 12l5.41 8.11c.36.53.9.89 1.59.89h15c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-3 12.59L17.59 17 14 13.41 10.41 17 9 15.59 12.59 12 9 8.41 10.41 7 14 10.59 17.59 7 19 8.41 15.41 12 19 15.59z'/%3E3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' height='28' viewBox='0 0 24 24' width='28'%3E%%3Cpath fill='%23ffffff' d='M22 3H7c-.69 0-1.23.35-1.59.88L0 12l5.41 8.11c.36.53.9.89 1.59.89h15c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-3 12.59L17.59 17 14 13.41 10.41 17 9 15.59 12.59 12 9 8.41 10.41 7 14 10.59 17.59 7 19 8.41 15.41 12 19 15.59z'/%3E3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3C/svg%3E")}input[type=checkbox]{-webkit-appearance:none;appearance:none;background-color:none;border:2px solid gray;opacity:.5;border-radius:2px;padding:7px;margin:3px;display:inline-block;position:relative}input[type=checkbox]:checked{opacity:1;background-color:var(--accent-color);background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' height='18' viewBox='3 3 18 18' width='18'%3E%3Cpath fill='%23ffffff' d='M 10,17 5,12 6.41,10.59 10,14.17 17.59,6.58 19,8 Z'/%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3C/svg%3E");background-position:center center;border:0px solid var(--accent-color);border-radius:2px;padding:9px;margin:3px;color:var(--accent-text)}select{-webkit-appearance:none;appearance:none;width:100%;border:0px solid #000;line-height:36px;padding:0px 40px 0px 8px;border-radius:4px;background-color:var(--secondary-background);background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' height='24' viewBox='0 0 24 24' width='24'%3E%3Cpath style='fill%3A%23000000%3Bfill-opacity%3A0.25' d='M7 10l5 5 5-5z'/%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3C/svg%3E");background-repeat:no-repeat;background-size:24px;background-position:calc(100% - 8px) center;background-clip:border-box;color:var(--foreground);margin-bottom:8px}p{word-break:break-word}button{min-width:64px;color:var(--accent-text);position:relative;background-color:var(--accent-color);border:1px solid transparent;border-radius:4px;font-family:inherit;font-weight:600;font-size:14px;padding:0px 8px;margin-right:8px;height:36px;text-transform:uppercase;cursor:pointer;transition:transform 50ms ease-in-out,background-color 200ms ease}button[disabled]{background-color:var(--secondary-background);color:var(--foreground);opacity:.75}button.selective{background-color:var(--main-background);color:var(--foreground)}button.selective.active{background-color:var(--accent-color);color:var(--accent-text)}button.with_icon{display:flex;align-items:center}button.with_icon i{margin-left:8px}button.only_icon{min-width:24px;width:48px;margin:0px 0px 0px 8px;padding:0px 4px}button.only_icon i{padding:6px 0px}button:active{background-color:var(--accent-color);transform:scale(0.98)}button:hover{background:none;border:1px solid var(--accent-color)}img.rounded{border-radius:5px}img.circle{border-radius:50%}i.disabled{opacity:.5;cursor:default}i.explicit_icon{color:#ff382e;margin-right:.3125em;margin-left:-3px}i.explicit_icon.explicit_icon--right{margin-left:.3125em;margin-right:0px}span.tag{background-color:var(--tag-background);border-radius:2px;color:var(--tag-text);display:inline-block;font-size:10px;padding:3px 6px;text-transform:capitalize}a{color:#1e90ff}a.single-cover{position:relative;display:inline-block;color:#fff}a:visited{color:#1e90ff}.clickable{cursor:pointer !important}.table--tracklist .clickable:hover,.table--charts .clickable:hover{text-decoration:underline}.fixed_footer footer{position:sticky;display:flex;align-items:center;flex-direction:row;justify-content:flex-end;background-color:var(--main-background);bottom:0px;height:64px;width:100%;margin-top:24px}.fab{width:56px;height:56px;border-radius:28px;display:inline-block;background-color:var(--accent-color);color:var(--accent-text);cursor:pointer}.fab i{font-size:24px;padding:16px}.with_checkbox{display:flex;align-items:center}.with_checkbox [type=checkbox]{cursor:pointer}.with_checkbox .checkbox_text{margin-left:10px;cursor:pointer}.with_checkbox .checkbox_text::selection{background:none}.loading_placeholder{display:flex;justify-content:center;align-items:center;flex-direction:column;flex:1;height:100%}.loading_placeholder.loading_placeholder--hidden{display:none}.loading_placeholder__text{margin-bottom:20px}.loading_placeholder#search_placeholder{height:calc(100% - 93px)}.loading_placeholder#start_app_placeholder{position:absolute;top:0;left:0;width:100vw;height:100vh;background:rgba(0,0,0,.5);z-index:1000}.coverart{background-color:var(--secondary-background)}.cover_container{position:relative}.cover_container .coverart{opacity:1;display:block;width:100%;height:auto;transition:.5s ease;backface-visibility:hidden}.cover_container .download_overlay{transition:.5s ease;opacity:0;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);text-align:center;background-color:#000;border-radius:50%;min-width:32px;padding:0px;height:44px;border:0px}.cover_container .download_overlay i{color:#fff;padding:10px;cursor:pointer}.cover_container .download_overlay:focus{opacity:1}.cover_container:hover .coverart{opacity:.75}.cover_container:hover .download_overlay{opacity:1;border:0px}.inline-flex{display:flex;align-items:center}.inline-flex .right{margin-left:auto}.right{float:right}.hide{display:none !important}.changing-theme{transition:all 200ms ease-in-out}[v-cloak]{display:none}.table{width:100%;-webkit-border-horizontal-spacing:0px;-webkit-border-vertical-spacing:0px}.table tbody tr:not(.table__row-no-highlight):hover{background:var(--table-highlight);cursor:default}.table tr{background:var(--table-bg);transition:background-color 175ms ease-in-out}.table tr:nth-child(even){background:var(--table-zebra);transition:background-color 175ms ease-in-out}.table tr:not(:last-child){border-bottom:1px solid var(--table-highlight)}.table td,.table th{vertical-align:middle}.table th .sortable{-webkit-user-select:none;user-select:none}.table th .sort-asc::after,.table th .sort-desc::after{font-size:.7em;padding-left:3px;line-height:.7em}.table th .sort-asc::after{content:"▲"}.table th .sort-desc::after{content:"▼"}.table td{padding:7px 10px}.table td:first-child{padding:7px 10px 7px 20px}.table td:last-child{padding:7px 20px 7px 10px}.table td img{vertical-align:middle}.table--tracks{border-collapse:collapse}.table--tracks thead{border-bottom:2px solid var(--table-highlight)}.table--tracks th{padding-bottom:10px;height:45px}.table--tracks td{height:35px}.table--tracks td.breakline{word-break:break-word}.table--tracks tr:first-child td:first-child{border-top-left-radius:3px}.table--tracks tr:first-child td:last-child{border-top-right-radius:3px}.table--tracks tr:last-child td:first-child{border-bottom-left-radius:3px}.table--tracks tr:last-child td:last-child{border-bottom-right-radius:3px}.table--tracklist thead{border-bottom:2px solid var(--table-highlight);text-transform:capitalize}.table--tracklist th{height:45px;padding:7px 10px}.table--tracklist th:first-child{padding:7px 10px 7px 20px}.table--tracklist th:last-child{padding:7px 20px 7px 10px}.table--tracklist td{height:35px}.table--charts td{height:35px}.table .table__icon{box-sizing:content-box;width:32px}.table .table__icon--big{width:48px;text-align:center}.table .table__cell--x-small{width:.32%}.table .table__cell--small{width:3.2%}.table .table__cell--medium{width:28.7%}.table .table__cell--large{width:50%}.table .table__cell--left{text-align:left}.table .table__cell--center{text-align:center}.table .table__cell--right{text-align:right}.table .table__cell--download{cursor:pointer}.table .table__cell--download i.material-icons{transition:color 175ms ease-in-out}.table .table__cell--download:hover i.material-icons{color:var(--icon-hover)}.table .table__cell-content.table__cell-content--vertical-center{display:flex;align-items:center}.track_row>td>img{width:32px;height:32px}.track_row>td>a>img{width:56px;height:56px}.top-tracks-position{padding:12px;text-align:center;cursor:default}.page_heading{font-size:2.5rem;margin-bottom:35px}.page_heading--capitalize{text-transform:capitalize}.page_heading--uppercase{text-transform:uppercase}.section_heading{font-size:1.75rem;margin-bottom:25px}#about_tab p{margin-bottom:8px}#about_tab h3{margin:8px 0px}#about_tab hr{margin:12px 0px}.charts_grid .release .coverart{width:156px;height:156px}#download_tab_container{height:100%;background-color:var(--panels-background);color:var(--panels-text);display:block;flex-direction:column}#download_tab_container.tab_hidden{width:32px}#download_tab_container.tab_hidden #toggle_download_tab{margin-left:4px}#download_tab_container.tab_hidden #toggle_download_tab::before{font-family:"Material Icons";font-style:normal;font-weight:400;content:"chevron_left"}#download_tab_container.tab_hidden #download_tab_drag_handler{display:none}#download_tab_container.tab_hidden #queue_buttons{opacity:0;visibility:hidden}#download_tab_container.tab_hidden #download_list{display:none}#download_tab_container.tab_hidden #download_tab_label{opacity:1;visibility:visible}#download_tab_container.tab_hidden::after{content:attr(data-label);display:flex;align-items:center;text-transform:capitalize;writing-mode:vertical-rl;line-height:32px}#toggle_download_tab{width:25px;height:25px;margin-left:20px}#toggle_download_tab::before{font-family:"Material Icons";font-style:normal;font-weight:400;content:"chevron_right"}.download_bar_icon{cursor:pointer;font-size:24px;margin:4px}#download_list{width:100%;height:calc(100% - 32px);padding:0px 8px 0px 28px;overflow-y:scroll}#download_list>.download_object{padding-bottom:8px}#download_list>.download_object .download_info{display:flex;align-items:center}#download_list>.download_object .download_info img{width:75px;height:75px;display:inline-block;flex-shrink:0}#download_list>.download_object .download_info .download_line{display:block}#download_list>.download_object .download_info .download_slim_separator{display:none}#download_list>.download_object .download_info_data{width:100%;margin-left:8px}#download_list>.download_object .download_info_status{margin-left:8px;width:80px}#download_list.slim>.download_object .download_info{display:block}#download_list.slim>.download_object .download_info img{display:none}#download_list.slim>.download_object .download_info .download_line{display:inline-block}#download_list.slim>.download_object .download_info .download_slim_separator{display:inline-block}#download_list.slim>.download_object .download_info_data{width:calc(80% - 16px);display:inline-block;padding-left:0px}#download_list.slim>.download_object .download_info_status{width:20%;display:inline-block;float:right}#download_list::-webkit-scrollbar{width:10px}#download_list::-webkit-scrollbar-track{background:var(--panels-background)}#download_list::-webkit-scrollbar-thumb{background:var(--panels-scroll);border-radius:4px;width:6px;padding:0px 2px}.download_object>.download_bar{display:flex;align-items:center;height:24px}.download_object>.download_bar>.queue_icon{cursor:default;margin-left:8px}.download_object>.download_bar>.progress{margin:0px}#download_tab_container #queue_buttons{position:absolute;top:0;right:0;opacity:1;visibility:visible;transition:all 250ms ease-in-out}#download_tab_container #download_tab_label{opacity:0;visibility:hidden;transition:all 250ms ease-in-out}#download_tab_drag_handler{width:15px;height:100%;position:absolute;background-color:#333;cursor:ew-resize}.reload-button.reload-button--inline{display:inline-block}.reload-button.spin i{animation:spin 500ms infinite ease-out reverse}#home_not_logged_text{margin-bottom:15px}.home_section{border-top:1px solid var(--separator);padding-top:25px;padding-bottom:25px}#main_search .search_section{float:none;padding-top:20px;padding-bottom:20px}#main_search .search_section:not(:first-child){border-top:1px solid var(--separator)}#main_search .top_result_header{display:block;cursor:default;font-size:2rem;text-align:center}.search_header{display:inline-block;cursor:pointer;font-size:1.75rem;margin-bottom:25px;text-transform:capitalize}.search_header:not(.top_result_header){transition:color 200ms ease-in-out}.search_header:not(.top_result_header):hover{color:var(--accent-color)}.top_result{display:flex;align-items:center;flex-direction:column}.top_result>.cover_container{width:156px;height:156px}.top_result .info_box{display:flex;flex-direction:column;justify-content:center;align-items:center;margin-top:15px}.top_result .info_box .primary-text,.top_result .info_box .secondary-text{font-size:18px;text-align:center}.top_result .info_box .primary-text{margin-bottom:5px}.top_result .info_box .secondary-text{margin-bottom:10px}.top_result .info_box .tag{width:40px;text-align:center}.release .primary-text,.release .secondary-text{margin:0px;margin-bottom:4px}.release .secondary-text{opacity:.75;font-size:14px}.release .secondary-text .material-icons{font-size:17px !important;margin-left:4px}.release_grid{display:grid;grid-template-columns:repeat(auto-fill, minmax(156px, 1fr));grid-gap:1rem}.release_grid.firstrow_only{grid-template-rows:1fr;grid-auto-rows:0;grid-row-gap:0px;overflow-y:hidden}#settings_picture{width:125px;height:125px}#log_info{display:flex;flex-direction:column;align-items:center}#open_login_prompt{margin:8px 0px}.inline-flex input{margin-bottom:0px}#spotify_icon{width:24px;height:24px;fill:#1db954;margin-right:15px}.settings-group{display:flex;flex-direction:column;justify-content:center;border-top:1px solid var(--separator);padding-top:20px;padding-bottom:20px}.settings-group>*{margin-bottom:15px}.settings-group__header{font-size:1.5rem;margin-bottom:25px}.settings-group__header.settings-group__header--with-icon{display:inline-flex;align-items:center}.settings-group__header.settings-group__header--with-icon i.material-icons{margin-right:15px}.settings-container{display:flex}.settings-container__half{width:50%}.settings-container__third{width:33%}.settings-container__third--only-checkbox{display:flex;flex-direction:column;justify-content:center;align-items:start}.settings-container__half>*,.settings-container__third>*{margin-bottom:15px}.input_group{margin-bottom:25px}.input_group .input_group_text{margin-bottom:7px}.with_checkbox+.input_group{margin-top:10px}.main_tabcontent h1{margin-bottom:12px}.tab{margin:16px 0px}.tab button{background-color:var(--main-background);color:var(--foreground)}.tab button.active{background-color:var(--accent-color)}.release{display:inline-block;width:156px}.release .cover_container{width:156px;height:156px;margin-bottom:10px}.section-tabs{list-style-type:none;display:flex;margin:16px 0 24px 0;cursor:pointer}.section-tabs__tab{flex:1;font-size:1.2rem;padding:.8em;border-top:3px solid var(--foreground);text-align:center;text-transform:capitalize}.section-tabs__tab.active{color:var(--accent-color);border-top:3px solid var(--accent-color)}#search .search__icon i::selection{background:none}#container{--container-width: 95%}@media only screen and (min-width: 601px){#container{--container-width: 85%}}@media only screen and (min-width: 993px){#container{--container-width: 70%}}.smallmodal-content{--modal-content-width: 95%}@media only screen and (min-width: 601px){.smallmodal-content{--modal-content-width: 85%}}@media only screen and (min-width: 993px){.smallmodal-content{--modal-content-width: 70%}}.progress{position:relative;height:4px;display:block;width:100%;background-color:var(--secondary-background);border-radius:2px;margin:.5rem 0 1rem 0;overflow:hidden}.progress .determinate{position:absolute;top:0;left:0;bottom:0;background-color:var(--accent-color);-webkit-transition:width .3s linear;transition:width .3s linear}.progress .converting{background-color:var(--secondary-color);-webkit-transition:none !important;transition:none !important}.progress .indeterminate{background-color:var(--accent-color)}.progress .indeterminate::before{content:"";position:absolute;background-color:inherit;top:0;left:0;bottom:0;will-change:left,right;-webkit-animation:indeterminate 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite;animation:indeterminate 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite}.progress .indeterminate::after{content:"";position:absolute;background-color:inherit;top:0;left:0;bottom:0;will-change:left,right;-webkit-animation:indeterminate-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite;animation:indeterminate-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite;-webkit-animation-delay:1.15s;animation-delay:1.15s}#sidebar{display:flex;flex-direction:column;width:48px;height:100%;position:absolute;top:0;left:0;background-color:var(--panels-background);color:var(--panels-text);transition:width 125ms ease-in-out 75ms;z-index:999}#sidebar:hover{width:200px}#sidebar .main_tablinks{transition:all 500ms;text-decoration:none;color:inherit}#sidebar .main_tablinks.active{background-color:var(--accent-color)}#sidebar .main_tablinks:not(#theme_selector){display:flex;align-items:center;height:55px;cursor:pointer}#sidebar .main_tablinks:not(#theme_selector):hover{background-color:var(--sidebar-link-bg)}#sidebar .main_tablinks:not(#theme_selector):hover .side_icon{color:var(--accent-color)}#sidebar .main_tablinks_text{margin-left:20px;opacity:0;overflow:hidden;text-transform:capitalize;letter-spacing:1.3px;white-space:nowrap;transition:all 50ms ease-in-out 200ms}#sidebar .side_icon{font-size:30px;padding:9px;transition:all 500ms}#sidebar .side_icon--theme{cursor:default}#sidebar .side_icon::selection{background:none}#sidebar:hover .main_tablinks:hover{background:var(--sidebar-link-bg-20);filter:grayscale(0) opacity(1)}#sidebar:hover .main_tablinks.active{background:var(--sidebar-link-bg);filter:grayscale(1)}html[data-theme=purple] #sidebar:hover .main_tablinks.active{background:var(--sidebar-link-bg-20);filter:grayscale(0)}#sidebar:hover .main_tablinks.active:hover{background:var(--sidebar-link-bg-20);filter:grayscale(0)}#sidebar:hover .main_tablinks_text{opacity:1}#sidebar:hover #theme_togglers{opacity:1}#sidebar #theme_selector{margin-top:20px;display:flex;height:50px}#sidebar #theme_togglers{position:relative;display:flex;justify-content:space-evenly;align-items:center;width:100%;opacity:0;transition:all 125ms ease-in-out 75ms}#sidebar .theme_toggler{width:25px;height:25px;border-radius:1000px;border:1px solid var(--separator);cursor:pointer;transition:border 200ms ease-in-out}#sidebar .theme_toggler--active{border-width:3px}#sidebar .theme_toggler--light{background:#fff}#sidebar .theme_toggler--dark{background:#141414}#sidebar .theme_toggler--purple{background:#460eaf}.image_header header{background-position:0% 35%;background-size:cover;padding:220px 24px 8px;border-radius:8px 8px 0px 0px}.image_header header h1,.image_header header h2{margin:0px}.image_header header h2{font-size:18px;margin-bottom:12px}.preview_controls{opacity:0;display:block;background:rgba(0,0,0,.5);width:56px;height:56px;text-align:center;line-height:56px;position:absolute;border-radius:5px;top:0;right:0;transition:opacity 200ms ease-in-out}.preview_playlist_controls{cursor:pointer}.toast-icon{display:inline-block;margin-right:8px}.circle-loader{display:inline-block;border:2px solid var(--accent-color);border-radius:50%;border-bottom:2px solid var(--secondary-background);width:16px;height:16px;animation:spin 1s linear infinite}.toastify{display:flex;align-items:center;box-shadow:0 3px 6px -1px rgba(0,0,0,.12),0 10px 36px -4px rgba(0,0,0,.3);background:var(--toast-background);color:var(--toast-text)}.toastify .circle-loader{border-bottom-color:var(--toast-secondary)} diff --git a/public/js/bundle.js b/public/js/bundle.js index d5eddae..b9487b4 100644 --- a/public/js/bundle.js +++ b/public/js/bundle.js @@ -3,12 +3,13 @@ * (c) 2014-2020 Evan You * Released under the MIT License. */ -var t=Object.freeze({});function e(t){return null==t}function n(t){return null!=t}function a(t){return!0===t}function i(t){return"string"==typeof t||"number"==typeof t||"symbol"==typeof t||"boolean"==typeof t}function r(t){return null!==t&&"object"==typeof t}var s=Object.prototype.toString;function o(t){return"[object Object]"===s.call(t)}function l(t){var e=parseFloat(String(t));return e>=0&&Math.floor(e)===e&&isFinite(t)}function c(t){return n(t)&&"function"==typeof t.then&&"function"==typeof t.catch}function d(t){return null==t?"":Array.isArray(t)||o(t)&&t.toString===s?JSON.stringify(t,null,2):String(t)}function u(t){var e=parseFloat(t);return isNaN(e)?t:e}function p(t,e){for(var n=Object.create(null),a=t.split(","),i=0;i-1)return t.splice(n,1)}}var g=Object.prototype.hasOwnProperty;function v(t,e){return g.call(t,e)}function b(t){var e=Object.create(null);return function(n){return e[n]||(e[n]=t(n))}}var y=/-(\w)/g,_=b((function(t){return t.replace(y,(function(t,e){return e?e.toUpperCase():""}))})),k=b((function(t){return t.charAt(0).toUpperCase()+t.slice(1)})),A=/\B([A-Z])/g,w=b((function(t){return t.replace(A,"-$1").toLowerCase()}));var C=Function.prototype.bind?function(t,e){return t.bind(e)}:function(t,e){function n(n){var a=arguments.length;return a?a>1?t.apply(e,arguments):t.call(e,n):t.call(e)}return n._length=t.length,n};function x(t,e){e=e||0;for(var n=t.length-e,a=new Array(n);n--;)a[n]=t[n+e];return a}function T(t,e){for(var n in e)t[n]=e[n];return t}function S(t){for(var e={},n=0;n0,Y=H&&H.indexOf("edge/")>0,J=(H&&H.indexOf("android"),H&&/iphone|ipad|ipod|ios/.test(H)||"ios"===W),Z=(H&&/chrome\/\d+/.test(H),H&&/phantomjs/.test(H),H&&H.match(/firefox\/(\d+)/)),X={}.watch,tt=!1;if(V)try{var et={};Object.defineProperty(et,"passive",{get:function(){tt=!0}}),window.addEventListener("test-passive",null,et)}catch(t){}var nt=function(){return void 0===U&&(U=!V&&!G&&"undefined"!=typeof global&&(global.process&&"server"===global.process.env.VUE_ENV)),U},at=V&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__;function it(t){return"function"==typeof t&&/native code/.test(t.toString())}var rt,st="undefined"!=typeof Symbol&&it(Symbol)&&"undefined"!=typeof Reflect&&it(Reflect.ownKeys);rt="undefined"!=typeof Set&&it(Set)?Set:function(){function t(){this.set=Object.create(null)}return t.prototype.has=function(t){return!0===this.set[t]},t.prototype.add=function(t){this.set[t]=!0},t.prototype.clear=function(){this.set=Object.create(null)},t}();var ot=z,lt=0,ct=function(){this.id=lt++,this.subs=[]};ct.prototype.addSub=function(t){this.subs.push(t)},ct.prototype.removeSub=function(t){f(this.subs,t)},ct.prototype.depend=function(){ct.target&&ct.target.addDep(this)},ct.prototype.notify=function(){for(var t=this.subs.slice(),e=0,n=t.length;e-1)if(r&&!v(i,"default"))s=!1;else if(""===s||s===w(t)){var l=Ot(String,i.type);(l<0||o0&&(ce((l=t(l,(s||"")+"_"+o))[0])&&ce(d)&&(u[c]=gt(d.text+l[0].text),l.shift()),u.push.apply(u,l)):i(l)?ce(d)?u[c]=gt(d.text+l):""!==l&&u.push(gt(l)):ce(l)&&ce(d)?u[c]=gt(d.text+l.text):(a(r._isVList)&&n(l.tag)&&e(l.key)&&n(s)&&(l.key="__vlist"+s+"_"+o+"__"),u.push(l)));return u}(t):void 0}function ce(t){return n(t)&&n(t.text)&&!1===t.isComment}function de(t,e){if(t){for(var n=Object.create(null),a=st?Reflect.ownKeys(t):Object.keys(t),i=0;i0,s=e?!!e.$stable:!r,o=e&&e.$key;if(e){if(e._normalized)return e._normalized;if(s&&a&&a!==t&&o===a.$key&&!r&&!a.$hasNormal)return a;for(var l in i={},e)e[l]&&"$"!==l[0]&&(i[l]=me(n,l,e[l]))}else i={};for(var c in n)c in i||(i[c]=fe(n,c));return e&&Object.isExtensible(e)&&(e._normalized=i),O(i,"$stable",s),O(i,"$key",o),O(i,"$hasNormal",r),i}function me(t,e,n){var a=function(){var t=arguments.length?n.apply(null,arguments):n({});return(t=t&&"object"==typeof t&&!Array.isArray(t)?[t]:le(t))&&(0===t.length||1===t.length&&t[0].isComment)?void 0:t};return n.proxy&&Object.defineProperty(t,e,{get:a,enumerable:!0,configurable:!0}),a}function fe(t,e){return function(){return t[e]}}function ge(t,e){var a,i,s,o,l;if(Array.isArray(t)||"string"==typeof t)for(a=new Array(t.length),i=0,s=t.length;idocument.createEvent("Event").timeStamp&&(on=function(){return ln.now()})}function cn(){var t,e;for(sn=on(),an=!0,Xe.sort((function(t,e){return t.id-e.id})),rn=0;rnrn&&Xe[n].id>t.id;)n--;Xe.splice(n+1,0,t)}else Xe.push(t);nn||(nn=!0,te(cn))}}(this)},un.prototype.run=function(){if(this.active){var t=this.get();if(t!==this.value||r(t)||this.deep){var e=this.value;if(this.value=t,this.user)try{this.cb.call(this.vm,t,e)}catch(t){Bt(t,this.vm,'callback for watcher "'+this.expression+'"')}else this.cb.call(this.vm,t,e)}}},un.prototype.evaluate=function(){this.value=this.get(),this.dirty=!1},un.prototype.depend=function(){for(var t=this.deps.length;t--;)this.deps[t].depend()},un.prototype.teardown=function(){if(this.active){this.vm._isBeingDestroyed||f(this.vm._watchers,this);for(var t=this.deps.length;t--;)this.deps[t].removeSub(this);this.active=!1}};var pn={enumerable:!0,configurable:!0,get:z,set:z};function hn(t,e,n){pn.get=function(){return this[e][n]},pn.set=function(t){this[e][n]=t},Object.defineProperty(t,n,pn)}function mn(t){t._watchers=[];var e=t.$options;e.props&&function(t,e){var n=t.$options.propsData||{},a=t._props={},i=t.$options._propKeys=[];t.$parent&&At(!1);var r=function(r){i.push(r);var s=Ft(r,e,n,t);xt(a,r,s),r in t||hn(t,"_props",r)};for(var s in e)r(s);At(!0)}(t,e.props),e.methods&&function(t,e){t.$options.props;for(var n in e)t[n]="function"!=typeof e[n]?z:C(e[n],t)}(t,e.methods),e.data?function(t){var e=t.$options.data;o(e=t._data="function"==typeof e?function(t,e){ut();try{return t.call(e,e)}catch(t){return Bt(t,e,"data()"),{}}finally{pt()}}(e,t):e||{})||(e={});var n=Object.keys(e),a=t.$options.props,i=(t.$options.methods,n.length);for(;i--;){var r=n[i];a&&v(a,r)||j(r)||hn(t,"_data",r)}Ct(e,!0)}(t):Ct(t._data={},!0),e.computed&&function(t,e){var n=t._computedWatchers=Object.create(null),a=nt();for(var i in e){var r=e[i],s="function"==typeof r?r:r.get;a||(n[i]=new un(t,s||z,z,fn)),i in t||gn(t,i,r)}}(t,e.computed),e.watch&&e.watch!==X&&function(t,e){for(var n in e){var a=e[n];if(Array.isArray(a))for(var i=0;i-1:"string"==typeof t?t.split(",").indexOf(e)>-1:(n=t,"[object RegExp]"===s.call(n)&&t.test(e));var n}function Tn(t,e){var n=t.cache,a=t.keys,i=t._vnode;for(var r in n){var s=n[r];if(s){var o=Cn(s.componentOptions);o&&!e(o)&&Sn(n,r,a,i)}}}function Sn(t,e,n,a){var i=t[e];!i||a&&i.tag===a.tag||i.componentInstance.$destroy(),t[e]=null,f(n,e)}!function(e){e.prototype._init=function(e){var n=this;n._uid=_n++,n._isVue=!0,e&&e._isComponent?function(t,e){var n=t.$options=Object.create(t.constructor.options),a=e._parentVnode;n.parent=e.parent,n._parentVnode=a;var i=a.componentOptions;n.propsData=i.propsData,n._parentListeners=i.listeners,n._renderChildren=i.children,n._componentTag=i.tag,e.render&&(n.render=e.render,n.staticRenderFns=e.staticRenderFns)}(n,e):n.$options=Rt(kn(n.constructor),e||{},n),n._renderProxy=n,n._self=n,function(t){var e=t.$options,n=e.parent;if(n&&!e.abstract){for(;n.$options.abstract&&n.$parent;)n=n.$parent;n.$children.push(t)}t.$parent=n,t.$root=n?n.$root:t,t.$children=[],t.$refs={},t._watcher=null,t._inactive=null,t._directInactive=!1,t._isMounted=!1,t._isDestroyed=!1,t._isBeingDestroyed=!1}(n),function(t){t._events=Object.create(null),t._hasHookEvent=!1;var e=t.$options._parentListeners;e&&He(t,e)}(n),function(e){e._vnode=null,e._staticTrees=null;var n=e.$options,a=e.$vnode=n._parentVnode,i=a&&a.context;e.$slots=ue(n._renderChildren,i),e.$scopedSlots=t,e._c=function(t,n,a,i){return Ee(e,t,n,a,i,!1)},e.$createElement=function(t,n,a,i){return Ee(e,t,n,a,i,!0)};var r=a&&a.data;xt(e,"$attrs",r&&r.attrs||t,null,!0),xt(e,"$listeners",n._parentListeners||t,null,!0)}(n),Ze(n,"beforeCreate"),function(t){var e=de(t.$options.inject,t);e&&(At(!1),Object.keys(e).forEach((function(n){xt(t,n,e[n])})),At(!0))}(n),mn(n),function(t){var e=t.$options.provide;e&&(t._provided="function"==typeof e?e.call(t):e)}(n),Ze(n,"created"),n.$options.el&&n.$mount(n.$options.el)}}(An),function(t){var e={get:function(){return this._data}},n={get:function(){return this._props}};Object.defineProperty(t.prototype,"$data",e),Object.defineProperty(t.prototype,"$props",n),t.prototype.$set=Tt,t.prototype.$delete=St,t.prototype.$watch=function(t,e,n){if(o(e))return yn(this,t,e,n);(n=n||{}).user=!0;var a=new un(this,t,e,n);if(n.immediate)try{e.call(this,a.value)}catch(t){Bt(t,this,'callback for immediate watcher "'+a.expression+'"')}return function(){a.teardown()}}}(An),function(t){var e=/^hook:/;t.prototype.$on=function(t,n){var a=this;if(Array.isArray(t))for(var i=0,r=t.length;i1?x(n):n;for(var a=x(arguments,1),i='event handler for "'+t+'"',r=0,s=n.length;rparseInt(this.max)&&Sn(s,o[0],o,this._vnode)),e.data.keepAlive=!0}return e||t&&t[0]}}};!function(t){var e={get:function(){return F}};Object.defineProperty(t,"config",e),t.util={warn:ot,extend:T,mergeOptions:Rt,defineReactive:xt},t.set=Tt,t.delete=St,t.nextTick=te,t.observable=function(t){return Ct(t),t},t.options=Object.create(null),R.forEach((function(e){t.options[e+"s"]=Object.create(null)})),t.options._base=t,T(t.options.components,Mn),function(t){t.use=function(t){var e=this._installedPlugins||(this._installedPlugins=[]);if(e.indexOf(t)>-1)return this;var n=x(arguments,1);return n.unshift(this),"function"==typeof t.install?t.install.apply(t,n):"function"==typeof t&&t.apply(null,n),e.push(t),this}}(t),function(t){t.mixin=function(t){return this.options=Rt(this.options,t),this}}(t),wn(t),function(t){R.forEach((function(e){t[e]=function(t,n){return n?("component"===e&&o(n)&&(n.name=n.name||t,n=this.options._base.extend(n)),"directive"===e&&"function"==typeof n&&(n={bind:n,update:n}),this.options[e+"s"][t]=n,n):this.options[e+"s"][t]}}))}(t)}(An),Object.defineProperty(An.prototype,"$isServer",{get:nt}),Object.defineProperty(An.prototype,"$ssrContext",{get:function(){return this.$vnode&&this.$vnode.ssrContext}}),Object.defineProperty(An,"FunctionalRenderContext",{value:De}),An.version="2.6.12";var $n=p("style,class"),Dn=p("input,textarea,option,select,progress"),Pn=function(t,e,n){return"value"===n&&Dn(t)&&"button"!==e||"selected"===n&&"option"===t||"checked"===n&&"input"===t||"muted"===n&&"video"===t},Nn=p("contenteditable,draggable,spellcheck"),Ln=p("events,caret,typing,plaintext-only"),Rn=p("allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,default,defaultchecked,defaultmuted,defaultselected,defer,disabled,enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,required,reversed,scoped,seamless,selected,sortable,translate,truespeed,typemustmatch,visible"),In="http://www.w3.org/1999/xlink",Fn=function(t){return":"===t.charAt(5)&&"xlink"===t.slice(0,5)},En=function(t){return Fn(t)?t.slice(6,t.length):""},jn=function(t){return null==t||!1===t};function On(t){for(var e=t.data,a=t,i=t;n(i.componentInstance);)(i=i.componentInstance._vnode)&&i.data&&(e=Bn(i.data,e));for(;n(a=a.parent);)a&&a.data&&(e=Bn(e,a.data));return function(t,e){if(n(t)||n(e))return Un(t,qn(e));return""}(e.staticClass,e.class)}function Bn(t,e){return{staticClass:Un(t.staticClass,e.staticClass),class:n(t.class)?[t.class,e.class]:e.class}}function Un(t,e){return t?e?t+" "+e:t:e||""}function qn(t){return Array.isArray(t)?function(t){for(var e,a="",i=0,r=t.length;i-1?ma(t,e,n):Rn(e)?jn(n)?t.removeAttribute(e):(n="allowfullscreen"===e&&"EMBED"===t.tagName?"true":e,t.setAttribute(e,n)):Nn(e)?t.setAttribute(e,function(t,e){return jn(e)||"false"===e?"false":"contenteditable"===t&&Ln(e)?e:"true"}(e,n)):Fn(e)?jn(n)?t.removeAttributeNS(In,En(e)):t.setAttributeNS(In,e,n):ma(t,e,n)}function ma(t,e,n){if(jn(n))t.removeAttribute(e);else{if(Q&&!K&&"TEXTAREA"===t.tagName&&"placeholder"===e&&""!==n&&!t.__ieph){var a=function(e){e.stopImmediatePropagation(),t.removeEventListener("input",a)};t.addEventListener("input",a),t.__ieph=!0}t.setAttribute(e,n)}}var fa={create:pa,update:pa};function ga(t,a){var i=a.elm,r=a.data,s=t.data;if(!(e(r.staticClass)&&e(r.class)&&(e(s)||e(s.staticClass)&&e(s.class)))){var o=On(a),l=i._transitionClasses;n(l)&&(o=Un(o,qn(l))),o!==i._prevClass&&(i.setAttribute("class",o),i._prevClass=o)}}var va,ba,ya,_a,ka,Aa,wa={create:ga,update:ga},Ca=/[\w).+\-_$\]]/;function xa(t){var e,n,a,i,r,s=!1,o=!1,l=!1,c=!1,d=0,u=0,p=0,h=0;for(a=0;a=0&&" "===(f=t.charAt(m));m--);f&&Ca.test(f)||(c=!0)}}else void 0===i?(h=a+1,i=t.slice(0,a).trim()):g();function g(){(r||(r=[])).push(t.slice(h,a).trim()),h=a+1}if(void 0===i?i=t.slice(0,a).trim():0!==h&&g(),r)for(a=0;a-1?{exp:t.slice(0,_a),key:'"'+t.slice(_a+1)+'"'}:{exp:t,key:null};ba=t,_a=ka=Aa=0;for(;!Ua();)qa(ya=Ba())?Ga(ya):91===ya&&Va(ya);return{exp:t.slice(0,ka),key:t.slice(ka+1,Aa)}}(t);return null===n.key?t+"="+e:"$set("+n.exp+", "+n.key+", "+e+")"}function Ba(){return ba.charCodeAt(++_a)}function Ua(){return _a>=va}function qa(t){return 34===t||39===t}function Va(t){var e=1;for(ka=_a;!Ua();)if(qa(t=Ba()))Ga(t);else if(91===t&&e++,93===t&&e--,0===e){Aa=_a;break}}function Ga(t){for(var e=t;!Ua()&&(t=Ba())!==e;);}var Wa;function Ha(t,e,n){var a=Wa;return function i(){var r=e.apply(null,arguments);null!==r&&Ya(t,i,n,a)}}var Qa=Wt&&!(Z&&Number(Z[1])<=53);function Ka(t,e,n,a){if(Qa){var i=sn,r=e;e=r._wrapper=function(t){if(t.target===t.currentTarget||t.timeStamp>=i||t.timeStamp<=0||t.target.ownerDocument!==document)return r.apply(this,arguments)}}Wa.addEventListener(t,e,tt?{capture:n,passive:a}:n)}function Ya(t,e,n,a){(a||Wa).removeEventListener(t,e._wrapper||e,n)}function Ja(t,a){if(!e(t.data.on)||!e(a.data.on)){var i=a.data.on||{},r=t.data.on||{};Wa=a.elm,function(t){if(n(t.__r)){var e=Q?"change":"input";t[e]=[].concat(t.__r,t[e]||[]),delete t.__r}n(t.__c)&&(t.change=[].concat(t.__c,t.change||[]),delete t.__c)}(i),re(i,r,Ka,Ya,Ha,a.context),Wa=void 0}}var Za,Xa={create:Ja,update:Ja};function ti(t,a){if(!e(t.data.domProps)||!e(a.data.domProps)){var i,r,s=a.elm,o=t.data.domProps||{},l=a.data.domProps||{};for(i in n(l.__ob__)&&(l=a.data.domProps=T({},l)),o)i in l||(s[i]="");for(i in l){if(r=l[i],"textContent"===i||"innerHTML"===i){if(a.children&&(a.children.length=0),r===o[i])continue;1===s.childNodes.length&&s.removeChild(s.childNodes[0])}if("value"===i&&"PROGRESS"!==s.tagName){s._value=r;var c=e(r)?"":String(r);ei(s,c)&&(s.value=c)}else if("innerHTML"===i&&Wn(s.tagName)&&e(s.innerHTML)){(Za=Za||document.createElement("div")).innerHTML=""+r+"";for(var d=Za.firstChild;s.firstChild;)s.removeChild(s.firstChild);for(;d.firstChild;)s.appendChild(d.firstChild)}else if(r!==o[i])try{s[i]=r}catch(t){}}}}function ei(t,e){return!t.composing&&("OPTION"===t.tagName||function(t,e){var n=!0;try{n=document.activeElement!==t}catch(t){}return n&&t.value!==e}(t,e)||function(t,e){var a=t.value,i=t._vModifiers;if(n(i)){if(i.number)return u(a)!==u(e);if(i.trim)return a.trim()!==e.trim()}return a!==e}(t,e))}var ni={create:ti,update:ti},ai=b((function(t){var e={},n=/:(.+)/;return t.split(/;(?![^(]*\))/g).forEach((function(t){if(t){var a=t.split(n);a.length>1&&(e[a[0].trim()]=a[1].trim())}})),e}));function ii(t){var e=ri(t.style);return t.staticStyle?T(t.staticStyle,e):e}function ri(t){return Array.isArray(t)?S(t):"string"==typeof t?ai(t):t}var si,oi=/^--/,li=/\s*!important$/,ci=function(t,e,n){if(oi.test(e))t.style.setProperty(e,n);else if(li.test(n))t.style.setProperty(w(e),n.replace(li,""),"important");else{var a=ui(e);if(Array.isArray(n))for(var i=0,r=n.length;i-1?e.split(mi).forEach((function(e){return t.classList.add(e)})):t.classList.add(e);else{var n=" "+(t.getAttribute("class")||"")+" ";n.indexOf(" "+e+" ")<0&&t.setAttribute("class",(n+e).trim())}}function gi(t,e){if(e&&(e=e.trim()))if(t.classList)e.indexOf(" ")>-1?e.split(mi).forEach((function(e){return t.classList.remove(e)})):t.classList.remove(e),t.classList.length||t.removeAttribute("class");else{for(var n=" "+(t.getAttribute("class")||"")+" ",a=" "+e+" ";n.indexOf(a)>=0;)n=n.replace(a," ");(n=n.trim())?t.setAttribute("class",n):t.removeAttribute("class")}}function vi(t){if(t){if("object"==typeof t){var e={};return!1!==t.css&&T(e,bi(t.name||"v")),T(e,t),e}return"string"==typeof t?bi(t):void 0}}var bi=b((function(t){return{enterClass:t+"-enter",enterToClass:t+"-enter-to",enterActiveClass:t+"-enter-active",leaveClass:t+"-leave",leaveToClass:t+"-leave-to",leaveActiveClass:t+"-leave-active"}})),yi=V&&!K,_i="transition",ki="transitionend",Ai="animation",wi="animationend";yi&&(void 0===window.ontransitionend&&void 0!==window.onwebkittransitionend&&(_i="WebkitTransition",ki="webkitTransitionEnd"),void 0===window.onanimationend&&void 0!==window.onwebkitanimationend&&(Ai="WebkitAnimation",wi="webkitAnimationEnd"));var Ci=V?window.requestAnimationFrame?window.requestAnimationFrame.bind(window):setTimeout:function(t){return t()};function xi(t){Ci((function(){Ci(t)}))}function Ti(t,e){var n=t._transitionClasses||(t._transitionClasses=[]);n.indexOf(e)<0&&(n.push(e),fi(t,e))}function Si(t,e){t._transitionClasses&&f(t._transitionClasses,e),gi(t,e)}function zi(t,e,n){var a=$i(t,e),i=a.type,r=a.timeout,s=a.propCount;if(!i)return n();var o="transition"===i?ki:wi,l=0,c=function(){t.removeEventListener(o,d),n()},d=function(e){e.target===t&&++l>=s&&c()};setTimeout((function(){l0&&(n="transition",d=s,u=r.length):"animation"===e?c>0&&(n="animation",d=c,u=l.length):u=(n=(d=Math.max(s,c))>0?s>c?"transition":"animation":null)?"transition"===n?r.length:l.length:0,{type:n,timeout:d,propCount:u,hasTransform:"transition"===n&&Mi.test(a[_i+"Property"])}}function Di(t,e){for(;t.length1}function Fi(t,e){!0!==e.data.show&&Ni(e)}var Ei=function(t){var r,s,o={},l=t.modules,c=t.nodeOps;for(r=0;rm?y(t,e(i[v+1])?null:i[v+1].elm,i,h,v,r):h>v&&k(a,p,m)}(p,f,v,r,d):n(v)?(n(t.text)&&c.setTextContent(p,""),y(p,null,v,0,v.length-1,r)):n(f)?k(f,0,f.length-1):n(t.text)&&c.setTextContent(p,""):t.text!==i.text&&c.setTextContent(p,i.text),n(m)&&n(h=m.hook)&&n(h=h.postpatch)&&h(t,i)}}}function x(t,e,i){if(a(i)&&n(t.parent))t.parent.data.pendingInsert=e;else for(var r=0;r-1,s.selected!==r&&(s.selected=r);else if(P(qi(s),a))return void(t.selectedIndex!==o&&(t.selectedIndex=o));i||(t.selectedIndex=-1)}}function Ui(t,e){return e.every((function(e){return!P(e,t)}))}function qi(t){return"_value"in t?t._value:t.value}function Vi(t){t.target.composing=!0}function Gi(t){t.target.composing&&(t.target.composing=!1,Wi(t.target,"input"))}function Wi(t,e){var n=document.createEvent("HTMLEvents");n.initEvent(e,!0,!0),t.dispatchEvent(n)}function Hi(t){return!t.componentInstance||t.data&&t.data.transition?t:Hi(t.componentInstance._vnode)}var Qi={model:ji,show:{bind:function(t,e,n){var a=e.value,i=(n=Hi(n)).data&&n.data.transition,r=t.__vOriginalDisplay="none"===t.style.display?"":t.style.display;a&&i?(n.data.show=!0,Ni(n,(function(){t.style.display=r}))):t.style.display=a?r:"none"},update:function(t,e,n){var a=e.value;!a!=!e.oldValue&&((n=Hi(n)).data&&n.data.transition?(n.data.show=!0,a?Ni(n,(function(){t.style.display=t.__vOriginalDisplay})):Li(n,(function(){t.style.display="none"}))):t.style.display=a?t.__vOriginalDisplay:"none")},unbind:function(t,e,n,a,i){i||(t.style.display=t.__vOriginalDisplay)}}},Ki={name:String,appear:Boolean,css:Boolean,mode:String,type:String,enterClass:String,leaveClass:String,enterToClass:String,leaveToClass:String,enterActiveClass:String,leaveActiveClass:String,appearClass:String,appearActiveClass:String,appearToClass:String,duration:[Number,String,Object]};function Yi(t){var e=t&&t.componentOptions;return e&&e.Ctor.options.abstract?Yi(qe(e.children)):t}function Ji(t){var e={},n=t.$options;for(var a in n.propsData)e[a]=t[a];var i=n._parentListeners;for(var r in i)e[_(r)]=i[r];return e}function Zi(t,e){if(/\d-keep-alive$/.test(e.tag))return t("keep-alive",{props:e.componentOptions.propsData})}var Xi=function(t){return t.tag||Ue(t)},tr=function(t){return"show"===t.name},er={name:"transition",props:Ki,abstract:!0,render:function(t){var e=this,n=this.$slots.default;if(n&&(n=n.filter(Xi)).length){var a=this.mode,r=n[0];if(function(t){for(;t=t.parent;)if(t.data.transition)return!0}(this.$vnode))return r;var s=Yi(r);if(!s)return r;if(this._leaving)return Zi(t,r);var o="__transition-"+this._uid+"-";s.key=null==s.key?s.isComment?o+"comment":o+s.tag:i(s.key)?0===String(s.key).indexOf(o)?s.key:o+s.key:s.key;var l=(s.data||(s.data={})).transition=Ji(this),c=this._vnode,d=Yi(c);if(s.data.directives&&s.data.directives.some(tr)&&(s.data.show=!0),d&&d.data&&!function(t,e){return e.key===t.key&&e.tag===t.tag}(s,d)&&!Ue(d)&&(!d.componentInstance||!d.componentInstance._vnode.isComment)){var u=d.data.transition=T({},l);if("out-in"===a)return this._leaving=!0,se(u,"afterLeave",(function(){e._leaving=!1,e.$forceUpdate()})),Zi(t,r);if("in-out"===a){if(Ue(s))return c;var p,h=function(){p()};se(l,"afterEnter",h),se(l,"enterCancelled",h),se(u,"delayLeave",(function(t){p=t}))}}return r}}},nr=T({tag:String,moveClass:String},Ki);function ar(t){t.elm._moveCb&&t.elm._moveCb(),t.elm._enterCb&&t.elm._enterCb()}function ir(t){t.data.newPos=t.elm.getBoundingClientRect()}function rr(t){var e=t.data.pos,n=t.data.newPos,a=e.left-n.left,i=e.top-n.top;if(a||i){t.data.moved=!0;var r=t.elm.style;r.transform=r.WebkitTransform="translate("+a+"px,"+i+"px)",r.transitionDuration="0s"}}delete nr.mode;var sr={Transition:er,TransitionGroup:{props:nr,beforeMount:function(){var t=this,e=this._update;this._update=function(n,a){var i=Ke(t);t.__patch__(t._vnode,t.kept,!1,!0),t._vnode=t.kept,i(),e.call(t,n,a)}},render:function(t){for(var e=this.tag||this.$vnode.data.tag||"span",n=Object.create(null),a=this.prevChildren=this.children,i=this.$slots.default||[],r=this.children=[],s=Ji(this),o=0;o-1?Kn[t]=e.constructor===window.HTMLUnknownElement||e.constructor===window.HTMLElement:Kn[t]=/HTMLUnknownElement/.test(e.toString())},T(An.options.directives,Qi),T(An.options.components,sr),An.prototype.__patch__=V?Ei:z,An.prototype.$mount=function(t,e){return function(t,e,n){var a;return t.$el=e,t.$options.render||(t.$options.render=ft),Ze(t,"beforeMount"),a=function(){t._update(t._render(),n)},new un(t,a,z,{before:function(){t._isMounted&&!t._isDestroyed&&Ze(t,"beforeUpdate")}},!0),n=!1,null==t.$vnode&&(t._isMounted=!0,Ze(t,"mounted")),t}(this,t=t&&V?Jn(t):void 0,e)},V&&setTimeout((function(){F.devtools&&at&&at.emit("init",An)}),0);var or=/\{\{((?:.|\r?\n)+?)\}\}/g,lr=/[-.*+?^${}()|[\]\/\\]/g,cr=b((function(t){var e=t[0].replace(lr,"\\$&"),n=t[1].replace(lr,"\\$&");return new RegExp(e+"((?:.|\\n)+?)"+n,"g")}));var dr={staticKeys:["staticClass"],transformNode:function(t,e){e.warn;var n=Ia(t,"class");n&&(t.staticClass=JSON.stringify(n));var a=Ra(t,"class",!1);a&&(t.classBinding=a)},genData:function(t){var e="";return t.staticClass&&(e+="staticClass:"+t.staticClass+","),t.classBinding&&(e+="class:"+t.classBinding+","),e}};var ur,pr={staticKeys:["staticStyle"],transformNode:function(t,e){e.warn;var n=Ia(t,"style");n&&(t.staticStyle=JSON.stringify(ai(n)));var a=Ra(t,"style",!1);a&&(t.styleBinding=a)},genData:function(t){var e="";return t.staticStyle&&(e+="staticStyle:"+t.staticStyle+","),t.styleBinding&&(e+="style:("+t.styleBinding+"),"),e}},hr=function(t){return(ur=ur||document.createElement("div")).innerHTML=t,ur.textContent},mr=p("area,base,br,col,embed,frame,hr,img,input,isindex,keygen,link,meta,param,source,track,wbr"),fr=p("colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr,source"),gr=p("address,article,aside,base,blockquote,body,caption,col,colgroup,dd,details,dialog,div,dl,dt,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,head,header,hgroup,hr,html,legend,li,menuitem,meta,optgroup,option,param,rp,rt,source,style,summary,tbody,td,tfoot,th,thead,title,tr,track"),vr=/^\s*([^\s"'<>\/=]+)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=<>`]+)))?/,br=/^\s*((?:v-[\w-]+:|@|:|#)\[[^=]+\][^\s"'<>\/=]*)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=<>`]+)))?/,yr="[a-zA-Z_][\\-\\.0-9_a-zA-Z"+E.source+"]*",_r="((?:"+yr+"\\:)?"+yr+")",kr=new RegExp("^<"+_r),Ar=/^\s*(\/?)>/,wr=new RegExp("^<\\/"+_r+"[^>]*>"),Cr=/^]+>/i,xr=/^",""":'"',"&":"&"," ":"\n"," ":"\t","'":"'"},$r=/&(?:lt|gt|quot|amp|#39);/g,Dr=/&(?:lt|gt|quot|amp|#39|#10|#9);/g,Pr=p("pre,textarea",!0),Nr=function(t,e){return t&&Pr(t)&&"\n"===e[0]};function Lr(t,e){var n=e?Dr:$r;return t.replace(n,(function(t){return Mr[t]}))}var Rr,Ir,Fr,Er,jr,Or,Br,Ur,qr=/^@|^v-on:/,Vr=/^v-|^@|^:|^#/,Gr=/([\s\S]*?)\s+(?:in|of)\s+([\s\S]*)/,Wr=/,([^,\}\]]*)(?:,([^,\}\]]*))?$/,Hr=/^\(|\)$/g,Qr=/^\[.*\]$/,Kr=/:(.*)$/,Yr=/^:|^\.|^v-bind:/,Jr=/\.[^.\]]+(?=[^\]]*$)/g,Zr=/^v-slot(:|$)|^#/,Xr=/[\r\n]/,ts=/\s+/g,es=b(hr);function ns(t,e,n){return{type:1,tag:t,attrsList:e,attrsMap:cs(e),rawAttrsMap:{},parent:n,children:[]}}function as(t,e){Rr=e.warn||Sa,Or=e.isPreTag||M,Br=e.mustUseProp||M,Ur=e.getTagNamespace||M;e.isReservedTag;Fr=za(e.modules,"transformNode"),Er=za(e.modules,"preTransformNode"),jr=za(e.modules,"postTransformNode"),Ir=e.delimiters;var n,a,i=[],r=!1!==e.preserveWhitespace,s=e.whitespace,o=!1,l=!1;function c(t){if(d(t),o||t.processed||(t=is(t,e)),i.length||t===n||n.if&&(t.elseif||t.else)&&ss(n,{exp:t.elseif,block:t}),a&&!t.forbidden)if(t.elseif||t.else)s=t,(c=function(t){for(var e=t.length;e--;){if(1===t[e].type)return t[e];t.pop()}}(a.children))&&c.if&&ss(c,{exp:s.elseif,block:s});else{if(t.slotScope){var r=t.slotTarget||'"default"';(a.scopedSlots||(a.scopedSlots={}))[r]=t}a.children.push(t),t.parent=a}var s,c;t.children=t.children.filter((function(t){return!t.slotScope})),d(t),t.pre&&(o=!1),Or(t.tag)&&(l=!1);for(var u=0;u]*>)","i")),p=t.replace(u,(function(t,n,a){return c=a.length,Sr(d)||"noscript"===d||(n=n.replace(//g,"$1").replace(//g,"$1")),Nr(d,n)&&(n=n.slice(1)),e.chars&&e.chars(n),""}));l+=t.length-p.length,t=p,T(d,l-c,l)}else{var h=t.indexOf("<");if(0===h){if(xr.test(t)){var m=t.indexOf("--\x3e");if(m>=0){e.shouldKeepComment&&e.comment(t.substring(4,m),l,l+m+3),w(m+3);continue}}if(Tr.test(t)){var f=t.indexOf("]>");if(f>=0){w(f+2);continue}}var g=t.match(Cr);if(g){w(g[0].length);continue}var v=t.match(wr);if(v){var b=l;w(v[0].length),T(v[1],b,l);continue}var y=C();if(y){x(y),Nr(y.tagName,t)&&w(1);continue}}var _=void 0,k=void 0,A=void 0;if(h>=0){for(k=t.slice(h);!(wr.test(k)||kr.test(k)||xr.test(k)||Tr.test(k)||(A=k.indexOf("<",1))<0);)h+=A,k=t.slice(h);_=t.substring(0,h)}h<0&&(_=t),_&&w(_.length),e.chars&&_&&e.chars(_,l-_.length,l)}if(t===n){e.chars&&e.chars(t);break}}function w(e){l+=e,t=t.substring(e)}function C(){var e=t.match(kr);if(e){var n,a,i={tagName:e[1],attrs:[],start:l};for(w(e[0].length);!(n=t.match(Ar))&&(a=t.match(br)||t.match(vr));)a.start=l,w(a[0].length),a.end=l,i.attrs.push(a);if(n)return i.unarySlash=n[1],w(n[0].length),i.end=l,i}}function x(t){var n=t.tagName,l=t.unarySlash;r&&("p"===a&&gr(n)&&T(a),o(n)&&a===n&&T(n));for(var c=s(n)||!!l,d=t.attrs.length,u=new Array(d),p=0;p=0&&i[s].lowerCasedTag!==o;s--);else s=0;if(s>=0){for(var c=i.length-1;c>=s;c--)e.end&&e.end(i[c].tag,n,r);i.length=s,a=s&&i[s-1].tag}else"br"===o?e.start&&e.start(t,[],!0,n,r):"p"===o&&(e.start&&e.start(t,[],!1,n,r),e.end&&e.end(t,n,r))}T()}(t,{warn:Rr,expectHTML:e.expectHTML,isUnaryTag:e.isUnaryTag,canBeLeftOpenTag:e.canBeLeftOpenTag,shouldDecodeNewlines:e.shouldDecodeNewlines,shouldDecodeNewlinesForHref:e.shouldDecodeNewlinesForHref,shouldKeepComment:e.comments,outputSourceRange:e.outputSourceRange,start:function(t,r,s,d,u){var p=a&&a.ns||Ur(t);Q&&"svg"===p&&(r=function(t){for(var e=[],n=0;nl&&(o.push(r=t.slice(l,i)),s.push(JSON.stringify(r)));var c=xa(a[1].trim());s.push("_s("+c+")"),o.push({"@binding":c}),l=i+a[0].length}return l-1"+("true"===r?":("+e+")":":_q("+e+","+r+")")),La(t,"change","var $$a="+e+",$$el=$event.target,$$c=$$el.checked?("+r+"):("+s+");if(Array.isArray($$a)){var $$v="+(a?"_n("+i+")":i)+",$$i=_i($$a,$$v);if($$el.checked){$$i<0&&("+Oa(e,"$$a.concat([$$v])")+")}else{$$i>-1&&("+Oa(e,"$$a.slice(0,$$i).concat($$a.slice($$i+1))")+")}}else{"+Oa(e,"$$c")+"}",null,!0)}(t,a,i);else if("input"===r&&"radio"===s)!function(t,e,n){var a=n&&n.number,i=Ra(t,"value")||"null";Ma(t,"checked","_q("+e+","+(i=a?"_n("+i+")":i)+")"),La(t,"change",Oa(e,i),null,!0)}(t,a,i);else if("input"===r||"textarea"===r)!function(t,e,n){var a=t.attrsMap.type,i=n||{},r=i.lazy,s=i.number,o=i.trim,l=!r&&"range"!==a,c=r?"change":"range"===a?"__r":"input",d="$event.target.value";o&&(d="$event.target.value.trim()");s&&(d="_n("+d+")");var u=Oa(e,d);l&&(u="if($event.target.composing)return;"+u);Ma(t,"value","("+e+")"),La(t,c,u,null,!0),(o||s)&&La(t,"blur","$forceUpdate()")}(t,a,i);else if(!F.isReservedTag(r))return ja(t,a,i),!1;return!0},text:function(t,e){e.value&&Ma(t,"textContent","_s("+e.value+")",e)},html:function(t,e){e.value&&Ma(t,"innerHTML","_s("+e.value+")",e)}},isPreTag:function(t){return"pre"===t},isUnaryTag:mr,mustUseProp:Pn,canBeLeftOpenTag:fr,isReservedTag:Hn,getTagNamespace:Qn,staticKeys:function(t){return t.reduce((function(t,e){return t.concat(e.staticKeys||[])}),[]).join(",")}(hs)},vs=b((function(t){return p("type,tag,attrsList,attrsMap,plain,parent,children,attrs,start,end,rawAttrsMap"+(t?","+t:""))}));function bs(t,e){t&&(ms=vs(e.staticKeys||""),fs=e.isReservedTag||M,function t(e){if(e.static=function(t){if(2===t.type)return!1;if(3===t.type)return!0;return!(!t.pre&&(t.hasBindings||t.if||t.for||h(t.tag)||!fs(t.tag)||function(t){for(;t.parent;){if("template"!==(t=t.parent).tag)return!1;if(t.for)return!0}return!1}(t)||!Object.keys(t).every(ms)))}(e),1===e.type){if(!fs(e.tag)&&"slot"!==e.tag&&null==e.attrsMap["inline-template"])return;for(var n=0,a=e.children.length;n|^function(?:\s+[\w$]+)?\s*\(/,_s=/\([^)]*?\);*$/,ks=/^[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*|\['[^']*?']|\["[^"]*?"]|\[\d+]|\[[A-Za-z_$][\w$]*])*$/,As={esc:27,tab:9,enter:13,space:32,up:38,left:37,right:39,down:40,delete:[8,46]},ws={esc:["Esc","Escape"],tab:"Tab",enter:"Enter",space:[" ","Spacebar"],up:["Up","ArrowUp"],left:["Left","ArrowLeft"],right:["Right","ArrowRight"],down:["Down","ArrowDown"],delete:["Backspace","Delete","Del"]},Cs=function(t){return"if("+t+")return null;"},xs={stop:"$event.stopPropagation();",prevent:"$event.preventDefault();",self:Cs("$event.target !== $event.currentTarget"),ctrl:Cs("!$event.ctrlKey"),shift:Cs("!$event.shiftKey"),alt:Cs("!$event.altKey"),meta:Cs("!$event.metaKey"),left:Cs("'button' in $event && $event.button !== 0"),middle:Cs("'button' in $event && $event.button !== 1"),right:Cs("'button' in $event && $event.button !== 2")};function Ts(t,e){var n=e?"nativeOn:":"on:",a="",i="";for(var r in t){var s=Ss(t[r]);t[r]&&t[r].dynamic?i+=r+","+s+",":a+='"'+r+'":'+s+","}return a="{"+a.slice(0,-1)+"}",i?n+"_d("+a+",["+i.slice(0,-1)+"])":n+a}function Ss(t){if(!t)return"function(){}";if(Array.isArray(t))return"["+t.map((function(t){return Ss(t)})).join(",")+"]";var e=ks.test(t.value),n=ys.test(t.value),a=ks.test(t.value.replace(_s,""));if(t.modifiers){var i="",r="",s=[];for(var o in t.modifiers)if(xs[o])r+=xs[o],As[o]&&s.push(o);else if("exact"===o){var l=t.modifiers;r+=Cs(["ctrl","shift","alt","meta"].filter((function(t){return!l[t]})).map((function(t){return"$event."+t+"Key"})).join("||"))}else s.push(o);return s.length&&(i+=function(t){return"if(!$event.type.indexOf('key')&&"+t.map(zs).join("&&")+")return null;"}(s)),r&&(i+=r),"function($event){"+i+(e?"return "+t.value+"($event)":n?"return ("+t.value+")($event)":a?"return "+t.value:t.value)+"}"}return e||n?t.value:"function($event){"+(a?"return "+t.value:t.value)+"}"}function zs(t){var e=parseInt(t,10);if(e)return"$event.keyCode!=="+e;var n=As[t],a=ws[t];return"_k($event.keyCode,"+JSON.stringify(t)+","+JSON.stringify(n)+",$event.key,"+JSON.stringify(a)+")"}var Ms={on:function(t,e){t.wrapListeners=function(t){return"_g("+t+","+e.value+")"}},bind:function(t,e){t.wrapData=function(n){return"_b("+n+",'"+t.tag+"',"+e.value+","+(e.modifiers&&e.modifiers.prop?"true":"false")+(e.modifiers&&e.modifiers.sync?",true":"")+")"}},cloak:z},$s=function(t){this.options=t,this.warn=t.warn||Sa,this.transforms=za(t.modules,"transformCode"),this.dataGenFns=za(t.modules,"genData"),this.directives=T(T({},Ms),t.directives);var e=t.isReservedTag||M;this.maybeComponent=function(t){return!!t.component||!e(t.tag)},this.onceId=0,this.staticRenderFns=[],this.pre=!1};function Ds(t,e){var n=new $s(e);return{render:"with(this){return "+(t?Ps(t,n):'_c("div")')+"}",staticRenderFns:n.staticRenderFns}}function Ps(t,e){if(t.parent&&(t.pre=t.pre||t.parent.pre),t.staticRoot&&!t.staticProcessed)return Ns(t,e);if(t.once&&!t.onceProcessed)return Ls(t,e);if(t.for&&!t.forProcessed)return Is(t,e);if(t.if&&!t.ifProcessed)return Rs(t,e);if("template"!==t.tag||t.slotTarget||e.pre){if("slot"===t.tag)return function(t,e){var n=t.slotName||'"default"',a=Os(t,e),i="_t("+n+(a?","+a:""),r=t.attrs||t.dynamicAttrs?qs((t.attrs||[]).concat(t.dynamicAttrs||[]).map((function(t){return{name:_(t.name),value:t.value,dynamic:t.dynamic}}))):null,s=t.attrsMap["v-bind"];!r&&!s||a||(i+=",null");r&&(i+=","+r);s&&(i+=(r?"":",null")+","+s);return i+")"}(t,e);var n;if(t.component)n=function(t,e,n){var a=e.inlineTemplate?null:Os(e,n,!0);return"_c("+t+","+Fs(e,n)+(a?","+a:"")+")"}(t.component,t,e);else{var a;(!t.plain||t.pre&&e.maybeComponent(t))&&(a=Fs(t,e));var i=t.inlineTemplate?null:Os(t,e,!0);n="_c('"+t.tag+"'"+(a?","+a:"")+(i?","+i:"")+")"}for(var r=0;r>>0}(s):"")+")"}(t,t.scopedSlots,e)+","),t.model&&(n+="model:{value:"+t.model.value+",callback:"+t.model.callback+",expression:"+t.model.expression+"},"),t.inlineTemplate){var r=function(t,e){var n=t.children[0];if(n&&1===n.type){var a=Ds(n,e.options);return"inlineTemplate:{render:function(){"+a.render+"},staticRenderFns:["+a.staticRenderFns.map((function(t){return"function(){"+t+"}"})).join(",")+"]}"}}(t,e);r&&(n+=r+",")}return n=n.replace(/,$/,"")+"}",t.dynamicAttrs&&(n="_b("+n+',"'+t.tag+'",'+qs(t.dynamicAttrs)+")"),t.wrapData&&(n=t.wrapData(n)),t.wrapListeners&&(n=t.wrapListeners(n)),n}function Es(t){return 1===t.type&&("slot"===t.tag||t.children.some(Es))}function js(t,e){var n=t.attrsMap["slot-scope"];if(t.if&&!t.ifProcessed&&!n)return Rs(t,e,js,"null");if(t.for&&!t.forProcessed)return Is(t,e,js);var a="_empty_"===t.slotScope?"":String(t.slotScope),i="function("+a+"){return "+("template"===t.tag?t.if&&n?"("+t.if+")?"+(Os(t,e)||"undefined")+":undefined":Os(t,e)||"undefined":Ps(t,e))+"}",r=a?"":",proxy:true";return"{key:"+(t.slotTarget||'"default"')+",fn:"+i+r+"}"}function Os(t,e,n,a,i){var r=t.children;if(r.length){var s=r[0];if(1===r.length&&s.for&&"template"!==s.tag&&"slot"!==s.tag){var o=n?e.maybeComponent(s)?",1":",0":"";return""+(a||Ps)(s,e)+o}var l=n?function(t,e){for(var n=0,a=0;a':'
',Qs.innerHTML.indexOf(" ")>0}var Js=!!V&&Ys(!1),Zs=!!V&&Ys(!0),Xs=b((function(t){var e=Jn(t);return e&&e.innerHTML})),to=An.prototype.$mount;An.prototype.$mount=function(t,e){if((t=t&&Jn(t))===document.body||t===document.documentElement)return this;var n=this.$options;if(!n.render){var a=n.template;if(a)if("string"==typeof a)"#"===a.charAt(0)&&(a=Xs(a));else{if(!a.nodeType)return this;a=a.innerHTML}else t&&(a=function(t){if(t.outerHTML)return t.outerHTML;var e=document.createElement("div");return e.appendChild(t.cloneNode(!0)),e.innerHTML}(t));if(a){var i=Ks(a,{outputSourceRange:!1,shouldDecodeNewlines:Js,shouldDecodeNewlinesForHref:Zs,delimiters:n.delimiters,comments:n.comments},this),r=i.render,s=i.staticRenderFns;n.render=r,n.staticRenderFns=s}}return to.call(this,t,e)},An.compile=Ks;const eo={data(){const t=this.$t.bind(this);this.$tc.bind(this);return{appOnline:null,activeTheme:"light",themes:["purple","dark","light"],activeTablink:"home",links:[{id:"main_home_tablink",name:"home",ariaLabel:"home",routerName:"Home",icon:"home",label:t("sidebar.home")},{id:"main_search_tablink",name:"search",ariaLabel:"search",routerName:"Search",icon:"search",label:t("sidebar.search")},{id:"main_charts_tablink",name:"charts",ariaLabel:"charts",routerName:"Charts",icon:"show_chart",label:t("sidebar.charts")},{id:"main_favorites_tablink",name:"favorites",ariaLabel:"favorites",routerName:"Favorites",icon:"star",label:t("sidebar.favorites")},{id:"main_analyzer_tablink",name:"analyzer",ariaLabel:"link analyzer",routerName:"Link Analyzer",icon:"link",label:t("sidebar.linkAnalyzer")},{id:"main_settings_tablink",name:"settings",ariaLabel:"settings",routerName:"Settings",icon:"settings",label:t("sidebar.settings")},{id:"main_about_tablink",name:"about",ariaLabel:"info",routerName:"About",icon:"info",label:t("sidebar.about")}]}},mounted(){this.appOnline=navigator.onLine,window.addEventListener("online",()=>{this.appOnline=!0}),window.addEventListener("offline",()=>{this.appOnline=!1}),this.activeTheme=localStorage.getItem("selectedTheme")||"light",this.$router.afterEach((t,e)=>{const n=this.links.find(e=>e.routerName===t.name);n&&(this.activeTablink=n.name)})},methods:{changeTheme(t){if(t===this.activeTheme)return;this.activeTheme=t,document.documentElement.setAttribute("data-theme",t),localStorage.setItem("selectedTheme",t);const e=document.querySelectorAll("*");e.forEach(t=>{t.classList.add("changing-theme")}),document.documentElement.addEventListener("transitionend",(function t(){e.forEach(t=>{t.classList.remove("changing-theme")}),document.documentElement.removeEventListener("transitionend",t)}))}}};var no=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("aside",{attrs:{id:"sidebar",role:"navigation"}},[t._l(t.links,(function(e){return n("router-link",{key:e.id,staticClass:"main_tablinks",class:{active:t.activeTablink===e.name},attrs:{tag:"span",role:"link",id:e.id,"aria-label":e.ariaLabel,to:{name:e.routerName}},nativeOn:{click:function(n){t.activeTablink=e.name}}},[n("i",{staticClass:"material-icons side_icon"},[t._v(t._s(e.icon))]),t._v(" "),n("span",{staticClass:"main_tablinks_text"},[t._v(t._s(e.label))])])})),t._v(" "),n("span",{staticClass:"main_tablinks",attrs:{id:"theme_selector",role:"link","aria-label":"theme selector"}},[n("i",{staticClass:"material-icons side_icon side_icon--theme"},[t._v("palette")]),t._v(" "),n("div",{attrs:{id:"theme_togglers"}},t._l(t.themes,(function(e){return n("div",{key:e,staticClass:"theme_toggler",class:[{"theme_toggler--active":t.activeTheme===e},"theme_toggler--"+e],on:{click:function(n){return t.changeTheme(e)}}})})),0)]),t._v(" "),n("div",{class:{online:t.appOnline,offline:!t.appOnline},attrs:{id:"network-status"}},[t.appOnline?n("i",{staticClass:"material-icons"},[t._v("wifi")]):n("i",{staticClass:"material-icons"},[n("svg",{attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"}},[n("path",{attrs:{d:"M24 .01c0-.01 0-.01 0 0L0 0v24h24V.01zM0 0h24v24H0V0zm0 0h24v24H0V0z",fill:"none"}}),t._v(" "),n("path",{attrs:{d:"M22.99 9C19.15 5.16 13.8 3.76 8.84 4.78l2.52 2.52c3.47-.17 6.99 1.05 9.63 3.7l2-2zm-4 4c-1.29-1.29-2.84-2.13-4.49-2.56l3.53 3.53.96-.97zM2 3.05L5.07 6.1C3.6 6.82 2.22 7.78 1 9l1.99 2c1.24-1.24 2.67-2.16 4.2-2.77l2.24 2.24C7.81 10.89 6.27 11.73 5 13v.01L6.99 15c1.36-1.36 3.14-2.04 4.92-2.06L18.98 20l1.27-1.26L3.29 1.79 2 3.05zM9 17l3 3 3-3c-1.65-1.66-4.34-1.66-6 0z"}})])])])],2)};no._withStripped=!0;var ao=function(t,e,n,a,i,r,s,o){const l=("function"==typeof n?n.options:n)||{};l.__file="C:\\Users\\Roberto\\Dev\\repos\\deemix-pyweb\\webui\\src\\components\\TheSidebar.vue",l.render||(l.render=t.render,l.staticRenderFns=t.staticRenderFns,l._compiled=!0,i&&(l.functional=!0)),l._scopeId=a;{let t;if(e&&(t=function(t){e.call(this,s(t))}),void 0!==t)if(l.functional){const e=l.render;l.render=function(n,a){return t.call(a),e(n,a)}}else{const e=l.beforeCreate;l.beforeCreate=e?[].concat(e,t):[t]}}return l}({render:no,staticRenderFns:[]},(function(t){t&&t("data-v-4ec3adf4_0",{source:"\n#network-status[data-v-4ec3adf4] {\r\n\tdisplay: flex;\r\n\tjustify-content: center;\r\n\talign-items: center;\r\n\tposition: relative;\r\n\tmargin-top: auto;\r\n\tbottom: 0;\n}\n#network-status.online i.material-icons[data-v-4ec3adf4] {\r\n\tcolor: hsl(151, 100%, 31%);\n}\n#network-status.offline i.material-icons svg[data-v-4ec3adf4] {\r\n\tfill: red;\r\n\twidth: 1em;\r\n\theight: 1em;\n}\r\n",map:{version:3,sources:["C:\\Users\\Roberto\\Dev\\repos\\deemix-pyweb\\webui/C:\\Users\\Roberto\\Dev\\repos\\deemix-pyweb\\webui\\src\\components\\TheSidebar.vue"],names:[],mappings:";AA8CA;CACA,aAAA;CACA,uBAAA;CACA,mBAAA;CACA,kBAAA;CACA,gBAAA;CACA,SAAA;AACA;AAEA;CACA,0BAAA;AACA;AAEA;CACA,SAAA;CACA,UAAA;CACA,WAAA;AACA",file:"TheSidebar.vue",sourcesContent:["\r\n\r\n\r\n\r\n diff --git a/src/app.js b/src/app.js index 4d64ba4..1eb59ae 100644 --- a/src/app.js +++ b/src/app.js @@ -5,27 +5,18 @@ window.vol = { preview_max_volume: 100 } -import App from '@components/App.vue' +import App from '@/App.vue' import i18n from '@/plugins/i18n' import router from '@/router' import store from '@/store' import { socket } from '@/utils/socket' import { toast } from '@/utils/toasts' -import { init as initTabs } from '@js/tabs.js' - import { isValidURL } from '@/utils/utils' -import Downloads from '@/utils/downloads' -import EventBus from '@/utils/EventBus.js' +import { sendAddToQueue } from '@/utils/downloads' /* ===== App initialization ===== */ - function startApp() { - mountApp() - initTabs() -} - -function mountApp() { new Vue({ store, router, @@ -36,6 +27,7 @@ function mountApp() { function initClient() { store.dispatch('setClientMode', true) + setClientModeKeyBindings() } document.addEventListener('DOMContentLoaded', startApp) @@ -44,24 +36,40 @@ window.addEventListener('pywebviewready', initClient) /* ===== Global shortcuts ===== */ document.addEventListener('paste', pasteEvent => { - let pasteText = pasteEvent.clipboardData.getData('Text') + if (pasteEvent.target.localName === 'input') return - if (pasteEvent.target.localName != 'input') { - if (isValidURL(pasteText)) { - if (window.main_selected === 'analyzer_tab') { - EventBus.$emit('linkAnalyzerTab:reset') - socket.emit('analyzeLink', pasteText) - } else { - Downloads.sendAddToQueue(pasteText) - } + let pastedText = pasteEvent.clipboardData.getData('Text') + + if (isValidURL(pastedText)) { + if (router.currentRoute.name === 'Link Analyzer') { + socket.emit('analyzeLink', pastedText) } else { - let searchbar = document.querySelector('#searchbar') - searchbar.select() - searchbar.setSelectionRange(0, 99999) + sendAddToQueue(pastedText) } + } else { + let searchbar = document.querySelector('#searchbar') + searchbar.select() + searchbar.setSelectionRange(0, 99999) } }) +/** + * Sets up key bindings that already work in the browser (server mode) + */ +function setClientModeKeyBindings() { + document.addEventListener('keyup', keyEvent => { + // ALT + left + if (keyEvent.altKey && keyEvent.key === 'ArrowLeft') { + router.back() + } + + // ALT + right + if (keyEvent.altKey && keyEvent.key === 'ArrowRight') { + router.forward() + } + }) +} + /* ===== Socketio listeners ===== */ // Debug messages for socketio @@ -113,11 +121,13 @@ socket.on('logged_in', function(data) { break case -1: toast(i18n.t('toasts.deezerNotAvailable'), 'close', true, 'login-toast') - $('#open_login_prompt').show() - document.getElementById('logged_in_info').classList.add('hide') - $('#settings_username').text('Not Logged') - $('#settings_picture').attr('src', `https://e-cdns-images.dzcdn.net/images/user/125x125-000000-80-0-0.jpg`) - document.getElementById('home_not_logged_in').classList.remove('hide') + return + // TODO + // $('#open_login_prompt').show() + // document.getElementById('logged_in_info').classList.add('hide') + // $('#settings_username').text('Not Logged') + // $('#settings_picture').attr('src', `https://e-cdns-images.dzcdn.net/images/user/125x125-000000-80-0-0.jpg`) + // document.getElementById('home_not_logged_in').classList.remove('hide') } }) diff --git a/src/components/TheContent.vue b/src/components/TheContent.vue index 76c4a32..668fb0b 100644 --- a/src/components/TheContent.vue +++ b/src/components/TheContent.vue @@ -1,5 +1,10 @@ - - - - \ No newline at end of file diff --git a/src/components/TheSearchBar.vue b/src/components/TheSearchBar.vue index 14e2182..420668c 100644 --- a/src/components/TheSearchBar.vue +++ b/src/components/TheSearchBar.vue @@ -1,5 +1,5 @@ + + - \ No newline at end of file + diff --git a/src/components/TheSidebar.vue b/src/components/TheSidebar.vue index 10caaad..6897422 100644 --- a/src/components/TheSidebar.vue +++ b/src/components/TheSidebar.vue @@ -1,11 +1,10 @@ \ No newline at end of file + diff --git a/src/components/search/ResultsAll.vue b/src/components/search/ResultsAll.vue index 6face7a..60e72ea 100644 --- a/src/components/search/ResultsAll.vue +++ b/src/components/search/ResultsAll.vue @@ -15,11 +15,11 @@ {{ $tc(`globals.listTabs.${section.toLowerCase()}`, 2) }} -
-
get_app -
+

{{ results.allTab.TOP_RESULT[0].title }}

- {{ - results.allTab.TOP_RESULT[0].type == 'artist' - ? $t('search.fans', { n: $n(results.allTab.TOP_RESULT[0].nb_fan) }) - : $t('globals.by', { artist: results.allTab.TOP_RESULT[0].artist }) + - ' - ' + - $tc('globals.listTabs.trackN', results.allTab.TOP_RESULT[0].nb_song) - }} + {{ fansNumber }}

{{ $tc(`globals.listTabs.${results.allTab.TOP_RESULT[0].type}`, 1) }}
-
+
- + - + @@ -104,11 +102,12 @@
- {{ artist.ART_NAME }} - + {{ track.ALB_TITLE }} - {{ convertDuration(track.DURATION) }}
-
-
get_app -
+

{{ release.ART_NAME }}

{{ $t('search.fans', { n: $n(release.NB_FAN) }) }}

-
+
-
-
get_app -
+

{{ release.ART_NAME + ' - ' + $tc('globals.listTabs.trackN', release.NUMBER_TRACK) }}

-
+
-
-
get_app -
+

{{ release.TITLE }}

{{ $tc('globals.listTabs.trackN', release.NB_SONG) }}

-
+
@@ -212,6 +216,7 @@ \ No newline at end of file + diff --git a/src/components/search/ResultsArtists.vue b/src/components/search/ResultsArtists.vue index 4b1cf01..e35d554 100644 --- a/src/components/search/ResultsArtists.vue +++ b/src/components/search/ResultsArtists.vue @@ -1,37 +1,39 @@ \ No newline at end of file + diff --git a/src/components/search/ResultsPlaylists.vue b/src/components/search/ResultsPlaylists.vue index be9497f..5a2040e 100644 --- a/src/components/search/ResultsPlaylists.vue +++ b/src/components/search/ResultsPlaylists.vue @@ -5,23 +5,25 @@

{{ $t('search.noResultsPlaylist') }}

-
-
get_app -
+

{{ release.title }}

@@ -29,13 +31,13 @@ `${$t('globals.by', { artist: release.user.name })} - ${$tc('globals.listTabs.trackN', release.nb_tracks)}` }}

-
+
\ No newline at end of file + diff --git a/src/components/search/ResultsTracks.vue b/src/components/search/ResultsTracks.vue index 6c5336a..38a0384 100644 --- a/src/components/search/ResultsTracks.vue +++ b/src/components/search/ResultsTracks.vue @@ -46,20 +46,20 @@ }} - {{ track.artist.name }} - - + {{ track.album.title }} - + {{ convertDuration(track.duration) }} @@ -79,9 +79,9 @@