@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
package/THIRDPARTY.txt CHANGED
@@ -197,7 +197,7 @@ License: BSD-3-Clause
197
197
  License Text: https://github.com/SAP/openui5/blob/master/LICENSES/BSD-3-Clause.txt
198
198
  Contained in: src/sap.ui.core/src/sap/ui/thirdparty/sinon-qunit.js
199
199
 
200
- Component: URI.js, version: 1.19.7
200
+ Component: URI.js, version: 1.19.10
201
201
  Copyright: Rodney Rehm
202
202
  License: MIT
203
203
  License Text: https://github.com/SAP/openui5/blob/master/LICENSES/MIT.txt
@@ -450,7 +450,7 @@ License: Apache-2.0
450
450
  License Text: https://github.com/SAP/openui5/blob/master/LICENSES/Apache-2.0.txt
451
451
  Contained in: lib/jsdoc/ui5/plugin.js
452
452
 
453
- Component: SAP Theming Base Content, version: 11.1.34
453
+ Component: SAP Theming Base Content, version: 11.1.36-SNAPSHOT
454
454
  Copyright: SAP SE or an SAP affiliate company and Theming Base Content contributors
455
455
  License: Apache-2.0
456
456
  License Text: https://github.com/SAP/openui5/blob/master/LICENSES/Apache-2.0.txt
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openui5/sap.ui.mdc",
3
- "version": "1.99.0",
3
+ "version": "1.100.0",
4
4
  "description": "OpenUI5 UI Library sap.ui.mdc",
5
5
  "author": "SAP SE (https://www.sap.com)",
6
6
  "license": "Apache-2.0",
@@ -14,8 +14,8 @@
14
14
  "url": "https://github.com/SAP/openui5.git"
15
15
  },
16
16
  "dependencies": {
17
- "@openui5/sap.m": "1.99.0",
18
- "@openui5/sap.ui.core": "1.99.0",
19
- "@openui5/sap.ui.layout": "1.99.0"
17
+ "@openui5/sap.m": "1.100.0",
18
+ "@openui5/sap.ui.core": "1.100.0",
19
+ "@openui5/sap.ui.layout": "1.100.0"
20
20
  }
21
21
  }
@@ -6,7 +6,7 @@
6
6
  <copyright>OpenUI5
7
7
  * (c) Copyright 2009-2022 SAP SE or an SAP affiliate company.
8
8
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.</copyright>
9
- <version>1.99.0</version>
9
+ <version>1.100.0</version>
10
10
 
11
11
  <documentation>UI5 library: sap.ui.mdc</documentation>
12
12
 
@@ -31,7 +31,7 @@ sap.ui.define([
31
31
  * @class The column for the metadata driven table, that hold the template to be shown when the rows has data.
32
32
  * @extends sap.m.OverflowToolbar
33
33
  * @author SAP SE
34
- * @version 1.99.0
34
+ * @version 1.100.0
35
35
  * @constructor
36
36
  * @private
37
37
  * @since 1.58
@@ -23,7 +23,8 @@ sap.ui.define([
23
23
  "sap/ui/mdc/p13n/subcontroller/SortController",
24
24
  "sap/ui/base/ManagedObjectObserver",
25
25
  "sap/ui/mdc/chart/DrillBreadcrumbs",
26
- "sap/ui/mdc/actiontoolbar/ActionToolbarAction"
26
+ "sap/ui/mdc/actiontoolbar/ActionToolbarAction",
27
+ "sap/ui/thirdparty/jquery"
27
28
  ],
28
29
  function (
29
30
  Core,
@@ -44,7 +45,8 @@ sap.ui.define([
44
45
  SortController,
45
46
  ManagedObjectObserver,
46
47
  Breadcrumbs,
47
- ActionToolbarAction
48
+ ActionToolbarAction,
49
+ jQuery
48
50
  ) {
49
51
  "use strict";
50
52
 
@@ -58,7 +60,7 @@ sap.ui.define([
58
60
  * @class The Chart control creates a chart based on metadata and the configuration specified.
59
61
  * @extends sap.ui.mdc.Control
60
62
  * @author SAP SE
61
- * @version 1.99.0
63
+ * @version 1.100.0
62
64
  * @constructor
63
65
  * @experimental As of version ...
64
66
  * @private
@@ -134,7 +136,7 @@ sap.ui.define([
134
136
  },
135
137
 
136
138
  /**
137
- * Set chart's legend properties.
139
+ * Enables the legend of the chart.
138
140
  *
139
141
  * @since 1.88
140
142
  */
@@ -190,11 +192,11 @@ sap.ui.define([
190
192
  * @since 1.99
191
193
  */
192
194
  filterConditions: {
193
- type: "object"
195
+ type: "object",
196
+ defaultValue: {}
194
197
  },
195
198
  /**
196
- * Controls the visibility of the chart tooltip. If set to <code>true </code>, an instance of sap.viz.ui5.controls.VizTooltip will
197
- * be created and shown when hovering over a data point.
199
+ * Controls the visibility of the chart tooltip. If set to <code>true</code>, an instance of {@link sap.viz.ui5.controls.VizTooltip} is created and shown when hovering over a data point.
198
200
  *
199
201
  * @since 1.88
200
202
  */
@@ -204,7 +206,8 @@ sap.ui.define([
204
206
  defaultValue: true
205
207
  },
206
208
  /**
207
- * Binds the chart automatically after the initial creation of the chart
209
+ * If set to <code>true</code>, the chart is automatically bound after initialization.
210
+ * If set to <code>false</code>, the chart is bound after the first call to <code>rebind</code>.
208
211
  */
209
212
  autoBindOnInit: {
210
213
  type: "boolean",
@@ -213,7 +216,7 @@ sap.ui.define([
213
216
  },
214
217
 
215
218
  /**
216
- * Specifies the type of chart to be created by the SmartChart control.
219
+ * Specifies the type of chart to be created by the <code>Chart</code> control.
217
220
  */
218
221
  chartType: {
219
222
  type: "string",
@@ -224,6 +227,17 @@ sap.ui.define([
224
227
  type: "boolean",
225
228
  group: "Misc",
226
229
  defaultValue: true
230
+ },
231
+ /**
232
+ * Specifies the filter metadata.<br>
233
+ * <b>Note</b>: This property must not be bound.<br>
234
+ * <b>Note</b>: This property is used exclusively for SAPUI5 flexibility/ Fiori Elements. Do not use it otherwise.
235
+ *
236
+ * @since 1.99
237
+ */
238
+ propertyInfo: {
239
+ type: "object",
240
+ defaultValue: []
227
241
  }
228
242
  },
229
243
  aggregations: {
@@ -343,6 +357,9 @@ sap.ui.define([
343
357
  this.setModel(this._oManagedObjectModel, "$mdcChart");
344
358
  this._bNewP13n = true;//TODO: remove with migration
345
359
  Control.prototype.init.apply(this, arguments);
360
+
361
+ this._setupPropertyInfoStore("propertyInfo");
362
+ this._setPropertyHelperClass(PropertyHelper);
346
363
  };
347
364
 
348
365
  Chart.prototype.setP13nMode = function(aMode) {
@@ -442,6 +459,7 @@ sap.ui.define([
442
459
  * @ui5-restricted sap.ui.mdc
443
460
  */
444
461
  Chart.prototype.applySettings = function (mSettings, oScope) {
462
+ this._setPropertyHelperClass(PropertyHelper);
445
463
  Control.prototype.applySettings.apply(this, arguments);
446
464
 
447
465
  this.initializedPromise = new Promise(function (resolve, reject) {
@@ -471,6 +489,7 @@ sap.ui.define([
471
489
  aInitPromises.push(this.retrieveInbuiltFilter());
472
490
  }
473
491
 
492
+ //TODO: Refactor this so we use awaitPropertyHelper
474
493
  Promise.all(aInitPromises).then(function(){
475
494
  this._initInnerControls();
476
495
  }.bind(this));
@@ -482,6 +501,7 @@ sap.ui.define([
482
501
  * Inner chart is initialized via the delegate
483
502
  */
484
503
  Chart.prototype._initInnerControls = function () {
504
+
485
505
  this.getControlDelegate().initializeInnerChart(this).then(function (oInnerChart) {
486
506
 
487
507
  this.setBusyIndicatorDelay(0);
@@ -491,16 +511,14 @@ sap.ui.define([
491
511
 
492
512
  if (this.getAutoBindOnInit()) {
493
513
  this.setBusy(true);
494
- this._createContentfromPropertyInfos();
514
+ this._createContentfromPropertyInfos(oInnerChart);
495
515
  }
496
516
 
497
517
  this.setAggregation("_innerChart", oInnerChart);
498
-
499
518
  this._bInnerChartReady = true;
500
-
501
519
  this._fnResolveInitialized();
502
- // eslint-disable-next-line no-empty
503
520
  this.invalidate();
521
+
504
522
  }.bind(this)).catch(function (error) {
505
523
  this._fnRejectInitialized(error);
506
524
  }.bind(this));
@@ -517,27 +535,27 @@ sap.ui.define([
517
535
  *
518
536
  * Is called during init when autoBindOnInit = "true", if "false" then this is called by _rebind()
519
537
  */
520
- Chart.prototype._createContentfromPropertyInfos = function () {
521
- this.initPropertyHelper(PropertyHelper).then(function () {
522
- //Create content on inner chart instance
523
- this.getControlDelegate().createInnerChartContent(this, this._innerChartDataLoadComplete.bind(this));
524
-
525
- this._createBreadcrumbs();
526
- //From now on, listen to changes on Items Aggregation and sync them with inner chart
527
- this._oObserver = new ManagedObjectObserver(this._propagateItemChangeToInnerChart.bind(this));
528
- this._oObserver.observe(this, {
529
- aggregations: [
530
- "items"
531
- ]
532
- });
533
-
534
- //Sync MDC Chart properties with inner chart
535
- this._propagatePropertiesToInnerChart();
536
-
537
- this._fnResolveInnerChartBound();
538
+ Chart.prototype._createContentfromPropertyInfos = function (oInnerChart) {
538
539
 
540
+ //Make sure all MDC Items have the necessary information to create a chart
541
+ this.getControlDelegate().checkAndUpdateMDCItems(this).then(function(){
542
+ //Create content on inner chart instance
543
+ this.getControlDelegate().createInnerChartContent(this, this._innerChartDataLoadComplete.bind(this)).then(function(){
544
+ this._createBreadcrumbs();
545
+ //From now on, listen to changes on Items Aggregation and sync them with inner chart
546
+ this._oObserver = new ManagedObjectObserver(this._propagateItemChangeToInnerChart.bind(this));
547
+ this._oObserver.observe(this, {
548
+ aggregations: [
549
+ "items"
550
+ ]
551
+ });
552
+
553
+ //Sync MDC Chart properties with inner chart
554
+ this._propagatePropertiesToInnerChart();
555
+
556
+ this._fnResolveInnerChartBound();
557
+ }.bind(this));
539
558
  }.bind(this));
540
-
541
559
  };
542
560
 
543
561
  Chart.prototype.setHeight = function(iHeight) {
@@ -31,7 +31,7 @@ sap.ui.define([
31
31
  */
32
32
 
33
33
  /**
34
- *Zooms in on the inner chart.
34
+ * Zooms in on the inner chart.
35
35
  * @param {int} iValue Number of steps for zooming in
36
36
  *
37
37
  * @experimental
@@ -42,7 +42,7 @@ sap.ui.define([
42
42
  };
43
43
 
44
44
  /**
45
- *Zooms out of the inner chart.
45
+ * Zooms out of the inner chart.
46
46
  * @param {int} iValue Number of steps for zooming out
47
47
  *
48
48
  * @experimental
@@ -69,6 +69,64 @@ sap.ui.define([
69
69
  ChartDelegate.getZoomState = function () {
70
70
  };
71
71
 
72
+ ChartDelegate.getFilterDelegate = function() {
73
+ return {
74
+
75
+ /**
76
+ * Creates an instance of a <code>sap.ui.mdc.FilterField</code>.
77
+ *
78
+ * @param {string} sPropertyName The property name
79
+ * @param {sap.ui.mdc.Control} oControl - the instance of the mdc control
80
+ * @returns {Promise<sap.ui.mdc.FilterField>} <code>Promise</code> that resolves with an instance of a <code>sap.ui.mdc.FilterField</code>.
81
+ * @see sap.ui.mdc.AggregationBaseDelegate#addItem
82
+ */
83
+ addItem: function (sPropertyName, oControl) {
84
+ return Promise.resolve();
85
+ },
86
+
87
+ /**
88
+ * This methods is called during the appliance of the add condition change.
89
+ * This intention is to update the propertyInfo property.
90
+ *
91
+ * @param {string} sPropertyName The name of a property.
92
+ * @param {sap.ui.mdc.Control} oControl - the instance of the mdc control
93
+ * @param {Object} mPropertyBag Instance of property bag from Flex change API
94
+ * @returns {Promise} Promise that resolves once the properyInfo property was updated
95
+ */
96
+ addCondition: function(sPropertyName, oControl, mPropertyBag) {
97
+ return Promise.resolve();
98
+ },
99
+
100
+ /**
101
+ * This methods is called during the appliance of the remove condition change.
102
+ * This intention is to update the propertyInfo property.
103
+ *
104
+ * @param {string} sPropertyName The name of a property.
105
+ * @param {sap.ui.mdc.Control} oControl - the instance of the mdc control
106
+ * @param {Object} mPropertyBag Instance of property bag from Flex change API
107
+ * @returns {Promise} Promise that resolves once the properyInfo property was updated
108
+ */
109
+ removeCondition: function(sPropertyName, oControl, mPropertyBag) {
110
+ return Promise.resolve();
111
+ }
112
+ };
113
+ };
114
+
115
+ /**
116
+ * Creates a new MDC chart item for a given property name and updates the inner chart.
117
+ * <b>Note:</b> This does <b>not</b> add the MDC chart item to the <code>Items</code> aggregation of the MDC chart.
118
+ * Called and used by <code>p13n</code>.
119
+ * @param {string} sPropertyName Name of the property added
120
+ * @param {sap.ui.mdc.Chart} oMDCChart Reference to the MDC chart to which the item is added
121
+ * @returns {Promise<sap.ui.mdc.Chart.Item>} <code>Promise</code> that resolves with new MDC chart item as parameter
122
+ *
123
+ * @experimental
124
+ * @private
125
+ * @ui5-restricted sap.ui.mdc
126
+ */
127
+ ChartDelegate.addItem = function (sPropertyName, oMDCChart, mPropertyBag, sRole) {
128
+ };
129
+
72
130
  /**
73
131
  * @typedef {object} SelectionDetails
74
132
  * @property {string} eventId ID of the selection event
@@ -140,27 +198,14 @@ sap.ui.define([
140
198
  ChartDelegate.removeItemFromInnerChart = function (oMDCChartItem) {
141
199
  };
142
200
 
143
- /**
144
- * Creates a new MDC chart item for a given property name and updates the inner chart.
145
- * <b>Note:</b> This does <b>not</b> add the MDC chart item to the <code>Items</code> aggregation of the MDC chart.
146
- * Called and used by <code>p13n</code>.
147
- * @param {string} sPropertyName Name of the property added
148
- * @param {sap.ui.mdc.Chart} oMDCChart Reference to the MDC chart to which the item is added
149
- * @returns {Promise<sap.ui.mdc.Chart.Item>} <code>Promise</code> that resolves with new MDC chart item as parameter
150
- *
151
- * @experimental
152
- * @private
153
- * @ui5-restricted sap.ui.mdc
154
- */
155
- ChartDelegate.addItem = function (sPropertyName, oMDCChart, mPropertyBag, sRole) {
156
- };
201
+
157
202
 
158
203
  /**
159
204
  * Removes an existing MDC chart item for a given property name and updates the inner chart.
160
205
  * Called and used by p13n
161
- * @param {string} sPropertyName Name of the property removed
206
+ * @param {string} oProperty Name of the property removed
162
207
  * @param {sap.ui.mdc.Chart} oMDCChart Reference to the MDC chart from which property is removed
163
- * @returns {Promise<bool>} Promise containing information whether the item was deleted
208
+ * @returns {Promise<boolean>} Promise containing information whether the item was deleted
164
209
  *
165
210
  * @experimental
166
211
  * @private
@@ -242,7 +287,7 @@ sap.ui.define([
242
287
  /**
243
288
  * Gets the available chart types for the current state of the inner chart.
244
289
  *
245
- * @returns {array<ChartTypeObject>} Array containing the available chart types
290
+ * @returns {Array<ChartTypeObject>} Array containing the available chart types
246
291
  *
247
292
  * @experimental
248
293
  * @private
@@ -268,7 +313,7 @@ sap.ui.define([
268
313
  * Returns all sorted dimensions of an inner chart as property.
269
314
  * This is used to determine possible drilldown dimensions in the drill down popover of the MDC chart.
270
315
  * @param {sap.ui.mdc.Chart} oMDCChart Reference to the MDC chart
271
- * @returns {Promise<array<sap.ui.mdc.chart.Item>>} <code>Promise</code> containing an array of dimensions that is sorted
316
+ * @returns {Promise<Array<sap.ui.mdc.chart.Item>>} <code>Promise</code> containing an array of dimensions that is sorted
272
317
  *
273
318
  * @experimental
274
319
  * @private
@@ -282,7 +327,7 @@ sap.ui.define([
282
327
  * This function is used by the breadcrumb navigation.
283
328
  *
284
329
  * @param {sap.ui.mdc.Chart} oMDCChart Reference to the MDC chart
285
- * @returns {array<sap.ui.mdc.chart.Item>} Array of MDC items that are drillable
330
+ * @returns {Array<sap.ui.mdc.chart.Item>} Array of MDC items that are drillable
286
331
  *
287
332
  * @experimental
288
333
  * @private
@@ -28,7 +28,7 @@ sap.ui.define(['./library'],
28
28
  * Renders the HTML for the given control, using the provided {@link sap.ui.core.RenderManager}.
29
29
  *
30
30
  * @param {sap.ui.core.RenderManager} oRm The RenderManager that can be used for writing to the render output buffer
31
- * @param {sap.ui.mdc.Chart} oInnerChart An object representation of the control that should be rendered
31
+ * @param {sap.ui.mdc.Chart} oMDCChart An object representation of the control that should be rendered
32
32
  */
33
33
  ChartRenderer.render = function(oRm, oMDCChart) {
34
34
  oRm.openStart("div", oMDCChart);
@@ -4,8 +4,8 @@
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
  sap.ui.define([
7
- "sap/ui/core/Control", "sap/ui/mdc/mixin/DelegateMixin", "sap/ui/mdc/mixin/AdaptationMixin"
8
- ], function(CoreControl, DelegateMixin, AdaptationMixin) {
7
+ "sap/ui/core/Control", "sap/ui/mdc/mixin/DelegateMixin", "sap/ui/mdc/mixin/PropertyHelperMixin", "sap/ui/mdc/mixin/AdaptationMixin"
8
+ ], function(CoreControl, DelegateMixin, PropertyHelperMixin, AdaptationMixin) {
9
9
  "use strict";
10
10
 
11
11
  /**
@@ -20,7 +20,7 @@ sap.ui.define([
20
20
  * @extends sap.ui.core.Control
21
21
  * @abstract
22
22
  * @author SAP SE
23
- * @version 1.99.0
23
+ * @version 1.100.0
24
24
  * @alias sap.ui.mdc.Control
25
25
  *
26
26
  * @borrows sap.ui.mdc.mixin.DelegateMixin.awaitControlDelegate as awaitControlDelegate
@@ -28,9 +28,12 @@ sap.ui.define([
28
28
  * @borrows sap.ui.mdc.mixin.DelegateMixin.getPayload as getPayload
29
29
  * @borrows sap.ui.mdc.mixin.DelegateMixin.getTypeUtil as getTypeUtil
30
30
  * @borrows sap.ui.mdc.mixin.DelegateMixin.initControlDelegate as initControlDelegate
31
- * @borrows sap.ui.mdc.mixin.DelegateMixin.initPropertyHelper as initPropertyHelper
32
- * @borrows sap.ui.mdc.mixin.DelegateMixin.awaitPropertyHelper as awaitPropertyHelper
33
- * @borrows sap.ui.mdc.mixin.DelegateMixin.getPropertyHelper as getPropertyHelper
31
+ *
32
+ * @borrows sap.ui.mdc.mixin.PropertyHelperMixin.initPropertyHelper as initPropertyHelper
33
+ * @borrows sap.ui.mdc.mixin.PropertyHelperMixin.awaitPropertyHelper as awaitPropertyHelper
34
+ * @borrows sap.ui.mdc.mixin.PropertyHelperMixin.getPropertyHelper as getPropertyHelper
35
+ * @borrows sap.ui.mdc.mixin.PropertyHelperMixin.finalizePropertyHelper as finalizePropertyHelper
36
+ * @borrows sap.ui.mdc.mixin.PropertyHelperMixin.isPropertyHelperFinal as isPropertyHelperFinal
34
37
  *
35
38
  * @borrows sap.ui.mdc.mixin.AdaptationMixin.getEngine as getInstance
36
39
  * @borrows sap.ui.mdc.mixin.AdaptationMixin.retrieveInbuiltFilter as retrieveInbuiltFilter
@@ -61,8 +64,10 @@ sap.ui.define([
61
64
  renderer: CoreControl.renderer
62
65
  });
63
66
 
67
+
64
68
  DelegateMixin.call(Control.prototype);
65
69
  AdaptationMixin.call(Control.prototype);
70
+ PropertyHelperMixin.call(Control.prototype);
66
71
 
67
72
  return Control;
68
73
  });
@@ -4,8 +4,8 @@
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
  sap.ui.define([
7
- "sap/ui/core/Element", "sap/ui/mdc/mixin/DelegateMixin", "sap/ui/mdc/mixin/AdaptationMixin"
8
- ], function(CoreElement, DelegateMixin, AdaptationMixin) {
7
+ "sap/ui/core/Element", "sap/ui/mdc/mixin/DelegateMixin", "sap/ui/mdc/mixin/PropertyHelperMixin", "sap/ui/mdc/mixin/AdaptationMixin"
8
+ ], function(CoreElement, DelegateMixin, PropertyHelperMixin, AdaptationMixin) {
9
9
  "use strict";
10
10
 
11
11
  /**
@@ -20,7 +20,7 @@ sap.ui.define([
20
20
  * @extends sap.ui.core.Element
21
21
  * @abstract
22
22
  * @author SAP SE
23
- * @version 1.99.0
23
+ * @version 1.100.0
24
24
  * @alias sap.ui.mdc.Element
25
25
  *
26
26
  * @borrows sap.ui.mdc.mixin.DelegateMixin.awaitControlDelegate as awaitControlDelegate
@@ -28,10 +28,13 @@ sap.ui.define([
28
28
  * @borrows sap.ui.mdc.mixin.DelegateMixin.getPayload as getPayload
29
29
  * @borrows sap.ui.mdc.mixin.DelegateMixin.getTypeUtil as getTypeUtil
30
30
  * @borrows sap.ui.mdc.mixin.DelegateMixin.initControlDelegate as initControlDelegate
31
- * @borrows sap.ui.mdc.mixin.DelegateMixin.initPropertyHelper as initPropertyHelper
32
- * @borrows sap.ui.mdc.mixin.DelegateMixin.awaitPropertyHelper as awaitPropertyHelper
33
- * @borrows sap.ui.mdc.mixin.DelegateMixin.getPropertyHelper as getPropertyHelper
34
31
  *
32
+ * @borrows sap.ui.mdc.mixin.PropertyHelperMixin.initPropertyHelper as initPropertyHelper
33
+ * @borrows sap.ui.mdc.mixin.PropertyHelperMixin.awaitPropertyHelper as awaitPropertyHelper
34
+ * @borrows sap.ui.mdc.mixin.PropertyHelperMixin.getPropertyHelper as getPropertyHelper
35
+ * @borrows sap.ui.mdc.mixin.PropertyHelperMixin.finalizePropertyHelper as finalizePropertyHelper
36
+ * @borrows sap.ui.mdc.mixin.PropertyHelperMixin.isPropertyHelperFinal as isPropertyHelperFinal
37
+ *
35
38
  * @borrows sap.ui.mdc.mixin.AdaptationMixin.getEngine as getInstance
36
39
  * @borrows sap.ui.mdc.mixin.AdaptationMixin.retrieveInbuiltFilter as retrieveInbuiltFilter
37
40
  * @borrows sap.ui.mdc.mixin.AdaptationMixin.getInbuiltFilter as getInbuiltFilter
@@ -63,6 +66,7 @@ sap.ui.define([
63
66
 
64
67
  DelegateMixin.call(Element.prototype);
65
68
  AdaptationMixin.call(Element.prototype);
69
+ PropertyHelperMixin.call(Element.prototype);
66
70
 
67
71
  return Element;
68
72
  });
@@ -46,12 +46,12 @@ sap.ui.define([
46
46
  * @implements sap.ui.core.IFormContent
47
47
  *
48
48
  * @author SAP SE
49
- * @version 1.99.0
49
+ * @version 1.100.0
50
50
  *
51
51
  * @constructor
52
52
  * @alias sap.ui.mdc.Field
53
53
  * @author SAP SE
54
- * @version 1.99.0
54
+ * @version 1.100.0
55
55
  * @since 1.54.0
56
56
  * @experimental As of version 1.54
57
57
  *
@@ -188,7 +188,9 @@ sap.ui.define([
188
188
  this._oBindingContext = oBindingContext;
189
189
  this._oContentFactory.updateConditionType();
190
190
  if (this._bParseError || this.getFieldHelp()) { // In FieldHelp case InParameters might need an update
191
- this._oManagedObjectModel.checkUpdate(true, true); // async. to reduce updates
191
+ if (this._oManagedObjectModel) {
192
+ this._oManagedObjectModel.checkUpdate(true, true); // async. to reduce updates
193
+ }
192
194
  this._bParseError = false;
193
195
  }
194
196
  }
@@ -216,7 +218,9 @@ sap.ui.define([
216
218
 
217
219
  if (sPropertyName === "value" && this._bParseError && deepEqual(this.getValue(), this.validateProperty(sPropertyName, oValue))) {
218
220
  // in parse error and same value - no update on property - so remove error here
219
- this._oManagedObjectModel.checkUpdate(true, true); // async. to reduce updates (additionalValue will follow)
221
+ if (this._oManagedObjectModel) {
222
+ this._oManagedObjectModel.checkUpdate(true, true); // async. to reduce updates (additionalValue will follow)
223
+ }
220
224
  this._bParseError = false;
221
225
  }
222
226
 
@@ -532,6 +536,17 @@ sap.ui.define([
532
536
  return false;
533
537
 
534
538
  }
539
+
540
+ Field.prototype._checkCreateInternalContent = function() {
541
+
542
+ if (!this.bIsDestroyed && this._oContentFactory.getDataType() && !this._isPropertyInitial("editMode") && !this._isPropertyInitial("multipleLines")) {
543
+ // If DataType is provided via Binding and EditMode is set the internal control can be created
544
+ // TODO: no control needed if just template for cloning
545
+ FieldBase.prototype._checkCreateInternalContent.apply(this, arguments);
546
+ }
547
+
548
+ };
549
+
535
550
  /**
536
551
  * Sets conditions to the property <code>conditions</code>.
537
552
  *
@@ -21,7 +21,7 @@ sap.ui.define([
21
21
  * The metadata information is provided via the {@link sap.ui.mdc.FilterBarDelegate FilterBarDelegate} implementation. This implementation has to be provided by the application.
22
22
  * @extends sap.ui.mdc.filterbar.FilterBarBase
23
23
  * @author SAP SE
24
- * @version 1.99.0
24
+ * @version 1.100.0
25
25
  * @constructor
26
26
  * @experimental As of version 1.61
27
27
  * @private
@@ -33,5 +33,31 @@ sap.ui.define(["sap/ui/mdc/AggregationBaseDelegate"], function(AggregationBaseDe
33
33
  return Promise.resolve(true);
34
34
  };
35
35
 
36
+ /**
37
+ * This methods is called during the appliance of the add condition change.
38
+ * This intention is to update the propertyInfo property.
39
+ *
40
+ * @param {string} sPropertyName The name of a property.
41
+ * @param {sap.ui.mdc.FilterBar} oFilterBar - the instance of filter bar
42
+ * @param {Object} mPropertyBag Instance of property bag from Flex change API
43
+ * @returns {Promise} Promise that resolves once the properyInfo property was updated
44
+ */
45
+ FilterBarDelegate.addCondition = function(sPropertyName, oFilterBar, mPropertyBag) {
46
+ return Promise.resolve();
47
+ };
48
+
49
+ /**
50
+ * This methods is called during the appliance of the remove condition change.
51
+ * This intention is to update the propertyInfo property.
52
+ *
53
+ * @param {string} sPropertyName The name of a property.
54
+ * @param {sap.ui.mdc.FilterBar} oFilterBar - the instance of filter bar
55
+ * @param {Object} mPropertyBag Instance of property bag from Flex change API
56
+ * @returns {Promise} Promise that resolves once the properyInfo property was updated
57
+ */
58
+ FilterBarDelegate.removeCondition = function(sPropertyName, oFilterBar, mPropertyBag) {
59
+ return Promise.resolve();
60
+ };
61
+
36
62
  return FilterBarDelegate;
37
63
  });
@@ -6,11 +6,13 @@
6
6
  sap.ui.define([
7
7
  'sap/ui/mdc/field/FieldBase',
8
8
  'sap/ui/mdc/field/FieldBaseRenderer',
9
+ 'sap/ui/mdc/enum/FieldDisplay',
9
10
  'sap/base/util/merge',
10
11
  'sap/base/util/deepEqual'
11
12
  ], function(
12
13
  FieldBase,
13
14
  FieldBaseRenderer,
15
+ FieldDisplay,
14
16
  merge,
15
17
  deepEqual
16
18
  ) {
@@ -31,12 +33,12 @@ sap.ui.define([
31
33
  * @extends sap.ui.mdc.field.FieldBase
32
34
  *
33
35
  * @author SAP SE
34
- * @version 1.99.0
36
+ * @version 1.100.0
35
37
  *
36
38
  * @constructor
37
39
  * @alias sap.ui.mdc.FilterField
38
40
  * @author SAP SE
39
- * @version 1.99.0
41
+ * @version 1.100.0
40
42
  * @since 1.48.0
41
43
  *
42
44
  * @experimental As of version 1.48
@@ -141,7 +143,9 @@ sap.ui.define([
141
143
  // As ConditionModel triggers checkUpdate in forced mode on addCondition, setConditions... also unchanged conditions will be updated
142
144
  // So e.g. if a variant is applied an error will be removed.
143
145
  if (this._oContentFactory.getBoundProperty()) { // single value case
144
- this._oManagedObjectModel.checkUpdate(true, true); // async. to reduce updates (additionalValue will follow)
146
+ if (this._oManagedObjectModel) {
147
+ this._oManagedObjectModel.checkUpdate(true, true); // async. to reduce updates (additionalValue will follow)
148
+ }
145
149
  } else { // Multi value case - don't update tokens, initialize value
146
150
  var oContent = this._getContent()[0];
147
151
  if (oContent && oContent.setValue) {
@@ -341,6 +345,40 @@ sap.ui.define([
341
345
  return this;
342
346
  };
343
347
 
348
+ FilterField.prototype._checkCreateInternalContent = function() {
349
+
350
+ if (!this.bIsDestroyed && !this.isPropertyInitial("dataType")) {
351
+ // If DataType is set in applySettings we can assume it is final and DataTypeFormatOptions and DataTypeContraints are set too
352
+ // EditMode is not relevant as non editable FilterFields are not a use case in the moment.
353
+ // MultipleLines is also not used for FilterFields in the moment.
354
+ // MaxConditions should also be set on applySettings
355
+
356
+ var sId = this.getFieldHelp();
357
+ var oFieldHelp = sap.ui.getCore().byId(sId);
358
+ var oBindingInfo = this.getBindingInfo("conditions");
359
+ var oBinding = this.getBinding("conditions");
360
+ if (this.getDisplay() !== FieldDisplay.Value && sId && (!oFieldHelp || (oBindingInfo && !oBinding))) {
361
+ // FieldHelp might need ConditionModel to determine value of InParameters to get the description.
362
+ // So if FieldHelp not exists right now or binding to ConditionModel not already created, wait.
363
+ return;
364
+ }
365
+
366
+ this._oContentFactory.retrieveDataType();
367
+ FieldBase.prototype._checkCreateInternalContent.apply(this, arguments);
368
+ }
369
+
370
+ };
371
+
372
+ FilterField.prototype._handleModelContextChange = function(oEvent) {
373
+
374
+ FieldBase.prototype._handleModelContextChange.apply(this, arguments);
375
+
376
+ if (this._getContent().length === 0) {
377
+ // inner control not created, maybe it can be created bow (maybe ConditionModel assignment changed)
378
+ this._triggerCheckCreateInternalContent();
379
+ }
380
+
381
+ };
344
382
 
345
383
  return FilterField;
346
384