define(["loading", "components/categorysyncbuttons", "components/groupedcards", "cardBuilder", "apphost", "imageLoader"], function(loading, categorysyncbuttons, groupedcards, cardBuilder, appHost, imageLoader) { "use strict"; function getLatestPromise(context, params) { loading.show(); var userId = ApiClient.getCurrentUserId(), parentId = params.topParentId, options = { IncludeItemTypes: "Episode", Limit: 30, Fields: "PrimaryImageAspectRatio,BasicSyncInfo", ParentId: parentId, ImageTypeLimit: 1, EnableImageTypes: "Primary,Backdrop,Thumb" }; return ApiClient.getJSON(ApiClient.getUrl("Users/" + userId + "/Items/Latest", options)) } function loadLatest(context, params, promise) { promise.then(function(items) { var html = ""; appHost.supports("imageanalysis"); html += cardBuilder.getCardsHtml({ items: items, shape: "backdrop", preferThumb: !0, showTitle: !0, showSeriesYear: !0, showParentTitle: !0, overlayText: !1, cardLayout: !1, showUnplayedIndicator: !1, showChildCountIndicator: !0, centerText: !0, lazy: !0, overlayPlayButton: !0, vibrant: !1, lines: 2 }); var elem = context.querySelector("#latestEpisodes"); elem.innerHTML = html, imageLoader.lazyChildren(elem), loading.hide() }) } return function(view, params, tabContent) { var self = this; categorysyncbuttons.init(tabContent); var latestPromise; self.preRender = function() { latestPromise = getLatestPromise(view, params) }, self.renderTab = function() { loadLatest(tabContent, params, latestPromise) }, tabContent.querySelector("#latestEpisodes").addEventListener("click", groupedcards.onItemsContainerClick) } });