@openui5/sap.ui.mdc 1.99.0 → 1.100.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 (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
@@ -38,14 +38,14 @@ sap.ui.define([
38
38
  * @param {object} [mSettings] Initial settings for the new control
39
39
  *
40
40
  * @class
41
- * A <code>Link</code> control can be used to handle navigation scenarios with one or more targets through direct navigation or by opening a {@link sap.ui.mdc.link.Panel}.<br>
42
- * It can also be used to display additional content, such as {@link sap.ui.mdc.link.ContactDetails} on the {@link sap.ui.mdc.link.Panel}.
41
+ * A <code>Link</code> control can be used to handle navigation scenarios with one or more targets through direct navigation or by opening a <code>Panel</code>.<br>
42
+ * It can also be used to display additional content, such as <code>ContactDetails</code> on the <code>Panel</code>.
43
43
  * <b>Note:</b> Navigation targets are determined by the implementation of a {@link sap.ui.mdc.LinkDelegate}.
44
44
  *
45
45
  * @extends sap.ui.mdc.field.FieldInfoBase
46
46
  *
47
47
  * @author SAP SE
48
- * @version 1.99.0
48
+ * @version 1.100.0
49
49
  *
50
50
  * @constructor
51
51
  * @alias sap.ui.mdc.Link
@@ -35,7 +35,7 @@ sap.ui.define([
35
35
  * @constructor
36
36
  * @alias sap.ui.mdc.MultiValueField
37
37
  * @author SAP SE
38
- * @version 1.99.0
38
+ * @version 1.100.0
39
39
  * @since 1.93.0
40
40
  *
41
41
  * @private
@@ -318,6 +318,16 @@ sap.ui.define([
318
318
 
319
319
  };
320
320
 
321
+ Field.prototype._checkCreateInternalContent = function() {
322
+
323
+ if (!this.bIsDestroyed && this._oContentFactory.getDataType() && !this._isPropertyInitial("editMode")) {
324
+ // If DataType is provided via Binding and EditMode is set the internal control can be created
325
+ // TODO: no control needed if just template for cloning
326
+ FieldBase.prototype._checkCreateInternalContent.apply(this, arguments);
327
+ }
328
+
329
+ };
330
+
321
331
  /**
322
332
  * Sets conditions to the property <code>conditions</code>.
323
333
  *
@@ -40,7 +40,10 @@ sap.ui.define([
40
40
  "sap/m/ColumnPopoverSelectListItem",
41
41
  "sap/m/ColumnPopoverActionItem",
42
42
  "sap/ui/mdc/p13n/subcontroller/ColumnWidthController",
43
- "sap/ui/mdc/actiontoolbar/ActionToolbarAction"
43
+ "sap/ui/mdc/actiontoolbar/ActionToolbarAction",
44
+ "sap/ui/mdc/table/RowActionItem",
45
+ "sap/ui/base/ManagedObjectMetadata",
46
+ "sap/ui/mdc/table/RowSettings"
44
47
  ], function(
45
48
  Control,
46
49
  ActionToolbar,
@@ -77,7 +80,10 @@ sap.ui.define([
77
80
  ColumnPopoverSelectListItem,
78
81
  ColumnPopoverActionItem,
79
82
  ColumnWidthController,
80
- ActionToolbarAction
83
+ ActionToolbarAction,
84
+ RowActionItem,
85
+ ManagedObjectMetadata,
86
+ RowSettings
81
87
  ) {
82
88
  "use strict";
83
89
 
@@ -160,6 +166,7 @@ sap.ui.define([
160
166
  * Actions available for a table row.
161
167
  *
162
168
  * @since 1.60
169
+ * @deprecated as of version 1.98, use row settings instead.
163
170
  */
164
171
  rowAction: {
165
172
  type: "sap.ui.mdc.RowAction[]",
@@ -665,6 +672,7 @@ sap.ui.define([
665
672
  * @inheritDoc
666
673
  */
667
674
  Table.prototype.applySettings = function() {
675
+ this._setPropertyHelperClass(PropertyHelper);
668
676
  Control.prototype.applySettings.apply(this, arguments);
669
677
  this.initControlDelegate();
670
678
  };
@@ -869,14 +877,20 @@ sap.ui.define([
869
877
  // ----End Type----
870
878
 
871
879
  Table.prototype.setRowSettings = function(oRowSettings) {
880
+ if (this._oTableRowAction) {
881
+ if (oRowSettings.getRowActions().length == 0) {
882
+ oRowSettings.addRowAction(this._oTableRowAction);
883
+ }
884
+ }
872
885
  this.setAggregation("rowSettings", oRowSettings, true);
873
886
 
874
887
  if (this._oTable) {
875
888
  // Apply the new setting to the existing table
889
+ this._oRowActions = {};
876
890
  if (this._isOfType(TableType.ResponsiveTable)) {
877
- ResponsiveTableType.updateRowSettings(this._oTemplate, oRowSettings);
891
+ ResponsiveTableType.updateRowSettings(this, oRowSettings, this._onResponsiveRowActionPress);
878
892
  } else {
879
- GridTableType.updateRowSettings(this._oTable, oRowSettings);
893
+ GridTableType.updateRowSettings(this._oTable, oRowSettings, [this._onRowActionPress, this]);
880
894
  }
881
895
 
882
896
  this._bForceRebind = true;
@@ -942,14 +956,20 @@ sap.ui.define([
942
956
  return this;
943
957
  };
944
958
 
959
+ // TODO: Temporary solution until apps adapted changes. Remove this, as this is replaced by rowSettings
945
960
  Table.prototype.setRowAction = function(aActions) {
946
- var aOldActions = this.getRowAction();
947
-
948
961
  this.setProperty("rowAction", aActions, true);
949
962
 
950
- if (!deepEqual(aOldActions.sort(), this.getRowAction().sort())) {
951
- this._updateRowAction();
963
+ var oRowSettings = this.getRowSettings() || new RowSettings();
964
+
965
+ oRowSettings.destroyRowActions();
966
+ if (this.getRowAction().indexOf(RowAction.Navigation) > -1) {
967
+ this._oTableRowAction = new RowActionItem({
968
+ type: RowAction.Navigation
969
+ });
970
+ oRowSettings.addRowAction(this._oTableRowAction);
952
971
  }
972
+ this.setRowSettings(oRowSettings);
953
973
 
954
974
  return this;
955
975
  };
@@ -977,21 +997,20 @@ sap.ui.define([
977
997
  };
978
998
 
979
999
  Table.prototype._onModifications = function() {
980
- if (!this._oTable) {
981
- return;
982
- }
983
- var oColumnWidth = this.getCurrentState().xConfig;
984
- var oColumnWidthContent = oColumnWidth.aggregations && oColumnWidth.aggregations.columns;
985
-
986
- this.getColumns().forEach(function(oColumn, iIndex) {
987
- var sWidth = oColumnWidthContent && oColumnWidthContent[oColumn.getDataProperty()] && oColumnWidthContent[oColumn.getDataProperty()].width;
988
- var oInnerColumn = this._oTable.getColumns()[iIndex];
989
- if (!sWidth && oInnerColumn.getWidth() !== oColumn.getWidth()) {
990
- oInnerColumn.setWidth(oColumn.getWidth());
991
- } else if (sWidth && sWidth !== oInnerColumn.getWidth()) {
992
- oInnerColumn.setWidth(sWidth);
993
- }
994
- }, this);
1000
+ var oMDCTable = this;
1001
+ this.initialized().then(function() {
1002
+ var oColumnWidth = oMDCTable.getCurrentState().xConfig;
1003
+ var oColumnWidthContent = oColumnWidth.aggregations && oColumnWidth.aggregations.columns;
1004
+ oMDCTable.getColumns().forEach(function(oColumn, iIndex) {
1005
+ var sWidth = oColumnWidthContent && oColumnWidthContent[oColumn.getDataProperty()] && oColumnWidthContent[oColumn.getDataProperty()].width;
1006
+ var oInnerColumn = oMDCTable._oTable.getColumns()[iIndex];
1007
+ if (!sWidth && oInnerColumn.getWidth() !== oColumn.getWidth()) {
1008
+ oInnerColumn.setWidth(oColumn.getWidth());
1009
+ } else if (sWidth && sWidth !== oInnerColumn.getWidth()) {
1010
+ oInnerColumn.setWidth(sWidth);
1011
+ }
1012
+ });
1013
+ });
995
1014
  };
996
1015
 
997
1016
  Table.prototype.setP13nMode = function(aMode) {
@@ -1290,10 +1309,9 @@ sap.ui.define([
1290
1309
  if (!this._oTable) {
1291
1310
  return;
1292
1311
  }
1293
- var bNavigation = this.getRowAction().indexOf(RowAction.Navigation) > -1;
1294
1312
  var oType = this._bMobileTable ? ResponsiveTableType : GridTableType;
1295
1313
  // For ResponsiveTable itemPress event is registered during creation
1296
- oType.updateRowAction(this, bNavigation, this._bMobileTable ? undefined : this._onRowActionPress);
1314
+ oType.updateRowActions(this, this.getRowSettings(), this._bMobileTable ? this._onResponsiveRowActionPress : this._onRowActionPress);
1297
1315
  };
1298
1316
 
1299
1317
  Table.prototype._initializeContent = function() {
@@ -1366,7 +1384,10 @@ sap.ui.define([
1366
1384
  this._onAfterTableCreated(true); // Resolve any pending promise if table exists
1367
1385
 
1368
1386
  var pTableInit = this.initialized().then(function() {
1369
- this.initPropertyHelper(PropertyHelper);
1387
+ this.initPropertyHelper();
1388
+
1389
+ //Make sure that in case of default xConfig appliance the state is initially read once
1390
+ this._onModifications();
1370
1391
 
1371
1392
  // add this to the micro task execution queue to enable consumers to handle this correctly
1372
1393
  var oCreationRow = this.getCreationRow();
@@ -1737,7 +1758,7 @@ sap.ui.define([
1737
1758
  context: {title: that.getHeader()}
1738
1759
  },
1739
1760
  dataSource: oRowBinding,
1740
- fileType: mCustomConfig.selectedFileType == "pdf" ? "PDF" : "XLSX",
1761
+ fileType: mCustomConfig.selectedFileType,
1741
1762
  fileName: mCustomConfig ? mCustomConfig.fileName : this.getHeader()
1742
1763
  };
1743
1764
 
@@ -1813,7 +1834,7 @@ sap.ui.define([
1813
1834
  this._loadExportLibrary().then(function() {
1814
1835
  sap.ui.require(['sap/ui/export/ExportUtils'], function(ExportUtils) {
1815
1836
  that.getControlDelegate().fetchExportCapabilities().then(function(oExportCapabilities) {
1816
- ExportUtils.getExportSettingsViaDialog(that._cachedExportSettings, that, undefined, oExportCapabilities).then(function(oUserInput) {
1837
+ ExportUtils.getExportSettingsViaDialog(that._cachedExportSettings, oExportCapabilities, that).then(function(oUserInput) {
1817
1838
  that._cachedExportSettings = oUserInput;
1818
1839
  that._onExport(oUserInput);
1819
1840
  });
@@ -2273,8 +2294,10 @@ sap.ui.define([
2273
2294
  oColumn = this._oTable.removeColumn(oMDCColumn.getId() + "-innerColumn");
2274
2295
  this._oTable.insertColumn(oColumn, iIndex);
2275
2296
 
2276
- // update template for ResponsiveTable
2277
2297
  if (this._bMobileTable) {
2298
+ // responsive table requires the column order to be updated.
2299
+ this._setMobileColumnOrder();
2300
+ // update template for ResponisveTable
2278
2301
  this._updateColumnTemplate(oMDCColumn, iIndex);
2279
2302
  }
2280
2303
  }
@@ -2335,6 +2358,25 @@ sap.ui.define([
2335
2358
  }
2336
2359
  };
2337
2360
 
2361
+ /**
2362
+ * Sets the column order for the responsive table. The order is set according to the index of the mdc columns.
2363
+ * Updating the responsive table's column order and invalidating avoid rebinds.
2364
+ * @private
2365
+ */
2366
+ Table.prototype._setMobileColumnOrder = function() {
2367
+ this.getColumns().forEach(function(oMDCColumn) {
2368
+ var oColumn = Core.byId(oMDCColumn.getId() + "-innerColumn");
2369
+ if (!oColumn) {
2370
+ return;
2371
+ }
2372
+ // since we ensure correct index of the mdcColumn control we can set the same order to the inner responsive table columns
2373
+ oColumn.setOrder(this.indexOfColumn(oMDCColumn));
2374
+ }, this);
2375
+
2376
+ // invalidate the inner table to apply the correct order on the UI. See sap.m.Column#setOrder
2377
+ this._oTable.invalidate();
2378
+ };
2379
+
2338
2380
  Table._removeItemCell = function(oItem, iRemoveIndex, iInsertIndex) {
2339
2381
  // remove cell from index
2340
2382
  var oCell = oItem.removeCell(iRemoveIndex);
@@ -2352,6 +2394,7 @@ sap.ui.define([
2352
2394
  this.fireRowPress({
2353
2395
  bindingContext: oEvent.getParameter("listItem").getBindingContext()
2354
2396
  });
2397
+ ResponsiveTableType._onRowActionPress.apply(this, [oEvent]);
2355
2398
  };
2356
2399
 
2357
2400
  Table.prototype._onSelectionChange = function(oEvent) {
@@ -2391,13 +2434,6 @@ sap.ui.define([
2391
2434
  });
2392
2435
  };
2393
2436
 
2394
- Table.prototype._onRowActionPress = function(oEvent) {
2395
- var oRow = oEvent.getParameter("row");
2396
- this.fireRowPress({
2397
- bindingContext: oRow.getBindingContext()
2398
- });
2399
- };
2400
-
2401
2437
  Table.prototype._onRowSelectionChange = function(oEvent) {
2402
2438
  if (!this._bSelectionChangedByAPI) { // TODO Table / Plugin needs to ensure that events are only fired when "relevant" for the app.
2403
2439
  this.fireSelectionChange({
@@ -2639,8 +2675,7 @@ sap.ui.define([
2639
2675
  var iRowCount;
2640
2676
  if (!bConsiderTotal) {
2641
2677
  iRowCount = oRowBinding.getLength();
2642
- } else {
2643
- if (typeof oRowBinding.getCount === 'function') {
2678
+ } else if (typeof oRowBinding.getCount === 'function') {
2644
2679
  iRowCount = oRowBinding.getCount();
2645
2680
  } else if (oRowBinding.isLengthFinal()) {
2646
2681
  // This branch is only fallback and for TreeBindings (TreeBindings should be excluded when MDCTable will support TreeBinding,
@@ -2648,7 +2683,6 @@ sap.ui.define([
2648
2683
  // ListBindings should in general get a getCount function in nearer future (5341464)
2649
2684
  iRowCount = oRowBinding.getLength();
2650
2685
  }
2651
- }
2652
2686
 
2653
2687
  if (iRowCount < 0 || iRowCount === "0") {
2654
2688
  iRowCount = 0;
@@ -113,7 +113,33 @@ sap.ui.define([
113
113
  */
114
114
  addItem: function(sPropertyName, oTable) {
115
115
  return Promise.resolve(null);
116
- }
116
+ },
117
+
118
+ /**
119
+ * This methods is called during the appliance of the add condition change.
120
+ * This intention is to update the propertyInfo property.
121
+ *
122
+ * @param {string} sPropertyName The name of a property.
123
+ * @param {sap.ui.mdc.Control} oControl - the instance of the mdc control
124
+ * @param {Object} mPropertyBag Instance of property bag from Flex change API
125
+ * @returns {Promise} Promise that resolves once the properyInfo property was updated
126
+ */
127
+ addCondition: function(sPropertyName, oControl, mPropertyBag) {
128
+ return Promise.resolve();
129
+ },
130
+
131
+ /**
132
+ * This methods is called during the appliance of the remove condition change.
133
+ * This intention is to update the propertyInfo property.
134
+ *
135
+ * @param {string} sPropertyName The name of a property.
136
+ * @param {sap.ui.mdc.Control} oControl - the instance of the mdc control
137
+ * @param {Object} mPropertyBag Instance of property bag from Flex change API
138
+ * @returns {Promise} Promise that resolves once the properyInfo property was updated
139
+ */
140
+ removeCondition: function(sPropertyName, oControl, mPropertyBag) {
141
+ return Promise.resolve();
142
+ }
117
143
  };
118
144
  };
119
145
 
@@ -144,5 +170,6 @@ sap.ui.define([
144
170
  return Promise.resolve(oExportCapabilities);
145
171
  };
146
172
 
173
+
147
174
  return TableDelegate;
148
175
  });
@@ -41,7 +41,8 @@ sap.ui.define([
41
41
  'sap/ui/model/base/ManagedObjectModel',
42
42
  'sap/ui/base/ManagedObjectObserver',
43
43
  'sap/base/util/merge',
44
- 'sap/base/util/deepEqual'
44
+ 'sap/base/util/deepEqual',
45
+ 'sap/ui/mdc/enum/PersistenceMode'
45
46
  ], function(
46
47
  Element,
47
48
  PromiseMixin,
@@ -57,7 +58,8 @@ sap.ui.define([
57
58
  ManagedObjectModel,
58
59
  ManagedObjectObserver,
59
60
  merge,
60
- deepEqual
61
+ deepEqual,
62
+ PersistenceMode
61
63
  ) {
62
64
  "use strict";
63
65
 
@@ -69,7 +71,7 @@ sap.ui.define([
69
71
  * @class Element for the <code>FieldHelp</code> association in the <code>FieldBase</code> controls.
70
72
  * @extends sap.ui.mdc.Element
71
73
  * @implements sap.ui.core.PopupInterface
72
- * @version 1.99.0
74
+ * @version 1.100.0
73
75
  * @constructor
74
76
  * @abstract
75
77
  * @private
@@ -286,6 +288,7 @@ sap.ui.define([
286
288
  ValueHelp.prototype.init = function() {
287
289
 
288
290
  Element.prototype.init.apply(this, arguments);
291
+ this.getEngine().defaultProviderRegistry.attach(this, PersistenceMode.Transient);
289
292
 
290
293
  this._oObserver = new ManagedObjectObserver(_observeChanges.bind(this));
291
294
 
@@ -302,6 +305,8 @@ sap.ui.define([
302
305
 
303
306
  ValueHelp.prototype.exit = function() {
304
307
 
308
+ this.getEngine().defaultProviderRegistry.detach(this);
309
+
305
310
  if (this._oManagedObjectModel) {
306
311
  this._oManagedObjectModel.destroy();
307
312
  delete this._oManagedObjectModel;
@@ -54,12 +54,13 @@ sap.ui.define([
54
54
  * Checks if a <code>ListBinding</code> supports $Search.
55
55
  *
56
56
  * @param {object} oPayload Payload for delegate
57
+ * @param {sap.ui.mdc.valuehelp.base.Content} oContent Content element
57
58
  * @param {sap.ui.model.ListBinding} oListBinding ListBinding
58
59
  * @returns {boolean} true if $search is supported
59
60
  * @private
60
61
  * @ui5-restricted sap.ui.mdc.ValueHelp
61
62
  */
62
- ValueHelpDelegate.isSearchSupported = function(oPayload, oListBinding) {
63
+ ValueHelpDelegate.isSearchSupported = function(oPayload, oContent, oListBinding) {
63
64
  return false;
64
65
  };
65
66
 
@@ -21,7 +21,7 @@ sap.ui.define([
21
21
  * @class The action for an {@link sap.ui.mdc.ActionToolbar ActionToolbar}) control
22
22
  * @extends sap.ui.core.Control
23
23
  * @author SAP SE
24
- * @version 1.99.0
24
+ * @version 1.100.0
25
25
  * @constructor
26
26
  * @private
27
27
  * @since 1.58
@@ -19,7 +19,7 @@ sap.ui.define([], function() {
19
19
  * Renders the HTML for the given control, using the provided {@link sap.ui.core.RenderManager}.
20
20
  *
21
21
  * @param {sap.ui.core.RenderManager} rm the RenderManager that can be used for writing to the Render-Output-Buffer
22
- * @param {sap.ui.mdc.Form} oForm an object representation of the control that should be rendered
22
+ * @param {sap.ui.mdc.actiontoolbar.ActionToolbarAction} oActionToolbarAction an object representation of the control that should be rendered
23
23
  */
24
24
  ActionToolbarActionRenderer.render = function(rm, oActionToolbarAction) {
25
25
  var mAriaProps = { role: "form" };
@@ -33,7 +33,7 @@ sap.ui.define([
33
33
  * @class The ChartSelectionDetails control creates a sap.m.SelectionDetails popover based on metadata and the configuration specified.
34
34
  * @extends sap.m.SelectionDetails
35
35
  * @author SAP SE
36
- * @version 1.99.0
36
+ * @version 1.100.0
37
37
  * @constructor
38
38
  * @experimental As of version ...
39
39
  * @private
@@ -35,17 +35,16 @@ sap.ui.define([
35
35
  "use strict";
36
36
 
37
37
  /**
38
- /**
39
38
  * Constructor for a new ChartToolbar.
40
39
  *
41
40
  * @param {string} [sId] id for the new control, generated automatically if no id is given
42
41
  * @param {object} [mSettings] initial settings for the new control
43
- * @class The ChartToolbar control creates a sap.m.OverflowToolbar based on metadata and the configuration specified.
44
- * @extends sap.m.OverflowToolbar
42
+ * @class The ChartToolbar control is a sap.m.OverflowToolbar based on metadata and the configuration specified.
43
+ * @extends sap.ui.mdc.ActionToolbar
45
44
  * @author SAP SE
46
- * @version 1.99.0
45
+ * @version 1.100.0
47
46
  * @constructor
48
- * @experimental As of version ...
47
+ * @experimental As of version 1.88
49
48
  * @private
50
49
  * @since 1.88
51
50
  * @alias sap.ui.mdc.chart.ChartToolbar
@@ -164,7 +163,15 @@ sap.ui.define([
164
163
  text: MDCRb.getText('chart.PERSONALIZATION_DIALOG_TITLE'),
165
164
  enabled: false,
166
165
  press: function (oEvent) {
167
- oMDCChart.getEngine().uimanager.show(oMDCChart, oMDCChart.getP13nMode());
166
+
167
+ //TODO: Move this to p13n functionality?
168
+ if (oMDCChart.isPropertyHelperFinal()){
169
+ oMDCChart.getEngine().uimanager.show(oMDCChart, oMDCChart.getP13nMode());
170
+ } else {
171
+ oMDCChart.finalizePropertyHelper().then(function(){
172
+ oMDCChart.getEngine().uimanager.show(oMDCChart, oMDCChart.getP13nMode());
173
+ });
174
+ }
168
175
  }
169
176
  });
170
177
  this.addEnd(this._oSettingsBtn);
@@ -30,9 +30,9 @@ sap.ui.define([
30
30
 
31
31
 
32
32
  /**
33
- * Updates the breadcrumps shown on the MDC Chart
33
+ * Updates the breadcrumbs shown on the MDC Chart
34
34
  *
35
- * @param {sap.ui.mdc.Chart} oChart the MDC Chart to update the breadcrumps on
35
+ * @param {sap.ui.mdc.Chart} oMDCChart the MDC Chart to update the breadcrumbs on
36
36
  * @param {*} oDrillableItems the drillable items
37
37
  *
38
38
  * @experimental
@@ -54,7 +54,7 @@ sap.ui.define([
54
54
  oDrillableItems.forEach(function(dim, index, array) {
55
55
 
56
56
  // show breadcrumbs
57
- //If Breadcrumps were set invisible for no drill stack, they need to be set visible again
57
+ //If Breadcrumbs were set invisible for no drill stack, they need to be set visible again
58
58
  this.setVisible(true);
59
59
 
60
60
  // use the last entry of each drill-stack entry to built
@@ -121,11 +121,11 @@ sap.ui.define([
121
121
  };
122
122
 
123
123
  /**
124
- * Creates a breadcrump with given settings
125
- * @param oChart the chart the breadcrump is for
126
- * @param oCrumbSettings settings for the breadcrump
124
+ * Creates a breadcrumb with given settings
125
+ * @param oMDCChart the chart the breadcrumb is for
126
+ * @param oCrumbSettings settings for the breadcrumb
127
127
  *
128
- * @returns the created breadcrump
128
+ * @returns {sap.m.Link} the created breadcrumb
129
129
  *
130
130
  * @experimental
131
131
  * @private
@@ -53,7 +53,7 @@ sap.ui.define([
53
53
 
54
54
  /**
55
55
  * Handles all drill-stack operations on a mdc.Chart instance
56
- * inlcuding drill-downs, drill-ups and updating of depending controls
56
+ * including drill-downs, drill-ups and updating of depending controls
57
57
  * @constructor
58
58
  */
59
59
  var DrillStackHandler = function() {
@@ -62,7 +62,7 @@ sap.ui.define([
62
62
 
63
63
  /**
64
64
  * Creates a drill down popover
65
- * @param oChart
65
+ * @param oMDCChart
66
66
  * @returns the popover object
67
67
  *
68
68
  * @private
@@ -90,7 +90,7 @@ sap.ui.define([
90
90
  control: oMDCChart,
91
91
  key: "Item",
92
92
  state: [{
93
- name: oListItem.data("dim").name,
93
+ name: oListItem.data("dim").dim.name,
94
94
  position: oMDCChart.getItems().length
95
95
  }]
96
96
  });
@@ -135,8 +135,8 @@ sap.ui.define([
135
135
 
136
136
  /**
137
137
  * Shows the drill-down popover on the toolbar button of an mdc.Chart instance
138
- * @param {sap.ui.mdc.Chart} oChart
139
- * @param {sap.m.Button}
138
+ * @param {sap.ui.mdc.Chart} oMDCChart
139
+ * @param {sap.m.Button} oDrillBtn
140
140
  *
141
141
  * @experimental
142
142
  * @private
@@ -181,7 +181,7 @@ sap.ui.define([
181
181
  type: ListType.Active
182
182
  });
183
183
 
184
- oListItem.data("dim", oDimension);
184
+ oListItem.data("dim", {dim: oDimension});
185
185
 
186
186
  /*sTooltip = this._getFieldTooltip(oDimension.name);
187
187
  if (sTooltip) {
@@ -25,7 +25,7 @@ sap.ui.define([
25
25
  * @extends sap.ui.mdc.util.PropertyHelper
26
26
  *
27
27
  * @author SAP SE
28
- * @version 1.99.0
28
+ * @version 1.100.0
29
29
  *
30
30
  * @private
31
31
  * @experimental
@@ -29,7 +29,7 @@ sap.ui.define([
29
29
  *
30
30
  * @namespace
31
31
  * @author SAP SE
32
- * @version 1.99.0
32
+ * @version 1.100.0
33
33
  * @since 1.61.0
34
34
  * @alias sap.ui.mdc.condition.Condition
35
35
  *
@@ -32,7 +32,7 @@ sap.ui.define([
32
32
  *
33
33
  * @namespace
34
34
  * @author SAP SE
35
- * @version 1.99.0
35
+ * @version 1.100.0
36
36
  * @private
37
37
  * @ui5-restricted sap.ui.mdc
38
38
  * @experimental As of version 1.74
@@ -35,7 +35,7 @@ sap.ui.define([
35
35
  * @extends sap.ui.model.json.JSONModel
36
36
  *
37
37
  * @author SAP SE
38
- * @version 1.99.0
38
+ * @version 1.100.0
39
39
  * @since 1.48.0
40
40
  * @alias sap.ui.mdc.condition.ConditionModel
41
41
  *
@@ -24,7 +24,7 @@ function(
24
24
  *
25
25
  * @namespace
26
26
  * @author SAP SE
27
- * @version 1.99.0
27
+ * @version 1.100.0
28
28
  * @since 1.78.0
29
29
  * @alias sap.ui.mdc.condition.FilterConverter
30
30
  *
@@ -139,11 +139,13 @@ function(
139
139
 
140
140
  var oDataType;
141
141
  var bCaseSensitiveType = true;
142
+ var sBaseType;
142
143
 
143
144
  if (oConditionTypes) {
144
145
  if (oConditionTypes[sFieldPath]) {
145
146
  oDataType = oConditionTypes[sFieldPath].type;
146
147
  bCaseSensitiveType = oConditionTypes[sFieldPath].caseSensitive;
148
+ sBaseType = oConditionTypes[sFieldPath].baseType;
147
149
 
148
150
  if (!oDataType) {
149
151
  // We only shown a warning, because the oDataType might not be required for creating the Filter.
@@ -161,7 +163,7 @@ function(
161
163
  }
162
164
 
163
165
  try {
164
- oFilter = oOperator.getModelFilter(oCondition, sFieldPath, oDataType, bCaseSensitiveType);
166
+ oFilter = oOperator.getModelFilter(oCondition, sFieldPath, oDataType, bCaseSensitiveType, sBaseType);
165
167
  } catch (error) {
166
168
  // in case the getModelFilter fails - because the oDataType is missing - we show a console error.
167
169
  Log.error("FilterConverter", "Not able to convert the condition for path '" + sFieldPath + "' into a filter! The type is missing!");