function setPluginBaseConfigs() {
		PluginBase.setConfigs({
		 "sap.ui.mdc.Table": {
			_sModelName: undefined,
			_bIsTableBound: false,
			setPluginDefaultSettings: function(oControl, oPlugin) {
				if (oPlugin.getUploadEnabled()) {
					this.setDragDropConfig(oControl, oPlugin);
				}
				this.setDefaultIllustrations(oControl, oPlugin);
			},
			setIsTableBound: function(oControl) {
				const oTable = oControl?._oTable;
				if (oTable && (oTable?.getBinding("rows") || oTable?.getBinding("items"))) {
					this._bIsTableBound = true;
				} else {
					this._bIsTableBound = false;
				}
			},
			getIsTableBound: function() {
				return this._bIsTableBound;
			},
			setModelName: function(oControl) {
				const oTable = oControl?._oTable;
				if (oTable?.isA("sap.m.Table")) {
					this._sModelName = oTable?.getBindingInfo("items")?.model;
				} else if (oTable?.isA("sap.ui.table.Table")) {
					this._sModelName = oTable?.getBindingInfo("rows")?.model;
				}
			},
			getModelName: function() {
				return this._sModelName;
			},
			// Set the drag and drop configuration for the table when the upload plugin is activated.
			setDragDropConfig: function (oControl, oPlugin) {
				// Loading MDC library's Drag and Drop configuration for the table.
				sap.ui.require(["sap/ui/mdc/table/DragDropConfig"], (MDCDragDropConfig) => {
					const oDragDropConfig = oPlugin._oDragDropConfig = new MDCDragDropConfig({
						droppable: true
					});
					oDragDropConfig.attachDrop(oPlugin._onDropFile.bind(oPlugin));
					oControl.addDragDropConfig(oDragDropConfig);
				}, () => {
					Log.error("Failed to load MDC library for Drag and Drop configuration.");
				});
			},
			resetDragDropConfig: function(oControl, oPlugin) {
				if (oPlugin && oControl && oPlugin._oDragDropConfig) {
					oControl.removeDragDropConfig(oPlugin._oDragDropConfig);
					oPlugin._oDragDropConfig = null;
				}
			},
			// Set the default illustrations for the table when no data is available and only when the upload plugin is activated.
			setDefaultIllustrations: function(oControl, oPlugin) {
				const oNoDataIllustration = oPlugin?.getNoDataIllustration();
				if (oControl && oPlugin) {
					if (!oNoDataIllustration) {
						oPlugin._illustratedMessage = oPlugin._getDefaultNoDataIllustration();
					} else {
						oPlugin._illustratedMessage = oNoDataIllustration;
					}
					oControl.setNoData(oPlugin._illustratedMessage);
			}
			},
			cleanupPluginInstanceSettings: function(oControl, oPlugin) {
				// remove nodata aggregations added from plugin activation.
				if (oControl) {
					oControl.setNoData(null);
				}
				if (oPlugin) {
					oPlugin.setPreviewDialog(null);
					oPlugin._illustratedMessage = null;
				}
				if (oPlugin._oDragDropConfig && oControl) {
					oControl.removeDragDropConfig(oPlugin._oDragDropConfig);
					oPlugin._oDragDropConfig = null;
				}
			},
			// Handles the preview of the passed context. Requires access to all the contexts of inner table to setup the preview along with carousel.
			openFilePreview: async function(oBindingContext, oControl, oPlugin) {
				const oRowConfiguration = oPlugin.getRowConfiguration();
				const oContexts = this.getTableContexts(oControl?._oTable);
				let aUploadSetItems = [];
				if (oContexts?.length) {
					aUploadSetItems = await oPlugin.getItemsMap(oContexts, oRowConfiguration);
					const oPreviewUploaditem = aUploadSetItems.find((oItem) => oItem?.data("path") === oBindingContext.getPath());
					if (oPreviewUploaditem) {
						oPlugin._initiateFilePreview(oPreviewUploaditem, aUploadSetItems);
					}
				}
			},
			// Handles the download of the file through the passed context.
			download: async function(mDownloadInfo, oPlugin) {
				const {oBindingContext, bAskForLocation} = mDownloadInfo;
				const oItem = await oPlugin.getItemForContext(oBindingContext);
				if (oItem && oItem.getUrl()) {
					return oPlugin._initiateFileDownload(oItem, bAskForLocation);
				}
				return false;
			},
			getTableContexts: function(oTable) {
				if (oTable?.isA("sap.m.Table")) {
					return oTable.getBinding("items").getCurrentContexts();
				} else if (oTable?.isA("sap.ui.table.Table")) {
					return oTable?.getBinding("rows")?.getCurrentContexts();
				}
				return null;
			}
		 },
		 "sap.m.Table": {
			_sModelName: undefined,
			_bIsTableBound: false,
			setPluginDefaultSettings: function(oControl, oPlugin) {
				if (oPlugin.getUploadEnabled()) {
					this.setDragDropConfig(oControl, oPlugin);
				}
				this.setDefaultIllustrations(oControl, oPlugin);
			},
			setIsTableBound: function(oControl) {
				if (oControl?.getBinding("items")) {
					this._bIsTableBound = true;
				} else {
					this._bIsTableBound = false;
				}
			},
			getIsTableBound: function() {
				return this._bIsTableBound;
			},
			setModelName: function(oControl) {
				if (oControl?.isA("sap.m.Table")) {
					this._sModelName = oControl?.getBindingInfo("items")?.model;
				}
			},
			getModelName: function() {
				return this._sModelName;
			},
			// Set the drag and drop configuration for the table when upload plugin is activated.
			setDragDropConfig: function (oControl, oPlugin) {
				var oDragDropConfig = oPlugin._oDragDropConfig = new DragDropInfo({
					sourceAggregation: "items",
					targetAggregation: "items"
				});
				var oDropConfig = oPlugin._oDropConfig = new DropInfo({
					dropEffect:"Move",
					dropPosition:"OnOrBetween",
					dragEnter: [oPlugin?._onDragEnterFile, oPlugin],
					drop: [oPlugin?._onDropFile, oPlugin]
				});
				oControl?.addDragDropConfig(oDragDropConfig);
				oControl?.addDragDropConfig(oDropConfig);
			},
			resetDragDropConfig: function(oControl, oPlugin) {
				if (oPlugin && oControl) {
					oControl.removeDragDropConfig(oPlugin._oDragDropConfig);
					oControl.removeDragDropConfig(oPlugin._oDropConfig);
					oPlugin._oDragDropConfig = null;
					oPlugin._oDropConfig = null;
				}
			},
			// Set default illustrations for the table when no data is available. Set only when the upload plugin is activated.
			setDefaultIllustrations: function(oControl, oPlugin) {
				const oNoDataIllustration = oPlugin?.getNoDataIllustration();
				if (oControl && oPlugin) {
					if (!oNoDataIllustration) {
						oPlugin._illustratedMessage = oPlugin._getDefaultNoDataIllustration();
					} else {
						oPlugin._illustratedMessage = oNoDataIllustration;
					}
					oControl.setNoData(oPlugin._illustratedMessage);
                                }
			},
			cleanupPluginInstanceSettings: function(oControl, oPlugin) {
				// remove nodata aggregations added from plugin activation.
				if (oControl) {
					oControl.setNoData(null);
				}
				if (oPlugin) {
					oPlugin.setPreviewDialog(null);
					oPlugin._illustratedMessage = null;
				}
				if (oPlugin._oDragDropConfig && oControl) {
					oControl.removeDragDropConfig(oPlugin._oDragDropConfig);
					oPlugin._oDragDropConfig = null;
				}
			},
			// Handles preview of the passed context. Requires access to all the contexts of inner table to setup the preview along with carousel.
			openFilePreview: async function(oBindingContext, oControl, oPlugin) {
				const oRowConfiguration = oPlugin.getRowConfiguration();
				const oContexts = this.getTableContexts(oControl);
				let aUploadSetItems = [];
				if (oContexts?.length) {
					aUploadSetItems = await oPlugin.getItemsMap(oContexts, oRowConfiguration);
				}
				const oPreviewUploaditem = aUploadSetItems.find((oItem) => oItem?.data("path") === oBindingContext.getPath());
				if (oPreviewUploaditem) {
					oPlugin._initiateFilePreview(oPreviewUploaditem, aUploadSetItems);
				}
			},
			// Handles download of the file through the passed context.
			download: async function(mDownloadInfo, oPlugin) {
				const {oBindingContext, bAskForLocation} = mDownloadInfo;
				const oItem = await oPlugin.getItemForContext(oBindingContext);
				if (oItem && oItem.getUrl()) {
					return oPlugin._initiateFileDownload(oItem, bAskForLocation);
				}
			return false;
			},
			getTableContexts: function(oTable) {
				return oTable?.getBinding("items")?.getCurrentContexts() || null;
			}
		 },
		 "sap.ui.table.Table": {
			_sModelName: undefined,
			_bIsTableBound: false,
			setPluginDefaultSettings: function(oControl, oPlugin) {
				if (oPlugin.getUploadEnabled()) {
					this.setDragDropConfig(oControl, oPlugin);
				}
				this.setDefaultIllustrations(oControl, oPlugin);
			},
			setIsTableBound: function(oControl) {
				if (oControl?.getBinding("rows")) {
					this._bIsTableBound = true;
				} else {
					this._bIsTableBound = false;
				}
			},
			getIsTableBound: function() {
				return this._bIsTableBound;
			},
			setModelName: function(oControl) {
				if (oControl?.isA("sap.ui.table.Table")) {
					this._sModelName = oControl?.getBindingInfo("rows")?.model;
				}
			},
			getModelName: function() {
				return this._sModelName;
			},
			// Set the drag and drop configuration for the table when upload plugin is actived.
			setDragDropConfig: function (oControl, oPlugin) {
				var oDragDropConfig = oPlugin._oDragDropConfig = new DragDropInfo({
					sourceAggregation: "rows",
					targetAggregation: "rows"
				});
				var oDropConfig = oPlugin._oDropConfig = new DropInfo({
					dropEffect:"Move",
					dropPosition:"OnOrBetween",
					dragEnter: [oPlugin?._onDragEnterFile, oPlugin],
					drop: [oPlugin?._onDropFile, oPlugin]
				});
				oControl?.addDragDropConfig(oDragDropConfig);
				oControl?.addDragDropConfig(oDropConfig);
			},
			resetDragDropConfig: function(oControl, oPlugin) {
				if (oPlugin && oControl) {
					oControl.removeDragDropConfig(oPlugin._oDragDropConfig);
					oControl.removeDragDropConfig(oPlugin._oDropConfig);
					oPlugin._oDragDropConfig = null;
					oPlugin._oDropConfig = null;
				}
			},
			// Set the default illustrations for the table when no data is available. Set only when the upload plugin is activated.
			setDefaultIllustrations: function(oControl, oPlugin) {
				const oNoDataIllustration = oPlugin?.getNoDataIllustration();
				if (oControl && oPlugin) {
					if (!oNoDataIllustration) {
						oPlugin._illustratedMessage = oPlugin._getDefaultNoDataIllustration();
					} else {
						oPlugin._illustratedMessage = oNoDataIllustration;
					}
					oControl.setNoData(oPlugin._illustratedMessage);
                                }
			},
			cleanupPluginInstanceSettings: function(oControl, oPlugin) {
				// remove nodata aggregations added from plugin activation.
				if (oControl) {
					oControl.setNoData(null);
				}
				if (oPlugin) {
					oPlugin.setPreviewDialog(null);
					oPlugin._illustratedMessage = null;
				}
				if (oPlugin._oDragDropConfig && oControl) {
					oControl.removeDragDropConfig(oPlugin._oDragDropConfig);
					oPlugin._oDragDropConfig = null;
				}
			},
			// Handles preview of the passed context. Requires access to all the contexts of inner table to setup the preview along with carousel.
			openFilePreview: async function(oBindingContext, oControl, oPlugin) {
				const oRowConfiguration = oPlugin.getRowConfiguration();
				const oContexts = this.getTableContexts(oControl);
				let aUploadSetItems = [];
				if (oContexts?.length) {
					aUploadSetItems = await oPlugin.getItemsMap(oContexts, oRowConfiguration);
					const oPreviewUploaditem = aUploadSetItems.find((oItem) => oItem?.data("path") === oBindingContext.getPath());
					if (oPreviewUploaditem) {
						oPlugin._initiateFilePreview(oPreviewUploaditem, aUploadSetItems);
					}
				}
			},
			// Handles download of the file through the context passed.
			download: async function(mDownloadInfo, oPlugin) {
				const {oBindingContext, bAskForLocation} = mDownloadInfo;
				const oItem = await oPlugin.getItemForContext(oBindingContext);
				if (oItem && oItem.getUrl()) {
					return oPlugin._initiateFileDownload(oItem, bAskForLocation);
				}
				return false;
			},
			getTableContexts: function(oTable) {
				return oTable?.getBinding("rows")?.getCurrentContexts() || null;
			}
		 }
		}, UploadSetwithTable);
	}
API to terminate the upload of an item.
@param {sap.m.upload.UploadItem} oItem item to be terminated.
@private