define(["layoutManager", "loading", "libraryBrowser", "cardBuilder", "lazyLoader", "apphost", "globalize", "appRouter", "dom", "emby-button"], function (layoutManager, loading, libraryBrowser, cardBuilder, lazyLoader, appHost, globalize, appRouter, dom) { "use strict"; return function (view, params, tabContent) { function getPageData() { var key = getSavedQueryKey(); var pageData = data[key]; if (!pageData) { pageData = data[key] = { query: { SortBy: "SortName", SortOrder: "Ascending", IncludeItemTypes: "Series", Recursive: true, EnableTotalRecordCount: false }, view: "Poster" }; pageData.query.ParentId = params.topParentId; libraryBrowser.loadSavedQueryValues(key, pageData.query); } return pageData; } function getQuery() { return getPageData().query; } function getSavedQueryKey() { return libraryBrowser.getSavedQueryKey("seriesgenres"); } function getPromise() { loading.show(); var query = getQuery(); return ApiClient.getGenres(ApiClient.getCurrentUserId(), query); } function enableScrollX() { return !layoutManager.desktop; } function getThumbShape() { return enableScrollX() ? "overflowBackdrop" : "backdrop"; } function getPortraitShape() { return enableScrollX() ? "overflowPortrait" : "portrait"; } function fillItemsContainer(elem) { var id = elem.getAttribute("data-id"); var viewStyle = self.getCurrentViewStyle(); var limit = "Thumb" == viewStyle || "ThumbCard" == viewStyle ? 5 : 9; if (enableScrollX()) { limit = 10; } var enableImageTypes = "Thumb" == viewStyle || "ThumbCard" == viewStyle ? "Primary,Backdrop,Thumb" : "Primary"; var query = { SortBy: "SortName", SortOrder: "Ascending", IncludeItemTypes: "Series", Recursive: true, Fields: "PrimaryImageAspectRatio,MediaSourceCount,BasicSyncInfo", ImageTypeLimit: 1, EnableImageTypes: enableImageTypes, Limit: limit, GenreIds: id, EnableTotalRecordCount: false, ParentId: params.topParentId }; ApiClient.getItems(ApiClient.getCurrentUserId(), query).then(function (result) { var supportsImageAnalysis = appHost.supports("imageanalysis"); if (viewStyle == "Thumb") { cardBuilder.buildCards(result.Items, { itemsContainer: elem, shape: getThumbShape(), preferThumb: true, showTitle: true, scalable: true, centerText: true, overlayMoreButton: true, allowBottomPadding: false }); } else if (viewStyle == "ThumbCard") { cardBuilder.buildCards(result.Items, { itemsContainer: elem, shape: getThumbShape(), preferThumb: true, showTitle: true, scalable: true, centerText: false, cardLayout: true, showYear: true }); } else if (viewStyle == "PosterCard") { cardBuilder.buildCards(result.Items, { itemsContainer: elem, shape: getPortraitShape(), showTitle: true, scalable: true, centerText: false, cardLayout: true, showYear: true }); } else if (viewStyle == "Poster") { cardBuilder.buildCards(result.Items, { itemsContainer: elem, shape: getPortraitShape(), scalable: true, overlayMoreButton: true, allowBottomPadding: false }); } if (result.Items.length >= query.Limit) { tabContent.querySelector(".btnMoreFromGenre" + id + " i").classList.remove("hide"); } }); } function reloadItems(context, promise) { var query = getQuery(); promise.then(function (result) { var elem = context.querySelector("#items"); var html = ""; var items = result.Items; for (var i = 0, length = items.length; i < length; i++) { var item = items[i]; html += '