@openui5/sap.ui.mdc 1.94.0 → 1.97.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 (243) hide show
  1. package/.reuse/dep5 +12 -12
  2. package/THIRDPARTY.txt +21 -17
  3. package/package.json +4 -4
  4. package/src/sap/ui/mdc/.library +1 -1
  5. package/src/sap/ui/mdc/ActionToolbar.js +231 -334
  6. package/src/sap/ui/mdc/Chart.js +148 -21
  7. package/src/sap/ui/mdc/ChartDelegateNew.js +15 -0
  8. package/src/sap/ui/mdc/ChartNew.js +83 -56
  9. package/src/sap/ui/mdc/ChartNewRenderer.js +2 -2
  10. package/src/sap/ui/mdc/Control.js +4 -3
  11. package/src/sap/ui/mdc/Element.js +5 -4
  12. package/src/sap/ui/mdc/Field.js +3 -2
  13. package/src/sap/ui/mdc/FilterBar.js +1 -10
  14. package/src/sap/ui/mdc/FilterField.js +42 -4
  15. package/src/sap/ui/mdc/Link.js +2 -2
  16. package/src/sap/ui/mdc/MultiValueField.js +2 -1
  17. package/src/sap/ui/mdc/Table.js +285 -186
  18. package/src/sap/ui/mdc/TableDelegate.js +13 -11
  19. package/src/sap/ui/mdc/ValueHelp.js +1500 -0
  20. package/src/sap/ui/mdc/ValueHelpDelegate.js +167 -0
  21. package/src/sap/ui/mdc/actiontoolbar/ActionToolbarAction.js +49 -104
  22. package/src/sap/ui/mdc/chart/DimensionItem.js +3 -3
  23. package/src/sap/ui/mdc/chart/Item.js +2 -3
  24. package/src/sap/ui/mdc/chart/MeasureItem.js +2 -2
  25. package/src/sap/ui/mdc/chart/SelectionDetailsActions.js +21 -2
  26. package/src/sap/ui/mdc/chart/ToolbarHandler.js +237 -226
  27. package/src/sap/ui/mdc/chartNew/ChartSelectionDetailsNew.js +1 -1
  28. package/src/sap/ui/mdc/chartNew/ChartToolbarNew.js +14 -10
  29. package/src/sap/ui/mdc/chartNew/ChartTypeButtonNew.js +1 -1
  30. package/src/sap/ui/mdc/chartNew/DrillStackHandlerNew.js +11 -9
  31. package/src/sap/ui/mdc/chartNew/ItemNew.js +0 -1
  32. package/src/sap/ui/mdc/chartNew/PropertyHelperNew.js +1 -1
  33. package/src/sap/ui/mdc/condition/Condition.js +2 -2
  34. package/src/sap/ui/mdc/condition/ConditionConverter.js +1 -1
  35. package/src/sap/ui/mdc/condition/ConditionModel.js +1 -1
  36. package/src/sap/ui/mdc/condition/FilterConverter.js +1 -1
  37. package/src/sap/ui/mdc/condition/FilterOperatorUtil.js +6 -2
  38. package/src/sap/ui/mdc/condition/Operator.js +9 -9
  39. package/src/sap/ui/mdc/condition/OperatorDynamicDateOption.js +437 -0
  40. package/src/sap/ui/mdc/condition/RangeOperator.js +1 -1
  41. package/src/sap/ui/mdc/designtime/actiontoolbar/ActionToolbar.designtime.js +43 -0
  42. package/src/sap/ui/mdc/designtime/chart/ChartNew.designtime.js +91 -0
  43. package/src/sap/ui/mdc/designtime/field/Field.designtime.js +21 -0
  44. package/src/sap/ui/mdc/designtime/field/FieldBase.designtime.js +104 -0
  45. package/src/sap/ui/mdc/designtime/field/FilterField.designtime.js +22 -0
  46. package/src/sap/ui/mdc/designtime/field/MultiValueField.designtime.js +23 -0
  47. package/src/sap/ui/mdc/designtime/filterbar/FilterBar.designtime.js +19 -0
  48. package/src/sap/ui/mdc/designtime/filterbar/FilterBarBase.designtime.js +31 -0
  49. package/src/sap/ui/mdc/designtime/table/Table.designtime.js +5 -0
  50. package/src/sap/ui/mdc/enum/ContentMode.js +25 -4
  51. package/src/sap/ui/mdc/enum/SelectType.js +43 -0
  52. package/src/sap/ui/mdc/field/BoolFieldHelp.js +1 -1
  53. package/src/sap/ui/mdc/field/ConditionFieldHelp.js +1 -1
  54. package/src/sap/ui/mdc/field/ConditionType.js +67 -35
  55. package/src/sap/ui/mdc/field/ConditionsType.js +12 -10
  56. package/src/sap/ui/mdc/field/CustomFieldHelp.js +1 -1
  57. package/src/sap/ui/mdc/field/CustomFieldInfo.js +1 -1
  58. package/src/sap/ui/mdc/field/DefineConditionPanel.js +13 -2
  59. package/src/sap/ui/mdc/field/DynamicDateRangeConditionsType.js +311 -0
  60. package/src/sap/ui/mdc/field/FieldBase.js +143 -83
  61. package/src/sap/ui/mdc/field/FieldBaseDelegate.js +9 -2
  62. package/src/sap/ui/mdc/field/FieldHelpBase.js +64 -4
  63. package/src/sap/ui/mdc/field/FieldInfoBase.js +9 -1
  64. package/src/sap/ui/mdc/field/FieldInput.js +1 -1
  65. package/src/sap/ui/mdc/field/FieldInputRenderUtil.js +1 -1
  66. package/src/sap/ui/mdc/field/FieldMultiInput.js +1 -1
  67. package/src/sap/ui/mdc/field/FieldValueHelp.js +12 -6
  68. package/src/sap/ui/mdc/field/FieldValueHelpContentWrapperBase.js +1 -1
  69. package/src/sap/ui/mdc/field/FieldValueHelpDelegate.js +20 -0
  70. package/src/sap/ui/mdc/field/FieldValueHelpMTableWrapper.js +1 -1
  71. package/src/sap/ui/mdc/field/FieldValueHelpMdcTableWrapper.js +1 -1
  72. package/src/sap/ui/mdc/field/FieldValueHelpTableWrapperBase.js +2 -1
  73. package/src/sap/ui/mdc/field/FieldValueHelpUITableWrapper.js +1 -1
  74. package/src/sap/ui/mdc/field/InParameter.js +1 -1
  75. package/src/sap/ui/mdc/field/ListFieldHelp.js +1 -1
  76. package/src/sap/ui/mdc/field/ListFieldHelpItem.js +1 -1
  77. package/src/sap/ui/mdc/field/MultiValueFieldItem.js +1 -1
  78. package/src/sap/ui/mdc/field/OutParameter.js +1 -1
  79. package/src/sap/ui/mdc/field/ValueHelpPanel.js +2 -1
  80. package/src/sap/ui/mdc/field/content/BooleanContent.js +16 -4
  81. package/src/sap/ui/mdc/field/content/ContentFactory.js +34 -24
  82. package/src/sap/ui/mdc/field/content/DateContent.js +128 -2
  83. package/src/sap/ui/mdc/field/content/DateTimeContent.js +9 -1
  84. package/src/sap/ui/mdc/field/content/DefaultContent.js +65 -24
  85. package/src/sap/ui/mdc/field/content/LinkContent.js +6 -0
  86. package/src/sap/ui/mdc/field/content/SearchContent.js +21 -3
  87. package/src/sap/ui/mdc/field/content/TimeContent.js +8 -1
  88. package/src/sap/ui/mdc/field/content/UnitContent.js +25 -6
  89. package/src/sap/ui/mdc/filterbar/FilterBarBase.js +43 -24
  90. package/src/sap/ui/mdc/filterbar/PropertyHelper.js +1 -1
  91. package/src/sap/ui/mdc/filterbar/p13n/AdaptationFilterBar.js +1 -1
  92. package/src/sap/ui/mdc/filterbar/vh/FilterBar.js +1 -1
  93. package/src/sap/ui/mdc/flexibility/ActionToolbar.flexibility.js +22 -0
  94. package/src/sap/ui/mdc/flexibility/ActionToolbarAction.flexibility.js +19 -0
  95. package/src/sap/ui/mdc/flexibility/Chart.flexibility.js +1 -1
  96. package/src/sap/ui/mdc/flexibility/FilterBar.flexibility.js +1 -1
  97. package/src/sap/ui/mdc/flexibility/FilterItemFlex.js +1 -1
  98. package/src/sap/ui/mdc/flexibility/ItemBaseFlex.js +203 -197
  99. package/src/sap/ui/mdc/library.js +603 -5
  100. package/src/sap/ui/mdc/link/ContactDetails.js +1 -1
  101. package/src/sap/ui/mdc/link/ContactDetailsAddressItem.js +1 -1
  102. package/src/sap/ui/mdc/link/ContactDetailsEmailItem.js +1 -1
  103. package/src/sap/ui/mdc/link/ContactDetailsItem.js +1 -1
  104. package/src/sap/ui/mdc/link/ContactDetailsPhoneItem.js +1 -1
  105. package/src/sap/ui/mdc/link/Factory.js +1 -1
  106. package/src/sap/ui/mdc/link/FakeFlpConnector.js +1 -1
  107. package/src/sap/ui/mdc/link/LinkItem.js +1 -1
  108. package/src/sap/ui/mdc/link/Panel.js +1 -1
  109. package/src/sap/ui/mdc/link/PanelItem.js +1 -1
  110. package/src/sap/ui/mdc/link/PanelListItem.js +1 -1
  111. package/src/sap/ui/mdc/link/SelectionDialog.js +2 -2
  112. package/src/sap/ui/mdc/link/SelectionDialogItem.js +1 -1
  113. package/src/sap/ui/mdc/link/SemanticObjectMapping.js +1 -1
  114. package/src/sap/ui/mdc/link/SemanticObjectMappingItem.js +1 -1
  115. package/src/sap/ui/mdc/link/SemanticObjectUnavailableAction.js +1 -1
  116. package/src/sap/ui/mdc/messagebundle.properties +37 -3
  117. package/src/sap/ui/mdc/messagebundle_ar.properties +24 -3
  118. package/src/sap/ui/mdc/messagebundle_bg.properties +23 -2
  119. package/src/sap/ui/mdc/messagebundle_ca.properties +23 -2
  120. package/src/sap/ui/mdc/messagebundle_cs.properties +36 -15
  121. package/src/sap/ui/mdc/messagebundle_cy.properties +23 -2
  122. package/src/sap/ui/mdc/messagebundle_da.properties +23 -2
  123. package/src/sap/ui/mdc/messagebundle_de.properties +23 -2
  124. package/src/sap/ui/mdc/messagebundle_el.properties +24 -3
  125. package/src/sap/ui/mdc/messagebundle_en.properties +23 -2
  126. package/src/sap/ui/mdc/messagebundle_en_GB.properties +23 -2
  127. package/src/sap/ui/mdc/messagebundle_en_US_sappsd.properties +23 -2
  128. package/src/sap/ui/mdc/messagebundle_en_US_saptrc.properties +23 -2
  129. package/src/sap/ui/mdc/messagebundle_es.properties +48 -27
  130. package/src/sap/ui/mdc/messagebundle_es_MX.properties +23 -2
  131. package/src/sap/ui/mdc/messagebundle_et.properties +23 -2
  132. package/src/sap/ui/mdc/messagebundle_fi.properties +24 -3
  133. package/src/sap/ui/mdc/messagebundle_fr.properties +36 -15
  134. package/src/sap/ui/mdc/messagebundle_fr_CA.properties +23 -2
  135. package/src/sap/ui/mdc/messagebundle_hi.properties +23 -2
  136. package/src/sap/ui/mdc/messagebundle_hr.properties +23 -2
  137. package/src/sap/ui/mdc/messagebundle_hu.properties +24 -3
  138. package/src/sap/ui/mdc/messagebundle_id.properties +23 -2
  139. package/src/sap/ui/mdc/messagebundle_it.properties +46 -25
  140. package/src/sap/ui/mdc/messagebundle_iw.properties +23 -2
  141. package/src/sap/ui/mdc/messagebundle_ja.properties +30 -9
  142. package/src/sap/ui/mdc/messagebundle_kk.properties +23 -2
  143. package/src/sap/ui/mdc/messagebundle_ko.properties +23 -2
  144. package/src/sap/ui/mdc/messagebundle_lt.properties +23 -2
  145. package/src/sap/ui/mdc/messagebundle_lv.properties +23 -2
  146. package/src/sap/ui/mdc/messagebundle_ms.properties +23 -2
  147. package/src/sap/ui/mdc/messagebundle_nl.properties +24 -3
  148. package/src/sap/ui/mdc/messagebundle_no.properties +30 -9
  149. package/src/sap/ui/mdc/messagebundle_pl.properties +27 -6
  150. package/src/sap/ui/mdc/messagebundle_pt.properties +24 -3
  151. package/src/sap/ui/mdc/messagebundle_pt_PT.properties +23 -2
  152. package/src/sap/ui/mdc/messagebundle_ro.properties +26 -5
  153. package/src/sap/ui/mdc/messagebundle_ru.properties +23 -2
  154. package/src/sap/ui/mdc/messagebundle_sh.properties +23 -2
  155. package/src/sap/ui/mdc/messagebundle_sk.properties +24 -3
  156. package/src/sap/ui/mdc/messagebundle_sl.properties +23 -2
  157. package/src/sap/ui/mdc/messagebundle_sv.properties +24 -3
  158. package/src/sap/ui/mdc/messagebundle_th.properties +29 -8
  159. package/src/sap/ui/mdc/messagebundle_tr.properties +23 -2
  160. package/src/sap/ui/mdc/messagebundle_uk.properties +23 -2
  161. package/src/sap/ui/mdc/messagebundle_vi.properties +23 -2
  162. package/src/sap/ui/mdc/messagebundle_zh_CN.properties +23 -2
  163. package/src/sap/ui/mdc/messagebundle_zh_TW.properties +23 -2
  164. package/src/sap/ui/mdc/mixin/AdaptationMixin.js +1 -1
  165. package/src/sap/ui/mdc/mixin/DelegateMixin.js +1 -1
  166. package/src/sap/ui/mdc/mixin/FilterIntegrationMixin.js +3 -3
  167. package/src/sap/ui/mdc/mixin/PromiseMixin.js +94 -0
  168. package/src/sap/ui/mdc/odata/v4/ChartPropertyHelperNew.js +1 -1
  169. package/src/sap/ui/mdc/odata/v4/TableDelegate.js +65 -37
  170. package/src/sap/ui/mdc/odata/v4/ValueHelpDelegate.js +94 -0
  171. package/src/sap/ui/mdc/odata/v4/vizChart/ChartDelegateNew.js +221 -32
  172. package/src/sap/ui/mdc/p13n/Engine.js +34 -10
  173. package/src/sap/ui/mdc/p13n/P13nBuilder.js +2 -2
  174. package/src/sap/ui/mdc/p13n/PersistenceProvider.js +21 -10
  175. package/src/sap/ui/mdc/p13n/PropertyHelper.js +1 -1
  176. package/src/sap/ui/mdc/p13n/StateUtil.js +20 -0
  177. package/src/sap/ui/mdc/p13n/UIManager.js +11 -6
  178. package/src/sap/ui/mdc/p13n/{DefaultProviderRegistry.js → modules/DefaultProviderRegistry.js} +2 -2
  179. package/src/sap/ui/mdc/p13n/modules/StateHandlerRegistry.js +86 -0
  180. package/src/sap/ui/mdc/p13n/panels/ActionToolbarPanel.js +59 -0
  181. package/src/sap/ui/mdc/p13n/panels/AdaptFiltersPanel.js +20 -5
  182. package/src/sap/ui/mdc/p13n/panels/BasePanel.js +8 -8
  183. package/src/sap/ui/mdc/p13n/panels/ChartItemPanel.js +1 -2
  184. package/src/sap/ui/mdc/p13n/panels/ChartItemPanelNew.js +1179 -0
  185. package/src/sap/ui/mdc/p13n/panels/GroupView.js +1 -2
  186. package/src/sap/ui/mdc/p13n/panels/ListView.js +6 -4
  187. package/src/sap/ui/mdc/p13n/panels/SelectionPanel.js +0 -1
  188. package/src/sap/ui/mdc/p13n/panels/SortPanel.js +0 -1
  189. package/src/sap/ui/mdc/p13n/subcontroller/ActionToolbarController.js +89 -0
  190. package/src/sap/ui/mdc/p13n/subcontroller/AggregateController.js +1 -1
  191. package/src/sap/ui/mdc/p13n/subcontroller/BaseController.js +9 -6
  192. package/src/sap/ui/mdc/p13n/subcontroller/ChartItemController.js +33 -4
  193. package/src/sap/ui/mdc/p13n/subcontroller/ColumnController.js +9 -15
  194. package/src/sap/ui/mdc/p13n/subcontroller/GroupController.js +5 -12
  195. package/src/sap/ui/mdc/p13n/subcontroller/SortController.js +19 -21
  196. package/src/sap/ui/mdc/table/Column.js +67 -17
  197. package/src/sap/ui/mdc/table/CreationRow.js +14 -13
  198. package/src/sap/ui/mdc/table/GridTableType.js +11 -11
  199. package/src/sap/ui/mdc/table/PropertyHelper.js +120 -17
  200. package/src/sap/ui/mdc/table/ResponsiveTableType.js +35 -26
  201. package/src/sap/ui/mdc/table/RowSettings.js +8 -6
  202. package/src/sap/ui/mdc/table/TableTypeBase.js +4 -5
  203. package/src/sap/ui/mdc/table/V4AnalyticsPropertyHelper.js +15 -71
  204. package/src/sap/ui/mdc/themes/base/Chart.less +3 -0
  205. package/src/sap/ui/mdc/themes/base/ValueHelpDialog.less +51 -21
  206. package/src/sap/ui/mdc/themes/base/library.source.less +1 -0
  207. package/src/sap/ui/mdc/ui/Container.js +2 -2
  208. package/src/sap/ui/mdc/ui/ContainerItem.js +2 -2
  209. package/src/sap/ui/mdc/util/Common.js +26 -0
  210. package/src/sap/ui/mdc/util/PromiseCache.js +266 -0
  211. package/src/sap/ui/mdc/util/PropertyHelper.js +114 -304
  212. package/src/sap/ui/mdc/valuehelp/Dialog.js +499 -0
  213. package/src/sap/ui/mdc/valuehelp/Popover.js +373 -0
  214. package/src/sap/ui/mdc/valuehelp/base/Container.js +673 -0
  215. package/src/sap/ui/mdc/valuehelp/base/Content.js +658 -0
  216. package/src/sap/ui/mdc/valuehelp/base/DialogTab.js +139 -0
  217. package/src/sap/ui/mdc/valuehelp/base/FilterableListContent.js +584 -0
  218. package/src/sap/ui/mdc/valuehelp/base/ListContent.js +133 -0
  219. package/src/sap/ui/mdc/valuehelp/content/Bool.js +318 -0
  220. package/src/sap/ui/mdc/valuehelp/content/Conditions.js +270 -0
  221. package/src/sap/ui/mdc/valuehelp/content/FixedList.js +532 -0
  222. package/src/sap/ui/mdc/valuehelp/content/MDCTable.js +643 -0
  223. package/src/sap/ui/mdc/valuehelp/content/MTable.js +928 -0
  224. package/test/sap/ui/mdc/testutils/opa/TestLibrary.js +3 -2
  225. package/test/sap/ui/mdc/testutils/opa/actions/OpenContextMenu.js +48 -0
  226. package/test/sap/ui/mdc/testutils/opa/chartNew/ActionsBase.js +310 -0
  227. package/test/sap/ui/mdc/testutils/opa/chartNew/ActionsViz.js +39 -0
  228. package/test/sap/ui/mdc/testutils/opa/chartNew/AssertionsBase.js +118 -0
  229. package/test/sap/ui/mdc/testutils/opa/chartNew/AssertionsViz.js +137 -0
  230. package/test/sap/ui/mdc/testutils/opa/chartNew/ChartNew.js +24 -0
  231. package/test/sap/ui/mdc/testutils/opa/chartNew/TestObjects.js +289 -0
  232. package/test/sap/ui/mdc/testutils/opa/filterbar/Actions.js +250 -0
  233. package/test/sap/ui/mdc/testutils/opa/filterbar/Assertions.js +91 -0
  234. package/test/sap/ui/mdc/testutils/opa/filterbar/TestObjects.js +137 -0
  235. package/test/sap/ui/mdc/testutils/opa/filterbar/Util.js +25 -0
  236. package/test/sap/ui/mdc/testutils/opa/p13n/Actions.js +407 -93
  237. package/test/sap/ui/mdc/testutils/opa/p13n/Util.js +4 -1
  238. package/test/sap/ui/mdc/testutils/opa/p13n/{waitForP13nButtonWithParentAndIcon.js → waitForP13nButtonWithMatchers.js} +5 -18
  239. package/test/sap/ui/mdc/testutils/opa/table/TestObjects.js +0 -1
  240. package/src/sap/ui/mdc/p13n/panels/GroupPanel.js +0 -111
  241. package/src/sap/ui/mdc/p13n/panels/QueryPanel.js +0 -322
  242. package/src/sap/ui/mdc/p13n/panels/SortQueryPanel.js +0 -133
  243. package/src/sap/ui/mdc/p13n/panels/Wrapper.js +0 -203
@@ -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.94.0
43
+ * @version 1.97.0
44
44
  * @constructor
45
45
  * @abstract
46
46
  * @private
@@ -712,7 +712,7 @@ sap.ui.define([
712
712
 
713
713
  /**
714
714
  * Calls initialization of the FieldHelp before the FieldHelp is really opened.
715
- * This is called in typeahead on first letter before the FieldHelp is opened with a delay. So the
715
+ * This is called in Typeahead on first letter before the FieldHelp is opened with a delay. So the
716
716
  * content can be determined in the delegate coding early.
717
717
  *
718
718
  * <b>Note:</b> This function must only be called by the control the <code>FieldHelp</code> element
@@ -1091,7 +1091,7 @@ sap.ui.define([
1091
1091
  */
1092
1092
  FieldHelpBase.prototype.isValidationSupported = function() {
1093
1093
  // to be implemented by the concrete FieldHelp
1094
- return true;
1094
+ return this.isUsableForValidation();
1095
1095
  };
1096
1096
 
1097
1097
  /**
@@ -1122,7 +1122,28 @@ sap.ui.define([
1122
1122
  */
1123
1123
  FieldHelpBase.prototype.getItemForValue = function(vValue, vParsedValue, oInParameters, oOutParameters, oBindingContext, bCheckKeyFirst, bCheckKey, bCheckDescription, oConditionModel, sConditionModelName) {
1124
1124
 
1125
- return _getItemForValue.call(this, vValue, vParsedValue, oInParameters, oOutParameters, oBindingContext, bCheckKeyFirst && bCheckKey, bCheckKey, bCheckDescription, oConditionModel, sConditionModelName);
1125
+ if (typeof vValue !== "object" || !vValue.hasOwnProperty("value")) {
1126
+ // not new config object -> map old properties to config
1127
+ vValue = {
1128
+ value: vValue,
1129
+ parsedValue: vParsedValue,
1130
+ inParameters: oInParameters, // TODO: needed?
1131
+ outParameters: oOutParameters, // TODO: needed?
1132
+ bindingContext: oBindingContext,
1133
+ checkKeyFirst: bCheckKeyFirst, // TODO: not longer needed?
1134
+ checkKey: bCheckKey,
1135
+ checkDescription: bCheckDescription,
1136
+ conditionModel: oConditionModel,
1137
+ conditionModelName: sConditionModelName
1138
+ };
1139
+ }
1140
+
1141
+ if (vValue && typeof vValue === "object" && vValue.hasOwnProperty("value")) {
1142
+ // map new Config to old API
1143
+ return _getItemForValue.call(this, vValue.value, vValue.parsedValue, vValue.inParameters, vValue.outParameters, vValue.bindingContext, vValue.checkKeyFirst && vValue.checkKey, vValue.checkKey, vValue.checkDescription, vValue.conditionModel, vValue.conditionModelName);
1144
+ } else {
1145
+ return _getItemForValue.call(this, vValue, vParsedValue, oInParameters, oOutParameters, oBindingContext, bCheckKeyFirst && bCheckKey, bCheckKey, bCheckDescription, oConditionModel, sConditionModelName);
1146
+ }
1126
1147
 
1127
1148
  };
1128
1149
 
@@ -1476,6 +1497,45 @@ sap.ui.define([
1476
1497
 
1477
1498
  }
1478
1499
 
1500
+ /// renaming of functions -> call original ones
1501
+ FieldHelpBase.prototype.isTypeaheadSupported = function() {
1502
+ return this.openByTyping();
1503
+ };
1504
+ FieldHelpBase.prototype.shouldOpenOnClick = function() {
1505
+ return this.openByClick();
1506
+ };
1507
+ FieldHelpBase.prototype.onControlChange = function() {
1508
+ return this.onFieldChange();
1509
+ };
1510
+
1511
+ FieldHelpBase.prototype.getAriaAttributes = function(iMaxConditions) {
1512
+
1513
+ return {
1514
+ contentId: this.getContentId(),
1515
+ ariaHasPopup: this.getAriaHasPopup(),
1516
+ role: "combobox",
1517
+ roleDescription: this.getRoleDescription(iMaxConditions),
1518
+ valueHelpEnabled: this.getValueHelpEnabled()
1519
+ };
1520
+
1521
+ };
1522
+
1523
+ FieldHelpBase.prototype.attachEvent = function(sEventId, oData, fnFunction, oListener) {
1524
+ if (sEventId === "navigated") {
1525
+ return Element.prototype.attachEvent.apply(this, ["navigate", oData, fnFunction, oListener]);
1526
+ } else {
1527
+ return Element.prototype.attachEvent.apply(this, arguments);
1528
+ }
1529
+ };
1530
+
1531
+ FieldHelpBase.prototype.detachEvent = function(sEventId, fnFunction, oListener) {
1532
+ if (sEventId === "navigated") {
1533
+ return Element.prototype.detachEvent.apply(this, ["navigate", fnFunction, oListener]);
1534
+ } else {
1535
+ return Element.prototype.detachEvent.apply(this, arguments);
1536
+ }
1537
+ };
1538
+
1479
1539
  return FieldHelpBase;
1480
1540
 
1481
1541
  });
@@ -27,10 +27,12 @@ sap.ui.define([
27
27
  * @param {object} [mSettings] Initial settings for the new control
28
28
  * @class A <code>FieldInfoBase</code> element is a base class that shows any kind of information related to the <code>Field</code> control, for example, navigation targets or contact details.
29
29
  * @extends sap.ui.mdc.Element
30
- * @version 1.94.0
30
+ * @version 1.97.0
31
31
  * @constructor
32
32
  * @private
33
33
  * @since 1.54.0
34
+ * @experimental As of version 1.54
35
+ * @ui5-restricted sap.ui.mdc
34
36
  * @alias sap.ui.mdc.field.FieldInfoBase
35
37
  * @ui5-metamodel This control/element also will be described in the UI5 (legacy) designtime metamodel
36
38
  */
@@ -39,7 +41,13 @@ sap.ui.define([
39
41
  metadata: {
40
42
  library: "sap.ui.mdc",
41
43
  events: {
44
+ /**
45
+ * This event is fired if the data was updated.
46
+ */
42
47
  dataUpdate: {},
48
+ /**
49
+ * This event is fired after the popover is opened.
50
+ */
43
51
  popoverAfterOpen: {}
44
52
  }
45
53
  }
@@ -23,7 +23,7 @@ sap.ui.define([
23
23
  * @param {object} [mSettings] Initial settings for the new control
24
24
  * @class The <code>FieldInput</code> control is used to render an input field inside a control based on {@link sap.ui.mdc.field.FieldBase FieldBase}.
25
25
  * @extends sap.m.Input
26
- * @version 1.94.0
26
+ * @version 1.97.0
27
27
  * @constructor
28
28
  * @abstract
29
29
  * @private
@@ -16,7 +16,7 @@ sap.ui.define([
16
16
  * @class Functions uses in <code>FieldInputRenderer</code> and <code>FieldMultiInputRenderer</code> to adjust aria attributes.
17
17
  *
18
18
  * @author SAP SE
19
- * @version 1.94.0
19
+ * @version 1.97.0
20
20
  * @since 1.86.0
21
21
  * @alias sap.ui.mdc.field.FieldInputRenderUtil
22
22
  *
@@ -23,7 +23,7 @@ sap.ui.define([
23
23
  * @param {object} [mSettings] Initial settings for the new control
24
24
  * @class The <code>FieldMultiInput</code> control is used to render a multi-input field inside a control based on {@link sap.ui.mdc.field.FieldBase FieldBase}.
25
25
  * @extends sap.m.MultiInput
26
- * @version 1.94.0
26
+ * @version 1.97.0
27
27
  * @constructor
28
28
  * @abstract
29
29
  * @private
@@ -74,7 +74,7 @@ sap.ui.define([
74
74
  * @param {object} [mSettings] Initial settings for the new control
75
75
  * @class A field help used in the <code>FieldHelp</code> association of controls based on {@link sap.ui.mdc.field.FieldBase FieldBase} that shows a value help dialog.
76
76
  * @extends sap.ui.mdc.field.FieldHelpBase
77
- * @version 1.94.0
77
+ * @version 1.97.0
78
78
  * @constructor
79
79
  * @private
80
80
  * @ui5-restricted sap.fe
@@ -648,11 +648,11 @@ sap.ui.define([
648
648
 
649
649
  if (oWrapper) {
650
650
  oWrapper.fieldHelpOpen(false);
651
- _updateSelectedItems.call(this);
652
- }
653
- this._aOldConditions = this.getConditions();
654
- oDialog.open();
655
- this._bDialogOpen = true; // to know already during opening animation
651
+ _updateSelectedItems.call(this);
652
+ }
653
+ this._aOldConditions = this.getConditions();
654
+ oDialog.open();
655
+ this._bDialogOpen = true; // to know already during opening animation
656
656
  } else {
657
657
  this._bOpen = true;
658
658
  }
@@ -1369,6 +1369,10 @@ sap.ui.define([
1369
1369
  if (oWrapper) {
1370
1370
  var oValueHelpPanel = oDialog.getContent()[0];
1371
1371
  _setContentOnValueHelpPanel.call(this, oValueHelpPanel, oWrapper.getDialogContent());
1372
+ if (!this._bApplyFilter && !this._bClosing && (this.isOpen() || this._bOpen) && !oWrapper.isSuspended()) {
1373
+ // in case ListBinding changed or is not longer suspended
1374
+ this._bApplyFilter = true;
1375
+ }
1372
1376
  }
1373
1377
  }
1374
1378
  }
@@ -2601,6 +2605,8 @@ sap.ui.define([
2601
2605
  liveMode: !oWrapper.isSuspended(), // if suspended, no live search
2602
2606
  showGoButton: false
2603
2607
  });
2608
+ oFilterBar.setInternalConditions(this._oConditions); // if already InParameter or SearchValue set, move it to FilterBar
2609
+ this._oConditions = {};
2604
2610
  this.setAggregation("_filterBar", oFilterBar, true);
2605
2611
  }
2606
2612
 
@@ -23,7 +23,7 @@ sap.ui.define([
23
23
  * @param {object} [mSettings] Initial settings for the new control
24
24
  * @class Base type for <code>FieldValueHelp</code> content control wrapper.
25
25
  * @extends sap.ui.core.Element
26
- * @version 1.94.0
26
+ * @version 1.97.0
27
27
  * @constructor
28
28
  * @abstract
29
29
  * @private
@@ -75,6 +75,26 @@ sap.ui.define([
75
75
 
76
76
  };
77
77
 
78
+ /**
79
+ * Changes the search string.
80
+ *
81
+ * If <code>$search</code> is used, depending on which back-end service is used, the search string might need to be escaped.
82
+ *
83
+ * @param {object} oPayload Payload for delegate
84
+ * @param {boolean} bTypeahead <code>true</code> if the search is called for a type-ahead
85
+ * @param {string} sSearch Search string
86
+ * @returns {string} Search string to use
87
+ * @since 1.97.0
88
+ * @private
89
+ * @ui5-restricted sap.fe
90
+ * @MDC_PUBLIC_CANDIDATE
91
+ */
92
+ FieldValueHelpDelegate.adjustSearch = function(oPayload, bTypeahead, sSearch) {
93
+
94
+ return sSearch;
95
+
96
+ };
97
+
78
98
  /**
79
99
  * Executes a filter in a <code>ListBinding</code>.
80
100
  *
@@ -34,7 +34,7 @@ sap.ui.define([
34
34
  * @param {object} [mSettings] Initial settings for the new control
35
35
  * @class Wrapper to use a <code>sap.m.Table</code> control as content of a <code>FieldValueHelp</code> element
36
36
  * @extends sap.ui.mdc.field.FieldValueHelpTableWrapperBase
37
- * @version 1.94.0
37
+ * @version 1.97.0
38
38
  * @constructor
39
39
  * @private
40
40
  * @ui5-restricted sap.fe
@@ -40,7 +40,7 @@ sap.ui.define([
40
40
  * @param {object} [mSettings] Initial settings for the new control
41
41
  * @class Wrapper to use a <code>sap.m.Table</code> control as content of a <code>FieldValueHelp</code> element
42
42
  * @extends sap.ui.mdc.field.FieldValueHelpTableWrapperBase
43
- * @version 1.94.0
43
+ * @version 1.97.0
44
44
  * @constructor
45
45
  * @private
46
46
  * @ui5-restricted sap.fe
@@ -47,7 +47,7 @@ sap.ui.define([
47
47
  * @param {object} [mSettings] Initial settings for the new control
48
48
  * @class Wrapper to use a table control as content of a <code>FieldValueHelp</code> element
49
49
  * @extends sap.ui.mdc.field.FieldValueHelpContentWrapperBase
50
- * @version 1.94.0
50
+ * @version 1.97.0
51
51
  * @constructor
52
52
  * @private
53
53
  * @experimental As of version 1.88
@@ -561,6 +561,7 @@ sap.ui.define([
561
561
  oListBinding.suspend();
562
562
  }
563
563
 
564
+ sSearch = oDelegate.delegate.adjustSearch(oDelegate.payload, this._bSuggestion, sSearch);
564
565
  oDelegate.delegate.executeSearch(oDelegate.payload, oListBinding, sSearch);
565
566
  Log.info("ValueHelp-Search: " + sSearch);
566
567
  }
@@ -31,7 +31,7 @@ sap.ui.define([
31
31
  * @param {object} [mSettings] Initial settings for the new control
32
32
  * @class Wrapper to use a <code>sap.m.Table</code> control as content of a <code>FieldValueHelp</code> element
33
33
  * @extends sap.ui.mdc.field.FieldValueHelpTableWrapperBase
34
- * @version 1.94.0
34
+ * @version 1.97.0
35
35
  * @constructor
36
36
  * @private
37
37
  * @ui5-restricted sap.ui.mdc
@@ -20,7 +20,7 @@ sap.ui.define([
20
20
  * @param {object} [mSettings] Initial settings for the new control
21
21
  * @class The <code>InParameter</code> element is used in the {@link sap.ui.mdc.field.FieldValueHelp FieldValueHelp} element.
22
22
  * @extends sap.ui.core.Element
23
- * @version 1.94.0
23
+ * @version 1.97.0
24
24
  * @constructor
25
25
  * @abstract
26
26
  * @private
@@ -39,7 +39,7 @@ sap.ui.define([
39
39
  * @param {object} [mSettings] Initial settings for the new control
40
40
  * @class A field help used in the <code>FieldHelp</code> association of controls based on {@link sap.ui.mdc.field.FieldBase FieldBase} that shows a list of items.
41
41
  * @extends sap.ui.mdc.field.FieldHelpBase
42
- * @version 1.94.0
42
+ * @version 1.97.0
43
43
  * @constructor
44
44
  * @private
45
45
  * @ui5-restricted sap.fe
@@ -23,7 +23,7 @@ sap.ui.define([
23
23
  * @extends sap.ui.core.ListItem
24
24
  *
25
25
  * @author SAP SE
26
- * @version 1.94.0
26
+ * @version 1.97.0
27
27
  *
28
28
  * @private
29
29
  * @ui5-restricted sap.fe
@@ -20,7 +20,7 @@ sap.ui.define([
20
20
  * @param {object} [mSettings] Initial settings for the new control
21
21
  * @class Base type for <code>MultiValueFieldItem</code> control.
22
22
  * @extends sap.ui.core.Element
23
- * @version 1.94.0
23
+ * @version 1.97.0
24
24
  * @constructor
25
25
  * @abstract
26
26
  * @private
@@ -22,7 +22,7 @@ sap.ui.define([
22
22
  * @param {object} [mSettings] Initial settings for the new control
23
23
  * @class The <code>OutParameter</code> element is used in the {@link sap.ui.mdc.field.FieldValueHelp FieldValueHelp} element.
24
24
  * @extends sap.ui.mdc.field.InParameter
25
- * @version 1.94.0
25
+ * @version 1.97.0
26
26
  * @constructor
27
27
  * @abstract
28
28
  * @private
@@ -37,7 +37,7 @@ sap.ui.define([
37
37
  * @extends sap.ui.core.XMLComposite
38
38
  *
39
39
  * @author SAP SE
40
- * @version 1.94.0
40
+ * @version 1.97.0
41
41
  *
42
42
  * @constructor
43
43
  * @alias sap.ui.mdc.field.ValueHelpPanel
@@ -124,6 +124,7 @@ sap.ui.define([
124
124
 
125
125
  if (!this._oTokenizer) {
126
126
  this._oTokenizer = this.byId("VHPTokenizer");
127
+ this._oTokenizer.addAriaDescribedBy( this._oTokenizer.getTokensInfoId());
127
128
  this._oTokenizer._oScroller.setHorizontal(true);
128
129
  }
129
130
  this._oTokenizerPanel = this.byId("VHPTokenizerPanel");
@@ -21,20 +21,32 @@ sap.ui.define([
21
21
  * @MDC_PUBLIC_CANDIDATE
22
22
  */
23
23
  var BooleanContent = Object.assign({}, DefaultContent, {
24
- getEditMulti: function() {
24
+ getDisplayMultiValue: function() {
25
+ return [null];
26
+ },
27
+ getDisplayMultiLine: function() {
28
+ return [null];
29
+ },
30
+ getEditMultiValue: function() {
25
31
  return [null];
26
32
  },
27
33
  getEditMultiLine: function() {
28
34
  return [null];
29
35
  },
30
36
  getUseDefaultFieldHelp: function() {
31
- return { name: "bool", oneOperatorSingle: true, oneOperatorMulti: true };
37
+ return { name: "bool", oneOperatorSingle: true, oneOperatorMulti: true, single: true, multi: true };
32
38
  },
33
- createEditMulti: function() {
34
- throw new Error("sap.ui.mdc.field.content.BooleanContent - createEditMulti not defined!");
39
+ createEditMultiValue: function() {
40
+ throw new Error("sap.ui.mdc.field.content.BooleanContent - createEditMultiValue not defined!");
35
41
  },
36
42
  createEditMultiLine: function() {
37
43
  throw new Error("sap.ui.mdc.field.content.BooleanContent - createEditMultiLine not defined!");
44
+ },
45
+ createDisplayMultiValue: function() {
46
+ throw new Error("sap.ui.mdc.field.content.BooleanContent - createDisplayMultiValue not defined!");
47
+ },
48
+ createDisplayMultiLine: function() {
49
+ throw new Error("sap.ui.mdc.field.content.BooleanContent - createDisplayMultiLine not defined!");
38
50
  }
39
51
  });
40
52
 
@@ -140,14 +140,22 @@ sap.ui.define([
140
140
  ContentFactory.prototype.getContentMode = function(oContentType, sEditMode, iMaxConditions, bMultipleLines, aOperators) {
141
141
  var sContentMode = ContentMode.Edit;
142
142
  if (sEditMode === EditMode.Display) {
143
- sContentMode = bMultipleLines ? ContentMode.DisplayMultiLine : ContentMode.Display;
143
+ if (iMaxConditions !== 1) {
144
+ sContentMode = ContentMode.DisplayMultiValue;
145
+ } else if (bMultipleLines) {
146
+ sContentMode = ContentMode.DisplayMultiLine;
147
+ } else {
148
+ sContentMode = ContentMode.Display;
149
+ }
144
150
  } else if (iMaxConditions !== 1) {
145
- sContentMode = ContentMode.EditMulti;
151
+ sContentMode = ContentMode.EditMultiValue;
146
152
  } else if (bMultipleLines) {
147
153
  sContentMode = ContentMode.EditMultiLine;
148
154
  } else if (aOperators.length === 1 && oContentType.getEditOperator() && oContentType.getEditOperator()[aOperators[0]]) {
149
155
  this._sOperator = aOperators[0];
150
156
  sContentMode = ContentMode.EditOperator;
157
+ } else if (this.getField().getFieldHelp()) { // if FieldHelp assigned use control supporting help
158
+ sContentMode = ContentMode.EditForHelp;
151
159
  }
152
160
  return sContentMode;
153
161
  };
@@ -263,42 +271,44 @@ sap.ui.define([
263
271
  return this._bHideOperator;
264
272
  };
265
273
 
266
- ContentFactory.prototype.getConditionType = function() {
267
- if (!this._oConditionType) {
268
- var oFormatOptions = this.getField()._getFormatOptions();
269
- this._oConditionType = new ConditionType(oFormatOptions);
270
- 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
+ }
271
288
  }
289
+ return this[sCondType];
272
290
 
273
- return this._oConditionType;
291
+ }
292
+
293
+ ContentFactory.prototype.getConditionType = function(bSkipConditionTypeGeneration) {
294
+ return _getCondType.call(this, "_oConditionType", ConditionType, this.getField()._getFormatOptions.bind(this.getField()), bSkipConditionTypeGeneration);
274
295
  };
275
296
 
276
297
  ContentFactory.prototype.setConditionType = function(oConditionType) {
277
298
  this._oConditionType = oConditionType;
278
299
  };
279
300
 
280
- ContentFactory.prototype.getConditionsType = function() {
281
- if (!this._oConditionsType) {
282
- var oFormatOptions = this.getField()._getFormatOptions();
283
- this._oConditionsType = new ConditionsType(oFormatOptions);
284
- this._oConditionsType._bCreatedByField = true;
285
- }
286
-
287
- 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);
288
304
  };
289
305
 
290
306
  ContentFactory.prototype.setConditionsType = function(oConditionsType) {
291
307
  this._oConditionsType = oConditionsType;
292
308
  };
293
309
 
294
- ContentFactory.prototype.getUnitConditionsType = function() {
295
- if (!this._oUnitConditionsType) {
296
- var oFormatOptions = this.getField()._getUnitFormatOptions();
297
- this._oUnitConditionsType = new ConditionsType(oFormatOptions);
298
- this._oUnitConditionsType._bCreatedByField = true;
299
- }
300
-
301
- return this._oUnitConditionsType;
310
+ ContentFactory.prototype.getUnitConditionsType = function(bSkipConditionsTypeGeneration) {
311
+ return _getCondType.call(this, "_oUnitConditionsType", ConditionsType, this.getField()._getUnitFormatOptions.bind(this.getField()), bSkipConditionsTypeGeneration);
302
312
  };
303
313
 
304
314
  ContentFactory.prototype.getContentConditionTypes = function() {
@@ -7,11 +7,22 @@ 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