From 27ff0e7241171b8464e131837cd661f362b821e2 Mon Sep 17 00:00:00 2001 From: MrTimscampi Date: Thu, 9 Jan 2020 22:24:45 +0100 Subject: [PATCH 001/116] Enable scrollManager in more cases --- src/components/scrollManager.js | 17 ++--------------- src/components/scroller.js | 2 +- 2 files changed, 3 insertions(+), 16 deletions(-) diff --git a/src/components/scrollManager.js b/src/components/scrollManager.js index 9f7035d528..dbf9c5a143 100644 --- a/src/components/scrollManager.js +++ b/src/components/scrollManager.js @@ -372,7 +372,7 @@ define(["dom", "browser", "layoutManager"], function (dom, browser, layoutManage */ function useSmoothScroll() { - if (browser.tizen) { + if (browser.tizen || browser.web0s || browser.firefox || browser.chrome) { return true; } @@ -392,20 +392,7 @@ define(["dom", "browser", "layoutManager"], function (dom, browser, layoutManage * Returns true if scroll manager is enabled. */ var isEnabled = function() { - - if (!layoutManager.tv) { - return false; - } - - if (browser.tizen) { - return true; - } - - if (browser.web0s) { - return true; - } - - return false; + return layoutManager.tv; }; /** diff --git a/src/components/scroller.js b/src/components/scroller.js index 65f33b8e8d..b4c9b9d9b7 100644 --- a/src/components/scroller.js +++ b/src/components/scroller.js @@ -93,7 +93,7 @@ define(['browser', 'layoutManager', 'dom', 'focusManager', 'ResizeObserver', 'sc // in cases with firefox, if the smooth scroll api is supported then use that because their implementation is very good if (options.allowNativeScroll === false) { options.enableNativeScroll = false; - } else if (isSmoothScrollSupported && ((browser.firefox && !layoutManager.tv) || options.allowNativeSmoothScroll)) { + } else if (isSmoothScrollSupported && (browser.firefox || options.allowNativeSmoothScroll)) { // native smooth scroll options.enableNativeScroll = true; } else if (options.requireAnimation && (browser.animate || browser.supportsCssAnimation())) { From 442487799aabeaa38df161754ebaabbec42e8534 Mon Sep 17 00:00:00 2001 From: grafixeyehero Date: Mon, 13 Jan 2020 21:15:59 +0300 Subject: [PATCH 002/116] change shape to overflow --- src/assets/css/librarybrowser.css | 16 ++++++++++------ src/controllers/itemdetailpage.js | 5 +++-- src/itemdetails.html | 4 ++-- src/scripts/itembynamedetailpage.js | 16 ++++++++-------- 4 files changed, 23 insertions(+), 18 deletions(-) diff --git a/src/assets/css/librarybrowser.css b/src/assets/css/librarybrowser.css index af106959e0..9b3f504beb 100644 --- a/src/assets/css/librarybrowser.css +++ b/src/assets/css/librarybrowser.css @@ -413,11 +413,14 @@ align-items: center; align-content: center; position: sticky; - background-color: #101010; top: 0; z-index: 2; } +.detailSticky { + background-color: #101010; +} + .infoWrapper { flex: 1 0 0; } @@ -431,6 +434,9 @@ .detailPageSecondaryContainer { margin: 1.25em 0; +} + +.detailPageContent { display: flex; flex-direction: column; padding-left: 2%; @@ -443,7 +449,6 @@ } .detailImageContainer { - margin: 1.25em 0; position: sticky; top: 15%; float: left; @@ -452,7 +457,6 @@ .detailPagePrimaryContent { position: relative; - flex-grow: 1 } .detailLogo { @@ -494,7 +498,7 @@ } @media all and (max-width:62.5em) { - .detailPageContent { + .detailPageWrapperContainer { position: relative } @@ -705,13 +709,13 @@ margin-bottom: 3.4em !important } -.detailPageContent { +.detailPageWrapperContainer { border-spacing: 0; border-collapse: collapse; } @media all and (max-width:62.5em) { - .detailPageContent-nodetailimg { + .detailPageWrapperContainer-nodetailimg { padding-top: 0; } } diff --git a/src/controllers/itemdetailpage.js b/src/controllers/itemdetailpage.js index 1a0b66c75a..8f8b3baf39 100644 --- a/src/controllers/itemdetailpage.js +++ b/src/controllers/itemdetailpage.js @@ -524,6 +524,7 @@ define(["loading", "appRouter", "layoutManager", "userSettings", "connectionMana function reloadFromItem(instance, page, params, item, user) { var context = params.context; + page.querySelector(".detailPagePrimaryContainer").classList.add("detailSticky"); renderName(item, page.querySelector(".nameContainer"), false, context); var apiClient = connectionManager.getApiClient(item.ServerId); renderSeriesTimerEditor(page, item, apiClient, user); @@ -743,9 +744,9 @@ define(["loading", "appRouter", "layoutManager", "userSettings", "connectionMana if ("Person" !== item.Type) { elem.classList.add("detailimg-hidemobile"); - page.querySelector(".detailPageContent").classList.add("detailPageContent-nodetailimg"); + page.querySelector(".detailPageWrapperContainer").classList.add("detailPageWrapperContainer-nodetailimg"); } else { - page.querySelector(".detailPageContent").classList.remove("detailPageContent-nodetailimg"); + page.querySelector(".detailPageWrapperContainer").classList.remove("detailPageWrapperContainer-nodetailimg"); } var imageTags = item.ImageTags || {}; diff --git a/src/itemdetails.html b/src/itemdetails.html index fbe0cc50de..4ac632b8b1 100644 --- a/src/itemdetails.html +++ b/src/itemdetails.html @@ -6,7 +6,7 @@ -
+
@@ -107,8 +107,8 @@
-
+
diff --git a/src/scripts/itembynamedetailpage.js b/src/scripts/itembynamedetailpage.js index 5d3c9dedb9..ea760900ec 100644 --- a/src/scripts/itembynamedetailpage.js +++ b/src/scripts/itembynamedetailpage.js @@ -99,7 +99,7 @@ define(["connectionManager", "listView", "cardBuilder", "imageLoader", "libraryB Limit: 10, SortBy: "StartDate" }, { - shape: "backdrop", + shape: "overflowBackdrop", showTitle: true, centerText: true, overlayMoreButton: true, @@ -121,7 +121,7 @@ define(["connectionManager", "listView", "cardBuilder", "imageLoader", "libraryB Limit: 10, SortBy: "SortName" }, { - shape: "portrait", + shape: "overflowPortrait", showTitle: true, centerText: true, overlayMoreButton: true, @@ -140,7 +140,7 @@ define(["connectionManager", "listView", "cardBuilder", "imageLoader", "libraryB Limit: 10, SortBy: "SortName" }, { - shape: "portrait", + shape: "overflowPortrait", showTitle: true, centerText: true, overlayPlayButton: true @@ -157,7 +157,7 @@ define(["connectionManager", "listView", "cardBuilder", "imageLoader", "libraryB Limit: 10, SortBy: "SortName" }, { - shape: "portrait", + shape: "overflowPortrait", showTitle: true, centerText: true, overlayPlayButton: true @@ -174,7 +174,7 @@ define(["connectionManager", "listView", "cardBuilder", "imageLoader", "libraryB Limit: 10, SortBy: "SortName" }, { - shape: "portrait", + shape: "overflowPortrait", showTitle: true, centerText: true, overlayMoreButton: true @@ -191,7 +191,7 @@ define(["connectionManager", "listView", "cardBuilder", "imageLoader", "libraryB SortOrder: "Descending", SortBy: "ProductionYear,Sortname" }, { - shape: "square", + shape: "overflowSquare", playFromHere: true, showTitle: true, showYear: true, @@ -211,7 +211,7 @@ define(["connectionManager", "listView", "cardBuilder", "imageLoader", "libraryB Limit: 8, SortBy: "SortName" }, { - shape: "square", + shape: "overflowSquare", playFromHere: true, showTitle: true, showParentTitle: true, @@ -231,7 +231,7 @@ define(["connectionManager", "listView", "cardBuilder", "imageLoader", "libraryB Limit: 6, SortBy: "SortName" }, { - shape: "backdrop", + shape: "overflowBackdrop", showTitle: true, showParentTitle: true, centerText: true, From 28dfc698b5ed606f75d07bef3243bcd52197acb4 Mon Sep 17 00:00:00 2001 From: grafixeyehero Date: Mon, 13 Jan 2020 22:18:43 +0300 Subject: [PATCH 003/116] hide detail img on mobile --- src/controllers/itemdetailpage.js | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/src/controllers/itemdetailpage.js b/src/controllers/itemdetailpage.js index 8f8b3baf39..7bd9369025 100644 --- a/src/controllers/itemdetailpage.js +++ b/src/controllers/itemdetailpage.js @@ -742,12 +742,7 @@ define(["loading", "appRouter", "layoutManager", "userSettings", "connectionMana editable = false; } - if ("Person" !== item.Type) { - elem.classList.add("detailimg-hidemobile"); - page.querySelector(".detailPageWrapperContainer").classList.add("detailPageWrapperContainer-nodetailimg"); - } else { - page.querySelector(".detailPageWrapperContainer").classList.remove("detailPageWrapperContainer-nodetailimg"); - } + elem.classList.add("detailimg-hidemobile"); var imageTags = item.ImageTags || {}; From 040f4af781dee13bc9e633c43b0c79853046e691 Mon Sep 17 00:00:00 2001 From: grafixeyehero Date: Mon, 13 Jan 2020 22:20:06 +0300 Subject: [PATCH 004/116] add person img to itembackdrop --- src/controllers/itemdetailpage.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/controllers/itemdetailpage.js b/src/controllers/itemdetailpage.js index 7bd9369025..c5fb0f1bec 100644 --- a/src/controllers/itemdetailpage.js +++ b/src/controllers/itemdetailpage.js @@ -467,7 +467,8 @@ define(["loading", "appRouter", "layoutManager", "userSettings", "connectionMana var usePrimaryImage = item.MediaType === "Video" && item.Type !== "Movie" && item.Type !== "Trailer" || item.MediaType && item.MediaType !== "Video" || item.Type === "MusicAlbum" || - item.Type === "MusicArtist"; + item.Type === "MusicArtist" || + item.Type === "Person"; if ("Program" === item.Type && item.ImageTags && item.ImageTags.Thumb) { imgUrl = apiClient.getScaledImageUrl(item.Id, { From 69251cff483cada8fe8dcb893bda7d1a0e3498c6 Mon Sep 17 00:00:00 2001 From: grafixeyehero Date: Mon, 13 Jan 2020 22:22:50 +0300 Subject: [PATCH 005/116] overide itembackrop class backgroud-size cover to contain hide on desktop person backdrop --- src/assets/css/librarybrowser.css | 8 ++++++++ src/controllers/itemdetailpage.js | 7 +++++++ 2 files changed, 15 insertions(+) diff --git a/src/assets/css/librarybrowser.css b/src/assets/css/librarybrowser.css index 9b3f504beb..8e9b10646d 100644 --- a/src/assets/css/librarybrowser.css +++ b/src/assets/css/librarybrowser.css @@ -387,6 +387,10 @@ position: relative } +.personBackdrop { + background-size: contain; +} + .itemBackdropProgressBar { position: absolute !important; bottom: 0; @@ -671,6 +675,10 @@ display: none !important } + .personBackdropimg-hideondesktop { + display: none !important; + } + .mainDetailButtons { font-size: 108%; margin: 1.25em 0 diff --git a/src/controllers/itemdetailpage.js b/src/controllers/itemdetailpage.js index c5fb0f1bec..0b57b91c3e 100644 --- a/src/controllers/itemdetailpage.js +++ b/src/controllers/itemdetailpage.js @@ -520,6 +520,13 @@ define(["loading", "appRouter", "layoutManager", "userSettings", "connectionMana itemBackdropElement.style.backgroundImage = ""; } + if ("Person" === item.Type) { + itemBackdropElement.classList.add("personBackdropimg-hideondesktop"); + itemBackdropElement.classList.add("personBackdrop"); + } else { + itemBackdropElement.classList.remove("personBackdrop"); + } + return hasbackdrop; } From 00469f9577277045997170b46362f135cc6af54e Mon Sep 17 00:00:00 2001 From: grafixeyehero Date: Mon, 13 Jan 2020 22:27:02 +0300 Subject: [PATCH 006/116] show overview and externallink for movie and episode on mobile too --- src/assets/css/librarybrowser.css | 6 ------ src/controllers/itemdetailpage.js | 5 ----- 2 files changed, 11 deletions(-) diff --git a/src/assets/css/librarybrowser.css b/src/assets/css/librarybrowser.css index 8e9b10646d..f13feb1ee3 100644 --- a/src/assets/css/librarybrowser.css +++ b/src/assets/css/librarybrowser.css @@ -783,12 +783,6 @@ } } -@media all and (max-width:62.5em) { - .detailsHiddenOnMobile { - display: none - } -} - .btnSyncComplete { background: #673AB7 !important } diff --git a/src/controllers/itemdetailpage.js b/src/controllers/itemdetailpage.js index 0b57b91c3e..9ba512e940 100644 --- a/src/controllers/itemdetailpage.js +++ b/src/controllers/itemdetailpage.js @@ -1060,11 +1060,6 @@ define(["loading", "appRouter", "layoutManager", "userSettings", "connectionMana var overview = page.querySelector(".overview"); var externalLinksElem = page.querySelector(".itemExternalLinks"); - if ("Season" !== item.Type && "MusicAlbum" !== item.Type && "MusicArtist" !== item.Type) { - overview.classList.add("detailsHiddenOnMobile"); - externalLinksElem.classList.add("detailsHiddenOnMobile"); - } - renderOverview([overview], item); var i; var itemMiscInfo; From 927fd4d7e6144894424281d7adb0caef1fb12894 Mon Sep 17 00:00:00 2001 From: grafixeyehero Date: Mon, 13 Jan 2020 23:36:23 +0300 Subject: [PATCH 007/116] set header setTransparentMenu for mobile only and fix some style --- src/assets/css/librarybrowser.css | 16 +++++++++------- src/controllers/itemdetailpage.js | 5 ++++- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/src/assets/css/librarybrowser.css b/src/assets/css/librarybrowser.css index f13feb1ee3..b94ac1e4ac 100644 --- a/src/assets/css/librarybrowser.css +++ b/src/assets/css/librarybrowser.css @@ -671,12 +671,20 @@ } @media all and (min-width:62.5em) { + .headerTop { + padding: 1.489em 0 + } + + .itemDetailPage { + padding-top: 5em !important + } + .detailFloatingButton { display: none !important } .personBackdropimg-hideondesktop { - display: none !important; + display: none !important } .mainDetailButtons { @@ -722,12 +730,6 @@ border-collapse: collapse; } -@media all and (max-width:62.5em) { - .detailPageWrapperContainer-nodetailimg { - padding-top: 0; - } -} - .mediaInfoStream { margin: 0 3em 0 0; display: inline-block; diff --git a/src/controllers/itemdetailpage.js b/src/controllers/itemdetailpage.js index 9ba512e940..652b642f39 100644 --- a/src/controllers/itemdetailpage.js +++ b/src/controllers/itemdetailpage.js @@ -2098,7 +2098,10 @@ define(["loading", "appRouter", "layoutManager", "userSettings", "connectionMana }); view.addEventListener("viewshow", function (e) { var page = this; - libraryMenu.setTransparentMenu(true); + + if (layoutManager.mobile) { + libraryMenu.setTransparentMenu(true); + } if (e.detail.isRestored) { if (currentItem) { From 5941c914fc81ffb659a593f8b470a4d094dcc718 Mon Sep 17 00:00:00 2001 From: grafixeyehero Date: Tue, 14 Jan 2020 20:07:13 +0300 Subject: [PATCH 008/116] Fix ProgressBar position --- src/assets/css/librarybrowser.css | 5 +++-- src/itemdetails.html | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/assets/css/librarybrowser.css b/src/assets/css/librarybrowser.css index b94ac1e4ac..2d96790d63 100644 --- a/src/assets/css/librarybrowser.css +++ b/src/assets/css/librarybrowser.css @@ -650,8 +650,9 @@ } .detailImageProgressContainer { - margin-left: 6px; - width: 21.886458333333332vw; + position: absolute; + bottom: 0; + width: 22.786458333333332vw; } .detailButton-mobile-text { diff --git a/src/itemdetails.html b/src/itemdetails.html index 4ac632b8b1..96df0a3481 100644 --- a/src/itemdetails.html +++ b/src/itemdetails.html @@ -108,7 +108,7 @@
-
+
From 89b28d76f58af92c3e42c717b6f34ae593544b30 Mon Sep 17 00:00:00 2001 From: grafixeyehero Date: Wed, 15 Jan 2020 18:54:48 +0300 Subject: [PATCH 009/116] applly suggestion --- src/assets/css/librarybrowser.css | 2 +- src/controllers/itemdetailpage.js | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/src/assets/css/librarybrowser.css b/src/assets/css/librarybrowser.css index 2d96790d63..8d9ca03d0a 100644 --- a/src/assets/css/librarybrowser.css +++ b/src/assets/css/librarybrowser.css @@ -684,7 +684,7 @@ display: none !important } - .personBackdropimg-hideondesktop { + .personBackdrop { display: none !important } diff --git a/src/controllers/itemdetailpage.js b/src/controllers/itemdetailpage.js index 652b642f39..82ce33c7c8 100644 --- a/src/controllers/itemdetailpage.js +++ b/src/controllers/itemdetailpage.js @@ -521,7 +521,6 @@ define(["loading", "appRouter", "layoutManager", "userSettings", "connectionMana } if ("Person" === item.Type) { - itemBackdropElement.classList.add("personBackdropimg-hideondesktop"); itemBackdropElement.classList.add("personBackdrop"); } else { itemBackdropElement.classList.remove("personBackdrop"); From ea68085229debe5187c6e0ebf3ef4441e8c8183c Mon Sep 17 00:00:00 2001 From: grafixeyehero Date: Fri, 17 Jan 2020 17:56:52 +0300 Subject: [PATCH 010/116] fix show favorite on mobile --- src/components/listview/listview.css | 4 ++-- src/components/listview/listview.js | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/components/listview/listview.css b/src/components/listview/listview.css index 4d3b27ce75..1ed543c11b 100644 --- a/src/components/listview/listview.css +++ b/src/components/listview/listview.css @@ -149,8 +149,8 @@ @media all and (max-width: 64em) { .listItemImage-large { - width: 33.75vw; - height: 22.5vw; + width: 22vw; + height: 16vw; margin-right: 0 !important; } diff --git a/src/components/listview/listview.js b/src/components/listview/listview.js index 94535deb6f..dcc3636a64 100644 --- a/src/components/listview/listview.js +++ b/src/components/listview/listview.js @@ -500,11 +500,11 @@ define(['itemHelper', 'mediaInfo', 'indicators', 'connectionManager', 'layoutMan html += ''; } + html += ''; + if (itemHelper.canRate(item)) { html += ''; } - - html += ''; } } From c87b0b8263952fafcbb5e8b7c793c04652163dab Mon Sep 17 00:00:00 2001 From: grafixeyehero Date: Fri, 17 Jan 2020 18:37:12 +0300 Subject: [PATCH 011/116] fix show favorite and wacted on mobile --- src/assets/css/librarybrowser.css | 4 +++- src/components/listview/listview.js | 11 +++++++---- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/assets/css/librarybrowser.css b/src/assets/css/librarybrowser.css index 8d9ca03d0a..ed3f0f13fd 100644 --- a/src/assets/css/librarybrowser.css +++ b/src/assets/css/librarybrowser.css @@ -782,7 +782,9 @@ @media all and (max-width:75em) { .listViewUserDataButtons { - display: none !important + display: flex; + flex-wrap: wrap; + font-size: 85%; } } diff --git a/src/components/listview/listview.js b/src/components/listview/listview.js index dcc3636a64..06f569c913 100644 --- a/src/components/listview/listview.js +++ b/src/components/listview/listview.js @@ -470,6 +470,12 @@ define(['itemHelper', 'mediaInfo', 'indicators', 'connectionManager', 'layoutMan if (!options.recordButton && (item.Type === 'Timer' || item.Type === 'Program')) { html += indicators.getTimerIndicator(item).replace('indicatorIcon', 'indicatorIcon listItemAside'); } + if (item.Type === 'Episode') { + html += '
'; + } else { + html += '
'; + } + if (!clickEntireItem) { @@ -491,8 +497,6 @@ define(['itemHelper', 'mediaInfo', 'indicators', 'connectionManager', 'layoutMan if (options.enableUserDataButtons !== false) { - html += ''; - var userData = item.UserData || {}; var likes = userData.Likes == null ? '' : userData.Likes; @@ -500,13 +504,12 @@ define(['itemHelper', 'mediaInfo', 'indicators', 'connectionManager', 'layoutMan html += ''; } - html += ''; - if (itemHelper.canRate(item)) { html += ''; } } } + html += '
'; if (enableContentWrapper) { html += '
'; From 5a41d706c52a81b12277253744b10387c3e696f9 Mon Sep 17 00:00:00 2001 From: grafixeyehero Date: Fri, 17 Jan 2020 18:52:47 +0300 Subject: [PATCH 012/116] fix style on desktop --- src/assets/css/librarybrowser.css | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/assets/css/librarybrowser.css b/src/assets/css/librarybrowser.css index ed3f0f13fd..af483bc1dc 100644 --- a/src/assets/css/librarybrowser.css +++ b/src/assets/css/librarybrowser.css @@ -752,6 +752,11 @@ font-weight: 600 } +.listViewUserDataButtons { + display: flex; + align-items: center; +} + .recordingProgressBar::-moz-progress-bar { background-color: #c33 } From b051caa8a975d3bc6fb27012fef32085023a412c Mon Sep 17 00:00:00 2001 From: grafixeyehero Date: Fri, 17 Jan 2020 19:26:19 +0300 Subject: [PATCH 013/116] revert back does't gowell on smaller screen and reduce font size --- src/assets/css/librarybrowser.css | 9 ++------- src/components/listview/listview.js | 6 +----- 2 files changed, 3 insertions(+), 12 deletions(-) diff --git a/src/assets/css/librarybrowser.css b/src/assets/css/librarybrowser.css index af483bc1dc..e2f9e34804 100644 --- a/src/assets/css/librarybrowser.css +++ b/src/assets/css/librarybrowser.css @@ -752,11 +752,6 @@ font-weight: 600 } -.listViewUserDataButtons { - display: flex; - align-items: center; -} - .recordingProgressBar::-moz-progress-bar { background-color: #c33 } @@ -788,8 +783,8 @@ @media all and (max-width:75em) { .listViewUserDataButtons { display: flex; - flex-wrap: wrap; - font-size: 85%; + align-items: center; + font-size: 65%; } } diff --git a/src/components/listview/listview.js b/src/components/listview/listview.js index 06f569c913..ebcc3fdd92 100644 --- a/src/components/listview/listview.js +++ b/src/components/listview/listview.js @@ -470,12 +470,8 @@ define(['itemHelper', 'mediaInfo', 'indicators', 'connectionManager', 'layoutMan if (!options.recordButton && (item.Type === 'Timer' || item.Type === 'Program')) { html += indicators.getTimerIndicator(item).replace('indicatorIcon', 'indicatorIcon listItemAside'); } - if (item.Type === 'Episode') { - html += '
'; - } else { - html += '
'; - } + html += '
'; if (!clickEntireItem) { From a821b78a8b539b73f09025a62b991351091a0085 Mon Sep 17 00:00:00 2001 From: grafixeyehero Date: Fri, 17 Jan 2020 20:10:38 +0300 Subject: [PATCH 014/116] reduce font size for indicator and btn --- src/components/listview/listview.css | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/components/listview/listview.css b/src/components/listview/listview.css index 1ed543c11b..3fdce97057 100644 --- a/src/components/listview/listview.css +++ b/src/components/listview/listview.css @@ -154,8 +154,9 @@ margin-right: 0 !important; } + .listItemIndicators, .listItemImageButton { - font-size: 1em !important; + font-size: 0.6em !important; } .listItemBody { From b9ee5c7c242547cb3547f617adfcb410b1dbdee4 Mon Sep 17 00:00:00 2001 From: grafixeyehero Date: Fri, 17 Jan 2020 21:00:12 +0300 Subject: [PATCH 015/116] centering primery title on mobile layout --- src/assets/css/librarybrowser.css | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/assets/css/librarybrowser.css b/src/assets/css/librarybrowser.css index e2f9e34804..b0037f9ae7 100644 --- a/src/assets/css/librarybrowser.css +++ b/src/assets/css/librarybrowser.css @@ -408,6 +408,19 @@ position: relative; } +.layout-mobile .parentName, +.layout-mobile .itemName, +.layout-mobile .itemMiscInfo, +.layout-mobile .mainDetailButtons { + display: flex; + align-items: center; + justify-content: center; +} + +.layout-mobile .infoText { + white-space: normal; +} + .layout-tv .detailPagePrimaryContainer { position: relative; } From 60e64f8a582f16b7743df6703934d30f00932bbc Mon Sep 17 00:00:00 2001 From: Dmitry Lyzo Date: Tue, 21 Jan 2020 12:51:33 +0300 Subject: [PATCH 016/116] Add exit on "Go back" --- src/components/appRouter.js | 2 +- src/components/apphost.js | 58 +++++++++++++++++++++++++++++++------ src/scripts/inputManager.js | 8 +++-- src/strings/en-us.json | 1 + src/strings/ru.json | 1 + 5 files changed, 58 insertions(+), 12 deletions(-) diff --git a/src/components/appRouter.js b/src/components/appRouter.js index 8643e3f47f..9df0ee5f1b 100644 --- a/src/components/appRouter.js +++ b/src/components/appRouter.js @@ -551,7 +551,7 @@ define(['loading', 'globalize', 'events', 'viewManager', 'layoutManager', 'skinM return false; } - if (curr.type === 'home') { + if (!document.querySelector('.dialogContainer') && curr.type === 'home') { return false; } return page.canGoBack(); diff --git a/src/components/apphost.js b/src/components/apphost.js index b1b1c30dc9..d85706b9fd 100644 --- a/src/components/apphost.js +++ b/src/components/apphost.js @@ -311,6 +311,52 @@ define(["appSettings", "browser", "events", "htmlMediaHelper"], function (appSet }); } + /** + * Do exit according to platform + */ + function doExit() { + try { + if (window.NativeShell) { + window.NativeShell.AppHost.exit(); + } else if (browser.tizen) { + tizen.application.getCurrentApplication().exit(); + } else if (browser.web0s) { + webOS.platformBack(); + } else { + window.close(); + } + } catch (err) { + console.log("error closing application: " + err); + } + } + + var exitPromise; + + /** + * Ask user for exit + */ + function askForExit() { + if (!!exitPromise) { + return; + } + + require(["actionsheet"], function (actionsheet) { + exitPromise = actionsheet.show({ + title: Globalize.translate("MessageConfirmAppExit"), + items: [ + {id: "yes", name: Globalize.translate("Yes")}, + {id: "no", name: Globalize.translate("No")} + ] + }).then(function (value) { + if (value === "yes") { + doExit(); + } + }).finally(function () { + exitPromise = null; + }); + }); + } + var deviceId; var deviceName; var appName = "Jellyfin Web"; @@ -326,16 +372,10 @@ define(["appSettings", "browser", "events", "htmlMediaHelper"], function (appSet alert("setWindowState is not supported and should not be called"); }, exit: function () { - if (window.NativeShell) { - window.NativeShell.AppHost.exit(); - } else if (browser.tizen) { - try { - tizen.application.getCurrentApplication().exit(); - } catch (err) { - console.log("error closing application: " + err); - } + if (!!window.appMode && browser.tizen) { + askForExit(); } else { - window.close(); + doExit(); } }, supports: function (command) { diff --git a/src/scripts/inputManager.js b/src/scripts/inputManager.js index 634b5e1b30..c6a64a69f5 100644 --- a/src/scripts/inputManager.js +++ b/src/scripts/inputManager.js @@ -1,4 +1,4 @@ -define(['playbackManager', 'focusManager', 'appRouter', 'dom'], function (playbackManager, focusManager, appRouter, dom) { +define(['playbackManager', 'focusManager', 'appRouter', 'dom', 'apphost'], function (playbackManager, focusManager, appRouter, dom, appHost) { 'use strict'; var lastInputTime = new Date().getTime(); @@ -98,7 +98,11 @@ define(['playbackManager', 'focusManager', 'appRouter', 'dom'], function (playba appRouter.showSettings(); break; case 'back': - appRouter.back(); + if (appRouter.canGoBack()) { + appRouter.back(); + } else if (appHost.supports('exit')) { + appHost.exit(); + } break; case 'forward': break; diff --git a/src/strings/en-us.json b/src/strings/en-us.json index 6dea5a7892..4eb2289c99 100644 --- a/src/strings/en-us.json +++ b/src/strings/en-us.json @@ -945,6 +945,7 @@ "MessageAlreadyInstalled": "This version is already installed.", "MessageAreYouSureDeleteSubtitles": "Are you sure you wish to delete this subtitle file?", "MessageAreYouSureYouWishToRemoveMediaFolder": "Are you sure you wish to remove this media folder?", + "MessageConfirmAppExit": "Do you want to exit?", "MessageConfirmDeleteGuideProvider": "Are you sure you wish to delete this guide provider?", "MessageConfirmDeleteTunerDevice": "Are you sure you wish to delete this device?", "MessageConfirmProfileDeletion": "Are you sure you wish to delete this profile?", diff --git a/src/strings/ru.json b/src/strings/ru.json index 4e612aa5bd..140c5bdb80 100644 --- a/src/strings/ru.json +++ b/src/strings/ru.json @@ -890,6 +890,7 @@ "MessageAlreadyInstalled": "Данная версия уже установлена.", "MessageAreYouSureDeleteSubtitles": "Вы действительно хотите удалить данный файл субитров?", "MessageAreYouSureYouWishToRemoveMediaFolder": "Вы действительно хотите изъять данную медиапапку?", + "MessageConfirmAppExit": "Вы хотите выйти?", "MessageConfirmDeleteGuideProvider": "Вы действительно хотите удалить данного поставщика телегида?", "MessageConfirmDeleteTunerDevice": "Вы действительно хотите удалить данное устройство?", "MessageConfirmProfileDeletion": "Вы действительно хотите удалить данный профиль?", From d345e32333ff27c432f58298b23cde49a1908ed3 Mon Sep 17 00:00:00 2001 From: Dmitry Lyzo Date: Tue, 21 Jan 2020 14:04:26 +0300 Subject: [PATCH 017/116] Fix eslint errors --- src/components/apphost.js | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/components/apphost.js b/src/components/apphost.js index d85706b9fd..d6099b6ddf 100644 --- a/src/components/apphost.js +++ b/src/components/apphost.js @@ -342,18 +342,18 @@ define(["appSettings", "browser", "events", "htmlMediaHelper"], function (appSet require(["actionsheet"], function (actionsheet) { exitPromise = actionsheet.show({ - title: Globalize.translate("MessageConfirmAppExit"), - items: [ - {id: "yes", name: Globalize.translate("Yes")}, - {id: "no", name: Globalize.translate("No")} - ] - }).then(function (value) { - if (value === "yes") { - doExit(); - } - }).finally(function () { - exitPromise = null; - }); + title: Globalize.translate("MessageConfirmAppExit"), + items: [ + {id: "yes", name: Globalize.translate("Yes")}, + {id: "no", name: Globalize.translate("No")} + ] + }).then(function (value) { + if (value === "yes") { + doExit(); + } + }).finally(function () { + exitPromise = null; + }); }); } From 633999e5282317dbee60aeab80b08593ace5518a Mon Sep 17 00:00:00 2001 From: grafixeyehero Date: Tue, 21 Jan 2020 20:11:24 +0300 Subject: [PATCH 018/116] fix header tab scroll for mobile --- src/components/emby-tabs/emby-tabs.css | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/components/emby-tabs/emby-tabs.css b/src/components/emby-tabs/emby-tabs.css index b8831b881a..8d1ac464fb 100644 --- a/src/components/emby-tabs/emby-tabs.css +++ b/src/components/emby-tabs/emby-tabs.css @@ -31,6 +31,10 @@ overflow: hidden; } +.layout-mobile .emby-tabs-slider { + overflow: auto; +} + .tabContent:not(.is-active) { display: none; } From a25e5d7f9bdaf2df28fe4742084f4789b47f020b Mon Sep 17 00:00:00 2001 From: grafixeyehero Date: Tue, 21 Jan 2020 21:58:44 +0300 Subject: [PATCH 019/116] fix alphaPicker class --- src/controllers/movies/movies.js | 8 +++++--- src/controllers/movies/movietrailers.js | 8 +++++--- src/controllers/music/musicalbums.js | 8 +++++--- src/controllers/music/musicartists.js | 10 +++++++--- src/controllers/shows/tvshows.js | 10 +++++++--- src/movies.html | 8 ++++---- src/music.html | 12 ++++++------ src/tv.html | 4 ++-- 8 files changed, 41 insertions(+), 27 deletions(-) diff --git a/src/controllers/movies/movies.js b/src/controllers/movies/movies.js index 3a365acc90..fcf827016f 100644 --- a/src/controllers/movies/movies.js +++ b/src/controllers/movies/movies.js @@ -169,9 +169,11 @@ define(["loading", "layoutManager", "userSettings", "events", "libraryBrowser", valueChangeEvent: "click" }); - if (layoutManager.desktop || layoutManager.mobile) { - alphaPickerElement.classList.add("alphabetPicker-right"); - itemsContainer.classList.remove("padded-left-withalphapicker"); + if (layoutManager.tv) { + alphaPickerElement.classList.add("alphaPicker-fixed-left"); + itemsContainer.classList.add("padded-left-withalphapicker"); + } else { + alphaPickerElement.classList.add("alphaPicker-fixed-right"); itemsContainer.classList.add("padded-right-withalphapicker"); } } diff --git a/src/controllers/movies/movietrailers.js b/src/controllers/movies/movietrailers.js index 3e62298613..3f6a9d7d00 100644 --- a/src/controllers/movies/movietrailers.js +++ b/src/controllers/movies/movietrailers.js @@ -193,6 +193,7 @@ define(["layoutManager", "loading", "events", "libraryBrowser", "imageLoader", " function initPage(tabContent) { var alphaPickerElement = tabContent.querySelector(".alphaPicker"); + var itemsContainer = tabContent.querySelector(".itemsContainer"); alphaPickerElement.addEventListener("alphavaluechanged", function (e) { var newValue = e.detail.value; var query = getQuery(tabContent); @@ -205,10 +206,11 @@ define(["layoutManager", "loading", "events", "libraryBrowser", "imageLoader", " valueChangeEvent: "click" }); - if (layoutManager.desktop || layoutManager.mobile) { + if (layoutManager.tv) { + tabContent.querySelector(".alphaPicker").classList.add("alphabetPicker-left"); + itemsContainer.classList.add("padded-left-withalphapicker"); + } else { tabContent.querySelector(".alphaPicker").classList.add("alphabetPicker-right"); - var itemsContainer = tabContent.querySelector(".itemsContainer"); - itemsContainer.classList.remove("padded-left-withalphapicker"); itemsContainer.classList.add("padded-right-withalphapicker"); } diff --git a/src/controllers/music/musicalbums.js b/src/controllers/music/musicalbums.js index 480f0af77f..b5bb5eacab 100644 --- a/src/controllers/music/musicalbums.js +++ b/src/controllers/music/musicalbums.js @@ -199,6 +199,7 @@ define(["layoutManager", "playbackManager", "loading", "events", "libraryBrowser function initPage(tabContent) { var alphaPickerElement = tabContent.querySelector(".alphaPicker"); + var itemsContainer = tabContent.querySelector(".itemsContainer"); alphaPickerElement.addEventListener("alphavaluechanged", function (e) { var newValue = e.detail.value; @@ -211,10 +212,11 @@ define(["layoutManager", "playbackManager", "loading", "events", "libraryBrowser element: alphaPickerElement, valueChangeEvent: "click" }); - if (layoutManager.desktop || layoutManager.mobile) { + if (layoutManager.tv) { + tabContent.querySelector(".alphaPicker").classList.add("alphabetPicker-left"); + itemsContainer.classList.add("padded-left-withalphapicker"); + } else { tabContent.querySelector(".alphaPicker").classList.add("alphabetPicker-right"); - var itemsContainer = tabContent.querySelector(".itemsContainer"); - itemsContainer.classList.remove("padded-left-withalphapicker"); itemsContainer.classList.add("padded-right-withalphapicker"); } diff --git a/src/controllers/music/musicartists.js b/src/controllers/music/musicartists.js index aaeea8c885..01fdf7d563 100644 --- a/src/controllers/music/musicartists.js +++ b/src/controllers/music/musicartists.js @@ -181,6 +181,7 @@ define(["layoutManager", "loading", "events", "libraryBrowser", "imageLoader", " function initPage(tabContent) { var alphaPickerElement = tabContent.querySelector(".alphaPicker"); + var itemsContainer = tabContent.querySelector(".itemsContainer"); alphaPickerElement.addEventListener("alphavaluechanged", function (e) { var newValue = e.detail.value; @@ -193,10 +194,13 @@ define(["layoutManager", "loading", "events", "libraryBrowser", "imageLoader", " element: alphaPickerElement, valueChangeEvent: "click" }); - if (layoutManager.desktop || layoutManager.mobile) { + if (layoutManager.tv) { + tabContent.querySelector(".alphaPicker").classList.add("alphabetPicker-left"); + alphaPickerElement.classList.add("alphaPicker-fixed-left"); + itemsContainer.classList.add("padded-left-withalphapicker"); + } else { tabContent.querySelector(".alphaPicker").classList.add("alphabetPicker-right"); - var itemsContainer = tabContent.querySelector(".itemsContainer"); - itemsContainer.classList.remove("padded-left-withalphapicker"); + alphaPickerElement.classList.add("alphaPicker-fixed-right"); itemsContainer.classList.add("padded-right-withalphapicker"); } diff --git a/src/controllers/shows/tvshows.js b/src/controllers/shows/tvshows.js index 1dec530540..c37b3d8fbd 100644 --- a/src/controllers/shows/tvshows.js +++ b/src/controllers/shows/tvshows.js @@ -210,6 +210,7 @@ define(["layoutManager", "loading", "events", "libraryBrowser", "imageLoader", " function initPage(tabContent) { var alphaPickerElement = tabContent.querySelector(".alphaPicker"); + var itemsContainer = tabContent.querySelector(".itemsContainer"); alphaPickerElement.addEventListener("alphavaluechanged", function (e) { var newValue = e.detail.value; @@ -222,10 +223,13 @@ define(["layoutManager", "loading", "events", "libraryBrowser", "imageLoader", " element: alphaPickerElement, valueChangeEvent: "click" }); - if (layoutManager.desktop || layoutManager.mobile) { + if (layoutManager.tv) { + tabContent.querySelector(".alphaPicker").classList.add("alphabetPicker-left"); + alphaPickerElement.classList.add("alphaPicker-fixed-left"); + itemsContainer.classList.add("padded-left-withalphapicker"); + } else { tabContent.querySelector(".alphaPicker").classList.add("alphabetPicker-right"); - var itemsContainer = tabContent.querySelector(".itemsContainer"); - itemsContainer.classList.remove("padded-left-withalphapicker"); + alphaPickerElement.classList.add("alphaPicker-fixed-right"); itemsContainer.classList.add("padded-right-withalphapicker"); } diff --git a/src/movies.html b/src/movies.html index c211d9686a..ae5aaf5e73 100644 --- a/src/movies.html +++ b/src/movies.html @@ -8,10 +8,10 @@
-
+
-
+
@@ -53,7 +53,7 @@
-
+
@@ -90,4 +90,4 @@
-
\ No newline at end of file +
diff --git a/src/music.html b/src/music.html index e86f179208..6e860de01f 100644 --- a/src/music.html +++ b/src/music.html @@ -44,10 +44,10 @@
-
+
-
+
@@ -60,10 +60,10 @@
-
+
-
+
@@ -76,10 +76,10 @@
-
+
-
+
diff --git a/src/tv.html b/src/tv.html index 1327d53ffe..f097eba15d 100644 --- a/src/tv.html +++ b/src/tv.html @@ -8,8 +8,8 @@
-
-
+
+
From 4939f2fd60468e4716634a72fde3d43734b5d4d4 Mon Sep 17 00:00:00 2001 From: grafixeyehero Date: Tue, 21 Jan 2020 22:21:03 +0300 Subject: [PATCH 020/116] add alphaPicker-fixed left and right class --- src/controllers/movies/movietrailers.js | 2 ++ src/controllers/music/musicalbums.js | 3 +++ src/controllers/music/musicartists.js | 1 + 3 files changed, 6 insertions(+) diff --git a/src/controllers/movies/movietrailers.js b/src/controllers/movies/movietrailers.js index 3f6a9d7d00..33cfe628c1 100644 --- a/src/controllers/movies/movietrailers.js +++ b/src/controllers/movies/movietrailers.js @@ -208,9 +208,11 @@ define(["layoutManager", "loading", "events", "libraryBrowser", "imageLoader", " if (layoutManager.tv) { tabContent.querySelector(".alphaPicker").classList.add("alphabetPicker-left"); + alphaPickerElement.classList.add("alphaPicker-fixed-left"); itemsContainer.classList.add("padded-left-withalphapicker"); } else { tabContent.querySelector(".alphaPicker").classList.add("alphabetPicker-right"); + alphaPickerElement.classList.add("alphaPicker-fixed-right"); itemsContainer.classList.add("padded-right-withalphapicker"); } diff --git a/src/controllers/music/musicalbums.js b/src/controllers/music/musicalbums.js index b5bb5eacab..d48f7466b7 100644 --- a/src/controllers/music/musicalbums.js +++ b/src/controllers/music/musicalbums.js @@ -212,11 +212,14 @@ define(["layoutManager", "playbackManager", "loading", "events", "libraryBrowser element: alphaPickerElement, valueChangeEvent: "click" }); + if (layoutManager.tv) { tabContent.querySelector(".alphaPicker").classList.add("alphabetPicker-left"); + alphaPickerElement.classList.add("alphaPicker-fixed-left"); itemsContainer.classList.add("padded-left-withalphapicker"); } else { tabContent.querySelector(".alphaPicker").classList.add("alphabetPicker-right"); + alphaPickerElement.classList.add("alphaPicker-fixed-right"); itemsContainer.classList.add("padded-right-withalphapicker"); } diff --git a/src/controllers/music/musicartists.js b/src/controllers/music/musicartists.js index 01fdf7d563..5e1a23dfe9 100644 --- a/src/controllers/music/musicartists.js +++ b/src/controllers/music/musicartists.js @@ -194,6 +194,7 @@ define(["layoutManager", "loading", "events", "libraryBrowser", "imageLoader", " element: alphaPickerElement, valueChangeEvent: "click" }); + if (layoutManager.tv) { tabContent.querySelector(".alphaPicker").classList.add("alphabetPicker-left"); alphaPickerElement.classList.add("alphaPicker-fixed-left"); From 474e53cc47756afd8013d91ad31ef91752ba7dd0 Mon Sep 17 00:00:00 2001 From: grafixeyehero Date: Wed, 22 Jan 2020 00:22:26 +0300 Subject: [PATCH 021/116] Fix some sytle for PR #663 --- src/assets/css/librarybrowser.css | 29 ++++++++++------------------- src/itemdetails.html | 4 ++-- 2 files changed, 12 insertions(+), 21 deletions(-) diff --git a/src/assets/css/librarybrowser.css b/src/assets/css/librarybrowser.css index b0037f9ae7..74b25c3c76 100644 --- a/src/assets/css/librarybrowser.css +++ b/src/assets/css/librarybrowser.css @@ -242,20 +242,6 @@ } @media all and (min-width:84em) { - .headerTop { - padding: 1.489em 0 - } - - .headerTabs { - align-self: center; - width: auto; - align-items: center; - justify-content: center; - margin-top: -3.34em; - position: relative; - top: -1.05em - } - .libraryPage:not(.noSecondaryNavPage) { padding-top: 4.6em !important } @@ -430,7 +416,7 @@ align-items: center; align-content: center; position: sticky; - top: 0; + top: 8%; z-index: 2; } @@ -467,7 +453,7 @@ .detailImageContainer { position: sticky; - top: 15%; + top: 25%; float: left; width: 22.786458333333332vw; } @@ -686,11 +672,16 @@ @media all and (min-width:62.5em) { .headerTop { - padding: 1.489em 0 + padding: 0.8em 0 } - .itemDetailPage { - padding-top: 5em !important + .headerTabs { + align-self: center; + width: auto; + align-items: center; + justify-content: center; + margin-top: -3.34em; + position: relative; } .detailFloatingButton { diff --git a/src/itemdetails.html b/src/itemdetails.html index 96df0a3481..849642f451 100644 --- a/src/itemdetails.html +++ b/src/itemdetails.html @@ -6,7 +6,7 @@
-
+
@@ -108,7 +108,7 @@
-
+
From f3426a97a1bfc8c0e1c0422573073cf890856ea0 Mon Sep 17 00:00:00 2001 From: grafixeyehero Date: Wed, 22 Jan 2020 19:42:43 +0300 Subject: [PATCH 022/116] remove alphabetPicker-left alphaPicker-fixed-left padded-left-withalphapicker class --- src/assets/css/librarybrowser.css | 4 ---- src/components/alphapicker/style.css | 8 -------- src/controllers/list.js | 20 ++++---------------- src/controllers/movies/movies.js | 9 ++------- src/controllers/movies/movietrailers.js | 12 +++--------- src/controllers/music/musicalbums.js | 12 +++--------- src/controllers/music/musicartists.js | 12 +++--------- src/controllers/shows/tvshows.js | 13 ++++--------- 8 files changed, 19 insertions(+), 71 deletions(-) diff --git a/src/assets/css/librarybrowser.css b/src/assets/css/librarybrowser.css index b9f406bc0d..2b53663f2a 100644 --- a/src/assets/css/librarybrowser.css +++ b/src/assets/css/librarybrowser.css @@ -895,10 +895,6 @@ div:not(.sectionTitleContainer-cards) > .sectionTitle-cards { } @media all and (min-height:31.25em) { - .padded-left-withalphapicker { - padding-left: 7.5%; - } - .padded-right-withalphapicker { padding-right: 7.5%; } diff --git a/src/components/alphapicker/style.css b/src/components/alphapicker/style.css index 29543421eb..90208d039f 100644 --- a/src/components/alphapicker/style.css +++ b/src/components/alphapicker/style.css @@ -112,20 +112,12 @@ bottom: 1%; } -.alphaPicker-fixed-left { - left: .4em; -} - .alphaPicker-fixed-right { right: .4em; } @media all and (min-width: 62.5em) { - .alphaPicker-fixed-left { - left: 1em; - } - .alphaPicker-fixed-right { right: 1em; } diff --git a/src/controllers/list.js b/src/controllers/list.js index a554bec611..f5d601345d 100644 --- a/src/controllers/list.js +++ b/src/controllers/list.js @@ -203,15 +203,9 @@ define(["globalize", "listView", "layoutManager", "userSettings", "focusManager" if ("SortName" === values.sortBy && "Ascending" === values.sortOrder && numItems > 40) { alphaPicker.classList.remove("hide"); - - if (layoutManager.tv) { - instance.itemsContainer.parentNode.classList.add("padded-left-withalphapicker"); - } else { - instance.itemsContainer.parentNode.classList.add("padded-right-withalphapicker"); - } + instance.itemsContainer.parentNode.classList.add("padded-right-withalphapicker"); } else { alphaPicker.classList.add("hide"); - instance.itemsContainer.parentNode.classList.remove("padded-left-withalphapicker"); instance.itemsContainer.parentNode.classList.remove("padded-right-withalphapicker"); } } @@ -540,15 +534,9 @@ define(["globalize", "listView", "layoutManager", "userSettings", "focusManager" self.scroller = view.querySelector(".scrollFrameY"); var alphaPickerElement = self.alphaPickerElement; - if (layoutManager.tv) { - alphaPickerElement.classList.add("alphaPicker-fixed-left"); - alphaPickerElement.classList.add("focuscontainer-left"); - self.itemsContainer.parentNode.classList.add("padded-left-withalphapicker"); - } else { - alphaPickerElement.classList.add("alphaPicker-fixed-right"); - alphaPickerElement.classList.add("focuscontainer-right"); - self.itemsContainer.parentNode.classList.add("padded-right-withalphapicker"); - } + alphaPickerElement.classList.add("alphaPicker-fixed-right"); + alphaPickerElement.classList.add("focuscontainer-right"); + self.itemsContainer.parentNode.classList.add("padded-right-withalphapicker"); self.alphaPicker = new alphaPicker({ element: alphaPickerElement, diff --git a/src/controllers/movies/movies.js b/src/controllers/movies/movies.js index fcf827016f..7ba467c1a4 100644 --- a/src/controllers/movies/movies.js +++ b/src/controllers/movies/movies.js @@ -169,13 +169,8 @@ define(["loading", "layoutManager", "userSettings", "events", "libraryBrowser", valueChangeEvent: "click" }); - if (layoutManager.tv) { - alphaPickerElement.classList.add("alphaPicker-fixed-left"); - itemsContainer.classList.add("padded-left-withalphapicker"); - } else { - alphaPickerElement.classList.add("alphaPicker-fixed-right"); - itemsContainer.classList.add("padded-right-withalphapicker"); - } + alphaPickerElement.classList.add("alphaPicker-fixed-right"); + itemsContainer.classList.add("padded-right-withalphapicker"); } var btnFilter = tabContent.querySelector(".btnFilter"); diff --git a/src/controllers/movies/movietrailers.js b/src/controllers/movies/movietrailers.js index 33cfe628c1..c764190ee0 100644 --- a/src/controllers/movies/movietrailers.js +++ b/src/controllers/movies/movietrailers.js @@ -206,15 +206,9 @@ define(["layoutManager", "loading", "events", "libraryBrowser", "imageLoader", " valueChangeEvent: "click" }); - if (layoutManager.tv) { - tabContent.querySelector(".alphaPicker").classList.add("alphabetPicker-left"); - alphaPickerElement.classList.add("alphaPicker-fixed-left"); - itemsContainer.classList.add("padded-left-withalphapicker"); - } else { - tabContent.querySelector(".alphaPicker").classList.add("alphabetPicker-right"); - alphaPickerElement.classList.add("alphaPicker-fixed-right"); - itemsContainer.classList.add("padded-right-withalphapicker"); - } + tabContent.querySelector(".alphaPicker").classList.add("alphabetPicker-right"); + alphaPickerElement.classList.add("alphaPicker-fixed-right"); + itemsContainer.classList.add("padded-right-withalphapicker"); tabContent.querySelector(".btnFilter").addEventListener("click", function () { self.showFilterMenu(); diff --git a/src/controllers/music/musicalbums.js b/src/controllers/music/musicalbums.js index d48f7466b7..58d30e71da 100644 --- a/src/controllers/music/musicalbums.js +++ b/src/controllers/music/musicalbums.js @@ -213,15 +213,9 @@ define(["layoutManager", "playbackManager", "loading", "events", "libraryBrowser valueChangeEvent: "click" }); - if (layoutManager.tv) { - tabContent.querySelector(".alphaPicker").classList.add("alphabetPicker-left"); - alphaPickerElement.classList.add("alphaPicker-fixed-left"); - itemsContainer.classList.add("padded-left-withalphapicker"); - } else { - tabContent.querySelector(".alphaPicker").classList.add("alphabetPicker-right"); - alphaPickerElement.classList.add("alphaPicker-fixed-right"); - itemsContainer.classList.add("padded-right-withalphapicker"); - } + tabContent.querySelector(".alphaPicker").classList.add("alphabetPicker-right"); + alphaPickerElement.classList.add("alphaPicker-fixed-right"); + itemsContainer.classList.add("padded-right-withalphapicker"); tabContent.querySelector(".btnFilter").addEventListener("click", function () { self.showFilterMenu(); diff --git a/src/controllers/music/musicartists.js b/src/controllers/music/musicartists.js index 5e1a23dfe9..ceed448a06 100644 --- a/src/controllers/music/musicartists.js +++ b/src/controllers/music/musicartists.js @@ -195,15 +195,9 @@ define(["layoutManager", "loading", "events", "libraryBrowser", "imageLoader", " valueChangeEvent: "click" }); - if (layoutManager.tv) { - tabContent.querySelector(".alphaPicker").classList.add("alphabetPicker-left"); - alphaPickerElement.classList.add("alphaPicker-fixed-left"); - itemsContainer.classList.add("padded-left-withalphapicker"); - } else { - tabContent.querySelector(".alphaPicker").classList.add("alphabetPicker-right"); - alphaPickerElement.classList.add("alphaPicker-fixed-right"); - itemsContainer.classList.add("padded-right-withalphapicker"); - } + tabContent.querySelector(".alphaPicker").classList.add("alphabetPicker-right"); + alphaPickerElement.classList.add("alphaPicker-fixed-right"); + itemsContainer.classList.add("padded-right-withalphapicker"); tabContent.querySelector(".btnFilter").addEventListener("click", function () { self.showFilterMenu(); diff --git a/src/controllers/shows/tvshows.js b/src/controllers/shows/tvshows.js index c37b3d8fbd..24f6cb1a03 100644 --- a/src/controllers/shows/tvshows.js +++ b/src/controllers/shows/tvshows.js @@ -223,15 +223,10 @@ define(["layoutManager", "loading", "events", "libraryBrowser", "imageLoader", " element: alphaPickerElement, valueChangeEvent: "click" }); - if (layoutManager.tv) { - tabContent.querySelector(".alphaPicker").classList.add("alphabetPicker-left"); - alphaPickerElement.classList.add("alphaPicker-fixed-left"); - itemsContainer.classList.add("padded-left-withalphapicker"); - } else { - tabContent.querySelector(".alphaPicker").classList.add("alphabetPicker-right"); - alphaPickerElement.classList.add("alphaPicker-fixed-right"); - itemsContainer.classList.add("padded-right-withalphapicker"); - } + + tabContent.querySelector(".alphaPicker").classList.add("alphabetPicker-right"); + alphaPickerElement.classList.add("alphaPicker-fixed-right"); + itemsContainer.classList.add("padded-right-withalphapicker"); tabContent.querySelector(".btnFilter").addEventListener("click", function () { self.showFilterMenu(); From a592ac2b1a2ff563a1a0dbb49a4f585f0567b377 Mon Sep 17 00:00:00 2001 From: grafixeyehero Date: Wed, 22 Jan 2020 23:14:28 +0300 Subject: [PATCH 023/116] rename detailButton-mobile to detailButton --- src/assets/css/librarybrowser.css | 26 ++++---- src/itemdetails.html | 102 +++++++++++++++--------------- 2 files changed, 62 insertions(+), 66 deletions(-) diff --git a/src/assets/css/librarybrowser.css b/src/assets/css/librarybrowser.css index 74b25c3c76..a6af6dccd2 100644 --- a/src/assets/css/librarybrowser.css +++ b/src/assets/css/librarybrowser.css @@ -4,7 +4,7 @@ vertical-align: middle } -.detailButton-mobile, +.detailButton, .itemLinks, .listPaging, .sectionTabs, @@ -95,7 +95,7 @@ display: flex; } -.detailButton-mobile, +.detailButton, .skinHeader { flex-direction: column; } @@ -563,7 +563,7 @@ } } -.detailButton-mobile, +.detailButton, .mainDetailButtons { display: flex; } @@ -601,7 +601,7 @@ margin-top: 1.5em !important } -.detailButton-mobile { +.detailButton { display: flex; flex-direction: column; justify-content: center; @@ -610,39 +610,35 @@ padding: .5em .7em !important } -.detailButton { - margin: 0 .5em 0 0 !important -} - @media all and (min-width:29em) { - .detailButton-mobile { + .detailButton { padding-left: .75em !important; padding-right: .75em !important } } @media all and (min-width:32em) { - .detailButton-mobile { + .detailButton { padding-left: .8em !important; padding-right: .8em !important } } @media all and (min-width:35em) { - .detailButton-mobile { + .detailButton { padding-left: .85em !important; padding-right: .85em !important } } -.detailButton-mobile-content { +.detailButton-content { display: flex; flex-direction: column; justify-content: center; align-items: center } -.detailButton-mobile-icon { +.detailButton-icon { font-size: 1.6em !important; width: 1em; height: 1em @@ -654,7 +650,7 @@ width: 22.786458333333332vw; } -.detailButton-mobile-text { +.detailButton-text { margin-top: .7em; font-size: 80%; font-weight: 400 @@ -665,7 +661,7 @@ margin-left: -.5em } - .detailButton { + .detailButtonHideonMobile { display: none !important } } diff --git a/src/itemdetails.html b/src/itemdetails.html index 849642f451..038b4b11ff 100644 --- a/src/itemdetails.html +++ b/src/itemdetails.html @@ -15,94 +15,94 @@
- - - - - - - - - - - -
From f647a1b4c3c71dc7a82d0940afd2a03e9b96ee6f Mon Sep 17 00:00:00 2001 From: Nyanmisaka Date: Fri, 24 Jan 2020 01:04:07 +0800 Subject: [PATCH 024/116] Add and fix some canPlayType --- src/scripts/browserdeviceprofile.js | 167 +++++++++++++++++----------- 1 file changed, 103 insertions(+), 64 deletions(-) diff --git a/src/scripts/browserdeviceprofile.js b/src/scripts/browserdeviceprofile.js index 18b85a6dc0..0f81332502 100644 --- a/src/scripts/browserdeviceprofile.js +++ b/src/scripts/browserdeviceprofile.js @@ -5,8 +5,8 @@ define(['browser'], function (browser) { return !!(videoTestElement.canPlayType && videoTestElement.canPlayType('video/mp4; codecs="avc1.42E01E, mp4a.40.2"').replace(/no/, '')); } - function canPlayH265(videoTestElement, options) { - if (browser.tizen || browser.orsay || browser.xboxOne || browser.web0s || options.supportsHevc) { + function canPlayH265(videoTestElement, protocol) { + if (browser.tizen || browser.orsay || browser.xboxOne || browser.web0s) { return true; } @@ -18,12 +18,27 @@ define(['browser'], function (browser) { } } - // Unfortunately haven't yet found a canPlayType for proper detection - if (browser.iOS && (browser.iOSVersion || 0) >= 11) { - return true; + if (browser.ps4) { + return false; } - return !!(videoTestElement.canPlayType && videoTestElement.canPlayType('video/hevc; codecs="hevc, aac"').replace(/no/, '')); + if (protocol === 'hls') { + + //safari seems to be lying about this + if (browser.iOS || browser.safari) { + return false; + } + + return !!videoTestElement.canPlayType && + (videoTestElement.canPlayType('video/mp2t; codecs="hvc1.1.L0.0"').replace(/no/, '') || + videoTestElement.canPlayType('video/mp2t; codecs="hev1.1.L0.0"').replace(/no/, '') || + videoTestElement.canPlayType('video/mp2t; codecs="hev1.1.2.L150"').replace(/no/, '')); + } + + return !!videoTestElement.canPlayType && + (videoTestElement.canPlayType('video/mp4; codecs="hvc1.1.L0.0"').replace(/no/, '') || + videoTestElement.canPlayType('video/mp4; codecs="hev1.1.L0.0"').replace(/no/, '') || + videoTestElement.canPlayType('video/mp4; codecs="hev1.1.2.L150"').replace(/no/, '')); } var _supportsTextTracks; @@ -41,7 +56,7 @@ define(['browser'], function (browser) { } var _canPlayHls; - function canPlayHls(src) { + function canPlayHls() { if (_canPlayHls == null) { _canPlayHls = canPlayNativeHls() || canPlayHlsWithMSE(); } @@ -64,12 +79,8 @@ define(['browser'], function (browser) { } function canPlayHlsWithMSE() { - if (window.MediaSource != null) { - // text tracks don’t work with this in firefox - return true; - } - - return false; + // text tracks don’t work with this in firefox + return null != window.MediaSource; } function supportsAc3(videoTestElement) { @@ -77,11 +88,20 @@ define(['browser'], function (browser) { return true; } - if (browser.osx || browser.iOS) { - return false; + return videoTestElement.canPlayType('audio/mp4; codecs="ac-3"').replace(/no/, ''); + } + + function supportsAc3InHls(videoTestElement) { + if (browser.tizen || browser.orsay || browser.web0s) { + return true; } - return videoTestElement.canPlayType('audio/mp4; codecs="ac-3"').replace(/no/, ''); + if (!!videoTestElement.canPlayType) { + return videoTestElement.canPlayType('application/x-mpegurl; codecs="avc1.42E01E, ac-3"').replace(/no/, '') || + videoTestElement.canPlayType('application/vnd.apple.mpegURL; codecs="avc1.42E01E, ac-3"').replace(/no/, ''); + } + + return false; } function supportsEac3(videoTestElement) { @@ -96,28 +116,30 @@ define(['browser'], function (browser) { var typeString; if (format === 'flac') { - if (browser.tizen || browser.orsay || browser.web0s) { - return true; - } - if (browser.edgeUwp) { + if (browser.tizen || browser.orsay || browser.web0s || browser.edgeUwp) { return true; } } else if (format === 'wma') { - if (browser.tizen || browser.orsay) { + if (browser.tizen || browser.orsay || browser.edgeUwp) { return true; } - if (browser.edgeUwp) { + } else if (format === 'asf') { + if (browser.tizen || browser.edgeUwp) { return true; } } else if (format === 'opus') { - typeString = 'audio/ogg; codecs="opus"'; - if (document.createElement('audio').canPlayType(typeString).replace(/no/, '')) { + if (!browser.web0s) { + typeString = 'audio/ogg; codecs="opus"'; + return !!document.createElement('audio').canPlayType(typeString).replace(/no/, ''); + } + + return false; + } else if (format === 'alac') { + if (browser.iOS || browser.osx) { return true; } - - return false; } else if (format === 'mp2') { - // For now + //For now return false; } @@ -129,11 +151,7 @@ define(['browser'], function (browser) { typeString = 'audio/' + format; } - if (document.createElement('audio').canPlayType(typeString).replace(/no/, '')) { - return true; - } - - return false; + return !!document.createElement('audio').canPlayType(typeString).replace(/no/, ''); } function testCanPlayMkv(videoTestElement) { @@ -146,8 +164,6 @@ define(['browser'], function (browser) { return true; } - var userAgent = navigator.userAgent.toLowerCase(); - // Unfortunately there's no real way to detect mkv support if (browser.chrome) { // Not supported on opera tv @@ -155,6 +171,8 @@ define(['browser'], function (browser) { return false; } + var userAgent = navigator.userAgent.toLowerCase(); + // Filter out browsers based on chromium that don't support mkv if (userAgent.indexOf('vivaldi') !== -1 || userAgent.indexOf('opera') !== -1) { return false; @@ -163,10 +181,6 @@ define(['browser'], function (browser) { return true; } - if (browser.edgeUwp) { - return true; - } - return false; } @@ -203,15 +217,15 @@ define(['browser'], function (browser) { switch (container) { case 'asf': - supported = browser.tizen || browser.orsay || browser.edgeUwp; + supported = browser.tizen || browser.orsay || browser.web0s || browser.edgeUwp; videoAudioCodecs = []; break; case 'avi': - supported = browser.tizen || browser.orsay || browser.edgeUwp; + supported = browser.tizen || browser.orsay || browser.web0s || browser.edgeUwp; break; case 'mpg': case 'mpeg': - supported = browser.edgeUwp || browser.tizen || browser.orsay; + supported = browser.tizen || browser.orsay || browser.web0s || browser.edgeUwp; break; case 'flv': supported = browser.tizen || browser.orsay; @@ -227,7 +241,7 @@ define(['browser'], function (browser) { supported = browser.tizen || browser.orsay; break; case 'mov': - supported = browser.tizen || browser.orsay || browser.chrome || browser.edgeUwp; + supported = browser.tizen || browser.orsay || browser.web0s || browser.edgeUwp; videoCodecs.push('h264'); break; case 'm2ts': @@ -247,7 +261,7 @@ define(['browser'], function (browser) { case 'ts': supported = testCanPlayTs(); videoCodecs.push('h264'); - if (canPlayH265(videoTestElement, options)) { + if (canPlayH265(videoTestElement)) { videoCodecs.push('h265'); videoCodecs.push('hevc'); } @@ -263,16 +277,12 @@ define(['browser'], function (browser) { break; } - if (!supported) { - return null; - } - - return { + return supported ? { Container: profileContainer, Type: 'Video', VideoCodec: videoCodecs.join(','), AudioCodec: videoAudioCodecs.join(',') - }; + } : null; } function getMaxBitrate() { @@ -373,8 +383,7 @@ define(['browser'], function (browser) { // This works in edge desktop, but not mobile // TODO: Retest this on mobile - var supportsAc3InHls = (!browser.edge || !browser.touch || browser.edgeUwp); - if (supportsAc3InHls) { + if (supportsAc3InHls(videoTestElement)) { hlsVideoAudioCodecs.push('ac3'); if (eAc3) { hlsVideoAudioCodecs.push('eac3'); @@ -475,16 +484,26 @@ define(['browser'], function (browser) { mp4VideoCodecs.push('h264'); hlsVideoCodecs.push('h264'); } - if (canPlayH265(videoTestElement, options)) { + + if (canPlayH265(videoTestElement)) { mp4VideoCodecs.push('h265'); mp4VideoCodecs.push('hevc'); - - if (browser.tizen || browser.web0s) { - hlsVideoCodecs.push('h265'); - hlsVideoCodecs.push('hevc'); - } } + if (canPlayH265(videoTestElement, 'hls')) { + hlsVideoCodecs.push('h265'); + hlsVideoCodecs.push('hevc'); + } + + if (canPlayH265(videoTestElement) && (browser.tizen || browser.web0s)) { + if (hlsVideoCodecs.indexOf('h265') === -1) { + hlsVideoCodecs.push('h265'); + } + if (hlsVideoCodecs.indexOf('hevc') === -1) { + hlsVideoCodecs.push('hevc'); + } + } + if (supportsMpeg2Video()) { mp4VideoCodecs.push('mpeg2video'); } @@ -557,10 +576,10 @@ define(['browser'], function (browser) { }); } - // aac also appears in the m4a container + // aac also appears in the m4a and m4b container if (audioFormat === 'aac' || audioFormat === 'alac') { profile.DirectPlayProfiles.push({ - Container: 'm4a', + Container: 'm4a,m4b', AudioCodec: audioFormat, Type: 'Audio' }); @@ -652,7 +671,7 @@ define(['browser'], function (browser) { }); } - if (canPlayHls() && options.enableHls !== false) { + if (canPlayHls() && hlsVideoAudioCodecs.length && options.enableHls !== false) { profile.TranscodingProfiles.push({ Container: 'ts', Type: 'Video', @@ -750,8 +769,26 @@ define(['browser'], function (browser) { var maxH264Level = browser.chromecast ? 42 : 51; var h264Profiles = 'high|main|baseline|constrained baseline'; - if (maxH264Level >= 51 && browser.chrome && !browser.osx) { - h264Profiles += '|high 10'; + if (browser.tizen || browser.orsay || browser.web0s || + videoTestElement.canPlayType('video/mp4; codecs="avc1.640833"').replace(/no/, '')) { + maxH264Level = 51; + } + + var userAgent = navigator.userAgent.toLowerCase(); + if (browser.chromecast) { + var isChromecastUltra = userAgent.indexOf('aarch64') !== -1; + if (isChromecastUltra) { + maxH264Level = 51; + } + } + + if (browser.tizen || browser.orsay || + videoTestElement.canPlayType('video/mp4; codecs="avc1.6e0033"').replace(/no/, '')) { + + // These tests are passing in safari, but playback is failing + if (!browser.safari && !browser.iOS && !browser.web0s) { + h264Profiles += '|high 10'; + } } profile.CodecProfiles.push({ @@ -767,12 +804,14 @@ define(['browser'], function (browser) { { Condition: 'EqualsAny', Property: 'VideoProfile', - Value: h264Profiles + Value: h264Profiles, + IsRequired: false }, { Condition: 'LessThanEqual', Property: 'VideoLevel', - Value: maxH264Level.toString() + Value: maxH264Level.toString(), + IsRequired: false } ] }); From 9415cdc73cc21ed08ab3f2ad49344b4b5502ffeb Mon Sep 17 00:00:00 2001 From: Nyanmisaka Date: Fri, 24 Jan 2020 02:31:08 +0800 Subject: [PATCH 025/116] Update browserdeviceprofile.js --- src/scripts/browserdeviceprofile.js | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/scripts/browserdeviceprofile.js b/src/scripts/browserdeviceprofile.js index 0f81332502..df18a60d4e 100644 --- a/src/scripts/browserdeviceprofile.js +++ b/src/scripts/browserdeviceprofile.js @@ -91,6 +91,14 @@ define(['browser'], function (browser) { return videoTestElement.canPlayType('audio/mp4; codecs="ac-3"').replace(/no/, ''); } + function supportsEac3(videoTestElement) { + if (browser.tizen || browser.orsay || browser.web0s) { + return true; + } + + return videoTestElement.canPlayType('audio/mp4; codecs="ec-3"').replace(/no/, ''); + } + function supportsAc3InHls(videoTestElement) { if (browser.tizen || browser.orsay || browser.web0s) { return true; @@ -104,14 +112,6 @@ define(['browser'], function (browser) { return false; } - function supportsEac3(videoTestElement) { - if (browser.tizen || browser.orsay || browser.web0s) { - return true; - } - - return videoTestElement.canPlayType('audio/mp4; codecs="ec-3"').replace(/no/, ''); - } - function canPlayAudioFormat(format) { var typeString; From 154a24bdb0dfff240942cef5cf5dbb334116cd94 Mon Sep 17 00:00:00 2001 From: Nyanmisaka Date: Fri, 24 Jan 2020 02:38:43 +0800 Subject: [PATCH 026/116] Update browserdeviceprofile.js --- src/scripts/browserdeviceprofile.js | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/scripts/browserdeviceprofile.js b/src/scripts/browserdeviceprofile.js index df18a60d4e..d39b4d5d79 100644 --- a/src/scripts/browserdeviceprofile.js +++ b/src/scripts/browserdeviceprofile.js @@ -132,7 +132,7 @@ define(['browser'], function (browser) { typeString = 'audio/ogg; codecs="opus"'; return !!document.createElement('audio').canPlayType(typeString).replace(/no/, ''); } - + return false; } else if (format === 'alac') { if (browser.iOS || browser.osx) { @@ -172,7 +172,7 @@ define(['browser'], function (browser) { } var userAgent = navigator.userAgent.toLowerCase(); - + // Filter out browsers based on chromium that don't support mkv if (userAgent.indexOf('vivaldi') !== -1 || userAgent.indexOf('opera') !== -1) { return false; @@ -494,15 +494,15 @@ define(['browser'], function (browser) { hlsVideoCodecs.push('h265'); hlsVideoCodecs.push('hevc'); } - - if (canPlayH265(videoTestElement) && (browser.tizen || browser.web0s)) { - if (hlsVideoCodecs.indexOf('h265') === -1) { - hlsVideoCodecs.push('h265'); - } - if (hlsVideoCodecs.indexOf('hevc') === -1) { - hlsVideoCodecs.push('hevc'); - } - } + + if (canPlayH265(videoTestElement) && (browser.tizen || browser.web0s)) { + if (hlsVideoCodecs.indexOf('h265') === -1) { + hlsVideoCodecs.push('h265'); + } + if (hlsVideoCodecs.indexOf('hevc') === -1) { + hlsVideoCodecs.push('hevc'); + } + } if (supportsMpeg2Video()) { mp4VideoCodecs.push('mpeg2video'); @@ -773,7 +773,7 @@ define(['browser'], function (browser) { videoTestElement.canPlayType('video/mp4; codecs="avc1.640833"').replace(/no/, '')) { maxH264Level = 51; } - + var userAgent = navigator.userAgent.toLowerCase(); if (browser.chromecast) { var isChromecastUltra = userAgent.indexOf('aarch64') !== -1; From 07c67f0382d97deb526ab2aec97e6faf64d21919 Mon Sep 17 00:00:00 2001 From: Nyanmisaka Date: Fri, 24 Jan 2020 02:44:53 +0800 Subject: [PATCH 027/116] Update browserdeviceprofile.js --- src/scripts/browserdeviceprofile.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/scripts/browserdeviceprofile.js b/src/scripts/browserdeviceprofile.js index d39b4d5d79..11e5453ba2 100644 --- a/src/scripts/browserdeviceprofile.js +++ b/src/scripts/browserdeviceprofile.js @@ -139,7 +139,7 @@ define(['browser'], function (browser) { return true; } } else if (format === 'mp2') { - //For now + // For now return false; } From ae325bd7470dbcd5a5d0879394bd7d39beee46a2 Mon Sep 17 00:00:00 2001 From: Nyanmisaka Date: Fri, 24 Jan 2020 02:48:22 +0800 Subject: [PATCH 028/116] Update browserdeviceprofile.js --- src/scripts/browserdeviceprofile.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/scripts/browserdeviceprofile.js b/src/scripts/browserdeviceprofile.js index 11e5453ba2..0644547f0e 100644 --- a/src/scripts/browserdeviceprofile.js +++ b/src/scripts/browserdeviceprofile.js @@ -241,7 +241,7 @@ define(['browser'], function (browser) { supported = browser.tizen || browser.orsay; break; case 'mov': - supported = browser.tizen || browser.orsay || browser.web0s || browser.edgeUwp; + supported = browser.tizen || browser.orsay || browser.web0s || browser.chrome || browser.edgeUwp; videoCodecs.push('h264'); break; case 'm2ts': From 50b96b0afbf4de7a1992450cbb297cd71939a7f3 Mon Sep 17 00:00:00 2001 From: Nyanmisaka Date: Fri, 24 Jan 2020 03:26:30 +0800 Subject: [PATCH 029/116] edge does not support h264 high10 directstream --- src/scripts/browserdeviceprofile.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/scripts/browserdeviceprofile.js b/src/scripts/browserdeviceprofile.js index 0644547f0e..11a26b570d 100644 --- a/src/scripts/browserdeviceprofile.js +++ b/src/scripts/browserdeviceprofile.js @@ -180,6 +180,10 @@ define(['browser'], function (browser) { return true; } + + if (browser.edgeUwp) { + return true; + } return false; } @@ -786,7 +790,7 @@ define(['browser'], function (browser) { videoTestElement.canPlayType('video/mp4; codecs="avc1.6e0033"').replace(/no/, '')) { // These tests are passing in safari, but playback is failing - if (!browser.safari && !browser.iOS && !browser.web0s) { + if (!browser.safari && !browser.iOS && !browser.web0s && !browser.edge) { h264Profiles += '|high 10'; } } From 7f187b504b4005a7c3afbb90f41ef838ee5abdd4 Mon Sep 17 00:00:00 2001 From: Nyanmisaka Date: Fri, 24 Jan 2020 03:30:24 +0800 Subject: [PATCH 030/116] Update browserdeviceprofile.js --- src/scripts/browserdeviceprofile.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/scripts/browserdeviceprofile.js b/src/scripts/browserdeviceprofile.js index 11a26b570d..3f412cbfb0 100644 --- a/src/scripts/browserdeviceprofile.js +++ b/src/scripts/browserdeviceprofile.js @@ -180,7 +180,7 @@ define(['browser'], function (browser) { return true; } - + if (browser.edgeUwp) { return true; } From 509497e2340bc8e357b5bf26e6159fa7fa9a3fa3 Mon Sep 17 00:00:00 2001 From: Deven Lahoti Date: Thu, 23 Jan 2020 17:03:08 -0500 Subject: [PATCH 031/116] sort items to play in the correct order Fixes #692. --- src/components/chromecast/chromecastplayer.js | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/components/chromecast/chromecastplayer.js b/src/components/chromecast/chromecastplayer.js index 7302b74124..112d2980ab 100644 --- a/src/components/chromecast/chromecastplayer.js +++ b/src/components/chromecast/chromecastplayer.js @@ -686,6 +686,13 @@ define(['appSettings', 'userSettings', 'playbackManager', 'connectionManager', ' }); } + if (options.items.length > 1 && options && options.ids) { + // Use the original request id array for sorting the result in the proper order + options.items.sort(function (a, b) { + return options.ids.indexOf(a.Id) - options.ids.indexOf(b.Id); + }); + } + return this._castPlayer.loadMedia(options, command); }; From 5dbbfdd750b2fe2b2075e8ec3e83b1e350885f73 Mon Sep 17 00:00:00 2001 From: Nyanmisaka Date: Fri, 24 Jan 2020 18:22:41 +0800 Subject: [PATCH 032/116] WebOS 1.0+ also supports ASF --- src/scripts/browserdeviceprofile.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/scripts/browserdeviceprofile.js b/src/scripts/browserdeviceprofile.js index 3f412cbfb0..b9cc5d7d34 100644 --- a/src/scripts/browserdeviceprofile.js +++ b/src/scripts/browserdeviceprofile.js @@ -124,7 +124,7 @@ define(['browser'], function (browser) { return true; } } else if (format === 'asf') { - if (browser.tizen || browser.edgeUwp) { + if (browser.tizen || browser.web0s || browser.edgeUwp) { return true; } } else if (format === 'opus') { From 1f4af044b0bf3dd21c54dc08da5a559b478e5311 Mon Sep 17 00:00:00 2001 From: Nyanmisaka Date: Fri, 24 Jan 2020 18:24:32 +0800 Subject: [PATCH 033/116] Update browserdeviceprofile.js --- src/scripts/browserdeviceprofile.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/scripts/browserdeviceprofile.js b/src/scripts/browserdeviceprofile.js index b9cc5d7d34..d27a12e142 100644 --- a/src/scripts/browserdeviceprofile.js +++ b/src/scripts/browserdeviceprofile.js @@ -80,7 +80,7 @@ define(['browser'], function (browser) { function canPlayHlsWithMSE() { // text tracks don’t work with this in firefox - return null != window.MediaSource; + return window.MediaSource != null; } function supportsAc3(videoTestElement) { From 1ebf03d21b39668582116cd0452140626563e51e Mon Sep 17 00:00:00 2001 From: Dmitry Lyzo Date: Sat, 25 Jan 2020 01:18:07 +0300 Subject: [PATCH 034/116] Exit app on "go back" at login page --- src/components/appRouter.js | 7 ++++++- src/scripts/routes.js | 3 ++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/components/appRouter.js b/src/components/appRouter.js index 9df0ee5f1b..9305dbca3f 100644 --- a/src/components/appRouter.js +++ b/src/components/appRouter.js @@ -545,13 +545,18 @@ define(['loading', 'globalize', 'events', 'viewManager', 'layoutManager', 'skinM page.back(); } + /** + * Pages of "no return" (Go back). + */ + var startPages = ['home', 'login']; + function canGoBack() { var curr = current(); if (!curr) { return false; } - if (!document.querySelector('.dialogContainer') && curr.type === 'home') { + if (!document.querySelector('.dialogContainer') && startPages.indexOf(curr.type) !== -1) { return false; } return page.canGoBack(); diff --git a/src/scripts/routes.js b/src/scripts/routes.js index a3427c6551..69c996877f 100644 --- a/src/scripts/routes.js +++ b/src/scripts/routes.js @@ -226,7 +226,8 @@ define([ autoFocus: false, anonymous: true, startup: true, - controller: "auth/login" + controller: "auth/login", + type: "login" }); defineRoute({ path: "/metadataimages.html", From d93c16ea729e74d656442cd12465cb967ce6f349 Mon Sep 17 00:00:00 2001 From: Dmitry Lyzo Date: Sat, 25 Jan 2020 15:32:24 +0300 Subject: [PATCH 035/116] Exit app on "go back" at server selection page --- src/components/appRouter.js | 2 +- src/scripts/routes.js | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/components/appRouter.js b/src/components/appRouter.js index 9305dbca3f..ad3a6ecd87 100644 --- a/src/components/appRouter.js +++ b/src/components/appRouter.js @@ -548,7 +548,7 @@ define(['loading', 'globalize', 'events', 'viewManager', 'layoutManager', 'skinM /** * Pages of "no return" (Go back). */ - var startPages = ['home', 'login']; + var startPages = ['home', 'login', 'selectserver']; function canGoBack() { var curr = current(); diff --git a/src/scripts/routes.js b/src/scripts/routes.js index 69c996877f..b726aaf872 100644 --- a/src/scripts/routes.js +++ b/src/scripts/routes.js @@ -313,7 +313,8 @@ define([ autoFocus: false, anonymous: true, startup: true, - controller: "auth/selectserver" + controller: "auth/selectserver", + type: "selectserver" }); defineRoute({ path: "/serveractivity.html", From a9ca46b6d841e546a7757e13ae939a6095f17fb1 Mon Sep 17 00:00:00 2001 From: grafixeyehero Date: Sun, 26 Jan 2020 00:20:01 +0300 Subject: [PATCH 036/116] apply suggustiion --- src/controllers/movies/movies.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/controllers/movies/movies.js b/src/controllers/movies/movies.js index 7ba467c1a4..ce077bd179 100644 --- a/src/controllers/movies/movies.js +++ b/src/controllers/movies/movies.js @@ -169,6 +169,7 @@ define(["loading", "layoutManager", "userSettings", "events", "libraryBrowser", valueChangeEvent: "click" }); + tabContent.querySelector(".alphaPicker").classList.add("alphabetPicker-right"); alphaPickerElement.classList.add("alphaPicker-fixed-right"); itemsContainer.classList.add("padded-right-withalphapicker"); } From b3558a0dc6acf83643de2b3dc5f12eaee0d33a92 Mon Sep 17 00:00:00 2001 From: MrTimscampi Date: Sun, 26 Jan 2020 14:36:22 +0100 Subject: [PATCH 037/116] Enable image fadein --- src/components/images/imageLoader.js | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/components/images/imageLoader.js b/src/components/images/imageLoader.js index a2906cca85..17af296af4 100644 --- a/src/components/images/imageLoader.js +++ b/src/components/images/imageLoader.js @@ -7,9 +7,6 @@ define(['lazyLoader', 'imageFetcher', 'layoutManager', 'browser', 'appSettings', var self = {}; - // seeing slow performance with firefox - var enableFade = false; - function fillImage(elem, source, enableEffects) { if (!elem) { @@ -30,7 +27,7 @@ define(['lazyLoader', 'imageFetcher', 'layoutManager', 'browser', 'appSettings', function fillImageElement(elem, source, enableEffects) { imageFetcher.loadImage(elem, source).then(function () { - if (enableFade && enableEffects !== false) { + if (enableEffects !== false) { fadeIn(elem); } From c49f632f62cda4144b1597aa0ad09f7f6f54a133 Mon Sep 17 00:00:00 2001 From: MrTimscampi Date: Sun, 26 Jan 2020 15:32:13 +0100 Subject: [PATCH 038/116] Add Display setting for fast image fade-in --- src/components/displaysettings/displaysettings.js | 2 ++ .../displaysettings/displaysettings.template.html | 12 ++++++++++++ src/components/images/imageLoader.js | 11 ++++++----- src/components/usersettings/usersettingsbuilder.js | 9 +++++++++ src/strings/en-gb.json | 2 ++ src/strings/en-us.json | 2 ++ 6 files changed, 33 insertions(+), 5 deletions(-) diff --git a/src/components/displaysettings/displaysettings.js b/src/components/displaysettings/displaysettings.js index fea7d9bd3e..da407c11f1 100644 --- a/src/components/displaysettings/displaysettings.js +++ b/src/components/displaysettings/displaysettings.js @@ -180,6 +180,7 @@ define(['require', 'browser', 'layoutManager', 'appSettings', 'pluginManager', ' context.querySelector('#chkThemeSong').checked = userSettings.enableThemeSongs(); context.querySelector('#chkThemeVideo').checked = userSettings.enableThemeVideos(); + context.querySelector('#chkFadein').checked = userSettings.enableFastFadein(); context.querySelector('#chkBackdrops').checked = userSettings.enableBackdrops(); context.querySelector('#selectLanguage').value = userSettings.language() || ''; @@ -216,6 +217,7 @@ define(['require', 'browser', 'layoutManager', 'appSettings', 'pluginManager', ' userSettingsInstance.skin(context.querySelector('.selectSkin').value); + userSettingsInstance.enableFastFadein(context.querySelector('#chkFadein').checked); userSettingsInstance.enableBackdrops(context.querySelector('#chkBackdrops').checked); if (user.Id === apiClient.getCurrentUserId()) { diff --git a/src/components/displaysettings/displaysettings.template.html b/src/components/displaysettings/displaysettings.template.html index f469d8d5ce..16bbf0dd8a 100644 --- a/src/components/displaysettings/displaysettings.template.html +++ b/src/components/displaysettings/displaysettings.template.html @@ -3,6 +3,7 @@

${Display}

+
+
@@ -141,6 +143,14 @@
+
+ +
${EnableFastImageFadeInHelp}
+
+
${EnableBackdropsHelp}
+
${EnableThemeSongsHelp}
+
- @@ -127,7 +127,7 @@ -
${H264EncodingPresetHelp}
+
${EncoderPresetHelp}
diff --git a/src/strings/ar.json b/src/strings/ar.json index 6fef90c404..e2d30ffce1 100644 --- a/src/strings/ar.json +++ b/src/strings/ar.json @@ -131,7 +131,7 @@ "GuideProviderLogin": "تسجيل الدخول", "GuideProviderSelectListings": "إختر المبوبات", "H264CrfHelp": "معامل المعدل الثابت CRF هو الجودة الافتراضية لإعدادات مشفر x264. بإمكانك إعطاء قيمة تتراوح بين 0 و 51، وكلما قلت القيمة فسينتج عن ذلك جودة أفضل (على حساب حجم تخزين أعلى). القيم المعقول تتراوح بين 18 و 28. الافتراضي لـ x264 هي 23، لذا فبإمكانك استخدام هذه القيمة كنقطة بداية.", - "H264EncodingPresetHelp": "اختر قيمة أعلى لتحسين السرة والأداء وقيمة أقل لتحسين الجودة.", + "EncoderPresetHelp": "اختر قيمة أعلى لتحسين السرة والأداء وقيمة أقل لتحسين الجودة.", "HardwareAccelerationWarning": "تمكين التسريع بعتاد الحاسوب قد يتسبب في عدم استقرار بعض أنواع الأنظمة. تأكد من أن نظام التشغيل الخاص بك محدث إلى آخر نسخة وأن سواقات الفيديو محدثة أيضاً. إذا واجهت أية صعوبات في تسغيل الفيديو بعد تمكين هذه الخاصية، فعليك إرجاع الإعداد إلى وضعية آلي.", "HeaderAccessSchedule": "جدول الدخولات", "HeaderAccessScheduleHelp": "إنشئ جدول دخولات لكي تتمكن من تحديد ساعات للدخول.", @@ -390,7 +390,7 @@ "LabelGroupMoviesIntoCollections": "تجميع الأفلام إلى مجاميع", "LabelGroupMoviesIntoCollectionsHelp": "عند استعراض قوائم الأفلام، فإن الأفلام التي تنتمي إلى مجموعة واحدة ستظهر كعنصر جامع.", "LabelH264Crf": "قيمة CRF لتشفير H264:", - "LabelH264EncodingPreset": "إعدادات تشفير H264:", + "LabelEncoderPreset": "إعدادات تشفير H264:", "LabelHardwareAccelerationType": "التسريع بعتاد الحاسب", "LabelHardwareAccelerationTypeHelp": "متاح في الأنظمة المدعومة فقط.", "LabelHttpsPort": "رقم منفذ https المحتلي:", diff --git a/src/strings/cs.json b/src/strings/cs.json index 5f0c1e60b3..9bb889d97f 100644 --- a/src/strings/cs.json +++ b/src/strings/cs.json @@ -227,7 +227,7 @@ "GuideProviderLogin": "Přihlášení", "GuideProviderSelectListings": "Výběr zobrazení", "H264CrfHelp": "Constant Rate faktor (CRF) je výchozím nastavení kvality pro kodér x264. Můžete nastavit hodnoty mezi 0 a 51, kde nižší hodnoty vedou lepší kvalitě (na úkor větší velikosti souborů). Rozumné hodnoty jsou mezi 18 a 28. Výchozí hodnota pro x264 je 23, který můžete použít jako výchozí bod.", - "H264EncodingPresetHelp": "Vyber hodnotu faster ke zvýšení výkonu, nebo slower ke zvýšení kvality.", + "EncoderPresetHelp": "Vyber hodnotu faster ke zvýšení výkonu, nebo slower ke zvýšení kvality.", "HDPrograms": "HD programy", "HardwareAccelerationWarning": "Zapnutí hardwarové akcelerace může způsobit nestabilitu v některých prostředích. Ujistěte se, že vaše ovladače operačního systému a videa jsou plně aktuální. Máte-li potíže s přehráváním videa po zapnutí, budete muset změnit nastavení zpět na Auto.", "HeaderAccessSchedule": "Přístup k naplánované úloze", @@ -552,7 +552,7 @@ "LabelGroupMoviesIntoCollections": "Seskupit filmy do kolekcí", "LabelGroupMoviesIntoCollectionsHelp": "Při zobrazení seznamů filmu, budou filmy patřící do kolekce, zobrazeny jako jedna položka.", "LabelH264Crf": "H264 kódování CRF:", - "LabelH264EncodingPreset": "Přednastavení H264 kódování:", + "LabelEncoderPreset": "Přednastavení H264 kódování:", "LabelHardwareAccelerationType": "Hardwarová akcelerace:", "LabelHardwareAccelerationTypeHelp": "Toto je experimentální funkce dostupná pouze v podporovaných systémech.", "LabelHomeScreenSectionValue": "Sekce domovské obrazovky {0}:", diff --git a/src/strings/da.json b/src/strings/da.json index cd8d9472ca..9ddba4c8f0 100644 --- a/src/strings/da.json +++ b/src/strings/da.json @@ -181,7 +181,7 @@ "GuestStar": "Gæsteskuespiller", "GuideProviderSelectListings": "Vælg Udbyder", "H264CrfHelp": "Den Konstante Ratefaktor (CRF) er standardindstillingen for X264-koderen. Du kan sætte værdien i mellem 0 og 51, hvor de lavere værdier resulterer i bedre kvalitet (på bekostning af større filstørrelser). Fornuftige værdier er i mellem 18 og 28. Standarden for X264 er 23, så du kan bruge dette som udgangspunkt.", - "H264EncodingPresetHelp": "Vælg en hurtigere værdi for at forbedre ydeevne, eller en langsommere værdi for at forbedre kvalitet.", + "EncoderPresetHelp": "Vælg en hurtigere værdi for at forbedre ydeevne, eller en langsommere værdi for at forbedre kvalitet.", "HDPrograms": "HD-programmer", "HardwareAccelerationWarning": "Aktivering af hardwareacceleration kan forårsage ustabilitet i nogle miljøer. Kontroller at dit operativsystem og videodriver er ajourført. Hvis du har problemer med at afspille video efter aktivering af dette, bliver du nød til at skifte tilbage til Auto.", "HeaderAccessSchedule": "Adgangsskema", @@ -481,7 +481,7 @@ "LabelGroupMoviesIntoCollections": "Grupper film i samlinger", "LabelGroupMoviesIntoCollectionsHelp": "Film i samlinger vil blive vist som en samlet enhed i filmlister.", "LabelH264Crf": "H264-kodning CRF:", - "LabelH264EncodingPreset": "Forudindstillet H264-kodning:", + "LabelEncoderPreset": "Forudindstillet H264-kodning:", "LabelHardwareAccelerationType": "Hardwareacceleration:", "LabelHardwareAccelerationTypeHelp": "Kun tilgængelig for understøttede systemer.", "LabelHttpsPort": "Lokalt HTTPS portnummer:", diff --git a/src/strings/de.json b/src/strings/de.json index 0a6c95ef25..d9d32e94b2 100644 --- a/src/strings/de.json +++ b/src/strings/de.json @@ -257,7 +257,7 @@ "GuideProviderLogin": "Anmelden", "GuideProviderSelectListings": "Wähle Listen", "H264CrfHelp": "Der Constant Rate Factor (CRF) bezeichnet die Einstellung für die Standardqualität des x264 Encoders. Setze einen Wert zwischen 0 und 51. Ein niedriger Wert resultiert in besserer Qualität (auf Kosten einer größeren Datei). Gängige Werte sind 18-28. Der Standard für x264 ist 23 und empfohlen als Startpunkt.", - "H264EncodingPresetHelp": "Wähle einen schnelleren Wert um die Performance zu verbessern oder einen langsameren Wert um die Qualität zu verbessern.", + "EncoderPresetHelp": "Wähle einen schnelleren Wert um die Performance zu verbessern oder einen langsameren Wert um die Qualität zu verbessern.", "HDPrograms": "HD Programme", "HandledByProxy": "Verwaltet vom Reverse Proxy", "HardwareAccelerationWarning": "Das Aktivieren der Hardwarebeschleunigung kann auf einigen Systemen zu Instabilität führen. Stellen Sie sicher, dass Ihr Betriebssystem sowie Ihre Grafikkarten-Treiber auf dem aktuellsten Stand sind. Wenn Sie nach der Aktivierung Probleme mit der Wiedergabe von Videos haben, müssen Sie diese Einstellung zurück auf \"Auto\" stellen.", @@ -591,7 +591,7 @@ "LabelServerNameHelp": "Dieser Name wird benutzt um den Server zu identifizieren, normalerweise wird der Server-/Computername verwendet.", "LabelGroupMoviesIntoCollections": "Gruppiere Filme in Collections", "LabelGroupMoviesIntoCollectionsHelp": "Wenn Filmlisten angezeigt werden, dann werden Filme, die zu einer Collection gehören, als ein gruppiertes Element angezeigt.", - "LabelH264EncodingPreset": "H264 Encoding Voreinstellung:", + "LabelEncoderPreset": "H264 Encoding Voreinstellung:", "LabelHardwareAccelerationType": "Hardware Beschleunigung:", "LabelHardwareAccelerationTypeHelp": "Dies ist eine experimentelle Funktion und nur auf unterstützten Systemen verfügbar.", "LabelHomeNetworkQuality": "Heimnetzwerkqualität:", diff --git a/src/strings/el.json b/src/strings/el.json index c718fa609f..fb02479421 100644 --- a/src/strings/el.json +++ b/src/strings/el.json @@ -1195,7 +1195,7 @@ "HeaderFavoriteEpisodes": "Αγαπημένα Επεισόδια", "HeaderFavoriteShows": "Αγαπημένες Σειρές", "AllowMediaConversion": "Να επιτρέπονται οι μετατροπές μέσων", - "H264EncodingPresetHelp": "Επιλέξτε γρηγορότερη επιλογή για να βελτιώσετε την επίδοση, ή πιο αργή για να βελτιώσετε την ποιότητα.", + "EncoderPresetHelp": "Επιλέξτε γρηγορότερη επιλογή για να βελτιώσετε την επίδοση, ή πιο αργή για να βελτιώσετε την ποιότητα.", "ErrorAddingXmlTvFile": "Υπήρξε σφάλμα κατά την πρόσβαση του αρχείου XmlTV. Βεβαιωθείτε ότι το αρχείο υπάρχει και ξαναπροσπαθήστε.", "ErrorAddingTunerDevice": "Υπήρξε σφάλμα κατά την προσθήκη του δέκτη. Βεβαιωθείτε ότι είναι προσβάσιμη και ξαναπροσπαθήστε.", "EnableStreamLoopingHelp": "Ενεργοποιήστε το αν τα live stream περιέχουν μόνο λίγα δευτερόλεπτα δεδομένων και πρέπει να ζητούνται συνεχώς. Η ενεργοποίηση αυτής της επιλογής όταν δεν είναι απαραίτητη μπορεί να προκαλέσει προβλήματα.", diff --git a/src/strings/en-gb.json b/src/strings/en-gb.json index a258145849..6e6a19bfe6 100644 --- a/src/strings/en-gb.json +++ b/src/strings/en-gb.json @@ -308,7 +308,7 @@ "GuideProviderLogin": "Login", "GuideProviderSelectListings": "Select Listings", "H264CrfHelp": "The Constant Rate Factor (CRF) is the default quality setting for the x264 encoder. You can set the values between 0 and 51, where lower values would result in better quality (at the expense of higher file sizes). Sane values are between 18 and 28. The default for x264 is 23, so you can use this as a starting point.", - "H264EncodingPresetHelp": "Choose a faster value to improve performance, or a slower value to improve quality.", + "EncoderPresetHelp": "Choose a faster value to improve performance, or a slower value to improve quality.", "HandledByProxy": "Handled by reverse proxy", "HardwareAccelerationWarning": "Enabling hardware acceleration may cause instability in some environments. Ensure that your operating system and video drivers are fully up to date. If you have difficulty playing video after enabling this, you'll need to change the setting back to Auto.", "HeaderAccessSchedule": "Access Schedule", @@ -1107,7 +1107,7 @@ "LabelHomeScreenSectionValue": "Home screen section {0}:", "LabelHomeNetworkQuality": "Home network quality:", "LabelHardwareAccelerationType": "Hardware acceleration:", - "LabelH264EncodingPreset": "H264 encoding preset:", + "LabelEncoderPreset": "H264 and H265 encoding preset:", "LabelH264Crf": "H264 encoding CRF:", "LabelGroupMoviesIntoCollectionsHelp": "When displaying movie lists, movies belonging to a collection will be displayed as one grouped item.", "LabelGroupMoviesIntoCollections": "Group movies into collections", diff --git a/src/strings/en-us.json b/src/strings/en-us.json index 364cd71e87..c8df7b69db 100644 --- a/src/strings/en-us.json +++ b/src/strings/en-us.json @@ -278,7 +278,7 @@ "GuideProviderLogin": "Login", "GuideProviderSelectListings": "Select Listings", "H264CrfHelp": "The Constant Rate Factor (CRF) is the default quality setting for the x264 encoder. You can set the values between 0 and 51, where lower values would result in better quality (at the expense of higher file sizes). Sane values are between 18 and 28. The default for x264 is 23, so you can use this as a starting point.", - "H264EncodingPresetHelp": "Choose a faster value to improve performance, or a slower value to improve quality.", + "EncoderPresetHelp": "Choose a faster value to improve performance, or a slower value to improve quality.", "HDPrograms": "HD programs", "HandledByProxy": "Handled by reverse proxy", "HardwareAccelerationWarning": "Enabling hardware acceleration may cause instability in some environments. Ensure that your operating system and video drivers are fully up to date. If you have difficulty playing video after enabling this, you'll need to change the setting back to Auto.", @@ -653,7 +653,7 @@ "LabelGroupMoviesIntoCollections": "Group movies into collections", "LabelGroupMoviesIntoCollectionsHelp": "When displaying movie lists, movies belonging to a collection will be displayed as one grouped item.", "LabelH264Crf": "H264 encoding CRF:", - "LabelH264EncodingPreset": "H264 encoding preset:", + "LabelEncoderPreset": "H264 and H265 encoding preset:", "LabelHardwareAccelerationType": "Hardware acceleration:", "LabelHardwareAccelerationTypeHelp": "This is an experimental feature only available on supported systems.", "LabelHomeNetworkQuality": "Home network quality:", diff --git a/src/strings/es-mx.json b/src/strings/es-mx.json index f1f73c5d9e..57a1c9aa25 100644 --- a/src/strings/es-mx.json +++ b/src/strings/es-mx.json @@ -265,7 +265,7 @@ "GuideProviderLogin": "Iniciar Sesión", "GuideProviderSelectListings": "Elegir Listados", "H264CrfHelp": "El \"Factor de Transferencia Constante\" o \"Constant Rate Factor\" (CFR) es la configuración por defecto para el codificador x264. Puede poner valores entre 0 y 51, donde los valores mas bajos dan como resultado mejor calidad (a expensas de archivos mas grandes). Los valores comunes son entre 18 y 28. El valor por defecto para x264 es 23, puede usar este valor como punto de referencia.", - "H264EncodingPresetHelp": "Elija un valor mas rápido para mejorar el rendimiento, o uno mas lento para mejorar la calidad.", + "EncoderPresetHelp": "Elija un valor mas rápido para mejorar el rendimiento, o uno mas lento para mejorar la calidad.", "HDPrograms": "Programas en HD", "HandledByProxy": "Manejado por un proxy inverso", "HardwareAccelerationWarning": "Habilitar la aceleración por hardware podría causar inestabilidad en algunos entornos, Asegúrese de que su sistema operativo y controladores de video están actualizados. Si tiene dificultades reproduciendo vides después de habilitar esto, necesita cambiar las configuraciones de nuevo a Auto.", @@ -609,7 +609,7 @@ "LabelGroupMoviesIntoCollections": "Agrupar películas en colecciones", "LabelGroupMoviesIntoCollectionsHelp": "Cuando se muestran listados de películas, las películas que pertenecen a una colección serán mostradas agrupadas en un solo ítem.", "LabelH264Crf": "CRF de codificación H264:", - "LabelH264EncodingPreset": "Codificación H264 predefinido:", + "LabelEncoderPreset": "Codificación H264 predefinido:", "LabelHardwareAccelerationType": "Aceleración por Hardware:", "LabelHardwareAccelerationTypeHelp": "Esta es una característica experimental que solo está disponible en los sistemas soportados.", "LabelHomeNetworkQuality": "Calidad en Red Local:", diff --git a/src/strings/es.json b/src/strings/es.json index 426aacb86e..36fe872ed6 100644 --- a/src/strings/es.json +++ b/src/strings/es.json @@ -215,7 +215,7 @@ "Guide": "Guía", "GuideProviderSelectListings": "Seleccionar listados", "H264CrfHelp": "El factor de velocidad constante (CRF) es el ajuste de calidad predeterminado para el codificador x264. Puede establecer los valores entre 0 y 51, donde valores más bajos resultarían en una mejor calidad (a expensas de tamaños de archivo más altos). Los valores sanos están entre 18 y 28. El valor predeterminado para x264 es 23, por lo que puede utilizar esto como punto de partida.", - "H264EncodingPresetHelp": "Elija un valor más rápido para mejorar el rendimiento o un valor más lento para mejorar la calidad.", + "EncoderPresetHelp": "Elija un valor más rápido para mejorar el rendimiento o un valor más lento para mejorar la calidad.", "HDPrograms": "Programas en HD", "HandledByProxy": "Gestionado por proxy inverso", "HardwareAccelerationWarning": "Activar la aceleración por hardware puede producir inestabilidades en algunos ambientes. Asegúrate de que tu sistema operativo y tus controladores de vídeo están actualizados. Si tienes dificultades para reproducir los vídeos después de activar esto, tendrás que volver a poner este ajuste en Auto.", @@ -544,7 +544,7 @@ "LabelGroupMoviesIntoCollections": "Agrupar películas en colecciones", "LabelGroupMoviesIntoCollectionsHelp": "Cuando se muestran las listas de películas, las películas pertenecientes a una colección se mostrarán como un elemento agrupado.", "LabelH264Crf": "H264 que codifica CRF:", - "LabelH264EncodingPreset": "Configuración de codificación H264:", + "LabelEncoderPreset": "Configuración de codificación H264:", "LabelHardwareAccelerationType": "Aceleración por hardware:", "LabelHardwareAccelerationTypeHelp": "Esto es una función experimental disponible sólo en los sistemas soportados.", "LabelHomeScreenSectionValue": "Sección de la pantalla de inicio {0}:", diff --git a/src/strings/fr.json b/src/strings/fr.json index c4dfa80534..a489d053f6 100644 --- a/src/strings/fr.json +++ b/src/strings/fr.json @@ -259,7 +259,7 @@ "GuideProviderLogin": "Connexion", "GuideProviderSelectListings": "Sélectionner les listings", "H264CrfHelp": "Le facteur de débit constant (CRF) est le paramètre de qualité par défaut pour l'encodeur x264. Vous pouvez régler les valeurs entre 0 et 51, où des valeurs plus faibles se traduiraient par une meilleure qualité (en augmentant le taille des fichiers). De bonne valeurs se situent entre 18 et 28. La valeur par défaut pour le x264 est 23, vous pouvez l'utiliser comme point de départ.", - "H264EncodingPresetHelp": "Choisissez une valeur plus rapide pour améliorer la performance, ou plus lente pour améliorer la qualité.", + "EncoderPresetHelp": "Choisissez une valeur plus rapide pour améliorer la performance, ou plus lente pour améliorer la qualité.", "HDPrograms": "Programmes HD", "HandledByProxy": "Gérée par un proxy inverse", "HardwareAccelerationWarning": "L'activation de l'accélération matérielle peut provoquer une instabilité dans certains environnements. Assurez-vous que votre système d'exploitation et vos pilotes vidéo sont complètement à jour. Si vous avez des difficultés pour lire des vidéos après l'activation, vous devrez remettre ce paramètre sur Auto.", @@ -603,7 +603,7 @@ "LabelGroupMoviesIntoCollections": "Grouper les films en collections", "LabelGroupMoviesIntoCollectionsHelp": "Dans l'affichage des listes de films, les films faisant partie d'une collection seront affichés comme un élément groupé.", "LabelH264Crf": "CRF d'encodage H264 :", - "LabelH264EncodingPreset": "Profil d'encodage H264 :", + "LabelEncoderPreset": "Profil d'encodage H264 :", "LabelHardwareAccelerationType": "Accélération matérielle :", "LabelHardwareAccelerationTypeHelp": "Fonctionnalité expérimentale disponible sur les systèmes supportés.", "LabelHomeNetworkQuality": "Qualité du réseau local :", diff --git a/src/strings/hr.json b/src/strings/hr.json index 1cdccf69b3..9710c13454 100644 --- a/src/strings/hr.json +++ b/src/strings/hr.json @@ -156,7 +156,7 @@ "GuideProviderLogin": "Prijava", "GuideProviderSelectListings": "Odaberi ispis", "H264CrfHelp": "Konstante brzine faktora (CRF) je postavka zadane kvalitete za x264 enkodera. Možete postaviti vrijednosti između 0 i 51, gdje će niže vrijednosti rezultirati boljom kvalitetom (na račun veće veličine datoteka). Razumne vrijednosti su između 18 i 28. Zadana za x264 je 23, tako da to možete koristiti kao početnu točku.", - "H264EncodingPresetHelp": "Odaberite bržu vrijednost za poboljšanje performansi ili sporiju za poboljšanje kvalitete.", + "EncoderPresetHelp": "Odaberite bržu vrijednost za poboljšanje performansi ili sporiju za poboljšanje kvalitete.", "HDPrograms": "HD programi", "HardwareAccelerationWarning": "Omogućavanje hardverskog ubrzanja može uzrokovati nestabilnostima u nekim sredinama. Pobrinite se da Vaš operativni sustav i video drajveri su u potpunosti ažurni. Ako imate poteškoća s reprodukcijom videa nakon omogućavanja ovoga, morat ćete promijeniti postavku natrag na Automatski.", "HeaderAccessSchedule": "Raspored pristupa", @@ -426,7 +426,7 @@ "LabelGroupMoviesIntoCollections": "Grupiraj filmove u kolekciju", "LabelGroupMoviesIntoCollectionsHelp": "Kada se prikazuje lista filmova, filmovi koji pripadaju kolekciji biti će prikazani kao jedna stavka.", "LabelH264Crf": "H264 kodiranje CRF:", - "LabelH264EncodingPreset": "H264 unaprijed kodiranje:", + "LabelEncoderPreset": "H264 unaprijed kodiranje:", "LabelHardwareAccelerationType": "Hardversko ubrzanje:", "LabelHardwareAccelerationTypeHelp": "Dostupno samo na podržanim sustavima.", "LabelHttpsPort": "Lokalni broj https porta:", diff --git a/src/strings/hu.json b/src/strings/hu.json index 7ea57e5156..811c21cff0 100644 --- a/src/strings/hu.json +++ b/src/strings/hu.json @@ -265,7 +265,7 @@ "LabelFinish": "Befejez", "LabelForgotPasswordUsernameHelp": "Add meg a felhasználóneved, ha emlékszel rá.", "LabelGroupMoviesIntoCollections": "Filmek csoportosítása gyűjteményekbe", - "LabelH264EncodingPreset": "H264 enkóder beállítások:", + "LabelEncoderPreset": "H264 enkóder beállítások:", "LabelHardwareAccelerationType": "Hardveres gyorsítás:", "LabelHardwareAccelerationTypeHelp": "Ez egy kísérleti szolgáltatás, amely csak a támogatott rendszereken érhető el.", "LabelHomeScreenSectionValue": "Kezdőképernyő blokk {0}:", @@ -699,7 +699,7 @@ "GuestStar": "Vendég sztár", "GuideProviderLogin": "Bejelentkezés", "GuideProviderSelectListings": "Válassz listát", - "H264EncodingPresetHelp": "Válassz egy gyorsabb értéket a teljesítmény javítása érdekében, vagy egy lassabb értéket a minőség javítása érdekében.", + "EncoderPresetHelp": "Válassz egy gyorsabb értéket a teljesítmény javítása érdekében, vagy egy lassabb értéket a minőség javítása érdekében.", "HDPrograms": "HD programok", "HandledByProxy": "Reverse proxy segítségével kezelhető", "HardwareAccelerationWarning": "A hardveres gyorsítás engedélyezése bizonyos környezetekben instabilitást okozhat. Győződj meg róla, hogy az operációs rendszer és a videó-illesztőprogramok teljesen naprakészek. Ha a beállítás után problémába ütközik a videólejátszás, akkor vissza kell állítani a beállítást Auto-ra.", diff --git a/src/strings/it.json b/src/strings/it.json index 18b08f8853..b4f84b0c10 100644 --- a/src/strings/it.json +++ b/src/strings/it.json @@ -250,7 +250,7 @@ "GuideProviderLogin": "Accedi", "GuideProviderSelectListings": "selezionare Annunci", "H264CrfHelp": "Il fattore di frequenza costante (CRF) è l'impostazione di qualità predefinita per l'encoder x264. È possibile impostare i valori compresi tra 0 e 51, in cui valori inferiori potrebbero determinare una migliore qualità (a discapito delle dimensioni superiori dei file). I valori normali sono compresi tra 18 e 28. L'impostazione predefinita per x264 è 23, quindi è possibile utilizzare questo come punto di partenza.", - "H264EncodingPresetHelp": "Scegli una velocità maggiore per migliorare le performance, o minore per incrementare la qualità.", + "EncoderPresetHelp": "Scegli una velocità maggiore per migliorare le performance, o minore per incrementare la qualità.", "HDPrograms": "Programmi HD", "HandledByProxy": "Gestito dal reverse proxy", "HardwareAccelerationWarning": "L'attivazione dell'accelerazione hardware potrebbe causare instabilità in qualche sistema. Assicurarsi che il sistema operativo e i driver video siano completamente aggiornati. Se hai difficoltà a riprodurre video dopo aver abilitato questa operazione, dovrai cambiare l'impostazione in Auto.", @@ -585,7 +585,7 @@ "LabelGroupMoviesIntoCollections": "Raggruppa i film nelle collezioni", "LabelGroupMoviesIntoCollectionsHelp": "Quando si visualizzano le liste di film, quelli appartenenti ad una collezione saranno visualizzati come un elemento raggruppato.", "LabelH264Crf": "CRF di codifica H264:", - "LabelH264EncodingPreset": "Preset di codifica H264:", + "LabelEncoderPreset": "Preset di codifica H264:", "LabelHardwareAccelerationType": "Accelerazione Hardware:", "LabelHardwareAccelerationTypeHelp": "Questa è una componente sperimentale disponibile solo su sistemi supportati.", "LabelHomeNetworkQuality": "Qualità della rete domestica:", diff --git a/src/strings/ja.json b/src/strings/ja.json index 0dd7737459..a276c7df07 100644 --- a/src/strings/ja.json +++ b/src/strings/ja.json @@ -276,7 +276,7 @@ "GuideProviderLogin": "ログイン", "GuideProviderSelectListings": "リストを選択", "H264CrfHelp": "固定レートファクタ(CRF)は、x264エンコーダのデフォルトの品質設定です。 0から51までの値を設定できます。値が小さいほど品質が高くなります(ファイルサイズが大きくなりますが)。 正しい値は18から28の間です。x264のデフォルトは23なので、これを出発点として使用できます。", - "H264EncodingPresetHelp": "パフォーマンスを向上させるには小さい値を、品質を向上させるには大きい値を選択してください。", + "EncoderPresetHelp": "パフォーマンスを向上させるには小さい値を、品質を向上させるには大きい値を選択してください。", "HDPrograms": "HD番組", "HandledByProxy": "リバースプロキシで処理", "HardwareAccelerationWarning": "ハードウェアアクセラレーションを有効にすると、環境によっては不安定になる可能性があります。 オペレーティングシステムとビデオドライバが完全に最新であることを確認してください。 これを有効にした後でビデオの再生が困難な場合は、設定を[自動]に戻す必要があります。", @@ -541,7 +541,7 @@ "LabelDidlMode": "DIDLモード:", "LabelEmbedAlbumArtDidl": "DIDLのアルバムアートを埋め込む", "LabelFailed": "失敗", - "LabelH264EncodingPreset": "H264エンコーディングプリセット:", + "LabelEncoderPreset": "H264エンコーディングプリセット:", "LabelHardwareAccelerationType": "ハードウェアアクセラレーション:", "LabelH264Crf": "H264エンコーディングCRF:", "LabelHttpsPortHelp": "JellyfinのHTTPSサーバーがバインドするTCPポート番号。", diff --git a/src/strings/kk.json b/src/strings/kk.json index 3bf88ed5e1..05651f0c0d 100644 --- a/src/strings/kk.json +++ b/src/strings/kk.json @@ -277,7 +277,7 @@ "GuideProviderLogin": "Kirý", "GuideProviderSelectListings": "Tizbelerdi tańdaý", "H264CrfHelp": "Baǵalaýdyń turaqty máni (Constant Rate Factor, CRF) x264 kodtaýyshy úshin ádepki sapa parametri bolyp tabylady. Siz 0 jáne 51 arasyndaǵy mánderin belgileı alasyz, onda tómen mánder (joǵary faıl ólshemderi esebinen) nátıjesinde jaqsy sapaǵa keltiredi. Taǵylyp mánder 18 jáne 28 arasynda bolady. x264 úshin ádepkisi 23 bolyp tabylady, sondyqtan bastaý núktesi retinde osyny paıdalanýyńyzǵa bolady.", - "H264EncodingPresetHelp": "Ónimdilikti jaqsartý úshin jyldam mánin, nemese sapasyn jaqsartý úshin baıaý mánin tańdańyz.", + "EncoderPresetHelp": "Ónimdilikti jaqsartý úshin jyldam mánin, nemese sapasyn jaqsartý úshin baıaý mánin tańdańyz.", "HDPrograms": "HD-kórsetimder", "HandledByProxy": "Keri proksı arqyly óńdeldi", "HardwareAccelerationWarning": "Apparattyq jedeldetýdi qosý keıbir ortalarda turaqsyzdyq týdyrýy múmkin. Amaldyq júıeńiz ben beıne draıverlerińiz tolyq jańartylǵanyna kóz jetkizińiz. Eger osyny qosqannan keıin beıne oınatýda qıyndyq bolsa, parametrdi qaıta Avto úshin ózgertýińiz qajet.", @@ -635,7 +635,7 @@ "LabelGroupMoviesIntoCollections": "Jıyntyqtar ishindegi fılmderdi toptastyrý", "LabelGroupMoviesIntoCollectionsHelp": "Fılm tizimderin beınelegen kezde jıyntyqqa kiretin fılmder toptalǵan biryńǵaı tarmaq bolyp kórsetiledi.", "LabelH264Crf": "H264 kodtaý CRF máni:", - "LabelH264EncodingPreset": "H264 kodtaý daıyndamasy:", + "LabelEncoderPreset": "H264 kodtaý daıyndamasy:", "LabelHardwareAccelerationType": "Apparatyq jedeldetý:", "LabelHardwareAccelerationTypeHelp": "Bul tájirıbelik múmkindik tek qoldaý kórsetiletin júıelerde qoljetimdi.", "LabelHomeNetworkQuality": "Úılik jeli sapasy:", diff --git a/src/strings/ko.json b/src/strings/ko.json index a0276b700c..8e2e438d89 100644 --- a/src/strings/ko.json +++ b/src/strings/ko.json @@ -858,7 +858,7 @@ "Blacklist": "블랙리스트", "HeaderConfirmPluginInstallation": "플러그인 설치 확인", "HeaderChapterImages": "챕터 이미지", - "H264EncodingPresetHelp": "성능을 높이려면 더 빠른 값을 선택하고, 품질을 높이려면 더 느린 값을 선택하십시오.", + "EncoderPresetHelp": "성능을 높이려면 더 빠른 값을 선택하고, 품질을 높이려면 더 느린 값을 선택하십시오.", "HDPrograms": "HD 프로그램", "Guide": "가이드", "GroupVersions": "그룹 버전", @@ -1068,7 +1068,7 @@ "LabelLanNetworks": "LAN 네트워크:", "LabelInternetQuality": "인터넷 퀄리티:", "LabelHomeNetworkQuality": "홈 네트워크 퀄리티:", - "LabelH264EncodingPreset": "H264 인코딩 프리셋:", + "LabelEncoderPreset": "H264 인코딩 프리셋:", "LabelFont": "폰트:", "LabelFolder": "폴더:", "LabelFileOrUrl": "파일 또는 URL:", diff --git a/src/strings/lt-lt.json b/src/strings/lt-lt.json index 169ecdb035..fa97fe2d8b 100644 --- a/src/strings/lt-lt.json +++ b/src/strings/lt-lt.json @@ -912,7 +912,7 @@ "Filters": "Filtrai", "FormatValue": "Formatas: {0}", "GuideProviderSelectListings": "Sąrašų pasirinkimas", - "H264EncodingPresetHelp": "Pasirinkite greitesnę reikšmę, kad pagerintumėte našumą, arba mažesnę, norėdami pagerinti kokybę.", + "EncoderPresetHelp": "Pasirinkite greitesnę reikšmę, kad pagerintumėte našumą, arba mažesnę, norėdami pagerinti kokybę.", "HeaderRestart": "Perkrauti", "LabelDateTimeLocale": "Data ir laikas:", "LabelEnableSingleImageInDidlLimit": "Apriboti iki vieno įterpto vaizdo", diff --git a/src/strings/nb.json b/src/strings/nb.json index 1f801f8fa7..8f8f32998f 100644 --- a/src/strings/nb.json +++ b/src/strings/nb.json @@ -189,7 +189,7 @@ "GuestStar": "Gjesteskuespiller", "GuideProviderSelectListings": "Velg oppføringer", "H264CrfHelp": "Constant Rate Factor (CRF) er standard kvalitetsinnstilling for x264-koderen. Du kan stille inn verdier mellom 0 og 51, hvor lavere verdier vil resultere i bedre kvalitet (på bekostning av høyere fil-størrelse). Fornuftige verdier ligger mellom 18 og 28. Standard for x264 er 23, så du kan bruke det som et utgangspunkt.", - "H264EncodingPresetHelp": "Velg en raskere verdi for å forbedre ytelsen, eller en lavere verdi for å forbedre kvaliteten.", + "EncoderPresetHelp": "Velg en raskere verdi for å forbedre ytelsen, eller en lavere verdi for å forbedre kvaliteten.", "HDPrograms": "HD-programmer", "HardwareAccelerationWarning": "Aktivering av maskinvareakselerasjon kan føre til ustabilitet i enkelte miljøer. Sørg for at operativsystemet og skjermdriverne dine er fullt oppdatert. Hvis du har problemer med å spille videoer etter å ha aktivert dette, må du endre innstillingen tilbake til Auto.", "HeaderAccessSchedule": "Tidsplan for tilgang", @@ -487,7 +487,7 @@ "LabelGroupMoviesIntoCollections": "Gruppér filmer i samlinger", "LabelGroupMoviesIntoCollectionsHelp": "Ved visning av filmlister vil filmer som tilhører en samling bli vist som ett gruppeelement.", "LabelH264Crf": "CRF-verdi for H264-koding:", - "LabelH264EncodingPreset": "Forhåndsinnstilling for H264-koding:", + "LabelEncoderPreset": "Forhåndsinnstilling for H264-koding:", "LabelHardwareAccelerationType": "Maskinvareakselerasjon:", "LabelHardwareAccelerationTypeHelp": "Dette er en eksperimentell funksjon som bare er tilgjengelig på støttede systemer.", "LabelHomeScreenSectionValue": "Hjemskjermseksjon {0}:", diff --git a/src/strings/nl.json b/src/strings/nl.json index 40d449cb9c..9ac84a7396 100644 --- a/src/strings/nl.json +++ b/src/strings/nl.json @@ -252,7 +252,7 @@ "GuideProviderLogin": "Log in", "GuideProviderSelectListings": "Selecteer lijst", "H264CrfHelp": "De Constant Rate Factor (CRF) is de standaard kwaliteit instelling voor de x264-encoder. U kunt de waarden tussen 0 en 51, in voorkomend lagere waarden zou resulteren in een betere kwaliteit (ten koste van hogere bestandsgrootte). aanbevolen zijn waarden tussen de 18 en 28. De standaard voor de x264 is 23, zodat u deze kunt gebruiken als uitgangspunt.", - "H264EncodingPresetHelp": "Kies een hogere waarde om de prestaties, of een tragere waarde om de kwaliteit te verbeteren.", + "EncoderPresetHelp": "Kies een hogere waarde om de prestaties, of een tragere waarde om de kwaliteit te verbeteren.", "HDPrograms": "HD Programma's", "HandledByProxy": "Behandeld door reverse proxy", "HardwareAccelerationWarning": "Hardwareversnelling inschakelen kan instabiliteit veroorzaken in sommige omgevingen. Zorg ervoor dat uw besturingssysteem en videostuurprogramma's volledig up-to-date zijn. Als u problemen ondervindt bij het afspelen van video, nadat u dit hebt ingeschakeld, moet u de instelling terugzetten naar Auto.", @@ -580,7 +580,7 @@ "LabelServerNameHelp": "Deze naam wordt gebruikt om de server te identificeren, standaard is deze de server zijn computer naam.", "LabelGroupMoviesIntoCollections": "Groepeer films in collecties", "LabelGroupMoviesIntoCollectionsHelp": "Bij de weergave van film lijsten, zullen films die tot een collectie behoren worden weergegeven als een gegroepeerd object.", - "LabelH264EncodingPreset": "H264 codering preset:", + "LabelEncoderPreset": "H264 codering preset:", "LabelHardwareAccelerationType": "Hardware acceleratie:", "LabelHardwareAccelerationTypeHelp": "Dit is een experimentele functie die alleen beschikbaar is op ondersteunde systemen.", "LabelHomeNetworkQuality": "Thuisnetwerk kwaliteit:", diff --git a/src/strings/pl.json b/src/strings/pl.json index 92f1e54363..fcaea7a709 100644 --- a/src/strings/pl.json +++ b/src/strings/pl.json @@ -268,7 +268,7 @@ "GuideProviderLogin": "Logowanie", "GuideProviderSelectListings": "Pokazuj oferty", "H264CrfHelp": "Constant Rate Factor (CRF) to domyślna jakość kodowania x264. Możesz ją ustawić w zakresie 0-51, gdzie niższe wartości zwiększają jakość (kosztem większego rozmiaru pliku). Rozsądne wartości to zakres 18-28. Domyślnie jest to wartość 23 - możesz jej użyć jako wartości początkowej.", - "H264EncodingPresetHelp": "Wybierz wartość faster, żeby zwiększyć wydajność, albo slower, żeby zwiększyć jakość.", + "EncoderPresetHelp": "Wybierz wartość faster, żeby zwiększyć wydajność, albo slower, żeby zwiększyć jakość.", "HDPrograms": "Programy w jakości HD", "HandledByProxy": "Obsługiwane przez usługę pośredniczącą", "HardwareAccelerationWarning": "Aktywacja akceleracji sprzętowej może powodować niestabilność na niektórych środowiskach. Upewnij się, że system operacyjny i sterowniki karty graficznej są aktualne. Jeżeli masz problemy z odtwarzaniem wideo po aktywacji, przywróć to ustawienie do wartości Automatycznie.", @@ -617,7 +617,7 @@ "LabelGroupMoviesIntoCollections": "Grupuj filmy w kolekcje", "LabelGroupMoviesIntoCollectionsHelp": "Podczas wyświetlania listy filmów, filmy należące do kolekcji będą wyświetlone jako jedna zgrupowana pozycja.", "LabelH264Crf": "CRF kodowania H264:", - "LabelH264EncodingPreset": "Szablon kodowania H264:", + "LabelEncoderPreset": "Szablon kodowania H264:", "LabelHardwareAccelerationType": "Akceleracja sprzętowa:", "LabelHardwareAccelerationTypeHelp": "Jest to funkcja eksperymentalna dostępna tylko w obsługiwanych systemach.", "LabelHomeNetworkQuality": "Jakość dla sieci lokalnej:", diff --git a/src/strings/pt-br.json b/src/strings/pt-br.json index 06ad3fb9e5..8f9a9b022b 100644 --- a/src/strings/pt-br.json +++ b/src/strings/pt-br.json @@ -257,7 +257,7 @@ "Guide": "Guia", "GuideProviderSelectListings": "Selecionar Listas", "H264CrfHelp": "O CRF (Constant Rate Factor) é a configuração padrão de qualidade para o codificador x264. Você pode definir valores entre 0 e 51, onde valores menores resultarão em melhor qualidade (ao custo de arquivos maiores). Valores saudáveis estão entre 18 e 28. O padrão para o x264 é 23, então você pode usar isso como um ponto de partida.", - "H264EncodingPresetHelp": "Escolha um valor mais rápido para melhorar o desempenho ou um valor mais lento para melhorar a qualidade.", + "EncoderPresetHelp": "Escolha um valor mais rápido para melhorar o desempenho ou um valor mais lento para melhorar a qualidade.", "HDPrograms": "Programas em HD", "HandledByProxy": "Tratado pelo proxy reverso", "HardwareAccelerationWarning": "Ativar a aceleração de hardware pode causar instabilidade em alguns sistemas. Verifique se seu sistema operacional e drivers de vídeo estão atualizados. Se tiver dificuldades em reproduzir vídeo depois de ativar, retorne a configuração para automático.", @@ -601,7 +601,7 @@ "LabelGroupMoviesIntoCollections": "Agrupar filmes em coletâneas", "LabelGroupMoviesIntoCollectionsHelp": "Ao exibir listas de filmes, filmes que pertençam a uma coletânea serão exibidos como um único item agrupado.", "LabelH264Crf": "CRF de codificação H264:", - "LabelH264EncodingPreset": "Preset de codificação H264:", + "LabelEncoderPreset": "Preset de codificação H264:", "LabelHardwareAccelerationType": "Aceleração de hardware:", "LabelHardwareAccelerationTypeHelp": "Esta é uma função experimental disponível apenas em sistemas suportados.", "LabelHomeNetworkQuality": "Qualidade da rede local:", diff --git a/src/strings/pt-pt.json b/src/strings/pt-pt.json index 89df6ba163..2cf5193bd7 100644 --- a/src/strings/pt-pt.json +++ b/src/strings/pt-pt.json @@ -868,7 +868,7 @@ "HeaderAddToPlaylist": "Adicionar à Lista de Reprodução", "HandledByProxy": "Gerido pelo proxy inverso", "HDPrograms": "Programas HD", - "H264EncodingPresetHelp": "Escolha um valor mais rápido para melhorar o desempenho, ou um valor mais lento para melhorar a qualidade.", + "EncoderPresetHelp": "Escolha um valor mais rápido para melhorar o desempenho, ou um valor mais lento para melhorar a qualidade.", "Guide": "Programação", "GuestStar": "Estrela convidada", "GroupVersions": "Agrupar versões", @@ -933,7 +933,7 @@ "OptionProtocolHls": "Emissão HTTP em direto", "LabelHomeScreenSectionValue": "Secção {0} do Painel Principal:", "LabelHomeNetworkQuality": "Qualidade da rede interna:", - "LabelH264EncodingPreset": "Preset para codificação H264:", + "LabelEncoderPreset": "Preset para codificação H264:", "LabelH264Crf": "CRF para codificação H264:", "LabelFont": "Tipo de Letra:", "LabelFileOrUrl": "Ficheiro ou URL:", diff --git a/src/strings/pt.json b/src/strings/pt.json index 200077568d..bece117113 100644 --- a/src/strings/pt.json +++ b/src/strings/pt.json @@ -342,7 +342,7 @@ "LabelHomeNetworkQuality": "Qualidade da rede interna:", "LabelHardwareAccelerationTypeHelp": "Esta funcionalidade é experimental e está disponível apenas em sistemas suportados.", "LabelHardwareAccelerationType": "Aceleração por hardware:", - "LabelH264EncodingPreset": "Predefinição para codificação H264:", + "LabelEncoderPreset": "Predefinição para codificação H264:", "LabelH264Crf": "CRF para codificação H264:", "LabelGroupMoviesIntoCollectionsHelp": "Ao mostrar listas de filmes, filmes que pertençam a uma colecção serão mostrados como um único item agrupado.", "LabelGroupMoviesIntoCollections": "Agrupar filmes em colecções", @@ -1179,7 +1179,7 @@ "HardwareAccelerationWarning": "Activar a aceleração por hardware pode causar instabilidade em alguns ambientes. Garanta que o sistema operativo e os controladores da placa gráfica estão completamente actualizados. Se tiver dificuldades em reproduzir vídeo depois de alterar esta opção, pode ser necessário repôr \\\"Auto\\\".", "HandledByProxy": "Gerido pelo proxy inverso", "HDPrograms": "Programas HD", - "H264EncodingPresetHelp": "Escolha um valor mais rápido para melhorar o desempenho, ou um valor mais lento para melhorar a qualidade.", + "EncoderPresetHelp": "Escolha um valor mais rápido para melhorar o desempenho, ou um valor mais lento para melhorar a qualidade.", "H264CrfHelp": "O parâmetro \\\"Constant Rate Factor (CRF)\\\" define o nível de qualidade usadoi por omissão pelo codificador x264. Os valores variam entre 0 e 51, em que valores mais baixos resultam em maior qualidade (com o custo de ficheiros maiores). Valores entre 18 e 28 são habitualmente considerados aceitáveis. O valor por omissão é 23, sendo um bom ponto de partida para ajustes.", "GuideProviderSelectListings": "Seleccionar Listas", "Guide": "Programação", diff --git a/src/strings/ro.json b/src/strings/ro.json index a983d98c7a..fe0194d0e5 100644 --- a/src/strings/ro.json +++ b/src/strings/ro.json @@ -511,7 +511,7 @@ "GroupVersions": "Grup versiuni", "GuestStar": "Vedeta invitata", "GuideProviderSelectListings": "Selectați Listări", - "H264EncodingPresetHelp": "Alegeți o valoare mai rapidă pentru a îmbunătăți performanța sau o valoare mai lentă pentru a îmbunătăți calitatea.", + "EncoderPresetHelp": "Alegeți o valoare mai rapidă pentru a îmbunătăți performanța sau o valoare mai lentă pentru a îmbunătăți calitatea.", "HardwareAccelerationWarning": "Activarea accelerării hardware poate provoca instabilitate în anumite medii. Asigurați-vă că sistemul de operare și driverele video sunt complet actualizate. Dacă întâmpinați dificultăți pentru a reda video după activarea acestei opțiuni, va trebui să schimbați setarea la Auto.", "HeaderAccessSchedule": "Program de Acces", "HeaderAccessScheduleHelp": "Creați un program de acces pentru a limita accesul la anumite ore.", @@ -811,7 +811,7 @@ "LabelHomeNetworkQuality": "Calitatea pe rețeaua de domiciliu:", "LabelHardwareAccelerationTypeHelp": "Aceasta este o caracteristică experimentală disponibilă doar pe sistemele acceptate.", "LabelHardwareAccelerationType": "Accelerare hardware:", - "LabelH264EncodingPreset": "H264 encoding presetat:", + "LabelEncoderPreset": "H264 encoding presetat:", "LabelH264Crf": "CRF codare H264:", "LabelGroupMoviesIntoCollectionsHelp": "La afișarea listelor de filme, filmele aparținând unei colecții vor fi afișate ca un articol grupat.", "LabelGroupMoviesIntoCollections": "Grupează filmele în colecții", diff --git a/src/strings/ru.json b/src/strings/ru.json index f8ede4ea8a..7615a26cda 100644 --- a/src/strings/ru.json +++ b/src/strings/ru.json @@ -270,7 +270,7 @@ "GuideProviderLogin": "Вход", "GuideProviderSelectListings": "Выбор перечней", "H264CrfHelp": "Постоянное значение оценки (Constant Rate Factor, CRF) - параметр качества по умолчанию для кодёра x264. Возможно задавать значения от 0 до 51, где меньшие значения привели бы к улучшению качества (за счёт бо́льших размеров файлов). Разумными являются значения от 18 до 28. Стандартно для x264 - 23, так что вы можете использовать это в качестве отправной точки.", - "H264EncodingPresetHelp": "Выберите значение быстрее для улучшения производительности, или значение медленнее для улучшения качества.", + "EncoderPresetHelp": "Выберите значение быстрее для улучшения производительности, или значение медленнее для улучшения качества.", "HDPrograms": "HD-передачи", "HandledByProxy": "Обрабатывается обратным прокси", "HardwareAccelerationWarning": "Включение аппаратного ускорения может привести к нестабильности в некоторых средах. Убедитесь в том, что ваша операционная система и видеодрайверы полностью актуализированы. Если имеются проблемы с воспроизведением видео после включения этого, необходимо сменить параметр назад на Авто.", @@ -620,7 +620,7 @@ "LabelGroupMoviesIntoCollections": "Группировать фильмы внутрь коллекций", "LabelGroupMoviesIntoCollectionsHelp": "При отображении списка фильмов, элементы, принадлежащие к одной коллекции будут отображаться как единый сгруппированный элемент.", "LabelH264Crf": "Значение CRF H264-кодирования:", - "LabelH264EncodingPreset": "Предустановка H264-кодирования:", + "LabelEncoderPreset": "Предустановка H264-кодирования:", "LabelHardwareAccelerationType": "Аппаратное ускорение:", "LabelHardwareAccelerationTypeHelp": "Это экспериментальная функция, имеющаяся только на поддерживаемых системах.", "LabelHomeNetworkQuality": "Качество в домашней сети:", diff --git a/src/strings/sk.json b/src/strings/sk.json index d719c4fd6c..19cf3e3615 100644 --- a/src/strings/sk.json +++ b/src/strings/sk.json @@ -1146,7 +1146,7 @@ "HardwareAccelerationWarning": "Povolenie hardvérovej akcelerácie môže spôsobiť nestabilitu v niektorých podmienkach. Uistite sa, že váš operačný systém a grafické ovládače sú plne aktualizované. Pokiaľ máte po zapnutí problémy s prehrávaním videa, budete musieť zmeniť nastavenie späť na Auto.", "AddItemToCollectionHelp": "Pridať položku do kolekcie jej vyhľadaním a použitím pravého tlačítka myši alebo kliknutím na tlačidlo ponuky a pridať do kolekcie.", "HandledByProxy": "Spracované pomocou reverznej proxy", - "H264EncodingPresetHelp": "Vyberte hodnotu faster pre zlepšenie výkonu alebo hodnotu slower pre zlepšenie kvality.", + "EncoderPresetHelp": "Vyberte hodnotu faster pre zlepšenie výkonu alebo hodnotu slower pre zlepšenie kvality.", "H264CrfHelp": "Constant Rate Factor (CRF) je východzím nastavením kvality pre x264 enkodér. Môžete mu nadstaviť hodnotu medzi 0 a 51, kde nižšia hodnota vedie k vyššej kvalite (za cenu väčšieho súboru). Rozumné hodnoty sú medzi 18 a 28. Východzia hodnota pre x264 je 23, ktorú môžete použiť ako začiatočný bod.", "GuideProviderSelectListings": "Výber zobrazenia", "GroupVersions": "Skupinové verzie", @@ -1430,7 +1430,7 @@ "LabelIconMaxHeightHelp": "Maximálne rozlíšenie ikon pomocou prostredníctvom upnp:icon.", "LabelHttpsPortHelp": "Číslo TCP portu, na ktoré by sa mal naviazať Jellyfin HTTPS server.", "LabelHomeNetworkQuality": "Kvalita na domácej sieti:", - "LabelH264EncodingPreset": "Prednastavené H264 enkódovanie:", + "LabelEncoderPreset": "Prednastavené H264 enkódovanie:", "LabelH264Crf": "H264 enkódovanie CRF:", "LabelFriendlyName": "Priateľský názov:", "LabelFolder": "Priečinok:", diff --git a/src/strings/sl-si.json b/src/strings/sl-si.json index 05db2ee3e9..9ea6a72c88 100644 --- a/src/strings/sl-si.json +++ b/src/strings/sl-si.json @@ -454,7 +454,7 @@ "HardwareAccelerationWarning": "Omogočanje strojnega pospeševanja lahko povzroči nestabilnost v določenih okoljih. Zagotovite, da so vaš operacijski sistem in gonilniki posodobljeni. Če imate po omogočanju te nastavitve težave s predvajanjem videa, jo nastavite nazaj na samodejno.", "HandledByProxy": "Upravlja reverse proxy", "HDPrograms": "HD programi", - "H264EncodingPresetHelp": "Izberite hitrejšo vrednost za boljšo zmogljivost ali počasnejšo vrednost za boljšo kakovost.", + "EncoderPresetHelp": "Izberite hitrejšo vrednost za boljšo zmogljivost ali počasnejšo vrednost za boljšo kakovost.", "H264CrfHelp": "Faktor stalne hitrosti (CRF) je privzeta nastavitev kakovosti za kodirnik x264. Vrednosti lahko nastavite med 0 in 51, pri čemer nižje vrednosti dosežejo boljšo kakovost (na račun večjih velikosti datotek). Razumne vrednosti so med 18 in 28. Privzeta vrednost za x264 je 23, zato lahko to uporabite kot izhodišče.", "GuideProviderSelectListings": "Izberi sezname", "GuideProviderLogin": "Prijava", @@ -687,7 +687,7 @@ "LabelFileOrUrl": "Datoteka ali URL:", "LabelFont": "Pisava:", "LabelGroupMoviesIntoCollections": "Združi filme v zbirke", - "LabelH264EncodingPreset": "Predloga kodiranja H264:", + "LabelEncoderPreset": "Predloga kodiranja H264:", "LabelHardwareAccelerationType": "Strojno pospeševanje:", "LabelHardwareAccelerationTypeHelp": "To je eksperimentalna funkcija, ki je na voljo zgolj na podprtih sistemih.", "LabelHomeNetworkQuality": "Kvaliteta v domačem omrežju:", diff --git a/src/strings/sv.json b/src/strings/sv.json index c7d1931201..17556a0f6d 100644 --- a/src/strings/sv.json +++ b/src/strings/sv.json @@ -242,7 +242,7 @@ "GuideProviderLogin": "Logga in", "GuideProviderSelectListings": "Välj listor", "H264CrfHelp": "Constant Rate Factor (CRF) är kvalitetsinställningen för x264-kodeken. Du kan använda värden mellan 0 och 51, där lägre värden resulterar i bättre kvalitet (på bekostnad av större filstorlekar). Rimliga värden ligger mellan 18 och 28. Det förvalda värdet är 23, som du kan använda som utgångspunkt.", - "H264EncodingPresetHelp": "Välj ett snabbare värde för öka prestandan, eller ett långsammare värde för att utöka kvaliten.", + "EncoderPresetHelp": "Välj ett snabbare värde för öka prestandan, eller ett långsammare värde för att utöka kvaliten.", "HDPrograms": "HD-program", "HandledByProxy": "Hanteras av reverse proxy", "HardwareAccelerationWarning": "Aktivering av hårdvaruacceleration kan innebära instabilitet i vissa miljöer. Säkerställ att ditt operativsystem och dina grafikdrivrutiner är helt uppdaterade. Om du har problem att spela upp videor när detta är på behöver du ändra tillbaka inställningen till Auto.", @@ -574,7 +574,7 @@ "LabelGroupMoviesIntoCollections": "Gruppera filmer i samlingsboxar", "LabelGroupMoviesIntoCollectionsHelp": "I filmlistor visas filmer som ingår i en samlingsbox som ett enda objekt.", "LabelH264Crf": "H264-omkodning CRF:", - "LabelH264EncodingPreset": "H264-omkodningsförval:", + "LabelEncoderPreset": "H264-omkodningsförval:", "LabelHardwareAccelerationType": "Hårdvaruacceleration:", "LabelHardwareAccelerationTypeHelp": "Endast tillgängligt på hårdvara med stöd.", "LabelHomeNetworkQuality": "Hemnätverkskvalitet:", diff --git a/src/strings/tr.json b/src/strings/tr.json index d6df5a73a2..c9b5f8014d 100644 --- a/src/strings/tr.json +++ b/src/strings/tr.json @@ -513,7 +513,7 @@ "HardwareAccelerationWarning": "Donanım ivmesini etkinleştirmek bazı ortamlarda dengesizliğe neden olabilir. İşletim sisteminizin ve video sürücülerinizin tamamen güncel olduğundan emin olun. Bunu etkinleştirdikten sonra video oynatmakta zorluk çekiyorsanız, ayarı tekrar Auto (Otomatik) olarak değiştirmeniz gerekecektir.", "HandledByProxy": "Ters proxy tarafından kullanılır", "HDPrograms": "HD programlar", - "H264EncodingPresetHelp": "Performansı artırmak için daha hızlı bir değer veya kaliteyi artırmak için daha yavaş bir değer seçin.", + "EncoderPresetHelp": "Performansı artırmak için daha hızlı bir değer veya kaliteyi artırmak için daha yavaş bir değer seçin.", "H264CrfHelp": "Sabit Hız Faktörü (CRF), x264 kodlayıcı için varsayılan kalite ayarıdır. Değerleri 0 ile 51 arasında ayarlayabilirsiniz, burada daha düşük değerler daha iyi kaliteyle sonuçlanır (daha yüksek dosya boyutları pahasına). Aklı başında değerleri 18 ila 28 arasındadır. X264 için varsayılan 23, bu nedenle bunu başlangıç noktası olarak kullanabilirsiniz.", "GuideProviderSelectListings": "İlan Seç", "GuideProviderLogin": "Oturum aç", diff --git a/src/strings/zh-cn.json b/src/strings/zh-cn.json index c4c5776d67..df64ead346 100644 --- a/src/strings/zh-cn.json +++ b/src/strings/zh-cn.json @@ -244,7 +244,7 @@ "GuideProviderLogin": "登入", "GuideProviderSelectListings": "选择列表", "H264CrfHelp": "The Constant Rate Factor (CRF) 是 x264 编码器的默认质量设置。您可以设置介于0和51之间的值, 其中较低的值将导致更好的质量 (以更高的文件大小为代价)。正常值介于18和28之间。x264 的默认值为 23, 因此可以将其用作起始点。", - "H264EncodingPresetHelp": "选择一个更快的值以提升性能,或者选择一个更慢的值以提升质量。", + "EncoderPresetHelp": "选择一个更快的值以提升性能,或者选择一个更慢的值以提升质量。", "HDPrograms": "高清节目", "HandledByProxy": "由反向代理处理", "HardwareAccelerationWarning": "启动硬件加速可能在某些环境下导致系统不稳定。请确认你的操作系统和视频驱动程序是最新的。如果你在开启此项后播放视频产生困难,那么你需要将此选项设置回”自动“。", @@ -581,7 +581,7 @@ "LabelGroupMoviesIntoCollections": "批量添加电影到收藏", "LabelGroupMoviesIntoCollectionsHelp": "显示电影列表时,属于一个收藏的电影将显示为一个分组。", "LabelH264Crf": "H264 CRF 编码质量等级:", - "LabelH264EncodingPreset": "H264 编码预设:", + "LabelEncoderPreset": "H264 和 H265 编码预设:", "LabelHardwareAccelerationType": "硬件加速:", "LabelHardwareAccelerationTypeHelp": "此特性只能在支持的系统上使用。", "LabelHomeNetworkQuality": "家庭网络质量:", diff --git a/src/strings/zh-tw.json b/src/strings/zh-tw.json index ceb4af38f6..b0ef42c743 100644 --- a/src/strings/zh-tw.json +++ b/src/strings/zh-tw.json @@ -549,7 +549,7 @@ "Guide": "指南", "GuideProviderSelectListings": "選擇列表", "H264CrfHelp": "The Constant Rate Factor (CRF) 是 x264 編碼器的默認畫質設置。此方法允許編碼器自動分配位元速率來試著達到一定輸出品質。讓每個畫格得到它需要的位元數來保持所需的品質等級。CRF 會得到最佳的位元速率分配結果。", - "H264EncodingPresetHelp": "速度越慢則會得到更好的壓縮編碼效率。", + "EncoderPresetHelp": "速度越慢則會得到更好的壓縮編碼效率。", "HDPrograms": "HD節目", "HandledByProxy": "由反向代理處理", "HardwareAccelerationWarning": "啟動硬體加速可能在某些環境下導致系統不穩定。請確認你的作業系統和影片驅動程式是最新的。如果你在開啟此項後播放影片產生困難,那麼你需要將此選項設回”自動“。", @@ -1195,7 +1195,7 @@ "LabelKodiMetadataDateFormat": "釋出日期格式:", "LabelIconMaxWidth": "Icon 最寬寬度:", "LabelGroupMoviesIntoCollectionsHelp": "顯示電影列表時,屬於相同集合的電影將作為分組項目顯示。", - "LabelH264EncodingPreset": "H264 解碼品質:", + "LabelEncoderPreset": "H264 解碼品質:", "LabelHardwareAccelerationType": "硬體加速:", "LabelIconMaxWidthHelp": "通過 upnp:icon 的圖標最大解析度。", "LabelImportOnlyFavoriteChannels": "僅限收藏的頻道", From 17f948018815946cbcbf8540397046e4ed1e3a28 Mon Sep 17 00:00:00 2001 From: Dmitry Lyzo Date: Wed, 5 Feb 2020 15:20:48 +0300 Subject: [PATCH 088/116] Disable keyboard navigation for non-TV --- src/components/keyboardnavigation.js | 27 +++++++++++++++++++++++++-- src/controllers/playback/videoosd.js | 7 +------ 2 files changed, 26 insertions(+), 8 deletions(-) diff --git a/src/components/keyboardnavigation.js b/src/components/keyboardnavigation.js index d1ed03138c..4f3ed873d9 100644 --- a/src/components/keyboardnavigation.js +++ b/src/components/keyboardnavigation.js @@ -36,6 +36,11 @@ define(["inputManager", "layoutManager"], function (inputManager, layoutManager) 10252: "MediaPlayPause" }; + /** + * Keys used for keyboard navigation. + */ + var NavigationKeys = ["ArrowLeft", "ArrowRight", "ArrowUp", "ArrowDown"]; + var hasFieldKey = false; try { hasFieldKey = "key" in new KeyboardEvent("keydown"); @@ -60,11 +65,28 @@ define(["inputManager", "layoutManager"], function (inputManager, layoutManager) return KeyNames[event.keyCode] || event.key; } + /** + * Returns _true_ if key is used for navigation. + * + * @param {string} key name + * @return {boolean} _true_ if key is used for navigation + */ + function isNavigationKey(key) { + return NavigationKeys.indexOf(key) != -1; + } + function enable() { document.addEventListener("keydown", function (e) { + var key = getKeyName(e); + + // Ignore navigation keys for non-TV + if (!layoutManager.tv && isNavigationKey(key)) { + return; + } + var capture = true; - switch (getKeyName(e)) { + switch (key) { case "ArrowLeft": inputManager.handle("left"); break; @@ -128,6 +150,7 @@ define(["inputManager", "layoutManager"], function (inputManager, layoutManager) return { enable: enable, - getKeyName: getKeyName + getKeyName: getKeyName, + isNavigationKey: isNavigationKey }; }); diff --git a/src/controllers/playback/videoosd.js b/src/controllers/playback/videoosd.js index 122b2c8080..fd42f68498 100644 --- a/src/controllers/playback/videoosd.js +++ b/src/controllers/playback/videoosd.js @@ -1087,11 +1087,6 @@ define(["playbackManager", "dom", "inputManager", "datetime", "itemHelper", "med } } - /** - * Keys used for keyboard navigation. - */ - var NavigationKeys = ["ArrowLeft", "ArrowRight", "ArrowUp", "ArrowDown"]; - /** * Clicked element. * To skip 'click' handling on Firefox/Edge. @@ -1109,7 +1104,7 @@ define(["playbackManager", "dom", "inputManager", "datetime", "itemHelper", "med return; } - if (layoutManager.tv && NavigationKeys.indexOf(key) != -1) { + if (layoutManager.tv && keyboardnavigation.isNavigationKey(key)) { showOsd(); return; } From 8ac0cde29ec0f1c2e1c14ba1910a235cd7d19954 Mon Sep 17 00:00:00 2001 From: Dmitry Lyzo Date: Wed, 5 Feb 2020 17:58:11 +0300 Subject: [PATCH 089/116] Fix logoscreensaver image path --- src/components/logoscreensaver/plugin.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/logoscreensaver/plugin.js b/src/components/logoscreensaver/plugin.js index 0eb5e85d31..7716bbf6e5 100644 --- a/src/components/logoscreensaver/plugin.js +++ b/src/components/logoscreensaver/plugin.js @@ -160,7 +160,7 @@ define(["pluginManager"], function (pluginManager) { elem.classList.add("logoScreenSaver"); document.body.appendChild(elem); - elem.innerHTML = ''; + elem.innerHTML = ''; } stopInterval(); From c706a09c5320e46bd18499d1a5a6826d08806654 Mon Sep 17 00:00:00 2001 From: nextlooper42 Date: Wed, 5 Feb 2020 07:15:41 +0000 Subject: [PATCH 090/116] Translated using Weblate (Slovak) Translation: Jellyfin/Jellyfin Web Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/sk/ --- src/strings/sk.json | 74 ++++++++++++++++++++++----------------------- 1 file changed, 37 insertions(+), 37 deletions(-) diff --git a/src/strings/sk.json b/src/strings/sk.json index 19cf3e3615..974f02f648 100644 --- a/src/strings/sk.json +++ b/src/strings/sk.json @@ -5,7 +5,7 @@ "Albums": "Albumy", "All": "Všetko", "AllChannels": "Všetky kanály", - "AllComplexFormats": "Všetky komplexné formáty (ASS, SSA, VOBSUB, PGS, SUB/IDX, atď)", + "AllComplexFormats": "Všetky komplexné formáty (ASS, SSA, VOBSUB, PGS, SUB/IDX, atď.)", "AllEpisodes": "Všetky epizódy", "AllLanguages": "Všetky jazyky", "AllLibraries": "Všetky knižnice", @@ -21,15 +21,15 @@ "AspectRatio": "Pomer strán", "AttributeNew": "Nové", "AutoBasedOnLanguageSetting": "Automaticky (na základe nastavenia jazyka)", - "Backdrops": "Pozadie", - "BirthDateValue": "Narodil sa: {0}", + "Backdrops": "Pozadia", + "BirthDateValue": "Narodený/á: {0}", "BirthLocation": "Miesto narodenia", "BirthPlaceValue": "Miesto narodenia: {0}", "BookLibraryHelp": "Audioknihy a učebnice sú podporované. Prečítajte si {0}pravidlá pre názvy kníh v Jellyfine{1}.", "Books": "Knihy", "ButtonAdd": "Pridať", "ButtonAddMediaLibrary": "Pridať knižnicu médií", - "ButtonAddScheduledTaskTrigger": "Pridať spúštač", + "ButtonAddScheduledTaskTrigger": "Pridať spúšťač", "ButtonAddServer": "Pridať server", "ButtonAddUser": "Pridať používateľa", "ButtonArrowDown": "Dole", @@ -61,7 +61,7 @@ "ButtonNextTrack": "Nasledujúca stopa", "ButtonOpen": "Otvoriť", "ButtonParentalControl": "Rodičovská kontrola", - "ButtonPause": "Pauza", + "ButtonPause": "Pozastaviť", "ButtonPlay": "Prehrať", "ButtonPreviousTrack": "Predchádzajúca stopa", "ButtonProfile": "Profil", @@ -92,7 +92,7 @@ "ButtonTrailer": "Trailer", "ButtonUninstall": "Odinštalovať", "ButtonUp": "Hore", - "ButtonViewWebsite": "Zobraziť web stránku", + "ButtonViewWebsite": "Zobraziť webovú stránku", "ButtonWebsite": "Webové stránky", "Categories": "Kategórie", "ChannelAccessHelp": "Zvoľte kanály zdieľané s týmto používateľom. Administrátori budú schopní upraviť všetky kanály použitím správcu metadát.", @@ -109,8 +109,8 @@ "CriticRating": "Hodnotenie kritikov", "DateAdded": "Dátum pridania", "DatePlayed": "Dátum prehrania", - "DeathDateValue": "Zomrel: {0}", - "DefaultErrorMessage": "Pri spracúvaní požiadavky došlo k chybe. Skúste prosím neskôr znova.", + "DeathDateValue": "Zomrel/a: {0}", + "DefaultErrorMessage": "Pri spracovaní požiadavky došlo k chybe. Prosím, skúste to neskôr znova.", "Delete": "Zmazať", "DeleteDeviceConfirmation": "Ste si istý, že chcete odstrániť toto zariadenie? Objaví sa znovu, keď sa ním používateľ nabudúce prihlási.", "DeleteImage": "Zmazať obrázok", @@ -120,7 +120,7 @@ "DeleteUserConfirmation": "Ste si istý, že chcete zmazať tohto používateľa?", "Descending": "Zostupne", "Desktop": "Stolný počítač", - "DetectingDevices": "Detegujem zariadenia", + "DetectingDevices": "Hľadám zariadenia", "DeviceAccessHelp": "Táto možnosť sa vzťahuje iba na zariadenia, ktoré môžu byť jedinečne identifikované a nezabráni prístup cez prehliadač. Filtrovaním prístupu používateľských zariadení zabraňuje užívateľom použiť nové zariadenie, pokiaľ neboli tu schválené.", "Director": "Režisér", "DirectorValue": "Réžia: {0}", @@ -152,18 +152,18 @@ "Favorite": "Obľúbené", "Favorites": "Obľúbené", "File": "Súbor", - "FileNotFound": "Súbor nenájdený.", + "FileNotFound": "Súbor nebol nájdený.", "FileReadError": "Pri čítaní súboru nastala chyba.", "Filters": "Filtre", "FolderTypeBooks": "Knihy", "FolderTypeMovies": "Filmy", "FolderTypeMusic": "Hudba", "FolderTypeMusicVideos": "Hudobné videá", - "FolderTypeTvShows": "TV", + "FolderTypeTvShows": "Seriály", "FolderTypeUnset": "Zmiešaný obsah", "FormatValue": "Formát: {0}", "Friday": "Piatok", - "Fullscreen": "Na celú obrazovku", + "Fullscreen": "Celá obrazovka", "General": "Všeobecné", "GenreValue": "Žáner: {0}", "Genres": "Žánre", @@ -178,7 +178,7 @@ "HeaderActiveRecordings": "Aktívne nahrávky", "HeaderActivity": "Aktivita", "HeaderAddToCollection": "Pridať do kolekcie", - "HeaderAddUpdateImage": "Pridať/nahrať obrázok", + "HeaderAddUpdateImage": "Pridať/aktualizovať obrázok", "HeaderAddUser": "Pridať používateľa", "HeaderAlbums": "Albumy", "HeaderApiKey": "Kľúč API", @@ -187,7 +187,7 @@ "HeaderAudioSettings": "Nastavenia zvuku", "HeaderAutomaticUpdates": "Automatické aktualizácie", "HeaderBooks": "Knihy", - "HeaderCastAndCrew": "Obsadenie", + "HeaderCastAndCrew": "Obsadenie a štáb", "HeaderChannels": "Kanály", "HeaderChapterImages": "Obrázky kapitol", "HeaderConfigureRemoteAccess": "Nastaviť vzdialený prístup", @@ -225,7 +225,7 @@ "HeaderItems": "Položky", "HeaderLatestEpisodes": "Najnovšie epizódy", "HeaderLatestMedia": "Najnovšie médiá", - "HeaderLatestMovies": "Posledne pridané Filmy", + "HeaderLatestMovies": "Najnovšie filmy", "HeaderLatestMusic": "Najnovšia hudba", "HeaderLatestRecordings": "Najnovšie nahrávky", "HeaderLibraries": "Knižnice", @@ -238,7 +238,7 @@ "HeaderMedia": "Médiá", "HeaderMediaInfo": "Informácie o médiu", "HeaderMetadataSettings": "Nastavenia metadát", - "HeaderMoreLikeThis": "Podobné", + "HeaderMoreLikeThis": "Podobné ako toto", "HeaderMovies": "Filmy", "HeaderMusicQuality": "Kvalita hudby", "HeaderMusicVideos": "Hudobné videá", @@ -870,7 +870,7 @@ "ButtonSelectView": "Výber zobrazenia", "CancelRecording": "Zrušiť nahrávanie", "AirDate": "Dátum vysielania", - "Aired": "Vysielané", + "Aired": "Odvysielané", "Alerts": "Upozornenia", "AllowOnTheFlySubtitleExtraction": "Povoliť extrahovanie titulkov za behu", "ButtonFilter": "Filter", @@ -886,7 +886,7 @@ "Display": "Zobrazenie", "EnableBackdrops": "Pozadia", "EnableDisplayMirroring": "Zrkadlenie obrazu", - "Ended": "Ukončené", + "Ended": "Ukončený", "FileReadCancelled": "Čítanie súboru bolo zrušené.", "Folders": "Priečinky", "GuideProviderLogin": "Prihlásenie", @@ -926,12 +926,12 @@ "MessageImageFileTypeAllowed": "Sú podporované iba súbory JPEG a PNG.", "Playlists": "Playlisty", "Sync": "Synchronizácia", - "Box": "Puzdro", - "BoxRear": "Zadnýá časť puzdra", + "Box": "Obal", + "BoxRear": "Obal (zadná časť)", "ButtonLibraryAccess": "Prístup ku knižnici", "ConfirmDeleteItem": "Zmazaním tejto položky odstránite súbor zo súborového systému aj z knižnice médií. Ste si istý/á, že chcete pokračovať?", "ConfirmDeleteItems": "Zmazaním týchto položiek odstránite súbory zo súborového systému aj z knižnice médií. Ste si istý/á, že chcete pokračovať?", - "Continuing": "Pokračovanie", + "Continuing": "Pokračujúci", "Default": "Predvolené", "DirectStreamHelp2": "Priame streamovanie súboru používa veľmi málo procesorového výkonu bez straty kvality videa.", "DirectStreaming": "Priame streamovanie", @@ -944,7 +944,7 @@ "HeaderAddScheduledTaskTrigger": "Pridať spúšťač", "HeaderAddToPlaylist": "Pridať do playlistu", "HeaderAlert": "Upozornenie", - "HeaderCastCrew": "Herci a obsadenie", + "HeaderCastCrew": "Obsadenie a štáb", "HeaderDownloadSync": "Sťahovanie a synchronizácia", "HeaderExternalIds": "Externé ID:", "HeaderFeatureAccess": "Prístup k funkciám", @@ -1049,11 +1049,11 @@ "HeaderSeriesOptions": "Nastavenia seriálov", "HeaderRestartingServer": "Server sa reštartuje", "HeaderParentalRatings": "Rodičovské hodnotenia", - "HeaderEnabledFields": "Povolenie polia", + "HeaderEnabledFields": "Povolené polia", "HeaderAudioLanguages": "Jazyk zvuku", "HeaderAllowMediaDeletionFrom": "Povoliť zmazanie médií z", "HeaderAdmin": "Admin", - "EnableThemeVideos": "Videá uvodných zvučiek", + "EnableThemeVideos": "Videá úvodných zvučiek", "EnableThemeSongs": "Úvodné zvučky", "EnablePhotosHelp": "Obrázky budú detekované a zobrazené spolu s ostatnými multimediálnymi súbormi.", "EnableColorCodedBackgrounds": "Farebne označené pozadia", @@ -1126,10 +1126,10 @@ "HeaderFavoriteBooks": "Obľúbené knihy", "HeaderEnabledFieldsHelp": "Zrušte zaškrtnutie, aby ste zabránili zmenám dát.", "HeaderDisplay": "Zobrazenie", - "HeaderDirectPlayProfile": "Profil Direct Play", - "HeaderDeveloperInfo": "Vývojárske informácie", + "HeaderDirectPlayProfile": "Profil Priameho prehrávania", + "HeaderDeveloperInfo": "Informácie pre vývojára", "HeaderDeleteTaskTrigger": "Vymazať spúšťač úlohy", - "HeaderDefaultRecordingSettings": "Východzie nastavenia nahrávania", + "HeaderDefaultRecordingSettings": "Predvolené nastavenia nahrávania", "HeaderCodecProfileHelp": "Profily kodekov označujú obmedzenia zariadenia pri prehrávaní pomocou špecifických kodekov. Pokiaľ je obmedzenie aplikované, médium bude transkódované aj pokiaľ je kodek nakonfigurovaný na priame prehrávanie.", "HeaderContainerProfileHelp": "Profily kontajnerov označujú obmedzenia zariadenia pri prehrávaní pomocou špecifických formátov. Pokiaľ je obmedzenie aplikované, médium bude transkódované aj pokiaľ je formát nakonfigurovaný na priame prehrávanie.", "HeaderContainerProfile": "Profily kontajnerov", @@ -1140,8 +1140,8 @@ "HeaderBranding": "Značka", "HeaderBlockItemsWithNoRating": "Blokované položky so žiadnymi alebo nerozpoznanými informáciami o hodnotení:", "HeaderAppearsOn": "Objaví sa", - "HeaderApp": "Aplikácia", - "HeaderApiKeysHelp": "Externé aplikácie musia mať vlastný API kľúč, aby mohli komunikovať s Jellyfin Serverom. Kľúče sú vydávané pomocou prihlásenia sa cez Jellyfin účet alebo manuálnym priradením kľúča aplikacií.", + "HeaderApp": "Appka", + "HeaderApiKeysHelp": "Externé aplikácie musia mať vlastný API kľúč, aby mohli komunikovať s Jellyfin Serverom. Kľúče sú vydávané pomocou prihlásenia sa cez Jellyfin účet alebo manuálnym priradením kľúča aplikácií.", "HeaderAdditionalParts": "Dodatočné časti", "HardwareAccelerationWarning": "Povolenie hardvérovej akcelerácie môže spôsobiť nestabilitu v niektorých podmienkach. Uistite sa, že váš operačný systém a grafické ovládače sú plne aktualizované. Pokiaľ máte po zapnutí problémy s prehrávaním videa, budete musieť zmeniť nastavenie späť na Auto.", "AddItemToCollectionHelp": "Pridať položku do kolekcie jej vyhľadaním a použitím pravého tlačítka myši alebo kliknutím na tlačidlo ponuky a pridať do kolekcie.", @@ -1163,26 +1163,26 @@ "EnableThemeVideosHelp": "Prehrať videá úvodných zvučiek na pozadí počas prechádzania knižnice.", "EnableThemeSongsHelp": "Prehrať úvodnú zvučku na pozadí pri prechádzaní knižnice.", "EnableStreamLoopingHelp": "Povolte, pokiaľ živé vysielanie obsahuje len pár sekúnd dát a nemusí byť nepretržite požadované. Pokiaľ bude táto funkcia povolená v prípade, že nebude potrebná, môže spôsobiť problémy.", - "EnableStreamLooping": "Auto. cyklenie živých streamov", + "EnableStreamLooping": "Auto cyklenie živých vysielaní", "EnableExternalVideoPlayersHelp": "Ponuka externého prehrávača sa zobrazí pri spustení prehrávania videa.", "EnableBackdropsHelp": "Zobraziť pozadia na pozadí pre niektoré stránky pri prechádzaní knižnice.", "DisplayInOtherHomeScreenSections": "Zobrazenie v sekciách domovskej obrazovky, ako sú najnovšie médiá a pokračovať v pozeraní", - "DirectStreamHelp1": "Médium je kompatibilné zo zariadením nezávisle na rozlíšení alebo type média (H.264, AC3, atď), je však v nekompatibilnom kontajneri (mkv, avi, wmv, atď). Video bude za behu prebalené do kompatibilného kontajnera ešte pred streamovaním do zariadenia.", + "DirectStreamHelp1": "Médium je kompatibilné zo zariadením nezávisle na rozlíšení alebo type média (H.264, AC3, atď.), je však v nekompatibilnom kontajneri (mkv, avi, wmv, atď.). Video bude za behu prebalené do kompatibilného kontajnera ešte pred streamovaním do zariadenia.", "Depressed": "Stlačený", - "DefaultSubtitlesHelp": "Titulky sú načítané v závislosti od východzích a vynútených nastavení v zabudovaných metadátach. Jazykové predvoľby sú zobrané do úvahy až vtedy, keď je k dispozícií viacero možností.", - "DefaultMetadataLangaugeDescription": "Toto sú vaše východzie hodnoty ktoré môžu byť prispôsobené na základe jednotlivých knižníc.", + "DefaultSubtitlesHelp": "Titulky sú načítané v závislosti od predvolených a vynútených nastavení v zabudovaných metadátach. Jazykové predvoľby sú zobrané do úvahy až vtedy, keď je k dispozícií viacero možností.", + "DefaultMetadataLangaugeDescription": "Toto sú vaše predvolené hodnoty ktoré môžu byť prispôsobené na základe jednotlivých knižníc.", "CustomDlnaProfilesHelp": "Vytvorte si vlastný profil pre nové zariadenie alebo pre prepísanie systémového profilu.", "CopyStreamURLSuccess": "URL úspešne skopírovaná.", "CopyStreamURL": "Kopírovať URL adresu streamu", "ConfigureDateAdded": "Konfigurácia, ako sa pridáva dátum, je definovaná v dashboarde Jellyfin Servera pod nastavením Knižnice", "ColorTransfer": "Farba prenosu", "ColorPrimaries": "Primárna farba", - "CinemaModeConfigurationHelp": "Kino režim prináša zážitok ako z kina priamo do vašej obývačky s možnosťou prehrať ukážky a vlastné intrá pred hlavným programom.", + "CinemaModeConfigurationHelp": "Kino režim prináša zážitok ako z kina priamo do vašej obývačky s možnosťou prehrať trailery a vlastné intrá pred hlavným programom.", "ChangingMetadataImageSettingsNewContent": "Zmeny v nastavení metadát alebo v sťahovaní artworkov sa budú vzťahovať len na nový obsah pridaný do vašej knižnice. Pokiaľ chcete aplikovať zmeny na existujúce položky, musíte ich aktualizovať manuálne.", "CancelSeries": "Ukončiť seriál", "ButtonSplit": "Rozdeliť", "ButtonAddImage": "Pridať obrázok", - "BurnSubtitlesHelp": "Určuje, či má server vypaľovať titulky počas prevodu videa v závislosti na formáte tituliek. Vynechanie tejto možnosti výrazne zvýši výkon serveru. Vyberte možnosť Auto, pokiaľ chcete vypálovať do obrazu titulky v grafickom formáte (VOBSUB, PGS, SUB/IDX, atď) a niektoré ASS/SSA titulky.", + "BurnSubtitlesHelp": "Určuje, či má server vypaľovať titulky počas prevodu videa v závislosti na formáte tituliek. Vynechanie tejto možnosti výrazne zvýši výkon serveru. Vyberte možnosť Auto, pokiaľ chcete vypalovať do obrazu titulky v grafickom formáte (VOBSUB, PGS, SUB/IDX, atď.) a niektoré ASS/SSA titulky.", "BrowsePluginCatalogMessage": "Prehliadnite si náš katalóg dostupných zásuvných modulov.", "Browse": "Prechádzať", "Blacklist": "Blacklist", @@ -1196,7 +1196,7 @@ "TvLibraryHelp": "Pozrite sa na {0}sprievodcu pomenovania TV programov{1}.", "LabelLineup": "Lineup:", "ErrorAddingListingsToSchedulesDirect": "Nastala chyba pri pridávaní lineupu do účtu vášho Direct plánovača. Direct plánovač umožňuje len obmedzený počet lineupov na účet. Možno sa budete musieť prihlásiť na web Direct plánovača a odstrániť ostatné záznamy z vášho účtu pred pokračovaním.", - "Features": "Fukcie", + "Features": "Funkcie", "XmlTvPathHelp": "Cesta k XMLTV súboru. Jellyfin tento súbor načíta a pravidelne ho skontroluje, či neobsahuje aktualizácie. Ste zodpovedný za vytvorenie a aktualizovanie tohoto súboru.", "XmlTvNewsCategoriesHelp": "Programy s týmito kategóriami budú zobrazené ako spravodajské programy. Viacej kategórií oddelte \"|\".", "XmlTvMovieCategoriesHelp": "Programy s týmito kategóriami budú zobrazené ako filmy. Viacej kategórií oddelte \"|\".", @@ -1452,7 +1452,7 @@ "LabelAlbumArtMaxWidthHelp": "Maximálne rozlíšenie obrázku albumu prostredníctvom upnp:albumArtURI.", "LabelAlbumArtMaxHeightHelp": "Maximálne rozlíšenie obrázku albumu prostredníctvom upnp:albumArtURI.", "LabelAlbumArtHelp": "PN používa obrázok albumu, vrámci dlna:profileID atribútu upnp:albumArtURI. Niektoré zariadenia vyžadujú špecifickú hodnotu, bez ohľadu na veľkosť obrázku.", - "HeaderDirectPlayProfileHelp": "Pridať direct play profil pre definovanie, ktorý formát môže zariadenie natívne zvládnuť.", + "HeaderDirectPlayProfileHelp": "Pridať profil priameho prehrávania pre definovanie, ktorý formát môže zariadenie natívne zvládnuť.", "LabelInNetworkSignInWithEasyPasswordHelp": "Použite jednoduchý PIN kód na prihlásenie v klientoch vo vnútri lokálnej siete. Vaše bežné heslo bude potrebné len pokiaľ ste mimo domova. Pokiaľ je PIN kód ponechaný prázdny, tak nebude potrebovať heslo vo vašej domácej sieti.", "EasyPasswordHelp": "Váš jednoduchý PIN kód sa dá používať v režime offline na podporovaných zariadeniach a taktiež môže byť použitý ako jednoduché prihlásenie v lokálnej sieti.", "HeaderNavigation": "Navigácia", From 532d73a80b8fe541d865d41ab6667ef4780f61f1 Mon Sep 17 00:00:00 2001 From: dkanada Date: Thu, 6 Feb 2020 00:13:11 +0900 Subject: [PATCH 091/116] minor theme changes --- src/components/appfooter/appfooter.js | 6 ------ src/controllers/dashboard/dashboard.js | 13 ++++++++++--- src/elements/emby-button/emby-button.css | 4 ---- src/themes/blueradiance/theme.css | 7 +++++-- src/themes/dark/theme.css | 13 ++++++++++--- src/themes/purplehaze/theme.css | 7 +++++-- src/themes/wmc/theme.css | 5 ++++- 7 files changed, 34 insertions(+), 21 deletions(-) diff --git a/src/components/appfooter/appfooter.js b/src/components/appfooter/appfooter.js index 61bb62ec29..07d7701ff2 100644 --- a/src/components/appfooter/appfooter.js +++ b/src/components/appfooter/appfooter.js @@ -2,24 +2,18 @@ define(['browser', 'css!./appfooter'], function (browser) { 'use strict'; function render(options) { - var elem = document.createElement('div'); - elem.classList.add('appfooter'); - elem.classList.add('appfooter-blurred'); - document.body.appendChild(elem); return elem; } function appFooter(options) { - var self = this; self.element = render(options); - self.add = function (elem) { self.element.appendChild(elem); }; diff --git a/src/controllers/dashboard/dashboard.js b/src/controllers/dashboard/dashboard.js index 36cf80fb14..9746b58afe 100644 --- a/src/controllers/dashboard/dashboard.js +++ b/src/controllers/dashboard/dashboard.js @@ -301,23 +301,30 @@ define(["datetime", "events", "itemHelper", "serverNotifications", "dom", "globa html += "
"; html += '
'; html += '
'; - var btnCssClass; - btnCssClass = session.ServerId && session.NowPlayingItem && session.SupportsRemoteControl && session.DeviceId !== connectionManager.deviceId() ? "" : " hide"; - html += ''; + + var btnCssClass = session.ServerId && session.NowPlayingItem && session.SupportsRemoteControl ? "" : " hide"; + var playIcon = session.PlayState.IsPaused ? 'pause' : 'play'; + + html += ''; html += ''; + btnCssClass = session.TranscodingInfo && session.TranscodingInfo.TranscodeReasons && session.TranscodingInfo.TranscodeReasons.length ? "" : " hide"; html += ''; + btnCssClass = session.ServerId && -1 !== session.SupportedCommands.indexOf("DisplayMessage") && session.DeviceId !== connectionManager.deviceId() ? "" : " hide"; html += ''; html += "
"; + html += '
'; html += DashboardPage.getSessionNowPlayingStreamInfo(session); html += "
"; + html += '
'; var userImage = DashboardPage.getUserImage(session); html += userImage ? '
" : '
'; html += '
'; html += DashboardPage.getUsersHtml(session); + html += "
"; html += "
"; html += "
"; diff --git a/src/elements/emby-button/emby-button.css b/src/elements/emby-button/emby-button.css index 2776dec65d..a19ce571e2 100644 --- a/src/elements/emby-button/emby-button.css +++ b/src/elements/emby-button/emby-button.css @@ -47,10 +47,6 @@ background: transparent; } -.button-flat:hover { - opacity: 0.5; -} - .button-link { background: transparent; margin: 0; diff --git a/src/themes/blueradiance/theme.css b/src/themes/blueradiance/theme.css index b1979e4901..f1faea2ffc 100644 --- a/src/themes/blueradiance/theme.css +++ b/src/themes/blueradiance/theme.css @@ -182,7 +182,7 @@ html { } @supports (backdrop-filter:blur(10px)) or (-webkit-backdrop-filter:blur(10px)) { - .appfooter-blurred { + .appfooter { background: rgba(1, 2, 50, 0.7); backdrop-filter: blur(20px); } @@ -233,7 +233,10 @@ html { border-color: #00a4dc; } -.button-flat-accent, +.button-flat:hover { + color: #00a4dc; +} + .button-link { color: #00a4dc; } diff --git a/src/themes/dark/theme.css b/src/themes/dark/theme.css index 58e9ab1856..2df689a84c 100644 --- a/src/themes/dark/theme.css +++ b/src/themes/dark/theme.css @@ -16,7 +16,7 @@ html { } .skinHeader-withBackground { - background-color: #101010; + background-color: #202020; } .skinHeader.semiTransparent { @@ -157,7 +157,7 @@ html { } .appfooter { - background: #101010; + background: #202020; color: #ccc; color: rgba(255, 255, 255, 0.78); } @@ -195,6 +195,10 @@ html { background: rgba(30, 30, 30, 0.9); } +.detailSticky { + background: #202020; +} + .listItem-border { border-color: rgba(34, 34, 34, 0.9) !important; } @@ -207,7 +211,10 @@ html { border-color: #00a4dc; } -.button-flat-accent, +.button-flat:hover { + color: #00a4dc; +} + .button-link { color: #00a4dc; } diff --git a/src/themes/purplehaze/theme.css b/src/themes/purplehaze/theme.css index 7f10c9265b..ab21a30321 100644 --- a/src/themes/purplehaze/theme.css +++ b/src/themes/purplehaze/theme.css @@ -276,7 +276,7 @@ a[data-role=button] { } @supports (backdrop-filter:blur(10px)) or (-webkit-backdrop-filter:blur(10px)) { - .appfooter-blurred { + .appfooter { background: rgba(6, 37, 111, 0.7); backdrop-filter: blur(20px); } @@ -321,7 +321,10 @@ a[data-role=button] { border-color: #48c3c8; } -.button-flat-accent, +.button-flat:hover { + color: #48c3c8; +} + .button-link { color: #48c3c8; } diff --git a/src/themes/wmc/theme.css b/src/themes/wmc/theme.css index 4243204172..8235cf283b 100644 --- a/src/themes/wmc/theme.css +++ b/src/themes/wmc/theme.css @@ -219,7 +219,10 @@ html { border-color: #00a4dc; } -.button-flat-accent, +.button-flat:hover { + color: #00a4dc; +} + .button-link { color: #00a4dc; } From 1b23895e81f135ae4b4e914cabfe07405d19ba91 Mon Sep 17 00:00:00 2001 From: dkanada Date: Thu, 6 Feb 2020 03:14:17 +0900 Subject: [PATCH 092/116] fix placeholder message style --- src/assets/css/librarybrowser.css | 6 ++++++ src/components/tabbedview/itemstab.js | 7 ------- src/tv.html | 8 +++----- 3 files changed, 9 insertions(+), 12 deletions(-) diff --git a/src/assets/css/librarybrowser.css b/src/assets/css/librarybrowser.css index 8475b72b2f..9c6e532583 100644 --- a/src/assets/css/librarybrowser.css +++ b/src/assets/css/librarybrowser.css @@ -220,6 +220,12 @@ left: 0; } +.centerMessage { + margin: auto; + width: 30%; + text-align: center; +} + .layout-desktop .searchTabButton, .layout-mobile .searchTabButton, .layout-tv .headerSearchButton { diff --git a/src/components/tabbedview/itemstab.js b/src/components/tabbedview/itemstab.js index 33eddb6ec5..d430102f2a 100644 --- a/src/components/tabbedview/itemstab.js +++ b/src/components/tabbedview/itemstab.js @@ -104,24 +104,17 @@ define(['playbackManager', 'userSettings', 'alphaPicker', 'alphaNumericShortcuts } function showSortMenu() { - var instance = this; - require(['sortMenu'], function (SortMenu) { - new SortMenu().show({ - settingsKey: instance.getSettingsKey(), settings: instance.getSortValues(), onChange: instance.itemsContainer.refreshItems.bind(instance.itemsContainer), serverId: instance.params.serverId, sortOptions: instance.getSortMenuOptions() - }).then(function () { - updateSortText(instance); updateAlphaPickerState(instance); - instance.itemsContainer.refreshItems(); }); }); diff --git a/src/tv.html b/src/tv.html index 3c15b61b8b..0840652c77 100644 --- a/src/tv.html +++ b/src/tv.html @@ -45,11 +45,9 @@
-
From 1619646f0a49ef7f11accab4c4faf9e35937bfdb Mon Sep 17 00:00:00 2001 From: ferferga Date: Mon, 3 Feb 2020 17:18:15 +0100 Subject: [PATCH 093/116] Default font family now is Noto Sans. Linked to jellyfin-noto package --- package.json | 1 + src/assets/css/fonts.css | 13 +- src/assets/css/fonts.sized.css | 6 +- src/bundle.js | 5 + src/scripts/site.js | 4 +- yarn.lock | 316 +++++++++++++++++++++++++++++---- 6 files changed, 304 insertions(+), 41 deletions(-) diff --git a/package.json b/package.json index 4392f12153..b75968aa8a 100644 --- a/package.json +++ b/package.json @@ -28,6 +28,7 @@ "flv.js": "^1.5.0", "hls.js": "^0.12.4", "howler": "^2.1.2", + "jellyfin-noto": "https://github.com/jellyfin/jellyfin-noto", "jquery": "^3.4.1", "jstree": "^3.3.7", "libass-wasm": "^2.1.1", diff --git a/src/assets/css/fonts.css b/src/assets/css/fonts.css index 30fd1e2eb6..f125bc6a03 100644 --- a/src/assets/css/fonts.css +++ b/src/assets/css/fonts.css @@ -1,29 +1,30 @@ html { - font-family: -apple-system, "Helvetica", system-ui, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen-Sans", "Ubuntu", "Cantarell", "Helvetica Neue", 'Open Sans', sans-serif; + font-family: "Noto Sans", sans-serif; font-size: 93%; -webkit-text-size-adjust: 100%; text-size-adjust: 100%; + -webkit-font-smoothing: antialiased; + text-rendering: optimizeLegibility; } h1, h2, h3 { - /* For better bolding, since Helvetica does not support 500 weight, and 600 is too thick */ - font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen-Sans", "Ubuntu", "Cantarell", "Helvetica Neue", 'Open Sans', sans-serif; + font-family: "Noto Sans", sans-serif; } h1 { - font-weight: 500; + font-weight: 400; font-size: 1.8em; } h2 { - font-weight: 500; + font-weight: 400; font-size: 1.5em; } h3 { - font-weight: 500; + font-weight: 400; font-size: 1.17em; } diff --git a/src/assets/css/fonts.sized.css b/src/assets/css/fonts.sized.css index 9cdd666109..f60a94f236 100644 --- a/src/assets/css/fonts.sized.css +++ b/src/assets/css/fonts.sized.css @@ -1,5 +1,5 @@ h1 { - font-weight: 500; + font-weight: 400; font-size: 1.8em; } @@ -8,12 +8,12 @@ h1 { } h2 { - font-weight: 500; + font-weight: 400; font-size: 1.5em; } h3 { - font-weight: 500; + font-weight: 400; font-size: 1.17em; } diff --git a/src/bundle.js b/src/bundle.js index 9e3bc4f237..47e8f890e2 100644 --- a/src/bundle.js +++ b/src/bundle.js @@ -102,3 +102,8 @@ var material_icons = require("material-design-icons-iconfont/dist/material-desig _define("material-icons", function() { return material_icons; }); + +var jellyfin_noto = require("jellyfin-noto"); +_define("jellyfin-noto", function () { + return jellyfin_noto; +}); diff --git a/src/scripts/site.js b/src/scripts/site.js index f5ad942d6e..f26e6b68ba 100644 --- a/src/scripts/site.js +++ b/src/scripts/site.js @@ -732,7 +732,8 @@ var AppInfo = {}; "sortable", "libjass", "webcomponents", - "material-icons" + "material-icons", + "jellyfin-noto" ] }, urlArgs: urlArgs, @@ -747,6 +748,7 @@ var AppInfo = {}; }); require(["css!assets/css/site"]); + require(["jellyfin-noto"]); // define styles // TODO determine which of these files can be moved to the components themselves diff --git a/yarn.lock b/yarn.lock index cc0fe93261..33323c9d71 100644 --- a/yarn.lock +++ b/yarn.lock @@ -675,6 +675,24 @@ atob@^2.1.1: resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== +autoprefixer@^9.0.0, autoprefixer@^9.7.3: + version "9.7.4" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.7.4.tgz#f8bf3e06707d047f0641d87aee8cfb174b2a5378" + integrity sha512-g0Ya30YrMBAEZk60lp+qfX5YQllG+S5W3GYCFvyHTvhOki0AEQJLPEcIuGRsqVwLi8FvXPVtwTGhfr38hVpm0g== + dependencies: + browserslist "^4.8.3" + caniuse-lite "^1.0.30001020" + chalk "^2.4.2" + normalize-range "^0.1.2" + num2fraction "^1.2.2" + postcss "^7.0.26" + postcss-value-parser "^4.0.2" + +bail@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/bail/-/bail-1.0.5.tgz#b6fa133404a392cbc1f8c4bf63f5953351e7a776" + integrity sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ== + balanced-match@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" @@ -856,6 +874,23 @@ browserify-zlib@^0.2.0: dependencies: pako "~1.0.5" +browserslist@^1.1.3: + version "1.7.7" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-1.7.7.tgz#0bd76704258be829b2398bb50e4b62d1a166b0b9" + integrity sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk= + dependencies: + caniuse-db "^1.0.30000639" + electron-to-chromium "^1.2.7" + +browserslist@^4.8.3: + version "4.8.6" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.8.6.tgz#96406f3f5f0755d272e27a66f4163ca821590a7e" + integrity sha512-ZHao85gf0eZ0ESxLfCp73GG9O/VTytYDIkIiZDlURppLTI9wErSM/5yAKEq6rcUdxBLjMELmrYUJGg5sxGKMHg== + dependencies: + caniuse-lite "^1.0.30001023" + electron-to-chromium "^1.3.341" + node-releases "^1.1.47" + buffer-from@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" @@ -895,27 +930,7 @@ bytes@3.1.0: resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== -cacache@^11.3.3: - version "11.3.3" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-11.3.3.tgz#8bd29df8c6a718a6ebd2d010da4d7972ae3bbadc" - integrity sha512-p8WcneCytvzPxhDvYp31PD039vi77I12W+/KfR9S8AZbaiARFBCpsPJS+9uhWfeBfeAtW7o/4vt3MUqLkbY6nA== - dependencies: - bluebird "^3.5.5" - chownr "^1.1.1" - figgy-pudding "^3.5.1" - glob "^7.1.4" - graceful-fs "^4.1.15" - lru-cache "^5.1.1" - mississippi "^3.0.0" - mkdirp "^0.5.1" - move-concurrently "^1.0.1" - promise-inflight "^1.0.1" - rimraf "^2.6.3" - ssri "^6.0.1" - unique-filename "^1.1.1" - y18n "^4.0.0" - -cacache@^12.0.3: +cacache@^12.0.2, cacache@^12.0.3: version "12.0.3" resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.3.tgz#be99abba4e1bf5df461cd5a2c1071fc432573390" integrity sha512-kqdmfXEGFepesTuROHMs3MpFLWrPkSSpRqOw80RCflZXy/khxaArvFrQ7uJxSUduzAufc6G0g1VUCOZXxWavPw== @@ -956,6 +971,25 @@ call-me-maybe@^1.0.1: resolved "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.1.tgz#26d208ea89e37b5cbde60250a15f031c16a4d66b" integrity sha1-JtII6onje1y95gJQoV8DHBak1ms= +caller-callsite@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" + integrity sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ= + dependencies: + callsites "^2.0.0" + +caller-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" + integrity sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ= + dependencies: + caller-callsite "^2.0.0" + +callsites@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" + integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA= + callsites@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" @@ -997,7 +1031,22 @@ camelcase@^5.0.0, camelcase@^5.2.0, camelcase@^5.3.1: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== -chalk@2.4.2, chalk@^2.0.0, chalk@^2.1.0, chalk@^2.4.2: +caniuse-db@^1.0.30000639: + version "1.0.30001024" + resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30001024.tgz#64045c5d0d57b00c30e09323b578b2305c4737ad" + integrity sha512-dmwZ7u58E68UCexHf92QERFL8kwwCv0TVS1LCNluhZo+565AXU5uNtnPF+J5E2MExwWJeNnhTD63BH8ncMV09g== + +caniuse-lite@^1.0.30001020, caniuse-lite@^1.0.30001023: + version "1.0.30001023" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001023.tgz#b82155827f3f5009077bdd2df3d8968bcbcc6fc4" + integrity sha512-C5TDMiYG11EOhVOA62W1p3UsJ2z4DsHtMBQtjzp3ZsUglcQn62WOUgW0y795c7A5uZ+GCEIvzkMatLIlAsbNTA== + +ccount@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/ccount/-/ccount-1.0.5.tgz#ac82a944905a65ce204eb03023157edf29425c17" + integrity sha512-MOli1W+nfbPLlKEhInaxhRdp7KVLFxLN5ykwzHgLsLI3H3gs5jjFAK4Eoj3OzzcxCtumDaI8onoVDeQyWaNTkw== + +chalk@2.4.2, chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.4.1, chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== @@ -1383,6 +1432,27 @@ core-util-is@~1.0.0: resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= +cosmiconfig@^5.0.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" + integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== + dependencies: + import-fresh "^2.0.0" + is-directory "^0.3.1" + js-yaml "^3.13.1" + parse-json "^4.0.0" + +cosmiconfig@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-6.0.0.tgz#da4fee853c52f6b1e6935f41c1a2fc50bd4a9982" + integrity sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg== + dependencies: + "@types/parse-json" "^4.0.0" + import-fresh "^3.1.0" + parse-json "^5.0.0" + path-type "^4.0.0" + yaml "^1.7.2" + create-ecdh@^4.0.0: version "4.0.3" resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.3.tgz#c9111b6f33045c4697f144787f9254cdc77c45ff" @@ -1783,6 +1853,11 @@ ee-first@1.1.1: resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= +electron-to-chromium@^1.2.7, electron-to-chromium@^1.3.341: + version "1.3.344" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.344.tgz#f1397a633c35e726730c24be1084cd25c3ee8148" + integrity sha512-tvbx2Wl8WBR+ym3u492D0L6/jH+8NoQXqe46+QhbWH3voVPauGuZYeb1QAXYoOAWuiP2dbSvlBx0kQ1F3hu/Mw== + elliptic@^6.0.0: version "6.5.0" resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.0.tgz#2b8ed4c891b7de3200e14412a5b8248c7af505ca" @@ -1849,6 +1924,13 @@ errno@^0.1.3, errno@~0.1.7: dependencies: prr "~1.0.1" +error-ex@^1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + es-abstract@^1.5.1: version "1.16.2" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.16.2.tgz#4e874331645e9925edef141e74fc4bd144669d34" @@ -2944,6 +3026,19 @@ ignore@^4.0.3, ignore@^4.0.6: resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== +ignore@^5.0.4, ignore@^5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.4.tgz#84b7b3dbe64552b6ef0eca99f6743dbec6d97adf" + integrity sha512-MzbUSahkTW1u7JpKKjY7LCARd1fU5W2rLdxlM4kdkayuCwZImjkpluF9CM1aLewYJguPDqewLam18Y6AU69A8A== + +import-fresh@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" + integrity sha1-2BNVwVYS04bGH53dOSLUMEgipUY= + dependencies: + caller-path "^2.0.0" + resolve-from "^3.0.0" + import-fresh@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.1.0.tgz#6d33fa1dcef6df930fae003446f33415af905118" @@ -2952,6 +3047,24 @@ import-fresh@^3.0.0: parent-module "^1.0.0" resolve-from "^4.0.0" +import-fresh@^3.1.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.1.tgz#633ff618506e793af5ac91bf48b72677e15cbe66" + integrity sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +import-lazy@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-3.1.0.tgz#891279202c8a2280fdbd6674dbd8da1a1dfc67cc" + integrity sha512-8/gvXvX2JMn0F+CDlSC4l6kOmVaLOO3XLkksI7CI3Ud95KDYJuYur2b9P/PUt/i/pDAMd/DulQsNbbbmRRsDIQ== + +import-lazy@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-4.0.0.tgz#e8eb627483a0a43da3c03f3e35548be5cb0cc153" + integrity sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw== + import-local@2.0.0, import-local@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d" @@ -3117,6 +3230,11 @@ is-arguments@^1.0.4: resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.0.4.tgz#3faf966c7cba0ff437fb31f6250082fcf0448cf3" integrity sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA== +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= + is-binary-path@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" @@ -3181,6 +3299,11 @@ is-descriptor@^1.0.0, is-descriptor@^1.0.2: is-data-descriptor "^1.0.0" kind-of "^6.0.2" +is-directory@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" + integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE= + is-extendable@^0.1.0, is-extendable@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" @@ -3368,6 +3491,10 @@ isobject@^3.0.0, isobject@^3.0.1: resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= +"jellyfin-noto@https://github.com/jellyfin/jellyfin-noto": + version "1.0.0" + resolved "https://github.com/jellyfin/jellyfin-noto#251448082fdeeb6db4563001de18192842498df7" + jquery@>=1.9.1, jquery@^3.4.1: version "3.4.1" resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.4.1.tgz#714f1f8d9dde4bdfa55764ba37ef214630d80ef2" @@ -3681,11 +3808,6 @@ map-visit@^1.0.0: dependencies: object-visit "^1.0.0" -material-design-icons-iconfont@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/material-design-icons-iconfont/-/material-design-icons-iconfont-5.0.1.tgz#371875ed7fe9c8c520bc7123c3231feeab731c31" - integrity sha512-Xg6rIdGrfySTqiTZ6d+nQbcFepS6R4uKbJP0oAqyeZXJY/bX6mZDnOmmUJusqLXfhIwirs0c++a6JpqVa8RFvA== - markdown-escapes@^1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/markdown-escapes/-/markdown-escapes-1.0.3.tgz#6155e10416efaafab665d466ce598216375195f5" @@ -3696,6 +3818,11 @@ markdown-table@^1.1.0: resolved "https://registry.yarnpkg.com/markdown-table/-/markdown-table-1.1.3.tgz#9fcb69bcfdb8717bfd0398c6ec2d93036ef8de60" integrity sha512-1RUZVgQlpJSPWYbFSpmudq5nHY1doEIv89gBtF0s4gW1GF2XorxcA/70M5vq7rLv0a6mhOUccRsqkwhwLCIQ2Q== +material-design-icons-iconfont@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/material-design-icons-iconfont/-/material-design-icons-iconfont-5.0.1.tgz#371875ed7fe9c8c520bc7123c3231feeab731c31" + integrity sha512-Xg6rIdGrfySTqiTZ6d+nQbcFepS6R4uKbJP0oAqyeZXJY/bX6mZDnOmmUJusqLXfhIwirs0c++a6JpqVa8RFvA== + mathml-tag-names@^2.0.1, mathml-tag-names@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/mathml-tag-names/-/mathml-tag-names-2.1.1.tgz#6dff66c99d55ecf739ca53c492e626f1d12a33cc" @@ -4115,6 +4242,13 @@ node-pre-gyp@^0.12.0: semver "^5.3.0" tar "^4" +node-releases@^1.1.47: + version "1.1.47" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.47.tgz#c59ef739a1fd7ecbd9f0b7cf5b7871e8a8b591e4" + integrity sha512-k4xjVPx5FpwBUj0Gw7uvFOTF4Ep8Hok1I6qjwL3pLfwe7Y0REQSAqOwwv9TWBCUtMHxcXfY4PgRLRozcChvTcA== + dependencies: + semver "^6.3.0" + nopt@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" @@ -4145,6 +4279,16 @@ normalize-path@^3.0.0: resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== +normalize-range@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" + integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI= + +normalize-selector@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/normalize-selector/-/normalize-selector-0.2.0.tgz#d0b145eb691189c63a78d201dc4fdb1293ef0c03" + integrity sha1-0LFF62kRicY6eNIB3E/bEpPvDAM= + npm-bundled@^1.0.1: version "1.0.6" resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.6.tgz#e7ba9aadcef962bb61248f91721cd932b3fe6bdd" @@ -4182,6 +4326,11 @@ nth-check@~1.0.1: dependencies: boolbase "~1.0.0" +num2fraction@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" + integrity sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4= + number-is-nan@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" @@ -4342,6 +4491,13 @@ p-is-promise@^2.0.0: resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e" integrity sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg== +p-limit@^1.1.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" + integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== + dependencies: + p-try "^1.0.0" + p-limit@^2.0.0, p-limit@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.0.tgz#417c9941e6027a9abcba5092dd2904e255b5fbc2" @@ -4349,6 +4505,20 @@ p-limit@^2.0.0, p-limit@^2.2.0: dependencies: p-try "^2.0.0" +p-limit@^2.2.1: + version "2.2.2" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.2.tgz#61279b67721f5287aa1c13a9a7fbbc48c9291b1e" + integrity sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ== + dependencies: + p-try "^2.0.0" + +p-locate@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" + integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= + dependencies: + p-limit "^1.1.0" + p-locate@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" @@ -4425,6 +4595,36 @@ parse-asn1@^5.0.0: pbkdf2 "^3.0.3" safe-buffer "^5.1.1" +parse-entities@^1.0.2, parse-entities@^1.1.0: + version "1.2.2" + resolved "https://registry.yarnpkg.com/parse-entities/-/parse-entities-1.2.2.tgz#c31bf0f653b6661354f8973559cb86dd1d5edf50" + integrity sha512-NzfpbxW/NPrzZ/yYSoQxyqUZMZXIdCfE0OIN4ESsnptHJECoUk3FZktxNuzQf4tjt5UEopnxpYJbvYuxIFDdsg== + dependencies: + character-entities "^1.0.0" + character-entities-legacy "^1.0.0" + character-reference-invalid "^1.0.0" + is-alphanumerical "^1.0.0" + is-decimal "^1.0.0" + is-hexadecimal "^1.0.0" + +parse-json@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" + integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= + dependencies: + error-ex "^1.3.1" + json-parse-better-errors "^1.0.1" + +parse-json@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.0.0.tgz#73e5114c986d143efa3712d4ea24db9a4266f60f" + integrity sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw== + dependencies: + "@babel/code-frame" "^7.0.0" + error-ex "^1.3.1" + json-parse-better-errors "^1.0.1" + lines-and-columns "^1.1.6" + parse-passwd@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" @@ -4568,6 +4768,40 @@ posix-character-classes@^0.1.0: resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= +postcss-html@^0.36.0: + version "0.36.0" + resolved "https://registry.yarnpkg.com/postcss-html/-/postcss-html-0.36.0.tgz#b40913f94eaacc2453fd30a1327ad6ee1f88b204" + integrity sha512-HeiOxGcuwID0AFsNAL0ox3mW6MHH5cstWN1Z3Y+n6H+g12ih7LHdYxWwEA/QmrebctLjo79xz9ouK3MroHwOJw== + dependencies: + htmlparser2 "^3.10.0" + +postcss-jsx@^0.36.0, postcss-jsx@^0.36.3: + version "0.36.4" + resolved "https://registry.yarnpkg.com/postcss-jsx/-/postcss-jsx-0.36.4.tgz#37a68f300a39e5748d547f19a747b3257240bd50" + integrity sha512-jwO/7qWUvYuWYnpOb0+4bIIgJt7003pgU3P6nETBLaOyBXuTD55ho21xnals5nBrlpTIFodyd3/jBi6UO3dHvA== + dependencies: + "@babel/core" ">=7.2.2" + +postcss-less@^3.1.0, postcss-less@^3.1.4: + version "3.1.4" + resolved "https://registry.yarnpkg.com/postcss-less/-/postcss-less-3.1.4.tgz#369f58642b5928ef898ffbc1a6e93c958304c5ad" + integrity sha512-7TvleQWNM2QLcHqvudt3VYjULVB49uiW6XzEUFmvwHzvsOEF5MwBrIXZDJQvJNFGjJQTzSzZnDoCJ8h/ljyGXA== + dependencies: + postcss "^7.0.14" + +postcss-markdown@^0.36.0: + version "0.36.0" + resolved "https://registry.yarnpkg.com/postcss-markdown/-/postcss-markdown-0.36.0.tgz#7f22849ae0e3db18820b7b0d5e7833f13a447560" + integrity sha512-rl7fs1r/LNSB2bWRhyZ+lM/0bwKv9fhl38/06gF6mKMo/NPnp55+K1dSTosSVjFZc0e1ppBlu+WT91ba0PMBfQ== + dependencies: + remark "^10.0.1" + unist-util-find-all-after "^1.0.2" + +postcss-media-query-parser@^0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz#27b39c6f4d94f81b1a73b8f76351c609e5cef244" + integrity sha1-J7Ocb02U+Bsac7j3Y1HGCeXO8kQ= + postcss-modules-extract-imports@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz#818719a1ae1da325f9832446b01136eeb493cd7e" @@ -4708,10 +4942,25 @@ postcss-value-parser@^3.3.0, postcss-value-parser@^3.3.1: resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== -postcss@^7.0.14, postcss@^7.0.5, postcss@^7.0.6: - version "7.0.17" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.17.tgz#4da1bdff5322d4a0acaab4d87f3e782436bad31f" - integrity sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ== +postcss-value-parser@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.0.2.tgz#482282c09a42706d1fc9a069b73f44ec08391dc9" + integrity sha512-LmeoohTpp/K4UiyQCwuGWlONxXamGzCMtFxLq4W1nZVGIQLYvMCJx3yAF9qyyuFpflABI9yVdtJAqbihOsCsJQ== + +postcss@^5.0.0, postcss@^5.0.18: + version "5.2.18" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-5.2.18.tgz#badfa1497d46244f6390f58b319830d9107853c5" + integrity sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg== + dependencies: + chalk "^1.1.3" + js-base64 "^2.1.9" + source-map "^0.5.6" + supports-color "^3.2.3" + +postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.13, postcss@^7.0.17, postcss@^7.0.2, postcss@^7.0.21, postcss@^7.0.26, postcss@^7.0.7: + version "7.0.26" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.26.tgz#5ed615cfcab35ba9bbb82414a4fa88ea10429587" + integrity sha512-IY4oRjpXWYshuTDFxMVkJDtWIk2LhsTlu8bZnbEJA4+bYT16Lvpo8Qv6EvDumhYRgzjZl489pmsY3qVgJQ08nA== dependencies: chalk "^2.4.2" source-map "^0.6.1" @@ -5326,6 +5575,11 @@ serialize-javascript@^1.7.0: resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.7.0.tgz#d6e0dfb2a3832a8c94468e6eb1db97e55a192a65" integrity sha512-ke8UG8ulpFOxO8f8gRYabHQe/ZntKlcig2Mp+8+URDP1D8vJZ0KUt7LYo07q25Z/+JVSgpr/cui9PIp5H6/+nA== +serialize-javascript@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-2.1.2.tgz#ecec53b0e0317bdc95ef76ab7074b7384785fa61" + integrity sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ== + serve-index@^1.9.1: version "1.9.1" resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" From bf55c427a55032d16cbc3a6bdddf7e4b2c3e0abe Mon Sep 17 00:00:00 2001 From: Dmitry Lyzo Date: Fri, 7 Feb 2020 09:03:49 +0300 Subject: [PATCH 094/116] Remove unused logo image --- src/components/logoscreensaver/logowhite.png | Bin 39729 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 src/components/logoscreensaver/logowhite.png diff --git a/src/components/logoscreensaver/logowhite.png b/src/components/logoscreensaver/logowhite.png deleted file mode 100644 index 560d910d74f696d9f4a5a8ff2e08aa32cbd2fa2e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 39729 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 OWvHjCpUXO@geCwqo=^S& From 90bd682334c7e119bc7c2240fed53faef84b0100 Mon Sep 17 00:00:00 2001 From: The Iiseppi Date: Fri, 7 Feb 2020 06:10:45 +0000 Subject: [PATCH 095/116] Translated using Weblate (Finnish) Translation: Jellyfin/Jellyfin Web Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/fi/ --- src/strings/fi.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/strings/fi.json b/src/strings/fi.json index 10e1a95a72..d5ffc9c2d7 100644 --- a/src/strings/fi.json +++ b/src/strings/fi.json @@ -276,7 +276,7 @@ "HeaderFavoriteAlbums": "Lempialbumit", "HeaderContinueWatching": "Jatka Katsomista", "HeaderAlbumArtists": "Albumiartistit", - "Genres": "Genret", + "Genres": "Lajipiiri", "Folders": "Kansiot", "Favorites": "Suosikit", "Display": "Näytä" From 8689e4965f913c7001ea552206bec0509cbfa0ef Mon Sep 17 00:00:00 2001 From: WWWesten Date: Fri, 7 Feb 2020 21:09:05 +0000 Subject: [PATCH 096/116] Translated using Weblate (Kazakh) Translation: Jellyfin/Jellyfin Web Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/kk/ --- src/strings/kk.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/strings/kk.json b/src/strings/kk.json index 05651f0c0d..ebb3d22b95 100644 --- a/src/strings/kk.json +++ b/src/strings/kk.json @@ -235,7 +235,7 @@ "ErrorAddingListingsToSchedulesDirect": "Schedules Direct tirkelgińizge tizbek ústeý kezinde qate oryn aldy. Schedules Direct tirkelgisinde tizbekterdiń tek qana shekteýli sany rýqsat etiledi. Oryndamas buryn Schedules Direct saıtyna kirip jáne tirkelgiden basqa tizbelerdi alastaý qajet bolýy múmkin.", "ErrorAddingMediaPathToVirtualFolder": "Tasyǵyshderekter jolyn ústegen kezinde qate oryn aldy. Jol durys ekenine jáne Jellyfin Server prosesi osy jaıǵasymǵa qatynaıtyna kóz jetkizińiz.", "ErrorAddingTunerDevice": "Túner qurylǵysyn ústeý kezinde qate oryn aldy. Bul qatynaýly ekenine kóz jetkizińiz de áreketti qaıtalańyz.", - "ErrorAddingXmlTvFile": "XmlTV faılyna qatynaý kezinde qate oryn aldy. Faıl bar bolýyna kóz jetkizińiz de áreketti qaıtalańyz.", + "ErrorAddingXmlTvFile": "XMLTV-faılyna qatynaý kezinde qate oryn aldy. Faıl bar bolýyna kóz jetkizińiz de áreketti qaıtalańyz.", "ErrorDeletingItem": "Jellyfin Server elementin joıý kezinde qate oryn aldy. Jellyfin Server tasyǵysh qaltasyna jazýǵa ruqsaty bar ekenin tekserip, qaıtalap kórińiz.", "ErrorGettingTvLineups": "TD kezekterin júktep alý kezinde qate oryn aldy. Málimetterińiz durys ekenine kóz jetkizińiz de áreketti qaıtalańyz.", "ErrorMessageStartHourGreaterThanEnd": "Aıaqtalý ýaqyty bastaý ýaqytynan keıinrek bolýy qajet etedi.", @@ -674,7 +674,7 @@ "LabelLoginDisclaimer": "Kirgendegi eskertý:", "LabelLoginDisclaimerHelp": "Kirý beti tómengi jaǵynda beınelenetin habar.", "LabelLogs": "Jurnaldar:", - "LabelManufacturer": "Óndirýshi", + "LabelManufacturer": "Óndirýshi:", "LabelManufacturerUrl": "Óndirýshi URL mekenjaıy", "LabelMatchType": "Sáıkes túri:", "LabelMaxBackdropsPerItem": "Tarmaq boıynsha artqy sýretterdiń eń kóp sany:", @@ -713,7 +713,7 @@ "LabelMoviePrefixHelp": "Eger fılmderdiń ataýynda prefıks qoldanylsa, server durys óńdeı alý úshin buny munda engizińiz.", "LabelMovieRecordingPath": "Fılm jazbalardyń joly (mindetti emes):", "LabelMusicStreamingTranscodingBitrate": "Mýzykany qaıta kodtaý qarqyny:", - "LabelMusicStreamingTranscodingBitrateHelp": "Mýzyka tasymaldaný kezinde eń joǵary qarqyndy anyqtańyz", + "LabelMusicStreamingTranscodingBitrateHelp": "Mýzyka tasymaldaný kezinde eń joǵary qarqyndy anyqtańyz.", "LabelName": "Aty:", "LabelNewName": "Jańa aty:", "LabelNewPassword": "Jańa paról:", @@ -1401,7 +1401,7 @@ "XmlTvKidsCategoriesHelp": "Osy sanattaǵy baǵdarlamalar balalyq baǵdarlamary retinde beınelenedi. Birneshýin '|' arqyly bólińiz.", "XmlTvMovieCategoriesHelp": "Osy sanattaǵy baǵdarlamalar fılmder retinde beınelenedi. Birneshýin '|' arqyly bólińiz.", "XmlTvNewsCategoriesHelp": "Osy sanattaǵy baǵdarlamalar jańalyq baǵdarlamary retinde beınelenedi. Birneshýin '|' arqyly bólińiz.", - "XmlTvPathHelp": "XML TV faılynyń joly. Jellyfin osy faıldy oqıdy jáne ony jańartýlar úshin mezgilinde tekserip shyǵady. Faıldy jasaý jáne jańartý úshin ózińiz jaýapty bolyp tabylasyz.", + "XmlTvPathHelp": "XMLTV-faılynyń joly. Jellyfin osy faıldy oqıdy jáne ony jańartýlar úshin mezgilinde tekserip shyǵady. Faıldy jasaý jáne jańartý úshin ózińiz jaýapty bolyp tabylasyz.", "XmlTvSportsCategoriesHelp": "Osy sanattaǵy baǵdarlamalar sporttyq baǵdarlamary retinde beınelenedi. Birneshýin '|' arqyly bólińiz.", "Yes": "Iá", "Yesterday": "Keshe", @@ -1431,7 +1431,7 @@ "DashboardServerName": "Server: {0}", "DashboardOperatingSystem": "Operasıalyq júıe: {0}", "DashboardArchitecture": "Arhıtektýrasy: {0}", - "LabelWeb": "Ýeb: ", + "LabelWeb": "Ýeb:", "LaunchWebAppOnStartup": "Serverdi iske qosqan kezde ýeb-ınterfeısti iske qosý", "LaunchWebAppOnStartupHelp": "Server bastapqyda iske qosylǵan kezde, ýeb-klıent ádepki sholǵyshta ashylady. Bul serverdi qaıta iske qosý fýnksıasyn qoldanǵanda oryn almaıdy.", "MediaInfoSoftware": "Baǵdarlamalyq jasaqtama", From 6902ec9b4c36c7fd4451d5e0f1a7c9836be260ca Mon Sep 17 00:00:00 2001 From: WWWesten Date: Fri, 7 Feb 2020 21:05:19 +0000 Subject: [PATCH 097/116] Translated using Weblate (Russian) Translation: Jellyfin/Jellyfin Web Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ru/ --- src/strings/ru.json | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/strings/ru.json b/src/strings/ru.json index 7615a26cda..b90aaa90b4 100644 --- a/src/strings/ru.json +++ b/src/strings/ru.json @@ -1455,5 +1455,13 @@ "OptionRandom": "Случайный", "ButtonSplit": "Разделить", "SelectAdminUsername": "Выберите имя пользователя для учётной записи администратора.", - "HeaderNavigation": "Навигация" + "HeaderNavigation": "Навигация", + "LabelVideoResolution": "Разрешение видео:", + "LabelStreamType": "Тип потока:", + "EnableFastImageFadeInHelp": "Включить быстрое гашение анимации для загруженных рисунков", + "EnableFastImageFadeIn": "Быстрое гашение рисунка", + "LabelPlayerDimensions": "Размерности проигрывателя:", + "LabelDroppedFrames": "Пропущенные кадры:", + "LabelCorruptedFrames": "Испорченные кадры:", + "CopyStreamURLError": "Произошла ошибка при копировании URL." } From 3b82d9f4389642f3641591e4a85048c90a039d60 Mon Sep 17 00:00:00 2001 From: diegoalrey Date: Fri, 7 Feb 2020 14:57:13 +0000 Subject: [PATCH 098/116] Translated using Weblate (Galician) Translation: Jellyfin/Jellyfin Web Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/gl/ --- src/strings/gl.json | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/strings/gl.json b/src/strings/gl.json index 0967ef424b..5341462de7 100644 --- a/src/strings/gl.json +++ b/src/strings/gl.json @@ -1 +1,15 @@ -{} +{ + "AllowMediaConversion": "Permitir a conversión dos medios", + "AllComplexFormats": "Todos os formatos complexos (ASS, SSA, VOBSUB, PGS, SUB/IDX, etc.)", + "AllLibraries": "Todas as librarías", + "AllLanguages": "Todas as linguas", + "AllEpisodes": "Todos os episodios", + "All": "Todo", + "Albums": "Álbumes", + "Alerts": "Avisos", + "AllChannels": "Todos os canais", + "AirDate": "Data de emisión", + "Aired": "Emitido", + "AddToPlaylist": "Engadir á lista de reprodución", + "Add": "Engadir" +} From 1448ce1199b112f0373952951b66bb7fe9758908 Mon Sep 17 00:00:00 2001 From: Thibault Nocchi <1619359+ThibaultNocchi@users.noreply.github.com> Date: Sat, 8 Feb 2020 11:14:24 +0100 Subject: [PATCH 099/116] No success toast when copying URL from prompt --- src/components/itemcontextmenu.js | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/components/itemcontextmenu.js b/src/components/itemcontextmenu.js index b6dce6b2e6..77ba2a6f49 100644 --- a/src/components/itemcontextmenu.js +++ b/src/components/itemcontextmenu.js @@ -362,9 +362,6 @@ define(["apphost", "globalize", "connectionManager", "itemHelper", "appRouter", }); } else { prompt(globalize.translate("CopyStreamURL"), downloadHref); - require(["toast"], function (toast) { - toast(globalize.translate("CopyStreamURLSuccess")); - }); } document.body.removeChild(textArea); }); From 8b8f84bd429151b76599b0f663543a6ff8598333 Mon Sep 17 00:00:00 2001 From: Danny Michel Date: Sat, 1 Feb 2020 21:41:30 -0500 Subject: [PATCH 100/116] Fix logo page margin --- src/assets/css/librarybrowser.css | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/assets/css/librarybrowser.css b/src/assets/css/librarybrowser.css index e5f45f7ab1..2ce6af8340 100644 --- a/src/assets/css/librarybrowser.css +++ b/src/assets/css/librarybrowser.css @@ -124,6 +124,11 @@ flex-shrink: 1; } + +.pageTitleWithDefaultLogo { + margin-top: 0; +} + .headerLeft, .skinHeader { display: -webkit-box; From 07d3e16ff556409e7453e54885b9c773691ff735 Mon Sep 17 00:00:00 2001 From: Danny Michel Date: Sat, 1 Feb 2020 21:13:56 -0500 Subject: [PATCH 101/116] Fix padding in header --- src/assets/css/librarybrowser.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/assets/css/librarybrowser.css b/src/assets/css/librarybrowser.css index e5f45f7ab1..85c6b3ab0d 100644 --- a/src/assets/css/librarybrowser.css +++ b/src/assets/css/librarybrowser.css @@ -264,7 +264,7 @@ @media all and (max-width: 84em) { .withSectionTabs .headerTop { - padding-bottom: 0.2em; + padding-bottom: 0.55em; } .sectionTabs { From 9580732c9fa8753b72fd08cf28bd5e83ba62fc1e Mon Sep 17 00:00:00 2001 From: MrTimscampi Date: Sat, 8 Feb 2020 21:51:58 +0100 Subject: [PATCH 102/116] Fix linting issue --- src/assets/css/librarybrowser.css | 1 - 1 file changed, 1 deletion(-) diff --git a/src/assets/css/librarybrowser.css b/src/assets/css/librarybrowser.css index 2ce6af8340..948f336dca 100644 --- a/src/assets/css/librarybrowser.css +++ b/src/assets/css/librarybrowser.css @@ -124,7 +124,6 @@ flex-shrink: 1; } - .pageTitleWithDefaultLogo { margin-top: 0; } From 5e47ca1a17121cc0b39dc8efaba9f6c5dea19aa1 Mon Sep 17 00:00:00 2001 From: Danny Michel Date: Wed, 5 Feb 2020 04:55:56 -0500 Subject: [PATCH 103/116] Change details page ribbon margin to em --- src/assets/css/librarybrowser.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/assets/css/librarybrowser.css b/src/assets/css/librarybrowser.css index 8475b72b2f..aecf59d371 100644 --- a/src/assets/css/librarybrowser.css +++ b/src/assets/css/librarybrowser.css @@ -499,7 +499,7 @@ align-items: center; align-content: center; position: sticky; - top: 8%; + top: 3.85em; z-index: 2; } From 55d902b71ad0212846c75bb7a5c2b41be0292ec7 Mon Sep 17 00:00:00 2001 From: MrTimscampi Date: Sat, 8 Feb 2020 23:37:49 +0100 Subject: [PATCH 104/116] Force ratings to 1 decimal place --- src/components/mediainfo/mediainfo.js | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/components/mediainfo/mediainfo.js b/src/components/mediainfo/mediainfo.js index 8aaad95056..e4375b742a 100644 --- a/src/components/mediainfo/mediainfo.js +++ b/src/components/mediainfo/mediainfo.js @@ -385,16 +385,13 @@ define(['datetime', 'globalize', 'appRouter', 'itemHelper', 'indicators', 'mater } function getStarIconsHtml(item) { - var html = ''; - var rating = item.CommunityRating; - - if (rating) { + if (item.CommunityRating) { html += '
'; html += 'star'; - html += rating; + html += item.CommunityRating.toFixed(1); html += '
'; } From 446f10a9891dae0b4498aacc5d62e6de78ba062c Mon Sep 17 00:00:00 2001 From: Pooka Mustard Date: Sat, 8 Feb 2020 18:37:04 +0000 Subject: [PATCH 105/116] Translated using Weblate (Arabic) Translation: Jellyfin/Jellyfin Web Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/ar/ --- src/strings/ar.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/strings/ar.json b/src/strings/ar.json index e2d30ffce1..38a8d51203 100644 --- a/src/strings/ar.json +++ b/src/strings/ar.json @@ -1039,5 +1039,6 @@ "EnableNextVideoInfoOverlay": "عرض معلومات الفيديو القادم اثناء التشغيل", "DatePlayed": "تاريخ التشغيل", "DateAdded": "تاريخ الاضافة", - "CriticRating": "تقييم النقاد" + "CriticRating": "تقييم النقاد", + "ResumeAt": "اكمل من {0}" } From 6c68d37e9930b8282f093dac7e0b37be8bc6ec29 Mon Sep 17 00:00:00 2001 From: Tommy Vange Date: Sat, 8 Feb 2020 15:45:10 +0000 Subject: [PATCH 106/116] =?UTF-8?q?Translated=20using=20Weblate=20(Norwegi?= =?UTF-8?q?an=20Bokm=C3=A5l)=20Translation:=20Jellyfin/Jellyfin=20Web=20Tr?= =?UTF-8?q?anslate-URL:=20https://translate.jellyfin.org/projects/jellyfin?= =?UTF-8?q?/jellyfin-web/nb=5FNO/?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/strings/nb.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/strings/nb.json b/src/strings/nb.json index 8f8f32998f..f654132e92 100644 --- a/src/strings/nb.json +++ b/src/strings/nb.json @@ -1458,5 +1458,8 @@ "MessageConfirmAppExit": "Vil du avslutte?", "EnableFastImageFadeInHelp": "Bruk rask inntoning av animasjon for lastede bilder", "EnableFastImageFadeIn": "Rask bilde inntoning", - "CopyStreamURLError": "Det var en feil under kopiering av URL'en." + "CopyStreamURLError": "Det var en feil under kopiering av URL'en.", + "LabelVideoResolution": "Video oppløsning:", + "LabelPlayerDimensions": "Spiller dimensjoner:", + "LabelCorruptedFrames": "Korrupte rammer:" } From 1250c04c383942ac6ccce69d6f54e602bc5fcae6 Mon Sep 17 00:00:00 2001 From: MrTimscampi Date: Sun, 9 Feb 2020 13:39:19 +0100 Subject: [PATCH 107/116] Update dependencies --- package.json | 32 +- src/bundle.js | 2 +- src/components/slideshow/slideshow.js | 10 +- yarn.lock | 574 +++++++++++++++----------- 4 files changed, 347 insertions(+), 271 deletions(-) diff --git a/package.json b/package.json index b75968aa8a..87050382c5 100644 --- a/package.json +++ b/package.json @@ -7,27 +7,27 @@ "devDependencies": { "clean-webpack-plugin": "^3.0.0", "copy-webpack-plugin": "^5.1.1", - "css-loader": "^2.1.0", - "eslint": "^5.16.0", - "file-loader": "^3.0.1", + "css-loader": "^3.4.2", + "eslint": "^6.8.0", + "file-loader": "^5.0.2", "html-webpack-plugin": "^3.2.0", - "style-loader": "^0.23.1", - "stylelint": "^13.0.0", + "style-loader": "^1.1.3", + "stylelint": "^13.1.0", "stylelint-config-rational-order": "^0.1.2", "stylelint-no-browser-hacks": "^1.2.1", "stylelint-order": "^4.0.0", - "webpack": "^4.41.0", - "webpack-cli": "^3.3.9", + "webpack": "^4.41.5", + "webpack-cli": "^3.3.10", "webpack-concat-plugin": "^3.0.0", - "webpack-dev-server": "^3.8.1", + "webpack-dev-server": "^3.10.3", "webpack-merge": "^4.2.2" }, "dependencies": { - "alameda": "^1.3.0", - "document-register-element": "^0.5.4", + "alameda": "^1.4.0", + "document-register-element": "^1.14.3", "flv.js": "^1.5.0", - "hls.js": "^0.12.4", - "howler": "^2.1.2", + "hls.js": "^0.13.1", + "howler": "^2.1.3", "jellyfin-noto": "https://github.com/jellyfin/jellyfin-noto", "jquery": "^3.4.1", "jstree": "^3.3.7", @@ -37,11 +37,11 @@ "native-promise-only": "^0.8.0-a", "requirejs": "^2.3.5", "resize-observer-polyfill": "^1.5.1", - "shaka-player": "^2.5.5", - "sortablejs": "^1.9.0", - "swiper": "^3.4.2", + "shaka-player": "^2.5.9", + "sortablejs": "^1.10.2", + "swiper": "^5.3.1", "webcomponents.js": "^0.7.24", - "whatwg-fetch": "^1.1.1" + "whatwg-fetch": "^3.0.0" }, "browserslist": [ "last 2 Firefox versions", diff --git a/src/bundle.js b/src/bundle.js index 47e8f890e2..308687513a 100644 --- a/src/bundle.js +++ b/src/bundle.js @@ -67,7 +67,7 @@ _define("shaka", function() { // swiper var swiper = require("swiper"); -require("swiper/dist/css/swiper.min.css"); +require("swiper/css/swiper.min.css"); _define("swiper", function() { return swiper; }); diff --git a/src/components/slideshow/slideshow.js b/src/components/slideshow/slideshow.js index 70404cdd68..b6c896f623 100644 --- a/src/components/slideshow/slideshow.js +++ b/src/components/slideshow/slideshow.js @@ -212,13 +212,15 @@ define(['dialogHelper', 'inputManager', 'connectionManager', 'layoutManager', 'f // Optional parameters direction: 'horizontal', loop: options.loop !== false, - autoplay: options.interval || 8000, + autoplay: { + delay: options.interval || 8000 + }, // Disable preloading of all images preloadImages: false, // Enable lazy loading - lazyLoading: true, - lazyLoadingInPrevNext: true, - autoplayDisableOnInteraction: false, + lazy: true, + loadPrevNext: true, + disableOnInteraction: false, initialSlide: options.startIndex || 0, speed: 240 }); diff --git a/yarn.lock b/yarn.lock index 33323c9d71..8f3ba7b2c3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -453,16 +453,21 @@ accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7: mime-types "~2.1.24" negotiator "0.6.2" -acorn-jsx@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.0.1.tgz#32a064fd925429216a09b141102bfdd185fae40e" - integrity sha512-HJ7CfNHrfJLlNTzIEUTj43LNWGkqpRLxm3YjAlcD0ACydk9XynzYsCBHxut+iqt+1aBXkx9UP/w/ZqMr13XIzg== +acorn-jsx@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.1.0.tgz#294adb71b57398b0680015f0a38c563ee1db5384" + integrity sha512-tMUqwBWfLFbJbizRmEcWSLw6HnFzfdJs2sOJEOwwtVPMoH/0Ay+E703oZz78VSXZiiDcZrQ5XKjPIUQixhmgVw== -acorn@^6.0.7, acorn@^6.2.1: +acorn@^6.2.1: version "6.2.1" resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.2.1.tgz#3ed8422d6dec09e6121cc7a843ca86a330a86b51" integrity sha512-JD0xT5FCRDNyjDda3Lrg/IxFscp9q4tiYtxE1/nOzlKCk7hIRuYjhq1kCNkbPjMRMZuFq20HNQn1I9k8Oj0E+Q== +acorn@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.1.0.tgz#949d36f2c292535da602283586c2477c57eb2d6c" + integrity sha512-kL5CuoXA/dgxlBbVrflsflzQ3PAas7RYZB52NOm/6839iVYJgKMJ3cQJD+t2i5+qFa8h3MDpEOJiS64E8JLnSQ== + ajv-errors@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" @@ -473,7 +478,7 @@ ajv-keywords@^3.1.0, ajv-keywords@^3.4.1: resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.4.1.tgz#ef916e271c64ac12171fd8384eaae6b2345854da" integrity sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ== -ajv@^6.1.0, ajv@^6.10.2, ajv@^6.9.1: +ajv@^6.1.0, ajv@^6.10.2: version "6.10.2" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.2.tgz#d3cea04d6b017b2894ad69040fec8b623eb4bd52" integrity sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw== @@ -483,20 +488,32 @@ ajv@^6.1.0, ajv@^6.10.2, ajv@^6.9.1: json-schema-traverse "^0.4.1" uri-js "^4.2.2" -alameda@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/alameda/-/alameda-1.3.0.tgz#6f5a633940440f7adfa7ab4490326c508f7f360e" - integrity sha512-DRhAXboxtfpHTawg5XRH9mJ3soyd5QocfD47BwgvbI5ryxCs+ga6yju2K0bvFRxINzRBnoJVlUIq/ndVBk6w1Q== +ajv@^6.10.0: + version "6.11.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.11.0.tgz#c3607cbc8ae392d8a5a536f25b21f8e5f3f87fe9" + integrity sha512-nCprB/0syFYy9fVYU1ox1l2KN8S9I+tziH8D4zdZuLT3N6RMlGSGt5FSTpAiHB/Whv8Qs1cWHma1aMKZyaHRKA== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +alameda@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/alameda/-/alameda-1.4.0.tgz#ca53cad0feb5e24994a9be859e0593e8c2d8f58c" + integrity sha512-d6nIRyg4SD/zBupcfZ3lUis58l4H/3U7c1RBtFkcz/7u1dDIQwx26KUvKJ35esOVP6WsAjmRoP2VQ39kQZT/Gg== ansi-colors@^3.0.0: version "3.2.4" resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA== -ansi-escapes@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" - integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== +ansi-escapes@^4.2.1: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.0.tgz#a4ce2b33d6b214b7950d8595c212f12ac9cc569d" + integrity sha512-EiYhwo0v255HUL6eDyuLrXEkTi7WwVCLAw+SeOQ7M7qdun1z1pum4DEm/nuqIVbPvi9RPPc9k9LbyBv6H0DwVg== + dependencies: + type-fest "^0.8.1" ansi-html@0.0.7: version "0.0.7" @@ -665,17 +682,19 @@ async-limiter@~1.0.0: resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== -async@^1.5.2: - version "1.5.2" - resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" - integrity sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo= +async@^2.6.2: + version "2.6.3" + resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" + integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== + dependencies: + lodash "^4.17.14" atob@^2.1.1: version "2.1.2" resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== -autoprefixer@^9.0.0, autoprefixer@^9.7.3: +autoprefixer@^9.0.0, autoprefixer@^9.7.4: version "9.7.4" resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.7.4.tgz#f8bf3e06707d047f0641d87aee8cfb174b2a5378" integrity sha512-g0Ya30YrMBAEZk60lp+qfX5YQllG+S5W3GYCFvyHTvhOki0AEQJLPEcIuGRsqVwLi8FvXPVtwTGhfr38hVpm0g== @@ -1026,7 +1045,7 @@ camelcase@^4.1.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" integrity sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0= -camelcase@^5.0.0, camelcase@^5.2.0, camelcase@^5.3.1: +camelcase@^5.0.0, camelcase@^5.3.1: version "5.3.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== @@ -1182,12 +1201,12 @@ clean-webpack-plugin@^3.0.0: "@types/webpack" "^4.4.31" del "^4.1.1" -cli-cursor@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" - integrity sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU= +cli-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" + integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== dependencies: - restore-cursor "^2.0.0" + restore-cursor "^3.1.0" cli-width@^2.0.0: version "2.2.0" @@ -1512,22 +1531,23 @@ crypto-browserify@^3.11.0: randombytes "^2.0.0" randomfill "^1.0.3" -css-loader@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-2.1.1.tgz#d8254f72e412bb2238bb44dd674ffbef497333ea" - integrity sha512-OcKJU/lt232vl1P9EEDamhoO9iKY3tIjY5GU+XDLblAykTdgs6Ux9P1hTHve8nFKy5KPpOXOsVI/hIwi3841+w== +css-loader@^3.4.2: + version "3.4.2" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-3.4.2.tgz#d3fdb3358b43f233b78501c5ed7b1c6da6133202" + integrity sha512-jYq4zdZT0oS0Iykt+fqnzVLRIeiPWhka+7BqPn+oSIpWJAHak5tmB/WZrJ2a21JhCeFyNnnlroSl8c+MtVndzA== dependencies: - camelcase "^5.2.0" - icss-utils "^4.1.0" + camelcase "^5.3.1" + cssesc "^3.0.0" + icss-utils "^4.1.1" loader-utils "^1.2.3" normalize-path "^3.0.0" - postcss "^7.0.14" + postcss "^7.0.23" postcss-modules-extract-imports "^2.0.0" - postcss-modules-local-by-default "^2.0.6" - postcss-modules-scope "^2.1.0" - postcss-modules-values "^2.0.0" - postcss-value-parser "^3.3.0" - schema-utils "^1.0.0" + postcss-modules-local-by-default "^3.0.2" + postcss-modules-scope "^2.1.1" + postcss-modules-values "^3.0.0" + postcss-value-parser "^4.0.2" + schema-utils "^2.6.0" css-select@^1.1.0: version "1.2.0" @@ -1573,7 +1593,7 @@ debug@2.6.9, debug@^2.2.0, debug@^2.3.3: dependencies: ms "2.0.0" -debug@^3.0.0, debug@^3.2.5, debug@^3.2.6: +debug@^3.0.0, debug@^3.1.1, debug@^3.2.5, debug@^3.2.6: version "3.2.6" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== @@ -1773,10 +1793,12 @@ doctrine@^3.0.0: dependencies: esutils "^2.0.2" -document-register-element@^0.5.4: - version "0.5.4" - resolved "https://registry.yarnpkg.com/document-register-element/-/document-register-element-0.5.4.tgz#df6b57fbb8e141123e5f61acf382d6bb78c02bce" - integrity sha1-32tX+7jhQRI+X2Gs84LWu3jAK84= +document-register-element@^1.14.3: + version "1.14.3" + resolved "https://registry.yarnpkg.com/document-register-element/-/document-register-element-1.14.3.tgz#3335d4578df6a1536a34595b91cca36dd5db61d7" + integrity sha512-SbJTzoQXLTcYxnpdDNRZXu/gwsGSShemXpvj6Pa6ujRwJFpJ41siil4tk4y+cQXnqylS6mc2Rtxp/PkMzfkqyQ== + dependencies: + lightercollective "^0.3.0" dom-converter@^0.2: version "0.2.0" @@ -1793,6 +1815,13 @@ dom-serializer@0: domelementtype "^2.0.1" entities "^2.0.0" +dom7@^2.1.3: + version "2.1.3" + resolved "https://registry.yarnpkg.com/dom7/-/dom7-2.1.3.tgz#a736f9c3bfbc4ca039a81cd095f97d1d7f3de19c" + integrity sha512-QTxHHDox+M6ZFz1zHPAHZKI3JOHY5iY4i9BK2uctlggxKQwRhO3q3HHFq1BKsT25Bm/ySSj70K6Wk/G4bs9rMQ== + dependencies: + ssr-window "^1.0.1" + domain-browser@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" @@ -1871,6 +1900,11 @@ elliptic@^6.0.0: minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.0" +eme-encryption-scheme-polyfill@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/eme-encryption-scheme-polyfill/-/eme-encryption-scheme-polyfill-2.0.0.tgz#b44a8fb7d5c7c0be869897be9d77a8cb9c0ba795" + integrity sha512-/zoXuACHLGQ8w5nkJrVr3YI0IGe05ZS8HR1x5uTqiAoHuj5hPzdnoyW9Zom8iPv93arPzwpde93GrKCFKLFK4g== + emoji-regex@^7.0.1: version "7.0.3" resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" @@ -1979,68 +2013,77 @@ eslint-scope@^4.0.3: esrecurse "^4.1.0" estraverse "^4.1.1" -eslint-utils@^1.3.1: - version "1.4.2" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.2.tgz#166a5180ef6ab7eb462f162fd0e6f2463d7309ab" - integrity sha512-eAZS2sEUMlIeCjBeubdj45dmBHQwPHWyBcT1VSYB7o9x9WRRqKxyUoiXlRjyAwzN7YEzHJlYg0NmzDRWx6GP4Q== +eslint-scope@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.0.0.tgz#e87c8887c73e8d1ec84f1ca591645c358bfc8fb9" + integrity sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw== dependencies: - eslint-visitor-keys "^1.0.0" + esrecurse "^4.1.0" + estraverse "^4.1.1" -eslint-visitor-keys@^1.0.0: +eslint-utils@^1.4.3: + version "1.4.3" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.3.tgz#74fec7c54d0776b6f67e0251040b5806564e981f" + integrity sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q== + dependencies: + eslint-visitor-keys "^1.1.0" + +eslint-visitor-keys@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz#e2a82cea84ff246ad6fb57f9bde5b46621459ec2" integrity sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A== -eslint@^5.16.0: - version "5.16.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-5.16.0.tgz#a1e3ac1aae4a3fbd8296fcf8f7ab7314cbb6abea" - integrity sha512-S3Rz11i7c8AA5JPv7xAH+dOyq/Cu/VXHiHXBPOU1k/JAM5dXqQPt3qcrhpHSorXmrpu2g0gkIBVXAqCpzfoZIg== +eslint@^6.8.0: + version "6.8.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-6.8.0.tgz#62262d6729739f9275723824302fb227c8c93ffb" + integrity sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig== dependencies: "@babel/code-frame" "^7.0.0" - ajv "^6.9.1" + ajv "^6.10.0" chalk "^2.1.0" cross-spawn "^6.0.5" debug "^4.0.1" doctrine "^3.0.0" - eslint-scope "^4.0.3" - eslint-utils "^1.3.1" - eslint-visitor-keys "^1.0.0" - espree "^5.0.1" + eslint-scope "^5.0.0" + eslint-utils "^1.4.3" + eslint-visitor-keys "^1.1.0" + espree "^6.1.2" esquery "^1.0.1" esutils "^2.0.2" file-entry-cache "^5.0.1" functional-red-black-tree "^1.0.1" - glob "^7.1.2" - globals "^11.7.0" + glob-parent "^5.0.0" + globals "^12.1.0" ignore "^4.0.6" import-fresh "^3.0.0" imurmurhash "^0.1.4" - inquirer "^6.2.2" - js-yaml "^3.13.0" + inquirer "^7.0.0" + is-glob "^4.0.0" + js-yaml "^3.13.1" json-stable-stringify-without-jsonify "^1.0.1" levn "^0.3.0" - lodash "^4.17.11" + lodash "^4.17.14" minimatch "^3.0.4" mkdirp "^0.5.1" natural-compare "^1.4.0" - optionator "^0.8.2" - path-is-inside "^1.0.2" + optionator "^0.8.3" progress "^2.0.0" regexpp "^2.0.1" - semver "^5.5.1" - strip-ansi "^4.0.0" - strip-json-comments "^2.0.1" + semver "^6.1.2" + strip-ansi "^5.2.0" + strip-json-comments "^3.0.1" table "^5.2.3" text-table "^0.2.0" + v8-compile-cache "^2.0.3" -espree@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/espree/-/espree-5.0.1.tgz#5d6526fa4fc7f0788a5cf75b15f30323e2f81f7a" - integrity sha512-qWAZcWh4XE/RwzLJejfcofscgMc9CamR6Tn1+XRXNzrvUSSbiAjGOI/fggztjIi7y9VLPqnICMIPiGyr8JaZ0A== +espree@^6.1.2: + version "6.1.2" + resolved "https://registry.yarnpkg.com/espree/-/espree-6.1.2.tgz#6c272650932b4f91c3714e5e7b5f5e2ecf47262d" + integrity sha512-2iUPuuPP+yW1PZaMSDM9eyVf8D5P0Hi8h83YtZ5bPc/zHYjII5khoixIUTMO794NOY8F/ThF1Bo8ncZILarUTA== dependencies: - acorn "^6.0.7" - acorn-jsx "^5.0.0" - eslint-visitor-keys "^1.0.0" + acorn "^7.1.0" + acorn-jsx "^5.1.0" + eslint-visitor-keys "^1.1.0" esprima@^4.0.0: version "4.0.1" @@ -2237,6 +2280,11 @@ fast-deep-equal@^2.0.1: resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk= +fast-deep-equal@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz#545145077c501491e33b15ec408c294376e94ae4" + integrity sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA== + fast-glob@^2.0.2, fast-glob@^2.2.6: version "2.2.7" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-2.2.7.tgz#6953857c3afa475fff92ee6015d52da70a4cd39d" @@ -2265,7 +2313,7 @@ fast-json-stable-stringify@^2.0.0: resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" integrity sha1-1RQsDK7msRifh9OnYREGT4bIu/I= -fast-levenshtein@~2.0.4: +fast-levenshtein@~2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= @@ -2296,10 +2344,10 @@ figgy-pudding@^3.5.1: resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.1.tgz#862470112901c727a0e495a80744bd5baa1d6790" integrity sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w== -figures@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" - integrity sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI= +figures@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-3.1.0.tgz#4b198dd07d8d71530642864af2d45dd9e459c4ec" + integrity sha512-ravh8VRXqHuMvZt/d8GblBeqDMkdJMBdv/2KntFH+ra5MXkO7nxNKpzQ3n6QD/2da1kH0aWmNISdvhM7gl2gVg== dependencies: escape-string-regexp "^1.0.5" @@ -2317,13 +2365,13 @@ file-entry-cache@^5.0.1: dependencies: flat-cache "^2.0.1" -file-loader@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-3.0.1.tgz#f8e0ba0b599918b51adfe45d66d1e771ad560faa" - integrity sha512-4sNIOXgtH/9WZq4NvlfU3Opn5ynUsqBwSLyM+I7UOwdGigTBYfVVQEwe/msZNX/j4pCJTIM14Fsw66Svo1oVrw== +file-loader@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-5.0.2.tgz#7f3d8b4ac85a5e8df61338cfec95d7405f971caa" + integrity sha512-QMiQ+WBkGLejKe81HU8SZ9PovsU/5uaLo0JdTCEXOYv7i7jfAjHZi1tcwp9tSASJPOmmHZtbdCervFmXMH/Dcg== dependencies: - loader-utils "^1.0.2" - schema-utils "^1.0.0" + loader-utils "^1.2.3" + schema-utils "^2.5.0" fill-range@^4.0.0: version "4.0.0" @@ -2572,7 +2620,7 @@ glob-parent@^3.1.0: is-glob "^3.1.0" path-dirname "^1.0.0" -glob-parent@^5.1.0: +glob-parent@^5.0.0, glob-parent@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.0.tgz#5f4c1d1e748d30cd73ad2944b3577a81b081e8c2" integrity sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw== @@ -2632,11 +2680,18 @@ global-prefix@^3.0.0: kind-of "^6.0.2" which "^1.3.1" -globals@^11.1.0, globals@^11.7.0: +globals@^11.1.0: version "11.12.0" resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== +globals@^12.1.0: + version "12.3.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-12.3.0.tgz#1e564ee5c4dded2ab098b0f88f24702a3c56be13" + integrity sha512-wAfjdLgFsPZsklLJvOBUBmzYE8/CwhEqSBEMRXA3qxIiNtyqvjYurAtIfDh6chlEPUfmTY3MnZh5Hfh4q0UlIw== + dependencies: + type-fest "^0.8.1" + globby@^11.0.0: version "11.0.0" resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.0.tgz#56fd0e9f0d4f8fb0c456f1ab0dee96e1380bc154" @@ -2817,10 +2872,10 @@ he@1.2.x: resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== -hls.js@^0.12.4: - version "0.12.4" - resolved "https://registry.yarnpkg.com/hls.js/-/hls.js-0.12.4.tgz#c155b7b2825a11117c111b781973c0ffa759006b" - integrity sha512-e8OPxQ60dBVsdkv4atdxR21KzC1mgwspM41qpozpj3Uv1Fz4CaeQy3FWoaV2O+QKKbNRvV5hW+/LipCWdrwnMQ== +hls.js@^0.13.1: + version "0.13.1" + resolved "https://registry.yarnpkg.com/hls.js/-/hls.js-0.13.1.tgz#371ae0754fea2ca9bc2c0b3279e4ca631c7a595a" + integrity sha512-AWlQRkjv3WzXXnxQ6i/xNq/dyhswyg589yRSiqwzCg3cAl9cxoiicSsBrgVeDaVyN7coeFv9zJRD9IlzGfh8Aw== dependencies: eventemitter3 "3.1.0" url-toolkit "^2.1.6" @@ -2846,10 +2901,10 @@ hosted-git-info@^2.1.4: resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.5.tgz#759cfcf2c4d156ade59b0b2dfabddc42a6b9c70c" integrity sha512-kssjab8CvdXfcXMXVcvsXum4Hwdq9XGtRD3TteMEvEbq0LXyiNQr6AprqKqfeaDXze7SxWvRxdpwE6ku7ikLkg== -howler@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/howler/-/howler-2.1.2.tgz#8433a09d8fe84132a3e726e05cb2bd352ef8bd49" - integrity sha512-oKrTFaVXsDRoB/jik7cEpWKTj7VieoiuzMYJ7E/EU5ayvmpRhumCv3YQ3823zi9VTJkSWAhbryHnlZAionGAJg== +howler@^2.1.3: + version "2.1.3" + resolved "https://registry.yarnpkg.com/howler/-/howler-2.1.3.tgz#07c88618f8767e879407a4d647fe2d6d5f15f121" + integrity sha512-PSGbOi1EYgw80C5UQbxtJM7TmzD+giJunIMBYyH3RVzHZx2fZLYBoes0SpVVHi/SFa1GoNtgXj/j6I7NOKYBxQ== hpack.js@^2.1.6: version "2.1.6" @@ -2987,12 +3042,7 @@ iconv-lite@0.4.24, iconv-lite@^0.4.24, iconv-lite@^0.4.4: dependencies: safer-buffer ">= 2.1.2 < 3" -icss-replace-symbols@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded" - integrity sha1-Bupvg2ead0njhs/h/oEq5dsiPe0= - -icss-utils@^4.1.0: +icss-utils@^4.0.0, icss-utils@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-4.1.1.tgz#21170b53789ee27447c2f47dd683081403f9a467" integrity sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA== @@ -3126,22 +3176,22 @@ ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== -inquirer@^6.2.2: - version "6.5.0" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.5.0.tgz#2303317efc9a4ea7ec2e2df6f86569b734accf42" - integrity sha512-scfHejeG/lVZSpvCXpsB4j/wQNPM5JC8kiElOI0OUTwmc1RTpXr4H32/HOlQHcZiYl2z2VElwuCVDRG8vFmbnA== +inquirer@^7.0.0: + version "7.0.4" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.0.4.tgz#99af5bde47153abca23f5c7fc30db247f39da703" + integrity sha512-Bu5Td5+j11sCkqfqmUTiwv+tWisMtP0L7Q8WrqA2C/BbBhy1YTdFrvjjlrKq8oagA/tLQBski2Gcx/Sqyi2qSQ== dependencies: - ansi-escapes "^3.2.0" + ansi-escapes "^4.2.1" chalk "^2.4.2" - cli-cursor "^2.1.0" + cli-cursor "^3.1.0" cli-width "^2.0.0" external-editor "^3.0.3" - figures "^2.0.0" - lodash "^4.17.12" - mute-stream "0.0.7" + figures "^3.0.0" + lodash "^4.17.15" + mute-stream "0.0.8" run-async "^2.2.0" - rxjs "^6.4.0" - string-width "^2.1.0" + rxjs "^6.5.3" + string-width "^4.1.0" strip-ansi "^5.1.0" through "^2.3.6" @@ -3492,8 +3542,8 @@ isobject@^3.0.0, isobject@^3.0.1: integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= "jellyfin-noto@https://github.com/jellyfin/jellyfin-noto": - version "1.0.0" - resolved "https://github.com/jellyfin/jellyfin-noto#251448082fdeeb6db4563001de18192842498df7" + version "1.0.2" + resolved "https://github.com/jellyfin/jellyfin-noto#a441b179c833288fc372cadb408d32a76c5479f1" jquery@>=1.9.1, jquery@^3.4.1: version "3.4.1" @@ -3510,7 +3560,7 @@ js-tokens@^4.0.0: resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== -js-yaml@^3.13.0, js-yaml@^3.13.1: +js-yaml@^3.13.1: version "3.13.1" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== @@ -3603,10 +3653,10 @@ known-css-properties@^0.11.0: resolved "https://registry.yarnpkg.com/known-css-properties/-/known-css-properties-0.11.0.tgz#0da784f115ea77c76b81536d7052e90ee6c86a8a" integrity sha512-bEZlJzXo5V/ApNNa5z375mJC6Nrz4vG43UgcSCrg2OHC+yuB6j0iDSrY7RQ/+PRofFB03wNIIt9iXIVLr4wc7w== -known-css-properties@^0.17.0: - version "0.17.0" - resolved "https://registry.yarnpkg.com/known-css-properties/-/known-css-properties-0.17.0.tgz#1c535f530ee8e9e3e27bb6a718285780e1d07326" - integrity sha512-Vi3nxDGMm/z+lAaCjvAR1u+7fiv+sG6gU/iYDj5QOF8h76ytK9EW/EKfF0NeTyiGBi8Jy6Hklty/vxISrLox3w== +known-css-properties@^0.18.0: + version "0.18.0" + resolved "https://registry.yarnpkg.com/known-css-properties/-/known-css-properties-0.18.0.tgz#d6e00b56ee1d5b0d171fd86df1583cfb012c521f" + integrity sha512-69AgJ1rQa7VvUsd2kpvVq+VeObDuo3zrj0CzM5Slmf6yduQFAI2kXPDQJR2IE/u6MSAUOJrwSzjg5vlz8qcMiw== lcid@^2.0.0: version "2.0.0" @@ -3643,6 +3693,11 @@ libjass@^0.11.0: resolved "https://registry.yarnpkg.com/libjass/-/libjass-0.11.0.tgz#bff1f464a2428c3bddfb68e4503b2d52afe3d6e6" integrity sha1-v/H0ZKJCjDvd+2jkUDstUq/j1uY= +lightercollective@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/lightercollective/-/lightercollective-0.3.0.tgz#1f07638642ec645d70bdb69ab2777676f35a28f0" + integrity sha512-RFOLSUVvwdK3xA0P8o6G7QGXLIyy1L2qv5caEI7zXN5ciaEjbAriRF182kbsoJ1S1TgvpyGcN485fMky6qxOPw== + lines-and-columns@^1.1.6: version "1.1.6" resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" @@ -3663,7 +3718,7 @@ loader-runner@^2.4.0: resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== -loader-utils@1.2.3, loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3: +loader-utils@1.2.3, loader-utils@^1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7" integrity sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA== @@ -3705,7 +3760,7 @@ locate-path@^5.0.0: dependencies: p-locate "^4.1.0" -lodash@^4.1.0, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.3, lodash@^4.17.4: +lodash@^4.1.0, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.3, lodash@^4.17.4: version "4.17.15" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== @@ -3731,10 +3786,10 @@ log-symbols@^3.0.0: dependencies: chalk "^2.4.2" -loglevel@^1.6.4: - version "1.6.4" - resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.4.tgz#f408f4f006db8354d0577dcf6d33485b3cb90d56" - integrity sha512-p0b6mOGKcGa+7nnmKbpzR6qloPbrgLcnio++E+14Vo/XffOGwZtRpUhr8dTH/x2oCMmEoIU0Zwm3ZauhvYD17g== +loglevel@^1.6.6: + version "1.6.6" + resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.6.tgz#0ee6300cc058db6b3551fa1c4bf73b83bb771312" + integrity sha512-Sgr5lbboAUBo3eXCSPL4/KoVz3ROKquOjcctxmHIt+vol2DrqTQe3SwkKKuYhEiWB5kYa13YyopJ69deJ1irzQ== longest-streak@^2.0.1: version "2.0.3" @@ -3823,11 +3878,16 @@ material-design-icons-iconfont@^5.0.1: resolved "https://registry.yarnpkg.com/material-design-icons-iconfont/-/material-design-icons-iconfont-5.0.1.tgz#371875ed7fe9c8c520bc7123c3231feeab731c31" integrity sha512-Xg6rIdGrfySTqiTZ6d+nQbcFepS6R4uKbJP0oAqyeZXJY/bX6mZDnOmmUJusqLXfhIwirs0c++a6JpqVa8RFvA== -mathml-tag-names@^2.0.1, mathml-tag-names@^2.1.1: +mathml-tag-names@^2.0.1: version "2.1.1" resolved "https://registry.yarnpkg.com/mathml-tag-names/-/mathml-tag-names-2.1.1.tgz#6dff66c99d55ecf739ca53c492e626f1d12a33cc" integrity sha512-pWB896KPGSGkp1XtyzRBftpTzwSOL0Gfk0wLvxt4f2mgzjY19o0LxJ3U25vNWTzsh7da+KTbuXQoQ3lOJZ8WHw== +mathml-tag-names@^2.1.3: + version "2.1.3" + resolved "https://registry.yarnpkg.com/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz#4ddadd67308e780cf16a47685878ee27b736a0a3" + integrity sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg== + md5.js@^1.3.4: version "1.3.5" resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" @@ -3975,12 +4035,7 @@ mime@^2.4.4: resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.4.tgz#bd7b91135fc6b01cde3e9bae33d659b63d8857e5" integrity sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA== -mimic-fn@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" - integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== - -mimic-fn@^2.0.0: +mimic-fn@^2.0.0, mimic-fn@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== @@ -4077,7 +4132,7 @@ mixin-deep@^1.2.0: for-in "^1.0.2" is-extendable "^1.0.1" -mkdirp@0.5.x, mkdirp@^0.5.0, mkdirp@^0.5.1: +mkdirp@^0.5.0, mkdirp@^0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= @@ -4124,10 +4179,10 @@ multicast-dns@^6.0.1: dns-packet "^1.3.1" thunky "^1.0.2" -mute-stream@0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" - integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s= +mute-stream@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" + integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== nan@^2.12.1: version "2.14.0" @@ -4411,12 +4466,12 @@ once@^1.3.0, once@^1.3.1, once@^1.4.0: dependencies: wrappy "1" -onetime@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" - integrity sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ= +onetime@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.0.tgz#fff0f3c91617fe62bb50189636e99ac8a6df7be5" + integrity sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q== dependencies: - mimic-fn "^1.0.0" + mimic-fn "^2.1.0" opn@^5.5.0: version "5.5.0" @@ -4425,17 +4480,17 @@ opn@^5.5.0: dependencies: is-wsl "^1.1.0" -optionator@^0.8.2: - version "0.8.2" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" - integrity sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q= +optionator@^0.8.3: + version "0.8.3" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" + integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== dependencies: deep-is "~0.1.3" - fast-levenshtein "~2.0.4" + fast-levenshtein "~2.0.6" levn "~0.3.0" prelude-ls "~1.1.2" type-check "~0.3.2" - wordwrap "~1.0.0" + word-wrap "~1.2.3" original@^1.0.0: version "1.0.2" @@ -4754,14 +4809,14 @@ plur@^2.1.2: dependencies: irregular-plurals "^1.0.0" -portfinder@^1.0.24: - version "1.0.24" - resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.24.tgz#11efbc6865f12f37624b6531ead1d809ed965cfa" - integrity sha512-ekRl7zD2qxYndYflwiryJwMioBI7LI7rVXg3EnLK3sjkouT5eOuhS3gS255XxBksa30VG8UPZYZCdgfGOfkSUg== +portfinder@^1.0.25: + version "1.0.25" + resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.25.tgz#254fd337ffba869f4b9d37edc298059cb4d35eca" + integrity sha512-6ElJnHBbxVA1XSLgBp7G1FiCkQdlqGzuF7DswL5tcea+E8UpuvPU7beVAjjRwCioTS9ZluNbu+ZyRvgTsmqEBg== dependencies: - async "^1.5.2" - debug "^2.2.0" - mkdirp "0.5.x" + async "^2.6.2" + debug "^3.1.1" + mkdirp "^0.5.1" posix-character-classes@^0.1.0: version "0.1.1" @@ -4775,7 +4830,7 @@ postcss-html@^0.36.0: dependencies: htmlparser2 "^3.10.0" -postcss-jsx@^0.36.0, postcss-jsx@^0.36.3: +postcss-jsx@^0.36.0, postcss-jsx@^0.36.4: version "0.36.4" resolved "https://registry.yarnpkg.com/postcss-jsx/-/postcss-jsx-0.36.4.tgz#37a68f300a39e5748d547f19a747b3257240bd50" integrity sha512-jwO/7qWUvYuWYnpOb0+4bIIgJt7003pgU3P6nETBLaOyBXuTD55ho21xnals5nBrlpTIFodyd3/jBi6UO3dHvA== @@ -4809,29 +4864,30 @@ postcss-modules-extract-imports@^2.0.0: dependencies: postcss "^7.0.5" -postcss-modules-local-by-default@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-2.0.6.tgz#dd9953f6dd476b5fd1ef2d8830c8929760b56e63" - integrity sha512-oLUV5YNkeIBa0yQl7EYnxMgy4N6noxmiwZStaEJUSe2xPMcdNc8WmBQuQCx18H5psYbVxz8zoHk0RAAYZXP9gA== +postcss-modules-local-by-default@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.2.tgz#e8a6561be914aaf3c052876377524ca90dbb7915" + integrity sha512-jM/V8eqM4oJ/22j0gx4jrp63GSvDH6v86OqyTHHUvk4/k1vceipZsaymiZ5PvocqZOl5SFHiFJqjs3la0wnfIQ== dependencies: - postcss "^7.0.6" - postcss-selector-parser "^6.0.0" - postcss-value-parser "^3.3.1" + icss-utils "^4.1.1" + postcss "^7.0.16" + postcss-selector-parser "^6.0.2" + postcss-value-parser "^4.0.0" -postcss-modules-scope@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-2.1.0.tgz#ad3f5bf7856114f6fcab901b0502e2a2bc39d4eb" - integrity sha512-91Rjps0JnmtUB0cujlc8KIKCsJXWjzuxGeT/+Q2i2HXKZ7nBUeF9YQTZZTNvHVoNYj1AthsjnGLtqDUE0Op79A== +postcss-modules-scope@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-2.1.1.tgz#33d4fc946602eb5e9355c4165d68a10727689dba" + integrity sha512-OXRUPecnHCg8b9xWvldG/jUpRIGPNRka0r4D4j0ESUU2/5IOnpsjfPPmDprM3Ih8CgZ8FXjWqaniK5v4rWt3oQ== dependencies: postcss "^7.0.6" postcss-selector-parser "^6.0.0" -postcss-modules-values@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-2.0.0.tgz#479b46dc0c5ca3dc7fa5270851836b9ec7152f64" - integrity sha512-Ki7JZa7ff1N3EIMlPnGTZfUMe69FFwiQPnVSXC9mnn3jozCRBYIxiZd44yJOV2AmabOo4qFf8s0dC/+lweG7+w== +postcss-modules-values@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz#5b5000d6ebae29b4255301b4a3a54574423e7f10" + integrity sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg== dependencies: - icss-replace-symbols "^1.1.0" + icss-utils "^4.0.0" postcss "^7.0.6" postcss-reporter@^1.3.3: @@ -4907,7 +4963,7 @@ postcss-selector-parser@^3.1.0: indexes-of "^1.0.1" uniq "^1.0.1" -postcss-selector-parser@^6.0.0: +postcss-selector-parser@^6.0.0, postcss-selector-parser@^6.0.2: version "6.0.2" resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz#934cf799d016c83411859e09dcecade01286ec5c" integrity sha512-36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg== @@ -4937,12 +4993,12 @@ postcss-syntax@^0.36.2: resolved "https://registry.yarnpkg.com/postcss-syntax/-/postcss-syntax-0.36.2.tgz#f08578c7d95834574e5593a82dfbfa8afae3b51c" integrity sha512-nBRg/i7E3SOHWxF3PpF5WnJM/jQ1YpY9000OaVXlAQj6Zp/kIqJxEDWIZ67tAd7NLuk7zqN4yqe9nc0oNAOs1w== -postcss-value-parser@^3.3.0, postcss-value-parser@^3.3.1: +postcss-value-parser@^3.3.0: version "3.3.1" resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== -postcss-value-parser@^4.0.2: +postcss-value-parser@^4.0.0, postcss-value-parser@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.0.2.tgz#482282c09a42706d1fc9a069b73f44ec08391dc9" integrity sha512-LmeoohTpp/K4UiyQCwuGWlONxXamGzCMtFxLq4W1nZVGIQLYvMCJx3yAF9qyyuFpflABI9yVdtJAqbihOsCsJQ== @@ -4957,7 +5013,7 @@ postcss@^5.0.0, postcss@^5.0.18: source-map "^0.5.6" supports-color "^3.2.3" -postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.13, postcss@^7.0.17, postcss@^7.0.2, postcss@^7.0.21, postcss@^7.0.26, postcss@^7.0.7: +postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.13, postcss@^7.0.16, postcss@^7.0.17, postcss@^7.0.2, postcss@^7.0.21, postcss@^7.0.23, postcss@^7.0.26, postcss@^7.0.7: version "7.0.26" resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.26.tgz#5ed615cfcab35ba9bbb82414a4fa88ea10429587" integrity sha512-IY4oRjpXWYshuTDFxMVkJDtWIk2LhsTlu8bZnbEJA4+bYT16Lvpo8Qv6EvDumhYRgzjZl489pmsY3qVgJQ08nA== @@ -5416,12 +5472,12 @@ resolve@^1.10.0, resolve@^1.3.2: dependencies: path-parse "^1.0.6" -restore-cursor@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" - integrity sha1-n37ih/gv0ybU/RYpI9YhKe7g368= +restore-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" + integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== dependencies: - onetime "^2.0.0" + onetime "^5.1.0" signal-exit "^3.0.2" ret@~0.1.10: @@ -5473,10 +5529,10 @@ run-queue@^1.0.0, run-queue@^1.0.3: dependencies: aproba "^1.1.1" -rxjs@^6.4.0: - version "6.5.2" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.2.tgz#2e35ce815cd46d84d02a209fb4e5921e051dbec7" - integrity sha512-HUb7j3kvb7p7eCUHE3FqjoDsC1xfZQ4AHFWfTKSpZ+sAhhz5X1WX0ZuUqWbzB2QhSLp3DoLUG+hMdEDKqWo2Zg== +rxjs@^6.5.3: + version "6.5.4" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.4.tgz#e0777fe0d184cec7872df147f303572d414e211c" + integrity sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q== dependencies: tslib "^1.9.0" @@ -5524,6 +5580,14 @@ schema-utils@^1.0.0: ajv-errors "^1.0.0" ajv-keywords "^3.1.0" +schema-utils@^2.5.0, schema-utils@^2.6.0, schema-utils@^2.6.4: + version "2.6.4" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.6.4.tgz#a27efbf6e4e78689d91872ee3ccfa57d7bdd0f53" + integrity sha512-VNjcaUxVnEeun6B2fiiUDjXXBtD4ZSH7pdbfIu1pOFwgptDPLMo/z9jr4sUfsjFVPqDCEin/F7IYlq7/E6yDbQ== + dependencies: + ajv "^6.10.2" + ajv-keywords "^3.4.1" + select-hose@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" @@ -5541,12 +5605,12 @@ selfsigned@^1.10.7: resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== -semver@^5.3.0, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0: +semver@^5.3.0, semver@^5.5.0, semver@^5.6.0: version "5.7.0" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.0.tgz#790a7cf6fea5459bac96110b29b60412dc8ff96b" integrity sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA== -semver@^6.3.0: +semver@^6.1.2, semver@^6.3.0: version "6.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== @@ -5570,11 +5634,6 @@ send@0.17.1: range-parser "~1.2.1" statuses "~1.5.0" -serialize-javascript@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.7.0.tgz#d6e0dfb2a3832a8c94468e6eb1db97e55a192a65" - integrity sha512-ke8UG8ulpFOxO8f8gRYabHQe/ZntKlcig2Mp+8+URDP1D8vJZ0KUt7LYo07q25Z/+JVSgpr/cui9PIp5H6/+nA== - serialize-javascript@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-2.1.2.tgz#ecec53b0e0317bdc95ef76ab7074b7384785fa61" @@ -5641,10 +5700,12 @@ sha.js@^2.4.0, sha.js@^2.4.8: inherits "^2.0.1" safe-buffer "^5.0.1" -shaka-player@^2.5.5: - version "2.5.5" - resolved "https://registry.yarnpkg.com/shaka-player/-/shaka-player-2.5.5.tgz#81e7265f28f631afd3837c06ec6637824bda71e4" - integrity sha512-YEWBFapWKjwy2+wIgH9NqoFW9A14LIYNAoJ9cQr3c9BGS7qjqxeiYM/H1BJ8so1FQexpsWUdyjwHvcspdc7/nw== +shaka-player@^2.5.9: + version "2.5.9" + resolved "https://registry.yarnpkg.com/shaka-player/-/shaka-player-2.5.9.tgz#007dc19df2bb5d3d959d278b2d894af05adffe38" + integrity sha512-XavLBqxvIbvLOPfk7VKZu5fbMJyVko9bBfzxmMWdX5bvQwUSjU7ZhV8v2tHqXQYafpHml1hlGHzKkLs7idouNQ== + dependencies: + eme-encryption-scheme-polyfill "^2.0.0" shebang-command@^1.2.0: version "1.2.0" @@ -5737,10 +5798,10 @@ sockjs@0.3.19: faye-websocket "^0.10.0" uuid "^3.0.1" -sortablejs@^1.9.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/sortablejs/-/sortablejs-1.10.0.tgz#0ebc054acff2486569194a2f975b2b145dd5e7d6" - integrity sha512-+e0YakK1BxgEZpf9l9UiFaiQ8ZOBn1p/4qkkXr8QDVmYyCrUDTyDRRGm0AgW4E4cD0wtgxJ6yzIRkSPUwqhuhg== +sortablejs@^1.10.2: + version "1.10.2" + resolved "https://registry.yarnpkg.com/sortablejs/-/sortablejs-1.10.2.tgz#6e40364d913f98b85a14f6678f92b5c1221f5290" + integrity sha512-YkPGufevysvfwn5rfdlGyrGjt7/CRHwvRPogD/lC+TnvcN29jDpCifKP+rBqf+LRldfXSTh+0CGLcSg0VIxq3A== source-list-map@^2.0.0: version "2.0.1" @@ -5847,6 +5908,11 @@ sprintf-js@~1.0.2: resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= +ssr-window@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/ssr-window/-/ssr-window-1.0.1.tgz#30752a6a4666e7767f0b7e6aa6fc2fdbd0d9b369" + integrity sha512-dgFqB+f00LJTEgb6UXhx0h+SrG50LJvti2yMKMqAgzfUmUXZrLSv2fjULF7AWGwK25EXu8+smLR3jYsJQChPsg== + ssri@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.1.tgz#2a3c41b28dd45b62b63676ecb74001265ae9edd8" @@ -5913,7 +5979,7 @@ string-width@^1.0.1: is-fullwidth-code-point "^1.0.0" strip-ansi "^3.0.0" -"string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1: +"string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== @@ -5930,7 +5996,7 @@ string-width@^3.0.0, string-width@^3.1.0: is-fullwidth-code-point "^2.0.0" strip-ansi "^5.1.0" -string-width@^4.2.0: +string-width@^4.1.0, string-width@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== @@ -6036,18 +6102,23 @@ strip-indent@^3.0.0: dependencies: min-indent "^1.0.0" -strip-json-comments@^2.0.1, strip-json-comments@~2.0.1: +strip-json-comments@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.0.1.tgz#85713975a91fb87bf1b305cca77395e40d2a64a7" + integrity sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw== + +strip-json-comments@~2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= -style-loader@^0.23.1: - version "0.23.1" - resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-0.23.1.tgz#cb9154606f3e771ab6c4ab637026a1049174d925" - integrity sha512-XK+uv9kWwhZMZ1y7mysB+zoihsEj4wneFWAS5qoiLwzW0WzSqMrrsIy+a3zkQJq0ipFtBpX5W3MqyRIBF/WFGg== +style-loader@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-1.1.3.tgz#9e826e69c683c4d9bf9db924f85e9abb30d5e200" + integrity sha512-rlkH7X/22yuwFYK357fMN/BxYOorfnfq0eD7+vqlemSK4wEcejFF1dg4zxP0euBW8NrYx2WZzZ8PPFevr7D+Kw== dependencies: - loader-utils "^1.1.0" - schema-utils "^1.0.0" + loader-utils "^1.2.3" + schema-utils "^2.6.4" style-search@^0.1.0: version "0.1.0" @@ -6105,12 +6176,12 @@ stylelint-order@^4.0.0: postcss "^7.0.26" postcss-sorting "^5.0.1" -stylelint@^13.0.0: - version "13.0.0" - resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-13.0.0.tgz#532007f7154c1a5ed14245d857a5884316f5111f" - integrity sha512-6sjgOJbM3iLhnUtmRO0J1vvxie9VnhIZX/2fCehjylv9Gl9u0ytehGCTm9Lhw2p1F8yaNZn5UprvhCB8C3g/Tg== +stylelint@^13.1.0: + version "13.1.0" + resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-13.1.0.tgz#693fca947873ff34c92bf08cdaa6f3db1cac91e2" + integrity sha512-Ei+nCSQTyZYrsLSUIxq48/QfzCQD9r9sQiBqy7Z4IpIMcj+E0R6b0CHrSFeE7jNgREpBfJKJd6DpstuDrwUiew== dependencies: - autoprefixer "^9.7.3" + autoprefixer "^9.7.4" balanced-match "^1.0.0" chalk "^3.0.0" cosmiconfig "^6.0.0" @@ -6125,17 +6196,17 @@ stylelint@^13.0.0: ignore "^5.1.4" import-lazy "^4.0.0" imurmurhash "^0.1.4" - known-css-properties "^0.17.0" + known-css-properties "^0.18.0" leven "^3.1.0" lodash "^4.17.15" log-symbols "^3.0.0" - mathml-tag-names "^2.1.1" + mathml-tag-names "^2.1.3" meow "^6.0.0" micromatch "^4.0.2" normalize-selector "^0.2.0" postcss "^7.0.26" postcss-html "^0.36.0" - postcss-jsx "^0.36.3" + postcss-jsx "^0.36.4" postcss-less "^3.1.4" postcss-markdown "^0.36.0" postcss-media-query-parser "^0.2.3" @@ -6257,10 +6328,13 @@ svg-tags@^1.0.0: resolved "https://registry.yarnpkg.com/svg-tags/-/svg-tags-1.0.0.tgz#58f71cee3bd519b59d4b2a843b6c7de64ac04764" integrity sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q= -swiper@^3.4.2: - version "3.4.2" - resolved "https://registry.yarnpkg.com/swiper/-/swiper-3.4.2.tgz#39d6b410b1a39833e1f72d3b72999df5f5e38392" - integrity sha1-Oda0ELGjmDPh9y07cpmd9fXjg5I= +swiper@^5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/swiper/-/swiper-5.3.1.tgz#05a8e989daec0bf2841779f4f0d6fce9db259b9e" + integrity sha512-H44Wf9hu1o1xtexSqjP+toGwAapUyQMt1hy/77ZRFURdWI1oOwGUCUdZCc8a1Zuh1Ud16u3Th+NdFJI3HIRNrw== + dependencies: + dom7 "^2.1.3" + ssr-window "^1.0.1" table@^5.0.0, table@^5.4.6: version "5.4.6" @@ -6300,16 +6374,16 @@ tar@^4: safe-buffer "^5.1.2" yallist "^3.0.3" -terser-webpack-plugin@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.1.tgz#61b18e40eaee5be97e771cdbb10ed1280888c2b4" - integrity sha512-ZXmmfiwtCLfz8WKZyYUuuHf3dMYEjg8NrjHMb0JqHVHVOSkzp3cW2/XG1fP3tRhqEqSzMwzzRQGtAPbs4Cncxg== +terser-webpack-plugin@^1.4.3: + version "1.4.3" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.3.tgz#5ecaf2dbdc5fb99745fd06791f46fc9ddb1c9a7c" + integrity sha512-QMxecFz/gHQwteWwSo5nTc6UaICqN1bMedC5sMtUc7y3Ha3Q8y6ZO0iCR8pq4RJC8Hjf0FEPEHZqcMB/+DFCrA== dependencies: cacache "^12.0.2" find-cache-dir "^2.1.0" is-wsl "^1.1.0" schema-utils "^1.0.0" - serialize-javascript "^1.7.0" + serialize-javascript "^2.1.2" source-map "^0.6.1" terser "^4.1.2" webpack-sources "^1.4.0" @@ -6715,7 +6789,7 @@ v8-compile-cache@2.0.3: resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.0.3.tgz#00f7494d2ae2b688cfe2899df6ed2c54bef91dbe" integrity sha512-CNmdbwQMBjwr9Gsmohvm0pbL954tJrNzf6gWL3K+QMQf00PF7ERGrEiLgjuU3mKreLC2MeGhUsNV9ybTbLgd3w== -v8-compile-cache@^2.1.0: +v8-compile-cache@^2.0.3, v8-compile-cache@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz#e14de37b31a6d194f5690d67efc4e7f6fc6ab30e" integrity sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g== @@ -6789,10 +6863,10 @@ webcomponents.js@^0.7.24: resolved "https://registry.yarnpkg.com/webcomponents.js/-/webcomponents.js-0.7.24.tgz#2116fbfa1468ec416a7befdaa333e1d118f69c04" integrity sha1-IRb7+hRo7EFqe+/aozPh0Rj2nAQ= -webpack-cli@^3.3.9: - version "3.3.9" - resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.3.9.tgz#79c27e71f94b7fe324d594ab64a8e396b9daa91a" - integrity sha512-xwnSxWl8nZtBl/AFJCOn9pG7s5CYUYdZxmmukv+fAHLcBIHM36dImfpQg3WfShZXeArkWlf6QRw24Klcsv8a5A== +webpack-cli@^3.3.10: + version "3.3.10" + resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.3.10.tgz#17b279267e9b4fb549023fae170da8e6e766da13" + integrity sha512-u1dgND9+MXaEt74sJR4PR7qkPxXUSQ0RXYq8x1L6Jg1MYVEmGPrH6Ah6C4arD4r0J1P5HKjRqpab36k0eIzPqg== dependencies: chalk "2.4.2" cross-spawn "6.0.5" @@ -6828,10 +6902,10 @@ webpack-dev-middleware@^3.7.2: range-parser "^1.2.1" webpack-log "^2.0.0" -webpack-dev-server@^3.8.1: - version "3.8.2" - resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.8.2.tgz#3292427bf6510da9a3ac2d500b924a4197667ff9" - integrity sha512-0xxogS7n5jHDQWy0WST0q6Ykp7UGj4YvWh+HVN71JoE7BwPxMZrwgraBvmdEMbDVMBzF0u+mEzn8TQzBm5NYJQ== +webpack-dev-server@^3.10.3: + version "3.10.3" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.10.3.tgz#f35945036813e57ef582c2420ef7b470e14d3af0" + integrity sha512-e4nWev8YzEVNdOMcNzNeCN947sWJNd43E5XvsJzbAL08kGc2frm1tQ32hTJslRS+H65LCb/AaUCYU7fjHCpDeQ== dependencies: ansi-html "0.0.7" bonjour "^3.5.0" @@ -6848,10 +6922,10 @@ webpack-dev-server@^3.8.1: ip "^1.1.5" is-absolute-url "^3.0.3" killable "^1.0.1" - loglevel "^1.6.4" + loglevel "^1.6.6" opn "^5.5.0" p-retry "^3.0.1" - portfinder "^1.0.24" + portfinder "^1.0.25" schema-utils "^1.0.0" selfsigned "^1.10.7" semver "^6.3.0" @@ -6890,10 +6964,10 @@ webpack-sources@^1.4.0, webpack-sources@^1.4.1: source-list-map "^2.0.0" source-map "~0.6.1" -webpack@^4.41.0: - version "4.41.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.41.0.tgz#db6a254bde671769f7c14e90a1a55e73602fc70b" - integrity sha512-yNV98U4r7wX1VJAj5kyMsu36T8RPPQntcb5fJLOsMz/pt/WrKC0Vp1bAlqPLkA1LegSwQwf6P+kAbyhRKVQ72g== +webpack@^4.41.5: + version "4.41.5" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.41.5.tgz#3210f1886bce5310e62bb97204d18c263341b77c" + integrity sha512-wp0Co4vpyumnp3KlkmpM5LWuzvZYayDwM2n17EHFr4qxBBbRokC7DJawPJC7TfSFZ9HZ6GsdH40EBj4UV0nmpw== dependencies: "@webassemblyjs/ast" "1.8.5" "@webassemblyjs/helper-module-context" "1.8.5" @@ -6915,7 +6989,7 @@ webpack@^4.41.0: node-libs-browser "^2.2.1" schema-utils "^1.0.0" tapable "^1.1.3" - terser-webpack-plugin "^1.4.1" + terser-webpack-plugin "^1.4.3" watchpack "^1.6.0" webpack-sources "^1.4.1" @@ -6938,10 +7012,10 @@ webworkify@^1.5.0: resolved "https://registry.yarnpkg.com/webworkify/-/webworkify-1.5.0.tgz#734ad87a774de6ebdd546e1d3e027da5b8f4a42c" integrity sha512-AMcUeyXAhbACL8S2hqqdqOLqvJ8ylmIbNwUIqQujRSouf4+eUFaXbG6F1Rbu+srlJMmxQWsiU7mOJi0nMBfM1g== -whatwg-fetch@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-1.1.1.tgz#ac3c9d39f320c6dce5339969d054ef43dd333319" - integrity sha1-rDydOfMgxtzlM5lp0FTvQ90zMxk= +whatwg-fetch@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz#fc804e458cc460009b1a2b966bc8817d2578aefb" + integrity sha512-9GSJUgz1D4MfyKU7KRqwOjXCXTqWdFNvEr7eUBYchQiVc744mqK/MzXPNR2WsPkmkOa4ywfg8C2n8h+13Bey1Q== which-module@^2.0.0: version "2.0.0" @@ -6962,10 +7036,10 @@ wide-align@^1.1.0: dependencies: string-width "^1.0.2 || 2" -wordwrap@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" - integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus= +word-wrap@~1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" + integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== worker-farm@^1.7.0: version "1.7.0" From 726a9495143f672d0a80b7e973116f8c23062dc4 Mon Sep 17 00:00:00 2001 From: nyanmisaka Date: Sun, 9 Feb 2020 21:36:42 +0800 Subject: [PATCH 108/116] fix device icons for Safari and Android --- src/components/apphost.js | 2 +- src/scripts/imagehelper.js | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/components/apphost.js b/src/components/apphost.js index 0c4d2a6dca..2a0b7b19e9 100644 --- a/src/components/apphost.js +++ b/src/components/apphost.js @@ -104,7 +104,7 @@ define(["appSettings", "browser", "events", "htmlMediaHelper"], function (appSet function getDeviceName() { var deviceName; - deviceName = browser.tizen ? "Samsung Smart TV" : browser.web0s ? "LG Smart TV" : browser.operaTv ? "Opera TV" : browser.xboxOne ? "Xbox One" : browser.ps4 ? "Sony PS4" : browser.chrome ? "Chrome" : browser.edge ? "Edge" : browser.firefox ? "Firefox" : browser.msie ? "Internet Explorer" : browser.opera ? "Opera" : "Web Browser"; + deviceName = browser.tizen ? "Samsung Smart TV" : browser.web0s ? "LG Smart TV" : browser.operaTv ? "Opera TV" : browser.xboxOne ? "Xbox One" : browser.ps4 ? "Sony PS4" : browser.chrome ? "Chrome" : browser.edge ? "Edge" : browser.firefox ? "Firefox" : browser.msie ? "Internet Explorer" : browser.opera ? "Opera" : browser.safari ? "Safari" : "Web Browser"; if (browser.ipad) { deviceName += " iPad"; diff --git a/src/scripts/imagehelper.js b/src/scripts/imagehelper.js index 2edc130165..a8c4702698 100644 --- a/src/scripts/imagehelper.js +++ b/src/scripts/imagehelper.js @@ -18,11 +18,18 @@ define(["browser"], function (browser) { switch (device.Name || device.DeviceName) { case "Opera": case "Opera TV": + case "Opera Android": return baseUrl + "opera.svg"; case "Chrome": + case "Chrome Android": return baseUrl + "chrome.svg"; case "Firefox": + case "Firefox Android": return baseUrl + "firefox.svg"; + case "Safari": + case "Safari iPad": + case "Safari iPhone": + return baseUrl + "safari.svg"; case "Edge": return baseUrl + "edge.svg"; case "Internet Explorer": From 58cb50a2d64dc4d4bdde8fcad73a4a96b2140223 Mon Sep 17 00:00:00 2001 From: Nyanmisaka Date: Mon, 10 Feb 2020 01:05:45 +0800 Subject: [PATCH 109/116] fix detail page title on mobile devices --- src/assets/css/librarybrowser.css | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/assets/css/librarybrowser.css b/src/assets/css/librarybrowser.css index 413da9436d..8010d05fa9 100644 --- a/src/assets/css/librarybrowser.css +++ b/src/assets/css/librarybrowser.css @@ -509,13 +509,14 @@ align-items: center; align-content: center; position: sticky; - top: 6.6%; + top: 3.85em; z-index: 2; } .layout-mobile .detailPagePrimaryContainer { display: block; position: relative; + top: 0; } .layout-tv .detailPagePrimaryContainer { From fbb6e673a8bda5b12ce457b194e4e6b1f9e6153a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Libor=20Fil=C3=ADpek?= Date: Sun, 9 Feb 2020 19:12:29 +0000 Subject: [PATCH 110/116] Translated using Weblate (Czech) Translation: Jellyfin/Jellyfin Web Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/cs/ --- src/strings/cs.json | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/strings/cs.json b/src/strings/cs.json index 9bb889d97f..346215407f 100644 --- a/src/strings/cs.json +++ b/src/strings/cs.json @@ -1560,5 +1560,12 @@ "HeaderNavigation": "Navigace", "ButtonSplit": "Rozdělit", "MessageConfirmAppExit": "Přejete si odejít?", - "CopyStreamURLError": "Při kopírování URL došlo k chybě." + "CopyStreamURLError": "Při kopírování URL došlo k chybě.", + "LabelVideoResolution": "Rozlišení videa:", + "LabelStreamType": "Typ streamu:", + "EnableFastImageFadeInHelp": "Povolte rychlejší animaci pro načtené obrázky", + "EnableFastImageFadeIn": "Rychlé zmizení obrazu", + "LabelPlayerDimensions": "Zobrazené rozlišení:", + "LabelDroppedFrames": "Vynechané snímky:", + "LabelCorruptedFrames": "Poškozené snímky:" } From 99dcafa45f6559e2fd98325db61aae2fedb012ba Mon Sep 17 00:00:00 2001 From: Nyanmisaka <799610810@qq.com> Date: Sun, 9 Feb 2020 14:23:52 +0000 Subject: [PATCH 111/116] Translated using Weblate (Chinese (Simplified)) Translation: Jellyfin/Jellyfin Web Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/zh_Hans/ --- src/strings/zh-cn.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/strings/zh-cn.json b/src/strings/zh-cn.json index df64ead346..db33230cf7 100644 --- a/src/strings/zh-cn.json +++ b/src/strings/zh-cn.json @@ -695,10 +695,10 @@ "LabelProfileAudioCodecs": "音频编解码器:", "LabelProfileCodecs": "编解码器:", "LabelProfileCodecsHelp": "以逗号分隔。留空则适用于所有编解码器。", - "LabelProfileContainer": "媒体载体:", + "LabelProfileContainer": "媒体载体:", "LabelProfileContainersHelp": "以逗号分隔。留空则适用于所有媒体载体。", "LabelProfileVideoCodecs": "视频编解码器:", - "LabelProtocol": "协议:", + "LabelProtocol": "协议:", "LabelProtocolInfo": "协议信息:", "LabelProtocolInfoHelp": "当响应来自设备的 GetProtocolInfo(获取协议信息)请求时,该值将被使用。", "LabelPublicHttpPort": "公开 HTTP 端口号:", From 0a4eec4110594bd0e20aac5c6a7bac3c07d87f27 Mon Sep 17 00:00:00 2001 From: Nyanmisaka <799610810@qq.com> Date: Sun, 9 Feb 2020 14:27:23 +0000 Subject: [PATCH 112/116] Translated using Weblate (Chinese (Traditional)) Translation: Jellyfin/Jellyfin Web Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/zh_Hant/ --- src/strings/zh-tw.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/strings/zh-tw.json b/src/strings/zh-tw.json index b0ef42c743..d2d5998ee3 100644 --- a/src/strings/zh-tw.json +++ b/src/strings/zh-tw.json @@ -1276,7 +1276,7 @@ "LabelKodiMetadataEnableExtraThumbs": "複製 extrafanart 到 extrathumbs 欄位", "LabelMovieCategories": "電影分類:", "LabelMoviePrefix": "電影前綴:", - "LabelProfileContainer": "影片容器:", + "LabelProfileContainer": "影片容器:", "LabelDropShadow": "陰影:", "LabelSecureConnectionsMode": "安全連接模式:", "LabelTVHomeScreen": "電視模式主畫面:", @@ -1579,7 +1579,7 @@ "LabelPreferredDisplayLanguage": "首選語言:", "LabelPreferredDisplayLanguageHelp": "翻譯 Jellyfin 是一個進行中的項目。", "LabelPreferredSubtitleLanguage": "字幕語言偏好:", - "LabelProtocol": "協議:", + "LabelProtocol": "協議:", "LabelProtocolInfo": "協議資訊:", "LabelPublicHttpPort": "公開 HTTP 端口:", "LabelPublicHttpsPort": "公開 HTTPS 端口:", From 0a6de37929427d5a4adfc9b1e6a0a2c59ea0e1ce Mon Sep 17 00:00:00 2001 From: David Date: Mon, 10 Feb 2020 11:08:09 +0000 Subject: [PATCH 113/116] Translated using Weblate (German) Translation: Jellyfin/Jellyfin Web Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/de/ --- src/strings/de.json | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/strings/de.json b/src/strings/de.json index d9d32e94b2..2e338cce62 100644 --- a/src/strings/de.json +++ b/src/strings/de.json @@ -636,7 +636,7 @@ "LabelMaxChromecastBitrate": "Max Chromcast Datenrate:", "LabelMaxParentalRating": "Höchste erlaubte elterlich Bewertung:", "LabelMaxResumePercentage": "Maximale Prozent für Wiederaufnahme:", - "LabelMaxResumePercentageHelp": "Titel werden als \"vollständig gesehen\" markiert, wenn sie nach dieser Zeitmarke gestoppt werden", + "LabelMaxResumePercentageHelp": "Titel werden als \"vollständig gesehen\" markiert, wenn sie nach dieser Zeitmarke gestoppt werden.", "LabelMaxScreenshotsPerItem": "Maximale Anzahl von Screenshots pro Element:", "LabelMaxStreamingBitrate": "Maximale Streaming-Qualität:", "LabelMaxStreamingBitrateHelp": "Wähle die maximale Bitrate während des streamens.", @@ -654,7 +654,7 @@ "LabelMethod": "Methode:", "LabelMinBackdropDownloadWidth": "Minimale Breite für zu herunterladende Hintergründe:", "LabelMinResumeDuration": "Minimale Dauer für Wiederaufnahme:", - "LabelMinResumeDurationHelp": "Die Videolänge in Sekunden, ab der die Wiedergabeposition gespeichert wird und dich fortsetzen lässt", + "LabelMinResumeDurationHelp": "Die Videolänge in Sekunden, ab der die Wiedergabeposition gespeichert wird und dich fortsetzen lässt.", "LabelMinResumePercentage": "Minimale Prozent für Wiederaufnahme:", "LabelMinResumePercentageHelp": "Titel werden als \"Ungesehen\" eingetragen, wenn sie vor dieser Zeit gestoppt werden.", "LabelMinScreenshotDownloadWidth": "Minimale Breite für zu herunterladende Screenshot:", @@ -1325,7 +1325,7 @@ "LabelVersion": "Version:", "LabelVersionNumber": "Version {0}", "LabelVideo": "Video:", - "LeaveBlankToNotSetAPassword": "Du kannst dieses Feld frei lassen um kein Passwort zu setzen", + "LeaveBlankToNotSetAPassword": "Du kannst dieses Feld frei lassen um kein Passwort zu setzen.", "LinksValue": "Links: {0}", "MessageImageFileTypeAllowed": "Nur JPEG- und PNG-Dateien werden unterstützt.", "MessageImageTypeNotSelected": "Bitte wähle einen Bildtyp aus dem Drop-Down Menü aus.", @@ -1476,5 +1476,14 @@ "VideoRange": "Videobereich", "ButtonSplit": "Teilen", "SelectAdminUsername": "Bitte einen Benutzernamen für das Administrator-Konto auswählen.", - "HeaderNavigation": "Navigation" + "HeaderNavigation": "Navigation", + "CopyStreamURLError": "Beim Kopieren der URL ist ein Fehler aufgetreten.", + "MessageConfirmAppExit": "Wirklich verlassen?", + "LabelVideoResolution": "Videoauflösung:", + "LabelStreamType": "Streamtyp:", + "EnableFastImageFadeInHelp": "Aktiviere schnellere Einblendeanimation für geladene Bilder", + "EnableFastImageFadeIn": "Schnelle Bildeinblendung", + "LabelPlayerDimensions": "Playerabmessungen:", + "LabelDroppedFrames": "Verlorene Frames:", + "LabelCorruptedFrames": "Fehlerhafte Frames:" } From b04b52d599f1b92eae7ab0897cdee48d0392cbae Mon Sep 17 00:00:00 2001 From: Johan Date: Mon, 10 Feb 2020 19:52:09 +0000 Subject: [PATCH 114/116] Translated using Weblate (Finnish) Translation: Jellyfin/Jellyfin Web Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/fi/ --- src/strings/fi.json | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/strings/fi.json b/src/strings/fi.json index d5ffc9c2d7..5045d4d0b8 100644 --- a/src/strings/fi.json +++ b/src/strings/fi.json @@ -268,16 +268,22 @@ "ButtonAddImage": "Lisää kuva", "Movies": "Elokuvat", "HeaderNextUp": "Seuraavaksi", - "HeaderLiveTV": "Netti-TV", + "HeaderLiveTV": "TV-lähetykset", "HeaderFavoriteSongs": "Lempikappaleet", "HeaderFavoriteShows": "Lempisarjat", "HeaderFavoriteEpisodes": "Lempijaksot", "HeaderFavoriteArtists": "Lempiartistit", "HeaderFavoriteAlbums": "Lempialbumit", - "HeaderContinueWatching": "Jatka Katsomista", - "HeaderAlbumArtists": "Albumiartistit", - "Genres": "Lajipiiri", + "HeaderContinueWatching": "Jatka katsomista", + "HeaderAlbumArtists": "Albumin artistit", + "Genres": "Tyylilaji", "Folders": "Kansiot", "Favorites": "Suosikit", - "Display": "Näytä" + "Display": "Näytä", + "Photos": "Kuvat", + "Playlists": "Soittolistat", + "ValueSpecialEpisodeName": "Erikois - {0}", + "Sync": "Synkronoi", + "Songs": "Kappaleet", + "Shows": "Ohjelmat" } From 8c81ce4a421a09ff11a96a8288eaffb99892d739 Mon Sep 17 00:00:00 2001 From: Alexander Brissman Date: Mon, 10 Feb 2020 17:41:06 +0000 Subject: [PATCH 115/116] =?UTF-8?q?Translated=20using=20Weblate=20(Norwegi?= =?UTF-8?q?an=20Bokm=C3=A5l)=20Translation:=20Jellyfin/Jellyfin=20Web=20Tr?= =?UTF-8?q?anslate-URL:=20https://translate.jellyfin.org/projects/jellyfin?= =?UTF-8?q?/jellyfin-web/nb=5FNO/?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/strings/nb.json | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/strings/nb.json b/src/strings/nb.json index f654132e92..0635b5ee25 100644 --- a/src/strings/nb.json +++ b/src/strings/nb.json @@ -1459,7 +1459,9 @@ "EnableFastImageFadeInHelp": "Bruk rask inntoning av animasjon for lastede bilder", "EnableFastImageFadeIn": "Rask bilde inntoning", "CopyStreamURLError": "Det var en feil under kopiering av URL'en.", - "LabelVideoResolution": "Video oppløsning:", - "LabelPlayerDimensions": "Spiller dimensjoner:", - "LabelCorruptedFrames": "Korrupte rammer:" + "LabelVideoResolution": "Oppløsning på video:", + "LabelPlayerDimensions": "Dimensjoner på avspiller:", + "LabelCorruptedFrames": "Korrupte bilder:", + "LabelStreamType": "Type strøm:", + "LabelDroppedFrames": "Fortapte bilder:" } From be23d14f48d725fa67a1e2a0f2ad3d8802201ea0 Mon Sep 17 00:00:00 2001 From: j7johnny Date: Tue, 11 Feb 2020 04:53:04 +0000 Subject: [PATCH 116/116] Translated using Weblate (Chinese (Traditional)) Translation: Jellyfin/Jellyfin Web Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-web/zh_Hant/ --- src/strings/zh-tw.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/strings/zh-tw.json b/src/strings/zh-tw.json index d2d5998ee3..6d18c646b9 100644 --- a/src/strings/zh-tw.json +++ b/src/strings/zh-tw.json @@ -308,7 +308,7 @@ "AddToPlayQueue": "加入播放清單", "AddToPlaylist": "加入播放列表", "Absolute": "絕對", - "AccessRestrictedTryAgainLater": "您的存取目前受限,請稍後再試。", + "AccessRestrictedTryAgainLater": "目前存取受限,請稍後再試。", "AddedOnValue": "已加入 {0}", "AdditionalNotificationServices": "請瀏覽附加元件目錄以安裝額外的通知服務。", "Albums": "專輯",