define([
"exports",
"./../modules/emby-apiclient/connectionmanager.js",
"./../modules/layoutmanager.js",
"./../modules/cardbuilder/cardbuilder.js",
"./../modules/tabbedview/basetab.js",
"./../modules/emby-elements/emby-itemscontainer/emby-itemscontainer.js",
"./../modules/emby-elements/emby-scroller/emby-scroller.js",
], function (
_exports,
_connectionmanager,
_layoutmanager,
_cardbuilder,
_basetab,
_embyItemscontainer,
_embyScroller,
) {
function enableScrollX(section) {
return "resume" === section || _layoutmanager.default.tv;
}
function TvSuggestionsTab(view, params) {
_basetab.default.apply(this, arguments),
(this.view = view),
(this.params = params),
(this.apiClient = _connectionmanager.default.getApiClient(
params.serverId,
)),
(function (view) {
for (
var containers = view.querySelectorAll(".autoScrollSection"),
i = 0,
length = containers.length;
i < length;
i++
) {
var section = containers[i],
html = void 0,
sectionType = section.getAttribute("data-section"),
commands =
"resume" === sectionType
? ' data-commands="removefromresume"'
: "";
(html = enableScrollX(sectionType)
? '
'
: ''),
section.insertAdjacentHTML("beforeend", html);
}
})(view),
(this.resumeItemsContainer = view.querySelector(
".resumeSection .itemsContainer",
)),
(this.resumeItemsContainer.fetchData = function (query) {
var apiClient = this.apiClient,
parentId = this.params.parentId;
return apiClient.getResumableItems(
apiClient.getCurrentUserId(),
Object.assign(
{
IncludeItemTypes: "Episode",
Fields:
this.getRequestedItemFields() + ",PrimaryImageAspectRatio",
ParentId: parentId,
ImageTypeLimit: 1,
EnableImageTypes: this.getRequestedImageTypes(),
},
query,
),
);
}.bind(this)),
(this.resumeItemsContainer.getListOptions = function () {
return {
renderer: _cardbuilder.default,
options: {
preferThumb: !0,
shape: "backdrop",
scalable: !0,
fields: this.enableFocusPreview() ? [] : ["ParentName", "Name"],
centerText: !0,
overlayPlayButton: !0,
cardLayout: !1,
focusTransformTitleAdjust: !0,
animateProgressBar: !0,
},
virtualScrollLayout: "horizontal-grid",
};
}.bind(this)),
(this.resumeItemsContainer.parentContainer =
view.querySelector(".resumeSection")),
this.addFocusBehavior(this.resumeItemsContainer),
(this.latestItemsContainer = view.querySelector(
".latestSection .itemsContainer",
)),
(this.latestItemsContainer.fetchData = function (query) {
var parentId = this.params.parentId;
return this.apiClient.getLatestItems(
Object.assign({
IncludeItemTypes: "Episode",
Limit: 30,
Fields: this.getRequestedItemFields() + ",PrimaryImageAspectRatio",
ParentId: parentId,
ImageTypeLimit: 1,
EnableImageTypes: this.getRequestedImageTypes(),
GroupItems: !1,
}),
query,
);
}.bind(this)),
(this.latestItemsContainer.getListOptions = function () {
return {
renderer: _cardbuilder.default,
options: {
preferThumb: !0,
shape: "backdrop",
scalable: !0,
fields: this.enableFocusPreview() ? [] : ["ParentName", "Name"],
centerText: !0,
overlayPlayButton: !0,
cardLayout: !1,
focusTransformTitleAdjust: !0,
},
virtualScrollLayout: enableScrollX("latest")
? "horizontal-grid"
: "vertical-grid",
};
}.bind(this)),
(this.latestItemsContainer.parentContainer =
view.querySelector(".latestSection")),
this.addFocusBehavior(this.latestItemsContainer),
params.parentId &&
(this.resumeItemsContainer.setAttribute(
"data-parentid",
params.parentId,
),
this.latestItemsContainer.setAttribute(
"data-parentid",
params.parentId,
));
}
Object.defineProperty(_exports, "__esModule", { value: !0 }),
(_exports.default = void 0),
Object.assign(TvSuggestionsTab.prototype, _basetab.default.prototype),
(TvSuggestionsTab.prototype.supportsFocusPreview = function () {
return !0;
}),
(TvSuggestionsTab.prototype.enableFocusPreview = function () {
return _layoutmanager.default.tv && this.supportsFocusPreview();
}),
(TvSuggestionsTab.prototype.onResume = function (options) {
_basetab.default.prototype.onResume.apply(this, arguments);
var promises = [],
instance =
(promises.push(this.resumeItemsContainer.resume(options)),
promises.push(this.latestItemsContainer.resume(options)),
this);
Promise.all(promises).then(function () {
options.autoFocus && instance.autoFocus(),
instance.fillFocusPreviewIfNeeded();
});
}),
(TvSuggestionsTab.prototype.onPause = function () {
_basetab.default.prototype.onPause.apply(this, arguments),
this.resumeItemsContainer.pause(),
this.latestItemsContainer.pause();
}),
(TvSuggestionsTab.prototype.destroy = function () {
_basetab.default.prototype.destroy.apply(this, arguments),
(this.view = null),
(this.params = null),
(this.apiClient = null),
(this.resumeItemsContainer = null),
(this.latestItemsContainer = null);
}),
(_exports.default = TvSuggestionsTab);
});