@openui5/sap.ui.mdc 1.111.0 → 1.112.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 (167) hide show
  1. package/package.json +4 -4
  2. package/src/sap/ui/mdc/.library +1 -1
  3. package/src/sap/ui/mdc/ActionToolbar.js +1 -1
  4. package/src/sap/ui/mdc/Chart.js +21 -23
  5. package/src/sap/ui/mdc/ChartDelegate.js +1 -1
  6. package/src/sap/ui/mdc/ChartRenderer.js +0 -2
  7. package/src/sap/ui/mdc/Control.js +1 -1
  8. package/src/sap/ui/mdc/Element.js +1 -1
  9. package/src/sap/ui/mdc/Field.js +6 -6
  10. package/src/sap/ui/mdc/FilterBar.js +1 -1
  11. package/src/sap/ui/mdc/FilterBarDelegate.js +0 -37
  12. package/src/sap/ui/mdc/FilterField.js +4 -4
  13. package/src/sap/ui/mdc/Link.js +1 -1
  14. package/src/sap/ui/mdc/MultiValueField.js +1 -1
  15. package/src/sap/ui/mdc/Table.js +3 -11
  16. package/src/sap/ui/mdc/TableDelegate.js +5 -3
  17. package/src/sap/ui/mdc/ValueHelp.js +28 -15
  18. package/src/sap/ui/mdc/actiontoolbar/ActionToolbarAction.js +1 -1
  19. package/src/sap/ui/mdc/chart/ChartImplementationContainer.js +1 -1
  20. package/src/sap/ui/mdc/chart/ChartImplementationContainerRenderer.js +0 -2
  21. package/src/sap/ui/mdc/chart/ChartSelectionDetails.js +1 -1
  22. package/src/sap/ui/mdc/chart/ChartToolbar.js +2 -2
  23. package/src/sap/ui/mdc/chart/ChartTypeButton.js +2 -2
  24. package/src/sap/ui/mdc/chart/PropertyHelper.js +35 -2
  25. package/src/sap/ui/mdc/condition/Condition.js +1 -1
  26. package/src/sap/ui/mdc/condition/ConditionConverter.js +1 -1
  27. package/src/sap/ui/mdc/condition/ConditionModel.js +1 -1
  28. package/src/sap/ui/mdc/condition/FilterConverter.js +1 -1
  29. package/src/sap/ui/mdc/condition/FilterOperatorUtil.js +43 -1
  30. package/src/sap/ui/mdc/condition/Operator.js +1 -1
  31. package/src/sap/ui/mdc/condition/OperatorDynamicDateOption.js +10 -17
  32. package/src/sap/ui/mdc/condition/RangeOperator.js +7 -8
  33. package/src/sap/ui/mdc/field/ConditionType.js +1 -1
  34. package/src/sap/ui/mdc/field/ConditionsType.js +1 -1
  35. package/src/sap/ui/mdc/field/CustomFieldInfo.js +1 -1
  36. package/src/sap/ui/mdc/field/DefineConditionPanel.js +6 -6
  37. package/src/sap/ui/mdc/field/DynamicDateRangeConditionsType.js +49 -62
  38. package/src/sap/ui/mdc/field/FieldBase.js +93 -33
  39. package/src/sap/ui/mdc/field/FieldInfoBase.js +1 -1
  40. package/src/sap/ui/mdc/field/FieldInput.js +1 -1
  41. package/src/sap/ui/mdc/field/FieldInputRenderUtil.js +1 -1
  42. package/src/sap/ui/mdc/field/FieldMultiInput.js +1 -1
  43. package/src/sap/ui/mdc/field/ListFieldHelpItem.js +1 -1
  44. package/src/sap/ui/mdc/field/MultiValueFieldItem.js +1 -1
  45. package/src/sap/ui/mdc/field/TokenDisplay.js +1 -1
  46. package/src/sap/ui/mdc/field/TokenizerDisplay.js +1 -1
  47. package/src/sap/ui/mdc/field/content/DateContent.js +1 -2
  48. package/src/sap/ui/mdc/filterbar/FilterBarBase.js +2 -2
  49. package/src/sap/ui/mdc/filterbar/FilterBarBaseRenderer.js +3 -0
  50. package/src/sap/ui/mdc/filterbar/PropertyHelper.js +1 -1
  51. package/src/sap/ui/mdc/filterbar/p13n/AdaptationFilterBar.js +29 -2
  52. package/src/sap/ui/mdc/filterbar/vh/FilterBar.js +1 -1
  53. package/src/sap/ui/mdc/flexibility/Chart.flexibility.js +1 -1
  54. package/src/sap/ui/mdc/flexibility/FilterBar.flexibility.js +1 -1
  55. package/src/sap/ui/mdc/flexibility/FilterItemFlex.js +1 -1
  56. package/src/sap/ui/mdc/flexibility/GroupFlex.js +56 -9
  57. package/src/sap/ui/mdc/flexibility/SortFlex.js +56 -9
  58. package/src/sap/ui/mdc/flexibility/Util.js +8 -3
  59. package/src/sap/ui/mdc/library.js +108 -2
  60. package/src/sap/ui/mdc/link/ContactDetails.js +1 -1
  61. package/src/sap/ui/mdc/link/ContactDetailsAddressItem.js +1 -1
  62. package/src/sap/ui/mdc/link/ContactDetailsEmailItem.js +1 -1
  63. package/src/sap/ui/mdc/link/ContactDetailsItem.js +1 -1
  64. package/src/sap/ui/mdc/link/ContactDetailsPhoneItem.js +1 -1
  65. package/src/sap/ui/mdc/link/Factory.js +1 -1
  66. package/src/sap/ui/mdc/link/FakeFlpConnector.js +1 -1
  67. package/src/sap/ui/mdc/link/LinkItem.js +1 -1
  68. package/src/sap/ui/mdc/link/Panel.js +1 -1
  69. package/src/sap/ui/mdc/link/PanelItem.js +1 -1
  70. package/src/sap/ui/mdc/link/SemanticObjectMapping.js +1 -1
  71. package/src/sap/ui/mdc/link/SemanticObjectMappingItem.js +1 -1
  72. package/src/sap/ui/mdc/link/SemanticObjectUnavailableAction.js +1 -1
  73. package/src/sap/ui/mdc/messagebundle.properties +15 -0
  74. package/src/sap/ui/mdc/messagebundle_ar.properties +11 -1
  75. package/src/sap/ui/mdc/messagebundle_bg.properties +10 -0
  76. package/src/sap/ui/mdc/messagebundle_ca.properties +10 -0
  77. package/src/sap/ui/mdc/messagebundle_cs.properties +10 -0
  78. package/src/sap/ui/mdc/messagebundle_cy.properties +10 -0
  79. package/src/sap/ui/mdc/messagebundle_da.properties +10 -0
  80. package/src/sap/ui/mdc/messagebundle_de.properties +10 -0
  81. package/src/sap/ui/mdc/messagebundle_el.properties +13 -3
  82. package/src/sap/ui/mdc/messagebundle_en.properties +10 -0
  83. package/src/sap/ui/mdc/messagebundle_en_GB.properties +10 -0
  84. package/src/sap/ui/mdc/messagebundle_en_US_sappsd.properties +10 -0
  85. package/src/sap/ui/mdc/messagebundle_en_US_saprigi.properties +2 -0
  86. package/src/sap/ui/mdc/messagebundle_en_US_saptrc.properties +10 -0
  87. package/src/sap/ui/mdc/messagebundle_es.properties +10 -0
  88. package/src/sap/ui/mdc/messagebundle_es_MX.properties +10 -0
  89. package/src/sap/ui/mdc/messagebundle_et.properties +10 -0
  90. package/src/sap/ui/mdc/messagebundle_fi.properties +10 -0
  91. package/src/sap/ui/mdc/messagebundle_fr.properties +10 -0
  92. package/src/sap/ui/mdc/messagebundle_fr_CA.properties +10 -0
  93. package/src/sap/ui/mdc/messagebundle_hi.properties +10 -0
  94. package/src/sap/ui/mdc/messagebundle_hr.properties +10 -0
  95. package/src/sap/ui/mdc/messagebundle_hu.properties +10 -0
  96. package/src/sap/ui/mdc/messagebundle_id.properties +10 -0
  97. package/src/sap/ui/mdc/messagebundle_it.properties +10 -0
  98. package/src/sap/ui/mdc/messagebundle_iw.properties +10 -0
  99. package/src/sap/ui/mdc/messagebundle_ja.properties +11 -1
  100. package/src/sap/ui/mdc/messagebundle_kk.properties +10 -0
  101. package/src/sap/ui/mdc/messagebundle_ko.properties +10 -0
  102. package/src/sap/ui/mdc/messagebundle_lt.properties +10 -0
  103. package/src/sap/ui/mdc/messagebundle_lv.properties +10 -0
  104. package/src/sap/ui/mdc/messagebundle_ms.properties +10 -0
  105. package/src/sap/ui/mdc/messagebundle_nl.properties +10 -0
  106. package/src/sap/ui/mdc/messagebundle_no.properties +10 -0
  107. package/src/sap/ui/mdc/messagebundle_pl.properties +10 -0
  108. package/src/sap/ui/mdc/messagebundle_pt.properties +10 -0
  109. package/src/sap/ui/mdc/messagebundle_pt_PT.properties +10 -0
  110. package/src/sap/ui/mdc/messagebundle_ro.properties +10 -0
  111. package/src/sap/ui/mdc/messagebundle_ru.properties +10 -0
  112. package/src/sap/ui/mdc/messagebundle_sh.properties +10 -0
  113. package/src/sap/ui/mdc/messagebundle_sk.properties +10 -0
  114. package/src/sap/ui/mdc/messagebundle_sl.properties +10 -0
  115. package/src/sap/ui/mdc/messagebundle_sv.properties +10 -0
  116. package/src/sap/ui/mdc/messagebundle_th.properties +10 -0
  117. package/src/sap/ui/mdc/messagebundle_tr.properties +10 -0
  118. package/src/sap/ui/mdc/messagebundle_uk.properties +15 -5
  119. package/src/sap/ui/mdc/messagebundle_vi.properties +10 -0
  120. package/src/sap/ui/mdc/messagebundle_zh_CN.properties +10 -0
  121. package/src/sap/ui/mdc/messagebundle_zh_TW.properties +10 -0
  122. package/src/sap/ui/mdc/mixin/AdaptationMixin.js +1 -1
  123. package/src/sap/ui/mdc/mixin/DelegateMixin.js +1 -1
  124. package/src/sap/ui/mdc/mixin/FilterIntegrationMixin.js +4 -3
  125. package/src/sap/ui/mdc/mixin/PromiseMixin.js +1 -1
  126. package/src/sap/ui/mdc/mixin/PropertyHelperMixin.js +1 -71
  127. package/src/sap/ui/mdc/odata/v4/TableDelegate.js +7 -0
  128. package/src/sap/ui/mdc/p13n/P13nBuilder.js +382 -376
  129. package/src/sap/ui/mdc/p13n/PropertyHelper.js +1 -1
  130. package/src/sap/ui/mdc/p13n/UIManager.js +1 -1
  131. package/src/sap/ui/mdc/p13n/panels/FilterPanel.js +1 -1
  132. package/src/sap/ui/mdc/p13n/subcontroller/AdaptFiltersController.js +5 -3
  133. package/src/sap/ui/mdc/p13n/subcontroller/ColumnWidthController.js +1 -1
  134. package/src/sap/ui/mdc/p13n/subcontroller/FilterController.js +158 -11
  135. package/src/sap/ui/mdc/p13n/subcontroller/LinkPanelController.js +7 -7
  136. package/src/sap/ui/mdc/p13n/subcontroller/SelectionController.js +1 -1
  137. package/src/sap/ui/mdc/table/ColumnSettings.js +1 -1
  138. package/src/sap/ui/mdc/table/CreationRow.js +1 -1
  139. package/src/sap/ui/mdc/table/GridTableType.js +19 -0
  140. package/src/sap/ui/mdc/table/PropertyHelper.js +1 -1
  141. package/src/sap/ui/mdc/table/ResponsiveColumnSettings.js +1 -1
  142. package/src/sap/ui/mdc/table/RowActionItem.js +1 -1
  143. package/src/sap/ui/mdc/table/RowSettings.js +1 -1
  144. package/src/sap/ui/mdc/table/V4AnalyticsPropertyHelper.js +1 -1
  145. package/src/sap/ui/mdc/table/menu/Item.js +6 -0
  146. package/src/sap/ui/mdc/themes/base/Chart.less +1 -1
  147. package/src/sap/ui/mdc/themes/base/ValueHelpDialog.less +5 -1
  148. package/src/sap/ui/mdc/util/DateUtil.js +84 -95
  149. package/src/sap/ui/mdc/util/InfoBar.js +88 -60
  150. package/src/sap/ui/mdc/util/PromiseCache.js +1 -1
  151. package/src/sap/ui/mdc/util/PropertyHelper.js +5 -1
  152. package/src/sap/ui/mdc/util/TypeUtil.js +6 -3
  153. package/src/sap/ui/mdc/valuehelp/Dialog.js +67 -58
  154. package/src/sap/ui/mdc/valuehelp/Popover.js +19 -1
  155. package/src/sap/ui/mdc/valuehelp/base/Container.js +12 -1
  156. package/src/sap/ui/mdc/valuehelp/base/Content.js +1 -1
  157. package/src/sap/ui/mdc/valuehelp/base/DialogTab.js +1 -1
  158. package/src/sap/ui/mdc/valuehelp/base/FilterableListContent.js +1 -1
  159. package/src/sap/ui/mdc/valuehelp/base/ListContent.js +1 -1
  160. package/src/sap/ui/mdc/valuehelp/content/Bool.js +1 -1
  161. package/src/sap/ui/mdc/valuehelp/content/Conditions.js +1 -1
  162. package/src/sap/ui/mdc/valuehelp/content/FixedList.js +1 -1
  163. package/src/sap/ui/mdc/valuehelp/content/MDCTable.js +1 -1
  164. package/src/sap/ui/mdc/valuehelp/content/MTable.js +6 -8
  165. package/src/sap/ui/mdc/p13n/Engine.js +0 -1200
  166. package/src/sap/ui/mdc/p13n/FlexUtil.js +0 -276
  167. package/src/sap/ui/mdc/p13n/subcontroller/BaseController.js +0 -438
@@ -50,7 +50,7 @@ sap.ui.define([
50
50
  * @param {object} [mSettings] Initial settings for the new control
51
51
  * @class Container for the {@link sap.ui.mdc.ValueHelp ValueHelp} element showing a dialog.
52
52
  * @extends sap.ui.mdc.valuehelp.base.Container
53
- * @version 1.111.0
53
+ * @version 1.112.0
54
54
  * @constructor
55
55
  * @abstract
56
56
  * @private
@@ -270,24 +270,13 @@ sap.ui.define([
270
270
  };
271
271
  oDialog.addStyleClass("sapMdcValueHelp");
272
272
  oDialog.addStyleClass("sapMdcValueHelpTitle");
273
- oDialog.addStyleClass("sapMdcValueHelpTitleShadow");
274
273
 
275
- var oVBox = new VBox(this.getId() + "-Content", { fitContainer: true});
276
- oVBox.addStyleClass("sapMdcValueHelpPanel");
277
- oDialog.addContent(oVBox);
274
+ var oContentArea = new VBox(this.getId() + "-Content", { fitContainer: true});
275
+ oContentArea.addStyleClass("sapMdcValueHelpPanel");
276
+ oDialog.addContent(oContentArea);
278
277
 
279
- var aPromises = [];
280
- aPromises.push(this._getIconTabBar(oDialog));
278
+ return oDialog;
281
279
 
282
- if (_isTokenizerRequired(this.getMaxConditions(), this.getContent())) {
283
- aPromises.push(this._getTokenizerPanel());
284
- }
285
- return Promise.all(aPromises).then(function (aControls) {
286
- aControls.forEach(function (oControl) {
287
- oVBox.addItem(oControl);
288
- });
289
- return oDialog;
290
- });
291
280
  }.bind(this));
292
281
  }.bind(this));
293
282
  }
@@ -295,6 +284,47 @@ sap.ui.define([
295
284
  return oDialog;
296
285
  };
297
286
 
287
+ Dialog.prototype._placeContent = function (oDialog) {
288
+
289
+ var oContentArea = oDialog.getContent()[0];
290
+ var aSelectableContents = this.getProperty("_selectableContents");
291
+
292
+ if (!aSelectableContents.length) { // no content assigned to dialog
293
+ return Promise.resolve(oDialog);
294
+ }
295
+
296
+ var bMultiContentMode = aSelectableContents.length > 1;
297
+
298
+ var aContentPromises = [];
299
+ if (bMultiContentMode) { // Multiple contents are displayed using an IconTabBar
300
+ aContentPromises.push(this._getIconTabBar(oDialog));
301
+ } else {
302
+ if (!this._oStandaloneTab) {
303
+ this._oStandaloneTab = new DialogTab(this.getId() + "-Standalone-DT", {content: {path: "/_selectableContents/0/displayContent", model: "$help"}, layoutData: new sap.m.FlexItemData({growFactor: 1, minHeight: "0"})});
304
+ }
305
+ aContentPromises.push(this._oStandaloneTab);
306
+ }
307
+
308
+ if (_isTokenizerRequired(this.getMaxConditions(), this.getContent())) {
309
+ aContentPromises.push(this._getTokenizerPanel());
310
+ }
311
+
312
+ return Promise.all(aContentPromises).then(function (aControls) {
313
+ oContentArea.removeAllItems();
314
+ aControls.forEach(function (oControl) {
315
+ oContentArea.addItem(oControl);
316
+ });
317
+
318
+ if (bMultiContentMode) {
319
+ oDialog.addStyleClass("sapMdcValueHelpTitleShadow"); // make the Header border invisible
320
+ } else {
321
+ oDialog.removeStyleClass("sapMdcValueHelpTitleShadow"); // make the Header border visible
322
+ }
323
+
324
+ return oDialog;
325
+ });
326
+ };
327
+
298
328
  Dialog.prototype._handleSelect = function (oEvent) {
299
329
  Container.prototype._handleSelect.apply(this, arguments);
300
330
 
@@ -450,7 +480,7 @@ sap.ui.define([
450
480
  }.bind(this));
451
481
  };
452
482
 
453
- Dialog.prototype._getIconTabBar = function (oDialog) {
483
+ Dialog.prototype._getIconTabBar = function () {
454
484
  if (!this._oIconTabBar) {
455
485
  return this._retrievePromise("IconTabBar", function (){
456
486
  return loadModules([
@@ -467,32 +497,10 @@ sap.ui.define([
467
497
  headerMode: IconTabHeaderMode.Inline,
468
498
  select: this._onTabBarSelect.bind(this),
469
499
  layoutData: new FlexItemData({growFactor: 1}),
470
- selectedKey: "{path: '$help>/_selectedContentKey', mode: 'OneWay'}",
471
- visible: {parts : ['$help>/_selectableContents'], formatter:
472
- function(aContent) {
473
- if (aContent && aContent.length == 1) {
474
- oDialog.removeStyleClass("sapMdcValueHelpTitleShadow"); // make the Header border visible
475
- } else {
476
- oDialog.addStyleClass("sapMdcValueHelpTitleShadow"); // make the Header border invisible
477
- }
478
- return true;
479
- }
480
- }
500
+ selectedKey: "{path: '$help>/_selectedContentKey', mode: 'OneWay'}"
481
501
  });
482
502
  // this._oIconTabBar.setModel(this._oManagedObjectModel, "$help");
483
503
  this._oIconTabBar.addStyleClass("sapUiNoContentPadding");
484
- var oIconTabHeader = this._oIconTabBar._getIconTabHeader();
485
- oIconTabHeader.bindProperty("visible", {parts : ['$help>/_selectableContents'], formatter:
486
- function(aContent) {
487
- if (aContent && aContent.length === 1) {
488
- return false;
489
- } else {
490
- return true;
491
- }
492
- }
493
- });
494
-
495
-
496
504
  var oITF = new IconTabFilter(this.getId() + "-ITF", {
497
505
  key: {path: "$help>id"},
498
506
  content: new DialogTab(this.getId() + "-DT", {content: {path: "$help>displayContent"}}),
@@ -587,7 +595,7 @@ sap.ui.define([
587
595
  var oFormatOptions = _getConditionFormatOptions.call(this);
588
596
  this._oConditionType = new ConditionType(oFormatOptions);
589
597
  this._oConditionType._bVHTokenizer = true; // just help for debugging
590
- this.oTokenizer = new MultiInput(this.getId() + "-Tokenizer", {
598
+ this.oTokenMultiInput = new MultiInput(this.getId() + "-Tokenizer", {
591
599
  width: "100%",
592
600
  showValueHelp: false,
593
601
  editable: true,
@@ -614,16 +622,16 @@ sap.ui.define([
614
622
  // Overwrite the setValueVisible to make the input part not visible (transparent).
615
623
  // Problem: you can still enter a value into the $input dom ref and this will be shown when you remove all tokens. this can be solved inside the afterRender handler.
616
624
  // ACC issue: the screenreader is still reading this control as input field and that the user can enter a value - which is not correct.
617
- this.oTokenizer._setValueVisible = function (bVisible) {
625
+ this.oTokenMultiInput._setValueVisible = function (bVisible) {
618
626
  this.$("inner").css("opacity", "0");
619
627
  };
620
628
 
621
- var org = this.oTokenizer.onAfterRendering;
622
- this.oTokenizer.onAfterRendering = function() {
623
- org.apply(this.oTokenizer, arguments);
629
+ var org = this.oTokenMultiInput.onAfterRendering;
630
+ this.oTokenMultiInput.onAfterRendering = function() {
631
+ org.apply(this.oTokenMultiInput, arguments);
624
632
 
625
- this.oTokenizer._setValueVisible(); // make the input always invisible
626
- this.oTokenizer.setValue(""); // set the value to empty string
633
+ this.oTokenMultiInput._setValueVisible(); // make the input always invisible
634
+ this.oTokenMultiInput.setValue(""); // set the value to empty string
627
635
  }.bind(this);
628
636
 
629
637
  _bindTokenizer.call(this, true);
@@ -641,7 +649,7 @@ sap.ui.define([
641
649
  });
642
650
  this.oRemoveAllBtn.addStyleClass("sapUiTinyMarginBegin");
643
651
 
644
- oHBox.addItem(this.oTokenizer);
652
+ oHBox.addItem(this.oTokenMultiInput);
645
653
  oHBox.addItem(this.oRemoveAllBtn);
646
654
  this.oTokenizerPanel.addContent(oHBox);
647
655
 
@@ -691,17 +699,17 @@ sap.ui.define([
691
699
 
692
700
  function _bindTokenizer(bBind) {
693
701
 
694
- if (this.oTokenizer) {
695
- var oBindingInfo = this.oTokenizer.getBindingInfo("tokens");
702
+ if (this.oTokenMultiInput) {
703
+ var oBindingInfo = this.oTokenMultiInput.getBindingInfo("tokens");
696
704
  if (bBind) {
697
705
  if (!oBindingInfo) { // not bound -> create binding
698
706
  var oFilter = new Filter({path:'isEmpty', operator:'NE', value1:true});
699
707
  this._oConditionType.setFormatOptions(_getConditionFormatOptions.call(this)); // as config might be changed
700
708
  var oTokenTemplate = new Token(this.getId() + "-Token", {text: {path: '$valueHelp>', type: this._oConditionType}});
701
- this.oTokenizer.bindAggregation("tokens", {path: '/conditions', model: "$valueHelp", templateShareable: false, template: oTokenTemplate, filters: oFilter});
709
+ this.oTokenMultiInput.bindAggregation("tokens", {path: '/conditions', model: "$valueHelp", templateShareable: false, template: oTokenTemplate, filters: oFilter});
702
710
  }
703
711
  } else if (oBindingInfo) { // remove binding if dialog is closed to prevent updated on tokens if conditions are updated. (Suspend would not be enough, as every single binding on token would need to be suspended too.)
704
- this.oTokenizer.unbindAggregation("tokens");
712
+ this.oTokenMultiInput.unbindAggregation("tokens");
705
713
  }
706
714
  }
707
715
 
@@ -742,7 +750,7 @@ sap.ui.define([
742
750
  fnRenderContent();
743
751
  });
744
752
  } else {
745
- if (this.oTokenizer) { // restore tokenizer binding to enable updates if open
753
+ if (this.oTokenMultiInput) { // restore tokenizer binding to enable updates if open
746
754
  _bindTokenizer.call(this, true);
747
755
  }
748
756
  fnRenderContent();
@@ -759,7 +767,7 @@ sap.ui.define([
759
767
  throw new Error("sap.ui.mdc.ValueHelp: No content found.");
760
768
  }
761
769
 
762
- var aNecessaryPromises = [oNextContent.getContent()];
770
+ var aNecessaryPromises = [oNextContent.getContent()]; // Content.getContent() initializes displayContent asynchonously
763
771
  var sSelectedContentGroup = oNextContent.getGroup && oNextContent.getGroup();
764
772
  var oGroupSelectPromise;
765
773
  if (sSelectedContentGroup && _isValidContentGroup.call(this, sSelectedContentGroup)) {
@@ -777,7 +785,7 @@ sap.ui.define([
777
785
  this.setProperty("_selectedContentKey", sNextContentId);
778
786
  this.setProperty("_selectableContents", this._getSelectableContents());
779
787
  this._oManagedObjectModel.checkUpdate(true, false, function (oBinding) { // force update as bindings to $help>displayContent are not updated automatically in some cases
780
- if (oBinding.getPath() === "displayContent") { // do not update other bindings as this might lead to rerendering of IconTabBar ot other unwanted updates.
788
+ if (oBinding.getPath().indexOf("displayContent") >= 0) { // do not update other bindings as this might lead to rerendering of IconTabBar ot other unwanted updates.
781
789
  return true;
782
790
  }
783
791
  });
@@ -805,7 +813,7 @@ sap.ui.define([
805
813
  if (oContainer) {
806
814
  oContainer.close();
807
815
 
808
- if (this.oTokenizer) { // remove tokenizer binding to prevent updates if closed
816
+ if (this.oTokenMultiInput) { // remove tokenizer binding to prevent updates if closed
809
817
  _bindTokenizer.call(this, false);
810
818
  }
811
819
  }
@@ -847,13 +855,14 @@ sap.ui.define([
847
855
  "oButtonOK",
848
856
  "oButtonCancel",
849
857
  "oTokenizerPanel",
850
- "oTokenizer",
858
+ "oTokenMultiInput",
851
859
  "_oIconTabBar",
852
860
  "_oGroupSelect",
853
861
  "_oGroupSelectModel",
854
862
  "_sInitialContentKey",
855
863
  "_mAlreadyShownContents",
856
- "oInvisibleMessage"
864
+ "oInvisibleMessage",
865
+ "_oStandaloneTab"
857
866
  ]);
858
867
 
859
868
  Container.prototype.exit.apply(this, arguments);
@@ -31,7 +31,7 @@ sap.ui.define([
31
31
  * @param {object} [mSettings] Initial settings for the new control
32
32
  * @class Container for the {@link sap.ui.mdc.ValueHelp ValueHelp} element showing a popover.
33
33
  * @extends sap.ui.mdc.valuehelp.base.Container
34
- * @version 1.111.0
34
+ * @version 1.112.0
35
35
  * @constructor
36
36
  * @abstract
37
37
  * @private
@@ -61,6 +61,18 @@ sap.ui.define([
61
61
  opensOnClick: {
62
62
  type: "boolean",
63
63
  defaultValue: false
64
+ },
65
+ /**
66
+ * Controls the possibility to open this popover container by focussing a connected control
67
+ *
68
+ * <b>Note:</b> By default, a typeahead is only shown to provide suggestions when users enter input in a connected control.
69
+ * This property enables scenarios, where popovers need to be shown earlier (e. g. recommendations or recently entered values)
70
+ * Please also see {@link sap.ui.mdc.ValueHelpDelegate.showTypahead showTypahead}
71
+ * @since 1.112.0
72
+ */
73
+ opensOnFocus: {
74
+ type: "boolean",
75
+ defaultValue: false
64
76
  }
65
77
  },
66
78
  defaultAggregation: "content"
@@ -390,6 +402,12 @@ sap.ui.define([
390
402
 
391
403
  };
392
404
 
405
+ Popover.prototype.shouldOpenOnFocus = function() {
406
+
407
+ return this.getOpensOnFocus();
408
+
409
+ };
410
+
393
411
  Popover.prototype.shouldOpenOnClick = function() {
394
412
 
395
413
  var oContent = this._getContent();
@@ -24,7 +24,7 @@ sap.ui.define([
24
24
  * @param {object} [mSettings] Initial settings for the new element
25
25
  * @class Container for the {@link sap.ui.mdc.ValueHelp ValueHelp} element.
26
26
  * @extends sap.ui.core.Element
27
- * @version 1.111.0
27
+ * @version 1.112.0
28
28
  * @constructor
29
29
  * @abstract
30
30
  * @private
@@ -620,6 +620,17 @@ sap.ui.define([
620
620
  return oContainer && oContainer.getScrollDelegate && oContainer.getScrollDelegate();
621
621
  };
622
622
 
623
+ /**
624
+ * Determines if the value help should be opened when the user focuses the connected control.
625
+ *
626
+ * @returns {boolean} If <code>true</code>, the value help should open when user focuses the connected field control
627
+ * @private
628
+ * @ui5-restricted sap.ui.mdc.ValueHelp
629
+ */
630
+ Container.prototype.shouldOpenOnFocus = function() {
631
+ return false;
632
+ };
633
+
623
634
  /**
624
635
  * Determines if the value help should be opened when the user clicks into the connected control.
625
636
  *
@@ -32,7 +32,7 @@ sap.ui.define([
32
32
  * @param {object} [mSettings] Initial settings for the new element
33
33
  * @class Content for the {@link sap.ui.mdc.valuehelp.base.Container Container} element.
34
34
  * @extends sap.ui.core.Element
35
- * @version 1.111.0
35
+ * @version 1.112.0
36
36
  * @constructor
37
37
  * @abstract
38
38
  * @private
@@ -20,7 +20,7 @@ sap.ui.define([
20
20
  * @param {object} [mSettings] Initial settings for the new control
21
21
  * @class Content for the <code>sap.ui.mdc.valuehelp.content.Dialog</code> element.
22
22
  * @extends sap.ui.core.Control
23
- * @version 1.111.0
23
+ * @version 1.112.0
24
24
  * @constructor
25
25
  * @abstract
26
26
  * @private
@@ -34,7 +34,7 @@ sap.ui.define([
34
34
  * @param {object} [mSettings] Initial settings for the new element
35
35
  * @class Content for the {@link sap.ui.mdc.valuehelp.base.Container Container} element.
36
36
  * @extends sap.ui.mdc.valuehelp.base.ListContent
37
- * @version 1.111.0
37
+ * @version 1.112.0
38
38
  * @constructor
39
39
  * @abstract
40
40
  * @private
@@ -20,7 +20,7 @@ sap.ui.define([
20
20
  * @param {object} [mSettings] Initial settings for the new element
21
21
  * @class Content for the {@link sap.ui.mdc.valuehelp.base.Container Container} element.
22
22
  * @extends sap.ui.mdc.valuehelp.base.Content
23
- * @version 1.111.0
23
+ * @version 1.112.0
24
24
  * @constructor
25
25
  * @abstract
26
26
  * @private
@@ -22,7 +22,7 @@ sap.ui.define([
22
22
  * @param {object} [mSettings] Initial settings for the new element
23
23
  * @class Content for the {@link sap.ui.mdc.valuehelp.base.Container Container} element to provide a value help for boolean fields.
24
24
  * @extends sap.ui.mdc.valuehelp.content.FixedList
25
- * @version 1.111.0
25
+ * @version 1.112.0
26
26
  * @constructor
27
27
  * @abstract
28
28
  * @private
@@ -25,7 +25,7 @@ sap.ui.define([
25
25
  * @param {object} [mSettings] Initial settings for the new element
26
26
  * @class Content for the {@link sap.ui.mdc.valuehelp.base.Container Container} element showing a condition panel.
27
27
  * @extends sap.ui.mdc.valuehelp.base.Content
28
- * @version 1.111.0
28
+ * @version 1.112.0
29
29
  * @constructor
30
30
  * @abstract
31
31
  * @private
@@ -26,7 +26,7 @@ sap.ui.define([
26
26
  * @param {object} [mSettings] Initial settings for the new element
27
27
  * @class Content for the {@link sap.ui.mdc.valuehelp.base.Container Container} element showing a list with fix values.
28
28
  * @extends sap.ui.mdc.valuehelp.base.ListContent
29
- * @version 1.111.0
29
+ * @version 1.112.0
30
30
  * @constructor
31
31
  * @abstract
32
32
  * @private
@@ -277,7 +277,7 @@ sap.ui.define([
277
277
  * @param {object} [mSettings] Initial settings for the new element
278
278
  * @class Content for the {@link sap.ui.mdc.valuehelp.base.Container Container} element using a {@link sap.ui.mdc.Table}.
279
279
  * @extends sap.ui.mdc.valuehelp.base.FilterableListContent
280
- * @version 1.111.0
280
+ * @version 1.112.0
281
281
  * @constructor
282
282
  * @abstract
283
283
  * @private
@@ -51,7 +51,7 @@ sap.ui.define([
51
51
  * @param {object} [mSettings] Initial settings for the new element
52
52
  * @class Content for the {@link sap.ui.mdc.valuehelp.base.Container Container} element using a {@link sap.m.Table}.
53
53
  * @extends sap.ui.mdc.valuehelp.base.FilterableListContent
54
- * @version 1.111.0
54
+ * @version 1.112.0
55
55
  * @constructor
56
56
  * @abstract
57
57
  * @private
@@ -223,14 +223,12 @@ sap.ui.define([
223
223
  var oItem = oEvent.getParameter("listItem");
224
224
  var oItemContext = this._getListItemBindingContext(oItem);
225
225
  var oValues = this._getItemFromContext(oItemContext);
226
- var bIsSingleSelect = this._isSingleSelect();
227
- var bSelected = bIsSingleSelect ? true : !oItem.getSelected();
228
- var sSelectType = SelectType.Set;
226
+ var oTable = this._getTable();
227
+ var bSingleSelectMaster = oTable.getMode() === ListMode.SingleSelectMaster; // Only in this mode the item will already have the desired selection state.
228
+ var bSelected = bSingleSelectMaster ? oItem.getSelected() : !oItem.getSelected();
229
+ oItem.setSelected(bSelected);
230
+ var sSelectType = bSelected ? SelectType.Add : SelectType.Remove;
229
231
 
230
- if (!bIsSingleSelect) {
231
- oItem.setSelected(bSelected);
232
- sSelectType = bSelected ? SelectType.Add : SelectType.Remove;
233
- }
234
232
  var oCondition = this._createCondition(oValues.key, oValues.description, oValues.payload);
235
233
  this._fireSelect({type: sSelectType, conditions: [oCondition]});
236
234
  if (this.isTypeahead()) {