diff --git a/dashboard-ui/bower_components/emby-webcomponents/.bower.json b/dashboard-ui/bower_components/emby-webcomponents/.bower.json index 2c2005fad5..1932b87595 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.2.47", - "_release": "1.2.47", + "version": "1.2.48", + "_release": "1.2.48", "_resolution": { "type": "version", - "tag": "1.2.47", - "commit": "52f3790ed3d535fa00811d7922c899f85273b25c" + "tag": "1.2.48", + "commit": "342107db8bbaa343a4c61be6fd2591121a83ffff" }, "_source": "https://github.com/MediaBrowser/emby-webcomponents.git", "_target": "^1.2.0", diff --git a/dashboard-ui/bower_components/emby-webcomponents/actionsheet/actionsheet.css b/dashboard-ui/bower_components/emby-webcomponents/actionsheet/actionsheet.css index 762e76a745..6fa8ee1182 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/actionsheet/actionsheet.css +++ b/dashboard-ui/bower_components/emby-webcomponents/actionsheet/actionsheet.css @@ -25,12 +25,17 @@ transition: transform .3s cubic-bezier(.4,0,.2,1),opacity .2s cubic-bezier(.4,0,.2,1); transition: transform .3s cubic-bezier(.4,0,.2,1),opacity .2s cubic-bezier(.4,0,.2,1),-webkit-transform .3s cubic-bezier(.4,0,.2,1); z-index: -1;*/ + max-height: 84%; } - .actionSheet.centered .actionSheetContent { - text-align: center; - align-items: center; - } +.layout-tv .actionSheet { + max-height: none; +} + +.actionSheet.centered .actionSheetContent { + text-align: center; + align-items: center; +} .actionSheetContent { margin: 0 !important; diff --git a/dashboard-ui/bower_components/iron-icon/.bower.json b/dashboard-ui/bower_components/iron-icon/.bower.json index f0167baf13..9784e3a3b7 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-meta/.bower.json b/dashboard-ui/bower_components/iron-meta/.bower.json index f4bfef4a7c..e1304d174b 100644 --- a/dashboard-ui/bower_components/iron-meta/.bower.json +++ b/dashboard-ui/bower_components/iron-meta/.bower.json @@ -26,14 +26,14 @@ "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" }, "main": "iron-meta.html", - "homepage": "https://github.com/polymerelements/iron-meta", + "homepage": "https://github.com/PolymerElements/iron-meta", "_release": "1.1.1", "_resolution": { "type": "version", "tag": "v1.1.1", "commit": "e171ee234b482219c9514e6f9551df48ef48bd9f" }, - "_source": "git://github.com/polymerelements/iron-meta.git", + "_source": "git://github.com/PolymerElements/iron-meta.git", "_target": "^1.0.0", - "_originalSource": "polymerelements/iron-meta" + "_originalSource": "PolymerElements/iron-meta" } \ No newline at end of file diff --git a/dashboard-ui/bower_components/iron-overlay-behavior/.bower.json b/dashboard-ui/bower_components/iron-overlay-behavior/.bower.json index 529d991c8c..35dc58b18a 100644 --- a/dashboard-ui/bower_components/iron-overlay-behavior/.bower.json +++ b/dashboard-ui/bower_components/iron-overlay-behavior/.bower.json @@ -1,6 +1,6 @@ { "name": "iron-overlay-behavior", - "version": "1.6.3", + "version": "1.6.4", "license": "http://polymer.github.io/LICENSE.txt", "description": "Provides a behavior for making an element an overlay", "private": true, @@ -35,11 +35,11 @@ }, "ignore": [], "homepage": "https://github.com/polymerelements/iron-overlay-behavior", - "_release": "1.6.3", + "_release": "1.6.4", "_resolution": { "type": "version", - "tag": "v1.6.3", - "commit": "5b331ebaefe3214937b94ba19769154efee46244" + "tag": "v1.6.4", + "commit": "983654132fd8281c3da07d79eea8a0f5b28e7a4f" }, "_source": "git://github.com/polymerelements/iron-overlay-behavior.git", "_target": "^1.0.0", diff --git a/dashboard-ui/bower_components/iron-overlay-behavior/bower.json b/dashboard-ui/bower_components/iron-overlay-behavior/bower.json index 05bdeb4e07..1be05487e4 100644 --- a/dashboard-ui/bower_components/iron-overlay-behavior/bower.json +++ b/dashboard-ui/bower_components/iron-overlay-behavior/bower.json @@ -1,6 +1,6 @@ { "name": "iron-overlay-behavior", - "version": "1.6.3", + "version": "1.6.4", "license": "http://polymer.github.io/LICENSE.txt", "description": "Provides a behavior for making an element an overlay", "private": true, diff --git a/dashboard-ui/bower_components/iron-overlay-behavior/iron-overlay-behavior.html b/dashboard-ui/bower_components/iron-overlay-behavior/iron-overlay-behavior.html index aca0171f66..68c7b3224a 100644 --- a/dashboard-ui/bower_components/iron-overlay-behavior/iron-overlay-behavior.html +++ b/dashboard-ui/bower_components/iron-overlay-behavior/iron-overlay-behavior.html @@ -113,7 +113,9 @@ context. You should place this element as a child of `` whenever possible. }, /** - * Returns the reason this dialog was last closed. + * Contains the reason(s) this overlay was last closed (see `iron-overlay-closed`). + * `IronOverlayBehavior` provides the `canceled` reason; implementers of the + * behavior can provide other reasons in addition to `canceled`. */ closingReason: { // was a getter before, but needs to be a property so other @@ -322,16 +324,23 @@ context. You should place this element as a child of `` whenever possible. this._manager.addOrRemoveOverlay(this); - this.__isAnimating = true; - - // requestAnimationFrame for non-blocking rendering if (this.__openChangedAsync) { window.cancelAnimationFrame(this.__openChangedAsync); } + + // Defer any animation-related code on attached + // (_openedChanged gets called again on attached). + if (!this.isAttached) { + return; + } + + this.__isAnimating = true; + if (this.opened) { if (this.withBackdrop) { this.backdropElement.prepare(); } + // requestAnimationFrame for non-blocking rendering this.__openChangedAsync = window.requestAnimationFrame(function() { this.__openChangedAsync = null; this._prepareRenderOpened(); @@ -574,24 +583,26 @@ context. You should place this element as a child of `` whenever possible. Polymer.IronOverlayBehavior = [Polymer.IronFitBehavior, Polymer.IronResizableBehavior, Polymer.IronOverlayBehaviorImpl]; /** - * Fired after the `iron-overlay` opens. - * @event iron-overlay-opened - */ + * Fired after the overlay opens. + * @event iron-overlay-opened + */ /** - * Fired when the `iron-overlay` is canceled, but before it is closed. - * Cancel the event to prevent the `iron-overlay` from closing. - * @event iron-overlay-canceled - * @param {Event} event The closing of the `iron-overlay` can be prevented - * by calling `event.preventDefault()`. The `event.detail` is the original event that originated - * the canceling (e.g. ESC keyboard event or click event outside the `iron-overlay`). - */ + * Fired when the overlay is canceled, but before it is closed. + * @event iron-overlay-canceled + * @param {Event} event The closing of the overlay can be prevented + * by calling `event.preventDefault()`. + * @param {Event} event.detail It is the original event that originated + * the canceling (e.g. ESC keyboard event or click event outside the overlay). + */ /** - * Fired after the `iron-overlay` closes. - * @event iron-overlay-closed - * @param {{canceled: (boolean|undefined)}} closingReason Contains `canceled` (whether the overlay was canceled). - */ + * Fired after the overlay closes. + * @event iron-overlay-closed + * @param {Event} event The event + * @param {Object} event.detail It is the `closingReason` property (contains + * `canceled`, whether the overlay was canceled). + */ })(); diff --git a/dashboard-ui/bower_components/iron-overlay-behavior/iron-overlay-manager.html b/dashboard-ui/bower_components/iron-overlay-behavior/iron-overlay-manager.html index 020855f4b5..e1452a9bc9 100644 --- a/dashboard-ui/bower_components/iron-overlay-behavior/iron-overlay-manager.html +++ b/dashboard-ui/bower_components/iron-overlay-behavior/iron-overlay-manager.html @@ -339,6 +339,12 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN var overlay = /** @type {?} */ (this.currentOverlay()); // Check if clicked outside of top overlay. if (overlay && this._overlayInPath(Polymer.dom(event).path) !== overlay) { + if (overlay.withBackdrop) { + // There's no need to stop the propagation as the backdrop element + // already got this mousedown/touchstart event. Calling preventDefault + // on this event ensures that click/tap won't be triggered at all. + event.preventDefault(); + } overlay._onCaptureClick(event); } }, diff --git a/dashboard-ui/bower_components/iron-overlay-behavior/test/iron-overlay-behavior.html b/dashboard-ui/bower_components/iron-overlay-behavior/test/iron-overlay-behavior.html index 4834a50eb6..0069d897b8 100644 --- a/dashboard-ui/bower_components/iron-overlay-behavior/test/iron-overlay-behavior.html +++ b/dashboard-ui/bower_components/iron-overlay-behavior/test/iron-overlay-behavior.html @@ -155,6 +155,21 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN assert.equal(getComputedStyle(overlay).display, 'none', 'overlay starts hidden'); }); + test('_renderOpened called only after is attached', function(done) { + var overlay = document.createElement('test-overlay'); + // The overlay is ready at this point, but not yet attached. + var spy = sinon.spy(overlay, '_renderOpened'); + // This triggers _openedChanged. + overlay.opened = true; + // Even if not attached yet, overlay should be the current overlay! + assert.equal(overlay, overlay._manager.currentOverlay(), 'currentOverlay ok'); + // Wait long enough for requestAnimationFrame callback. + overlay.async(function() { + assert.isFalse(spy.called, '_renderOpened not called'); + done(); + }, 100); + }); + test('overlay open/close events', function(done) { var nevents = 0; @@ -751,6 +766,27 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN done(); }); }); + + test('withBackdrop = true prevents click outside event', function(done) { + runAfterOpen(overlay, function() { + overlay.addEventListener('iron-overlay-canceled', function(event) { + assert.isTrue(event.detail.defaultPrevented, 'click event prevented'); + done(); + }); + MockInteractions.tap(document.body); + }); + }); + + test('withBackdrop = false does not prevent click outside event', function(done) { + overlay.withBackdrop = false; + runAfterOpen(overlay, function() { + overlay.addEventListener('iron-overlay-canceled', function(event) { + assert.isFalse(event.detail.defaultPrevented, 'click event not prevented'); + done(); + }); + MockInteractions.tap(document.body); + }); + }); }); suite('multiple overlays', function() { diff --git a/dashboard-ui/bower_components/paper-input/.bower.json b/dashboard-ui/bower_components/paper-input/.bower.json index d0d6e203aa..dc6a378a1f 100644 --- a/dashboard-ui/bower_components/paper-input/.bower.json +++ b/dashboard-ui/bower_components/paper-input/.bower.json @@ -54,7 +54,7 @@ "tag": "v1.1.11", "commit": "8cfe5c5bf8c2e40d243443d046a94b6fe371983c" }, - "_source": "git://github.com/PolymerElements/paper-input.git", - "_target": "^1.0.0", - "_originalSource": "PolymerElements/paper-input" + "_source": "git://github.com/polymerelements/paper-input.git", + "_target": "^1.0.9", + "_originalSource": "polymerelements/paper-input" } \ No newline at end of file diff --git a/dashboard-ui/scripts/livetvguide.js b/dashboard-ui/scripts/livetvguide.js index 80f3fc448b..d13286fddb 100644 --- a/dashboard-ui/scripts/livetvguide.js +++ b/dashboard-ui/scripts/livetvguide.js @@ -1,28 +1,4 @@ -define(['tvguide', 'events'], function (tvguide, events) { - - function onGuideLoaded() { - - var context = this.options.element; - - require(["headroom"], function () { - - // construct an instance of Headroom, passing the element - var headroom = new Headroom(context.querySelector('.tvGuideHeader'), { - // or scroll tolerance per direction - scroller: context.querySelector('.guideVerticalScroller'), - - onPin: function () { - context.classList.remove('headroomUnpinned'); - }, - // callback when unpinned, `this` is headroom object - onUnpin: function () { - context.classList.add('headroomUnpinned'); - } - }); - // initialise - headroom.init(); - }); - } +define(['tvguide'], function (tvguide) { window.LiveTvPage.initGuideTab = function (page, tabContent) { @@ -35,9 +11,6 @@ page.guideInstance = new tvguide({ element: tabContent }); - - events.on(page.guideInstance, 'load', onGuideLoaded); - } };