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

Make import paths ES6-compatible

This commit is contained in:
MrTimscampi 2020-08-14 08:46:34 +02:00 committed by vitorsemeano
parent 1a635e2f81
commit bfb8c7c1f6
245 changed files with 2073 additions and 1995 deletions

View file

@ -86,7 +86,7 @@ _define('JavascriptSubtitlesOctopus', function() {
// material-icons // material-icons
const materialIcons = require('material-design-icons-iconfont/dist/material-design-icons.css'); const materialIcons = require('material-design-icons-iconfont/dist/material-design-icons.css');
_define('material-icons', function() { _define('material-design-icons-iconfont', function() {
return materialIcons; return materialIcons;
}); });

View file

@ -1,3 +1,4 @@
/* eslint-disable indent */ /* eslint-disable indent */
/** /**
@ -5,12 +6,12 @@
* @module components/accessSchedule/accessSchedule * @module components/accessSchedule/accessSchedule
*/ */
import dialogHelper from 'dialogHelper'; import dialogHelper from '../dialogHelper/dialogHelper';
import datetime from 'datetime'; import datetime from '../../scripts/datetime';
import globalize from 'globalize'; import globalize from '../../scripts/globalize';
import 'emby-select'; import '../../elements/emby-select/emby-select';
import 'paper-icon-button-light'; import '../../elements/emby-button/paper-icon-button-light';
import 'formDialogStyle'; import '../formdialog.css';
function getDisplayTime(hours) { function getDisplayTime(hours) {
let minutes = 0; let minutes = 0;
@ -59,7 +60,7 @@ import 'formDialogStyle';
export function show(options) { export function show(options) {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
import('text!./accessSchedule.template.html').then(({default: template}) => { import('./accessSchedule.template.html').then(({default: template}) => {
const dlg = dialogHelper.createDialog({ const dlg = dialogHelper.createDialog({
removeOnClose: true, removeOnClose: true,
size: 'small' size: 'small'

View file

@ -1,12 +1,12 @@
import dialogHelper from 'dialogHelper'; import dialogHelper from '../dialogHelper/dialogHelper';
import layoutManager from 'layoutManager'; import layoutManager from '../layoutManager';
import globalize from 'globalize'; import globalize from '../../scripts/globalize';
import dom from 'dom'; import dom from '../../scripts/dom';
import 'emby-button'; import '../../elements/emby-button/emby-button';
import 'css!./actionSheet'; import './actionSheet.css';
import 'material-icons'; import 'material-design-icons-iconfont';
import 'scrollStyles'; import '../../assets/css/scrollstyles.css';
import 'listViewStyle'; import '../../components/listview/listview.css';
function getOffsets(elems) { function getOffsets(elems) {
const results = []; const results = [];
@ -71,7 +71,7 @@ function getPosition(options, dlg) {
} }
function centerFocus(elem, horiz, on) { function centerFocus(elem, horiz, on) {
import('scrollHelper').then(({default: scrollHelper}) => { import('../../scripts/scrollHelper').then((scrollHelper) => {
const fn = on ? 'on' : 'off'; const fn = on ? 'on' : 'off';
scrollHelper.centerFocus[fn](elem, horiz); scrollHelper.centerFocus[fn](elem, horiz);
}); });

View file

@ -1,11 +1,12 @@
import events from 'events'; import events from 'jellyfin-apiclient';
import globalize from 'globalize'; import globalize from '../scripts/globalize';
import dom from 'dom'; import dom from '../scripts/dom';
import * as datefns from 'date-fns'; import * as datefns from 'date-fns';
import dfnshelper from 'dfnshelper'; import dfnshelper from '../scripts/dfnshelper';
import serverNotifications from 'serverNotifications'; import serverNotifications from '../scripts/serverNotifications';
import 'emby-button'; import connectionManager from 'jellyfin-apiclient';
import 'listViewStyle'; import '../elements/emby-button/emby-button';
import './listview/listview.css';
/* eslint-disable indent */ /* eslint-disable indent */
@ -127,7 +128,7 @@ import 'listViewStyle';
} }
function showItemOverview(item) { function showItemOverview(item) {
import('alert').then(({default: alert}) => { import('./alert').then((alert) => {
alert({ alert({
text: item.Overview text: item.Overview
}); });

View file

@ -1,6 +1,7 @@
import browser from 'browser';
import dialog from 'dialog'; import browser from '../scripts/browser';
import globalize from 'globalize'; import dialog from './dialog/dialog';
import globalize from '../scripts/globalize';
/* eslint-disable indent */ /* eslint-disable indent */

View file

@ -5,12 +5,12 @@
* @module components/alphaPicker/alphaPicker * @module components/alphaPicker/alphaPicker
*/ */
import focusManager from 'focusManager'; import focusManager from '../focusManager';
import layoutManager from 'layoutManager'; import layoutManager from '../layoutManager';
import dom from 'dom'; import dom from '../../scripts/dom';
import 'css!./style.css'; import './style.css';
import 'paper-icon-button-light'; import '../../elements/emby-button/paper-icon-button-light';
import 'material-icons'; import 'material-design-icons-iconfont';
const selectedButtonClass = 'alphaPickerButton-selected'; const selectedButtonClass = 'alphaPickerButton-selected';

View file

@ -1,4 +1,4 @@
import 'css!./appFooter'; import './appFooter.css';
function render(options) { function render(options) {
const elem = document.createElement('div'); const elem = document.createElement('div');

View file

@ -1,13 +1,14 @@
import appHost from 'apphost'; import appHost from './apphost';
import appSettings from 'appSettings'; import appSettings from '../scripts/settings/appSettings';
import backdrop from 'backdrop'; import backdrop from './backdrop/backdrop';
import browser from 'browser'; import browser from '../scripts/browser';
import events from 'events'; import connectionManager from 'jellyfin-apiclient';
import globalize from 'globalize'; import events from 'jellyfin-apiclient';
import itemHelper from 'itemHelper'; import globalize from '../scripts/globalize';
import loading from 'loading'; import itemHelper from './itemHelper';
import loading from './loading/loading';
import page from 'page'; import page from 'page';
import viewManager from 'viewManager'; import viewManager from './viewManager/viewManager';
class AppRouter { class AppRouter {
allRoutes = []; allRoutes = [];
@ -286,7 +287,7 @@ class AppRouter {
this.showWelcome(); this.showWelcome();
break; break;
case 'ServerUpdateNeeded': case 'ServerUpdateNeeded':
import('alert').then(({default: alert}) =>{ import('./alert').then((alert) =>{
alert({ alert({
text: globalize.translate('ServerUpdateNeeded', 'https://github.com/jellyfin/jellyfin'), text: globalize.translate('ServerUpdateNeeded', 'https://github.com/jellyfin/jellyfin'),
html: globalize.translate('ServerUpdateNeeded', '<a href="https://github.com/jellyfin/jellyfin">https://github.com/jellyfin/jellyfin</a>') html: globalize.translate('ServerUpdateNeeded', '<a href="https://github.com/jellyfin/jellyfin">https://github.com/jellyfin/jellyfin</a>')
@ -323,7 +324,7 @@ class AppRouter {
url += '?' + ctx.querystring; url += '?' + ctx.querystring;
} }
import('text!' + url).then(({default: html}) => { import('' + url).then(({default: html}) => {
this.loadContent(ctx, route, html, request); this.loadContent(ctx, route, html, request);
}); });
} }
@ -340,7 +341,7 @@ class AppRouter {
}; };
if (route.controller) { if (route.controller) {
import('controllers/' + route.controller).then(onInitComplete); import('../controllers/' + route.controller).then(onInitComplete);
} else { } else {
onInitComplete(); onInitComplete();
} }
@ -407,7 +408,7 @@ class AppRouter {
this.forcedLogoutMsg = null; this.forcedLogoutMsg = null;
if (msg) { if (msg) {
import('alert').then((alert) => { import('./alert').then((alert) => {
alert(msg); alert(msg);
}); });
} }

View file

@ -1,9 +1,9 @@
import appSettings from 'appSettings'; import appSettings from '../scripts/settings/appSettings';
import browser from 'browser'; import browser from '../scripts/browser';
import events from 'events'; import events from 'jellyfin-apiclient';
import * as htmlMediaHelper from 'htmlMediaHelper'; import * as htmlMediaHelper from '../components/htmlMediaHelper';
import * as webSettings from 'webSettings'; import * as webSettings from '../scripts/settings/webSettings';
import globalize from 'globalize'; import globalize from '../scripts/globalize';
function getBaseProfileOptions(item) { function getBaseProfileOptions(item) {
const disableHlsVideoAudioCodecs = []; const disableHlsVideoAudioCodecs = [];
@ -26,7 +26,7 @@ function getBaseProfileOptions(item) {
function getDeviceProfile(item, options = {}) { function getDeviceProfile(item, options = {}) {
return new Promise(function (resolve) { return new Promise(function (resolve) {
import('browserdeviceprofile').then(({default: profileBuilder}) => { import('../scripts/browserDeviceProfile').then((profileBuilder) => {
let profile; let profile;
if (window.NativeShell) { if (window.NativeShell) {
@ -296,7 +296,7 @@ function askForExit() {
return; return;
} }
import('actionsheet').then(({default: actionsheet}) => { import('../components/actionSheet/actionSheet').then((actionsheet) => {
exitPromise = actionsheet.show({ exitPromise = actionsheet.show({
title: globalize.translate('MessageConfirmAppExit'), title: globalize.translate('MessageConfirmAppExit'),
items: [ items: [

View file

@ -5,8 +5,8 @@
* @module components/autoFocuser * @module components/autoFocuser
*/ */
import focusManager from 'focusManager'; import focusManager from './focusManager';
import layoutManager from 'layoutManager'; import layoutManager from './layoutManager';
/** /**
* Previously selected element. * Previously selected element.

View file

@ -1,8 +1,9 @@
import browser from 'browser'; import browser from '../../scripts/browser';
import playbackManager from 'playbackManager'; import connectionManager from 'jellyfin-apiclient';
import dom from 'dom'; import playbackManager from '../playback/playbackmanager';
import * as userSettings from 'userSettings'; import dom from '../../scripts/dom';
import 'css!./backdrop'; import * as userSettings from '../../scripts/settings/userSettings';
import './backdrop.css';
/* eslint-disable indent */ /* eslint-disable indent */

View file

@ -5,21 +5,22 @@
* @module components/cardBuilder/cardBuilder * @module components/cardBuilder/cardBuilder
*/ */
import datetime from 'datetime'; import datetime from '../../scripts/datetime';
import imageLoader from 'imageLoader'; import imageLoader from '../images/imageLoader';
import itemHelper from 'itemHelper'; import connectionManager from 'jellyfin-apiclient';
import focusManager from 'focusManager'; import itemHelper from '../itemHelper';
import indicators from 'indicators'; import focusManager from '../focusManager';
import globalize from 'globalize'; import indicators from '../indicators/indicators';
import layoutManager from 'layoutManager'; import globalize from '../../scripts/globalize';
import dom from 'dom'; import layoutManager from '../layoutManager';
import browser from 'browser'; import dom from '../../scripts/dom';
import playbackManager from 'playbackManager'; import browser from '../../scripts/browser';
import itemShortcuts from 'itemShortcuts'; import playbackManager from '../playback/playbackmanager';
import imageHelper from 'scripts/imagehelper'; import itemShortcuts from '../shortcuts';
import 'css!./card'; import imageHelper from '../../scripts/imagehelper';
import 'paper-icon-button-light'; import './card.css';
import 'programStyles'; import '../../elements/emby-button/paper-icon-button-light';
import '../guide/programs.css';
const enableFocusTransform = !browser.slow && !browser.edge; const enableFocusTransform = !browser.slow && !browser.edge;
@ -1121,7 +1122,7 @@ import 'programStyles';
if (!refreshIndicatorLoaded) { if (!refreshIndicatorLoaded) {
refreshIndicatorLoaded = true; refreshIndicatorLoaded = true;
/* eslint-disable-next-line @babel/no-unused-expressions */ /* eslint-disable-next-line @babel/no-unused-expressions */
import('emby-itemrefreshindicator'); import('../../elements/emby-itemrefreshindicator/emby-itemrefreshindicator');
} }
} }
@ -1453,7 +1454,7 @@ import 'programStyles';
if (itemHelper.canMarkPlayed(item)) { if (itemHelper.canMarkPlayed(item)) {
/* eslint-disable-next-line @babel/no-unused-expressions */ /* eslint-disable-next-line @babel/no-unused-expressions */
import('emby-playstatebutton'); import('../../elements/emby-playstatebutton/emby-playstatebutton');
html += '<button is="emby-playstatebutton" type="button" data-action="none" class="' + btnCssClass + '" data-id="' + item.Id + '" data-serverid="' + item.ServerId + '" data-itemtype="' + item.Type + '" data-played="' + (userData.Played) + '"><span class="material-icons cardOverlayButtonIcon cardOverlayButtonIcon-hover check"></span></button>'; html += '<button is="emby-playstatebutton" type="button" data-action="none" class="' + btnCssClass + '" data-id="' + item.Id + '" data-serverid="' + item.ServerId + '" data-itemtype="' + item.Type + '" data-played="' + (userData.Played) + '"><span class="material-icons cardOverlayButtonIcon cardOverlayButtonIcon-hover check"></span></button>';
} }
@ -1461,7 +1462,7 @@ import 'programStyles';
const likes = userData.Likes == null ? '' : userData.Likes; const likes = userData.Likes == null ? '' : userData.Likes;
/* eslint-disable-next-line @babel/no-unused-expressions */ /* eslint-disable-next-line @babel/no-unused-expressions */
import('emby-ratingbutton'); import('../../elements/emby-ratingbutton/emby-ratingbutton');
html += '<button is="emby-ratingbutton" type="button" data-action="none" class="' + btnCssClass + '" data-id="' + item.Id + '" data-serverid="' + item.ServerId + '" data-itemtype="' + item.Type + '" data-likes="' + likes + '" data-isfavorite="' + (userData.IsFavorite) + '"><span class="material-icons cardOverlayButtonIcon cardOverlayButtonIcon-hover favorite"></span></button>'; html += '<button is="emby-ratingbutton" type="button" data-action="none" class="' + btnCssClass + '" data-id="' + item.Id + '" data-serverid="' + item.ServerId + '" data-itemtype="' + item.Type + '" data-likes="' + likes + '" data-isfavorite="' + (userData.IsFavorite) + '"><span class="material-icons cardOverlayButtonIcon cardOverlayButtonIcon-hover favorite"></span></button>';
} }

View file

@ -5,10 +5,11 @@
* @module components/cardBuilder/chaptercardbuilder * @module components/cardBuilder/chaptercardbuilder
*/ */
import datetime from 'datetime'; import datetime from '../../scripts/datetime';
import imageLoader from 'imageLoader'; import imageLoader from '../images/imageLoader';
import layoutManager from 'layoutManager'; import connectionManager from 'jellyfin-apiclient';
import browser from 'browser'; import layoutManager from '../layoutManager';
import browser from '../../scripts/browser';
const enableFocusTransform = !browser.slow && !browser.edge; const enableFocusTransform = !browser.slow && !browser.edge;

View file

@ -5,7 +5,7 @@
* @module components/cardBuilder/peoplecardbuilder * @module components/cardBuilder/peoplecardbuilder
*/ */
import cardBuilder from 'cardBuilder'; import cardBuilder from '../cardbuilder/cardBuilder';
export function buildPeopleCards(items, options) { export function buildPeopleCards(items, options) {
options = Object.assign(options || {}, { options = Object.assign(options || {}, {

View file

@ -1,14 +1,15 @@
import dom from 'dom'; import dom from '../../scripts/dom';
import dialogHelper from 'dialogHelper'; import dialogHelper from '../dialogHelper/dialogHelper';
import loading from 'loading'; import loading from '../loading/loading';
import globalize from 'globalize'; import connectionManager from 'jellyfin-apiclient';
import actionsheet from 'actionsheet'; import globalize from '../../scripts/globalize';
import 'emby-input'; import actionsheet from '../actionSheet/actionSheet';
import 'paper-icon-button-light'; import '../../elements/emby-input/emby-input';
import 'emby-button'; import '../../elements/emby-button/paper-icon-button-light';
import 'listViewStyle'; import '../../elements/emby-button/emby-button';
import 'material-icons'; import '../listview/listview.css';
import 'formDialogStyle'; import 'material-design-icons-iconfont';
import '../formdialog.css';
export default class channelMapper { export default class channelMapper {
constructor(options) { constructor(options) {

View file

@ -1,17 +1,18 @@
import dom from 'dom'; import dom from '../../scripts/dom';
import dialogHelper from 'dialogHelper'; import dialogHelper from '../dialogHelper/dialogHelper';
import loading from 'loading'; import loading from '../loading/loading';
import layoutManager from 'layoutManager'; import layoutManager from '../layoutManager';
import appRouter from 'appRouter'; import connectionManager from 'jellyfin-apiclient';
import globalize from 'globalize'; import appRouter from '../appRouter';
import 'emby-checkbox'; import globalize from '../../scripts/globalize';
import 'emby-input'; import '../../elements/emby-button/emby-button';
import 'paper-icon-button-light'; import '../../elements/emby-button/paper-icon-button-light';
import 'emby-select'; import '../../elements/emby-checkbox/emby-checkbox';
import 'material-icons'; import '../../elements/emby-input/emby-input';
import 'css!./../formdialog'; import '../../elements/emby-select/emby-select';
import 'emby-button'; import 'material-design-icons-iconfont';
import 'flexStyles'; import '../formdialog.css';
import '../../assets/css/flexstyles.css';
/* eslint-disable indent */ /* eslint-disable indent */
@ -80,7 +81,7 @@ import 'flexStyles';
dlg.submitted = true; dlg.submitted = true;
dialogHelper.close(dlg); dialogHelper.close(dlg);
import('toast').then(({default: toast}) => { import('../toast/toast').then((toast) => {
toast(globalize.translate('MessageItemsAdded')); toast(globalize.translate('MessageItemsAdded'));
}); });
}); });
@ -199,7 +200,7 @@ import 'flexStyles';
} }
function centerFocus(elem, horiz, on) { function centerFocus(elem, horiz, on) {
import('scrollHelper').then((scrollHelper) => { import('../../scripts/scrollHelper').then((scrollHelper) => {
const fn = on ? 'on' : 'off'; const fn = on ? 'on' : 'off';
scrollHelper.centerFocus[fn](elem, horiz); scrollHelper.centerFocus[fn](elem, horiz);
}); });

View file

@ -1,6 +1,6 @@
import browser from 'browser'; import browser from '../../scripts/browser';
import dialog from 'dialog'; import dialog from '../dialog/dialog';
import globalize from 'globalize'; import globalize from '../../scripts/globalize';
/* eslint-disable indent */ /* eslint-disable indent */
export default (() => { export default (() => {

View file

@ -1,14 +1,14 @@
import dialogHelper from 'dialogHelper'; import dialogHelper from '../dialogHelper/dialogHelper';
import dom from 'dom'; import dom from '../../scripts/dom';
import layoutManager from 'layoutManager'; import layoutManager from '../layoutManager';
import scrollHelper from 'scrollHelper'; import scrollHelper from '../../scripts/scrollHelper';
import globalize from 'globalize'; import globalize from '../../scripts/globalize';
import 'material-icons'; import 'material-design-icons-iconfont';
import 'emby-button'; import '../../elements/emby-button/emby-button';
import 'paper-icon-button-light'; import '../../elements/emby-button/paper-icon-button-light';
import 'emby-input'; import '../../elements/emby-input/emby-input';
import 'formDialogStyle'; import '../formdialog.css';
import 'flexStyles'; import '../../assets/css/flexstyles.css';
/* eslint-disable indent */ /* eslint-disable indent */
@ -80,7 +80,8 @@ import 'flexStyles';
buttonClass += ' formDialogFooterItem-vertical formDialogFooterItem-nomarginbottom'; buttonClass += ' formDialogFooterItem-vertical formDialogFooterItem-nomarginbottom';
} }
html += `<button is="emby-button" type="button" class="${buttonClass}" data-id="${item.id}"${autoFocus}>${item.name}</button>`; html += `<button is="
" type="button" class="${buttonClass}" data-id="${item.id}"${autoFocus}>${item.name}</button>`;
if (item.description) { if (item.description) {
html += `<div class="formDialogFooterItem formDialogFooterItem-autosize fieldDescription" style="margin-top:.25em!important;margin-bottom:1.25em!important;">${item.description}</div>`; html += `<div class="formDialogFooterItem formDialogFooterItem-autosize fieldDescription" style="margin-top:.25em!important;margin-bottom:1.25em!important;">${item.description}</div>`;
@ -128,7 +129,7 @@ import 'flexStyles';
options = text; options = text;
} }
const { default: template } = await import('text!./dialog.template.html'); const { default: template } = await import('./dialog.template.html');
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
showDialog(options, template).then(resolve, reject); showDialog(options, template).then(resolve, reject);
}); });

View file

@ -1,11 +1,11 @@
import appRouter from 'appRouter'; import appRouter from '../appRouter';
import focusManager from 'focusManager'; import focusManager from '../focusManager';
import browser from 'browser'; import browser from '../../scripts/browser';
import layoutManager from 'layoutManager'; import layoutManager from '../layoutManager';
import inputManager from 'inputManager'; import inputManager from '../../scripts/inputManager';
import dom from 'dom'; import dom from '../../scripts/dom';
import 'css!./dialoghelper.css'; import './dialoghelper.css';
import 'scrollStyles'; import '../../assets/css/scrollstyles.css';
/* eslint-disable indent */ /* eslint-disable indent */
@ -354,7 +354,7 @@ import 'scrollStyles';
} }
function centerFocus(elem, horiz, on) { function centerFocus(elem, horiz, on) {
import('scrollHelper').then((scrollHelper) => { import('../../scripts/scrollHelper').then((scrollHelper) => {
const fn = on ? 'on' : 'off'; const fn = on ? 'on' : 'off';
scrollHelper.centerFocus[fn](elem, horiz); scrollHelper.centerFocus[fn](elem, horiz);
}); });

View file

@ -1,13 +1,13 @@
import loading from 'loading'; import loading from '../loading/loading';
import dialogHelper from 'dialogHelper'; import dialogHelper from '../dialogHelper/dialogHelper';
import dom from 'dom'; import dom from '../../scripts/dom';
import globalize from 'globalize'; import globalize from '../../scripts/globalize';
import 'listViewStyle'; import '../listview/listview.css';
import 'emby-input'; import '../../elements/emby-input/emby-input';
import 'paper-icon-button-light'; import '../../elements/emby-button/paper-icon-button-light';
import 'css!./directorybrowser'; import './directorybrowser.css';
import 'formDialogStyle'; import '../formdialog.css';
import 'emby-button'; import '../../elements/emby-button/emby-button';
/* eslint-disable indent */ /* eslint-disable indent */
@ -157,7 +157,7 @@ import 'emby-button';
} }
function alertTextWithOptions(options) { function alertTextWithOptions(options) {
import('alert').then(({default: alert}) => { import('../alert').then((alert) => {
alert(options); alert(options);
}); });
} }

View file

@ -1,16 +1,17 @@
import browser from 'browser'; import browser from '../../scripts/browser';
import layoutManager from 'layoutManager'; import layoutManager from '../layoutManager';
import pluginManager from 'pluginManager'; import pluginManager from '../pluginManager';
import appHost from 'apphost'; import appHost from '../apphost';
import focusManager from 'focusManager'; import focusManager from '../focusManager';
import datetime from 'datetime'; import datetime from '../../scripts/datetime';
import globalize from 'globalize'; import globalize from '../../scripts/globalize';
import loading from 'loading'; import loading from '../loading/loading';
import skinManager from 'skinManager'; import connectionManager from 'jellyfin-apiclient';
import events from 'events'; import skinManager from '../../scripts/themeManager';
import 'emby-select'; import events from 'jellyfin-apiclient';
import 'emby-checkbox'; import '../../elements/emby-select/emby-select';
import 'emby-button'; import '../../elements/emby-checkbox/emby-checkbox';
import '../../elements/emby-button/emby-button';
/* eslint-disable indent */ /* eslint-disable indent */
@ -168,7 +169,7 @@ import 'emby-button';
saveUser(context, user, userSettings, apiClient).then(() => { saveUser(context, user, userSettings, apiClient).then(() => {
loading.hide(); loading.hide();
if (enableSaveConfirmation) { if (enableSaveConfirmation) {
import('toast').then(({default: toast}) => { import('../toast/toast').then((toast) => {
toast(globalize.translate('SettingsSaved')); toast(globalize.translate('SettingsSaved'));
}); });
} }
@ -198,7 +199,7 @@ import 'emby-button';
} }
async function embed(options, self) { async function embed(options, self) {
const { default: template } = await import('text!./displaySettings.template.html'); const { default: template } = await import('./displaySettings.template.html');
options.element.innerHTML = globalize.translateHtml(template, 'core'); options.element.innerHTML = globalize.translateHtml(template, 'core');
options.element.querySelector('form').addEventListener('submit', onSubmit.bind(self)); options.element.querySelector('form').addEventListener('submit', onSubmit.bind(self));
if (options.enableSaveButton) { if (options.enableSaveButton) {

View file

@ -1,12 +1,12 @@
import loading from 'loading'; import loading from './loading/loading';
import cardBuilder from 'cardBuilder'; import cardBuilder from './cardbuilder/cardBuilder';
import dom from 'dom'; import dom from '../scripts/dom';
import appHost from 'apphost'; import appHost from './apphost';
import imageLoader from 'imageLoader'; import imageLoader from './images/imageLoader';
import globalize from 'globalize'; import globalize from '../scripts/globalize';
import layoutManager from 'layoutManager'; import layoutManager from './layoutManager';
import 'scrollStyles'; import '../assets/css/scrollstyles.css';
import 'emby-itemscontainer'; import '../elements/emby-itemscontainer/emby-itemscontainer';
/* eslint-disable indent */ /* eslint-disable indent */

View file

@ -1,10 +1,11 @@
import dom from 'dom'; import dom from '../../scripts/dom';
import dialogHelper from 'dialogHelper'; import dialogHelper from '../dialogHelper/dialogHelper';
import globalize from 'globalize'; import globalize from '../../scripts/globalize';
import events from 'events'; import connectionManager from 'jellyfin-apiclient';
import 'emby-checkbox'; import events from 'jellyfin-apiclient';
import 'emby-collapse'; import '../../elements/emby-checkbox/emby-checkbox';
import 'css!./style.css'; import '../../elements/emby-collapse/emby-collapse';
import './style.css';
/* eslint-disable indent */ /* eslint-disable indent */
function renderOptions(context, selector, cssClass, items, isCheckedFn) { function renderOptions(context, selector, cssClass, items, isCheckedFn) {
@ -401,7 +402,7 @@ import 'css!./style.css';
} }
show() { show() {
return import('text!./filterdialog.template.html').then(({default: template}) => { return import('./filterdialog.template.html').then(({default: template}) => {
return new Promise((resolve) => { return new Promise((resolve) => {
const dlg = dialogHelper.createDialog({ const dlg = dialogHelper.createDialog({
removeOnClose: true, removeOnClose: true,

View file

@ -1,18 +1,19 @@
import dom from 'dom'; import dom from '../../scripts/dom';
import focusManager from 'focusManager'; import focusManager from '../focusManager';
import dialogHelper from 'dialogHelper'; import dialogHelper from '../dialogHelper/dialogHelper';
import inputManager from 'inputManager'; import inputManager from '../../scripts/inputManager';
import layoutManager from 'layoutManager'; import layoutManager from '../layoutManager';
import globalize from 'globalize'; import connectionManager from 'jellyfin-apiclient';
import * as userSettings from 'userSettings'; import globalize from '../../scripts/globalize';
import 'emby-checkbox'; import * as userSettings from '../../scripts/settings/userSettings';
import 'emby-input'; import '../../elements/emby-checkbox/emby-checkbox';
import 'paper-icon-button-light'; import '../../elements/emby-input/emby-input';
import 'emby-select'; import '../../elements/emby-button/emby-button';
import 'material-icons'; import '../../elements/emby-button/paper-icon-button-light';
import 'css!./../formdialog'; import '../../elements/emby-select/emby-select';
import 'emby-button'; import 'material-design-icons-iconfont';
import 'flexStyles'; import '../formdialog.css';
import '../../assets/css/flexstyles.css';
function onSubmit(e) { function onSubmit(e) {
e.preventDefault(); e.preventDefault();
@ -80,7 +81,7 @@ function moveCheckboxFocus(elem, offset) {
} }
} }
function centerFocus(elem, horiz, on) { function centerFocus(elem, horiz, on) {
import('scrollHelper').then(({ default: scrollHelper }) => { import('../../scripts/scrollHelper').then((scrollHelper) => {
const fn = on ? 'on' : 'off'; const fn = on ? 'on' : 'off';
scrollHelper.centerFocus[fn](elem, horiz); scrollHelper.centerFocus[fn](elem, horiz);
}); });
@ -209,7 +210,7 @@ function loadDynamicFilters(context, options) {
class FilterMenu { class FilterMenu {
show(options) { show(options) {
return new Promise( (resolve, reject) => { return new Promise( (resolve, reject) => {
import('text!./filtermenu.template.html').then(({ default: template }) => { import('./filtermenu.template.html').then(({ default: template }) => {
const dialogOptions = { const dialogOptions = {
removeOnClose: true, removeOnClose: true,
scrollY: false scrollY: false

View file

@ -1,7 +1,7 @@
/* eslint-disable indent */ /* eslint-disable indent */
import dom from 'dom'; import dom from '../scripts/dom';
import scrollManager from 'scrollManager'; import scrollManager from './scrollManager';
const scopes = []; const scopes = [];
function pushScope(elem) { function pushScope(elem) {

View file

@ -1,7 +1,8 @@
/* eslint-disable indent */ /* eslint-disable indent */
import dom from 'dom'; import dom from '../scripts/dom';
import appRouter from 'appRouter'; import appRouter from './appRouter';
import connectionManager from 'jellyfin-apiclient';
function onGroupedCardClick(e, card) { function onGroupedCardClick(e, card) {
const itemId = card.getAttribute('data-id'); const itemId = card.getAttribute('data-id');

View file

@ -1,12 +1,12 @@
import dialogHelper from 'dialogHelper'; import dialogHelper from '../dialogHelper/dialogHelper';
import globalize from 'globalize'; import globalize from '../../scripts/globalize';
import * as userSettings from 'userSettings'; import * as userSettings from '../../scripts/settings/userSettings';
import layoutManager from 'layoutManager'; import layoutManager from '../layoutManager';
import scrollHelper from 'scrollHelper'; import scrollHelper from '../../scripts/scrollHelper';
import 'emby-checkbox'; import '../../elements/emby-checkbox/emby-checkbox';
import 'emby-radio'; import '../../elements/emby-radio/emby-radio';
import 'css!./../formdialog'; import '../formdialog.css';
import 'material-icons'; import 'material-design-icons-iconfont';
function saveCategories(context, options) { function saveCategories(context, options) {
const categories = []; const categories = [];
@ -88,7 +88,7 @@ function showEditor(options) {
return new Promise(function (resolve, reject) { return new Promise(function (resolve, reject) {
let settingsChanged = false; let settingsChanged = false;
import('text!./guide-settings.template.html').then(({ default: template }) => { import('./guide-settings.template.html').then(({ default: template }) => {
const dialogOptions = { const dialogOptions = {
removeOnClose: true, removeOnClose: true,
scrollY: false scrollY: false

View file

@ -1,32 +1,33 @@
import inputManager from 'inputManager'; import inputManager from '../../scripts/inputManager';
import browser from 'browser'; import browser from '../../scripts/browser';
import globalize from 'globalize'; import globalize from '../../scripts/globalize';
import scrollHelper from 'scrollHelper'; import connectionManager from 'jellyfin-apiclient';
import serverNotifications from 'serverNotifications'; import scrollHelper from '../../scripts/scrollHelper';
import loading from 'loading'; import serverNotifications from '../../scripts/serverNotifications';
import datetime from 'datetime'; import loading from '../loading/loading';
import focusManager from 'focusManager'; import datetime from '../../scripts/datetime';
import playbackManager from 'playbackManager'; import focusManager from '../focusManager';
import * as userSettings from 'userSettings'; import playbackManager from '../playback/playbackmanager';
import imageLoader from 'imageLoader'; import * as userSettings from '../../scripts/settings/userSettings';
import events from 'events'; import imageLoader from '../images/imageLoader';
import layoutManager from 'layoutManager'; import events from 'jellyfin-apiclient';
import itemShortcuts from 'itemShortcuts'; import layoutManager from '../layoutManager';
import dom from 'dom'; import itemShortcuts from '../shortcuts';
import 'css!./guide.css'; import dom from '../../scripts/dom';
import 'programStyles'; import './guide.css';
import 'material-icons'; import './programs.css';
import 'scrollStyles'; import 'material-design-icons-iconfont';
import 'emby-programcell'; import '../../assets/css/scrollstyles.css';
import 'emby-button'; import '../../elements/emby-programcell/emby-programcell';
import 'paper-icon-button-light'; import '../../elements/emby-button/emby-button';
import 'emby-tabs'; import '../../elements/emby-button/paper-icon-button-light';
import 'emby-scroller'; import '../../elements/emby-tabs/emby-tabs';
import 'flexStyles'; import '../../elements/emby-scroller/emby-scroller';
import 'webcomponents'; import '../../assets/css/flexstyles.css';
import 'webcomponents.js';
function showViewSettings(instance) { function showViewSettings(instance) {
import('guide-settings-dialog').then(({default: guideSettingsDialog}) => { import('./guide-settings').then((guideSettingsDialog) => {
guideSettingsDialog.show(instance.categoryOptions).then(function () { guideSettingsDialog.show(instance.categoryOptions).then(function () {
instance.refresh(); instance.refresh();
}); });
@ -1091,7 +1092,7 @@ function Guide(options) {
} }
} }
import('text!./tvguide.template.html').then(({default: template}) => { import('./tvguide.template.html').then(({default: template}) => {
const context = options.element; const context = options.element;
context.classList.add('tvguide'); context.classList.add('tvguide');

View file

@ -1,13 +1,15 @@
import layoutManager from 'layoutManager';
import focusManager from 'focusManager'; import layoutManager from '../layoutManager';
import globalize from 'globalize'; import focusManager from '../focusManager';
import loading from 'loading'; import globalize from '../../scripts/globalize';
import homeSections from 'homeSections'; import loading from '../loading/loading';
import dom from 'dom'; import connectionManager from 'jellyfin-apiclient';
import events from 'events'; import homeSections from '../homesections/homesections';
import 'listViewStyle'; import dom from '../../scripts/dom';
import 'emby-select'; import events from 'jellyfin-apiclient';
import 'emby-checkbox'; import '../listview/listview.css';
import '../../elements/emby-select/emby-select';
import '../../elements/emby-checkbox/emby-checkbox';
/* eslint-disable indent */ /* eslint-disable indent */
@ -369,7 +371,7 @@ import 'emby-checkbox';
saveUser(context, user, userSettings, apiClient).then(() => { saveUser(context, user, userSettings, apiClient).then(() => {
loading.hide(); loading.hide();
if (enableSaveConfirmation) { if (enableSaveConfirmation) {
import('toast').then(({default: toast}) => { import('../toast/toast').then((toast) => {
toast(globalize.translate('SettingsSaved')); toast(globalize.translate('SettingsSaved'));
}); });
} }
@ -417,7 +419,7 @@ import 'emby-checkbox';
} }
function embed(options, self) { function embed(options, self) {
return import('text!./homeScreenSettings.template.html').then(({default: template}) => { return import('./homeScreenSettings.template.html').then(({default: template}) => {
for (let i = 1; i <= numConfigurableSections; i++) { for (let i = 1; i <= numConfigurableSections; i++) {
template = template.replace(`{section${i}label}`, globalize.translate('LabelHomeScreenSectionValue', i)); template = template.replace(`{section${i}label}`, globalize.translate('LabelHomeScreenSectionValue', i));
} }

View file

@ -1,15 +1,16 @@
import cardBuilder from 'cardBuilder'; import connectionManager from 'jellyfin-apiclient';
import dom from 'dom'; import cardBuilder from '../cardbuilder/cardBuilder';
import layoutManager from 'layoutManager'; import dom from '../../scripts/dom';
import imageLoader from 'imageLoader'; import layoutManager from '../layoutManager';
import globalize from 'globalize'; import imageLoader from '../images/imageLoader';
import appRouter from 'appRouter'; import globalize from '../../scripts/globalize';
import imageHelper from 'scripts/imagehelper'; import appRouter from '../appRouter';
import 'paper-icon-button-light'; import imageHelper from '../../scripts/imagehelper';
import 'emby-itemscontainer'; import '../../elements/emby-button/paper-icon-button-light';
import 'emby-scroller'; import '../../elements/emby-itemscontainer/emby-itemscontainer';
import 'emby-button'; import '../../elements/emby-scroller/emby-scroller';
import 'css!./homesections'; import '../../elements/emby-button/emby-button';
import './homesections';
/* eslint-disable indent */ /* eslint-disable indent */

View file

@ -1,8 +1,9 @@
/* eslint-disable indent */ /* eslint-disable indent */
import appSettings from 'appSettings' ; import appSettings from '../scripts/settings/appSettings' ;
import browser from 'browser'; import browser from '../scripts/browser';
import events from 'events'; import events from 'jellyfin-apiclient';
export function getSavedVolume() { export function getSavedVolume() {
return appSettings.get('volume') || 1; return appSettings.get('volume') || 1;

View file

@ -1,17 +1,18 @@
import dom from 'dom'; import dom from '../../scripts/dom';
import loading from 'loading'; import loading from '../loading/loading';
import appHost from 'apphost'; import appHost from '../apphost';
import dialogHelper from 'dialogHelper'; import dialogHelper from '../dialogHelper/dialogHelper';
import imageLoader from 'imageLoader'; import connectionManager from 'jellyfin-apiclient';
import browser from 'browser'; import imageLoader from '../images/imageLoader';
import layoutManager from 'layoutManager'; import browser from '../../scripts/browser';
import scrollHelper from 'scrollHelper'; import layoutManager from '../layoutManager';
import globalize from 'globalize'; import scrollHelper from '../../scripts/scrollHelper';
import 'emby-checkbox'; import globalize from '../../scripts/globalize';
import 'paper-icon-button-light'; import '../../elements/emby-checkbox/emby-checkbox';
import 'emby-button'; import '../../elements/emby-button/paper-icon-button-light';
import 'formDialogStyle'; import '../../elements/emby-button/emby-button';
import 'cardStyle'; import '../formdialog.css';
import '../cardbuilder/card.css';
/* eslint-disable indent */ /* eslint-disable indent */
@ -315,7 +316,7 @@ import 'cardStyle';
function showEditor(itemId, serverId, itemType) { function showEditor(itemId, serverId, itemType) {
loading.show(); loading.show();
import('text!./imageDownloader.template.html').then(({default: template}) => { import('./imageDownloader.template.html').then(({default: template}) => {
const apiClient = window.connectionManager.getApiClient(serverId); const apiClient = window.connectionManager.getApiClient(serverId);
currentItemId = itemId; currentItemId = itemId;

View file

@ -5,12 +5,12 @@
* @module components/imageOptionsEditor/imageOptionsEditor * @module components/imageOptionsEditor/imageOptionsEditor
*/ */
import globalize from 'globalize'; import globalize from '../../scripts/globalize';
import dom from 'dom'; import dom from '../../scripts/dom';
import dialogHelper from 'dialogHelper'; import dialogHelper from '../dialogHelper/dialogHelper';
import 'emby-checkbox'; import '../../elements/emby-checkbox/emby-checkbox';
import 'emby-select'; import '../../elements/emby-select/emby-select';
import 'emby-input'; import '../../elements/emby-input/emby-input';
function getDefaultImageConfig(itemType, type) { function getDefaultImageConfig(itemType, type) {
return { return {

View file

@ -5,16 +5,17 @@
* @module components/imageUploader/imageUploader * @module components/imageUploader/imageUploader
*/ */
import dialogHelper from 'dialogHelper'; import dialogHelper from '../dialogHelper/dialogHelper';
import dom from 'dom'; import connectionManager from 'jellyfin-apiclient';
import loading from 'loading'; import dom from '../../scripts/dom';
import scrollHelper from 'scrollHelper'; import loading from '../loading/loading';
import layoutManager from 'layoutManager'; import scrollHelper from '../../scripts/scrollHelper';
import globalize from 'globalize'; import layoutManager from '../layoutManager';
import 'emby-button'; import globalize from '../../scripts/globalize';
import 'emby-select'; import '../../elements/emby-button/emby-button';
import 'formDialogStyle'; import '../../elements/emby-select/emby-select';
import 'css!./style'; import '../formdialog.css';
import './style.css';
let currentItemId; let currentItemId;
let currentServerId; let currentServerId;
@ -26,14 +27,14 @@ import 'css!./style';
switch (evt.target.error.code) { switch (evt.target.error.code) {
case evt.target.error.NOT_FOUND_ERR: case evt.target.error.NOT_FOUND_ERR:
import('toast').then(({default: toast}) => { import('../toast/toast').then((toast) => {
toast(globalize.translate('MessageFileReadError')); toast(globalize.translate('MessageFileReadError'));
}); });
break; break;
case evt.target.error.ABORT_ERR: case evt.target.error.ABORT_ERR:
break; // noop break; // noop
default: default:
import('toast').then(({default: toast}) => { import('../toast/toast').then((toast) => {
toast(globalize.translate('MessageFileReadError')); toast(globalize.translate('MessageFileReadError'));
}); });
break; break;
@ -87,7 +88,7 @@ import 'css!./style';
} }
if (!file.type.startsWith('image/')) { if (!file.type.startsWith('image/')) {
import('toast').then(({default: toast}) => { import('../toast/toast').then((toast) => {
toast(globalize.translate('MessageImageFileTypeAllowed')); toast(globalize.translate('MessageImageFileTypeAllowed'));
}); });
e.preventDefault(); e.preventDefault();
@ -100,7 +101,7 @@ import 'css!./style';
const imageType = dlg.querySelector('#selectImageType').value; const imageType = dlg.querySelector('#selectImageType').value;
if (imageType === 'None') { if (imageType === 'None') {
import('toast').then(({default: toast}) => { import('../toast/toast').then((toast) => {
toast(globalize.translate('MessageImageTypeNotSelected')); toast(globalize.translate('MessageImageTypeNotSelected'));
}); });
e.preventDefault(); e.preventDefault();
@ -134,7 +135,7 @@ import 'css!./style';
function showEditor(options, resolve) { function showEditor(options, resolve) {
options = options || {}; options = options || {};
return import('text!./imageUploader.template.html').then(({default: template}) => { return import('./imageUploader.template.html').then(({default: template}) => {
currentItemId = options.itemId; currentItemId = options.itemId;
currentServerId = options.serverId; currentServerId = options.serverId;

View file

@ -1,18 +1,19 @@
import dialogHelper from 'dialogHelper'; import dialogHelper from '../dialogHelper/dialogHelper';
import loading from 'loading'; import connectionManager from 'jellyfin-apiclient';
import dom from 'dom'; import loading from '../loading/loading';
import layoutManager from 'layoutManager'; import dom from '../../scripts/dom';
import focusManager from 'focusManager'; import layoutManager from '../layoutManager';
import globalize from 'globalize'; import focusManager from '../focusManager';
import scrollHelper from 'scrollHelper'; import globalize from '../../scripts/globalize';
import imageLoader from 'imageLoader'; import scrollHelper from '../../scripts/scrollHelper';
import browser from 'browser'; import imageLoader from '../images/imageLoader';
import appHost from 'apphost'; import browser from '../../scripts/browser';
import 'cardStyle'; import appHost from '../apphost';
import 'formDialogStyle'; import '../cardbuilder/card.css';
import 'emby-button'; import '../formdialog.css';
import 'paper-icon-button-light'; import '../../elements/emby-button/emby-button';
import 'css!./imageeditor'; import '../../elements/emby-button/paper-icon-button-light';
import './imageeditor.css';
/* eslint-disable indent */ /* eslint-disable indent */
@ -199,7 +200,7 @@ import 'css!./imageeditor';
return; return;
} }
import('confirm').then(({default: confirm}) => { import('../confirm/confirm').then(({default: confirm}) => {
confirm({ confirm({
text: globalize.translate('ConfirmDeleteImage'), text: globalize.translate('ConfirmDeleteImage'),
@ -215,7 +216,7 @@ import 'css!./imageeditor';
hasChanges = true; hasChanges = true;
reload(context, null, focusContext); reload(context, null, focusContext);
}, function () { }, function () {
import('alert').then(({default: alert}) => { import('../alert').then((alert) => {
alert(globalize.translate('ErrorDefault')); alert(globalize.translate('ErrorDefault'));
}); });
}); });
@ -281,7 +282,7 @@ import 'css!./imageeditor';
} }
function showImageDownloader(page, imageType) { function showImageDownloader(page, imageType) {
import('imageDownloader').then(({default: ImageDownloader}) => { import('../imageDownloader/imageDownloader').then((ImageDownloader) => {
ImageDownloader.show(currentItem.Id, currentItem.ServerId, currentItem.Type, imageType).then(function () { ImageDownloader.show(currentItem.Id, currentItem.ServerId, currentItem.Type, imageType).then(function () {
hasChanges = true; hasChanges = true;
reload(page); reload(page);
@ -299,7 +300,7 @@ import 'css!./imageeditor';
const providerCount = parseInt(imageCard.getAttribute('data-providers')); const providerCount = parseInt(imageCard.getAttribute('data-providers'));
const numImages = parseInt(imageCard.getAttribute('data-numimages')); const numImages = parseInt(imageCard.getAttribute('data-numimages'));
import('actionsheet').then(({default: actionSheet}) => { import('../actionSheet/actionSheet').then(({default: actionSheet}) => {
const commands = []; const commands = [];
commands.push({ commands.push({
@ -370,7 +371,7 @@ import 'css!./imageeditor';
addListeners(context, 'btnOpenUploadMenu', 'click', function () { addListeners(context, 'btnOpenUploadMenu', 'click', function () {
const imageType = this.getAttribute('data-imagetype'); const imageType = this.getAttribute('data-imagetype');
import('imageUploader').then(({default: imageUploader}) => { import('../imageUploader/imageUploader').then(({default: imageUploader}) => {
imageUploader.show({ imageUploader.show({
theme: options.theme, theme: options.theme,
@ -422,7 +423,7 @@ import 'css!./imageeditor';
loading.show(); loading.show();
import('text!./imageeditor.template.html').then(({default: template}) => { import('./imageeditor.template.html').then(({default: template}) => {
const apiClient = window.connectionManager.getApiClient(serverId); const apiClient = window.connectionManager.getApiClient(serverId);
apiClient.getItem(apiClient.getCurrentUserId(), itemId).then(function (item) { apiClient.getItem(apiClient.getCurrentUserId(), itemId).then(function (item) {
const dialogOptions = { const dialogOptions = {

View file

@ -1,7 +1,7 @@
import * as lazyLoader from 'lazyLoader'; import * as lazyLoader from '../lazyLoader/lazyLoaderIntersectionObserver';
import * as userSettings from 'userSettings'; import * as userSettings from '../../scripts/settings/userSettings';
import * as blurhash from 'blurhash'; import * as blurhash from 'blurhash';
import 'css!./style'; import './style.css';
/* eslint-disable indent */ /* eslint-disable indent */
export function lazyImage(elem, source = elem.getAttribute('data-src')) { export function lazyImage(elem, source = elem.getAttribute('data-src')) {

View file

@ -1,8 +1,8 @@
import datetime from 'datetime'; import datetime from '../../scripts/datetime';
import itemHelper from 'itemHelper'; import itemHelper from '../itemHelper';
import 'emby-progressbar'; import '../../elements/emby-progressbar/emby-progressbar';
import 'css!./indicators.css'; import './indicators.css';
import 'material-icons'; import 'material-design-icons-iconfont';
export function enableProgressIndicator(item) { export function enableProgressIndicator(item) {
if (item.MediaType === 'Video' && item.Type !== 'TvChannel') { if (item.MediaType === 'Video' && item.Type !== 'TvChannel') {

View file

@ -1,10 +1,11 @@
import appHost from 'apphost'; import connectionManager from 'jellyfin-apiclient';
import globalize from 'globalize'; import browser from '../scripts/browser';
import itemHelper from 'itemHelper'; import globalize from '../scripts/globalize';
import appRouter from 'appRouter'; import actionsheet from './actionSheet/actionSheet';
import playbackManager from 'playbackManager'; import appHost from './apphost';
import browser from 'browser'; import appRouter from './appRouter';
import actionsheet from 'actionsheet'; import itemHelper from './itemHelper';
import playbackManager from './playback/playbackmanager';
/* eslint-disable indent */ /* eslint-disable indent */
export function getCommands(options) { export function getCommands(options) {
@ -334,7 +335,7 @@ import actionsheet from 'actionsheet';
return new Promise(function (resolve, reject) { return new Promise(function (resolve, reject) {
switch (id) { switch (id) {
case 'addtocollection': case 'addtocollection':
import('collectionEditor').then(({default: collectionEditor}) => { import('./collectionEditor/collectionEditor').then((collectionEditor) => {
new collectionEditor({ new collectionEditor({
items: [itemId], items: [itemId],
serverId: serverId serverId: serverId
@ -342,7 +343,7 @@ import actionsheet from 'actionsheet';
}); });
break; break;
case 'addtoplaylist': case 'addtoplaylist':
import('playlistEditor').then(({default: playlistEditor}) => { import('./playlisteditor/playlisteditor').then((playlistEditor) => {
new playlistEditor({ new playlistEditor({
items: [itemId], items: [itemId],
serverId: serverId serverId: serverId
@ -350,7 +351,7 @@ import actionsheet from 'actionsheet';
}); });
break; break;
case 'download': case 'download':
import('fileDownloader').then((fileDownloader) => { import('../scripts/fileDownloader').then((fileDownloader) => {
const downloadHref = apiClient.getItemDownloadUrl(itemId); const downloadHref = apiClient.getItemDownloadUrl(itemId);
fileDownloader.download([{ fileDownloader.download([{
url: downloadHref, url: downloadHref,
@ -372,7 +373,7 @@ import actionsheet from 'actionsheet';
textArea.select(); textArea.select();
if (document.execCommand('copy')) { if (document.execCommand('copy')) {
import('toast').then(({default: toast}) => { import('./toast/toast').then((toast) => {
toast(globalize.translate('CopyStreamURLSuccess')); toast(globalize.translate('CopyStreamURLSuccess'));
}); });
} else { } else {
@ -387,7 +388,7 @@ import actionsheet from 'actionsheet';
} else { } else {
/* eslint-disable-next-line compat/compat */ /* eslint-disable-next-line compat/compat */
navigator.clipboard.writeText(downloadHref).then(function () { navigator.clipboard.writeText(downloadHref).then(function () {
import('toast').then(({default: toast}) => { import('./toast/toast').then((toast) => {
toast(globalize.translate('CopyStreamURLSuccess')); toast(globalize.translate('CopyStreamURLSuccess'));
}); });
}).catch(function () { }).catch(function () {
@ -398,7 +399,7 @@ import actionsheet from 'actionsheet';
break; break;
} }
case 'editsubtitles': case 'editsubtitles':
import('subtitleEditor').then(({default: subtitleEditor}) => { import('./subtitleeditor/subtitleeditor').then((subtitleEditor) => {
subtitleEditor.show(itemId, serverId).then(getResolveFunction(resolve, id, true), getResolveFunction(resolve, id)); subtitleEditor.show(itemId, serverId).then(getResolveFunction(resolve, id, true), getResolveFunction(resolve, id));
}); });
break; break;
@ -406,7 +407,7 @@ import actionsheet from 'actionsheet';
editItem(apiClient, item).then(getResolveFunction(resolve, id, true), getResolveFunction(resolve, id)); editItem(apiClient, item).then(getResolveFunction(resolve, id, true), getResolveFunction(resolve, id));
break; break;
case 'editimages': case 'editimages':
import('imageEditor').then(({default: imageEditor}) => { import('./imageeditor/imageeditor').then((imageEditor) => {
imageEditor.show({ imageEditor.show({
itemId: itemId, itemId: itemId,
serverId: serverId serverId: serverId
@ -414,12 +415,12 @@ import actionsheet from 'actionsheet';
}); });
break; break;
case 'identify': case 'identify':
import('itemIdentifier').then(({default: itemIdentifier}) => { import('./itemidentifier/itemidentifier').then((itemIdentifier) => {
itemIdentifier.show(itemId, serverId).then(getResolveFunction(resolve, id, true), getResolveFunction(resolve, id)); itemIdentifier.show(itemId, serverId).then(getResolveFunction(resolve, id, true), getResolveFunction(resolve, id));
}); });
break; break;
case 'moremediainfo': case 'moremediainfo':
import('itemMediaInfo').then(({default: itemMediaInfo}) => { import('./itemMediaInfo/itemMediaInfo').then((itemMediaInfo) => {
itemMediaInfo.show(itemId, serverId).then(getResolveFunction(resolve, id), getResolveFunction(resolve, id)); itemMediaInfo.show(itemId, serverId).then(getResolveFunction(resolve, id), getResolveFunction(resolve, id));
}); });
break; break;
@ -454,7 +455,7 @@ import actionsheet from 'actionsheet';
playbackManager.clearQueue(); playbackManager.clearQueue();
break; break;
case 'record': case 'record':
import('recordingCreator').then(({default: recordingCreator}) => { import('./recordingcreator/recordingcreator').then((recordingCreator) => {
recordingCreator.show(itemId, serverId).then(getResolveFunction(resolve, id, true), getResolveFunction(resolve, id)); recordingCreator.show(itemId, serverId).then(getResolveFunction(resolve, id, true), getResolveFunction(resolve, id));
}); });
break; break;
@ -525,7 +526,7 @@ import actionsheet from 'actionsheet';
} }
function deleteTimer(apiClient, item, resolve, command) { function deleteTimer(apiClient, item, resolve, command) {
import('recordingHelper').then(({default: recordingHelper}) => { import('./recordingcreator/recordinghelper').then((recordingHelper) => {
const timerId = item.TimerId || item.Id; const timerId = item.TimerId || item.Id;
recordingHelper.cancelTimerWithConfirmation(timerId, item.ServerId).then(function () { recordingHelper.cancelTimerWithConfirmation(timerId, item.ServerId).then(function () {
getResolveFunction(resolve, command, true)(); getResolveFunction(resolve, command, true)();
@ -534,7 +535,7 @@ import actionsheet from 'actionsheet';
} }
function deleteSeriesTimer(apiClient, item, resolve, command) { function deleteSeriesTimer(apiClient, item, resolve, command) {
import('recordingHelper').then(({default: recordingHelper}) => { import('./recordingcreator/recordinghelper').then((recordingHelper) => {
recordingHelper.cancelSeriesTimerWithConfirmation(item.Id, item.ServerId).then(function () { recordingHelper.cancelSeriesTimerWithConfirmation(item.Id, item.ServerId).then(function () {
getResolveFunction(resolve, command, true)(); getResolveFunction(resolve, command, true)();
}); });
@ -568,15 +569,15 @@ import actionsheet from 'actionsheet';
const serverId = apiClient.serverInfo().Id; const serverId = apiClient.serverInfo().Id;
if (item.Type === 'Timer') { if (item.Type === 'Timer') {
import('recordingEditor').then(({default: recordingEditor}) => { import('./recordingcreator/recordingeditor').then((recordingEditor) => {
recordingEditor.show(item.Id, serverId).then(resolve, reject); recordingEditor.show(item.Id, serverId).then(resolve, reject);
}); });
} else if (item.Type === 'SeriesTimer') { } else if (item.Type === 'SeriesTimer') {
import('seriesRecordingEditor').then(({default: recordingEditor}) => { import('./recordingcreator/seriesrecordingeditor').then((recordingEditor) => {
recordingEditor.show(item.Id, serverId).then(resolve, reject); recordingEditor.show(item.Id, serverId).then(resolve, reject);
}); });
} else { } else {
import('metadataEditor').then(({default: metadataEditor}) => { import('./metadataEditor/metadataEditor').then((metadataEditor) => {
metadataEditor.show(item.Id, serverId).then(resolve, reject); metadataEditor.show(item.Id, serverId).then(resolve, reject);
}); });
} }
@ -585,7 +586,7 @@ import actionsheet from 'actionsheet';
function deleteItem(apiClient, item) { function deleteItem(apiClient, item) {
return new Promise(function (resolve, reject) { return new Promise(function (resolve, reject) {
import('deleteHelper').then(({default: deleteHelper}) => { import('../scripts/deleteHelper').then((deleteHelper) => {
deleteHelper.deleteItem({ deleteHelper.deleteItem({
item: item, item: item,
navigate: false navigate: false
@ -597,7 +598,7 @@ import actionsheet from 'actionsheet';
} }
function refresh(apiClient, item) { function refresh(apiClient, item) {
import('refreshDialog').then(({default: refreshDialog}) => { import('./refreshdialog/refreshdialog').then((refreshDialog) => {
new refreshDialog({ new refreshDialog({
itemIds: [item.Id], itemIds: [item.Id],
serverId: apiClient.serverInfo().Id, serverId: apiClient.serverInfo().Id,

View file

@ -1,5 +1,5 @@
import appHost from 'apphost'; import appHost from './apphost';
import globalize from 'globalize'; import globalize from '../scripts/globalize';
export function getDisplayName(item, options = {}) { export function getDisplayName(item, options = {}) {
if (!item) { if (!item) {

View file

@ -5,17 +5,18 @@
* @module components/itemMediaInfo/itemMediaInfo * @module components/itemMediaInfo/itemMediaInfo
*/ */
import dialogHelper from 'dialogHelper'; import dialogHelper from '../dialogHelper/dialogHelper';
import layoutManager from 'layoutManager'; import layoutManager from '../layoutManager';
import globalize from 'globalize'; import globalize from '../../scripts/globalize';
import loading from 'loading'; import connectionManager from 'jellyfin-apiclient';
import 'emby-select'; import loading from '../loading/loading';
import 'listViewStyle'; import '../../elements/emby-select/emby-select';
import 'paper-icon-button-light'; import '../listview/listview.css';
import 'css!./../formdialog'; import '../../elements/emby-button/emby-button';
import 'material-icons'; import '../../elements/emby-button/paper-icon-button-light';
import 'emby-button'; import '../formdialog.css';
import 'flexStyles'; import 'material-design-icons-iconfont';
import '../../assets/css/flexstyles.css';
function setMediaInfo(user, page, item) { function setMediaInfo(user, page, item) {
let html = item.MediaSources.map(version => { let html = item.MediaSources.map(version => {
@ -193,7 +194,7 @@ import 'flexStyles';
export function show(itemId, serverId) { export function show(itemId, serverId) {
loading.show(); loading.show();
return import('text!./itemMediaInfo.template.html').then(({default: template}) => { return import('./itemMediaInfo.template.html').then(({default: template}) => {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
loadMediaInfo(itemId, serverId, template).then(resolve, reject); loadMediaInfo(itemId, serverId, template).then(resolve, reject);
}); });

View file

@ -5,19 +5,20 @@
* @module components/itemidentifier/itemidentifier * @module components/itemidentifier/itemidentifier
*/ */
import dialogHelper from 'dialogHelper'; import dialogHelper from '../dialogHelper/dialogHelper';
import loading from 'loading'; import loading from '../loading/loading';
import globalize from 'globalize'; import connectionManager from 'jellyfin-apiclient';
import scrollHelper from 'scrollHelper'; import globalize from '../../scripts/globalize';
import layoutManager from 'layoutManager'; import scrollHelper from '../../scripts/scrollHelper';
import focusManager from 'focusManager'; import layoutManager from '../layoutManager';
import browser from 'browser'; import focusManager from '../focusManager';
import 'emby-input'; import browser from '../../scripts/browser';
import 'emby-checkbox'; import '../../elements/emby-input/emby-input';
import 'paper-icon-button-light'; import '../../elements/emby-checkbox/emby-checkbox';
import 'css!./../formdialog'; import '../../elements/emby-button/paper-icon-button-light';
import 'material-icons'; import '../formdialog.css';
import 'cardStyle'; import 'material-design-icons-iconfont';
import '../cardbuilder/card.css';
const enableFocusTransform = !browser.slow && !browser.edge; const enableFocusTransform = !browser.slow && !browser.edge;
@ -67,7 +68,7 @@ import 'cardStyle';
} }
if (!hasId && !lookupInfo.Name) { if (!hasId && !lookupInfo.Name) {
import('toast').then(({default: toast}) => { import('../toast/toast').then((toast) => {
toast(globalize.translate('PleaseEnterNameOrId')); toast(globalize.translate('PleaseEnterNameOrId'));
}); });
return; return;
@ -334,7 +335,7 @@ import 'cardStyle';
function showEditor(itemId) { function showEditor(itemId) {
loading.show(); loading.show();
return import('text!./itemidentifier.template.html').then(({default: template}) => { return import('./itemidentifier.template.html').then(({default: template}) => {
const apiClient = getApiClient(); const apiClient = getApiClient();
apiClient.getItem(apiClient.getCurrentUserId(), itemId).then(item => { apiClient.getItem(apiClient.getCurrentUserId(), itemId).then(item => {
@ -416,7 +417,7 @@ import 'cardStyle';
currentItem = null; currentItem = null;
currentItemType = itemType; currentItemType = itemType;
return import('text!./itemidentifier.template.html').then(({default: template}) => { return import('./itemidentifier.template.html').then(({default: template}) => {
const dialogOptions = { const dialogOptions = {
size: 'small', size: 'small',
removeOnClose: true, removeOnClose: true,

View file

@ -1,6 +1,6 @@
import playbackManager from 'playbackManager'; import playbackManager from './playback/playbackmanager';
import serverNotifications from 'serverNotifications'; import serverNotifications from '../scripts/serverNotifications';
import events from 'events'; import events from 'jellyfin-apiclient';
function onUserDataChanged(e, apiClient, userData) { function onUserDataChanged(e, apiClient, userData) {
const instance = this; const instance = this;

View file

@ -1,7 +1,7 @@
import appHost from './apphost'; import appHost from './apphost';
import browser from '../scripts/browser'; import browser from '../scripts/browser';
import { set, get } from '../scripts/settings/appSettings'; import { set, get } from '../scripts/settings/appSettings';
import events from 'events'; import events from 'jellyfin-apiclient';
function setLayout(instance, layout, selectedLayout) { function setLayout(instance, layout, selectedLayout) {
if (layout === selectedLayout) { if (layout === selectedLayout) {

View file

@ -5,11 +5,11 @@
* @module components/libraryoptionseditor/libraryoptionseditor * @module components/libraryoptionseditor/libraryoptionseditor
*/ */
import globalize from 'globalize'; import globalize from '../../scripts/globalize';
import dom from 'dom'; import dom from '../../scripts/dom';
import 'emby-checkbox'; import '../../elements/emby-checkbox/emby-checkbox';
import 'emby-select'; import '../../elements/emby-select/emby-select';
import 'emby-input'; import '../../elements/emby-input/emby-input';
function populateLanguages(parent) { function populateLanguages(parent) {
return ApiClient.getCultures().then(languages => { return ApiClient.getCultures().then(languages => {
@ -306,7 +306,7 @@ import 'emby-input';
} }
function showImageOptionsForType(type) { function showImageOptionsForType(type) {
import('imageoptionseditor').then(({default: ImageOptionsEditor}) => { import('../imageOptionsEditor/imageOptionsEditor').then(({default: ImageOptionsEditor}) => {
let typeOptions = getTypeOptions(currentLibraryOptions, type); let typeOptions = getTypeOptions(currentLibraryOptions, type);
if (!typeOptions) { if (!typeOptions) {
typeOptions = { typeOptions = {

View file

@ -5,16 +5,17 @@
* @module components/listview/listview * @module components/listview/listview
*/ */
import itemHelper from 'itemHelper'; import itemHelper from '../itemHelper';
import mediaInfo from 'mediaInfo'; import mediaInfo from '../mediainfo/mediainfo';
import indicators from 'indicators'; import indicators from '../indicators/indicators';
import layoutManager from 'layoutManager'; import connectionManager from 'jellyfin-apiclient';
import globalize from 'globalize'; import layoutManager from '../layoutManager';
import datetime from 'datetime'; import globalize from '../../scripts/globalize';
import cardBuilder from 'cardBuilder'; import datetime from '../../scripts/datetime';
import 'css!./listview'; import cardBuilder from '../cardbuilder/cardBuilder';
import 'emby-ratingbutton'; import './listview.css';
import 'emby-playstatebutton'; import '../../elements/emby-ratingbutton/emby-ratingbutton';
import '../../elements/emby-playstatebutton/emby-playstatebutton';
function getIndex(item, options) { function getIndex(item, options) {
if (options.index === 'disc') { if (options.index === 'disc') {

View file

@ -1,4 +1,4 @@
import 'css!./loading'; import './loading';
let loadingElem; let loadingElem;
let layer1; let layer1;

View file

@ -1,8 +1,8 @@
import dom from 'dom'; import dom from '../scripts/dom';
import browser from 'browser'; import browser from '../scripts/browser';
import events from 'events'; import events from 'jellyfin-apiclient';
import 'emby-tabs'; import '../elements/emby-tabs/emby-tabs';
import 'emby-button'; import '../elements/emby-button/emby-button';
/* eslint-disable indent */ /* eslint-disable indent */
@ -65,7 +65,7 @@ import 'emby-button';
} }
}; };
import('touchHelper').then(({default: TouchHelper}) => { import('../scripts/touchHelper').then((TouchHelper) => {
const touchHelper = new TouchHelper(view.parentNode.parentNode); const touchHelper = new TouchHelper(view.parentNode.parentNode);
events.on(touchHelper, 'swipeleft', onSwipeLeft); events.on(touchHelper, 'swipeleft', onSwipeLeft);

View file

@ -5,20 +5,20 @@
* @module components/mediaLibraryCreator/mediaLibraryCreator * @module components/mediaLibraryCreator/mediaLibraryCreator
*/ */
import loading from 'loading'; import loading from '../loading/loading';
import dialogHelper from 'dialogHelper'; import dialogHelper from '../dialogHelper/dialogHelper';
import dom from 'dom'; import dom from '../../scripts/dom';
import $ from 'jQuery'; import 'jquery';
import libraryoptionseditor from 'components/libraryoptionseditor/libraryoptionseditor'; import libraryoptionseditor from '../libraryoptionseditor/libraryoptionseditor';
import globalize from 'globalize'; import globalize from '../../scripts/globalize';
import 'emby-toggle'; import '../../elements/emby-button/emby-button';
import 'emby-input'; import '../../elements/emby-button/paper-icon-button-light';
import 'emby-select'; import '../../elements/emby-input/emby-input';
import 'paper-icon-button-light'; import '../../elements/emby-select/emby-select';
import 'listViewStyle'; import '../../elements/emby-toggle/emby-toggle';
import 'formDialogStyle'; import '../listview/listview.css';
import 'emby-button'; import '../formdialog.css';
import 'flexStyles'; import '../../assets/css/flexstyles.css';
function onAddLibrary() { function onAddLibrary() {
if (isCreating) { if (isCreating) {
@ -26,7 +26,7 @@ import 'flexStyles';
} }
if (pathInfos.length == 0) { if (pathInfos.length == 0) {
import('alert').then(({default: alert}) => { import('../alert').then((alert) => {
alert({ alert({
text: globalize.translate('PleaseAddAtLeastOneFolder'), text: globalize.translate('PleaseAddAtLeastOneFolder'),
type: 'error' type: 'error'
@ -54,7 +54,7 @@ import 'flexStyles';
loading.hide(); loading.hide();
dialogHelper.close(dlg); dialogHelper.close(dlg);
}, () => { }, () => {
import('toast').then(({default: toast}) => { import('../toast/toast').then((toast) => {
toast(globalize.translate('ErrorAddingMediaPathToVirtualFolder')); toast(globalize.translate('ErrorAddingMediaPathToVirtualFolder'));
}); });
@ -109,7 +109,7 @@ import 'flexStyles';
function onAddButtonClick() { function onAddButtonClick() {
const page = dom.parentWithClass(this, 'dlg-librarycreator'); const page = dom.parentWithClass(this, 'dlg-librarycreator');
import('directorybrowser').then(({default: directoryBrowser}) => { import('../directorybrowser/directorybrowser').then((directoryBrowser) => {
const picker = new directoryBrowser(); const picker = new directoryBrowser();
picker.show({ picker.show({
enableNetworkSharePath: true, enableNetworkSharePath: true,
@ -200,7 +200,7 @@ export class showEditor {
currentOptions = options; currentOptions = options;
currentResolve = resolve; currentResolve = resolve;
hasChanges = false; hasChanges = false;
import('text!./components/mediaLibraryCreator/mediaLibraryCreator.template.html').then(({default: template}) => { import('./mediaLibraryCreator.template.html').then(({default: template}) => {
const dlg = dialogHelper.createDialog({ const dlg = dialogHelper.createDialog({
size: 'small', size: 'small',
modal: false, modal: false,

View file

@ -5,18 +5,18 @@
* @module components/mediaLibraryEditor/mediaLibraryEditor * @module components/mediaLibraryEditor/mediaLibraryEditor
*/ */
import jQuery from 'jQuery'; import 'jquery';
import loading from 'loading'; import loading from '../loading/loading';
import dialogHelper from 'dialogHelper'; import dialogHelper from '../dialogHelper/dialogHelper';
import dom from 'dom'; import dom from '../../scripts/dom';
import libraryoptionseditor from 'components/libraryoptionseditor/libraryoptionseditor'; import libraryoptionseditor from '../libraryoptionseditor/libraryoptionseditor';
import globalize from 'globalize'; import globalize from '../../scripts/globalize';
import 'emby-button'; import '../../elements/emby-button/emby-button';
import 'listViewStyle'; import '../listview/listview.css';
import 'paper-icon-button-light'; import '../../elements/emby-button/paper-icon-button-light';
import 'formDialogStyle'; import '../formdialog.css';
import 'emby-toggle'; import '../../elements/emby-toggle/emby-toggle';
import 'flexStyles'; import '../../assets/css/flexstyles.css';
function onEditLibrary() { function onEditLibrary() {
if (isCreating) { if (isCreating) {
@ -47,7 +47,7 @@ import 'flexStyles';
hasChanges = true; hasChanges = true;
refreshLibraryFromServer(page); refreshLibraryFromServer(page);
}, () => { }, () => {
import('toast').then(({default: toast}) => { import('../toast/toast').then((toast) => {
toast(globalize.translate('ErrorAddingMediaPathToVirtualFolder')); toast(globalize.translate('ErrorAddingMediaPathToVirtualFolder'));
}); });
}); });
@ -62,7 +62,7 @@ import 'flexStyles';
hasChanges = true; hasChanges = true;
refreshLibraryFromServer(page); refreshLibraryFromServer(page);
}, () => { }, () => {
import('toast').then(({default: toast}) => { import('../toast/toast').then((toast) => {
toast(globalize.translate('ErrorAddingMediaPathToVirtualFolder')); toast(globalize.translate('ErrorAddingMediaPathToVirtualFolder'));
}); });
}); });
@ -72,7 +72,7 @@ import 'flexStyles';
const button = btnRemovePath; const button = btnRemovePath;
const virtualFolder = currentOptions.library; const virtualFolder = currentOptions.library;
import('confirm').then(({default: confirm}) => { import('../confirm/confirm').then(({default: confirm}) => {
confirm({ confirm({
title: globalize.translate('HeaderRemoveMediaLocation'), title: globalize.translate('HeaderRemoveMediaLocation'),
text: globalize.translate('MessageConfirmRemoveMediaLocation'), text: globalize.translate('MessageConfirmRemoveMediaLocation'),
@ -84,7 +84,7 @@ import 'flexStyles';
hasChanges = true; hasChanges = true;
refreshLibraryFromServer(dom.parentWithClass(button, 'dlg-libraryeditor')); refreshLibraryFromServer(dom.parentWithClass(button, 'dlg-libraryeditor'));
}, () => { }, () => {
import('toast').then(({default: toast}) => { import('../toast/toast').then((toast) => {
toast(globalize.translate('ErrorDefault')); toast(globalize.translate('ErrorDefault'));
}); });
}); });
@ -167,7 +167,7 @@ import 'flexStyles';
} }
function showDirectoryBrowser(context, originalPath, networkPath) { function showDirectoryBrowser(context, originalPath, networkPath) {
import('directorybrowser').then(({default: directoryBrowser}) => { import('../directorybrowser/directorybrowser').then((directoryBrowser) => {
const picker = new directoryBrowser(); const picker = new directoryBrowser();
picker.show({ picker.show({
enableNetworkSharePath: true, enableNetworkSharePath: true,
@ -215,7 +215,7 @@ export class showEditor {
currentOptions = options; currentOptions = options;
currentDeferred = deferred; currentDeferred = deferred;
hasChanges = false; hasChanges = false;
import('text!./components/mediaLibraryEditor/mediaLibraryEditor.template.html').then(({default: template}) => { import('./mediaLibraryEditor.template.html').then((template) => {
const dlg = dialogHelper.createDialog({ const dlg = dialogHelper.createDialog({
size: 'small', size: 'small',
modal: false, modal: false,

View file

@ -1,12 +1,12 @@
import datetime from 'datetime'; import datetime from '../../scripts/datetime';
import globalize from 'globalize'; import globalize from '../../scripts/globalize';
import appRouter from 'appRouter'; import appRouter from '../appRouter';
import itemHelper from 'itemHelper'; import itemHelper from '../itemHelper';
import indicators from 'indicators'; import indicators from '../indicators/indicators';
import 'material-icons'; import 'material-design-icons-iconfont';
import 'css!./mediainfo.css'; import './mediainfo.css';
import 'programStyles'; import '../guide/programs.css';
import 'emby-button'; import '../../elements/emby-button/emby-button';
/* eslint-disable indent */ /* eslint-disable indent */
function getTimerIndicator(item) { function getTimerIndicator(item) {

View file

@ -1,21 +1,22 @@
import dom from 'dom'; import dom from '../../scripts/dom';
import layoutManager from 'layoutManager'; import layoutManager from '../layoutManager';
import dialogHelper from 'dialogHelper'; import dialogHelper from '../dialogHelper/dialogHelper';
import datetime from 'datetime'; import datetime from '../../scripts/datetime';
import loading from 'loading'; import loading from '../loading/loading';
import focusManager from 'focusManager'; import focusManager from '../focusManager';
import globalize from 'globalize'; import connectionManager from 'jellyfin-apiclient';
import shell from 'shell'; import globalize from '../../scripts/globalize';
import 'emby-checkbox'; import shell from '../../scripts/shell';
import 'emby-input'; import '../../elements/emby-checkbox/emby-checkbox';
import 'emby-select'; import '../../elements/emby-input/emby-input';
import 'listViewStyle'; import '../../elements/emby-select/emby-select';
import 'emby-textarea'; import '../listview/listview.css';
import 'emby-button'; import '../../elements/emby-textarea/emby-textarea';
import 'paper-icon-button-light'; import '../../elements/emby-button/emby-button';
import 'css!./../formdialog'; import '../../elements/emby-button/paper-icon-button-light';
import 'clearButtonStyle'; import '../formdialog.css';
import 'flexStyles'; import '../../assets/css/clearbutton.css';
import '../../assets/css/flexstyles.css';
/* eslint-disable indent */ /* eslint-disable indent */
@ -35,7 +36,7 @@ import 'flexStyles';
function submitUpdatedItem(form, item) { function submitUpdatedItem(form, item) {
function afterContentTypeUpdated() { function afterContentTypeUpdated() {
import('toast').then(({default: toast}) => { import('../toast/toast').then(({default: toast}) => {
toast(globalize.translate('MessageItemSaved')); toast(globalize.translate('MessageItemSaved'));
}); });
@ -207,7 +208,7 @@ import 'flexStyles';
} }
function addElementToList(source, sortCallback) { function addElementToList(source, sortCallback) {
import('prompt').then(({default: prompt}) => { import('../prompt/prompt').then(({default: prompt}) => {
prompt({ prompt({
label: 'Value:' label: 'Value:'
}).then(function (text) { }).then(function (text) {
@ -225,7 +226,7 @@ import 'flexStyles';
} }
function editPerson(context, person, index) { function editPerson(context, person, index) {
import('personEditor').then(({default: personEditor}) => { import('./personEditor').then((personEditor) => {
personEditor.show(person).then(function (updatedPerson) { personEditor.show(person).then(function (updatedPerson) {
const isNew = index === -1; const isNew = index === -1;
@ -244,14 +245,14 @@ import 'flexStyles';
if (parentId) { if (parentId) {
reload(context, parentId, item.ServerId); reload(context, parentId, item.ServerId);
} else { } else {
import('appRouter').then(({default: appRouter}) => { import('../appRouter').then((appRouter) => {
appRouter.goHome(); appRouter.goHome();
}); });
} }
} }
function showMoreMenu(context, button, user) { function showMoreMenu(context, button, user) {
import('itemContextMenu').then(({default: itemContextMenu}) => { import('../itemContextMenu').then(({default: itemContextMenu}) => {
const item = currentItem; const item = currentItem;
itemContextMenu.show({ itemContextMenu.show({
@ -1020,7 +1021,7 @@ import 'flexStyles';
} }
function centerFocus(elem, horiz, on) { function centerFocus(elem, horiz, on) {
import('scrollHelper').then(({default: scrollHelper}) => { import('../../scripts/scrollHelper').then((scrollHelper) => {
const fn = on ? 'on' : 'off'; const fn = on ? 'on' : 'off';
scrollHelper.centerFocus[fn](elem, horiz); scrollHelper.centerFocus[fn](elem, horiz);
}); });
@ -1029,7 +1030,7 @@ import 'flexStyles';
function show(itemId, serverId, resolve, reject) { function show(itemId, serverId, resolve, reject) {
loading.show(); loading.show();
import('text!./metadataEditor.template.html').then(({default: template}) => { import('./metadataEditor.template.html').then(({default: template}) => {
const dialogOptions = { const dialogOptions = {
removeOnClose: true, removeOnClose: true,
scrollY: false scrollY: false
@ -1084,7 +1085,7 @@ import 'flexStyles';
return new Promise(function (resolve, reject) { return new Promise(function (resolve, reject) {
loading.show(); loading.show();
import('text!./metadataEditor.template.html').then(({default: template}) => { import('./metadataEditor.template.html').then(({default: template}) => {
elem.innerHTML = globalize.translateHtml(template, 'core'); elem.innerHTML = globalize.translateHtml(template, 'core');
elem.querySelector('.formDialogFooter').classList.remove('formDialogFooter'); elem.querySelector('.formDialogFooter').classList.remove('formDialogFooter');

View file

@ -1,15 +1,16 @@
import dialogHelper from 'dialogHelper';
import layoutManager from 'layoutManager'; import dialogHelper from '../dialogHelper/dialogHelper';
import globalize from 'globalize'; import layoutManager from '../layoutManager';
import 'paper-icon-button-light'; import globalize from '../../scripts/globalize';
import 'emby-input'; import '../../elements/emby-button/paper-icon-button-light';
import 'emby-select'; import '../../elements/emby-input/emby-input';
import 'css!./../formdialog'; import '../../elements/emby-select/emby-select';
import '../formdialog.css';
/* eslint-disable indent */ /* eslint-disable indent */
function centerFocus(elem, horiz, on) { function centerFocus(elem, horiz, on) {
import('scrollHelper').then(({default: scrollHelper}) => { import('../../scripts/scrollHelper').then((scrollHelper) => {
const fn = on ? 'on' : 'off'; const fn = on ? 'on' : 'off';
scrollHelper.centerFocus[fn](elem, horiz); scrollHelper.centerFocus[fn](elem, horiz);
}); });
@ -17,7 +18,7 @@ import 'css!./../formdialog';
function show(person) { function show(person) {
return new Promise(function (resolve, reject) { return new Promise(function (resolve, reject) {
import('text!./personEditor.template.html').then(({default: template}) => { import('./personEditor.template.html').then(({default: template}) => {
const dialogOptions = { const dialogOptions = {
removeOnClose: true, removeOnClose: true,
scrollY: false scrollY: false

View file

@ -1,3 +1,4 @@
.itemSelectionPanel { .itemSelectionPanel {
position: absolute; position: absolute;
bottom: 0; bottom: 0;

View file

@ -1,9 +1,10 @@
import browser from 'browser'; import browser from '../../scripts/browser';
import appHost from 'apphost'; import appHost from '../apphost';
import loading from 'loading'; import loading from '../loading/loading';
import globalize from 'globalize'; import connectionManager from 'jellyfin-apiclient';
import dom from 'dom'; import globalize from '../../scripts/globalize';
import 'css!./multiSelect'; import dom from '../../scripts/dom';
import './multiSelect.css';
/* eslint-disable indent */ /* eslint-disable indent */
@ -138,7 +139,7 @@ import 'css!./multiSelect';
function alertText(options) { function alertText(options) {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
import('alert').then(({default: alert}) => { import('../alert').then((alert) => {
alert(options).then(resolve, resolve); alert(options).then(resolve, resolve);
}); });
}); });
@ -154,7 +155,7 @@ import 'css!./multiSelect';
title = globalize.translate('HeaderDeleteItems'); title = globalize.translate('HeaderDeleteItems');
} }
import('confirm').then(({default: confirm}) => { import('../confirm/confirm').then((confirm) => {
confirm(msg, title).then(() => { confirm(msg, title).then(() => {
const promises = itemIds.map(itemId => { const promises = itemIds.map(itemId => {
apiClient.deleteItem(itemId); apiClient.deleteItem(itemId);
@ -229,7 +230,7 @@ import 'css!./multiSelect';
icon: 'refresh' icon: 'refresh'
}); });
import('actionsheet').then(({default: actionsheet}) => { import('../actionSheet/actionSheet').then((actionsheet) => {
actionsheet.show({ actionsheet.show({
items: menuItems, items: menuItems,
positionTo: e.target, positionTo: e.target,
@ -239,7 +240,7 @@ import 'css!./multiSelect';
switch (id) { switch (id) {
case 'addtocollection': case 'addtocollection':
import('collectionEditor').then(({default: collectionEditor}) => { import('../collectionEditor/collectionEditor').then((collectionEditor) => {
new collectionEditor({ new collectionEditor({
items: items, items: items,
serverId: serverId serverId: serverId
@ -249,7 +250,7 @@ import 'css!./multiSelect';
dispatchNeedsRefresh(); dispatchNeedsRefresh();
break; break;
case 'playlist': case 'playlist':
import('playlistEditor').then(({default: playlistEditor}) => { import('../playlisteditor/playlisteditor').then((laylistEditor) => {
new playlistEditor({ new playlistEditor({
items: items, items: items,
serverId: serverId serverId: serverId
@ -281,7 +282,7 @@ import 'css!./multiSelect';
dispatchNeedsRefresh(); dispatchNeedsRefresh();
break; break;
case 'refresh': case 'refresh':
import('refreshDialog').then(({default: refreshDialog}) => { import('../refreshdialog/refreshdialog').then((refreshDialog) => {
new refreshDialog({ new refreshDialog({
itemIds: items, itemIds: items,
serverId: serverId serverId: serverId
@ -317,7 +318,7 @@ import 'css!./multiSelect';
function combineVersions(apiClient, selection) { function combineVersions(apiClient, selection) {
if (selection.length < 2) { if (selection.length < 2) {
import('alert').then(({default: alert}) => { import('../alert').then((alert) => {
alert({ alert({
text: globalize.translate('PleaseSelectTwoItems') text: globalize.translate('PleaseSelectTwoItems')
@ -341,7 +342,7 @@ import 'css!./multiSelect';
} }
function showSelections(initialCard) { function showSelections(initialCard) {
import('emby-checkbox').then(() => { import('../../elements/emby-checkbox/emby-checkbox').then(() => {
const cards = document.querySelectorAll('.card'); const cards = document.querySelectorAll('.card');
for (let i = 0, length = cards.length; i < length; i++) { for (let i = 0, length = cards.length; i < length; i++) {
showSelection(cards[i], initialCard === cards[i]); showSelection(cards[i], initialCard === cards[i]);

View file

@ -1,7 +1,7 @@
import serverNotifications from 'serverNotifications'; import serverNotifications from '../../scripts/serverNotifications';
import playbackManager from 'playbackManager'; import playbackManager from '../playback/playbackmanager';
import events from 'events'; import events from 'jellyfin-apiclient';
import globalize from 'globalize'; import globalize from '../../scripts/globalize';
function onOneDocumentClick() { function onOneDocumentClick() {
document.removeEventListener('click', onOneDocumentClick); document.removeEventListener('click', onOneDocumentClick);

View file

@ -1,15 +1,16 @@
import datetime from 'datetime'; import datetime from '../../scripts/datetime';
import events from 'events'; import events from 'jellyfin-apiclient';
import browser from 'browser'; import browser from '../../scripts/browser';
import imageLoader from 'imageLoader'; import imageLoader from '../../scripts/imagehelper';
import layoutManager from 'layoutManager'; import layoutManager from '../layoutManager';
import playbackManager from 'playbackManager'; import playbackManager from '../playback/playbackmanager';
import nowPlayingHelper from 'nowPlayingHelper'; import nowPlayingHelper from '../playback/nowplayinghelper';
import appHost from 'apphost'; import appHost from '../apphost';
import dom from 'dom'; import dom from '../../scripts/dom';
import itemContextMenu from 'itemContextMenu'; import connectionManager from 'jellyfin-apiclient';
import 'paper-icon-button-light'; import itemContextMenu from '../itemContextMenu';
import 'emby-ratingbutton'; import '../../elements/emby-button/paper-icon-button-light';
import '../../elements/emby-ratingbutton/emby-ratingbutton';
/* eslint-disable indent */ /* eslint-disable indent */
@ -243,7 +244,7 @@ import 'emby-ratingbutton';
} }
function showRemoteControl() { function showRemoteControl() {
import('appRouter').then(({default: appRouter}) => { import('../appRouter').then(({default: appRouter}) => {
appRouter.showNowPlaying(); appRouter.showNowPlaying();
}); });
} }
@ -256,10 +257,10 @@ import 'emby-ratingbutton';
return new Promise(function (resolve, reject) { return new Promise(function (resolve, reject) {
Promise.all([ Promise.all([
import('appFooter'), import('../appFooter/appFooter'),
import('itemShortcuts'), import('../shortcuts'),
import('css!./nowPlayingBar.css'), import('./nowPlayingBar.css'),
import('emby-slider') import('../../elements/emby-slider/emby-slider')
]) ])
.then(([appfooter, itemShortcuts]) => { .then(([appfooter, itemShortcuts]) => {
const parentContainer = appfooter.element; const parentContainer = appfooter.element;

View file

@ -1,5 +1,5 @@
import appSettings from 'appSettings'; import appSettings from '../scripts/settings/appSettings';
import pluginManager from 'pluginManager'; import pluginManager from './pluginManager';
/* eslint-disable indent */ /* eslint-disable indent */
class PackageManager { class PackageManager {

View file

@ -1,9 +1,9 @@
import events from 'events'; import events from 'jellyfin-apiclient';
import playbackManager from 'playbackManager'; import playbackManager from './playbackmanager';
import dom from 'dom'; import dom from '../../scripts/dom';
import browser from 'browser'; import browser from '../../scripts/browser';
import 'css!./iconosd'; import './iconosd.css';
import 'material-icons'; import 'material-design-icons-iconfont';
let currentPlayer; let currentPlayer;
let osdElement; let osdElement;

View file

@ -1,7 +1,7 @@
import playbackManager from 'playbackManager'; import playbackManager from '../playback/playbackmanager';
import nowPlayingHelper from 'nowPlayingHelper'; import nowPlayingHelper from '../playback/nowplayinghelper';
import shell from 'shell'; import events from 'jellyfin-apiclient';
import events from 'events'; import connectionManager from 'jellyfin-apiclient';
/* eslint-disable indent */ /* eslint-disable indent */
// Reports media playback to the device for lock screen control // Reports media playback to the device for lock screen control

View file

@ -1,13 +1,14 @@
import events from 'events'; import events from 'jellyfin-apiclient';
import datetime from 'datetime'; import datetime from '../../scripts/datetime';
import appSettings from 'appSettings'; import appSettings from '../../scripts/settings/appSettings';
import itemHelper from 'itemHelper'; import itemHelper from '../itemHelper';
import pluginManager from 'pluginManager'; import pluginManager from '../pluginManager';
import PlayQueueManager from 'playQueueManager'; import PlayQueueManager from './playqueuemanager';
import * as userSettings from 'userSettings'; import * as userSettings from '../../scripts/settings/userSettings';
import globalize from 'globalize'; import globalize from '../../scripts/globalize';
import loading from 'loading'; import connectionManager from 'jellyfin-apiclient';
import appHost from 'apphost'; import loading from '../loading/loading';
import appHost from '../apphost';
import screenfull from 'screenfull'; import screenfull from 'screenfull';
function enableLocalPlaylistManagement(player) { function enableLocalPlaylistManagement(player) {
@ -619,7 +620,7 @@ function supportsDirectPlay(apiClient, item, mediaSource) {
} else if (mediaSource.Protocol === 'File') { } else if (mediaSource.Protocol === 'File') {
return new Promise(function (resolve, reject) { return new Promise(function (resolve, reject) {
// Determine if the file can be accessed directly // Determine if the file can be accessed directly
import('filesystem').then((filesystem) => { import('../../scripts/filesystem').then((filesystem) => {
const method = isFolderRip ? const method = isFolderRip ?
'directoryExists' : 'directoryExists' :
'fileExists'; 'fileExists';
@ -647,7 +648,7 @@ function validatePlaybackInfoResult(instance, result) {
} }
function showPlaybackInfoErrorMessage(instance, errorCode) { function showPlaybackInfoErrorMessage(instance, errorCode) {
import('alert').then(({ default: alert }) => { import('../alert').then(({ default: alert }) => {
alert({ alert({
text: globalize.translate(errorCode), text: globalize.translate(errorCode),
title: globalize.translate('HeaderPlaybackError') title: globalize.translate('HeaderPlaybackError')
@ -1161,7 +1162,7 @@ class PlaybackManager {
if (!brightnessOsdLoaded) { if (!brightnessOsdLoaded) {
brightnessOsdLoaded = true; brightnessOsdLoaded = true;
// TODO: Have this trigger an event instead to get the osd out of here // TODO: Have this trigger an event instead to get the osd out of here
import('brightnessOsd').then(); import('./brightnessosd').then();
} }
player.setBrightness(val); player.setBrightness(val);
} }
@ -3190,7 +3191,7 @@ class PlaybackManager {
}; };
if (appHost.supports('remotecontrol')) { if (appHost.supports('remotecontrol')) {
import('serverNotifications').then(({ default: serverNotifications }) => { import('../../scripts/serverNotifications').then((serverNotifications) => {
events.on(serverNotifications, 'ServerShuttingDown', self.setDefaultPlayerActive.bind(self)); events.on(serverNotifications, 'ServerShuttingDown', self.setDefaultPlayerActive.bind(self));
events.on(serverNotifications, 'ServerRestarting', self.setDefaultPlayerActive.bind(self)); events.on(serverNotifications, 'ServerRestarting', self.setDefaultPlayerActive.bind(self));
}); });

View file

@ -1,6 +1,7 @@
import playbackManager from 'playbackManager';
import layoutManager from 'layoutManager'; import playbackManager from './playbackmanager';
import events from 'events'; import layoutManager from '../layoutManager';
import events from 'jellyfin-apiclient';
let orientationLocked; let orientationLocked;

View file

@ -1,12 +1,12 @@
import appSettings from 'appSettings'; import appSettings from '../../scripts/settings/appSettings';
import events from 'events'; import events from 'jellyfin-apiclient';
import browser from 'browser'; import browser from '../../scripts/browser';
import loading from 'loading'; import loading from '../loading/loading';
import playbackManager from 'playbackManager'; import playbackManager from '../playback/playbackmanager';
import appRouter from 'appRouter'; import appRouter from '../appRouter';
import globalize from 'globalize'; import globalize from '../../scripts/globalize';
import appHost from 'apphost'; import appHost from '../apphost';
import * as autocast from 'autocast'; import { enable, isEnabled, supported } from '../../scripts/autocast';
function mirrorItem(info, player) { function mirrorItem(info, player) {
const item = info.item; const item = info.item;
@ -108,7 +108,7 @@ export function show(button) {
}; };
}); });
import('actionsheet').then(({default: actionsheet}) => { import('../actionSheet/actionSheet').then((actionsheet) => {
loading.hide(); loading.hide();
const menuOptions = { const menuOptions = {
@ -141,10 +141,10 @@ export function show(button) {
function showActivePlayerMenu(playerInfo) { function showActivePlayerMenu(playerInfo) {
Promise.all([ Promise.all([
import('dialogHelper'), import('../dialogHelper/dialogHelper'),
import('dialog'), import('../dialog/dialog'),
import('emby-checkbox'), import('../../elements/emby-checkbox/emby-checkbox'),
import('emby-button') import('../../elements/emby-button/emby-button')
]).then(([dialogHelper]) => { ]).then(([dialogHelper]) => {
showActivePlayerMenuInternal(dialogHelper, playerInfo); showActivePlayerMenuInternal(dialogHelper, playerInfo);
}); });
@ -152,7 +152,7 @@ function showActivePlayerMenu(playerInfo) {
function disconnectFromPlayer(currentDeviceName) { function disconnectFromPlayer(currentDeviceName) {
if (playbackManager.getSupportedCommands().indexOf('EndSession') !== -1) { if (playbackManager.getSupportedCommands().indexOf('EndSession') !== -1) {
import('dialog').then(({default: dialog}) => { import('../dialog/dialog').then(({default: dialog}) => {
const menuItems = []; const menuItems = [];
menuItems.push({ menuItems.push({
@ -222,9 +222,9 @@ function showActivePlayerMenuInternal(dialogHelper, playerInfo) {
html += '</div>'; html += '</div>';
if (autocast.supported()) { if (supported()) {
html += '<div><label class="checkboxContainer">'; html += '<div><label class="checkboxContainer">';
const checkedHtmlAC = autocast.isEnabled() ? ' checked' : ''; const checkedHtmlAC = isEnabled() ? ' checked' : '';
html += '<input type="checkbox" is="emby-checkbox" class="chkAutoCast"' + checkedHtmlAC + '/>'; html += '<input type="checkbox" is="emby-checkbox" class="chkAutoCast"' + checkedHtmlAC + '/>';
html += '<span>' + globalize.translate('EnableAutoCast') + '</span>'; html += '<span>' + globalize.translate('EnableAutoCast') + '</span>';
html += '</label></div>'; html += '</label></div>';
@ -285,7 +285,7 @@ function onMirrorChange() {
} }
function onAutoCastChange() { function onAutoCastChange() {
autocast.enable(this.checked); enable(this.checked);
} }
document.addEventListener('viewshow', function (e) { document.addEventListener('viewshow', function (e) {

View file

@ -1,7 +1,8 @@
import actionsheet from 'actionsheet'; import connectionManager from 'jellyfin-apiclient';
import playbackManager from 'playbackManager'; import actionsheet from '../actionSheet/actionSheet';
import globalize from 'globalize'; import playbackManager from '../playback/playbackmanager';
import qualityoptions from 'qualityoptions'; import globalize from '../../scripts/globalize';
import qualityoptions from '../qualityOptions';
function showQualityMenu(player, btn) { function showQualityMenu(player, btn) {
const videoStream = playbackManager.currentMediaSource(player).MediaStreams.filter(function (stream) { const videoStream = playbackManager.currentMediaSource(player).MediaStreams.filter(function (stream) {

View file

@ -1,5 +1,5 @@
import events from 'events'; import events from 'jellyfin-apiclient';
import playbackManager from 'playbackManager'; import playbackManager from '../playback/playbackmanager';
function transferPlayback(oldPlayer, newPlayer) { function transferPlayback(oldPlayer, newPlayer) {
const state = playbackManager.getPlayerState(oldPlayer); const state = playbackManager.getPlayerState(oldPlayer);

View file

@ -1,9 +1,10 @@
import events from 'events';
import playbackManager from 'playbackManager'; import events from 'jellyfin-apiclient';
import dom from 'dom'; import playbackManager from './playbackmanager';
import browser from 'browser'; import dom from '../../scripts/dom';
import 'css!./iconosd'; import browser from '../../scripts/browser';
import 'material-icons'; import './iconosd.css';
import 'material-design-icons-iconfont';
let currentPlayer; let currentPlayer;
let osdElement; let osdElement;

View file

@ -1,13 +1,14 @@
import browser from 'browser'; import browser from '../../scripts/browser';
import appSettings from 'appSettings'; import appSettings from '../../scripts/settings/appSettings';
import appHost from 'apphost'; import appHost from '../apphost';
import focusManager from 'focusManager'; import focusManager from '../focusManager';
import qualityoptions from 'qualityoptions'; import qualityoptions from '../qualityOptions';
import globalize from 'globalize'; import globalize from '../../scripts/globalize';
import loading from 'loading'; import loading from '../loading/loading';
import events from 'events'; import connectionManager from 'jellyfin-apiclient';
import 'emby-select'; import events from 'jellyfin-apiclient';
import 'emby-checkbox'; import '../../elements/emby-select/emby-select';
import '../../elements/emby-checkbox/emby-checkbox';
/* eslint-disable indent */ /* eslint-disable indent */
@ -243,7 +244,7 @@ import 'emby-checkbox';
saveUser(context, user, userSettings, apiClient).then(() => { saveUser(context, user, userSettings, apiClient).then(() => {
loading.hide(); loading.hide();
if (enableSaveConfirmation) { if (enableSaveConfirmation) {
import('toast').then(({default: toast}) => { import('../toast/toast').then((toast) => {
toast(globalize.translate('SettingsSaved')); toast(globalize.translate('SettingsSaved'));
}); });
} }
@ -274,7 +275,7 @@ import 'emby-checkbox';
} }
function embed(options, self) { function embed(options, self) {
return import('text!./playbackSettings.template.html').then(({default: template}) => { return import('./playbackSettings.template.html').then(({default: template}) => {
options.element.innerHTML = globalize.translateHtml(template, 'core'); options.element.innerHTML = globalize.translateHtml(template, 'core');
options.element.querySelector('form').addEventListener('submit', onSubmit.bind(self)); options.element.querySelector('form').addEventListener('submit', onSubmit.bind(self));

View file

@ -1,11 +1,12 @@
import events from 'events'; import connectionManager from 'jellyfin-apiclient';
import globalize from 'globalize'; import events from 'jellyfin-apiclient';
import playbackManager from 'playbackManager'; import '../../elements/emby-button/paper-icon-button-light';
import syncPlayManager from 'syncPlayManager'; import globalize from '../../scripts/globalize';
import playMethodHelper from 'playMethodHelper'; import layoutManager from '../layoutManager';
import layoutManager from 'layoutManager'; import playbackManager from '../playback/playbackmanager';
import 'paper-icon-button-light'; import playMethodHelper from '../playback/playmethodhelper';
import 'css!./playerstats'; import syncPlayManager from '../syncPlay/syncPlayManager';
import './playerstats.css';
/* eslint-disable indent */ /* eslint-disable indent */

View file

@ -1,17 +1,18 @@
import dom from 'dom'; import dom from '../../scripts/dom';
import dialogHelper from 'dialogHelper'; import dialogHelper from '../dialogHelper/dialogHelper';
import loading from 'loading'; import loading from '../loading/loading';
import layoutManager from 'layoutManager'; import layoutManager from '../layoutManager';
import playbackManager from 'playbackManager'; import playbackManager from '../playback/playbackmanager';
import * as userSettings from 'userSettings'; import connectionManager from 'jellyfin-apiclient';
import appRouter from 'appRouter'; import * as userSettings from '../../scripts/settings/userSettings';
import globalize from 'globalize'; import appRouter from '../appRouter';
import 'emby-input'; import globalize from '../../scripts/globalize';
import 'paper-icon-button-light'; import '../../elements/emby-button/emby-button';
import 'emby-select'; import '../../elements/emby-input/emby-input';
import 'material-icons'; import '../../elements/emby-button/paper-icon-button-light';
import 'css!./../formdialog'; import '../../elements/emby-select/emby-select';
import 'emby-button'; import 'material-design-icons-iconfont';
import '../formdialog.css';
/* eslint-disable indent */ /* eslint-disable indent */
@ -209,7 +210,7 @@ import 'emby-button';
} }
function centerFocus(elem, horiz, on) { function centerFocus(elem, horiz, on) {
import('scrollHelper').then((scrollHelper) => { import('../../scripts/scrollHelper').then((scrollHelper) => {
const fn = on ? 'on' : 'off'; const fn = on ? 'on' : 'off';
scrollHelper.centerFocus[fn](elem, horiz); scrollHelper.centerFocus[fn](elem, horiz);
}); });

View file

@ -1,7 +1,7 @@
import actionsheet from 'actionsheet'; import actionsheet from './actionSheet/actionSheet';
import datetime from 'datetime'; import datetime from '../scripts/datetime';
import playbackManager from 'playbackManager'; import playbackManager from './playback/playbackmanager';
import globalize from 'globalize'; import globalize from '../scripts/globalize';
export function show(options) { export function show(options) {
const item = options.item; const item = options.item;

View file

@ -1,5 +1,5 @@
import events from 'events'; import events from 'jellyfin-apiclient';
import globalize from 'globalize'; import globalize from '../scripts/globalize';
/* eslint-disable indent */ /* eslint-disable indent */
// TODO: replace with each plugin version // TODO: replace with each plugin version

View file

@ -1,14 +1,14 @@
import browser from 'browser'; import browser from '../../scripts/browser';
import dialogHelper from 'dialogHelper'; import dialogHelper from '../dialogHelper/dialogHelper';
import layoutManager from 'layoutManager'; import layoutManager from '../layoutManager';
import scrollHelper from 'scrollHelper'; import scrollHelper from '../../scripts/scrollHelper';
import globalize from 'globalize'; import globalize from '../../scripts/globalize';
import dom from 'dom'; import dom from '../../scripts/dom';
import 'material-icons'; import 'material-design-icons-iconfont';
import 'emby-button'; import '../../elements/emby-button/emby-button';
import 'paper-icon-button-light'; import '../../elements/emby-button/paper-icon-button-light';
import 'emby-input'; import '../../elements/emby-input/emby-input';
import 'formDialogStyle'; import '../formdialog.css';
/* eslint-disable indent */ /* eslint-disable indent */
export default (() => { export default (() => {
@ -117,7 +117,7 @@ export default (() => {
} else { } else {
return options => { return options => {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
import('text!./prompt.template.html').then(({default: template}) => { import('./prompt.template.html').then(({default: template}) => {
if (typeof options === 'string') { if (typeof options === 'string') {
options = { options = {
title: '', title: '',

View file

@ -1,4 +1,4 @@
import globalize from 'globalize'; import globalize from '../scripts/globalize';
export function getVideoQualityOptions(options) { export function getVideoQualityOptions(options) {
const maxStreamingBitrate = options.currentMaxBitrate; const maxStreamingBitrate = options.currentMaxBitrate;

View file

@ -1,8 +1,9 @@
import dom from 'dom'; import connectionManager from 'jellyfin-apiclient';
import recordingHelper from 'recordingHelper'; import dom from '../../scripts/dom';
import 'paper-icon-button-light'; import recordingHelper from './recordinghelper';
import 'emby-button'; import '../../elements/emby-button/paper-icon-button-light';
import 'css!./recordingfields'; import '../../elements/emby-button/emby-button';
import './recordingfields.css';
function onRecordingButtonClick(e) { function onRecordingButtonClick(e) {
const item = this.item; const item = this.item;

View file

@ -1,22 +1,22 @@
import dialogHelper from 'dialogHelper'; import dialogHelper from '../dialogHelper/dialogHelper';
import globalize from 'globalize'; import globalize from '../../scripts/globalize';
import layoutManager from 'layoutManager'; import layoutManager from '../layoutManager';
import mediaInfo from 'mediaInfo'; import mediaInfo from '../mediainfo/mediainfo';
import require from 'require'; import connectionManager from 'jellyfin-apiclient';
import loading from 'loading'; import loading from '../loading/loading';
import scrollHelper from 'scrollHelper'; import scrollHelper from '../../scripts/scrollHelper';
import datetime from 'datetime'; import datetime from '../../scripts/datetime';
import imageLoader from 'imageLoader'; import imageLoader from '../images/imageLoader';
import recordingFields from 'recordingFields'; import recordingFields from './recordingfields';
import events from 'events'; import events from 'jellyfin-apiclient';
import 'emby-checkbox'; import '../../elements/emby-button/emby-button';
import 'emby-button'; import '../../elements/emby-button/paper-icon-button-light';
import 'emby-collapse'; import '../../elements/emby-checkbox/emby-checkbox';
import 'emby-input'; import '../../elements/emby-collapse/emby-collapse';
import 'paper-icon-button-light'; import '../../elements/emby-input/emby-input';
import 'css!./../formdialog'; import '../formdialog.css';
import 'css!./recordingcreator'; import './recordingcreator.css';
import 'material-icons'; import 'material-design-icons-iconfont';
let currentDialog; let currentDialog;
let closeAction; let closeAction;
@ -68,7 +68,7 @@ function renderRecording(context, defaultTimer, program, apiClient, refreshRecor
const imageContainer = context.querySelector('.recordingDialog-imageContainer'); const imageContainer = context.querySelector('.recordingDialog-imageContainer');
if (imgUrl) { if (imgUrl) {
imageContainer.innerHTML = '<img src="' + require.toUrl('.').split('?')[0] + '/empty.png" data-src="' + imgUrl + '" class="recordingDialog-img lazy" />'; imageContainer.innerHTML = '<img src="./empty.png" data-src="' + imgUrl + '" class="recordingDialog-img lazy" />';
imageContainer.classList.remove('hide'); imageContainer.classList.remove('hide');
imageLoader.lazyChildren(imageContainer); imageLoader.lazyChildren(imageContainer);
@ -117,8 +117,8 @@ function reload(context, programId, serverId, refreshRecordingStateOnly) {
function executeCloseAction(action, programId, serverId) { function executeCloseAction(action, programId, serverId) {
if (action === 'play') { if (action === 'play') {
import('playbackManager').then(({ default: playbackManager }) => { import('../playback/playbackmanager').then(({ default: playbackManager }) => {
const apiClient = window.connectionManager.getApiClient(serverId); const apiClient = connectionManager.getApiClient(serverId);
apiClient.getLiveTvProgram(programId, apiClient.getCurrentUserId()).then(function (item) { apiClient.getLiveTvProgram(programId, apiClient.getCurrentUserId()).then(function (item) {
playbackManager.play({ playbackManager.play({
@ -137,7 +137,7 @@ function showEditor(itemId, serverId) {
loading.show(); loading.show();
import('text!./recordingcreator.template.html').then(({ default: template }) => { import('./recordingcreator.template.html').then(({ default: template }) => {
const dialogOptions = { const dialogOptions = {
removeOnClose: true, removeOnClose: true,
scrollY: false scrollY: false

View file

@ -1,17 +1,19 @@
import dialogHelper from 'dialogHelper';
import globalize from 'globalize'; import dialogHelper from '../dialogHelper/dialogHelper';
import layoutManager from 'layoutManager'; import globalize from '../../scripts/globalize';
import loading from 'loading'; import layoutManager from '../layoutManager';
import scrollHelper from 'scrollHelper'; import connectionManager from 'jellyfin-apiclient';
import 'scrollStyles'; import loading from '../loading/loading';
import 'emby-button'; import scrollHelper from '../../scripts/scrollHelper';
import 'emby-collapse'; import '../../assets/css/scrollstyles.css';
import 'emby-input'; import '../../elements/emby-button/emby-button';
import 'paper-icon-button-light'; import '../../elements/emby-collapse/emby-collapse';
import 'css!./../formdialog'; import '../../elements/emby-input/emby-input';
import 'css!./recordingcreator'; import '../../elements/emby-button/paper-icon-button-light';
import 'material-icons'; import '../formdialog.css';
import 'flexStyles'; import './recordingcreator.css';
import 'material-design-icons-iconfont';
import '../../assets/css/flexstyles.css';
let currentDialog; let currentDialog;
let recordingDeleted = false; let recordingDeleted = false;
@ -20,7 +22,7 @@ let currentServerId;
let currentResolve; let currentResolve;
function deleteTimer(apiClient, timerId) { function deleteTimer(apiClient, timerId) {
return import('recordingHelper').then(({ default: recordingHelper }) => { return import('./recordinghelper').then((recordingHelper) => {
recordingHelper.cancelTimerWithConfirmation(timerId, apiClient.serverId()); recordingHelper.cancelTimerWithConfirmation(timerId, apiClient.serverId());
}); });
} }
@ -89,7 +91,7 @@ function showEditor(itemId, serverId, options) {
options = options || {}; options = options || {};
currentResolve = resolve; currentResolve = resolve;
import('text!./recordingeditor.template.html').then(({default: template}) => { import('./recordingeditor.template.html').then(({default: template}) => {
const dialogOptions = { const dialogOptions = {
removeOnClose: true, removeOnClose: true,
scrollY: false scrollY: false

View file

@ -1,13 +1,14 @@
import globalize from 'globalize'; import globalize from '../../scripts/globalize';
import serverNotifications from 'serverNotifications'; import connectionManager from 'jellyfin-apiclient';
import loading from 'loading'; import serverNotifications from '../../scripts/serverNotifications';
import dom from 'dom'; import loading from '../loading/loading';
import recordingHelper from 'recordingHelper'; import dom from '../../scripts/dom';
import events from 'events'; import recordingHelper from './recordinghelper';
import 'paper-icon-button-light'; import events from 'jellyfin-apiclient';
import 'emby-button'; import '../../elements/emby-button/emby-button';
import 'css!./recordingfields'; import '../../elements/emby-button/paper-icon-button-light';
import 'flexStyles'; import './recordingfields.css';
import '../../assets/css/flexstyles.css';
/*eslint prefer-const: "error"*/ /*eslint prefer-const: "error"*/
@ -117,7 +118,7 @@ class RecordingEditor {
embed() { embed() {
const self = this; const self = this;
return new Promise(function (resolve, reject) { return new Promise(function (resolve, reject) {
import('text!./recordingfields.template.html').then(({default: template}) => { import('./recordingfields.template.html').then(({default: template}) => {
const options = self.options; const options = self.options;
const context = options.parent; const context = options.parent;
context.innerHTML = globalize.translateHtml(template, 'core'); context.innerHTML = globalize.translateHtml(template, 'core');
@ -162,7 +163,7 @@ function onManageRecordingClick(e) {
} }
const self = this; const self = this;
import('recordingEditor').then(({default: recordingEditor}) => { import('./recordingeditor').then((recordingEditor) => {
recordingEditor.show(self.TimerId, options.serverId, { recordingEditor.show(self.TimerId, options.serverId, {
enableCancel: false enableCancel: false
}).then(function () { }).then(function () {
@ -180,7 +181,7 @@ function onManageSeriesRecordingClick(e) {
const self = this; const self = this;
import('seriesRecordingEditor').then(({default: seriesRecordingEditor}) => { import('./seriesrecordingeditor').then((seriesRecordingEditor) => {
seriesRecordingEditor.show(self.SeriesTimerId, options.serverId, { seriesRecordingEditor.show(self.SeriesTimerId, options.serverId, {
enableCancel: false enableCancel: false
@ -225,7 +226,7 @@ function onRecordChange(e) {
} }
function sendToast(msg) { function sendToast(msg) {
import('toast').then(({default: toast}) => { import('../toast/toast').then((toast) => {
toast(msg); toast(msg);
}); });
} }

View file

@ -1,5 +1,6 @@
import globalize from 'globalize'; import globalize from '../../scripts/globalize';
import loading from 'loading'; import loading from '../loading/loading';
import connectionManager from 'jellyfin-apiclient';
/*eslint prefer-const: "error"*/ /*eslint prefer-const: "error"*/
@ -28,7 +29,7 @@ function changeRecordingToSeries(apiClient, timerId, programId, confirmTimerCanc
function cancelTimerWithConfirmation(timerId, serverId) { function cancelTimerWithConfirmation(timerId, serverId) {
return new Promise(function (resolve, reject) { return new Promise(function (resolve, reject) {
import('confirm').then(({ default: confirm }) => { import('../confirm/confirm').then((confirm) => {
confirm.default({ confirm.default({
text: globalize.translate('MessageConfirmRecordingCancellation'), text: globalize.translate('MessageConfirmRecordingCancellation'),
@ -48,7 +49,7 @@ function cancelTimerWithConfirmation(timerId, serverId) {
function cancelSeriesTimerWithConfirmation(timerId, serverId) { function cancelSeriesTimerWithConfirmation(timerId, serverId) {
return new Promise(function (resolve, reject) { return new Promise(function (resolve, reject) {
import('confirm').then(({ default: confirm }) => { import('../confirm/confirm').then((confirm) => {
confirm.default({ confirm.default({
text: globalize.translate('MessageConfirmRecordingCancellation'), text: globalize.translate('MessageConfirmRecordingCancellation'),
@ -61,7 +62,7 @@ function cancelSeriesTimerWithConfirmation(timerId, serverId) {
const apiClient = window.connectionManager.getApiClient(serverId); const apiClient = window.connectionManager.getApiClient(serverId);
apiClient.cancelLiveTvSeriesTimer(timerId).then(function () { apiClient.cancelLiveTvSeriesTimer(timerId).then(function () {
import('toast').then(({default: toast}) => { import('../toast/toast').then((toast) => {
toast(globalize.translate('SeriesCancelled')); toast(globalize.translate('SeriesCancelled'));
}); });
@ -98,14 +99,14 @@ function createRecording(apiClient, programId, isSeries) {
} }
function sendToast(msg) { function sendToast(msg) {
import('toast').then(({ default: toast }) => { import('../toast/toast').then((toast) => {
toast(msg); toast(msg);
}); });
} }
function showMultiCancellationPrompt(serverId, programId, timerId, timerStatus, seriesTimerId) { function showMultiCancellationPrompt(serverId, programId, timerId, timerStatus, seriesTimerId) {
return new Promise(function (resolve, reject) { return new Promise(function (resolve, reject) {
import('dialog').then(({ default: dialog }) => { import('../dialog/dialog').then((dialog) => {
const items = []; const items = [];
items.push({ items.push({
@ -150,7 +151,7 @@ function showMultiCancellationPrompt(serverId, programId, timerId, timerStatus,
loading.show(); loading.show();
apiClient.cancelLiveTvSeriesTimer(seriesTimerId).then(function () { apiClient.cancelLiveTvSeriesTimer(seriesTimerId).then(function () {
import('toast').then(({ default: toast }) => { import('../toast/toast').then((toast) => {
toast(globalize.translate('SeriesCancelled')); toast(globalize.translate('SeriesCancelled'));
}); });

View file

@ -1,19 +1,20 @@
import dialogHelper from 'dialogHelper'; import dialogHelper from '../dialogHelper/dialogHelper';
import globalize from 'globalize'; import globalize from '../../scripts/globalize';
import layoutManager from 'layoutManager'; import layoutManager from '../layoutManager';
import loading from 'loading'; import connectionManager from 'jellyfin-apiclient';
import scrollHelper from 'scrollHelper'; import loading from '../loading/loading';
import datetime from 'datetime'; import scrollHelper from '../../scripts/scrollHelper';
import 'scrollStyles'; import datetime from '../../scripts/datetime';
import 'emby-button'; import '../../assets/css/scrollstyles.css';
import 'emby-checkbox'; import '../../elements/emby-button/emby-button';
import 'emby-input'; import '../../elements/emby-checkbox/emby-checkbox';
import 'emby-select'; import '../../elements/emby-input/emby-input';
import 'paper-icon-button-light'; import '../../elements/emby-select/emby-select';
import 'css!./../formdialog'; import '../../elements/emby-button/paper-icon-button-light';
import 'css!./recordingcreator'; import '../formdialog.css';
import 'material-icons'; import './recordingcreator.css';
import 'flexStyles'; import 'material-design-icons-iconfont';
import '../../assets/css/flexstyles.css';
/*eslint prefer-const: "error"*/ /*eslint prefer-const: "error"*/
@ -25,7 +26,7 @@ let currentServerId;
function deleteTimer(apiClient, timerId) { function deleteTimer(apiClient, timerId) {
return new Promise(function (resolve, reject) { return new Promise(function (resolve, reject) {
import('recordingHelper').then(({ default: recordingHelper }) => { import('./recordinghelper').then((recordingHelper) => {
recordingHelper.cancelSeriesTimerWithConfirmation(timerId, apiClient.serverId()).then(resolve, reject); recordingHelper.cancelSeriesTimerWithConfirmation(timerId, apiClient.serverId()).then(resolve, reject);
}); });
}); });
@ -150,7 +151,7 @@ function embed(itemId, serverId, options) {
loading.show(); loading.show();
options = options || {}; options = options || {};
import('text!./seriesrecordingeditor.template.html').then(({ default: template }) => { import('./seriesrecordingeditor.template.html').then(({ default: template }) => {
const dialogOptions = { const dialogOptions = {
removeOnClose: true, removeOnClose: true,
scrollY: false scrollY: false
@ -192,7 +193,7 @@ function showEditor(itemId, serverId, options) {
loading.show(); loading.show();
options = options || {}; options = options || {};
import('text!./seriesrecordingeditor.template.html').then(({ default: template }) => { import('./seriesrecordingeditor.template.html').then(({ default: template }) => {
const dialogOptions = { const dialogOptions = {
removeOnClose: true, removeOnClose: true,
scrollY: false scrollY: false

View file

@ -1,15 +1,16 @@
import dom from 'dom'; import dom from '../../scripts/dom';
import dialogHelper from 'dialogHelper'; import dialogHelper from '../dialogHelper/dialogHelper';
import loading from 'loading'; import loading from '../loading/loading';
import layoutManager from 'layoutManager'; import layoutManager from '../layoutManager';
import globalize from 'globalize'; import connectionManager from 'jellyfin-apiclient';
import 'emby-input'; import globalize from '../../scripts/globalize';
import 'emby-checkbox'; import '../../elements/emby-input/emby-input';
import 'paper-icon-button-light'; import '../../elements/emby-button/emby-button';
import 'emby-select'; import '../../elements/emby-button/paper-icon-button-light';
import 'material-icons'; import '../../elements/emby-checkbox/emby-checkbox';
import 'css!./../formdialog'; import '../../elements/emby-select/emby-select';
import 'emby-button'; import 'material-design-icons-iconfont';
import '../formdialog.css';
/*eslint prefer-const: "error"*/ /*eslint prefer-const: "error"*/
@ -52,7 +53,7 @@ function getEditorHtml() {
} }
function centerFocus(elem, horiz, on) { function centerFocus(elem, horiz, on) {
import('scrollHelper').then(({default: scrollHelper}) => { import('../../scripts/scrollHelper').then((scrollHelper) => {
const fn = on ? 'on' : 'off'; const fn = on ? 'on' : 'off';
scrollHelper.centerFocus[fn](elem, horiz); scrollHelper.centerFocus[fn](elem, horiz);
}); });
@ -85,7 +86,7 @@ function onSubmit(e) {
dialogHelper.close(dlg); dialogHelper.close(dlg);
import('toast').then(({default: toast}) => { import('../toast/toast').then((toast) => {
toast(globalize.translate('RefreshQueued')); toast(globalize.translate('RefreshQueued'));
}); });

View file

@ -1,20 +1,21 @@
import datetime from 'datetime'; import datetime from '../../scripts/datetime';
import backdrop from 'backdrop'; import backdrop from '../backdrop/backdrop';
import listView from 'listView'; import listView from '../listview/listview';
import imageLoader from 'imageLoader'; import imageLoader from '../images/imageLoader';
import playbackManager from 'playbackManager'; import playbackManager from '../playback/playbackmanager';
import nowPlayingHelper from 'nowPlayingHelper'; import nowPlayingHelper from '../playback/nowplayinghelper';
import events from 'events'; import events from 'jellyfin-apiclient';
import appHost from 'apphost'; import connectionManager from 'jellyfin-apiclient';
import globalize from 'globalize'; import appHost from '../apphost';
import layoutManager from 'layoutManager'; import globalize from '../../scripts/globalize';
import * as userSettings from 'userSettings'; import layoutManager from '../layoutManager';
import cardBuilder from 'cardBuilder'; import * as userSettings from '../../scripts/settings/userSettings';
import itemContextMenu from 'itemContextMenu'; import cardBuilder from '../cardbuilder/cardBuilder';
import 'cardStyle'; import itemContextMenu from '../itemContextMenu';
import 'emby-itemscontainer'; import '../cardbuilder/card.css';
import 'css!./remotecontrol.css'; import '../../elements/emby-itemscontainer/emby-itemscontainer';
import 'emby-ratingbutton'; import './remotecontrol.css';
import '../../elements/emby-ratingbutton/emby-ratingbutton';
/*eslint prefer-const: "error"*/ /*eslint prefer-const: "error"*/
@ -37,7 +38,7 @@ function showAudioMenu(context, player, button, item) {
return menuItem; return menuItem;
}); });
import('actionsheet').then(({ default: actionsheet }) => { import('../actionSheet/actionSheet').then((actionsheet) => {
actionsheet.show({ actionsheet.show({
items: menuItems, items: menuItems,
positionTo: button, positionTo: button,
@ -69,7 +70,7 @@ function showSubtitleMenu(context, player, button, item) {
selected: currentIndex == null selected: currentIndex == null
}); });
import('actionsheet').then(({ default: actionsheet }) => { import('../actionSheet/actionSheet').then((actionsheet) => {
actionsheet.show({ actionsheet.show({
items: menuItems, items: menuItems,
positionTo: button, positionTo: button,
@ -693,7 +694,7 @@ export default function () {
} }
function savePlaylist() { function savePlaylist() {
import('playlistEditor').then(({ default: playlistEditor }) => { import('../playlisteditor/playlisteditor').then((playlistEditor) => {
getSaveablePlaylistItems().then(function (items) { getSaveablePlaylistItems().then(function (items) {
const serverId = items.length ? items[0].ServerId : ApiClient.serverId(); const serverId = items.length ? items[0].ServerId : ApiClient.serverId();
new playlistEditor({ new playlistEditor({
@ -863,7 +864,7 @@ export default function () {
}, currentPlayer); }, currentPlayer);
form.querySelector('input').value = ''; form.querySelector('input').value = '';
import('toast').then(({ default: toast }) => { import('../toast/toast').then((toast) => {
toast('Message sent.'); toast('Message sent.');
}); });
@ -882,7 +883,7 @@ export default function () {
}, currentPlayer); }, currentPlayer);
form.querySelector('input').value = ''; form.querySelector('input').value = '';
import('toast').then(({ default: toast }) => { import('../toast/toast').then((toast) => {
toast('Text sent.'); toast('Text sent.');
}); });

View file

@ -5,9 +5,9 @@
* @module components/scrollManager * @module components/scrollManager
*/ */
import dom from 'dom'; import dom from '../scripts/dom';
import browser from 'browser'; import browser from '../scripts/browser';
import layoutManager from 'layoutManager'; import layoutManager from './layoutManager';
/** /**
* Scroll time in ms. * Scroll time in ms.
@ -223,7 +223,7 @@ import layoutManager from 'layoutManager';
let parent = element.parentElement; let parent = element.parentElement;
while (parent) { while (parent) {
// Skip 'emby-scroller' because it scrolls by itself // Skip '../../elements/emby-scroller/emby-scroller' because it scrolls by itself
if (!parent.classList.contains('emby-scroller') && if (!parent.classList.contains('emby-scroller') &&
parent[nameScroll] > parent[nameClient] && parent.classList.contains(nameClass)) { parent[nameScroll] > parent[nameClient] && parent.classList.contains(nameClass)) {
return parent; return parent;

View file

@ -1,12 +1,12 @@
import layoutManager from 'layoutManager'; import layoutManager from '../layoutManager';
import globalize from 'globalize'; import globalize from '../../scripts/globalize';
import events from 'events'; import events from 'jellyfin-apiclient';
import browser from 'browser'; import browser from '../../scripts/browser';
import AlphaPicker from 'alphaPicker'; import AlphaPicker from '../alphaPicker/alphaPicker';
import 'emby-input'; import '../../elements/emby-input/emby-input';
import 'flexStyles'; import '../../assets/css/flexstyles.css';
import 'material-icons'; import 'material-design-icons-iconfont';
import 'css!./searchfields'; import './searchfields.css';
/* eslint-disable indent */ /* eslint-disable indent */
@ -61,7 +61,7 @@ import 'css!./searchfields';
} }
function embed(elem, instance, options) { function embed(elem, instance, options) {
import('text!./searchfields.template.html').then(({default: template}) => { import('./searchfields.template.html').then(({default: template}) => {
let html = globalize.translateHtml(template, 'core'); let html = globalize.translateHtml(template, 'core');
if (browser.tizen || browser.orsay) { if (browser.tizen || browser.orsay) {

View file

@ -1,10 +1,11 @@
import layoutManager from 'layoutManager'; import layoutManager from '../layoutManager';
import globalize from 'globalize'; import globalize from '../../scripts/globalize';
import cardBuilder from 'cardBuilder'; import connectionManager from 'jellyfin-apiclient';
import appRouter from 'appRouter'; import cardBuilder from '../cardbuilder/cardBuilder';
import 'emby-scroller'; import appRouter from '../appRouter';
import 'emby-itemscontainer'; import '../../elements/emby-scroller/emby-scroller';
import 'emby-button'; import '../../elements/emby-itemscontainer/emby-itemscontainer';
import '../../elements/emby-button/emby-button';
/* eslint-disable indent */ /* eslint-disable indent */
@ -584,7 +585,7 @@ import 'emby-button';
} }
function embed(elem, instance, options) { function embed(elem, instance, options) {
import('text!./searchresults.template.html').then(({default: template}) => { import('./searchresults.template.html').then(({default: template}) => {
if (!enableScrollX()) { if (!enableScrollX()) {
template = replaceAll(template, 'data-horizontal="true"', 'data-horizontal="false"'); template = replaceAll(template, 'data-horizontal="true"', 'data-horizontal="false"');
template = replaceAll(template, 'itemsContainer scrollSlider', 'itemsContainer scrollSlider vertical-wrap'); template = replaceAll(template, 'itemsContainer scrollSlider', 'itemsContainer scrollSlider vertical-wrap');

View file

@ -1,4 +1,4 @@
import globalize from 'globalize'; import globalize from '../scripts/globalize';
/** /**
* Helper for handling settings. * Helper for handling settings.

View file

@ -5,12 +5,13 @@
* @module components/shortcuts * @module components/shortcuts
*/ */
import playbackManager from 'playbackManager'; import playbackManager from './playback/playbackmanager';
import inputManager from 'inputManager'; import inputManager from '../scripts/inputManager';
import appRouter from 'appRouter'; import connectionManager from 'jellyfin-apiclient';
import globalize from 'globalize'; import appRouter from './appRouter';
import dom from 'dom'; import globalize from '../scripts/globalize';
import recordingHelper from 'recordingHelper'; import dom from '../scripts/dom';
import recordingHelper from './recordingcreator/recordinghelper';
function playAllFromHere(card, serverId, queue) { function playAllFromHere(card, serverId, queue) {
const parent = card.parentNode; const parent = card.parentNode;
@ -69,7 +70,8 @@ import recordingHelper from 'recordingHelper';
} }
function showProgramDialog(item) { function showProgramDialog(item) {
import('recordingCreator').then(({default:recordingCreator}) => { import('./recordingcreator/recordingcreator' +
'').then(({default:recordingCreator}) => {
recordingCreator.show(item.Id, item.ServerId); recordingCreator.show(item.Id, item.ServerId);
}); });
} }
@ -109,7 +111,7 @@ import recordingHelper from 'recordingHelper';
item.PlaylistItemId = elem ? elem.getAttribute('data-playlistitemid') : null; item.PlaylistItemId = elem ? elem.getAttribute('data-playlistitemid') : null;
} }
import('itemContextMenu').then(({default: itemContextMenu}) => { import('./itemContextMenu').then((itemContextMenu) => {
window.connectionManager.getApiClient(item.ServerId).getCurrentUser().then(user => { window.connectionManager.getApiClient(item.ServerId).getCurrentUser().then(user => {
itemContextMenu.show(Object.assign({ itemContextMenu.show(Object.assign({
item: item, item: item,
@ -153,7 +155,7 @@ import recordingHelper from 'recordingHelper';
function showPlayMenu(card, target) { function showPlayMenu(card, target) {
const item = getItemInfoFromCard(card); const item = getItemInfoFromCard(card);
import('playMenu').then(({default: playMenu}) => { import('./playmenu').then((playMenu) => {
playMenu.show({ playMenu.show({
item: item, item: item,
@ -163,7 +165,7 @@ import recordingHelper from 'recordingHelper';
} }
function sendToast(text) { function sendToast(text) {
import('toast').then(({default: toast}) => { import('./toast/toast').then((toast) => {
toast(text); toast(text);
}); });
} }
@ -269,7 +271,7 @@ import recordingHelper from 'recordingHelper';
} }
function addToPlaylist(item) { function addToPlaylist(item) {
import('playlistEditor').then(({default: playlistEditor}) => { import('./playlisteditor/playlisteditor').then((playlistEditor) => {
new playlistEditor().show({ new playlistEditor().show({
items: [item.Id], items: [item.Id],
serverId: item.ServerId serverId: item.ServerId
@ -294,16 +296,16 @@ import recordingHelper from 'recordingHelper';
if (item.Type === 'Timer') { if (item.Type === 'Timer') {
if (item.ProgramId) { if (item.ProgramId) {
import('recordingCreator').then(({default: recordingCreator}) => { import('./recordingcreator/recordingcreator').then((recordingCreator) => {
recordingCreator.show(item.ProgramId, serverId).then(resolve, reject); recordingCreator.show(item.ProgramId, serverId).then(resolve, reject);
}); });
} else { } else {
import('recordingEditor').then(({default: recordingEditor}) => { import('./recordingcreator/recordingeditor').then((recordingEditor) => {
recordingEditor.show(item.Id, serverId).then(resolve, reject); recordingEditor.show(item.Id, serverId).then(resolve, reject);
}); });
} }
} else { } else {
import('metadataEditor').then(({default: metadataEditor}) => { import('./metadataEditor/metadataEditor').then((metadataEditor) => {
metadataEditor.show(item.Id, serverId).then(resolve, reject); metadataEditor.show(item.Id, serverId).then(resolve, reject);
}); });
} }

View file

@ -2,16 +2,17 @@
* Image viewer component * Image viewer component
* @module components/slideshow/slideshow * @module components/slideshow/slideshow
*/ */
import dialogHelper from 'dialogHelper'; import dialogHelper from '../dialogHelper/dialogHelper';
import inputManager from 'inputManager'; import inputManager from '../../scripts/inputManager';
import layoutManager from 'layoutManager'; import connectionManager from 'jellyfin-apiclient';
import focusManager from 'focusManager'; import layoutManager from '../layoutManager';
import browser from 'browser'; import focusManager from '../focusManager';
import appHost from 'apphost'; import browser from '../../scripts/browser';
import dom from 'dom'; import appHost from '../apphost';
import 'css!./style'; import dom from '../../scripts/dom';
import 'material-icons'; import './style.css';
import 'paper-icon-button-light'; import 'material-design-icons-iconfont';
import '../../elements/emby-button/paper-icon-button-light';
/** /**
* Name of transition event. * Name of transition event.
@ -431,7 +432,7 @@ export default function (options) {
function download() { function download() {
const imageInfo = getCurrentImageInfo(); const imageInfo = getCurrentImageInfo();
import('fileDownloader').then(({default: fileDownloader}) => { import('../../scripts/fileDownloader').then((fileDownloader) => {
fileDownloader.download([imageInfo]); fileDownloader.download([imageInfo]);
}); });
} }

View file

@ -1,13 +1,13 @@
import dialogHelper from 'dialogHelper'; import dialogHelper from '../dialogHelper/dialogHelper';
import layoutManager from 'layoutManager'; import layoutManager from '../layoutManager';
import globalize from 'globalize'; import globalize from '../../scripts/globalize';
import * as userSettings from 'userSettings'; import * as userSettings from '../../scripts/settings/userSettings';
import 'emby-select'; import '../../elements/emby-select/emby-select';
import 'paper-icon-button-light'; import '../../elements/emby-button/paper-icon-button-light';
import 'material-icons'; import 'material-design-icons-iconfont';
import 'css!./../formdialog'; import '../formdialog.css';
import 'emby-button'; import '../../elements/emby-button/emby-button';
import 'flexStyles'; import '../../assets/css/flexstyles.css';
function onSubmit(e) { function onSubmit(e) {
e.preventDefault(); e.preventDefault();
@ -22,7 +22,7 @@ function initEditor(context, settings) {
} }
function centerFocus(elem, horiz, on) { function centerFocus(elem, horiz, on) {
import('scrollHelper').then(({default: scrollHelper}) => { import('../../scripts/scrollHelper').then((scrollHelper) => {
const fn = on ? 'on' : 'off'; const fn = on ? 'on' : 'off';
scrollHelper.centerFocus[fn](elem, horiz); scrollHelper.centerFocus[fn](elem, horiz);
}); });
@ -44,7 +44,7 @@ function saveValues(context, settingsKey) {
class SortMenu { class SortMenu {
show(options) { show(options) {
return new Promise(function (resolve, reject) { return new Promise(function (resolve, reject) {
import('text!./sortmenu.template.html').then(({default: template}) => { import('./sortmenu.template.html').then(({default: template}) => {
const dialogOptions = { const dialogOptions = {
removeOnClose: true, removeOnClose: true,
scrollY: false scrollY: false

View file

@ -1,19 +1,20 @@
import appHost from 'apphost'; import appHost from '../apphost';
import dialogHelper from 'dialogHelper'; import dialogHelper from '../dialogHelper/dialogHelper';
import layoutManager from 'layoutManager'; import layoutManager from '../layoutManager';
import globalize from 'globalize'; import globalize from '../../scripts/globalize';
import * as userSettings from 'userSettings'; import * as userSettings from '../../scripts/settings/userSettings';
import loading from 'loading'; import connectionManager from 'jellyfin-apiclient';
import focusManager from 'focusManager'; import loading from '../loading/loading';
import dom from 'dom'; import focusManager from '../focusManager';
import 'emby-select'; import dom from '../../scripts/dom';
import 'listViewStyle'; import '../../elements/emby-select/emby-select';
import 'paper-icon-button-light'; import '../listview/listview.css';
import 'css!./../formdialog'; import '../../elements/emby-button/paper-icon-button-light';
import 'material-icons'; import '../formdialog.css';
import 'css!./subtitleeditor'; import 'material-design-icons-iconfont';
import 'emby-button'; import './subtitleeditor.css';
import 'flexStyles'; import '../../elements/emby-button/emby-button';
import '../../assets/css/flexstyles.css';
let currentItem; let currentItem;
let hasChanges; let hasChanges;
@ -30,7 +31,7 @@ function downloadRemoteSubtitles(context, id) {
}).then(function () { }).then(function () {
hasChanges = true; hasChanges = true;
import('toast').then(({default: toast}) => { import('../toast/toast').then((toast) => {
toast(globalize.translate('MessageDownloadQueued')); toast(globalize.translate('MessageDownloadQueued'));
}); });
@ -41,7 +42,7 @@ function downloadRemoteSubtitles(context, id) {
function deleteLocalSubtitle(context, index) { function deleteLocalSubtitle(context, index) {
const msg = globalize.translate('MessageAreYouSureDeleteSubtitles'); const msg = globalize.translate('MessageAreYouSureDeleteSubtitles');
import('confirm').then(({default: confirm}) => { import('../confirm/confirm').then((confirm) => {
confirm({ confirm({
title: globalize.translate('ConfirmDeletion'), title: globalize.translate('ConfirmDeletion'),
@ -329,7 +330,7 @@ function showDownloadOptions(button, context, subtitleId) {
id: 'download' id: 'download'
}); });
import('actionsheet').then(({default: actionsheet}) => { import('../actionSheet/actionSheet').then((actionsheet) => {
actionsheet.show({ actionsheet.show({
items: items, items: items,
positionTo: button positionTo: button
@ -347,7 +348,7 @@ function showDownloadOptions(button, context, subtitleId) {
} }
function centerFocus(elem, horiz, on) { function centerFocus(elem, horiz, on) {
import('scrollHelper').then(({default: scrollHelper}) => { import('../../scripts/scrollHelper').then(({default: scrollHelper}) => {
const fn = on ? 'on' : 'off'; const fn = on ? 'on' : 'off';
scrollHelper.centerFocus[fn](elem, horiz); scrollHelper.centerFocus[fn](elem, horiz);
}); });
@ -431,7 +432,7 @@ function showEditor(itemId, serverId) {
loading.show(); loading.show();
return new Promise(function (resolve, reject) { return new Promise(function (resolve, reject) {
import('text!./subtitleeditor.template.html').then(({default: template}) => { import('./subtitleeditor.template.html').then(({default: template}) => {
showEditorInternal(itemId, serverId, template).then(resolve, reject); showEditorInternal(itemId, serverId, template).then(resolve, reject);
}); });
}); });

View file

@ -1,20 +1,21 @@
import globalize from 'globalize'; import globalize from '../../scripts/globalize';
import appHost from 'apphost'; import appHost from '../apphost';
import appSettings from 'appSettings'; import appSettings from '../../scripts/settings/appSettings';
import focusManager from 'focusManager'; import focusManager from '../focusManager';
import layoutManager from 'layoutManager'; import layoutManager from '../layoutManager';
import loading from 'loading'; import loading from '../loading/loading';
import subtitleAppearanceHelper from 'subtitleAppearanceHelper'; import connectionManager from 'jellyfin-apiclient';
import settingsHelper from 'settingsHelper'; import subtitleAppearanceHelper from './subtitleappearancehelper';
import dom from 'dom'; import settingsHelper from '../settingshelper';
import events from 'events'; import dom from '../../scripts/dom';
import 'listViewStyle'; import events from 'jellyfin-apiclient';
import 'emby-select'; import '../listview/listview.css';
import 'emby-slider'; import '../../elements/emby-select/emby-select';
import 'emby-input'; import '../../elements/emby-slider/emby-slider';
import 'emby-checkbox'; import '../../elements/emby-input/emby-input';
import 'flexStyles'; import '../../elements/emby-checkbox/emby-checkbox';
import 'css!./subtitlesettings'; import '../../assets/css/flexstyles.css';
import './subtitlesettings.css';
/** /**
* Subtitle settings. * Subtitle settings.
@ -87,7 +88,7 @@ function save(instance, context, userId, userSettings, apiClient, enableSaveConf
saveUser(context, user, userSettings, instance.appearanceKey, apiClient).then(function () { saveUser(context, user, userSettings, instance.appearanceKey, apiClient).then(function () {
loading.hide(); loading.hide();
if (enableSaveConfirmation) { if (enableSaveConfirmation) {
import('toast').then(({default: toast}) => { import('../toast/toast').then((toast) => {
toast(globalize.translate('SettingsSaved')); toast(globalize.translate('SettingsSaved'));
}); });
} }
@ -158,7 +159,7 @@ function hideSubtitlePreview(persistent) {
} }
function embed(options, self) { function embed(options, self) {
import('text!./subtitlesettings.template.html').then(({default: template}) => { import('./subtitlesettings.template.html').then(({default: template}) => {
options.element.classList.add('subtitlesettings'); options.element.classList.add('subtitlesettings');
options.element.innerHTML = globalize.translateHtml(template, 'core'); options.element.innerHTML = globalize.translateHtml(template, 'core');

View file

@ -1,7 +1,8 @@
import playbackManager from 'playbackManager';
import layoutManager from 'layoutManager'; import playbackManager from '../playback/playbackmanager';
import template from 'text!./subtitlesync.template.html'; import layoutManager from '../layoutManager';
import 'css!./subtitlesync'; import template from './subtitlesync.template.html';
import './subtitlesync.css';
let player; let player;
let subtitleSyncSlider; let subtitleSyncSlider;

View file

@ -1,11 +1,12 @@
import events from 'events'; import events from 'jellyfin-apiclient';
import playbackManager from 'playbackManager'; import connectionManager from 'jellyfin-apiclient';
import syncPlayManager from 'syncPlayManager'; import playbackManager from '../playback/playbackmanager';
import loading from 'loading'; import syncPlayManager from './syncPlayManager';
import toast from 'toast'; import loading from '../loading/loading';
import actionsheet from 'actionsheet'; import toast from '../toast/toast';
import globalize from 'globalize'; import actionsheet from '../actionSheet/actionSheet';
import playbackPermissionManager from 'playbackPermissionManager'; import globalize from '../../scripts/globalize';
import playbackPermissionManager from './playbackPermissionManager';
/** /**
* Gets active player id. * Gets active player id.
@ -158,7 +159,7 @@ events.on(syncPlayManager, 'enabled', function (e, enabled) {
* Shows a menu to handle SyncPlay groups. * Shows a menu to handle SyncPlay groups.
* @param {HTMLElement} button - Element where to place the menu. * @param {HTMLElement} button - Element where to place the menu.
*/ */
export function show (button) { export default function show (button) {
loading.show(); loading.show();
// TODO: should feature be disabled if playback permission is missing? // TODO: should feature be disabled if playback permission is missing?

View file

@ -3,11 +3,12 @@
* @module components/syncPlay/syncPlayManager * @module components/syncPlay/syncPlayManager
*/ */
import events from 'events'; import events from 'jellyfin-apiclient';
import playbackManager from 'playbackManager'; import connectionManager from 'jellyfin-apiclient';
import timeSyncManager from 'timeSyncManager'; import playbackManager from '../playback/playbackmanager';
import toast from 'toast'; import timeSyncManager from './timeSyncManager';
import globalize from 'globalize'; import toast from '../toast/toast';
import globalize from '../../scripts//globalize';
/** /**
* Waits for an event to be triggered on an object. An optional timeout can specified after which the promise is rejected. * Waits for an event to be triggered on an object. An optional timeout can specified after which the promise is rejected.

View file

@ -3,7 +3,8 @@
* @module components/syncPlay/timeSyncManager * @module components/syncPlay/timeSyncManager
*/ */
import events from 'events'; import events from 'jellyfin-apiclient';
import connectionManager from 'jellyfin-apiclient';
/** /**
* Time estimation * Time estimation

View file

@ -1,7 +1,7 @@
import backdrop from 'backdrop'; import backdrop from '../backdrop/backdrop';
import * as mainTabsManager from 'mainTabsManager'; import * as mainTabsManager from '../maintabsmanager';
import layoutManager from 'layoutManager'; import layoutManager from '../layoutManager';
import 'emby-tabs'; import '../../elements/emby-tabs/emby-tabs';
function onViewDestroy(e) { function onViewDestroy(e) {
const tabControllers = this.tabControllers; const tabControllers = this.tabControllers;

View file

@ -1,5 +1,6 @@
import playbackManager from 'playbackManager'; import playbackManager from './playback/playbackmanager';
import * as userSettings from 'userSettings'; import * as userSettings from '../scripts/settings/userSettings';
import connectionManager from 'jellyfin-apiclient';
let currentOwnerId; let currentOwnerId;
let currentThemeIds = []; let currentThemeIds = [];

View file

@ -1,4 +1,4 @@
import 'css!./toast'; import './toast';
function remove(elem) { function remove(elem) {
setTimeout(function () { setTimeout(function () {
@ -21,7 +21,7 @@ export default function (options) {
} }
const elem = document.createElement('div'); const elem = document.createElement('div');
elem.classList.add('toast'); elem.classList.add('../toast/toast');
elem.innerHTML = options.text; elem.innerHTML = options.text;
document.body.appendChild(elem); document.body.appendChild(elem);

View file

@ -1,16 +1,17 @@
import dialogHelper from 'dialogHelper'; import dialogHelper from './dialogHelper/dialogHelper';
import dom from 'dom'; import dom from '../scripts/dom';
import layoutManager from 'layoutManager'; import layoutManager from './layoutManager';
import globalize from 'globalize'; import connectionManager from 'jellyfin-apiclient';
import loading from 'loading'; import globalize from '../scripts/globalize';
import browser from 'browser'; import loading from './loading/loading';
import focusManager from 'focusManager'; import browser from '../scripts/browser';
import scrollHelper from 'scrollHelper'; import focusManager from './focusManager';
import 'material-icons'; import scrollHelper from '../scripts/scrollHelper';
import 'formDialogStyle'; import 'material-design-icons-iconfont';
import 'emby-button'; import './formdialog.css';
import 'emby-itemscontainer'; import '../elements/emby-button/emby-button';
import 'cardStyle'; import '../elements/emby-itemscontainer/emby-itemscontainer';
import './cardbuilder/card.css';
const enableFocusTransform = !browser.slow && !browser.edge; const enableFocusTransform = !browser.slow && !browser.edge;

View file

@ -1,13 +1,13 @@
import $ from 'jQuery'; import 'jquery';
import loading from 'loading'; import loading from '../loading/loading';
import globalize from 'globalize'; import globalize from '../../scripts/globalize';
import 'emby-checkbox'; import '../../elements/emby-checkbox/emby-checkbox';
import 'emby-input'; import '../../elements/emby-input/emby-input';
import 'listViewStyle'; import '../listview/listview.css';
import 'paper-icon-button-light'; import '../../elements/emby-button/paper-icon-button-light';
import 'emby-select'; import '../../elements/emby-select/emby-select';
import 'emby-button'; import '../../elements/emby-button/emby-button';
import 'flexStyles'; import '../../assets/css/flexstyles.css';
export default function (page, providerId, options) { export default function (page, providerId, options) {
function reload() { function reload() {

View file

@ -1,10 +1,10 @@
import $ from 'jQuery'; import 'jquery';
import loading from 'loading'; import loading from '../loading/loading';
import globalize from 'globalize'; import globalize from '../../scripts/globalize';
import 'emby-checkbox'; import '../../elements/emby-checkbox/emby-checkbox';
import 'emby-input'; import '../../elements/emby-input/emby-input';
import 'listViewStyle'; import '../listview/listview.css';
import 'paper-icon-button-light'; import '../../elements/emby-button/paper-icon-button-light';
export default function (page, providerId, options) { export default function (page, providerId, options) {
function getListingProvider(config, id) { function getListingProvider(config, id) {
@ -143,7 +143,7 @@ export default function (page, providerId, options) {
function onSelectPathClick(e) { function onSelectPathClick(e) {
const page = $(e.target).parents('.xmltvForm')[0]; const page = $(e.target).parents('.xmltvForm')[0];
import('directorybrowser').then(({default: directoryBrowser}) => { import('../directorybrowser/directorybrowser').then((directoryBrowser) => {
const picker = new directoryBrowser(); const picker = new directoryBrowser();
picker.show({ picker.show({
includeFiles: true, includeFiles: true,

View file

@ -1,14 +1,15 @@
import dom from 'dom'; import dom from '../../scripts/dom';
import playbackManager from 'playbackManager'; import playbackManager from '../playback/playbackmanager';
import events from 'events'; import connectionManager from 'jellyfin-apiclient';
import mediaInfo from 'mediaInfo'; import events from 'jellyfin-apiclient';
import layoutManager from 'layoutManager'; import mediaInfo from '../mediainfo/mediainfo';
import focusManager from 'focusManager'; import layoutManager from '../layoutManager';
import globalize from 'globalize'; import focusManager from '../focusManager';
import itemHelper from 'itemHelper'; import globalize from '../../scripts/globalize';
import 'css!./upnextdialog'; import itemHelper from '../itemHelper';
import 'emby-button'; import './upnextdialog.css';
import 'flexStyles'; import '../../elements/emby-button/emby-button';
import '../../assets/css/flexstyles.css';
/* eslint-disable indent */ /* eslint-disable indent */

Some files were not shown because too many files have changed in this diff Show more