UNPKG

@openui5/sap.m

Version:

OpenUI5 UI Library sap.m

97 lines (89 loc) 3.72 kB
/*! * OpenUI5 * (c) Copyright 2009-2023 SAP SE or an SAP affiliate company. * Licensed under the Apache License, Version 2.0 - see LICENSE.txt. */ /** * Defines support rules of the StepInput control of sap.m library. */ sap.ui.define(["sap/ui/support/library"], function(SupportLib) { "use strict"; // shortcuts var Categories = SupportLib.Categories, // Accessibility, Performance, Memory, Bindings, Consistency, FioriGuidelines, Functionality, Usability, DataModel, Modularization, Usage, Other Severity = SupportLib.Severity, // Hint, Warning, Error Audiences = SupportLib.Audiences; // Control, Internal, Application //********************************************************** // Rule Definitions //********************************************************** /** * Checks, if the value of the step property * does not contain more digigs after the decimal point * that the value of the displayValuePrecision */ var oStepInputStepProperty = { id: "stepInputStepProperty", audiences: [Audiences.Control], categories: [Categories.Consistency], enabled: true, minversion: "1.46", title: "StepInput: Step property precision is not greater than displayValuePrecision", description: "The value of the step property should not contain more digits after the decimal point than what is set to the displayValuePrecision property, as it may lead to an increase/decrease that is not visible", resolution: "Set step property to a value with less precision than the displayValuePrecision", resolutionurls: [{ text: "SAP Fiori Design Guidelines: StepInput", href: "https://experience.sap.com/fiori-design-web/step-input/" }], check: function(oIssueManager, oCoreFacade, oScope) { oScope.getElementsByClassName("sap.m.StepInput") .forEach(function(oElement) { var sStep = oElement.getStep().toString(); var iPrecision = sStep.indexOf(".") >= 0 ? sStep.split(".")[1].length : 0; if (iPrecision > oElement.getDisplayValuePrecision()) { var sElementId = oElement.getId(), sElementName = oElement.getMetadata().getElementName(); oIssueManager.addIssue({ severity: Severity.High, details: "StepInput '" + sElementName + "' (" + sElementId + ")'s step precision is greater than displayValuePrecision", context: { id: sElementId } }); } }); } }; var oStepInputFieldWidth = { id: "stepInputFieldWidth", audiences: [Audiences.Control], categories: [Categories.Consistency], enabled: true, minversion: "1.46", title: "StepInput: The fieldWidth property takes effect only if the description property is also set.", description: "This property takes effect only if the description property is also set.", resolution: "Set fieldWidth when you want to control the availbale width for the description", resolutionurls: [{ text: "SAP Fiori Design Guidelines: StepInput", href: "https://experience.sap.com/fiori-design-web/step-input/" }], check: function(oIssueManager, oCoreFacade, oScope) { oScope.getElementsByClassName("sap.m.StepInput") .forEach(function(oElement) { if (oElement.getFieldWidth() !== oElement.getMetadata().getAllProperties().fieldWidth.defaultValue && !oElement.getDescription()) { var sElementId = oElement.getId(), sElementName = oElement.getMetadata().getElementName(); oIssueManager.addIssue({ severity: Severity.Medium, details: "StepInput '" + sElementName + "' (" + sElementId + ") fieldWidth property is set and description is not", context: { id: sElementId } }); } }); } }; return [ oStepInputStepProperty, oStepInputFieldWidth ]; }, true);