async restore(mPropertyBag) {
			if (!mPropertyBag || !mPropertyBag.selector) {
				return Promise.reject("No selector was provided");
			}

			var oAppComponent = Utils.getAppComponentForControl(mPropertyBag.selector);

			if (!oAppComponent) {
				return Promise.reject("App Component could not be determined");
			}

			const sReference = FlexRuntimeInfoAPI.getFlexReference({element: mPropertyBag.selector});
			if (FlexState.isInitialized({control: oAppComponent})) {
				// limit the deletion to the passed selector control only
				const aRemovedChanges = FlexObjectManager.removeDirtyFlexObjects({
					reference: sReference,
					layers: Layer.USER,
					component: oAppComponent,
					control: mPropertyBag.selector,
					generator: mPropertyBag.generator,
					changeTypes: mPropertyBag.changeTypes
				});
				if (aRemovedChanges.length !== 0) {
					await Reverter.revertMultipleChanges(
						// Always revert changes in reverse order
						[...aRemovedChanges].reverse(),
						{
							appComponent: oAppComponent,
							modifier: JsControlTreeModifier,
							reference: sReference
						}
					);
				}
			}
			return undefined;
		}
Reset dirty changes for a given control.
This function also triggers a reversion of deleted UI changes.

@param {object} mPropertyBag - Object with parameters as properties
@param {sap.ui.core.Control} mPropertyBag.selector - Retrieves the associated flex persistence
@param {string} [mPropertyBag.generator] - Generator of changes
@param {string[]} [mPropertyBag.changeTypes] - Types of changes

@returns {Promise} Promise that resolves after the deletion took place

@private
@ui5-restricted