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
diff --git a/dashboard-ui/bower_components/paper-input/paper-input.html b/dashboard-ui/bower_components/paper-input/paper-input.html index 13cdf97e8a..075cfa68b4 100644 --- a/dashboard-ui/bower_components/paper-input/paper-input.html +++ b/dashboard-ui/bower_components/paper-input/paper-input.html @@ -74,6 +74,10 @@ style this element. display: block; } + :host([hidden]) { + display: none !important; + } + input::-webkit-input-placeholder { color: var(--paper-input-container-color, --secondary-text-color); } @@ -95,7 +99,7 @@ style this element. - + - +
- +