UNPKG

@openui5/sap.m

Version:

OpenUI5 UI Library sap.m

106 lines (94 loc) 2.58 kB
/*! * OpenUI5 * (c) Copyright 2026 SAP SE or an SAP affiliate company. * Licensed under the Apache License, Version 2.0 - see LICENSE.txt. */ // Provides the Design Time Metadata for the sap.m.Link control sap.ui.define(["sap/base/util/Deferred", "sap/ui/core/Element", "sap/ui/core/Lib", "sap/ui/core/Fragment", "sap/ui/model/json/JSONModel"], function(Deferred, Element, Library, Fragment, JSONModel) { "use strict"; var fnSelectTargetDialog = function(oControl, mPropertyBag) { var oTextResources = Library.getResourceBundleFor("sap.m.designtime"); return Fragment.load({ name: "sap.m.designtime.LinkTargetSelectDialog" }).then(function(oDialog) { var oModel = new JSONModel({ selectedKey : oControl.getTarget(), titleText : oTextResources.getText("LINK_DIALOG_TITLE_CHANGE_TARGET"), cancelBtn : oTextResources.getText("LINK_DIALOG_CANCEL_BTN"), okBtn : oTextResources.getText("LINK_DIALOG_OK_BTN") }); oDialog.setModel(oModel); var oDeferred = new Deferred(); oDialog.getBeginButton().attachPress(function(oEvent) { var sTargetValue = Element.getElementById("targetCombo").getValue(); oDeferred.resolve(sTargetValue); oDialog.close(); }); oDialog.getEndButton().attachPress(function(oEvent) { oDeferred.resolve(undefined); oDialog.close(); }); oDialog.attachEventOnce("afterClose", function(oEvent) { oDialog.destroy(); }); oDialog.addStyleClass(mPropertyBag.styleClass); oDialog.open(); return oDeferred.promise; }).then( function (sTargetValue) { if ( sTargetValue === undefined ) { // no change (cancel) return []; } return [{ selectorControl : oControl, changeSpecificData : { changeType : "changeLinkTarget", content : sTargetValue } }]; } ); }; return { name : { singular : "LINK_NAME", plural : "LINK_NAME_PLURAL" }, palette : { group : "ACTION", icons : { svg : "sap/m/designtime/Link.icon.svg" } }, actions : { remove : { changeType : "hideControl" }, reveal : { changeType : "unhideControl" }, rename: { changeType: "rename", domRef: function (oControl) { return oControl.$()[0]; } }, settings: function () { return { "changeLinkTarget": { name: "LINK_CHANGE_TARGET", isEnabled: function(oControl){ return !!oControl.getHref(); }, handler: fnSelectTargetDialog } }; } }, templates: { create: "sap/m/designtime/Link.create.fragment.xml" } }; });