@openui5/sap.ui.mdc 1.99.0 → 1.100.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (173) hide show
  1. package/THIRDPARTY.txt +2 -2
  2. package/package.json +4 -4
  3. package/src/sap/ui/mdc/.library +1 -1
  4. package/src/sap/ui/mdc/ActionToolbar.js +1 -1
  5. package/src/sap/ui/mdc/Chart.js +50 -32
  6. package/src/sap/ui/mdc/ChartDelegate.js +66 -21
  7. package/src/sap/ui/mdc/ChartRenderer.js +1 -1
  8. package/src/sap/ui/mdc/Control.js +11 -6
  9. package/src/sap/ui/mdc/Element.js +10 -6
  10. package/src/sap/ui/mdc/Field.js +19 -4
  11. package/src/sap/ui/mdc/FilterBar.js +1 -1
  12. package/src/sap/ui/mdc/FilterBarDelegate.js +26 -0
  13. package/src/sap/ui/mdc/FilterField.js +41 -3
  14. package/src/sap/ui/mdc/Link.js +3 -3
  15. package/src/sap/ui/mdc/MultiValueField.js +11 -1
  16. package/src/sap/ui/mdc/Table.js +73 -39
  17. package/src/sap/ui/mdc/TableDelegate.js +28 -1
  18. package/src/sap/ui/mdc/ValueHelp.js +8 -3
  19. package/src/sap/ui/mdc/ValueHelpDelegate.js +2 -1
  20. package/src/sap/ui/mdc/actiontoolbar/ActionToolbarAction.js +1 -1
  21. package/src/sap/ui/mdc/actiontoolbar/ActionToolbarActionRenderer.js +1 -1
  22. package/src/sap/ui/mdc/chart/ChartSelectionDetails.js +1 -1
  23. package/src/sap/ui/mdc/chart/ChartToolbar.js +13 -6
  24. package/src/sap/ui/mdc/chart/DrillBreadcrumbs.js +7 -7
  25. package/src/sap/ui/mdc/chart/DrillStackHandler.js +6 -6
  26. package/src/sap/ui/mdc/chart/PropertyHelper.js +1 -1
  27. package/src/sap/ui/mdc/condition/Condition.js +1 -1
  28. package/src/sap/ui/mdc/condition/ConditionConverter.js +1 -1
  29. package/src/sap/ui/mdc/condition/ConditionModel.js +1 -1
  30. package/src/sap/ui/mdc/condition/FilterConverter.js +4 -2
  31. package/src/sap/ui/mdc/condition/FilterOperatorUtil.js +133 -25
  32. package/src/sap/ui/mdc/condition/Operator.js +4 -2
  33. package/src/sap/ui/mdc/condition/OperatorDynamicDateOption.js +78 -24
  34. package/src/sap/ui/mdc/condition/RangeOperator.js +5 -5
  35. package/src/sap/ui/mdc/designtime/Util.js +63 -0
  36. package/src/sap/ui/mdc/designtime/actiontoolbar/ActionToolbar.designtime.js +23 -30
  37. package/src/sap/ui/mdc/designtime/chart/Chart.designtime.js +3 -0
  38. package/src/sap/ui/mdc/designtime/link/PanelItem.designtime.js +3 -1
  39. package/src/sap/ui/mdc/designtime/table/Table.designtime.js +39 -52
  40. package/src/sap/ui/mdc/field/BoolFieldHelp.js +1 -1
  41. package/src/sap/ui/mdc/field/ConditionFieldHelp.js +1 -1
  42. package/src/sap/ui/mdc/field/ConditionType.js +15 -4
  43. package/src/sap/ui/mdc/field/ConditionsType.js +2 -1
  44. package/src/sap/ui/mdc/field/CustomFieldHelp.js +1 -1
  45. package/src/sap/ui/mdc/field/CustomFieldInfo.js +1 -1
  46. package/src/sap/ui/mdc/field/DefineConditionPanel.js +16 -5
  47. package/src/sap/ui/mdc/field/DynamicDateRangeConditionsType.js +76 -19
  48. package/src/sap/ui/mdc/field/FieldBase.js +62 -11
  49. package/src/sap/ui/mdc/field/FieldBaseDelegate.js +1 -1
  50. package/src/sap/ui/mdc/field/FieldHelpBase.js +1 -1
  51. package/src/sap/ui/mdc/field/FieldInfoBase.js +2 -1
  52. package/src/sap/ui/mdc/field/FieldInput.js +1 -1
  53. package/src/sap/ui/mdc/field/FieldInputRenderUtil.js +1 -1
  54. package/src/sap/ui/mdc/field/FieldMultiInput.js +1 -1
  55. package/src/sap/ui/mdc/field/FieldValueHelp.js +4 -1
  56. package/src/sap/ui/mdc/field/FieldValueHelpContentWrapperBase.js +1 -1
  57. package/src/sap/ui/mdc/field/FieldValueHelpDelegate.js +1 -1
  58. package/src/sap/ui/mdc/field/FieldValueHelpMTableWrapper.js +5 -4
  59. package/src/sap/ui/mdc/field/FieldValueHelpMdcTableWrapper.js +5 -3
  60. package/src/sap/ui/mdc/field/FieldValueHelpTableWrapperBase.js +1 -1
  61. package/src/sap/ui/mdc/field/FieldValueHelpUITableWrapper.js +7 -7
  62. package/src/sap/ui/mdc/field/InParameter.js +1 -1
  63. package/src/sap/ui/mdc/field/ListFieldHelp.js +1 -1
  64. package/src/sap/ui/mdc/field/ListFieldHelpItem.js +1 -1
  65. package/src/sap/ui/mdc/field/MultiValueFieldItem.js +1 -1
  66. package/src/sap/ui/mdc/field/OutParameter.js +1 -1
  67. package/src/sap/ui/mdc/field/TokenDisplay.js +1 -1
  68. package/src/sap/ui/mdc/field/TokenizerDisplay.js +1 -1
  69. package/src/sap/ui/mdc/field/ValueHelpPanel.js +1 -1
  70. package/src/sap/ui/mdc/field/content/ContentFactory.js +5 -1
  71. package/src/sap/ui/mdc/field/content/DateContent.js +27 -19
  72. package/src/sap/ui/mdc/field/content/DateTimeContent.js +0 -6
  73. package/src/sap/ui/mdc/filterbar/FilterBarBase.js +76 -208
  74. package/src/sap/ui/mdc/filterbar/PropertyHelper.js +27 -2
  75. package/src/sap/ui/mdc/filterbar/p13n/AdaptationFilterBar.js +127 -57
  76. package/src/sap/ui/mdc/filterbar/p13n/FilterColumnLayout.js +2 -2
  77. package/src/sap/ui/mdc/filterbar/p13n/GroupContainer.js +7 -3
  78. package/src/sap/ui/mdc/filterbar/p13n/TableContainer.js +52 -14
  79. package/src/sap/ui/mdc/filterbar/vh/FilterBar.js +37 -19
  80. package/src/sap/ui/mdc/filterbar/vh/FilterContainer.js +1 -1
  81. package/src/sap/ui/mdc/flexibility/AggregationConfigFlex.js +48 -31
  82. package/src/sap/ui/mdc/flexibility/Chart.flexibility.js +1 -1
  83. package/src/sap/ui/mdc/flexibility/ChartItemFlex.js +36 -0
  84. package/src/sap/ui/mdc/flexibility/ConditionFlex.js +47 -10
  85. package/src/sap/ui/mdc/flexibility/FilterBar.flexibility.js +1 -1
  86. package/src/sap/ui/mdc/flexibility/FilterItemFlex.js +1 -1
  87. package/src/sap/ui/mdc/flexibility/ItemBaseFlex.js +0 -1
  88. package/src/sap/ui/mdc/flexibility/PropertyInfoFlex.js +2 -85
  89. package/src/sap/ui/mdc/library.js +11 -4
  90. package/src/sap/ui/mdc/link/ContactDetails.js +1 -1
  91. package/src/sap/ui/mdc/link/ContactDetailsAddressItem.js +1 -1
  92. package/src/sap/ui/mdc/link/ContactDetailsEmailItem.js +1 -1
  93. package/src/sap/ui/mdc/link/ContactDetailsItem.js +1 -1
  94. package/src/sap/ui/mdc/link/ContactDetailsPhoneItem.js +1 -1
  95. package/src/sap/ui/mdc/link/Factory.js +1 -1
  96. package/src/sap/ui/mdc/link/FakeFlpConnector.js +1 -1
  97. package/src/sap/ui/mdc/link/LinkItem.js +1 -1
  98. package/src/sap/ui/mdc/link/Panel.js +1 -1
  99. package/src/sap/ui/mdc/link/PanelItem.js +1 -1
  100. package/src/sap/ui/mdc/link/PanelListItem.js +1 -1
  101. package/src/sap/ui/mdc/link/SemanticObjectMapping.js +1 -1
  102. package/src/sap/ui/mdc/link/SemanticObjectMappingItem.js +1 -1
  103. package/src/sap/ui/mdc/link/SemanticObjectUnavailableAction.js +1 -1
  104. package/src/sap/ui/mdc/messagebundle.properties +2 -1
  105. package/src/sap/ui/mdc/mixin/AdaptationMixin.js +20 -19
  106. package/src/sap/ui/mdc/mixin/DelegateMixin.js +1 -141
  107. package/src/sap/ui/mdc/mixin/FilterIntegrationMixin.js +1 -9
  108. package/src/sap/ui/mdc/mixin/PromiseMixin.js +1 -1
  109. package/src/sap/ui/mdc/mixin/PropertyHelperMixin.js +348 -0
  110. package/src/sap/ui/mdc/odata/TypeUtil.js +1 -1
  111. package/src/sap/ui/mdc/odata/v4/ChartPropertyHelper.js +70 -3
  112. package/src/sap/ui/mdc/odata/v4/FilterBarDelegate.js +116 -20
  113. package/src/sap/ui/mdc/odata/v4/ODataMetaModelUtil.js +2 -2
  114. package/src/sap/ui/mdc/odata/v4/TableDelegate.js +11 -33
  115. package/src/sap/ui/mdc/odata/v4/TypeUtil.js +2 -4
  116. package/src/sap/ui/mdc/odata/v4/ValueHelpDelegate.js +1 -1
  117. package/src/sap/ui/mdc/odata/v4/vizChart/ChartDelegate.js +281 -263
  118. package/src/sap/ui/mdc/p13n/AdaptationProvider.js +1 -1
  119. package/src/sap/ui/mdc/p13n/Engine.js +21 -18
  120. package/src/sap/ui/mdc/p13n/FlexUtil.js +0 -5
  121. package/src/sap/ui/mdc/p13n/PropertyHelper.js +2 -2
  122. package/src/sap/ui/mdc/p13n/StateUtil.js +4 -0
  123. package/src/sap/ui/mdc/p13n/UIManager.js +16 -13
  124. package/src/sap/ui/mdc/p13n/modification/ModificationHandler.js +18 -14
  125. package/src/sap/ui/mdc/p13n/modules/DefaultProviderRegistry.js +1 -1
  126. package/src/sap/ui/mdc/p13n/panels/ActionToolbarPanel.js +6 -6
  127. package/src/sap/ui/mdc/p13n/panels/AdaptFiltersPanel.js +49 -27
  128. package/src/sap/ui/mdc/p13n/panels/ChartItemPanel.js +4 -3
  129. package/src/sap/ui/mdc/p13n/panels/FilterPanel.js +136 -0
  130. package/src/sap/ui/mdc/p13n/panels/GroupView.js +53 -28
  131. package/src/sap/ui/mdc/p13n/panels/LinkSelectionPanel.js +54 -18
  132. package/src/sap/ui/mdc/p13n/subcontroller/ActionToolbarController.js +4 -7
  133. package/src/sap/ui/mdc/p13n/subcontroller/AdaptFiltersController.js +1 -2
  134. package/src/sap/ui/mdc/p13n/subcontroller/BaseController.js +1 -1
  135. package/src/sap/ui/mdc/p13n/subcontroller/FilterController.js +8 -4
  136. package/src/sap/ui/mdc/p13n/subcontroller/LinkPanelController.js +1 -0
  137. package/src/sap/ui/mdc/p13n/subcontroller/SortController.js +2 -2
  138. package/src/sap/ui/mdc/table/CreationRow.js +1 -1
  139. package/src/sap/ui/mdc/table/GridTableType.js +75 -27
  140. package/src/sap/ui/mdc/table/PropertyHelper.js +20 -13
  141. package/src/sap/ui/mdc/table/ResponsiveTableType.js +86 -13
  142. package/src/sap/ui/mdc/table/RowActionItem.js +119 -0
  143. package/src/sap/ui/mdc/table/RowSettings.js +42 -1
  144. package/src/sap/ui/mdc/table/V4AnalyticsPropertyHelper.js +2 -2
  145. package/src/sap/ui/mdc/themes/base/Chart.less +2 -0
  146. package/src/sap/ui/mdc/themes/base/ValueHelpDialog.less +1 -0
  147. package/src/sap/ui/mdc/util/DateUtil.js +32 -7
  148. package/src/sap/ui/mdc/util/FilterUtil.js +1 -1
  149. package/src/sap/ui/mdc/util/PromiseCache.js +1 -1
  150. package/src/sap/ui/mdc/util/PropertyHelper.js +201 -76
  151. package/src/sap/ui/mdc/util/TypeUtil.js +1 -1
  152. package/src/sap/ui/mdc/valuehelp/Dialog.js +1 -1
  153. package/src/sap/ui/mdc/valuehelp/Popover.js +5 -3
  154. package/src/sap/ui/mdc/valuehelp/base/Container.js +1 -1
  155. package/src/sap/ui/mdc/valuehelp/base/Content.js +1 -1
  156. package/src/sap/ui/mdc/valuehelp/base/DialogTab.js +1 -1
  157. package/src/sap/ui/mdc/valuehelp/base/FilterableListContent.js +4 -4
  158. package/src/sap/ui/mdc/valuehelp/base/ListContent.js +1 -1
  159. package/src/sap/ui/mdc/valuehelp/content/Bool.js +1 -1
  160. package/src/sap/ui/mdc/valuehelp/content/Conditions.js +1 -1
  161. package/src/sap/ui/mdc/valuehelp/content/FixedList.js +13 -10
  162. package/src/sap/ui/mdc/valuehelp/content/MDCTable.js +4 -10
  163. package/src/sap/ui/mdc/valuehelp/content/MTable.js +6 -4
  164. package/test/sap/ui/mdc/testutils/opa/chart/TestObjects.js +2 -0
  165. package/test/sap/ui/mdc/testutils/opa/filterbar/TestObjects.js +0 -1
  166. package/test/sap/ui/mdc/testutils/opa/p13n/Actions.js +8 -6
  167. package/src/sap/ui/mdc/filterbar/vh/GenericFilterBarDelegate.js +0 -150
  168. package/src/sap/ui/mdc/p13n/panels/BasePanel.js +0 -721
  169. package/src/sap/ui/mdc/p13n/panels/ListView.js +0 -408
  170. package/src/sap/ui/mdc/p13n/panels/SelectionPanel.js +0 -92
  171. package/src/sap/ui/mdc/p13n/panels/SortPanel.js +0 -150
  172. package/src/sap/ui/mdc/ui/Container.js +0 -240
  173. package/src/sap/ui/mdc/ui/ContainerItem.js +0 -79
@@ -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.99.0
89
+ * @version 1.100.1
90
90
  *
91
91
  * @constructor
92
92
  * @alias sap.ui.mdc.field.FieldBase
@@ -567,8 +567,6 @@ sap.ui.define([
567
567
 
568
568
  Control.prototype.init.apply(this, arguments);
569
569
 
570
- this._oManagedObjectModel = new ManagedObjectModel(this);
571
-
572
570
  this._oObserver = new ManagedObjectObserver(this._observeChanges.bind(this));
573
571
 
574
572
  this._oObserver.observe(this, {
@@ -578,8 +576,6 @@ sap.ui.define([
578
576
  associations: ["fieldHelp", "ariaLabelledBy"]
579
577
  });
580
578
 
581
- this._oDatePickerRequested = {};
582
-
583
579
  this.attachEvent("modelContextChange", this._handleModelContextChange, this);
584
580
 
585
581
  this._oResourceBundle = sap.ui.getCore().getLibraryResourceBundle("sap.ui.mdc");
@@ -625,8 +621,10 @@ sap.ui.define([
625
621
  _detachContentHandlers.call(this, oContentDisplay);
626
622
  }
627
623
 
628
- this._oManagedObjectModel.destroy();
629
- delete this._oManagedObjectModel;
624
+ if (this._oManagedObjectModel) {
625
+ this._oManagedObjectModel.destroy();
626
+ delete this._oManagedObjectModel;
627
+ }
630
628
 
631
629
  this._oObserver.disconnect();
632
630
  this._oObserver = undefined;
@@ -657,6 +655,9 @@ sap.ui.define([
657
655
  if (!this.bDelegateInitialized && !this.bDelegateLoading) {
658
656
  this.initControlDelegate();
659
657
  }
658
+ this._triggerCheckCreateInternalContent();
659
+
660
+ this._bSettingsApplied = true;
660
661
 
661
662
  return this;
662
663
  };
@@ -1152,6 +1153,10 @@ sap.ui.define([
1152
1153
 
1153
1154
  if (oChanges.name === "editMode") {
1154
1155
  _refreshLabel.call(this); // as required-idicator might set or removed on Label
1156
+ if (this._bSettingsApplied && (oChanges.old === EditMode.Display || oChanges.old === EditMode.EditableDisplay || oChanges.current === EditMode.Display || oChanges.current === EditMode.EditableDisplay)) {
1157
+ // edit mode changed after settings applied (happens if edit mode is bound and binding updates after control initialization)
1158
+ this._triggerCheckCreateInternalContent();
1159
+ }
1155
1160
  }
1156
1161
  };
1157
1162
 
@@ -1588,6 +1593,34 @@ sap.ui.define([
1588
1593
  }
1589
1594
  }
1590
1595
 
1596
+ /*
1597
+ * Check if all needed information are provided. If possible create internal controls
1598
+ */
1599
+ FieldBase.prototype._checkCreateInternalContent = function() {
1600
+
1601
+ if (this.getVisible() && this._oContentFactory.getDataType()) {
1602
+ _createInternalContentWrapper.call(this);
1603
+ }
1604
+
1605
+ };
1606
+
1607
+ /*
1608
+ * To be sure that the check is not called multiple times it needs
1609
+ * to be checked if there is a pending check.
1610
+ * Multiple calls might happen if properties are cheged oftten or
1611
+ * the chck is triggered in BindingContext update (what is often called in propagation).
1612
+ */
1613
+ FieldBase.prototype._triggerCheckCreateInternalContent = function() {
1614
+
1615
+ if (!this._oCheckCreateInternalContentPromise) {
1616
+ this._oCheckCreateInternalContentPromise = this.awaitControlDelegate().then(function() {
1617
+ delete this._oCheckCreateInternalContentPromise;
1618
+ this._checkCreateInternalContent();
1619
+ }.bind(this));
1620
+ }
1621
+
1622
+ };
1623
+
1591
1624
  function _createInternalContent() {
1592
1625
  var sEditMode = this.getEditMode();
1593
1626
  var oContent = this.getContent();
@@ -1667,6 +1700,7 @@ sap.ui.define([
1667
1700
  }
1668
1701
 
1669
1702
  _refreshLabel.call(this);
1703
+ delete this._oCreateContentPromise; // after finished new creation request can be sync again
1670
1704
  }.bind(this));
1671
1705
  }
1672
1706
  }
@@ -1704,6 +1738,9 @@ sap.ui.define([
1704
1738
  };
1705
1739
 
1706
1740
  function _setModelOnContent(oContent) {
1741
+ if (!this._oManagedObjectModel && !this._bIsBeingDestroyed) {
1742
+ this._oManagedObjectModel = new ManagedObjectModel(this);
1743
+ }
1707
1744
  oContent.setModel(this._oManagedObjectModel, "$field");
1708
1745
  }
1709
1746
 
@@ -2753,7 +2790,8 @@ sap.ui.define([
2753
2790
  // // also in display mode to get right text
2754
2791
  // _handleConditionsChange.call(this, this.getConditions());
2755
2792
  if (!isEditing && !this._bPendingConditionUpdate && this.getConditions().length > 0 &&
2756
- (this.getMaxConditions() !== 1 || (this.getDisplay() !== FieldDisplay.Value && !this._bParseError))) {
2793
+ (this.getMaxConditions() !== 1 || (this.getDisplay() !== FieldDisplay.Value && !this._bParseError))
2794
+ && this._oManagedObjectModel) {
2757
2795
  // update tokens in MultiValue
2758
2796
  // update text/value only if no parse error, otherwise wrong value would be removed
2759
2797
  // don't update if contidions are outdated (updated async in Field)
@@ -2911,8 +2949,9 @@ sap.ui.define([
2911
2949
  payload: this.getPayload(),
2912
2950
  preventGetDescription: this._bPreventGetDescription,
2913
2951
  conditionModel: oConditionModelInfo.model,
2914
- conditionModelName : oConditionModelInfo.name,
2915
- defaultOperatorName : this.getDefaultOperator ? this.getDefaultOperator() : null
2952
+ conditionModelName: oConditionModelInfo.name,
2953
+ defaultOperatorName: this.getDefaultOperator ? this.getDefaultOperator() : null,
2954
+ convertWhitespaces: this.getEditMode() === EditMode.Display || this.getMaxConditions() !== 1 // also replace whitespaces in tokens
2916
2955
  };
2917
2956
 
2918
2957
  };
@@ -2987,7 +3026,8 @@ sap.ui.define([
2987
3026
  preventGetDescription: this._bPreventGetDescription,
2988
3027
  conditionModel: oConditionModelInfo.model,
2989
3028
  conditionModelName : oConditionModelInfo.name,
2990
- getConditions: this.getConditions.bind(this) // TODO: better solution to update unit in all conditions
3029
+ getConditions: this.getConditions.bind(this), // TODO: better solution to update unit in all conditions
3030
+ convertWhitespaces: this.getEditMode() === EditMode.Display || this.getEditMode() === EditMode.EditableDisplay
2991
3031
  };
2992
3032
 
2993
3033
  };
@@ -3157,6 +3197,17 @@ sap.ui.define([
3157
3197
 
3158
3198
  }
3159
3199
 
3200
+ FieldBase.prototype._isPropertyInitial = function(sPropertyName) {
3201
+
3202
+ // as bound propertys are never initial even if there is no existing binding right now check the binding too
3203
+ if (this.isBound(sPropertyName) && !this.getBinding(sPropertyName)) {
3204
+ return !Object.prototype.hasOwnProperty.call(this.mProperties, sPropertyName);
3205
+ } else {
3206
+ return this.isPropertyInitial(sPropertyName);
3207
+ }
3208
+
3209
+ };
3210
+
3160
3211
  return FieldBase;
3161
3212
 
3162
3213
  });
@@ -98,7 +98,7 @@ sap.ui.define([
98
98
  * This function enhances the value with unit or currency information if needed by the data type.
99
99
  *
100
100
  * @param {object} oPayload Payload for delegate
101
- * @param {any[]} aValues Value
101
+ * @param {any[]} aValue Value
102
102
  * @param {object} oTypeInitialization Information needed to initialize internal type
103
103
  * @private
104
104
  * @ui5-restricted sap.ui.mdc.field.FieldBase
@@ -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.99.0
43
+ * @version 1.100.1
44
44
  * @constructor
45
45
  * @abstract
46
46
  * @private
@@ -27,7 +27,7 @@ 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.99.0
30
+ * @version 1.100.1
31
31
  * @constructor
32
32
  * @private
33
33
  * @since 1.54.0
@@ -141,6 +141,7 @@ sap.ui.define([
141
141
  // ----------------------- Protected methods --------------------------------------------
142
142
 
143
143
  /**
144
+ * Returns the parent control.
144
145
  * @returns {sap.ui.mdc.Field} <code>Field</code> control
145
146
  * @protected
146
147
  */
@@ -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.99.0
26
+ * @version 1.100.1
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.99.0
19
+ * @version 1.100.1
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.99.0
26
+ * @version 1.100.1
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.99.0
77
+ * @version 1.100.1
78
78
  * @constructor
79
79
  * @private
80
80
  * @ui5-restricted sap.fe
@@ -1832,6 +1832,9 @@ sap.ui.define([
1832
1832
  // ignore empty conditions for filtering
1833
1833
  oHelpParameters[sHelpPath] = [];
1834
1834
  if (bUseConditions) { // just use conditions
1835
+ if (!vValue) {
1836
+ vValue = []; // if ConditionModel Binding not initilaized in the moment
1837
+ }
1835
1838
  for (j = 0; j < vValue.length; j++) {
1836
1839
  oCondition = merge({}, vValue[j]);
1837
1840
  // change paths of in- and out-parameters
@@ -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.99.0
26
+ * @version 1.100.1
27
27
  * @constructor
28
28
  * @abstract
29
29
  * @private
@@ -149,7 +149,7 @@ sap.ui.define([
149
149
  * <code>FieldValueHelp</code> needs to wait.
150
150
  *
151
151
  * @param {object} oPayload Payload for delegate
152
- * @param {sap.ui.model.ListBinding} oListBindings <code>ListBinding</code> to check
152
+ * @param {sap.ui.model.ListBinding} oListBinding <code>ListBinding</code> to check
153
153
  * @returns {boolean|Promise<boolean>} <code>Promise</code> that is resolved once <code>ListBinding</code> has been updated
154
154
  * @private
155
155
  * @ui5-restricted sap.ui.mdc.field.FieldvalueHelp, sap.ui.mdc.field.FieldValueHelpMTableWrapper
@@ -9,14 +9,15 @@ sap.ui.define([
9
9
  'sap/ui/model/ChangeReason',
10
10
  'sap/base/strings/capitalize',
11
11
  'sap/m/library',
12
- "sap/ui/mdc/util/loadModules"
13
-
12
+ 'sap/ui/mdc/util/loadModules',
13
+ 'sap/ui/thirdparty/jquery'
14
14
  ], function(
15
15
  FieldValueHelpTableWrapperBase,
16
16
  ChangeReason,
17
17
  capitalize,
18
18
  mLibrary,
19
- loadModules
19
+ loadModules,
20
+ jQuery
20
21
  ) {
21
22
  "use strict";
22
23
 
@@ -34,7 +35,7 @@ sap.ui.define([
34
35
  * @param {object} [mSettings] Initial settings for the new control
35
36
  * @class Wrapper to use a <code>sap.m.Table</code> control as content of a <code>FieldValueHelp</code> element
36
37
  * @extends sap.ui.mdc.field.FieldValueHelpTableWrapperBase
37
- * @version 1.99.0
38
+ * @version 1.100.1
38
39
  * @constructor
39
40
  * @private
40
41
  * @ui5-restricted sap.fe
@@ -11,7 +11,8 @@ sap.ui.define([
11
11
  "sap/ui/mdc/library",
12
12
  "sap/ui/mdc/enum/PersistenceMode",
13
13
  "sap/ui/mdc/p13n/Engine",
14
- 'sap/ui/mdc/condition/FilterConverter'
14
+ 'sap/ui/mdc/condition/FilterConverter',
15
+ "sap/ui/thirdparty/jquery"
15
16
  ], function(
16
17
  FieldValueHelpTableWrapperBase,
17
18
  loadModules,
@@ -19,7 +20,8 @@ sap.ui.define([
19
20
  library,
20
21
  PersistenceMode,
21
22
  Engine,
22
- FilterConverter
23
+ FilterConverter,
24
+ jQuery
23
25
  ) {
24
26
  "use strict";
25
27
 
@@ -40,7 +42,7 @@ sap.ui.define([
40
42
  * @param {object} [mSettings] Initial settings for the new control
41
43
  * @class Wrapper to use a <code>sap.m.Table</code> control as content of a <code>FieldValueHelp</code> element
42
44
  * @extends sap.ui.mdc.field.FieldValueHelpTableWrapperBase
43
- * @version 1.99.0
45
+ * @version 1.100.1
44
46
  * @constructor
45
47
  * @private
46
48
  * @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.99.0
50
+ * @version 1.100.1
51
51
  * @constructor
52
52
  * @private
53
53
  * @experimental As of version 1.88
@@ -8,12 +8,14 @@ sap.ui.define([
8
8
  'sap/ui/mdc/field/FieldValueHelpTableWrapperBase',
9
9
  'sap/ui/model/ChangeReason',
10
10
  'sap/base/strings/capitalize',
11
- "sap/ui/table/library"
11
+ "sap/ui/table/library",
12
+ 'sap/ui/thirdparty/jquery'
12
13
  ], function(
13
14
  FieldValueHelpTableWrapperBase,
14
15
  ChangeReason,
15
16
  capitalize,
16
- library
17
+ library,
18
+ jQuery
17
19
  ) {
18
20
  "use strict";
19
21
 
@@ -31,7 +33,7 @@ sap.ui.define([
31
33
  * @param {object} [mSettings] Initial settings for the new control
32
34
  * @class Wrapper to use a <code>sap.m.Table</code> control as content of a <code>FieldValueHelp</code> element
33
35
  * @extends sap.ui.mdc.field.FieldValueHelpTableWrapperBase
34
- * @version 1.99.0
36
+ * @version 1.100.1
35
37
  * @constructor
36
38
  * @private
37
39
  * @ui5-restricted sap.ui.mdc
@@ -227,11 +229,9 @@ sap.ui.define([
227
229
 
228
230
  if (!bNoVirtual) {
229
231
  var oBinding = oTable.getBinding();
230
- aResult = bSelectedOnly ? aSelectedContexts : oBinding && (oBinding.aContexts || (oBinding.aIndices && oBinding.aIndices.map(function (iIndex) {
231
- return oTable.getContextByIndex(iIndex);
232
- })) || oBinding.getContexts());
232
+ aResult = bSelectedOnly ? aSelectedContexts : oBinding && oBinding.getAllCurrentContexts();
233
233
  } else {
234
- aResult = oTable.getRows().filter(function (oRow) {
234
+ aResult = oTable.getRows().filter(function (oRow) {
235
235
  var oRowBindingContext = oRow.getBindingContext();
236
236
  return oRowBindingContext && oRowBindingContext.getObject(); // don't return empty rows
237
237
  });
@@ -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.99.0
23
+ * @version 1.100.1
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.99.0
42
+ * @version 1.100.1
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.99.0
26
+ * @version 1.100.1
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.99.0
23
+ * @version 1.100.1
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.99.0
25
+ * @version 1.100.1
26
26
  * @constructor
27
27
  * @abstract
28
28
  * @private
@@ -23,7 +23,7 @@ sap.ui.define([
23
23
  * @param {object} [mSettings] Initial settings for the new control
24
24
  * @class The <code>TokenDisplay</code> control is used to render a field inside a control based on {@link sap.ui.mdc.field.FieldBase FieldBase}.
25
25
  * @extends sap.m.Token
26
- * @version 1.99.0
26
+ * @version 1.100.1
27
27
  * @constructor
28
28
  * @abstract
29
29
  * @private
@@ -28,7 +28,7 @@ sap.ui.define([
28
28
  * @param {object} [mSettings] Initial settings for the new control
29
29
  * @class The <code>TokenizerDisplay</code> control is used to render a Tokenizer inside a control based on {@link sap.ui.mdc.field.FieldBase FieldBase}.
30
30
  * @extends sap.m.Tokenizer
31
- * @version 1.99.0
31
+ * @version 1.100.1
32
32
  * @constructor
33
33
  * @abstract
34
34
  * @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.99.0
40
+ * @version 1.100.1
41
41
  *
42
42
  * @constructor
43
43
  * @alias sap.ui.mdc.field.ValueHelpPanel
@@ -111,7 +111,11 @@ sap.ui.define([
111
111
  throw new Error("loadModules promise rejected in sap.ui.mdc.field.content.ContentFactory:createContent function call - could not load controls " + JSON.stringify(aControlNames));
112
112
  })
113
113
  .then(function(aControls) {
114
- return oContentType.create(this, sContentMode, this._sOperator, aControls, sId);
114
+ if (this.getField() && !this.getField()._bIsBeingDestroyed) {
115
+ return oContentType.create(this, sContentMode, this._sOperator, aControls, sId);
116
+ } else {
117
+ return [];
118
+ }
115
119
  }.bind(this))
116
120
  .unwrap();
117
121
  } catch (oError) {
@@ -229,10 +229,11 @@ sap.ui.define([
229
229
  aOperators = oContentFactory.getField()._getOperators(); // to use default operators if none given
230
230
  }
231
231
  var aOptions = [];
232
+ var sBaseType = oContentFactory.getField().getBaseType();
232
233
 
233
234
  for (var i = 0; i < aOperators.length; i++) {
234
235
  var sOperator = aOperators[i];
235
- var sOption = this._getDateRangeOption(sOperator, oContentFactory, OperatorDynamicDateOption);
236
+ var sOption = this._getDateRangeOption(sOperator, oContentFactory, OperatorDynamicDateOption, sBaseType);
236
237
  if (sOption) {
237
238
  aOptions.push(sOption);
238
239
  }
@@ -241,45 +242,52 @@ sap.ui.define([
241
242
  return aOptions;
242
243
  },
243
244
 
244
- _getDateRangeOption: function(sOperator, oContentFactory, OperatorDynamicDateOption) {
245
+ _getDateRangeOption: function(sOperator, oContentFactory, OperatorDynamicDateOption, sBaseType) {
245
246
  var oOperator = FilterOperatorUtil.getOperator(sOperator);
246
- var sOption = oOperator.name;
247
- if (!StandardDynamicDateRangeKeys[sOption]) {
248
- sOption = oOperator.alias || sOption;
249
- }
250
-
251
- if (StandardDynamicDateRangeKeys[sOption]) {
252
- return sOption; // use standard option
253
- } else
254
- // use OperatorDynamicDateOption
255
- if (oOperator) {
256
- if (!DynamicDateUtil.getOption(sOption)) {
247
+ var sOption;
248
+
249
+ if (oOperator) {
250
+ sOption = FilterOperatorUtil.getDynamicDateOptionForOperator(oOperator, StandardDynamicDateRangeKeys, sBaseType);
251
+ if (!sOption) { // if found, use standard option
252
+ // use OperatorDynamicDateOption
253
+ sOption = FilterOperatorUtil.getCustomDynamicDateOptionForOperator(oOperator, sBaseType);
254
+ if (!DynamicDateUtil.getOption(sOption)) { // create custom option
257
255
  var oType = oContentFactory.retrieveDataType(); // TODO: do we need to create data type right now?
258
256
  var aValueTypes = [];
259
257
 
260
- for (var j = 0; j < oOperator.valueTypes.length; j++) {
261
- if (oOperator.valueTypes[j] && oOperator.valueTypes[j] !== Operator.ValueType.Static) {
258
+ for (var i = 0; i < oOperator.valueTypes.length; i++) {
259
+ if (oOperator.valueTypes[i] && oOperator.valueTypes[i] !== Operator.ValueType.Static) {
262
260
  aValueTypes.push("custom"); // provide value as it is to use type to format and parse // TODO: only if custom control?
263
261
  }
264
262
  }
265
263
 
266
- DynamicDateUtil.addOption(new OperatorDynamicDateOption({key: sOption, operator: oOperator, type: oType, valueTypes: aValueTypes})); // TODO: use name as key?
264
+ DynamicDateUtil.addOption(new OperatorDynamicDateOption({key: sOption, operator: oOperator, type: oType, baseType: sBaseType, valueTypes: aValueTypes}));
267
265
  }
268
- return sOption;
269
266
  }
267
+ }
268
+ return sOption;
270
269
  },
271
270
 
272
271
  _getDateRangeFormatter: function(oContentFactory) {
273
272
  var oType = oContentFactory.retrieveDataType(); // TODO: do we need to create data type right now?
273
+ var sBaseType = oContentFactory.getField().getBaseType();
274
274
  var oFormatOptions = oType.getFormatOptions();
275
+ var oUsedFormatOptions;
275
276
  var oDateRangeFormatOptions = {};
276
277
 
277
278
  if (oFormatOptions.style) {
278
- oDateRangeFormatOptions.date = {style: oFormatOptions.style};
279
+ oUsedFormatOptions = {style: oFormatOptions.style};
279
280
  } else if (oFormatOptions.pattern) {
280
- oDateRangeFormatOptions.date = {pattern: oFormatOptions.pattern};
281
+ oUsedFormatOptions = {pattern: oFormatOptions.pattern};
282
+ }
283
+
284
+ if (sBaseType === BaseType.DateTime) {
285
+ oDateRangeFormatOptions.datetime = oUsedFormatOptions;
281
286
  }
282
287
 
288
+ // use Date FormatOptions anyhow for Operations supporting only dates
289
+ oDateRangeFormatOptions.date = oUsedFormatOptions;
290
+
283
291
  return DynamicDateFormat.getInstance(oDateRangeFormatOptions);
284
292
  }
285
293
  });
@@ -27,14 +27,8 @@ sap.ui.define([
27
27
  "EQ": { name: "sap/m/DateTimePicker", create: this._createDatePickerControl } // as same API as DatePicker
28
28
  };
29
29
  },
30
- getEdit: function() {
31
- return DefaultContent.getEdit.apply(this, arguments);
32
- },
33
30
  createEditMultiLine: function() {
34
31
  throw new Error("sap.ui.mdc.field.content.DateTimeContent - createEditMultiLine not defined!");
35
- },
36
- createEdit: function(oContentFactory, aControlClasses, sId) {
37
- return DefaultContent.createEdit.apply(this, arguments);
38
32
  }
39
33
 
40
34
  });