';
- var numLines = 2;
+ let numLines = 2;
if (currentItemType === 'MusicAlbum') {
numLines++;
}
- var lines = [result.Name];
+ const lines = [result.Name];
if (result.AlbumArtist) {
lines.push(result.AlbumArtist.Name);
@@ -235,7 +254,7 @@ define(['dialogHelper', 'loading', 'connectionManager', 'require', 'globalize',
lines.push(result.ProductionYear);
}
- for (var i = 0; i < numLines; i++) {
+ for (let i = 0; i < numLines; i++) {
if (i === 0) {
html += '
';
@@ -252,7 +271,7 @@ define(['dialogHelper', 'loading', 'connectionManager', 'require', 'globalize',
}
function getSearchImageDisplayUrl(url, provider) {
- var apiClient = getApiClient();
+ const apiClient = getApiClient();
return apiClient.getUrl('Items/RemoteSearch/Image', { imageUrl: url, ProviderName: provider });
}
@@ -261,26 +280,26 @@ define(['dialogHelper', 'loading', 'connectionManager', 'require', 'globalize',
loading.show();
- var options = {
+ const options = {
ReplaceAllImages: page.querySelector('#chkIdentifyReplaceImages').checked
};
- var apiClient = getApiClient();
+ const apiClient = getApiClient();
apiClient.ajax({
type: 'POST',
- url: apiClient.getUrl('Items/RemoteSearch/Apply/' + currentItem.Id, options),
+ url: apiClient.getUrl(`Items/RemoteSearch/Apply/${currentItem.Id}`, options),
data: JSON.stringify(currentSearchResult),
contentType: 'application/json'
- }).then(function () {
+ }).then(() => {
hasChanges = true;
loading.hide();
dialogHelper.close(page);
- }, function () {
+ }, () => {
loading.hide();
@@ -290,28 +309,28 @@ define(['dialogHelper', 'loading', 'connectionManager', 'require', 'globalize',
function showIdentificationForm(page, item) {
- var apiClient = getApiClient();
+ const apiClient = getApiClient();
- apiClient.getJSON(apiClient.getUrl('Items/' + item.Id + '/ExternalIdInfos')).then(function (idList) {
+ apiClient.getJSON(apiClient.getUrl(`Items/${item.Id}/ExternalIdInfos`)).then(idList => {
- var html = '';
+ let html = '';
- for (var i = 0, length = idList.length; i < length; i++) {
+ for (let i = 0, length = idList.length; i < length; i++) {
- var idInfo = idList[i];
+ const idInfo = idList[i];
- var id = 'txtLookup' + idInfo.Key;
+ const id = `txtLookup${idInfo.Key}`;
html += '
';
- var fullName = idInfo.Name;
+ let fullName = idInfo.Name;
if (idInfo.Type) {
- fullName = idInfo.Name + ' ' + globalize.translate(idInfo.Type);
+ fullName = `${idInfo.Name} ${globalize.translate(idInfo.Type)}`;
}
- var idLabel = globalize.translate('LabelDynamicExternalId', fullName);
+ const idLabel = globalize.translate('LabelDynamicExternalId', fullName);
- html += ' ';
+ html += ` `;
html += '
';
}
@@ -338,16 +357,16 @@ define(['dialogHelper', 'loading', 'connectionManager', 'require', 'globalize',
loading.show();
- require(['text!./itemidentifier.template.html'], function (template) {
+ return import('text!./itemidentifier.template.html').then(({default: template}) => {
- var apiClient = getApiClient();
+ const apiClient = getApiClient();
- apiClient.getItem(apiClient.getCurrentUserId(), itemId).then(function (item) {
+ apiClient.getItem(apiClient.getCurrentUserId(), itemId).then(item => {
currentItem = item;
currentItemType = currentItem.Type;
- var dialogOptions = {
+ const dialogOptions = {
size: 'small',
removeOnClose: true,
scrollY: false
@@ -357,12 +376,12 @@ define(['dialogHelper', 'loading', 'connectionManager', 'require', 'globalize',
dialogOptions.size = 'fullscreen';
}
- var dlg = dialogHelper.createDialog(dialogOptions);
+ const dlg = dialogHelper.createDialog(dialogOptions);
dlg.classList.add('formDialog');
dlg.classList.add('recordingDialog');
- var html = '';
+ let html = '';
html += globalize.translateDocument(template, 'core');
dlg.innerHTML = html;
@@ -384,21 +403,21 @@ define(['dialogHelper', 'loading', 'connectionManager', 'require', 'globalize',
dialogHelper.open(dlg);
- dlg.querySelector('.popupIdentifyForm').addEventListener('submit', function (e) {
+ dlg.querySelector('.popupIdentifyForm').addEventListener('submit', e => {
e.preventDefault();
searchForIdentificationResults(dlg);
return false;
});
- dlg.querySelector('.identifyOptionsForm').addEventListener('submit', function (e) {
+ dlg.querySelector('.identifyOptionsForm').addEventListener('submit', e => {
e.preventDefault();
submitIdentficationResult(dlg);
return false;
});
- dlg.querySelector('.btnCancel').addEventListener('click', function (e) {
+ dlg.querySelector('.btnCancel').addEventListener('click', () => {
dialogHelper.close(dlg);
});
@@ -421,14 +440,15 @@ define(['dialogHelper', 'loading', 'connectionManager', 'require', 'globalize',
}
}
+ // TODO investigate where this was used
function showEditorFindNew(itemName, itemYear, itemType, resolveFunc) {
currentItem = null;
currentItemType = itemType;
- require(['text!./itemidentifier.template.html'], function (template) {
+ return import('text!./itemidentifier.template.html').then(({default: template}) => {
- var dialogOptions = {
+ const dialogOptions = {
size: 'small',
removeOnClose: true,
scrollY: false
@@ -438,12 +458,12 @@ define(['dialogHelper', 'loading', 'connectionManager', 'require', 'globalize',
dialogOptions.size = 'fullscreen';
}
- var dlg = dialogHelper.createDialog(dialogOptions);
+ const dlg = dialogHelper.createDialog(dialogOptions);
dlg.classList.add('formDialog');
dlg.classList.add('recordingDialog');
- var html = '';
+ let html = '';
html += globalize.translateDocument(template, 'core');
dlg.innerHTML = html;
@@ -454,22 +474,22 @@ define(['dialogHelper', 'loading', 'connectionManager', 'require', 'globalize',
dialogHelper.open(dlg);
- dlg.querySelector('.btnCancel').addEventListener('click', function (e) {
+ dlg.querySelector('.btnCancel').addEventListener('click', () => {
dialogHelper.close(dlg);
});
- dlg.querySelector('.popupIdentifyForm').addEventListener('submit', function (e) {
+ dlg.querySelector('.popupIdentifyForm').addEventListener('submit', e => {
e.preventDefault();
searchForIdentificationResults(dlg);
return false;
});
- dlg.addEventListener('close', function () {
+ dlg.addEventListener('close', () => {
loading.hide();
- var foundItem = hasChanges ? currentSearchResult : null;
+ const foundItem = hasChanges ? currentSearchResult : null;
resolveFunc(foundItem);
});
@@ -498,29 +518,32 @@ define(['dialogHelper', 'loading', 'connectionManager', 'require', 'globalize',
dlg.querySelector('.formDialogHeaderTitle').innerHTML = globalize.translate('Search');
}
- return {
- show: function (itemId, serverId) {
+ export function show(itemId, serverId) {
- return new Promise(function (resolve, reject) {
+ return new Promise((resolve, reject) => {
- currentResolve = resolve;
- currentReject = reject;
- currentServerId = serverId;
- hasChanges = false;
+ currentResolve = resolve;
+ currentReject = reject;
+ currentServerId = serverId;
+ hasChanges = false;
- showEditor(itemId);
- });
- },
+ showEditor(itemId);
+ });
+ }
- showFindNew: function (itemName, itemYear, itemType, serverId) {
+ export function showFindNew(itemName, itemYear, itemType, serverId) {
- return new Promise(function (resolve, reject) {
+ return new Promise((resolve) => {
- currentServerId = serverId;
+ currentServerId = serverId;
- hasChanges = false;
- showEditorFindNew(itemName, itemYear, itemType, resolve);
- });
- }
- };
-});
+ hasChanges = false;
+ showEditorFindNew(itemName, itemYear, itemType, resolve);
+ });
+ }
+
+/* eslint-enable indent */
+export default {
+ show: show,
+ showFindNew: showFindNew
+};
diff --git a/src/components/search/searchfields.js b/src/components/search/searchfields.js
index 53ab187a81..7e77814772 100644
--- a/src/components/search/searchfields.js
+++ b/src/components/search/searchfields.js
@@ -43,7 +43,7 @@ define(['layoutManager', 'globalize', 'require', 'events', 'browser', 'alphaPick
function initAlphaPicker(alphaPickerElement, instance) {
- instance.alphaPicker = new AlphaPicker({
+ instance.alphaPicker = new AlphaPicker.default({
element: alphaPickerElement,
mode: 'keyboard'
});
diff --git a/src/components/tabbedview/itemstab.js b/src/components/tabbedview/itemstab.js
index 884cfa2015..4aac2f747d 100644
--- a/src/components/tabbedview/itemstab.js
+++ b/src/components/tabbedview/itemstab.js
@@ -51,7 +51,7 @@ define(['playbackManager', 'userSettings', 'alphaPicker', 'alphaNumericShortcuts
instance.itemsContainer = view.querySelector('.itemsContainer');
- instance.alphaPicker = new AlphaPicker({
+ instance.alphaPicker = new AlphaPicker.default({
element: instance.alphaPickerElement,
itemsContainer: instance.itemsContainer,
itemClass: 'card'
diff --git a/src/components/tvproviders/xmltv.js b/src/components/tvproviders/xmltv.js
index 4c39b14430..054c5b640d 100644
--- a/src/components/tvproviders/xmltv.js
+++ b/src/components/tvproviders/xmltv.js
@@ -139,7 +139,7 @@ define(['jQuery', 'loading', 'globalize', 'emby-checkbox', 'emby-input', 'listVi
var page = $(e.target).parents('.xmltvForm')[0];
require(['directorybrowser'], function (directoryBrowser) {
- var picker = new directoryBrowser();
+ var picker = new directoryBrowser.default();
picker.show({
includeFiles: true,
callback: function (path) {
diff --git a/src/controllers/dashboard/encodingsettings.js b/src/controllers/dashboard/encodingsettings.js
index 0f54f9d70f..b8cdd66651 100644
--- a/src/controllers/dashboard/encodingsettings.js
+++ b/src/controllers/dashboard/encodingsettings.js
@@ -151,7 +151,7 @@ define(['jQuery', 'loading', 'globalize', 'dom', 'libraryMenu'], function ($, lo
});
$('#btnSelectEncoderPath', page).on('click.selectDirectory', function () {
require(['directorybrowser'], function (directoryBrowser) {
- var picker = new directoryBrowser();
+ var picker = new directoryBrowser.default();
picker.show({
includeFiles: true,
callback: function (path) {
@@ -166,7 +166,7 @@ define(['jQuery', 'loading', 'globalize', 'dom', 'libraryMenu'], function ($, lo
});
$('#btnSelectTranscodingTempPath', page).on('click.selectDirectory', function () {
require(['directorybrowser'], function (directoryBrowser) {
- var picker = new directoryBrowser();
+ var picker = new directoryBrowser.default();
picker.show({
callback: function (path) {
if (path) {
diff --git a/src/controllers/dashboard/general.js b/src/controllers/dashboard/general.js
index f215ace28b..eb0f7edfa4 100644
--- a/src/controllers/dashboard/general.js
+++ b/src/controllers/dashboard/general.js
@@ -59,7 +59,7 @@ define(['jQuery', 'loading', 'globalize', 'emby-checkbox', 'emby-textarea', 'emb
return function (view, params) {
$('#btnSelectCachePath', view).on('click.selectDirectory', function () {
require(['directorybrowser'], function (directoryBrowser) {
- var picker = new directoryBrowser();
+ var picker = new directoryBrowser.default();
picker.show({
callback: function (path) {
if (path) {
@@ -76,7 +76,7 @@ define(['jQuery', 'loading', 'globalize', 'emby-checkbox', 'emby-textarea', 'emb
});
$('#btnSelectMetadataPath', view).on('click.selectDirectory', function () {
require(['directorybrowser'], function (directoryBrowser) {
- var picker = new directoryBrowser();
+ var picker = new directoryBrowser.default();
picker.show({
path: $('#txtMetadataPath', view).val(),
networkSharePath: $('#txtMetadataNetworkPath', view).val(),
diff --git a/src/controllers/dashboard/networking.js b/src/controllers/dashboard/networking.js
index 4ddde7f24c..33fc75b484 100644
--- a/src/controllers/dashboard/networking.js
+++ b/src/controllers/dashboard/networking.js
@@ -136,7 +136,7 @@ define(['loading', 'libraryMenu', 'globalize', 'emby-checkbox', 'emby-select'],
});
view.querySelector('#btnSelectCertPath').addEventListener('click', function () {
require(['directorybrowser'], function (directoryBrowser) {
- var picker = new directoryBrowser();
+ var picker = new directoryBrowser.default();
picker.show({
includeFiles: true,
includeDirectories: true,
diff --git a/src/controllers/list.js b/src/controllers/list.js
index 401df3f4d1..73ca93c71c 100644
--- a/src/controllers/list.js
+++ b/src/controllers/list.js
@@ -1,4 +1,4 @@
-define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager', 'cardBuilder', 'loading', 'connectionManager', 'alphaNumericShortcuts', 'scroller', 'playbackManager', 'alphaPicker', 'emby-itemscontainer', 'emby-scroller'], function (globalize, listView, layoutManager, userSettings, focusManager, cardBuilder, loading, connectionManager, AlphaNumericShortcuts, scroller, playbackManager, alphaPicker) {
+define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager', 'cardBuilder', 'loading', 'connectionManager', 'alphaNumericShortcuts', 'scroller', 'playbackManager', 'alphaPicker', 'emby-itemscontainer', 'emby-scroller'], function (globalize, listView, layoutManager, userSettings, focusManager, cardBuilder, loading, connectionManager, AlphaNumericShortcuts, scroller, playbackManager, AlphaPicker) {
'use strict';
function getInitialLiveTvQuery(instance, params) {
@@ -544,7 +544,7 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager'
alphaPickerElement.classList.add('focuscontainer-right');
self.itemsContainer.parentNode.classList.add('padded-right-withalphapicker');
- self.alphaPicker = new alphaPicker({
+ self.alphaPicker = new AlphaPicker.default({
element: alphaPickerElement,
itemsContainer: layoutManager.tv ? self.itemsContainer : null,
itemClass: 'card',
diff --git a/src/controllers/livetvsettings.js b/src/controllers/livetvsettings.js
index 4c5fdc60de..715eb06214 100644
--- a/src/controllers/livetvsettings.js
+++ b/src/controllers/livetvsettings.js
@@ -59,7 +59,7 @@ define(['jQuery', 'loading', 'globalize', 'emby-button'], function ($, loading,
$('.liveTvSettingsForm').off('submit', onSubmit).on('submit', onSubmit);
$('#btnSelectRecordingPath', page).on('click.selectDirectory', function () {
require(['directorybrowser'], function (directoryBrowser) {
- var picker = new directoryBrowser();
+ var picker = new directoryBrowser.default();
picker.show({
callback: function (path) {
if (path) {
@@ -74,7 +74,7 @@ define(['jQuery', 'loading', 'globalize', 'emby-button'], function ($, loading,
});
$('#btnSelectMovieRecordingPath', page).on('click.selectDirectory', function () {
require(['directorybrowser'], function (directoryBrowser) {
- var picker = new directoryBrowser();
+ var picker = new directoryBrowser.default();
picker.show({
callback: function (path) {
if (path) {
@@ -89,7 +89,7 @@ define(['jQuery', 'loading', 'globalize', 'emby-button'], function ($, loading,
});
$('#btnSelectSeriesRecordingPath', page).on('click.selectDirectory', function () {
require(['directorybrowser'], function (directoryBrowser) {
- var picker = new directoryBrowser();
+ var picker = new directoryBrowser.default();
picker.show({
callback: function (path) {
if (path) {
@@ -104,7 +104,7 @@ define(['jQuery', 'loading', 'globalize', 'emby-button'], function ($, loading,
});
$('#btnSelectPostProcessorPath', page).on('click.selectDirectory', function () {
require(['directorybrowser'], function (directoryBrowser) {
- var picker = new directoryBrowser();
+ var picker = new directoryBrowser.default();
picker.show({
includeFiles: true,
callback: function (path) {
diff --git a/src/controllers/livetvtuner.js b/src/controllers/livetvtuner.js
index d7a4d92db2..92f705c02f 100644
--- a/src/controllers/livetvtuner.js
+++ b/src/controllers/livetvtuner.js
@@ -215,7 +215,7 @@ define(['globalize', 'loading', 'libraryMenu', 'dom', 'emby-input', 'emby-button
});
view.querySelector('.btnSelectPath').addEventListener('click', function () {
require(['directorybrowser'], function (directoryBrowser) {
- var picker = new directoryBrowser();
+ var picker = new directoryBrowser.default();
picker.show({
includeFiles: true,
callback: function (path) {
diff --git a/src/controllers/movies/movies.js b/src/controllers/movies/movies.js
index c22b52c47e..82b162e2ad 100644
--- a/src/controllers/movies/movies.js
+++ b/src/controllers/movies/movies.js
@@ -1,4 +1,4 @@
-define(['loading', 'layoutManager', 'userSettings', 'events', 'libraryBrowser', 'alphaPicker', 'listView', 'cardBuilder', 'globalize', 'emby-itemscontainer'], function (loading, layoutManager, userSettings, events, libraryBrowser, alphaPicker, listView, cardBuilder, globalize) {
+define(['loading', 'layoutManager', 'userSettings', 'events', 'libraryBrowser', 'alphaPicker', 'listView', 'cardBuilder', 'globalize', 'emby-itemscontainer'], function (loading, layoutManager, userSettings, events, libraryBrowser, AlphaPicker, listView, cardBuilder, globalize) {
'use strict';
return function (view, params, tabContent, options) {
@@ -168,7 +168,7 @@ define(['loading', 'layoutManager', 'userSettings', 'events', 'libraryBrowser',
query.StartIndex = 0;
itemsContainer.refreshItems();
});
- self.alphaPicker = new alphaPicker({
+ self.alphaPicker = new AlphaPicker.default({
element: alphaPickerElement,
valueChangeEvent: 'click'
});
diff --git a/src/controllers/movies/movietrailers.js b/src/controllers/movies/movietrailers.js
index 5daad8d7c3..a9db0abf49 100644
--- a/src/controllers/movies/movietrailers.js
+++ b/src/controllers/movies/movietrailers.js
@@ -1,4 +1,4 @@
-define(['layoutManager', 'loading', 'events', 'libraryBrowser', 'imageLoader', 'alphaPicker', 'listView', 'cardBuilder', 'userSettings', 'globalize', 'emby-itemscontainer'], function (layoutManager, loading, events, libraryBrowser, imageLoader, alphaPicker, listView, cardBuilder, userSettings, globalize) {
+define(['layoutManager', 'loading', 'events', 'libraryBrowser', 'imageLoader', 'alphaPicker', 'listView', 'cardBuilder', 'userSettings', 'globalize', 'emby-itemscontainer'], function (layoutManager, loading, events, libraryBrowser, imageLoader, AlphaPicker, listView, cardBuilder, userSettings, globalize) {
'use strict';
return function (view, params, tabContent) {
@@ -213,7 +213,7 @@ define(['layoutManager', 'loading', 'events', 'libraryBrowser', 'imageLoader', '
query.StartIndex = 0;
reloadItems();
});
- self.alphaPicker = new alphaPicker({
+ self.alphaPicker = new AlphaPicker.default({
element: alphaPickerElement,
valueChangeEvent: 'click'
});
diff --git a/src/controllers/music/musicalbums.js b/src/controllers/music/musicalbums.js
index 645daf4ad9..3630e0b9f9 100644
--- a/src/controllers/music/musicalbums.js
+++ b/src/controllers/music/musicalbums.js
@@ -1,4 +1,4 @@
-define(['layoutManager', 'playbackManager', 'loading', 'events', 'libraryBrowser', 'imageLoader', 'alphaPicker', 'listView', 'cardBuilder', 'userSettings', 'globalize', 'emby-itemscontainer'], function (layoutManager, playbackManager, loading, events, libraryBrowser, imageLoader, alphaPicker, listView, cardBuilder, userSettings, globalize) {
+define(['layoutManager', 'playbackManager', 'loading', 'events', 'libraryBrowser', 'imageLoader', 'alphaPicker', 'listView', 'cardBuilder', 'userSettings', 'globalize', 'emby-itemscontainer'], function (layoutManager, playbackManager, loading, events, libraryBrowser, imageLoader, AlphaPicker, listView, cardBuilder, userSettings, globalize) {
'use strict';
return function (view, params, tabContent) {
@@ -215,7 +215,7 @@ define(['layoutManager', 'playbackManager', 'loading', 'events', 'libraryBrowser
query.StartIndex = 0;
reloadItems(tabContent);
});
- self.alphaPicker = new alphaPicker({
+ self.alphaPicker = new AlphaPicker.default({
element: alphaPickerElement,
valueChangeEvent: 'click'
});
diff --git a/src/controllers/music/musicartists.js b/src/controllers/music/musicartists.js
index 7a889ff8b9..c9a0b06b77 100644
--- a/src/controllers/music/musicartists.js
+++ b/src/controllers/music/musicartists.js
@@ -1,4 +1,4 @@
-define(['layoutManager', 'loading', 'events', 'libraryBrowser', 'imageLoader', 'alphaPicker', 'listView', 'cardBuilder', 'apphost', 'userSettings', 'emby-itemscontainer'], function (layoutManager, loading, events, libraryBrowser, imageLoader, alphaPicker, listView, cardBuilder, appHost, userSettings) {
+define(['layoutManager', 'loading', 'events', 'libraryBrowser', 'imageLoader', 'alphaPicker', 'listView', 'cardBuilder', 'apphost', 'userSettings', 'emby-itemscontainer'], function (layoutManager, loading, events, libraryBrowser, imageLoader, AlphaPicker, listView, cardBuilder, appHost, userSettings) {
'use strict';
return function (view, params, tabContent) {
@@ -199,7 +199,7 @@ define(['layoutManager', 'loading', 'events', 'libraryBrowser', 'imageLoader', '
query.StartIndex = 0;
reloadItems(tabContent);
});
- self.alphaPicker = new alphaPicker({
+ self.alphaPicker = new AlphaPicker.default({
element: alphaPickerElement,
valueChangeEvent: 'click'
});
diff --git a/src/controllers/shows/tvshows.js b/src/controllers/shows/tvshows.js
index 0bd5e4b52e..4425c3aee1 100644
--- a/src/controllers/shows/tvshows.js
+++ b/src/controllers/shows/tvshows.js
@@ -1,4 +1,4 @@
-define(['layoutManager', 'loading', 'events', 'libraryBrowser', 'imageLoader', 'listView', 'cardBuilder', 'alphaPicker', 'userSettings', 'globalize', 'emby-itemscontainer'], function (layoutManager, loading, events, libraryBrowser, imageLoader, listView, cardBuilder, alphaPicker, userSettings, globalize) {
+define(['layoutManager', 'loading', 'events', 'libraryBrowser', 'imageLoader', 'listView', 'cardBuilder', 'alphaPicker', 'userSettings', 'globalize', 'emby-itemscontainer'], function (layoutManager, loading, events, libraryBrowser, imageLoader, listView, cardBuilder, AlphaPicker, userSettings, globalize) {
'use strict';
return function (view, params, tabContent) {
@@ -226,7 +226,7 @@ define(['layoutManager', 'loading', 'events', 'libraryBrowser', 'imageLoader', '
query.StartIndex = 0;
reloadItems(tabContent);
});
- self.alphaPicker = new alphaPicker({
+ self.alphaPicker = new AlphaPicker.default({
element: alphaPickerElement,
valueChangeEvent: 'click'
});
diff --git a/src/elements/emby-checkbox/emby-checkbox.js b/src/elements/emby-checkbox/emby-checkbox.js
index 4d02d56163..b22ff151af 100644
--- a/src/elements/emby-checkbox/emby-checkbox.js
+++ b/src/elements/emby-checkbox/emby-checkbox.js
@@ -1,7 +1,11 @@
-define(['browser', 'dom', 'css!./emby-checkbox', 'registerElement'], function (browser, dom) {
- 'use strict';
+import browser from 'browser';
+import dom from 'dom';
+import 'css!./emby-checkbox';
+import 'registerElement';
- var EmbyCheckboxPrototype = Object.create(HTMLInputElement.prototype);
+/* eslint-disable indent */
+
+ let EmbyCheckboxPrototype = Object.create(HTMLInputElement.prototype);
function onKeyDown(e) {
// Don't submit form on enter
@@ -19,10 +23,10 @@ define(['browser', 'dom', 'css!./emby-checkbox', 'registerElement'], function (b
}
}
- var enableRefreshHack = browser.tizen || browser.orsay || browser.operaTv || browser.web0s ? true : false;
+ const enableRefreshHack = browser.tizen || browser.orsay || browser.operaTv || browser.web0s ? true : false;
function forceRefresh(loading) {
- var elem = this.parentNode;
+ let elem = this.parentNode;
elem.style.webkitAnimationName = 'repaintChrome';
elem.style.webkitAnimationDelay = (loading === true ? '500ms' : '');
@@ -43,22 +47,22 @@ define(['browser', 'dom', 'css!./emby-checkbox', 'registerElement'], function (b
this.classList.add('emby-checkbox');
- var labelElement = this.parentNode;
+ const labelElement = this.parentNode;
labelElement.classList.add('emby-checkbox-label');
- var labelTextElement = labelElement.querySelector('span');
+ const labelTextElement = labelElement.querySelector('span');
- var outlineClass = 'checkboxOutline';
+ let outlineClass = 'checkboxOutline';
- var customClass = this.getAttribute('data-outlineclass');
+ const customClass = this.getAttribute('data-outlineclass');
if (customClass) {
outlineClass += ' ' + customClass;
}
- var checkedIcon = this.getAttribute('data-checkedicon') || 'check';
- var uncheckedIcon = this.getAttribute('data-uncheckedicon') || '';
- var checkHtml = '
';
- var uncheckedHtml = '
';
+ const checkedIcon = this.getAttribute('data-checkedicon') || 'check';
+ const uncheckedIcon = this.getAttribute('data-uncheckedicon') || '';
+ const checkHtml = '
';
+ const uncheckedHtml = '
';
labelElement.insertAdjacentHTML('beforeend', '
' + checkHtml + uncheckedHtml + ' ');
labelTextElement.classList.add('checkboxLabel');
@@ -103,4 +107,5 @@ define(['browser', 'dom', 'css!./emby-checkbox', 'registerElement'], function (b
prototype: EmbyCheckboxPrototype,
extends: 'input'
});
-});
+
+/* eslint-enable indent */
diff --git a/src/elements/emby-itemrefreshindicator/emby-itemrefreshindicator.js b/src/elements/emby-itemrefreshindicator/emby-itemrefreshindicator.js
index 9864dbbb67..493d291ce0 100644
--- a/src/elements/emby-itemrefreshindicator/emby-itemrefreshindicator.js
+++ b/src/elements/emby-itemrefreshindicator/emby-itemrefreshindicator.js
@@ -1,16 +1,21 @@
-define(['emby-progressring', 'dom', 'serverNotifications', 'events', 'registerElement'], function (EmbyProgressRing, dom, serverNotifications, events) {
- 'use strict';
+import EmbyProgressRing from 'emby-progressring';
+import dom from 'dom';
+import serverNotifications from 'serverNotifications';
+import events from 'events';
+import 'registerElement';
+
+/* eslint-disable indent */
function addNotificationEvent(instance, name, handler) {
- var localHandler = handler.bind(instance);
+ const localHandler = handler.bind(instance);
events.on(serverNotifications, name, localHandler);
instance[name] = localHandler;
}
function removeNotificationEvent(instance, name) {
- var handler = instance[name];
+ const handler = instance[name];
if (handler) {
events.off(serverNotifications, name, handler);
instance[name] = null;
@@ -19,7 +24,7 @@ define(['emby-progressring', 'dom', 'serverNotifications', 'events', 'registerEl
function onRefreshProgress(e, apiClient, info) {
- var indicator = this;
+ const indicator = this;
if (!indicator.itemId) {
indicator.itemId = dom.parentWithAttribute(indicator, 'data-id').getAttribute('data-id');
@@ -27,7 +32,7 @@ define(['emby-progressring', 'dom', 'serverNotifications', 'events', 'registerEl
if (info.ItemId === indicator.itemId) {
- var progress = parseFloat(info.Progress);
+ const progress = parseFloat(info.Progress);
if (progress && progress < 100) {
this.classList.remove('hide');
@@ -39,7 +44,7 @@ define(['emby-progressring', 'dom', 'serverNotifications', 'events', 'registerEl
}
}
- var EmbyItemRefreshIndicatorPrototype = Object.create(EmbyProgressRing);
+ let EmbyItemRefreshIndicatorPrototype = Object.create(EmbyProgressRing);
EmbyItemRefreshIndicatorPrototype.createdCallback = function () {
@@ -74,4 +79,5 @@ define(['emby-progressring', 'dom', 'serverNotifications', 'events', 'registerEl
prototype: EmbyItemRefreshIndicatorPrototype,
extends: 'div'
});
-});
+
+/* eslint-enable indent */
diff --git a/src/elements/emby-progressbar/emby-progressbar.js b/src/elements/emby-progressbar/emby-progressbar.js
index a799f82bdd..54fcb1999e 100644
--- a/src/elements/emby-progressbar/emby-progressbar.js
+++ b/src/elements/emby-progressbar/emby-progressbar.js
@@ -1,20 +1,19 @@
-define([], function() {
- 'use strict';
+/* eslint-disable indent */
- var ProgressBarPrototype = Object.create(HTMLDivElement.prototype);
+ let ProgressBarPrototype = Object.create(HTMLDivElement.prototype);
function onAutoTimeProgress() {
- var start = parseInt(this.getAttribute('data-starttime'));
- var end = parseInt(this.getAttribute('data-endtime'));
+ const start = parseInt(this.getAttribute('data-starttime'));
+ const end = parseInt(this.getAttribute('data-endtime'));
- var now = new Date().getTime();
- var total = end - start;
- var pct = 100 * ((now - start) / total);
+ const now = new Date().getTime();
+ const total = end - start;
+ let pct = 100 * ((now - start) / total);
pct = Math.min(100, pct);
pct = Math.max(0, pct);
- var itemProgressBarForeground = this.querySelector('.itemProgressBarForeground');
+ const itemProgressBarForeground = this.querySelector('.itemProgressBarForeground');
itemProgressBarForeground.style.width = pct + '%';
}
@@ -39,4 +38,5 @@ define([], function() {
prototype: ProgressBarPrototype,
extends: 'div'
});
-});
+
+/* eslint-enable indent */
diff --git a/src/elements/emby-progressring/emby-progressring.js b/src/elements/emby-progressring/emby-progressring.js
index edc635947c..698a8b3cd7 100644
--- a/src/elements/emby-progressring/emby-progressring.js
+++ b/src/elements/emby-progressring/emby-progressring.js
@@ -1,12 +1,15 @@
-define(['require', 'css!./emby-progressring', 'registerElement'], function (require) {
- 'use strict';
+import require from 'require';
+import 'css!./emby-progressring';
+import 'webcomponents';
- var EmbyProgressRing = Object.create(HTMLDivElement.prototype);
+/* eslint-disable indent */
+
+ let EmbyProgressRing = Object.create(HTMLDivElement.prototype);
EmbyProgressRing.createdCallback = function () {
this.classList.add('progressring');
- var instance = this;
+ const instance = this;
require(['text!./emby-progressring.template.html'], function (template) {
instance.innerHTML = template;
@@ -37,7 +40,7 @@ define(['require', 'css!./emby-progressring', 'registerElement'], function (requ
progress = Math.floor(progress);
- var angle;
+ let angle;
if (progress < 25) {
angle = -90 + (progress / 100) * 360;
@@ -82,7 +85,7 @@ define(['require', 'css!./emby-progressring', 'registerElement'], function (requ
EmbyProgressRing.detachedCallback = function () {
- var observer = this.observer;
+ let observer = this.observer;
if (observer) {
// later, you can stop observing
@@ -97,5 +100,6 @@ define(['require', 'css!./emby-progressring', 'registerElement'], function (requ
extends: 'div'
});
- return EmbyProgressRing;
-});
+ export default EmbyProgressRing;
+
+/* eslint-enable indent */
diff --git a/src/elements/emby-radio/emby-radio.js b/src/elements/emby-radio/emby-radio.js
index 46a3e3826c..d989326d25 100644
--- a/src/elements/emby-radio/emby-radio.js
+++ b/src/elements/emby-radio/emby-radio.js
@@ -1,7 +1,10 @@
-define(['layoutManager', 'css!./emby-radio', 'registerElement'], function (layoutManager) {
- 'use strict';
+import layoutManager from 'layoutManager';
+import 'css!./emby-radio';
+import 'registerElement';
- var EmbyRadioPrototype = Object.create(HTMLInputElement.prototype);
+/* eslint-disable indent */
+
+ let EmbyRadioPrototype = Object.create(HTMLInputElement.prototype);
function onKeyDown(e) {
@@ -23,7 +26,7 @@ define(['layoutManager', 'css!./emby-radio', 'registerElement'], function (layou
}
EmbyRadioPrototype.attachedCallback = function () {
- var showFocus = !layoutManager.mobile;
+ const showFocus = !layoutManager.mobile;
if (this.getAttribute('data-radio') === 'true') {
return;
@@ -33,7 +36,7 @@ define(['layoutManager', 'css!./emby-radio', 'registerElement'], function (layou
this.classList.add('mdl-radio__button');
- var labelElement = this.parentNode;
+ let labelElement = this.parentNode;
//labelElement.classList.add('"mdl-radio mdl-js-radio mdl-js-ripple-effect');
labelElement.classList.add('mdl-radio');
labelElement.classList.add('mdl-js-radio');
@@ -42,12 +45,12 @@ define(['layoutManager', 'css!./emby-radio', 'registerElement'], function (layou
labelElement.classList.add('show-focus');
}
- var labelTextElement = labelElement.querySelector('span');
+ let labelTextElement = labelElement.querySelector('span');
labelTextElement.classList.add('radioButtonLabel');
labelTextElement.classList.add('mdl-radio__label');
- var html = '';
+ let html = '';
html += '
';
@@ -76,4 +79,5 @@ define(['layoutManager', 'css!./emby-radio', 'registerElement'], function (layou
prototype: EmbyRadioPrototype,
extends: 'input'
});
-});
+
+/* eslint-enable indent */
diff --git a/src/elements/emby-scroller/emby-scroller.js b/src/elements/emby-scroller/emby-scroller.js
index 3df40fa6c2..407031a55f 100644
--- a/src/elements/emby-scroller/emby-scroller.js
+++ b/src/elements/emby-scroller/emby-scroller.js
@@ -1,7 +1,15 @@
-define(['scroller', 'dom', 'layoutManager', 'inputManager', 'focusManager', 'browser', 'registerElement', 'css!./emby-scroller'], function (scroller, dom, layoutManager, inputManager, focusManager, browser) {
- 'use strict';
+import scroller from 'scroller';
+import dom from 'dom';
+import layoutManager from 'layoutManager';
+import inputManager from 'inputManager';
+import focusManager from 'focusManager';
+import browser from 'browser';
+import 'registerElement';
+import 'css!./emby-scroller';
- var ScrollerPrototype = Object.create(HTMLDivElement.prototype);
+/* eslint-disable indent */
+
+ let ScrollerPrototype = Object.create(HTMLDivElement.prototype);
ScrollerPrototype.createdCallback = function () {
this.classList.add('emby-scroller');
@@ -9,7 +17,7 @@ define(['scroller', 'dom', 'layoutManager', 'inputManager', 'focusManager', 'bro
function initCenterFocus(elem, scrollerInstance) {
dom.addEventListener(elem, 'focus', function (e) {
- var focused = focusManager.focusableParent(e.target);
+ const focused = focusManager.focusableParent(e.target);
if (focused) {
scrollerInstance.toCenter(focused);
}
@@ -80,7 +88,7 @@ define(['scroller', 'dom', 'layoutManager', 'inputManager', 'focusManager', 'bro
};
function onInputCommand(e) {
- var cmd = e.detail.command;
+ const cmd = e.detail.command;
if (cmd === 'end') {
focusManager.focusLast(this, '.' + this.getAttribute('data-navcommands'));
e.preventDefault();
@@ -101,18 +109,18 @@ define(['scroller', 'dom', 'layoutManager', 'inputManager', 'focusManager', 'bro
inputManager.on(this, onInputCommand);
}
- var horizontal = this.getAttribute('data-horizontal') !== 'false';
+ const horizontal = this.getAttribute('data-horizontal') !== 'false';
- var slider = this.querySelector('.scrollSlider');
+ const slider = this.querySelector('.scrollSlider');
if (horizontal) {
slider.style['white-space'] = 'nowrap';
}
- var scrollFrame = this;
- var enableScrollButtons = layoutManager.desktop && horizontal && this.getAttribute('data-scrollbuttons') !== 'false';
+ const scrollFrame = this;
+ const enableScrollButtons = layoutManager.desktop && horizontal && this.getAttribute('data-scrollbuttons') !== 'false';
- var options = {
+ const options = {
horizontal: horizontal,
mouseDragging: 1,
mouseWheel: this.getAttribute('data-mousewheel') !== 'false',
@@ -154,14 +162,14 @@ define(['scroller', 'dom', 'layoutManager', 'inputManager', 'focusManager', 'bro
}
ScrollerPrototype.pause = function () {
- var headroom = this.headroom;
+ const headroom = this.headroom;
if (headroom) {
headroom.pause();
}
};
ScrollerPrototype.resume = function () {
- var headroom = this.headroom;
+ const headroom = this.headroom;
if (headroom) {
headroom.resume();
}
@@ -172,13 +180,13 @@ define(['scroller', 'dom', 'layoutManager', 'inputManager', 'focusManager', 'bro
inputManager.off(this, onInputCommand);
}
- var headroom = this.headroom;
+ const headroom = this.headroom;
if (headroom) {
headroom.destroy();
this.headroom = null;
}
- var scrollerInstance = this.scroller;
+ const scrollerInstance = this.scroller;
if (scrollerInstance) {
scrollerInstance.destroy();
this.scroller = null;
@@ -189,4 +197,5 @@ define(['scroller', 'dom', 'layoutManager', 'inputManager', 'focusManager', 'bro
prototype: ScrollerPrototype,
extends: 'div'
});
-});
+
+/* eslint-enable indent */
diff --git a/src/elements/emby-slider/emby-slider.js b/src/elements/emby-slider/emby-slider.js
index 1b78fca0ae..e872f6c78b 100644
--- a/src/elements/emby-slider/emby-slider.js
+++ b/src/elements/emby-slider/emby-slider.js
@@ -1,15 +1,22 @@
-define(['browser', 'dom', 'layoutManager', 'keyboardnavigation', 'css!./emby-slider', 'registerElement', 'emby-input'], function (browser, dom, layoutManager, keyboardnavigation) {
- 'use strict';
+import browser from 'browser';
+import dom from 'dom';
+import layoutManager from 'layoutManager';
+import keyboardnavigation from 'keyboardnavigation';
+import 'css!./emby-slider';
+import 'webcomponents';
+import 'emby-input';
- var EmbySliderPrototype = Object.create(HTMLInputElement.prototype);
+/* eslint-disable indent */
- var supportsValueSetOverride = false;
+ let EmbySliderPrototype = Object.create(HTMLInputElement.prototype);
- var enableWidthWithTransform;
+ let supportsValueSetOverride = false;
+
+ let enableWidthWithTransform;
if (Object.getOwnPropertyDescriptor && Object.defineProperty) {
- var descriptor = Object.getOwnPropertyDescriptor(HTMLInputElement.prototype, 'value');
+ const descriptor = Object.getOwnPropertyDescriptor(HTMLInputElement.prototype, 'value');
// descriptor returning null in webos
if (descriptor && descriptor.configurable) {
supportsValueSetOverride = true;
@@ -24,14 +31,14 @@ define(['browser', 'dom', 'layoutManager', 'keyboardnavigation', 'css!./emby-sli
* @return {number} slider fraction
*/
function mapClientToFraction(range, clientX) {
- var rect = range.sliderBubbleTrack.getBoundingClientRect();
+ const rect = range.sliderBubbleTrack.getBoundingClientRect();
- var fraction = (clientX - rect.left) / rect.width;
+ let fraction = (clientX - rect.left) / rect.width;
// Snap to step
- var valueRange = range.max - range.min;
+ const valueRange = range.max - range.min;
if (range.step !== 'any' && valueRange !== 0) {
- var step = (range.step || 1) / valueRange;
+ const step = (range.step || 1) / valueRange;
fraction = Math.round(fraction / step) * step;
}
@@ -46,7 +53,7 @@ define(['browser', 'dom', 'layoutManager', 'keyboardnavigation', 'css!./emby-sli
* @return {number} slider value
*/
function mapFractionToValue(range, fraction) {
- var value = (range.max - range.min) * fraction;
+ let value = (range.max - range.min) * fraction;
// Snap to step
if (range.step !== 'any') {
@@ -67,8 +74,8 @@ define(['browser', 'dom', 'layoutManager', 'keyboardnavigation', 'css!./emby-sli
* @return {number} slider fraction
*/
function mapValueToFraction(range, value) {
- var valueRange = range.max - range.min;
- var fraction = valueRange !== 0 ? (value - range.min) / valueRange : 0;
+ const valueRange = range.max - range.min;
+ const fraction = valueRange !== 0 ? (value - range.min) / valueRange : 0;
return Math.min(Math.max(fraction, 0), 1);
}
@@ -84,18 +91,18 @@ define(['browser', 'dom', 'layoutManager', 'keyboardnavigation', 'css!./emby-sli
return;
}
- var range = this;
- var value = range.value;
+ const range = this;
+ const value = range.value;
// put this on a callback. Doing it within the event sometimes causes the slider to get hung up and not respond
// Keep only one per slider frame request
cancelAnimationFrame(range.updateValuesFrame);
range.updateValuesFrame = requestAnimationFrame(function () {
- var backgroundLower = range.backgroundLower;
+ let backgroundLower = range.backgroundLower;
if (backgroundLower) {
- var fraction = (value - range.min) / (range.max - range.min);
+ let fraction = (value - range.min) / (range.max - range.min);
if (enableWidthWithTransform) {
backgroundLower.style.transform = 'scaleX(' + (fraction) + ')';
@@ -110,10 +117,10 @@ define(['browser', 'dom', 'layoutManager', 'keyboardnavigation', 'css!./emby-sli
function updateBubble(range, value, bubble, bubbleText) {
requestAnimationFrame(function () {
- var bubbleTrackRect = range.sliderBubbleTrack.getBoundingClientRect();
- var bubbleRect = bubble.getBoundingClientRect();
+ const bubbleTrackRect = range.sliderBubbleTrack.getBoundingClientRect();
+ const bubbleRect = bubble.getBoundingClientRect();
- var bubblePos = bubbleTrackRect.width * value / 100;
+ let bubblePos = bubbleTrackRect.width * value / 100;
bubblePos = Math.min(Math.max(bubblePos, bubbleRect.width / 2), bubbleTrackRect.width - bubbleRect.width / 2);
bubble.style.left = bubblePos + 'px';
@@ -158,10 +165,10 @@ define(['browser', 'dom', 'layoutManager', 'keyboardnavigation', 'css!./emby-sli
this.classList.add('show-focus');
}
- var containerElement = this.parentNode;
+ const containerElement = this.parentNode;
containerElement.classList.add('mdl-slider-container');
- var htmlToInsert = '';
+ let htmlToInsert = '';
htmlToInsert += '
';
htmlToInsert += '
';
@@ -187,9 +194,9 @@ define(['browser', 'dom', 'layoutManager', 'keyboardnavigation', 'css!./emby-sli
this.sliderBubbleTrack = containerElement.querySelector('.sliderBubbleTrack');
this.backgroundLower = containerElement.querySelector('.mdl-slider-background-lower');
this.backgroundUpper = containerElement.querySelector('.mdl-slider-background-upper');
- var sliderBubble = containerElement.querySelector('.sliderBubble');
+ const sliderBubble = containerElement.querySelector('.sliderBubble');
- var hasHideClass = sliderBubble.classList.contains('hide');
+ let hasHideClass = sliderBubble.classList.contains('hide');
dom.addEventListener(this, 'input', function (e) {
this.dragging = true;
@@ -198,7 +205,7 @@ define(['browser', 'dom', 'layoutManager', 'keyboardnavigation', 'css!./emby-sli
updateValues.call(this);
}
- var bubbleValue = mapValueToFraction(this, this.value) * 100;
+ const bubbleValue = mapValueToFraction(this, this.value) * 100;
updateBubble(this, bubbleValue, sliderBubble);
if (hasHideClass) {
@@ -223,10 +230,11 @@ define(['browser', 'dom', 'layoutManager', 'keyboardnavigation', 'css!./emby-sli
passive: true
});
+ /* eslint-disable-next-line compat/compat */
dom.addEventListener(this, (window.PointerEvent ? 'pointermove' : 'mousemove'), function (e) {
if (!this.dragging) {
- var bubbleValue = mapClientToFraction(this, e.clientX) * 100;
+ const bubbleValue = mapClientToFraction(this, e.clientX) * 100;
updateBubble(this, bubbleValue, sliderBubble);
@@ -240,6 +248,7 @@ define(['browser', 'dom', 'layoutManager', 'keyboardnavigation', 'css!./emby-sli
passive: true
});
+ /* eslint-disable-next-line compat/compat */
dom.addEventListener(this, (window.PointerEvent ? 'pointerleave' : 'mouseleave'), function () {
sliderBubble.classList.add('hide');
hasHideClass = true;
@@ -256,7 +265,7 @@ define(['browser', 'dom', 'layoutManager', 'keyboardnavigation', 'css!./emby-sli
this.touched = true;
- var fraction = mapClientToFraction(this, e.targetTouches[0].clientX);
+ const fraction = mapClientToFraction(this, e.targetTouches[0].clientX);
this.value = mapFractionToValue(this, fraction);
this.dispatchEvent(new Event('input', {
@@ -276,7 +285,7 @@ define(['browser', 'dom', 'layoutManager', 'keyboardnavigation', 'css!./emby-sli
return;
}
- var fraction = mapClientToFraction(this, e.targetTouches[0].clientX);
+ const fraction = mapClientToFraction(this, e.targetTouches[0].clientX);
this.value = mapFractionToValue(this, fraction);
this.dispatchEvent(new Event('input', {
@@ -288,7 +297,7 @@ define(['browser', 'dom', 'layoutManager', 'keyboardnavigation', 'css!./emby-sli
});
dom.addEventListener(this, 'touchend', function (e) {
- var range = this;
+ const range = this;
setTimeout(function () {
range.touched = false;
@@ -314,12 +323,12 @@ define(['browser', 'dom', 'layoutManager', 'keyboardnavigation', 'css!./emby-sli
* Keyboard dragging timeout.
* After this delay "change" event will be fired.
*/
- var KeyboardDraggingTimeout = 1000;
+ const KeyboardDraggingTimeout = 1000;
/**
* Keyboard dragging timer.
*/
- var keyboardDraggingTimer;
+ let keyboardDraggingTimer;
/**
* Start keyboard dragging.
@@ -346,7 +355,7 @@ define(['browser', 'dom', 'layoutManager', 'keyboardnavigation', 'css!./emby-sli
elem.keyboardDragging = false;
- var event = new Event('change', {
+ const event = new Event('change', {
bubbles: true,
cancelable: false
});
@@ -364,7 +373,7 @@ define(['browser', 'dom', 'layoutManager', 'keyboardnavigation', 'css!./emby-sli
elem.value = Math.max(elem.min, Math.min(elem.max, parseFloat(elem.value) + delta));
- var event = new Event('input', {
+ const event = new Event('input', {
bubbles: true,
cancelable: false
});
@@ -414,10 +423,10 @@ define(['browser', 'dom', 'layoutManager', 'keyboardnavigation', 'css!./emby-sli
function setRange(elem, startPercent, endPercent) {
- var style = elem.style;
+ const style = elem.style;
style.left = Math.max(startPercent, 0) + '%';
- var widthPercent = endPercent - startPercent;
+ const widthPercent = endPercent - startPercent;
style.width = Math.max(Math.min(widthPercent, 100), 0) + '%';
}
@@ -438,7 +447,7 @@ define(['browser', 'dom', 'layoutManager', 'keyboardnavigation', 'css!./emby-sli
EmbySliderPrototype.setBufferedRanges = function (ranges, runtime, position) {
- var elem = this.backgroundUpper;
+ const elem = this.backgroundUpper;
if (!elem) {
return;
}
@@ -449,9 +458,7 @@ define(['browser', 'dom', 'layoutManager', 'keyboardnavigation', 'css!./emby-sli
position = (position / runtime) * 100;
}
- for (var i = 0, length = ranges.length; i < length; i++) {
-
- var range = ranges[i];
+ for (const range in ranges) {
if (position != null) {
if (position >= range.end) {
@@ -468,7 +475,7 @@ define(['browser', 'dom', 'layoutManager', 'keyboardnavigation', 'css!./emby-sli
EmbySliderPrototype.setIsClear = function (isClear) {
- var backgroundLower = this.backgroundLower;
+ const backgroundLower = this.backgroundLower;
if (backgroundLower) {
if (isClear) {
backgroundLower.classList.add('mdl-slider-background-lower-clear');
@@ -479,7 +486,7 @@ define(['browser', 'dom', 'layoutManager', 'keyboardnavigation', 'css!./emby-sli
};
function startInterval(range) {
- var interval = range.interval;
+ const interval = range.interval;
if (interval) {
clearInterval(interval);
}
@@ -488,7 +495,7 @@ define(['browser', 'dom', 'layoutManager', 'keyboardnavigation', 'css!./emby-sli
EmbySliderPrototype.detachedCallback = function () {
- var interval = this.interval;
+ const interval = this.interval;
if (interval) {
clearInterval(interval);
}
@@ -501,4 +508,5 @@ define(['browser', 'dom', 'layoutManager', 'keyboardnavigation', 'css!./emby-sli
prototype: EmbySliderPrototype,
extends: 'input'
});
-});
+
+/* eslint-enable indent */
diff --git a/src/elements/emby-tabs/emby-tabs.js b/src/elements/emby-tabs/emby-tabs.js
index 5e03c3f096..c36a5c7f06 100644
--- a/src/elements/emby-tabs/emby-tabs.js
+++ b/src/elements/emby-tabs/emby-tabs.js
@@ -1,9 +1,17 @@
-define(['dom', 'scroller', 'browser', 'layoutManager', 'focusManager', 'registerElement', 'css!./emby-tabs', 'scrollStyles'], function (dom, scroller, browser, layoutManager, focusManager) {
- 'use strict';
+import dom from 'dom';
+import scroller from 'scroller';
+import browser from 'browser';
+import layoutManager from 'layoutManager';
+import focusManager from 'focusManager';
+import 'registerElement';
+import 'css!./emby-tabs';
+import 'scrollStyles';
- var EmbyTabs = Object.create(HTMLDivElement.prototype);
- var buttonClass = 'emby-tab-button';
- var activeButtonClass = buttonClass + '-active';
+/* eslint-disable indent */
+
+ let EmbyTabs = Object.create(HTMLDivElement.prototype);
+ const buttonClass = 'emby-tab-button';
+ const activeButtonClass = buttonClass + '-active';
function setActiveTabButton(tabs, newButton, oldButton, animate) {
@@ -16,14 +24,14 @@ define(['dom', 'scroller', 'browser', 'layoutManager', 'focusManager', 'register
}
function removeActivePanelClass(tabs, index) {
- var tabPanel = getTabPanel(tabs, index);
+ let tabPanel = getTabPanel(tabs, index);
if (tabPanel) {
tabPanel.classList.remove('is-active');
}
}
function addActivePanelClass(tabs, index) {
- var tabPanel = getTabPanel(tabs, index);
+ let tabPanel = getTabPanel(tabs, index);
if (tabPanel) {
tabPanel.classList.add('is-active');
}
@@ -31,9 +39,9 @@ define(['dom', 'scroller', 'browser', 'layoutManager', 'focusManager', 'register
function fadeInRight(elem) {
- var pct = browser.mobile ? '4%' : '0.5%';
+ const pct = browser.mobile ? '4%' : '0.5%';
- var keyframes = [
+ const keyframes = [
{ opacity: '0', transform: 'translate3d(' + pct + ', 0, 0)', offset: 0 },
{ opacity: '1', transform: 'none', offset: 1 }];
@@ -56,7 +64,7 @@ define(['dom', 'scroller', 'browser', 'layoutManager', 'focusManager', 'register
removeActivePanelClass(tabs, previousIndex);
}
- var newPanel = getTabPanel(tabs, index);
+ let newPanel = getTabPanel(tabs, index);
if (newPanel) {
// animate new panel ?
@@ -70,10 +78,10 @@ define(['dom', 'scroller', 'browser', 'layoutManager', 'focusManager', 'register
function onClick(e) {
- var tabs = this;
+ const tabs = this;
- var current = tabs.querySelector('.' + activeButtonClass);
- var tabButton = dom.parentWithClass(e.target, buttonClass);
+ const current = tabs.querySelector('.' + activeButtonClass);
+ const tabButton = dom.parentWithClass(e.target, buttonClass);
if (tabButton && tabButton !== current) {
@@ -81,11 +89,11 @@ define(['dom', 'scroller', 'browser', 'layoutManager', 'focusManager', 'register
current.classList.remove(activeButtonClass);
}
- var previousIndex = current ? parseInt(current.getAttribute('data-index')) : null;
+ const previousIndex = current ? parseInt(current.getAttribute('data-index')) : null;
setActiveTabButton(tabs, tabButton, current, true);
- var index = parseInt(tabButton.getAttribute('data-index'));
+ const index = parseInt(tabButton.getAttribute('data-index'));
triggerBeforeTabChange(tabs, index, previousIndex);
@@ -115,7 +123,7 @@ define(['dom', 'scroller', 'browser', 'layoutManager', 'focusManager', 'register
return;
}
- var contentScrollSlider = tabs.querySelector('.emby-tabs-slider');
+ const contentScrollSlider = tabs.querySelector('.emby-tabs-slider');
if (contentScrollSlider) {
tabs.scroller = new scroller(tabs, {
horizontal: 1,
@@ -160,7 +168,7 @@ define(['dom', 'scroller', 'browser', 'layoutManager', 'focusManager', 'register
EmbyTabs.focus = function () {
- var selected = this.querySelector('.' + activeButtonClass);
+ const selected = this.querySelector('.' + activeButtonClass);
if (selected) {
focusManager.focus(selected);
@@ -180,16 +188,16 @@ define(['dom', 'scroller', 'browser', 'layoutManager', 'focusManager', 'register
initScroller(this);
- var current = this.querySelector('.' + activeButtonClass);
- var currentIndex = current ? parseInt(current.getAttribute('data-index')) : parseInt(this.getAttribute('data-index') || '0');
+ const current = this.querySelector('.' + activeButtonClass);
+ const currentIndex = current ? parseInt(current.getAttribute('data-index')) : parseInt(this.getAttribute('data-index') || '0');
if (currentIndex !== -1) {
this.selectedTabIndex = currentIndex;
- var tabButtons = this.querySelectorAll('.' + buttonClass);
+ const tabButtons = this.querySelectorAll('.' + buttonClass);
- var newTabButton = tabButtons[currentIndex];
+ const newTabButton = tabButtons[currentIndex];
if (newTabButton) {
setActiveTabButton(this, newTabButton, current, false);
@@ -221,18 +229,18 @@ define(['dom', 'scroller', 'browser', 'layoutManager', 'focusManager', 'register
EmbyTabs.selectedIndex = function (selected, triggerEvent) {
- var tabs = this;
+ const tabs = this;
if (selected == null) {
return tabs.selectedTabIndex || 0;
}
- var current = tabs.selectedIndex();
+ const current = tabs.selectedIndex();
tabs.selectedTabIndex = selected;
- var tabButtons = tabs.querySelectorAll('.' + buttonClass);
+ const tabButtons = tabs.querySelectorAll('.' + buttonClass);
if (current === selected || triggerEvent === false) {
@@ -244,7 +252,7 @@ define(['dom', 'scroller', 'browser', 'layoutManager', 'focusManager', 'register
}
}));
- var currentTabButton = tabButtons[current];
+ let currentTabButton = tabButtons[current];
setActiveTabButton(tabs, tabButtons[selected], currentTabButton, false);
if (current !== selected && currentTabButton) {
@@ -262,7 +270,7 @@ define(['dom', 'scroller', 'browser', 'layoutManager', 'focusManager', 'register
function getSibling(elem, method) {
- var sibling = elem[method];
+ let sibling = elem[method];
while (sibling) {
if (sibling.classList.contains(buttonClass)) {
@@ -280,9 +288,9 @@ define(['dom', 'scroller', 'browser', 'layoutManager', 'focusManager', 'register
EmbyTabs.selectNext = function () {
- var current = getSelectedTabButton(this);
+ const current = getSelectedTabButton(this);
- var sibling = getSibling(current, 'nextSibling');
+ const sibling = getSibling(current, 'nextSibling');
if (sibling) {
onClick.call(this, {
@@ -293,9 +301,9 @@ define(['dom', 'scroller', 'browser', 'layoutManager', 'focusManager', 'register
EmbyTabs.selectPrevious = function () {
- var current = getSelectedTabButton(this);
+ const current = getSelectedTabButton(this);
- var sibling = getSibling(current, 'previousSibling');
+ const sibling = getSibling(current, 'previousSibling');
if (sibling) {
onClick.call(this, {
@@ -306,14 +314,14 @@ define(['dom', 'scroller', 'browser', 'layoutManager', 'focusManager', 'register
EmbyTabs.triggerBeforeTabChange = function (selected) {
- var tabs = this;
+ const tabs = this;
triggerBeforeTabChange(tabs, tabs.selectedIndex());
};
EmbyTabs.triggerTabChange = function (selected) {
- var tabs = this;
+ const tabs = this;
tabs.dispatchEvent(new CustomEvent('tabchange', {
detail: {
@@ -324,8 +332,8 @@ define(['dom', 'scroller', 'browser', 'layoutManager', 'focusManager', 'register
EmbyTabs.setTabEnabled = function (index, enabled) {
- var tabs = this;
- var btn = this.querySelector('.emby-tab-button[data-index="' + index + '"]');
+ const tabs = this;
+ const btn = this.querySelector('.emby-tab-button[data-index="' + index + '"]');
if (enabled) {
btn.classList.remove('hide');
@@ -338,4 +346,5 @@ define(['dom', 'scroller', 'browser', 'layoutManager', 'focusManager', 'register
prototype: EmbyTabs,
extends: 'div'
});
-});
+
+/* eslint-enable indent */
diff --git a/src/elements/emby-textarea/emby-textarea.js b/src/elements/emby-textarea/emby-textarea.js
index 87a3d7fcee..3b7624e74a 100644
--- a/src/elements/emby-textarea/emby-textarea.js
+++ b/src/elements/emby-textarea/emby-textarea.js
@@ -1,8 +1,13 @@
-define(['layoutManager', 'browser', 'css!./emby-textarea', 'registerElement', 'emby-input'], function (layoutManager, browser) {
- 'use strict';
+import layoutManager from 'layoutManager';
+import browser from 'browser';
+import 'css!./emby-textarea';
+import 'registerElement';
+import 'emby-input';
+
+/* eslint-disable indent */
function autoGrow(textarea, maxLines) {
- var self = this;
+ const self = this;
if (maxLines === undefined) {
maxLines = 999;
@@ -14,17 +19,17 @@ define(['layoutManager', 'browser', 'css!./emby-textarea', 'registerElement', 'e
* @returns {number}
*/
self.getOffset = function (textarea) {
- var style = window.getComputedStyle(textarea, null);
- var props = ['paddingTop', 'paddingBottom'];
- var offset = 0;
+ const style = window.getComputedStyle(textarea, null);
+ const props = ['paddingTop', 'paddingBottom'];
+ let offset = 0;
- for (var i = 0; i < props.length; i++) {
+ for (let i = 0; i < props.length; i++) {
offset += parseInt(style[props[i]]);
}
return offset;
};
- var offset;
+ let offset;
function reset() {
textarea.rows = 1;
offset = self.getOffset(textarea);
@@ -43,8 +48,8 @@ define(['layoutManager', 'browser', 'css!./emby-textarea', 'registerElement', 'e
textarea.rows = 3;
return;
}
- var newHeight = 0;
- var hasGrown = false;
+ let newHeight = 0;
+ let hasGrown = false;
if ((textarea.scrollHeight - offset) > self.maxAllowedHeight) {
textarea.style.overflowY = 'scroll';
@@ -67,17 +72,17 @@ define(['layoutManager', 'browser', 'css!./emby-textarea', 'registerElement', 'e
autogrowFn();
}
- var EmbyTextAreaPrototype = Object.create(HTMLTextAreaElement.prototype);
+ const EmbyTextAreaPrototype = Object.create(HTMLTextAreaElement.prototype);
- var elementId = 0;
+ let elementId = 0;
if (Object.getOwnPropertyDescriptor && Object.defineProperty) {
- var descriptor = Object.getOwnPropertyDescriptor(HTMLTextAreaElement.prototype, 'value');
+ const descriptor = Object.getOwnPropertyDescriptor(HTMLTextAreaElement.prototype, 'value');
// descriptor returning null in webos
if (descriptor && descriptor.configurable) {
- var baseSetMethod = descriptor.set;
+ const baseSetMethod = descriptor.set;
descriptor.set = function (value) {
baseSetMethod.call(this, value);
@@ -108,8 +113,8 @@ define(['layoutManager', 'browser', 'css!./emby-textarea', 'registerElement', 'e
this.rows = 1;
this.classList.add('emby-textarea');
- var parentNode = this.parentNode;
- var label = this.ownerDocument.createElement('label');
+ const parentNode = this.parentNode;
+ const label = this.ownerDocument.createElement('label');
label.innerHTML = this.getAttribute('label') || '';
label.classList.add('textareaLabel');
@@ -136,4 +141,5 @@ define(['layoutManager', 'browser', 'css!./emby-textarea', 'registerElement', 'e
prototype: EmbyTextAreaPrototype,
extends: 'textarea'
});
-});
+
+/* eslint-enable indent */
diff --git a/src/elements/emby-toggle/emby-toggle.js b/src/elements/emby-toggle/emby-toggle.js
index bd7eba3078..99856923e9 100644
--- a/src/elements/emby-toggle/emby-toggle.js
+++ b/src/elements/emby-toggle/emby-toggle.js
@@ -1,7 +1,9 @@
-define(['css!./emby-toggle', 'registerElement'], function () {
- 'use strict';
+import 'css!./emby-toggle';
+import 'registerElement';
- var EmbyTogglePrototype = Object.create(HTMLInputElement.prototype);
+/* eslint-disable indent */
+
+ const EmbyTogglePrototype = Object.create(HTMLInputElement.prototype);
function onKeyDown(e) {
@@ -29,11 +31,11 @@ define(['css!./emby-toggle', 'registerElement'], function () {
this.classList.add('mdl-switch__input');
- var labelElement = this.parentNode;
+ const labelElement = this.parentNode;
labelElement.classList.add('mdl-switch');
labelElement.classList.add('mdl-js-switch');
- var labelTextElement = labelElement.querySelector('span');
+ const labelTextElement = labelElement.querySelector('span');
labelElement.insertAdjacentHTML('beforeend', '
');
@@ -47,4 +49,5 @@ define(['css!./emby-toggle', 'registerElement'], function () {
prototype: EmbyTogglePrototype,
extends: 'input'
});
-});
+
+/* eslint-enable indent */