define(["layoutManager", "loading", "datetime", "libraryBrowser", "cardBuilder", "apphost", "imageLoader", "scrollStyles", "emby-itemscontainer"], function(layoutManager, loading, datetime, libraryBrowser, cardBuilder, appHost, imageLoader) { "use strict"; function getUpcomingPromise(context, params) { loading.show(); var query = { Limit: 48, Fields: "AirTime,UserData", UserId: ApiClient.getCurrentUserId(), ImageTypeLimit: 1, EnableImageTypes: "Primary,Backdrop,Banner,Thumb", EnableTotalRecordCount: !1 }; return query.ParentId = params.topParentId, ApiClient.getJSON(ApiClient.getUrl("Shows/Upcoming", query)) } function loadUpcoming(context, params, promise) { promise.then(function(result) { var items = result.Items; items.length ? context.querySelector(".noItemsMessage").style.display = "none" : context.querySelector(".noItemsMessage").style.display = "block", renderUpcoming(context.querySelector("#upcomingItems"), items), loading.hide() }) } function enableScrollX() { return !layoutManager.desktop } function getThumbShape() { return enableScrollX() ? "overflowBackdrop" : "backdrop" } function renderUpcoming(elem, items) { var i, length, groups = [], currentGroupName = "", currentGroup = []; for (i = 0, length = items.length; i < length; i++) { var item = items[i], dateText = ""; if (item.PremiereDate) try { var premiereDate = datetime.parseISO8601Date(item.PremiereDate, !0); dateText = datetime.isRelativeDay(premiereDate, -1) ? Globalize.translate("Yesterday") : datetime.toLocaleDateString(premiereDate, { weekday: "long", month: "short", day: "numeric" }) } catch (err) {} dateText != currentGroupName ? (currentGroup.length && groups.push({ name: currentGroupName, items: currentGroup }), currentGroupName = dateText, currentGroup = [item]) : currentGroup.push(item) } var html = ""; for (i = 0, length = groups.length; i < length; i++) { var group = groups[i]; html += '