diff --git a/dashboard-ui/bower_components/emby-webcomponents/.bower.json b/dashboard-ui/bower_components/emby-webcomponents/.bower.json
index 03ae29d769..05fcd61dfa 100644
--- a/dashboard-ui/bower_components/emby-webcomponents/.bower.json
+++ b/dashboard-ui/bower_components/emby-webcomponents/.bower.json
@@ -15,12 +15,12 @@
},
"devDependencies": {},
"ignore": [],
- "version": "1.4.12",
- "_release": "1.4.12",
+ "version": "1.4.13",
+ "_release": "1.4.13",
"_resolution": {
"type": "version",
- "tag": "1.4.12",
- "commit": "56918a494d703b9b3d47e47d28c0ff580eb5a002"
+ "tag": "1.4.13",
+ "commit": "401894f5ab418314a88790ed9f41c59aa95d70bb"
},
"_source": "https://github.com/MediaBrowser/emby-webcomponents.git",
"_target": "^1.2.0",
diff --git a/dashboard-ui/bower_components/emby-webcomponents/dialoghelper/dialoghelper.js b/dashboard-ui/bower_components/emby-webcomponents/dialoghelper/dialoghelper.js
index 8243d9de23..025ce29a18 100644
--- a/dashboard-ui/bower_components/emby-webcomponents/dialoghelper/dialoghelper.js
+++ b/dashboard-ui/bower_components/emby-webcomponents/dialoghelper/dialoghelper.js
@@ -163,7 +163,7 @@
// Without this, seeing some script errors in Firefox
// Also for some reason it won't auto-focus without a delay here, still investigating that
- var delay = enableAnimation() ? 300 : 0;
+ var delay = enableAnimation() ? 300 : 300;
setTimeout(function () {
focusManager.autoFocus(dlg);
diff --git a/dashboard-ui/bower_components/emby-webcomponents/guide/guide.js b/dashboard-ui/bower_components/emby-webcomponents/guide/guide.js
index cb5a021c12..b549dc7fee 100644
--- a/dashboard-ui/bower_components/emby-webcomponents/guide/guide.js
+++ b/dashboard-ui/bower_components/emby-webcomponents/guide/guide.js
@@ -7,8 +7,7 @@
self.refresh = function () {
- var date = new Date();
- changeDate(options.element, date);
+ reloadPage(options.element);
};
self.destroy = function () {
diff --git a/dashboard-ui/bower_components/emby-webcomponents/images/imagehelper.js b/dashboard-ui/bower_components/emby-webcomponents/images/imagehelper.js
index dbc8d88969..f301b9a240 100644
--- a/dashboard-ui/bower_components/emby-webcomponents/images/imagehelper.js
+++ b/dashboard-ui/bower_components/emby-webcomponents/images/imagehelper.js
@@ -56,7 +56,7 @@ define(['visibleinviewport', 'imageFetcher', 'layoutManager', 'events', 'browser
var wheelEvent = (document.implementation.hasFeature('Event.wheel', '3.0') ? 'wheel' : 'mousewheel');
var self = {};
- var enableFade = browser.animate && !browser.mobile;
+ var enableFade = browser.animate && !browser.mobile && !browser.operaTv;
function fillImage(elem, source, enableEffects) {
if (!source) {
diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/da.json b/dashboard-ui/bower_components/emby-webcomponents/strings/da.json
index 2237bff90a..d3be52064a 100644
--- a/dashboard-ui/bower_components/emby-webcomponents/strings/da.json
+++ b/dashboard-ui/bower_components/emby-webcomponents/strings/da.json
@@ -68,5 +68,16 @@
"MessageItemsAdded": "Items added.",
"OptionNew": "New...",
"LabelPlaylist": "Playlist:",
- "AddToPlaylist": "Add to Playlist"
+ "AddToPlaylist": "Add to Playlist",
+ "Subtitles": "Subtitles",
+ "DownloadSubtitles": "Download Subtitles",
+ "LabelLanguage": "Language:",
+ "Search": "Search",
+ "NoSubtitleSearchResultsFound": "No results found.",
+ "File": "File",
+ "MessageAreYouSureDeleteSubtitles": "Are you sure you wish to delete this subtitle file?",
+ "ConfirmDeletion": "Confirm Deletion",
+ "MySubtitles": "My Subtitles",
+ "MessageDownloadQueued": "Download queued.",
+ "EditSubtitles": "Edit Subtitles"
}
\ No newline at end of file
diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/de.json b/dashboard-ui/bower_components/emby-webcomponents/strings/de.json
index 6a4160af3c..a596c502bf 100644
--- a/dashboard-ui/bower_components/emby-webcomponents/strings/de.json
+++ b/dashboard-ui/bower_components/emby-webcomponents/strings/de.json
@@ -68,5 +68,16 @@
"MessageItemsAdded": "Eintr\u00e4ge hinzugef\u00fcgt",
"OptionNew": "Neu...",
"LabelPlaylist": "Wiedergabeliste",
- "AddToPlaylist": "Zur Wiedergabeliste hinzuf\u00fcgen"
+ "AddToPlaylist": "Zur Wiedergabeliste hinzuf\u00fcgen",
+ "Subtitles": "Subtitles",
+ "DownloadSubtitles": "Download Subtitles",
+ "LabelLanguage": "Language:",
+ "Search": "Search",
+ "NoSubtitleSearchResultsFound": "No results found.",
+ "File": "File",
+ "MessageAreYouSureDeleteSubtitles": "Are you sure you wish to delete this subtitle file?",
+ "ConfirmDeletion": "Confirm Deletion",
+ "MySubtitles": "My Subtitles",
+ "MessageDownloadQueued": "Download queued.",
+ "EditSubtitles": "Edit Subtitles"
}
\ No newline at end of file
diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/es-MX.json b/dashboard-ui/bower_components/emby-webcomponents/strings/es-MX.json
index 5d29eaa1c8..b5ae27c2eb 100644
--- a/dashboard-ui/bower_components/emby-webcomponents/strings/es-MX.json
+++ b/dashboard-ui/bower_components/emby-webcomponents/strings/es-MX.json
@@ -68,5 +68,16 @@
"MessageItemsAdded": "\u00cdtems agregados.",
"OptionNew": "Nuevo...",
"LabelPlaylist": "Lista de Reproducci\u00f3n:",
- "AddToPlaylist": "Agregar a lista de reproducci\u00f3n"
+ "AddToPlaylist": "Agregar a lista de reproducci\u00f3n",
+ "Subtitles": "Subtitles",
+ "DownloadSubtitles": "Download Subtitles",
+ "LabelLanguage": "Language:",
+ "Search": "Search",
+ "NoSubtitleSearchResultsFound": "No results found.",
+ "File": "File",
+ "MessageAreYouSureDeleteSubtitles": "Are you sure you wish to delete this subtitle file?",
+ "ConfirmDeletion": "Confirm Deletion",
+ "MySubtitles": "My Subtitles",
+ "MessageDownloadQueued": "Download queued.",
+ "EditSubtitles": "Edit Subtitles"
}
\ No newline at end of file
diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/kk.json b/dashboard-ui/bower_components/emby-webcomponents/strings/kk.json
index 988232e2d3..3300d24f8a 100644
--- a/dashboard-ui/bower_components/emby-webcomponents/strings/kk.json
+++ b/dashboard-ui/bower_components/emby-webcomponents/strings/kk.json
@@ -23,9 +23,9 @@
"ButtonOk": "\u0416\u0430\u0440\u0430\u0439\u0434\u044b",
"ButtonCancel": "\u0411\u043e\u043b\u0434\u044b\u0440\u043c\u0430\u0443",
"ButtonGotIt": "\u0422\u04af\u0441\u0456\u043d\u0456\u043a\u0442\u0456",
- "RecordingCancelled": "Recording cancelled.",
+ "RecordingCancelled": "\u0416\u0430\u0437\u0431\u0430 \u0431\u043e\u043b\u0434\u044b\u0440\u044b\u043b\u043c\u0430\u0434\u044b.",
"RecordingScheduled": "\u0416\u0430\u0437\u0443 \u0436\u043e\u0441\u043f\u0430\u0440\u043b\u0430\u0493\u0430\u043d.",
- "SeriesRecordingScheduled": "Series recording scheduled.",
+ "SeriesRecordingScheduled": "\u0422\u0435\u043b\u0435\u0445\u0438\u043a\u0430\u044f \u0436\u0430\u0437\u0443\u044b \u0436\u043e\u0441\u043f\u0430\u0440\u043b\u0430\u0493\u0430\u043d.",
"HeaderNewRecording": "\u0416\u0430\u04a3\u0430 \u0436\u0430\u0437\u0443",
"Sunday": "\u0436\u0435\u043a\u0441\u0435\u043d\u0431\u0456",
"Monday": "\u0434\u04af\u0439\u0441\u0435\u043d\u0431\u0456",
@@ -68,5 +68,16 @@
"MessageItemsAdded": "\u0422\u0430\u0440\u043c\u0430\u049b\u0442\u0430\u0440 \u04af\u0441\u0442\u0435\u043b\u0433\u0435\u043d.",
"OptionNew": "\u0416\u0430\u04a3\u0430...",
"LabelPlaylist": "\u041e\u0439\u043d\u0430\u0442\u0443 \u0442\u0456\u0437\u0456\u043c\u0456:",
- "AddToPlaylist": "\u041e\u0439\u043d\u0430\u0442\u0443 \u0442\u0456\u0437\u0456\u043c\u0456\u043d\u0435 \u04af\u0441\u0442\u0435\u0443"
+ "AddToPlaylist": "\u041e\u0439\u043d\u0430\u0442\u0443 \u0442\u0456\u0437\u0456\u043c\u0456\u043d\u0435 \u04af\u0441\u0442\u0435\u0443",
+ "Subtitles": "Subtitles",
+ "DownloadSubtitles": "Download Subtitles",
+ "LabelLanguage": "Language:",
+ "Search": "Search",
+ "NoSubtitleSearchResultsFound": "No results found.",
+ "File": "File",
+ "MessageAreYouSureDeleteSubtitles": "Are you sure you wish to delete this subtitle file?",
+ "ConfirmDeletion": "Confirm Deletion",
+ "MySubtitles": "My Subtitles",
+ "MessageDownloadQueued": "Download queued.",
+ "EditSubtitles": "Edit Subtitles"
}
\ No newline at end of file
diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/nb.json b/dashboard-ui/bower_components/emby-webcomponents/strings/nb.json
index a80ea89309..6a11191ab8 100644
--- a/dashboard-ui/bower_components/emby-webcomponents/strings/nb.json
+++ b/dashboard-ui/bower_components/emby-webcomponents/strings/nb.json
@@ -68,5 +68,16 @@
"MessageItemsAdded": "Elementer lagt til.",
"OptionNew": "Ny",
"LabelPlaylist": "Spilleliste:",
- "AddToPlaylist": "Legg til i Spilleliste"
+ "AddToPlaylist": "Legg til i Spilleliste",
+ "Subtitles": "Subtitles",
+ "DownloadSubtitles": "Download Subtitles",
+ "LabelLanguage": "Language:",
+ "Search": "Search",
+ "NoSubtitleSearchResultsFound": "No results found.",
+ "File": "File",
+ "MessageAreYouSureDeleteSubtitles": "Are you sure you wish to delete this subtitle file?",
+ "ConfirmDeletion": "Confirm Deletion",
+ "MySubtitles": "My Subtitles",
+ "MessageDownloadQueued": "Download queued.",
+ "EditSubtitles": "Edit Subtitles"
}
\ No newline at end of file
diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/nl.json b/dashboard-ui/bower_components/emby-webcomponents/strings/nl.json
index fe012f7afc..75504336ea 100644
--- a/dashboard-ui/bower_components/emby-webcomponents/strings/nl.json
+++ b/dashboard-ui/bower_components/emby-webcomponents/strings/nl.json
@@ -68,5 +68,16 @@
"MessageItemsAdded": "Items added.",
"OptionNew": "New...",
"LabelPlaylist": "Playlist:",
- "AddToPlaylist": "Add to Playlist"
+ "AddToPlaylist": "Add to Playlist",
+ "Subtitles": "Subtitles",
+ "DownloadSubtitles": "Download Subtitles",
+ "LabelLanguage": "Language:",
+ "Search": "Search",
+ "NoSubtitleSearchResultsFound": "No results found.",
+ "File": "File",
+ "MessageAreYouSureDeleteSubtitles": "Are you sure you wish to delete this subtitle file?",
+ "ConfirmDeletion": "Confirm Deletion",
+ "MySubtitles": "My Subtitles",
+ "MessageDownloadQueued": "Download queued.",
+ "EditSubtitles": "Edit Subtitles"
}
\ No newline at end of file
diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/pt-BR.json b/dashboard-ui/bower_components/emby-webcomponents/strings/pt-BR.json
new file mode 100644
index 0000000000..562d2e339e
--- /dev/null
+++ b/dashboard-ui/bower_components/emby-webcomponents/strings/pt-BR.json
@@ -0,0 +1,83 @@
+{
+ "ValueSpecialEpisodeName": "Especial - {0}",
+ "Share": "Compartilhar",
+ "ServerUpdateNeeded": "Este servidor Emby precisa ser atualizado. Para baixar a \u00faltima vers\u00e3o, por favor visite {0}",
+ "LiveTvGuideRequiresUnlock": "O Guia da TV ao Vivo atualmente est\u00e1 limitado a {0} canais. Clique no bot\u00e3o desbloquear para aprender como aproveitar a experi\u00eancia completa.",
+ "AttributeNew": "Novo",
+ "AttributePremiere": "Estr\u00e9ia",
+ "AttributeLive": "Ao Vivo",
+ "TrackCount": "{0} faixas",
+ "ItemCount": "{0} itens",
+ "ValueSeriesYearToPresent": "{0}-Present",
+ "ReleaseYearValue": "Ano de lan\u00e7amento: {0}",
+ "OriginalAirDateValue": "Data de exibi\u00e7\u00e3o original: {0}",
+ "EndsAtValue": "Termina \u00e0s {0}",
+ "OptionSundayShort": "Dom",
+ "OptionMondayShort": "Seg",
+ "OptionTuesdayShort": "Ter",
+ "OptionWednesdayShort": "Qua",
+ "OptionThursdayShort": "Qui",
+ "OptionFridayShort": "Sex",
+ "OptionSaturdayShort": "S\u00e1b",
+ "HeaderSelectDate": "Selecionar Data",
+ "ButtonOk": "Ok",
+ "ButtonCancel": "Cancelar",
+ "ButtonGotIt": "Entendi",
+ "RecordingCancelled": "Grava\u00e7\u00e3o cancelada.",
+ "RecordingScheduled": "Grava\u00e7\u00e3o agendada.",
+ "SeriesRecordingScheduled": "Grava\u00e7\u00e3o de s\u00e9rie agendada.",
+ "HeaderNewRecording": "Nova grava\u00e7\u00e3o.",
+ "Sunday": "Domingo",
+ "Monday": "Segunda-feira",
+ "Tuesday": "Ter\u00e7a-feira",
+ "Wednesday": "Quarta-feira",
+ "Thursday": "Quinta-feira",
+ "Friday": "Sexta-feira",
+ "Saturday": "S\u00e1bado",
+ "Days": "Dias",
+ "RecordSeries": "Gravar s\u00e9rie",
+ "LabelPrePaddingMinutes": "Minutos de anteced\u00eancia:",
+ "LabelPostPaddingMinutes": "Minutos p\u00f3s-t\u00e9rmino:",
+ "RecordOnAllChannels": "Gravar em todos os canais",
+ "RecordAnytime": "Gravar a qualquer momento",
+ "RecordOnlyNewEpisodes": "Gravar apenas novos epis\u00f3dios",
+ "HeaderBecomeProjectSupporter": "Obter Emby Premiere",
+ "HeaderEnjoyDayTrial": "Aproveite um per\u00edodo de 14 dias gr\u00e1tis para testes",
+ "MessageActiveSubscriptionRequiredSeriesRecordings": "Uma subscri\u00e7\u00e3o ativa do Emby Premiere \u00e9 requerida para criar a grava\u00e7\u00e3o automatizada de s\u00e9ries.",
+ "OptionConvertRecordingsToStreamingFormat": "Converter automaticamente grava\u00e7\u00f5es para um formato amig\u00e1vel de streaming",
+ "OptionConvertRecordingsToStreamingFormatHelp": "Grava\u00e7\u00f5es ser\u00e3o convertidas automaticamente para MP4 para uma reprodu\u00e7\u00e3o mais f\u00e1cil em seus dispositivos.",
+ "FeatureRequiresEmbyPremiere": "Este recurso requer uma subscri\u00e7\u00e3o ativa do Emby Premiere",
+ "Record": "Gravar",
+ "Save": "Salvar",
+ "Edit": "Editar",
+ "Download": "Baixar",
+ "Advanced": "Avan\u00e7ado",
+ "Delete": "Excluir",
+ "HeaderDeleteItem": "Excluir item",
+ "ConfirmDeleteItem": "Excluir este item o excluir\u00e1 do sistema de arquivos e tamb\u00e9m da biblioteca de m\u00eddia. Deseja realmente continuar?",
+ "Refresh": "Atualizar",
+ "RefreshQueued": "Atualiza\u00e7\u00e3o iniciada.",
+ "AddToCollection": "Adicionar \u00e0 Colet\u00e2nea",
+ "NewCollection": "Nova Colet\u00e2nea",
+ "LabelCollection": "Colet\u00e2nea:",
+ "Help": "Ajuda",
+ "NewCollectionHelp": "Colet\u00e2neas permitem que voc\u00ea crie grupos personalizados de filmes e outros conte\u00fados da biblioteca.",
+ "SearchForCollectionInternetMetadata": "Buscar artwork e metadados na internet",
+ "LabelName": "Nome:",
+ "NewCollectionNameExample": "Exemplo: Colet\u00e2nea Star Wars",
+ "MessageItemsAdded": "Itens adicionados.",
+ "OptionNew": "Novo...",
+ "LabelPlaylist": "Lista de Reprodu\u00e7\u00e3o:",
+ "AddToPlaylist": "Adicionar \u00e0 lista de reprodu\u00e7\u00e3o",
+ "Subtitles": "Subtitles",
+ "DownloadSubtitles": "Download Subtitles",
+ "LabelLanguage": "Language:",
+ "Search": "Search",
+ "NoSubtitleSearchResultsFound": "No results found.",
+ "File": "File",
+ "MessageAreYouSureDeleteSubtitles": "Are you sure you wish to delete this subtitle file?",
+ "ConfirmDeletion": "Confirm Deletion",
+ "MySubtitles": "My Subtitles",
+ "MessageDownloadQueued": "Download queued.",
+ "EditSubtitles": "Edit Subtitles"
+}
\ No newline at end of file
diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/ru.json b/dashboard-ui/bower_components/emby-webcomponents/strings/ru.json
index e29052bd45..d6c99c2084 100644
--- a/dashboard-ui/bower_components/emby-webcomponents/strings/ru.json
+++ b/dashboard-ui/bower_components/emby-webcomponents/strings/ru.json
@@ -5,12 +5,12 @@
"LiveTvGuideRequiresUnlock": "\u0412 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u0435 \u0432\u0440\u0435\u043c\u044f \u0442\u0435\u043b\u0435\u0433\u0438\u0434 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d {0} \u043a\u0430\u043d\u0430\u043b(\u043e\u043c\/\u0430\u043c\u0438). \u041d\u0430\u0436\u043c\u0438\u0442\u0435 \u043a\u043d\u043e\u043f\u043a\u0443 \u0420\u0430\u0437\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u0447\u0442\u043e\u0431\u044b \u0443\u0437\u043d\u0430\u0442\u044c \u043a\u0430\u043a \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043f\u043e\u043b\u043d\u044b\u0439 \u044d\u0444\u0444\u0435\u043a\u0442.",
"AttributeNew": "\u041d\u043e\u0432\u043e\u0435",
"AttributePremiere": "\u041f\u0440\u0435\u043c\u044c\u0435\u0440\u0430",
- "AttributeLive": "\u042d\u0444\u0438\u0440",
+ "AttributeLive": "\u042d\u0444\u0438\u0440\u043d\u043e\u0435",
"TrackCount": "{0} \u0434\u043e\u0440\u043e\u0436(\u043a\u0438\/\u0435\u043a)",
"ItemCount": "{0} \u044d\u043b\u0435\u043c\u0435\u043d\u0442(\u0430\/\u043e\u0432)",
"ValueSeriesYearToPresent": "{0} - \u041d.\u0412.",
"ReleaseYearValue": "\u0413\u043e\u0434 \u0432\u044b\u043f\u0443\u0441\u043a\u0430: {0}",
- "OriginalAirDateValue": "\u0414\u0430\u0442\u0430 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u044d\u0444\u0438\u0440\u0430: {0}",
+ "OriginalAirDateValue": "\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u044d\u0444\u0438\u0440: {0}",
"EndsAtValue": "\u041a\u043e\u043d\u0435\u0446 \u0432 {0}",
"OptionSundayShort": "\u0432\u0441\u043a",
"OptionMondayShort": "\u043f\u043d\u0434",
@@ -23,9 +23,9 @@
"ButtonOk": "\u041e\u043a",
"ButtonCancel": "\u041e\u0442\u043c\u0435\u043d\u0438\u0442\u044c",
"ButtonGotIt": "\u041f\u043e\u043d\u044f\u0442\u043d\u043e",
- "RecordingCancelled": "Recording cancelled.",
+ "RecordingCancelled": "\u0417\u0430\u043f\u0438\u0441\u044c \u043e\u0442\u043c\u0435\u043d\u0435\u043d\u0430.",
"RecordingScheduled": "\u0417\u0430\u043f\u0438\u0441\u044c \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0430.",
- "SeriesRecordingScheduled": "Series recording scheduled.",
+ "SeriesRecordingScheduled": "\u0417\u0430\u043f\u0438\u0441\u044c \u0441\u0435\u0440\u0438\u0430\u043b\u0430 \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0430.",
"HeaderNewRecording": "\u041d\u043e\u0432\u0430\u044f \u0437\u0430\u043f\u0438\u0441\u044c",
"Sunday": "\u0432\u043e\u0441\u043a\u0440\u0435\u0441\u0435\u043d\u044c\u0435",
"Monday": "\u043f\u043e\u043d\u0435\u0434\u0435\u043b\u044c\u043d\u0438\u043a",
@@ -41,10 +41,10 @@
"RecordOnAllChannels": "\u0417\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u0441\u043e \u0432\u0441\u0435\u0445 \u043a\u0430\u043d\u0430\u043b\u043e\u0432",
"RecordAnytime": "\u0417\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u0432 \u043b\u044e\u0431\u043e\u0435 \u0432\u0440\u0435\u043c\u044f",
"RecordOnlyNewEpisodes": "\u0417\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u043e\u0432\u044b\u0435 \u044d\u043f\u0438\u0437\u043e\u0434\u044b",
- "HeaderBecomeProjectSupporter": "\u041f\u0440\u0438\u043e\u0431\u0440\u0435\u0441\u0442\u0438 Emby Premiere",
+ "HeaderBecomeProjectSupporter": "\u041f\u0440\u0438\u043e\u0431\u0440\u0435\u0442\u0435\u043d\u0438\u0435 Emby Premiere",
"HeaderEnjoyDayTrial": "\u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e \u043d\u0430 14 \u0434\u043d\u0435\u0439",
"MessageActiveSubscriptionRequiredSeriesRecordings": "\u0414\u0435\u0439\u0441\u0442\u0432\u0443\u044e\u0449\u0430\u044f \u043f\u043e\u0434\u043f\u0438\u0441\u043a\u0430 Emby Premiere \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0437\u0430\u043f\u0438\u0441\u0438 \u0441\u0435\u0440\u0438\u0439.",
- "OptionConvertRecordingsToStreamingFormat": "\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u044b\u0432\u0430\u0442\u044c \u0437\u0430\u043f\u0438\u0441\u0438 \u0432 \u0443\u0434\u043e\u0431\u043d\u044b\u0439 \u0434\u043b\u044f \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u0438 \u0444\u043e\u0440\u043c\u0430\u0442",
+ "OptionConvertRecordingsToStreamingFormat": "\u0417\u0430\u043f\u0438\u0441\u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u044e\u0442\u0441\u044f \u0432 \u0443\u0434\u043e\u0431\u043d\u044b\u0439 \u0434\u043b\u044f \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u0438 \u0444\u043e\u0440\u043c\u0430\u0442",
"OptionConvertRecordingsToStreamingFormatHelp": "\u0417\u0430\u043f\u0438\u0441\u0438 \u0431\u0443\u0434\u0443\u0442 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0432 MP4 \u0434\u043b\u044f \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430 \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u043d\u0430 \u0432\u0430\u0448\u0438\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u0445.",
"FeatureRequiresEmbyPremiere": "\u0414\u043b\u044f \u0434\u0430\u043d\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0434\u0435\u0439\u0441\u0442\u0432\u0443\u044e\u0449\u0430\u044f \u043f\u043e\u0434\u043f\u0438\u0441\u043a\u0430 Emby Premiere.",
"Record": "\u0417\u0430\u043f\u0438\u0441\u0430\u0442\u044c",
@@ -68,5 +68,16 @@
"MessageItemsAdded": "\u042d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u044b.",
"OptionNew": "\u041d\u043e\u0432\u043e\u0435...",
"LabelPlaylist": "\u041f\u043b\u0435\u0439-\u043b\u0438\u0441\u0442:",
- "AddToPlaylist": "\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0432 \u043f\u043b\u0435\u0439-\u043b\u0438\u0441\u0442"
+ "AddToPlaylist": "\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0432 \u043f\u043b\u0435\u0439-\u043b\u0438\u0441\u0442",
+ "Subtitles": "Subtitles",
+ "DownloadSubtitles": "Download Subtitles",
+ "LabelLanguage": "Language:",
+ "Search": "Search",
+ "NoSubtitleSearchResultsFound": "No results found.",
+ "File": "File",
+ "MessageAreYouSureDeleteSubtitles": "Are you sure you wish to delete this subtitle file?",
+ "ConfirmDeletion": "Confirm Deletion",
+ "MySubtitles": "My Subtitles",
+ "MessageDownloadQueued": "Download queued.",
+ "EditSubtitles": "Edit Subtitles"
}
\ No newline at end of file
diff --git a/dashboard-ui/bower_components/emby-webcomponents/subtitleeditor/subtitleeditor.template.html b/dashboard-ui/bower_components/emby-webcomponents/subtitleeditor/subtitleeditor.template.html
index 05d776f922..f3c86909e8 100644
--- a/dashboard-ui/bower_components/emby-webcomponents/subtitleeditor/subtitleeditor.template.html
+++ b/dashboard-ui/bower_components/emby-webcomponents/subtitleeditor/subtitleeditor.template.html
@@ -17,7 +17,7 @@
- ${Search}
+ ${Search}
diff --git a/dashboard-ui/bower_components/emby-webcomponents/viewmanager/viewcontainer-lite.js b/dashboard-ui/bower_components/emby-webcomponents/viewmanager/viewcontainer-lite.js
index 773ce5ccf6..9d8a2e9187 100644
--- a/dashboard-ui/bower_components/emby-webcomponents/viewmanager/viewcontainer-lite.js
+++ b/dashboard-ui/bower_components/emby-webcomponents/viewmanager/viewcontainer-lite.js
@@ -12,6 +12,10 @@ define(['browser', 'css!./viewcontainer-lite'], function (browser) {
return false;
}
+ if (browser.operaTv) {
+ return false;
+ }
+
return true;
}
diff --git a/dashboard-ui/bower_components/polymer/.bower.json b/dashboard-ui/bower_components/polymer/.bower.json
index 3e8a4009a3..4782b3c50f 100644
--- a/dashboard-ui/bower_components/polymer/.bower.json
+++ b/dashboard-ui/bower_components/polymer/.bower.json
@@ -1,6 +1,6 @@
{
"name": "polymer",
- "version": "1.4.0",
+ "version": "1.5.0",
"main": [
"polymer.html",
"polymer-mini.html",
@@ -10,7 +10,12 @@
"ignore": [
"/.*",
"/test/",
- "gen-changelog.sh"
+ "/util/",
+ "/explainer/",
+ "gulpfile.js",
+ "PRIMER.md",
+ "CONTRIBUTING.md",
+ "CHANGELOG.md"
],
"authors": [
"The Polymer Authors (http://polymer.github.io/AUTHORS.txt)"
@@ -27,11 +32,11 @@
},
"private": true,
"homepage": "https://github.com/Polymer/polymer",
- "_release": "1.4.0",
+ "_release": "1.5.0",
"_resolution": {
"type": "version",
- "tag": "v1.4.0",
- "commit": "11c987b2eb3c73b388a79fc8aaea8ca01624f514"
+ "tag": "v1.5.0",
+ "commit": "ce5b9fb2d8aa03c698410e2e55cffcfa0b788a3a"
},
"_source": "git://github.com/Polymer/polymer.git",
"_target": "^1.0.0",
diff --git a/dashboard-ui/bower_components/polymer/bower.json b/dashboard-ui/bower_components/polymer/bower.json
index a3174857ed..c34ec481b3 100644
--- a/dashboard-ui/bower_components/polymer/bower.json
+++ b/dashboard-ui/bower_components/polymer/bower.json
@@ -1,6 +1,6 @@
{
"name": "polymer",
- "version": "1.4.0",
+ "version": "1.5.0",
"main": [
"polymer.html",
"polymer-mini.html",
@@ -10,7 +10,12 @@
"ignore": [
"/.*",
"/test/",
- "gen-changelog.sh"
+ "/util/",
+ "/explainer/",
+ "gulpfile.js",
+ "PRIMER.md",
+ "CONTRIBUTING.md",
+ "CHANGELOG.md"
],
"authors": [
"The Polymer Authors (http://polymer.github.io/AUTHORS.txt)"
diff --git a/dashboard-ui/bower_components/polymer/polymer-micro.html b/dashboard-ui/bower_components/polymer/polymer-micro.html
index cd3b5ea525..8953e19429 100644
--- a/dashboard-ui/bower_components/polymer/polymer-micro.html
+++ b/dashboard-ui/bower_components/polymer/polymer-micro.html
@@ -23,8 +23,7 @@ resolve();
addEventListener('DOMContentLoaded', resolve);
}
}
-}());
-window.Polymer = {
+}());window.Polymer = {
Settings: function () {
var settings = window.Polymer || {};
var parts = location.search.slice(1).split('&');
@@ -43,8 +42,7 @@ settings.useNativeShadow = settings.useShadow && settings.nativeShadow;
settings.usePolyfillProto = !settings.useNativeCustomElements && !Object.__proto__;
return settings;
}()
-};
-(function () {
+};(function () {
var userPolymer = window.Polymer;
window.Polymer = function (prototype) {
if (typeof prototype === 'function') {
@@ -91,15 +89,13 @@ Polymer.log && this._regLog(prototype);
dumpRegistrations: function () {
this.registrations.forEach(this._regLog);
}
-};
-Object.defineProperty(window, 'currentImport', {
+};Object.defineProperty(window, 'currentImport', {
enumerable: true,
configurable: true,
get: function () {
return (document._currentScript || document.currentScript).ownerDocument;
}
-});
-Polymer.RenderStatus = {
+});Polymer.RenderStatus = {
_ready: false,
_callbacks: [],
whenReady: function (cb) {
@@ -167,8 +163,7 @@ Polymer.RenderStatus._catchFirstRender();
Polymer.RenderStatus._catchFirstRender();
}
Polymer.ImportStatus = Polymer.RenderStatus;
-Polymer.ImportStatus.whenLoaded = Polymer.ImportStatus.whenReady;
-(function () {
+Polymer.ImportStatus.whenLoaded = Polymer.ImportStatus.whenReady;(function () {
'use strict';
var settings = Polymer.Settings;
Polymer.Base = {
@@ -203,6 +198,9 @@ if (proto._finishRegisterFeatures) {
proto._finishRegisterFeatures();
}
proto._doBehavior('registered');
+if (settings.usePolyfillProto && proto !== this) {
+proto.extend(this, proto);
+}
}
},
attachedCallback: function () {
@@ -213,8 +211,11 @@ self._doBehavior('attached');
});
},
detachedCallback: function () {
-this.isAttached = false;
-this._doBehavior('detached');
+var self = this;
+Polymer.RenderStatus.whenReady(function () {
+self.isAttached = false;
+self._doBehavior('detached');
+});
},
attributeChangedCallback: function (name, oldValue, newValue) {
this._attributeChangedImpl(name);
@@ -248,15 +249,36 @@ if (pd) {
Object.defineProperty(target, name, pd);
}
},
-_log: console.log.apply.bind(console.log, console),
-_warn: console.warn.apply.bind(console.warn, console),
-_error: console.error.apply.bind(console.error, console),
+_logger: function (level, args) {
+if (args.length === 1 && Array.isArray(args[0])) {
+args = args[0];
+}
+switch (level) {
+case 'log':
+case 'warn':
+case 'error':
+console[level].apply(console, args);
+break;
+}
+},
+_log: function () {
+var args = Array.prototype.slice.call(arguments, 0);
+this._logger('log', args);
+},
+_warn: function () {
+var args = Array.prototype.slice.call(arguments, 0);
+this._logger('warn', args);
+},
+_error: function () {
+var args = Array.prototype.slice.call(arguments, 0);
+this._logger('error', args);
+},
_logf: function () {
-return this._logPrefix.concat([this.is]).concat(Array.prototype.slice.call(arguments, 0));
+return this._logPrefix.concat(this.is).concat(Array.prototype.slice.call(arguments, 0));
}
};
Polymer.Base._logPrefix = function () {
-var color = window.chrome || /firefox/i.test(navigator.userAgent);
+var color = window.chrome && !/edge/i.test(navigator.userAgent) || /firefox/i.test(navigator.userAgent);
return color ? [
'%c[%s::%s]:',
'font-weight: bold; background-color:#EEEE00;'
@@ -283,8 +305,7 @@ Polymer.isInstance = function (obj) {
return Boolean(obj && obj.__isPolymerInstance__);
};
Polymer.telemetry.instanceCount = 0;
-}());
-(function () {
+}());(function () {
var modules = {};
var lcModules = {};
var findModule = function (id) {
@@ -337,8 +358,7 @@ CustomElements.upgrade(m);
}
}
}
-}());
-Polymer.Base._addFeature({
+}());Polymer.Base._addFeature({
_prepIs: function () {
if (!this.is) {
var module = (document._currentScript || document.currentScript).parentNode;
@@ -351,8 +371,7 @@ if (this.is) {
this.is = this.is.toLowerCase();
}
}
-});
-Polymer.Base._addFeature({
+});Polymer.Base._addFeature({
behaviors: [],
_desugarBehaviors: function () {
if (this.behaviors.length) {
@@ -433,8 +452,7 @@ attached: true,
detached: true,
attributeChanged: true,
ready: true
-};
-Polymer.Base._addFeature({
+};Polymer.Base._addFeature({
_getExtendedPrototype: function (tag) {
return this._getExtendedNativePrototype(tag);
},
@@ -451,8 +469,7 @@ return p;
getNativePrototype: function (tag) {
return Object.getPrototypeOf(document.createElement(tag));
}
-});
-Polymer.Base._addFeature({
+});Polymer.Base._addFeature({
_prepConstructor: function () {
this._factoryArgs = this.extends ? [
this.extends,
@@ -478,8 +495,7 @@ this.factoryImpl.apply(elt, args);
}
return elt;
}
-});
-Polymer.nob = Object.create(null);
+});Polymer.nob = Object.create(null);
Polymer.Base._addFeature({
properties: {},
getPropertyInfo: function (property) {
@@ -538,8 +554,7 @@ t.readOnly = s.readOnly;
}
}
}
-});
-Polymer.CaseMap = {
+});Polymer.CaseMap = {
_caseMap: {},
_rx: {
dashToCamel: /-[a-z]/g,
@@ -553,8 +568,7 @@ return m[1].toUpperCase();
camelToDashCase: function (camel) {
return this._caseMap[camel] || (this._caseMap[camel] = camel.replace(this._rx.camelToDash, '-$1').toLowerCase());
}
-};
-Polymer.Base._addFeature({
+};Polymer.Base._addFeature({
_addHostAttributes: function (attributes) {
if (!this._aggregatedAttributes) {
this._aggregatedAttributes = {};
@@ -664,9 +678,7 @@ default:
return value != null ? value : undefined;
}
}
-});
-Polymer.version = '1.4.0';
-Polymer.Base._addFeature({
+});Polymer.version = "1.5.0";Polymer.Base._addFeature({
_registerFeatures: function () {
this._prepIs();
this._prepBehaviors();
@@ -682,4 +694,16 @@ _initFeatures: function () {
this._marshalHostAttributes();
this._marshalBehaviors();
}
-});
\ No newline at end of file
+});
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dashboard-ui/bower_components/polymer/polymer-mini.html b/dashboard-ui/bower_components/polymer/polymer-mini.html
index 7b5df9c933..04ddb35ae2 100644
--- a/dashboard-ui/bower_components/polymer/polymer-mini.html
+++ b/dashboard-ui/bower_components/polymer/polymer-mini.html
@@ -31,8 +31,7 @@ instanceTemplate: function (template) {
var dom = document.importNode(template._content || template.content, true);
return dom;
}
-});
-(function () {
+});(function () {
var baseAttachedCallback = Polymer.Base.attachedCallback;
Polymer.Base._addFeature({
_hostStack: [],
@@ -108,8 +107,7 @@ this._attachedPending = true;
}
}
});
-}());
-Polymer.ArraySplice = function () {
+}());Polymer.ArraySplice = function () {
function newSplice(index, removed, addedCount) {
return {
index: index,
@@ -278,8 +276,7 @@ return currentValue === previousValue;
}
};
return new ArraySplice();
-}();
-Polymer.domInnerHTML = function () {
+}();Polymer.domInnerHTML = function () {
var escapeAttrRegExp = /[&\u00A0"]/g;
var escapeDataRegExp = /[&\u00A0<>]/g;
function escapeReplace(c) {
@@ -375,8 +372,7 @@ s += getOuterHTML(child, node, composed);
return s;
}
return { getInnerHTML: getInnerHTML };
-}();
-(function () {
+}();(function () {
'use strict';
var nativeInsertBefore = Element.prototype.insertBefore;
var nativeAppendChild = Element.prototype.appendChild;
@@ -572,8 +568,7 @@ removeChild: function (parentNode, node) {
return nativeRemoveChild.call(parentNode, node);
}
};
-}());
-Polymer.DomApi = function () {
+}());Polymer.DomApi = function () {
'use strict';
var Settings = Polymer.Settings;
var TreeApi = Polymer.TreeApi;
@@ -690,8 +685,7 @@ return DomApi.factory(obj, patch);
var p = Element.prototype;
DomApi.matchesSelector = p.matches || p.matchesSelector || p.mozMatchesSelector || p.msMatchesSelector || p.oMatchesSelector || p.webkitMatchesSelector;
return DomApi;
-}();
-(function () {
+}();(function () {
'use strict';
var Settings = Polymer.Settings;
var DomApi = Polymer.DomApi;
@@ -1160,8 +1154,7 @@ configurable: true
DomApi.hasInsertionPoint = function (root) {
return Boolean(root && root._insertionPoints.length);
};
-}());
-(function () {
+}());(function () {
'use strict';
var Settings = Polymer.Settings;
var TreeApi = Polymer.TreeApi;
@@ -1279,8 +1272,7 @@ forwardProperties([
'nextElementSibling',
'previousElementSibling'
]);
-}());
-Polymer.Base.extend(Polymer.dom, {
+}());Polymer.Base.extend(Polymer.dom, {
_flushGuard: 0,
_FLUSH_MAX: 100,
_needsTakeRecords: !Polymer.Settings.useNativeCustomElements,
@@ -1328,8 +1320,7 @@ this._finishDebouncer = Polymer.Debounce(this._finishDebouncer, this._finishFlus
_finishFlush: function () {
Polymer.dom._debouncers = [];
}
-});
-Polymer.EventApi = function () {
+});Polymer.EventApi = function () {
'use strict';
var DomApi = Polymer.DomApi.ctor;
var Settings = Polymer.Settings;
@@ -1397,8 +1388,7 @@ event.__eventApi = new DomApi.Event(event);
return event.__eventApi;
};
return { factory: factory };
-}();
-(function () {
+}();(function () {
'use strict';
var DomApi = Polymer.DomApi.ctor;
var useShadow = Polymer.Settings.useShadow;
@@ -1437,8 +1427,7 @@ contains: function () {
return this.node.classList.contains.apply(this.node.classList, arguments);
}
};
-}());
-(function () {
+}());(function () {
'use strict';
var DomApi = Polymer.DomApi.ctor;
var Settings = Polymer.Settings;
@@ -1638,8 +1627,7 @@ h._alwaysNotify = h._isContentListener;
}
});
}
-}());
-(function () {
+}());(function () {
'use strict';
var DomApi = Polymer.DomApi.ctor;
var Settings = Polymer.Settings;
@@ -1690,8 +1678,7 @@ this._observer = null;
}
});
}
-}());
-(function () {
+}());(function () {
var DomApi = Polymer.DomApi;
var TreeApi = Polymer.TreeApi;
Polymer.Base._addFeature({
@@ -1998,8 +1985,7 @@ CustomElements.upgrade(children[i]);
}
}
}
-}());
-if (Polymer.Settings.useShadow) {
+}());if (Polymer.Settings.useShadow) {
Polymer.Base._addFeature({
_poolContent: function () {
},
@@ -2017,8 +2003,7 @@ this.shadowRoot.appendChild(this.root);
this.root = this.shadowRoot;
}
});
-}
-Polymer.Async = {
+}Polymer.Async = {
_currVal: 0,
_lastVal: 0,
_callbacks: [],
@@ -2068,8 +2053,7 @@ this._lastVal += len;
};
new window.MutationObserver(function () {
Polymer.Async._atEndOfMicrotask();
-}).observe(Polymer.Async._twiddle, { characterData: true });
-Polymer.Debounce = function () {
+}).observe(Polymer.Async._twiddle, { characterData: true });Polymer.Debounce = function () {
var Async = Polymer.Async;
var Debouncer = function (context) {
this.context = context;
@@ -2091,12 +2075,14 @@ stop: function () {
if (this.finish) {
this.finish();
this.finish = null;
+this.callback = null;
}
},
complete: function () {
if (this.finish) {
+var callback = this.callback;
this.stop();
-this.callback.call(this.context);
+callback.call(this.context);
}
}
};
@@ -2110,8 +2096,7 @@ debouncer.go(callback, wait);
return debouncer;
}
return debounce;
-}();
-Polymer.Base._addFeature({
+}();Polymer.Base._addFeature({
_setupDebouncers: function () {
this._debouncers = {};
},
@@ -2134,8 +2119,7 @@ if (debouncer) {
debouncer.stop();
}
}
-});
-Polymer.DomModule = document.createElement('dom-module');
+});Polymer.DomModule = document.createElement('dom-module');
Polymer.Base._addFeature({
_registerFeatures: function () {
this._prepIs();
@@ -2163,4 +2147,18 @@ this._tryReady();
},
_marshalBehavior: function (b) {
}
-});
\ No newline at end of file
+});
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dashboard-ui/bower_components/polymer/polymer.html b/dashboard-ui/bower_components/polymer/polymer.html
index c94128b7fe..89447b46db 100644
--- a/dashboard-ui/bower_components/polymer/polymer.html
+++ b/dashboard-ui/bower_components/polymer/polymer.html
@@ -235,8 +235,7 @@ return n;
return root;
}
}
-};
-(function () {
+};(function () {
function resolveCss(cssText, ownerDocument) {
return cssText.replace(CSS_URL_RX, function (m, pre, url, post) {
return pre + '\'' + resolve(url.replace(/["']/g, ''), ownerDocument) + '\'' + post;
@@ -294,8 +293,7 @@ resolveCss: resolveCss,
resolveAttrs: resolveAttrs,
resolveUrl: resolveUrl
};
-}());
-Polymer.Base._addFeature({
+}());Polymer.Base._addFeature({
_prepAnnotations: function () {
if (!this._template) {
this._notes = [];
@@ -335,10 +333,12 @@ this._processAnnotations(note.templateContent._notes);
var pp = note.templateContent._parentProps = this._discoverTemplateParentProps(note.templateContent._notes);
var bindings = [];
for (var prop in pp) {
+var name = '_parent_' + prop;
bindings.push({
index: note.index,
kind: 'property',
-name: '_parent_' + prop,
+name: name,
+propertyName: name,
parts: [{
mode: '{',
model: prop,
@@ -363,6 +363,9 @@ if (model) {
pp[model] = true;
}
}
+if (p.signature.dynamicFn) {
+pp[p.signature.method] = true;
+}
} else {
if (p.model) {
pp[p.model] = true;
@@ -453,8 +456,7 @@ this.listen(node, e.name, e.value);
}
}
}
-});
-Polymer.Base._addFeature({
+});Polymer.Base._addFeature({
listeners: {},
_listenListeners: function (listeners) {
var node, name, eventName;
@@ -535,8 +537,7 @@ node.addEventListener(eventName, handler);
_unlisten: function (node, eventName, handler) {
node.removeEventListener(eventName, handler);
}
-});
-(function () {
+});(function () {
'use strict';
var wrap = Polymer.DomApi.wrap;
var HAS_NATIVE_TA = typeof document.head.style.touchAction === 'string';
@@ -717,9 +718,9 @@ if (type === 'touchstart' || type === 'touchmove') {
Gestures.handleTouchAction(ev);
}
}
-if (type === 'touchend' && !ev.__polymerSimulatedTouch) {
+if (type === 'touchend') {
POINTERSTATE.mouse.target = Polymer.dom(ev).rootTarget;
-ignoreMouse(true);
+ignoreMouse();
}
}
}
@@ -769,7 +770,7 @@ prevent = dy > dx;
prevent = dx > dy;
}
if (prevent) {
-ev.preventDefault();
+//ev.preventDefault();
} else {
Gestures.prevent('track');
}
@@ -867,6 +868,11 @@ var recognizer = this.findRecognizerByEvent(evName);
if (recognizer.info) {
recognizer.info.prevent = true;
}
+},
+resetMouseCanceller: function () {
+if (POINTERSTATE.mouse.mouseIgnoreJob) {
+POINTERSTATE.mouse.mouseIgnoreJob.complete();
+}
}
};
Gestures.register({
@@ -1179,8 +1185,7 @@ Gestures.setTouchAction(node, DIRECTION_MAP[direction] || 'auto');
}
});
Polymer.Gestures = Gestures;
-}());
-Polymer.Base._addFeature({
+}());Polymer.Base._addFeature({
$$: function (slctr) {
return Polymer.dom(this.root).querySelector(slctr);
},
@@ -1356,9 +1361,7 @@ return this !== node && this.contains(node) && Polymer.dom(this).getOwnerRoot()
isLocalDescendant: function (node) {
return this.root === Polymer.dom(node).getOwnerRoot();
}
-});
-Polymer.Bind = {
-_dataEventCache: {},
+});Polymer.Bind = {
prepareModel: function (model) {
Polymer.Base.mixin(model, this._modelApi);
},
@@ -1531,8 +1534,7 @@ element.addEventListener(event, function (e) {
return context._notifyListener(changedFn, e);
});
}
-};
-Polymer.Base.extend(Polymer.Bind, {
+};Polymer.Base.extend(Polymer.Bind, {
_shouldAddListener: function (effect) {
return effect.name && effect.kind != 'attribute' && effect.kind != 'text' && !effect.isCompound && effect.parts[0].mode === '{';
},
@@ -1541,10 +1543,7 @@ if (source != effect.value) {
value = this._get(effect.value);
this.__data__[effect.value] = value;
}
-var calc = effect.negate ? !value : value;
-if (!effect.customEvent || this._nodes[effect.index][effect.name] !== calc) {
-return this._applyEffectValue(effect, calc);
-}
+this._applyEffectValue(effect, value);
},
_reflectEffect: function (source, value, effect) {
this.reflectPropertyToAttribute(source, effect.attribute, value);
@@ -1597,9 +1596,6 @@ if (fn) {
var args = Polymer.Bind._marshalArgs(this.__data__, effect, source, value);
if (args) {
var computedvalue = fn.apply(computedHost, args);
-if (effect.negate) {
-computedvalue = !computedvalue;
-}
this._applyEffectValue(effect, computedvalue);
}
} else if (effect.dynamicFn) {
@@ -1617,17 +1613,19 @@ var name = arg.name;
var v;
if (arg.literal) {
v = arg.value;
-} else if (arg.structured) {
-v = Polymer.Base._get(name, model);
+} else if (path === name) {
+v = value;
} else {
v = model[name];
+if (v === undefined && arg.structured) {
+v = Polymer.Base._get(name, model);
+}
}
if (bailoutEarly && v === undefined) {
return;
}
if (arg.wildcard) {
-var baseChanged = name.indexOf(path + '.') === 0;
-var matches = effect.trigger.name.indexOf(name) === 0 && !baseChanged;
+var matches = path.indexOf(name + '.') === 0;
values[i] = {
path: matches ? path : name,
value: matches ? value : v,
@@ -1639,8 +1637,7 @@ values[i] = v;
}
return values;
}
-});
-Polymer.Base._addFeature({
+});Polymer.Base._addFeature({
_addPropertyEffect: function (property, kind, effect) {
var prop = Polymer.Bind.addPropertyEffect(this, property, kind, effect);
prop.pathFn = this['_' + prop.kind + 'PathEffect'];
@@ -1875,33 +1872,45 @@ Polymer.Bind.setupBindListeners(this);
_applyEffectValue: function (info, value) {
var node = this._nodes[info.index];
var property = info.name;
+value = this._computeFinalAnnotationValue(node, property, value, info);
+if (info.customEvent && node[property] === value) {
+return;
+}
+if (info.kind == 'attribute') {
+this.serializeValueToAttribute(value, property, node);
+} else {
+var pinfo = node._propertyInfo && node._propertyInfo[property];
+if (pinfo && pinfo.readOnly) {
+return;
+}
+this.__setProperty(property, value, false, node);
+}
+},
+_computeFinalAnnotationValue: function (node, property, value, info) {
+if (info.negate) {
+value = !value;
+}
if (info.isCompound) {
var storage = node.__compoundStorage__[property];
storage[info.compoundIndex] = value;
value = storage.join('');
}
-if (info.kind == 'attribute') {
-this.serializeValueToAttribute(value, property, node);
-} else {
+if (info.kind !== 'attribute') {
if (property === 'className') {
value = this._scopeElementClass(node, value);
}
if (property === 'textContent' || node.localName == 'input' && property == 'value') {
value = value == undefined ? '' : value;
}
-var pinfo;
-if (!node._propertyInfo || !(pinfo = node._propertyInfo[property]) || !pinfo.readOnly) {
-this.__setProperty(property, value, false, node);
-}
}
+return value;
},
_executeStaticEffects: function () {
if (this._propertyEffects && this._propertyEffects.__static__) {
this._effectEffects('__static__', null, this._propertyEffects.__static__);
}
}
-});
-(function () {
+});(function () {
var usePolyfillProto = Polymer.Settings.usePolyfillProto;
Polymer.Base._addFeature({
_setupConfigure: function (initialConfig) {
@@ -1968,13 +1977,14 @@ for (var p in config) {
var fx = fx$[p];
if (fx) {
for (var i = 0, l = fx.length, x; i < l && (x = fx[i]); i++) {
-if (x.kind === 'annotation' && !x.isCompound) {
+if (x.kind === 'annotation') {
var node = this._nodes[x.effect.index];
var name = x.effect.propertyName;
var isAttr = x.effect.kind == 'attribute';
var hasEffect = node._propertyEffects && node._propertyEffects[name];
if (node._configValue && (hasEffect || !isAttr)) {
var value = p === x.effect.value ? config[p] : this._get(x.effect.value, config);
+value = this._computeFinalAnnotationValue(node, name, value, x.effect);
if (isAttr) {
value = node.deserialize(this.serialize(value), node._propertyInfo[name].type);
}
@@ -2028,13 +2038,15 @@ h[0].call(this, h[1], h[2], h[3]);
this._handlers = [];
}
});
-}());
-(function () {
+}());(function () {
'use strict';
Polymer.Base._addFeature({
notifyPath: function (path, value, fromAbove) {
var info = {};
-this._get(path, this, info);
+var v = this._get(path, this, info);
+if (arguments.length === 1) {
+value = v;
+}
if (info.path) {
this._notifyPath(info.path, value, fromAbove);
}
@@ -2232,17 +2244,13 @@ var change = {
keySplices: Polymer.Collection.applySplices(array, splices),
indexSplices: splices
};
-if (!array.hasOwnProperty('splices')) {
-Object.defineProperty(array, 'splices', {
-configurable: true,
-writable: true
-});
-}
-array.splices = change;
-this._notifyPath(path + '.splices', change);
+var splicesPath = path + '.splices';
+this._notifyPath(splicesPath, change);
this._notifyPath(path + '.length', array.length);
-change.keySplices = null;
-change.indexSplices = null;
+this.__data__[splicesPath] = {
+keySplices: null,
+indexSplices: null
+};
},
_notifySplice: function (array, path, index, added, removed) {
this._notifySplices(array, path, [{
@@ -2337,8 +2345,7 @@ _getPathParts: Polymer.Base._getPathParts
});
}
});
-}());
-Polymer.Base._addFeature({
+}());Polymer.Base._addFeature({
resolveUrl: function (url) {
var module = Polymer.DomModule.import(this.is);
var root = '';
@@ -2348,8 +2355,7 @@ root = Polymer.ResolveUrl.resolveUrl(assetPath, module.ownerDocument.baseURI);
}
return Polymer.ResolveUrl.resolveUrl(url, root);
}
-});
-Polymer.CssParse = function () {
+});Polymer.CssParse = function () {
return {
parse: function (text) {
text = this._clean(text);
@@ -2493,8 +2499,7 @@ VAR_START: '--',
MEDIA_START: '@media',
AT_START: '@'
};
-}();
-Polymer.StyleUtil = function () {
+}();Polymer.StyleUtil = function () {
return {
MODULE_STYLES_SELECTOR: 'style, link[rel=import][type~=css], template',
INCLUDE_ATTR: 'include',
@@ -2544,6 +2549,9 @@ this.forEachRule(r, styleRuleCallback, keyframesRuleCallback);
},
applyCss: function (cssText, moniker, target, contextNode) {
var style = this.createScopeStyle(cssText, moniker);
+return this.applyStyle(style, target, contextNode);
+},
+applyStyle: function (style, target, contextNode) {
target = target || document.head;
var after = contextNode && contextNode.nextSibling || target.firstChild;
this.__lastHeadApplyNode = style;
@@ -2612,8 +2620,7 @@ resolveCss: Polymer.ResolveUrl.resolveCss,
parser: Polymer.CssParse,
ruleTypes: Polymer.CssParse.types
};
-}();
-Polymer.StyleTransformer = function () {
+}();Polymer.StyleTransformer = function () {
var nativeShadow = Polymer.Settings.useNativeShadow;
var styleUtil = Polymer.StyleUtil;
var api = {
@@ -2796,8 +2803,7 @@ var PSEUDO_PREFIX = ':';
var CLASS = 'class';
var CONTENT_START = new RegExp('^(' + CONTENT + ')');
return api;
-}();
-Polymer.StyleExtends = function () {
+}();Polymer.StyleExtends = function () {
var styleUtil = Polymer.StyleUtil;
return {
hasExtends: function (cssText) {
@@ -2867,8 +2873,7 @@ EXTEND: /@extends\(([^)]*)\)\s*?;/gim,
STRIP: /%[^,]*$/
}
};
-}();
-(function () {
+}();(function () {
var prepElement = Polymer.Base._prepElement;
var nativeShadow = Polymer.Settings.useNativeShadow;
var styleUtil = Polymer.StyleUtil;
@@ -2973,8 +2978,7 @@ return mo;
}
}
});
-}());
-Polymer.StyleProperties = function () {
+}());Polymer.StyleProperties = function () {
'use strict';
var nativeShadow = Polymer.Settings.useNativeShadow;
var matchesSelector = Polymer.DomApi.matchesSelector;
@@ -3236,12 +3240,20 @@ if (s._useCount <= 0 && s.parentNode) {
s.parentNode.removeChild(s);
}
}
-if (nativeShadow || (!style || !style.parentNode)) {
-if (nativeShadow && element._customStyle) {
+if (nativeShadow) {
+if (element._customStyle) {
element._customStyle.textContent = cssText;
style = element._customStyle;
} else if (cssText) {
-style = styleUtil.applyCss(cssText, selector, nativeShadow ? element.root : null, element._scopeStyle);
+style = styleUtil.applyCss(cssText, selector, element.root);
+}
+} else {
+if (!style) {
+if (cssText) {
+style = styleUtil.applyCss(cssText, selector, null, element._scopeStyle);
+}
+} else if (!style.parentNode) {
+styleUtil.applyStyle(style, null, element._scopeStyle);
}
}
if (style) {
@@ -3282,8 +3294,7 @@ var o = parseInt(n / 32);
var v = 1 << n % 32;
bits[o] = (bits[o] || 0) | v;
}
-}();
-(function () {
+}();(function () {
Polymer.StyleCache = function () {
this.cache = {};
};
@@ -3329,8 +3340,7 @@ _objectsStrictlyEqual: function (target, source) {
return this._objectsEqual(target, source) && this._objectsEqual(source, target);
}
};
-}());
-Polymer.StyleDefaults = function () {
+}());Polymer.StyleDefaults = function () {
var styleProperties = Polymer.StyleProperties;
var StyleCache = Polymer.StyleCache;
var api = {
@@ -3371,8 +3381,7 @@ s._apply();
}
};
return api;
-}();
-(function () {
+}();(function () {
'use strict';
var serializeValueToAttribute = Polymer.Base.serializeValueToAttribute;
var propertyUtils = Polymer.StyleProperties;
@@ -3533,8 +3542,7 @@ var styleCache = new Polymer.StyleCache();
Polymer.customStyleCache = styleCache;
var SCOPE_NAME = styleTransformer.SCOPE_NAME;
var XSCOPE_NAME = propertyUtils.XSCOPE_NAME;
-}());
-Polymer.Base._addFeature({
+}());Polymer.Base._addFeature({
_registerFeatures: function () {
this._prepIs();
this._prepConstructor();
@@ -3580,8 +3588,7 @@ if (b.listeners) {
this._listenListeners(b.listeners);
}
}
-});
-(function () {
+});(function () {
var propertyUtils = Polymer.StyleProperties;
var styleUtil = Polymer.StyleUtil;
var cssParse = Polymer.CssParse;
@@ -3654,8 +3661,7 @@ rule.cssText = propertyUtils.valueForProperties(css, props);
});
}
});
-}());
-Polymer.Templatizer = {
+}());Polymer.Templatizer = {
properties: { __hideTemplateChildren__: { observer: '_showHideChildren' } },
_instanceProps: Polymer.nob,
_parentPropPrefix: '_parent_',
@@ -3845,7 +3851,7 @@ var dot = path.indexOf('.');
var root = dot < 0 ? path : path.slice(0, dot);
dataHost._forwardInstancePath.call(dataHost, this, path, value);
if (root in dataHost._parentProps) {
-dataHost._templatized.notifyPath(dataHost._parentPropPrefix + path, value);
+dataHost._templatized._notifyPath(dataHost._parentPropPrefix + path, value);
}
},
_pathEffectorImpl: function (path, value, fromAbove) {
@@ -3898,6 +3904,7 @@ var host = this._rootDataHost;
if (host) {
return host._scopeElementClass(node, value);
}
+return value;
},
stamp: function (model) {
model = model || {};
@@ -3925,8 +3932,7 @@ el = el.parentNode;
}
}
}
-};
-Polymer({
+};Polymer({
is: 'dom-template',
extends: 'template',
_template: null,
@@ -3934,8 +3940,7 @@ behaviors: [Polymer.Templatizer],
ready: function () {
this.templatize(this);
}
-});
-Polymer._collections = new WeakMap();
+});Polymer._collections = new WeakMap();
Polymer.Collection = function (userArray) {
Polymer._collections.set(userArray, this);
this.userArray = userArray;
@@ -4070,8 +4075,7 @@ return Polymer._collections.get(userArray) || new Polymer.Collection(userArray);
Polymer.Collection.applySplices = function (userArray, splices) {
var coll = Polymer._collections.get(userArray);
return coll ? coll._applySplices(splices) : null;
-};
-Polymer({
+};Polymer({
is: 'dom-repeat',
extends: 'template',
_template: null,
@@ -4537,8 +4541,7 @@ indexForElement: function (el) {
var instance = this.modelForElement(el);
return instance && instance[this.indexAs];
}
-});
-Polymer({
+});Polymer({
is: 'array-selector',
_template: null,
properties: {
@@ -4629,8 +4632,7 @@ this.linkPaths('selectedItem', 'items.' + key);
}
}
}
-});
-Polymer({
+});Polymer({
is: 'dom-if',
extends: 'template',
_template: null,
@@ -4730,8 +4732,7 @@ if (this._instance) {
this._instance._notifyPath(path, value, true);
}
}
-});
-Polymer({
+});Polymer({
is: 'dom-bind',
extends: 'template',
_template: null,
@@ -4814,3 +4815,32 @@ this._insertChildren();
this.fire('dom-change');
}
});
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dashboard-ui/scripts/site.js b/dashboard-ui/scripts/site.js
index f02a000cf6..ed6ec5a8e7 100644
--- a/dashboard-ui/scripts/site.js
+++ b/dashboard-ui/scripts/site.js
@@ -2257,7 +2257,7 @@ var AppInfo = {};
var baseUrl = 'bower_components/emby-webcomponents/strings/';
- var languages = ['da', 'de', 'en-US', 'es-MX', 'kk', 'nb', 'nl', 'ru'];
+ var languages = ['da', 'de', 'en-US', 'es-MX', 'kk', 'nb', 'nl', 'pt-BR', 'ru'];
var translations = languages.map(function (i) {
return {