UNPKG

@openui5/sap.m

Version:

OpenUI5 UI Library sap.m

119 lines (100 loc) 3.09 kB
/*! * OpenUI5 * (c) Copyright 2026 SAP SE or an SAP affiliate company. * Licensed under the Apache License, Version 2.0 - see LICENSE.txt. */ sap.ui.define([], () => { "use strict"; let pWriteAPI; const FlexUtil = { /** * Method which reduces a propertyinfo map to changecontent relevant attributes. * <b>Note:</b> This method determines the attributes stored in the changeContent. * * @param {object} oProperty Object containing all values prior to change creation * @param {array} aDeltaAttributes Array containing all attributes that are necessary for the delta calculation * * @returns {object} Object containing reduced content */ _getChangeContent: function(oProperty, aDeltaAttributes) { const oChangeContent = {}; // Index if (oProperty.index >= 0) { oChangeContent.index = oProperty.index; } aDeltaAttributes.forEach((sAttribute) => { if (oProperty.hasOwnProperty(sAttribute)) { oChangeContent[sAttribute] = oProperty[sAttribute]; } }); return oChangeContent; }, _hasProperty: function(aPropertyInfo, sName) { return aPropertyInfo.some((oProperty) => { //First check unique name let bValid = oProperty.name === sName || sName == "$search"; //Use path as Fallback bValid = bValid ? bValid : oProperty.path === sName; return bValid; }); }, createConditionChange: function(sChangeType, oControl, sFieldPath, oCondition) { delete oCondition.filtered; const oConditionChange = { selectorElement: oControl, changeSpecificData: { changeType: sChangeType, content: { name: sFieldPath, condition: oCondition } } }; return oConditionChange; }, _requireWriteAPI: function() { if (!pWriteAPI) { pWriteAPI = new Promise((resolve, reject) => { sap.ui.require([ "sap/ui/fl/write/api/ControlPersonalizationWriteAPI" ], (ControlPersonalizationWriteAPI) => { resolve(ControlPersonalizationWriteAPI); }); }); } return pWriteAPI; }, handleChanges: function(aChanges, bIgnoreVM, bTransient) { if (bTransient) { aChanges.forEach((oChange) => { oChange.transient = true; }); } return FlexUtil._requireWriteAPI().then((ControlPersonalizationWriteAPI) => { return ControlPersonalizationWriteAPI.add({ changes: aChanges, ignoreVariantManagement: bIgnoreVM }); }); }, saveChanges: function(oControl, aDirtyChanges) { return FlexUtil._requireWriteAPI().then((ControlPersonalizationWriteAPI) => { return ControlPersonalizationWriteAPI.save({ selector: oControl, changes: aDirtyChanges }); }); }, restore: function(mPropertyBag) { return FlexUtil._requireWriteAPI().then((ControlPersonalizationWriteAPI) => { return ControlPersonalizationWriteAPI.restore(mPropertyBag); }); }, reset: function(mPropertyBag) { return FlexUtil._requireWriteAPI().then((ControlPersonalizationWriteAPI) => { return ControlPersonalizationWriteAPI.reset(mPropertyBag); }); } }; return FlexUtil; });