diff --git a/dashboard-ui/bower_components/emby-webcomponents/.bower.json b/dashboard-ui/bower_components/emby-webcomponents/.bower.json
index 5e18fcb3f3..7c3f29a828 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.82",
- "_release": "1.3.82",
+ "version": "1.3.93",
+ "_release": "1.3.93",
"_resolution": {
"type": "version",
- "tag": "1.3.82",
- "commit": "f25cb631146a714f2cc99666ce060f89eedde9e8"
+ "tag": "1.3.93",
+ "commit": "e471f95b705f30e5e07437f1adb28ca9f957b6e3"
},
"_source": "https://github.com/MediaBrowser/emby-webcomponents.git",
"_target": "^1.2.0",
diff --git a/dashboard-ui/bower_components/emby-webcomponents/alert/alert.js b/dashboard-ui/bower_components/emby-webcomponents/alert/alert.js
index 31bf70a203..96847a2d64 100644
--- a/dashboard-ui/bower_components/emby-webcomponents/alert/alert.js
+++ b/dashboard-ui/bower_components/emby-webcomponents/alert/alert.js
@@ -1,4 +1,4 @@
-define(['dialogHelper', 'layoutManager', 'globalize', 'html!./../icons/nav.html', 'css!./../prompt/style.css', 'paper-button', 'paper-icon-button-light', 'paper-input'], function (dialogHelper, layoutManager, globalize) {
+define(['dialogHelper', 'layoutManager', 'globalize', 'html!./../icons/nav.html', 'css!./../prompt/style.css', 'paper-button', 'paper-icon-button-light'], function (dialogHelper, layoutManager, globalize) {
function getIcon(icon, cssClass, canFocus, autoFocus) {
diff --git a/dashboard-ui/bower_components/emby-webcomponents/backdrop/backdrop.js b/dashboard-ui/bower_components/emby-webcomponents/backdrop/backdrop.js
index 43eb979a67..0bf47b0ed3 100644
--- a/dashboard-ui/bower_components/emby-webcomponents/backdrop/backdrop.js
+++ b/dashboard-ui/bower_components/emby-webcomponents/backdrop/backdrop.js
@@ -107,6 +107,8 @@
var elem = getBackdropContainer();
elem.innerHTML = '';
+ getSkinContainer().removeAttribute('data-backdroptype');
+
if (clearAll) {
hasExternalBackdrop = false;
}
@@ -114,16 +116,18 @@
}
var skinContainer;
- function setSkinContainerBackgroundEnabled() {
-
+ function getSkinContainer() {
if (!skinContainer) {
skinContainer = document.querySelector('.skinContainer');
}
+ return skinContainer;
+ }
+ function setSkinContainerBackgroundEnabled() {
if (hasInternalBackdrop || hasExternalBackdrop) {
- skinContainer.classList.add('withBackdrop');
+ getSkinContainer().classList.add('withBackdrop');
} else {
- skinContainer.classList.remove('withBackdrop');
+ getSkinContainer().classList.remove('withBackdrop');
}
}
@@ -166,7 +170,7 @@
currentLoadingBackdrop = instance;
}
- function setBackdrops(items) {
+ function setBackdrops(items, type) {
var images = items.map(function (i) {
@@ -207,7 +211,7 @@
quality: 100
});
- setBackdrop(imgUrl);
+ setBackdrop(imgUrl, type);
});
} else {
@@ -215,11 +219,17 @@
}
}
- function setBackdrop(url) {
+ function setBackdrop(url, type) {
if (url) {
setBackdropImage(url);
+ if (type) {
+ getSkinContainer().setAttribute('data-backdroptype', type);
+ } else {
+ getSkinContainer().removeAttribute('data-backdroptype');
+ }
+
} else {
clearBackdrop();
}
diff --git a/dashboard-ui/bower_components/emby-webcomponents/collectioneditor/collectioneditor.js b/dashboard-ui/bower_components/emby-webcomponents/collectioneditor/collectioneditor.js
index 5a939d6712..a9c7717fb3 100644
--- a/dashboard-ui/bower_components/emby-webcomponents/collectioneditor/collectioneditor.js
+++ b/dashboard-ui/bower_components/emby-webcomponents/collectioneditor/collectioneditor.js
@@ -1,4 +1,4 @@
-define(['shell', 'dialogHelper', 'loading', 'layoutManager', 'connectionManager', 'scrollHelper', 'embyRouter', 'globalize', 'paper-checkbox', 'paper-input', 'paper-icon-button-light', 'emby-select', 'html!./../icons/nav.html', 'css!./../formdialog'], function (shell, dialogHelper, loading, layoutManager, connectionManager, scrollHelper, embyRouter, globalize) {
+define(['shell', 'dialogHelper', 'loading', 'layoutManager', 'connectionManager', 'scrollHelper', 'embyRouter', 'globalize', 'paper-checkbox', 'emby-input', 'paper-icon-button-light', 'emby-select', 'html!./../icons/nav.html', 'css!./../formdialog'], function (shell, dialogHelper, loading, layoutManager, connectionManager, scrollHelper, embyRouter, globalize) {
var currentServerId;
@@ -153,8 +153,8 @@
html += '
';
- html += '
';
- html += '
';
+ html += '
';
diff --git a/dashboard-ui/bower_components/emby-webcomponents/dialoghelper/dialoghelper.js b/dashboard-ui/bower_components/emby-webcomponents/dialoghelper/dialoghelper.js
index e03b51d86d..f857fd79dc 100644
--- a/dashboard-ui/bower_components/emby-webcomponents/dialoghelper/dialoghelper.js
+++ b/dashboard-ui/bower_components/emby-webcomponents/dialoghelper/dialoghelper.js
@@ -249,6 +249,15 @@
return elem.animate(keyframes, timing).onfinish = onFinish;
}
+ function scaleDown(elem) {
+
+ var keyframes = [
+ { transform: 'none', opacity: 1, offset: 0 },
+ { transform: 'scale(0)', opacity: 0, offset: 1 }];
+ var timing = elem.animationConfig.exit.timing;
+ return elem.animate(keyframes, timing);
+ }
+
function fadeOut(elem) {
var keyframes = [
@@ -291,6 +300,8 @@
if (dlg.animationConfig.exit.name == 'fadeout') {
animation = fadeOut(dlg);
+ } else if (dlg.animationConfig.exit.name == 'scaledown') {
+ animation = scaleDown(dlg);
} else if (dlg.animationConfig.exit.name == 'slidedown') {
animation = slideDown(dlg);
} else {
@@ -396,32 +407,32 @@
}
var defaultEntryAnimation = browser.animate ? 'scaleup' : 'fadein';
- dlg.entryAnimation = options.entryAnimation || defaultEntryAnimation;
- dlg.exitAnimation = 'fadeout';
+ var entryAnimation = options.entryAnimation || defaultEntryAnimation;
+ var defaultExitAnimation = browser.animate ? 'scaledown' : 'fadeout';
+ var exitAnimation = options.exitAnimation || defaultExitAnimation;
// If it's not fullscreen then lower the default animation speed to make it open really fast
var entryAnimationDuration = options.entryAnimationDuration || (options.size ? 200 : 300);
+ var exitAnimationDuration = options.exitAnimationDuration || (options.size ? 200 : 300);
dlg.animationConfig = {
// scale up
'entry': {
- name: dlg.entryAnimation,
+ name: entryAnimation,
node: dlg,
timing: { duration: entryAnimationDuration, easing: 'ease-out' }
},
// fade out
'exit': {
- name: dlg.exitAnimation,
+ name: exitAnimation,
node: dlg,
- timing: { duration: options.exitAnimationDuration || 300, easing: 'ease-in' }
+ timing: { duration: exitAnimationDuration, easing: 'ease-out' }
}
};
// too buggy in IE, not even worth it
if (!enableAnimation()) {
dlg.animationConfig = null;
- dlg.entryAnimation = null;
- dlg.exitAnimation = null;
}
dlg.classList.add('dialog');
diff --git a/dashboard-ui/bower_components/emby-webcomponents/emby-input/emby-input.css b/dashboard-ui/bower_components/emby-webcomponents/emby-input/emby-input.css
new file mode 100644
index 0000000000..f34da16a20
--- /dev/null
+++ b/dashboard-ui/bower_components/emby-webcomponents/emby-input/emby-input.css
@@ -0,0 +1,53 @@
+[is="emby-input"] {
+ display: block;
+ margin: 0;
+ margin-bottom: 0 !important;
+ background: none;
+ border: 1px solid rgb(221, 221, 221);
+ border-width: 0 0 1px 0;
+ /* Prefixed box-sizing rules necessary for older browsers */
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+ /* Remove select styling */
+ /* Font size must the 16px or larger to prevent iOS page zoom on focus */
+ font-size: inherit;
+ /* General select styles: change as needed */
+ font-family: inherit;
+ font-weight: inherit;
+ color: inherit;
+ padding: .35em 0 .3em 0;
+ cursor: pointer;
+ outline: none !important;
+ width: 100%;
+ background-color: transparent;
+ border-radius: 0;
+}
+
+.inputContainer {
+ margin-bottom: 1.5em;
+}
+
+.inputLabel {
+ display: block;
+}
+
+.inputLabelFocused {
+ color: #52B54B;
+}
+
+.emby-input-selectionbar {
+ height: 2px;
+ transform: scale(.01, 1);
+ transition: transform .25s ease-out;
+ position: relative;
+ top: -1px;
+ margin-bottom: .5em;
+ -webkit-transform-origin: center center;
+ transform-origin: center center;
+}
+
+[is="emby-input"]:focus + .emby-input-selectionbar {
+ background-color: #52B54B;
+ transform: none;
+}
diff --git a/dashboard-ui/bower_components/emby-webcomponents/emby-input/emby-input.js b/dashboard-ui/bower_components/emby-webcomponents/emby-input/emby-input.js
new file mode 100644
index 0000000000..08bc197182
--- /dev/null
+++ b/dashboard-ui/bower_components/emby-webcomponents/emby-input/emby-input.js
@@ -0,0 +1,71 @@
+define(['layoutManager', 'browser', 'css!./emby-input'], function (layoutManager, browser) {
+
+ var EmbyInputPrototype = Object.create(HTMLInputElement.prototype);
+
+ function getLabel(input) {
+ var elem = input.previousSibling;
+ while (elem && elem.tagName != 'LABEL') {
+ elem = elem.previousSibling;
+ }
+ return elem;
+ }
+
+ function onFocus(e) {
+ var label = getLabel(this);
+ if (label) {
+ label.classList.add('inputLabelFocused');
+ label.classList.remove('inputLabelUnfocused');
+ }
+ }
+
+ function onBlur(e) {
+ var label = getLabel(this);
+ if (label) {
+ label.classList.add('inputLabelUnfocused');
+ label.classList.remove('inputLabelFocused');
+ }
+ }
+
+ EmbyInputPrototype.createdCallback = function () {
+
+ var parent = this.parentNode;
+ if (!parent.classList.contains('inputContainer')) {
+ var div = this.ownerDocument.createElement('div');
+ div.classList.add('inputContainer');
+ parent.replaceChild(div, this);
+ div.appendChild(this);
+ }
+ if (!this.id) {
+ this.id = 'input' + new Date().getTime();
+ }
+
+ this.removeEventListener('focus', onFocus);
+ this.removeEventListener('blur', onBlur);
+
+ this.addEventListener('focus', onFocus);
+ this.addEventListener('blur', onBlur);
+ };
+
+ EmbyInputPrototype.attachedCallback = function () {
+
+ if (this.getAttribute('data-embyinput') != 'true') {
+ this.setAttribute('data-embyinput', 'true');
+
+ var label = this.ownerDocument.createElement('label');
+ label.innerHTML = this.getAttribute('label') || '';
+ label.classList.add('inputLabel');
+ label.classList.add('inputLabelUnfocused');
+ label.htmlFor = this.id;
+ this.parentNode.insertBefore(label, this);
+
+ var div = document.createElement('div');
+ div.classList.add('emby-input-selectionbar');
+ this.parentNode.insertBefore(div, this.nextSibling);
+ }
+ };
+
+ document.registerElement('emby-input', {
+ prototype: EmbyInputPrototype,
+ extends: 'input'
+ });
+});
\ No newline at end of file
diff --git a/dashboard-ui/bower_components/emby-webcomponents/emby-select/emby-select.js b/dashboard-ui/bower_components/emby-webcomponents/emby-select/emby-select.js
index 8d1b29b935..147efaf028 100644
--- a/dashboard-ui/bower_components/emby-webcomponents/emby-select/emby-select.js
+++ b/dashboard-ui/bower_components/emby-webcomponents/emby-select/emby-select.js
@@ -141,7 +141,6 @@
var div = document.createElement('div');
div.classList.add('emby-select-selectionbar');
- div.innerHTML = '
';
this.parentNode.insertBefore(div, this.nextSibling);
}
};
diff --git a/dashboard-ui/bower_components/emby-webcomponents/guide/guide.js b/dashboard-ui/bower_components/emby-webcomponents/guide/guide.js
index d0f7373912..cb5a021c12 100644
--- a/dashboard-ui/bower_components/emby-webcomponents/guide/guide.js
+++ b/dashboard-ui/bower_components/emby-webcomponents/guide/guide.js
@@ -6,7 +6,9 @@
var items = {};
self.refresh = function () {
- reloadPage(options.element);
+
+ var date = new Date();
+ changeDate(options.element, date);
};
self.destroy = function () {
@@ -249,7 +251,14 @@
addAccent = false;
}
- html += '