@openui5/sap.m
Version:
OpenUI5 UI Library sap.m
126 lines (101 loc) • 3.19 kB
JavaScript
/*!
* OpenUI5
* (c) Copyright 2026 SAP SE or an SAP affiliate company.
* Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
*/
// Provides element sap.m.BadgeCustomData.
sap.ui.define([
'sap/ui/core/CustomData',
'sap/base/Log',
'sap/m/library'
], function(CustomData, Log, library) {
"use strict";
/**
* Constructor for a new <code>BadgeCustomData</code> element.
*
* @param {string} [sId] ID for the new element, generated automatically if no ID is given
* @param {object} [mSettings] Initial settings for the new element
*
* @class
* Contains a single key/value pair of custom data attached to an <code>Element</code>.
*
* For more information, see {@link sap.ui.core.Element#data Element.prototype.data}
* and {@link topic:91f0c3ee6f4d1014b6dd926db0e91070 Custom Data - Attaching Data Objects to Controls}.
*
* @extends sap.ui.core.CustomData
* @since 1.80
*
* @public
* @alias sap.m.BadgeCustomData
*/
var BadgeAnimationType = library.BadgeAnimationType;
var BadgeCustomData = CustomData.extend("sap.m.BadgeCustomData", {
metadata: {
properties: {
visible: {type: "boolean", group: "Appearance", defaultValue: true},
/**
* Determines the type of animation to be performed by the Badge DOM element.
* @since 1.87
*/
animation: {type: "sap.m.BadgeAnimationType", group: "Appearance", defaultValue: BadgeAnimationType.Full}
}
}
});
BadgeCustomData.prototype.init = function() {
var oParent = this.getParent();
if (oParent && !oParent.isA("sap.m.IBadge")) {
Log.warning("BadgeCustomData must be attached only to controls, which implement sap.m.IBadge");
}
};
/**
* Sets the value of BadgeCustomData and updates the Badge DOM element.
*
* @private
* @param {string} sValue Value to be.
* @returns {this} this BadgeCustomData reference for chaining.
* @override
*/
BadgeCustomData.prototype.setValue = function (sValue) {
if (this.getValue() === sValue) { return this; }
if (sValue === null || sValue === undefined) {
sValue = "";
}
var oParent = this.getParent();
sValue = sValue.toString();
CustomData.prototype.setValue.call(this, sValue);
if (oParent) {
oParent.updateBadgeValue(sValue);
}
return this;
};
BadgeCustomData.prototype.setVisible = function (bVisible) {
if (this.getVisible() === bVisible) { return this; }
this.setProperty("visible", bVisible, true);
var oParent = this.getParent();
if (oParent) {
oParent.updateBadgeVisibility(bVisible);
}
return this;
};
BadgeCustomData.prototype.setAnimation = function (sAnimationType) {
if (this.getAnimation() === sAnimationType) { return this; }
this.setProperty("animation", sAnimationType, true);
var oParent = this.getParent();
if (oParent) {
oParent.updateBadgeAnimation(sAnimationType);
}
return this;
};
/**
* Sets the key property of BadgeCustomData as it can be only 'badge'.
*
* @private
* @param {string} sKey Key to be.
* @returns {this} this BadgeCustomData reference for chaining.
* @override
*/
BadgeCustomData.prototype.setKey = function () {
return this;
};
return BadgeCustomData;
});