@openui5/sap.ui.mdc 1.96.5 → 1.99.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 (282) hide show
  1. package/.reuse/dep5 +26 -31
  2. package/THIRDPARTY.txt +15 -21
  3. package/package.json +4 -4
  4. package/src/sap/ui/mdc/.library +1 -1
  5. package/src/sap/ui/mdc/ActionToolbar.js +7 -9
  6. package/src/sap/ui/mdc/AggregationBaseDelegate.js +2 -2
  7. package/src/sap/ui/mdc/BaseDelegate.js +1 -1
  8. package/src/sap/ui/mdc/Chart.js +1100 -1796
  9. package/src/sap/ui/mdc/ChartDelegate.js +429 -270
  10. package/src/sap/ui/mdc/ChartRenderer.js +73 -77
  11. package/src/sap/ui/mdc/Control.js +1 -1
  12. package/src/sap/ui/mdc/Element.js +1 -1
  13. package/src/sap/ui/mdc/Field.js +3 -2
  14. package/src/sap/ui/mdc/FilterBar.js +3 -2
  15. package/src/sap/ui/mdc/FilterField.js +25 -8
  16. package/src/sap/ui/mdc/Link.js +23 -4
  17. package/src/sap/ui/mdc/LinkDelegate.js +3 -3
  18. package/src/sap/ui/mdc/MultiValueField.js +21 -6
  19. package/src/sap/ui/mdc/Table.js +204 -161
  20. package/src/sap/ui/mdc/TableDelegate.js +47 -17
  21. package/src/sap/ui/mdc/ValueHelp.js +51 -15
  22. package/src/sap/ui/mdc/ValueHelpDelegate.js +20 -0
  23. package/src/sap/ui/mdc/actiontoolbar/ActionToolbarAction.js +2 -2
  24. package/src/sap/ui/mdc/{chartNew/ChartSelectionDetailsNew.js → chart/ChartSelectionDetails.js} +8 -8
  25. package/src/sap/ui/mdc/{chartNew/ChartToolbarNew.js → chart/ChartToolbar.js} +49 -13
  26. package/src/sap/ui/mdc/chart/ChartTypeButton.js +55 -54
  27. package/src/sap/ui/mdc/{chartNew/DrillBreadcrumbsNew.js → chart/DrillBreadcrumbs.js} +3 -3
  28. package/src/sap/ui/mdc/chart/DrillStackHandler.js +38 -249
  29. package/src/sap/ui/mdc/chart/Item.js +62 -92
  30. package/src/sap/ui/mdc/{chartNew/PropertyHelperNew.js → chart/PropertyHelper.js} +3 -3
  31. package/src/sap/ui/mdc/chart/SelectionDetailsActions.js +17 -21
  32. package/src/sap/ui/mdc/condition/Condition.js +1 -1
  33. package/src/sap/ui/mdc/condition/ConditionConverter.js +1 -1
  34. package/src/sap/ui/mdc/condition/ConditionModel.js +1 -1
  35. package/src/sap/ui/mdc/condition/FilterConverter.js +1 -1
  36. package/src/sap/ui/mdc/condition/FilterOperatorUtil.js +261 -44
  37. package/src/sap/ui/mdc/condition/Operator.js +9 -9
  38. package/src/sap/ui/mdc/condition/OperatorDynamicDateOption.js +437 -0
  39. package/src/sap/ui/mdc/condition/RangeOperator.js +1 -1
  40. package/src/sap/ui/mdc/designtime/chart/Chart.designtime.js +80 -5
  41. package/src/sap/ui/mdc/designtime/field/Field.designtime.js +97 -0
  42. package/src/sap/ui/mdc/designtime/field/FieldBase.designtime.js +104 -0
  43. package/src/sap/ui/mdc/designtime/field/FilterField.designtime.js +22 -0
  44. package/src/sap/ui/mdc/designtime/field/MultiValueField.designtime.js +23 -0
  45. package/src/sap/ui/mdc/designtime/filterbar/FilterBarBase.designtime.js +3 -0
  46. package/src/sap/ui/mdc/designtime/table/Table.designtime.js +60 -20
  47. package/src/sap/ui/mdc/field/BoolFieldHelp.js +1 -1
  48. package/src/sap/ui/mdc/field/ConditionFieldHelp.js +1 -1
  49. package/src/sap/ui/mdc/field/ConditionType.js +9 -9
  50. package/src/sap/ui/mdc/field/ConditionsType.js +7 -7
  51. package/src/sap/ui/mdc/field/CustomFieldHelp.js +1 -1
  52. package/src/sap/ui/mdc/field/CustomFieldInfo.js +1 -1
  53. package/src/sap/ui/mdc/field/DefineConditionPanel.js +75 -27
  54. package/src/sap/ui/mdc/field/DynamicDateRangeConditionsType.js +311 -0
  55. package/src/sap/ui/mdc/field/FieldBase.js +85 -52
  56. package/src/sap/ui/mdc/field/FieldBaseRenderer.js +0 -3
  57. package/src/sap/ui/mdc/field/FieldHelpBase.js +2 -2
  58. package/src/sap/ui/mdc/field/FieldInfoBase.js +23 -10
  59. package/src/sap/ui/mdc/field/FieldInput.js +1 -1
  60. package/src/sap/ui/mdc/field/FieldInputRenderUtil.js +1 -1
  61. package/src/sap/ui/mdc/field/FieldMultiInput.js +1 -1
  62. package/src/sap/ui/mdc/field/FieldValueHelp.js +7 -7
  63. package/src/sap/ui/mdc/field/FieldValueHelpContentWrapperBase.js +1 -1
  64. package/src/sap/ui/mdc/field/FieldValueHelpDelegate.js +20 -0
  65. package/src/sap/ui/mdc/field/FieldValueHelpMTableWrapper.js +1 -1
  66. package/src/sap/ui/mdc/field/FieldValueHelpMdcTableWrapper.js +2 -2
  67. package/src/sap/ui/mdc/field/FieldValueHelpTableWrapperBase.js +7 -3
  68. package/src/sap/ui/mdc/field/FieldValueHelpUITableWrapper.js +1 -1
  69. package/src/sap/ui/mdc/field/InParameter.js +1 -1
  70. package/src/sap/ui/mdc/field/ListFieldHelp.js +10 -2
  71. package/src/sap/ui/mdc/field/ListFieldHelpItem.js +1 -1
  72. package/src/sap/ui/mdc/field/MultiValueFieldItem.js +1 -1
  73. package/src/sap/ui/mdc/field/OutParameter.js +1 -1
  74. package/src/sap/ui/mdc/field/TokenDisplay.js +70 -0
  75. package/src/sap/ui/mdc/field/TokenDisplayRenderer.js +24 -0
  76. package/src/sap/ui/mdc/field/TokenizerDisplay.js +80 -0
  77. package/src/sap/ui/mdc/field/TokenizerDisplayRenderer.js +69 -0
  78. package/src/sap/ui/mdc/field/ValueHelpPanel.js +2 -1
  79. package/src/sap/ui/mdc/field/content/BooleanContent.js +1 -1
  80. package/src/sap/ui/mdc/field/content/ContentFactory.js +28 -26
  81. package/src/sap/ui/mdc/field/content/DateContent.js +128 -2
  82. package/src/sap/ui/mdc/field/content/DateTimeContent.js +9 -1
  83. package/src/sap/ui/mdc/field/content/DefaultContent.js +36 -14
  84. package/src/sap/ui/mdc/field/content/LinkContent.js +1 -1
  85. package/src/sap/ui/mdc/field/content/TimeContent.js +8 -1
  86. package/src/sap/ui/mdc/field/content/UnitContent.js +23 -4
  87. package/src/sap/ui/mdc/filterbar/FilterBarBase.js +359 -142
  88. package/src/sap/ui/mdc/filterbar/FilterBarBaseRenderer.js +1 -1
  89. package/src/sap/ui/mdc/filterbar/PropertyHelper.js +1 -1
  90. package/src/sap/ui/mdc/filterbar/p13n/AdaptationFilterBar.js +8 -2
  91. package/src/sap/ui/mdc/filterbar/vh/CollectiveSearchSelect.js +3 -1
  92. package/src/sap/ui/mdc/filterbar/vh/FilterBar.js +7 -1
  93. package/src/sap/ui/mdc/filterbar/vh/GenericFilterBarDelegate.js +6 -6
  94. package/src/sap/ui/mdc/flexibility/AggregateFlex.js +2 -2
  95. package/src/sap/ui/mdc/flexibility/Chart.flexibility.js +6 -4
  96. package/src/sap/ui/mdc/flexibility/ColumnFlex.js +1 -1
  97. package/src/sap/ui/mdc/flexibility/FilterBar.flexibility.js +4 -3
  98. package/src/sap/ui/mdc/flexibility/FilterItemFlex.js +1 -1
  99. package/src/sap/ui/mdc/flexibility/GroupFlex.js +1 -1
  100. package/src/sap/ui/mdc/flexibility/Panel.flexibility.js +9 -3
  101. package/src/sap/ui/mdc/flexibility/PropertyInfoFlex.js +110 -0
  102. package/src/sap/ui/mdc/flexibility/SortFlex.js +2 -2
  103. package/src/sap/ui/mdc/flp/FlpLinkDelegate.js +6 -6
  104. package/src/sap/ui/mdc/library.js +62 -43
  105. package/src/sap/ui/mdc/link/ContactDetails.js +1 -1
  106. package/src/sap/ui/mdc/link/ContactDetailsAddressItem.js +1 -1
  107. package/src/sap/ui/mdc/link/ContactDetailsEmailItem.js +1 -1
  108. package/src/sap/ui/mdc/link/ContactDetailsItem.js +1 -1
  109. package/src/sap/ui/mdc/link/ContactDetailsPhoneItem.js +1 -1
  110. package/src/sap/ui/mdc/link/Factory.js +2 -2
  111. package/src/sap/ui/mdc/link/FakeFlpConnector.js +1 -1
  112. package/src/sap/ui/mdc/link/LinkItem.js +1 -1
  113. package/src/sap/ui/mdc/link/Log.js +1 -1
  114. package/src/sap/ui/mdc/link/Panel.js +140 -177
  115. package/src/sap/ui/mdc/link/PanelItem.js +1 -1
  116. package/src/sap/ui/mdc/link/PanelListItem.js +1 -1
  117. package/src/sap/ui/mdc/link/SemanticObjectMapping.js +1 -1
  118. package/src/sap/ui/mdc/link/SemanticObjectMappingItem.js +1 -1
  119. package/src/sap/ui/mdc/link/SemanticObjectUnavailableAction.js +1 -1
  120. package/src/sap/ui/mdc/messagebundle.properties +68 -5
  121. package/src/sap/ui/mdc/messagebundle_ar.properties +47 -6
  122. package/src/sap/ui/mdc/messagebundle_bg.properties +61 -20
  123. package/src/sap/ui/mdc/messagebundle_ca.properties +45 -4
  124. package/src/sap/ui/mdc/messagebundle_cs.properties +60 -19
  125. package/src/sap/ui/mdc/messagebundle_cy.properties +45 -4
  126. package/src/sap/ui/mdc/messagebundle_da.properties +52 -11
  127. package/src/sap/ui/mdc/messagebundle_de.properties +45 -4
  128. package/src/sap/ui/mdc/messagebundle_el.properties +46 -5
  129. package/src/sap/ui/mdc/messagebundle_en.properties +45 -4
  130. package/src/sap/ui/mdc/messagebundle_en_GB.properties +45 -4
  131. package/src/sap/ui/mdc/messagebundle_en_US_sappsd.properties +51 -2
  132. package/src/sap/ui/mdc/messagebundle_en_US_saprigi.properties +45 -4
  133. package/src/sap/ui/mdc/messagebundle_en_US_saptrc.properties +51 -2
  134. package/src/sap/ui/mdc/messagebundle_es.properties +46 -5
  135. package/src/sap/ui/mdc/messagebundle_es_MX.properties +59 -18
  136. package/src/sap/ui/mdc/messagebundle_et.properties +45 -4
  137. package/src/sap/ui/mdc/messagebundle_fi.properties +51 -10
  138. package/src/sap/ui/mdc/messagebundle_fr.properties +50 -9
  139. package/src/sap/ui/mdc/messagebundle_fr_CA.properties +45 -4
  140. package/src/sap/ui/mdc/messagebundle_hi.properties +46 -5
  141. package/src/sap/ui/mdc/messagebundle_hr.properties +45 -4
  142. package/src/sap/ui/mdc/messagebundle_hu.properties +45 -4
  143. package/src/sap/ui/mdc/messagebundle_id.properties +45 -4
  144. package/src/sap/ui/mdc/messagebundle_it.properties +61 -20
  145. package/src/sap/ui/mdc/messagebundle_iw.properties +46 -5
  146. package/src/sap/ui/mdc/messagebundle_ja.properties +46 -5
  147. package/src/sap/ui/mdc/messagebundle_kk.properties +45 -4
  148. package/src/sap/ui/mdc/messagebundle_ko.properties +46 -5
  149. package/src/sap/ui/mdc/messagebundle_lt.properties +45 -4
  150. package/src/sap/ui/mdc/messagebundle_lv.properties +49 -8
  151. package/src/sap/ui/mdc/messagebundle_ms.properties +45 -4
  152. package/src/sap/ui/mdc/messagebundle_nl.properties +49 -8
  153. package/src/sap/ui/mdc/messagebundle_no.properties +53 -12
  154. package/src/sap/ui/mdc/messagebundle_pl.properties +46 -5
  155. package/src/sap/ui/mdc/messagebundle_pt.properties +52 -11
  156. package/src/sap/ui/mdc/messagebundle_pt_PT.properties +45 -4
  157. package/src/sap/ui/mdc/messagebundle_ro.properties +45 -4
  158. package/src/sap/ui/mdc/messagebundle_ru.properties +45 -4
  159. package/src/sap/ui/mdc/messagebundle_sh.properties +45 -4
  160. package/src/sap/ui/mdc/messagebundle_sk.properties +45 -4
  161. package/src/sap/ui/mdc/messagebundle_sl.properties +45 -4
  162. package/src/sap/ui/mdc/messagebundle_sv.properties +47 -6
  163. package/src/sap/ui/mdc/messagebundle_th.properties +48 -7
  164. package/src/sap/ui/mdc/messagebundle_tr.properties +45 -4
  165. package/src/sap/ui/mdc/messagebundle_uk.properties +49 -8
  166. package/src/sap/ui/mdc/messagebundle_vi.properties +45 -4
  167. package/src/sap/ui/mdc/messagebundle_zh_CN.properties +46 -5
  168. package/src/sap/ui/mdc/messagebundle_zh_TW.properties +45 -4
  169. package/src/sap/ui/mdc/mixin/AdaptationMixin.js +19 -5
  170. package/src/sap/ui/mdc/mixin/DelegateMixin.js +2 -2
  171. package/src/sap/ui/mdc/mixin/FilterIntegrationMixin.js +16 -11
  172. package/src/sap/ui/mdc/mixin/PromiseMixin.js +2 -3
  173. package/src/sap/ui/mdc/odata/TypeUtil.js +1 -1
  174. package/src/sap/ui/mdc/odata/v4/ChartDelegate.js +29 -483
  175. package/src/sap/ui/mdc/odata/v4/{ChartPropertyHelperNew.js → ChartPropertyHelper.js} +5 -5
  176. package/src/sap/ui/mdc/odata/v4/TableDelegate.js +160 -116
  177. package/src/sap/ui/mdc/odata/v4/TypeUtil.js +1 -1
  178. package/src/sap/ui/mdc/odata/v4/ValueHelpDelegate.js +1 -1
  179. package/src/sap/ui/mdc/odata/v4/util/DelegateUtil.js +1 -1
  180. package/src/sap/ui/mdc/odata/v4/vizChart/{ChartDelegateNew.js → ChartDelegate.js} +215 -116
  181. package/src/sap/ui/mdc/p13n/Engine.js +61 -20
  182. package/src/sap/ui/mdc/p13n/FlexUtil.js +11 -118
  183. package/src/sap/ui/mdc/p13n/P13nBuilder.js +8 -8
  184. package/src/sap/ui/mdc/p13n/PersistenceProvider.js +21 -10
  185. package/src/sap/ui/mdc/p13n/PropertyHelper.js +1 -1
  186. package/src/sap/ui/mdc/p13n/StateUtil.js +40 -6
  187. package/src/sap/ui/mdc/p13n/UIManager.js +15 -12
  188. package/src/sap/ui/mdc/p13n/modification/FlexModificationHandler.js +4 -1
  189. package/src/sap/ui/mdc/p13n/modification/ModificationHandler.js +9 -6
  190. package/src/sap/ui/mdc/p13n/{DefaultProviderRegistry.js → modules/DefaultProviderRegistry.js} +2 -2
  191. package/src/sap/ui/mdc/p13n/modules/StateHandlerRegistry.js +86 -0
  192. package/src/sap/ui/mdc/p13n/panels/AdaptFiltersPanel.js +19 -3
  193. package/src/sap/ui/mdc/p13n/panels/ChartItemPanel.js +1092 -48
  194. package/src/sap/ui/mdc/p13n/panels/LinkSelectionPanel.js +72 -0
  195. package/src/sap/ui/mdc/p13n/panels/ListView.js +6 -2
  196. package/src/sap/ui/mdc/p13n/subcontroller/AdaptFiltersController.js +6 -5
  197. package/src/sap/ui/mdc/p13n/subcontroller/AggregateController.js +1 -1
  198. package/src/sap/ui/mdc/p13n/subcontroller/BaseController.js +156 -11
  199. package/src/sap/ui/mdc/p13n/subcontroller/ChartItemController.js +15 -26
  200. package/src/sap/ui/mdc/p13n/subcontroller/ColumnController.js +6 -5
  201. package/src/sap/ui/mdc/p13n/subcontroller/FilterController.js +14 -7
  202. package/src/sap/ui/mdc/p13n/subcontroller/LinkPanelController.js +173 -0
  203. package/src/sap/ui/mdc/p13n/subcontroller/SortController.js +10 -17
  204. package/src/sap/ui/mdc/table/Column.js +35 -10
  205. package/src/sap/ui/mdc/table/CreationRow.js +14 -13
  206. package/src/sap/ui/mdc/table/GridTableType.js +13 -13
  207. package/src/sap/ui/mdc/table/PropertyHelper.js +64 -27
  208. package/src/sap/ui/mdc/table/ResponsiveTableType.js +26 -29
  209. package/src/sap/ui/mdc/table/RowSettings.js +7 -5
  210. package/src/sap/ui/mdc/table/TableTypeBase.js +6 -6
  211. package/src/sap/ui/mdc/table/V4AnalyticsPropertyHelper.js +15 -71
  212. package/src/sap/ui/mdc/themes/base/Chart.less +3 -0
  213. package/src/sap/ui/mdc/themes/base/FieldBase.less +0 -5
  214. package/src/sap/ui/mdc/themes/base/TokenDisplay.less +89 -0
  215. package/src/sap/ui/mdc/themes/base/TokenizerDisplay.less +90 -0
  216. package/src/sap/ui/mdc/themes/base/ValueHelpDialog.less +15 -4
  217. package/src/sap/ui/mdc/themes/base/library.source.less +3 -0
  218. package/src/sap/ui/mdc/ui/Container.js +2 -2
  219. package/src/sap/ui/mdc/ui/ContainerItem.js +2 -2
  220. package/src/sap/ui/mdc/util/Common.js +1 -1
  221. package/src/sap/ui/mdc/util/DateUtil.js +1 -1
  222. package/src/sap/ui/mdc/util/FilterUtil.js +1 -1
  223. package/src/sap/ui/mdc/util/FormatUtil.js +3 -3
  224. package/src/sap/ui/mdc/util/IdentifierUtil.js +6 -6
  225. package/src/sap/ui/mdc/util/PromiseCache.js +1 -1
  226. package/src/sap/ui/mdc/util/PropertyHelper.js +148 -325
  227. package/src/sap/ui/mdc/util/TypeUtil.js +5 -4
  228. package/src/sap/ui/mdc/valuehelp/Dialog.js +12 -8
  229. package/src/sap/ui/mdc/valuehelp/Popover.js +14 -2
  230. package/src/sap/ui/mdc/valuehelp/base/Container.js +33 -1
  231. package/src/sap/ui/mdc/valuehelp/base/Content.js +36 -5
  232. package/src/sap/ui/mdc/valuehelp/base/DialogTab.js +2 -1
  233. package/src/sap/ui/mdc/valuehelp/base/FilterableListContent.js +43 -15
  234. package/src/sap/ui/mdc/valuehelp/base/ListContent.js +2 -1
  235. package/src/sap/ui/mdc/valuehelp/content/Bool.js +2 -1
  236. package/src/sap/ui/mdc/valuehelp/content/Conditions.js +28 -32
  237. package/src/sap/ui/mdc/valuehelp/content/FixedList.js +11 -5
  238. package/src/sap/ui/mdc/valuehelp/content/MDCTable.js +50 -10
  239. package/src/sap/ui/mdc/valuehelp/content/MTable.js +57 -26
  240. package/test/sap/ui/mdc/testutils/opa/TestLibrary.js +3 -1
  241. package/test/sap/ui/mdc/testutils/opa/actions/OpenContextMenu.js +3 -3
  242. package/test/sap/ui/mdc/testutils/opa/{chartNew → chart}/ActionsBase.js +3 -3
  243. package/test/sap/ui/mdc/testutils/opa/{chartNew → chart}/ActionsViz.js +0 -0
  244. package/test/sap/ui/mdc/testutils/opa/{chartNew → chart}/AssertionsBase.js +1 -1
  245. package/test/sap/ui/mdc/testutils/opa/{chartNew → chart}/AssertionsViz.js +0 -0
  246. package/test/sap/ui/mdc/testutils/opa/{chartNew → chart}/ChartNew.js +0 -0
  247. package/test/sap/ui/mdc/testutils/opa/chart/TestObjects.js +289 -0
  248. package/test/sap/ui/mdc/testutils/opa/chartNew/TestObjects.js +7 -7
  249. package/test/sap/ui/mdc/testutils/opa/filterbar/TestObjects.js +9 -9
  250. package/test/sap/ui/mdc/testutils/opa/filterbar/Util.js +12 -11
  251. package/test/sap/ui/mdc/testutils/opa/link/Actions.js +85 -0
  252. package/test/sap/ui/mdc/testutils/opa/link/Assertions.js +79 -0
  253. package/test/sap/ui/mdc/testutils/opa/link/TestObjects.js +112 -0
  254. package/test/sap/ui/mdc/testutils/opa/link/waitForLink.js +50 -0
  255. package/test/sap/ui/mdc/testutils/opa/p13n/Actions.js +362 -233
  256. package/test/sap/ui/mdc/testutils/opa/p13n/Util.js +27 -26
  257. package/test/sap/ui/mdc/testutils/opa/valueHelp/Actions.js +54 -0
  258. package/test/sap/ui/mdc/testutils/opa/valueHelp/Assertions.js +5 -0
  259. package/test/sap/ui/mdc/testutils/opa/valueHelp/TestObjects.js +40 -0
  260. package/test/sap/ui/mdc/testutils/opa/valueHelp/Util.js +28 -0
  261. package/src/sap/ui/mdc/ChartDelegateNew.js +0 -395
  262. package/src/sap/ui/mdc/ChartNew.js +0 -1114
  263. package/src/sap/ui/mdc/ChartNewRenderer.js +0 -91
  264. package/src/sap/ui/mdc/chart/DimensionItem.js +0 -281
  265. package/src/sap/ui/mdc/chart/MeasureItem.js +0 -318
  266. package/src/sap/ui/mdc/chart/MetadataDelegate.js +0 -31
  267. package/src/sap/ui/mdc/chart/SelectionHandler.js +0 -127
  268. package/src/sap/ui/mdc/chart/ToolbarHandler.js +0 -328
  269. package/src/sap/ui/mdc/chartNew/ChartTypeButtonNew.js +0 -295
  270. package/src/sap/ui/mdc/chartNew/DrillStackHandlerNew.js +0 -212
  271. package/src/sap/ui/mdc/chartNew/ItemNew.js +0 -72
  272. package/src/sap/ui/mdc/chartNew/SelectionDetailsActionsNew.js +0 -34
  273. package/src/sap/ui/mdc/designtime/chart/ChartNew.designtime.js +0 -91
  274. package/src/sap/ui/mdc/link/SelectionDialog.control.xml +0 -66
  275. package/src/sap/ui/mdc/link/SelectionDialog.js +0 -213
  276. package/src/sap/ui/mdc/link/SelectionDialogItem.js +0 -86
  277. package/src/sap/ui/mdc/odata/v4/ChartDelegateNew.js +0 -35
  278. package/src/sap/ui/mdc/p13n/panels/ChartItemPanelNew.js +0 -1171
  279. package/src/sap/ui/mdc/p13n/panels/GroupPanel.js +0 -111
  280. package/src/sap/ui/mdc/p13n/panels/QueryPanel.js +0 -322
  281. package/src/sap/ui/mdc/p13n/panels/SortQueryPanel.js +0 -133
  282. package/src/sap/ui/mdc/p13n/panels/Wrapper.js +0 -203
@@ -0,0 +1,311 @@
1
+ /*!
2
+ * OpenUI5
3
+ * (c) Copyright 2009-2022 SAP SE or an SAP affiliate company.
4
+ * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
+ */
6
+
7
+ // Provides the base implementation for all model implementations
8
+ sap.ui.define([
9
+ 'sap/ui/mdc/field/ConditionsType',
10
+ 'sap/ui/mdc/condition/FilterOperatorUtil',
11
+ 'sap/ui/mdc/condition/Operator',
12
+ 'sap/ui/mdc/condition/Condition',
13
+ 'sap/ui/mdc/enum/ConditionValidated',
14
+ 'sap/ui/mdc/enum/BaseType',
15
+ "sap/ui/mdc/util/DateUtil",
16
+ 'sap/ui/model/SimpleType',
17
+ 'sap/ui/model/FormatException',
18
+ 'sap/ui/model/ParseException',
19
+ 'sap/ui/model/ValidateException',
20
+ 'sap/m/DynamicDate',
21
+ 'sap/m/library'
22
+ ],
23
+ function(
24
+ ConditionsType,
25
+ FilterOperatorUtil,
26
+ Operator,
27
+ Condition,
28
+ ConditionValidated,
29
+ BaseType,
30
+ DateUtil,
31
+ SimpleType,
32
+ FormatException,
33
+ ParseException,
34
+ ValidateException,
35
+ DynamicDateType,
36
+ mLibrary
37
+ ) {
38
+ "use strict";
39
+
40
+ /**
41
+ * Constructor for a <code>ConditionsType</code> to be used in <code>DynamicDateRange</code> control.
42
+ *
43
+ * @class
44
+ * This class represents a type to map an array of conditions used in a {@link sap.ui.mdc.FilterField FilterField} control to a value of a {@link sap.m.DynamicDateRange DynamicDateRange} control.
45
+ *
46
+ * @extends sap.ui.mdc.field.ConditionsType
47
+ *
48
+ * @author SAP SE
49
+ * @version 1.99.0
50
+ *
51
+ * @since 1.96.0
52
+ * @private
53
+ * @ui5-restricted sap.ui.mdc.field.FieldBase, sap.fe
54
+ * @MDC_PUBLIC_CANDIDATE
55
+ *
56
+ * @param {object} [oFormatOptions] Formatting options
57
+ * @param {sap.ui.model.Type} [oFormatOptions.valueType] Type of the value of the condition (used for formatting and parsing)
58
+ * @param {string[]} [oFormatOptions.operators] Possible operators to be used in the condition
59
+ * @param {sap.ui.mdc.enum.FieldDisplay} [oFormatOptions.display] DisplayFormat used to visualize a value
60
+ * @param {string} [oFormatOptions.fieldHelpID] ID of the field help to determine the key and description // TODO: async request????
61
+ * @param {boolean} [oFormatOptions.hideOperator] If set, only the value of the condition is shown, but no operator //TODO
62
+ * @param {int} [oFormatOptions.maxConditions] Maximum number of allowed conditions
63
+ * @param {sap.ui.model.Context} [oFormatOptions.bindingContext] <code>BindingContext</code> of field. Used to get a key or description from the value help using in/out parameters. (In a table, the value help might be connected to a different row)
64
+ * @param {sap.ui.model.Type} [oFormatOptions.originalDateType] Type used on field, for example, for date types; a different type is used internally to have different <code>formatOptions</code>
65
+ * @param {boolean} [oFormatOptions.isUnit] If set, the type is used for the unit part of a field
66
+ * @param {function} [oFormatOptions.getConditions] Function to get the existing conditions of the field. Only used if <code>isUnit</code> is set. TODO: better solution
67
+ * @param {function} [oFormatOptions.asyncParsing] Callback function to tell the <code>Field</code> the parsing is asynchronous.
68
+ * @param {object} [oFormatOptions.navigateCondition] Condition of keyboard navigation. If this is filled, no real parsing is needed as the condition has already been determined and is just returned
69
+ * @param {object} [oFormatOptions.delegate] Field delegate to handle model-specific logic
70
+ * @param {object} [oFormatOptions.payload] Payload of the delegate
71
+ * @param {boolean} [oFormatOptions.preventGetDescription] If set, description is not read by <code>formatValue</code> as it is known that no description exists or might be set later
72
+ * @param {sap.ui.mdc.condition.ConditionModel} [oFormatOptions.conditionModel] <code>ConditionModel</code>, if bound to one
73
+ * @param {string} [oFormatOptions.conditionModelName] Name of the <code>ConditionModel</code>, if bound to one
74
+ * @param {string} [oFormatOptions.defaultOperatorName] Name of the default <code>Operator</code>
75
+ * @param {object} [oConstraints] Value constraints
76
+ * @alias sap.ui.mdc.field.DynamicDateRangeConditionsType
77
+ */
78
+ var DynamicDateRangeConditionsType = ConditionsType.extend("sap.ui.mdc.field.DynamicDateRangeConditionsType", /** @lends sap.ui.mdc.field.DynamicDateRangeConditionsType.prototype */ {
79
+
80
+ constructor : function (oFormatOptions, oConstraints) {
81
+ SimpleType.apply(this, arguments);
82
+ this.sName = "ConditionsDateRange";
83
+ this._oResourceBundle = sap.ui.getCore().getLibraryResourceBundle("sap.ui.mdc");
84
+ //TODO: specialConditionDataRangeType if used for tokens in MultiValue FilterField
85
+ }
86
+
87
+ });
88
+
89
+ DynamicDateRangeConditionsType.prototype.destroy = function() {
90
+
91
+ SimpleType.prototype.destroy.apply(this, arguments);
92
+
93
+ this._bDestroyed = true;
94
+
95
+ };
96
+
97
+ DynamicDateRangeConditionsType.prototype.formatValue = function(aConditions, sInternalType) {
98
+
99
+ if (aConditions == undefined || aConditions == null || this._bDestroyed) { // if destroyed do nothing
100
+ return null;
101
+ }
102
+
103
+ if (!Array.isArray(aConditions)) {
104
+ throw new FormatException("No valid conditions provided");
105
+ }
106
+
107
+ var iMaxConditions = _getMaxConditions.call(this);
108
+ var vResult;
109
+
110
+ if (iMaxConditions !== 1) {
111
+ throw new FormatException("MaxConditions must be 1");
112
+ }
113
+
114
+ if (aConditions.length === 1) {
115
+ var oCondition = aConditions[0];
116
+
117
+ var oOperator = FilterOperatorUtil.getOperator(oCondition.operator);
118
+ if (!oCondition.operator || !oOperator) {
119
+ throw new FormatException("No valid condition provided, Operator wrong.");
120
+ }
121
+
122
+ var aValues = [];
123
+ var sOption = oOperator.name;
124
+ if (!mLibrary.StandardDynamicDateRangeKeys[sOption]) {
125
+ sOption = oOperator.alias || sOption;
126
+ }
127
+
128
+ for (var i = 0; i < oOperator.valueTypes.length; i++) {
129
+ if (mLibrary.StandardDynamicDateRangeKeys[sOption] && oOperator.valueTypes[i] === Operator.ValueType.Self) { // only for standard operators
130
+ aValues.push(_dateToTimestamp.call(this, oCondition.values[i]));
131
+ } else if (oOperator.valueTypes[i] && oOperator.valueTypes[i] !== Operator.ValueType.Static) {
132
+ aValues.push(oCondition.values[i]);
133
+ }
134
+ }
135
+
136
+ var oDynamicDateType = _getDynamicDateType.call(this, oOperator);
137
+ vResult = oDynamicDateType.formatValue({operator: sOption, values: aValues}, sInternalType);
138
+ }
139
+
140
+ return vResult;
141
+
142
+ };
143
+
144
+ function _getDynamicDateType(oOperator) {
145
+
146
+ if (!this._oDynamicDateType) {
147
+ var oDynamicDateFormatOptions = {
148
+ date: {
149
+ source: {pattern: "timestamp"}
150
+ },
151
+ "int": {}
152
+ };
153
+
154
+ this._oDynamicDateType = new DynamicDateType(oDynamicDateFormatOptions);
155
+ }
156
+
157
+ return this._oDynamicDateType;
158
+ }
159
+
160
+ function _dateToTimestamp(vValue) {
161
+
162
+ var oType = _getInternalType.call(this);
163
+ var sDate = oType.formatValue(vValue, "string");
164
+ var aDate = sDate.split("-");
165
+ var iYear = parseInt(aDate[0]);
166
+ var iMonth = parseInt(aDate[1]) - 1;
167
+ var iDate = parseInt(aDate[2]);
168
+ var iTimeStamp = new Date(iYear, iMonth, iDate).getTime();
169
+
170
+ return iTimeStamp;
171
+
172
+ }
173
+
174
+ function _timestampToDate(iTimeStamp) {
175
+
176
+ var oType = _getInternalType.call(this);
177
+ var oDate = new Date(iTimeStamp);
178
+ var iYear = oDate.getFullYear();
179
+ var iMonth = oDate.getMonth() + 1;
180
+ var iDate = oDate.getDate();
181
+ var sDate = iYear.toString() + "-" + ((iMonth < 10) ? "0" : "") + iMonth.toString() + "-" + ((iDate < 10) ? "0" : "") + iDate.toString();
182
+ var vDate = oType.parseValue(sDate, "string");
183
+
184
+ return vDate;
185
+
186
+ }
187
+
188
+ function _getInternalType() {
189
+
190
+ if (!this._oInternalType) {
191
+ var oType = _getValueType.call(this);
192
+ this._oInternalType = DateUtil.createInternalType(oType, "yyyy-MM-dd");
193
+ }
194
+
195
+ return this._oInternalType;
196
+
197
+ }
198
+
199
+ DynamicDateRangeConditionsType.prototype.parseValue = function(oValue, sInternalType) {
200
+
201
+ if (this._bDestroyed) { // if destroyed do nothing
202
+ return null;
203
+ }
204
+
205
+ if (_getMaxConditions.call(this) !== 1) {
206
+ throw new ParseException("Only one condition supported for parsing");
207
+ }
208
+
209
+ var aOperators = _getOperators.call(this);
210
+ var aConditions = [];
211
+ if (oValue && oValue.operator) {
212
+ if (oValue.operator === "PARSEERROR") {
213
+ throw new ParseException(oValue.values[0]);
214
+ }
215
+
216
+ var sOperator = oValue.operator; // sOperator is the Option name
217
+ var oOperator = FilterOperatorUtil.getOperator(sOperator); // getOperator will search via name and alias
218
+ sOperator = oOperator.name; // map it back to the real Operator name
219
+
220
+ if (oOperator) {
221
+ var oDynamicDateType = _getDynamicDateType.call(this, oOperator);
222
+ var vResult = oDynamicDateType.parseValue(oValue, sInternalType);
223
+ var aValues = [];
224
+
225
+ for (var i = 0; i < oOperator.valueTypes.length; i++) {
226
+ if (mLibrary.StandardDynamicDateRangeKeys[oValue.operator] && oOperator.valueTypes[i] === Operator.ValueType.Self) { // only for standard operators
227
+ aValues.push(_timestampToDate.call(this, vResult.values[i]));
228
+ } else if (oOperator.valueTypes[i] && oOperator.valueTypes[i] !== Operator.ValueType.Static) {
229
+ aValues.push(vResult.values[i]);
230
+ }
231
+ }
232
+
233
+ var oCondition = Condition.createCondition(oOperator.name, aValues, undefined, undefined, ConditionValidated.NotValidated);
234
+ FilterOperatorUtil.updateConditionValues(oCondition);
235
+ FilterOperatorUtil.checkConditionsEmpty(oCondition, aOperators);
236
+ aConditions.push(oCondition);
237
+ }
238
+ }
239
+
240
+ return aConditions;
241
+
242
+ };
243
+
244
+ DynamicDateRangeConditionsType.prototype.validateValue = function(aConditions) {
245
+
246
+ if (aConditions === undefined || aConditions === null || this._bDestroyed) { // if destroyed do nothing
247
+ return;
248
+ }
249
+
250
+ if (!Array.isArray(aConditions)) {
251
+ throw new ValidateException("No valid conditions provided");
252
+ }
253
+
254
+ var oType = _getValueType.call(this);
255
+ var aOperators = _getOperators.call(this);
256
+
257
+ for (var i = 0; i < aConditions.length; i++) {
258
+ var oCondition = aConditions[i];
259
+ if (typeof oCondition !== "object" || !oCondition.operator || !oCondition.values ||
260
+ !Array.isArray(oCondition.values)) {
261
+ throw new ValidateException(this._oResourceBundle.getText("field.VALUE_NOT_VALID"));
262
+ }
263
+
264
+ var oOperator = FilterOperatorUtil.getOperator(oCondition.operator, aOperators);
265
+
266
+ if (!oOperator) {
267
+ throw new ValidateException("No valid condition provided, Operator wrong.");
268
+ }
269
+
270
+ oOperator.validate(oCondition.values, oType);
271
+ }
272
+
273
+ };
274
+
275
+ function _getMaxConditions() {
276
+
277
+ var iMaxConditions = 1;
278
+
279
+ if (this.oFormatOptions.hasOwnProperty("maxConditions")) {
280
+ iMaxConditions = this.oFormatOptions.maxConditions;
281
+ }
282
+
283
+ return iMaxConditions;
284
+
285
+ }
286
+
287
+ function _getValueType() {
288
+
289
+ var oType = this.oFormatOptions.valueType;
290
+ if (!oType) {
291
+ throw new Error("Type missing");
292
+ }
293
+
294
+ return oType;
295
+
296
+ }
297
+
298
+ function _getOperators() {
299
+
300
+ var aOperators = this.oFormatOptions.operators;
301
+ if (!aOperators || aOperators.length === 0) {
302
+ aOperators = FilterOperatorUtil.getOperatorsForType(BaseType.Date); // TODO: check for type
303
+ }
304
+
305
+ return aOperators;
306
+
307
+ }
308
+
309
+ return DynamicDateRangeConditionsType;
310
+
311
+ });
@@ -86,7 +86,7 @@ sap.ui.define([
86
86
  * @implements sap.ui.core.IFormContent, sap.ui.core.ISemanticFormContent
87
87
  *
88
88
  * @author SAP SE
89
- * @version 1.96.5
89
+ * @version 1.99.0
90
90
  *
91
91
  * @constructor
92
92
  * @alias sap.ui.mdc.field.FieldBase
@@ -100,6 +100,7 @@ sap.ui.define([
100
100
  var FieldBase = Control.extend("sap.ui.mdc.field.FieldBase", /* @lends sap.ui.mdc.field.FieldBase.prototype */ {
101
101
  metadata: {
102
102
  interfaces: ["sap.ui.core.IFormContent", "sap.ui.core.ISemanticFormContent"],
103
+ designtime: "sap/ui/mdc/designtime/field/FieldBase.designtime",
103
104
  library: "sap.ui.mdc",
104
105
  properties: {
105
106
  /**
@@ -226,6 +227,8 @@ sap.ui.define([
226
227
  *
227
228
  * This property only affects types that support multiple lines.
228
229
  *
230
+ * This property is only used for single-value fields.
231
+ *
229
232
  * <b>Note</b> If the data type used doesn't support multiple lines an error is thrown.
230
233
  */
231
234
  multipleLines: {
@@ -658,15 +661,21 @@ sap.ui.define([
658
661
  return this;
659
662
  };
660
663
 
661
- FieldBase.prototype.setProperty = function(sPropertyName, oValue, bSuppressInvalidate) {
664
+ FieldBase.prototype.setProperty = function(sPropertyName, vValue, bSuppressInvalidate) {
662
665
 
663
666
  // most properties are rendered from content controls. Only invalidate whole Field if needed
664
- // (multipleLines mostly changed together with editMode -> update once om rendering)
665
- if (sPropertyName !== "width" && sPropertyName !== "editMode" && sPropertyName !== "multipleLines" && sPropertyName !== "showEmptyIndicator") {
667
+ // (multipleLines mostly changed together with editMode -> update once on rendering)
668
+ if (sPropertyName === "editMode") {
669
+ // only invalidate if switched between edit and display, not for redonly or disabled
670
+ var sOld = this.getEditMode();
671
+ if (sOld !== EditMode.Display && sOld !== EditMode.EditableDisplay && vValue !== EditMode.Display && vValue !== EditMode.EditableDisplay) {
672
+ bSuppressInvalidate = true;
673
+ }
674
+ } else if (sPropertyName !== "width" && sPropertyName !== "multipleLines" && sPropertyName !== "showEmptyIndicator") {
666
675
  bSuppressInvalidate = true;
667
676
  }
668
677
 
669
- return Control.prototype.setProperty.apply(this, [sPropertyName, oValue, bSuppressInvalidate]);
678
+ return Control.prototype.setProperty.apply(this, [sPropertyName, vValue, bSuppressInvalidate]);
670
679
 
671
680
  };
672
681
 
@@ -725,30 +734,34 @@ sap.ui.define([
725
734
 
726
735
  FieldBase.prototype.onsapup = function(oEvent) {
727
736
 
728
- var oFieldHelp = _getFieldHelp.call(this);
729
- var oSource = oEvent.srcControl;
737
+ if (this.getEditMode() === EditMode.Editable) {
738
+ var oFieldHelp = _getFieldHelp.call(this);
739
+ var oSource = oEvent.srcControl;
730
740
 
731
- if (oFieldHelp && (!oFieldHelp.valueHelpEnabled || oFieldHelp.valueHelpEnabled() || oFieldHelp.isOpen()) && (!this._oContentFactory.isMeasure() || oSource.getShowValueHelp())) {
732
- // if only type-ahead but no real value help, only navigate if open TODO: remove function check
733
- oEvent.preventDefault();
734
- oEvent.stopPropagation();
735
- oFieldHelp.setFilterValue(this._sFilterValue); // to be sure to filter for typed value
736
- oFieldHelp.navigate(-1);
741
+ if (oFieldHelp && (!oFieldHelp.valueHelpEnabled || oFieldHelp.valueHelpEnabled() || oFieldHelp.isOpen()) && (!this._oContentFactory.isMeasure() || oSource.getShowValueHelp())) {
742
+ // if only type-ahead but no real value help, only navigate if open TODO: remove function check
743
+ oEvent.preventDefault();
744
+ oEvent.stopPropagation();
745
+ oFieldHelp.setFilterValue(this._sFilterValue); // to be sure to filter for typed value
746
+ oFieldHelp.navigate(-1);
747
+ }
737
748
  }
738
749
 
739
750
  };
740
751
 
741
752
  FieldBase.prototype.onsapdown = function(oEvent) {
742
753
 
743
- var oFieldHelp = _getFieldHelp.call(this);
744
- var oSource = oEvent.srcControl;
754
+ if (this.getEditMode() === EditMode.Editable) {
755
+ var oFieldHelp = _getFieldHelp.call(this);
756
+ var oSource = oEvent.srcControl;
745
757
 
746
- if (oFieldHelp && (!oFieldHelp.valueHelpEnabled || oFieldHelp.valueHelpEnabled() || oFieldHelp.isOpen()) && (!this._oContentFactory.isMeasure() || oSource.getShowValueHelp())) {
747
- // if only type-ahead but no real value help, only navigate if open TODO: remove function check
748
- oEvent.preventDefault();
749
- oEvent.stopPropagation();
750
- oFieldHelp.setFilterValue(this._sFilterValue); // to be sure to filter for typed value
751
- oFieldHelp.navigate(1);
758
+ if (oFieldHelp && (!oFieldHelp.valueHelpEnabled || oFieldHelp.valueHelpEnabled() || oFieldHelp.isOpen()) && (!this._oContentFactory.isMeasure() || oSource.getShowValueHelp())) {
759
+ // if only type-ahead but no real value help, only navigate if open TODO: remove function check
760
+ oEvent.preventDefault();
761
+ oEvent.stopPropagation();
762
+ oFieldHelp.setFilterValue(this._sFilterValue); // to be sure to filter for typed value
763
+ oFieldHelp.navigate(1);
764
+ }
752
765
  }
753
766
 
754
767
  };
@@ -1044,12 +1057,6 @@ sap.ui.define([
1044
1057
  */
1045
1058
  FieldBase.prototype._observeChanges = function(oChanges) {
1046
1059
 
1047
- var fnUpdateInternalContent = function() {
1048
- if (this.getAggregation("_content", []).length > 0) {
1049
- _createInternalContentWrapper.call(this);
1050
- }
1051
- };
1052
-
1053
1060
  if (oChanges.name === "dataType") {
1054
1061
  // check only if different type (in Field type might be already taken from binding)
1055
1062
  if (this._oContentFactory.getDataType()) {
@@ -1081,8 +1088,7 @@ sap.ui.define([
1081
1088
  }
1082
1089
 
1083
1090
  if (oChanges.name === "maxConditions") {
1084
- fnUpdateInternalContent.call(this);
1085
- this._oContentFactory.updateConditionType();
1091
+ this._updateInternalContent();
1086
1092
  }
1087
1093
 
1088
1094
  if (oChanges.name === "conditions") {
@@ -1111,7 +1117,7 @@ sap.ui.define([
1111
1117
  }
1112
1118
 
1113
1119
  if (oChanges.name === "display") {
1114
- _destroyInternalContent.call(this); // as bound property can change
1120
+ this._destroyInternalContent(); // as bound property can change
1115
1121
  this._oContentFactory.updateConditionType();
1116
1122
  }
1117
1123
 
@@ -1149,6 +1155,14 @@ sap.ui.define([
1149
1155
  }
1150
1156
  };
1151
1157
 
1158
+ // to allow Field or FilterField trigger and update if content control
1159
+ FieldBase.prototype._updateInternalContent = function() {
1160
+ if (this.getAggregation("_content", []).length > 0) {
1161
+ _createInternalContentWrapper.call(this);
1162
+ this._oContentFactory.updateConditionType(); // if control is not excanged at least ConditionType needs to be updated
1163
+ }
1164
+ };
1165
+
1152
1166
  // return the focus DOM elementof the used control
1153
1167
  FieldBase.prototype.getFocusDomRef = function() {
1154
1168
 
@@ -1210,7 +1224,7 @@ sap.ui.define([
1210
1224
 
1211
1225
  FieldBase.prototype.getFocusElementForValueHelp = function(bTypahead) {
1212
1226
  var oSuggestControl = this.getControlForSuggestion();
1213
- var aIcons = oSuggestControl && oSuggestControl.getMetadata().getAllPrivateAggregations()._endIcon && oSuggestControl.getAggregation("_endIcon");
1227
+ var aIcons = oSuggestControl && oSuggestControl.getMetadata().getAllPrivateAggregations()._endIcon && oSuggestControl.getAggregation("_endIcon", []);
1214
1228
  var oIcon;
1215
1229
  for (var i = 0; i < aIcons.length; i++) { // as MultiInput can have a invisible icon before visible icon
1216
1230
  if (aIcons[i].getVisible()) {
@@ -1432,7 +1446,7 @@ sap.ui.define([
1432
1446
  // bind to ManagedObjectModel at rendering to prevent unneded updates
1433
1447
 
1434
1448
  if (this.getAggregation("_content", []).length > 0) {
1435
- _destroyInternalContent.call(this);
1449
+ this._destroyInternalContent();
1436
1450
  }
1437
1451
 
1438
1452
  // as for edit and display different Types are possible switch them with edit mode
@@ -1586,7 +1600,7 @@ sap.ui.define([
1586
1600
  if (oContent || this._bIsBeingDestroyed ||
1587
1601
  (sEditMode === EditMode.Display && this.getContentDisplay()) ||
1588
1602
  (sEditMode !== EditMode.Display && this.getContentEdit())) {
1589
- _destroyInternalContent.call(this);
1603
+ this._destroyInternalContent();
1590
1604
  var aContent = this._getContent(); // external set content
1591
1605
  if (aContent.length === 1) {
1592
1606
  _setModelOnContent.call(this, aContent[0]); // bind to ManagedObjectModel
@@ -1618,7 +1632,7 @@ sap.ui.define([
1618
1632
  this._oContentFactory.setHideOperator(_isOnlyOneSingleValue.call(this, aOperators)); // in single value eq Field hide operator
1619
1633
 
1620
1634
  if (oContentOld) {
1621
- _destroyInternalContent.call(this);
1635
+ this._destroyInternalContent();
1622
1636
 
1623
1637
  if (oContentOld.isA("sap.m.DateTimeField")) {
1624
1638
  // in case of DatePicker remove type with special format options
@@ -1642,6 +1656,7 @@ sap.ui.define([
1642
1656
  var oControl = aControls[iIndex];
1643
1657
  oControl.attachEvent("parseError", _handleParseError, this);
1644
1658
  oControl.attachEvent("validationError", _handleValidationError, this);
1659
+ oControl.attachEvent("validationSuccess", _handleValidationSuccess, this);
1645
1660
  _modifyKeyboardHandler.call(this, oControl, oContentType.getUseDefaultEnterHandler());
1646
1661
  _modifyFieldGroupHandler.call(this, oControl, false);
1647
1662
  _setModelOnContent.call(this, oControl);
@@ -1662,7 +1677,7 @@ sap.ui.define([
1662
1677
 
1663
1678
  }
1664
1679
 
1665
- function _destroyInternalContent() {
1680
+ FieldBase.prototype._destroyInternalContent = function () {
1666
1681
 
1667
1682
  // if the internalContent must be new created the data type must be switched back to original one
1668
1683
  // so new creation of control is using original data
@@ -1686,7 +1701,7 @@ sap.ui.define([
1686
1701
  this._oContentFactory.setIsMeasure(false);
1687
1702
  }
1688
1703
 
1689
- }
1704
+ };
1690
1705
 
1691
1706
  function _setModelOnContent(oContent) {
1692
1707
  oContent.setModel(this._oManagedObjectModel, "$field");
@@ -1870,23 +1885,26 @@ sap.ui.define([
1870
1885
 
1871
1886
  function _useDefaultFieldHelp(oContentType, aOperators, sEditMode, iMaxConditions) {
1872
1887
 
1873
- if (oContentType.getUseDefaultFieldHelp() && !this.getFieldHelp() && sEditMode !== EditMode.Display) {
1874
- if (aOperators.length === 1) {
1875
- var bIsSingleValue = _isOnlyOneSingleValue.call(this, aOperators); // if operator not exists unse no field help
1876
- // not if operator is handled by special control (like DatePicker)
1877
- if (iMaxConditions === 1) {
1878
- if (!(oContentType.getEditOperator() && oContentType.getEditOperator()[aOperators[0]]) &&
1879
- (oContentType.getUseDefaultFieldHelp().oneOperatorSingle || !bIsSingleValue)) {
1880
- // "bool" case (always default field help) or operator needs more than one value (e.g. between)
1888
+ var oUseDefaultFieldHelp = oContentType.getUseDefaultFieldHelp();
1889
+ if (oUseDefaultFieldHelp && !this.getFieldHelp() && sEditMode !== EditMode.Display) {
1890
+ if ((iMaxConditions === 1 && oUseDefaultFieldHelp.single) || (iMaxConditions !== 1 && oUseDefaultFieldHelp.multi)) {
1891
+ if (aOperators.length === 1) {
1892
+ var bIsSingleValue = _isOnlyOneSingleValue.call(this, aOperators); // if operator not exists unse no field help
1893
+ // not if operator is handled by special control (like DatePicker)
1894
+ if (iMaxConditions === 1) {
1895
+ if (!(oContentType.getEditOperator() && oContentType.getEditOperator()[aOperators[0]]) &&
1896
+ (oUseDefaultFieldHelp.oneOperatorSingle || !bIsSingleValue)) {
1897
+ // "bool" case (always default field help) or operator needs more than one value (e.g. between)
1898
+ return true;
1899
+ }
1900
+ } else if (oUseDefaultFieldHelp.oneOperatorMulti || !bIsSingleValue) {
1901
+ // DatePicker case - in multi-value use default help to get DatePicker controls
1881
1902
  return true;
1882
1903
  }
1883
- } else if (oContentType.getUseDefaultFieldHelp().oneOperatorMulti || !bIsSingleValue) {
1884
- // DatePicker case - in multi-value use default help to get DatePicker controls
1904
+ } else {
1905
+ // multiple operators -> default help needed
1885
1906
  return true;
1886
1907
  }
1887
- } else {
1888
- // multiple operators -> default help needed
1889
- return true;
1890
1908
  }
1891
1909
  }
1892
1910
 
@@ -1951,6 +1969,12 @@ sap.ui.define([
1951
1969
 
1952
1970
  }
1953
1971
 
1972
+ function _handleValidationSuccess(oEvent) {
1973
+
1974
+ this._bParseError = false; // if last valif value is entered again no condition is updated
1975
+
1976
+ }
1977
+
1954
1978
  function _handleContentChange(oEvent) {
1955
1979
 
1956
1980
  var oChangeEvent = { parameters: merge({}, oEvent.getParameters()), source: oEvent.getSource() };
@@ -2200,8 +2224,6 @@ sap.ui.define([
2200
2224
  vPreviousValue = aConditions[0] && aConditions[0].values[0];
2201
2225
  }
2202
2226
 
2203
- this._bParseError = false; // last parsing result is obsolete if user starts typing
2204
-
2205
2227
  var oFieldHelp = _getFieldHelp.call(this);
2206
2228
 
2207
2229
  if (oFieldHelp && (!this._oContentFactory.isMeasure() || oSource.getShowValueHelp())) {
@@ -2529,6 +2551,7 @@ sap.ui.define([
2529
2551
  aConditions.splice(0, aConditions.length - iMaxConditions);
2530
2552
  }
2531
2553
 
2554
+ var bChangeAfterError = false;
2532
2555
  if (oContent && oContent.setDOMValue) {
2533
2556
  if (this.getMaxConditionsForHelp() === 1 && aConditions.length > 0) {
2534
2557
  // the focus is still in the Field. The update of the inner control is done via ManagedObjectModel binding.
@@ -2569,6 +2592,7 @@ sap.ui.define([
2569
2592
  if (this._bParseError) { // only remove messages set by Field itself, message from outside should stay.
2570
2593
  this._bParseError = false;
2571
2594
  this._removeUIMessage();
2595
+ bChangeAfterError = true;
2572
2596
  }
2573
2597
  }
2574
2598
 
@@ -2585,6 +2609,8 @@ sap.ui.define([
2585
2609
 
2586
2610
  _triggerChange.call(this, aConditions, true);
2587
2611
  }
2612
+ } else if (bChangeAfterError) { // last valif value choosen again
2613
+ _triggerChange.call(this, aConditions, true);
2588
2614
  }
2589
2615
 
2590
2616
  }
@@ -2691,6 +2717,7 @@ sap.ui.define([
2691
2717
  var oContent = this.getControlForSuggestion();
2692
2718
  this._bIgnoreInputValue = false;
2693
2719
  oContent.setDOMValue("");
2720
+ this._sFilterValue = "";
2694
2721
  if (this.getMaxConditions() !== 1 && !this._oContentFactory.getBoundProperty() && oContent.getMetadata().hasProperty("value") && oContent.getProperty("value")) {
2695
2722
  // clear "value" property of MultiInput as there might be an old value from a invalid input before
2696
2723
  oContent.setValue();
@@ -2699,6 +2726,11 @@ sap.ui.define([
2699
2726
 
2700
2727
  _setAriaAttributes.call(this, false);
2701
2728
 
2729
+ // sync conditions with FieldHelp as we cannot e sure that it still is in sync
2730
+ var oFieldHelp = oEvent.getSource();
2731
+ var aConditions = this.getConditions();
2732
+ _setConditionsOnFieldHelp.call(this, aConditions, oFieldHelp);
2733
+
2702
2734
  }
2703
2735
 
2704
2736
  function _handleFieldSwitchToValueHelp(oEvent) {
@@ -2757,7 +2789,8 @@ sap.ui.define([
2757
2789
  delegateName: this.getDelegate() && this.getDelegate().name,
2758
2790
  payload: this.getPayload(),
2759
2791
  conditionModel: oConditionModelInfo.model,
2760
- conditionModelName : oConditionModelInfo.name
2792
+ conditionModelName: oConditionModelInfo.name,
2793
+ defaultOperatorName: this.getDefaultOperator ? this.getDefaultOperator() : null
2761
2794
  };
2762
2795
  oFieldHelp.connect(this, oConfig);
2763
2796
  this._bConnected = true;
@@ -15,9 +15,6 @@ sap.ui.define([
15
15
  ) {
16
16
  "use strict";
17
17
 
18
- // initialize the Icon Pool
19
- IconPool.insertFontFaceStyle();
20
-
21
18
  /**
22
19
  * FieldBase renderer.
23
20
  * @namespace
@@ -40,7 +40,7 @@ sap.ui.define([
40
40
  * @class Base type for the <code>FieldHelp</code> association in the <code>FieldBase</code> controls.
41
41
  * @extends sap.ui.mdc.Element
42
42
  * @implements sap.ui.core.PopupInterface
43
- * @version 1.96.5
43
+ * @version 1.99.0
44
44
  * @constructor
45
45
  * @abstract
46
46
  * @private
@@ -962,7 +962,7 @@ sap.ui.define([
962
962
  * @type {sap.ui.mdc.field.FieldHelpItem}
963
963
  * @static
964
964
  * @constant
965
- * @typedef {Object} sap.ui.mdc.field.FieldHelpItem
965
+ * @typedef {object} sap.ui.mdc.field.FieldHelpItem
966
966
  * @property {any} key Key of the item
967
967
  * @property {string} description Description of the item
968
968
  * @property {object} [inParameters] In parameters of the item. For each field path a value is stored