diff --git a/dashboard-ui/bower_components/emby-webcomponents/.bower.json b/dashboard-ui/bower_components/emby-webcomponents/.bower.json
index 0a1a43317..7edfa79cd 100644
--- a/dashboard-ui/bower_components/emby-webcomponents/.bower.json
+++ b/dashboard-ui/bower_components/emby-webcomponents/.bower.json
@@ -16,12 +16,12 @@
},
"devDependencies": {},
"ignore": [],
- "version": "1.3.40",
- "_release": "1.3.40",
+ "version": "1.3.41",
+ "_release": "1.3.41",
"_resolution": {
"type": "version",
- "tag": "1.3.40",
- "commit": "f5d6ceea8a3fccab8b2794df5aabb78309ca57a5"
+ "tag": "1.3.41",
+ "commit": "b99e1de0001cc6c56af28b79cf0561f1cb25743f"
},
"_source": "https://github.com/MediaBrowser/emby-webcomponents.git",
"_target": "^1.2.0",
diff --git a/dashboard-ui/bower_components/emby-webcomponents/guide/guide.css b/dashboard-ui/bower_components/emby-webcomponents/guide/guide.css
index 76795c678..eb9d3121b 100644
--- a/dashboard-ui/bower_components/emby-webcomponents/guide/guide.css
+++ b/dashboard-ui/bower_components/emby-webcomponents/guide/guide.css
@@ -195,6 +195,10 @@
.guideCurrentDay {
display: none;
}
+
+ .newTvProgram, .liveTvProgram, .premiereTvProgram, .guideHdIcon {
+ display: none;
+ }
}
@media all and (max-width: 1280px) {
diff --git a/dashboard-ui/bower_components/emby-webcomponents/guide/guide.js b/dashboard-ui/bower_components/emby-webcomponents/guide/guide.js
index 2e1cac707..b205787b1 100644
--- a/dashboard-ui/bower_components/emby-webcomponents/guide/guide.js
+++ b/dashboard-ui/bower_components/emby-webcomponents/guide/guide.js
@@ -269,7 +269,7 @@
html += '';
if (program.IsHD) {
- html += '';
+ html += '';
}
if (program.SeriesTimerId) {
diff --git a/dashboard-ui/bower_components/emby-webcomponents/images/imagehelper.js b/dashboard-ui/bower_components/emby-webcomponents/images/imagehelper.js
index f97020645..d357d5d36 100644
--- a/dashboard-ui/bower_components/emby-webcomponents/images/imagehelper.js
+++ b/dashboard-ui/bower_components/emby-webcomponents/images/imagehelper.js
@@ -94,10 +94,11 @@ define(['visibleinviewport', 'imageFetcher', 'layoutManager', 'events'], functio
return;
}
+ var filledImages = [];
var cancellationTokens = [];
+
function unveilInternal(tokenIndex) {
- var remaining = [];
var anyFound = false;
var out = false;
@@ -108,25 +109,22 @@ define(['visibleinviewport', 'imageFetcher', 'layoutManager', 'events'], functio
if (cancellationTokens[tokenIndex]) {
return;
}
+ if (filledImages[i]) {
+ continue;
+ }
var img = images[i];
if (!out && isVisible(img)) {
anyFound = true;
+ filledImages[i] = true;
fillImage(img);
} else {
if (anyFound) {
out = true;
}
- remaining.push(img);
- }
-
- if (out) {
- return;
}
}
- images = remaining;
-
if (!images.length) {
document.removeEventListener('focus', unveil, true);
document.removeEventListener('scroll', unveil, true);
diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/da.json b/dashboard-ui/bower_components/emby-webcomponents/strings/da.json
new file mode 100644
index 000000000..c931bc95c
--- /dev/null
+++ b/dashboard-ui/bower_components/emby-webcomponents/strings/da.json
@@ -0,0 +1,55 @@
+{
+ "ValueSpecialEpisodeName": "Special - {0}",
+ "Share": "Del",
+ "ServerUpdateNeeded": "Denne Emby server b\u00f8r opdateres. For at downloade den nyeste version bes\u00f8g venligst {0}",
+ "LiveTvGuideRequiresUnlock": "Live TV Guiden er p\u00e5 nuv\u00e6rende tidspunkt begr\u00e6nset til {0} kanaler. Klik p\u00e5 \"L\u00e5s op\" knappen for at f\u00e5 mere at vide omkring hvordan du kan f\u00e5 den fulde oplevelse.",
+ "AttributeNew": "Ny",
+ "AttributePremiere": "Premiere",
+ "AttributeLive": "Live",
+ "TrackCount": "{0} numre",
+ "ItemCount": "{0} elementer",
+ "ValueSeriesYearToPresent": "{0}-Nu",
+ "ReleaseYearValue": "Udgivelses\u00e5r: {0}",
+ "OriginalAirDateValue": "Originalt sendt: {0}",
+ "EndsAtValue": "Slutter {0}",
+ "OptionSundayShort": "S\u00f8n.",
+ "OptionMondayShort": "Man.",
+ "OptionTuesdayShort": "Tirs.",
+ "OptionWednesdayShort": "Ons.",
+ "OptionThursdayShort": "Tors.",
+ "OptionFridayShort": "Fre.",
+ "OptionSaturdayShort": "L\u00f8r.",
+ "HeaderSelectDate": "V\u00e6lg dato",
+ "ButtonOk": "Ok",
+ "ButtonCancel": "Annuller",
+ "ButtonGotIt": "Forst\u00e5et",
+ "RecordingScheduled": "Optagelse planlagt.",
+ "HeaderNewRecording": "Ny optagelse",
+ "Sunday": "S\u00f8ndag",
+ "Monday": "Mandag",
+ "Tuesday": "Tirsdag",
+ "Wednesday": "Onsdag",
+ "Thursday": "Torsdag",
+ "Friday": "Fredag",
+ "Saturday": "L\u00f8rdag",
+ "Days": "Dage",
+ "RecordSeries": "Optag serie",
+ "LabelPrePaddingMinutes": "Start minutter f\u00f8r:",
+ "LabelPostPaddingMinutes": "Stop optagelse minutter efter:",
+ "RecordOnAllChannels": "Optag fra alle kanaler",
+ "RecordAnytime": "Optag p\u00e5 ethvert tidspunkt",
+ "RecordOnlyNewEpisodes": "Optag kun nye episoder",
+ "HeaderBecomeProjectSupporter": "F\u00e5 Emby Premiere",
+ "HeaderEnjoyDayTrial": "Nyd en 14-dages gratis pr\u00f8veperiode",
+ "MessageActiveSubscriptionRequiredSeriesRecordings": "Et aktivt Emby Premiere abonnement er n\u00f8dvendigt for at oprette automatiserede optagelser af serier.",
+ "OptionConvertRecordingsToStreamingFormat": "Konverter automatisk optagelser til et streamingvenligt format",
+ "OptionConvertRecordingsToStreamingFormatHelp": "Optagelser vil l\u00f8bende blive konverteret til MP4 for nemmere afspilning p\u00e5 dine enheder.",
+ "FeatureRequiresEmbyPremiere": "Denne funktion kr\u00e6ver et aktivt Emby Premiere abonnement.",
+ "Record": "Optag",
+ "Save": "Gem",
+ "Edit": "Rediger",
+ "Download": "Hent",
+ "Advanced": "Avanceret",
+ "Refresh": "Opdater",
+ "RefreshQueued": "Opdatering sat i k\u00f8"
+}
\ 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 121a5115f..dbcec21dd 100644
--- a/dashboard-ui/bower_components/emby-webcomponents/strings/kk.json
+++ b/dashboard-ui/bower_components/emby-webcomponents/strings/kk.json
@@ -34,8 +34,8 @@
"Saturday": "\u0441\u0435\u043d\u0431\u0456",
"Days": "\u041a\u04af\u043d\u0434\u0435\u0440",
"RecordSeries": "\u0422\u0435\u043b\u0435\u0445\u0438\u043a\u0430\u044f\u043d\u044b \u0436\u0430\u0437\u0443",
- "PrePaddingMinutes": "\u0410\u043b\u0493\u0430 \u0448\u0435\u0433\u0456\u043d\u0456\u0441, \u043c\u0438\u043d:",
- "PostPaddingMinutes": "\u0410\u0440\u0442\u049b\u0430 \u0448\u0435\u0433\u0456\u043d\u0456\u0441, \u043c\u0438\u043d",
+ "LabelPrePaddingMinutes": "\u0410\u043b\u0493\u0430 \u0448\u0435\u0433\u0456\u043d\u0456\u0441, \u043c\u0438\u043d:",
+ "LabelPostPaddingMinutes": "\u0410\u0440\u0442\u049b\u0430 \u0448\u0435\u0433\u0456\u043d\u0456\u0441, \u043c\u0438\u043d:",
"RecordOnAllChannels": "\u0411\u0430\u0440\u043b\u044b\u049b \u0430\u0440\u043d\u0430\u043b\u0430\u0440\u0434\u0430\u043d \u0436\u0430\u0437\u044b\u043f \u0430\u043b\u0443",
"RecordAnytime": "\u04d8\u0440 \u0443\u0430\u049b\u044b\u0442\u0442\u0430 \u0436\u0430\u0437\u044b\u043f \u0430\u043b\u0443",
"RecordOnlyNewEpisodes": "\u0422\u0435\u043a \u049b\u0430\u043d\u0430 \u0436\u0430\u04a3\u0430 \u0431\u04e9\u043b\u0456\u043c\u0434\u0435\u0440\u0434\u0456 \u0436\u0430\u0437\u044b\u043f \u0430\u043b\u0443",
@@ -46,8 +46,10 @@
"OptionConvertRecordingsToStreamingFormatHelp": "\u0416\u0430\u0437\u0431\u0430\u043b\u0430\u0440 \u049b\u04b1\u0440\u044b\u043b\u0493\u044b\u043b\u0430\u0440\u044b\u04a3\u044b\u0437\u0434\u0430 \u043e\u04a3\u0430\u0439 \u043e\u0439\u043d\u0430\u0442\u0443 \u04af\u0448\u0456\u043d \u043d\u0430\u049b\u0442\u044b \u0443\u0430\u049b\u044b\u0442\u0442\u0430 MP4 \u043f\u0456\u0448\u0456\u043c\u0456\u043d\u0435 \u0442\u04af\u0440\u043b\u0435\u043d\u0434\u0456\u0440\u0456\u043b\u0435\u0434\u0456.",
"FeatureRequiresEmbyPremiere": "\u041e\u0441\u044b \u049b\u04b1\u0440\u0430\u043c\u0434\u0430\u0441 \u04af\u0448\u0456\u043d \u0431\u0435\u043b\u0441\u0435\u043d\u0434\u0456 Emby Premiere \u0436\u0430\u0437\u044b\u043b\u044b\u043c\u044b \u049b\u0430\u0436\u0435\u0442",
"Record": "\u0416\u0430\u0437\u0443",
+ "Save": "\u0421\u0430\u049b\u0442\u0430\u0443",
+ "Edit": "\u04e8\u04a3\u0434\u0435\u0443",
"Download": "\u0416\u04af\u043a\u0442\u0435\u043f \u0430\u043b\u0443",
"Advanced": "\u041a\u0435\u04a3\u0435\u0439\u0442\u0456\u043b\u0433\u0435\u043d",
"Refresh": "\u0416\u0430\u04a3\u0493\u044b\u0440\u0442\u0443",
- "RefreshQueued": "\u0416\u0430\u04a3\u0493\u044b\u0440\u0442\u0443 \u043a\u0435\u0437\u0435\u043a\u0442\u0435"
+ "RefreshQueued": "\u0416\u0430\u04a3\u0493\u044b\u0440\u0442\u0443 \u043a\u0435\u0437\u0435\u043a\u0442\u0435."
}
\ 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
new file mode 100644
index 000000000..485a12fa9
--- /dev/null
+++ b/dashboard-ui/bower_components/emby-webcomponents/strings/nl.json
@@ -0,0 +1,55 @@
+{
+ "ValueSpecialEpisodeName": "Speciaal - {0}",
+ "Share": "Delen",
+ "ServerUpdateNeeded": "Deze Emby Server moet worden bijgewerkt. Om de laatste versie te downloaden, gaat u naar {0}",
+ "LiveTvGuideRequiresUnlock": "De Live TV Gids is momenteel gelimiteerd tot {0} kanalen. Klik op de Geef vrij knop om te zien hoe u deze limiet op kunt heffen.",
+ "AttributeNew": "Nieuw",
+ "AttributePremiere": "Premi\u00e8re",
+ "AttributeLive": "Live",
+ "TrackCount": "{0} nummers",
+ "ItemCount": "{0} items",
+ "ValueSeriesYearToPresent": "{0}-Heden",
+ "ReleaseYearValue": "Jaar van uitgifte: {0}",
+ "OriginalAirDateValue": "Originele uitzenddatum: {0}",
+ "EndsAtValue": "Eindigt om: {0}",
+ "OptionSundayShort": "Zo",
+ "OptionMondayShort": "Ma",
+ "OptionTuesdayShort": "Di",
+ "OptionWednesdayShort": "Wo",
+ "OptionThursdayShort": "Do",
+ "OptionFridayShort": "Vr",
+ "OptionSaturdayShort": "Za",
+ "HeaderSelectDate": "Selecteer Datum",
+ "ButtonOk": "Ok",
+ "ButtonCancel": "Annuleren",
+ "ButtonGotIt": "Begrepen",
+ "RecordingScheduled": "Opname schema",
+ "HeaderNewRecording": "Nieuwe opname",
+ "Sunday": "Zondag",
+ "Monday": "Maandag",
+ "Tuesday": "Dinsdag",
+ "Wednesday": "Woensdag",
+ "Thursday": "Donderdag",
+ "Friday": "Vrijdag",
+ "Saturday": "Zaterdag",
+ "Days": "Dagen",
+ "RecordSeries": "Series Opnemen",
+ "LabelPrePaddingMinutes": "Tijd voor het programma (Minuten):",
+ "LabelPostPaddingMinutes": "Tijd na het programma (Minuten):",
+ "RecordOnAllChannels": "Op alle kanalen opnemen",
+ "RecordAnytime": "Op elk tijdstip opnemen",
+ "RecordOnlyNewEpisodes": "Alleen nieuwe afleveringen opnemen",
+ "HeaderBecomeProjectSupporter": "Verkrijg Emby Premiere",
+ "HeaderEnjoyDayTrial": "Geniet van een 14-daagse gratis proefversie",
+ "MessageActiveSubscriptionRequiredSeriesRecordings": "Er is een actief Emby Premiere abonnement benodigd om een automatische serie opname aan te maken.",
+ "OptionConvertRecordingsToStreamingFormat": "Opnamen automatisch converteren naar een streaming formaat",
+ "OptionConvertRecordingsToStreamingFormatHelp": "Opnames zullen direct worden omgezet naar MP4 voor het eenvoudig afspelen op uw apparaten.",
+ "FeatureRequiresEmbyPremiere": "Deze functie vereist een actieve Emby Premiere abonnement.",
+ "Record": "Opnemen",
+ "Save": "Opslaan",
+ "Edit": "Bewerken",
+ "Download": "Downloaden",
+ "Advanced": "Geavanceerd",
+ "Refresh": "Vernieuwen",
+ "RefreshQueued": "Vernieuwen wachtrij"
+}
\ 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 2c14e3066..a0750c2f8 100644
--- a/dashboard-ui/bower_components/emby-webcomponents/strings/ru.json
+++ b/dashboard-ui/bower_components/emby-webcomponents/strings/ru.json
@@ -34,8 +34,8 @@
"Saturday": "\u0441\u0443\u0431\u0431\u043e\u0442\u0430",
"Days": "\u0414\u043d\u0438",
"RecordSeries": "\u0417\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0441\u0435\u0440\u0438\u0430\u043b",
- "PrePaddingMinutes": "\u041d\u0430\u0447\u0430\u043b\u044c\u043d\u0430\u044f \u043e\u0442\u0431\u0438\u0432\u043a\u0430, \u043c\u0438\u043d:",
- "PostPaddingMinutes": "\u041a\u043e\u043d\u0435\u0447\u043d\u0430\u044f \u043e\u0442\u0431\u0438\u0432\u043a\u0430, \u043c\u0438\u043d:",
+ "LabelPrePaddingMinutes": "\u041d\u0430\u0447\u0430\u043b\u044c\u043d\u0430\u044f \u043e\u0442\u0431\u0438\u0432\u043a\u0430, \u043c\u0438\u043d:",
+ "LabelPostPaddingMinutes": "\u041a\u043e\u043d\u0435\u0447\u043d\u0430\u044f \u043e\u0442\u0431\u0438\u0432\u043a\u0430, \u043c\u0438\u043d:",
"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",
@@ -46,8 +46,10 @@
"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",
+ "Save": "\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c",
+ "Edit": "\u041f\u0440\u0430\u0432\u0438\u0442\u044c",
"Download": "\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c",
"Advanced": "\u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u043e\u0435",
"Refresh": "\u041f\u043e\u0434\u043d\u043e\u0432\u0438\u0442\u044c",
- "RefreshQueued": "\u041f\u043e\u0434\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0432 \u043e\u0447\u0435\u0440\u0435\u0434\u0438"
+ "RefreshQueued": "\u041f\u043e\u0434\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0432 \u043e\u0447\u0435\u0440\u0435\u0434\u0438."
}
\ No newline at end of file
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 45d602b3b..a967c1ad5 100644
--- a/dashboard-ui/bower_components/emby-webcomponents/viewmanager/viewcontainer-lite.js
+++ b/dashboard-ui/bower_components/emby-webcomponents/viewmanager/viewcontainer-lite.js
@@ -264,7 +264,7 @@ define(['browser'], function (browser) {
currentUrls = [];
}
- if (enableAnimation() && !browser.animate) {
+ if (enableAnimation() && !document.documentElement.animate) {
require(['webAnimations']);
}
diff --git a/dashboard-ui/bower_components/iron-a11y-keys-behavior/.bower.json b/dashboard-ui/bower_components/iron-a11y-keys-behavior/.bower.json
index 9604c48b0..f920799d2 100644
--- a/dashboard-ui/bower_components/iron-a11y-keys-behavior/.bower.json
+++ b/dashboard-ui/bower_components/iron-a11y-keys-behavior/.bower.json
@@ -30,14 +30,14 @@
"webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0"
},
"ignore": [],
- "homepage": "https://github.com/PolymerElements/iron-a11y-keys-behavior",
+ "homepage": "https://github.com/polymerelements/iron-a11y-keys-behavior",
"_release": "1.1.2",
"_resolution": {
"type": "version",
"tag": "v1.1.2",
"commit": "0c2330c229a6fd3d200e2b84147ec6f94f17c22d"
},
- "_source": "git://github.com/PolymerElements/iron-a11y-keys-behavior.git",
+ "_source": "git://github.com/polymerelements/iron-a11y-keys-behavior.git",
"_target": "^1.0.0",
- "_originalSource": "PolymerElements/iron-a11y-keys-behavior"
+ "_originalSource": "polymerelements/iron-a11y-keys-behavior"
}
\ No newline at end of file
diff --git a/dashboard-ui/bower_components/iron-icon/.bower.json b/dashboard-ui/bower_components/iron-icon/.bower.json
index f0167baf1..9784e3a3b 100644
--- a/dashboard-ui/bower_components/iron-icon/.bower.json
+++ b/dashboard-ui/bower_components/iron-icon/.bower.json
@@ -32,14 +32,14 @@
"web-component-tester": "^4.0.0",
"webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0"
},
- "homepage": "https://github.com/polymerelements/iron-icon",
+ "homepage": "https://github.com/PolymerElements/iron-icon",
"_release": "1.0.8",
"_resolution": {
"type": "version",
"tag": "v1.0.8",
"commit": "f36b38928849ef3853db727faa8c9ef104d611eb"
},
- "_source": "git://github.com/polymerelements/iron-icon.git",
+ "_source": "git://github.com/PolymerElements/iron-icon.git",
"_target": "^1.0.0",
- "_originalSource": "polymerelements/iron-icon"
+ "_originalSource": "PolymerElements/iron-icon"
}
\ No newline at end of file
diff --git a/dashboard-ui/bower_components/iron-menu-behavior/.bower.json b/dashboard-ui/bower_components/iron-menu-behavior/.bower.json
index a7d43ca16..900e8eb3b 100644
--- a/dashboard-ui/bower_components/iron-menu-behavior/.bower.json
+++ b/dashboard-ui/bower_components/iron-menu-behavior/.bower.json
@@ -1,6 +1,6 @@
{
"name": "iron-menu-behavior",
- "version": "1.1.6",
+ "version": "1.1.7",
"description": "Provides accessible menu behavior",
"authors": "The Polymer Authors",
"keywords": [
@@ -34,11 +34,11 @@
"web-component-tester": "^4.0.0",
"webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0"
},
- "_release": "1.1.6",
+ "_release": "1.1.7",
"_resolution": {
"type": "version",
- "tag": "v1.1.6",
- "commit": "940c2769c7d6fefd5685e0200c3dfd0742c2a52f"
+ "tag": "v1.1.7",
+ "commit": "ea59e6ce5644d8f7a20c22f13f614ea60604a812"
},
"_source": "git://github.com/polymerelements/iron-menu-behavior.git",
"_target": "^1.0.0",
diff --git a/dashboard-ui/bower_components/iron-menu-behavior/bower.json b/dashboard-ui/bower_components/iron-menu-behavior/bower.json
index e303ad205..921662cc5 100644
--- a/dashboard-ui/bower_components/iron-menu-behavior/bower.json
+++ b/dashboard-ui/bower_components/iron-menu-behavior/bower.json
@@ -1,6 +1,6 @@
{
"name": "iron-menu-behavior",
- "version": "1.1.6",
+ "version": "1.1.7",
"description": "Provides accessible menu behavior",
"authors": "The Polymer Authors",
"keywords": [
diff --git a/dashboard-ui/bower_components/iron-menu-behavior/iron-menu-behavior.html b/dashboard-ui/bower_components/iron-menu-behavior/iron-menu-behavior.html
index 59fd71414..46c06c588 100644
--- a/dashboard-ui/bower_components/iron-menu-behavior/iron-menu-behavior.html
+++ b/dashboard-ui/bower_components/iron-menu-behavior/iron-menu-behavior.html
@@ -128,7 +128,7 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN
var attr = this.attrForItemTitle || 'textContent';
var title = item[attr] || item.getAttribute(attr);
- if (!item.hasAttribute('disabled') && title &&
+ if (!item.hasAttribute('disabled') && title &&
title.trim().charAt(0).toLowerCase() === String.fromCharCode(event.keyCode).toLowerCase()) {
this._setFocusedItem(item);
break;
@@ -209,17 +209,8 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN
* detail.
*/
_onIronItemsChanged: function(event) {
- var mutations = event.detail;
- var mutation;
- var index;
-
- for (index = 0; index < mutations.length; ++index) {
- mutation = mutations[index];
-
- if (mutation.addedNodes.length) {
- this._resetTabindices();
- break;
- }
+ if (event.detail.addedNodes.length) {
+ this._resetTabindices();
}
},
diff --git a/dashboard-ui/bower_components/iron-menu-behavior/test/iron-menu-behavior.html b/dashboard-ui/bower_components/iron-menu-behavior/test/iron-menu-behavior.html
index 3b6b29103..e0e50ed04 100644
--- a/dashboard-ui/bower_components/iron-menu-behavior/test/iron-menu-behavior.html
+++ b/dashboard-ui/bower_components/iron-menu-behavior/test/iron-menu-behavior.html
@@ -338,6 +338,47 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN
done();
});
});
+
+ test('`tabIndex` properties of all items are updated when items change', function(done) {
+ var menu = fixture('basic');
+
+ function assertTabIndexCounts(nodes, expected) {
+ var tabIndexCounts = {};
+ for (var i = 0; i < nodes.length; i++) {
+ var tabIndex = nodes[i].tabIndex;
+ if (tabIndexCounts[tabIndex]) {
+ tabIndexCounts[tabIndex]++;
+ } else {
+ tabIndexCounts[tabIndex] = 1;
+ }
+ }
+
+ assert.equal(Object.keys(tabIndexCounts).length, Object.keys(expected).length);
+ Object.keys(expected).forEach(function(key) {
+ assert.equal(tabIndexCounts[key], expected[key]);
+ });
+ }
+
+ function divWithTabIndex(tabIndex) {
+ var div = document.createElement('div');
+ div.tabIndex = tabIndex;
+ return div;
+ }
+
+ // Only the selected item will have tabIndex 0.
+ menu.select(0);
+ assertTabIndexCounts(menu.items, {"-1": 2, "0": 1});
+
+ Polymer.dom(menu).appendChild(divWithTabIndex(1));
+ Polymer.dom(menu).appendChild(divWithTabIndex(2));
+ Polymer.dom(menu).appendChild(divWithTabIndex(3));
+
+ // Async wait for `observeNodes`.
+ Polymer.Base.async(function() {
+ assertTabIndexCounts(menu.items, {"-1": 5, "0": 1});
+ done();
+ });
+ });
});