define([
"exports",
"./../common/servicelocator.js",
"./../layoutmanager.js",
"./../common/globalize.js",
"./../cardbuilder/cardbuilder.js",
"./../common/usersettings/usersettings.js",
"./../emby-apiclient/connectionmanager.js",
"./../common/appsettings.js",
"./../registrationservices/registrationservices.js",
"./../approuter.js",
"./../emby-elements/emby-button/emby-button.js",
"./../emby-elements/emby-button/paper-icon-button-light.js",
"./../emby-elements/emby-itemscontainer/emby-itemscontainer.js",
"./../emby-elements/emby-scroller/emby-scroller.js",
], function (
_exports,
_servicelocator,
_layoutmanager,
_globalize,
_cardbuilder,
_usersettings,
_connectionmanager,
_appsettings,
_registrationservices,
_approuter,
_embyButton,
_paperIconButtonLight,
_embyItemscontainer,
_embyScroller,
) {
function resume(elem, options) {
for (
var elems = elem.querySelectorAll(".itemsContainer"),
promises = [],
i = 0,
length = elems.length;
i < length;
i++
)
promises.push(elems[i].resume(options));
elem = Promise.all(promises);
return options && !1 === options.returnPromise ? promises[0] : elem;
}
function getUserViews(apiClient, userId) {
return apiClient
.getUserViews({}, userId || apiClient.getCurrentUserId())
.then(function (result) {
return result.Items;
});
}
function getLibraryButtonsListOptions(items) {
return {
renderer: _cardbuilder.default,
options: {
fields: ["Name"],
centerText: !1,
transition: !1,
hoverPlayButton: !1,
sideFooter: !0,
image: !1,
smallSideFooter: !0,
multiSelect: !1,
focusTransformTitleAdjust: !0,
},
virtualScrollLayout: "horizontal-grid",
};
}
function getAppInfoListOptions(items) {
return {
renderer: _cardbuilder.default,
options: {
shape: "autooverflow",
fields: ["Name"],
contextMenu: !1,
action: "custom",
multiSelect: !1,
focusTransformTitleAdjust: !0,
},
virtualScrollLayout: "horizontal-grid",
};
}
function getDownloadListOptions(items) {
var fields = [];
return (
fields.push("Name"),
fields.push("ProductionYear"),
fields.push("ParentName"),
{
renderer: _cardbuilder.default,
options: {
preferThumb: "auto",
inheritThumb: !1,
shape: "autooverflow",
fields: fields,
showDetailsMenu: !0,
overlayPlayButton: !0,
context: "home",
lines: 2,
focusTransformTitleAdjust: !0,
},
virtualScrollLayout: "horizontal-grid",
}
);
}
function getLibraryCardsListOptions(items) {
var fields = [];
return (
fields.push("Name"),
{
renderer: _cardbuilder.default,
options: {
shape: "backdrop",
fields: fields,
transition: !1,
hoverPlayButton: !1,
focusTransformTitleAdjust: !0,
},
virtualScrollLayout: "horizontal-grid",
}
);
}
function loadLibraryTiles(elem, apiClient, index, useSmallButtons) {
var serverId,
html = "",
itemsContainerClass =
((html =
(html +=
'
') +
('
' +
_globalize.default.translate("HeaderMyMedia") +
"
")),
"itemsContainer scrollSlider focuscontainer-x"),
index =
(!_layoutmanager.default.tv &&
index < 2 &&
(itemsContainerClass += " itemsContainer-finepointerwrap"),
useSmallButtons &&
(itemsContainerClass +=
" itemsContainer-sideFooters itemsContainer-smallSideFooters"),
(html =
(html =
html +
"" +
('"),
elem.classList.add("hide"),
(elem.innerHTML = html),
useSmallButtons &&
(_layoutmanager.default.tv
? elem.classList.add("padded-bottom")
: elem.classList.add("verticalSection-extrabottompadding")),
elem.querySelector(".itemsContainer"));
(index.fetchData =
((serverId = apiClient.serverId()),
function () {
var apiClient = _connectionmanager.default.getApiClient(serverId);
return getUserViews(apiClient, apiClient.getCurrentUserId());
})),
(index.getListOptions = useSmallButtons
? getLibraryButtonsListOptions
: getLibraryCardsListOptions),
(index.parentContainer = elem),
useSmallButtons
? index.classList.remove("cardSizeSmaller")
: index.classList.add("cardSizeSmaller");
}
Object.defineProperty(_exports, "__esModule", { value: !0 }),
(_exports.default = void 0),
(_exports.default = {
loadSections: function (options) {
for (
var elem = options.element,
apiClient = options.apiClient,
user = options.user,
requestedItemFields = options.requestedItemFields,
enableFocusPreview = options.enableFocusPreview,
requestedImageTypes = options.requestedImageTypes,
sections = _usersettings.default.getHomeScreenSections(),
html = "",
i = 0,
length = sections.length;
i < length;
i++
)
(html +=
''),
0 === i &&
(html +=
'');
(elem.innerHTML = html), elem.classList.add("homeSectionsContainer");
var promises = [];
for (i = 0, length = sections.length; i < length; i++)
promises.push(
(function (
page,
apiClient,
user,
requestedItemFields,
enableFocusPreview,
requestedImageTypes,
allSections,
index,
) {
var section = allSections[index],
elem =
(apiClient.getCurrentUserId(),
page.querySelector(".section" + index));
switch (section) {
case "latestmedia":
return (function (
elem,
apiClient,
user,
requestedItemFields,
requestedImageTypes,
enableFocusPreview,
) {
return getUserViews(
apiClient,
apiClient.getCurrentUserId(),
).then(function (userViews) {
elem.classList.remove(
"verticalSection",
"verticalSection-cards",
),
elem.classList.remove("focusable"),
elem.removeAttribute("data-focusabletype");
for (
var excludeViewTypes = [
"playlists",
"livetv",
"boxsets",
"channels",
],
i = 0,
length = userViews.length;
i < length;
i++
) {
var frag,
item = userViews[i];
user.Configuration.LatestItemsExcludes.includes(
item.Id,
) ||
(item.Guid &&
user.Configuration.LatestItemsExcludes.includes(
item.Guid,
)) ||
excludeViewTypes.includes(
item.CollectionType || [],
) ||
((frag = document.createElement("div")).classList.add(
"hide",
),
frag.classList.add(
"verticalSection",
"verticalSection-cards",
),
frag.classList.add("focusable"),
frag.setAttribute("data-focusabletype", "nearest"),
elem.appendChild(frag),
(function (
elem,
apiClient,
parent,
requestedItemFields,
requestedImageTypes,
enableFocusPreview,
) {
var html = "";
(html +=
''),
_layoutmanager.default.tv
? (html +=
'
' +
_globalize.default.translate(
"LatestFromLibrary",
parent.Name,
) +
"
")
: (html =
(html =
(html =
html +
('
') +
_globalize.default.translate(
"LatestFromLibrary",
parent.Name,
)) + "
");
html += "
";
var monitor =
"music" === parent.CollectionType ||
"audiobooks" === parent.CollectionType
? "markplayed"
: "videoplayback,markplayed",
monitor =
((html =
(html +=
'"),
(elem.innerHTML = html),
elem.querySelector(".itemsContainer"));
(monitor.fetchData = (function (
serverId,
parentId,
collectionType,
requestedItemFields,
requestedImageTypes,
) {
return function (query) {
var apiClient =
_connectionmanager.default.getApiClient(
serverId,
),
fields =
requestedItemFields +
",PrimaryImageAspectRatio,ProductionYear";
return (
(collectionType &&
"tvshows" !== collectionType) ||
(fields += ",Status,EndDate"),
apiClient.getLatestItems({
Limit: 16,
Fields: fields,
ImageTypeLimit: 1,
EnableImageTypes: requestedImageTypes,
ParentId: parentId,
})
);
};
})(
apiClient.serverId(),
parent.Id,
parent.CollectionType,
requestedItemFields,
requestedImageTypes,
)),
(monitor.getListOptions = (function (
viewType,
enableFocusPreview,
) {
return function (items) {
var fields = [],
lines = null;
return (
enableFocusPreview ||
("photos" !== viewType &&
fields.push("Name"),
("movies" !== viewType &&
"tvshows" !== viewType &&
"musicvideos" !== viewType &&
viewType) ||
fields.push("ProductionYear"),
("music" !== viewType &&
"audiobooks" !== viewType &&
"tvshows" !== viewType &&
"musicvideos" !== viewType &&
viewType) ||
fields.push("ParentName"),
(lines =
"musicvideos" !== viewType && viewType
? 2
: 3)),
{
renderer: _cardbuilder.default,
options: {
shape: "autooverflow",
preferThumb:
"audiobooks" !== viewType &&
"music" !== viewType
? null
: "auto",
showUnplayedIndicator: !1,
showChildCountIndicator: !0,
context: "home",
overlayPlayButton:
"photos" !== viewType,
fields: fields,
lines: lines,
focusTransformTitleAdjust: !0,
},
virtualScrollLayout: "horizontal-grid",
}
);
};
})(
(parent.Type, parent.CollectionType),
enableFocusPreview,
)),
(monitor.parentContainer = elem);
})(
frag,
apiClient,
item,
requestedItemFields,
requestedImageTypes,
enableFocusPreview,
));
}
});
})(
elem,
apiClient,
user,
requestedItemFields,
requestedImageTypes,
enableFocusPreview,
);
case "smalllibrarytiles":
return loadLibraryTiles(elem, apiClient, index, !1);
case "librarybuttons":
return loadLibraryTiles(elem, apiClient, index, !0);
case "resume":
return (function (
elem,
apiClient,
allSections,
requestedItemFields,
requestedImageTypes,
enableFocusPreview,
) {
var html = "",
html =
((html =
(html =
'' +
_globalize.default.translate(
"HeaderContinueWatching",
) +
'
"),
elem.classList.add("hide"),
(elem.innerHTML = html),
elem.querySelector(".itemsContainer"));
(html.fetchData = (function (
serverId,
allSections,
requestedItemFields,
requestedImageTypes,
) {
return function (query) {
var apiClient =
_connectionmanager.default.getApiClient(serverId),
query = Object.assign(
{
Recursive: !0,
Fields:
requestedItemFields +
",PrimaryImageAspectRatio,ProductionYear",
ImageTypeLimit: 1,
EnableImageTypes: requestedImageTypes,
MediaTypes: "Video",
IncludeNextUp:
!allSections.includes("nextup") && null,
},
query,
);
return apiClient.getResumableItems(
apiClient.getCurrentUserId(),
query,
);
};
})(
apiClient.serverId(),
allSections,
requestedItemFields,
requestedImageTypes,
)),
(html.getListOptions = (function (enableFocusPreview) {
return function (items) {
var fields = [],
lines = null;
return (
enableFocusPreview ||
(fields.push("Name"),
fields.push("ProductionYear"),
fields.push("ParentName"),
(lines = 2)),
{
renderer: _cardbuilder.default,
options: {
preferThumb: !0,
shape: "backdrop",
fields: fields,
showDetailsMenu: !0,
overlayPlayButton: !0,
context: "home",
centerText: !0,
cardLayout: !1,
lines: lines,
focusTransformTitleAdjust: !0,
animateProgressBar: !0,
},
virtualScrollLayout: "horizontal-grid",
commandOptions: { removeFromResume: !0 },
}
);
};
})(enableFocusPreview)),
(html.parentContainer = elem);
})(
elem,
apiClient,
allSections,
requestedItemFields,
requestedImageTypes,
enableFocusPreview,
);
case "resumeaudio":
return (function (
elem,
apiClient,
requestedItemFields,
requestedImageTypes,
enableFocusPreview,
) {
var html = "",
html =
((html =
(html =
'' +
_globalize.default.translate(
"HeaderContinueListening",
) +
'
"),
elem.classList.add("hide"),
(elem.innerHTML = html),
elem.querySelector(".itemsContainer"));
(html.fetchData = (function (
serverId,
requestedItemFields,
requestedImageTypes,
) {
return function (query) {
var apiClient =
_connectionmanager.default.getApiClient(serverId),
query = Object.assign(
{
Recursive: !0,
Fields:
requestedItemFields +
",PrimaryImageAspectRatio,ProductionYear",
ImageTypeLimit: 1,
EnableImageTypes: requestedImageTypes,
MediaTypes: "Audio",
},
query,
);
return apiClient.getResumableItems(
apiClient.getCurrentUserId(),
query,
);
};
})(
apiClient.serverId(),
requestedItemFields,
requestedImageTypes,
)),
(html.getListOptions = (function (enableFocusPreview) {
return function (items) {
var fields = [];
return (
enableFocusPreview ||
(fields.push("Name"),
fields.push("Album"),
fields.push("ParentName")),
{
renderer: _cardbuilder.default,
options: {
preferThumb: "auto",
shape: "auto",
fields: fields,
showDetailsMenu: !0,
overlayPlayButton: !0,
context: "home",
centerText: !0,
cardLayout: !1,
albumFirst: !0,
focusTransformTitleAdjust: !0,
animateProgressBar: !0,
},
virtualScrollLayout: "horizontal-grid",
commandOptions: { removeFromResume: !0 },
}
);
};
})(enableFocusPreview)),
(html.parentContainer = elem);
})(
elem,
apiClient,
requestedItemFields,
requestedImageTypes,
enableFocusPreview,
);
case "activerecordings":
return (function (
elem,
activeRecordingsOnly,
apiClient,
requestedItemFields,
enableFocusPreview,
) {
var title = activeRecordingsOnly
? _globalize.default.translate("HeaderActiveRecordings")
: _globalize.default.translate(
"HeaderLatestRecordings",
),
html = "",
title =
((html =
(html =
(html =
'' +
title +
"
") +
'"),
elem.classList.add("hide"),
(elem.innerHTML = html),
elem.querySelector(".itemsContainer"));
(title.fetchData = (function (
serverId,
activeRecordingsOnly,
requestedItemFields,
) {
return function (query) {
var apiClient =
_connectionmanager.default.getApiClient(serverId);
return apiClient.getLiveTvRecordings(
Object.assign(
{
userId: apiClient.getCurrentUserId(),
Fields:
requestedItemFields +
",PrimaryImageAspectRatio,ProductionYear",
IsLibraryItem: !!activeRecordingsOnly && null,
IsInProgress: !!activeRecordingsOnly || null,
},
query,
),
);
};
})(
apiClient.serverId(),
activeRecordingsOnly,
requestedItemFields,
)),
(title.getListOptions = (function (enableFocusPreview) {
return function (items) {
var fields = [],
lines = null;
return (
enableFocusPreview ||
(fields.push("Name"),
fields.push("ProductionYear"),
fields.push("ParentName"),
(lines = 2)),
{
renderer: _cardbuilder.default,
options: {
shape: "autooverflow",
fields: fields,
showDetailsMenu: !0,
lines: lines,
preferThumb: !0,
cardLayout: !1,
focusTransformTitleAdjust: !0,
},
virtualScrollLayout: "horizontal-grid",
}
);
};
})(enableFocusPreview)),
(title.parentContainer = elem),
(title.maxTotalRecordCount = 24);
})(
elem,
!0,
apiClient,
requestedItemFields,
enableFocusPreview,
);
case "nextup":
return (function (
elem,
apiClient,
requestedItemFields,
requestedImageTypes,
enableFocusPreview,
) {
var html = "";
(html +=
''),
_layoutmanager.default.tv
? (html +=
'
' +
_globalize.default.translate("HeaderNextUp") +
"
")
: (html =
(html =
(html =
html +
('
') +
_globalize.default.translate("HeaderNextUp")) +
"
");
(html =
(html +=
'
"),
elem.classList.add("hide"),
(elem.innerHTML = html);
html = elem.querySelector(".itemsContainer");
(html.fetchData = (function (
serverId,
requestedItemFields,
requestedImageTypes,
) {
return function (query) {
var apiClient =
_connectionmanager.default.getApiClient(serverId);
return apiClient.getNextUpEpisodes(
Object.assign(
{
LegacyNextUp: !0,
Fields:
requestedItemFields +
",PrimaryImageAspectRatio,ProductionYear,SeriesInfo,DateCreated",
ImageTypeLimit: 1,
EnableImageTypes: requestedImageTypes,
UserId: apiClient.getCurrentUserId(),
},
query,
),
);
};
})(
apiClient.serverId(),
requestedItemFields,
requestedImageTypes,
)),
(html.getListOptions = (function (enableFocusPreview) {
return function () {
var fields = [];
return (
enableFocusPreview ||
(fields.push("Name"), fields.push("ParentName")),
{
renderer: _cardbuilder.default,
options: {
preferThumb: !0,
shape: "backdrop",
fields: fields,
overlayPlayButton: !0,
context: "home",
centerText: !0,
cardLayout: !1,
focusTransformTitleAdjust: !0,
},
virtualScrollLayout: "horizontal-grid",
commandOptions: { removeFromNextUp: !0 },
}
);
};
})(enableFocusPreview)),
(html.parentContainer = elem);
})(
elem,
apiClient,
requestedItemFields,
requestedImageTypes,
enableFocusPreview,
);
case "livetv":
return (function (
elem,
apiClient,
user,
requestedItemFields,
requestedImageTypes,
enableFocusPreview,
) {
return user.Policy.EnableLiveTvAccess
? ((user = []).push(
_registrationservices.default
.validateFeature("livetv", {
viewOnly: !0,
showDialog: !1,
})
.then(
function () {
return Promise.resolve(!0);
},
function () {
return Promise.resolve(!1);
},
),
),
Promise.all(user).then(function (responses) {
var html = "";
responses[0]
? (elem.classList.remove(
"padded-left",
"padded-left-page",
),
elem.classList.remove("padded-right"),
elem.classList.remove("padded-bottom"),
elem.classList.remove(
"verticalSection",
"verticalSection-cards",
),
elem.classList.remove("focusable"),
elem.removeAttribute("data-focusabletype"),
(html =
(html =
(html =
(html =
(html =
(html +=
'') +
'
' +
_globalize.default.translate("LiveTV") +
'
"),
((responses =
elem.querySelector(
".itemsContainer",
)).parentContainer = elem),
(responses.fetchData = (function (
serverId,
requestedItemFields,
requestedImageTypes,
) {
return function (query) {
var apiClient =
_connectionmanager.default.getApiClient(
serverId,
);
return (
(query = Object.assign(
{
userId: apiClient.getCurrentUserId(),
IsAiring: !0,
ImageTypeLimit: 1,
EnableImageTypes: requestedImageTypes,
Fields:
requestedItemFields +
",ProgramPrimaryImageAspectRatio",
EnableUserData: !1,
},
query,
)),
_usersettings.default.addLiveTvChannelSortingToQuery(
query,
_globalize.default,
),
apiClient.getLiveTvChannels(query)
);
};
})(
apiClient.serverId(),
requestedItemFields,
requestedImageTypes,
)),
(responses.getListOptions = (function (
enableFocusPreview,
) {
return function (items) {
var fields = [];
return (
enableFocusPreview ||
(fields.push("CurrentProgramName"),
fields.push("CurrentProgramParentName"),
fields.push("CurrentProgramTime")),
{
renderer: _cardbuilder.default,
options: {
preferThumb: "auto",
inheritThumb: !1,
shape: "autooverflow",
fields: fields,
showCurrentProgramImage: !0,
showAirDateTime: !1,
overlayPlayButton: !0,
defaultShape: "portrait",
action: "programlink",
multiSelect: !1,
focusTransformTitleAdjust: !0,
},
virtualScrollLayout: "horizontal-grid",
commandOptions: { createRecording: !1 },
}
);
};
})(enableFocusPreview)))
: (elem.classList.add("hide"),
elem.classList.remove("focusable"),
elem.classList.add(
"padded-left",
"padded-left-page",
),
elem.classList.add("padded-right"),
elem.classList.add("padded-bottom"),
(html =
(html =
html +
('' +
_globalize.default.translate(
"LiveTvRequiresUnlock",
)) +
'
"),
(function (elem, apiClient) {
apiClient
.getLiveTvChannels({
userId: apiClient.getCurrentUserId(),
limit: 1,
ImageTypeLimit: 1,
EnableTotalRecordCount: !1,
EnableImages: !1,
EnableUserData: !1,
})
.then(function (result) {
result.Items.length
? (elem.classList.add("focusable"),
elem.classList.remove("hide"))
: (elem.classList.add("hide"),
elem.classList.remove("focusable"));
});
})(elem, apiClient)),
(function (elem) {
var btnUnlock = elem.querySelector(".btnUnlock");
btnUnlock &&
btnUnlock.addEventListener(
"click",
function (e) {
_registrationservices.default
.validateFeature("livetv", {
viewOnly: !0,
})
.then(function () {
elem
.closest(".homeSectionsContainer")
.dispatchEvent(
new CustomEvent("settingschange", {
cancelable: !1,
}),
);
});
},
);
})(elem);
}))
: (elem.classList.add("hide"),
elem.classList.remove("focusable"),
Promise.resolve());
})(
elem,
apiClient,
user,
requestedItemFields,
requestedImageTypes,
enableFocusPreview,
);
default:
return (elem.innerHTML = ""), Promise.resolve();
}
})(
elem,
apiClient,
user,
requestedItemFields,
enableFocusPreview,
requestedImageTypes,
sections,
i,
),
),
0 === i &&
(promises.push(
(function (elem, apiClient) {
elem.classList.add("hide");
var html = "";
(html =
(html =
(html =
(html +=
'') +
'
') +
_globalize.default.translate("Downloads")) + "
"),
_layoutmanager.default.tv ||
(html +=
'
');
(html =
(html +=
'
"),
(elem.innerHTML = html);
html = elem.querySelector(".itemsContainer");
(html.fetchData = (function (serverId) {
return function () {
var apiClient;
return _servicelocator.appHost.supports("sync")
? (apiClient =
_connectionmanager.default.getApiClient(serverId))
.getCurrentUser()
.then(function (user) {
return user.Policy.EnableContentDownloading &&
apiClient.getLatestOfflineItems
? apiClient.getLatestOfflineItems({
Limit: 20,
Filters: "IsNotFolder",
})
: Promise.resolve([]);
})
: Promise.resolve([]);
};
})(apiClient.serverId())),
(html.getListOptions = getDownloadListOptions),
(html.parentContainer = elem);
})(elem.querySelector(".section-downloads"), apiClient),
),
promises.push(
(function (elem, apiClient) {
elem.classList.add("hide"),
(elem.innerHTML = (function () {
var html = "";
return (html =
(html =
(html =
(html +=
'') +
'
Discover Emby Premiere
') +
'Enjoy Emby DVR, get free access to Emby apps, and more.
");
})()),
(function (elem) {
elem = elem.querySelector(".itemsContainer");
elem &&
elem.addEventListener("action-null", function (e) {
e.target.closest(".card") &&
_registrationservices.default.showPremiereInfo();
});
})(elem);
var itemsContainer = elem.querySelector(".itemsContainer");
return (
(itemsContainer.fetchData = function () {
var apiClient = this,
cacheKey = "lastappinfopresent5",
lastDatePresented = parseInt(
_appsettings.default.get(cacheKey) || "0",
);
if (!lastDatePresented)
return (
_appsettings.default.set(cacheKey, Date.now()),
Promise.resolve([])
);
if (Date.now() - lastDatePresented < 1728e5)
return Promise.resolve([]);
return _registrationservices.default
.validateFeature("dvr", {
showDialog: !1,
viewOnly: !0,
})
.then(
function () {
return (
_appsettings.default.set(cacheKey, Date.now()), []
);
},
function () {
return (
_appsettings.default.set(cacheKey, Date.now()),
(function (apiClient) {
var items = [];
return (
items.push({
Name: "",
Id: "PremiereInfo1",
ImageUrl:
"https://raw.githubusercontent.com/MediaBrowser/Emby.Resources/master/apps/theater1.png",
PrimaryImageAspectRatio: 16 / 9,
ServerId: apiClient.serverId(),
}),
items.push({
Name: "",
Id: "PremiereInfo2",
ImageUrl:
"https://raw.githubusercontent.com/MediaBrowser/Emby.Resources/master/apps/theater2.png",
PrimaryImageAspectRatio: 16 / 9,
ServerId: apiClient.serverId(),
}),
items.push({
Name: "",
Id: "PremiereInfo3",
ImageUrl:
"https://raw.githubusercontent.com/MediaBrowser/Emby.Resources/master/apps/theater3.png",
PrimaryImageAspectRatio: 16 / 9,
ServerId: apiClient.serverId(),
}),
Promise.resolve({
Items: items,
TotalRecordCount: items.length,
})
);
})(apiClient)
);
},
);
}.bind(apiClient)),
(itemsContainer.getListOptions = getAppInfoListOptions),
(itemsContainer.parentContainer = elem),
Promise.resolve()
);
})(elem.querySelector(".section-appinfo"), apiClient),
));
return Promise.all(promises).then(function () {
return resume(elem, { refresh: !0, returnPromise: !1 });
});
},
pause: function (elem) {
for (
var elems = elem.querySelectorAll(".itemsContainer"),
i = 0,
length = elems.length;
i < length;
i++
)
elems[i].pause();
},
resume: resume,
});
});