@sapui5/sap.ushell_abap 1.153.0 → 1.154.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (116) hide show
  1. package/package.json +1 -1
  2. package/src/main/js/sap/ushell_abap/.library +1 -1
  3. package/src/main/js/sap/ushell_abap/adapters/abap/AppStateAdapter.js +1 -1
  4. package/src/main/js/sap/ushell_abap/adapters/abap/ClientSideTargetResolutionAdapter.js +1 -1
  5. package/src/main/js/sap/ushell_abap/adapters/abap/CommonDataModelAdapter.js +1 -1
  6. package/src/main/js/sap/ushell_abap/adapters/abap/ConfigurationDefaultsAdapter.js +1 -1
  7. package/src/main/js/sap/ushell_abap/adapters/abap/ContainerAdapter.js +1 -1
  8. package/src/main/js/sap/ushell_abap/adapters/abap/FlpLaunchPageAdapter.js +53 -4
  9. package/src/main/js/sap/ushell_abap/adapters/abap/LaunchPageAdapter.js +1 -1
  10. package/src/main/js/sap/ushell_abap/adapters/abap/NavTargetResolutionAdapter.js +1 -1
  11. package/src/main/js/sap/ushell_abap/adapters/abap/NavTargetResolutionInternalAdapter.js +1 -1
  12. package/src/main/js/sap/ushell_abap/adapters/abap/PageBuildingAdapter.js +1 -1
  13. package/src/main/js/sap/ushell_abap/adapters/abap/PagePersistenceAdapter.js +5 -5
  14. package/src/main/js/sap/ushell_abap/adapters/abap/PersonalizationAdapter.js +1 -1
  15. package/src/main/js/sap/ushell_abap/adapters/abap/PersonalizationV2Adapter.js +1 -1
  16. package/src/main/js/sap/ushell_abap/adapters/abap/SearchAdapter.js +1 -1
  17. package/src/main/js/sap/ushell_abap/adapters/abap/SupportTicketAdapter.js +1 -1
  18. package/src/main/js/sap/ushell_abap/adapters/abap/Ui5ComponentLoaderAdapter.js +1 -1
  19. package/src/main/js/sap/ushell_abap/adapters/abap/VisualizationInstantiationAdapter.js +76 -0
  20. package/src/main/js/sap/ushell_abap/adapters/hana/ContainerAdapter.js +1 -1
  21. package/src/main/js/sap/ushell_abap/adapters/local/ClientSideTargetResolutionAdapter.js +123 -0
  22. package/src/main/js/sap/ushell_abap/adapters/local/FlpLaunchPageAdapter.js +115 -0
  23. package/src/main/js/sap/ushell_abap/adapters/local/MenuAdapter.js +92 -0
  24. package/src/main/js/sap/ushell_abap/adapters/local/PageBuildingAdapter.js +242 -0
  25. package/src/main/js/sap/ushell_abap/adapters/local/PagePersistenceAdapter.js +308 -0
  26. package/src/main/js/sap/ushell_abap/api/S4MyHome.js +58 -0
  27. package/src/main/js/sap/ushell_abap/bootstrap/DirectAppStart.js +25 -13
  28. package/src/main/js/sap/ushell_abap/bootstrap/PlatformConfig.js +5 -5
  29. package/src/main/js/sap/ushell_abap/bootstrap/abapConstants.js +11 -0
  30. package/src/main/js/sap/ushell_abap/components/SideNavigation/modules/Favorites.js +549 -0
  31. package/src/main/js/sap/ushell_abap/components/SideNavigation/modules/GenericNavigationListProvider.js +241 -0
  32. package/src/main/js/sap/ushell_abap/components/cards/Card.controller.js +117 -0
  33. package/src/main/js/sap/ushell_abap/components/cards/Card.view.xml +11 -0
  34. package/src/main/js/sap/ushell_abap/components/cards/Configuration.controller.js +280 -0
  35. package/src/main/js/sap/ushell_abap/components/cards/Configuration.view.xml +27 -0
  36. package/src/main/js/sap/ushell_abap/components/cards/ManifestPropertyHelper.js +298 -0
  37. package/src/main/js/sap/ushell_abap/components/settings/TransactionCode/Component.js +6 -6
  38. package/src/main/js/sap/ushell_abap/components/settings/TransactionCode/TransactionCode.controller.js +9 -8
  39. package/src/main/js/sap/ushell_abap/components/settings/TransactionCode/i18n/i18n.properties +10 -10
  40. package/src/main/js/sap/ushell_abap/components/settings/TransactionCode/i18n/i18n_ar.properties +10 -0
  41. package/src/main/js/sap/ushell_abap/components/settings/TransactionCode/i18n/i18n_bg.properties +10 -0
  42. package/src/main/js/sap/ushell_abap/components/settings/TransactionCode/i18n/i18n_ca.properties +10 -0
  43. package/src/main/js/sap/ushell_abap/components/settings/TransactionCode/i18n/i18n_cnr.properties +10 -0
  44. package/src/main/js/sap/ushell_abap/components/settings/TransactionCode/i18n/i18n_cs.properties +10 -0
  45. package/src/main/js/sap/ushell_abap/components/settings/TransactionCode/i18n/i18n_cy.properties +10 -0
  46. package/src/main/js/sap/ushell_abap/components/settings/TransactionCode/i18n/i18n_da.properties +10 -0
  47. package/src/main/js/sap/ushell_abap/components/settings/TransactionCode/i18n/i18n_de.properties +10 -0
  48. package/src/main/js/sap/ushell_abap/components/settings/TransactionCode/i18n/i18n_el.properties +10 -0
  49. package/src/main/js/sap/ushell_abap/components/settings/TransactionCode/i18n/i18n_en.properties +10 -0
  50. package/src/main/js/sap/ushell_abap/components/settings/TransactionCode/i18n/i18n_en_GB.properties +10 -0
  51. package/src/main/js/sap/ushell_abap/components/settings/TransactionCode/i18n/i18n_en_US_sappsd.properties +10 -0
  52. package/src/main/js/sap/ushell_abap/components/settings/TransactionCode/i18n/i18n_en_US_saprigi.properties +10 -0
  53. package/src/main/js/sap/ushell_abap/components/settings/TransactionCode/i18n/i18n_en_US_saptrc.properties +10 -0
  54. package/src/main/js/sap/ushell_abap/components/settings/TransactionCode/i18n/i18n_es.properties +10 -0
  55. package/src/main/js/sap/ushell_abap/components/settings/TransactionCode/i18n/i18n_es_MX.properties +10 -0
  56. package/src/main/js/sap/ushell_abap/components/settings/TransactionCode/i18n/i18n_et.properties +10 -0
  57. package/src/main/js/sap/ushell_abap/components/settings/TransactionCode/i18n/i18n_fi.properties +10 -0
  58. package/src/main/js/sap/ushell_abap/components/settings/TransactionCode/i18n/i18n_fr.properties +10 -0
  59. package/src/main/js/sap/ushell_abap/components/settings/TransactionCode/i18n/i18n_fr_CA.properties +10 -0
  60. package/src/main/js/sap/ushell_abap/components/settings/TransactionCode/i18n/i18n_hi.properties +10 -0
  61. package/src/main/js/sap/ushell_abap/components/settings/TransactionCode/i18n/i18n_hr.properties +10 -0
  62. package/src/main/js/sap/ushell_abap/components/settings/TransactionCode/i18n/i18n_hu.properties +10 -0
  63. package/src/main/js/sap/ushell_abap/components/settings/TransactionCode/i18n/i18n_id.properties +10 -0
  64. package/src/main/js/sap/ushell_abap/components/settings/TransactionCode/i18n/i18n_it.properties +10 -0
  65. package/src/main/js/sap/ushell_abap/components/settings/TransactionCode/i18n/i18n_iw.properties +10 -0
  66. package/src/main/js/sap/ushell_abap/components/settings/TransactionCode/i18n/i18n_ja.properties +10 -0
  67. package/src/main/js/sap/ushell_abap/components/settings/TransactionCode/i18n/i18n_kk.properties +10 -0
  68. package/src/main/js/sap/ushell_abap/components/settings/TransactionCode/i18n/i18n_ko.properties +10 -0
  69. package/src/main/js/sap/ushell_abap/components/settings/TransactionCode/i18n/i18n_lt.properties +10 -0
  70. package/src/main/js/sap/ushell_abap/components/settings/TransactionCode/i18n/i18n_lv.properties +10 -0
  71. package/src/main/js/sap/ushell_abap/components/settings/TransactionCode/i18n/i18n_mk.properties +10 -0
  72. package/src/main/js/sap/ushell_abap/components/settings/TransactionCode/i18n/i18n_ms.properties +10 -0
  73. package/src/main/js/sap/ushell_abap/components/settings/TransactionCode/i18n/i18n_nl.properties +10 -0
  74. package/src/main/js/sap/ushell_abap/components/settings/TransactionCode/i18n/i18n_no.properties +10 -0
  75. package/src/main/js/sap/ushell_abap/components/settings/TransactionCode/i18n/i18n_pl.properties +10 -0
  76. package/src/main/js/sap/ushell_abap/components/settings/TransactionCode/i18n/i18n_pt.properties +10 -0
  77. package/src/main/js/sap/ushell_abap/components/settings/TransactionCode/i18n/i18n_pt_PT.properties +10 -0
  78. package/src/main/js/sap/ushell_abap/components/settings/TransactionCode/i18n/i18n_ro.properties +10 -0
  79. package/src/main/js/sap/ushell_abap/components/settings/TransactionCode/i18n/i18n_ru.properties +10 -0
  80. package/src/main/js/sap/ushell_abap/components/settings/TransactionCode/i18n/i18n_sh.properties +10 -0
  81. package/src/main/js/sap/ushell_abap/components/settings/TransactionCode/i18n/i18n_sk.properties +10 -0
  82. package/src/main/js/sap/ushell_abap/components/settings/TransactionCode/i18n/i18n_sl.properties +10 -0
  83. package/src/main/js/sap/ushell_abap/components/settings/TransactionCode/i18n/i18n_sr.properties +10 -0
  84. package/src/main/js/sap/ushell_abap/components/settings/TransactionCode/i18n/i18n_sv.properties +10 -0
  85. package/src/main/js/sap/ushell_abap/components/settings/TransactionCode/i18n/i18n_th.properties +10 -0
  86. package/src/main/js/sap/ushell_abap/components/settings/TransactionCode/i18n/i18n_tr.properties +10 -0
  87. package/src/main/js/sap/ushell_abap/components/settings/TransactionCode/i18n/i18n_uk.properties +10 -0
  88. package/src/main/js/sap/ushell_abap/components/settings/TransactionCode/i18n/i18n_vi.properties +10 -0
  89. package/src/main/js/sap/ushell_abap/components/settings/TransactionCode/i18n/i18n_zh_CN.properties +10 -0
  90. package/src/main/js/sap/ushell_abap/components/settings/TransactionCode/i18n/i18n_zh_TW.properties +10 -0
  91. package/src/main/js/sap/ushell_abap/components/settings/TransactionCode/manifest.json +1 -1
  92. package/src/main/js/sap/ushell_abap/components/tiles/action/ActionTile.controller.js +189 -0
  93. package/src/main/js/sap/ushell_abap/components/tiles/action/ActionTile.view.xml +13 -0
  94. package/src/main/js/sap/ushell_abap/components/tiles/action/Configuration.controller.js +193 -0
  95. package/src/main/js/sap/ushell_abap/components/tiles/action/Configuration.view.xml +333 -0
  96. package/src/main/js/sap/ushell_abap/components/tiles/applauncher/Component.js +41 -0
  97. package/src/main/js/sap/ushell_abap/components/tiles/applauncher/Configuration.controller.js +114 -0
  98. package/src/main/js/sap/ushell_abap/components/tiles/applauncher/Configuration.view.xml +208 -0
  99. package/src/main/js/sap/ushell_abap/components/tiles/applauncher/StaticTile.controller.js +497 -0
  100. package/src/main/js/sap/ushell_abap/components/tiles/applauncher/StaticTile.view.js +61 -0
  101. package/src/main/js/sap/ushell_abap/components/tiles/applauncherdynamic/Component.js +45 -0
  102. package/src/main/js/sap/ushell_abap/components/tiles/applauncherdynamic/Configuration.controller.js +113 -0
  103. package/src/main/js/sap/ushell_abap/components/tiles/applauncherdynamic/Configuration.view.xml +231 -0
  104. package/src/main/js/sap/ushell_abap/components/tiles/applauncherdynamic/DynamicTile.controller.js +729 -0
  105. package/src/main/js/sap/ushell_abap/components/tiles/applauncherdynamic/DynamicTile.view.js +106 -0
  106. package/src/main/js/sap/ushell_abap/library.js +12 -1
  107. package/src/main/js/sap/ushell_abap/messagebundle.properties +5 -3
  108. package/src/main/js/sap/ushell_abap/pbServices/ui2/Chip.js +7 -3
  109. package/src/main/js/sap/ushell_abap/pbServices/ui2/ODataWrapper.js +1 -1
  110. package/src/main/js/sap/ushell_abap/pbServices/ui2/contracts/configuration.js +6 -2
  111. package/src/main/js/sap/ushell_abap/services/NavigationDataProvider.js +1 -1
  112. package/src/main/js/sap/ushell_abap/ui/VisualizationInstantiation/ChipInstanceWrapper.js +248 -0
  113. package/src/main/js/sap/ushell_abap/ui/VisualizationInstantiation/VizInstanceAbap.js +134 -0
  114. package/src/main/js/sap/ushell_abap/ui/VisualizationInstantiation/VizInstanceAbapLink.js +145 -0
  115. package/src/main/js/sap/ushell_abap/utils/UserPersonalization.js +51 -4
  116. package/ui5.yaml +20 -2
@@ -0,0 +1,193 @@
1
+ // Copyright (c) 2009-2026 SAP SE, All Rights Reserved
2
+
3
+ sap.ui.define([
4
+ "sap/ui/core/Element",
5
+ "sap/ui/core/mvc/Controller",
6
+ "sap/ushell/components/tiles/utils",
7
+ "sap/ui/core/library",
8
+ "sap/m/MessageBox"
9
+ ], (Element, Controller, tileUtils, coreLibrary, MessageBox) => {
10
+ "use strict";
11
+
12
+ // shortcut for sap.ui.core.ValueState
13
+ const ValueState = coreLibrary.ValueState;
14
+
15
+ return Controller.extend("sap.ushell_abap.components.tiles.action.Configuration", {
16
+ sEnterValuePlaceHolder: "",
17
+ sDuplicateErrorMsg: "",
18
+ sDuplicateErrorTitle: "",
19
+ sInvalidParmMsg: "",
20
+
21
+ aDefaultObjects: [
22
+ {
23
+ obj: "",
24
+ name: ""
25
+ }, {
26
+ obj: "*",
27
+ name: "*"
28
+ }
29
+ ],
30
+
31
+ onConfigurationInputChange: function (oControlEvent) {
32
+ tileUtils.checkTMInput(this.getView(), oControlEvent);
33
+ },
34
+ onInit: function () {
35
+ const oView = this.getView();
36
+ const oSemanticObjectSelector = oView.byId("semantic_objectInput");
37
+ const oRoleSelector = oView.byId("navigation_provider_roleInput");
38
+ const oInstanceSelector = oView.byId("navigation_provider_instanceInput");
39
+ const oAliasSelector = oView.byId("target_application_aliasInput");
40
+ const oActionSelector = oView.byId("semantic_actionInput");
41
+ const oTargetTypeSelector = oView.byId("targetTypeInput");
42
+ const oResourceModel = tileUtils.getResourceBundleModel();
43
+
44
+ oView.setModel(oResourceModel, "i18n");
45
+ oView.setViewName("sap.ushell.components.tiles.action.Configuration");
46
+ // initialize semantic object input field
47
+ tileUtils.createSemanticObjectModel(this, oSemanticObjectSelector, this.aDefaultObjects);
48
+ tileUtils.createRoleModel(this, oRoleSelector, oInstanceSelector);
49
+ tileUtils.createAliasModel(this, oAliasSelector);
50
+ tileUtils.createActionModel(this, oActionSelector);
51
+ tileUtils.createNavigationProviderModel(this, oTargetTypeSelector);
52
+ // make sure that the chose object is written back to the configuration
53
+ oSemanticObjectSelector.attachChange((oControlEvent) => {
54
+ const sValue = oControlEvent.getSource().getValue();
55
+ oView.getModel().setProperty("/config/semantic_object", sValue);
56
+ });
57
+ oRoleSelector.attachChange((oControlEvent) => {
58
+ const sValue = oControlEvent.getSource().getValue();
59
+ oView.getModel().setProperty("/config/navigation_provider_role", sValue);
60
+ tileUtils.updateAliasModel(oView, oAliasSelector);
61
+ });
62
+ oInstanceSelector.attachChange((oControlEvent) => {
63
+ const sValue = oControlEvent.getSource().getValue();
64
+ oView.getModel().setProperty("/config/navigation_provider_instance", sValue);
65
+ });
66
+ oAliasSelector.attachChange((oControlEvent) => {
67
+ const sValue = oControlEvent.getSource().getValue();
68
+ oView.getModel().setProperty("/config/target_application_alias", sValue);
69
+ });
70
+
71
+ const oBundle = tileUtils.getResourceBundle();
72
+ this.sEnterValuePlaceHolder = oBundle.getText("configuration.signature.table.valueFieldLbl");
73
+ this.sDuplicateErrorMsg = oBundle.getText("configuration.signature.uniqueParamMessage.text");
74
+ this.sDuplicateErrorTitle = oBundle.getText("configuration.signature.uniqueParamMessage.title");
75
+ this.sInvalidParmMsg = oBundle.getText("configuration.signature.invalidParamMessage.text");
76
+ },
77
+
78
+ // This function applies table logic for the mapping signature structure according to the Mandatory check-box:
79
+ // if mandatory is unselected: Value and isRegularExpression fields should be disabled and vice versa...
80
+ handleMandatoryChange: function (oMandatoryCheckBox) {
81
+ const sId = oMandatoryCheckBox.getParameter("id");
82
+ const aParentCells = Element.getElementById(sId).getParent().getCells();
83
+
84
+ const bIsMandatory = oMandatoryCheckBox.getParameter("selected");
85
+
86
+ if (bIsMandatory) {
87
+ aParentCells[2].setEnabled(true); // Value field
88
+ aParentCells[2].setPlaceholder(this.sEnterValuePlaceHolder);
89
+ aParentCells[4].setEnabled(false); // DefaultValue field
90
+ aParentCells[4].setValue("");
91
+ aParentCells[4].setPlaceholder("");
92
+ aParentCells[3].setEnabled(true); // IsRegularExpression check-box field
93
+ } else {
94
+ aParentCells[2].setEnabled(false); // Value field
95
+ aParentCells[2].setValue("");
96
+ aParentCells[2].setPlaceholder(""); // Were requested that a disabled text field will not show the Enter Value
97
+ aParentCells[4].setEnabled(true); // DefaultValue field
98
+ aParentCells[4].setPlaceholder(this.sEnterValuePlaceHolder);
99
+ aParentCells[3].setEnabled(false); // IsRegularExpression check-box field
100
+ aParentCells[3].setSelected(false);
101
+ }
102
+ },
103
+
104
+ addRow: function () {
105
+ const oView = this.getView();
106
+ const oModel = oView.getModel();
107
+ const rows = oModel.getProperty("/config/rows");
108
+
109
+ // Init a row template for adding new empty row to the params table (mapping signature)
110
+ const newParamRow = tileUtils.getEmptyRowObj();
111
+ rows.push(newParamRow);
112
+ oModel.setProperty("/config/rows", rows);
113
+ },
114
+
115
+ deleteRow: function () {
116
+ const oView = this.getView();
117
+ const oModel = oView.getModel();
118
+ const rows = oModel.getProperty("/config/rows");
119
+
120
+ const table = oView.byId("mappingSignatureTable");
121
+ const aSelectedItemsIndexes = table.getSelectedIndices();
122
+ const aSortedDescending = aSelectedItemsIndexes.sort((a, b) => {
123
+ return b - a;
124
+ }).slice();
125
+
126
+ for (let i = 0; i < aSortedDescending.length; i++) {
127
+ table.removeSelectionInterval(aSortedDescending[i], aSortedDescending[i]);// Make sure to turn off the selection or it will pass to
128
+ // the next row.
129
+ rows.splice(aSortedDescending[i], 1); // There is a major assumption here that the index in the model is identical to the index in
130
+ // the table !!!
131
+ }
132
+ oModel.setProperty("/config/rows", rows);
133
+ },
134
+ // Will be called on change event of the name column in Parameters table.
135
+ // 2 parameters cannot have the same name. (in case the user decide to ignore the error message, there is a second validation on the save)
136
+ checkDuplicateNames: function (changeEvent) {
137
+ const oModel = this.getView().getModel();
138
+ const rows = oModel.getProperty("/config/rows");
139
+ const nameCol = Element.getElementById(changeEvent.getParameter("id"));
140
+ const sNewValue = changeEvent.getParameter("newValue");
141
+
142
+ if (sNewValue !== "" && !(/^[\w-/]+$/.test(sNewValue))) {
143
+ nameCol.setValueState(ValueState.Error); MessageBox.alert(this.sInvalidParmMsg, this.focusNameField.bind(nameCol), this.sDuplicateErrorTitle);
144
+ }
145
+ if (tileUtils.tableHasDuplicateParameterNames(rows)) {
146
+ nameCol.setValueState(ValueState.Error); MessageBox.alert(this.sDuplicateErrorMsg, this.focusNameField.bind(nameCol), this.sDuplicateErrorTitle);
147
+ } else {
148
+ nameCol.setValueState(ValueState.None);
149
+ }
150
+ },
151
+ // a callback function for the duplicate error MessageBox
152
+ focusNameField: function () {
153
+ this.focus();
154
+ },
155
+
156
+ // forward value helper request to utils
157
+ onValueHelpRequest: function (oEvent) {
158
+ // Third parameter is to differentiate whether it's Tile Actions icon field or general icon field. If it's true, then it's tile actions
159
+ // icon field, else general icon field.
160
+ tileUtils.objectSelectOnValueHelpRequest(this, oEvent, false);
161
+ },
162
+ onActionValueHelpRequest: function (oEvent) {
163
+ tileUtils.actionSelectOnValueHelpRequest(this, oEvent);
164
+ },
165
+ onRoleValueHelpRequest: function (oEvent) {
166
+ tileUtils.roleSelectOnValueHelpRequest(this, oEvent);
167
+ },
168
+ onInstanceValueHelpRequest: function (oEvent) {
169
+ tileUtils.instanceSelectOnValueHelpRequest(this, oEvent);
170
+ },
171
+ instanceSuggest: function (oEvent) {
172
+ tileUtils.instanceSuggest(this, oEvent);
173
+ },
174
+ aliasSuggest: function (oEvent) {
175
+ tileUtils.aliasSuggest(this, oEvent);
176
+ },
177
+ onAliasValueHelpRequest: function (oEvent) {
178
+ tileUtils.applicationAliasSelectOnValueHelpRequest(this, oEvent);
179
+ },
180
+ onFormFactorChange: function () {
181
+ const oModel = this.getView().getModel();
182
+ oModel.setProperty("/config/formFactorConfigDefault", false);
183
+ },
184
+
185
+ // Will be called on change event of the application type radio buttons.
186
+ onApplicationTypeChange: function (oEvent) {
187
+ const oParameter = oEvent.getParameters();
188
+ if (oParameter.selectedItem) {
189
+ tileUtils.displayApplicationTypeFields(oParameter.selectedItem.getKey(), this.getView());
190
+ }
191
+ }
192
+ });
193
+ });
@@ -0,0 +1,333 @@
1
+ <mvc:View
2
+ xmlns="sap.m"
3
+ xmlns:mvc="sap.ui.core.mvc"
4
+ xmlns:form="sap.ui.layout.form"
5
+ xmlns:layout="sap.ui.layout"
6
+ xmlns:table="sap.ui.table"
7
+ xmlns:rowmodes="sap.ui.table.rowmodes"
8
+ controllerName="sap.ushell_abap.components.tiles.action.Configuration">
9
+ <MessageStrip
10
+ type="Warning"
11
+ enableFormattedText="true"
12
+ showIcon="true"
13
+ showCloseButton="false"
14
+ class="sapUiResponsiveMargin"
15
+ visible="{= !!${/config/deprecation_text}}"
16
+ text="{/config/deprecation_text}" />
17
+ <form:Form id="configuration" maxContainerCols="2" minWidth="1024" editable="true">
18
+ <form:layout>
19
+ <form:ResponsiveGridLayout />
20
+ </form:layout>
21
+ <form:FormContainer id="categoryChipConfiguration" title="{i18n>configuration.category.action_chip_configuration}">
22
+ <form:FormElement label="{i18n>configuration.semantic_object}">
23
+ <Input
24
+ id="semantic_objectInput"
25
+ width="100%"
26
+ tooltip="{i18n>configuration.semantic_object.tooltip}"
27
+ maxLength="30"
28
+ liveChange=".onConfigurationInputChange"
29
+ valueHelpRequest=".onValueHelpRequest"
30
+ showValueHelp="true"
31
+ showSuggestion="true"
32
+ value="{/value}"
33
+ enabled="{/config/editable}" />
34
+ </form:FormElement>
35
+ <form:FormElement label="{i18n>configuration.semantic_action}">
36
+ <Input
37
+ id="semantic_actionInput"
38
+ value="{/config/semantic_action}"
39
+ maxLength="50"
40
+ liveChange=".onConfigurationInputChange"
41
+ enabled="{/config/editable}"
42
+ valueHelpRequest=".onActionValueHelpRequest"
43
+ showValueHelp="true"
44
+ showSuggestion="true"
45
+ width="100%"
46
+ tooltip="{i18n>configuration.semantic_action.tooltip}" />
47
+ </form:FormElement>
48
+ </form:FormContainer>
49
+ <form:FormContainer id="categoryTargetApplication" title="{i18n>configuration.category.target_application}">
50
+ <form:FormElement id="targetType" label="{i18n>configuration.target_applicationType}">
51
+ <ComboBox
52
+ id="targetTypeInput"
53
+ selectedKey="{/config/navigation_provider}"
54
+ enabled="{/config/editable}"
55
+ selectionChange=".onApplicationTypeChange" />
56
+ </form:FormElement>
57
+ <form:FormElement id="application_description" label="{i18n>configuration.target_application.description}">
58
+ <Input
59
+ id="target_application_descriptionInput"
60
+ value="{/config/display_title_text}"
61
+ liveChange=".onConfigurationInputChange"
62
+ width="100%"
63
+ enabled="{/config/editable}"
64
+ tooltip="{i18n>configuration.target_application.description.tooltip}" />
65
+ </form:FormElement>
66
+ <form:FormElement id="application_url" label="{i18n>configuration.target_application.url}">
67
+ <Input
68
+ id="target_application_urlInput"
69
+ value="{/config/url}"
70
+ enabled="{/config/editable}"
71
+ maxLength="512"
72
+ liveChange=".onConfigurationInputChange"
73
+ width="100%" tooltip="{i18n>configuration.target_application.url.tooltip}" />
74
+ </form:FormElement>
75
+ <form:FormElement id="application_component" label="{i18n>configuration.target_application.component}">
76
+ <Input
77
+ id="target_application_componentInput"
78
+ value="{/config/ui5_component}"
79
+ enabled="{/config/editable}"
80
+ liveChange=".onConfigurationInputChange"
81
+ width="100%"
82
+ tooltip="{i18n>configuration.target_application.component.tooltip}" />
83
+ </form:FormElement>
84
+ <form:FormElement id="navigation_provider_role" label="{i18n>configuration.navigation_provider_role}">
85
+ <Input
86
+ id="navigation_provider_roleInput"
87
+ valueHelpRequest=".onRoleValueHelpRequest"
88
+ showValueHelp="true"
89
+ showTableSuggestionValueHelp="true"
90
+ enabled="{/config/editable}"
91
+ showSuggestion="true"
92
+ value="{/value}"
93
+ width="100%"
94
+ maxLength="10"
95
+ class="sapUshellTargetMappingToUpperCase"
96
+ tooltip="{i18n>configuration.navigation_provider_role.tooltip}"
97
+ liveChange=".onConfigurationInputChange">
98
+ <suggestionColumns>
99
+ <Column hAlign="Begin" popinDisplay="Inline" demandPopin="true">
100
+ <Label text="{i18n>configuration.navigation_provider_role}" />
101
+ </Column>
102
+ <Column hAlign="Begin" popinDisplay="Inline" demandPopin="true">
103
+ <Label text="{i18n>configuration.navigation_provider_instance}" />
104
+ </Column>
105
+ </suggestionColumns>
106
+ </Input>
107
+ </form:FormElement>
108
+ <form:FormElement id="navigation_provider_instance"
109
+ label="{i18n>configuration.navigation_provider_instance}">
110
+ <Input
111
+ id="navigation_provider_instanceInput"
112
+ value="{/value}"
113
+ width="100%"
114
+ maxLength="32"
115
+ valueHelpRequest=".onInstanceValueHelpRequest"
116
+ enabled="{/config/editable}"
117
+ showValueHelp="true"
118
+ showSuggestion="true"
119
+ suggest=".instanceSuggest"
120
+ tooltip="{i18n>configuration.navigation_provider_instance.tooltip}"
121
+ liveChange=".onConfigurationInputChange"
122
+ class="sapUshellTargetMappingToUpperCase" />
123
+ </form:FormElement>
124
+ <form:FormElement id="target_application_alias" label="{i18n>configuration.target_application_alias}">
125
+ <Input
126
+ id="target_application_aliasInput"
127
+ value="{/value}"
128
+ width="100%"
129
+ valueHelpRequest=".onAliasValueHelpRequest"
130
+ enabled="{/config/editable}"
131
+ showValueHelp="true"
132
+ showSuggestion="true"
133
+ suggest=".aliasSuggest"
134
+ tooltip="{i18n>configuration.target_application_alias.tooltip}"
135
+ liveChange=".onConfigurationInputChange" />
136
+ </form:FormElement>
137
+ <form:FormElement id="target_application_id" label="{i18n>configuration.target_application_id}">
138
+ <Input
139
+ id="target_application_idInput"
140
+ value="{/config/target_application_id}"
141
+ width="100%"
142
+ maxLength="32"
143
+ enabled="{/config/editable}"
144
+ tooltip="{i18n>configuration.target_application_id.tooltip}"
145
+ liveChange=".onConfigurationInputChange" />
146
+ </form:FormElement>
147
+ <form:FormElement id="target_transaction" label="{i18n>configuration.target_transaction}">
148
+ <Input
149
+ id="target_transactionInput"
150
+ value="{/config/transaction/code}"
151
+ width="100%"
152
+ maxLength="20"
153
+ enabled="{/config/editable}"
154
+ tooltip="{i18n>configuration.target_transaction.tooltip}"
155
+ liveChange=".onConfigurationInputChange" />
156
+ </form:FormElement>
157
+ <form:FormElement id="target_wcf_application_id" label="{i18n>configuration.target_wcf.application_id}">
158
+ <Input
159
+ id="target_wcf_application_idInput"
160
+ value="{/config/wcf/application_id}"
161
+ width="100%"
162
+ maxLength="30"
163
+ enabled="{/config/editable}"
164
+ liveChange=".onConfigurationInputChange" />
165
+ </form:FormElement>
166
+ <form:FormElement id="target_web_dynpro_application" label="{i18n>configuration.target_web_dynpro.application}">
167
+ <Input
168
+ id="target_web_dynpro_applicationInput"
169
+ value="{/config/web_dynpro/application}"
170
+ width="100%"
171
+ maxLength="30"
172
+ enabled="{/config/editable}"
173
+ tooltip="{i18n>configuration.target_web_dynpro_application.tooltip}"
174
+ liveChange=".onConfigurationInputChange" />
175
+ </form:FormElement>
176
+ <form:FormElement id="target_web_dynpro_configuration" label="{i18n>configuration.target_web_dynpro.configuration}">
177
+ <Input
178
+ id="target_web_dynpro_configurationInput"
179
+ value="{/config/web_dynpro/configuration}"
180
+ width="100%"
181
+ maxLength="32"
182
+ enabled="{/config/editable}"
183
+ tooltip="{i18n>configuration.target_web_dynpro_application.tooltip}"
184
+ liveChange=".onConfigurationInputChange" />
185
+ </form:FormElement>
186
+ <form:FormElement id="target_system_alias" label="{i18n>configuration.target_system_alias}">
187
+ <Input
188
+ id="target_system_aliasInput"
189
+ value="{/config/target_system_alias}"
190
+ width="100%"
191
+ maxLength="30"
192
+ enabled="{/config/editable}"
193
+ tooltip="{i18n>configuration.target_system_alias.tooltip}"
194
+ liveChange=".onConfigurationInputChange" />
195
+ </form:FormElement>
196
+ <form:FormElement id="urlt_application_component" label="{i18n>configuration.target_application.component}">
197
+ <Input
198
+ id="urlt_application_componentInput"
199
+ value="{/config/url_template/parameters/ui5ComponentName}"
200
+ enabled="{/config/editable}"
201
+ liveChange=".onConfigurationInputChange"
202
+ width="100%"
203
+ tooltip="{i18n>configuration.target_application.component.tooltip}" />
204
+ </form:FormElement>
205
+ <form:FormElement id="target_urlt_system_alias" label="{i18n>configuration.target_system_alias}">
206
+ <Input
207
+ id="target_urlt_system_aliasInput"
208
+ value="{/config/url_template/parameters/systemAlias}"
209
+ width="100%"
210
+ maxLength="30"
211
+ enabled="{/config/editable}"
212
+ tooltip="{i18n>configuration.target_system_alias.tooltip}"
213
+ liveChange=".onConfigurationInputChange" />
214
+ </form:FormElement>
215
+ <form:FormElement id="application_type_deprecated">
216
+ <MessageStrip text="{i18n>applicationTypeDeprecated}" type="Warning" showIcon="true" />
217
+ </form:FormElement>
218
+ </form:FormContainer>
219
+ <form:FormContainer id="categoryGeneral" title="{i18n>configuration.category.general}">
220
+ <form:layoutData>
221
+ <layout:GridData span="L12 M12 S12" />
222
+ </form:layoutData>
223
+ <form:FormElement label="{i18n>configuration.display_info_text}">
224
+ <Input
225
+ id="additionalInfo"
226
+ value="{/config/display_info_text}"
227
+ enabled="{/config/editable}"
228
+ width="100%"
229
+ liveChange=".onConfigurationInputChange" />
230
+ </form:FormElement>
231
+ <form:FormElement label="{i18n>configuration.form_factor}" tooltip="{i18n>configuration.form_factor.tooltip}">
232
+ <CheckBox
233
+ id="desktopCB"
234
+ text="{i18n>configuration.form_factor_desktop}"
235
+ select=".onFormFactorChange"
236
+ selected="{/config/desktopChecked}"
237
+ enabled="{/config/manualFormFactor}" />
238
+ <CheckBox
239
+ id="tabletCB"
240
+ text="{i18n>configuration.form_factor_tablet}"
241
+ select=".onFormFactorChange"
242
+ selected="{/config/tabletChecked}"
243
+ enabled="{/config/manualFormFactor}" />
244
+ <CheckBox
245
+ id="phoneCB"
246
+ text="{i18n>configuration.form_factor_phone}"
247
+ select=".onFormFactorChange"
248
+ selected="{/config/phoneChecked}"
249
+ enabled="{/config/manualFormFactor}" />
250
+ </form:FormElement>
251
+ <form:FormElement label="{i18n>configuration.signature.table.title}">
252
+ <VBox>
253
+ <table:Table
254
+ id="mappingSignatureTable"
255
+ rows="{/config/rows}"
256
+ selectionBehavior="Row"
257
+ selectionMode="MultiToggle"
258
+ enableColumnReordering="false">
259
+ <table:rowMode>
260
+ <rowmodes:Fixed rowCount="5" rowContentHeight="30"/>
261
+ </table:rowMode>
262
+ <table:Column id="nameCol" width="82px">
263
+ <Label text="{i18n>configuration.signature.table.name}" />
264
+ <table:template>
265
+ <Input
266
+ value="{name}"
267
+ editable="{editable}"
268
+ placeholder="{i18n>configuration.signature.table.nameFieldLbl}"
269
+ change=".checkDuplicateNames" />
270
+ </table:template>
271
+ </table:Column>
272
+ <table:Column id="mandatoryCol" width="92px" hAlign="Center">
273
+ <Label text="{i18n>configuration.signature.table.mandatory}" />
274
+ <table:template>
275
+ <CheckBox selected="{mandatory}" editable="{editable}" select=".handleMandatoryChange" />
276
+ </table:template>
277
+ </table:Column>
278
+ <table:Column id="valueCol" width="85px">
279
+ <Label text="{i18n>configuration.signature.table.value}" />
280
+ <table:template>
281
+ <Input value="{value}" editable="{editable}" enabled="{valEnabled}" />
282
+ </table:template>
283
+ </table:Column>
284
+ <table:Column id="isRegExCol" width="162px" hAlign="Center">
285
+ <Label text="{i18n>configuration.signature.table.isRegEx}" />
286
+ <table:template>
287
+ <CheckBox selected="{isRegularExpression}" editable="{editable}" enabled="{valEnabled}" />
288
+ </table:template>
289
+ </table:Column>
290
+ <table:Column id="defValueCol" width="110px">
291
+ <Label text="{i18n>configuration.signature.table.defaultValue}" />
292
+ <table:template>
293
+ <Input value="{defaultValue}" editable="{editable}" enabled="{defValEnabled}" />
294
+ </table:template>
295
+ </table:Column>
296
+ <table:Column id="renameToCol" width="82px" visible="{= ${/config/navigation_provider} !== 'LPD' }">
297
+ <Label
298
+ text="{i18n>configuration.signature.table.renameTo}"
299
+ tooltip="{i18n>configuration.signature.table.renameTo.tooltip}" />
300
+ <table:template>
301
+ <Input value="{rename_to}" editable="{editable}" />
302
+ </table:template>
303
+ </table:Column>
304
+ </table:Table>
305
+ <HBox wrap="Wrap">
306
+ <CheckBox
307
+ id="isUnknownAllowed"
308
+ text="{i18n>configuration.signature.table.allowUndefined}"
309
+ enabled="{/config/editable}"
310
+ selected="{/config/isUnknownAllowed}"
311
+ width="400px">
312
+ <layoutData>
313
+ <FlexItemData growFactor="1"/>
314
+ </layoutData>
315
+ </CheckBox>
316
+ <Button
317
+ id="addRow"
318
+ enabled="{/config/editable}"
319
+ text="{i18n>configuration.signature.table.add}"
320
+ press=".addRow"
321
+ width="100px" />
322
+ <Button
323
+ id="deleteRow"
324
+ enabled="{/config/editable}"
325
+ text="{i18n>configuration.signature.table.delete}"
326
+ press=".deleteRow"
327
+ width="100px" />
328
+ </HBox>
329
+ </VBox>
330
+ </form:FormElement>
331
+ </form:FormContainer>
332
+ </form:Form>
333
+ </mvc:View>
@@ -0,0 +1,41 @@
1
+ // Copyright (c) 2009-2026 SAP SE, All Rights Reserved
2
+
3
+ sap.ui.define([
4
+ "sap/ui/core/mvc/View",
5
+ "sap/ui/core/UIComponent",
6
+ "sap/ushell/performance/PerformanceAPI"
7
+ ], (
8
+ View,
9
+ UIComponent,
10
+ PerformanceAPI
11
+ ) => {
12
+ "use strict";
13
+
14
+ return UIComponent.extend("sap.ushell_abap.components.tiles.applauncher.Component", {
15
+ metadata: {
16
+ interfaces: ["sap.ui.core.IAsyncContentCreation"]
17
+ },
18
+
19
+ init: function () {
20
+ UIComponent.prototype.init.apply(this, arguments);
21
+
22
+ PerformanceAPI.attachComponentInitialRendering(this, () => {
23
+ PerformanceAPI.setMark("FLP First Tile View Rendered", {
24
+ useUniqueMark: true
25
+ });
26
+ PerformanceAPI.setMark("FLP Last Tile View Rendered", {
27
+ useOnlyLastMark: true
28
+ });
29
+ });
30
+ },
31
+
32
+ createContent: function () {
33
+ const oComponentData = this.getComponentData();
34
+
35
+ return View.create({
36
+ viewName: "module:sap/ushell_abap/components/tiles/applauncher/StaticTile.view",
37
+ viewData: oComponentData
38
+ });
39
+ }
40
+ });
41
+ });