@sapui5/sap.fe.core 1.99.0 → 1.100.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 (246) hide show
  1. package/package.json +4 -2
  2. package/src/sap/fe/core/.library +1 -1
  3. package/src/sap/fe/core/AnnotationHelper.js +1 -69
  4. package/src/sap/fe/core/AnnotationHelper.ts +0 -70
  5. package/src/sap/fe/core/AppComponent.js +388 -399
  6. package/src/sap/fe/core/AppComponent.ts +403 -0
  7. package/src/sap/fe/core/AppStateHandler.js +127 -158
  8. package/src/sap/fe/core/BaseController.js +82 -58
  9. package/src/sap/fe/core/BaseController.ts +68 -0
  10. package/src/sap/fe/core/CommonUtils.js +111 -20
  11. package/src/sap/fe/core/CommonUtils.ts +131 -32
  12. package/src/sap/fe/core/ExtensionAPI.js +278 -274
  13. package/src/sap/fe/core/ExtensionAPI.ts +250 -0
  14. package/src/sap/fe/core/PageController.js +157 -29
  15. package/src/sap/fe/core/PageController.ts +60 -32
  16. package/src/sap/fe/core/RouterProxy.js +694 -756
  17. package/src/sap/fe/core/RouterProxy.ts +11 -9
  18. package/src/sap/fe/core/Synchronization.js +21 -31
  19. package/src/sap/fe/core/TemplateComponent.js +1 -1
  20. package/src/sap/fe/core/TemplateComponent.ts +10 -3
  21. package/src/sap/fe/core/TemplateModel.js +20 -38
  22. package/src/sap/fe/core/TemplateModel.ts +1 -1
  23. package/src/sap/fe/core/TransactionHelper.js +1354 -1370
  24. package/src/sap/fe/core/TransactionHelper.ts +33 -22
  25. package/src/sap/fe/core/actions/collaboration/ActivitySync.js +392 -0
  26. package/src/sap/fe/core/actions/collaboration/ActivitySync.ts +355 -0
  27. package/src/sap/fe/core/actions/collaboration/CollaborationCommon.js +136 -0
  28. package/src/sap/fe/core/actions/collaboration/CollaborationCommon.ts +119 -0
  29. package/src/sap/fe/core/actions/collaboration/Manage.js +262 -0
  30. package/src/sap/fe/core/actions/collaboration/Manage.ts +244 -0
  31. package/src/sap/fe/core/actions/collaboration/ManageDialog.fragment.xml +103 -0
  32. package/src/sap/fe/core/actions/collaboration/UserDetails.fragment.xml +13 -0
  33. package/src/sap/fe/core/actions/draft.js +30 -68
  34. package/src/sap/fe/core/actions/draft.ts +44 -71
  35. package/src/sap/fe/core/actions/messageHandling.js +55 -36
  36. package/src/sap/fe/core/actions/messageHandling.ts +66 -46
  37. package/src/sap/fe/core/actions/operations.js +34 -15
  38. package/src/sap/fe/core/actions/operations.ts +48 -18
  39. package/src/sap/fe/core/actions/sticky.js +17 -4
  40. package/src/sap/fe/core/actions/sticky.ts +21 -4
  41. package/src/sap/fe/core/controllerextensions/ControllerExtensionMetadata.js +69 -66
  42. package/src/sap/fe/core/controllerextensions/ControllerExtensionMetadata.ts +65 -0
  43. package/src/sap/fe/core/controllerextensions/EditFlow.js +1593 -1669
  44. package/src/sap/fe/core/controllerextensions/EditFlow.ts +1672 -0
  45. package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.js +79 -54
  46. package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.ts +61 -0
  47. package/src/sap/fe/core/controllerextensions/InternalEditFlow.js +718 -779
  48. package/src/sap/fe/core/controllerextensions/InternalEditFlow.ts +783 -0
  49. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +796 -816
  50. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.ts +803 -0
  51. package/src/sap/fe/core/controllerextensions/InternalRouting.js +1004 -1005
  52. package/src/sap/fe/core/controllerextensions/InternalRouting.ts +978 -0
  53. package/src/sap/fe/core/controllerextensions/KPIManagement.js +487 -521
  54. package/src/sap/fe/core/controllerextensions/KPIManagement.ts +2 -2
  55. package/src/sap/fe/core/controllerextensions/MassEdit.js +141 -169
  56. package/src/sap/fe/core/controllerextensions/MassEdit.ts +156 -0
  57. package/src/sap/fe/core/controllerextensions/MessageHandler.js +233 -244
  58. package/src/sap/fe/core/controllerextensions/MessageHandler.ts +225 -0
  59. package/src/sap/fe/core/controllerextensions/PageReady.js +301 -336
  60. package/src/sap/fe/core/controllerextensions/PageReady.ts +12 -10
  61. package/src/sap/fe/core/controllerextensions/Paginator.js +188 -175
  62. package/src/sap/fe/core/controllerextensions/Paginator.ts +163 -0
  63. package/src/sap/fe/core/controllerextensions/Placeholder.js +157 -149
  64. package/src/sap/fe/core/controllerextensions/Placeholder.ts +151 -0
  65. package/src/sap/fe/core/controllerextensions/Routing.js +144 -125
  66. package/src/sap/fe/core/controllerextensions/Routing.ts +132 -0
  67. package/src/sap/fe/core/controllerextensions/RoutingListener.js +7 -6
  68. package/src/sap/fe/core/controllerextensions/RoutingListener.ts +3 -0
  69. package/src/sap/fe/core/controllerextensions/Share.js +230 -268
  70. package/src/sap/fe/core/controllerextensions/Share.ts +231 -0
  71. package/src/sap/fe/core/controllerextensions/SideEffects.js +592 -633
  72. package/src/sap/fe/core/controllerextensions/SideEffects.ts +8 -7
  73. package/src/sap/fe/core/controllerextensions/ViewState.js +788 -806
  74. package/src/sap/fe/core/controllerextensions/ViewState.ts +805 -0
  75. package/src/sap/fe/core/controls/ActionParameterDialog.fragment.xml +2 -2
  76. package/src/sap/fe/core/controls/ActionPartial.fragment.xml +2 -2
  77. package/src/sap/fe/core/controls/CommandExecution.js +67 -66
  78. package/src/sap/fe/core/controls/CommandExecution.ts +72 -0
  79. package/src/sap/fe/core/controls/ConditionalWrapper.js +90 -75
  80. package/src/sap/fe/core/controls/ConditionalWrapper.ts +83 -0
  81. package/src/sap/fe/core/controls/CustomQuickViewPage.js +130 -125
  82. package/src/sap/fe/core/controls/CustomQuickViewPage.ts +126 -0
  83. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js +103 -112
  84. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.ts +101 -0
  85. package/src/sap/fe/core/controls/FieldWrapper.js +122 -135
  86. package/src/sap/fe/core/controls/FieldWrapper.ts +115 -0
  87. package/src/sap/fe/core/controls/FilterBar.js +162 -159
  88. package/src/sap/fe/core/controls/FilterBar.ts +143 -0
  89. package/src/sap/fe/core/controls/FormElementWrapper.js +45 -39
  90. package/src/sap/fe/core/controls/FormElementWrapper.ts +40 -0
  91. package/src/sap/fe/core/controls/MultiValueParameterDelegate.js +37 -42
  92. package/src/sap/fe/core/controls/MultiValueParameterDelegate.ts +31 -0
  93. package/src/sap/fe/core/controls/filterbar/FilterContainer.js +126 -116
  94. package/src/sap/fe/core/controls/filterbar/FilterContainer.ts +98 -0
  95. package/src/sap/fe/core/controls/filterbar/VisualFilter.js +241 -255
  96. package/src/sap/fe/core/controls/filterbar/VisualFilter.ts +245 -0
  97. package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.js +150 -141
  98. package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.ts +125 -0
  99. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js +335 -322
  100. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.ts +337 -0
  101. package/src/sap/fe/core/controls/massEdit/MassEditHandlers.js +74 -74
  102. package/src/sap/fe/core/controls/massEdit/MassEditHandlers.ts +70 -0
  103. package/src/sap/fe/core/converters/ConverterContext.js +348 -379
  104. package/src/sap/fe/core/converters/ConverterContext.ts +19 -16
  105. package/src/sap/fe/core/converters/ManifestSettings.js +12 -1
  106. package/src/sap/fe/core/converters/ManifestSettings.ts +12 -1
  107. package/src/sap/fe/core/converters/ManifestWrapper.js +354 -378
  108. package/src/sap/fe/core/converters/ManifestWrapper.ts +10 -0
  109. package/src/sap/fe/core/converters/MetaModelConverter.js +6 -4
  110. package/src/sap/fe/core/converters/MetaModelConverter.ts +5 -2
  111. package/src/sap/fe/core/converters/TemplateConverter.js +1 -1
  112. package/src/sap/fe/core/converters/TemplateConverter.ts +2 -1
  113. package/src/sap/fe/core/converters/annotations/DataField.js +26 -12
  114. package/src/sap/fe/core/converters/annotations/DataField.ts +37 -13
  115. package/src/sap/fe/core/converters/controls/Common/Form.js +2 -2
  116. package/src/sap/fe/core/converters/controls/Common/Form.ts +4 -2
  117. package/src/sap/fe/core/converters/controls/Common/KPI.js +1 -1
  118. package/src/sap/fe/core/converters/controls/Common/KPI.ts +3 -2
  119. package/src/sap/fe/core/converters/controls/Common/Table.js +130 -23
  120. package/src/sap/fe/core/converters/controls/Common/Table.ts +134 -29
  121. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +118 -53
  122. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +156 -93
  123. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +161 -207
  124. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +148 -206
  125. package/src/sap/fe/core/converters/helpers/Aggregation.js +115 -133
  126. package/src/sap/fe/core/converters/helpers/BindingHelper.js +20 -6
  127. package/src/sap/fe/core/converters/helpers/BindingHelper.ts +16 -4
  128. package/src/sap/fe/core/converters/helpers/ConfigurableObject.js +12 -1
  129. package/src/sap/fe/core/converters/helpers/ConfigurableObject.ts +11 -0
  130. package/src/sap/fe/core/converters/helpers/Key.js +42 -57
  131. package/src/sap/fe/core/converters/helpers/Key.ts +1 -1
  132. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +25 -4
  133. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +20 -3
  134. package/src/sap/fe/core/converters/templates/ListReportConverter.js +10 -4
  135. package/src/sap/fe/core/converters/templates/ListReportConverter.ts +15 -4
  136. package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +7 -5
  137. package/src/sap/fe/core/converters/templates/ObjectPageConverter.ts +5 -1
  138. package/src/sap/fe/core/designtime/AppComponent.designtime.js +92 -98
  139. package/src/sap/fe/core/designtime/AppComponent.designtime.ts +91 -0
  140. package/src/sap/fe/core/formatters/CollaborationFormatter.js +104 -0
  141. package/src/sap/fe/core/formatters/CollaborationFormatter.ts +60 -0
  142. package/src/sap/fe/core/formatters/TableFormatter.js +53 -2
  143. package/src/sap/fe/core/formatters/TableFormatter.ts +51 -0
  144. package/src/sap/fe/core/fpm/Component.js +50 -54
  145. package/src/sap/fe/core/fpm/Component.ts +48 -0
  146. package/src/sap/fe/core/helpers/AppStartupHelper.js +323 -309
  147. package/src/sap/fe/core/helpers/AppStartupHelper.ts +363 -337
  148. package/src/sap/fe/core/helpers/BindingExpression.js +7 -7
  149. package/src/sap/fe/core/helpers/BindingExpression.ts +7 -7
  150. package/src/sap/fe/core/helpers/ClassSupport.js +186 -62
  151. package/src/sap/fe/core/helpers/ClassSupport.ts +168 -52
  152. package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.js +5 -4
  153. package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.ts +1 -5
  154. package/src/sap/fe/core/helpers/FPMHelper.js +1 -1
  155. package/src/sap/fe/core/helpers/FPMHelper.ts +1 -1
  156. package/src/sap/fe/core/helpers/MassEditHelper.js +601 -684
  157. package/src/sap/fe/core/helpers/MassEditHelper.ts +699 -0
  158. package/src/sap/fe/core/helpers/ModelHelper.js +25 -1
  159. package/src/sap/fe/core/helpers/ModelHelper.ts +23 -0
  160. package/src/sap/fe/core/helpers/SemanticDateOperators.js +5 -1
  161. package/src/sap/fe/core/helpers/SemanticDateOperators.ts +4 -0
  162. package/src/sap/fe/core/library.js +426 -451
  163. package/src/sap/fe/core/library.support.js +22 -33
  164. package/src/sap/fe/core/library.support.ts +23 -0
  165. package/src/sap/fe/core/library.ts +420 -0
  166. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js +5 -3
  167. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.ts +4 -1
  168. package/src/sap/fe/core/messagebundle.properties +22 -5
  169. package/src/sap/fe/core/messagebundle_ar.properties +27 -7
  170. package/src/sap/fe/core/messagebundle_bg.properties +27 -7
  171. package/src/sap/fe/core/messagebundle_ca.properties +27 -7
  172. package/src/sap/fe/core/messagebundle_cs.properties +27 -7
  173. package/src/sap/fe/core/messagebundle_cy.properties +27 -7
  174. package/src/sap/fe/core/messagebundle_da.properties +27 -7
  175. package/src/sap/fe/core/messagebundle_de.properties +27 -7
  176. package/src/sap/fe/core/messagebundle_el.properties +27 -7
  177. package/src/sap/fe/core/messagebundle_en.properties +27 -7
  178. package/src/sap/fe/core/messagebundle_en_GB.properties +27 -7
  179. package/src/sap/fe/core/messagebundle_en_US_sappsd.properties +27 -7
  180. package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +27 -7
  181. package/src/sap/fe/core/messagebundle_en_US_saptrc.properties +27 -7
  182. package/src/sap/fe/core/messagebundle_es.properties +27 -7
  183. package/src/sap/fe/core/messagebundle_es_MX.properties +27 -7
  184. package/src/sap/fe/core/messagebundle_et.properties +27 -7
  185. package/src/sap/fe/core/messagebundle_fi.properties +28 -8
  186. package/src/sap/fe/core/messagebundle_fr.properties +28 -8
  187. package/src/sap/fe/core/messagebundle_fr_CA.properties +29 -9
  188. package/src/sap/fe/core/messagebundle_hi.properties +27 -7
  189. package/src/sap/fe/core/messagebundle_hr.properties +27 -7
  190. package/src/sap/fe/core/messagebundle_hu.properties +27 -7
  191. package/src/sap/fe/core/messagebundle_id.properties +27 -7
  192. package/src/sap/fe/core/messagebundle_it.properties +27 -7
  193. package/src/sap/fe/core/messagebundle_iw.properties +27 -7
  194. package/src/sap/fe/core/messagebundle_ja.properties +26 -6
  195. package/src/sap/fe/core/messagebundle_kk.properties +27 -7
  196. package/src/sap/fe/core/messagebundle_ko.properties +27 -7
  197. package/src/sap/fe/core/messagebundle_lt.properties +27 -7
  198. package/src/sap/fe/core/messagebundle_lv.properties +28 -8
  199. package/src/sap/fe/core/messagebundle_ms.properties +27 -7
  200. package/src/sap/fe/core/messagebundle_nl.properties +27 -7
  201. package/src/sap/fe/core/messagebundle_no.properties +27 -7
  202. package/src/sap/fe/core/messagebundle_pl.properties +27 -7
  203. package/src/sap/fe/core/messagebundle_pt.properties +28 -8
  204. package/src/sap/fe/core/messagebundle_pt_PT.properties +27 -7
  205. package/src/sap/fe/core/messagebundle_ro.properties +27 -7
  206. package/src/sap/fe/core/messagebundle_ru.properties +27 -7
  207. package/src/sap/fe/core/messagebundle_sh.properties +27 -7
  208. package/src/sap/fe/core/messagebundle_sk.properties +27 -7
  209. package/src/sap/fe/core/messagebundle_sl.properties +27 -7
  210. package/src/sap/fe/core/messagebundle_sv.properties +27 -7
  211. package/src/sap/fe/core/messagebundle_th.properties +26 -6
  212. package/src/sap/fe/core/messagebundle_tr.properties +30 -10
  213. package/src/sap/fe/core/messagebundle_uk.properties +27 -7
  214. package/src/sap/fe/core/messagebundle_vi.properties +27 -7
  215. package/src/sap/fe/core/messagebundle_zh_CN.properties +27 -7
  216. package/src/sap/fe/core/messagebundle_zh_TW.properties +27 -7
  217. package/src/sap/fe/core/services/AsyncComponentServiceFactory.js +45 -71
  218. package/src/sap/fe/core/services/CacheHandlerServiceFactory.js +154 -192
  219. package/src/sap/fe/core/services/CacheHandlerServiceFactory.ts +4 -4
  220. package/src/sap/fe/core/services/EnvironmentServiceFactory.js +66 -92
  221. package/src/sap/fe/core/services/EnvironmentServiceFactory.ts +1 -1
  222. package/src/sap/fe/core/services/NavigationServiceFactory.js +284 -339
  223. package/src/sap/fe/core/services/NavigationServiceFactory.ts +10 -13
  224. package/src/sap/fe/core/services/ResourceModelServiceFactory.js +67 -102
  225. package/src/sap/fe/core/services/ResourceModelServiceFactory.ts +5 -2
  226. package/src/sap/fe/core/services/RoutingServiceFactory.js +754 -814
  227. package/src/sap/fe/core/services/RoutingServiceFactory.ts +13 -13
  228. package/src/sap/fe/core/services/ShellServicesFactory.js +649 -736
  229. package/src/sap/fe/core/services/ShellServicesFactory.ts +7 -4
  230. package/src/sap/fe/core/services/SideEffectsServiceFactory.js +567 -592
  231. package/src/sap/fe/core/services/SideEffectsServiceFactory.ts +22 -3
  232. package/src/sap/fe/core/services/TemplatedViewServiceFactory.js +354 -386
  233. package/src/sap/fe/core/services/TemplatedViewServiceFactory.ts +21 -14
  234. package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.js +1 -1
  235. package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.ts +1 -1
  236. package/src/sap/fe/core/support/CommonHelper.js +1 -1
  237. package/src/sap/fe/core/support/CommonHelper.ts +1 -1
  238. package/src/sap/fe/core/support/Diagnostics.js +36 -48
  239. package/src/sap/fe/core/templating/DataModelPathHelper.js +93 -85
  240. package/src/sap/fe/core/templating/DataModelPathHelper.ts +104 -95
  241. package/src/sap/fe/core/templating/FilterHelper.js +25 -32
  242. package/src/sap/fe/core/templating/FilterHelper.ts +36 -35
  243. package/src/sap/fe/core/templating/PropertyHelper.js +2 -2
  244. package/src/sap/fe/core/templating/PropertyHelper.ts +1 -1
  245. package/src/sap/fe/core/templating/UIFormatters.js +32 -26
  246. package/src/sap/fe/core/templating/UIFormatters.ts +37 -24
@@ -51,7 +51,7 @@
51
51
  required="{= FIELD.isRequired(${actionParameter>@@FIELD.fieldControl}, 'Editable')}"
52
52
  change="{= '.handleChange($event, \'' + ${parameter>$Name} + '\')' }"
53
53
  fieldHelp="{= FIELD.getActionParameterDialogFieldHelp(${actionParameter>@}, ${actionName>@sapui.name}, ${parameter>$Name}) }"
54
- visible="{actionParameter>@@COMMON.isVisible}"
54
+ visible="{actionParameter>@com.sap.vocabularies.UI.v1.Hidden@@FIELD.getActionParameterVisibility}"
55
55
  >
56
56
  <core:Fragment fragmentName="sap.fe.core.controls.ActionParameterDialogValueHelp" type="XML" />
57
57
  </mdc:Field>
@@ -68,7 +68,7 @@
68
68
  multipleLines="{= ${actionParameter>@com.sap.vocabularies.UI.v1.MultiLineText} ? (${actionParameter>@com.sap.vocabularies.UI.v1.MultiLineText} !== false) : undefined}"
69
69
  required="{= FIELD.isRequired(${actionParameter>@@FIELD.fieldControl}, 'Editable')}"
70
70
  fieldHelp="{= FIELD.getActionParameterDialogFieldHelp(${actionParameter>@}, ${actionName>@sapui.name}, ${parameter>$Name}) }"
71
- visible="{actionParameter>@@COMMON.isVisible}"
71
+ visible="{actionParameter>@com.sap.vocabularies.UI.v1.Hidden@@FIELD.getActionParameterVisibility}"
72
72
  >
73
73
  <mdcField:MultiValueFieldItem key="{path: 'mvfview>Key', type:'sap.ui.model.type.String'}" description="{mvfview>Desc}" />
74
74
  <core:Fragment fragmentName="sap.fe.core.controls.ActionParameterDialogValueHelp" type="XML" />
@@ -37,8 +37,8 @@
37
37
  <items>
38
38
  <CustomListItem>
39
39
  <HBox justifyContent="Start">
40
- <Text
41
- text="{= '{notApplicable>' + ${headerInfo>Title/Value/$Path} + '}' }"
40
+ <Text
41
+ text="{= '{= !${notApplicable>' + ${headerInfo>Title/Value/$Path} + '} ? ${sap.fe.i18n>T_MESSAGE_ITEM_SUBTITLE_CREATION_ROW_INDICATOR} : ${notApplicable>' + ${headerInfo>Title/Value/$Path} + '}}' }"
42
42
  class="sapUiTinyMarginBegin sapUiTinyMarginTopBottom"
43
43
  unittest:id="ActionPartialHeaderInfoListItemText"
44
44
  />
@@ -1,71 +1,72 @@
1
1
  /*!
2
2
  * SAP UI development toolkit for HTML5 (SAPUI5)
3
- (c) Copyright 2009-2021 SAP SE. All rights reserved
4
-
3
+ * (c) Copyright 2009-2021 SAP SE. All rights reserved
5
4
  */
6
- sap.ui.define(["sap/ui/core/CommandExecution", "sap/base/Log", "sap/ui/core/Element", "sap/ui/core/Shortcut"], function(
7
- CommandExecution,
8
- Log,
9
- Element,
10
- Shortcut
11
- ) {
12
- "use strict";
13
- return CommandExecution.extend("sap.fe.core.controls.CommandExecution", {
14
- setParent: function(oParent) {
15
- var aExcludedSingleKey = ["escape"],
16
- aCommands;
17
- CommandExecution.prototype.setParent.apply(this, arguments);
18
- aCommands = oParent.data("sap.ui.core.Shortcut");
19
- if (Array.isArray(aCommands) && aCommands.length > 0) {
20
- var oCommand = oParent.data("sap.ui.core.Shortcut")[aCommands.length - 1],
21
- oShortcut = oCommand.shortcutSpec;
22
- if (oShortcut && aExcludedSingleKey.indexOf(oShortcut.key) > -1) {
23
- // Check if single key shortcut
24
- for (var key in oShortcut) {
25
- if (oShortcut[key] && key !== "key") {
26
- return this;
27
- }
28
- }
29
- // Need to disable ShortCut when user press single shortcut key into an input
30
- oParent.addDelegate(
31
- {
32
- "onkeydown": function(oEvent) {
33
- if (aExcludedSingleKey.indexOf(oEvent.key.toLowerCase()) > -1) {
34
- var sElement = oEvent.target ? oEvent.target.tagName.toLowerCase() : undefined;
35
- if (sElement === "input") {
36
- oEvent.setMarked();
37
- }
38
- }
39
- }
40
- },
41
- true,
42
- undefined,
43
- true
44
- );
45
- }
46
- return this;
47
- }
48
- },
5
+ sap.ui.define(["sap/ui/core/CommandExecution", "sap/base/Log", "sap/ui/core/Element", "sap/ui/core/Shortcut"], function (CommandExecution, Log, Element, Shortcut) {
6
+ "use strict";
49
7
 
50
- destroy: function() {
51
- var oParent = this.getParent();
52
- if (oParent) {
53
- var oCommand = this._getCommandInfo();
54
- if (oCommand) {
55
- Shortcut.unregister(this.getParent(), oCommand.shortcut);
56
- }
57
- this._cleanupContext(oParent);
58
- }
59
- Element.prototype.destroy.apply(this, arguments);
60
- },
8
+ var CustomCommandExecution = CommandExecution.extend("sap.fe.core.controls.CommandExecution", {
9
+ setParent: function (oParent) {
10
+ var aExcludedSingleKey = ["escape"];
11
+ CommandExecution.prototype.setParent.apply(this, [oParent]);
12
+ var aCommands = oParent.data("sap.ui.core.Shortcut");
61
13
 
62
- setVisible: function(bValue) {
63
- var oCommand = this._getCommandInfo();
64
- if (oCommand) {
65
- CommandExecution.prototype.setVisible.apply(this, arguments);
66
- } else {
67
- Log.info("There is no shortcut definition registered in the manifest for the command : " + this.getCommand());
68
- }
69
- }
70
- });
71
- });
14
+ if (Array.isArray(aCommands) && aCommands.length > 0) {
15
+ var oCommand = oParent.data("sap.ui.core.Shortcut")[aCommands.length - 1],
16
+ oShortcut = oCommand.shortcutSpec;
17
+
18
+ if (oShortcut && aExcludedSingleKey.indexOf(oShortcut.key) > -1) {
19
+ // Check if single key shortcut
20
+ for (var key in oShortcut) {
21
+ if (oShortcut[key] && key !== "key") {
22
+ return this;
23
+ }
24
+ } // Need to disable ShortCut when user press single shortcut key into an input
25
+
26
+
27
+ oParent.addDelegate({
28
+ "onkeydown": function (oEvent) {
29
+ if (aExcludedSingleKey.indexOf(oEvent.key.toLowerCase()) > -1) {
30
+ var sElement = oEvent.target ? oEvent.target.tagName.toLowerCase() : undefined;
31
+
32
+ if (sElement === "input") {
33
+ oEvent.setMarked();
34
+ }
35
+ }
36
+ }
37
+ }, true, undefined, true);
38
+ }
39
+
40
+ return this;
41
+ }
42
+ },
43
+ destroy: function (bSuppressInvalidate) {
44
+ var oParent = this.getParent();
45
+
46
+ if (oParent) {
47
+ var oCommand = this._getCommandInfo();
48
+
49
+ if (oCommand) {
50
+ Shortcut.unregister(this.getParent(), oCommand.shortcut);
51
+ }
52
+
53
+ this._cleanupContext(oParent);
54
+ }
55
+
56
+ Element.prototype.destroy.apply(this, [bSuppressInvalidate]);
57
+ },
58
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
59
+ // @ts-ignore
60
+ setVisible: function (bValue) {
61
+ var oCommand = this._getCommandInfo();
62
+
63
+ if (oCommand) {
64
+ return CommandExecution.prototype.setVisible.apply(this, [bValue]);
65
+ } else {
66
+ Log.info("There is no shortcut definition registered in the manifest for the command : " + this.getCommand());
67
+ }
68
+ }
69
+ });
70
+ return CustomCommandExecution;
71
+ }, false);
72
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkNvbW1hbmRFeGVjdXRpb24udHMiXSwibmFtZXMiOlsiQ3VzdG9tQ29tbWFuZEV4ZWN1dGlvbiIsIkNvbW1hbmRFeGVjdXRpb24iLCJleHRlbmQiLCJzZXRQYXJlbnQiLCJvUGFyZW50IiwiYUV4Y2x1ZGVkU2luZ2xlS2V5IiwicHJvdG90eXBlIiwiYXBwbHkiLCJhQ29tbWFuZHMiLCJkYXRhIiwiQXJyYXkiLCJpc0FycmF5IiwibGVuZ3RoIiwib0NvbW1hbmQiLCJvU2hvcnRjdXQiLCJzaG9ydGN1dFNwZWMiLCJpbmRleE9mIiwia2V5IiwiYWRkRGVsZWdhdGUiLCJvRXZlbnQiLCJ0b0xvd2VyQ2FzZSIsInNFbGVtZW50IiwidGFyZ2V0IiwidGFnTmFtZSIsInVuZGVmaW5lZCIsInNldE1hcmtlZCIsImRlc3Ryb3kiLCJiU3VwcHJlc3NJbnZhbGlkYXRlIiwiZ2V0UGFyZW50IiwiX2dldENvbW1hbmRJbmZvIiwiU2hvcnRjdXQiLCJ1bnJlZ2lzdGVyIiwic2hvcnRjdXQiLCJfY2xlYW51cENvbnRleHQiLCJFbGVtZW50Iiwic2V0VmlzaWJsZSIsImJWYWx1ZSIsIkxvZyIsImluZm8iLCJnZXRDb21tYW5kIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBOzs7O0FBU0EsTUFBTUEsc0JBQXNCLEdBQUdDLGdCQUFnQixDQUFDQyxNQUFqQixDQUF3Qix1Q0FBeEIsRUFBaUU7QUFDL0ZDLElBQUFBLFNBQVMsRUFBRSxVQUFTQyxPQUFULEVBQXVCO0FBQ2pDLFVBQU1DLGtCQUFrQixHQUFHLENBQUMsUUFBRCxDQUEzQjtBQUNDSixNQUFBQSxnQkFBZ0IsQ0FBQ0ssU0FBbEIsQ0FBb0NILFNBQXBDLENBQThDSSxLQUE5QyxDQUFvRCxJQUFwRCxFQUEwRCxDQUFDSCxPQUFELENBQTFEO0FBQ0EsVUFBTUksU0FBUyxHQUFHSixPQUFPLENBQUNLLElBQVIsQ0FBYSxzQkFBYixDQUFsQjs7QUFDQSxVQUFJQyxLQUFLLENBQUNDLE9BQU4sQ0FBY0gsU0FBZCxLQUE0QkEsU0FBUyxDQUFDSSxNQUFWLEdBQW1CLENBQW5ELEVBQXNEO0FBQ3JELFlBQU1DLFFBQVEsR0FBR1QsT0FBTyxDQUFDSyxJQUFSLENBQWEsc0JBQWIsRUFBcUNELFNBQVMsQ0FBQ0ksTUFBVixHQUFtQixDQUF4RCxDQUFqQjtBQUFBLFlBQ0NFLFNBQVMsR0FBR0QsUUFBUSxDQUFDRSxZQUR0Qjs7QUFFQSxZQUFJRCxTQUFTLElBQUlULGtCQUFrQixDQUFDVyxPQUFuQixDQUEyQkYsU0FBUyxDQUFDRyxHQUFyQyxJQUE0QyxDQUFDLENBQTlELEVBQWlFO0FBQ2hFO0FBQ0EsZUFBSyxJQUFNQSxHQUFYLElBQWtCSCxTQUFsQixFQUE2QjtBQUM1QixnQkFBSUEsU0FBUyxDQUFDRyxHQUFELENBQVQsSUFBa0JBLEdBQUcsS0FBSyxLQUE5QixFQUFxQztBQUNwQyxxQkFBTyxJQUFQO0FBQ0E7QUFDRCxXQU4rRCxDQU9oRTs7O0FBQ0FiLFVBQUFBLE9BQU8sQ0FBQ2MsV0FBUixDQUNDO0FBQ0MseUJBQWEsVUFBU0MsTUFBVCxFQUFzQjtBQUNsQyxrQkFBSWQsa0JBQWtCLENBQUNXLE9BQW5CLENBQTJCRyxNQUFNLENBQUNGLEdBQVAsQ0FBV0csV0FBWCxFQUEzQixJQUF1RCxDQUFDLENBQTVELEVBQStEO0FBQzlELG9CQUFNQyxRQUFRLEdBQUdGLE1BQU0sQ0FBQ0csTUFBUCxHQUFnQkgsTUFBTSxDQUFDRyxNQUFQLENBQWNDLE9BQWQsQ0FBc0JILFdBQXRCLEVBQWhCLEdBQXNESSxTQUF2RTs7QUFDQSxvQkFBSUgsUUFBUSxLQUFLLE9BQWpCLEVBQTBCO0FBQ3pCRixrQkFBQUEsTUFBTSxDQUFDTSxTQUFQO0FBQ0E7QUFDRDtBQUNEO0FBUkYsV0FERCxFQVdDLElBWEQsRUFZQ0QsU0FaRCxFQWFDLElBYkQ7QUFlQTs7QUFDRCxlQUFPLElBQVA7QUFDQTtBQUNELEtBbEM4RjtBQW9DL0ZFLElBQUFBLE9BQU8sRUFBRSxVQUFtQ0MsbUJBQW5DLEVBQXdEO0FBQ2hFLFVBQU12QixPQUFPLEdBQUcsS0FBS3dCLFNBQUwsRUFBaEI7O0FBQ0EsVUFBSXhCLE9BQUosRUFBYTtBQUNaLFlBQU1TLFFBQVEsR0FBRyxLQUFLZ0IsZUFBTCxFQUFqQjs7QUFDQSxZQUFJaEIsUUFBSixFQUFjO0FBQ2JpQixVQUFBQSxRQUFRLENBQUNDLFVBQVQsQ0FBb0IsS0FBS0gsU0FBTCxFQUFwQixFQUFzQ2YsUUFBUSxDQUFDbUIsUUFBL0M7QUFDQTs7QUFDRCxhQUFLQyxlQUFMLENBQXFCN0IsT0FBckI7QUFDQTs7QUFDRDhCLE1BQUFBLE9BQU8sQ0FBQzVCLFNBQVIsQ0FBa0JvQixPQUFsQixDQUEwQm5CLEtBQTFCLENBQWdDLElBQWhDLEVBQXNDLENBQUNvQixtQkFBRCxDQUF0QztBQUNBLEtBOUM4RjtBQWdEL0Y7QUFDQTtBQUNBUSxJQUFBQSxVQUFVLEVBQUUsVUFBbUNDLE1BQW5DLEVBQWdEO0FBQzNELFVBQU12QixRQUFRLEdBQUcsS0FBS2dCLGVBQUwsRUFBakI7O0FBQ0EsVUFBSWhCLFFBQUosRUFBYztBQUNiLGVBQU9aLGdCQUFnQixDQUFDSyxTQUFqQixDQUEyQjZCLFVBQTNCLENBQXNDNUIsS0FBdEMsQ0FBNEMsSUFBNUMsRUFBa0QsQ0FBQzZCLE1BQUQsQ0FBbEQsQ0FBUDtBQUNBLE9BRkQsTUFFTztBQUNOQyxRQUFBQSxHQUFHLENBQUNDLElBQUosQ0FBUyxrRkFBa0YsS0FBS0MsVUFBTCxFQUEzRjtBQUNBO0FBQ0Q7QUF6RDhGLEdBQWpFLENBQS9CO1NBNERldkMsc0IiLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBDb21tYW5kRXhlY3V0aW9uIGZyb20gXCJzYXAvdWkvY29yZS9Db21tYW5kRXhlY3V0aW9uXCI7XG5pbXBvcnQgTG9nIGZyb20gXCJzYXAvYmFzZS9Mb2dcIjtcbmltcG9ydCBFbGVtZW50IGZyb20gXCJzYXAvdWkvY29yZS9FbGVtZW50XCI7XG5pbXBvcnQgU2hvcnRjdXQgZnJvbSBcInNhcC91aS9jb3JlL1Nob3J0Y3V0XCI7XG5cbnR5cGUgQ29tbWFuZEV4ZWN1dGlvbkV4ID0gQ29tbWFuZEV4ZWN1dGlvbiAmIHtcblx0c2V0UGFyZW50KG9QYXJlbnQ6IGFueSk6IHZvaWQ7XG5cdF9nZXRDb21tYW5kSW5mbygpOiBhbnk7XG5cdF9jbGVhbnVwQ29udGV4dChvUGFyZW50OiBhbnkpOiB2b2lkO1xufTtcblxuY29uc3QgQ3VzdG9tQ29tbWFuZEV4ZWN1dGlvbiA9IENvbW1hbmRFeGVjdXRpb24uZXh0ZW5kKFwic2FwLmZlLmNvcmUuY29udHJvbHMuQ29tbWFuZEV4ZWN1dGlvblwiLCB7XG5cdHNldFBhcmVudDogZnVuY3Rpb24ob1BhcmVudDogYW55KSB7XG5cdFx0Y29uc3QgYUV4Y2x1ZGVkU2luZ2xlS2V5ID0gW1wiZXNjYXBlXCJdO1xuXHRcdChDb21tYW5kRXhlY3V0aW9uLnByb3RvdHlwZSBhcyBhbnkpLnNldFBhcmVudC5hcHBseSh0aGlzLCBbb1BhcmVudF0pO1xuXHRcdGNvbnN0IGFDb21tYW5kcyA9IG9QYXJlbnQuZGF0YShcInNhcC51aS5jb3JlLlNob3J0Y3V0XCIpO1xuXHRcdGlmIChBcnJheS5pc0FycmF5KGFDb21tYW5kcykgJiYgYUNvbW1hbmRzLmxlbmd0aCA+IDApIHtcblx0XHRcdGNvbnN0IG9Db21tYW5kID0gb1BhcmVudC5kYXRhKFwic2FwLnVpLmNvcmUuU2hvcnRjdXRcIilbYUNvbW1hbmRzLmxlbmd0aCAtIDFdLFxuXHRcdFx0XHRvU2hvcnRjdXQgPSBvQ29tbWFuZC5zaG9ydGN1dFNwZWM7XG5cdFx0XHRpZiAob1Nob3J0Y3V0ICYmIGFFeGNsdWRlZFNpbmdsZUtleS5pbmRleE9mKG9TaG9ydGN1dC5rZXkpID4gLTEpIHtcblx0XHRcdFx0Ly8gQ2hlY2sgaWYgc2luZ2xlIGtleSBzaG9ydGN1dFxuXHRcdFx0XHRmb3IgKGNvbnN0IGtleSBpbiBvU2hvcnRjdXQpIHtcblx0XHRcdFx0XHRpZiAob1Nob3J0Y3V0W2tleV0gJiYga2V5ICE9PSBcImtleVwiKSB7XG5cdFx0XHRcdFx0XHRyZXR1cm4gdGhpcztcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdFx0Ly8gTmVlZCB0byBkaXNhYmxlIFNob3J0Q3V0IHdoZW4gdXNlciBwcmVzcyBzaW5nbGUgc2hvcnRjdXQga2V5IGludG8gYW4gaW5wdXRcblx0XHRcdFx0b1BhcmVudC5hZGREZWxlZ2F0ZShcblx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcIm9ua2V5ZG93blwiOiBmdW5jdGlvbihvRXZlbnQ6IGFueSkge1xuXHRcdFx0XHRcdFx0XHRpZiAoYUV4Y2x1ZGVkU2luZ2xlS2V5LmluZGV4T2Yob0V2ZW50LmtleS50b0xvd2VyQ2FzZSgpKSA+IC0xKSB7XG5cdFx0XHRcdFx0XHRcdFx0Y29uc3Qgc0VsZW1lbnQgPSBvRXZlbnQudGFyZ2V0ID8gb0V2ZW50LnRhcmdldC50YWdOYW1lLnRvTG93ZXJDYXNlKCkgOiB1bmRlZmluZWQ7XG5cdFx0XHRcdFx0XHRcdFx0aWYgKHNFbGVtZW50ID09PSBcImlucHV0XCIpIHtcblx0XHRcdFx0XHRcdFx0XHRcdG9FdmVudC5zZXRNYXJrZWQoKTtcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdHRydWUsXG5cdFx0XHRcdFx0dW5kZWZpbmVkLFxuXHRcdFx0XHRcdHRydWVcblx0XHRcdFx0KTtcblx0XHRcdH1cblx0XHRcdHJldHVybiB0aGlzO1xuXHRcdH1cblx0fSxcblxuXHRkZXN0cm95OiBmdW5jdGlvbih0aGlzOiBDb21tYW5kRXhlY3V0aW9uRXgsIGJTdXBwcmVzc0ludmFsaWRhdGUpIHtcblx0XHRjb25zdCBvUGFyZW50ID0gdGhpcy5nZXRQYXJlbnQoKTtcblx0XHRpZiAob1BhcmVudCkge1xuXHRcdFx0Y29uc3Qgb0NvbW1hbmQgPSB0aGlzLl9nZXRDb21tYW5kSW5mbygpO1xuXHRcdFx0aWYgKG9Db21tYW5kKSB7XG5cdFx0XHRcdFNob3J0Y3V0LnVucmVnaXN0ZXIodGhpcy5nZXRQYXJlbnQoKSwgb0NvbW1hbmQuc2hvcnRjdXQpO1xuXHRcdFx0fVxuXHRcdFx0dGhpcy5fY2xlYW51cENvbnRleHQob1BhcmVudCk7XG5cdFx0fVxuXHRcdEVsZW1lbnQucHJvdG90eXBlLmRlc3Ryb3kuYXBwbHkodGhpcywgW2JTdXBwcmVzc0ludmFsaWRhdGVdKTtcblx0fSxcblxuXHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10cy1jb21tZW50XG5cdC8vIEB0cy1pZ25vcmVcblx0c2V0VmlzaWJsZTogZnVuY3Rpb24odGhpczogQ29tbWFuZEV4ZWN1dGlvbkV4LCBiVmFsdWU6IGFueSkge1xuXHRcdGNvbnN0IG9Db21tYW5kID0gdGhpcy5fZ2V0Q29tbWFuZEluZm8oKTtcblx0XHRpZiAob0NvbW1hbmQpIHtcblx0XHRcdHJldHVybiBDb21tYW5kRXhlY3V0aW9uLnByb3RvdHlwZS5zZXRWaXNpYmxlLmFwcGx5KHRoaXMsIFtiVmFsdWVdKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0TG9nLmluZm8oXCJUaGVyZSBpcyBubyBzaG9ydGN1dCBkZWZpbml0aW9uIHJlZ2lzdGVyZWQgaW4gdGhlIG1hbmlmZXN0IGZvciB0aGUgY29tbWFuZCA6IFwiICsgdGhpcy5nZXRDb21tYW5kKCkpO1xuXHRcdH1cblx0fVxufSk7XG5cbmV4cG9ydCBkZWZhdWx0IEN1c3RvbUNvbW1hbmRFeGVjdXRpb247XG4iXX0=
@@ -0,0 +1,72 @@
1
+ import CommandExecution from "sap/ui/core/CommandExecution";
2
+ import Log from "sap/base/Log";
3
+ import Element from "sap/ui/core/Element";
4
+ import Shortcut from "sap/ui/core/Shortcut";
5
+
6
+ type CommandExecutionEx = CommandExecution & {
7
+ setParent(oParent: any): void;
8
+ _getCommandInfo(): any;
9
+ _cleanupContext(oParent: any): void;
10
+ };
11
+
12
+ const CustomCommandExecution = CommandExecution.extend("sap.fe.core.controls.CommandExecution", {
13
+ setParent: function(oParent: any) {
14
+ const aExcludedSingleKey = ["escape"];
15
+ (CommandExecution.prototype as any).setParent.apply(this, [oParent]);
16
+ const aCommands = oParent.data("sap.ui.core.Shortcut");
17
+ if (Array.isArray(aCommands) && aCommands.length > 0) {
18
+ const oCommand = oParent.data("sap.ui.core.Shortcut")[aCommands.length - 1],
19
+ oShortcut = oCommand.shortcutSpec;
20
+ if (oShortcut && aExcludedSingleKey.indexOf(oShortcut.key) > -1) {
21
+ // Check if single key shortcut
22
+ for (const key in oShortcut) {
23
+ if (oShortcut[key] && key !== "key") {
24
+ return this;
25
+ }
26
+ }
27
+ // Need to disable ShortCut when user press single shortcut key into an input
28
+ oParent.addDelegate(
29
+ {
30
+ "onkeydown": function(oEvent: any) {
31
+ if (aExcludedSingleKey.indexOf(oEvent.key.toLowerCase()) > -1) {
32
+ const sElement = oEvent.target ? oEvent.target.tagName.toLowerCase() : undefined;
33
+ if (sElement === "input") {
34
+ oEvent.setMarked();
35
+ }
36
+ }
37
+ }
38
+ },
39
+ true,
40
+ undefined,
41
+ true
42
+ );
43
+ }
44
+ return this;
45
+ }
46
+ },
47
+
48
+ destroy: function(this: CommandExecutionEx, bSuppressInvalidate) {
49
+ const oParent = this.getParent();
50
+ if (oParent) {
51
+ const oCommand = this._getCommandInfo();
52
+ if (oCommand) {
53
+ Shortcut.unregister(this.getParent(), oCommand.shortcut);
54
+ }
55
+ this._cleanupContext(oParent);
56
+ }
57
+ Element.prototype.destroy.apply(this, [bSuppressInvalidate]);
58
+ },
59
+
60
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
61
+ // @ts-ignore
62
+ setVisible: function(this: CommandExecutionEx, bValue: any) {
63
+ const oCommand = this._getCommandInfo();
64
+ if (oCommand) {
65
+ return CommandExecution.prototype.setVisible.apply(this, [bValue]);
66
+ } else {
67
+ Log.info("There is no shortcut definition registered in the manifest for the command : " + this.getCommand());
68
+ }
69
+ }
70
+ });
71
+
72
+ export default CustomCommandExecution;
@@ -1,82 +1,97 @@
1
1
  /*!
2
2
  * SAP UI development toolkit for HTML5 (SAPUI5)
3
- (c) Copyright 2009-2021 SAP SE. All rights reserved
4
-
3
+ * (c) Copyright 2009-2021 SAP SE. All rights reserved
5
4
  */
6
- sap.ui.define(["sap/ui/core/Control"], function(Control) {
7
- "use strict";
5
+ sap.ui.define(["sap/ui/core/Control"], function (Control) {
6
+ "use strict";
8
7
 
9
- return Control.extend("sap.fe.core.controls.ConditionalWrapper", {
10
- metadata: {
11
- interfaces: ["sap.ui.core.IFormContent"],
12
- properties: {
13
- width: {
14
- type: "sap.ui.core.CSSSize",
15
- defaultValue: null
16
- },
17
- formDoNotAdjustWidth: {
18
- type: "boolean",
19
- defaultValue: false
20
- },
21
- condition: {
22
- type: "boolean",
23
- defaultValue: false
24
- }
25
- },
26
- associations: {
27
- /**
28
- * Association to controls / IDs that label this control (see WAI-ARIA attribute aria-labelledby).
29
- */
30
- ariaLabelledBy: { type: "sap.ui.core.Control", multiple: true, singularName: "ariaLabelledBy" }
31
- },
32
- defaultAggregation: "contentTrue",
33
- aggregations: {
34
- contentTrue: { type: "sap.ui.core.Control", multiple: false },
35
- contentFalse: { type: "sap.ui.core.Control", multiple: false }
36
- }
37
- },
38
- enhanceAccessibilityState: function(oElement, mAriaProps) {
39
- var oParent = this.getParent();
8
+ var ConditionalWrapper = Control.extend("sap.fe.core.controls.ConditionalWrapper", {
9
+ metadata: {
10
+ interfaces: ["sap.ui.core.IFormContent"],
11
+ properties: {
12
+ width: {
13
+ type: "sap.ui.core.CSSSize",
14
+ defaultValue: null
15
+ },
16
+ formDoNotAdjustWidth: {
17
+ type: "boolean",
18
+ defaultValue: false
19
+ },
20
+ condition: {
21
+ type: "boolean",
22
+ defaultValue: false
23
+ }
24
+ },
25
+ associations: {
26
+ /**
27
+ * Association to controls / IDs that label this control (see WAI-ARIA attribute aria-labelledby).
28
+ */
29
+ ariaLabelledBy: {
30
+ type: "sap.ui.core.Control",
31
+ multiple: true,
32
+ singularName: "ariaLabelledBy"
33
+ }
34
+ },
35
+ defaultAggregation: "contentTrue",
36
+ aggregations: {
37
+ contentTrue: {
38
+ type: "sap.ui.core.Control",
39
+ multiple: false
40
+ },
41
+ contentFalse: {
42
+ type: "sap.ui.core.Control",
43
+ multiple: false
44
+ }
45
+ }
46
+ },
47
+ enhanceAccessibilityState: function (oElement, mAriaProps) {
48
+ var oParent = this.getParent();
40
49
 
41
- if (oParent && oParent.enhanceAccessibilityState) {
42
- oParent.enhanceAccessibilityState(this, mAriaProps);
43
- }
50
+ if (oParent && oParent.enhanceAccessibilityState) {
51
+ oParent.enhanceAccessibilityState(this, mAriaProps);
52
+ }
44
53
 
45
- return mAriaProps;
46
- },
47
- _setAriaLabelledBy: function(oContent) {
48
- if (oContent && oContent.addAriaLabelledBy) {
49
- var aAriaLabelledBy = this.getAriaLabelledBy();
54
+ return mAriaProps;
55
+ },
56
+ _setAriaLabelledBy: function (oContent) {
57
+ if (oContent && oContent.addAriaLabelledBy) {
58
+ var aAriaLabelledBy = this.getAriaLabelledBy();
50
59
 
51
- for (var i = 0; i < aAriaLabelledBy.length; i++) {
52
- var sId = aAriaLabelledBy[i];
53
- var aAriaLabelledBys = oContent.getAriaLabelledBy() || [];
54
- if (aAriaLabelledBys.indexOf(sId) === -1) {
55
- oContent.addAriaLabelledBy(sId);
56
- }
57
- }
58
- }
59
- },
60
- onBeforeRendering: function() {
61
- // before calling the renderer of the ConditionalWrapper parent control may have set ariaLabelledBy
62
- // we ensure it is passed to its inner controls
63
- this._setAriaLabelledBy(this.getContentTrue());
64
- this._setAriaLabelledBy(this.getContentFalse());
65
- },
66
- renderer: {
67
- apiVersion: 2,
68
- render: function(oRm, oControl) {
69
- oRm.openStart("div", oControl);
70
- oRm.style("width", oControl.getWidth());
71
- oRm.style("display", "inline-block");
72
- oRm.openEnd();
73
- if (oControl.getCondition()) {
74
- oRm.renderControl(oControl.getContentTrue());
75
- } else {
76
- oRm.renderControl(oControl.getContentFalse());
77
- }
78
- oRm.close("div"); // end of the complete Control
79
- }
80
- }
81
- });
82
- });
60
+ for (var i = 0; i < aAriaLabelledBy.length; i++) {
61
+ var sId = aAriaLabelledBy[i];
62
+ var aAriaLabelledBys = oContent.getAriaLabelledBy() || [];
63
+
64
+ if (aAriaLabelledBys.indexOf(sId) === -1) {
65
+ oContent.addAriaLabelledBy(sId);
66
+ }
67
+ }
68
+ }
69
+ },
70
+ onBeforeRendering: function () {
71
+ // before calling the renderer of the ConditionalWrapper parent control may have set ariaLabelledBy
72
+ // we ensure it is passed to its inner controls
73
+ this._setAriaLabelledBy(this.getContentTrue());
74
+
75
+ this._setAriaLabelledBy(this.getContentFalse());
76
+ },
77
+ renderer: {
78
+ apiVersion: 2,
79
+ render: function (oRm, oControl) {
80
+ oRm.openStart("div", oControl);
81
+ oRm.style("width", oControl.getWidth());
82
+ oRm.style("display", "inline-block");
83
+ oRm.openEnd();
84
+
85
+ if (oControl.getCondition()) {
86
+ oRm.renderControl(oControl.getContentTrue());
87
+ } else {
88
+ oRm.renderControl(oControl.getContentFalse());
89
+ }
90
+
91
+ oRm.close("div"); // end of the complete Control
92
+ }
93
+ }
94
+ });
95
+ return ConditionalWrapper;
96
+ }, false);
97
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkNvbmRpdGlvbmFsV3JhcHBlci50cyJdLCJuYW1lcyI6WyJDb25kaXRpb25hbFdyYXBwZXIiLCJDb250cm9sIiwiZXh0ZW5kIiwibWV0YWRhdGEiLCJpbnRlcmZhY2VzIiwicHJvcGVydGllcyIsIndpZHRoIiwidHlwZSIsImRlZmF1bHRWYWx1ZSIsImZvcm1Eb05vdEFkanVzdFdpZHRoIiwiY29uZGl0aW9uIiwiYXNzb2NpYXRpb25zIiwiYXJpYUxhYmVsbGVkQnkiLCJtdWx0aXBsZSIsInNpbmd1bGFyTmFtZSIsImRlZmF1bHRBZ2dyZWdhdGlvbiIsImFnZ3JlZ2F0aW9ucyIsImNvbnRlbnRUcnVlIiwiY29udGVudEZhbHNlIiwiZW5oYW5jZUFjY2Vzc2liaWxpdHlTdGF0ZSIsIm9FbGVtZW50IiwibUFyaWFQcm9wcyIsIm9QYXJlbnQiLCJnZXRQYXJlbnQiLCJfc2V0QXJpYUxhYmVsbGVkQnkiLCJvQ29udGVudCIsImFkZEFyaWFMYWJlbGxlZEJ5IiwiYUFyaWFMYWJlbGxlZEJ5IiwiZ2V0QXJpYUxhYmVsbGVkQnkiLCJpIiwibGVuZ3RoIiwic0lkIiwiYUFyaWFMYWJlbGxlZEJ5cyIsImluZGV4T2YiLCJvbkJlZm9yZVJlbmRlcmluZyIsImdldENvbnRlbnRUcnVlIiwiZ2V0Q29udGVudEZhbHNlIiwicmVuZGVyZXIiLCJhcGlWZXJzaW9uIiwicmVuZGVyIiwib1JtIiwib0NvbnRyb2wiLCJvcGVuU3RhcnQiLCJzdHlsZSIsImdldFdpZHRoIiwib3BlbkVuZCIsImdldENvbmRpdGlvbiIsInJlbmRlckNvbnRyb2wiLCJjbG9zZSJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTs7OztBQU1BLE1BQU1BLGtCQUFrQixHQUFHQyxPQUFPLENBQUNDLE1BQVIsQ0FBZSx5Q0FBZixFQUEwRDtBQUNwRkMsSUFBQUEsUUFBUSxFQUFFO0FBQ1RDLE1BQUFBLFVBQVUsRUFBRSxDQUFDLDBCQUFELENBREg7QUFFVEMsTUFBQUEsVUFBVSxFQUFFO0FBQ1hDLFFB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QUFDNUJOLFVBQUFBLEdBQUcsQ0FBQ08sYUFBSixDQUFrQk4sUUFBUSxDQUFDTixjQUFULEVBQWxCO0FBQ0EsU0FGRCxNQUVPO0FBQ05LLFVBQUFBLEdBQUcsQ0FBQ08sYUFBSixDQUFrQk4sUUFBUSxDQUFDTCxlQUFULEVBQWxCO0FBQ0E7O0FBQ0RJLFFBQUFBLEdBQUcsQ0FBQ1EsS0FBSixDQUFVLEtBQVYsRUFWeUMsQ0FVdkI7QUFDbEI7QUFiUTtBQXpEMEUsR0FBMUQsQ0FBM0I7U0EwRWVoRCxrQiIsInNvdXJjZVJvb3QiOiIuIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IENvbnRyb2wgZnJvbSBcInNhcC91aS9jb3JlL0NvbnRyb2xcIjtcblxudHlwZSBDb25kaXRpb25hbFdyYXBwZXJUeXBlID0gQ29udHJvbCAmIHtcblx0Z2V0Q29udGVudFRydWUoKTogQ29udHJvbDtcblx0Z2V0Q29udGVudEZhbHNlKCk6IENvbnRyb2w7XG5cdF9zZXRBcmlhTGFiZWxsZWRCeShvQ29udHJvbDogQ29udHJvbCk6IHZvaWQ7XG5cdGdldEFyaWFMYWJlbGxlZEJ5KCk6IENvbnRyb2xbXTtcbn07XG5jb25zdCBDb25kaXRpb25hbFdyYXBwZXIgPSBDb250cm9sLmV4dGVuZChcInNhcC5mZS5jb3JlLmNvbnRyb2xzLkNvbmRpdGlvbmFsV3JhcHBlclwiLCB7XG5cdG1ldGFkYXRhOiB7XG5cdFx0aW50ZXJmYWNlczogW1wic2FwLnVpLmNvcmUuSUZvcm1Db250ZW50XCJdLFxuXHRcdHByb3BlcnRpZXM6IHtcblx0XHRcdHdpZHRoOiB7XG5cdFx0XHRcdHR5cGU6IFwic2FwLnVpLmNvcmUuQ1NTU2l6ZVwiLFxuXHRcdFx0XHRkZWZhdWx0VmFsdWU6IG51bGxcblx0XHRcdH0sXG5cdFx0XHRmb3JtRG9Ob3RBZGp1c3RXaWR0aDoge1xuXHRcdFx0XHR0eXBlOiBcImJvb2xlYW5cIixcblx0XHRcdFx0ZGVmYXVsdFZhbHVlOiBmYWxzZVxuXHRcdFx0fSxcblx0XHRcdGNvbmRpdGlvbjoge1xuXHRcdFx0XHR0eXBlOiBcImJvb2xlYW5cIixcblx0XHRcdFx0ZGVmYXVsdFZhbHVlOiBmYWxzZVxuXHRcdFx0fVxuXHRcdH0sXG5cdFx0YXNzb2NpYXRpb25zOiB7XG5cdFx0XHQvKipcblx0XHRcdCAqIEFzc29jaWF0aW9uIHRvIGNvbnRyb2xzIC8gSURzIHRoYXQgbGFiZWwgdGhpcyBjb250cm9sIChzZWUgV0FJLUFSSUEgYXR0cmlidXRlIGFyaWEtbGFiZWxsZWRieSkuXG5cdFx0XHQgKi9cblx0XHRcdGFyaWFMYWJlbGxlZEJ5OiB7IHR5cGU6IFwic2FwLnVpLmNvcmUuQ29udHJvbFwiLCBtdWx0aXBsZTogdHJ1ZSwgc2luZ3VsYXJOYW1lOiBcImFyaWFMYWJlbGxlZEJ5XCIgfVxuXHRcdH0sXG5cdFx0ZGVmYXVsdEFnZ3JlZ2F0aW9uOiBcImNvbnRlbnRUcnVlXCIsXG5cdFx0YWdncmVnYXRpb25zOiB7XG5cdFx0XHRjb250ZW50VHJ1ZTogeyB0eXBlOiBcInNhcC51aS5jb3JlLkNvbnRyb2xcIiwgbXVsdGlwbGU6IGZhbHNlIH0sXG5cdFx0XHRjb250ZW50RmFsc2U6IHsgdHlwZTogXCJzYXAudWkuY29yZS5Db250cm9sXCIsIG11bHRpcGxlOiBmYWxzZSB9XG5cdFx0fVxuXHR9LFxuXHRlbmhhbmNlQWNjZXNzaWJpbGl0eVN0YXRlOiBmdW5jdGlvbihvRWxlbWVudDogYW55LCBtQXJpYVByb3BzOiBhbnkpIHtcblx0XHRjb25zdCBvUGFyZW50ID0gdGhpcy5nZXRQYXJlbnQoKSBhcyBhbnk7XG5cblx0XHRpZiAob1BhcmVudCAmJiBvUGFyZW50LmVuaGFuY2VBY2Nlc3NpYmlsaXR5U3RhdGUpIHtcblx0XHRcdG9QYXJlbnQuZW5oYW5jZUFjY2Vzc2liaWxpdHlTdGF0ZSh0aGlzLCBtQXJpYVByb3BzKTtcblx0XHR9XG5cblx0XHRyZXR1cm4gbUFyaWFQcm9wcztcblx0fSxcblx0X3NldEFyaWFMYWJlbGxlZEJ5OiBmdW5jdGlvbih0aGlzOiBDb25kaXRpb25hbFdyYXBwZXJUeXBlLCBvQ29udGVudDogYW55KSB7XG5cdFx0aWYgKG9Db250ZW50ICYmIG9Db250ZW50LmFkZEFyaWFMYWJlbGxlZEJ5KSB7XG5cdFx0XHRjb25zdCBhQXJpYUxhYmVsbGVkQnkgPSB0aGlzLmdldEFyaWFMYWJlbGxlZEJ5KCk7XG5cblx0XHRcdGZvciAobGV0IGkgPSAwOyBpIDwgYUFyaWFMYWJlbGxlZEJ5Lmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdGNvbnN0IHNJZCA9IGFBcmlhTGFiZWxsZWRCeVtpXTtcblx0XHRcdFx0Y29uc3QgYUFyaWFMYWJlbGxlZEJ5cyA9IG9Db250ZW50LmdldEFyaWFMYWJlbGxlZEJ5KCkgfHwgW107XG5cdFx0XHRcdGlmIChhQXJpYUxhYmVsbGVkQnlzLmluZGV4T2Yoc0lkKSA9PT0gLTEpIHtcblx0XHRcdFx0XHRvQ29udGVudC5hZGRBcmlhTGFiZWxsZWRCeShzSWQpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9LFxuXHRvbkJlZm9yZVJlbmRlcmluZzogZnVuY3Rpb24odGhpczogQ29uZGl0aW9uYWxXcmFwcGVyVHlwZSkge1xuXHRcdC8vIGJlZm9yZSBjYWxsaW5nIHRoZSByZW5kZXJlciBvZiB0aGUgQ29uZGl0aW9uYWxXcmFwcGVyIHBhcmVudCBjb250cm9sIG1heSBoYXZlIHNldCBhcmlhTGFiZWxsZWRCeVxuXHRcdC8vIHdlIGVuc3VyZSBpdCBpcyBwYXNzZWQgdG8gaXRzIGlubmVyIGNvbnRyb2xzXG5cdFx0dGhpcy5fc2V0QXJpYUxhYmVsbGVkQnkodGhpcy5nZXRDb250ZW50VHJ1ZSgpKTtcblx0XHR0aGlzLl9zZXRBcmlhTGFiZWxsZWRCeSh0aGlzLmdldENvbnRlbnRGYWxzZSgpKTtcblx0fSxcblx0cmVuZGVyZXI6IHtcblx0XHRhcGlWZXJzaW9uOiAyLFxuXHRcdHJlbmRlcjogZnVuY3Rpb24ob1JtOiBhbnksIG9Db250cm9sOiBhbnkpIHtcblx0XHRcdG9SbS5vcGVuU3RhcnQoXCJkaXZcIiwgb0NvbnRyb2wpO1xuXHRcdFx0b1JtLnN0eWxlKFwid2lkdGhcIiwgb0NvbnRyb2wuZ2V0V2lkdGgoKSk7XG5cdFx0XHRvUm0uc3R5bGUoXCJkaXNwbGF5XCIsIFwiaW5saW5lLWJsb2NrXCIpO1xuXHRcdFx0b1JtLm9wZW5FbmQoKTtcblx0XHRcdGlmIChvQ29udHJvbC5nZXRDb25kaXRpb24oKSkge1xuXHRcdFx0XHRvUm0ucmVuZGVyQ29udHJvbChvQ29udHJvbC5nZXRDb250ZW50VHJ1ZSgpKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdG9SbS5yZW5kZXJDb250cm9sKG9Db250cm9sLmdldENvbnRlbnRGYWxzZSgpKTtcblx0XHRcdH1cblx0XHRcdG9SbS5jbG9zZShcImRpdlwiKTsgLy8gZW5kIG9mIHRoZSBjb21wbGV0ZSBDb250cm9sXG5cdFx0fVxuXHR9XG59KTtcblxuZXhwb3J0IGRlZmF1bHQgQ29uZGl0aW9uYWxXcmFwcGVyO1xuIl19
@@ -0,0 +1,83 @@
1
+ import Control from "sap/ui/core/Control";
2
+
3
+ type ConditionalWrapperType = Control & {
4
+ getContentTrue(): Control;
5
+ getContentFalse(): Control;
6
+ _setAriaLabelledBy(oControl: Control): void;
7
+ getAriaLabelledBy(): Control[];
8
+ };
9
+ const ConditionalWrapper = Control.extend("sap.fe.core.controls.ConditionalWrapper", {
10
+ metadata: {
11
+ interfaces: ["sap.ui.core.IFormContent"],
12
+ properties: {
13
+ width: {
14
+ type: "sap.ui.core.CSSSize",
15
+ defaultValue: null
16
+ },
17
+ formDoNotAdjustWidth: {
18
+ type: "boolean",
19
+ defaultValue: false
20
+ },
21
+ condition: {
22
+ type: "boolean",
23
+ defaultValue: false
24
+ }
25
+ },
26
+ associations: {
27
+ /**
28
+ * Association to controls / IDs that label this control (see WAI-ARIA attribute aria-labelledby).
29
+ */
30
+ ariaLabelledBy: { type: "sap.ui.core.Control", multiple: true, singularName: "ariaLabelledBy" }
31
+ },
32
+ defaultAggregation: "contentTrue",
33
+ aggregations: {
34
+ contentTrue: { type: "sap.ui.core.Control", multiple: false },
35
+ contentFalse: { type: "sap.ui.core.Control", multiple: false }
36
+ }
37
+ },
38
+ enhanceAccessibilityState: function(oElement: any, mAriaProps: any) {
39
+ const oParent = this.getParent() as any;
40
+
41
+ if (oParent && oParent.enhanceAccessibilityState) {
42
+ oParent.enhanceAccessibilityState(this, mAriaProps);
43
+ }
44
+
45
+ return mAriaProps;
46
+ },
47
+ _setAriaLabelledBy: function(this: ConditionalWrapperType, oContent: any) {
48
+ if (oContent && oContent.addAriaLabelledBy) {
49
+ const aAriaLabelledBy = this.getAriaLabelledBy();
50
+
51
+ for (let i = 0; i < aAriaLabelledBy.length; i++) {
52
+ const sId = aAriaLabelledBy[i];
53
+ const aAriaLabelledBys = oContent.getAriaLabelledBy() || [];
54
+ if (aAriaLabelledBys.indexOf(sId) === -1) {
55
+ oContent.addAriaLabelledBy(sId);
56
+ }
57
+ }
58
+ }
59
+ },
60
+ onBeforeRendering: function(this: ConditionalWrapperType) {
61
+ // before calling the renderer of the ConditionalWrapper parent control may have set ariaLabelledBy
62
+ // we ensure it is passed to its inner controls
63
+ this._setAriaLabelledBy(this.getContentTrue());
64
+ this._setAriaLabelledBy(this.getContentFalse());
65
+ },
66
+ renderer: {
67
+ apiVersion: 2,
68
+ render: function(oRm: any, oControl: any) {
69
+ oRm.openStart("div", oControl);
70
+ oRm.style("width", oControl.getWidth());
71
+ oRm.style("display", "inline-block");
72
+ oRm.openEnd();
73
+ if (oControl.getCondition()) {
74
+ oRm.renderControl(oControl.getContentTrue());
75
+ } else {
76
+ oRm.renderControl(oControl.getContentFalse());
77
+ }
78
+ oRm.close("div"); // end of the complete Control
79
+ }
80
+ }
81
+ });
82
+
83
+ export default ConditionalWrapper;