(function(root, factory) { if (typeof define === 'function' && define.amd) { define(function(require, exports, module) { module.exports = factory(require("framework/html/presets").layoutSets, require("framework/html/layout_controller").DefaultLayoutController, require("ui/toolbar")) }) } else { root.DevExpress.layouts = root.DevExpress.layouts || {}; root.DevExpress.layouts.NavbarLayout = factory(DevExpress.framework.html.layoutSets, DevExpress.framework.html.DefaultLayoutController); root.DevExpress.framework.html.NavBarController = root.DevExpress.layouts.NavbarLayout.NavBarController } }(this, function(layoutSets, DefaultLayoutController) { var exports = {}, HAS_NAVBAR_CLASS = "has-navbar", HAS_TOOLBAR_CLASS = "has-toolbar", LAYOUT_FOOTER_SELECTOR = ".layout-footer", ACTIVE_TOOLBAR_SELECTOR = ".dx-active-view .dx-toolbar"; var NavBarController = DefaultLayoutController.inherit({ ctor: function(options) { options = options || {}; options.name = options.name || "navbar"; this.callBase(options) }, _createNavigationWidget: function(navigationCommands) { this.callBase(navigationCommands); this.$navbar = this._$mainLayout.find(".navbar-container"); return this.$navbar }, _renderNavigationImpl: function(navigationCommands) { this.callBase(navigationCommands); if (navigationCommands.length) { this._$mainLayout.addClass(HAS_NAVBAR_CLASS) } }, _showViewImpl: function(viewInfo) { var that = this; return that.callBase.apply(that, arguments).done(function() { var $toolbar = that._$mainLayout.find(LAYOUT_FOOTER_SELECTOR).find(ACTIVE_TOOLBAR_SELECTOR), isToolbarEmpty = !$toolbar.length || !$toolbar.dxToolbar("instance").option("visible"); that._$mainLayout.toggleClass(HAS_TOOLBAR_CLASS, !isToolbarEmpty) }) } }); layoutSets["navbar"] = layoutSets["navbar"] || []; layoutSets["navbar"].push({ platform: "ios", controller: new NavBarController }); layoutSets["navbar"].push({ platform: "android", controller: new NavBarController }); layoutSets["navbar"].push({ platform: "generic", controller: new NavBarController }); layoutSets["navbar"].push({ platform: "win", controller: new NavBarController }); layoutSets["split"] = layoutSets["split"] || []; layoutSets["split"].push({ platform: "win", phone: false, root: true, pane: "master", controller: new NavBarController }); layoutSets["split"].push({ platform: "win", phone: true, controller: new NavBarController }); exports.NavBarController = NavBarController; return exports }));