@openui5/sap.m
Version:
OpenUI5 UI Library sap.m
157 lines (130 loc) • 4.13 kB
JavaScript
/*!
* UI development toolkit for HTML5 (OpenUI5)
* (c) Copyright 2009-2022 SAP SE or an SAP affiliate company.
* Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
*/
sap.ui.define(['./TileRenderer', 'sap/ui/core/ValueStateSupport', 'sap/ui/core/Renderer', 'sap/m/library', 'sap/ui/core/library'],
function(TileRenderer, ValueStateSupport, Renderer, library, coreLibrary) {
"use strict";
// shortcut for sap.ui.core.ValueState
var ValueState = coreLibrary.ValueState;
// shortcut for sap.m.StandardTileType
var StandardTileType = library.StandardTileType;
/**
* CustomTile renderer.
* @namespace
*/
var StandardTileRenderer = Renderer.extend(TileRenderer);
/**
* Renders the HTML for the given control, using the provided {@link sap.ui.core.RenderManager}.
*
* @param {sap.ui.core.RenderManager} rm The RenderManager that can be used for writing to the render output buffer
* @param {sap.ui.core.Control} oTile An object representation of the control that should be rendered
*/
StandardTileRenderer._renderContent = function(rm, oTile) {
var infoState = oTile.getInfoState();
rm.write("<div"); // Start top row
rm.addClass("sapMStdTileTopRow");
rm.writeClasses();
rm.write(">");
if (oTile.getIcon()) {
rm.write("<div");
rm.addClass("sapMStdTileIconDiv");
switch (oTile.getType()) {
case StandardTileType.Monitor:
rm.addClass("sapMStdIconMonitor");
break;
case StandardTileType.Create:
rm.addClass("sapMStdIconCreate");
break;
}
rm.writeClasses();
rm.write(">");
rm.renderControl(oTile._getImage());
rm.write("</div>");
}
if (oTile.getNumber()) {
rm.write("<div");
rm.addClass("sapMStdTileNumDiv");
rm.writeClasses();
rm.write(">");
rm.write("<div");
rm.writeAttribute("id", oTile.getId() + "-number");
var numberLength = oTile.getNumber().length;
if (numberLength < 5) {
rm.addClass("sapMStdTileNum");
} else if (numberLength < 8) {
rm.addClass("sapMStdTileNumM");
} else {
rm.addClass("sapMStdTileNumS");
}
rm.writeClasses();
rm.write(">");
rm.writeEscaped(oTile.getNumber());
rm.write("</div>");
if (oTile.getNumberUnit()) {
rm.write("<div");
rm.writeAttribute("id", oTile.getId() + "-numberUnit");
rm.addClass("sapMStdTileNumUnit");
rm.writeClasses();
rm.write(">");
rm.writeEscaped(oTile.getNumberUnit());
rm.write("</div>");
}
rm.write("</div>"); // End number div
}
rm.write("</div>"); // End top row div
rm.write("<div"); // Start monitoring tile styling
rm.addClass("sapMStdTileBottomRow");
if (oTile.getType() === StandardTileType.Monitor) {
rm.addClass("sapMStdTileMonitorType");
}
rm.writeClasses();
rm.write(">");
rm.write("<div"); // Start title div
rm.writeAttribute("id", oTile.getId() + "-title");
rm.addClass("sapMStdTileTitle");
rm.writeClasses();
rm.write(">");
if (oTile.getTitle()) {
rm.writeEscaped(oTile.getTitle());
}
rm.write("</div>"); // End title div
if (oTile.getInfo()) {
rm.write("<div"); // Start info
rm.writeAttribute("id", oTile.getId() + "-info");
rm.addClass("sapMStdTileInfo");
rm.addClass("sapMStdTileInfo" + infoState);
rm.writeClasses();
/* WAI ARIA for infoState */
if (infoState != ValueState.None) {
rm.writeAccessibilityState(oTile, {
ariaDescribedBy: {
value: oTile.getId() + "-sapSRH",
append: true
}
});
}
rm.write(">");
if (oTile.getInfo()) {
rm.writeEscaped(oTile.getInfo());
}
rm.write("</div>"); // End info
}
/* WAI ARIA adding hidden element for infoStatus */
if (infoState != ValueState.None) {
rm.write("<span");
rm.writeAttributeEscaped("id", oTile.getId() + "-sapSRH");
rm.addClass("sapUiInvisibleText");
rm.writeClasses();
rm.writeAccessibilityState({
hidden: false
});
rm.write(">");
rm.writeEscaped(ValueStateSupport.getAdditionalText(infoState));
rm.write("</span>");
}
rm.write("</div>"); // End bottom row type tile styling
};
return StandardTileRenderer;
}, /* bExport= */ true);