UNPKG

@openui5/sap.m

Version:

OpenUI5 UI Library sap.m

102 lines (84 loc) 2.72 kB
/*! * OpenUI5 * (c) Copyright 2026 SAP SE or an SAP affiliate company. * Licensed under the Apache License, Version 2.0 - see LICENSE.txt. */ sap.ui.define([], function() { "use strict"; /** * IconTabBar renderer. * @namespace */ var IconTabBarRenderer = { apiVersion: 2 }; /** * Array of all available icon color CSS classes * * @private */ IconTabBarRenderer._aAllIconColors = ['sapMITBFilterCritical', 'sapMITBFilterPositive', 'sapMITBFilterNegative', 'sapMITBFilterDefault']; /** * Renders the HTML for the IconTabBar control, using the provided {@link sap.ui.core.RenderManager}. * * @param {sap.ui.core.RenderManager} oRM The RenderManager that can be used for writing to the render output buffer * @param {sap.m.IconTabBar} oIconTabBar An object representation of the control that should be rendered */ IconTabBarRenderer.render = function(oRM, oIconTabBar){ var oContent = oIconTabBar.getContent(), oHeader = oIconTabBar._getIconTabHeader(); // start control wrapper oRM.openStart("div", oIconTabBar) .class("sapMITB"); if (oIconTabBar.getStretchContentHeight()) { oRM.class("sapMITBStretch"); } if (!oIconTabBar.getApplyContentPadding()) { oRM.class("sapMITBNoContentPadding"); } oRM.class("sapMITBBackgroundDesign" + oIconTabBar.getBackgroundDesign()) .openEnd(); // render icon tab header (if not configured to hide by ObjectHeader) if (!oIconTabBar._bHideHeader) { oRM.renderControl(oHeader); } // render outer content oRM.openStart("div", oIconTabBar.getId() + "-containerContent") .class("sapMITBContainerContent"); if (!oIconTabBar.getExpanded()) { // add special styles when closed oRM.class("sapMITBContentClosed"); } oRM.openEnd(); // render inner content oRM.openStart("div", oIconTabBar.getId() + "-content") .class("sapMITBContent") .attr("role", "tabpanel"); if (!oIconTabBar.getExpanded()) { // hide content when closed oRM.style("display", "none"); } if (oHeader.oSelectedItem) { oRM.accessibilityState({ labelledby: oHeader.oSelectedItem._getRootTab().getId() }); } oRM.openEnd(); if (oIconTabBar.getExpanded()) { // content from selected item if (oHeader.oSelectedItem && oHeader.oSelectedItem.getContent()) { var oContentSelectedTab = oHeader.oSelectedItem.getContent(); if (oContentSelectedTab.length > 0) { oContent = oContentSelectedTab; } } // render the content oContent.forEach(function (oControl) { oRM.renderControl(oControl); }); } oRM.close("div") // inner content .close("div") // outer content .close("div"); // control wrapper }; return IconTabBarRenderer; }, /* bExport= */ true);