diff --git a/dashboard-ui/bower_components/emby-webcomponents/.bower.json b/dashboard-ui/bower_components/emby-webcomponents/.bower.json
index ae4649ab60..04d273769d 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.53",
- "_release": "1.4.53",
+ "version": "1.4.54",
+ "_release": "1.4.54",
"_resolution": {
"type": "version",
- "tag": "1.4.53",
- "commit": "300770cf6f36621ffdb2d2482438916f1520ffb5"
+ "tag": "1.4.54",
+ "commit": "e54c908295025a828f897937f4e41d3ec9f122ba"
},
"_source": "https://github.com/MediaBrowser/emby-webcomponents.git",
"_target": "^1.2.0",
diff --git a/dashboard-ui/bower_components/emby-webcomponents/emby-textarea/emby-textarea.css b/dashboard-ui/bower_components/emby-webcomponents/emby-textarea/emby-textarea.css
new file mode 100644
index 0000000000..d152280d28
--- /dev/null
+++ b/dashboard-ui/bower_components/emby-webcomponents/emby-textarea/emby-textarea.css
@@ -0,0 +1,54 @@
+[is="emby-textarea"] {
+ 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: 2em;
+}
+
+.textareaLabel {
+ display: inline-block;
+ transition: all .2s ease-out;
+}
+
+.textareaLabel.focused:not(.blank) {
+ color: #52B54B;
+}
+
+.emby-textarea-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-textarea"]:focus + .emby-textarea-selectionbar {
+ background-color: #52B54B;
+ transform: none;
+}
diff --git a/dashboard-ui/bower_components/emby-webcomponents/emby-textarea/emby-textarea.js b/dashboard-ui/bower_components/emby-webcomponents/emby-textarea/emby-textarea.js
new file mode 100644
index 0000000000..e9fcb1f7fb
--- /dev/null
+++ b/dashboard-ui/bower_components/emby-webcomponents/emby-textarea/emby-textarea.js
@@ -0,0 +1,161 @@
+define(['layoutManager', 'browser', 'css!./emby-textarea', 'registerElement'], function (layoutManager, browser) {
+
+ function autoGrow(textarea, maxLines) {
+ var self = this;
+
+ if (maxLines === undefined) {
+ maxLines = 999;
+ }
+
+ /**
+ * Calculates the vertical padding of the element
+ * @param textarea
+ * @returns {number}
+ */
+ self.getOffset = function (textarea) {
+ var style = window.getComputedStyle(textarea, null),
+ props = ['paddingTop', 'paddingBottom'],
+ offset = 0;
+
+ for (var i = 0; i < props.length; i++) {
+ offset += parseInt(style[props[i]]);
+ }
+ return offset;
+ };
+
+ var offset;
+ function reset() {
+ textarea.rows = 1;
+ offset = self.getOffset(textarea);
+ self.rows = textarea.rows || 1;
+ self.lineHeight = (textarea.scrollHeight / self.rows) - (offset / self.rows);
+ self.maxAllowedHeight = (self.lineHeight * maxLines) - offset;
+ }
+
+ function autogrowFn() {
+ if (!self.lineHeight || self.lineHeight <= 0) {
+ reset();
+ }
+ if (self.lineHeight <= 0) {
+ textarea.style.overflowY = 'scroll';
+ textarea.style.height = 'auto';
+ textarea.rows = 3;
+ return;
+ }
+ var newHeight = 0, hasGrown = false;
+
+ if ((textarea.scrollHeight - offset) > self.maxAllowedHeight) {
+ textarea.style.overflowY = 'scroll';
+ newHeight = self.maxAllowedHeight;
+ }
+ else {
+ textarea.style.overflowY = 'hidden';
+ textarea.style.height = 'auto';
+ newHeight = textarea.scrollHeight/* - offset*/;
+ hasGrown = true;
+ }
+ textarea.style.height = newHeight + 'px';
+ }
+
+ // Call autogrowFn() when textarea's value is changed
+ textarea.addEventListener('input', autogrowFn);
+ textarea.addEventListener('focus', autogrowFn);
+ textarea.addEventListener('valueset', autogrowFn);
+
+ autogrowFn();
+ }
+
+ var EmbyTextAreaPrototype = Object.create(HTMLTextAreaElement.prototype);
+
+ var elementId = 0;
+ var supportsFloatingLabel = false;
+
+ if (Object.getOwnPropertyDescriptor && Object.defineProperty) {
+
+ var descriptor = Object.getOwnPropertyDescriptor(HTMLTextAreaElement.prototype, 'value');
+
+ // descriptor returning null in webos
+ if (descriptor && descriptor.configurable) {
+ var baseSetMethod = descriptor.set;
+ descriptor.set = function (value) {
+ baseSetMethod.call(this, value);
+
+ this.dispatchEvent(new CustomEvent('valueset', {
+ bubbles: false,
+ cancelable: false
+ }));
+ }
+
+ Object.defineProperty(HTMLTextAreaElement.prototype, 'value', descriptor);
+ supportsFloatingLabel = true;
+ }
+ }
+
+ EmbyTextAreaPrototype.createdCallback = function () {
+
+ if (!this.id) {
+ this.id = 'embytextarea' + elementId;
+ elementId++;
+ }
+ };
+
+ EmbyTextAreaPrototype.attachedCallback = function () {
+
+ if (this.getAttribute('data-embytextarea') == 'true') {
+ return;
+ }
+
+ this.rows = 1;
+ this.setAttribute('data-embytextarea', 'true');
+
+ var parentNode = this.parentNode;
+ var label = this.ownerDocument.createElement('label');
+ label.innerHTML = this.getAttribute('label') || '';
+ label.classList.add('textareaLabel');
+
+ if (!supportsFloatingLabel || this.type == 'date') {
+ label.classList.add('nofloat');
+ }
+
+ label.htmlFor = this.id;
+ parentNode.insertBefore(label, this);
+
+ var div = document.createElement('div');
+ div.classList.add('emby-textarea-selectionbar');
+ parentNode.insertBefore(div, this.nextSibling);
+
+ function onChange() {
+ if (this.value) {
+ label.classList.remove('blank');
+ } else {
+ label.classList.add('blank');
+ }
+ }
+
+ this.addEventListener('focus', function () {
+ onChange.call(this);
+ label.classList.add('focused');
+ });
+ this.addEventListener('blur', function () {
+ onChange.call(this);
+ label.classList.remove('focused');
+ });
+
+ this.addEventListener('change', onChange);
+ this.addEventListener('input', onChange);
+ this.addEventListener('valueset', onChange);
+
+ onChange.call(this);
+
+ this.label = function (text) {
+ label.innerHTML = text;
+ };
+
+ new autoGrow(this);
+ };
+
+ document.registerElement('emby-textarea', {
+ prototype: EmbyTextAreaPrototype,
+ extends: 'textarea'
+ });
+});
\ No newline at end of file
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 656f942272..2c5b6ec298 100644
--- a/dashboard-ui/bower_components/iron-a11y-keys-behavior/.bower.json
+++ b/dashboard-ui/bower_components/iron-a11y-keys-behavior/.bower.json
@@ -1,6 +1,6 @@
{
"name": "iron-a11y-keys-behavior",
- "version": "1.1.3",
+ "version": "1.1.4",
"description": "A behavior that enables keybindings for greater a11y.",
"keywords": [
"web-components",
@@ -30,14 +30,14 @@
"webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0"
},
"ignore": [],
- "homepage": "https://github.com/PolymerElements/iron-a11y-keys-behavior",
- "_release": "1.1.3",
+ "homepage": "https://github.com/polymerelements/iron-a11y-keys-behavior",
+ "_release": "1.1.4",
"_resolution": {
"type": "version",
- "tag": "v1.1.3",
- "commit": "bfbb922fb9029958e618baf06acf8e3c6513898b"
+ "tag": "v1.1.4",
+ "commit": "36362671d1cee654758d0e2167548f9fdcff2805"
},
- "_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-a11y-keys-behavior/.travis.yml b/dashboard-ui/bower_components/iron-a11y-keys-behavior/.travis.yml
index 2dfea3f72d..bb7b10a3e2 100644
--- a/dashboard-ui/bower_components/iron-a11y-keys-behavior/.travis.yml
+++ b/dashboard-ui/bower_components/iron-a11y-keys-behavior/.travis.yml
@@ -10,7 +10,7 @@ env:
- secure: vIs86+z7s1QwihkHtLBRQzlmJRSIWIadq3SlDdZHS4HOivH7fNV0d4hm8QnZYZ9X8yvSvxFCzEFdLuX1TpU0H3oy5wgYky7DnfJtsEhuOfW8dobHHZeCNi/t2FQAXpobqpRwojC3A+1b1lNrY1XNpYRz7aEialO4Yr8e1SQSLex5zw/pqm7g9Vz6PnQwobDQcGXKc6ZWc84+DqOo9qfkSlnEJC/1vQxHYpUa172UnnAnmHJ7gZKdhf9aLWJSZcSpPcoKEnvslRFmeDyRMNRDWVzcg2vHnV+tc1aYzp1wsrRW3P+oqwYlvGlxo+5U92QLXKIcKZhGblVWxe8BtXgiVzgS1sz5D11vKs61Xe46onbguG/XK3UxX9bPRK5uklkC5fwAY2hhvOTGXqimTb2YrlyEWO3BCKGBk6Is3KGyCe7c2nNEmXPUSun9X1JLGRPivJb9iBR4/WSEFvibYHl6/gIke9LdXPOCHuJ3+Iu14lCz+pwi8ADIWVuGpDIxFcorG8a3BCoxQo5VouUbSe0mcNttAvSzBNxhljaaBuFs56DLDpLRr0sGhqvfA1JzdCyzVyrk4WECfZw26pAnYCyTczVXmu5msVdKnjPJKtDqWazvIhHk2G1mk8CKb14lrN58u/Kh6PQ3miJ+61c1stBWhRDlp2QffOkBJiOATKHF+AA=
node_js: stable
addons:
- firefox: latest
+ firefox: '46.0'
apt:
sources:
- google-chrome
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 0deb5dc354..dfa3912382 100644
--- a/dashboard-ui/bower_components/iron-a11y-keys-behavior/bower.json
+++ b/dashboard-ui/bower_components/iron-a11y-keys-behavior/bower.json
@@ -1,6 +1,6 @@
{
"name": "iron-a11y-keys-behavior",
- "version": "1.1.3",
+ "version": "1.1.4",
"description": "A behavior that enables keybindings for greater a11y.",
"keywords": [
"web-components",
diff --git a/dashboard-ui/bower_components/iron-a11y-keys-behavior/iron-a11y-keys-behavior.html b/dashboard-ui/bower_components/iron-a11y-keys-behavior/iron-a11y-keys-behavior.html
index 311145ebf4..cc18d99f76 100644
--- a/dashboard-ui/bower_components/iron-a11y-keys-behavior/iron-a11y-keys-behavior.html
+++ b/dashboard-ui/bower_components/iron-a11y-keys-behavior/iron-a11y-keys-behavior.html
@@ -249,7 +249,9 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN
Polymer.IronA11yKeysBehavior = {
properties: {
/**
- * The HTMLElement that will be firing relevant KeyboardEvents.
+ * The EventTarget that will be firing relevant KeyboardEvents. Set it to
+ * `null` to disable the listeners.
+ * @type {?EventTarget}
*/
keyEventTarget: {
type: Object,
@@ -389,7 +391,7 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN
_resetKeyEventListeners: function() {
this._unlistenKeyEventListeners();
- if (this.isAttached) {
+ if (this.isAttached && this.keyEventTarget) {
this._listenKeyEventListeners();
}
},
diff --git a/dashboard-ui/bower_components/iron-a11y-keys-behavior/test/basic-test.html b/dashboard-ui/bower_components/iron-a11y-keys-behavior/test/basic-test.html
index eec49751b1..3253e2314c 100644
--- a/dashboard-ui/bower_components/iron-a11y-keys-behavior/test/basic-test.html
+++ b/dashboard-ui/bower_components/iron-a11y-keys-behavior/test/basic-test.html
@@ -173,6 +173,13 @@ suite('Polymer.IronA11yKeysBehavior', function() {
expect(keys.keyCount).to.be.equal(1);
});
+ test('keyEventTarget can be null, and disables listeners', function() {
+ keys.keyEventTarget = null;
+ MockInteractions.pressSpace(keys);
+
+ expect(keys.keyCount).to.be.equal(0);
+ });
+
test('trigger the handler when the specified key is pressed together with a modifier', function() {
var event = new CustomEvent('keydown');
event.ctrlKey = true;
diff --git a/dashboard-ui/bower_components/paper-icon-button/.bower.json b/dashboard-ui/bower_components/paper-icon-button/.bower.json
index 1ed58fbf61..abf5a6ac5e 100644
--- a/dashboard-ui/bower_components/paper-icon-button/.bower.json
+++ b/dashboard-ui/bower_components/paper-icon-button/.bower.json
@@ -37,14 +37,14 @@
"webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0"
},
"ignore": [],
- "homepage": "https://github.com/polymerelements/paper-icon-button",
+ "homepage": "https://github.com/PolymerElements/paper-icon-button",
"_release": "1.1.2",
"_resolution": {
"type": "version",
"tag": "v1.1.2",
"commit": "0a6c65f73765d6f6ae6cfe90ddc9905a2cf45f20"
},
- "_source": "git://github.com/polymerelements/paper-icon-button.git",
+ "_source": "git://github.com/PolymerElements/paper-icon-button.git",
"_target": "^1.0.0",
- "_originalSource": "polymerelements/paper-icon-button"
+ "_originalSource": "PolymerElements/paper-icon-button"
}
\ No newline at end of file
diff --git a/dashboard-ui/bower_components/paper-input/.bower.json b/dashboard-ui/bower_components/paper-input/.bower.json
index b3a6f1a2fb..c4f1e3adac 100644
--- a/dashboard-ui/bower_components/paper-input/.bower.json
+++ b/dashboard-ui/bower_components/paper-input/.bower.json
@@ -1,6 +1,6 @@
{
"name": "paper-input",
- "version": "1.1.11",
+ "version": "1.1.12",
"description": "Material design text fields",
"authors": [
"The Polymer Authors"
@@ -48,14 +48,13 @@
"web-component-tester": "^4.0.0",
"webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0"
},
- "_release": "1.1.11",
+ "_release": "1.1.12",
"_resolution": {
"type": "version",
- "tag": "v1.1.11",
- "commit": "8cfe5c5bf8c2e40d243443d046a94b6fe371983c"
+ "tag": "v1.1.12",
+ "commit": "5dd3174ecee88ea280e960c6b6fbd04ce5c3da0e"
},
"_source": "git://github.com/PolymerElements/paper-input.git",
"_target": "^1.1.11",
- "_originalSource": "PolymerElements/paper-input",
- "_direct": true
+ "_originalSource": "PolymerElements/paper-input"
}
\ No newline at end of file
diff --git a/dashboard-ui/bower_components/paper-input/.travis.yml b/dashboard-ui/bower_components/paper-input/.travis.yml
index 1ce5f1a2dc..2212dafd54 100644
--- a/dashboard-ui/bower_components/paper-input/.travis.yml
+++ b/dashboard-ui/bower_components/paper-input/.travis.yml
@@ -10,7 +10,7 @@ env:
- secure: nh65tvhnhOrK05qKvDJKMV7Jm9yiCoG1wFkP3ZnqOHix9Ny+KmcTa41Bl6NXQdvYaMTFtzS7lMZX5cqIziyKyGWHVN30LzGMHJNz12fhcMi3nJ84trhQGcu/9qR9yDv16q9ouGlcz1VxnDOHaRAHnIKjLIbhN3aJtMtZBbnWihA=
node_js: stable
addons:
- firefox: latest
+ firefox: '46.0'
apt:
sources:
- google-chrome
diff --git a/dashboard-ui/bower_components/paper-input/CONTRIBUTING.md b/dashboard-ui/bower_components/paper-input/CONTRIBUTING.md
index f147978a3e..093090d435 100644
--- a/dashboard-ui/bower_components/paper-input/CONTRIBUTING.md
+++ b/dashboard-ui/bower_components/paper-input/CONTRIBUTING.md
@@ -1,4 +1,3 @@
-
+
# Polymer Elements
## Guide for Contributors
diff --git a/dashboard-ui/bower_components/paper-input/bower.json b/dashboard-ui/bower_components/paper-input/bower.json
index f8ec9f5abd..457eb171d9 100644
--- a/dashboard-ui/bower_components/paper-input/bower.json
+++ b/dashboard-ui/bower_components/paper-input/bower.json
@@ -1,6 +1,6 @@
{
"name": "paper-input",
- "version": "1.1.11",
+ "version": "1.1.12",
"description": "Material design text fields",
"authors": [
"The Polymer Authors"
diff --git a/dashboard-ui/bower_components/paper-input/demo/ssn-input.html b/dashboard-ui/bower_components/paper-input/demo/ssn-input.html
index d5cb3ae207..c7ab51dd61 100644
--- a/dashboard-ui/bower_components/paper-input/demo/ssn-input.html
+++ b/dashboard-ui/bower_components/paper-input/demo/ssn-input.html
@@ -20,6 +20,10 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN
display: inline-block;
}
+ :host([hidden]) {
+ display: none !important;
+ }
+
input[is="iron-input"] {
font: inherit;
outline: none;
diff --git a/dashboard-ui/bower_components/paper-input/paper-input-behavior.html b/dashboard-ui/bower_components/paper-input/paper-input-behavior.html
index 20a166546d..9bb10019aa 100644
--- a/dashboard-ui/bower_components/paper-input/paper-input-behavior.html
+++ b/dashboard-ui/bower_components/paper-input/paper-input-behavior.html
@@ -446,13 +446,10 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN
* Forward focus to inputElement. Overriden from IronControlState.
*/
_focusBlurHandler: function(event) {
- if (this._shiftTabPressed)
- return;
-
Polymer.IronControlState._focusBlurHandler.call(this, event);
// Forward the focus to the nested input.
- if (this.focused)
+ if (this.focused && !this._shiftTabPressed)
this._focusableElement.focus();
},
diff --git a/dashboard-ui/bower_components/paper-input/paper-input-char-counter.html b/dashboard-ui/bower_components/paper-input/paper-input-char-counter.html
index aa3ee51f41..f856308d86 100644
--- a/dashboard-ui/bower_components/paper-input/paper-input-char-counter.html
+++ b/dashboard-ui/bower_components/paper-input/paper-input-char-counter.html
@@ -41,6 +41,10 @@ Custom property | Description | Default
@apply(--paper-input-char-counter);
}
+ :host([hidden]) {
+ display: none !important;
+ }
+
:host-context([dir="rtl"]) {
float: left;
}
diff --git a/dashboard-ui/bower_components/paper-input/paper-input-container.html b/dashboard-ui/bower_components/paper-input/paper-input-container.html
index 297410d311..cf3358026c 100644
--- a/dashboard-ui/bower_components/paper-input/paper-input-container.html
+++ b/dashboard-ui/bower_components/paper-input/paper-input-container.html
@@ -121,6 +121,10 @@ This element is `display:block` by default, but you can set the `inline` attribu
@apply(--paper-input-container-disabled);
}
+ :host([hidden]) {
+ display: none !important;
+ }
+
.floated-label-placeholder {
@apply(--paper-font-caption);
}
@@ -310,7 +314,7 @@ This element is `display:block` by default, but you can set the `inline` attribu
-