From efa3ff17306b2c0e0eaeed9cd1f9c15a43f13902 Mon Sep 17 00:00:00 2001 From: vitorsemeano Date: Mon, 1 Apr 2019 23:50:09 +0100 Subject: [PATCH 01/12] module appSettings renamed --- src/components/{appsettings.js => appSettings.js} | 0 src/scripts/site.js | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) rename src/components/{appsettings.js => appSettings.js} (100%) diff --git a/src/components/appsettings.js b/src/components/appSettings.js similarity index 100% rename from src/components/appsettings.js rename to src/components/appSettings.js diff --git a/src/scripts/site.js b/src/scripts/site.js index 32c154b52d..9f5007fa78 100644 --- a/src/scripts/site.js +++ b/src/scripts/site.js @@ -844,7 +844,7 @@ var AppInfo = {}; define("toast", [componentsPath + "/toast/toast"], returnFirstDependency); define("scrollHelper", [componentsPath + "/scrollhelper"], returnFirstDependency); define("touchHelper", [componentsPath + "/touchhelper"], returnFirstDependency); - define("appSettings", [componentsPath + "/appsettings"], returnFirstDependency); + define("appSettings", [componentsPath + "/appSettings"], returnFirstDependency); define("userSettings", [componentsPath + "/usersettings/usersettings"], returnFirstDependency); define("userSettingsBuilder", [componentsPath + "/usersettings/usersettingsbuilder", "layoutManager", "browser"], getSettingsBuilder); define("material-icons", ["css!css/material-icons/style"], returnFirstDependency); From b293f6e0f974900329794f3f0121e80f0d688b70 Mon Sep 17 00:00:00 2001 From: vitorsemeano Date: Tue, 2 Apr 2019 00:01:33 +0100 Subject: [PATCH 02/12] multiple modules resolution --- .../{credentials.js => credentialprovider.js} | 0 .../cardbuilder/{cardbuilder.js => cardBuilder.js} | 0 src/components/cardbuilder/roundcard.css | 7 ------- src/components/{focusmanager.js => focusManager.js} | 0 src/components/viewManager/viewManager.js | 10 +++++----- src/scripts/site.js | 10 ++++------ 6 files changed, 9 insertions(+), 18 deletions(-) rename src/bower_components/apiclient/{credentials.js => credentialprovider.js} (100%) rename src/components/cardbuilder/{cardbuilder.js => cardBuilder.js} (100%) delete mode 100644 src/components/cardbuilder/roundcard.css rename src/components/{focusmanager.js => focusManager.js} (100%) diff --git a/src/bower_components/apiclient/credentials.js b/src/bower_components/apiclient/credentialprovider.js similarity index 100% rename from src/bower_components/apiclient/credentials.js rename to src/bower_components/apiclient/credentialprovider.js diff --git a/src/components/cardbuilder/cardbuilder.js b/src/components/cardbuilder/cardBuilder.js similarity index 100% rename from src/components/cardbuilder/cardbuilder.js rename to src/components/cardbuilder/cardBuilder.js diff --git a/src/components/cardbuilder/roundcard.css b/src/components/cardbuilder/roundcard.css deleted file mode 100644 index d0bd950972..0000000000 --- a/src/components/cardbuilder/roundcard.css +++ /dev/null @@ -1,7 +0,0 @@ -.card-round:focus > .cardBox-focustransform { - transform: scale(1.26, 1.26); -} - -.cardImageContainer-round, .cardImage-round { - border-radius: 1000px; -} diff --git a/src/components/focusmanager.js b/src/components/focusManager.js similarity index 100% rename from src/components/focusmanager.js rename to src/components/focusManager.js diff --git a/src/components/viewManager/viewManager.js b/src/components/viewManager/viewManager.js index 606c7e98c1..f594e446a2 100644 --- a/src/components/viewManager/viewManager.js +++ b/src/components/viewManager/viewManager.js @@ -1,10 +1,10 @@ -define(['viewcontainer', 'focusManager', 'queryString', 'layoutManager'], function (viewcontainer, focusManager, queryString, layoutManager) { +define(['viewContainer', 'focusManager', 'queryString', 'layoutManager'], function (viewContainer, focusManager, queryString, layoutManager) { 'use strict'; var currentView; var dispatchPageEvents; - viewcontainer.setOnBeforeChange(function (newView, isRestored, options) { + viewContainer.setOnBeforeChange(function (newView, isRestored, options) { var lastView = currentView; if (lastView) { @@ -125,7 +125,7 @@ define(['viewcontainer', 'focusManager', 'queryString', 'layoutManager'], functi function resetCachedViews() { // Reset all cached views whenever the skin changes - viewcontainer.reset(); + viewContainer.reset(); } document.addEventListener('skinunload', resetCachedViews); @@ -146,7 +146,7 @@ define(['viewcontainer', 'focusManager', 'queryString', 'layoutManager'], functi return; } - viewcontainer.loadView(options).then(function (view) { + viewContainer.loadView(options).then(function (view) { onViewChange(view, options); }); @@ -163,7 +163,7 @@ define(['viewcontainer', 'focusManager', 'queryString', 'layoutManager'], functi currentView.activeElement = document.activeElement; } - return viewcontainer.tryRestoreView(options).then(function (view) { + return viewContainer.tryRestoreView(options).then(function (view) { onViewChanging(); onViewChange(view, options, true); diff --git a/src/scripts/site.js b/src/scripts/site.js index 9f5007fa78..84a87223e7 100644 --- a/src/scripts/site.js +++ b/src/scripts/site.js @@ -687,7 +687,7 @@ var AppInfo = {}; humanedate: "components/humanedate", libraryBrowser: "scripts/librarybrowser", events: apiClientBowerPath + "/events", - credentialprovider: apiClientBowerPath + "/credentials", + credentialprovider: apiClientBowerPath + "/credentialprovider", connectionManagerFactory: bowerPath + "/apiclient/connectionmanager", visibleinviewport: componentsPath + "/visibleinviewport", browserdeviceprofile: componentsPath + "/browserdeviceprofile", @@ -696,7 +696,7 @@ var AppInfo = {}; qualityoptions: componentsPath + "/qualityoptions", hammer: bowerPath + "/hammerjs/hammer.min", page: "thirdparty/page", - focusManager: componentsPath + "/focusmanager", + focusManager: componentsPath + "/focusManager", datetime: componentsPath + "/datetime", globalize: componentsPath + "/globalize", itemHelper: componentsPath + "/itemhelper", @@ -784,9 +784,8 @@ var AppInfo = {}; define("refreshDialog", [componentsPath + "/refreshdialog/refreshdialog"], returnFirstDependency); define("backdrop", [componentsPath + "/backdrop/backdrop"], returnFirstDependency); define("fetchHelper", [componentsPath + "/fetchhelper"], returnFirstDependency); - define("roundCardStyle", ["cardStyle", "css!" + componentsPath + "/cardbuilder/roundcard"], returnFirstDependency); define("cardStyle", ["css!" + componentsPath + "/cardbuilder/card"], returnFirstDependency); - define("cardBuilder", [componentsPath + "/cardbuilder/cardbuilder"], returnFirstDependency); + define("cardBuilder", [componentsPath + "/cardbuilder/cardBuilder"], returnFirstDependency); define("peoplecardbuilder", [componentsPath + "/cardbuilder/peoplecardbuilder"], returnFirstDependency); define("chaptercardbuilder", [componentsPath + "/cardbuilder/chaptercardbuilder"], returnFirstDependency); define("flexStyles", ["css!" + componentsPath + "/flexstyles"], returnFirstDependency); @@ -831,7 +830,6 @@ var AppInfo = {}; define("viewSettings", [componentsPath + "/viewsettings/viewsettings"], returnFirstDependency); define("filterMenu", [componentsPath + "/filtermenu/filtermenu"], returnFirstDependency); define("sortMenu", [componentsPath + "/sortmenu/sortmenu"], returnFirstDependency); - define("connectionmanager", [apiClientBowerPath + "/connectionmanager"]); define("serversync", [apiClientBowerPath + "/sync/serversync"], returnFirstDependency); define("multiserversync", [apiClientBowerPath + "/sync/multiserversync"], returnFirstDependency); define("mediasync", [apiClientBowerPath + "/sync/mediasync"], returnFirstDependency); @@ -854,7 +852,7 @@ var AppInfo = {}; define("imageUploader", [componentsPath + "/imageuploader/imageuploader"], returnFirstDependency); define("navdrawer", ["components/navdrawer/navdrawer"], returnFirstDependency); define("htmlMediaHelper", [componentsPath + "/htmlMediaHelper"], returnFirstDependency); - define("viewcontainer", ["components/viewContainer"], returnFirstDependency); + define("viewContainer", ["components/viewContainer"], returnFirstDependency); define("queryString", [bowerPath + "/query-string/index"], function () { return queryString; }); From 12f8cf10d56ea91f6954724a06d6948d4127bff9 Mon Sep 17 00:00:00 2001 From: vitorsemeano Date: Tue, 2 Apr 2019 22:10:22 +0100 Subject: [PATCH 03/12] deuglify viewContainer.js module --- src/components/viewContainer.js | 278 +++++++++++++++++++++++++------- 1 file changed, 216 insertions(+), 62 deletions(-) diff --git a/src/components/viewContainer.js b/src/components/viewContainer.js index 4c02ba3c6e..67277ddca7 100644 --- a/src/components/viewContainer.js +++ b/src/components/viewContainer.js @@ -1,121 +1,275 @@ -define(["browser", "dom", "layoutManager", "css!components/viewManager/viewContainer"], function(browser, dom, layoutManager) { +define(["browser", "dom", "layoutManager", "css!components/viewManager/viewContainer"], function (browser, dom, layoutManager) { "use strict"; function setControllerClass(view, options) { - if (options.controllerFactory) return Promise.resolve(); + if (options.controllerFactory) { + return Promise.resolve(); + } + var controllerUrl = view.getAttribute("data-controller"); - return controllerUrl ? (0 === controllerUrl.indexOf("__plugin/") && (controllerUrl = controllerUrl.substring("__plugin/".length)), controllerUrl = Dashboard.getConfigurationResourceUrl(controllerUrl), getRequirePromise([controllerUrl]).then(function(ControllerFactory) { - options.controllerFactory = ControllerFactory - })) : Promise.resolve() + + if (controllerUrl) { + if (0 === controllerUrl.indexOf("__plugin/")) { + controllerUrl = controllerUrl.substring("__plugin/".length); + } + + controllerUrl = Dashboard.getConfigurationResourceUrl(controllerUrl); + return getRequirePromise([controllerUrl]).then(function (ControllerFactory) { + options.controllerFactory = ControllerFactory; + }); + } + + return Promise.resolve(); } function getRequirePromise(deps) { - return new Promise(function(resolve, reject) { - require(deps, resolve) - }) + return new Promise(function (resolve, reject) { + require(deps, resolve); + }); } function loadView(options) { if (!options.cancel) { - var selected = selectedPageIndex, - previousAnimatable = -1 === selected ? null : allPages[selected], - pageIndex = selected + 1; - pageIndex >= pageContainerCount && (pageIndex = 0); - var isPluginpage = -1 !== options.url.toLowerCase().indexOf("/configurationpage"), - newViewInfo = normalizeNewView(options, isPluginpage), - newView = newViewInfo.elem, - dependencies = "string" == typeof newView ? null : newView.getAttribute("data-require"); - return dependencies = dependencies ? dependencies.split(",") : [], isPluginpage && dependencies.push("legacy/dashboard"), newViewInfo.hasjQuerySelect && dependencies.push("legacy/selectmenu"), newViewInfo.hasjQueryChecked && dependencies.push("fnchecked"), newViewInfo.hasjQuery && dependencies.push("jQuery"), (isPluginpage || newView.classList && newView.classList.contains("type-interior")) && dependencies.push("dashboardcss"), new Promise(function(resolve, reject) { + var selected = selectedPageIndex; + var previousAnimatable = -1 === selected ? null : allPages[selected]; + var pageIndex = selected + 1; + + if (pageIndex >= pageContainerCount) { + pageIndex = 0; + } + + var isPluginpage = -1 !== options.url.toLowerCase().indexOf("/configurationpage"); + var newViewInfo = normalizeNewView(options, isPluginpage); + var newView = newViewInfo.elem; + var dependencies = "string" == typeof newView ? null : newView.getAttribute("data-require"); + dependencies = dependencies ? dependencies.split(",") : []; + + if (isPluginpage) { + dependencies.push("legacy/dashboard"); + } + + if (newViewInfo.hasjQuerySelect) { + dependencies.push("legacy/selectmenu"); + } + + if (newViewInfo.hasjQueryChecked) { + dependencies.push("fnchecked"); + } + + if (newViewInfo.hasjQuery) { + dependencies.push("jQuery"); + } + + if (isPluginpage || newView.classList && newView.classList.contains("type-interior")) { + dependencies.push("dashboardcss"); + } + + return new Promise(function (resolve, reject) { dependencies.join(","); - require(dependencies, function() { + + require(dependencies, function () { var currentPage = allPages[pageIndex]; - currentPage && triggerDestroy(currentPage); + + if (currentPage) { + triggerDestroy(currentPage); + } + var view = newView; - "string" == typeof view && (view = document.createElement("div"), view.innerHTML = newView), view.classList.add("mainAnimatedPage"), currentPage ? newViewInfo.hasScript && window.$ ? (view = $(view).appendTo(mainAnimatedPages)[0], mainAnimatedPages.removeChild(currentPage)) : mainAnimatedPages.replaceChild(view, currentPage) : newViewInfo.hasScript && window.$ ? view = $(view).appendTo(mainAnimatedPages)[0] : mainAnimatedPages.appendChild(view), options.type && view.setAttribute("data-type", options.type); + + if ("string" == typeof view) { + view = document.createElement("div"); + view.innerHTML = newView; + } + + view.classList.add("mainAnimatedPage"); + + if (currentPage) { + if (newViewInfo.hasScript && window.$) { + view = $(view).appendTo(mainAnimatedPages)[0]; + mainAnimatedPages.removeChild(currentPage); + } else { + mainAnimatedPages.replaceChild(view, currentPage); + } + } else { + if (newViewInfo.hasScript && window.$) { + view = $(view).appendTo(mainAnimatedPages)[0]; + } else { + mainAnimatedPages.appendChild(view); + } + } + + if (options.type) { + view.setAttribute("data-type", options.type); + } + var properties = []; - options.fullscreen && properties.push("fullscreen"), properties.length && view.setAttribute("data-properties", properties.join(",")); - allPages[pageIndex] = view, setControllerClass(view, options).then(function() { - onBeforeChange && onBeforeChange(view, !1, options), beforeAnimate(allPages, pageIndex, selected), selectedPageIndex = pageIndex, currentUrls[pageIndex] = options.url, !options.cancel && previousAnimatable && afterAnimate(allPages, pageIndex), window.$ && ($.mobile = $.mobile || {}, $.mobile.activePage = view), resolve(view) - }) - }) - }) + + if (options.fullscreen) { + properties.push("fullscreen"); + } + + if (properties.length) { + view.setAttribute("data-properties", properties.join(",")); + } + + allPages[pageIndex] = view; + setControllerClass(view, options).then(function () { + if (onBeforeChange) { + onBeforeChange(view, false, options); + } + + beforeAnimate(allPages, pageIndex, selected); + selectedPageIndex = pageIndex; + currentUrls[pageIndex] = options.url; + + if (!options.cancel && previousAnimatable) { + afterAnimate(allPages, pageIndex); + } + + if (window.$) { + $.mobile = $.mobile || {}; + $.mobile.activePage = view; + } + + resolve(view); + }); + }); + }); } } function replaceAll(str, find, replace) { - return str.split(find).join(replace) + return str.split(find).join(replace); } function parseHtml(html, hasScript) { - hasScript && (html = replaceAll(html, "\x3c!----\x3e", "<\/script>")); + if (hasScript) { + html = replaceAll(html, "\x3c!----\x3e", "<\/script>"); + } + var wrapper = document.createElement("div"); - return wrapper.innerHTML = html, wrapper.querySelector('div[data-role="page"]') + wrapper.innerHTML = html; + return wrapper.querySelector('div[data-role="page"]'); } function normalizeNewView(options, isPluginpage) { var viewHtml = options.view; - if (-1 === viewHtml.indexOf('data-role="page"')) return viewHtml; - var hasScript = -1 !== viewHtml.indexOf(" Date: Tue, 2 Apr 2019 23:14:16 +0100 Subject: [PATCH 04/12] deuglify dlnaprofile.js --- src/scripts/dlnaprofile.js | 850 ++++++++++++++++++++++++++++--------- 1 file changed, 654 insertions(+), 196 deletions(-) diff --git a/src/scripts/dlnaprofile.js b/src/scripts/dlnaprofile.js index 026c228d2d..530e456018 100644 --- a/src/scripts/dlnaprofile.js +++ b/src/scripts/dlnaprofile.js @@ -1,371 +1,829 @@ -define(["jQuery", "loading", "fnchecked", "emby-select", "emby-button", "emby-input", "emby-checkbox", "listViewStyle", "emby-button"], function($, loading) { +define(["jQuery", "loading", "fnchecked", "emby-select", "emby-button", "emby-input", "emby-checkbox", "listViewStyle", "emby-button"], function ($, loading) { "use strict"; function loadProfile(page) { loading.show(); - var promise1 = getProfile(), - promise2 = ApiClient.getUsers(); - Promise.all([promise1, promise2]).then(function(responses) { - currentProfile = responses[0], renderProfile(page, currentProfile, responses[1]), loading.hide() - }) + var promise1 = getProfile(); + var promise2 = ApiClient.getUsers(); + Promise.all([promise1, promise2]).then(function (responses) { + currentProfile = responses[0]; + renderProfile(page, currentProfile, responses[1]); + loading.hide(); + }); } function getProfile() { - var id = getParameterByName("id"), - url = id ? "Dlna/Profiles/" + id : "Dlna/Profiles/Default"; - return ApiClient.getJSON(ApiClient.getUrl(url)) + var id = getParameterByName("id"); + var url = id ? "Dlna/Profiles/" + id : "Dlna/Profiles/Default"; + return ApiClient.getJSON(ApiClient.getUrl(url)); } function renderProfile(page, profile, users) { - $("#txtName", page).val(profile.Name), $(".chkMediaType", page).each(function() { - this.checked = -1 != (profile.SupportedMediaTypes || "").split(",").indexOf(this.getAttribute("data-value")) - }), $("#chkEnableAlbumArtInDidl", page).checked(profile.EnableAlbumArtInDidl), $("#chkEnableSingleImageLimit", page).checked(profile.EnableSingleAlbumArtLimit), renderXmlDocumentAttributes(page, profile.XmlRootAttributes || []); + $("#txtName", page).val(profile.Name); + $(".chkMediaType", page).each(function () { + this.checked = -1 != (profile.SupportedMediaTypes || "").split(",").indexOf(this.getAttribute("data-value")); + }); + $("#chkEnableAlbumArtInDidl", page).checked(profile.EnableAlbumArtInDidl); + $("#chkEnableSingleImageLimit", page).checked(profile.EnableSingleAlbumArtLimit); + renderXmlDocumentAttributes(page, profile.XmlRootAttributes || []); var idInfo = profile.Identification || {}; - renderIdentificationHeaders(page, idInfo.Headers || []), renderSubtitleProfiles(page, profile.SubtitleProfiles || []), $("#txtInfoFriendlyName", page).val(profile.FriendlyName || ""), $("#txtInfoModelName", page).val(profile.ModelName || ""), $("#txtInfoModelNumber", page).val(profile.ModelNumber || ""), $("#txtInfoModelDescription", page).val(profile.ModelDescription || ""), $("#txtInfoModelUrl", page).val(profile.ModelUrl || ""), $("#txtInfoManufacturer", page).val(profile.Manufacturer || ""), $("#txtInfoManufacturerUrl", page).val(profile.ManufacturerUrl || ""), $("#txtInfoSerialNumber", page).val(profile.SerialNumber || ""), $("#txtIdFriendlyName", page).val(idInfo.FriendlyName || ""), $("#txtIdModelName", page).val(idInfo.ModelName || ""), $("#txtIdModelNumber", page).val(idInfo.ModelNumber || ""), $("#txtIdModelDescription", page).val(idInfo.ModelDescription || ""), $("#txtIdModelUrl", page).val(idInfo.ModelUrl || ""), $("#txtIdManufacturer", page).val(idInfo.Manufacturer || ""), $("#txtIdManufacturerUrl", page).val(idInfo.ManufacturerUrl || ""), $("#txtIdSerialNumber", page).val(idInfo.SerialNumber || ""), $("#txtIdDeviceDescription", page).val(idInfo.DeviceDescription || ""), $("#txtAlbumArtPn", page).val(profile.AlbumArtPn || ""), $("#txtAlbumArtMaxWidth", page).val(profile.MaxAlbumArtWidth || ""), $("#txtAlbumArtMaxHeight", page).val(profile.MaxAlbumArtHeight || ""), $("#txtIconMaxWidth", page).val(profile.MaxIconWidth || ""), $("#txtIconMaxHeight", page).val(profile.MaxIconHeight || ""), $("#chkIgnoreTranscodeByteRangeRequests", page).checked(profile.IgnoreTranscodeByteRangeRequests), $("#txtMaxAllowedBitrate", page).val(profile.MaxStreamingBitrate || ""), $("#txtMusicStreamingTranscodingBitrate", page).val(profile.MusicStreamingTranscodingBitrate || ""), $("#chkRequiresPlainFolders", page).checked(profile.RequiresPlainFolders), $("#chkRequiresPlainVideoItems", page).checked(profile.RequiresPlainVideoItems), $("#txtProtocolInfo", page).val(profile.ProtocolInfo || ""), $("#txtXDlnaCap", page).val(profile.XDlnaCap || ""), $("#txtXDlnaDoc", page).val(profile.XDlnaDoc || ""), $("#txtSonyAggregationFlags", page).val(profile.SonyAggregationFlags || ""), profile.DirectPlayProfiles = profile.DirectPlayProfiles || [], profile.TranscodingProfiles = profile.TranscodingProfiles || [], profile.ContainerProfiles = profile.ContainerProfiles || [], profile.CodecProfiles = profile.CodecProfiles || [], profile.ResponseProfiles = profile.ResponseProfiles || []; - var usersHtml = "" + users.map(function(u) { - return '" + renderIdentificationHeaders(page, idInfo.Headers || []); + renderSubtitleProfiles(page, profile.SubtitleProfiles || []); + $("#txtInfoFriendlyName", page).val(profile.FriendlyName || ""); + $("#txtInfoModelName", page).val(profile.ModelName || ""); + $("#txtInfoModelNumber", page).val(profile.ModelNumber || ""); + $("#txtInfoModelDescription", page).val(profile.ModelDescription || ""); + $("#txtInfoModelUrl", page).val(profile.ModelUrl || ""); + $("#txtInfoManufacturer", page).val(profile.Manufacturer || ""); + $("#txtInfoManufacturerUrl", page).val(profile.ManufacturerUrl || ""); + $("#txtInfoSerialNumber", page).val(profile.SerialNumber || ""); + $("#txtIdFriendlyName", page).val(idInfo.FriendlyName || ""); + $("#txtIdModelName", page).val(idInfo.ModelName || ""); + $("#txtIdModelNumber", page).val(idInfo.ModelNumber || ""); + $("#txtIdModelDescription", page).val(idInfo.ModelDescription || ""); + $("#txtIdModelUrl", page).val(idInfo.ModelUrl || ""); + $("#txtIdManufacturer", page).val(idInfo.Manufacturer || ""); + $("#txtIdManufacturerUrl", page).val(idInfo.ManufacturerUrl || ""); + $("#txtIdSerialNumber", page).val(idInfo.SerialNumber || ""); + $("#txtIdDeviceDescription", page).val(idInfo.DeviceDescription || ""); + $("#txtAlbumArtPn", page).val(profile.AlbumArtPn || ""); + $("#txtAlbumArtMaxWidth", page).val(profile.MaxAlbumArtWidth || ""); + $("#txtAlbumArtMaxHeight", page).val(profile.MaxAlbumArtHeight || ""); + $("#txtIconMaxWidth", page).val(profile.MaxIconWidth || ""); + $("#txtIconMaxHeight", page).val(profile.MaxIconHeight || ""); + $("#chkIgnoreTranscodeByteRangeRequests", page).checked(profile.IgnoreTranscodeByteRangeRequests); + $("#txtMaxAllowedBitrate", page).val(profile.MaxStreamingBitrate || ""); + $("#txtMusicStreamingTranscodingBitrate", page).val(profile.MusicStreamingTranscodingBitrate || ""); + $("#chkRequiresPlainFolders", page).checked(profile.RequiresPlainFolders); + $("#chkRequiresPlainVideoItems", page).checked(profile.RequiresPlainVideoItems); + $("#txtProtocolInfo", page).val(profile.ProtocolInfo || ""); + $("#txtXDlnaCap", page).val(profile.XDlnaCap || ""); + $("#txtXDlnaDoc", page).val(profile.XDlnaDoc || ""); + $("#txtSonyAggregationFlags", page).val(profile.SonyAggregationFlags || ""); + profile.DirectPlayProfiles = profile.DirectPlayProfiles || []; + profile.TranscodingProfiles = profile.TranscodingProfiles || []; + profile.ContainerProfiles = profile.ContainerProfiles || []; + profile.CodecProfiles = profile.CodecProfiles || []; + profile.ResponseProfiles = profile.ResponseProfiles || []; + var usersHtml = "" + users.map(function (u__w) { + return '"; }).join(""); - $("#selectUser", page).html(usersHtml).val(profile.UserId || ""), renderSubProfiles(page, profile) + $("#selectUser", page).html(usersHtml).val(profile.UserId || ""); + renderSubProfiles(page, profile); } function renderIdentificationHeaders(page, headers) { - var index = 0, - html = '
' + headers.map(function(h) { - var li = '
'; - return li += 'info', li += '
', li += '

' + h.Name + ": " + (h.Value || "") + "

", li += '
' + (h.Match || "") + "
", li += "
", li += '', li += "
", index++, li - }).join("") + "
", - elem = $(".httpHeaderIdentificationList", page).html(html).trigger("create"); - $(".btnDeleteIdentificationHeader", elem).on("click", function() { + var index = 0; + var html = '
' + headers.map(function (h__e) { + var li = '
'; + li += 'info'; + li += '
'; + li += '

' + h__e.Name + ": " + (h__e.Value || "") + "

"; + li += '
' + (h__e.Match || "") + "
"; + li += "
"; + li += ''; + li += "
"; + index++; + return li; + }).join("") + "
"; + var elem = $(".httpHeaderIdentificationList", page).html(html).trigger("create"); + $(".btnDeleteIdentificationHeader", elem).on("click", function () { var itemIndex = parseInt(this.getAttribute("data-index")); - currentProfile.Identification.Headers.splice(itemIndex, 1), renderIdentificationHeaders(page, currentProfile.Identification.Headers) - }) + currentProfile.Identification.Headers.splice(itemIndex, 1); + renderIdentificationHeaders(page, currentProfile.Identification.Headers); + }); } function openPopup(elem) { - elem.classList.remove("hide") + elem.classList.remove("hide"); } function closePopup(elem) { - elem.classList.add("hide") + elem.classList.add("hide"); } function editIdentificationHeader(page, header) { - isSubProfileNew = null == header, header = header || {}, currentSubProfile = header; + isSubProfileNew = null == header; + header = header || {}; + currentSubProfile = header; var popup = $("#identificationHeaderPopup", page); - $("#txtIdentificationHeaderName", popup).val(header.Name || ""), $("#txtIdentificationHeaderValue", popup).val(header.Value || ""), $("#selectMatchType", popup).val(header.Match || "Equals"), openPopup(popup[0]) + $("#txtIdentificationHeaderName", popup).val(header.Name || ""); + $("#txtIdentificationHeaderValue", popup).val(header.Value || ""); + $("#selectMatchType", popup).val(header.Match || "Equals"); + openPopup(popup[0]); } function saveIdentificationHeader(page) { - currentSubProfile.Name = $("#txtIdentificationHeaderName", page).val(), currentSubProfile.Value = $("#txtIdentificationHeaderValue", page).val(), currentSubProfile.Match = $("#selectMatchType", page).val(), isSubProfileNew && (currentProfile.Identification = currentProfile.Identification || {}, currentProfile.Identification.Headers = currentProfile.Identification.Headers || [], currentProfile.Identification.Headers.push(currentSubProfile)), renderIdentificationHeaders(page, currentProfile.Identification.Headers), currentSubProfile = null, closePopup($("#identificationHeaderPopup", page)[0]) + currentSubProfile.Name = $("#txtIdentificationHeaderName", page).val(); + currentSubProfile.Value = $("#txtIdentificationHeaderValue", page).val(); + currentSubProfile.Match = $("#selectMatchType", page).val(); + + if (isSubProfileNew) { + currentProfile.Identification = currentProfile.Identification || {}; + currentProfile.Identification.Headers = currentProfile.Identification.Headers || []; + currentProfile.Identification.Headers.push(currentSubProfile); + } + + renderIdentificationHeaders(page, currentProfile.Identification.Headers); + currentSubProfile = null; + closePopup($("#identificationHeaderPopup", page)[0]); } function renderXmlDocumentAttributes(page, attribute) { - var html = '
' + attribute.map(function(h) { - var li = '
'; - return li += 'info', li += '
', li += '

' + h.Name + " = " + (h.Value || "") + "

", li += "
", li += '', li += "
" - }).join("") + "
", - elem = $(".xmlDocumentAttributeList", page).html(html).trigger("create"); - $(".btnDeleteXmlAttribute", elem).on("click", function() { + var html = '
' + attribute.map(function (h__r) { + var li = '
'; + li += 'info'; + li += '
'; + li += '

' + h__r.Name + " = " + (h__r.Value || "") + "

"; + li += "
"; + li += ''; + return li += "
"; + }).join("") + "
"; + var elem = $(".xmlDocumentAttributeList", page).html(html).trigger("create"); + $(".btnDeleteXmlAttribute", elem).on("click", function () { var itemIndex = parseInt(this.getAttribute("data-index")); - currentProfile.XmlRootAttributes.splice(itemIndex, 1), renderXmlDocumentAttributes(page, currentProfile.XmlRootAttributes) - }) + currentProfile.XmlRootAttributes.splice(itemIndex, 1); + renderXmlDocumentAttributes(page, currentProfile.XmlRootAttributes); + }); } function editXmlDocumentAttribute(page, attribute) { - isSubProfileNew = null == attribute, attribute = attribute || {}, currentSubProfile = attribute; + isSubProfileNew = null == attribute; + attribute = attribute || {}; + currentSubProfile = attribute; var popup = $("#xmlAttributePopup", page); - $("#txtXmlAttributeName", popup).val(attribute.Name || ""), $("#txtXmlAttributeValue", popup).val(attribute.Value || ""), openPopup(popup[0]) + $("#txtXmlAttributeName", popup).val(attribute.Name || ""); + $("#txtXmlAttributeValue", popup).val(attribute.Value || ""); + openPopup(popup[0]); } function saveXmlDocumentAttribute(page) { - currentSubProfile.Name = $("#txtXmlAttributeName", page).val(), currentSubProfile.Value = $("#txtXmlAttributeValue", page).val(), isSubProfileNew && currentProfile.XmlRootAttributes.push(currentSubProfile), renderXmlDocumentAttributes(page, currentProfile.XmlRootAttributes), currentSubProfile = null, closePopup($("#xmlAttributePopup", page)[0]) + currentSubProfile.Name = $("#txtXmlAttributeName", page).val(); + currentSubProfile.Value = $("#txtXmlAttributeValue", page).val(); + + if (isSubProfileNew) { + currentProfile.XmlRootAttributes.push(currentSubProfile); + } + + renderXmlDocumentAttributes(page, currentProfile.XmlRootAttributes); + currentSubProfile = null; + closePopup($("#xmlAttributePopup", page)[0]); } function renderSubtitleProfiles(page, profiles) { - var index = 0, - html = '
' + profiles.map(function(h) { - var li = '
'; - return li += 'info', li += '
', li += '

' + (h.Format || "") + "

", li += "
", li += '', li += "
", index++, li - }).join("") + "
", - elem = $(".subtitleProfileList", page).html(html).trigger("create"); - $(".btnDeleteProfile", elem).on("click", function() { + var index = 0; + var html = '
' + profiles.map(function (h__t) { + var li = '
'; + li += 'info'; + li += '
'; + li += '

' + (h__t.Format || "") + "

"; + li += "
"; + li += ''; + li += "
"; + index++; + return li; + }).join("") + "
"; + var elem = $(".subtitleProfileList", page).html(html).trigger("create"); + $(".btnDeleteProfile", elem).on("click", function () { var itemIndex = parseInt(this.getAttribute("data-index")); - currentProfile.SubtitleProfiles.splice(itemIndex, 1), renderSubtitleProfiles(page, currentProfile.SubtitleProfiles) - }), $(".lnkEditSubProfile", elem).on("click", function() { + currentProfile.SubtitleProfiles.splice(itemIndex, 1); + renderSubtitleProfiles(page, currentProfile.SubtitleProfiles); + }); + $(".lnkEditSubProfile", elem).on("click", function () { var itemIndex = parseInt(this.getAttribute("data-index")); - editSubtitleProfile(page, currentProfile.SubtitleProfiles[itemIndex]) - }) + editSubtitleProfile(page, currentProfile.SubtitleProfiles[itemIndex]); + }); } function editSubtitleProfile(page, profile) { - isSubProfileNew = null == profile, profile = profile || {}, currentSubProfile = profile; + isSubProfileNew = null == profile; + profile = profile || {}; + currentSubProfile = profile; var popup = $("#subtitleProfilePopup", page); - $("#txtSubtitleProfileFormat", popup).val(profile.Format || ""), $("#selectSubtitleProfileMethod", popup).val(profile.Method || ""), $("#selectSubtitleProfileDidlMode", popup).val(profile.DidlMode || ""), openPopup(popup[0]) + $("#txtSubtitleProfileFormat", popup).val(profile.Format || ""); + $("#selectSubtitleProfileMethod", popup).val(profile.Method || ""); + $("#selectSubtitleProfileDidlMode", popup).val(profile.DidlMode || ""); + openPopup(popup[0]); } function saveSubtitleProfile(page) { - currentSubProfile.Format = $("#txtSubtitleProfileFormat", page).val(), currentSubProfile.Method = $("#selectSubtitleProfileMethod", page).val(), currentSubProfile.DidlMode = $("#selectSubtitleProfileDidlMode", page).val(), isSubProfileNew && currentProfile.SubtitleProfiles.push(currentSubProfile), renderSubtitleProfiles(page, currentProfile.SubtitleProfiles), currentSubProfile = null, closePopup($("#subtitleProfilePopup", page)[0]) + currentSubProfile.Format = $("#txtSubtitleProfileFormat", page).val(); + currentSubProfile.Method = $("#selectSubtitleProfileMethod", page).val(); + currentSubProfile.DidlMode = $("#selectSubtitleProfileDidlMode", page).val(); + + if (isSubProfileNew) { + currentProfile.SubtitleProfiles.push(currentSubProfile); + } + + renderSubtitleProfiles(page, currentProfile.SubtitleProfiles); + currentSubProfile = null; + closePopup($("#subtitleProfilePopup", page)[0]); } function renderSubProfiles(page, profile) { - renderDirectPlayProfiles(page, profile.DirectPlayProfiles), renderTranscodingProfiles(page, profile.TranscodingProfiles), renderContainerProfiles(page, profile.ContainerProfiles), renderCodecProfiles(page, profile.CodecProfiles), renderResponseProfiles(page, profile.ResponseProfiles) + renderDirectPlayProfiles(page, profile.DirectPlayProfiles); + renderTranscodingProfiles(page, profile.TranscodingProfiles); + renderContainerProfiles(page, profile.ContainerProfiles); + renderCodecProfiles(page, profile.CodecProfiles); + renderResponseProfiles(page, profile.ResponseProfiles); } function saveDirectPlayProfile(page) { - currentSubProfile.Type = $("#selectDirectPlayProfileType", page).val(), currentSubProfile.Container = $("#txtDirectPlayContainer", page).val(), currentSubProfile.AudioCodec = $("#txtDirectPlayAudioCodec", page).val(), currentSubProfile.VideoCodec = $("#txtDirectPlayVideoCodec", page).val(), isSubProfileNew && currentProfile.DirectPlayProfiles.push(currentSubProfile), renderSubProfiles(page, currentProfile), currentSubProfile = null, closePopup($("#popupEditDirectPlayProfile", page)[0]) + currentSubProfile.Type = $("#selectDirectPlayProfileType", page).val(); + currentSubProfile.Container = $("#txtDirectPlayContainer", page).val(); + currentSubProfile.AudioCodec = $("#txtDirectPlayAudioCodec", page).val(); + currentSubProfile.VideoCodec = $("#txtDirectPlayVideoCodec", page).val(); + + if (isSubProfileNew) { + currentProfile.DirectPlayProfiles.push(currentSubProfile); + } + + renderSubProfiles(page, currentProfile); + currentSubProfile = null; + closePopup($("#popupEditDirectPlayProfile", page)[0]); } function renderDirectPlayProfiles(page, profiles) { var html = ""; html += '"; var elem = $(".directPlayProfiles", page).html(html).trigger("create"); - $(".btnDeleteProfile", elem).on("click", function() { + $(".btnDeleteProfile", elem).on("click", function () { var index = this.getAttribute("data-profileindex"); - deleteDirectPlayProfile(page, index) - }), $(".lnkEditSubProfile", elem).on("click", function() { + deleteDirectPlayProfile(page, index); + }); + $(".lnkEditSubProfile", elem).on("click", function () { var index = parseInt(this.getAttribute("data-profileindex")); - editDirectPlayProfile(page, currentProfile.DirectPlayProfiles[index]) - }) + editDirectPlayProfile(page, currentProfile.DirectPlayProfiles[index]); + }); } function deleteDirectPlayProfile(page, index) { - currentProfile.DirectPlayProfiles.splice(index, 1), renderDirectPlayProfiles(page, currentProfile.DirectPlayProfiles) + currentProfile.DirectPlayProfiles.splice(index, 1); + renderDirectPlayProfiles(page, currentProfile.DirectPlayProfiles); } function editDirectPlayProfile(page, directPlayProfile) { - isSubProfileNew = null == directPlayProfile, directPlayProfile = directPlayProfile || {}, currentSubProfile = directPlayProfile; + isSubProfileNew = null == directPlayProfile; + directPlayProfile = directPlayProfile || {}; + currentSubProfile = directPlayProfile; var popup = $("#popupEditDirectPlayProfile", page); - $("#selectDirectPlayProfileType", popup).val(directPlayProfile.Type || "Video").trigger("change"), $("#txtDirectPlayContainer", popup).val(directPlayProfile.Container || ""), $("#txtDirectPlayAudioCodec", popup).val(directPlayProfile.AudioCodec || ""), $("#txtDirectPlayVideoCodec", popup).val(directPlayProfile.VideoCodec || ""), openPopup(popup[0]) + $("#selectDirectPlayProfileType", popup).val(directPlayProfile.Type || "Video").trigger("change"); + $("#txtDirectPlayContainer", popup).val(directPlayProfile.Container || ""); + $("#txtDirectPlayAudioCodec", popup).val(directPlayProfile.AudioCodec || ""); + $("#txtDirectPlayVideoCodec", popup).val(directPlayProfile.VideoCodec || ""); + openPopup(popup[0]); } function renderTranscodingProfiles(page, profiles) { var html = ""; html += '"; var elem = $(".transcodingProfiles", page).html(html).trigger("create"); - $(".btnDeleteProfile", elem).on("click", function() { + $(".btnDeleteProfile", elem).on("click", function () { var index = this.getAttribute("data-profileindex"); - deleteTranscodingProfile(page, index) - }), $(".lnkEditSubProfile", elem).on("click", function() { + deleteTranscodingProfile(page, index); + }); + $(".lnkEditSubProfile", elem).on("click", function () { var index = parseInt(this.getAttribute("data-profileindex")); - editTranscodingProfile(page, currentProfile.TranscodingProfiles[index]) - }) + editTranscodingProfile(page, currentProfile.TranscodingProfiles[index]); + }); } function editTranscodingProfile(page, transcodingProfile) { - isSubProfileNew = null == transcodingProfile, transcodingProfile = transcodingProfile || {}, currentSubProfile = transcodingProfile; + isSubProfileNew = null == transcodingProfile; + transcodingProfile = transcodingProfile || {}; + currentSubProfile = transcodingProfile; var popup = $("#transcodingProfilePopup", page); - $("#selectTranscodingProfileType", popup).val(transcodingProfile.Type || "Video").trigger("change"), $("#txtTranscodingContainer", popup).val(transcodingProfile.Container || ""), $("#txtTranscodingAudioCodec", popup).val(transcodingProfile.AudioCodec || ""), $("#txtTranscodingVideoCodec", popup).val(transcodingProfile.VideoCodec || ""), $("#selectTranscodingProtocol", popup).val(transcodingProfile.Protocol || "Http"), $("#chkEnableMpegtsM2TsMode", popup).checked(transcodingProfile.EnableMpegtsM2TsMode || !1), $("#chkEstimateContentLength", popup).checked(transcodingProfile.EstimateContentLength || !1), $("#chkReportByteRangeRequests", popup).checked("Bytes" == transcodingProfile.TranscodeSeekInfo), $(".radioTabButton:first", popup).trigger("click"), openPopup(popup[0]) + $("#selectTranscodingProfileType", popup).val(transcodingProfile.Type || "Video").trigger("change"); + $("#txtTranscodingContainer", popup).val(transcodingProfile.Container || ""); + $("#txtTranscodingAudioCodec", popup).val(transcodingProfile.AudioCodec || ""); + $("#txtTranscodingVideoCodec", popup).val(transcodingProfile.VideoCodec || ""); + $("#selectTranscodingProtocol", popup).val(transcodingProfile.Protocol || "Http"); + $("#chkEnableMpegtsM2TsMode", popup).checked(transcodingProfile.EnableMpegtsM2TsMode || false); + $("#chkEstimateContentLength", popup).checked(transcodingProfile.EstimateContentLength || false); + $("#chkReportByteRangeRequests", popup).checked("Bytes" == transcodingProfile.TranscodeSeekInfo); + $(".radioTabButton:first", popup).trigger("click"); + openPopup(popup[0]); } function deleteTranscodingProfile(page, index) { - currentProfile.TranscodingProfiles.splice(index, 1), renderTranscodingProfiles(page, currentProfile.TranscodingProfiles) + currentProfile.TranscodingProfiles.splice(index, 1); + renderTranscodingProfiles(page, currentProfile.TranscodingProfiles); } function saveTranscodingProfile(page) { - currentSubProfile.Type = $("#selectTranscodingProfileType", page).val(), currentSubProfile.Container = $("#txtTranscodingContainer", page).val(), currentSubProfile.AudioCodec = $("#txtTranscodingAudioCodec", page).val(), currentSubProfile.VideoCodec = $("#txtTranscodingVideoCodec", page).val(), currentSubProfile.Protocol = $("#selectTranscodingProtocol", page).val(), currentSubProfile.Context = "Streaming", currentSubProfile.EnableMpegtsM2TsMode = $("#chkEnableMpegtsM2TsMode", page).checked(), currentSubProfile.EstimateContentLength = $("#chkEstimateContentLength", page).checked(), currentSubProfile.TranscodeSeekInfo = $("#chkReportByteRangeRequests", page).checked() ? "Bytes" : "Auto", isSubProfileNew && currentProfile.TranscodingProfiles.push(currentSubProfile), renderSubProfiles(page, currentProfile), currentSubProfile = null, closePopup($("#transcodingProfilePopup", page)[0]) + currentSubProfile.Type = $("#selectTranscodingProfileType", page).val(); + currentSubProfile.Container = $("#txtTranscodingContainer", page).val(); + currentSubProfile.AudioCodec = $("#txtTranscodingAudioCodec", page).val(); + currentSubProfile.VideoCodec = $("#txtTranscodingVideoCodec", page).val(); + currentSubProfile.Protocol = $("#selectTranscodingProtocol", page).val(); + currentSubProfile.Context = "Streaming"; + currentSubProfile.EnableMpegtsM2TsMode = $("#chkEnableMpegtsM2TsMode", page).checked(); + currentSubProfile.EstimateContentLength = $("#chkEstimateContentLength", page).checked(); + currentSubProfile.TranscodeSeekInfo = $("#chkReportByteRangeRequests", page).checked() ? "Bytes" : "Auto"; + + if (isSubProfileNew) { + currentProfile.TranscodingProfiles.push(currentSubProfile); + } + + renderSubProfiles(page, currentProfile); + currentSubProfile = null; + closePopup($("#transcodingProfilePopup", page)[0]); } function renderContainerProfiles(page, profiles) { var html = ""; html += '"; var elem = $(".containerProfiles", page).html(html).trigger("create"); - $(".btnDeleteProfile", elem).on("click", function() { + $(".btnDeleteProfile", elem).on("click", function () { var index = this.getAttribute("data-profileindex"); - deleteContainerProfile(page, index) - }), $(".lnkEditSubProfile", elem).on("click", function() { + deleteContainerProfile(page, index); + }); + $(".lnkEditSubProfile", elem).on("click", function () { var index = parseInt(this.getAttribute("data-profileindex")); - editContainerProfile(page, currentProfile.ContainerProfiles[index]) - }) + editContainerProfile(page, currentProfile.ContainerProfiles[index]); + }); } function deleteContainerProfile(page, index) { - currentProfile.ContainerProfiles.splice(index, 1), renderContainerProfiles(page, currentProfile.ContainerProfiles) + currentProfile.ContainerProfiles.splice(index, 1); + renderContainerProfiles(page, currentProfile.ContainerProfiles); } function editContainerProfile(page, containerProfile) { - isSubProfileNew = null == containerProfile, containerProfile = containerProfile || {}, currentSubProfile = containerProfile; + isSubProfileNew = null == containerProfile; + containerProfile = containerProfile || {}; + currentSubProfile = containerProfile; var popup = $("#containerProfilePopup", page); - $("#selectContainerProfileType", popup).val(containerProfile.Type || "Video").trigger("change"), $("#txtContainerProfileContainer", popup).val(containerProfile.Container || ""), $(".radioTabButton:first", popup).trigger("click"), openPopup(popup[0]) + $("#selectContainerProfileType", popup).val(containerProfile.Type || "Video").trigger("change"); + $("#txtContainerProfileContainer", popup).val(containerProfile.Container || ""); + $(".radioTabButton:first", popup).trigger("click"); + openPopup(popup[0]); } function saveContainerProfile(page) { - currentSubProfile.Type = $("#selectContainerProfileType", page).val(), currentSubProfile.Container = $("#txtContainerProfileContainer", page).val(), isSubProfileNew && currentProfile.ContainerProfiles.push(currentSubProfile), renderSubProfiles(page, currentProfile), currentSubProfile = null, closePopup($("#containerProfilePopup", page)[0]) + currentSubProfile.Type = $("#selectContainerProfileType", page).val(); + currentSubProfile.Container = $("#txtContainerProfileContainer", page).val(); + + if (isSubProfileNew) { + currentProfile.ContainerProfiles.push(currentSubProfile); + } + + renderSubProfiles(page, currentProfile); + currentSubProfile = null; + closePopup($("#containerProfilePopup", page)[0]); } function renderCodecProfiles(page, profiles) { var html = ""; html += '"; var elem = $(".codecProfiles", page).html(html).trigger("create"); - $(".btnDeleteProfile", elem).on("click", function() { + $(".btnDeleteProfile", elem).on("click", function () { var index = this.getAttribute("data-profileindex"); - deleteCodecProfile(page, index) - }), $(".lnkEditSubProfile", elem).on("click", function() { + deleteCodecProfile(page, index); + }); + $(".lnkEditSubProfile", elem).on("click", function () { var index = parseInt(this.getAttribute("data-profileindex")); - editCodecProfile(page, currentProfile.CodecProfiles[index]) - }) + editCodecProfile(page, currentProfile.CodecProfiles[index]); + }); } function deleteCodecProfile(page, index) { - currentProfile.CodecProfiles.splice(index, 1), renderCodecProfiles(page, currentProfile.CodecProfiles) + currentProfile.CodecProfiles.splice(index, 1); + renderCodecProfiles(page, currentProfile.CodecProfiles); } function editCodecProfile(page, codecProfile) { - isSubProfileNew = null == codecProfile, codecProfile = codecProfile || {}, currentSubProfile = codecProfile; + isSubProfileNew = null == codecProfile; + codecProfile = codecProfile || {}; + currentSubProfile = codecProfile; var popup = $("#codecProfilePopup", page); - $("#selectCodecProfileType", popup).val(codecProfile.Type || "Video").trigger("change"), $("#txtCodecProfileCodec", popup).val(codecProfile.Codec || ""), $(".radioTabButton:first", popup).trigger("click"), openPopup(popup[0]) + $("#selectCodecProfileType", popup).val(codecProfile.Type || "Video").trigger("change"); + $("#txtCodecProfileCodec", popup).val(codecProfile.Codec || ""); + $(".radioTabButton:first", popup).trigger("click"); + openPopup(popup[0]); } function saveCodecProfile(page) { - currentSubProfile.Type = $("#selectCodecProfileType", page).val(), currentSubProfile.Codec = $("#txtCodecProfileCodec", page).val(), isSubProfileNew && currentProfile.CodecProfiles.push(currentSubProfile), renderSubProfiles(page, currentProfile), currentSubProfile = null, closePopup($("#codecProfilePopup", page)[0]) + currentSubProfile.Type = $("#selectCodecProfileType", page).val(); + currentSubProfile.Codec = $("#txtCodecProfileCodec", page).val(); + + if (isSubProfileNew) { + currentProfile.CodecProfiles.push(currentSubProfile); + } + + renderSubProfiles(page, currentProfile); + currentSubProfile = null; + closePopup($("#codecProfilePopup", page)[0]); } function renderResponseProfiles(page, profiles) { var html = ""; html += '"; var elem = $(".mediaProfiles", page).html(html).trigger("create"); - $(".btnDeleteProfile", elem).on("click", function() { + $(".btnDeleteProfile", elem).on("click", function () { var index = this.getAttribute("data-profileindex"); - deleteResponseProfile(page, index) - }), $(".lnkEditSubProfile", elem).on("click", function() { + deleteResponseProfile(page, index); + }); + $(".lnkEditSubProfile", elem).on("click", function () { var index = parseInt(this.getAttribute("data-profileindex")); - editResponseProfile(page, currentProfile.ResponseProfiles[index]) - }) + editResponseProfile(page, currentProfile.ResponseProfiles[index]); + }); } function deleteResponseProfile(page, index) { - currentProfile.ResponseProfiles.splice(index, 1), renderResponseProfiles(page, currentProfile.ResponseProfiles) + currentProfile.ResponseProfiles.splice(index, 1); + renderResponseProfiles(page, currentProfile.ResponseProfiles); } function editResponseProfile(page, responseProfile) { - isSubProfileNew = null == responseProfile, responseProfile = responseProfile || {}, currentSubProfile = responseProfile; + isSubProfileNew = null == responseProfile; + responseProfile = responseProfile || {}; + currentSubProfile = responseProfile; var popup = $("#responseProfilePopup", page); - $("#selectResponseProfileType", popup).val(responseProfile.Type || "Video").trigger("change"), $("#txtResponseProfileContainer", popup).val(responseProfile.Container || ""), $("#txtResponseProfileAudioCodec", popup).val(responseProfile.AudioCodec || ""), $("#txtResponseProfileVideoCodec", popup).val(responseProfile.VideoCodec || ""), $(".radioTabButton:first", popup).trigger("click"), openPopup(popup[0]) + $("#selectResponseProfileType", popup).val(responseProfile.Type || "Video").trigger("change"); + $("#txtResponseProfileContainer", popup).val(responseProfile.Container || ""); + $("#txtResponseProfileAudioCodec", popup).val(responseProfile.AudioCodec || ""); + $("#txtResponseProfileVideoCodec", popup).val(responseProfile.VideoCodec || ""); + $(".radioTabButton:first", popup).trigger("click"); + openPopup(popup[0]); } function saveResponseProfile(page) { - currentSubProfile.Type = $("#selectResponseProfileType", page).val(), currentSubProfile.Container = $("#txtResponseProfileContainer", page).val(), currentSubProfile.AudioCodec = $("#txtResponseProfileAudioCodec", page).val(), currentSubProfile.VideoCodec = $("#txtResponseProfileVideoCodec", page).val(), isSubProfileNew && currentProfile.ResponseProfiles.push(currentSubProfile), renderSubProfiles(page, currentProfile), currentSubProfile = null, closePopup($("#responseProfilePopup", page)[0]) + currentSubProfile.Type = $("#selectResponseProfileType", page).val(); + currentSubProfile.Container = $("#txtResponseProfileContainer", page).val(); + currentSubProfile.AudioCodec = $("#txtResponseProfileAudioCodec", page).val(); + currentSubProfile.VideoCodec = $("#txtResponseProfileVideoCodec", page).val(); + + if (isSubProfileNew) { + currentProfile.ResponseProfiles.push(currentSubProfile); + } + + renderSubProfiles(page, currentProfile); + currentSubProfile = null; + closePopup($("#responseProfilePopup", page)[0]); } function saveProfile(page, profile) { updateProfile(page, profile); var id = getParameterByName("id"); - id ? ApiClient.ajax({ - type: "POST", - url: ApiClient.getUrl("Dlna/Profiles/" + id), - data: JSON.stringify(profile), - contentType: "application/json" - }).then(function() { - require(["toast"], function(toast) { - toast("Settings saved.") - }) - }, Dashboard.processErrorResponse) : ApiClient.ajax({ - type: "POST", - url: ApiClient.getUrl("Dlna/Profiles"), - data: JSON.stringify(profile), - contentType: "application/json" - }).then(function() { - Dashboard.navigate("dlnaprofiles.html") - }, Dashboard.processErrorResponse), loading.hide() + + if (id) { + ApiClient.ajax({ + type: "POST", + url: ApiClient.getUrl("Dlna/Profiles/" + id), + data: JSON.stringify(profile), + contentType: "application/json" + }).then(function () { + require(["toast"], function (toast) { + toast("Settings saved."); + }); + }, Dashboard.processErrorResponse); + } else { + ApiClient.ajax({ + type: "POST", + url: ApiClient.getUrl("Dlna/Profiles"), + data: JSON.stringify(profile), + contentType: "application/json" + }).then(function () { + Dashboard.navigate("dlnaprofiles.html"); + }, Dashboard.processErrorResponse); + } + + loading.hide(); } function updateProfile(page, profile) { - profile.Name = $("#txtName", page).val(), profile.EnableAlbumArtInDidl = $("#chkEnableAlbumArtInDidl", page).checked(), profile.EnableSingleAlbumArtLimit = $("#chkEnableSingleImageLimit", page).checked(), profile.SupportedMediaTypes = $(".chkMediaType:checked", page).get().map(function(c) { - return c.getAttribute("data-value") - }).join(","), profile.Identification = profile.Identification || {}, profile.FriendlyName = $("#txtInfoFriendlyName", page).val(), profile.ModelName = $("#txtInfoModelName", page).val(), profile.ModelNumber = $("#txtInfoModelNumber", page).val(), profile.ModelDescription = $("#txtInfoModelDescription", page).val(), profile.ModelUrl = $("#txtInfoModelUrl", page).val(), profile.Manufacturer = $("#txtInfoManufacturer", page).val(), profile.ManufacturerUrl = $("#txtInfoManufacturerUrl", page).val(), profile.SerialNumber = $("#txtInfoSerialNumber", page).val(), profile.Identification.FriendlyName = $("#txtIdFriendlyName", page).val(), profile.Identification.ModelName = $("#txtIdModelName", page).val(), profile.Identification.ModelNumber = $("#txtIdModelNumber", page).val(), profile.Identification.ModelDescription = $("#txtIdModelDescription", page).val(), profile.Identification.ModelUrl = $("#txtIdModelUrl", page).val(), profile.Identification.Manufacturer = $("#txtIdManufacturer", page).val(), profile.Identification.ManufacturerUrl = $("#txtIdManufacturerUrl", page).val(), profile.Identification.SerialNumber = $("#txtIdSerialNumber", page).val(), profile.Identification.DeviceDescription = $("#txtIdDeviceDescription", page).val(), profile.AlbumArtPn = $("#txtAlbumArtPn", page).val(), profile.MaxAlbumArtWidth = $("#txtAlbumArtMaxWidth", page).val(), profile.MaxAlbumArtHeight = $("#txtAlbumArtMaxHeight", page).val(), profile.MaxIconWidth = $("#txtIconMaxWidth", page).val(), profile.MaxIconHeight = $("#txtIconMaxHeight", page).val(), profile.RequiresPlainFolders = $("#chkRequiresPlainFolders", page).checked(), profile.RequiresPlainVideoItems = $("#chkRequiresPlainVideoItems", page).checked(), profile.IgnoreTranscodeByteRangeRequests = $("#chkIgnoreTranscodeByteRangeRequests", page).checked(), profile.MaxStreamingBitrate = $("#txtMaxAllowedBitrate", page).val(), profile.MusicStreamingTranscodingBitrate = $("#txtMusicStreamingTranscodingBitrate", page).val(), profile.ProtocolInfo = $("#txtProtocolInfo", page).val(), profile.XDlnaCap = $("#txtXDlnaCap", page).val(), profile.XDlnaDoc = $("#txtXDlnaDoc", page).val(), profile.SonyAggregationFlags = $("#txtSonyAggregationFlags", page).val(), profile.UserId = $("#selectUser", page).val() + profile.Name = $("#txtName", page).val(); + profile.EnableAlbumArtInDidl = $("#chkEnableAlbumArtInDidl", page).checked(); + profile.EnableSingleAlbumArtLimit = $("#chkEnableSingleImageLimit", page).checked(); + profile.SupportedMediaTypes = $(".chkMediaType:checked", page).get().map(function (c__f) { + return c__f.getAttribute("data-value"); + }).join(","); + profile.Identification = profile.Identification || {}; + profile.FriendlyName = $("#txtInfoFriendlyName", page).val(); + profile.ModelName = $("#txtInfoModelName", page).val(); + profile.ModelNumber = $("#txtInfoModelNumber", page).val(); + profile.ModelDescription = $("#txtInfoModelDescription", page).val(); + profile.ModelUrl = $("#txtInfoModelUrl", page).val(); + profile.Manufacturer = $("#txtInfoManufacturer", page).val(); + profile.ManufacturerUrl = $("#txtInfoManufacturerUrl", page).val(); + profile.SerialNumber = $("#txtInfoSerialNumber", page).val(); + profile.Identification.FriendlyName = $("#txtIdFriendlyName", page).val(); + profile.Identification.ModelName = $("#txtIdModelName", page).val(); + profile.Identification.ModelNumber = $("#txtIdModelNumber", page).val(); + profile.Identification.ModelDescription = $("#txtIdModelDescription", page).val(); + profile.Identification.ModelUrl = $("#txtIdModelUrl", page).val(); + profile.Identification.Manufacturer = $("#txtIdManufacturer", page).val(); + profile.Identification.ManufacturerUrl = $("#txtIdManufacturerUrl", page).val(); + profile.Identification.SerialNumber = $("#txtIdSerialNumber", page).val(); + profile.Identification.DeviceDescription = $("#txtIdDeviceDescription", page).val(); + profile.AlbumArtPn = $("#txtAlbumArtPn", page).val(); + profile.MaxAlbumArtWidth = $("#txtAlbumArtMaxWidth", page).val(); + profile.MaxAlbumArtHeight = $("#txtAlbumArtMaxHeight", page).val(); + profile.MaxIconWidth = $("#txtIconMaxWidth", page).val(); + profile.MaxIconHeight = $("#txtIconMaxHeight", page).val(); + profile.RequiresPlainFolders = $("#chkRequiresPlainFolders", page).checked(); + profile.RequiresPlainVideoItems = $("#chkRequiresPlainVideoItems", page).checked(); + profile.IgnoreTranscodeByteRangeRequests = $("#chkIgnoreTranscodeByteRangeRequests", page).checked(); + profile.MaxStreamingBitrate = $("#txtMaxAllowedBitrate", page).val(); + profile.MusicStreamingTranscodingBitrate = $("#txtMusicStreamingTranscodingBitrate", page).val(); + profile.ProtocolInfo = $("#txtProtocolInfo", page).val(); + profile.XDlnaCap = $("#txtXDlnaCap", page).val(); + profile.XDlnaDoc = $("#txtXDlnaDoc", page).val(); + profile.SonyAggregationFlags = $("#txtSonyAggregationFlags", page).val(); + profile.UserId = $("#selectUser", page).val(); } - var currentProfile, currentSubProfile, isSubProfileNew, allText = Globalize.translate("LabelAll"); - $(document).on("pageinit", "#dlnaProfilePage", function() { + + var currentProfile; + var currentSubProfile; + var isSubProfileNew; + var allText = Globalize.translate("LabelAll"); + + $(document).on("pageinit", "#dlnaProfilePage", function () { var page = this; - $(".radioTabButton", page).on("click", function() { - $(this).siblings().removeClass("ui-btn-active"), $(this).addClass("ui-btn-active"); - var value = "A" == this.tagName ? this.getAttribute("data-value") : this.value, - elem = $("." + value, page); - elem.siblings(".tabContent").hide(), elem.show() - }), $("#selectDirectPlayProfileType", page).on("change", function() { - "Video" == this.value ? $("#fldDirectPlayVideoCodec", page).show() : $("#fldDirectPlayVideoCodec", page).hide(), "Photo" == this.value ? $("#fldDirectPlayAudioCodec", page).hide() : $("#fldDirectPlayAudioCodec", page).show() - }), $("#selectTranscodingProfileType", page).on("change", function() { - "Video" == this.value ? ($("#fldTranscodingVideoCodec", page).show(), $("#fldTranscodingProtocol", page).show(), $("#fldEnableMpegtsM2TsMode", page).show()) : ($("#fldTranscodingVideoCodec", page).hide(), $("#fldTranscodingProtocol", page).hide(), $("#fldEnableMpegtsM2TsMode", page).hide()), "Photo" == this.value ? ($("#fldTranscodingAudioCodec", page).hide(), $("#fldEstimateContentLength", page).hide(), $("#fldReportByteRangeRequests", page).hide()) : ($("#fldTranscodingAudioCodec", page).show(), $("#fldEstimateContentLength", page).show(), $("#fldReportByteRangeRequests", page).show()) - }), $("#selectResponseProfileType", page).on("change", function() { - "Video" == this.value ? $("#fldResponseProfileVideoCodec", page).show() : $("#fldResponseProfileVideoCodec", page).hide(), "Photo" == this.value ? $("#fldResponseProfileAudioCodec", page).hide() : $("#fldResponseProfileAudioCodec", page).show() - }), $(".btnAddDirectPlayProfile", page).on("click", function() { - editDirectPlayProfile(page) - }), $(".btnAddTranscodingProfile", page).on("click", function() { - editTranscodingProfile(page) - }), $(".btnAddContainerProfile", page).on("click", function() { - editContainerProfile(page) - }), $(".btnAddCodecProfile", page).on("click", function() { - editCodecProfile(page) - }), $(".btnAddResponseProfile", page).on("click", function() { - editResponseProfile(page) - }), $(".btnAddIdentificationHttpHeader", page).on("click", function() { - editIdentificationHeader(page) - }), $(".btnAddXmlDocumentAttribute", page).on("click", function() { - editXmlDocumentAttribute(page) - }), $(".btnAddSubtitleProfile", page).on("click", function() { - editSubtitleProfile(page) - }), $(".dlnaProfileForm").off("submit", DlnaProfilePage.onSubmit).on("submit", DlnaProfilePage.onSubmit), $(".editDirectPlayProfileForm").off("submit", DlnaProfilePage.onDirectPlayFormSubmit).on("submit", DlnaProfilePage.onDirectPlayFormSubmit), $(".transcodingProfileForm").off("submit", DlnaProfilePage.onTranscodingProfileFormSubmit).on("submit", DlnaProfilePage.onTranscodingProfileFormSubmit), $(".containerProfileForm").off("submit", DlnaProfilePage.onContainerProfileFormSubmit).on("submit", DlnaProfilePage.onContainerProfileFormSubmit), $(".codecProfileForm").off("submit", DlnaProfilePage.onCodecProfileFormSubmit).on("submit", DlnaProfilePage.onCodecProfileFormSubmit), $(".editResponseProfileForm").off("submit", DlnaProfilePage.onResponseProfileFormSubmit).on("submit", DlnaProfilePage.onResponseProfileFormSubmit), $(".identificationHeaderForm").off("submit", DlnaProfilePage.onIdentificationHeaderFormSubmit).on("submit", DlnaProfilePage.onIdentificationHeaderFormSubmit), $(".xmlAttributeForm").off("submit", DlnaProfilePage.onXmlAttributeFormSubmit).on("submit", DlnaProfilePage.onXmlAttributeFormSubmit), $(".subtitleProfileForm").off("submit", DlnaProfilePage.onSubtitleProfileFormSubmit).on("submit", DlnaProfilePage.onSubtitleProfileFormSubmit) - }).on("pageshow", "#dlnaProfilePage", function() { + $(".radioTabButton", page).on("click", function () { + $(this).siblings().removeClass("ui-btn-active"); + $(this).addClass("ui-btn-active"); + var value = "A" == this.tagName ? this.getAttribute("data-value") : this.value; + var elem = $("." + value, page); + elem.siblings(".tabContent").hide(); + elem.show(); + }); + $("#selectDirectPlayProfileType", page).on("change", function () { + if ("Video" == this.value) { + $("#fldDirectPlayVideoCodec", page).show(); + } else { + $("#fldDirectPlayVideoCodec", page).hide(); + } + + if ("Photo" == this.value) { + $("#fldDirectPlayAudioCodec", page).hide(); + } else { + $("#fldDirectPlayAudioCodec", page).show(); + } + }); + $("#selectTranscodingProfileType", page).on("change", function () { + if ("Video" == this.value) { + $("#fldTranscodingVideoCodec", page).show(); + $("#fldTranscodingProtocol", page).show(); + $("#fldEnableMpegtsM2TsMode", page).show(); + } else { + $("#fldTranscodingVideoCodec", page).hide(); + $("#fldTranscodingProtocol", page).hide(); + $("#fldEnableMpegtsM2TsMode", page).hide(); + } + + if ("Photo" == this.value) { + $("#fldTranscodingAudioCodec", page).hide(); + $("#fldEstimateContentLength", page).hide(); + $("#fldReportByteRangeRequests", page).hide(); + } else { + $("#fldTranscodingAudioCodec", page).show(); + $("#fldEstimateContentLength", page).show(); + $("#fldReportByteRangeRequests", page).show(); + } + }); + $("#selectResponseProfileType", page).on("change", function () { + if ("Video" == this.value) { + $("#fldResponseProfileVideoCodec", page).show(); + } else { + $("#fldResponseProfileVideoCodec", page).hide(); + } + + if ("Photo" == this.value) { + $("#fldResponseProfileAudioCodec", page).hide(); + } else { + $("#fldResponseProfileAudioCodec", page).show(); + } + }); + $(".btnAddDirectPlayProfile", page).on("click", function () { + editDirectPlayProfile(page); + }); + $(".btnAddTranscodingProfile", page).on("click", function () { + editTranscodingProfile(page); + }); + $(".btnAddContainerProfile", page).on("click", function () { + editContainerProfile(page); + }); + $(".btnAddCodecProfile", page).on("click", function () { + editCodecProfile(page); + }); + $(".btnAddResponseProfile", page).on("click", function () { + editResponseProfile(page); + }); + $(".btnAddIdentificationHttpHeader", page).on("click", function () { + editIdentificationHeader(page); + }); + $(".btnAddXmlDocumentAttribute", page).on("click", function () { + editXmlDocumentAttribute(page); + }); + $(".btnAddSubtitleProfile", page).on("click", function () { + editSubtitleProfile(page); + }); + $(".dlnaProfileForm").off("submit", DlnaProfilePage.onSubmit).on("submit", DlnaProfilePage.onSubmit); + $(".editDirectPlayProfileForm").off("submit", DlnaProfilePage.onDirectPlayFormSubmit).on("submit", DlnaProfilePage.onDirectPlayFormSubmit); + $(".transcodingProfileForm").off("submit", DlnaProfilePage.onTranscodingProfileFormSubmit).on("submit", DlnaProfilePage.onTranscodingProfileFormSubmit); + $(".containerProfileForm").off("submit", DlnaProfilePage.onContainerProfileFormSubmit).on("submit", DlnaProfilePage.onContainerProfileFormSubmit); + $(".codecProfileForm").off("submit", DlnaProfilePage.onCodecProfileFormSubmit).on("submit", DlnaProfilePage.onCodecProfileFormSubmit); + $(".editResponseProfileForm").off("submit", DlnaProfilePage.onResponseProfileFormSubmit).on("submit", DlnaProfilePage.onResponseProfileFormSubmit); + $(".identificationHeaderForm").off("submit", DlnaProfilePage.onIdentificationHeaderFormSubmit).on("submit", DlnaProfilePage.onIdentificationHeaderFormSubmit); + $(".xmlAttributeForm").off("submit", DlnaProfilePage.onXmlAttributeFormSubmit).on("submit", DlnaProfilePage.onXmlAttributeFormSubmit); + $(".subtitleProfileForm").off("submit", DlnaProfilePage.onSubtitleProfileFormSubmit).on("submit", DlnaProfilePage.onSubtitleProfileFormSubmit); + }).on("pageshow", "#dlnaProfilePage", function () { var page = this; - $("#radioInfo", page).trigger("click"), loadProfile(page) - }), window.DlnaProfilePage = { - onSubmit: function() { - return loading.show(), saveProfile($(this).parents(".page"), currentProfile), !1 + $("#radioInfo", page).trigger("click"); + loadProfile(page); + }); + window.DlnaProfilePage = { + onSubmit: function () { + loading.show(); + saveProfile($(this).parents(".page"), currentProfile); + return false; }, - onDirectPlayFormSubmit: function() { - return saveDirectPlayProfile($(this).parents(".page")), !1 + onDirectPlayFormSubmit: function () { + saveDirectPlayProfile($(this).parents(".page")); + return false; }, - onTranscodingProfileFormSubmit: function() { - return saveTranscodingProfile($(this).parents(".page")), !1 + onTranscodingProfileFormSubmit: function () { + saveTranscodingProfile($(this).parents(".page")); + return false; }, - onContainerProfileFormSubmit: function() { - return saveContainerProfile($(this).parents(".page")), !1 + onContainerProfileFormSubmit: function () { + saveContainerProfile($(this).parents(".page")); + return false; }, - onCodecProfileFormSubmit: function() { - return saveCodecProfile($(this).parents(".page")), !1 + onCodecProfileFormSubmit: function () { + saveCodecProfile($(this).parents(".page")); + return false; }, - onResponseProfileFormSubmit: function() { - return saveResponseProfile($(this).parents(".page")), !1 + onResponseProfileFormSubmit: function () { + saveResponseProfile($(this).parents(".page")); + return false; }, - onIdentificationHeaderFormSubmit: function() { - return saveIdentificationHeader($(this).parents(".page")), !1 + onIdentificationHeaderFormSubmit: function () { + saveIdentificationHeader($(this).parents(".page")); + return false; }, - onXmlAttributeFormSubmit: function() { - return saveXmlDocumentAttribute($(this).parents(".page")), !1 + onXmlAttributeFormSubmit: function () { + saveXmlDocumentAttribute($(this).parents(".page")); + return false; }, - onSubtitleProfileFormSubmit: function() { - return saveSubtitleProfile($(this).parents(".page")), !1 + onSubtitleProfileFormSubmit: function () { + saveSubtitleProfile($(this).parents(".page")); + return false; } - } -}); \ No newline at end of file + }; +}); From 315cbb1fc6d4b4a4e3749f3218303b0598ab95f8 Mon Sep 17 00:00:00 2001 From: vitorsemeano Date: Tue, 2 Apr 2019 23:17:03 +0100 Subject: [PATCH 05/12] refactor strange var names in viewContainer --- src/components/viewContainer.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/components/viewContainer.js b/src/components/viewContainer.js index 67277ddca7..ed2bf461bf 100644 --- a/src/components/viewContainer.js +++ b/src/components/viewContainer.js @@ -187,17 +187,17 @@ define(["browser", "dom", "layoutManager", "css!components/viewManager/viewConta } function beforeAnimate(allPages, newPageIndex, oldPageIndex) { - for (var i__q = 0, length = allPages.length; i__q < length; i__q++) { - if (newPageIndex !== i__q && oldPageIndex !== i__q) { - allPages[i__q].classList.add("hide"); + for (var index = 0, length = allPages.length; index < length; index++) { + if (newPageIndex !== index && oldPageIndex !== index) { + allPages[index].classList.add("hide"); } } } function afterAnimate(allPages, newPageIndex) { - for (var i__w = 0, length = allPages.length; i__w < length; i__w++) { - if (newPageIndex !== i__w) { - allPages[i__w].classList.add("hide"); + for (var index = 0, length = allPages.length; index < length; index++) { + if (newPageIndex !== index) { + allPages[index].classList.add("hide"); } } } From ede8b3397d815965968fe08f56dd065bd2c6e994 Mon Sep 17 00:00:00 2001 From: vitorsemeano Date: Wed, 3 Apr 2019 00:12:02 +0100 Subject: [PATCH 06/12] cleanup data-require in views --- src/addplugin.html | 2 +- src/components/viewManager/viewManager.js | 2 +- src/{scripts => controllers}/dlnaprofile.js | 0 src/{scripts => controllers}/dlnaprofiles.js | 1 + src/{scripts => controllers}/dlnasettings.js | 0 src/controllers/edititemmetadata.js | 2 +- .../encodingsettings.js | 1 + .../livetvguideprovider.js | 0 .../livetvsettings.js | 0 src/{scripts => controllers}/livetvstatus.js | 0 .../medialibrarypage.js | 0 .../metadataimagespage.js | 0 src/{scripts => controllers}/metadatanfo.js | 0 .../notificationsetting.js | 0 .../playbackconfiguration.js | 0 .../serversecurity.js | 0 .../streamingsettings.js | 0 src/{scripts => controllers}/useredit.js | 0 .../userlibraryaccess.js | 0 src/{scripts => controllers}/usernew.js | 0 .../userparentalcontrol.js | 0 .../userprofilespage.js | 0 src/dlnaprofile.html | 2 +- src/dlnaprofiles.html | 2 +- src/dlnasettings.html | 2 +- src/edititemmetadata.html | 2 +- src/encodingsettings.html | 2 +- src/index.html | 2 + src/library.html | 2 +- src/livetvguideprovider.html | 2 +- src/livetvsettings.html | 2 +- src/livetvstatus.html | 2 +- src/metadataimages.html | 2 +- src/metadatanfo.html | 2 +- src/notificationsetting.html | 2 +- src/playbackconfiguration.html | 2 +- src/scripts/routes.js | 64 +++++++++++++------ src/serversecurity.html | 2 +- src/streamingsettings.html | 2 +- src/wizardlibrary.html | 2 +- 40 files changed, 66 insertions(+), 40 deletions(-) rename src/{scripts => controllers}/dlnaprofile.js (100%) rename src/{scripts => controllers}/dlnaprofiles.js (99%) rename src/{scripts => controllers}/dlnasettings.js (100%) rename src/{scripts => controllers}/encodingsettings.js (99%) rename src/{scripts => controllers}/livetvguideprovider.js (100%) rename src/{scripts => controllers}/livetvsettings.js (100%) rename src/{scripts => controllers}/livetvstatus.js (100%) rename src/{scripts => controllers}/medialibrarypage.js (100%) rename src/{scripts => controllers}/metadataimagespage.js (100%) rename src/{scripts => controllers}/metadatanfo.js (100%) rename src/{scripts => controllers}/notificationsetting.js (100%) rename src/{scripts => controllers}/playbackconfiguration.js (100%) rename src/{scripts => controllers}/serversecurity.js (100%) rename src/{scripts => controllers}/streamingsettings.js (100%) rename src/{scripts => controllers}/useredit.js (100%) rename src/{scripts => controllers}/userlibraryaccess.js (100%) rename src/{scripts => controllers}/usernew.js (100%) rename src/{scripts => controllers}/userparentalcontrol.js (100%) rename src/{scripts => controllers}/userprofilespage.js (100%) diff --git a/src/addplugin.html b/src/addplugin.html index adbf9aa0b1..33a418346b 100644 --- a/src/addplugin.html +++ b/src/addplugin.html @@ -1,4 +1,4 @@ -
+
diff --git a/src/components/viewManager/viewManager.js b/src/components/viewManager/viewManager.js index f594e446a2..23612d5a1e 100644 --- a/src/components/viewManager/viewManager.js +++ b/src/components/viewManager/viewManager.js @@ -21,7 +21,7 @@ define(['viewContainer', 'focusManager', 'queryString', 'layoutManager'], functi if (!newView.initComplete) { newView.initComplete = true; - if (options.controllerFactory) { + if (typeof options.controllerFactory === 'function') { // Use controller method var controller = new options.controllerFactory(newView, eventDetail.detail.params); diff --git a/src/scripts/dlnaprofile.js b/src/controllers/dlnaprofile.js similarity index 100% rename from src/scripts/dlnaprofile.js rename to src/controllers/dlnaprofile.js diff --git a/src/scripts/dlnaprofiles.js b/src/controllers/dlnaprofiles.js similarity index 99% rename from src/scripts/dlnaprofiles.js rename to src/controllers/dlnaprofiles.js index b77b31e3b3..95350120c5 100644 --- a/src/scripts/dlnaprofiles.js +++ b/src/controllers/dlnaprofiles.js @@ -54,6 +54,7 @@ define(["jQuery", "globalize", "loading", "libraryMenu", "listViewStyle", "emby- name: globalize.translate("TabProfiles") }] } + $(document).on("pageshow", "#dlnaProfilesPage", function() { libraryMenu.setTabs("dlna", 1, getTabs), loadProfiles(this) }) diff --git a/src/scripts/dlnasettings.js b/src/controllers/dlnasettings.js similarity index 100% rename from src/scripts/dlnasettings.js rename to src/controllers/dlnasettings.js diff --git a/src/controllers/edititemmetadata.js b/src/controllers/edititemmetadata.js index c77c947dae..bb5e70695a 100644 --- a/src/controllers/edititemmetadata.js +++ b/src/controllers/edititemmetadata.js @@ -1,4 +1,4 @@ -define(["loading"], function(loading) { +define(["loading", "scripts/editorsidebar"], function(loading) { "use strict"; function reload(context, itemId) { diff --git a/src/scripts/encodingsettings.js b/src/controllers/encodingsettings.js similarity index 99% rename from src/scripts/encodingsettings.js rename to src/controllers/encodingsettings.js index 13b48151b8..20ca44ffad 100644 --- a/src/scripts/encodingsettings.js +++ b/src/controllers/encodingsettings.js @@ -69,6 +69,7 @@ define(["jQuery", "loading", "globalize", "dom"], function($, loading, globalize -1 === c.getAttribute("data-types").split(",").indexOf(value) ? dom.parentWithTag(c, "LABEL").classList.add("hide") : (dom.parentWithTag(c, "LABEL").classList.remove("hide"), any = !0) }), any ? context.querySelector(".decodingCodecsList").classList.remove("hide") : context.querySelector(".decodingCodecsList").classList.add("hide") } + $(document).on("pageinit", "#encodingSettingsPage", function() { var page = this; page.querySelector("#selectVideoDecoder").addEventListener("change", function() { diff --git a/src/scripts/livetvguideprovider.js b/src/controllers/livetvguideprovider.js similarity index 100% rename from src/scripts/livetvguideprovider.js rename to src/controllers/livetvguideprovider.js diff --git a/src/scripts/livetvsettings.js b/src/controllers/livetvsettings.js similarity index 100% rename from src/scripts/livetvsettings.js rename to src/controllers/livetvsettings.js diff --git a/src/scripts/livetvstatus.js b/src/controllers/livetvstatus.js similarity index 100% rename from src/scripts/livetvstatus.js rename to src/controllers/livetvstatus.js diff --git a/src/scripts/medialibrarypage.js b/src/controllers/medialibrarypage.js similarity index 100% rename from src/scripts/medialibrarypage.js rename to src/controllers/medialibrarypage.js diff --git a/src/scripts/metadataimagespage.js b/src/controllers/metadataimagespage.js similarity index 100% rename from src/scripts/metadataimagespage.js rename to src/controllers/metadataimagespage.js diff --git a/src/scripts/metadatanfo.js b/src/controllers/metadatanfo.js similarity index 100% rename from src/scripts/metadatanfo.js rename to src/controllers/metadatanfo.js diff --git a/src/scripts/notificationsetting.js b/src/controllers/notificationsetting.js similarity index 100% rename from src/scripts/notificationsetting.js rename to src/controllers/notificationsetting.js diff --git a/src/scripts/playbackconfiguration.js b/src/controllers/playbackconfiguration.js similarity index 100% rename from src/scripts/playbackconfiguration.js rename to src/controllers/playbackconfiguration.js diff --git a/src/scripts/serversecurity.js b/src/controllers/serversecurity.js similarity index 100% rename from src/scripts/serversecurity.js rename to src/controllers/serversecurity.js diff --git a/src/scripts/streamingsettings.js b/src/controllers/streamingsettings.js similarity index 100% rename from src/scripts/streamingsettings.js rename to src/controllers/streamingsettings.js diff --git a/src/scripts/useredit.js b/src/controllers/useredit.js similarity index 100% rename from src/scripts/useredit.js rename to src/controllers/useredit.js diff --git a/src/scripts/userlibraryaccess.js b/src/controllers/userlibraryaccess.js similarity index 100% rename from src/scripts/userlibraryaccess.js rename to src/controllers/userlibraryaccess.js diff --git a/src/scripts/usernew.js b/src/controllers/usernew.js similarity index 100% rename from src/scripts/usernew.js rename to src/controllers/usernew.js diff --git a/src/scripts/userparentalcontrol.js b/src/controllers/userparentalcontrol.js similarity index 100% rename from src/scripts/userparentalcontrol.js rename to src/controllers/userparentalcontrol.js diff --git a/src/scripts/userprofilespage.js b/src/controllers/userprofilespage.js similarity index 100% rename from src/scripts/userprofilespage.js rename to src/controllers/userprofilespage.js diff --git a/src/dlnaprofile.html b/src/dlnaprofile.html index ded82999e7..93c7207e4c 100644 --- a/src/dlnaprofile.html +++ b/src/dlnaprofile.html @@ -1,4 +1,4 @@ -
+
diff --git a/src/dlnaprofiles.html b/src/dlnaprofiles.html index cbf4d3b69b..ef1c353d46 100644 --- a/src/dlnaprofiles.html +++ b/src/dlnaprofiles.html @@ -1,4 +1,4 @@ -
+
diff --git a/src/dlnasettings.html b/src/dlnasettings.html index 5eb5cd452d..c93aeb226f 100644 --- a/src/dlnasettings.html +++ b/src/dlnasettings.html @@ -1,4 +1,4 @@ -
+
diff --git a/src/edititemmetadata.html b/src/edititemmetadata.html index 86712a24fa..2fe57813dd 100644 --- a/src/edititemmetadata.html +++ b/src/edititemmetadata.html @@ -1,4 +1,4 @@ -
+
+ +
diff --git a/src/library.html b/src/library.html index 23d83044da..6db2e39331 100644 --- a/src/library.html +++ b/src/library.html @@ -1,4 +1,4 @@ -
+
diff --git a/src/livetvguideprovider.html b/src/livetvguideprovider.html index 52dfbdd338..86bf3ea7d6 100644 --- a/src/livetvguideprovider.html +++ b/src/livetvguideprovider.html @@ -1,4 +1,4 @@ -
+
diff --git a/src/livetvsettings.html b/src/livetvsettings.html index 6e91d1ce5b..40c93fb25f 100644 --- a/src/livetvsettings.html +++ b/src/livetvsettings.html @@ -1,4 +1,4 @@ -
+
diff --git a/src/livetvstatus.html b/src/livetvstatus.html index f2e2b4c4bd..e5250c11d4 100644 --- a/src/livetvstatus.html +++ b/src/livetvstatus.html @@ -1,4 +1,4 @@ -
+
diff --git a/src/metadataimages.html b/src/metadataimages.html index e2529f30fd..8250572011 100644 --- a/src/metadataimages.html +++ b/src/metadataimages.html @@ -1,4 +1,4 @@ -
+
diff --git a/src/metadatanfo.html b/src/metadatanfo.html index a493677ba9..7263952b42 100644 --- a/src/metadatanfo.html +++ b/src/metadatanfo.html @@ -1,4 +1,4 @@ -
+
diff --git a/src/notificationsetting.html b/src/notificationsetting.html index ffce9edbe6..661793adaf 100644 --- a/src/notificationsetting.html +++ b/src/notificationsetting.html @@ -1,4 +1,4 @@ -
+
diff --git a/src/playbackconfiguration.html b/src/playbackconfiguration.html index 66d1a29f1c..98e302a5c3 100644 --- a/src/playbackconfiguration.html +++ b/src/playbackconfiguration.html @@ -1,4 +1,4 @@ -
+
diff --git a/src/scripts/routes.js b/src/scripts/routes.js index c96fa0fb68..31121b2c15 100644 --- a/src/scripts/routes.js +++ b/src/scripts/routes.js @@ -1,4 +1,5 @@ define([ + "jQuery", "emby-button", "emby-input", "scripts/livetvcomponents", @@ -10,7 +11,8 @@ define([ "emby-checkbox", "emby-slider", "listViewStyle", - "dashboardcss"], function () { + "dashboardcss", + "detailtablecss"], function () { function defineRoute(newRoute) { var path = newRoute.path; @@ -76,17 +78,20 @@ define([ defineRoute({ path: "/dlnaprofile.html", autoFocus: false, - roles: "admin" + roles: "admin", + controller: "dlnaprofile" }); defineRoute({ path: "/dlnaprofiles.html", autoFocus: false, - roles: "admin" + roles: "admin", + controller: "dlnaprofiles" }); defineRoute({ path: "/dlnasettings.html", autoFocus: false, - roles: "admin" + roles: "admin", + controller: "dlnasettings" }); defineRoute({ path: "/edititemmetadata.html", @@ -96,7 +101,8 @@ define([ defineRoute({ path: "/encodingsettings.html", autoFocus: false, - roles: "admin" + roles: "admin", + controller: "encodingsettings" }); defineRoute({ path: "/forgotpassword.html", @@ -138,7 +144,8 @@ define([ defineRoute({ path: "/library.html", autoFocus: false, - roles: "admin" + roles: "admin", + controller: "medialibrarypage" }); defineRoute({ path: "/librarydisplay.html", @@ -161,16 +168,19 @@ define([ defineRoute({ path: "/livetvguideprovider.html", autoFocus: false, - roles: "admin" + roles: "admin", + controller: "livetvguideprovider" }); defineRoute({ path: "/livetvsettings.html", - autoFocus: false + autoFocus: false, + controller: "livetvsettings" }); defineRoute({ path: "/livetvstatus.html", autoFocus: false, - roles: "admin" + roles: "admin", + controller: "livetvstatus" }); defineRoute({ path: "/livetvtuner.html", @@ -198,12 +208,14 @@ define([ defineRoute({ path: "/metadataimages.html", autoFocus: false, - roles: "admin" + roles: "admin", + controller: "metadataimagespage" }); defineRoute({ path: "/metadatanfo.html", autoFocus: false, - roles: "admin" + roles: "admin", + controller: "metadatanfo" }); defineRoute({ path: "/movies.html", @@ -256,7 +268,8 @@ define([ defineRoute({ path: "/notificationsetting.html", autoFocus: false, - roles: "admin" + roles: "admin", + controller: "notificationsetting" }); defineRoute({ path: "/notificationsettings.html", @@ -276,7 +289,8 @@ define([ defineRoute({ path: "/playbackconfiguration.html", autoFocus: false, - roles: "admin" + roles: "admin", + controller: "playbackconfiguration" }); defineRoute({ path: "/availableplugins.html", @@ -322,12 +336,14 @@ define([ defineRoute({ path: "/serversecurity.html", autoFocus: false, - roles: "admin" + roles: "admin", + controller: "serversecurity" }); defineRoute({ path: "/streamingsettings.html", autoFocus: false, - roles: "admin" + roles: "admin", + controller: "streamingsettings" }); defineRoute({ path: "/support.html", @@ -343,22 +359,26 @@ define([ defineRoute({ path: "/useredit.html", autoFocus: false, - roles: "admin" + roles: "admin", + controller: "useredit" }); defineRoute({ path: "/userlibraryaccess.html", autoFocus: false, - roles: "admin" + roles: "admin", + controller: "userlibraryaccess" }); defineRoute({ path: "/usernew.html", autoFocus: false, - roles: "admin" + roles: "admin", + controller: "usernew" }); defineRoute({ path: "/userparentalcontrol.html", autoFocus: false, - roles: "admin" + roles: "admin", + controller: "userparentalcontrol" }); defineRoute({ path: "/userpassword.html", @@ -368,7 +388,8 @@ define([ defineRoute({ path: "/userprofiles.html", autoFocus: false, - roles: "admin" + roles: "admin", + controller: "userprofilespage" }); defineRoute({ path: "/wizardremoteaccess.html", @@ -385,7 +406,8 @@ define([ defineRoute({ path: "/wizardlibrary.html", autoFocus: false, - anonymous: true + anonymous: true, + controller: "medialibrarypage" }); defineRoute({ path: "/wizardsettings.html", diff --git a/src/serversecurity.html b/src/serversecurity.html index 2712875b1c..4df33acc60 100644 --- a/src/serversecurity.html +++ b/src/serversecurity.html @@ -1,4 +1,4 @@ -
+
diff --git a/src/streamingsettings.html b/src/streamingsettings.html index 07a0dfba56..7130480beb 100644 --- a/src/streamingsettings.html +++ b/src/streamingsettings.html @@ -1,4 +1,4 @@ -
+
diff --git a/src/wizardlibrary.html b/src/wizardlibrary.html index 16dd9488a6..71ec0ab9b4 100644 --- a/src/wizardlibrary.html +++ b/src/wizardlibrary.html @@ -1,4 +1,4 @@ -
+
From 6502446f886832eff592939cb88f7504871b63c0 Mon Sep 17 00:00:00 2001 From: vitorsemeano Date: Wed, 3 Apr 2019 00:14:49 +0100 Subject: [PATCH 07/12] cleanup remaining data-requires in views --- src/useredit.html | 2 +- src/userlibraryaccess.html | 2 +- src/usernew.html | 2 +- src/userparentalcontrol.html | 2 +- src/userprofiles.html | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/useredit.html b/src/useredit.html index 1efaff555c..76bead82fa 100644 --- a/src/useredit.html +++ b/src/useredit.html @@ -1,4 +1,4 @@ -
+
diff --git a/src/userlibraryaccess.html b/src/userlibraryaccess.html index 2a21c2f419..8cf6098266 100644 --- a/src/userlibraryaccess.html +++ b/src/userlibraryaccess.html @@ -1,4 +1,4 @@ -
+
diff --git a/src/usernew.html b/src/usernew.html index 55eda8ea7c..f53bc60b9f 100644 --- a/src/usernew.html +++ b/src/usernew.html @@ -1,4 +1,4 @@ -
+
diff --git a/src/userparentalcontrol.html b/src/userparentalcontrol.html index d1c9c3350e..665965120e 100644 --- a/src/userparentalcontrol.html +++ b/src/userparentalcontrol.html @@ -1,4 +1,4 @@ -
+
diff --git a/src/userprofiles.html b/src/userprofiles.html index aee6e9f2c9..669afb0475 100644 --- a/src/userprofiles.html +++ b/src/userprofiles.html @@ -1,4 +1,4 @@ -
+
From ce51c8012ddbc0557123bfd95c46710fa320ea4a Mon Sep 17 00:00:00 2001 From: vitorsemeano Date: Wed, 3 Apr 2019 00:20:09 +0100 Subject: [PATCH 08/12] cleanup data-require from viewContainer --- src/components/viewContainer.js | 127 ++++++++++++++------------------ 1 file changed, 57 insertions(+), 70 deletions(-) diff --git a/src/components/viewContainer.js b/src/components/viewContainer.js index ed2bf461bf..e339224679 100644 --- a/src/components/viewContainer.js +++ b/src/components/viewContainer.js @@ -41,98 +41,85 @@ define(["browser", "dom", "layoutManager", "css!components/viewManager/viewConta var isPluginpage = -1 !== options.url.toLowerCase().indexOf("/configurationpage"); var newViewInfo = normalizeNewView(options, isPluginpage); var newView = newViewInfo.elem; - var dependencies = "string" == typeof newView ? null : newView.getAttribute("data-require"); - dependencies = dependencies ? dependencies.split(",") : []; + if (isPluginpage) { - dependencies.push("legacy/dashboard"); + require(["legacy/dashboard"]); } if (newViewInfo.hasjQuerySelect) { - dependencies.push("legacy/selectmenu"); + require(["legacy/selectmenu"]); } if (newViewInfo.hasjQueryChecked) { - dependencies.push("fnchecked"); + require(["fnchecked"]); } - if (newViewInfo.hasjQuery) { - dependencies.push("jQuery"); - } + return new Promise(function (resolve) { + var currentPage = allPages[pageIndex]; - if (isPluginpage || newView.classList && newView.classList.contains("type-interior")) { - dependencies.push("dashboardcss"); - } + if (currentPage) { + triggerDestroy(currentPage); + } - return new Promise(function (resolve, reject) { - dependencies.join(","); + var view = newView; - require(dependencies, function () { - var currentPage = allPages[pageIndex]; + if ("string" == typeof view) { + view = document.createElement("div"); + view.innerHTML = newView; + } - if (currentPage) { - triggerDestroy(currentPage); - } + view.classList.add("mainAnimatedPage"); - var view = newView; - - if ("string" == typeof view) { - view = document.createElement("div"); - view.innerHTML = newView; - } - - view.classList.add("mainAnimatedPage"); - - if (currentPage) { - if (newViewInfo.hasScript && window.$) { - view = $(view).appendTo(mainAnimatedPages)[0]; - mainAnimatedPages.removeChild(currentPage); - } else { - mainAnimatedPages.replaceChild(view, currentPage); - } + if (currentPage) { + if (newViewInfo.hasScript && window.$) { + view = $(view).appendTo(mainAnimatedPages)[0]; + mainAnimatedPages.removeChild(currentPage); } else { - if (newViewInfo.hasScript && window.$) { - view = $(view).appendTo(mainAnimatedPages)[0]; - } else { - mainAnimatedPages.appendChild(view); - } + mainAnimatedPages.replaceChild(view, currentPage); + } + } else { + if (newViewInfo.hasScript && window.$) { + view = $(view).appendTo(mainAnimatedPages)[0]; + } else { + mainAnimatedPages.appendChild(view); + } + } + + if (options.type) { + view.setAttribute("data-type", options.type); + } + + var properties = []; + + if (options.fullscreen) { + properties.push("fullscreen"); + } + + if (properties.length) { + view.setAttribute("data-properties", properties.join(",")); + } + + allPages[pageIndex] = view; + setControllerClass(view, options).then(function () { + if (onBeforeChange) { + onBeforeChange(view, false, options); } - if (options.type) { - view.setAttribute("data-type", options.type); + beforeAnimate(allPages, pageIndex, selected); + selectedPageIndex = pageIndex; + currentUrls[pageIndex] = options.url; + + if (!options.cancel && previousAnimatable) { + afterAnimate(allPages, pageIndex); } - var properties = []; - - if (options.fullscreen) { - properties.push("fullscreen"); + if (window.$) { + $.mobile = $.mobile || {}; + $.mobile.activePage = view; } - if (properties.length) { - view.setAttribute("data-properties", properties.join(",")); - } - - allPages[pageIndex] = view; - setControllerClass(view, options).then(function () { - if (onBeforeChange) { - onBeforeChange(view, false, options); - } - - beforeAnimate(allPages, pageIndex, selected); - selectedPageIndex = pageIndex; - currentUrls[pageIndex] = options.url; - - if (!options.cancel && previousAnimatable) { - afterAnimate(allPages, pageIndex); - } - - if (window.$) { - $.mobile = $.mobile || {}; - $.mobile.activePage = view; - } - - resolve(view); - }); + resolve(view); }); }); } From 1da48cd36357e967135251c3c3d9af7f19cb9701 Mon Sep 17 00:00:00 2001 From: vitorsemeano Date: Wed, 3 Apr 2019 22:27:57 +0100 Subject: [PATCH 09/12] removed all vibrant references (dead module) --- src/components/favoriteitems.js | 3 +- src/components/images/imageLoader.js | 131 +-------------------------- src/controllers/favorites.js | 1 - src/controllers/musicrecommended.js | 3 - src/scripts/livetvrecordings.js | 1 - src/scripts/livetvschedule.js | 1 - src/scripts/moviecollections.js | 6 +- src/scripts/moviegenres.js | 2 - src/scripts/movietrailers.js | 6 +- src/scripts/musicgenres.js | 6 +- src/scripts/musicplaylists.js | 3 +- src/scripts/playlists.js | 6 +- src/scripts/site.js | 1 - src/scripts/tvgenres.js | 2 - src/scripts/tvlatest.js | 1 - src/scripts/tvupcoming.js | 1 - 16 files changed, 11 insertions(+), 163 deletions(-) diff --git a/src/components/favoriteitems.js b/src/components/favoriteitems.js index e50bc1c532..396d4d3c22 100644 --- a/src/components/favoriteitems.js +++ b/src/components/favoriteitems.js @@ -132,8 +132,7 @@ define(["loading", "libraryBrowser", "cardBuilder", "dom", "apphost", "imageLoad overlayMoreButton: section.overlayMoreButton && !cardLayout, action: section.action, allowBottomPadding: !enableScrollX(), - cardLayout: cardLayout, - vibrant: supportsImageAnalysis && cardLayout + cardLayout: cardLayout }), html += "
" } elem.innerHTML = html, imageLoader.lazyChildren(elem) diff --git a/src/components/images/imageLoader.js b/src/components/images/imageLoader.js index 106de3a696..2a77daa216 100644 --- a/src/components/images/imageLoader.js +++ b/src/components/images/imageLoader.js @@ -30,9 +30,7 @@ define(['lazyLoader', 'imageFetcher', 'layoutManager', 'browser', 'appSettings', function fillImageElement(elem, source, enableEffects) { imageFetcher.loadImage(elem, source).then(function () { - var fillingVibrant = false;//fillVibrant(elem, source); - - if (enableFade && enableEffects !== false && !fillingVibrant) { + if (enableFade && enableEffects !== false) { fadeIn(elem); } @@ -40,131 +38,6 @@ define(['lazyLoader', 'imageFetcher', 'layoutManager', 'browser', 'appSettings', }); } - function fillVibrant(img, url, canvas, canvasContext) { - - var vibrantElement = img.getAttribute('data-vibrant'); - if (!vibrantElement) { - return false; - } - - if (window.Vibrant) { - fillVibrantOnLoaded(img, url, vibrantElement, canvas, canvasContext); - return true; - } - - require(['vibrant'], function () { - fillVibrantOnLoaded(img, url, vibrantElement, canvas, canvasContext); - }); - return true; - } - - function fillVibrantOnLoaded(img, url, vibrantElement) { - - vibrantElement = document.getElementById(vibrantElement); - if (!vibrantElement) { - return; - } - - requestIdleCallback(function () { - - //var now = new Date().getTime(); - getVibrantInfoFromElement(img, url).then(function (vibrantInfo) { - - var swatch = vibrantInfo.split('|'); - //console.log('vibrant took ' + (new Date().getTime() - now) + 'ms'); - if (swatch.length) { - - var index = 0; - var style = vibrantElement.style; - style.backgroundColor = swatch[index]; - style.color = swatch[index + 1]; - - var classList = vibrantElement.classList; - - if (classList.contains('cardFooter')) { - classList.add('cardFooter-vibrant'); - } else { - classList.add('vibrant'); - } - } - }); - }); - /* - * Results into: - * Vibrant #7a4426 - * Muted #7b9eae - * DarkVibrant #348945 - * DarkMuted #141414 - * LightVibrant #f3ccb4 - */ - } - - function getVibrantInfoFromElement(elem, url) { - - return new Promise(function (resolve, reject) { - - require(['vibrant'], function () { - - if (elem.tagName === 'IMG') { - resolve(getVibrantInfo(elem, url)); - return; - } - - var img = new Image(); - img.onload = function () { - resolve(getVibrantInfo(img, url)); - }; - img.src = url; - }); - }); - } - - function getSettingsKey(url) { - - var parts = url.split('://'); - url = parts[parts.length - 1]; - - url = url.substring(url.indexOf('/') + 1); - - url = url.split('?')[0]; - - var cacheKey = 'vibrant31'; - //cacheKey = 'vibrant' + new Date().getTime(); - return cacheKey + url; - } - - function getCachedVibrantInfo(url) { - - return appSettings.get(getSettingsKey(url)); - } - - function getVibrantInfo(img, url) { - - var value = getCachedVibrantInfo(url); - if (value) { - return value; - } - - var vibrant = new Vibrant(img); - var swatches = vibrant.swatches(); - - value = ''; - var swatch = swatches.DarkVibrant; - value += getSwatchString(swatch); - - appSettings.set(getSettingsKey(url), value); - - return value; - } - - function getSwatchString(swatch) { - - if (swatch) { - return swatch.getHex() + '|' + swatch.getBodyTextColor() + '|' + swatch.getTitleTextColor(); - } - return '||'; - } - function fadeIn(elem) { var cssClass = 'lazy-image-fadein'; @@ -248,8 +121,6 @@ define(['lazyLoader', 'imageFetcher', 'layoutManager', 'browser', 'appSettings', self.lazyImage = fillImage; self.lazyChildren = lazyChildren; self.getPrimaryImageAspectRatio = getPrimaryImageAspectRatio; - self.getCachedVibrantInfo = getCachedVibrantInfo; - self.getVibrantInfoFromElement = getVibrantInfoFromElement; return self; }); \ No newline at end of file diff --git a/src/controllers/favorites.js b/src/controllers/favorites.js index 096a78275c..3bb8b3b29a 100644 --- a/src/controllers/favorites.js +++ b/src/controllers/favorites.js @@ -167,7 +167,6 @@ define(["appRouter", "cardBuilder", "dom", "globalize", "connectionManager", "ap action: section.action, allowBottomPadding: !enableScrollX(), cardLayout: cardLayout, - vibrant: supportsImageAnalysis && cardLayout, leadingButtons: leadingButtons, lines: lines }) diff --git a/src/controllers/musicrecommended.js b/src/controllers/musicrecommended.js index e0b5a6a9a9..a3a14b51c0 100644 --- a/src/controllers/musicrecommended.js +++ b/src/controllers/musicrecommended.js @@ -41,7 +41,6 @@ define(["browser", "layoutManager", "userSettings", "inputManager", "loading", " overlayPlayButton: !supportsImageAnalysis, allowBottomPadding: !enableScrollX(), cardLayout: supportsImageAnalysis, - vibrant: supportsImageAnalysis, coverImage: !0 }), imageLoader.lazyChildren(elem), loading.hide() }) @@ -78,7 +77,6 @@ define(["browser", "layoutManager", "userSettings", "inputManager", "loading", " overlayMoreButton: !supportsImageAnalysis, allowBottomPadding: !enableScrollX(), cardLayout: supportsImageAnalysis, - vibrant: supportsImageAnalysis, coverImage: !0 }), imageLoader.lazyChildren(itemsContainer) }) @@ -115,7 +113,6 @@ define(["browser", "layoutManager", "userSettings", "inputManager", "loading", " overlayMoreButton: !supportsImageAnalysis, allowBottomPadding: !enableScrollX(), cardLayout: supportsImageAnalysis, - vibrant: supportsImageAnalysis, coverImage: !0 }), imageLoader.lazyChildren(itemsContainer) }) diff --git a/src/scripts/livetvrecordings.js b/src/scripts/livetvrecordings.js index aac880ebda..f82b150a21 100644 --- a/src/scripts/livetvrecordings.js +++ b/src/scripts/livetvrecordings.js @@ -15,7 +15,6 @@ define(["layoutManager", "loading", "cardBuilder", "apphost", "imageLoader", "sc coverImage: !0, cardLayout: !1, centerText: !0, - vibrant: !1, allowBottomPadding: !scrollX, preferThumb: "auto", overlayText: !1 diff --git a/src/scripts/livetvschedule.js b/src/scripts/livetvschedule.js index 8b31d4907b..24ece42dbe 100644 --- a/src/scripts/livetvschedule.js +++ b/src/scripts/livetvschedule.js @@ -19,7 +19,6 @@ define(["layoutManager", "cardBuilder", "apphost", "imageLoader", "loading", "sc coverImage: !0, cardLayout: cardLayout, centerText: !cardLayout, - vibrant: cardLayout && supportsImageAnalysis, allowBottomPadding: !enableScrollX(), preferThumb: "auto" }, cardOptions || {})), imageLoader.lazyChildren(recordingItems) diff --git a/src/scripts/moviecollections.js b/src/scripts/moviecollections.js index ee59475e22..1e83f11f3c 100644 --- a/src/scripts/moviecollections.js +++ b/src/scripts/moviecollections.js @@ -80,8 +80,7 @@ define(["loading", "events", "libraryBrowser", "imageLoader", "listView", "cardB context: "movies", lazy: !0, cardLayout: !0, - showTitle: !0, - vibrant: !0 + showTitle: !0 }) : "Banner" == viewStyle ? cardBuilder.getCardsHtml({ items: result.Items, shape: "banner", @@ -98,8 +97,7 @@ define(["loading", "events", "libraryBrowser", "imageLoader", "listView", "cardB context: "movies", showTitle: !0, centerText: !1, - cardLayout: !0, - vibrant: !0 + cardLayout: !0 }) : cardBuilder.getCardsHtml({ items: result.Items, shape: "auto", diff --git a/src/scripts/moviegenres.js b/src/scripts/moviegenres.js index b3a313a06d..78fd601fd7 100644 --- a/src/scripts/moviegenres.js +++ b/src/scripts/moviegenres.js @@ -80,7 +80,6 @@ define(["layoutManager", "loading", "libraryBrowser", "cardBuilder", "lazyLoader scalable: !0, centerText: !1, cardLayout: !0, - vibrant: supportsImageAnalysis, showYear: !0 }) : "PosterCard" == viewStyle ? cardBuilder.buildCards(result.Items, { itemsContainer: elem, @@ -89,7 +88,6 @@ define(["layoutManager", "loading", "libraryBrowser", "cardBuilder", "lazyLoader scalable: !0, centerText: !1, cardLayout: !0, - vibrant: supportsImageAnalysis, showYear: !0 }) : "Poster" == viewStyle && cardBuilder.buildCards(result.Items, { itemsContainer: elem, diff --git a/src/scripts/movietrailers.js b/src/scripts/movietrailers.js index 268ddba938..d014511eaf 100644 --- a/src/scripts/movietrailers.js +++ b/src/scripts/movietrailers.js @@ -67,8 +67,7 @@ define(["layoutManager", "loading", "events", "libraryBrowser", "imageLoader", " context: "movies", cardLayout: !0, showTitle: !0, - showYear: !0, - vibrant: !0 + showYear: !0 }) : "Banner" == viewStyle ? cardBuilder.getCardsHtml({ items: result.Items, shape: "banner", @@ -84,8 +83,7 @@ define(["layoutManager", "loading", "events", "libraryBrowser", "imageLoader", " context: "movies", showTitle: !0, showYear: !0, - cardLayout: !0, - vibrant: !0 + cardLayout: !0 }) : cardBuilder.getCardsHtml({ items: result.Items, shape: "portrait", diff --git a/src/scripts/musicgenres.js b/src/scripts/musicgenres.js index eb61608643..f66afcdb20 100644 --- a/src/scripts/musicgenres.js +++ b/src/scripts/musicgenres.js @@ -49,15 +49,13 @@ define(["libraryBrowser", "cardBuilder", "apphost", "imageLoader", "loading"], f preferThumb: !0, context: "music", cardLayout: !0, - showTitle: !0, - vibrant: !0 + showTitle: !0 }) : "PosterCard" == viewStyle ? html = cardBuilder.getCardsHtml({ items: result.Items, shape: "auto", context: "music", cardLayout: !0, - showTitle: !0, - vibrant: !0 + showTitle: !0 }) : "Poster" == viewStyle && (html = cardBuilder.getCardsHtml({ items: result.Items, shape: "auto", diff --git a/src/scripts/musicplaylists.js b/src/scripts/musicplaylists.js index 649ce44036..511ace73a7 100644 --- a/src/scripts/musicplaylists.js +++ b/src/scripts/musicplaylists.js @@ -43,8 +43,7 @@ define(["libraryBrowser", "cardBuilder", "apphost", "imageLoader", "loading"], f centerText: !0, overlayPlayButton: !0, allowBottomPadding: !0, - cardLayout: !1, - vibrant: !1 + cardLayout: !1 }); var elem = context.querySelector("#items"); elem.innerHTML = html, imageLoader.lazyChildren(elem), libraryBrowser.saveQueryValues(getSavedQueryKey(), query), loading.hide() diff --git a/src/scripts/playlists.js b/src/scripts/playlists.js index bb5ea1fd02..ee9fac6c58 100644 --- a/src/scripts/playlists.js +++ b/src/scripts/playlists.js @@ -69,8 +69,7 @@ define(["loading", "listView", "cardBuilder", "libraryMenu", "libraryBrowser", " shape: "square", coverImage: !0, showTitle: !0, - cardLayout: !0, - vibrant: !0 + cardLayout: !0 }) : "Thumb" == viewStyle ? cardBuilder.getCardsHtml({ items: result.Items, shape: "backdrop", @@ -83,8 +82,7 @@ define(["loading", "listView", "cardBuilder", "libraryMenu", "libraryBrowser", " shape: "backdrop", showTitle: !0, preferThumb: !0, - cardLayout: !0, - vibrant: !0 + cardLayout: !0 }) : cardBuilder.getCardsHtml({ items: result.Items, shape: "square", diff --git a/src/scripts/site.js b/src/scripts/site.js index 84a87223e7..718dbbb0a7 100644 --- a/src/scripts/site.js +++ b/src/scripts/site.js @@ -673,7 +673,6 @@ var AppInfo = {}; var componentsPath = "components"; var paths = { velocity: bowerPath + "/velocity/velocity.min", - vibrant: bowerPath + "/vibrant/dist/vibrant", ironCardList: "components/ironcardlist/ironcardlist", scrollThreshold: "components/scrollthreshold", playlisteditor: "components/playlisteditor/playlisteditor", diff --git a/src/scripts/tvgenres.js b/src/scripts/tvgenres.js index 8a5d769969..e9559155e1 100644 --- a/src/scripts/tvgenres.js +++ b/src/scripts/tvgenres.js @@ -80,7 +80,6 @@ define(["layoutManager", "loading", "libraryBrowser", "cardBuilder", "lazyLoader scalable: !0, centerText: !1, cardLayout: !0, - vibrant: supportsImageAnalysis, showYear: !0 }) : "PosterCard" == viewStyle ? cardBuilder.buildCards(result.Items, { itemsContainer: elem, @@ -89,7 +88,6 @@ define(["layoutManager", "loading", "libraryBrowser", "cardBuilder", "lazyLoader scalable: !0, centerText: !1, cardLayout: !0, - vibrant: supportsImageAnalysis, showYear: !0 }) : "Poster" == viewStyle && cardBuilder.buildCards(result.Items, { itemsContainer: elem, diff --git a/src/scripts/tvlatest.js b/src/scripts/tvlatest.js index 2f0c4a51aa..006f41e6ce 100644 --- a/src/scripts/tvlatest.js +++ b/src/scripts/tvlatest.js @@ -34,7 +34,6 @@ define(["loading", "components/groupedcards", "cardBuilder", "apphost", "imageLo centerText: !0, lazy: !0, overlayPlayButton: !0, - vibrant: !1, lines: 2 }); var elem = context.querySelector("#latestEpisodes"); diff --git a/src/scripts/tvupcoming.js b/src/scripts/tvupcoming.js index bb760a1a1f..9d6a79a5ef 100644 --- a/src/scripts/tvupcoming.js +++ b/src/scripts/tvupcoming.js @@ -73,7 +73,6 @@ define(["layoutManager", "loading", "datetime", "libraryBrowser", "cardBuilder", overlayText: !1, allowBottomPadding: allowBottomPadding, cardLayout: supportsImageAnalysis, - vibrant: supportsImageAnalysis, overlayMoreButton: !0, missingIndicator: !1 }), html += "
", html += "
" From 3377042ad31b0123a904821c4954956850125563 Mon Sep 17 00:00:00 2001 From: vitorsemeano Date: Wed, 3 Apr 2019 22:33:50 +0100 Subject: [PATCH 10/12] multiple modules resolution --- src/components/{inputmanager.js => inputManager.js} | 0 src/components/{layoutmanager.js => layoutManager.js} | 0 src/components/{pluginmanager.js => pluginManager.js} | 0 src/scripts/site.js | 6 +++--- 4 files changed, 3 insertions(+), 3 deletions(-) rename src/components/{inputmanager.js => inputManager.js} (100%) rename src/components/{layoutmanager.js => layoutManager.js} (100%) rename src/components/{pluginmanager.js => pluginManager.js} (100%) diff --git a/src/components/inputmanager.js b/src/components/inputManager.js similarity index 100% rename from src/components/inputmanager.js rename to src/components/inputManager.js diff --git a/src/components/layoutmanager.js b/src/components/layoutManager.js similarity index 100% rename from src/components/layoutmanager.js rename to src/components/layoutManager.js diff --git a/src/components/pluginmanager.js b/src/components/pluginManager.js similarity index 100% rename from src/components/pluginmanager.js rename to src/components/pluginManager.js diff --git a/src/scripts/site.js b/src/scripts/site.js index 718dbbb0a7..2832d69973 100644 --- a/src/scripts/site.js +++ b/src/scripts/site.js @@ -691,7 +691,7 @@ var AppInfo = {}; visibleinviewport: componentsPath + "/visibleinviewport", browserdeviceprofile: componentsPath + "/browserdeviceprofile", browser: componentsPath + "/browser", - inputManager: componentsPath + "/inputmanager", + inputManager: componentsPath + "/inputManager", qualityoptions: componentsPath + "/qualityoptions", hammer: bowerPath + "/hammerjs/hammer.min", page: "thirdparty/page", @@ -703,7 +703,7 @@ var AppInfo = {}; playQueueManager: componentsPath + "/playback/playqueuemanager", autoPlayDetect: componentsPath + "/playback/autoplaydetect", nowPlayingHelper: componentsPath + "/playback/nowplayinghelper", - pluginManager: componentsPath + "/pluginmanager", + pluginManager: componentsPath + "/pluginManager", packageManager: componentsPath + "/packagemanager" }; paths.hlsjs = bowerPath + "/hlsjs/dist/hls.min"; @@ -777,7 +777,7 @@ var AppInfo = {}; define("homescreenSettings", [componentsPath + "/homescreensettings/homescreensettings"], returnFirstDependency); define("homescreenSettingsDialog", [componentsPath + "/homescreensettings/homescreensettingsdialog"], returnFirstDependency); define("playbackManager", [componentsPath + "/playback/playbackmanager"], getPlaybackManager); - define("layoutManager", [componentsPath + "/layoutmanager", "apphost"], getLayoutManager); + define("layoutManager", [componentsPath + "/layoutManager", "apphost"], getLayoutManager); define("homeSections", [componentsPath + "/homesections/homesections"], returnFirstDependency); define("playMenu", [componentsPath + "/playmenu"], returnFirstDependency); define("refreshDialog", [componentsPath + "/refreshdialog/refreshdialog"], returnFirstDependency); From 0785e6b36c96e4f9068dbe4d26a4894f7cb196f5 Mon Sep 17 00:00:00 2001 From: vitorsemeano Date: Thu, 4 Apr 2019 22:56:43 +0100 Subject: [PATCH 11/12] removed wrongly added scripts in index.html --- src/index.html | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/index.html b/src/index.html index 362c1eeda8..c27740295c 100644 --- a/src/index.html +++ b/src/index.html @@ -55,9 +55,6 @@ width: 10px; } - - -
From ec387c524601310a08b081a2efd4b52f6995edce Mon Sep 17 00:00:00 2001 From: vitorsemeano Date: Sun, 28 Apr 2019 11:38:30 +0100 Subject: [PATCH 12/12] webpack config and package.json for yarn --- package.json | 9 ++ webpack.config.js | 35 +++++ yarn.lock | 324 +++++++++++++++++++++++++++++++++++++++++++++- 3 files changed, 365 insertions(+), 3 deletions(-) create mode 100644 webpack.config.js diff --git a/package.json b/package.json index 1816b6ea91..23adabfde5 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,16 @@ "repository": "https://github.com/jellyfin/jellyfin-web", "license": "GPL-2", "devDependencies": { + "connect": "^3.6.6", + "css-loader": "^2.1.0", + "file-loader": "^3.0.1", + "serve-static": "^1.13.2", + "style-loader": "^0.23.1", "webpack": "^4.29.5", "webpack-cli": "^3.2.3" + }, + "dependencies": { + "howler": "^2.1.1", + "jstree": "^3.3.7" } } diff --git a/webpack.config.js b/webpack.config.js new file mode 100644 index 0000000000..75f6b80d11 --- /dev/null +++ b/webpack.config.js @@ -0,0 +1,35 @@ +const path = require('path'); + +module.exports = { + context: __dirname + '/src', + entry: './scripts/site.js', + output: { + filename: 'main.js', + path: path.resolve(__dirname, 'dist') + }, + + resolve: { + modules: [ + path.resolve(__dirname, 'src/scripts'), + path.resolve(__dirname, 'src/components'), + path.resolve(__dirname, 'src/components/playback'), + path.resolve(__dirname, 'src/components/emby-button'), + path.resolve(__dirname, 'src/components/usersettings'), + path.resolve(__dirname, 'src/components/images'), + path.resolve(__dirname, 'src/bower_components'), + path.resolve(__dirname, 'src/bower_components/apiclient'), + path.resolve(__dirname, 'src/bower_components/apiclient/sync'), + path.resolve(__dirname, 'src/components/cardbuilder'), + 'node_modules' + ] + }, + + module: { + rules: [ + { + test: /\.css$/, + use: ['style-loader', 'css-loader'] + } + ] + } +}; \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index a5cd7a677b..cfd56139ab 100644 --- a/yarn.lock +++ b/yarn.lock @@ -477,7 +477,7 @@ camelcase@^5.0.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.0.0.tgz#03295527d58bd3cd4aa75363f35b2e8d97be2f42" integrity sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA== -chalk@^2.4.1: +chalk@^2.4.1, chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== @@ -599,6 +599,16 @@ concat-stream@^1.5.0: readable-stream "^2.2.2" typedarray "^0.0.6" +connect@^3.6.6: + version "3.6.6" + resolved "https://registry.yarnpkg.com/connect/-/connect-3.6.6.tgz#09eff6c55af7236e137135a72574858b6786f524" + integrity sha1-Ce/2xVr3I24TcTWnJXSFi2eG9SQ= + dependencies: + debug "2.6.9" + finalhandler "1.1.0" + parseurl "~1.3.2" + utils-merge "1.0.1" + console-browserify@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" @@ -697,6 +707,36 @@ crypto-browserify@^3.11.0: randombytes "^2.0.0" randomfill "^1.0.3" +css-loader@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-2.1.0.tgz#42952ac22bca5d076978638e9813abce49b8f0cc" + integrity sha512-MoOu+CStsGrSt5K2OeZ89q3Snf+IkxRfAIt9aAKg4piioTrhtP1iEFPu+OVn3Ohz24FO6L+rw9UJxBILiSBw5Q== + dependencies: + icss-utils "^4.0.0" + loader-utils "^1.2.1" + lodash "^4.17.11" + postcss "^7.0.6" + postcss-modules-extract-imports "^2.0.0" + postcss-modules-local-by-default "^2.0.3" + postcss-modules-scope "^2.0.0" + postcss-modules-values "^2.0.0" + postcss-value-parser "^3.3.0" + schema-utils "^1.0.0" + +css-selector-tokenizer@^0.7.0: + version "0.7.1" + resolved "https://registry.yarnpkg.com/css-selector-tokenizer/-/css-selector-tokenizer-0.7.1.tgz#a177271a8bca5019172f4f891fc6eed9cbf68d5d" + integrity sha512-xYL0AMZJ4gFzJQsHUKa5jiWWi2vH77WVNg7JYRyewwj6oPh4yb/y6Y9ZCw9dsj/9UauMhtuxR+ogQd//EdEVNA== + dependencies: + cssesc "^0.1.0" + fastparse "^1.1.1" + regexpu-core "^1.0.0" + +cssesc@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-0.1.0.tgz#c814903e45623371a0477b40109aaafbeeaddbb4" + integrity sha1-yBSQPkViM3GgR3tAEJqq++6t27Q= + cyclist@~0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-0.2.2.tgz#1b33792e11e914a2fd6d6ed6447464444e5fa640" @@ -707,7 +747,7 @@ date-now@^0.1.4: resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" integrity sha1-6vQ5/U1ISK105cx9vvIAZyueNFs= -debug@^2.1.2, debug@^2.2.0, debug@^2.3.3: +debug@2.6.9, debug@^2.1.2, debug@^2.2.0, debug@^2.3.3: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== @@ -756,6 +796,11 @@ delegates@^1.0.0: resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= +depd@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= + des.js@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz#c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc" @@ -764,6 +809,11 @@ des.js@^1.0.0: inherits "^2.0.1" minimalistic-assert "^1.0.0" +destroy@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" + integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= + detect-file@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7" @@ -798,6 +848,11 @@ duplexify@^3.4.2, duplexify@^3.6.0: readable-stream "^2.0.0" stream-shift "^1.0.0" +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= + elliptic@^6.0.0: version "6.4.1" resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.1.tgz#c2d0b7776911b86722c632c3c06c60f2f819939a" @@ -816,6 +871,11 @@ emojis-list@^2.0.0: resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k= +encodeurl@~1.0.1, encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= + end-of-stream@^1.0.0, end-of-stream@^1.1.0: version "1.4.1" resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43" @@ -839,6 +899,11 @@ errno@^0.1.3, errno@~0.1.7: dependencies: prr "~1.0.1" +escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= + escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" @@ -864,6 +929,11 @@ estraverse@^4.1.0, estraverse@^4.1.1: resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" integrity sha1-De4/7TH81GlhjOc0IJn8GvoL2xM= +etag@~1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= + events@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/events/-/events-3.0.0.tgz#9a0a0dfaf62893d92b875b8f2698ca4114973e88" @@ -949,11 +1019,24 @@ fast-json-stable-stringify@^2.0.0: resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" integrity sha1-1RQsDK7msRifh9OnYREGT4bIu/I= +fastparse@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.2.tgz#91728c5a5942eced8531283c79441ee4122c35a9" + integrity sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ== + figgy-pudding@^3.5.1: version "3.5.1" resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.1.tgz#862470112901c727a0e495a80744bd5baa1d6790" integrity sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w== +file-loader@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-3.0.1.tgz#f8e0ba0b599918b51adfe45d66d1e771ad560faa" + integrity sha512-4sNIOXgtH/9WZq4NvlfU3Opn5ynUsqBwSLyM+I7UOwdGigTBYfVVQEwe/msZNX/j4pCJTIM14Fsw66Svo1oVrw== + dependencies: + loader-utils "^1.0.2" + schema-utils "^1.0.0" + fill-range@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" @@ -964,6 +1047,19 @@ fill-range@^4.0.0: repeat-string "^1.6.1" to-regex-range "^2.1.0" +finalhandler@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.0.tgz#ce0b6855b45853e791b2fcc680046d88253dd7f5" + integrity sha1-zgtoVbRYU+eRsvzGgARtiCU91/U= + dependencies: + debug "2.6.9" + encodeurl "~1.0.1" + escape-html "~1.0.3" + on-finished "~2.3.0" + parseurl "~1.3.2" + statuses "~1.3.1" + unpipe "~1.0.0" + find-cache-dir@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.0.0.tgz#4c1faed59f45184530fb9d7fa123a4d04a98472d" @@ -1010,6 +1106,11 @@ fragment-cache@^0.2.1: dependencies: map-cache "^0.2.2" +fresh@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= + from2@^2.1.0: version "2.3.0" resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" @@ -1197,6 +1298,21 @@ homedir-polyfill@^1.0.1: dependencies: parse-passwd "^1.0.0" +howler@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/howler/-/howler-2.1.1.tgz#b8ae44b83f4b8a5b5ef354030ed0927314d8a996" + integrity sha512-9nwyDCGxhAGMmNXDfMLv0M/uS/WUg2//jG6t96D8DqbbsVZgXQzsP/ZMItbWO/Fqg7Gg69kOv3xVSDzJdd7aqA== + +http-errors@~1.6.2: + version "1.6.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" + integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0= + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.0" + statuses ">= 1.4.0 < 2" + https-browserify@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" @@ -1209,6 +1325,18 @@ iconv-lite@^0.4.4: dependencies: safer-buffer ">= 2.1.2 < 3" +icss-replace-symbols@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded" + integrity sha1-Bupvg2ead0njhs/h/oEq5dsiPe0= + +icss-utils@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-4.0.0.tgz#d52cf4bcdcfa1c45c2dbefb4ffdf6b00ef608098" + integrity sha512-bA/xGiwWM17qjllIs9X/y0EjsB7e0AV08F3OL8UPsoNkNRibIuu8f1eKTnQ8QO1DteKKTxTUAn+IEWUToIwGOA== + dependencies: + postcss "^7.0.5" + ieee754@^1.1.4: version "1.1.12" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.12.tgz#50bf24e5b9c8bb98af4964c941cdb0918da7b60b" @@ -1424,6 +1552,16 @@ isobject@^3.0.0, isobject@^3.0.1: resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= +jquery@>=1.9.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.3.1.tgz#958ce29e81c9790f31be7792df5d4d95fc57fbca" + integrity sha512-Ubldcmxp5np52/ENotGxlLe6aGMvmF4R8S6tZjsP6Knsaxd/xp3Zrh50cG93lR6nPXyUFwzN3ZSOQI0wRJNdGg== + +jsesc@~0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" + integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= + json-parse-better-errors@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" @@ -1441,6 +1579,13 @@ json5@^1.0.1: dependencies: minimist "^1.2.0" +jstree@^3.3.7: + version "3.3.7" + resolved "https://registry.yarnpkg.com/jstree/-/jstree-3.3.7.tgz#41df485d66148836ac389603a3e12f4574b06251" + integrity sha512-yzzalO1TbZ4HdPezO43LesGI4Wv2sB0Nl+4GfwO0YYvehGws5qtTAhlBISxfur9phMLwCtf9GjHlRx2ZLXyRnw== + dependencies: + jquery ">=1.9.1" + kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: version "3.2.2" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" @@ -1477,7 +1622,7 @@ loader-runner@^2.3.0: resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== -loader-utils@^1.1.0: +loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.1: version "1.2.3" resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7" integrity sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA== @@ -1494,6 +1639,11 @@ locate-path@^3.0.0: p-locate "^3.0.0" path-exists "^3.0.0" +lodash@^4.17.11: + version "4.17.11" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d" + integrity sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg== + lru-cache@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" @@ -1585,6 +1735,11 @@ miller-rabin@^4.0.0: bn.js "^4.0.0" brorand "^1.0.1" +mime@1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6" + integrity sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ== + mimic-fn@^1.0.0: version "1.2.0" resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" @@ -1849,6 +2004,13 @@ object.pick@^1.3.0: dependencies: isobject "^3.0.1" +on-finished@~2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" + integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= + dependencies: + ee-first "1.1.1" + once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" @@ -1953,6 +2115,11 @@ parse-passwd@^1.0.0: resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY= +parseurl@~1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.2.tgz#fc289d4ed8993119460c156253262cdc8de65bf3" + integrity sha1-/CidTtiZMRlGDBViUyYs3I3mW/M= + pascalcase@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" @@ -2011,6 +2178,52 @@ posix-character-classes@^0.1.0: resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= +postcss-modules-extract-imports@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz#818719a1ae1da325f9832446b01136eeb493cd7e" + integrity sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ== + dependencies: + postcss "^7.0.5" + +postcss-modules-local-by-default@^2.0.3: + version "2.0.5" + resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-2.0.5.tgz#7f387f68f5555598068e4d6d1ea0b7d6fa984272" + integrity sha512-iFgxlCAVLno5wIJq+4hyuOmc4VjZEZxzpdeuZcBytLNWEK5Bx2oRF9PPcAz5TALbaFvrZm8sJYtJ3hV+tMSEIg== + dependencies: + css-selector-tokenizer "^0.7.0" + postcss "^7.0.6" + postcss-value-parser "^3.3.1" + +postcss-modules-scope@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-2.0.1.tgz#2c0f2394cde4cd09147db054c68917e38f6d43a4" + integrity sha512-7+6k9c3/AuZ5c596LJx9n923A/j3nF3ormewYBF1RrIQvjvjXe1xE8V8A1KFyFwXbvnshT6FBZFX0k/F1igneg== + dependencies: + css-selector-tokenizer "^0.7.0" + postcss "^7.0.6" + +postcss-modules-values@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-2.0.0.tgz#479b46dc0c5ca3dc7fa5270851836b9ec7152f64" + integrity sha512-Ki7JZa7ff1N3EIMlPnGTZfUMe69FFwiQPnVSXC9mnn3jozCRBYIxiZd44yJOV2AmabOo4qFf8s0dC/+lweG7+w== + dependencies: + icss-replace-symbols "^1.1.0" + postcss "^7.0.6" + +postcss-value-parser@^3.3.0, postcss-value-parser@^3.3.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" + integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== + +postcss@^7.0.5, postcss@^7.0.6: + version "7.0.14" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.14.tgz#4527ed6b1ca0d82c53ce5ec1a2041c2346bbd6e5" + integrity sha512-NsbD6XUUMZvBxtQAJuWDJeeC4QFsmWsfozWxCJPWf3M55K9iu2iMDaKqyoOdTJ1R4usBXuxlVFAIo8rZPQD4Bg== + dependencies: + chalk "^2.4.2" + source-map "^0.6.1" + supports-color "^6.1.0" + process-nextick-args@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" @@ -2108,6 +2321,11 @@ randomfill@^1.0.3: randombytes "^2.0.5" safe-buffer "^5.1.0" +range-parser@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" + integrity sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4= + rc@^1.2.7: version "1.2.8" resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" @@ -2140,6 +2358,11 @@ readdirp@^2.2.1: micromatch "^3.1.10" readable-stream "^2.0.2" +regenerate@^1.2.1: + version "1.4.0" + resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11" + integrity sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg== + regex-not@^1.0.0, regex-not@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" @@ -2148,6 +2371,27 @@ regex-not@^1.0.0, regex-not@^1.0.2: extend-shallow "^3.0.2" safe-regex "^1.1.0" +regexpu-core@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-1.0.0.tgz#86a763f58ee4d7c2f6b102e4764050de7ed90c6b" + integrity sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs= + dependencies: + regenerate "^1.2.1" + regjsgen "^0.2.0" + regjsparser "^0.1.4" + +regjsgen@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" + integrity sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc= + +regjsparser@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c" + integrity sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw= + dependencies: + jsesc "~0.5.0" + remove-trailing-separator@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" @@ -2261,11 +2505,40 @@ semver@^5.3.0, semver@^5.5.0: resolved "https://registry.yarnpkg.com/semver/-/semver-5.6.0.tgz#7e74256fbaa49c75aa7c7a205cc22799cac80004" integrity sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg== +send@0.16.2: + version "0.16.2" + resolved "https://registry.yarnpkg.com/send/-/send-0.16.2.tgz#6ecca1e0f8c156d141597559848df64730a6bbc1" + integrity sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw== + dependencies: + debug "2.6.9" + depd "~1.1.2" + destroy "~1.0.4" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "~1.6.2" + mime "1.4.1" + ms "2.0.0" + on-finished "~2.3.0" + range-parser "~1.2.0" + statuses "~1.4.0" + serialize-javascript@^1.4.0: version "1.6.1" resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.6.1.tgz#4d1f697ec49429a847ca6f442a2a755126c4d879" integrity sha512-A5MOagrPFga4YaKQSWHryl7AXvbQkEqpw4NNYMTNYUNV51bA8ABHgYFpqKx+YFFrw59xMV1qGH1R4AgoNIVgCw== +serve-static@^1.13.2: + version "1.13.2" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.13.2.tgz#095e8472fd5b46237db50ce486a43f4b86c6cec1" + integrity sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw== + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.2" + send "0.16.2" + set-blocking@^2.0.0, set-blocking@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" @@ -2296,6 +2569,11 @@ setimmediate@^1.0.4: resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= +setprototypeof@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" + integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== + sha.js@^2.4.0, sha.js@^2.4.8: version "2.4.11" resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" @@ -2412,6 +2690,21 @@ static-extend@^0.1.1: define-property "^0.2.5" object-copy "^0.1.0" +"statuses@>= 1.4.0 < 2": + version "1.5.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= + +statuses@~1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.3.1.tgz#faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e" + integrity sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4= + +statuses@~1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.4.0.tgz#bb73d446da2796106efcc1b601a253d6c46bd087" + integrity sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew== + stream-browserify@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b" @@ -2499,6 +2792,14 @@ strip-json-comments@~2.0.1: resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= +style-loader@^0.23.1: + version "0.23.1" + resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-0.23.1.tgz#cb9154606f3e771ab6c4ab637026a1049174d925" + integrity sha512-XK+uv9kWwhZMZ1y7mysB+zoihsEj4wneFWAS5qoiLwzW0WzSqMrrsIy+a3zkQJq0ipFtBpX5W3MqyRIBF/WFGg== + dependencies: + loader-utils "^1.1.0" + schema-utils "^1.0.0" + supports-color@^5.3.0, supports-color@^5.5.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" @@ -2506,6 +2807,13 @@ supports-color@^5.3.0, supports-color@^5.5.0: dependencies: has-flag "^3.0.0" +supports-color@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" + integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== + dependencies: + has-flag "^3.0.0" + tapable@^1.0.0, tapable@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.1.tgz#4d297923c5a72a42360de2ab52dadfaaec00018e" @@ -2631,6 +2939,11 @@ unique-slug@^2.0.0: dependencies: imurmurhash "^0.1.4" +unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= + unset-value@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" @@ -2688,6 +3001,11 @@ util@^0.11.0: dependencies: inherits "2.0.3" +utils-merge@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= + v8-compile-cache@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.0.2.tgz#a428b28bb26790734c4fc8bc9fa106fccebf6a6c"