UNPKG

@openui5/sap.m

Version:

OpenUI5 UI Library sap.m

97 lines (85 loc) 3.63 kB
/*! * OpenUI5 * (c) Copyright 2026 SAP SE or an SAP affiliate company. * Licensed under the Apache License, Version 2.0 - see LICENSE.txt. */ // Provides default renderer for control sap.m.TimePicker sap.ui.define(['sap/ui/core/Renderer', './DateTimeFieldRenderer', 'sap/ui/core/library'], function(Renderer, DateTimeFieldRenderer, coreLibrary) { "use strict"; /** * TimePicker renderer. * * @author SAP SE * @namespace */ var TimePickerRenderer = Renderer.extend(DateTimeFieldRenderer); TimePickerRenderer.apiVersion = 2; TimePickerRenderer.CSS_CLASS = "sapMTimePicker"; const MAX_INPUT_VALUE_LENGTH = 512; /** * Adds <code>sap.m.TimePicker</code> control specific classes to the input. * * See {@link sap.m.DateTimeFieldRenderer#addOuterClasses}. * @param {sap.ui.core.RenderManager} oRm The RenderManager that can be used for writing to the render output buffer * @param {sap.m.TimePicker} oControl The control that should be rendered */ TimePickerRenderer.addOuterClasses = function(oRm, oControl) { oRm.class(TimePickerRenderer.CSS_CLASS); if (oControl.getHideInput()) { oRm.class("sapMTimePickerHiddenInput"); } DateTimeFieldRenderer.addOuterClasses.apply(this, arguments); }; /** * Writes the value of the input. * * See {@link sap.m.DateTimeFieldRenderer#writeInnerValue}. * @override * @param {sap.ui.core.RenderManager} oRm The RenderManager that can be used for writing to the render output buffer * @param {sap.m.TimePicker} oControl An object representation of the control that should be rendered */ TimePickerRenderer.writeInnerValue = function(oRm, oControl) { if (oControl._inPreferredUserInteraction()) { oRm.attr("value", oControl._$input.val()); } else { oRm.attr("value", oControl._formatValue(oControl.getDateValue())); } }; /** * Collects the accessibility properties for the control. * * See {@link sap.m.InputBase#getAccessibilityState}. * @override * @param {sap.m.TimePicker} oControl THe time picker control */ TimePickerRenderer.getAccessibilityState = function (oControl) { var mAccessibilityState = DateTimeFieldRenderer.getAccessibilityState.apply(this, arguments); mAccessibilityState["roledescription"] = oControl._oResourceBundle.getText("ACC_CTR_TYPE_TIMEINPUT"); if (oControl.getEditable() && oControl.getEnabled()) { mAccessibilityState["haspopup"] = coreLibrary.aria.HasPopup.Dialog.toLowerCase(); } mAccessibilityState["disabled"] = null; // aria-disabled not needed if there's already a native 'disabled' attribute if (oControl._isMobileDevice()) { mAccessibilityState["describedby"] = oControl._oResourceBundle.getText("ACC_CTR_TYPE_TIMEINPUT_MOBILE_DESCRIBEDBY"); } return mAccessibilityState; }; /** * add extra attributes to TimePicker's Input * * @overrides sap.m.DateTimeFieldRenderer.writeInnerAttributes * @param {sap.ui.core.RenderManager} oRm the RenderManager that can be used for writing to the render output buffer * @param {sap.m.TimePicker} oControl an object representation of the control that should be rendered */ TimePickerRenderer.writeInnerAttributes = function (oRm, oControl) { if (oControl._isMobileDevice()) { oRm.attr("readonly", "readonly"); // readonly for mobile devices } if (oControl.getShowValueStateMessage()) { oRm.attr("autocomplete", "off"); // autocomplete="off" needed so the native browser autocomplete is not shown? } oRm.attr("maxlength", MAX_INPUT_VALUE_LENGTH); }; return TimePickerRenderer; }, /* bExport= */ true);