define(["tabbedView", "globalize", "require", "emby-tabs", "emby-button", "emby-scroller"], function (TabbedView, globalize, require) { "use strict"; function getTabs() { return [{ name: globalize.translate("Home") }, { name: globalize.translate("Favorites") }]; } function getDefaultTabIndex() { return 0; } function getRequirePromise(deps) { return new Promise(function (resolve, reject) { require(deps, resolve); }); } function getTabController(index) { if (null == index) { throw new Error("index cannot be null"); } var depends = []; switch (index) { case 0: depends.push("controllers/hometab"); break; case 1: depends.push("controllers/favorites"); } var instance = this; return getRequirePromise(depends).then(function (controllerFactory) { var controller = instance.tabControllers[index]; if (!controller) { controller = new controllerFactory(instance.view.querySelector(".tabContent[data-index='" + index + "']"), instance.params); instance.tabControllers[index] = controller; } return controller; }); } function HomeView(view, params) { TabbedView.call(this, view, params); } Object.assign(HomeView.prototype, TabbedView.prototype); HomeView.prototype.getTabs = getTabs; HomeView.prototype.getDefaultTabIndex = getDefaultTabIndex; HomeView.prototype.getTabController = getTabController; HomeView.prototype.setTitle = function () { Emby.Page.setTitle(null); }; HomeView.prototype.onPause = function () { TabbedView.prototype.onPause.call(this); document.querySelector(".skinHeader").classList.remove("noHomeButtonHeader"); }; HomeView.prototype.onResume = function (options) { TabbedView.prototype.onResume.call(this, options); document.querySelector(".skinHeader").classList.add("noHomeButtonHeader"); }; return HomeView; });