define([ "exports", "./../modules/viewmanager/basesettingsview.js", "./../modules/loading/loading.js", "./../modules/common/globalize.js", "./../modules/emby-elements/emby-input/emby-input.js", "./../modules/emby-elements/emby-button/emby-button.js", "./../modules/emby-elements/emby-checkbox/emby-checkbox.js", "./../modules/emby-elements/emby-select/emby-select.js", "./../modules/emby-elements/emby-scroller/emby-scroller.js", "./../modules/layoutmanager.js", "./../modules/common/usersettings/usersettings.js", "./../modules/common/usersettings/usersettingsbuilder.js", "./../modules/emby-apiclient/connectionmanager.js", "./../modules/listview/listview.js", ], function ( _exports, _basesettingsview, _loading, _globalize, _embyInput, _embyButton, _embyCheckbox, _embySelect, _embyScroller, _layoutmanager, _usersettings, _usersettingsbuilder, _connectionmanager, _listview, ) { function getLandingScreenOptionsHtml(type) { return (function (type) { var list = []; return ( "movies" === type ? (list.push({ name: _globalize.default.translate("Movies"), value: "movies", isDefault: !0, }), list.push({ name: _globalize.default.translate("Suggestions"), value: "suggestions", }), list.push({ name: _globalize.default.translate("Favorites"), value: "favorites", }), list.push({ name: _globalize.default.translate("Genres"), value: "genres", }), list.push({ name: _globalize.default.translate("Collections"), value: "collections", }), list.push({ name: _globalize.default.translate("Folders"), value: "folders", })) : "musicvideos" === type ? (list.push({ name: _globalize.default.translate("Videos"), value: "videos", isDefault: !0, }), list.push({ name: _globalize.default.translate("Folders"), value: "folders", })) : "tvshows" === type ? (list.push({ name: _globalize.default.translate("Shows"), value: "shows", isDefault: !0, }), list.push({ name: _globalize.default.translate("Suggestions"), value: "suggestions", }), list.push({ name: _globalize.default.translate("Favorites"), value: "favorites", }), list.push({ name: _globalize.default.translate("Collections"), value: "collections", }), list.push({ name: _globalize.default.translate("Genres"), value: "genres", }), list.push({ name: _globalize.default.translate("Networks"), value: "studios", }), list.push({ name: _globalize.default.translate("Folders"), value: "folders", })) : "music" === type ? (list.push({ name: _globalize.default.translate("Suggestions"), value: "suggestions", isDefault: !0, }), list.push({ name: _globalize.default.translate("Albums"), value: "albums", }), list.push({ name: _globalize.default.translate("HeaderAlbumArtists"), value: "albumartists", }), list.push({ name: _globalize.default.translate("Artists"), value: "artists", }), list.push({ name: _globalize.default.translate("Playlists"), value: "playlists", }), list.push({ name: _globalize.default.translate("Genres"), value: "genres", }), list.push({ name: _globalize.default.translate("Songs"), value: "songs", }), list.push({ name: _globalize.default.translate("Folders"), value: "folders", })) : "audiobooks" === type ? (list.push({ name: _globalize.default.translate("Suggestions"), value: "suggestions", isDefault: !0, }), list.push({ name: _globalize.default.translate("Books"), value: "albums", }), list.push({ name: _globalize.default.translate("Authors"), value: "artists", }), list.push({ name: _globalize.default.translate("Playlists"), value: "playlists", }), list.push({ name: _globalize.default.translate("Genres"), value: "genres", }), list.push({ name: _globalize.default.translate("Folders"), value: "folders", })) : "livetv" === type ? (list.push({ name: _globalize.default.translate("Suggestions"), value: "suggestions", isDefault: !0, }), list.push({ name: _globalize.default.translate("Guide"), value: "guide", }), list.push({ name: _globalize.default.translate("Channels"), value: "channels", })) : "homevideos" === type && (list.push({ name: _globalize.default.translate("Videos"), value: "videos", }), list.push({ name: _globalize.default.translate("Photos"), value: "photos", }), list.push({ name: _globalize.default.translate("Folders"), value: "folders", })), list ); })(type) .map(function (o) { return ( '" ); }) .join(""); } function renderPerLibrarySettings(context, user, userViews) { for ( var context = context.querySelector(".perLibrarySettings"), html = "", i = 0, length = userViews.length; i < length; i++ ) html += (function (item, user) { var html = "", folderId = item.Guid || item.Id; return ( ("Channel" !== item.Type && "boxsets" !== item.CollectionType && "playlists" !== item.CollectionType) || (html = (html = (html += "
") + '
"), (html = (html = -1 === ["playlists", "livetv", "boxsets", "channels"].indexOf( item.CollectionType || "", ) ? (html = html + '" : html) && '
' + html + "
"), ("movies" !== item.CollectionType && "tvshows" !== item.CollectionType && "musicvideos" !== item.CollectionType && "music" !== item.CollectionType && "audiobooks" !== item.CollectionType && "livetv" !== item.CollectionType && "homevideos" !== item.CollectionType) || ((folderId = "landing-" + (user = "livetv" === item.CollectionType ? item.CollectionType : folderId)), (html = (html = (html += '
') + '
")), html && ((html = "" + '
' + '

' + item.Name + "

" + html), (html += "
")), html ); })(userViews[i], user); context.innerHTML = html; } function loadForm(context, user, userSettings, apiClient) { apiClient = apiClient.getUserViews({ IncludeHidden: !0 }, user.Id); return Promise.all([apiClient]).then(function (responses) { !(function (context, result) { var html = ""; (html += result.Items.map(function (view) { var currentHtml = ""; return ( (currentHtml += '
') + '' + '
' + "
" + view.Name + "
" + "
" + ('') + ('') + "
" ); }).join("")), (context.querySelector(".viewOrderList").innerHTML = html); })(context, responses[0]), renderPerLibrarySettings(context, user, responses[0].Items), _loading.default.hide(); }); } function getCheckboxItems(selector, context, isChecked) { for ( var inputs = context.querySelectorAll(selector), list = [], i = 0, length = inputs.length; i < length; i++ ) inputs[i].checked === isChecked && list.push(inputs[i]); return list; } function onSubmit(e) { return e && e.preventDefault(), !1; } function onTVHomeScreenChange() { var fldHomeFocusPreviews = this.closest("form").querySelector( ".fldHomeFocusPreviews", ); _layoutmanager.default.tv && "vertical" === this.value ? fldHomeFocusPreviews.classList.remove("hide") : fldHomeFocusPreviews.classList.add("hide"); } function embed(options, self) { options.element.querySelector(".viewOrderList").addEventListener( "click", function (e) { if ((target = e.target.closest(".btnViewItemMove"))) { var viewItem = target.closest(".viewItem"); if ( (viewItem && (target.classList.contains("btnViewItemDown") ? (target = viewItem.nextElementSibling) && (viewItem.parentNode.removeChild(viewItem), target.parentNode.insertBefore( viewItem, target.nextElementSibling, ), (changed = !0)) : (target = viewItem.previousElementSibling) && (viewItem.parentNode.removeChild(viewItem), target.parentNode.insertBefore(viewItem, target), (changed = !0))), changed) ) { for ( var viewItem = this.options, target = _connectionmanager.default.getApiClient( viewItem.serverId, ), changed = viewItem.userId, viewItem = {}, viewItems = e.target .closest("form") .querySelectorAll(".viewItem"), orderedViews = [], i = 0, length = viewItems.length; i < length; i++ ) orderedViews.push(viewItems[i].getAttribute("data-viewid")); (viewItem.OrderedViews = orderedViews), target.updatePartialUserConfiguration(changed, viewItem); } } }.bind(self), ), options.element .querySelector("form") .addEventListener("submit", onSubmit.bind(self)), options.element.addEventListener( "change", function (e) { var fldIncludeInLatest, options = this.options, apiClient = _connectionmanager.default.getApiClient( options.serverId, ), options = options.userId, context = e.target.closest("form"), chkIncludeInMyMedia = e.target.closest(".chkIncludeInMyMedia"); chkIncludeInMyMedia ? ((fldIncludeInLatest = chkIncludeInMyMedia .closest(".verticalSection") .querySelector(".fldIncludeInLatest")) && (chkIncludeInMyMedia.checked ? fldIncludeInLatest.classList.remove("hide") : fldIncludeInLatest.classList.add("hide")), ((chkIncludeInMyMedia = {}).MyMediaExcludes = getCheckboxItems( ".chkIncludeInMyMedia", context, !1, ).map(function (i) { return i.getAttribute("data-folderid"); })), apiClient.updatePartialUserConfiguration( options, chkIncludeInMyMedia, )) : e.target.closest(".chkIncludeInLatest") && (((fldIncludeInLatest = {}).LatestItemsExcludes = getCheckboxItems(".chkIncludeInLatest", context, !1).map( function (i) { return i.getAttribute("data-folderid"); }, )), apiClient.updatePartialUserConfiguration( options, fldIncludeInLatest, )); }.bind(self), ); self = options.element.querySelector(".selectTVHomeScreenContainer"); _layoutmanager.default.tv ? self.classList.remove("hide") : self.classList.add("hide"), options.element .querySelector(".selectTVHomeScreen") .addEventListener("change", onTVHomeScreenChange); } function HomeScreenSettings(options) { embed((this.options = options), this); } function View(view, params) { _basesettingsview.default.apply(this, arguments); var apiClient = _connectionmanager.default.getApiClient(params.serverId), userId = params.userId || apiClient.getCurrentUserId(), userSettings = userId === apiClient.getCurrentUserId() ? _usersettings.default : new _usersettingsbuilder.default(), apiClient = { serverId: apiClient.serverId(), userId: userId, element: view.querySelector(".settingsContainer"), userSettings: userSettings, }; (this.settingsOptions = apiClient), (this.settingsInstance = new HomeScreenSettings(this.settingsOptions)); } Object.defineProperty(_exports, "__esModule", { value: !0 }), (_exports.default = void 0), (HomeScreenSettings.prototype.loadData = function () { var self = this, context = self.options.element, userId = (_loading.default.show(), self.options.userId), apiClient = _connectionmanager.default.getApiClient( self.options.serverId, ), userSettings = self.options.userSettings; return ( (function (context) { for ( var elems = context.querySelectorAll('option[value="nextup"]'), i = 0, length = elems.length; i < length; i++ ) elems[i].innerHTML = _globalize.default.translate("HeaderNextUp") + " (Legacy)"; })(context), apiClient.getUser(userId).then(function (user) { return ( (self.options.user = user), (userId === apiClient.getCurrentUserId() ? Promise.resolve() : userSettings.setUserInfo(userId, apiClient) ).then(function () { return loadForm(context, user, 0, apiClient); }) ); }) ); }), (HomeScreenSettings.prototype.submit = function () { onSubmit.call(this); }), (HomeScreenSettings.prototype.destroy = function () { this.options = null; }), Object.assign(View.prototype, _basesettingsview.default.prototype), (View.prototype.loadSettingsInternal = function () { var instance = this; return this.settingsInstance.loadData().then(function () { return instance.loadAutoSettings(); }); }), (View.prototype.getAutoSettingsObjectsPromises = function () { var options, list = _basesettingsview.default.prototype.getAutoSettingsObjectsPromises.apply( this, arguments, ); return ( list.push( ((options = this.settingsOptions), Promise.resolve({ key: "userconfiguration", value: options.user.Configuration, })), ), list ); }), (View.prototype.getUserConfigurationUserId = function () { return this.settingsOptions.userId; }), (View.prototype.getNamedSettingsOwner = function (owner) { switch (owner) { case "usersettings": return this.settingsOptions.userSettings; case "userconfiguration": return this.settingsOptions.user.Configuration; default: return _basesettingsview.default.prototype.getNamedSettingsOwner.apply( this, arguments, ); } }), (View.prototype.onPause = function () { this.settingsInstance && this.settingsInstance.submit(), _basesettingsview.default.prototype.onPause.apply(this, arguments); }), (View.prototype.destroy = function () { _basesettingsview.default.prototype.destroy.apply(this, arguments), this.settingsInstance && (this.settingsInstance.destroy(), (this.settingsInstance = null)), (this.settingsOptions = null); }), (_exports.default = View); });