diff --git a/dashboard-ui/bower_components/emby-webcomponents/.bower.json b/dashboard-ui/bower_components/emby-webcomponents/.bower.json index 8f3312d93d..a0a27568b3 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/.bower.json +++ b/dashboard-ui/bower_components/emby-webcomponents/.bower.json @@ -14,12 +14,12 @@ }, "devDependencies": {}, "ignore": [], - "version": "1.4.415", - "_release": "1.4.415", + "version": "1.4.417", + "_release": "1.4.417", "_resolution": { "type": "version", - "tag": "1.4.415", - "commit": "ef218c1a08315f961adbbc08515089198e885972" + "tag": "1.4.417", + "commit": "d03cd494c958c2fcbc45447fab8b6ab58c925cba" }, "_source": "https://github.com/MediaBrowser/emby-webcomponents.git", "_target": "^1.2.1", diff --git a/dashboard-ui/bower_components/emby-webcomponents/input/mouse.js b/dashboard-ui/bower_components/emby-webcomponents/input/mouse.js new file mode 100644 index 0000000000..2ce6ec56e7 --- /dev/null +++ b/dashboard-ui/bower_components/emby-webcomponents/input/mouse.js @@ -0,0 +1,117 @@ +define(['inputManager', 'focusManager', 'browser', 'layoutManager', 'events', 'dom'], function (inputmanager, focusManager, browser, layoutManager, events, dom) { + 'use strict'; + + var self = {}; + + var lastMouseInputTime = new Date().getTime(); + var isMouseIdle; + + function mouseIdleTime() { + return new Date().getTime() - lastMouseInputTime; + } + + function notifyApp() { + + inputmanager.notifyMouseMove(); + } + + var lastMouseMoveData; + dom.addEventListener(document, 'mousemove', function (e) { + + var eventX = e.screenX; + var eventY = e.screenY; + + // if coord don't exist how could it move + if (typeof eventX === "undefined" && typeof eventY === "undefined") { + return; + } + + var obj = lastMouseMoveData; + if (!obj) { + lastMouseMoveData = { + x: eventX, + y: eventY + }; + return; + } + + // if coord are same, it didn't move + if (Math.abs(eventX - obj.x) < 10 && Math.abs(eventY - obj.y) < 10) { + return; + } + + obj.x = eventX; + obj.y = eventY; + + lastMouseInputTime = new Date().getTime(); + notifyApp(); + + if (isMouseIdle) { + isMouseIdle = false; + document.body.classList.remove('mouseIdle'); + events.trigger(self, 'mouseactive'); + } + }, { + passive: true + }); + + function onMouseEnter(e) { + + var parent = focusManager.focusableParent(e.target); + if (parent) { + focusManager.focus(e.target); + } + } + + function enableFocusWithMouse() { + + if (!layoutManager.tv) { + return false; + } + + if (browser.xboxOne) { + return true; + } + + if (browser.ps4) { + return true; + } + + if (browser.tv) { + return true; + } + + return false; + } + + function initMouseFocus() { + + dom.removeEventListener(document, 'mouseenter', onMouseEnter, { + capture: true, + passive: true + }); + + if (enableFocusWithMouse()) { + dom.addEventListener(document, 'mouseenter', onMouseEnter, { + capture: true, + passive: true + }); + } + } + + initMouseFocus(); + + events.on(layoutManager, 'modechange', initMouseFocus); + + setInterval(function () { + + if (mouseIdleTime() >= 5000) { + isMouseIdle = true; + document.body.classList.add('mouseIdle'); + events.trigger(self, 'mouseidle'); + } + + }, 5000); + + return self; +}); \ No newline at end of file diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/en-US.json b/dashboard-ui/bower_components/emby-webcomponents/strings/en-US.json index 124c0ccc27..c8dbdcef5e 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/strings/en-US.json +++ b/dashboard-ui/bower_components/emby-webcomponents/strings/en-US.json @@ -376,5 +376,6 @@ "SyncJobItemStatusFailed": "Failed", "SyncJobItemStatusRemovedFromDevice": "Removed from device", "SyncJobItemStatusCancelled": "Cancelled", - "Retry": "Retry" + "Retry": "Retry", + "MyDevice": "My device" } \ No newline at end of file