@openui5/sap.ui.mdc 1.96.2 → 1.98.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 (329) 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 +2 -2
  5. package/src/sap/ui/mdc/ActionToolbar.js +3 -8
  6. package/src/sap/ui/mdc/AggregationBaseDelegate.js +2 -2
  7. package/src/sap/ui/mdc/BaseDelegate.js +2 -2
  8. package/src/sap/ui/mdc/Chart.js +1017 -1797
  9. package/src/sap/ui/mdc/ChartDelegate.js +430 -271
  10. package/src/sap/ui/mdc/ChartRenderer.js +74 -78
  11. package/src/sap/ui/mdc/Control.js +2 -2
  12. package/src/sap/ui/mdc/Delegate.js +1 -1
  13. package/src/sap/ui/mdc/Element.js +2 -2
  14. package/src/sap/ui/mdc/Field.js +4 -3
  15. package/src/sap/ui/mdc/FilterBar.js +4 -3
  16. package/src/sap/ui/mdc/FilterBarDelegate.js +1 -1
  17. package/src/sap/ui/mdc/FilterField.js +26 -9
  18. package/src/sap/ui/mdc/Link.js +5 -4
  19. package/src/sap/ui/mdc/LinkDelegate.js +2 -2
  20. package/src/sap/ui/mdc/MultiValueField.js +3 -2
  21. package/src/sap/ui/mdc/Table.js +174 -142
  22. package/src/sap/ui/mdc/TableDelegate.js +31 -16
  23. package/src/sap/ui/mdc/ValueHelp.js +52 -16
  24. package/src/sap/ui/mdc/ValueHelpDelegate.js +21 -1
  25. package/src/sap/ui/mdc/actiontoolbar/ActionToolbarAction.js +2 -2
  26. package/src/sap/ui/mdc/actiontoolbar/ActionToolbarActionRenderer.js +1 -1
  27. package/src/sap/ui/mdc/{chartNew/ChartSelectionDetailsNew.js → chart/ChartSelectionDetails.js} +9 -9
  28. package/src/sap/ui/mdc/chart/ChartSettings.js +1 -1
  29. package/src/sap/ui/mdc/{chartNew/ChartToolbarNew.js → chart/ChartToolbar.js} +11 -11
  30. package/src/sap/ui/mdc/chart/ChartTypeButton.js +49 -53
  31. package/src/sap/ui/mdc/{chartNew/DrillBreadcrumbsNew.js → chart/DrillBreadcrumbs.js} +4 -4
  32. package/src/sap/ui/mdc/chart/DrillStackHandler.js +39 -250
  33. package/src/sap/ui/mdc/chart/Item.js +63 -93
  34. package/src/sap/ui/mdc/{chartNew/PropertyHelperNew.js → chart/PropertyHelper.js} +4 -4
  35. package/src/sap/ui/mdc/chart/SelectionDetailsActions.js +18 -22
  36. package/src/sap/ui/mdc/condition/Condition.js +2 -2
  37. package/src/sap/ui/mdc/condition/ConditionConverter.js +2 -2
  38. package/src/sap/ui/mdc/condition/ConditionModel.js +2 -2
  39. package/src/sap/ui/mdc/condition/ConditionModelPropertyBinding.js +1 -1
  40. package/src/sap/ui/mdc/condition/FilterConverter.js +2 -2
  41. package/src/sap/ui/mdc/condition/FilterOperatorUtil.js +7 -3
  42. package/src/sap/ui/mdc/condition/Operator.js +10 -10
  43. package/src/sap/ui/mdc/condition/OperatorDynamicDateOption.js +437 -0
  44. package/src/sap/ui/mdc/condition/RangeOperator.js +2 -2
  45. package/src/sap/ui/mdc/designtime/actiontoolbar/ActionToolbar.designtime.js +1 -1
  46. package/src/sap/ui/mdc/designtime/chart/Chart.designtime.js +78 -6
  47. package/src/sap/ui/mdc/designtime/field/Field.designtime.js +97 -0
  48. package/src/sap/ui/mdc/designtime/field/FieldBase.designtime.js +104 -0
  49. package/src/sap/ui/mdc/designtime/field/FilterField.designtime.js +22 -0
  50. package/src/sap/ui/mdc/designtime/field/MultiValueField.designtime.js +23 -0
  51. package/src/sap/ui/mdc/designtime/filterbar/FilterBar.designtime.js +1 -1
  52. package/src/sap/ui/mdc/designtime/filterbar/FilterBarBase.designtime.js +4 -1
  53. package/src/sap/ui/mdc/designtime/library.designtime.js +1 -1
  54. package/src/sap/ui/mdc/designtime/link/Panel.designtime.js +1 -1
  55. package/src/sap/ui/mdc/designtime/link/PanelItem.designtime.js +1 -1
  56. package/src/sap/ui/mdc/designtime/p13n/PersistenceProvider.designtime.js +1 -1
  57. package/src/sap/ui/mdc/designtime/table/Table.designtime.js +1 -1
  58. package/src/sap/ui/mdc/enum/ActionToolbarActionAlignment.js +1 -1
  59. package/src/sap/ui/mdc/enum/BaseType.js +1 -1
  60. package/src/sap/ui/mdc/enum/ConditionValidated.js +1 -1
  61. package/src/sap/ui/mdc/enum/ContentMode.js +1 -1
  62. package/src/sap/ui/mdc/enum/EditMode.js +1 -1
  63. package/src/sap/ui/mdc/enum/FieldDisplay.js +1 -1
  64. package/src/sap/ui/mdc/enum/OutParameterMode.js +1 -1
  65. package/src/sap/ui/mdc/enum/PersistenceMode.js +1 -1
  66. package/src/sap/ui/mdc/enum/SelectType.js +1 -1
  67. package/src/sap/ui/mdc/field/BoolFieldHelp.js +2 -2
  68. package/src/sap/ui/mdc/field/ConditionFieldHelp.js +2 -2
  69. package/src/sap/ui/mdc/field/ConditionType.js +8 -8
  70. package/src/sap/ui/mdc/field/ConditionsType.js +8 -8
  71. package/src/sap/ui/mdc/field/CustomFieldHelp.js +2 -2
  72. package/src/sap/ui/mdc/field/CustomFieldInfo.js +2 -2
  73. package/src/sap/ui/mdc/field/DefineConditionPanel.js +59 -22
  74. package/src/sap/ui/mdc/field/DynamicDateRangeConditionsType.js +311 -0
  75. package/src/sap/ui/mdc/field/FieldBase.js +84 -53
  76. package/src/sap/ui/mdc/field/FieldBaseDelegate.js +1 -1
  77. package/src/sap/ui/mdc/field/FieldBaseRenderer.js +1 -4
  78. package/src/sap/ui/mdc/field/FieldHelpBase.js +2 -2
  79. package/src/sap/ui/mdc/field/FieldHelpBaseDelegate.js +1 -1
  80. package/src/sap/ui/mdc/field/FieldInfoBase.js +2 -2
  81. package/src/sap/ui/mdc/field/FieldInput.js +2 -2
  82. package/src/sap/ui/mdc/field/FieldInputRenderUtil.js +2 -2
  83. package/src/sap/ui/mdc/field/FieldInputRenderer.js +1 -1
  84. package/src/sap/ui/mdc/field/FieldMultiInput.js +2 -2
  85. package/src/sap/ui/mdc/field/FieldMultiInputRenderer.js +1 -1
  86. package/src/sap/ui/mdc/field/FieldValueHelp.js +8 -8
  87. package/src/sap/ui/mdc/field/FieldValueHelpContentWrapperBase.js +2 -2
  88. package/src/sap/ui/mdc/field/FieldValueHelpDelegate.js +21 -1
  89. package/src/sap/ui/mdc/field/FieldValueHelpMTableWrapper.js +2 -2
  90. package/src/sap/ui/mdc/field/FieldValueHelpMdcTableWrapper.js +2 -2
  91. package/src/sap/ui/mdc/field/FieldValueHelpTableWrapperBase.js +3 -2
  92. package/src/sap/ui/mdc/field/FieldValueHelpUITableWrapper.js +2 -2
  93. package/src/sap/ui/mdc/field/InParameter.js +2 -2
  94. package/src/sap/ui/mdc/field/ListFieldHelp.js +11 -3
  95. package/src/sap/ui/mdc/field/ListFieldHelpItem.js +2 -2
  96. package/src/sap/ui/mdc/field/MultiValueFieldDelegate.js +1 -1
  97. package/src/sap/ui/mdc/field/MultiValueFieldItem.js +2 -2
  98. package/src/sap/ui/mdc/field/OutParameter.js +2 -2
  99. package/src/sap/ui/mdc/field/ValueHelpPanel.js +3 -2
  100. package/src/sap/ui/mdc/field/content/BooleanContent.js +2 -2
  101. package/src/sap/ui/mdc/field/content/ContentFactory.js +24 -22
  102. package/src/sap/ui/mdc/field/content/DateContent.js +129 -3
  103. package/src/sap/ui/mdc/field/content/DateTimeContent.js +10 -2
  104. package/src/sap/ui/mdc/field/content/DefaultContent.js +2 -2
  105. package/src/sap/ui/mdc/field/content/LinkContent.js +1 -1
  106. package/src/sap/ui/mdc/field/content/SearchContent.js +1 -1
  107. package/src/sap/ui/mdc/field/content/TimeContent.js +9 -2
  108. package/src/sap/ui/mdc/field/content/UnitContent.js +24 -5
  109. package/src/sap/ui/mdc/filterbar/FilterBarBase.js +326 -141
  110. package/src/sap/ui/mdc/filterbar/FilterBarBaseRenderer.js +1 -1
  111. package/src/sap/ui/mdc/filterbar/IFilterContainer.js +1 -1
  112. package/src/sap/ui/mdc/filterbar/PropertyHelper.js +2 -2
  113. package/src/sap/ui/mdc/filterbar/aligned/FilterContainer.js +1 -1
  114. package/src/sap/ui/mdc/filterbar/aligned/FilterItemLayout.js +1 -1
  115. package/src/sap/ui/mdc/filterbar/p13n/AdaptationFilterBar.js +9 -3
  116. package/src/sap/ui/mdc/filterbar/p13n/FilterColumnLayout.js +1 -1
  117. package/src/sap/ui/mdc/filterbar/p13n/FilterGroupLayout.js +1 -1
  118. package/src/sap/ui/mdc/filterbar/p13n/GroupContainer.js +1 -1
  119. package/src/sap/ui/mdc/filterbar/p13n/TableContainer.js +1 -1
  120. package/src/sap/ui/mdc/filterbar/vh/CollectiveSearchSelect.js +4 -2
  121. package/src/sap/ui/mdc/filterbar/vh/FilterBar.js +8 -2
  122. package/src/sap/ui/mdc/filterbar/vh/FilterContainer.js +1 -1
  123. package/src/sap/ui/mdc/filterbar/vh/GenericFilterBarDelegate.js +7 -7
  124. package/src/sap/ui/mdc/flexibility/ActionToolbar.flexibility.js +1 -1
  125. package/src/sap/ui/mdc/flexibility/ActionToolbarAction.flexibility.js +1 -1
  126. package/src/sap/ui/mdc/flexibility/AggregateFlex.js +3 -3
  127. package/src/sap/ui/mdc/flexibility/AggregationConfigFlex.js +1 -1
  128. package/src/sap/ui/mdc/flexibility/Chart.flexibility.js +2 -2
  129. package/src/sap/ui/mdc/flexibility/ChartItemFlex.js +1 -1
  130. package/src/sap/ui/mdc/flexibility/ColumnFlex.js +2 -2
  131. package/src/sap/ui/mdc/flexibility/ConditionFlex.js +1 -1
  132. package/src/sap/ui/mdc/flexibility/FilterBar.flexibility.js +5 -4
  133. package/src/sap/ui/mdc/flexibility/FilterItemFlex.js +2 -2
  134. package/src/sap/ui/mdc/flexibility/GroupFlex.js +2 -2
  135. package/src/sap/ui/mdc/flexibility/ItemBaseFlex.js +1 -1
  136. package/src/sap/ui/mdc/flexibility/Panel.flexibility.js +10 -4
  137. package/src/sap/ui/mdc/flexibility/PanelItem.flexibility.js +1 -1
  138. package/src/sap/ui/mdc/flexibility/PropertyInfoFlex.js +110 -0
  139. package/src/sap/ui/mdc/flexibility/SortFlex.js +3 -3
  140. package/src/sap/ui/mdc/flexibility/Table.flexibility.js +1 -1
  141. package/src/sap/ui/mdc/flp/FlpLinkDelegate.js +2 -2
  142. package/src/sap/ui/mdc/library.js +50 -39
  143. package/src/sap/ui/mdc/link/ContactDetails.js +2 -2
  144. package/src/sap/ui/mdc/link/ContactDetailsAddressItem.js +2 -2
  145. package/src/sap/ui/mdc/link/ContactDetailsEmailItem.js +2 -2
  146. package/src/sap/ui/mdc/link/ContactDetailsItem.js +2 -2
  147. package/src/sap/ui/mdc/link/ContactDetailsPhoneItem.js +2 -2
  148. package/src/sap/ui/mdc/link/Factory.js +3 -3
  149. package/src/sap/ui/mdc/link/FakeFlpConnector.js +2 -2
  150. package/src/sap/ui/mdc/link/LinkItem.js +2 -2
  151. package/src/sap/ui/mdc/link/Log.js +1 -1
  152. package/src/sap/ui/mdc/link/Panel.js +141 -179
  153. package/src/sap/ui/mdc/link/PanelItem.js +2 -2
  154. package/src/sap/ui/mdc/link/PanelListItem.js +2 -2
  155. package/src/sap/ui/mdc/link/SemanticObjectMapping.js +2 -2
  156. package/src/sap/ui/mdc/link/SemanticObjectMappingItem.js +2 -2
  157. package/src/sap/ui/mdc/link/SemanticObjectUnavailableAction.js +2 -2
  158. package/src/sap/ui/mdc/messagebundle.properties +19 -4
  159. package/src/sap/ui/mdc/messagebundle_ar.properties +13 -4
  160. package/src/sap/ui/mdc/messagebundle_bg.properties +11 -2
  161. package/src/sap/ui/mdc/messagebundle_ca.properties +11 -2
  162. package/src/sap/ui/mdc/messagebundle_cs.properties +26 -17
  163. package/src/sap/ui/mdc/messagebundle_cy.properties +11 -2
  164. package/src/sap/ui/mdc/messagebundle_da.properties +18 -9
  165. package/src/sap/ui/mdc/messagebundle_de.properties +11 -2
  166. package/src/sap/ui/mdc/messagebundle_el.properties +12 -3
  167. package/src/sap/ui/mdc/messagebundle_en.properties +11 -2
  168. package/src/sap/ui/mdc/messagebundle_en_GB.properties +11 -2
  169. package/src/sap/ui/mdc/messagebundle_en_US_sappsd.properties +17 -0
  170. package/src/sap/ui/mdc/messagebundle_en_US_saprigi.properties +3 -19
  171. package/src/sap/ui/mdc/messagebundle_en_US_saptrc.properties +17 -0
  172. package/src/sap/ui/mdc/messagebundle_es.properties +12 -3
  173. package/src/sap/ui/mdc/messagebundle_es_MX.properties +24 -15
  174. package/src/sap/ui/mdc/messagebundle_et.properties +11 -2
  175. package/src/sap/ui/mdc/messagebundle_fi.properties +17 -8
  176. package/src/sap/ui/mdc/messagebundle_fr.properties +15 -6
  177. package/src/sap/ui/mdc/messagebundle_fr_CA.properties +11 -2
  178. package/src/sap/ui/mdc/messagebundle_hi.properties +12 -3
  179. package/src/sap/ui/mdc/messagebundle_hr.properties +11 -2
  180. package/src/sap/ui/mdc/messagebundle_hu.properties +11 -2
  181. package/src/sap/ui/mdc/messagebundle_id.properties +11 -2
  182. package/src/sap/ui/mdc/messagebundle_it.properties +26 -17
  183. package/src/sap/ui/mdc/messagebundle_iw.properties +12 -3
  184. package/src/sap/ui/mdc/messagebundle_ja.properties +11 -2
  185. package/src/sap/ui/mdc/messagebundle_kk.properties +11 -2
  186. package/src/sap/ui/mdc/messagebundle_ko.properties +15 -6
  187. package/src/sap/ui/mdc/messagebundle_lt.properties +11 -2
  188. package/src/sap/ui/mdc/messagebundle_lv.properties +11 -2
  189. package/src/sap/ui/mdc/messagebundle_ms.properties +11 -2
  190. package/src/sap/ui/mdc/messagebundle_nl.properties +16 -7
  191. package/src/sap/ui/mdc/messagebundle_no.properties +19 -10
  192. package/src/sap/ui/mdc/messagebundle_pl.properties +12 -3
  193. package/src/sap/ui/mdc/messagebundle_pt.properties +18 -9
  194. package/src/sap/ui/mdc/messagebundle_pt_PT.properties +11 -2
  195. package/src/sap/ui/mdc/messagebundle_ro.properties +11 -2
  196. package/src/sap/ui/mdc/messagebundle_ru.properties +11 -2
  197. package/src/sap/ui/mdc/messagebundle_sh.properties +11 -2
  198. package/src/sap/ui/mdc/messagebundle_sk.properties +11 -2
  199. package/src/sap/ui/mdc/messagebundle_sl.properties +11 -2
  200. package/src/sap/ui/mdc/messagebundle_sv.properties +13 -4
  201. package/src/sap/ui/mdc/messagebundle_th.properties +11 -2
  202. package/src/sap/ui/mdc/messagebundle_tr.properties +11 -2
  203. package/src/sap/ui/mdc/messagebundle_uk.properties +12 -3
  204. package/src/sap/ui/mdc/messagebundle_vi.properties +11 -2
  205. package/src/sap/ui/mdc/messagebundle_zh_CN.properties +11 -2
  206. package/src/sap/ui/mdc/messagebundle_zh_TW.properties +11 -2
  207. package/src/sap/ui/mdc/mixin/AdaptationMixin.js +3 -4
  208. package/src/sap/ui/mdc/mixin/DelegateMixin.js +3 -3
  209. package/src/sap/ui/mdc/mixin/FilterIntegrationMixin.js +17 -12
  210. package/src/sap/ui/mdc/mixin/PromiseMixin.js +3 -4
  211. package/src/sap/ui/mdc/odata/TypeUtil.js +2 -2
  212. package/src/sap/ui/mdc/odata/json/FilterBarDelegate.js +1 -1
  213. package/src/sap/ui/mdc/odata/v4/ChartDelegate.js +30 -484
  214. package/src/sap/ui/mdc/odata/v4/{ChartPropertyHelperNew.js → ChartPropertyHelper.js} +6 -6
  215. package/src/sap/ui/mdc/odata/v4/FieldBaseDelegate.js +1 -1
  216. package/src/sap/ui/mdc/odata/v4/FieldValueHelpDelegate.js +1 -1
  217. package/src/sap/ui/mdc/odata/v4/FilterBarDelegate.js +1 -1
  218. package/src/sap/ui/mdc/odata/v4/ODataMetaModelUtil.js +1 -1
  219. package/src/sap/ui/mdc/odata/v4/TableDelegate.js +158 -114
  220. package/src/sap/ui/mdc/odata/v4/TypeUtil.js +2 -2
  221. package/src/sap/ui/mdc/odata/v4/ValueHelpDelegate.js +2 -2
  222. package/src/sap/ui/mdc/odata/v4/util/DelegateUtil.js +2 -2
  223. package/src/sap/ui/mdc/odata/v4/vizChart/{ChartDelegateNew.js → ChartDelegate.js} +137 -49
  224. package/src/sap/ui/mdc/p13n/AdaptationProvider.js +1 -1
  225. package/src/sap/ui/mdc/p13n/Engine.js +56 -19
  226. package/src/sap/ui/mdc/p13n/FlexUtil.js +12 -119
  227. package/src/sap/ui/mdc/p13n/P13nBuilder.js +3 -3
  228. package/src/sap/ui/mdc/p13n/PersistenceProvider.js +22 -11
  229. package/src/sap/ui/mdc/p13n/PropertyHelper.js +2 -2
  230. package/src/sap/ui/mdc/p13n/StateUtil.js +41 -7
  231. package/src/sap/ui/mdc/p13n/UIManager.js +16 -13
  232. package/src/sap/ui/mdc/p13n/modification/FlexModificationHandler.js +5 -2
  233. package/src/sap/ui/mdc/p13n/modification/ModificationHandler.js +10 -7
  234. package/src/sap/ui/mdc/p13n/{DefaultProviderRegistry.js → modules/DefaultProviderRegistry.js} +3 -3
  235. package/src/sap/ui/mdc/p13n/modules/StateHandlerRegistry.js +86 -0
  236. package/src/sap/ui/mdc/p13n/panels/ActionToolbarPanel.js +1 -1
  237. package/src/sap/ui/mdc/p13n/panels/AdaptFiltersPanel.js +20 -4
  238. package/src/sap/ui/mdc/p13n/panels/BasePanel.js +1 -1
  239. package/src/sap/ui/mdc/p13n/panels/ChartItemPanel.js +1093 -49
  240. package/src/sap/ui/mdc/p13n/panels/GroupView.js +1 -1
  241. package/src/sap/ui/mdc/p13n/panels/LinkSelectionPanel.js +72 -0
  242. package/src/sap/ui/mdc/p13n/panels/ListView.js +7 -3
  243. package/src/sap/ui/mdc/p13n/panels/SelectionPanel.js +1 -1
  244. package/src/sap/ui/mdc/p13n/panels/SortPanel.js +1 -1
  245. package/src/sap/ui/mdc/p13n/subcontroller/ActionToolbarController.js +1 -1
  246. package/src/sap/ui/mdc/p13n/subcontroller/AdaptFiltersController.js +7 -6
  247. package/src/sap/ui/mdc/p13n/subcontroller/AggregateController.js +2 -2
  248. package/src/sap/ui/mdc/p13n/subcontroller/BaseController.js +157 -12
  249. package/src/sap/ui/mdc/p13n/subcontroller/ChartItemController.js +16 -27
  250. package/src/sap/ui/mdc/p13n/subcontroller/ColumnController.js +7 -6
  251. package/src/sap/ui/mdc/p13n/subcontroller/ColumnWidthController.js +1 -1
  252. package/src/sap/ui/mdc/p13n/subcontroller/FilterController.js +7 -6
  253. package/src/sap/ui/mdc/p13n/subcontroller/GroupController.js +1 -1
  254. package/src/sap/ui/mdc/p13n/subcontroller/LinkPanelController.js +173 -0
  255. package/src/sap/ui/mdc/p13n/subcontroller/SortController.js +11 -18
  256. package/src/sap/ui/mdc/table/Column.js +36 -11
  257. package/src/sap/ui/mdc/table/CreationRow.js +15 -14
  258. package/src/sap/ui/mdc/table/GridTableType.js +14 -14
  259. package/src/sap/ui/mdc/table/PropertyHelper.js +65 -28
  260. package/src/sap/ui/mdc/table/ResponsiveTableType.js +27 -30
  261. package/src/sap/ui/mdc/table/RowSettings.js +8 -6
  262. package/src/sap/ui/mdc/table/TableSettings.js +1 -1
  263. package/src/sap/ui/mdc/table/TableTypeBase.js +7 -7
  264. package/src/sap/ui/mdc/table/V4AnalyticsPropertyHelper.js +16 -72
  265. package/src/sap/ui/mdc/themes/base/Chart.less +3 -0
  266. package/src/sap/ui/mdc/themes/base/FieldBase.less +0 -5
  267. package/src/sap/ui/mdc/themes/base/ValueHelpDialog.less +12 -1
  268. package/src/sap/ui/mdc/themes/base/library.source.less +2 -1
  269. package/src/sap/ui/mdc/ui/Container.js +3 -3
  270. package/src/sap/ui/mdc/ui/ContainerItem.js +3 -3
  271. package/src/sap/ui/mdc/util/Common.js +2 -2
  272. package/src/sap/ui/mdc/util/DateUtil.js +2 -2
  273. package/src/sap/ui/mdc/util/FilterUtil.js +2 -2
  274. package/src/sap/ui/mdc/util/FormatUtil.js +2 -2
  275. package/src/sap/ui/mdc/util/IdentifierUtil.js +2 -2
  276. package/src/sap/ui/mdc/util/PromiseCache.js +2 -2
  277. package/src/sap/ui/mdc/util/PropertyHelper.js +149 -326
  278. package/src/sap/ui/mdc/util/TypeUtil.js +6 -5
  279. package/src/sap/ui/mdc/util/loadModules.js +1 -1
  280. package/src/sap/ui/mdc/valuehelp/Dialog.js +13 -9
  281. package/src/sap/ui/mdc/valuehelp/Popover.js +15 -3
  282. package/src/sap/ui/mdc/valuehelp/base/Container.js +34 -2
  283. package/src/sap/ui/mdc/valuehelp/base/Content.js +37 -6
  284. package/src/sap/ui/mdc/valuehelp/base/DialogTab.js +3 -2
  285. package/src/sap/ui/mdc/valuehelp/base/FilterableListContent.js +44 -16
  286. package/src/sap/ui/mdc/valuehelp/base/ListContent.js +3 -2
  287. package/src/sap/ui/mdc/valuehelp/content/Bool.js +3 -2
  288. package/src/sap/ui/mdc/valuehelp/content/Conditions.js +29 -33
  289. package/src/sap/ui/mdc/valuehelp/content/FixedList.js +12 -6
  290. package/src/sap/ui/mdc/valuehelp/content/MDCTable.js +44 -9
  291. package/src/sap/ui/mdc/valuehelp/content/MTable.js +58 -27
  292. package/test/sap/ui/mdc/testutils/opa/TestLibrary.js +2 -1
  293. package/test/sap/ui/mdc/testutils/opa/actions/OpenContextMenu.js +3 -3
  294. package/test/sap/ui/mdc/testutils/opa/{chartNew → chart}/ActionsBase.js +3 -3
  295. package/test/sap/ui/mdc/testutils/opa/{chartNew → chart}/ActionsViz.js +0 -0
  296. package/test/sap/ui/mdc/testutils/opa/{chartNew → chart}/AssertionsBase.js +1 -1
  297. package/test/sap/ui/mdc/testutils/opa/{chartNew → chart}/AssertionsViz.js +0 -0
  298. package/test/sap/ui/mdc/testutils/opa/{chartNew → chart}/ChartNew.js +0 -0
  299. package/test/sap/ui/mdc/testutils/opa/chart/TestObjects.js +289 -0
  300. package/test/sap/ui/mdc/testutils/opa/chartNew/TestObjects.js +5 -5
  301. package/test/sap/ui/mdc/testutils/opa/filterbar/Util.js +12 -11
  302. package/test/sap/ui/mdc/testutils/opa/link/Actions.js +85 -0
  303. package/test/sap/ui/mdc/testutils/opa/link/Assertions.js +79 -0
  304. package/test/sap/ui/mdc/testutils/opa/link/TestObjects.js +112 -0
  305. package/test/sap/ui/mdc/testutils/opa/link/waitForLink.js +50 -0
  306. package/test/sap/ui/mdc/testutils/opa/p13n/Actions.js +365 -236
  307. package/test/sap/ui/mdc/testutils/opa/p13n/Util.js +27 -26
  308. package/src/sap/ui/mdc/ChartDelegateNew.js +0 -395
  309. package/src/sap/ui/mdc/ChartNew.js +0 -1114
  310. package/src/sap/ui/mdc/ChartNewRenderer.js +0 -91
  311. package/src/sap/ui/mdc/chart/DimensionItem.js +0 -281
  312. package/src/sap/ui/mdc/chart/MeasureItem.js +0 -318
  313. package/src/sap/ui/mdc/chart/MetadataDelegate.js +0 -31
  314. package/src/sap/ui/mdc/chart/SelectionHandler.js +0 -127
  315. package/src/sap/ui/mdc/chart/ToolbarHandler.js +0 -328
  316. package/src/sap/ui/mdc/chartNew/ChartTypeButtonNew.js +0 -295
  317. package/src/sap/ui/mdc/chartNew/DrillStackHandlerNew.js +0 -212
  318. package/src/sap/ui/mdc/chartNew/ItemNew.js +0 -72
  319. package/src/sap/ui/mdc/chartNew/SelectionDetailsActionsNew.js +0 -34
  320. package/src/sap/ui/mdc/designtime/chart/ChartNew.designtime.js +0 -91
  321. package/src/sap/ui/mdc/link/SelectionDialog.control.xml +0 -66
  322. package/src/sap/ui/mdc/link/SelectionDialog.js +0 -213
  323. package/src/sap/ui/mdc/link/SelectionDialogItem.js +0 -86
  324. package/src/sap/ui/mdc/odata/v4/ChartDelegateNew.js +0 -35
  325. package/src/sap/ui/mdc/p13n/panels/ChartItemPanelNew.js +0 -1171
  326. package/src/sap/ui/mdc/p13n/panels/GroupPanel.js +0 -111
  327. package/src/sap/ui/mdc/p13n/panels/QueryPanel.js +0 -322
  328. package/src/sap/ui/mdc/p13n/panels/SortQueryPanel.js +0 -133
  329. 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([
@@ -88,7 +88,7 @@ sap.ui.define([
88
88
  * @extends sap.ui.core.Control
89
89
  *
90
90
  * @author SAP SE
91
- * @version 1.96.2
91
+ * @version 1.98.0
92
92
  *
93
93
  * @constructor
94
94
  * @alias sap.ui.mdc.field.DefineConditionPanel
@@ -277,6 +277,7 @@ sap.ui.define([
277
277
 
278
278
  aConditions.splice(iIndex, 1);
279
279
  this.setProperty("conditions", aConditions, true); // do not invalidate whole DefineConditionPanel
280
+ _checkInvalidInput.call(this, undefined); // check if invalid condition was removed
280
281
 
281
282
  this.fireConditionProcessed();
282
283
  },
@@ -301,8 +302,10 @@ sap.ui.define([
301
302
  var sOperator = oOperator.name;
302
303
  var oCondition = Condition.createCondition(sOperator, oOperator.valueDefaults ? oOperator.valueDefaults : [], undefined, undefined, ConditionValidated.NotValidated);
303
304
 
304
- // mark the condition as initial and not modified by the user
305
- oCondition.isInitial = true;
305
+ if (oOperator.valueTypes[0] && oOperator.valueTypes[0] !== Operator.ValueType.Static) {
306
+ // mark the condition as initial and not modified by the user
307
+ oCondition.isInitial = true;
308
+ }
306
309
 
307
310
  FilterOperatorUtil.updateConditionValues(oCondition);
308
311
  FilterOperatorUtil.checkConditionsEmpty(oCondition, aOperators);
@@ -313,6 +316,11 @@ sap.ui.define([
313
316
  aConditions.push(oCondition);
314
317
  }
315
318
  this.setProperty("conditions", aConditions, true); // do not invalidate whole DefineConditionPanel
319
+
320
+ if (!oCondition.isInitial) {
321
+ // static condition added, it is ready to use -> fire event
322
+ this.fireConditionProcessed();
323
+ }
316
324
  },
317
325
 
318
326
  updateDefineConditions: function() {
@@ -350,6 +358,21 @@ sap.ui.define([
350
358
 
351
359
  onSelectChange: function(oEvent) {
352
360
  var oField = oEvent.getSource();
361
+ var oCondition = oField.getBindingContext("$this").getObject();
362
+ var aConditions = this.getConditions();
363
+ var iIndex = FilterOperatorUtil.indexOfCondition(oCondition, aConditions);
364
+ if (iIndex >= 0) {
365
+ oCondition = aConditions[iIndex]; // to get right instance
366
+ }
367
+
368
+ if (!oEvent.getParameter("valid")) { // if Operator in error state -> don't update values
369
+ oCondition.invalid = true;
370
+ this.setProperty("conditions", aConditions, true); // do not invalidate whole DefineConditionPanel
371
+ oField._sOldKey = oField.getValue();
372
+ _checkInvalidInput.call(this, true); // set imediately, not only if row left
373
+ return;
374
+ }
375
+
353
376
  var sKey = oField.getValue();
354
377
  var sOldKey = oField._sOldKey;
355
378
  var oOperator = FilterOperatorUtil.getOperator(sKey); // operator must exist as List is created from valid operators
@@ -357,16 +380,11 @@ sap.ui.define([
357
380
 
358
381
  if (oOperator && oOperatorOld) {
359
382
  var bUpdate = false;
360
- var oCondition = oField.getBindingContext("$this").getObject();
361
- var aConditions = this.getConditions();
362
- var iIndex = FilterOperatorUtil.indexOfCondition(oCondition, aConditions);
363
383
 
364
384
  if (!deepEqual(oOperator.valueTypes[0], oOperatorOld.valueTypes[0]) && oOperator.valueTypes[0] !== Operator.ValueType.Static ) {
365
385
  // type changed -> remove entered value (only if changed by user in Select)
366
386
  // As Static text updated on condition change, don't delete it here.
367
387
  if (iIndex >= 0) {
368
- oCondition = aConditions[iIndex]; // to get right instance
369
-
370
388
  oCondition.values.forEach(function(value, index) {
371
389
  if (value !== null) {
372
390
  if ((oOperator.valueTypes[index] === Operator.ValueType.Self && oOperatorOld.valueTypes[index] === Operator.ValueType.SelfNoParse) ||
@@ -391,8 +409,6 @@ sap.ui.define([
391
409
 
392
410
  if (iIndex >= 0 && oOperator.valueDefaults) {
393
411
  // sets the default values for the operator back to default, if the condition is inital or the value is null
394
- oCondition = aConditions[iIndex];
395
-
396
412
  oCondition.values.forEach(function(value, index) {
397
413
  if ((oCondition.isInitial && value !== oOperator.valueDefaults[index]) || (value === null)) {
398
414
  // set the default value and mark the condition as initial
@@ -407,7 +423,6 @@ sap.ui.define([
407
423
  if (!oOperator.valueTypes[1] && oOperatorOld.valueTypes[1]) {
408
424
  // switch from BT to EQ -> remove second value even if filled
409
425
  if (iIndex >= 0) {
410
- oCondition = aConditions[iIndex]; // to get right instance
411
426
  if (oCondition.values.length > 1 && oCondition.values[1]) {
412
427
  oCondition.values = oCondition.values.slice(0, 1);
413
428
  bUpdate = true;
@@ -415,9 +430,14 @@ sap.ui.define([
415
430
  }
416
431
  }
417
432
 
433
+ if (oCondition.invalid) {
434
+ delete oCondition.invalid;
435
+ bUpdate = true;
436
+ }
418
437
  if (bUpdate) {
419
438
  FilterOperatorUtil.checkConditionsEmpty(oCondition, _getOperators.call(this));
420
439
  this.setProperty("conditions", aConditions, true); // do not invalidate whole DefineConditionPanel
440
+ _checkInvalidInput.call(this, false); // set imediately, not only if row left
421
441
  }
422
442
  }
423
443
 
@@ -674,7 +694,7 @@ sap.ui.define([
674
694
  oControl = new Field(sId, {
675
695
  delegate: _getDelegate.call(this),
676
696
  value: { path: "$this>", type: oNullableType, mode: 'TwoWay', targetType: 'raw' },
677
- editMode: {path: "$condition>operator", formatter: _getEditModeFromOperator},
697
+ editMode: {parts: [{path: "$condition>operator"}, {path: "$condition>invalid"}], formatter: _getEditModeFromOperator},
678
698
  width: "100%"
679
699
  });
680
700
  }
@@ -788,7 +808,7 @@ sap.ui.define([
788
808
  // default operator not valid -> cannot use -> use first include-operator which requires some values
789
809
  for (var i = 0; i < aOperators.length; i++) {
790
810
  oOperator = FilterOperatorUtil.getOperator(aOperators[i]);
791
- if (oOperator.exclude || !oOperator.hasRequiredValues()) {
811
+ if (!oOperator || oOperator.exclude || !oOperator.hasRequiredValues()) {
792
812
  oOperator = undefined;
793
813
  } else {
794
814
  break;
@@ -1210,10 +1230,12 @@ sap.ui.define([
1210
1230
 
1211
1231
  }
1212
1232
 
1213
- function _getEditModeFromOperator(sOperator) {
1233
+ function _getEditModeFromOperator(sOperator, bInvalid) {
1214
1234
 
1215
1235
  if (!sOperator) {
1216
1236
  return EditMode.Display;
1237
+ } else if (bInvalid) {
1238
+ return EditMode.ReadOnly;
1217
1239
  }
1218
1240
 
1219
1241
  var oOperator = FilterOperatorUtil.getOperator(sOperator);
@@ -1231,7 +1253,7 @@ sap.ui.define([
1231
1253
 
1232
1254
  var oOperator = sOperator && FilterOperatorUtil.getOperator(sOperator);
1233
1255
 
1234
- if (!oOperator || !oOperator.valueTypes[0]) {
1256
+ if (!oOperator || !oOperator.valueTypes[0] || (oOperator.valueTypes[0] === Operator.ValueType.Static && !oOperator.getStaticText)) {
1235
1257
  return "XL8 L8 M8 S0";
1236
1258
  } else {
1237
1259
  return "";
@@ -1309,6 +1331,10 @@ sap.ui.define([
1309
1331
  if (oBindingContext) {
1310
1332
  oOperatorField.setFieldGroupIds([oBindingContext.getPath()]); // use path to have a ID for every condition
1311
1333
  }
1334
+ if (oOperatorField.getValueState() === ValueState.Error && !oCondition.invalid) {
1335
+ // remove error and show right value
1336
+ oOperatorField.setValue(oOperatorField.getValue());
1337
+ }
1312
1338
  iIndex++;
1313
1339
 
1314
1340
  var oRemoveButton = aGridContent[iIndex];
@@ -1323,8 +1349,7 @@ sap.ui.define([
1323
1349
  var oValue0Field = aGridContent[iIndex];
1324
1350
  var oValue1Field;
1325
1351
  if (oValue0Field.hasOwnProperty("_iValueIndex") && oValue0Field._iValueIndex === 0) {
1326
- var sEditMode = _getEditModeFromOperator(oCondition.operator);
1327
- if (oCondition.values.length > 0 || sEditMode === EditMode.Display) { // as static text for display controls is created after update
1352
+ if (oCondition.values.length > 0) {
1328
1353
  oValueBindingContext = this._oManagedObjectModel.getContext(oBindingContext.getPath() + "values/0/");
1329
1354
  oValue0Field.setBindingContext(oValueBindingContext, "$this");
1330
1355
  oValue0Field.setBindingContext(oBindingContext, "$condition");
@@ -1421,9 +1446,9 @@ sap.ui.define([
1421
1446
  var oField2; // also update second Field if exist
1422
1447
  var oCondition = oBindingContext.getObject();
1423
1448
  var oOperator = FilterOperatorUtil.getOperator(oCondition.operator);
1424
- var bInvalid = false;
1449
+ var bInvalid = !!oCondition.invalid;
1425
1450
 
1426
- if (oOperator.valueTypes.length > 0 && oOperator.valueTypes[0] !== Operator.ValueType.Static) {
1451
+ if (!bInvalid && oOperator.valueTypes.length > 0 && oOperator.valueTypes[0] !== Operator.ValueType.Static) {
1427
1452
  // check only not static operators
1428
1453
  if (oOperator.valueTypes.length > 1 && oOperator.valueTypes[1]) {
1429
1454
  // two fields exist
@@ -1467,14 +1492,26 @@ sap.ui.define([
1467
1492
 
1468
1493
  function _checkInvalidInput(bInvalid) {
1469
1494
 
1495
+ var i = 0;
1496
+
1470
1497
  if (bInvalid !== true) {
1471
1498
  // if already known that invalid input exist -> no additional check needed
1499
+ var aConditions = this.getConditions();
1500
+ for (i = 0; i < aConditions.length; i++) {
1501
+ if (aConditions[i].invalid) {
1502
+ bInvalid = true;
1503
+ break;
1504
+ }
1505
+ }
1506
+ }
1507
+
1508
+ if (bInvalid !== true) {
1472
1509
  var oGrid = this.byId("conditions");
1473
1510
  var aContent = oGrid.getContent();
1474
1511
  bInvalid = false;
1475
- for (var i = 0; i < aContent.length; i++) {
1512
+ for (i = 0; i < aContent.length; i++) {
1476
1513
  var oControl = aContent[i];
1477
- if (oControl instanceof Field && oControl.hasOwnProperty("_iValueIndex") && oControl.getValueState() === ValueState.Error) {
1514
+ if (oControl.hasOwnProperty("_iValueIndex") && oControl.getValueState && oControl.getValueState() === ValueState.Error) {
1478
1515
  bInvalid = true;
1479
1516
  break;
1480
1517
  }
@@ -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.98.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
+ });