@openui5/sap.m
Version:
OpenUI5 UI Library sap.m
75 lines (59 loc) • 2.43 kB
JavaScript
/*!
* 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(["./library", 'sap/ui/core/Renderer', './ToolbarRenderer', "sap/m/BarInPageEnabler"],
function(library, Renderer, ToolbarRenderer, BarInPageEnabler) {
"use strict";
// shortcut for sap.m.OverflowToolbarPriority
var OverflowToolbarPriority = library.OverflowToolbarPriority;
/**
* OverflowToolbar renderer.
* @namespace
*/
var OverflowToolbarRenderer = Renderer.extend(ToolbarRenderer);
OverflowToolbarRenderer.apiVersion = 2;
OverflowToolbarRenderer.renderBarContent = function(rm, oToolbar) {
var bHasAlwaysOverflowVisibleContent = false,
oFirstVisibleControl = null,
bHasAnyVisibleContent;
if (oToolbar.getActive()) {
rm.renderControl(oToolbar._getActiveButton());
}
oToolbar._getVisibleContent().forEach(function(oControl) {
BarInPageEnabler.addChildClassTo(oControl, oToolbar);
if (oToolbar._getControlPriority(oControl) !== OverflowToolbarPriority.AlwaysOverflow ) {
if (!oFirstVisibleControl && oControl.getVisible()) {
oControl.addStyleClass("sapMBarChildFirstChild");
oFirstVisibleControl = oControl;
} else {
oControl.removeStyleClass("sapMBarChildFirstChild");
}
rm.renderControl(oControl);
} else {
bHasAlwaysOverflowVisibleContent = bHasAlwaysOverflowVisibleContent || oControl.getVisible();
}
});
if (bHasAlwaysOverflowVisibleContent || oToolbar._getOverflowButtonNeeded()) {
OverflowToolbarRenderer.renderOverflowButton(rm, oToolbar);
}
bHasAnyVisibleContent = oToolbar.getContent().some(function (oControl) {
return oControl.getVisible();
});
if (bHasAnyVisibleContent) {
OverflowToolbarRenderer.renderOverflowButtonClone(rm, oToolbar);
}
};
OverflowToolbarRenderer.renderOverflowButton = function(rm, oToolbar) {
var oOverflowButton = oToolbar._getOverflowButton();
BarInPageEnabler.addChildClassTo(oOverflowButton, oToolbar);
rm.renderControl(oOverflowButton);
};
OverflowToolbarRenderer.renderOverflowButtonClone = function(rm, oToolbar) {
var oOverflowButtonClone = oToolbar._getOverflowButtonClone();
BarInPageEnabler.addChildClassTo(oOverflowButtonClone, oToolbar);
rm.renderControl(oOverflowButtonClone);
};
return OverflowToolbarRenderer;
}, /* bExport= */ true);