1
0
Fork 0
mirror of https://github.com/jellyfin/jellyfin-web synced 2025-03-30 19:56:21 +00:00

Merge branch 'master' into migrate-to-ES6-47

This commit is contained in:
Cameron 2020-07-31 09:52:21 +01:00 committed by GitHub
commit df162f3ca3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
31 changed files with 1794 additions and 1307 deletions

View file

@ -8,5 +8,5 @@ trim_trailing_whitespace = true
insert_final_newline = true
end_of_line = lf
[json]
[*.json]
indent_size = 2

View file

@ -36,6 +36,7 @@
- [MrTimscampi](https://github.com/MrTimscampi)
- [Sarab Singh](https://github.com/sarab97)
- [Andrei Oanca](https://github.com/OancaAndrei)
- [Cromefire_](https://github.com/cromefire)
# Emby Contributors

View file

@ -5,18 +5,18 @@
"repository": "https://github.com/jellyfin/jellyfin-web",
"license": "GPL-2.0-or-later",
"devDependencies": {
"@babel/core": "^7.10.5",
"@babel/core": "^7.11.0",
"@babel/plugin-proposal-class-properties": "^7.10.1",
"@babel/plugin-proposal-private-methods": "^7.10.1",
"@babel/plugin-transform-modules-amd": "^7.10.5",
"@babel/polyfill": "^7.8.7",
"@babel/preset-env": "^7.10.3",
"autoprefixer": "^9.8.5",
"@babel/preset-env": "^7.11.0",
"autoprefixer": "^9.8.6",
"babel-eslint": "^11.0.0-beta.2",
"babel-loader": "^8.0.6",
"browser-sync": "^2.26.12",
"copy-webpack-plugin": "^5.1.1",
"css-loader": "^4.0.0",
"css-loader": "^4.1.1",
"cssnano": "^4.1.10",
"del": "^5.1.0",
"eslint": "^6.8.0",
@ -48,7 +48,7 @@
"stylelint-config-rational-order": "^0.1.2",
"stylelint-no-browser-hacks": "^1.2.1",
"stylelint-order": "^4.1.0",
"webpack": "^4.44.0",
"webpack": "^4.44.1",
"webpack-merge": "^4.2.2",
"webpack-stream": "^5.2.1"
},
@ -62,7 +62,7 @@
"fast-text-encoding": "^1.0.3",
"flv.js": "^1.5.0",
"headroom.js": "^0.11.0",
"hls.js": "^0.14.6",
"hls.js": "^0.14.7",
"howler": "^2.2.0",
"intersection-observer": "^0.11.0",
"jellyfin-apiclient": "^1.4.1",
@ -141,6 +141,7 @@
"src/components/playback/playerSelectionMenu.js",
"src/components/playback/playersettingsmenu.js",
"src/components/playback/playmethodhelper.js",
"src/components/playback/playqueuemanager.js",
"src/components/playback/remotecontrolautoplay.js",
"src/components/playback/volumeosd.js",
"src/components/playbackSettings/playbackSettings.js",
@ -148,8 +149,10 @@
"src/components/playlisteditor/playlisteditor.js",
"src/components/playmenu.js",
"src/components/prompt/prompt.js",
"src/components/refreshdialog/refreshdialog.js",
"src/components/sanatizefilename.js",
"src/components/scrollManager.js",
"src/plugins/htmlVideoPlayer/plugin.js",
"src/components/search/searchfields.js",
"src/components/search/searchresults.js",
"src/components/settingshelper.js",
@ -176,6 +179,12 @@
"src/controllers/dashboard/general.js",
"src/controllers/dashboard/librarydisplay.js",
"src/controllers/dashboard/logs.js",
"src/controllers/music/musicalbums.js",
"src/controllers/music/musicartists.js",
"src/controllers/music/musicgenres.js",
"src/controllers/music/musicplaylists.js",
"src/controllers/music/musicrecommended.js",
"src/controllers/music/songs.js",
"src/controllers/dashboard/mediaLibrary.js",
"src/controllers/dashboard/metadataImages.js",
"src/controllers/dashboard/metadatanfo.js",
@ -195,6 +204,7 @@
"src/controllers/playback/queue/index.js",
"src/controllers/playback/video/index.js",
"src/controllers/searchpage.js",
"src/controllers/livetvtuner.js",
"src/controllers/shows/episodes.js",
"src/controllers/shows/tvgenres.js",
"src/controllers/shows/tvlatest.js",
@ -208,7 +218,6 @@
"src/controllers/user/playback/index.js",
"src/controllers/user/profile/index.js",
"src/controllers/user/subtitles/index.js",
"src/controllers/user/subtitles/index.js",
"src/controllers/wizard/finish/index.js",
"src/controllers/wizard/remote/index.js",
"src/controllers/wizard/settings/index.js",

View file

@ -646,7 +646,7 @@
.layout-desktop .detailRibbon,
.layout-tv .detailRibbon {
margin-top: -7.2em;
height: 7.18em;
height: 7.2em;
}
.layout-desktop .noBackdrop .detailRibbon,

View file

@ -231,8 +231,7 @@ define(['loading', 'globalize', 'events', 'viewManager', 'skinManager', 'backdro
max /= 8;
max *= 1000000;
max *= 0.7;
max = parseInt(max);
return max;
return parseInt(max, 10);
}
}
/* eslint-enable compat/compat */

View file

@ -104,9 +104,7 @@ import browser from 'browser';
const cardBoxCssClass = 'cardBox';
const cardScalableClass = 'cardScalable';
const html = `<button type="button" class="${className}"${dataAttributes}><div class="${cardBoxCssClass}"><div class="${cardScalableClass}"><div class="cardPadder-${shape}"></div>${cardImageContainer}</div><div class="innerCardFooter">${nameHtml}</div></div></div></button>`;
return html;
return `<button type="button" class="${className}"${dataAttributes}><div class="${cardBoxCssClass}"><div class="${cardScalableClass}"><div class="cardPadder-${shape}"></div>${cardImageContainer}</div><div class="innerCardFooter">${nameHtml}</div></div></div></button>`;
}
export function buildChapterCards(item, chapters, options) {

View file

@ -2,6 +2,7 @@ define(['events', 'datetime', 'appSettings', 'itemHelper', 'pluginManager', 'pla
'use strict';
loading = loading.default || loading;
PlayQueueManager = PlayQueueManager.default || PlayQueueManager;
function enableLocalPlaylistManagement(player) {
if (player.getPlaylist) {
@ -20,6 +21,11 @@ define(['events', 'datetime', 'appSettings', 'itemHelper', 'pluginManager', 'pla
screenfull.on('change', function () {
events.trigger(player, 'fullscreenchange');
});
} else {
// iOS Safari
document.addEventListener('webkitfullscreenchange', function () {
events.trigger(player, 'fullscreenchange');
}, false);
}
}
@ -884,9 +890,7 @@ define(['events', 'datetime', 'appSettings', 'itemHelper', 'pluginManager', 'pla
}
}
targets = targets.sort(sortPlayerTargets);
return targets;
return targets.sort(sortPlayerTargets);
});
});
};
@ -1401,6 +1405,11 @@ define(['events', 'datetime', 'appSettings', 'itemHelper', 'pluginManager', 'pla
return player.isFullscreen();
}
if (!screenfull.isEnabled) {
// iOS Safari
return document.webkitIsFullScreen;
}
return screenfull.isFullscreen;
};
@ -1412,6 +1421,16 @@ define(['events', 'datetime', 'appSettings', 'itemHelper', 'pluginManager', 'pla
if (screenfull.isEnabled) {
screenfull.toggle();
} else {
// iOS Safari
if (document.webkitIsFullScreen && document.webkitCancelFullscreen) {
document.webkitCancelFullscreen();
} else {
const elem = document.querySelector('video');
if (elem && elem.webkitEnterFullscreen) {
elem.webkitEnterFullscreen();
}
}
}
};
@ -3372,8 +3391,8 @@ define(['events', 'datetime', 'appSettings', 'itemHelper', 'pluginManager', 'pla
PlaybackManager.prototype.getSubtitleUrl = function (textStream, serverId) {
var apiClient = connectionManager.getApiClient(serverId);
var textStreamUrl = !textStream.IsExternalUrl ? apiClient.getUrl(textStream.DeliveryUrl) : textStream.DeliveryUrl;
return textStreamUrl;
return !textStream.IsExternalUrl ? apiClient.getUrl(textStream.DeliveryUrl) : textStream.DeliveryUrl;
};
PlaybackManager.prototype.stop = function (player) {

View file

@ -1,56 +1,56 @@
define([], function () {
'use strict';
/*eslint prefer-const: "error"*/
var currentId = 0;
function addUniquePlaylistItemId(item) {
let currentId = 0;
function addUniquePlaylistItemId(item) {
if (!item.PlaylistItemId) {
item.PlaylistItemId = 'playlistItem' + currentId;
currentId++;
}
}
}
function findPlaylistIndex(playlistItemId, list) {
for (var i = 0, length = list.length; i < length; i++) {
function findPlaylistIndex(playlistItemId, list) {
for (let i = 0, length = list.length; i < length; i++) {
if (list[i].PlaylistItemId === playlistItemId) {
return i;
}
}
return -1;
}
}
function PlayQueueManager() {
class PlayQueueManager {
constructor() {
this._sortedPlaylist = [];
this._playlist = [];
this._repeatMode = 'RepeatNone';
this._shuffleMode = 'Sorted';
}
PlayQueueManager.prototype.getPlaylist = function () {
getPlaylist() {
return this._playlist.slice(0);
};
}
PlayQueueManager.prototype.setPlaylist = function (items) {
setPlaylist(items) {
items = items.slice(0);
for (var i = 0, length = items.length; i < length; i++) {
for (let i = 0, length = items.length; i < length; i++) {
addUniquePlaylistItemId(items[i]);
}
this._currentPlaylistItemId = null;
this._playlist = items;
this._repeatMode = 'RepeatNone';
};
}
PlayQueueManager.prototype.queue = function (items) {
for (var i = 0, length = items.length; i < length; i++) {
queue(items) {
for (let i = 0, length = items.length; i < length; i++) {
addUniquePlaylistItemId(items[i]);
this._playlist.push(items[i]);
}
};
}
PlayQueueManager.prototype.shufflePlaylist = function () {
shufflePlaylist() {
this._sortedPlaylist = [];
for (const item of this._playlist) {
this._sortedPlaylist.push(item);
@ -65,42 +65,31 @@ define([], function () {
}
this._playlist.unshift(currentPlaylistItem);
this._shuffleMode = 'Shuffle';
};
}
PlayQueueManager.prototype.sortShuffledPlaylist = function () {
sortShuffledPlaylist() {
this._playlist = [];
for (let item of this._sortedPlaylist) {
for (const item of this._sortedPlaylist) {
this._playlist.push(item);
}
this._sortedPlaylist = [];
this._shuffleMode = 'Sorted';
};
}
PlayQueueManager.prototype.clearPlaylist = function (clearCurrentItem = false) {
clearPlaylist(clearCurrentItem = false) {
const currentPlaylistItem = this._playlist.splice(this.getCurrentPlaylistIndex(), 1)[0];
this._playlist = [];
if (!clearCurrentItem) {
this._playlist.push(currentPlaylistItem);
}
};
function arrayInsertAt(destArray, pos, arrayToInsert) {
var args = [];
args.push(pos); // where to insert
args.push(0); // nothing to remove
args = args.concat(arrayToInsert); // add on array to insert
destArray.splice.apply(destArray, args); // splice it in
}
PlayQueueManager.prototype.queueNext = function (items) {
var i;
var length;
for (i = 0, length = items.length; i < length; i++) {
queueNext(items) {
for (let i = 0, length = items.length; i < length; i++) {
addUniquePlaylistItemId(items[i]);
}
var currentIndex = this.getCurrentPlaylistIndex();
let currentIndex = this.getCurrentPlaylistIndex();
if (currentIndex === -1) {
currentIndex = this._playlist.length;
@ -109,43 +98,43 @@ define([], function () {
}
arrayInsertAt(this._playlist, currentIndex, items);
};
}
PlayQueueManager.prototype.getCurrentPlaylistIndex = function () {
getCurrentPlaylistIndex() {
return findPlaylistIndex(this.getCurrentPlaylistItemId(), this._playlist);
};
}
PlayQueueManager.prototype.getCurrentItem = function () {
var index = findPlaylistIndex(this.getCurrentPlaylistItemId(), this._playlist);
getCurrentItem() {
const index = findPlaylistIndex(this.getCurrentPlaylistItemId(), this._playlist);
return index === -1 ? null : this._playlist[index];
};
}
PlayQueueManager.prototype.getCurrentPlaylistItemId = function () {
getCurrentPlaylistItemId() {
return this._currentPlaylistItemId;
};
}
PlayQueueManager.prototype.setPlaylistState = function (playlistItemId, playlistIndex) {
setPlaylistState(playlistItemId, playlistIndex) {
this._currentPlaylistItemId = playlistItemId;
};
}
PlayQueueManager.prototype.setPlaylistIndex = function (playlistIndex) {
setPlaylistIndex(playlistIndex) {
if (playlistIndex < 0) {
this.setPlaylistState(null);
} else {
this.setPlaylistState(this._playlist[playlistIndex].PlaylistItemId);
}
};
}
PlayQueueManager.prototype.removeFromPlaylist = function (playlistItemIds) {
removeFromPlaylist(playlistItemIds) {
if (this._playlist.length <= playlistItemIds.length) {
return {
result: 'empty'
};
}
var currentPlaylistItemId = this.getCurrentPlaylistItemId();
var isCurrentIndex = playlistItemIds.indexOf(currentPlaylistItemId) !== -1;
const currentPlaylistItemId = this.getCurrentPlaylistItemId();
const isCurrentIndex = playlistItemIds.indexOf(currentPlaylistItemId) !== -1;
this._sortedPlaylist = this._sortedPlaylist.filter(function (item) {
return !playlistItemIds.includes(item.PlaylistItemId);
@ -159,17 +148,13 @@ define([], function () {
result: 'removed',
isCurrentIndex: isCurrentIndex
};
};
function moveInArray(array, from, to) {
array.splice(to, 0, array.splice(from, 1)[0]);
}
PlayQueueManager.prototype.movePlaylistItem = function (playlistItemId, newIndex) {
var playlist = this.getPlaylist();
movePlaylistItem(playlistItemId, newIndex) {
const playlist = this.getPlaylist();
var oldIndex;
for (var i = 0, length = playlist.length; i < length; i++) {
let oldIndex;
for (let i = 0, length = playlist.length; i < length; i++) {
if (playlist[i].PlaylistItemId === playlistItemId) {
oldIndex = i;
break;
@ -195,30 +180,30 @@ define([], function () {
playlistItemId: playlistItemId,
newIndex: newIndex
};
};
}
PlayQueueManager.prototype.reset = function () {
reset() {
this._sortedPlaylist = [];
this._playlist = [];
this._currentPlaylistItemId = null;
this._repeatMode = 'RepeatNone';
this._shuffleMode = 'Sorted';
};
}
PlayQueueManager.prototype.setRepeatMode = function (value) {
setRepeatMode(value) {
const repeatModes = ['RepeatOne', 'RepeatAll', 'RepeatNone'];
if (repeatModes.includes(value)) {
this._repeatMode = value;
} else {
throw new TypeError('invalid value provided for setRepeatMode');
}
};
}
PlayQueueManager.prototype.getRepeatMode = function () {
getRepeatMode() {
return this._repeatMode;
};
}
PlayQueueManager.prototype.setShuffleMode = function (value) {
setShuffleMode(value) {
switch (value) {
case 'Shuffle':
this.shufflePlaylist();
@ -229,9 +214,9 @@ define([], function () {
default:
throw new TypeError('invalid value provided to setShuffleMode');
}
};
}
PlayQueueManager.prototype.toggleShuffleMode = function () {
toggleShuffleMode() {
switch (this._shuffleMode) {
case 'Shuffle':
this.setShuffleMode('Sorted');
@ -242,16 +227,16 @@ define([], function () {
default:
throw new TypeError('current value for shufflequeue is invalid');
}
};
}
PlayQueueManager.prototype.getShuffleMode = function () {
getShuffleMode() {
return this._shuffleMode;
};
}
PlayQueueManager.prototype.getNextItemInfo = function () {
var newIndex;
var playlist = this.getPlaylist();
var playlistLength = playlist.length;
getNextItemInfo() {
let newIndex;
const playlist = this.getPlaylist();
const playlistLength = playlist.length;
switch (this.getRepeatMode()) {
case 'RepeatOne':
@ -272,7 +257,7 @@ define([], function () {
return null;
}
var item = playlist[newIndex];
const item = playlist[newIndex];
if (!item) {
return null;
@ -282,7 +267,19 @@ define([], function () {
item: item,
index: newIndex
};
};
}
}
return PlayQueueManager;
});
function arrayInsertAt(destArray, pos, arrayToInsert) {
let args = [];
args.push(pos); // where to insert
args.push(0); // nothing to remove
args = args.concat(arrayToInsert); // add on array to insert
destArray.splice.apply(destArray, args); // splice it in
}
function moveInArray(array, from, to) {
array.splice(to, 0, array.splice(from, 1)[0]);
}
export default PlayQueueManager;

View file

@ -1,10 +1,21 @@
define(['dom', 'shell', 'dialogHelper', 'loading', 'layoutManager', 'connectionManager', 'appRouter', 'globalize', 'emby-input', 'emby-checkbox', 'paper-icon-button-light', 'emby-select', 'material-icons', 'css!./../formdialog', 'emby-button'], function (dom, shell, dialogHelper, loading, layoutManager, connectionManager, appRouter, globalize) {
'use strict';
import dom from 'dom';
import dialogHelper from 'dialogHelper';
import loading from 'loading';
import layoutManager from 'layoutManager';
import connectionManager from 'connectionManager';
import globalize from 'globalize';
import 'emby-input';
import 'emby-checkbox';
import 'paper-icon-button-light';
import 'emby-select';
import 'material-icons';
import 'css!./../formdialog';
import 'emby-button';
loading = loading.default || loading;
/*eslint prefer-const: "error"*/
function getEditorHtml() {
var html = '';
function getEditorHtml() {
let html = '';
html += '<div class="formDialogContent smoothScrollY" style="padding-top:2em;">';
html += '<div class="dialogContentInner dialog-content-centered">';
@ -39,28 +50,28 @@ define(['dom', 'shell', 'dialogHelper', 'loading', 'layoutManager', 'connectionM
html += '</div>';
return html;
}
}
function centerFocus(elem, horiz, on) {
require(['scrollHelper'], function (scrollHelper) {
var fn = on ? 'on' : 'off';
function centerFocus(elem, horiz, on) {
import('scrollHelper').then(({default: scrollHelper}) => {
const fn = on ? 'on' : 'off';
scrollHelper.centerFocus[fn](elem, horiz);
});
}
}
function onSubmit(e) {
function onSubmit(e) {
loading.show();
var instance = this;
var dlg = dom.parentWithClass(e.target, 'dialog');
var options = instance.options;
const instance = this;
const dlg = dom.parentWithClass(e.target, 'dialog');
const options = instance.options;
var apiClient = connectionManager.getApiClient(options.serverId);
const apiClient = connectionManager.getApiClient(options.serverId);
var replaceAllMetadata = dlg.querySelector('#selectMetadataRefreshMode').value === 'all';
const replaceAllMetadata = dlg.querySelector('#selectMetadataRefreshMode').value === 'all';
var mode = dlg.querySelector('#selectMetadataRefreshMode').value === 'scan' ? 'Default' : 'FullRefresh';
var replaceAllImages = mode === 'FullRefresh' && dlg.querySelector('.chkReplaceImages').checked;
const mode = dlg.querySelector('#selectMetadataRefreshMode').value === 'scan' ? 'Default' : 'FullRefresh';
const replaceAllImages = mode === 'FullRefresh' && dlg.querySelector('.chkReplaceImages').checked;
options.itemIds.forEach(function (itemId) {
apiClient.refreshItem(itemId, {
@ -75,7 +86,7 @@ define(['dom', 'shell', 'dialogHelper', 'loading', 'layoutManager', 'connectionM
dialogHelper.close(dlg);
require(['toast'], function (toast) {
import('toast').then(({default: toast}) => {
toast(globalize.translate('RefreshQueued'));
});
@ -83,14 +94,15 @@ define(['dom', 'shell', 'dialogHelper', 'loading', 'layoutManager', 'connectionM
e.preventDefault();
return false;
}
}
function RefreshDialog(options) {
class RefreshDialog {
constructor(options) {
this.options = options;
}
RefreshDialog.prototype.show = function () {
var dialogOptions = {
show() {
const dialogOptions = {
removeOnClose: true,
scrollY: false
};
@ -101,12 +113,12 @@ define(['dom', 'shell', 'dialogHelper', 'loading', 'layoutManager', 'connectionM
dialogOptions.size = 'small';
}
var dlg = dialogHelper.createDialog(dialogOptions);
const dlg = dialogHelper.createDialog(dialogOptions);
dlg.classList.add('formDialog');
var html = '';
var title = globalize.translate('RefreshMetadata');
let html = '';
const title = globalize.translate('RefreshMetadata');
html += '<div class="formDialogHeader">';
html += '<button is="paper-icon-button-light" class="btnCancel autoSize" tabindex="-1"><span class="material-icons arrow_back"></span></button>';
@ -152,7 +164,7 @@ define(['dom', 'shell', 'dialogHelper', 'loading', 'layoutManager', 'connectionM
dlg.addEventListener('close', resolve);
dialogHelper.open(dlg);
});
};
}
}
return RefreshDialog;
});
export default RefreshDialog;

View file

@ -40,7 +40,7 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti
}
function getContextMenuOptions(item, user, button) {
var options = {
return {
item: item,
open: false,
play: false,
@ -55,8 +55,6 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti
user: user,
share: true
};
return options;
}
function getProgramScheduleHtml(items) {
@ -359,9 +357,8 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti
});
html.push('<a style="color:inherit;" class="button-link" is="emby-linkbutton" href="' + href + '">' + artist.Name + '</a>');
}
html = html.join(' / ');
return html;
return html.join(' / ');
}
/**
@ -525,6 +522,14 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti
});
imageLoader.lazyImage(itemBackdropElement, imgUrl);
hasbackdrop = true;
} else if (item.ImageTags && item.ImageTags.Primary) {
imgUrl = apiClient.getScaledImageUrl(item.Id, {
type: 'Primary',
maxWidth: dom.getScreenWidth(),
tag: item.ImageTags.Primary
});
imageLoader.lazyImage(itemBackdropElement, imgUrl);
hasbackdrop = true;
} else {
itemBackdropElement.style.backgroundImage = '';
}
@ -1731,7 +1736,7 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti
}
function getVideosHtml(items) {
var html = cardBuilder.getCardsHtml({
return cardBuilder.getCardsHtml({
items: items,
shape: 'autooverflow',
showTitle: true,
@ -1740,8 +1745,6 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti
centerText: true,
showRuntime: true
});
return html;
}
function renderSpecials(page, item, user) {

View file

@ -1,16 +1,19 @@
define(['globalize', 'loading', 'libraryMenu', 'dom', 'emby-input', 'emby-button', 'emby-checkbox', 'emby-select'], function (globalize, loading, libraryMenu, dom) {
'use strict';
import globalize from 'globalize';
import loading from 'loading';
import dom from 'dom';
import 'emby-input';
import 'emby-button';
import 'emby-checkbox';
import 'emby-select';
loading = loading.default || loading;
function isM3uVariant(type) {
function isM3uVariant(type) {
return ['nextpvr'].indexOf(type || '') !== -1;
}
}
function fillTypes(view, currentId) {
function fillTypes(view, currentId) {
return ApiClient.getJSON(ApiClient.getUrl('LiveTv/TunerHosts/Types')).then(function (types) {
var selectType = view.querySelector('.selectType');
var html = '';
const selectType = view.querySelector('.selectType');
let html = '';
html += types.map(function (tuner) {
return '<option value="' + tuner.Id + '">' + tuner.Name + '</option>';
}).join('');
@ -22,26 +25,26 @@ define(['globalize', 'loading', 'libraryMenu', 'dom', 'emby-input', 'emby-button
selectType.value = '';
onTypeChange.call(selectType);
});
}
}
function reload(view, providerId) {
function reload(view, providerId) {
view.querySelector('.txtDevicePath').value = '';
view.querySelector('.chkFavorite').checked = false;
view.querySelector('.txtDevicePath').value = '';
if (providerId) {
ApiClient.getNamedConfiguration('livetv').then(function (config) {
var info = config.TunerHosts.filter(function (i) {
const info = config.TunerHosts.filter(function (i) {
return i.Id === providerId;
})[0];
fillTunerHostInfo(view, info);
});
}
}
}
function fillTunerHostInfo(view, info) {
var selectType = view.querySelector('.selectType');
var type = info.Type || '';
function fillTunerHostInfo(view, info) {
const selectType = view.querySelector('.selectType');
let type = info.Type || '';
if (info.Source && isM3uVariant(info.Source)) {
type = info.Source;
@ -57,11 +60,11 @@ define(['globalize', 'loading', 'libraryMenu', 'dom', 'emby-input', 'emby-button
view.querySelector('.chkTranscode').checked = info.AllowHWTranscoding;
view.querySelector('.chkStreamLoop').checked = info.EnableStreamLooping;
view.querySelector('.txtTunerCount').value = info.TunerCount || '0';
}
}
function submitForm(page) {
function submitForm(page) {
loading.show();
var info = {
const info = {
Type: page.querySelector('.selectType').value,
Url: page.querySelector('.txtDevicePath').value || null,
UserAgent: page.querySelector('.txtUserAgent').value || null,
@ -78,10 +81,8 @@ define(['globalize', 'loading', 'libraryMenu', 'dom', 'emby-input', 'emby-button
info.Type = 'm3u';
}
var id = getParameterByName('id');
if (id) {
info.Id = id;
if (getParameterByName('id')) {
info.Id = getParameterByName('id');
}
ApiClient.ajax({
@ -98,36 +99,30 @@ define(['globalize', 'loading', 'libraryMenu', 'dom', 'emby-input', 'emby-button
message: globalize.translate('ErrorSavingTvProvider')
});
});
}
}
function getRequirePromise(deps) {
return new Promise(function (resolve, reject) {
require(deps, resolve);
});
}
function getDetectedDevice() {
return getRequirePromise(['tunerPicker']).then(function (tunerPicker) {
function getDetectedDevice() {
return import('tunerPicker').then(({default: tunerPicker}) => {
return new tunerPicker().show({
serverId: ApiClient.serverId()
});
});
}
}
function onTypeChange() {
var value = this.value;
var view = dom.parentWithClass(this, 'page');
var mayIncludeUnsupportedDrmChannels = 'hdhomerun' === value;
var supportsTranscoding = 'hdhomerun' === value;
var supportsFavorites = 'hdhomerun' === value;
var supportsTunerIpAddress = 'hdhomerun' === value;
var supportsTunerFileOrUrl = 'm3u' === value;
var supportsStreamLooping = 'm3u' === value;
var supportsTunerCount = 'm3u' === value;
var supportsUserAgent = 'm3u' === value;
var suppportsSubmit = 'other' !== value;
var supportsSelectablePath = supportsTunerFileOrUrl;
var txtDevicePath = view.querySelector('.txtDevicePath');
function onTypeChange() {
const value = this.value;
const view = dom.parentWithClass(this, 'page');
const mayIncludeUnsupportedDrmChannels = 'hdhomerun' === value;
const supportsTranscoding = 'hdhomerun' === value;
const supportsFavorites = 'hdhomerun' === value;
const supportsTunerIpAddress = 'hdhomerun' === value;
const supportsTunerFileOrUrl = 'm3u' === value;
const supportsStreamLooping = 'm3u' === value;
const supportsTunerCount = 'm3u' === value;
const supportsUserAgent = 'm3u' === value;
const suppportsSubmit = 'other' !== value;
const supportsSelectablePath = supportsTunerFileOrUrl;
const txtDevicePath = view.querySelector('.txtDevicePath');
if (supportsTunerIpAddress) {
txtDevicePath.label(globalize.translate('LabelTunerIpAddress'));
@ -190,15 +185,15 @@ define(['globalize', 'loading', 'libraryMenu', 'dom', 'emby-input', 'emby-button
} else {
view.querySelector('.button-submit').classList.add('hide');
}
}
}
return function (view, params) {
export default function (view, params) {
if (!params.id) {
view.querySelector('.btnDetect').classList.remove('hide');
}
view.addEventListener('viewshow', function () {
var currentId = params.id;
const currentId = params.id;
fillTypes(view, currentId).then(function () {
reload(view, currentId);
});
@ -216,8 +211,8 @@ define(['globalize', 'loading', 'libraryMenu', 'dom', 'emby-input', 'emby-button
});
});
view.querySelector('.btnSelectPath').addEventListener('click', function () {
require(['directorybrowser'], function (directoryBrowser) {
var picker = new directoryBrowser.default();
import('directorybrowser').then(({default: directorybrowser}) => {
const picker = new directorybrowser();
picker.show({
includeFiles: true,
callback: function (path) {
@ -230,5 +225,4 @@ define(['globalize', 'loading', 'libraryMenu', 'dom', 'emby-input', 'emby-button
});
});
});
};
});
}

View file

@ -1,10 +1,18 @@
define(['layoutManager', 'playbackManager', 'loading', 'events', 'libraryBrowser', 'imageLoader', 'alphaPicker', 'listView', 'cardBuilder', 'userSettings', 'globalize', 'emby-itemscontainer'], function (layoutManager, playbackManager, loading, events, libraryBrowser, imageLoader, AlphaPicker, listView, cardBuilder, userSettings, globalize) {
'use strict';
import playbackManager from 'playbackManager';
import loading from 'loading';
import events from 'events';
import libraryBrowser from 'libraryBrowser';
import imageLoader from 'imageLoader';
import AlphaPicker from 'alphaPicker';
import listView from 'listView';
import cardBuilder from 'cardBuilder';
import * as userSettings from 'userSettings';
import globalize from 'globalize';
import 'emby-itemscontainer';
loading = loading.default || loading;
libraryBrowser = libraryBrowser.default || libraryBrowser;
/* eslint-disable indent */
return function (view, params, tabContent) {
export default function (view, params, tabContent) {
function playAll() {
ApiClient.getItem(ApiClient.getCurrentUserId(), params.topParentId).then(function (item) {
playbackManager.play({
@ -21,7 +29,7 @@ define(['layoutManager', 'playbackManager', 'loading', 'events', 'libraryBrowser
}
function getPageData() {
var key = getSavedQueryKey();
const key = getSavedQueryKey();
if (!pageData) {
pageData = {
@ -62,8 +70,8 @@ define(['layoutManager', 'playbackManager', 'loading', 'events', 'libraryBrowser
}
function onViewStyleChange() {
var viewStyle = self.getCurrentViewStyle();
var itemsContainer = tabContent.querySelector('.itemsContainer');
const viewStyle = self.getCurrentViewStyle();
const itemsContainer = tabContent.querySelector('.itemsContainer');
if ('List' == viewStyle) {
itemsContainer.classList.add('vertical-list');
@ -79,7 +87,7 @@ define(['layoutManager', 'playbackManager', 'loading', 'events', 'libraryBrowser
function reloadItems(page) {
loading.show();
isLoading = true;
var query = getQuery();
const query = getQuery();
ApiClient.getItems(ApiClient.getCurrentUserId(), query).then(function (result) {
function onNextPageClick() {
if (isLoading) {
@ -105,8 +113,8 @@ define(['layoutManager', 'playbackManager', 'loading', 'events', 'libraryBrowser
window.scrollTo(0, 0);
updateFilterControls(page);
var html;
var pagingHtml = libraryBrowser.getQueryPagingHtml({
let html;
const pagingHtml = libraryBrowser.getQueryPagingHtml({
startIndex: query.StartIndex,
limit: query.Limit,
totalRecordCount: result.TotalRecordCount,
@ -116,7 +124,7 @@ define(['layoutManager', 'playbackManager', 'loading', 'events', 'libraryBrowser
sortButton: false,
filterButton: false
});
var viewStyle = self.getCurrentViewStyle();
const viewStyle = self.getCurrentViewStyle();
if (viewStyle == 'List') {
html = listView.getListViewHtml({
items: result.Items,
@ -147,50 +155,48 @@ define(['layoutManager', 'playbackManager', 'loading', 'events', 'libraryBrowser
overlayPlayButton: true
});
}
var i;
var length;
var elems = tabContent.querySelectorAll('.paging');
let elems = tabContent.querySelectorAll('.paging');
for (i = 0, length = elems.length; i < length; i++) {
for (let i = 0, length = elems.length; i < length; i++) {
elems[i].innerHTML = pagingHtml;
}
elems = tabContent.querySelectorAll('.btnNextPage');
for (i = 0, length = elems.length; i < length; i++) {
for (let i = 0, length = elems.length; i < length; i++) {
elems[i].addEventListener('click', onNextPageClick);
}
elems = tabContent.querySelectorAll('.btnPreviousPage');
for (i = 0, length = elems.length; i < length; i++) {
for (let i = 0, length = elems.length; i < length; i++) {
elems[i].addEventListener('click', onPreviousPageClick);
}
var itemsContainer = tabContent.querySelector('.itemsContainer');
const itemsContainer = tabContent.querySelector('.itemsContainer');
itemsContainer.innerHTML = html;
imageLoader.lazyChildren(itemsContainer);
libraryBrowser.saveQueryValues(getSavedQueryKey(), query);
loading.hide();
isLoading = false;
require(['autoFocuser'], function (autoFocuser) {
import('autoFocuser').then(({default: autoFocuser}) => {
autoFocuser.autoFocus(tabContent);
});
});
}
function updateFilterControls(tabContent) {
var query = getQuery();
const query = getQuery();
self.alphaPicker.value(query.NameStartsWithOrGreater);
}
var savedQueryKey;
var pageData;
var self = this;
var isLoading = false;
let savedQueryKey;
let pageData;
const self = this;
let isLoading = false;
self.showFilterMenu = function () {
require(['components/filterdialog/filterdialog'], function ({default: filterDialogFactory}) {
var filterDialog = new filterDialogFactory({
import('components/filterdialog/filterdialog').then(({default: filterDialogFactory}) => {
const filterDialog = new filterDialogFactory({
query: getQuery(),
mode: 'albums',
serverId: ApiClient.serverId()
@ -208,17 +214,17 @@ define(['layoutManager', 'playbackManager', 'loading', 'events', 'libraryBrowser
};
function initPage(tabContent) {
var alphaPickerElement = tabContent.querySelector('.alphaPicker');
var itemsContainer = tabContent.querySelector('.itemsContainer');
const alphaPickerElement = tabContent.querySelector('.alphaPicker');
const itemsContainer = tabContent.querySelector('.itemsContainer');
alphaPickerElement.addEventListener('alphavaluechanged', function (e) {
var newValue = e.detail.value;
var query = getQuery();
const newValue = e.detail.value;
const query = getQuery();
query.NameStartsWithOrGreater = newValue;
query.StartIndex = 0;
reloadItems(tabContent);
});
self.alphaPicker = new AlphaPicker.default({
self.alphaPicker = new AlphaPicker({
element: alphaPickerElement,
valueChangeEvent: 'click'
});
@ -262,12 +268,12 @@ define(['layoutManager', 'playbackManager', 'loading', 'events', 'libraryBrowser
button: e.target
});
});
var btnSelectView = tabContent.querySelector('.btnSelectView');
const btnSelectView = tabContent.querySelector('.btnSelectView');
btnSelectView.addEventListener('click', function (e) {
libraryBrowser.showLayoutMenu(e.target, self.getCurrentViewStyle(), 'List,Poster,PosterCard'.split(','));
});
btnSelectView.addEventListener('layoutchange', function (e) {
var viewStyle = e.detail.viewStyle;
const viewStyle = e.detail.viewStyle;
getPageData().view = viewStyle;
libraryBrowser.saveViewSetting(getSavedQueryKey(), viewStyle);
getQuery().StartIndex = 0;
@ -287,5 +293,6 @@ define(['layoutManager', 'playbackManager', 'loading', 'events', 'libraryBrowser
};
self.destroy = function () {};
};
});
}
/* eslint-enable indent */

View file

@ -1,16 +1,22 @@
define(['layoutManager', 'loading', 'events', 'libraryBrowser', 'imageLoader', 'alphaPicker', 'listView', 'cardBuilder', 'apphost', 'userSettings', 'emby-itemscontainer'], function (layoutManager, loading, events, libraryBrowser, imageLoader, AlphaPicker, listView, cardBuilder, appHost, userSettings) {
'use strict';
import loading from 'loading';
import events from 'events';
import libraryBrowser from 'libraryBrowser';
import imageLoader from 'imageLoader';
import AlphaPicker from 'alphaPicker';
import listView from 'listView';
import cardBuilder from 'cardBuilder';
import * as userSettings from 'userSettings';
import 'emby-itemscontainer';
loading = loading.default || loading;
libraryBrowser = libraryBrowser.default || libraryBrowser;
/* eslint-disable indent */
return function (view, params, tabContent) {
export default function (view, params, tabContent) {
function getPageData(context) {
var key = getSavedQueryKey(context);
var pageData = data[key];
const key = getSavedQueryKey(context);
let pageData = data[key];
if (!pageData) {
var queryValues = {
const queryValues = {
SortBy: 'SortName',
SortOrder: 'Ascending',
Recursive: true,
@ -48,8 +54,8 @@ define(['layoutManager', 'loading', 'events', 'libraryBrowser', 'imageLoader', '
}
function onViewStyleChange() {
var viewStyle = self.getCurrentViewStyle();
var itemsContainer = tabContent.querySelector('.itemsContainer');
const viewStyle = self.getCurrentViewStyle();
const itemsContainer = tabContent.querySelector('.itemsContainer');
if ('List' == viewStyle) {
itemsContainer.classList.add('vertical-list');
@ -65,8 +71,8 @@ define(['layoutManager', 'loading', 'events', 'libraryBrowser', 'imageLoader', '
function reloadItems(page) {
loading.show();
isLoading = true;
var query = getQuery(page);
var promise = self.mode == 'albumartists' ?
const query = getQuery(page);
const promise = self.mode == 'albumartists' ?
ApiClient.getAlbumArtists(ApiClient.getCurrentUserId(), query) :
ApiClient.getArtists(ApiClient.getCurrentUserId(), query);
promise.then(function (result) {
@ -94,8 +100,8 @@ define(['layoutManager', 'loading', 'events', 'libraryBrowser', 'imageLoader', '
window.scrollTo(0, 0);
updateFilterControls(page);
var html;
var pagingHtml = libraryBrowser.getQueryPagingHtml({
let html;
const pagingHtml = libraryBrowser.getQueryPagingHtml({
startIndex: query.StartIndex,
limit: query.Limit,
totalRecordCount: result.TotalRecordCount,
@ -105,7 +111,7 @@ define(['layoutManager', 'loading', 'events', 'libraryBrowser', 'imageLoader', '
sortButton: false,
filterButton: false
});
var viewStyle = self.getCurrentViewStyle();
const viewStyle = self.getCurrentViewStyle();
if (viewStyle == 'List') {
html = listView.getListViewHtml({
items: result.Items,
@ -132,49 +138,47 @@ define(['layoutManager', 'loading', 'events', 'libraryBrowser', 'imageLoader', '
overlayPlayButton: true
});
}
var i;
var length;
var elems = tabContent.querySelectorAll('.paging');
let elems = tabContent.querySelectorAll('.paging');
for (i = 0, length = elems.length; i < length; i++) {
for (let i = 0, length = elems.length; i < length; i++) {
elems[i].innerHTML = pagingHtml;
}
elems = tabContent.querySelectorAll('.btnNextPage');
for (i = 0, length = elems.length; i < length; i++) {
for (let i = 0, length = elems.length; i < length; i++) {
elems[i].addEventListener('click', onNextPageClick);
}
elems = tabContent.querySelectorAll('.btnPreviousPage');
for (i = 0, length = elems.length; i < length; i++) {
for (let i = 0, length = elems.length; i < length; i++) {
elems[i].addEventListener('click', onPreviousPageClick);
}
var itemsContainer = tabContent.querySelector('.itemsContainer');
const itemsContainer = tabContent.querySelector('.itemsContainer');
itemsContainer.innerHTML = html;
imageLoader.lazyChildren(itemsContainer);
libraryBrowser.saveQueryValues(getSavedQueryKey(page), query);
loading.hide();
isLoading = false;
require(['autoFocuser'], function (autoFocuser) {
import('autoFocuser').then(({default: autoFocuser}) => {
autoFocuser.autoFocus(tabContent);
});
});
}
function updateFilterControls(tabContent) {
var query = getQuery(tabContent);
const query = getQuery(tabContent);
self.alphaPicker.value(query.NameStartsWithOrGreater);
}
var self = this;
var data = {};
var isLoading = false;
const self = this;
const data = {};
let isLoading = false;
self.showFilterMenu = function () {
require(['components/filterdialog/filterdialog'], function ({default: filterDialogFactory}) {
var filterDialog = new filterDialogFactory({
import('components/filterdialog/filterdialog').then(({default: filterDialogFactory}) => {
const filterDialog = new filterDialogFactory({
query: getQuery(tabContent),
mode: self.mode,
serverId: ApiClient.serverId()
@ -192,17 +196,17 @@ define(['layoutManager', 'loading', 'events', 'libraryBrowser', 'imageLoader', '
};
function initPage(tabContent) {
var alphaPickerElement = tabContent.querySelector('.alphaPicker');
var itemsContainer = tabContent.querySelector('.itemsContainer');
const alphaPickerElement = tabContent.querySelector('.alphaPicker');
const itemsContainer = tabContent.querySelector('.itemsContainer');
alphaPickerElement.addEventListener('alphavaluechanged', function (e) {
var newValue = e.detail.value;
var query = getQuery(tabContent);
const newValue = e.detail.value;
const query = getQuery(tabContent);
query.NameStartsWithOrGreater = newValue;
query.StartIndex = 0;
reloadItems(tabContent);
});
self.alphaPicker = new AlphaPicker.default({
self.alphaPicker = new AlphaPicker({
element: alphaPickerElement,
valueChangeEvent: 'click'
});
@ -214,12 +218,12 @@ define(['layoutManager', 'loading', 'events', 'libraryBrowser', 'imageLoader', '
tabContent.querySelector('.btnFilter').addEventListener('click', function () {
self.showFilterMenu();
});
var btnSelectView = tabContent.querySelector('.btnSelectView');
const btnSelectView = tabContent.querySelector('.btnSelectView');
btnSelectView.addEventListener('click', function (e) {
libraryBrowser.showLayoutMenu(e.target, self.getCurrentViewStyle(), 'List,Poster,PosterCard'.split(','));
});
btnSelectView.addEventListener('layoutchange', function (e) {
var viewStyle = e.detail.viewStyle;
const viewStyle = e.detail.viewStyle;
getPageData(tabContent).view = viewStyle;
libraryBrowser.saveViewSetting(getSavedQueryKey(tabContent), viewStyle);
getQuery(tabContent).StartIndex = 0;
@ -237,5 +241,6 @@ define(['layoutManager', 'loading', 'events', 'libraryBrowser', 'imageLoader', '
};
self.destroy = function () {};
};
});
}
/* eslint-enable indent */

View file

@ -1,13 +1,14 @@
define(['libraryBrowser', 'cardBuilder', 'apphost', 'imageLoader', 'loading'], function (libraryBrowser, cardBuilder, appHost, imageLoader, loading) {
'use strict';
import libraryBrowser from 'libraryBrowser';
import cardBuilder from 'cardBuilder';
import imageLoader from 'imageLoader';
import loading from 'loading';
loading = loading.default || loading;
libraryBrowser = libraryBrowser.default || libraryBrowser;
/* eslint-disable indent */
return function (view, params, tabContent) {
export default function (view, params, tabContent) {
function getPageData() {
var key = getSavedQueryKey();
var pageData = data[key];
const key = getSavedQueryKey();
let pageData = data[key];
if (!pageData) {
pageData = data[key] = {
@ -37,15 +38,15 @@ define(['libraryBrowser', 'cardBuilder', 'apphost', 'imageLoader', 'loading'], f
function getPromise() {
loading.show();
var query = getQuery();
const query = getQuery();
return ApiClient.getGenres(ApiClient.getCurrentUserId(), query);
}
function reloadItems(context, promise) {
var query = getQuery();
const query = getQuery();
promise.then(function (result) {
var html = '';
var viewStyle = self.getCurrentViewStyle();
let html = '';
const viewStyle = self.getCurrentViewStyle();
if (viewStyle == 'Thumb') {
html = cardBuilder.getCardsHtml({
@ -85,13 +86,13 @@ define(['libraryBrowser', 'cardBuilder', 'apphost', 'imageLoader', 'loading'], f
});
}
var elem = context.querySelector('#items');
const elem = context.querySelector('#items');
elem.innerHTML = html;
imageLoader.lazyChildren(elem);
libraryBrowser.saveQueryValues(getSavedQueryKey(), query);
loading.hide();
require(['autoFocuser'], function (autoFocuser) {
import('autoFocuser').then(({default: autoFocuser}) => {
autoFocuser.autoFocus(context);
});
});
@ -102,8 +103,8 @@ define(['libraryBrowser', 'cardBuilder', 'apphost', 'imageLoader', 'loading'], f
self.renderTab();
}
var self = this;
var data = {};
const self = this;
const data = {};
self.getViewStyles = function () {
return 'Poster,PosterCard,Thumb,ThumbCard'.split(',');
@ -120,7 +121,7 @@ define(['libraryBrowser', 'cardBuilder', 'apphost', 'imageLoader', 'loading'], f
};
self.enableViewSelection = true;
var promise;
let promise;
self.preRender = function () {
promise = getPromise();
@ -129,5 +130,6 @@ define(['libraryBrowser', 'cardBuilder', 'apphost', 'imageLoader', 'loading'], f
self.renderTab = function () {
reloadItems(tabContent, promise);
};
};
});
}
/* eslint-enable indent */

View file

@ -1,13 +1,14 @@
define(['libraryBrowser', 'cardBuilder', 'apphost', 'imageLoader', 'loading'], function (libraryBrowser, cardBuilder, appHost, imageLoader, loading) {
'use strict';
import libraryBrowser from 'libraryBrowser';
import cardBuilder from 'cardBuilder';
import imageLoader from 'imageLoader';
import loading from 'loading';
loading = loading.default || loading;
libraryBrowser = libraryBrowser.default || libraryBrowser;
/* eslint-disable indent */
return function (view, params, tabContent) {
export default function (view, params, tabContent) {
function getPageData() {
var key = getSavedQueryKey();
var pageData = data[key];
const key = getSavedQueryKey();
let pageData = data[key];
if (!pageData) {
pageData = data[key] = {
@ -38,14 +39,14 @@ define(['libraryBrowser', 'cardBuilder', 'apphost', 'imageLoader', 'loading'], f
function getPromise() {
loading.show();
var query = getQuery();
const query = getQuery();
return ApiClient.getItems(ApiClient.getCurrentUserId(), query);
}
function reloadItems(context, promise) {
var query = getQuery();
const query = getQuery();
promise.then(function (result) {
var html = '';
let html = '';
html = cardBuilder.getCardsHtml({
items: result.Items,
shape: 'square',
@ -56,26 +57,26 @@ define(['libraryBrowser', 'cardBuilder', 'apphost', 'imageLoader', 'loading'], f
allowBottomPadding: true,
cardLayout: false
});
var elem = context.querySelector('#items');
const elem = context.querySelector('#items');
elem.innerHTML = html;
imageLoader.lazyChildren(elem);
libraryBrowser.saveQueryValues(getSavedQueryKey(), query);
loading.hide();
require(['autoFocuser'], function (autoFocuser) {
import('autoFocuser').then(({default: autoFocuser}) => {
autoFocuser.autoFocus(context);
});
});
}
var self = this;
var data = {};
const self = this;
const data = {};
self.getCurrentViewStyle = function () {
return getPageData().view;
};
var promise;
let promise;
self.preRender = function () {
promise = getPromise();
@ -84,5 +85,6 @@ define(['libraryBrowser', 'cardBuilder', 'apphost', 'imageLoader', 'loading'], f
self.renderTab = function () {
reloadItems(tabContent, promise);
};
};
});
}
/* eslint-enable indent */

View file

@ -1,10 +1,26 @@
define(['browser', 'layoutManager', 'userSettings', 'inputManager', 'loading', 'cardBuilder', 'dom', 'apphost', 'imageLoader', 'libraryMenu', 'playbackManager', 'mainTabsManager', 'globalize', 'scrollStyles', 'emby-itemscontainer', 'emby-tabs', 'emby-button', 'flexStyles'], function (browser, layoutManager, userSettings, inputManager, loading, cardBuilder, dom, appHost, imageLoader, libraryMenu, playbackManager, mainTabsManager, globalize) {
'use strict';
import browser from 'browser';
import layoutManager from 'layoutManager';
import * as userSettings from 'userSettings';
import inputManager from 'inputManager';
import loading from 'loading';
import cardBuilder from 'cardBuilder';
import dom from 'dom';
import imageLoader from 'imageLoader';
import libraryMenu from 'libraryMenu';
import * as mainTabsManager from 'mainTabsManager';
import globalize from 'globalize';
import 'scrollStyles';
import 'emby-itemscontainer';
import 'emby-tabs';
import 'emby-button';
import 'flexStyles';
/* eslint-disable indent */
loading = loading.default || loading;
function itemsPerRow() {
var screenWidth = dom.getWindowSize().innerWidth;
const screenWidth = dom.getWindowSize().innerWidth;
if (screenWidth >= 1920) {
return 9;
@ -31,8 +47,8 @@ define(['browser', 'layoutManager', 'userSettings', 'inputManager', 'loading', '
function loadLatest(page, parentId) {
loading.show();
var userId = ApiClient.getCurrentUserId();
var options = {
const userId = ApiClient.getCurrentUserId();
const options = {
IncludeItemTypes: 'Audio',
Limit: enableScrollX() ? 3 * itemsPerRow() : 2 * itemsPerRow(),
Fields: 'PrimaryImageAspectRatio,BasicSyncInfo',
@ -43,7 +59,6 @@ define(['browser', 'layoutManager', 'userSettings', 'inputManager', 'loading', '
};
ApiClient.getJSON(ApiClient.getUrl('Users/' + userId + '/Items/Latest', options)).then(function (items) {
var elem = page.querySelector('#recentlyAddedSongs');
elem.innerHTML = cardBuilder.getCardsHtml({
items: items,
showUnplayedIndicator: false,
@ -61,14 +76,14 @@ define(['browser', 'layoutManager', 'userSettings', 'inputManager', 'loading', '
imageLoader.lazyChildren(elem);
loading.hide();
require(['autoFocuser'], function (autoFocuser) {
import('autoFocuser').then(({default: autoFocuser}) => {
autoFocuser.autoFocus(page);
});
});
}
function loadRecentlyPlayed(page, parentId) {
var options = {
const options = {
SortBy: 'DatePlayed',
SortOrder: 'Descending',
IncludeItemTypes: 'Audio',
@ -82,7 +97,7 @@ define(['browser', 'layoutManager', 'userSettings', 'inputManager', 'loading', '
EnableTotalRecordCount: false
};
ApiClient.getItems(ApiClient.getCurrentUserId(), options).then(function (result) {
var elem = page.querySelector('#recentlyPlayed');
const elem = page.querySelector('#recentlyPlayed');
if (result.Items.length) {
elem.classList.remove('hide');
@ -91,6 +106,7 @@ define(['browser', 'layoutManager', 'userSettings', 'inputManager', 'loading', '
}
var itemsContainer = elem.querySelector('.itemsContainer');
itemsContainer.innerHTML = cardBuilder.getCardsHtml({
items: result.Items,
showUnplayedIndicator: false,
@ -110,7 +126,7 @@ define(['browser', 'layoutManager', 'userSettings', 'inputManager', 'loading', '
}
function loadFrequentlyPlayed(page, parentId) {
var options = {
const options = {
SortBy: 'PlayCount',
SortOrder: 'Descending',
IncludeItemTypes: 'Audio',
@ -124,7 +140,7 @@ define(['browser', 'layoutManager', 'userSettings', 'inputManager', 'loading', '
EnableTotalRecordCount: false
};
ApiClient.getItems(ApiClient.getCurrentUserId(), options).then(function (result) {
var elem = page.querySelector('#topPlayed');
const elem = page.querySelector('#topPlayed');
if (result.Items.length) {
elem.classList.remove('hide');
@ -157,7 +173,7 @@ define(['browser', 'layoutManager', 'userSettings', 'inputManager', 'loading', '
loadRecentlyPlayed(tabContent, parentId);
loadFrequentlyPlayed(tabContent, parentId);
require(['components/favoriteitems'], function (favoriteItems) {
import('components/favoriteitems').then(({default: favoriteItems}) => {
favoriteItems.render(tabContent, ApiClient.getCurrentUserId(), parentId, ['favoriteArtists', 'favoriteAlbums', 'favoriteSongs']);
});
}
@ -208,10 +224,10 @@ define(['browser', 'layoutManager', 'userSettings', 'inputManager', 'loading', '
}
}
return function (view, params) {
export default function (view, params) {
function reload() {
loading.show();
var tabContent = view.querySelector(".pageTabContent[data-index='0']");
const tabContent = view.querySelector(".pageTabContent[data-index='0']");
loadSuggestionsTab(view, tabContent, params.topParentId);
}
@ -254,46 +270,48 @@ define(['browser', 'layoutManager', 'userSettings', 'inputManager', 'loading', '
}
function getTabController(page, index, callback) {
var depends = [];
let depends;
switch (index) {
case 0:
depends = 'controllers/music/musicrecommended';
break;
case 1:
depends.push('controllers/music/musicalbums');
depends = 'controllers/music/musicalbums';
break;
case 2:
case 3:
depends.push('controllers/music/musicartists');
depends = 'controllers/music/musicartists';
break;
case 4:
depends.push('controllers/music/musicplaylists');
depends = 'controllers/music/musicplaylists';
break;
case 5:
depends.push('controllers/music/songs');
depends = 'controllers/music/songs';
break;
case 6:
depends.push('controllers/music/musicgenres');
depends = 'controllers/music/musicgenres';
break;
case 7:
depends.push('scripts/searchtab');
depends = 'scripts/searchtab';
break;
}
require(depends, function (controllerFactory) {
var tabContent;
import(depends).then(({default: controllerFactory}) => {
let tabContent;
if (0 == index) {
tabContent = view.querySelector(".pageTabContent[data-index='" + index + "']");
self.tabContent = tabContent;
}
var controller = tabControllers[index];
let controller = tabControllers[index];
if (!controller) {
tabContent = view.querySelector(".pageTabContent[data-index='" + index + "']");
@ -355,10 +373,10 @@ define(['browser', 'layoutManager', 'userSettings', 'inputManager', 'loading', '
var currentTabIndex = parseInt(params.tab || getDefaultTabIndex(params.topParentId));
self.initTab = function () {
var tabContent = view.querySelector(".pageTabContent[data-index='0']");
var containers = tabContent.querySelectorAll('.itemsContainer');
const tabContent = view.querySelector(".pageTabContent[data-index='0']");
const containers = tabContent.querySelectorAll('.itemsContainer');
for (var i = 0, length = containers.length; i < length; i++) {
for (let i = 0, length = containers.length; i < length; i++) {
setScrollClasses(containers[i], enableScrollX());
}
};
@ -367,12 +385,12 @@ define(['browser', 'layoutManager', 'userSettings', 'inputManager', 'loading', '
reload();
};
var tabControllers = [];
var renderedTabs = [];
const tabControllers = [];
const renderedTabs = [];
view.addEventListener('viewshow', function (e) {
initTabs();
if (!view.getAttribute('data-title')) {
var parentId = params.topParentId;
const parentId = params.topParentId;
if (parentId) {
ApiClient.getItem(ApiClient.getCurrentUserId(), parentId).then(function (item) {
@ -397,5 +415,6 @@ define(['browser', 'layoutManager', 'userSettings', 'inputManager', 'loading', '
}
});
});
};
});
}
/* eslint-enable indent */

View file

@ -1,13 +1,18 @@
define(['events', 'libraryBrowser', 'imageLoader', 'listView', 'loading', 'userSettings', 'globalize', 'emby-itemscontainer'], function (events, libraryBrowser, imageLoader, listView, loading, userSettings, globalize) {
'use strict';
import events from 'events';
import libraryBrowser from 'libraryBrowser';
import imageLoader from 'imageLoader';
import listView from 'listView';
import loading from 'loading';
import * as userSettings from 'userSettings';
import globalize from 'globalize';
import 'emby-itemscontainer';
loading = loading.default || loading;
libraryBrowser = libraryBrowser.default || libraryBrowser;
/* eslint-disable indent */
return function (view, params, tabContent) {
export default function (view, params, tabContent) {
function getPageData(context) {
var key = getSavedQueryKey(context);
var pageData = data[key];
const key = getSavedQueryKey(context);
let pageData = data[key];
if (!pageData) {
pageData = data[key] = {
@ -49,7 +54,7 @@ define(['events', 'libraryBrowser', 'imageLoader', 'listView', 'loading', 'userS
function reloadItems(page) {
loading.show();
isLoading = true;
var query = getQuery(page);
const query = getQuery(page);
ApiClient.getItems(Dashboard.getCurrentUserId(), query).then(function (result) {
function onNextPageClick() {
if (isLoading) {
@ -74,9 +79,7 @@ define(['events', 'libraryBrowser', 'imageLoader', 'listView', 'loading', 'userS
}
window.scrollTo(0, 0);
var i;
var length;
var pagingHtml = libraryBrowser.getQueryPagingHtml({
const pagingHtml = libraryBrowser.getQueryPagingHtml({
startIndex: query.StartIndex,
limit: query.Limit,
totalRecordCount: result.TotalRecordCount,
@ -86,49 +89,49 @@ define(['events', 'libraryBrowser', 'imageLoader', 'listView', 'loading', 'userS
sortButton: false,
filterButton: false
});
var html = listView.getListViewHtml({
const html = listView.getListViewHtml({
items: result.Items,
action: 'playallfromhere',
smallIcon: true,
artist: true,
addToListButton: true
});
var elems = tabContent.querySelectorAll('.paging');
let elems = tabContent.querySelectorAll('.paging');
for (i = 0, length = elems.length; i < length; i++) {
for (let i = 0, length = elems.length; i < length; i++) {
elems[i].innerHTML = pagingHtml;
}
elems = tabContent.querySelectorAll('.btnNextPage');
for (i = 0, length = elems.length; i < length; i++) {
for (let i = 0, length = elems.length; i < length; i++) {
elems[i].addEventListener('click', onNextPageClick);
}
elems = tabContent.querySelectorAll('.btnPreviousPage');
for (i = 0, length = elems.length; i < length; i++) {
for (let i = 0, length = elems.length; i < length; i++) {
elems[i].addEventListener('click', onPreviousPageClick);
}
var itemsContainer = tabContent.querySelector('.itemsContainer');
const itemsContainer = tabContent.querySelector('.itemsContainer');
itemsContainer.innerHTML = html;
imageLoader.lazyChildren(itemsContainer);
libraryBrowser.saveQueryValues(getSavedQueryKey(page), query);
loading.hide();
isLoading = false;
require(['autoFocuser'], function (autoFocuser) {
import('autoFocuser').then(({default: autoFocuser}) => {
autoFocuser.autoFocus(page);
});
});
}
var self = this;
var data = {};
var isLoading = false;
const self = this;
const data = {};
let isLoading = false;
self.showFilterMenu = function () {
require(['components/filterdialog/filterdialog'], function ({default: filterDialogFactory}) {
var filterDialog = new filterDialogFactory({
import('components/filterdialog/filterdialog').then(({default: filterDialogFactory}) => {
const filterDialog = new filterDialogFactory({
query: getQuery(tabContent),
mode: 'songs',
serverId: ApiClient.serverId()
@ -196,5 +199,6 @@ define(['events', 'libraryBrowser', 'imageLoader', 'listView', 'loading', 'userS
};
self.destroy = function () {};
};
});
}
/* eslint-enable indent */

View file

@ -1,6 +1,7 @@
import playbackManager from 'playbackManager';
import dom from 'dom';
import inputManager from 'inputManager';
import mouseManager from 'mouseManager';
import datetime from 'datetime';
import itemHelper from 'itemHelper';
import mediaInfo from 'mediaInfo';
@ -367,6 +368,7 @@ import 'css!assets/css/videoosd';
function hideOsd() {
slideUpToHide(headerElement);
hideMainOsdControls();
mouseManager.hideCursor();
}
function toggleOsd() {
@ -435,6 +437,7 @@ import 'css!assets/css/videoosd';
const elem = osdBottomElement;
clearHideAnimationEventListeners(elem);
elem.classList.add('videoOsdBottom-hidden');
dom.addEventListener(elem, transitionEndEventName, onHideAnimationComplete, {
once: true
});
@ -1131,6 +1134,7 @@ import 'css!assets/css/videoosd';
clickedElement = e.target;
const key = keyboardnavigation.getKeyName(e);
const isKeyModified = e.ctrlKey || e.altKey;
if (!currentVisibleMenu && 32 === e.keyCode) {
playbackManager.playPause(currentPlayer);
@ -1235,8 +1239,10 @@ import 'css!assets/css/videoosd';
case '7':
case '8':
case '9': {
if (!isKeyModified) {
const percent = parseInt(key, 10) * 10;
playbackManager.seekPercent(percent, currentPlayer);
}
break;
}
}

View file

@ -129,7 +129,7 @@
animation: fadein 0.5s;
width: 30%;
height: 30%;
background-image: url(assets/img/banner-light.png);
background-image: url(assets/img/icon-transparent.png);
background-position: center center;
background-repeat: no-repeat;
background-size: contain;
@ -139,6 +139,14 @@
-webkit-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
}
@media screen
and (min-device-width: 992px)
and (-webkit-min-device-pixel-ratio: 1) {
.splashLogo {
background-image: url(assets/img/banner-light.png);
}
}
</style>
</head>
<body>

File diff suppressed because it is too large Load diff

View file

@ -183,11 +183,9 @@
width = height * (16.0 / 9.0);
}
const closest = standardWidths.sort(function (a, b) {
return standardWidths.sort(function (a, b) {
return Math.abs(width - a) - Math.abs(width - b);
})[0];
return closest;
}
/**

View file

@ -604,12 +604,10 @@ define(['dom', 'layoutManager', 'inputManager', 'connectionManager', 'events', '
var icon = i.icon || imageHelper.getLibraryIcon(i.CollectionType);
var itemId = i.Id;
const linkHtml = `<a is="emby-linkbutton" data-itemid="${itemId}" class="lnkMediaFolder navMenuOption" href="${getItemHref(i, i.CollectionType)}">
return `<a is="emby-linkbutton" data-itemid="${itemId}" class="lnkMediaFolder navMenuOption" href="${getItemHref(i, i.CollectionType)}">
<span class="material-icons navMenuOptionIcon ${icon}"></span>
<span class="sectionName navMenuOptionText">${i.Name}</span>
</a>`;
return linkHtml;
}).join('');
libraryMenuOptions.innerHTML = html;
var elem = libraryMenuOptions;

View file

@ -31,6 +31,22 @@ define(['inputManager', 'focusManager', 'browser', 'layoutManager', 'events', 'd
}
}
function showCursor() {
if (isMouseIdle) {
isMouseIdle = false;
removeIdleClasses();
events.trigger(self, 'mouseactive');
}
}
function hideCursor() {
if (!isMouseIdle) {
isMouseIdle = true;
addIdleClasses();
events.trigger(self, 'mouseidle');
}
}
var lastPointerMoveData;
function onPointerMove(e) {
var eventX = e.screenX;
@ -61,11 +77,7 @@ define(['inputManager', 'focusManager', 'browser', 'layoutManager', 'events', 'd
lastMouseInputTime = new Date().getTime();
notifyApp();
if (isMouseIdle) {
isMouseIdle = false;
removeIdleClasses();
events.trigger(self, 'mouseactive');
}
showCursor();
}
function onPointerEnter(e) {
@ -99,9 +111,7 @@ define(['inputManager', 'focusManager', 'browser', 'layoutManager', 'events', 'd
function onMouseInterval() {
if (!isMouseIdle && mouseIdleTime() >= 5000) {
isMouseIdle = true;
addIdleClasses();
events.trigger(self, 'mouseidle');
hideCursor();
}
}
@ -157,5 +167,8 @@ define(['inputManager', 'focusManager', 'browser', 'layoutManager', 'events', 'd
events.on(layoutManager, 'modechange', initMouse);
self.hideCursor = hideCursor;
self.showCursor = showCursor;
return self;
});

View file

@ -232,7 +232,7 @@
"HeaderAccessScheduleHelp": "Vytvořte plán přístupu pro limitování přístupu jen určitém čase.",
"HeaderActiveDevices": "Aktivní zařízení",
"HeaderActiveRecordings": "Aktivní nahrávání",
"HeaderActivity": "Aktivity",
"HeaderActivity": "Aktivita",
"HeaderAddScheduledTaskTrigger": "Přidat Spouštěč",
"HeaderAddToCollection": "Přidat do Kolekce",
"HeaderAddToPlaylist": "Přidat do playlistu",
@ -244,14 +244,14 @@
"HeaderAlbums": "Alba",
"HeaderAlert": "Upozornění",
"HeaderApiKey": "Klíč Api",
"HeaderApiKeys": "Klíče Api",
"HeaderApiKeys": "Klíče API",
"HeaderApiKeysHelp": "Externí aplikace musí mít klíč k API, aby mohly komunikovat se serverem Jellyfin. Klíče jsou vydávány přihlášením k účtu Jellyfin nebo ruční žádostí o klíč.",
"HeaderApp": "Aplikace",
"HeaderAudioBooks": "Audio knihy",
"HeaderAudioSettings": "Nastavení zvuku",
"HeaderAutomaticUpdates": "Automatické aktualizace",
"HeaderBooks": "Knihy",
"HeaderBranding": "Značkování",
"HeaderBranding": "Branding",
"HeaderCancelRecording": "Zrušit nahrávání",
"HeaderCancelSeries": "Ukončit Seriál",
"HeaderCastAndCrew": "Herci a obsazení",
@ -578,7 +578,7 @@
"LabelLocalHttpServerPortNumber": "Lokální HTTP port:",
"LabelLocalHttpServerPortNumberHelp": "Číslo portu TCP, ke kterému by se měl HTTP server Jellyfin připojit.",
"LabelLockItemToPreventChanges": "Uzamknout položku pro zabránění budoucích změn",
"LabelLoginDisclaimer": "Zřeknutí se následujících práv při přihlášení:",
"LabelLoginDisclaimer": "Zřeknutí se zodpovědnosti při přihlášení:",
"LabelLoginDisclaimerHelp": "Zpráva, která se zobrazí v dolní části přihlašovací stránky.",
"LabelLogs": "Záznamy:",
"LabelManufacturer": "Výrobce:",
@ -1070,7 +1070,7 @@
"Screenshots": "Snímky obrazovky",
"Search": "Vyhledávání",
"SearchForCollectionInternetMetadata": "Vyhledat metadata a obrázky na Internetu",
"SearchForMissingMetadata": "Hledání chybějících metadat",
"SearchForMissingMetadata": "Hledat chybějící metadata",
"SearchForSubtitles": "Vyhledat titulky",
"SearchResults": "Výsledky vyhledávání",
"SendMessage": "Poslat zprávu",
@ -1129,7 +1129,7 @@
"TabMusic": "Hudba",
"TabMusicVideos": "Hudební videa",
"TabMyPlugins": "Moje zásuvné moduly",
"TabNetworks": "Sítě",
"TabNetworks": "Stanice",
"TabNfoSettings": "NFO nastavení",
"TabNotifications": "Oznámení",
"TabOther": "Další",
@ -1152,7 +1152,7 @@
"TabSuggestions": "Návrhy",
"TabTrailers": "Upoutávky",
"TabTranscoding": "Překódování",
"TabUpcoming": "Nové",
"TabUpcoming": "Nadcházející",
"TabUsers": "Uživatelé",
"Tags": "Tagy",
"TellUsAboutYourself": "Řekněte nám něco o sobě",
@ -1505,7 +1505,7 @@
"MusicArtist": "Interpret",
"MusicVideo": "Videoklip",
"SubtitleOffset": "Nastavení titulků",
"TabNetworking": "Vytváření sítí",
"TabNetworking": "Síť",
"MusicLibraryHelp": "Prostudujte si {0}průvodce pojmenováním hudby{1}.",
"MoreMediaInfo": "Informace o médiu",
"LabelVideoBitrate": "Datový tok videa:",
@ -1524,7 +1524,7 @@
"LabelAudioBitrate": "Datový tok zvuku:",
"LabelAudioBitDepth": "Bitová hloubka zvuku:",
"HeaderFavoriteBooks": "Oblíbené knihy",
"FetchingData": "Načtení dalších dat",
"FetchingData": "Načítání dalších dat",
"CopyStreamURLSuccess": "Úspěšně zkopírovaná URL.",
"CopyStreamURL": "Kopírovat URL adresu streamu",
"ButtonAddImage": "Přidat obrázek",
@ -1565,7 +1565,7 @@
"EveryXMinutes": "Každých {0} minut",
"OnWakeFromSleep": "Při probuzení",
"DailyAt": "Denně v {0}",
"PersonRole": "jako {0}",
"PersonRole": "{0}",
"ListPaging": "{0}-{1} ze {2}",
"WriteAccessRequired": "Server Jellyfin vyžaduje oprávnění pro zápis do této složky. Zkontrolujte oprávnění a zkuste to znovu.",
"PathNotFound": "Cesta nebyla nalezena. Zkontrolujte, zda je platná a zkuste to znovu.",

View file

@ -428,7 +428,7 @@
"HeaderSortBy": "Sortiert nach",
"HeaderSortOrder": "Sortierreihenfolge",
"HeaderSpecialEpisodeInfo": "Spezialepisoden Information",
"HeaderSpecialFeatures": "Sonderfunktionen",
"HeaderSpecialFeatures": "Extras",
"HeaderStartNow": "Starte jetzt",
"HeaderStopRecording": "Aufnahme stoppen",
"HeaderSubtitleAppearance": "Untertiteldarstellung",

View file

@ -352,7 +352,7 @@
"MessageSyncPlayGroupDoesNotExist": "Fallo al unirse al grupo porque éste no existe.",
"MessageSyncPlayPlaybackPermissionRequired": "Permiso de reproducción requerido.",
"MessageSyncPlayNoGroupsAvailable": "No hay grupos disponibles. Empieza a reproducir algo primero.",
"MessageSyncPlayGroupWait": "<b>{0}</b> está cargando...",
"MessageSyncPlayGroupWait": "<b>{0}</b> está cargando",
"MessageSyncPlayUserLeft": "<b>{0}</b> abandonó el grupo.",
"MessageSyncPlayUserJoined": "<b>{0}</b> se ha unido al grupo.",
"MessageSyncPlayDisabled": "SyncPlay deshabilitado.",

View file

@ -50,7 +50,7 @@
"TabGenres": "Zvrsti",
"TabLatest": "Zadnje",
"TabMusic": "Glasba",
"TabMyPlugins": "Moji Vticniki",
"TabMyPlugins": "Moji dodatki",
"TabNetworks": "Omrezja",
"TabPassword": "Geslo",
"TabPlaylist": "Playlista",
@ -70,7 +70,7 @@
"AddToPlayQueue": "Dodaj v čakalno vrsto",
"AddToPlaylist": "Dodaj na seznam predvajanja",
"AddedOnValue": "Dodano {0}",
"AdditionalNotificationServices": "Prebrskaj katalog dodatkov za namestitev dodatnih storitev obveščanja.",
"AdditionalNotificationServices": "Prebrskajte katalog dodatkov za namestitev dodatnih storitev obveščanja.",
"AirDate": "Datum predvajanja",
"Aired": "Predvajano",
"Albums": "Albumi",
@ -135,7 +135,7 @@
"Box": "Ovitek",
"BoxRear": "Ovitek (zadnja stran)",
"Browse": "Brskaj",
"BrowsePluginCatalogMessage": "Poišči razpoložljive dodatke v našem katalogu.",
"BrowsePluginCatalogMessage": "Poiščite razpoložljive dodatke v našem katalogu.",
"BurnSubtitlesHelp": "Določi ali naj strežnik vžge podnapise pri prekodiranju videa. Izogibanje temu lahko občutno izboljša delovanje strežnika. Izberite Samodejno za vžig slikovnih formatov podnapisov (VOBSUB, PGS, SUB, IDX, ...) in nekaterih ASS oziroma SSA podnapisov.",
"ButtonAccept": "Sprejmi",
"ButtonAdd": "Dodaj",
@ -343,7 +343,7 @@
"HeaderMyMediaSmall": "Moja predstavnost (majhno)",
"HeaderMyMedia": "Moja predstavnost",
"HeaderMyDevice": "Moja naprava",
"HeaderMusicVideos": "Glasbeni videi",
"HeaderMusicVideos": "Videospoti",
"HeaderMusicQuality": "Kvaliteta glasbe",
"HeaderMovies": "Filmi",
"HeaderMoreLikeThis": "Podobno",
@ -410,7 +410,7 @@
"HeaderConnectToServer": "Poveži s strežnikom",
"HeaderConfirmRevokeApiKey": "Prekliči API ključ",
"HeaderConfirmProfileDeletion": "Potrdi brisanje profila",
"HeaderConfirmPluginInstallation": "Potrdi namestitev dodatka",
"HeaderConfirmPluginInstallation": "Potrdite namestitev dodatka",
"HeaderConfigureRemoteAccess": "Nastavi oddaljen dostop",
"HeaderCodecProfileHelp": "Profili kodeka določajo omejitve naprave pri predvajanju specifičnih kodekov. Če je omejitev dosežena bo predstavnost prekodirana, tudi če je kodek nastavljen za neposredno predvajanje.",
"HeaderCodecProfile": "Profil kodeka",
@ -460,7 +460,7 @@
"FormatValue": "Format: {0}",
"ForAdditionalLiveTvOptions": "Za dodatne ponudnike TV v živo kliknite zavihek storitve in poglejte možnosti, ki so na voljo.",
"FolderTypeUnset": "Mešane vsebine",
"FolderTypeMusicVideos": "Glasbeni videi",
"FolderTypeMusicVideos": "Videospoti",
"FolderTypeMusic": "Glasba",
"FolderTypeMovies": "Filmi",
"FolderTypeBooks": "Knjige",
@ -496,7 +496,7 @@
"EnableThemeVideosHelp": "Predvajaj tematske videe v ozadju med brskanjem knjižnice.",
"EnableThemeVideos": "Tematski videi",
"EnableThemeSongsHelp": "Predvajaj tematske pesmi v ozadju med brskanjem knjižnice.",
"EnableThemeSongs": "Tematske pesmi",
"EnableThemeSongs": "Glavne pesmi",
"EnableStreamLoopingHelp": "Omogoči za prenose v živo ki vsebujejo zgolj nekaj sekund podatkov in jih je treba neprestano znova zahtevati. Če to ni potrebno lahko omogočanje povzroči težave.",
"EnablePhotosHelp": "Fotografije bodo zaznane in prikazane skupaj z drugo predstavnostjo.",
"EnablePhotos": "Prikaži fotografije",
@ -1186,7 +1186,7 @@
"ValueTimeLimitSingleHour": "Časovna omejitev: 1 ura",
"ValueTimeLimitMultiHour": "Časovna omejitev: {0} ur",
"ValueSongCount": "{0} pesmi",
"ValueMusicVideoCount": "{0} glasbenih videov",
"ValueMusicVideoCount": "{0} videospotov",
"ValueMovieCount": "{0} filmov",
"ValueMinutes": "{0} minut",
"ValueEpisodeCount": "{0} epizod",
@ -1194,7 +1194,7 @@
"ValueSeconds": "{0} sekund",
"ValueOneSong": "1 skladba",
"ValueOneSeries": "1 serija",
"ValueOneMusicVideo": "1 glasbeni video",
"ValueOneMusicVideo": "1 videospot",
"ValueOneMovie": "1 film",
"ValueOneEpisode": "1 epizoda",
"ValueOneAlbum": "1 album",
@ -1392,5 +1392,39 @@
"MessageConfirmAppExit": "Ali želite končati?",
"LabelWeb": "Splet:",
"LabelLineup": "Postava:",
"BoxSet": "Komplet"
"BoxSet": "Komplet",
"TabMetadata": "Metapodatki",
"TabInfo": "Informacije",
"TabGuide": "Vodič",
"TabFavorites": "Priljubljeni",
"TabEpisodes": "Epizode",
"TabDisplay": "Prikaz",
"TabDirectPlay": "Neposredno predvajanje",
"TabDevices": "Naprave",
"TabCodecs": "Kodeki",
"TabChannels": "Programi",
"OptionRegex": "Regex",
"OptionProtocolHls": "HTTP pretakanje v živo",
"OptionProfileVideoAudio": "Video zvok",
"ThemeSongs": "Glavne pesmi",
"TabTranscoding": "Prekodiranje",
"TabStreaming": "Pretakanje",
"TabSongs": "Skladbe",
"TabSettings": "Nastavitve",
"TabServer": "Strežnik",
"TabSeries": "Serije",
"TabScheduledTasks": "Načrtovana opravila",
"TabResumeSettings": "Nadaljuj",
"UninstallPluginHeader": "Odstrani dodatek",
"UninstallPluginConfirmation": "Ali ste prepričan, da želite odstraniti {0}?",
"ServerRestartNeededAfterPluginInstall": "Po namestitvi dodatka bo potreben ponoven zagon jellyfin strežnika.",
"TabResponses": "Odzivi",
"TabRecordings": "Posnetki",
"TabPlugins": "Dodatki",
"TabPlaylists": "Seznami predvajanja",
"TabOther": "Ostalo",
"TabNotifications": "Obvestila",
"TabNfoSettings": "Nastavitve NFO",
"TabMusicVideos": "Videospoti",
"TabMovies": "Filmi"
}

View file

@ -179,7 +179,7 @@
"Download": "Ladda ned",
"DownloadsValue": "Nedladdningar: {0}",
"DrmChannelsNotImported": "Kanaler med DRM kommer inte att importeras.",
"DropShadow": "Mjuk",
"DropShadow": "Skugga",
"EasyPasswordHelp": "Din enkla pin-kod används för att logga in offline på klienter som stödjer det, och kan också användas för enkel inloggning från ditt nätverk.",
"Edit": "Ändra",
"EditImages": "Ändra bilder",
@ -539,7 +539,7 @@
"LabelEmbedAlbumArtDidl": "Bädda in omslagsbilder i Didl",
"LabelEmbedAlbumArtDidlHelp": "Vissa enheter föredrar den här metoden att ta fram omslagsbilder. Andra kanske avbryter avspelningen om detta val är aktiverat.",
"LabelEnableAutomaticPortMap": "Aktivera automatisk koppling av portar",
"LabelEnableAutomaticPortMapHelp": "Automatisk länkning av publik port på routern och lokal port på servern via UPnP. Detta kanske inte fungerar med alla routrar och nätverks konfigurationer. Obs. Ingenting kommer att ändras förrän servern startats om.",
"LabelEnableAutomaticPortMapHelp": "För automatiskt vidare publika portar från din router till lokala portar på din server via UPnP. Detta fungerar inte med alla router modeller eller nätverkskonfigurationer. Ändringar kommer inte appliceras inte tills server startats om.",
"LabelEnableBlastAliveMessages": "Skicka ut \"jag lever\"-meddelanden",
"LabelEnableBlastAliveMessagesHelp": "Aktivera detta om andra UPnP-enheter på nätverket har problem att upptäcka servern.",
"LabelEnableDlnaClientDiscoveryInterval": "Intervall för upptäckt av klienter (i sekunder)",
@ -660,7 +660,7 @@
"LabelNumberOfGuideDays": "Antal dagars tablå att hämta:",
"LabelNumberOfGuideDaysHelp": "Hämtning av en längre periods tablå ger möjlighet att boka inspelningar och se program längre fram i tiden, men ger längre nedladdningstid. \"Auto\" väljer baserat på antalet kanaler.",
"LabelOptionalNetworkPath": "(Valfri) Delad nätverksmapp:",
"LabelOptionalNetworkPathHelp": "Om denna mappen delas på ditt nätverk, kan den delade sökvägen tillåta Jellyfin-appar på andra enheter att streama mediafiler direkt.",
"LabelOptionalNetworkPathHelp": "Om denna mappen delas på ditt nätverk, kan den delade sökvägen tillåta Jellyfin-appar på andra enheter att streama mediafiler direkt. Som exempel, {0} eller {1}.",
"LabelOriginalAspectRatio": "Ursprungligt bildförhållande:",
"LabelOriginalTitle": "Original titel:",
"LabelOverview": "Synopsis:",
@ -850,7 +850,7 @@
"MessageNoAvailablePlugins": "Inga tillägg tillgängliga.",
"MessageNoMovieSuggestionsAvailable": "Det finns inga filmförslag för tillfället. Efter att ha sett ett antal filmer kan du återkomma hit för att se dina förslag.",
"MessageNoPluginsInstalled": "Inga tillägg har installerats.",
"MessageNoTrailersFound": "Hittade inga trailers. Installera Trailer-kanalen och öka biokänslan genom att lägga till ett bibliotek av trailers.",
"MessageNoTrailersFound": "Installera Trailer-kanalen och öka biokänslan genom att lägga till ett bibliotek av trailers.",
"MessageNothingHere": "Ingenting här.",
"MessagePasswordResetForUsers": "Lösenord har tagots bort från följande användare. För att logga in, använd ett blankt lösenord.",
"MessagePlayAccessRestricted": "Uppspelning av detta innehållet är för närvarande begränsat. Kontakta din server administratör för mer information.",
@ -891,7 +891,7 @@
"NoNextUpItemsMessage": "Hittade inget. Sätt igång och titta!",
"NoPluginConfigurationMessage": "Detta tillägg har inga inställningar att konfigurera.",
"NoSubtitleSearchResultsFound": "Inga resultat hittades.",
"NoSubtitles": "Inga undertexter",
"NoSubtitles": "Inga",
"NoSubtitlesHelp": "Undertexter kommer inte visas per standard. Det kan fortfarande sättas på manuellt under uppspelning.",
"None": "Inga",
"NumLocationsValue": "{0} mappar",
@ -1350,7 +1350,7 @@
"LabelPlayMethod": "Spelmetod:",
"LabelPlayerDimensions": "Spelare dimensioner:",
"LabelPasswordResetProvider": "Lösenords Återställning Leverantör:",
"LabelBaseUrlHelp": "Du kan lägga till en egen underkategori här för att få tillgång till servern från en mer unik URL.",
"LabelBaseUrlHelp": "Lägger till en anpassad undermapp till serverns URL. Som exempel: <code>http://example.com/<b>&lt;baseurl&gt;</b></code>",
"LabelCorruptedFrames": "Skadade ramar:",
"HeaderParentalRatings": "Föräldrabetyg",
"HeaderNavigation": "Navigering",
@ -1388,7 +1388,7 @@
"OptionThumbCard": "Miniatyr kort",
"OptionThumb": "Miniatyr",
"OptionSaveMetadataAsHiddenHelp": "Ändring av detta kommer att tilldelas till ny metadata som sparas. Existerande metadata filer kommer att uppdateras nästa gång dom sparas av Jellyfin Server.",
"OptionResElement": "res element",
"OptionResElement": "återskapa element",
"OptionRegex": "Regex",
"OptionRandom": "Slumpmässig",
"OptionProtocolHttp": "HTTP",
@ -1499,7 +1499,7 @@
"MessageUnauthorizedUser": "Du har inte behörighet att komma åt servern just nu. Kontakta din serveradministratör för mer information.",
"HeaderFavoritePlaylists": "Favoritspellista",
"OnWakeFromSleep": "Vid start från vilande läge",
"UnsupportedPlayback": "Jellyfin kan inte dekryptera inehåll skyddat av DRM men allt inehåll kommer ändå försökas, även skyddade titlar. Vissa filer kan se helt svart ut på grund av kryptering eller andra funktioner som inte stöds, till exempel interaktiva titlar.",
"UnsupportedPlayback": "Jellyfin kan inte dekryptera inehåll skyddat av DRM men allt inehåll kommer ändå försökas, även skyddade titlar. Vissa filer kan se helt svarta ut på grund av kryptering eller andra funktioner som inte stöds, till exempel interaktiva titlar.",
"LabelLibraryPageSizeHelp": "Sätter en begränsad sidstorlek i bibliotek. Sätt 0 för att avaktivera begränsad sidstorlek.",
"ApiKeysCaption": "Lista av aktiva API-nycklar",
"DeinterlaceMethodHelp": "Välj metod för borttagning av inflätning vid konvertering av inflätat inehåll.",
@ -1518,7 +1518,58 @@
"HeaderSyncPlaySelectGroup": "Gå med i en grupp",
"EnableDecodingColorDepth10Vp9": "Aktivera 10-Bitars hårdvaru avcodning för VP9",
"EnableDecodingColorDepth10Hevc": "Aktivera 10-Bitars hårdvaru avcodning för HEVC",
"HeaderSyncPlayEnabled": "SyncPlay påslaget",
"HeaderSyncPlayEnabled": "SyncPlay aktiverat",
"EnableDetailsBannerHelp": "Visa en bannerbild högst upp på sidan för detaljsidan .",
"EnableDetailsBanner": "Information banner"
"EnableDetailsBanner": "Information banner",
"LabelRepositoryName": "Förvaringsplats namn",
"LabelRepositoryUrlHelp": "Platsen för det förvaringsplats manifest du vill inkludera.",
"LabelRepositoryUrl": "Förvaringsplats URL",
"HeaderNewRepository": "Ny förvaringsplats",
"MessageNoRepositories": "Inga förvaringsplatser.",
"LabelSyncPlayAccess": "SyncPlay åtkomst",
"LabelSyncPlayAccessNone": "Avstängt för denna användaren",
"LabelSyncPlayAccessJoinGroups": "Tillåt användaren att gå med i grupper",
"LabelSyncPlayAccessCreateAndJoinGroups": "Tillåt användaren att skapa och gå med i grupper",
"LabelSyncPlayLeaveGroupDescription": "Stäng av SyncPlay",
"LabelSyncPlayLeaveGroup": "Lämna grupp",
"LabelSyncPlayNewGroupDescription": "Skapa ny grupp",
"LabelSyncPlayNewGroup": "Ny grupp",
"LabelSyncPlaySyncMethod": "Synkningsmetod:",
"LabelSyncPlayPlaybackDiff": "Uppspelnings tids skillnad:",
"MillisecondsUnit": "ms",
"LabelSyncPlayTimeOffset": "Tids skillnad med servern:",
"EnableFasterAnimationsHelp": "Använd snabbare animationer och övergångar",
"EnableFasterAnimations": "Snabbare animationer",
"LabelRequireHttpsHelp": "Om valt, kommer servern automatiskt omdirigera all inkommande trafik över HTTP till HTTPS. Detta har ingen effekt om servern inte lyssnar på HTTPS.",
"ClearQueue": "Töm kön",
"StopPlayback": "Stoppa uppspelning",
"ButtonPlayer": "Spelare",
"ButtonCast": "Roller",
"EnableBlurhashHelp": "Bilder som fortfarande laddas kommer visas med en suddig platshållare",
"EnableBlurhash": "Aktivera suddiga platshållare för bilder",
"Writers": "Skribenter",
"ViewAlbumArtist": "Visa albums artist",
"TabRepositories": "Förvaringsplatser",
"SyncPlayAccessHelp": "Välj tillgångsnivån för denna användaren har till SyncPlay funktionen. SyncPlay tillåter en att synka uppspelning med andra enheter.",
"ShowMore": "Visa mer",
"ShowLess": "Visa mindre",
"MessageSyncPlayErrorMedia": "Misslyckades att aktivera SyncPlay! Media fel.",
"MessageSyncPlayErrorMissingSession": "Misslyckades att aktivera SyncPlay! Saknar session.",
"MessageAddRepository": "Om du vill skapa en förvaringsplats, klicka på knappen bredvid rubriken och fyll i all omfrågad information.",
"MessageSyncPlayErrorNoActivePlayer": "Ingen aktiv spelare hittades. SyncPlay har avaktiverats.",
"MessageSyncPlayErrorAccessingGroups": "Ett fel uppstod vid hämtning av grupplista.",
"MessageSyncPlayLibraryAccessDenied": "Tillgång till detta innehåll är begränsat.",
"MessageSyncPlayJoinGroupDenied": "Tillåtelse krävs för att använda SyncPlay.",
"MessageSyncPlayCreateGroupDenied": "Tillåtelse krävs för att skapa en grupp.",
"MessageSyncPlayGroupDoesNotExist": "Kunde inte gå med i gruppen då den inte finns.",
"MessageSyncPlayPlaybackPermissionRequired": "Uppspelningstillåtelse krävs.",
"MessageSyncPlayNoGroupsAvailable": "Inga grupper tillgängliga. Börja spela något först.",
"MessageSyncPlayGroupWait": "<b>{0}</b> buffrar…",
"MessageSyncPlayUserLeft": "<b>{0}</b> har lämnat gruppen.",
"MessageSyncPlayUserJoined": "<b>{0}</b> har anslutit till gruppen.",
"MessageSyncPlayDisabled": "SyncPlay avaktiverat.",
"MessageSyncPlayEnabled": "SyncPlay aktiverat.",
"MessageNoGenresAvailable": "Aktivera vissa metadataleverantörer att hämta genrer från internet.",
"LabelRepositoryNameHelp": "Ett eget namn för att särskilja denna förvaringsplats från andra tillagda på din server.",
"LabelNightly": "Nattlig"
}

View file

@ -825,5 +825,10 @@
"LabelMaxStreamingBitrate": "Chất lượng phát tối đa:",
"LabelMaxScreenshotsPerItem": "Số lượng ảnh chụp tối đa mỗi mục:",
"LabelMaxResumePercentageHelp": "Nội dung sẽ được cho là đã kết thúc nếu ngừng phát sau thời gian này.",
"ButtonSyncPlay": "SyncPlay"
"ButtonSyncPlay": "SyncPlay",
"LabelPasswordConfirm": "Mật khẩu (xác nhận):",
"LabelPassword": "Mật khẩu:",
"LabelNotificationEnabled": "Bật thông báo này",
"LabelNewsCategories": "",
"LabelStable": "Ổn Định"
}

View file

@ -1362,7 +1362,7 @@
"DashboardVersionNumber": "版本:{0}",
"DashboardServerName": "服务器:{0}",
"LabelVideo": "视频",
"LabelWeb": "网",
"LabelWeb": "网",
"LeaveBlankToNotSetAPassword": "您可以将此字段留空以设置空密码。",
"LinksValue": "链接:{0}",
"LiveBroadcasts": "直播",

238
yarn.lock
View file

@ -9,28 +9,28 @@
dependencies:
"@babel/highlight" "^7.10.4"
"@babel/compat-data@^7.10.4":
version "7.10.4"
resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.10.4.tgz#706a6484ee6f910b719b696a9194f8da7d7ac241"
integrity sha512-t+rjExOrSVvjQQXNp5zAIYDp00KjdvGl/TpDX5REPr0S9IAIPQMTilcfG6q8c0QFmj9lSTVySV2VTsyggvtNIw==
"@babel/compat-data@^7.10.4", "@babel/compat-data@^7.11.0":
version "7.11.0"
resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.11.0.tgz#e9f73efe09af1355b723a7f39b11bad637d7c99c"
integrity sha512-TPSvJfv73ng0pfnEOh17bYMPQbI95+nGWc71Ss4vZdRBHTDqmM9Z8ZV4rYz8Ks7sfzc95n30k6ODIq5UGnXcYQ==
dependencies:
browserslist "^4.12.0"
invariant "^2.2.4"
semver "^5.5.0"
"@babel/core@>=7.2.2", "@babel/core@>=7.9.0", "@babel/core@^7.10.5":
version "7.10.5"
resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.10.5.tgz#1f15e2cca8ad9a1d78a38ddba612f5e7cdbbd330"
integrity sha512-O34LQooYVDXPl7QWCdW9p4NR+QlzOr7xShPPJz8GsuCU3/8ua/wqTr7gmnxXv+WBESiGU/G5s16i6tUvHkNb+w==
"@babel/core@>=7.2.2", "@babel/core@>=7.9.0", "@babel/core@^7.11.0":
version "7.11.0"
resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.11.0.tgz#73b9c33f1658506887f767c26dae07798b30df76"
integrity sha512-mkLq8nwaXmDtFmRkQ8ED/eA2CnVw4zr7dCztKalZXBvdK5EeNUAesrrwUqjQEzFgomJssayzB0aqlOsP1vGLqg==
dependencies:
"@babel/code-frame" "^7.10.4"
"@babel/generator" "^7.10.5"
"@babel/helper-module-transforms" "^7.10.5"
"@babel/generator" "^7.11.0"
"@babel/helper-module-transforms" "^7.11.0"
"@babel/helpers" "^7.10.4"
"@babel/parser" "^7.10.5"
"@babel/parser" "^7.11.0"
"@babel/template" "^7.10.4"
"@babel/traverse" "^7.10.5"
"@babel/types" "^7.10.5"
"@babel/traverse" "^7.11.0"
"@babel/types" "^7.11.0"
convert-source-map "^1.7.0"
debug "^4.1.0"
gensync "^1.0.0-beta.1"
@ -40,12 +40,12 @@
semver "^5.4.1"
source-map "^0.5.0"
"@babel/generator@^7.10.5":
version "7.10.5"
resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.10.5.tgz#1b903554bc8c583ee8d25f1e8969732e6b829a69"
integrity sha512-3vXxr3FEW7E7lJZiWQ3bM4+v/Vyr9C+hpolQ8BGFr9Y8Ri2tFLWTixmwKBafDujO1WVah4fhZBeU1bieKdghig==
"@babel/generator@^7.11.0":
version "7.11.0"
resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.11.0.tgz#4b90c78d8c12825024568cbe83ee6c9af193585c"
integrity sha512-fEm3Uzw7Mc9Xi//qU20cBKatTfs2aOtKqmvy/Vm7RkJEGFQ4xc9myCfbXxqK//ZS8MR/ciOHw6meGASJuKmDfQ==
dependencies:
"@babel/types" "^7.10.5"
"@babel/types" "^7.11.0"
jsesc "^2.5.1"
source-map "^0.5.0"
@ -150,17 +150,17 @@
dependencies:
"@babel/types" "^7.10.4"
"@babel/helper-module-transforms@^7.10.4", "@babel/helper-module-transforms@^7.10.5":
version "7.10.5"
resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.10.5.tgz#120c271c0b3353673fcdfd8c053db3c544a260d6"
integrity sha512-4P+CWMJ6/j1W915ITJaUkadLObmCRRSC234uctJfn/vHrsLNxsR8dwlcXv9ZhJWzl77awf+mWXSZEKt5t0OnlA==
"@babel/helper-module-transforms@^7.10.4", "@babel/helper-module-transforms@^7.10.5", "@babel/helper-module-transforms@^7.11.0":
version "7.11.0"
resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.11.0.tgz#b16f250229e47211abdd84b34b64737c2ab2d359"
integrity sha512-02EVu8COMuTRO1TAzdMtpBPbe6aQ1w/8fePD2YgQmxZU4gpNWaL9gK3Jp7dxlkUlUCJOTaSeA+Hrm1BRQwqIhg==
dependencies:
"@babel/helper-module-imports" "^7.10.4"
"@babel/helper-replace-supers" "^7.10.4"
"@babel/helper-simple-access" "^7.10.4"
"@babel/helper-split-export-declaration" "^7.10.4"
"@babel/helper-split-export-declaration" "^7.11.0"
"@babel/template" "^7.10.4"
"@babel/types" "^7.10.5"
"@babel/types" "^7.11.0"
lodash "^4.17.19"
"@babel/helper-optimise-call-expression@^7.10.4":
@ -170,7 +170,7 @@
dependencies:
"@babel/types" "^7.10.4"
"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.8.0":
"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3":
version "7.10.4"
resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz#2f75a831269d4f677de49986dff59927533cf375"
integrity sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==
@ -211,6 +211,13 @@
"@babel/template" "^7.10.4"
"@babel/types" "^7.10.4"
"@babel/helper-skip-transparent-expression-wrappers@^7.11.0":
version "7.11.0"
resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.11.0.tgz#eec162f112c2f58d3af0af125e3bb57665146729"
integrity sha512-0XIdiQln4Elglgjbwo9wuJpL/K7AGCY26kmEt0+pRP0TAj4jjyNq1MjoRvikrTVqKcx4Gysxt4cXvVFXP/JO2Q==
dependencies:
"@babel/types" "^7.11.0"
"@babel/helper-split-export-declaration@^7.10.4":
version "7.10.4"
resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.4.tgz#2c70576eaa3b5609b24cb99db2888cc3fc4251d1"
@ -218,6 +225,13 @@
dependencies:
"@babel/types" "^7.10.4"
"@babel/helper-split-export-declaration@^7.11.0":
version "7.11.0"
resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz#f8a491244acf6a676158ac42072911ba83ad099f"
integrity sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg==
dependencies:
"@babel/types" "^7.11.0"
"@babel/helper-validator-identifier@^7.10.4":
version "7.10.4"
resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz#a78c7a7251e01f616512d31b10adcf52ada5e0d2"
@ -251,10 +265,10 @@
chalk "^2.0.0"
js-tokens "^4.0.0"
"@babel/parser@^7.10.4", "@babel/parser@^7.10.5":
version "7.10.5"
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.10.5.tgz#e7c6bf5a7deff957cec9f04b551e2762909d826b"
integrity sha512-wfryxy4bE1UivvQKSQDU4/X6dr+i8bctjUjj8Zyt3DQy7NtPizJXT8M52nqpNKL+nq2PW8lxk4ZqLj0fD4B4hQ==
"@babel/parser@^7.10.4", "@babel/parser@^7.11.0":
version "7.11.0"
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.11.0.tgz#a9d7e11aead25d3b422d17b2c6502c8dddef6a5d"
integrity sha512-qvRvi4oI8xii8NllyEc4MDJjuZiNaRzyb7Y7lup1NqJV8TZHF4O27CcP+72WPn/k1zkgJ6WJfnIbk4jTsVAZHw==
"@babel/plugin-proposal-async-generator-functions@^7.10.4":
version "7.10.4"
@ -281,6 +295,14 @@
"@babel/helper-plugin-utils" "^7.10.4"
"@babel/plugin-syntax-dynamic-import" "^7.8.0"
"@babel/plugin-proposal-export-namespace-from@^7.10.4":
version "7.10.4"
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.10.4.tgz#570d883b91031637b3e2958eea3c438e62c05f54"
integrity sha512-aNdf0LY6/3WXkhh0Fdb6Zk9j1NMD8ovj3F6r0+3j837Pn1S1PdNtcwJ5EG9WkVPNHPxyJDaxMaAOVq4eki0qbg==
dependencies:
"@babel/helper-plugin-utils" "^7.10.4"
"@babel/plugin-syntax-export-namespace-from" "^7.8.3"
"@babel/plugin-proposal-json-strings@^7.10.4":
version "7.10.4"
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.10.4.tgz#593e59c63528160233bd321b1aebe0820c2341db"
@ -289,6 +311,14 @@
"@babel/helper-plugin-utils" "^7.10.4"
"@babel/plugin-syntax-json-strings" "^7.8.0"
"@babel/plugin-proposal-logical-assignment-operators@^7.11.0":
version "7.11.0"
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.11.0.tgz#9f80e482c03083c87125dee10026b58527ea20c8"
integrity sha512-/f8p4z+Auz0Uaf+i8Ekf1iM7wUNLcViFUGiPxKeXvxTSl63B875YPiVdUDdem7hREcI0E0kSpEhS8tF5RphK7Q==
dependencies:
"@babel/helper-plugin-utils" "^7.10.4"
"@babel/plugin-syntax-logical-assignment-operators" "^7.10.4"
"@babel/plugin-proposal-nullish-coalescing-operator@^7.10.4":
version "7.10.4"
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.10.4.tgz#02a7e961fc32e6d5b2db0649e01bf80ddee7e04a"
@ -305,10 +335,10 @@
"@babel/helper-plugin-utils" "^7.10.4"
"@babel/plugin-syntax-numeric-separator" "^7.10.4"
"@babel/plugin-proposal-object-rest-spread@^7.10.4":
version "7.10.4"
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.10.4.tgz#50129ac216b9a6a55b3853fdd923e74bf553a4c0"
integrity sha512-6vh4SqRuLLarjgeOf4EaROJAHjvu9Gl+/346PbDH9yWbJyfnJ/ah3jmYKYtswEyCoWZiidvVHjHshd4WgjB9BA==
"@babel/plugin-proposal-object-rest-spread@^7.11.0":
version "7.11.0"
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.11.0.tgz#bd81f95a1f746760ea43b6c2d3d62b11790ad0af"
integrity sha512-wzch41N4yztwoRw0ak+37wxwJM2oiIiy6huGCoqkvSTA9acYWcPfn9Y4aJqmFFJ70KTJUu29f3DQ43uJ9HXzEA==
dependencies:
"@babel/helper-plugin-utils" "^7.10.4"
"@babel/plugin-syntax-object-rest-spread" "^7.8.0"
@ -322,12 +352,13 @@
"@babel/helper-plugin-utils" "^7.10.4"
"@babel/plugin-syntax-optional-catch-binding" "^7.8.0"
"@babel/plugin-proposal-optional-chaining@^7.10.4":
version "7.10.4"
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.10.4.tgz#750f1255e930a1f82d8cdde45031f81a0d0adff7"
integrity sha512-ZIhQIEeavTgouyMSdZRap4VPPHqJJ3NEs2cuHs5p0erH+iz6khB0qfgU8g7UuJkG88+fBMy23ZiU+nuHvekJeQ==
"@babel/plugin-proposal-optional-chaining@^7.11.0":
version "7.11.0"
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.11.0.tgz#de5866d0646f6afdaab8a566382fe3a221755076"
integrity sha512-v9fZIu3Y8562RRwhm1BbMRxtqZNFmFA2EG+pT2diuU8PT3H6T/KXoZ54KgYisfOFZHV6PfvAiBIZ9Rcz+/JCxA==
dependencies:
"@babel/helper-plugin-utils" "^7.10.4"
"@babel/helper-skip-transparent-expression-wrappers" "^7.11.0"
"@babel/plugin-syntax-optional-chaining" "^7.8.0"
"@babel/plugin-proposal-private-methods@^7.10.1", "@babel/plugin-proposal-private-methods@^7.10.4":
@ -367,6 +398,13 @@
dependencies:
"@babel/helper-plugin-utils" "^7.8.0"
"@babel/plugin-syntax-export-namespace-from@^7.8.3":
version "7.8.3"
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a"
integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==
dependencies:
"@babel/helper-plugin-utils" "^7.8.3"
"@babel/plugin-syntax-json-strings@^7.8.0":
version "7.8.3"
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a"
@ -374,6 +412,13 @@
dependencies:
"@babel/helper-plugin-utils" "^7.8.0"
"@babel/plugin-syntax-logical-assignment-operators@^7.10.4":
version "7.10.4"
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699"
integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==
dependencies:
"@babel/helper-plugin-utils" "^7.10.4"
"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.0":
version "7.8.3"
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9"
@ -622,12 +667,13 @@
dependencies:
"@babel/helper-plugin-utils" "^7.10.4"
"@babel/plugin-transform-spread@^7.10.4":
version "7.10.4"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.10.4.tgz#4e2c85ea0d6abaee1b24dcfbbae426fe8d674cff"
integrity sha512-1e/51G/Ni+7uH5gktbWv+eCED9pP8ZpRhZB3jOaI3mmzfvJTWHkuyYTv0Z5PYtyM+Tr2Ccr9kUdQxn60fI5WuQ==
"@babel/plugin-transform-spread@^7.11.0":
version "7.11.0"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.11.0.tgz#fa84d300f5e4f57752fe41a6d1b3c554f13f17cc"
integrity sha512-UwQYGOqIdQJe4aWNyS7noqAnN2VbaczPLiEtln+zPowRNlD+79w3oi2TWfYe0eZgd+gjZCbsydN7lzWysDt+gw==
dependencies:
"@babel/helper-plugin-utils" "^7.10.4"
"@babel/helper-skip-transparent-expression-wrappers" "^7.11.0"
"@babel/plugin-transform-sticky-regex@^7.10.4":
version "7.10.4"
@ -675,30 +721,34 @@
core-js "^2.6.5"
regenerator-runtime "^0.13.4"
"@babel/preset-env@^7.10.3":
version "7.10.4"
resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.10.4.tgz#fbf57f9a803afd97f4f32e4f798bb62e4b2bef5f"
integrity sha512-tcmuQ6vupfMZPrLrc38d0sF2OjLT3/bZ0dry5HchNCQbrokoQi4reXqclvkkAT5b+gWc23meVWpve5P/7+w/zw==
"@babel/preset-env@^7.11.0":
version "7.11.0"
resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.11.0.tgz#860ee38f2ce17ad60480c2021ba9689393efb796"
integrity sha512-2u1/k7rG/gTh02dylX2kL3S0IJNF+J6bfDSp4DI2Ma8QN6Y9x9pmAax59fsCk6QUQG0yqH47yJWA+u1I1LccAg==
dependencies:
"@babel/compat-data" "^7.10.4"
"@babel/compat-data" "^7.11.0"
"@babel/helper-compilation-targets" "^7.10.4"
"@babel/helper-module-imports" "^7.10.4"
"@babel/helper-plugin-utils" "^7.10.4"
"@babel/plugin-proposal-async-generator-functions" "^7.10.4"
"@babel/plugin-proposal-class-properties" "^7.10.4"
"@babel/plugin-proposal-dynamic-import" "^7.10.4"
"@babel/plugin-proposal-export-namespace-from" "^7.10.4"
"@babel/plugin-proposal-json-strings" "^7.10.4"
"@babel/plugin-proposal-logical-assignment-operators" "^7.11.0"
"@babel/plugin-proposal-nullish-coalescing-operator" "^7.10.4"
"@babel/plugin-proposal-numeric-separator" "^7.10.4"
"@babel/plugin-proposal-object-rest-spread" "^7.10.4"
"@babel/plugin-proposal-object-rest-spread" "^7.11.0"
"@babel/plugin-proposal-optional-catch-binding" "^7.10.4"
"@babel/plugin-proposal-optional-chaining" "^7.10.4"
"@babel/plugin-proposal-optional-chaining" "^7.11.0"
"@babel/plugin-proposal-private-methods" "^7.10.4"
"@babel/plugin-proposal-unicode-property-regex" "^7.10.4"
"@babel/plugin-syntax-async-generators" "^7.8.0"
"@babel/plugin-syntax-class-properties" "^7.10.4"
"@babel/plugin-syntax-dynamic-import" "^7.8.0"
"@babel/plugin-syntax-export-namespace-from" "^7.8.3"
"@babel/plugin-syntax-json-strings" "^7.8.0"
"@babel/plugin-syntax-logical-assignment-operators" "^7.10.4"
"@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0"
"@babel/plugin-syntax-numeric-separator" "^7.10.4"
"@babel/plugin-syntax-object-rest-spread" "^7.8.0"
@ -731,14 +781,14 @@
"@babel/plugin-transform-regenerator" "^7.10.4"
"@babel/plugin-transform-reserved-words" "^7.10.4"
"@babel/plugin-transform-shorthand-properties" "^7.10.4"
"@babel/plugin-transform-spread" "^7.10.4"
"@babel/plugin-transform-spread" "^7.11.0"
"@babel/plugin-transform-sticky-regex" "^7.10.4"
"@babel/plugin-transform-template-literals" "^7.10.4"
"@babel/plugin-transform-typeof-symbol" "^7.10.4"
"@babel/plugin-transform-unicode-escapes" "^7.10.4"
"@babel/plugin-transform-unicode-regex" "^7.10.4"
"@babel/preset-modules" "^0.1.3"
"@babel/types" "^7.10.4"
"@babel/types" "^7.11.0"
browserslist "^4.12.0"
core-js-compat "^3.6.2"
invariant "^2.2.2"
@ -779,25 +829,25 @@
"@babel/parser" "^7.10.4"
"@babel/types" "^7.10.4"
"@babel/traverse@^7.10.4", "@babel/traverse@^7.10.5":
version "7.10.5"
resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.10.5.tgz#77ce464f5b258be265af618d8fddf0536f20b564"
integrity sha512-yc/fyv2gUjPqzTz0WHeRJH2pv7jA9kA7mBX2tXl/x5iOE81uaVPuGPtaYk7wmkx4b67mQ7NqI8rmT2pF47KYKQ==
"@babel/traverse@^7.10.4", "@babel/traverse@^7.11.0":
version "7.11.0"
resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.11.0.tgz#9b996ce1b98f53f7c3e4175115605d56ed07dd24"
integrity sha512-ZB2V+LskoWKNpMq6E5UUCrjtDUh5IOTAyIl0dTjIEoXum/iKWkoIEKIRDnUucO6f+2FzNkE0oD4RLKoPIufDtg==
dependencies:
"@babel/code-frame" "^7.10.4"
"@babel/generator" "^7.10.5"
"@babel/generator" "^7.11.0"
"@babel/helper-function-name" "^7.10.4"
"@babel/helper-split-export-declaration" "^7.10.4"
"@babel/parser" "^7.10.5"
"@babel/types" "^7.10.5"
"@babel/helper-split-export-declaration" "^7.11.0"
"@babel/parser" "^7.11.0"
"@babel/types" "^7.11.0"
debug "^4.1.0"
globals "^11.1.0"
lodash "^4.17.19"
"@babel/types@^7.10.4", "@babel/types@^7.10.5", "@babel/types@^7.4.4":
version "7.10.5"
resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.10.5.tgz#d88ae7e2fde86bfbfe851d4d81afa70a997b5d15"
integrity sha512-ixV66KWfCI6GKoA/2H9v6bQdbfXEwwpOdQ8cRvb4F+eyvhlaHxWFMQB4+3d9QFJXZsiiiqVrewNV0DFEQpyT4Q==
"@babel/types@^7.10.4", "@babel/types@^7.11.0", "@babel/types@^7.4.4":
version "7.11.0"
resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.11.0.tgz#2ae6bf1ba9ae8c3c43824e5861269871b206e90d"
integrity sha512-O53yME4ZZI0jO1EVGtF1ePGl0LHirG4P1ibcD80XyzZcKhcMFeCXmh4Xb1ifGBIV233Qg12x4rBfQgA+tmOukA==
dependencies:
"@babel/helper-validator-identifier" "^7.10.4"
lodash "^4.17.19"
@ -1616,14 +1666,14 @@ atob@^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.6.1, autoprefixer@^9.8.0, autoprefixer@^9.8.5:
version "9.8.5"
resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.8.5.tgz#2c225de229ddafe1d1424c02791d0c3e10ccccaa"
integrity sha512-C2p5KkumJlsTHoNv9w31NrBRgXhf6eCMteJuHZi2xhkgC+5Vm40MEtCKPhc0qdgAOhox0YPy1SQHTAky05UoKg==
autoprefixer@^9.0.0, autoprefixer@^9.6.1, autoprefixer@^9.8.0, autoprefixer@^9.8.6:
version "9.8.6"
resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.8.6.tgz#3b73594ca1bf9266320c5acf1588d74dea74210f"
integrity sha512-XrvP4VVHdRBCdX1S3WXVD8+RyG9qeb1D5Sn1DeLiG2xfSpzellk5k54xbUERJ3M5DggQxes39UGOTP8CFrEGbg==
dependencies:
browserslist "^4.12.0"
caniuse-lite "^1.0.30001097"
colorette "^1.2.0"
caniuse-lite "^1.0.30001109"
colorette "^1.2.1"
normalize-range "^0.1.2"
num2fraction "^1.2.2"
postcss "^7.0.32"
@ -1857,9 +1907,9 @@ blurhash@^1.1.3:
integrity sha512-yUhPJvXexbqbyijCIE/T2NCXcj9iNPhWmOKbPTuR/cm7Q5snXYIfnVnz6m7MWOXxODMz/Cr3UcVkRdHiuDVRDw==
bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0:
version "4.11.8"
resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f"
integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==
version "4.11.9"
resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.9.tgz#26d556829458f9d1e81fc48952493d0ba3507828"
integrity sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==
boolbase@^1.0.0, boolbase@~1.0.0:
version "1.0.0"
@ -2282,10 +2332,10 @@ caniuse-db@^1.0.30001090:
resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30001093.tgz#5a1cae72d94df1156f40f15d9079456e1b29d050"
integrity sha512-XqXxHR6Z9IN0BXLKMaTJ1NZ+US74cbKritholD6uaDLUWHiDj0QilpSb708wOcoGz0PmPRsXT/6zE+bjx+QSMw==
caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001088, caniuse-lite@^1.0.30001097:
version "1.0.30001099"
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001099.tgz#540118fcc6842d1fde62f4ee5521d1ec6afdb40e"
integrity sha512-sdS9A+sQTk7wKoeuZBN/YMAHVztUfVnjDi4/UV3sDE8xoh7YR12hKW+pIdB3oqKGwr9XaFL2ovfzt9w8eUI5CA==
caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001088, caniuse-lite@^1.0.30001109:
version "1.0.30001109"
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001109.tgz#a9f3f26a0c3753b063d7acbb48dfb9c0e46f2b19"
integrity sha512-4JIXRodHzdS3HdK8nSgIqXYLExOvG+D2/EenSvcub2Kp3QEADjo2v2oUn5g0n0D+UNwG9BtwKOyGcSq2qvQXvQ==
caseless@~0.12.0:
version "0.12.0"
@ -2624,10 +2674,10 @@ color@^3.0.0:
color-convert "^1.9.1"
color-string "^1.5.2"
colorette@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.0.tgz#45306add826d196e8c87236ac05d797f25982e63"
integrity sha512-soRSroY+OF/8OdA3PTQXwaDJeMc7TfknKKrxeSCencL2a4+Tx5zhxmmv7hdpCjhKBjehzp8+bwe/T68K0hpIjw==
colorette@^1.2.1:
version "1.2.1"
resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.1.tgz#4d0b921325c14faf92633086a536db6e89564b1b"
integrity sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==
combined-stream@^1.0.6, combined-stream@~1.0.6:
version "1.0.8"
@ -2968,10 +3018,10 @@ css-has-pseudo@^0.10.0:
postcss "^7.0.6"
postcss-selector-parser "^5.0.0-rc.4"
css-loader@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-4.0.0.tgz#814434d4e1e2d5f430c70e85e78268db7f3cced1"
integrity sha512-/7d5slKnmY2S39FNifJ7JQ8MhcMM/rDIjAZ2Sc/Z8lnOWOmc10hijg28ovBtljY364pQaF01O2nj5AIBDnJ9vQ==
css-loader@^4.1.1:
version "4.1.1"
resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-4.1.1.tgz#48342f098784e75bbfc0933dea2853314fb737d8"
integrity sha512-nZ4OC2g88+wOOdkVQ0yYy7T6uXSkb7I7UyMNnaevQQvVWskTSDRAz08ETl91et4ghVL6jfnzWUt0o2XaY0gyRg==
dependencies:
camelcase "^6.0.0"
cssesc "^3.0.0"
@ -3631,9 +3681,9 @@ electron-to-chromium@^1.3.483:
integrity sha512-NReBdOugu1yl8ly+0VDtiQ6Yw/1sLjnvflWq0gvY1nfUXU2PbA+1XAVuEb7ModnwL/MfUPjby7e4pAFnSHiy6Q==
elliptic@^6.0.0:
version "6.5.2"
resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.2.tgz#05c5678d7173c049d8ca433552224a495d0e3762"
integrity sha512-f4x70okzZbIQl/NSRLkI/+tteV/9WqL98zx+SQ69KbXxmVrmjwsNUPn/gYJJ0sHvEak24cZgHIPegRePAtA/xw==
version "6.5.3"
resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.3.tgz#cb59eb2efdaf73a0bd78ccd7015a62ad6e0f93d6"
integrity sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==
dependencies:
bn.js "^4.4.0"
brorand "^1.0.1"
@ -5417,10 +5467,10 @@ hex-color-regex@^1.1.0:
resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e"
integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==
hls.js@^0.14.6:
version "0.14.6"
resolved "https://registry.yarnpkg.com/hls.js/-/hls.js-0.14.6.tgz#f5ea8412ccd980fec67ec94a40b65adcc0bf75d1"
integrity sha512-6s8L+Pzed3Gyf7wDxQNx9TP9y9clCDIPW8cQdDV7PF7npI75BbCbUZSQQclnt20442Ay1NL3vg2WXeSEYNiuAw==
hls.js@^0.14.7:
version "0.14.7"
resolved "https://registry.yarnpkg.com/hls.js/-/hls.js-0.14.7.tgz#47fbd2662b13121ab17c07aea06b1c07828240cf"
integrity sha512-9JY0D9nwMrfQPRWc8/kEJTKK0TYfDTzIs6Xq+gdCvasRxdvQKQ2T76rdueTkS0AsFV6sQlJN0wxbnI44aRvvUA==
dependencies:
eventemitter3 "^4.0.3"
url-toolkit "^2.1.6"
@ -11953,10 +12003,10 @@ webpack-stream@^5.2.1:
vinyl "^2.1.0"
webpack "^4.26.1"
webpack@^4.26.1, webpack@^4.44.0:
version "4.44.0"
resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.44.0.tgz#3b08f88a89470175f036f4a9496b8a0428668802"
integrity sha512-wAuJxK123sqAw31SpkPiPW3iKHgFUiKvO7E7UZjtdExcsRe3fgav4mvoMM7vvpjLHVoJ6a0Mtp2fzkoA13e0Zw==
webpack@^4.26.1, webpack@^4.44.1:
version "4.44.1"
resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.44.1.tgz#17e69fff9f321b8f117d1fda714edfc0b939cc21"
integrity sha512-4UOGAohv/VGUNQJstzEywwNxqX417FnjZgZJpJQegddzPmTvph37eBIRbRTfdySXzVtJXLJfbMN3mMYhM6GdmQ==
dependencies:
"@webassemblyjs/ast" "1.9.0"
"@webassemblyjs/helper-module-context" "1.9.0"