@openui5/sap.ui.mdc 1.96.1 → 1.97.1

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 (308) hide show
  1. package/.reuse/dep5 +1 -1
  2. package/THIRDPARTY.txt +2 -1
  3. package/package.json +4 -4
  4. package/src/sap/ui/mdc/.library +2 -2
  5. package/src/sap/ui/mdc/ActionToolbar.js +3 -8
  6. package/src/sap/ui/mdc/AggregationBaseDelegate.js +1 -1
  7. package/src/sap/ui/mdc/BaseDelegate.js +1 -1
  8. package/src/sap/ui/mdc/Chart.js +2 -2
  9. package/src/sap/ui/mdc/ChartDelegate.js +1 -1
  10. package/src/sap/ui/mdc/ChartDelegateNew.js +1 -1
  11. package/src/sap/ui/mdc/ChartNew.js +2 -2
  12. package/src/sap/ui/mdc/ChartNewRenderer.js +3 -3
  13. package/src/sap/ui/mdc/ChartRenderer.js +1 -1
  14. package/src/sap/ui/mdc/Control.js +2 -2
  15. package/src/sap/ui/mdc/Delegate.js +1 -1
  16. package/src/sap/ui/mdc/Element.js +2 -2
  17. package/src/sap/ui/mdc/Field.js +4 -3
  18. package/src/sap/ui/mdc/FilterBar.js +2 -2
  19. package/src/sap/ui/mdc/FilterBarDelegate.js +1 -1
  20. package/src/sap/ui/mdc/FilterField.js +17 -3
  21. package/src/sap/ui/mdc/Link.js +2 -2
  22. package/src/sap/ui/mdc/LinkDelegate.js +1 -1
  23. package/src/sap/ui/mdc/MultiValueField.js +3 -2
  24. package/src/sap/ui/mdc/Table.js +175 -135
  25. package/src/sap/ui/mdc/TableDelegate.js +14 -12
  26. package/src/sap/ui/mdc/ValueHelp.js +34 -8
  27. package/src/sap/ui/mdc/ValueHelpDelegate.js +21 -1
  28. package/src/sap/ui/mdc/actiontoolbar/ActionToolbarAction.js +2 -2
  29. package/src/sap/ui/mdc/actiontoolbar/ActionToolbarActionRenderer.js +1 -1
  30. package/src/sap/ui/mdc/chart/ChartSettings.js +1 -1
  31. package/src/sap/ui/mdc/chart/ChartTypeButton.js +1 -1
  32. package/src/sap/ui/mdc/chart/DimensionItem.js +1 -1
  33. package/src/sap/ui/mdc/chart/DrillStackHandler.js +1 -1
  34. package/src/sap/ui/mdc/chart/Item.js +1 -1
  35. package/src/sap/ui/mdc/chart/MeasureItem.js +1 -1
  36. package/src/sap/ui/mdc/chart/MetadataDelegate.js +1 -1
  37. package/src/sap/ui/mdc/chart/SelectionDetailsActions.js +2 -2
  38. package/src/sap/ui/mdc/chart/SelectionHandler.js +1 -1
  39. package/src/sap/ui/mdc/chart/ToolbarHandler.js +2 -2
  40. package/src/sap/ui/mdc/chartNew/ChartSelectionDetailsNew.js +2 -2
  41. package/src/sap/ui/mdc/chartNew/ChartToolbarNew.js +2 -2
  42. package/src/sap/ui/mdc/chartNew/ChartTypeButtonNew.js +1 -1
  43. package/src/sap/ui/mdc/chartNew/DrillBreadcrumbsNew.js +1 -1
  44. package/src/sap/ui/mdc/chartNew/DrillStackHandlerNew.js +1 -1
  45. package/src/sap/ui/mdc/chartNew/ItemNew.js +1 -1
  46. package/src/sap/ui/mdc/chartNew/PropertyHelperNew.js +2 -2
  47. package/src/sap/ui/mdc/chartNew/SelectionDetailsActionsNew.js +1 -1
  48. package/src/sap/ui/mdc/condition/Condition.js +2 -2
  49. package/src/sap/ui/mdc/condition/ConditionConverter.js +2 -2
  50. package/src/sap/ui/mdc/condition/ConditionModel.js +2 -2
  51. package/src/sap/ui/mdc/condition/ConditionModelPropertyBinding.js +1 -1
  52. package/src/sap/ui/mdc/condition/FilterConverter.js +2 -2
  53. package/src/sap/ui/mdc/condition/FilterOperatorUtil.js +7 -3
  54. package/src/sap/ui/mdc/condition/Operator.js +10 -10
  55. package/src/sap/ui/mdc/condition/OperatorDynamicDateOption.js +437 -0
  56. package/src/sap/ui/mdc/condition/RangeOperator.js +2 -2
  57. package/src/sap/ui/mdc/designtime/actiontoolbar/ActionToolbar.designtime.js +1 -1
  58. package/src/sap/ui/mdc/designtime/chart/Chart.designtime.js +1 -1
  59. package/src/sap/ui/mdc/designtime/chart/ChartNew.designtime.js +18 -18
  60. package/src/sap/ui/mdc/designtime/field/Field.designtime.js +21 -0
  61. package/src/sap/ui/mdc/designtime/field/FieldBase.designtime.js +104 -0
  62. package/src/sap/ui/mdc/designtime/field/FilterField.designtime.js +22 -0
  63. package/src/sap/ui/mdc/designtime/field/MultiValueField.designtime.js +23 -0
  64. package/src/sap/ui/mdc/designtime/filterbar/FilterBar.designtime.js +1 -1
  65. package/src/sap/ui/mdc/designtime/filterbar/FilterBarBase.designtime.js +1 -1
  66. package/src/sap/ui/mdc/designtime/library.designtime.js +1 -1
  67. package/src/sap/ui/mdc/designtime/link/Panel.designtime.js +1 -1
  68. package/src/sap/ui/mdc/designtime/link/PanelItem.designtime.js +1 -1
  69. package/src/sap/ui/mdc/designtime/p13n/PersistenceProvider.designtime.js +1 -1
  70. package/src/sap/ui/mdc/designtime/table/Table.designtime.js +1 -1
  71. package/src/sap/ui/mdc/enum/ActionToolbarActionAlignment.js +1 -1
  72. package/src/sap/ui/mdc/enum/BaseType.js +1 -1
  73. package/src/sap/ui/mdc/enum/ConditionValidated.js +1 -1
  74. package/src/sap/ui/mdc/enum/ContentMode.js +1 -1
  75. package/src/sap/ui/mdc/enum/EditMode.js +1 -1
  76. package/src/sap/ui/mdc/enum/FieldDisplay.js +1 -1
  77. package/src/sap/ui/mdc/enum/OutParameterMode.js +1 -1
  78. package/src/sap/ui/mdc/enum/PersistenceMode.js +1 -1
  79. package/src/sap/ui/mdc/enum/SelectType.js +1 -1
  80. package/src/sap/ui/mdc/field/BoolFieldHelp.js +2 -2
  81. package/src/sap/ui/mdc/field/ConditionFieldHelp.js +2 -2
  82. package/src/sap/ui/mdc/field/ConditionType.js +8 -8
  83. package/src/sap/ui/mdc/field/ConditionsType.js +8 -8
  84. package/src/sap/ui/mdc/field/CustomFieldHelp.js +2 -2
  85. package/src/sap/ui/mdc/field/CustomFieldInfo.js +2 -2
  86. package/src/sap/ui/mdc/field/DefineConditionPanel.js +2 -2
  87. package/src/sap/ui/mdc/field/DynamicDateRangeConditionsType.js +311 -0
  88. package/src/sap/ui/mdc/field/FieldBase.js +55 -48
  89. package/src/sap/ui/mdc/field/FieldBaseDelegate.js +1 -1
  90. package/src/sap/ui/mdc/field/FieldBaseRenderer.js +1 -1
  91. package/src/sap/ui/mdc/field/FieldHelpBase.js +2 -2
  92. package/src/sap/ui/mdc/field/FieldHelpBaseDelegate.js +1 -1
  93. package/src/sap/ui/mdc/field/FieldInfoBase.js +2 -2
  94. package/src/sap/ui/mdc/field/FieldInput.js +2 -2
  95. package/src/sap/ui/mdc/field/FieldInputRenderUtil.js +2 -2
  96. package/src/sap/ui/mdc/field/FieldInputRenderer.js +1 -1
  97. package/src/sap/ui/mdc/field/FieldMultiInput.js +2 -2
  98. package/src/sap/ui/mdc/field/FieldMultiInputRenderer.js +1 -1
  99. package/src/sap/ui/mdc/field/FieldValueHelp.js +7 -7
  100. package/src/sap/ui/mdc/field/FieldValueHelpContentWrapperBase.js +2 -2
  101. package/src/sap/ui/mdc/field/FieldValueHelpDelegate.js +21 -1
  102. package/src/sap/ui/mdc/field/FieldValueHelpMTableWrapper.js +2 -2
  103. package/src/sap/ui/mdc/field/FieldValueHelpMdcTableWrapper.js +2 -2
  104. package/src/sap/ui/mdc/field/FieldValueHelpTableWrapperBase.js +3 -2
  105. package/src/sap/ui/mdc/field/FieldValueHelpUITableWrapper.js +2 -2
  106. package/src/sap/ui/mdc/field/InParameter.js +2 -2
  107. package/src/sap/ui/mdc/field/ListFieldHelp.js +2 -2
  108. package/src/sap/ui/mdc/field/ListFieldHelpItem.js +2 -2
  109. package/src/sap/ui/mdc/field/MultiValueFieldDelegate.js +1 -1
  110. package/src/sap/ui/mdc/field/MultiValueFieldItem.js +2 -2
  111. package/src/sap/ui/mdc/field/OutParameter.js +2 -2
  112. package/src/sap/ui/mdc/field/ValueHelpPanel.js +3 -2
  113. package/src/sap/ui/mdc/field/content/BooleanContent.js +2 -2
  114. package/src/sap/ui/mdc/field/content/ContentFactory.js +24 -22
  115. package/src/sap/ui/mdc/field/content/DateContent.js +129 -3
  116. package/src/sap/ui/mdc/field/content/DateTimeContent.js +10 -2
  117. package/src/sap/ui/mdc/field/content/DefaultContent.js +2 -2
  118. package/src/sap/ui/mdc/field/content/LinkContent.js +1 -1
  119. package/src/sap/ui/mdc/field/content/SearchContent.js +1 -1
  120. package/src/sap/ui/mdc/field/content/TimeContent.js +9 -2
  121. package/src/sap/ui/mdc/field/content/UnitContent.js +24 -5
  122. package/src/sap/ui/mdc/filterbar/FilterBarBase.js +26 -18
  123. package/src/sap/ui/mdc/filterbar/FilterBarBaseRenderer.js +1 -1
  124. package/src/sap/ui/mdc/filterbar/IFilterContainer.js +1 -1
  125. package/src/sap/ui/mdc/filterbar/PropertyHelper.js +2 -2
  126. package/src/sap/ui/mdc/filterbar/aligned/FilterContainer.js +1 -1
  127. package/src/sap/ui/mdc/filterbar/aligned/FilterItemLayout.js +1 -1
  128. package/src/sap/ui/mdc/filterbar/p13n/AdaptationFilterBar.js +2 -2
  129. package/src/sap/ui/mdc/filterbar/p13n/FilterColumnLayout.js +1 -1
  130. package/src/sap/ui/mdc/filterbar/p13n/FilterGroupLayout.js +1 -1
  131. package/src/sap/ui/mdc/filterbar/p13n/GroupContainer.js +1 -1
  132. package/src/sap/ui/mdc/filterbar/p13n/TableContainer.js +1 -1
  133. package/src/sap/ui/mdc/filterbar/vh/CollectiveSearchSelect.js +1 -1
  134. package/src/sap/ui/mdc/filterbar/vh/FilterBar.js +2 -2
  135. package/src/sap/ui/mdc/filterbar/vh/FilterContainer.js +1 -1
  136. package/src/sap/ui/mdc/filterbar/vh/GenericFilterBarDelegate.js +1 -1
  137. package/src/sap/ui/mdc/flexibility/ActionToolbar.flexibility.js +1 -1
  138. package/src/sap/ui/mdc/flexibility/ActionToolbarAction.flexibility.js +1 -1
  139. package/src/sap/ui/mdc/flexibility/AggregateFlex.js +1 -1
  140. package/src/sap/ui/mdc/flexibility/AggregationConfigFlex.js +1 -1
  141. package/src/sap/ui/mdc/flexibility/Chart.flexibility.js +2 -2
  142. package/src/sap/ui/mdc/flexibility/ChartItemFlex.js +1 -1
  143. package/src/sap/ui/mdc/flexibility/ColumnFlex.js +1 -1
  144. package/src/sap/ui/mdc/flexibility/ConditionFlex.js +1 -1
  145. package/src/sap/ui/mdc/flexibility/FilterBar.flexibility.js +2 -2
  146. package/src/sap/ui/mdc/flexibility/FilterItemFlex.js +2 -2
  147. package/src/sap/ui/mdc/flexibility/GroupFlex.js +1 -1
  148. package/src/sap/ui/mdc/flexibility/ItemBaseFlex.js +1 -1
  149. package/src/sap/ui/mdc/flexibility/Panel.flexibility.js +1 -1
  150. package/src/sap/ui/mdc/flexibility/PanelItem.flexibility.js +1 -1
  151. package/src/sap/ui/mdc/flexibility/SortFlex.js +1 -1
  152. package/src/sap/ui/mdc/flexibility/Table.flexibility.js +1 -1
  153. package/src/sap/ui/mdc/flp/FlpLinkDelegate.js +1 -1
  154. package/src/sap/ui/mdc/library.js +20 -4
  155. package/src/sap/ui/mdc/link/ContactDetails.js +2 -2
  156. package/src/sap/ui/mdc/link/ContactDetailsAddressItem.js +2 -2
  157. package/src/sap/ui/mdc/link/ContactDetailsEmailItem.js +2 -2
  158. package/src/sap/ui/mdc/link/ContactDetailsItem.js +2 -2
  159. package/src/sap/ui/mdc/link/ContactDetailsPhoneItem.js +2 -2
  160. package/src/sap/ui/mdc/link/Factory.js +2 -2
  161. package/src/sap/ui/mdc/link/FakeFlpConnector.js +2 -2
  162. package/src/sap/ui/mdc/link/LinkItem.js +2 -2
  163. package/src/sap/ui/mdc/link/Log.js +1 -1
  164. package/src/sap/ui/mdc/link/Panel.js +2 -2
  165. package/src/sap/ui/mdc/link/PanelItem.js +2 -2
  166. package/src/sap/ui/mdc/link/PanelListItem.js +2 -2
  167. package/src/sap/ui/mdc/link/SelectionDialog.js +2 -2
  168. package/src/sap/ui/mdc/link/SelectionDialogItem.js +2 -2
  169. package/src/sap/ui/mdc/link/SemanticObjectMapping.js +2 -2
  170. package/src/sap/ui/mdc/link/SemanticObjectMappingItem.js +2 -2
  171. package/src/sap/ui/mdc/link/SemanticObjectUnavailableAction.js +2 -2
  172. package/src/sap/ui/mdc/messagebundle.properties +13 -4
  173. package/src/sap/ui/mdc/messagebundle_ar.properties +16 -2
  174. package/src/sap/ui/mdc/messagebundle_bg.properties +16 -2
  175. package/src/sap/ui/mdc/messagebundle_ca.properties +16 -2
  176. package/src/sap/ui/mdc/messagebundle_cs.properties +27 -13
  177. package/src/sap/ui/mdc/messagebundle_cy.properties +16 -2
  178. package/src/sap/ui/mdc/messagebundle_da.properties +16 -2
  179. package/src/sap/ui/mdc/messagebundle_de.properties +16 -2
  180. package/src/sap/ui/mdc/messagebundle_el.properties +16 -2
  181. package/src/sap/ui/mdc/messagebundle_en.properties +14 -0
  182. package/src/sap/ui/mdc/messagebundle_en_GB.properties +14 -0
  183. package/src/sap/ui/mdc/messagebundle_en_US_sappsd.properties +14 -0
  184. package/src/sap/ui/mdc/messagebundle_en_US_saprigi.properties +3 -19
  185. package/src/sap/ui/mdc/messagebundle_en_US_saptrc.properties +14 -0
  186. package/src/sap/ui/mdc/messagebundle_es.properties +17 -3
  187. package/src/sap/ui/mdc/messagebundle_es_MX.properties +16 -2
  188. package/src/sap/ui/mdc/messagebundle_et.properties +16 -2
  189. package/src/sap/ui/mdc/messagebundle_fi.properties +16 -2
  190. package/src/sap/ui/mdc/messagebundle_fr.properties +22 -8
  191. package/src/sap/ui/mdc/messagebundle_fr_CA.properties +15 -1
  192. package/src/sap/ui/mdc/messagebundle_hi.properties +17 -3
  193. package/src/sap/ui/mdc/messagebundle_hr.properties +16 -2
  194. package/src/sap/ui/mdc/messagebundle_hu.properties +16 -2
  195. package/src/sap/ui/mdc/messagebundle_id.properties +16 -2
  196. package/src/sap/ui/mdc/messagebundle_it.properties +16 -2
  197. package/src/sap/ui/mdc/messagebundle_iw.properties +16 -2
  198. package/src/sap/ui/mdc/messagebundle_ja.properties +24 -10
  199. package/src/sap/ui/mdc/messagebundle_kk.properties +16 -2
  200. package/src/sap/ui/mdc/messagebundle_ko.properties +16 -2
  201. package/src/sap/ui/mdc/messagebundle_lt.properties +16 -2
  202. package/src/sap/ui/mdc/messagebundle_lv.properties +16 -2
  203. package/src/sap/ui/mdc/messagebundle_ms.properties +16 -2
  204. package/src/sap/ui/mdc/messagebundle_nl.properties +16 -2
  205. package/src/sap/ui/mdc/messagebundle_no.properties +16 -2
  206. package/src/sap/ui/mdc/messagebundle_pl.properties +16 -2
  207. package/src/sap/ui/mdc/messagebundle_pt.properties +16 -2
  208. package/src/sap/ui/mdc/messagebundle_pt_PT.properties +16 -2
  209. package/src/sap/ui/mdc/messagebundle_ro.properties +16 -2
  210. package/src/sap/ui/mdc/messagebundle_ru.properties +16 -2
  211. package/src/sap/ui/mdc/messagebundle_sh.properties +16 -2
  212. package/src/sap/ui/mdc/messagebundle_sk.properties +16 -2
  213. package/src/sap/ui/mdc/messagebundle_sl.properties +16 -2
  214. package/src/sap/ui/mdc/messagebundle_sv.properties +16 -2
  215. package/src/sap/ui/mdc/messagebundle_th.properties +16 -2
  216. package/src/sap/ui/mdc/messagebundle_tr.properties +16 -2
  217. package/src/sap/ui/mdc/messagebundle_uk.properties +16 -2
  218. package/src/sap/ui/mdc/messagebundle_vi.properties +16 -2
  219. package/src/sap/ui/mdc/messagebundle_zh_CN.properties +18 -4
  220. package/src/sap/ui/mdc/messagebundle_zh_TW.properties +17 -3
  221. package/src/sap/ui/mdc/mixin/AdaptationMixin.js +2 -2
  222. package/src/sap/ui/mdc/mixin/DelegateMixin.js +2 -2
  223. package/src/sap/ui/mdc/mixin/FilterIntegrationMixin.js +4 -4
  224. package/src/sap/ui/mdc/mixin/PromiseMixin.js +2 -2
  225. package/src/sap/ui/mdc/odata/TypeUtil.js +1 -1
  226. package/src/sap/ui/mdc/odata/json/FilterBarDelegate.js +1 -1
  227. package/src/sap/ui/mdc/odata/v4/ChartDelegate.js +1 -1
  228. package/src/sap/ui/mdc/odata/v4/ChartDelegateNew.js +1 -1
  229. package/src/sap/ui/mdc/odata/v4/ChartPropertyHelperNew.js +2 -2
  230. package/src/sap/ui/mdc/odata/v4/FieldBaseDelegate.js +1 -1
  231. package/src/sap/ui/mdc/odata/v4/FieldValueHelpDelegate.js +1 -1
  232. package/src/sap/ui/mdc/odata/v4/FilterBarDelegate.js +1 -1
  233. package/src/sap/ui/mdc/odata/v4/ODataMetaModelUtil.js +1 -1
  234. package/src/sap/ui/mdc/odata/v4/TableDelegate.js +66 -38
  235. package/src/sap/ui/mdc/odata/v4/TypeUtil.js +1 -1
  236. package/src/sap/ui/mdc/odata/v4/ValueHelpDelegate.js +2 -2
  237. package/src/sap/ui/mdc/odata/v4/util/DelegateUtil.js +1 -1
  238. package/src/sap/ui/mdc/odata/v4/vizChart/ChartDelegateNew.js +13 -4
  239. package/src/sap/ui/mdc/p13n/AdaptationProvider.js +1 -1
  240. package/src/sap/ui/mdc/p13n/Engine.js +33 -10
  241. package/src/sap/ui/mdc/p13n/FlexUtil.js +1 -1
  242. package/src/sap/ui/mdc/p13n/P13nBuilder.js +2 -2
  243. package/src/sap/ui/mdc/p13n/PersistenceProvider.js +22 -11
  244. package/src/sap/ui/mdc/p13n/PropertyHelper.js +2 -2
  245. package/src/sap/ui/mdc/p13n/StateUtil.js +21 -1
  246. package/src/sap/ui/mdc/p13n/UIManager.js +12 -7
  247. package/src/sap/ui/mdc/p13n/modification/FlexModificationHandler.js +1 -1
  248. package/src/sap/ui/mdc/p13n/modification/ModificationHandler.js +1 -1
  249. package/src/sap/ui/mdc/p13n/{DefaultProviderRegistry.js → modules/DefaultProviderRegistry.js} +3 -3
  250. package/src/sap/ui/mdc/p13n/modules/StateHandlerRegistry.js +86 -0
  251. package/src/sap/ui/mdc/p13n/panels/ActionToolbarPanel.js +1 -1
  252. package/src/sap/ui/mdc/p13n/panels/AdaptFiltersPanel.js +20 -4
  253. package/src/sap/ui/mdc/p13n/panels/BasePanel.js +1 -1
  254. package/src/sap/ui/mdc/p13n/panels/ChartItemPanel.js +1 -1
  255. package/src/sap/ui/mdc/p13n/panels/ChartItemPanelNew.js +41 -33
  256. package/src/sap/ui/mdc/p13n/panels/GroupView.js +1 -1
  257. package/src/sap/ui/mdc/p13n/panels/ListView.js +1 -1
  258. package/src/sap/ui/mdc/p13n/panels/SelectionPanel.js +1 -1
  259. package/src/sap/ui/mdc/p13n/panels/SortPanel.js +1 -1
  260. package/src/sap/ui/mdc/p13n/subcontroller/ActionToolbarController.js +1 -1
  261. package/src/sap/ui/mdc/p13n/subcontroller/AdaptFiltersController.js +1 -1
  262. package/src/sap/ui/mdc/p13n/subcontroller/AggregateController.js +2 -2
  263. package/src/sap/ui/mdc/p13n/subcontroller/BaseController.js +2 -2
  264. package/src/sap/ui/mdc/p13n/subcontroller/ChartItemController.js +1 -1
  265. package/src/sap/ui/mdc/p13n/subcontroller/ColumnController.js +1 -1
  266. package/src/sap/ui/mdc/p13n/subcontroller/ColumnWidthController.js +1 -1
  267. package/src/sap/ui/mdc/p13n/subcontroller/FilterController.js +1 -1
  268. package/src/sap/ui/mdc/p13n/subcontroller/GroupController.js +1 -1
  269. package/src/sap/ui/mdc/p13n/subcontroller/SortController.js +1 -1
  270. package/src/sap/ui/mdc/table/Column.js +35 -10
  271. package/src/sap/ui/mdc/table/CreationRow.js +15 -14
  272. package/src/sap/ui/mdc/table/GridTableType.js +12 -11
  273. package/src/sap/ui/mdc/table/PropertyHelper.js +22 -22
  274. package/src/sap/ui/mdc/table/ResponsiveTableType.js +24 -25
  275. package/src/sap/ui/mdc/table/RowSettings.js +9 -7
  276. package/src/sap/ui/mdc/table/TableSettings.js +1 -1
  277. package/src/sap/ui/mdc/table/TableTypeBase.js +5 -5
  278. package/src/sap/ui/mdc/table/V4AnalyticsPropertyHelper.js +16 -72
  279. package/src/sap/ui/mdc/themes/base/Chart.less +3 -0
  280. package/src/sap/ui/mdc/themes/base/library.source.less +2 -1
  281. package/src/sap/ui/mdc/ui/Container.js +3 -3
  282. package/src/sap/ui/mdc/ui/ContainerItem.js +3 -3
  283. package/src/sap/ui/mdc/util/Common.js +1 -1
  284. package/src/sap/ui/mdc/util/DateUtil.js +1 -1
  285. package/src/sap/ui/mdc/util/FilterUtil.js +1 -1
  286. package/src/sap/ui/mdc/util/FormatUtil.js +1 -1
  287. package/src/sap/ui/mdc/util/IdentifierUtil.js +1 -1
  288. package/src/sap/ui/mdc/util/PromiseCache.js +2 -2
  289. package/src/sap/ui/mdc/util/PropertyHelper.js +112 -320
  290. package/src/sap/ui/mdc/util/TypeUtil.js +1 -1
  291. package/src/sap/ui/mdc/util/loadModules.js +1 -1
  292. package/src/sap/ui/mdc/valuehelp/Dialog.js +3 -2
  293. package/src/sap/ui/mdc/valuehelp/Popover.js +14 -3
  294. package/src/sap/ui/mdc/valuehelp/base/Container.js +33 -2
  295. package/src/sap/ui/mdc/valuehelp/base/Content.js +36 -6
  296. package/src/sap/ui/mdc/valuehelp/base/DialogTab.js +2 -2
  297. package/src/sap/ui/mdc/valuehelp/base/FilterableListContent.js +43 -16
  298. package/src/sap/ui/mdc/valuehelp/base/ListContent.js +2 -2
  299. package/src/sap/ui/mdc/valuehelp/content/Bool.js +2 -2
  300. package/src/sap/ui/mdc/valuehelp/content/Conditions.js +26 -32
  301. package/src/sap/ui/mdc/valuehelp/content/FixedList.js +2 -2
  302. package/src/sap/ui/mdc/valuehelp/content/MDCTable.js +9 -4
  303. package/src/sap/ui/mdc/valuehelp/content/MTable.js +16 -4
  304. package/test/sap/ui/mdc/testutils/opa/p13n/Actions.js +102 -96
  305. package/src/sap/ui/mdc/p13n/panels/GroupPanel.js +0 -111
  306. package/src/sap/ui/mdc/p13n/panels/QueryPanel.js +0 -322
  307. package/src/sap/ui/mdc/p13n/panels/SortQueryPanel.js +0 -133
  308. package/src/sap/ui/mdc/p13n/panels/Wrapper.js +0 -203
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * OpenUI5
3
- * (c) Copyright 2009-2021 SAP SE or an SAP affiliate company.
3
+ * (c) Copyright 2009-2022 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
  sap.ui.define([
@@ -271,28 +271,36 @@ sap.ui.define([
271
271
  return this._bHideOperator;
272
272
  };
273
273
 
274
- ContentFactory.prototype.getConditionType = function(bSkipConditionTypeGeneration) {
275
- if (!bSkipConditionTypeGeneration && !this._oConditionType) {
276
- var oFormatOptions = this.getField()._getFormatOptions();
277
- this._oConditionType = new ConditionType(oFormatOptions);
278
- this._oConditionType._bCreatedByField = true;
274
+ function _getCondType(sCondType, CondType, fnGetFormatOptions, bSkipTypeGeneration) {
275
+
276
+ if (!bSkipTypeGeneration) {
277
+ if (this[sCondType] && this[sCondType].getMetadata().getName() !== CondType.getMetadata().getName()) {
278
+ // ConditionsType changed
279
+ this[sCondType].destroy();
280
+ this[sCondType] = undefined;
281
+ }
282
+
283
+ if (!this[sCondType]) {
284
+ var oFormatOptions = fnGetFormatOptions();
285
+ this[sCondType] = new CondType(oFormatOptions);
286
+ this[sCondType]._bCreatedByField = true;
287
+ }
279
288
  }
289
+ return this[sCondType];
290
+
291
+ }
280
292
 
281
- return this._oConditionType;
293
+ ContentFactory.prototype.getConditionType = function(bSkipConditionTypeGeneration) {
294
+ return _getCondType.call(this, "_oConditionType", ConditionType, this.getField()._getFormatOptions.bind(this.getField()), bSkipConditionTypeGeneration);
282
295
  };
283
296
 
284
297
  ContentFactory.prototype.setConditionType = function(oConditionType) {
285
298
  this._oConditionType = oConditionType;
286
299
  };
287
300
 
288
- ContentFactory.prototype.getConditionsType = function(bSkipConditionsTypeGeneration) {
289
- if (!bSkipConditionsTypeGeneration && !this._oConditionsType) {
290
- var oFormatOptions = this.getField()._getFormatOptions();
291
- this._oConditionsType = new ConditionsType(oFormatOptions);
292
- this._oConditionsType._bCreatedByField = true;
293
- }
294
-
295
- return this._oConditionsType;
301
+ ContentFactory.prototype.getConditionsType = function (bSkipConditionsTypeGeneration, CustomConditionsType) {
302
+ var UsedConditionType = CustomConditionsType || ConditionsType; // CustomConditionsType used for DynamicDateRange
303
+ return _getCondType.call(this, "_oConditionsType", UsedConditionType, this.getField()._getFormatOptions.bind(this.getField()), bSkipConditionsTypeGeneration);
296
304
  };
297
305
 
298
306
  ContentFactory.prototype.setConditionsType = function(oConditionsType) {
@@ -300,13 +308,7 @@ sap.ui.define([
300
308
  };
301
309
 
302
310
  ContentFactory.prototype.getUnitConditionsType = function(bSkipConditionsTypeGeneration) {
303
- if (!bSkipConditionsTypeGeneration && !this._oUnitConditionsType) {
304
- var oFormatOptions = this.getField()._getUnitFormatOptions();
305
- this._oUnitConditionsType = new ConditionsType(oFormatOptions);
306
- this._oUnitConditionsType._bCreatedByField = true;
307
- }
308
-
309
- return this._oUnitConditionsType;
311
+ return _getCondType.call(this, "_oUnitConditionsType", ConditionsType, this.getField()._getUnitFormatOptions.bind(this.getField()), bSkipConditionsTypeGeneration);
310
312
  };
311
313
 
312
314
  ContentFactory.prototype.getContentConditionTypes = function() {
@@ -1,17 +1,28 @@
1
1
  /*
2
2
  * ! OpenUI5
3
- * (c) Copyright 2009-2021 SAP SE or an SAP affiliate company.
3
+ * (c) Copyright 2009-2022 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
  sap.ui.define([
7
7
  "sap/ui/mdc/field/content/DefaultContent",
8
8
  "sap/ui/mdc/enum/BaseType",
9
9
  "sap/ui/mdc/util/DateUtil",
10
+ "sap/ui/mdc/condition/FilterOperatorUtil",
11
+ "sap/ui/mdc/condition/Operator",
10
12
  "sap/ui/core/library"
11
- ], function(DefaultContent, BaseType, DateUtil, coreLibrary) {
13
+ ], function(
14
+ DefaultContent,
15
+ BaseType,
16
+ DateUtil,
17
+ FilterOperatorUtil,
18
+ Operator,
19
+ coreLibrary) {
12
20
  "use strict";
13
21
 
14
22
  var CalendarType = coreLibrary.CalendarType;
23
+ var StandardDynamicDateRangeKeys;
24
+ var DynamicDateUtil;
25
+ var DynamicDateFormat;
15
26
 
16
27
  /**
17
28
  * Object-based definition of the date content type that is used in the {@link sap.ui.mdc.field.content.ContentFactory}.
@@ -29,14 +40,20 @@ sap.ui.define([
29
40
  getEditMultiLine: function() {
30
41
  return [null];
31
42
  },
43
+ getEdit: function() {
44
+ return ["sap/m/DynamicDateRange", "sap/ui/mdc/condition/OperatorDynamicDateOption", "sap/ui/mdc/field/DynamicDateRangeConditionsType", "sap/m/StandardDynamicDateRangeKeys", "sap/m/DynamicDateUtil", "sap/m/DynamicDateFormat"];
45
+ },
32
46
  getEditOperator: function() {
33
47
  return {
34
48
  "EQ": { name: "sap/m/DatePicker", create: this._createDatePickerControl }, // TODO: how to check custom operators
35
49
  "BT": { name: "sap/m/DateRangeSelection", create: this._createDateRangePickerControl }
36
50
  };
37
51
  },
52
+ getEditForHelp: function() {
53
+ return DefaultContent.getEdit.apply(this, arguments);
54
+ },
38
55
  getUseDefaultFieldHelp: function() {
39
- return { name: "defineConditions", oneOperatorSingle: false, oneOperatorMulti: true };
56
+ return { name: "defineConditions", oneOperatorSingle: false, oneOperatorMulti: true, single: false, multi: true };
40
57
  },
41
58
  createEditMultiLine: function() {
42
59
  throw new Error("sap.ui.mdc.field.content.DateContent - createEditMultiLine not defined!");
@@ -155,6 +172,115 @@ sap.ui.define([
155
172
  oContentFactory.setCalendarType(oFormatOptions.calendarType);
156
173
  }
157
174
  }
175
+ },
176
+ createEdit: function(oContentFactory, aControlClasses, sId) {
177
+
178
+ var DynamicDateRange = aControlClasses[0];
179
+ var OperatorDynamicDateOption = aControlClasses[1];
180
+ var DynamicDateRangeConditionsType = aControlClasses[2];
181
+
182
+ if (!StandardDynamicDateRangeKeys || !DynamicDateUtil || !DynamicDateFormat) {
183
+ StandardDynamicDateRangeKeys = aControlClasses[3];
184
+ DynamicDateUtil = aControlClasses[4];
185
+ DynamicDateFormat = aControlClasses[5];
186
+ }
187
+
188
+ var oConditionsType = oContentFactory.getConditionsType(false, DynamicDateRangeConditionsType);
189
+ var vOptions;
190
+ if (oContentFactory.getField().getMetadata().hasProperty("operators")) { // TODO: Field case needed?
191
+ var fnGetDateRangeOptions = function (aOperators) {
192
+ return this._getDateRangeOptions(aOperators, oContentFactory, OperatorDynamicDateOption);
193
+ }.bind(this);
194
+ vOptions = {path: "$field>/operators", formatter: fnGetDateRangeOptions};
195
+ } else {
196
+ vOptions = this._getDateRangeOptions(undefined, oContentFactory, OperatorDynamicDateOption);
197
+ }
198
+
199
+ var oDynamicDateRange = new DynamicDateRange(sId, {
200
+ value: { path: "$field>/conditions", type: oConditionsType },
201
+ formatter: this._getDateRangeFormatter(oContentFactory),
202
+ placeholder: "{$field>/placeholder}",
203
+ // textAlign: "{$field>/textAlign}", // this is currently not supported by the DynamicDateRange
204
+ // textDirection: "{$field>/textDirection}", // this is currently not supported by the DynamicDateRange
205
+ required: "{$field>/required}",
206
+ editable: { path: "$field>/editMode", formatter: oContentFactory.getMetadata()._oClass._getEditable },
207
+ enabled: { path: "$field>/editMode", formatter: oContentFactory.getMetadata()._oClass._getEnabled },
208
+ valueState: "{$field>/valueState}",
209
+ valueStateText: "{$field>/valueStateText}",
210
+ width: "100%",
211
+ tooltip: "{$field>/tooltip}",
212
+ // enableGroupHeaders: false, // disable the grouping of the options
213
+ options: vOptions,
214
+ change: oContentFactory.getHandleContentChange()
215
+ });
216
+
217
+ oContentFactory.setBoundProperty("value");
218
+ oContentFactory.setAriaLabelledBy(DynamicDateRange);
219
+
220
+ return [oDynamicDateRange];
221
+
222
+ },
223
+ createEditForHelp: function(oContentFactory, aControlClasses, sId) {
224
+ return DefaultContent.createEdit.apply(this, arguments);
225
+ },
226
+
227
+ _getDateRangeOptions: function(aOperators, oContentFactory, OperatorDynamicDateOption) {
228
+ if (!aOperators || aOperators.length === 0) {
229
+ aOperators = oContentFactory.getField()._getOperators(); // to use default operators if none given
230
+ }
231
+ var aOptions = [];
232
+
233
+ for (var i = 0; i < aOperators.length; i++) {
234
+ var sOperator = aOperators[i];
235
+ var sOption = this._getDateRangeOption(sOperator, oContentFactory, OperatorDynamicDateOption);
236
+ if (sOption) {
237
+ aOptions.push(sOption);
238
+ }
239
+ }
240
+
241
+ return aOptions;
242
+ },
243
+
244
+ _getDateRangeOption: function(sOperator, oContentFactory, OperatorDynamicDateOption) {
245
+ var oOperator = FilterOperatorUtil.getOperator(sOperator);
246
+ var sOption = oOperator.name;
247
+ if (StandardDynamicDateRangeKeys.indexOf(sOption) === -1 ) {
248
+ sOption = oOperator.alias || sOption;
249
+ }
250
+
251
+ if (StandardDynamicDateRangeKeys.indexOf(sOption) >= 0 ) {
252
+ return sOption; // use standard option
253
+ } else
254
+ // use OperatorDynamicDateOption
255
+ if (oOperator) {
256
+ if (!DynamicDateUtil.getOption(sOption)) {
257
+ var oType = oContentFactory.retrieveDataType(); // TODO: do we need to create data type right now?
258
+ var aValueTypes = [];
259
+
260
+ for (var j = 0; j < oOperator.valueTypes.length; j++) {
261
+ if (oOperator.valueTypes[j] && oOperator.valueTypes[j] !== Operator.ValueType.Static) {
262
+ aValueTypes.push("custom"); // provide value as it is to use type to format and parse // TODO: only if custom control?
263
+ }
264
+ }
265
+
266
+ DynamicDateUtil.addOption(new OperatorDynamicDateOption({key: sOption, operator: oOperator, type: oType, valueTypes: aValueTypes})); // TODO: use name as key?
267
+ }
268
+ return sOption;
269
+ }
270
+ },
271
+
272
+ _getDateRangeFormatter: function(oContentFactory) {
273
+ var oType = oContentFactory.retrieveDataType(); // TODO: do we need to create data type right now?
274
+ var oFormatOptions = oType.getFormatOptions();
275
+ var oDateRangeFormatOptions = {};
276
+
277
+ if (oFormatOptions.style) {
278
+ oDateRangeFormatOptions.date = {style: oFormatOptions.style};
279
+ } else if (oFormatOptions.pattern) {
280
+ oDateRangeFormatOptions.date = {pattern: oFormatOptions.pattern};
281
+ }
282
+
283
+ return DynamicDateFormat.getInstance(oDateRangeFormatOptions);
158
284
  }
159
285
  });
160
286
 
@@ -1,11 +1,12 @@
1
1
  /*
2
2
  * ! OpenUI5
3
- * (c) Copyright 2009-2021 SAP SE or an SAP affiliate company.
3
+ * (c) Copyright 2009-2022 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
  sap.ui.define([
7
+ "sap/ui/mdc/field/content/DefaultContent",
7
8
  "sap/ui/mdc/field/content/DateContent"
8
- ], function(DateContent) {
9
+ ], function(DefaultContent, DateContent) {
9
10
  "use strict";
10
11
 
11
12
  /**
@@ -26,9 +27,16 @@ sap.ui.define([
26
27
  "EQ": { name: "sap/m/DateTimePicker", create: this._createDatePickerControl } // as same API as DatePicker
27
28
  };
28
29
  },
30
+ getEdit: function() {
31
+ return DefaultContent.getEdit.apply(this, arguments);
32
+ },
29
33
  createEditMultiLine: function() {
30
34
  throw new Error("sap.ui.mdc.field.content.DateTimeContent - createEditMultiLine not defined!");
35
+ },
36
+ createEdit: function(oContentFactory, aControlClasses, sId) {
37
+ return DefaultContent.createEdit.apply(this, arguments);
31
38
  }
39
+
32
40
  });
33
41
 
34
42
  return DateTimeContent;
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  * ! OpenUI5
3
- * (c) Copyright 2009-2021 SAP SE or an SAP affiliate company.
3
+ * (c) Copyright 2009-2022 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
  sap.ui.define([
@@ -55,7 +55,7 @@ sap.ui.define([
55
55
  return true;
56
56
  },
57
57
  getUseDefaultFieldHelp: function() {
58
- return { name: "defineConditions", oneOperatorSingle: false, oneOperatorMulti: false };
58
+ return { name: "defineConditions", oneOperatorSingle: false, oneOperatorMulti: false, single: true, multi: true };
59
59
  },
60
60
  /**
61
61
  * Determines which controls to return for a given {@link sap.ui.mdc.enum.ContentMode}.
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  * ! OpenUI5
3
- * (c) Copyright 2009-2021 SAP SE or an SAP affiliate company.
3
+ * (c) Copyright 2009-2022 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
  sap.ui.define([
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  * ! OpenUI5
3
- * (c) Copyright 2009-2021 SAP SE or an SAP affiliate company.
3
+ * (c) Copyright 2009-2022 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
  sap.ui.define([
@@ -1,11 +1,12 @@
1
1
  /*
2
2
  * ! OpenUI5
3
- * (c) Copyright 2009-2021 SAP SE or an SAP affiliate company.
3
+ * (c) Copyright 2009-2022 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
  sap.ui.define([
7
+ "sap/ui/mdc/field/content/DefaultContent",
7
8
  "sap/ui/mdc/field/content/DateContent"
8
- ], function(DateContent) {
9
+ ], function(DefaultContent, DateContent) {
9
10
  "use strict";
10
11
 
11
12
  /**
@@ -26,8 +27,14 @@ sap.ui.define([
26
27
  "EQ": { name: "sap/m/TimePicker", create: this._createDatePickerControl } // as same API as DatePicker
27
28
  };
28
29
  },
30
+ getEdit: function() {
31
+ return DefaultContent.getEdit.apply(this, arguments);
32
+ },
29
33
  createEditMultiLine: function() {
30
34
  throw new Error("sap.ui.mdc.field.content.TimeContent - createEditMultiLine not defined!");
35
+ },
36
+ createEdit: function(oContentFactory, aControlClasses, sId) {
37
+ return DefaultContent.createEdit.apply(this, arguments);
31
38
  }
32
39
  });
33
40
 
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  * ! OpenUI5
3
- * (c) Copyright 2009-2021 SAP SE or an SAP affiliate company.
3
+ * (c) Copyright 2009-2022 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
  sap.ui.define([
@@ -26,8 +26,11 @@ sap.ui.define([
26
26
  * @MDC_PUBLIC_CANDIDATE
27
27
  */
28
28
  var UnitContent = Object.assign({}, DefaultContent, {
29
+ getEdit: function() {
30
+ return ["sap/ui/mdc/field/FieldInput", "sap/ui/core/InvisibleText"];
31
+ },
29
32
  getEditMultiValue: function() {
30
- return ["sap/ui/mdc/field/FieldMultiInput", "sap/ui/mdc/field/FieldInput", "sap/m/Token"];
33
+ return ["sap/ui/mdc/field/FieldMultiInput", "sap/ui/mdc/field/FieldInput", "sap/m/Token", "sap/ui/core/InvisibleText"];
31
34
  },
32
35
  getEditMultiLine: function() {
33
36
  return [null];
@@ -38,9 +41,11 @@ sap.ui.define([
38
41
  createEdit: function(oContentFactory, aControlClasses, sId) {
39
42
  oContentFactory.setIsMeasure(true); // FieldHelp only on unit field
40
43
  var Input = aControlClasses[0];
44
+ var InvisibleText = aControlClasses[1];
41
45
  var oConditionsType = oContentFactory.getConditionsType();
42
46
  this._adjustDataTypeForUnit(oContentFactory);
43
47
 
48
+ var sInvisibleTextId = InvisibleText.getStaticId("sap.ui.mdc", "field.NUMBER");
44
49
  var aControls = [];
45
50
  var oInput1 = new Input(sId, {
46
51
  value: { path: "$field>/conditions", type: oConditionsType },
@@ -58,13 +63,14 @@ sap.ui.define([
58
63
  tooltip: "{$field>/tooltip}",
59
64
  autocomplete: false,
60
65
  fieldGroupIds: [oContentFactory.getField().getId()], // use FieldGroup to fire change only if focus leaved complete Field
66
+ ariaDescribedBy: [sInvisibleTextId],
61
67
  change: oContentFactory.getHandleContentChange(),
62
68
  liveChange: oContentFactory.getHandleContentLiveChange()
63
69
  });
64
70
  oInput1._setPreferUserInteraction(true);
65
71
  oContentFactory.setAriaLabelledBy(oInput1);
66
72
  aControls.push(oInput1);
67
- aControls = this._addUnitControl(oContentFactory, aControls, sId, Input);
73
+ aControls = this._addUnitControl(oContentFactory, aControls, sId, Input, InvisibleText);
68
74
 
69
75
  oContentFactory.setBoundProperty("value");
70
76
 
@@ -75,6 +81,7 @@ sap.ui.define([
75
81
  var MultiInput = aControlClasses[0];
76
82
  var Token = aControlClasses[2]; // is loaded by MultiInput
77
83
  var Input = aControlClasses[1];
84
+ var InvisibleText = aControlClasses[3];
78
85
  var oConditionType = oContentFactory.getConditionType();
79
86
  this._adjustDataTypeForUnit(oContentFactory);
80
87
 
@@ -98,6 +105,7 @@ sap.ui.define([
98
105
  }
99
106
  });
100
107
 
108
+ var sInvisibleTextId = InvisibleText.getStaticId("sap.ui.mdc", "field.NUMBER");
101
109
  var oMultiInput = new MultiInput(sId, {
102
110
  placeholder: "{$field>/placeholder}",
103
111
  textAlign: "{$field>/textAlign}",
@@ -111,6 +119,7 @@ sap.ui.define([
111
119
  width: "70%",
112
120
  tooltip: "{$field>/tooltip}",
113
121
  fieldGroupIds: [oContentFactory.getField().getId()], // use FieldGroup to fire change only if focus leaved complete Field
122
+ ariaDescribedBy: [sInvisibleTextId],
114
123
  tokens: { path: "$field>/conditions", template: oToken, filters: [oFilter] },
115
124
  dependents: [oToken], // to destroy it if MultiInput is destroyed
116
125
  change: oContentFactory.getHandleContentChange(),
@@ -120,7 +129,7 @@ sap.ui.define([
120
129
  oMultiInput._setPreferUserInteraction(true);
121
130
  oContentFactory.setAriaLabelledBy(oMultiInput);
122
131
  aControls.push(oMultiInput);
123
- aControls = this._addUnitControl(oContentFactory, aControls, sId, Input);
132
+ aControls = this._addUnitControl(oContentFactory, aControls, sId, Input, InvisibleText);
124
133
 
125
134
  oContentFactory.setBoundProperty("value");
126
135
 
@@ -129,7 +138,7 @@ sap.ui.define([
129
138
  createEditMultiLine: function() {
130
139
  throw new Error("sap.ui.mdc.field.content.UnitContent - createEditMultiLine not defined!");
131
140
  },
132
- _addUnitControl: function(oContentFactory, aControls, sId, Input) {
141
+ _addUnitControl: function(oContentFactory, aControls, sId, Input, InvisibleText) {
133
142
  var oUnitConditionsType = oContentFactory.getUnitConditionsType();
134
143
 
135
144
  if (oContentFactory.getField().getEditMode() === EditMode.EditableDisplay) {
@@ -137,6 +146,15 @@ sap.ui.define([
137
146
  aControls[0].setWidth("100%");
138
147
  aControls[0].setFieldWidth("70%");
139
148
  } else {
149
+ var sInvisibleTextId;
150
+ var oType = oContentFactory.getUnitOriginalType();
151
+ var sName = oType && oType.getMetadata().getName();
152
+ if (sName && sName.indexOf("Currency") >= 0) { // TODO: better solution
153
+ sInvisibleTextId = InvisibleText.getStaticId("sap.ui.mdc", "field.CURRENCY");
154
+ } else {
155
+ sInvisibleTextId = InvisibleText.getStaticId("sap.ui.mdc", "field.UNIT");
156
+ }
157
+
140
158
  var oInput = new Input(sId + "-unit", {
141
159
  value: { path: "$field>/conditions", type: oUnitConditionsType },
142
160
  placeholder: "{$field>/placeholder}",
@@ -154,6 +172,7 @@ sap.ui.define([
154
172
  tooltip: "{$field>/tooltip}",
155
173
  autocomplete: false,
156
174
  fieldGroupIds: [oContentFactory.getField().getId()], // use FieldGroup to fire change only if focus leaved complete Field
175
+ ariaDescribedBy: [sInvisibleTextId],
157
176
  change: oContentFactory.getHandleContentChange(),
158
177
  liveChange: oContentFactory.getHandleContentLiveChange(),
159
178
  valueHelpRequest: oContentFactory.getHandleValueHelpRequest()
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  * ! OpenUI5
3
- * (c) Copyright 2009-2021 SAP SE or an SAP affiliate company.
3
+ * (c) Copyright 2009-2022 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
  sap.ui.define([
@@ -60,7 +60,7 @@ sap.ui.define([
60
60
  * @class The <code>FilterBarBase</code> control is used as a faceless base class for common functionality of any MDC FilterBar derivation.
61
61
  * @extends sap.ui.mdc.Control
62
62
  * @author SAP SE
63
- * @version 1.96.1
63
+ * @version 1.97.1
64
64
  * @constructor
65
65
  * @private
66
66
  * @ui5-restricted sap.ui.mdc
@@ -784,9 +784,7 @@ sap.ui.define([
784
784
  this._bSearchTriggered = true;
785
785
  return Promise.resolve();
786
786
  }
787
- return this.validate().then(function(){
788
- this.fireSearch();
789
- }.bind(this));
787
+ return this.validate();
790
788
  };
791
789
 
792
790
  /**
@@ -799,7 +797,9 @@ sap.ui.define([
799
797
  * @returns {Promise} Returns a Promise which resolves after the validation of erroneous fields has been propagated.
800
798
  *
801
799
  */
802
- FilterBarBase.prototype.validate = function() {
800
+ FilterBarBase.prototype.validate = function(bSuppressSearch) {
801
+
802
+ var bFireSearch = !bSuppressSearch;
803
803
 
804
804
  return this.initialized().then(function() {
805
805
  if (!this._oValidationPromise) {
@@ -810,7 +810,7 @@ sap.ui.define([
810
810
  }.bind(this));
811
811
 
812
812
  var fDelayedFunction = function() {
813
- this._validate();
813
+ this._validate(bFireSearch);
814
814
  this._oValidationPromise = null;
815
815
  };
816
816
  setTimeout(fDelayedFunction.bind(this), 0);
@@ -958,7 +958,7 @@ sap.ui.define([
958
958
  return oFilterField;
959
959
  };
960
960
 
961
- FilterBarBase.prototype._handleAsyncValidation = function() {
961
+ FilterBarBase.prototype._handleAsyncValidation = function(bFireSearch) {
962
962
  if (this._aFIChanges && (this._aFIChanges.length > 0)) {
963
963
 
964
964
  var aNamePromisesArray = this._aFIChanges.slice();
@@ -977,22 +977,22 @@ sap.ui.define([
977
977
  oFF.setValueState(ValueState.None); //valid existing value -> clear missing required error
978
978
  }
979
979
  }, this);
980
- this._validate();
980
+ this._validate(bFireSearch);
981
981
  }.bind(this), function(aConditionsArray) {
982
- this._validate();
982
+ this._validate(bFireSearch);
983
983
  }.bind(this));
984
984
  }
985
985
  };
986
986
 
987
- FilterBarBase.prototype._waitForChangeAppliance = function() {
987
+ FilterBarBase.prototype._waitForChangeAppliance = function(bFireSearch) {
988
988
 
989
989
  var aChangePromises = this._aCollectedChangePromises.slice();
990
990
  this._aCollectedChangePromises = null;
991
991
 
992
992
  Promise.all(aChangePromises).then(function(aConditionsArray) {
993
- this._validate();
993
+ this._validate(bFireSearch);
994
994
  }.bind(this), function(aConditionsArray) {
995
- this._validate();
995
+ this._validate(bFireSearch);
996
996
  }.bind(this));
997
997
  };
998
998
 
@@ -1000,9 +1000,15 @@ sap.ui.define([
1000
1000
  * Executes the search.
1001
1001
  * @private
1002
1002
  */
1003
- FilterBarBase.prototype._validate = function() {
1003
+ FilterBarBase.prototype._validate = function(bFireSearch) {
1004
1004
  var sErrorMessage, vRetErrorState;
1005
1005
 
1006
+ var fnCheckAndFireSearch = function() {
1007
+ if (bFireSearch) {
1008
+ this.fireSearch();
1009
+ }
1010
+ }.bind(this);
1011
+
1006
1012
  var fnCleanup = function() {
1007
1013
  this._fRejectedSearchPromise = null;
1008
1014
  this._fResolvedSearchPromise = null;
@@ -1017,22 +1023,24 @@ sap.ui.define([
1017
1023
  vRetErrorState = this._checkFilters();
1018
1024
 
1019
1025
  if (vRetErrorState === ErrorState.AsyncValidation) {
1020
- this._handleAsyncValidation();
1026
+ this._handleAsyncValidation(bFireSearch);
1021
1027
  return;
1022
1028
  }
1023
1029
 
1024
1030
  if (this._aCollectedChangePromises && (this._aCollectedChangePromises.length > 0)) {
1025
- this._waitForChangeAppliance();
1031
+ this._waitForChangeAppliance(bFireSearch);
1026
1032
  return;
1027
1033
  }
1028
1034
 
1029
1035
  if (vRetErrorState === ErrorState.NoError) {
1030
1036
  if (this._isChangeApplying()) {
1031
1037
  this._oFlexPromise.then(function() {
1032
- this._fResolvedSearchPromise();
1033
- fnCleanup();
1038
+ fnCheckAndFireSearch();
1039
+ this._fResolvedSearchPromise();
1040
+ fnCleanup();
1034
1041
  }.bind(this));
1035
1042
  } else {
1043
+ fnCheckAndFireSearch();
1036
1044
  this._fResolvedSearchPromise();
1037
1045
  fnCleanup();
1038
1046
  }
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * OpenUI5
3
- * (c) Copyright 2009-2021 SAP SE or an SAP affiliate company.
3
+ * (c) Copyright 2009-2022 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
 
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  * ! OpenUI5
3
- * (c) Copyright 2009-2021 SAP SE or an SAP affiliate company.
3
+ * (c) Copyright 2009-2022 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
 
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  * ! OpenUI5
3
- * (c) Copyright 2009-2021 SAP SE or an SAP affiliate company.
3
+ * (c) Copyright 2009-2022 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
 
@@ -33,7 +33,7 @@ sap.ui.define([
33
33
  * @extends sap.ui.mdc.util.PropertyHelper
34
34
  *
35
35
  * @author SAP SE
36
- * @version 1.96.1
36
+ * @version 1.97.1
37
37
  *
38
38
  * @private
39
39
  * @experimental
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  * ! OpenUI5
3
- * (c) Copyright 2009-2021 SAP SE or an SAP affiliate company.
3
+ * (c) Copyright 2009-2022 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
 
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  * ! OpenUI5
3
- * (c) Copyright 2009-2021 SAP SE or an SAP affiliate company.
3
+ * (c) Copyright 2009-2022 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
 
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  * ! OpenUI5
3
- * (c) Copyright 2009-2021 SAP SE or an SAP affiliate company.
3
+ * (c) Copyright 2009-2022 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
  sap.ui.define([
@@ -18,7 +18,7 @@ sap.ui.define([
18
18
  *
19
19
  * @extends sap.ui.mdc.filterbar.FilterBarBase
20
20
  * @author SAP SE
21
- * @version 1.96.1
21
+ * @version 1.97.1
22
22
  * @constructor
23
23
  * @private
24
24
  * @since 1.80.0
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  * ! OpenUI5
3
- * (c) Copyright 2009-2021 SAP SE or an SAP affiliate company.
3
+ * (c) Copyright 2009-2022 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
 
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  * ! OpenUI5
3
- * (c) Copyright 2009-2021 SAP SE or an SAP affiliate company.
3
+ * (c) Copyright 2009-2022 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6