@openui5/sap.m
Version:
OpenUI5 UI Library sap.m
79 lines (59 loc) • 2.4 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(['sap/ui/core/Renderer', './InputBaseRenderer'],
function(Renderer, InputBaseRenderer) {
"use strict";
/**
* DatePicker renderer.
* @namespace
*/
var DatePickerRenderer = Renderer.extend(InputBaseRenderer);
/**
* Write the value of the input.
*
* @param {sap.ui.core.RenderManager} oRm The RenderManager that can be used for writing to the render output buffer.
* @param {sap.m.DatePicker} oDP An object representation of the control that should be rendered.
*/
DatePickerRenderer.writeInnerValue = function(oRm, oDP) {
if (oDP._bValid) {
oRm.writeAttributeEscaped("value", oDP._formatValue(oDP.getDateValue()));
} else {
oRm.writeAttributeEscaped("value", oDP.getValue());
}
};
/**
* This method is reserved for derived classes to add extra attributes for the input element.
*
* @param {sap.ui.core.RenderManager} oRm The RenderManager that can be used for writing to the render output buffer.
* @param {sap.m.DatePicker} oDP An object representation of the control that should be rendered.
*/
DatePickerRenderer.writeInnerAttributes = function(oRm, oDP) {
oRm.writeAttribute("type", "text");
if (oDP._bMobile) {
// prevent keyboard in mobile devices
oRm.writeAttribute("readonly", "readonly");
}
};
DatePickerRenderer.getAriaRole = function(oDP) {
return "combobox";
};
DatePickerRenderer.getDescribedByAnnouncement = function(oDP) {
var sBaseAnnouncement = InputBaseRenderer.getDescribedByAnnouncement.apply(this, arguments);
return sap.ui.getCore().getLibraryResourceBundle("sap.m").getText("DATEPICKER_DATE_TYPE") + " " + sBaseAnnouncement;
};
DatePickerRenderer.getAccessibilityState = function(oDP) {
var mAccessibilityState = InputBaseRenderer.getAccessibilityState.apply(this, arguments);
mAccessibilityState["autocomplete"] = "none";
mAccessibilityState["haspopup"] = true;
mAccessibilityState["expanded"] = false;
if (oDP._bMobile && oDP.getEnabled() && oDP.getEditable()) {
// if on mobile device readonly property is set, but should not be announced
mAccessibilityState["readonly"] = false;
}
return mAccessibilityState;
};
return DatePickerRenderer;
}, /* bExport= */ true);