1
0
Fork 0
mirror of https://github.com/jellyfin/jellyfin-web synced 2025-03-30 19:56:21 +00:00

update events

This commit is contained in:
Luke Pulverenti 2016-08-07 15:43:52 -04:00
parent 08c6ef7935
commit 0e0fa54547
17 changed files with 140 additions and 141 deletions

View file

@ -14,12 +14,12 @@
},
"devDependencies": {},
"ignore": [],
"version": "1.4.159",
"_release": "1.4.159",
"version": "1.4.161",
"_release": "1.4.161",
"_resolution": {
"type": "version",
"tag": "1.4.159",
"commit": "6320b765b9390fc57210d45c8e9bfcf66d1a2706"
"tag": "1.4.161",
"commit": "da357c3660e6956a59327fdd9d90506d16dc4b5c"
},
"_source": "https://github.com/MediaBrowser/emby-webcomponents.git",
"_target": "^1.2.1",

View file

@ -110,6 +110,7 @@ define(['focusManager', 'css!./style.css', 'paper-icon-button-light', 'material-
var value = alphaPickerButton.getAttribute('data-value');
element.dispatchEvent(new CustomEvent("alphavalueclicked", {
cancelable: false,
detail: {
value: value
}
@ -247,6 +248,7 @@ define(['focusManager', 'css!./style.css', 'paper-icon-button-light', 'material-
if (applyValue) {
element.dispatchEvent(new CustomEvent("alphavaluechanged", {
cancelable: false,
detail: {
value: value
}

View file

@ -44,9 +44,37 @@ define([], function () {
return elem;
}
var supportsCaptureOption = false;
try {
var opts = Object.defineProperty({}, 'capture', {
get: function () {
supportsCaptureOption = true;
}
});
window.addEventListener("test", null, opts);
} catch (e) { }
function addEventListenerWithOptions(target, type, handler, options) {
var optionsOrCapture = options;
if (!supportsCaptureOption) {
optionsOrCapture = options.capture;
}
target.addEventListener(type, handler, optionsOrCapture);
}
function removeEventListenerWithOptions(target, type, handler, options) {
var optionsOrCapture = options;
if (!supportsCaptureOption) {
optionsOrCapture = options.capture;
}
target.removeEventListener(type, handler, optionsOrCapture);
}
return {
parentWithAttribute: parentWithAttribute,
parentWithClass: parentWithClass,
parentWithTag: parentWithTag
parentWithTag: parentWithTag,
addEventListener: addEventListenerWithOptions,
removeEventListener: removeEventListenerWithOptions
};
});

View file

@ -1,4 +1,4 @@
define(['browser', 'css!./emby-button', 'registerElement'], function (browser) {
define(['browser', 'dom', 'css!./emby-button', 'registerElement'], function (browser, dom) {
var EmbyButtonPrototype = Object.create(HTMLButtonElement.prototype);
@ -66,11 +66,17 @@
}
if (enableAnimation()) {
this.addEventListener('keydown', onKeyDown);
dom.addEventListener(this, 'keydown', onKeyDown, {
passive: true
});
if (browser.safari) {
this.addEventListener('click', animateButton);
dom.addEventListener(this, 'click', animateButton, {
passive: true
});
} else {
this.addEventListener('mousedown', onMouseDown);
dom.addEventListener(this, 'mousedown', onMouseDown, {
passive: true
});
//this.addEventListener('touchstart', animateButton);
}
}

View file

@ -1,4 +1,4 @@
define(['browser', 'css!./emby-button', 'registerElement'], function (browser) {
define(['browser', 'dom', 'css!./emby-button', 'registerElement'], function (browser, dom) {
var EmbyButtonPrototype = Object.create(HTMLButtonElement.prototype);
@ -55,8 +55,12 @@
this.classList.add('paper-icon-button-light');
if (enableAnimation()) {
this.addEventListener('keydown', onKeyDown);
this.addEventListener('click', animateButton);
dom.addEventListener(this, 'keydown', onKeyDown, {
passive: true
});
dom.addEventListener(this, 'click', animateButton, {
passive: true
});
}
};

View file

@ -1,4 +1,4 @@
define(['layoutManager', 'browser', 'css!./emby-input', 'registerElement'], function (layoutManager, browser) {
define(['layoutManager', 'browser', 'dom', 'css!./emby-input', 'registerElement'], function (layoutManager, browser, dom) {
var EmbyInputPrototype = Object.create(HTMLInputElement.prototype);
@ -67,20 +67,31 @@
}
}
this.addEventListener('focus', function () {
dom.addEventListener(this, 'focus', function () {
onChange.call(this);
label.classList.add('inputLabelFocused');
label.classList.remove('inputLabelUnfocused');
}, {
passive: true
});
this.addEventListener('blur', function () {
dom.addEventListener(this, 'blur', function () {
onChange.call(this);
label.classList.remove('inputLabelFocused');
label.classList.add('inputLabelUnfocused');
}, {
passive: true
});
this.addEventListener('change', onChange);
this.addEventListener('input', onChange);
this.addEventListener('valueset', onChange);
dom.addEventListener(this, 'change', onChange, {
passive: true
});
dom.addEventListener(this, 'input', onChange, {
passive: true
});
dom.addEventListener(this, 'valueset', onChange, {
passive: true
});
onChange.call(this);

View file

@ -1,4 +1,4 @@
define(['require', 'browser', 'globalize', 'connectionManager', 'serverNotifications', 'loading', 'datetime', 'focusManager', 'imageLoader', 'events', 'layoutManager', 'itemShortcuts', 'registrationservices', 'clearButtonStyle', 'css!./guide.css', 'material-icons', 'scrollStyles', 'emby-button'], function (require, browser, globalize, connectionManager, serverNotifications, loading, datetime, focusManager, imageLoader, events, layoutManager, itemShortcuts, registrationServices) {
define(['require', 'browser', 'globalize', 'connectionManager', 'serverNotifications', 'loading', 'datetime', 'focusManager', 'imageLoader', 'events', 'layoutManager', 'itemShortcuts', 'registrationservices', 'dom', 'clearButtonStyle', 'css!./guide.css', 'material-icons', 'scrollStyles', 'emby-button'], function (require, browser, globalize, connectionManager, serverNotifications, loading, datetime, focusManager, imageLoader, events, layoutManager, itemShortcuts, registrationServices, dom) {
function Guide(options) {
@ -738,32 +738,6 @@
}
}
var supportsCaptureOption = false;
try {
var opts = Object.defineProperty({}, 'capture', {
get: function () {
supportsCaptureOption = true;
}
});
window.addEventListener("test", null, opts);
} catch (e) { }
function addEventListenerWithOptions(target, type, handler, options) {
var optionsOrCapture = options;
if (!supportsCaptureOption) {
optionsOrCapture = options.capture;
}
target.addEventListener(type, handler, optionsOrCapture);
}
function removeEventListenerWithOptions(target, type, handler, options) {
var optionsOrCapture = options;
if (!supportsCaptureOption) {
optionsOrCapture = options.capture;
}
target.removeEventListener(type, handler, optionsOrCapture);
}
function onTimerCreated(e, apiClient, data) {
var programId = data.ProgramId;
@ -826,13 +800,13 @@
programGrid.addEventListener('focus', onProgramGridFocus, true);
addEventListenerWithOptions(programGrid, 'scroll', function (e) {
dom.addEventListener(programGrid, 'scroll', function (e) {
onProgramGridScroll(context, this, timeslotHeaders);
}, {
passive: true
});
addEventListenerWithOptions(timeslotHeaders, 'scroll', function () {
dom.addEventListener(timeslotHeaders, 'scroll', function () {
onTimeslotHeadersScroll(context, this, programGrid);
}, {
passive: true

View file

@ -1,4 +1,4 @@
define(['visibleinviewport', 'imageFetcher', 'layoutManager', 'events', 'browser'], function (visibleinviewport, imageFetcher, layoutManager, events, browser) {
define(['visibleinviewport', 'imageFetcher', 'layoutManager', 'events', 'browser', 'dom'], function (visibleinviewport, imageFetcher, layoutManager, events, browser, dom) {
var thresholdX;
var thresholdY;
@ -91,32 +91,6 @@ define(['visibleinviewport', 'imageFetcher', 'layoutManager', 'events', 'browser
}
}
var supportsCaptureOption = false;
try {
var opts = Object.defineProperty({}, 'capture', {
get: function () {
supportsCaptureOption = true;
}
});
window.addEventListener("test", null, opts);
} catch (e) { }
function addEventListenerWithOptions(target, type, handler, options) {
var optionsOrCapture = options;
if (!supportsCaptureOption) {
optionsOrCapture = options.capture;
}
target.addEventListener(type, handler, optionsOrCapture);
}
function removeEventListenerWithOptions(target, type, handler, options) {
var optionsOrCapture = options;
if (!supportsCaptureOption) {
optionsOrCapture = options.capture;
}
target.removeEventListener(type, handler, optionsOrCapture);
}
function unveilWithIntersection(images, root) {
var filledCount = 0;
@ -185,19 +159,19 @@ define(['visibleinviewport', 'imageFetcher', 'layoutManager', 'events', 'browser
}
if (!images.length) {
removeEventListenerWithOptions(document, 'focus', unveil, {
dom.removeEventListener(document, 'focus', unveil, {
capture: true,
passive: true
});
removeEventListenerWithOptions(document, 'scroll', unveil, {
dom.removeEventListener(document, 'scroll', unveil, {
capture: true,
passive: true
});
removeEventListenerWithOptions(document, wheelEvent, unveil, {
dom.removeEventListener(document, wheelEvent, unveil, {
capture: true,
passive: true
});
removeEventListenerWithOptions(window, 'resize', unveil, {
dom.removeEventListener(window, 'resize', unveil, {
capture: true,
passive: true
});
@ -216,19 +190,19 @@ define(['visibleinviewport', 'imageFetcher', 'layoutManager', 'events', 'browser
}, 1);
}
addEventListenerWithOptions(document, 'focus', unveil, {
dom.addEventListener(document, 'focus', unveil, {
capture: true,
passive: true
});
addEventListenerWithOptions(document, 'scroll', unveil, {
dom.addEventListener(document, 'scroll', unveil, {
capture: true,
passive: true
});
addEventListenerWithOptions(document, wheelEvent, unveil, {
dom.addEventListener(document, wheelEvent, unveil, {
capture: true,
passive: true
});
addEventListenerWithOptions(window, 'resize', unveil, {
dom.addEventListener(window, 'resize', unveil, {
capture: true,
passive: true
});

View file

@ -1,4 +1,4 @@
define(['playbackManager', 'focusManager', 'embyRouter'], function (playbackManager, focusManager, embyRouter) {
define(['playbackManager', 'focusManager', 'embyRouter', 'dom'], function (playbackManager, focusManager, embyRouter, dom) {
var lastInputTime = new Date().getTime();
@ -231,7 +231,9 @@ define(['playbackManager', 'focusManager', 'embyRouter'], function (playbackMana
}
}
document.addEventListener('click', notify);
dom.addEventListener(document, 'click', notify, {
passive: true
});
return {
trigger: handleCommand,

View file

@ -243,7 +243,9 @@
this.parent.addEventListener('mouseenter', onHoverIn, true);
this.parent.addEventListener('mouseleave', onHoverOut, true);
this.parent.addEventListener("touchstart", preventTouchHover);
dom.parent.addEventListener(this.parent, "touchstart", preventTouchHover, {
passive: true
});
}
ItemHoverMenu.prototype = {
@ -253,7 +255,10 @@
destroy: function () {
this.parent.removeEventListener('mouseenter', onHoverIn, true);
this.parent.removeEventListener('mouseleave', onHoverOut, true);
this.parent.removeEventListener("touchstart", preventTouchHover);
dom.parent.removeEventListener(this.parent, "touchstart", preventTouchHover, {
passive: true
});
}
}

View file

@ -1,30 +1,4 @@
define(['browser', 'layoutManager', 'scrollStyles'], function (browser, layoutManager) {
var supportsCaptureOption = false;
try {
var opts = Object.defineProperty({}, 'capture', {
get: function () {
supportsCaptureOption = true;
}
});
window.addEventListener("test", null, opts);
} catch (e) { }
function addEventListenerWithOptions(target, type, handler, options) {
var optionsOrCapture = options;
if (!supportsCaptureOption) {
optionsOrCapture = options.capture;
}
target.addEventListener(type, handler, optionsOrCapture);
}
function removeEventListenerWithOptions(target, type, handler, options) {
var optionsOrCapture = options;
if (!supportsCaptureOption) {
optionsOrCapture = options.capture;
}
target.removeEventListener(type, handler, optionsOrCapture);
}
define(['browser', 'layoutManager', 'dom', 'scrollStyles'], function (browser, layoutManager, dom) {
/**
* Return type of the value.
@ -102,13 +76,9 @@ define(['browser', 'layoutManager', 'scrollStyles'], function (browser, layoutMa
var namespace = pluginName;
// Other global values
var dragInitEventNames = ['touchstart', 'mousedown'];
var dragInitEvents = 'touchstart.' + namespace + ' mousedown.' + namespace;
var dragMouseEvents = ['mousemove', 'mouseup'];
var dragTouchEvents = ['touchmove', 'touchend'];
var wheelEvent = (document.implementation.hasFeature('Event.wheel', '3.0') ? 'wheel' : 'mousewheel');
var clickEvent = 'click.' + namespace;
var mouseDownEvent = 'mousedown.' + namespace;
var interactiveElements = ['INPUT', 'SELECT', 'TEXTAREA'];
var tmpArray = [];
var time;
@ -926,14 +896,20 @@ define(['browser', 'layoutManager', 'scrollStyles'], function (browser, layoutMa
window.removeEventListener('resize', onResize, true);
// Reset native FRAME element scroll
removeEventListenerWithOptions(frameElement, 'scroll', resetScroll, {
dom.removeEventListener(frameElement, 'scroll', resetScroll, {
passive: true
});
removeEventListenerWithOptions(scrollSource, wheelEvent, scrollHandler, {
dom.removeEventListener(scrollSource, wheelEvent, scrollHandler, {
passive: true
});
dom.removeEventListener(dragSourceElement, 'touchstart', dragInitSlidee, {
passive: true
});
dragSourceElement.removeEventListener('mousedown', dragInitSlidee);
// Reset initialized status and return the instance
self.initialized = 0;
return self;
@ -991,22 +967,24 @@ define(['browser', 'layoutManager', 'scrollStyles'], function (browser, layoutMa
}
if (transform) {
dragInitEventNames.forEach(function (eventName) {
dragSourceElement.addEventListener(eventName, dragInitSlidee);
dom.addEventListener(dragSourceElement, 'touchstart', dragInitSlidee, {
passive: true
});
dragSourceElement.addEventListener('mousedown', dragInitSlidee);
if (!o.scrollWidth) {
window.addEventListener('resize', onResize, true);
}
if (!o.horizontal) {
addEventListenerWithOptions(frameElement, 'scroll', resetScroll, {
dom.addEventListener(frameElement, 'scroll', resetScroll, {
passive: true
});
}
// Scrolling navigation
addEventListenerWithOptions(scrollSource, wheelEvent, scrollHandler, {
dom.addEventListener(scrollSource, wheelEvent, scrollHandler, {
passive: true
});
@ -1015,7 +993,7 @@ define(['browser', 'layoutManager', 'scrollStyles'], function (browser, layoutMa
// Don't bind to mouse events with vertical scroll since the mouse wheel can handle this natively
// Scrolling navigation
addEventListenerWithOptions(scrollSource, wheelEvent, scrollHandler, {
dom.addEventListener(scrollSource, wheelEvent, scrollHandler, {
passive: true
});
}

View file

@ -1,4 +1,4 @@
define(['focusManager', 'scrollStyles'], function (focusManager) {
define(['focusManager', 'dom', 'scrollStyles'], function (focusManager, dom) {
function getOffsets(elems) {
@ -107,16 +107,28 @@ define(['focusManager', 'scrollStyles'], function (focusManager) {
centerFocus: {
on: function (element, horizontal) {
if (horizontal) {
element.addEventListener('focus', centerOnFocusHorizontal, true);
dom.addEventListener(element, 'focus', centerOnFocusHorizontal, {
capture: true,
passive: true
});
} else {
element.addEventListener('focus', centerOnFocusVertical, true);
dom.addEventListener(element, 'focus', centerOnFocusVertical, {
capture: true,
passive: true
});
}
},
off: function (element, horizontal) {
if (horizontal) {
element.removeEventListener('focus', centerOnFocusHorizontal, true);
dom.removeEventListener(element, 'focus', centerOnFocusHorizontal, {
capture: true,
passive: true
});
} else {
element.removeEventListener('focus', centerOnFocusVertical, true);
dom.removeEventListener(element, 'focus', centerOnFocusVertical, {
capture: true,
passive: true
});
}
}
},

View file

@ -107,7 +107,7 @@
html += '<h1>' + globalize.translate('sharedcomponents#MySubtitles') + '</h1>';
if (layoutManager.tv) {
html += '<div class="paperList clear">';
html += '<div class="paperList paperList-clear">';
} else {
html += '<div class="paperList">';
}
@ -225,7 +225,7 @@
}
html += '<h1>' + provider + '</h1>';
if (layoutManager.tv) {
html += '<div class="paperList clear">';
html += '<div class="paperList paperList-clear">';
} else {
html += '<div class="paperList">';
}

View file

@ -247,7 +247,10 @@ define(['browser', 'css!./viewcontainer-lite'], function (browser) {
}
function triggerDestroy(view) {
view.dispatchEvent(new CustomEvent("viewdestroy", {}));
view.dispatchEvent(new CustomEvent('viewdestroy', {
cancelable: false
}));
}
function reset() {

View file

@ -28,14 +28,14 @@
"web-component-tester": "^4.0.0"
},
"ignore": [],
"homepage": "https://github.com/PolymerElements/iron-flex-layout",
"homepage": "https://github.com/polymerelements/iron-flex-layout",
"_release": "1.3.1",
"_resolution": {
"type": "version",
"tag": "v1.3.1",
"commit": "6d88f29f3a7181daa2a5c7f678de44f0a0e6a717"
},
"_source": "git://github.com/PolymerElements/iron-flex-layout.git",
"_source": "git://github.com/polymerelements/iron-flex-layout.git",
"_target": "^1.0.0",
"_originalSource": "PolymerElements/iron-flex-layout"
"_originalSource": "polymerelements/iron-flex-layout"
}

View file

@ -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.9",
"_resolution": {
"type": "version",
"tag": "v1.0.9",
"commit": "f6fb241901377e30e2c9c6cd47e3e8e8beb6574d"
},
"_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"
}

View file

@ -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"
}