@openui5/sap.ui.mdc 1.100.0 → 1.101.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 (204) hide show
  1. package/THIRDPARTY.txt +5 -5
  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 +28 -46
  6. package/src/sap/ui/mdc/ChartDelegate.js +10 -0
  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 +2 -2
  10. package/src/sap/ui/mdc/FilterBar.js +1 -1
  11. package/src/sap/ui/mdc/FilterField.js +2 -2
  12. package/src/sap/ui/mdc/Link.js +1 -1
  13. package/src/sap/ui/mdc/LinkDelegate.js +7 -5
  14. package/src/sap/ui/mdc/MultiValueField.js +1 -1
  15. package/src/sap/ui/mdc/Table.js +255 -284
  16. package/src/sap/ui/mdc/TableDelegate.js +96 -23
  17. package/src/sap/ui/mdc/ValueHelp.js +131 -624
  18. package/src/sap/ui/mdc/ValueHelpDelegate.js +152 -6
  19. package/src/sap/ui/mdc/actiontoolbar/ActionToolbarAction.js +1 -1
  20. package/src/sap/ui/mdc/chart/ChartSelectionDetails.js +1 -1
  21. package/src/sap/ui/mdc/chart/ChartToolbar.js +5 -3
  22. package/src/sap/ui/mdc/chart/ChartTypeButton.js +11 -2
  23. package/src/sap/ui/mdc/chart/DrillBreadcrumbs.js +2 -0
  24. package/src/sap/ui/mdc/chart/PropertyHelper.js +1 -1
  25. package/src/sap/ui/mdc/condition/Condition.js +14 -9
  26. package/src/sap/ui/mdc/condition/ConditionConverter.js +58 -6
  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 +6 -2
  30. package/src/sap/ui/mdc/condition/Operator.js +11 -1
  31. package/src/sap/ui/mdc/condition/OperatorDynamicDateOption.js +1 -1
  32. package/src/sap/ui/mdc/condition/RangeOperator.js +1 -1
  33. package/src/sap/ui/mdc/designtime/filterbar/FilterBar.designtime.js +3 -1
  34. package/src/sap/ui/mdc/designtime/table/Table.designtime.js +1 -1
  35. package/src/sap/ui/mdc/enum/PropagationReason.js +43 -0
  36. package/src/sap/ui/mdc/field/BoolFieldHelp.js +1 -1
  37. package/src/sap/ui/mdc/field/ConditionFieldHelp.js +1 -1
  38. package/src/sap/ui/mdc/field/ConditionType.js +28 -8
  39. package/src/sap/ui/mdc/field/ConditionsType.js +2 -1
  40. package/src/sap/ui/mdc/field/CustomFieldHelp.js +1 -1
  41. package/src/sap/ui/mdc/field/CustomFieldInfo.js +1 -1
  42. package/src/sap/ui/mdc/field/DefineConditionPanel.js +1 -1
  43. package/src/sap/ui/mdc/field/DynamicDateRangeConditionsType.js +1 -1
  44. package/src/sap/ui/mdc/field/FieldBase.js +12 -10
  45. package/src/sap/ui/mdc/field/FieldBaseDelegate.js +41 -19
  46. package/src/sap/ui/mdc/field/FieldHelpBase.js +1 -1
  47. package/src/sap/ui/mdc/field/FieldInfoBase.js +1 -1
  48. package/src/sap/ui/mdc/field/FieldInput.js +1 -1
  49. package/src/sap/ui/mdc/field/FieldInputRenderUtil.js +1 -1
  50. package/src/sap/ui/mdc/field/FieldMultiInput.js +1 -1
  51. package/src/sap/ui/mdc/field/FieldValueHelp.js +6 -4
  52. package/src/sap/ui/mdc/field/FieldValueHelpContentWrapperBase.js +1 -1
  53. package/src/sap/ui/mdc/field/FieldValueHelpMTableWrapper.js +1 -1
  54. package/src/sap/ui/mdc/field/FieldValueHelpMdcTableWrapper.js +1 -1
  55. package/src/sap/ui/mdc/field/FieldValueHelpTableWrapperBase.js +1 -1
  56. package/src/sap/ui/mdc/field/FieldValueHelpUITableWrapper.js +1 -1
  57. package/src/sap/ui/mdc/field/InParameter.js +1 -1
  58. package/src/sap/ui/mdc/field/ListFieldHelp.js +1 -1
  59. package/src/sap/ui/mdc/field/ListFieldHelpItem.js +1 -1
  60. package/src/sap/ui/mdc/field/MultiValueFieldItem.js +1 -1
  61. package/src/sap/ui/mdc/field/OutParameter.js +1 -1
  62. package/src/sap/ui/mdc/field/TokenDisplay.js +1 -1
  63. package/src/sap/ui/mdc/field/TokenizerDisplay.js +1 -1
  64. package/src/sap/ui/mdc/field/ValueHelpPanel.js +1 -1
  65. package/src/sap/ui/mdc/filterbar/FilterBarBase.js +90 -69
  66. package/src/sap/ui/mdc/filterbar/IFilterContainer.js +5 -0
  67. package/src/sap/ui/mdc/filterbar/PropertyHelper.js +1 -1
  68. package/src/sap/ui/mdc/filterbar/aligned/FilterContainer.js +1 -0
  69. package/src/sap/ui/mdc/filterbar/aligned/FilterItemLayout.js +1 -0
  70. package/src/sap/ui/mdc/filterbar/p13n/AdaptationFilterBar.js +21 -11
  71. package/src/sap/ui/mdc/filterbar/vh/FilterBar.js +37 -5
  72. package/src/sap/ui/mdc/flexibility/Chart.flexibility.js +4 -41
  73. package/src/sap/ui/mdc/flexibility/ChartTypeFlex.js +54 -0
  74. package/src/sap/ui/mdc/flexibility/ConditionFlex.js +2 -2
  75. package/src/sap/ui/mdc/flexibility/FilterBar.flexibility.js +1 -1
  76. package/src/sap/ui/mdc/flexibility/FilterItemFlex.js +1 -1
  77. package/src/sap/ui/mdc/library.js +19 -23
  78. package/src/sap/ui/mdc/link/ContactDetails.js +107 -23
  79. package/src/sap/ui/mdc/link/ContactDetailsAddressItem.js +1 -1
  80. package/src/sap/ui/mdc/link/ContactDetailsEmailItem.js +1 -1
  81. package/src/sap/ui/mdc/link/ContactDetailsItem.js +1 -1
  82. package/src/sap/ui/mdc/link/ContactDetailsPhoneItem.js +1 -1
  83. package/src/sap/ui/mdc/link/ContactDetailsRenderer.js +26 -0
  84. package/src/sap/ui/mdc/link/Factory.js +1 -1
  85. package/src/sap/ui/mdc/link/FakeFlpConnector.js +1 -1
  86. package/src/sap/ui/mdc/link/LinkItem.js +1 -1
  87. package/src/sap/ui/mdc/link/Panel.js +197 -22
  88. package/src/sap/ui/mdc/link/PanelItem.js +1 -1
  89. package/src/sap/ui/mdc/link/PanelRenderer.js +26 -0
  90. package/src/sap/ui/mdc/link/SemanticObjectMapping.js +1 -1
  91. package/src/sap/ui/mdc/link/SemanticObjectMappingItem.js +1 -1
  92. package/src/sap/ui/mdc/link/SemanticObjectUnavailableAction.js +1 -1
  93. package/src/sap/ui/mdc/messagebundle.properties +8 -4
  94. package/src/sap/ui/mdc/messagebundle_ar.properties +6 -4
  95. package/src/sap/ui/mdc/messagebundle_bg.properties +6 -4
  96. package/src/sap/ui/mdc/messagebundle_ca.properties +6 -4
  97. package/src/sap/ui/mdc/messagebundle_cs.properties +6 -4
  98. package/src/sap/ui/mdc/messagebundle_cy.properties +6 -4
  99. package/src/sap/ui/mdc/messagebundle_da.properties +6 -4
  100. package/src/sap/ui/mdc/messagebundle_de.properties +6 -4
  101. package/src/sap/ui/mdc/messagebundle_el.properties +5 -3
  102. package/src/sap/ui/mdc/messagebundle_en.properties +6 -4
  103. package/src/sap/ui/mdc/messagebundle_en_GB.properties +6 -4
  104. package/src/sap/ui/mdc/messagebundle_en_US_sappsd.properties +6 -4
  105. package/src/sap/ui/mdc/messagebundle_en_US_saprigi.properties +7 -5
  106. package/src/sap/ui/mdc/messagebundle_en_US_saptrc.properties +7 -5
  107. package/src/sap/ui/mdc/messagebundle_es.properties +6 -4
  108. package/src/sap/ui/mdc/messagebundle_es_MX.properties +6 -4
  109. package/src/sap/ui/mdc/messagebundle_et.properties +6 -4
  110. package/src/sap/ui/mdc/messagebundle_fi.properties +6 -4
  111. package/src/sap/ui/mdc/messagebundle_fr.properties +6 -4
  112. package/src/sap/ui/mdc/messagebundle_fr_CA.properties +6 -4
  113. package/src/sap/ui/mdc/messagebundle_hi.properties +6 -4
  114. package/src/sap/ui/mdc/messagebundle_hr.properties +6 -4
  115. package/src/sap/ui/mdc/messagebundle_hu.properties +6 -4
  116. package/src/sap/ui/mdc/messagebundle_id.properties +6 -4
  117. package/src/sap/ui/mdc/messagebundle_it.properties +6 -4
  118. package/src/sap/ui/mdc/messagebundle_iw.properties +5 -3
  119. package/src/sap/ui/mdc/messagebundle_ja.properties +7 -5
  120. package/src/sap/ui/mdc/messagebundle_kk.properties +6 -4
  121. package/src/sap/ui/mdc/messagebundle_ko.properties +5 -3
  122. package/src/sap/ui/mdc/messagebundle_lt.properties +6 -4
  123. package/src/sap/ui/mdc/messagebundle_lv.properties +6 -4
  124. package/src/sap/ui/mdc/messagebundle_ms.properties +6 -4
  125. package/src/sap/ui/mdc/messagebundle_nl.properties +6 -4
  126. package/src/sap/ui/mdc/messagebundle_no.properties +6 -4
  127. package/src/sap/ui/mdc/messagebundle_pl.properties +6 -4
  128. package/src/sap/ui/mdc/messagebundle_pt.properties +7 -5
  129. package/src/sap/ui/mdc/messagebundle_pt_PT.properties +6 -4
  130. package/src/sap/ui/mdc/messagebundle_ro.properties +6 -4
  131. package/src/sap/ui/mdc/messagebundle_ru.properties +6 -4
  132. package/src/sap/ui/mdc/messagebundle_sh.properties +9 -7
  133. package/src/sap/ui/mdc/messagebundle_sk.properties +6 -4
  134. package/src/sap/ui/mdc/messagebundle_sl.properties +7 -5
  135. package/src/sap/ui/mdc/messagebundle_sv.properties +7 -5
  136. package/src/sap/ui/mdc/messagebundle_th.properties +6 -4
  137. package/src/sap/ui/mdc/messagebundle_tr.properties +7 -5
  138. package/src/sap/ui/mdc/messagebundle_uk.properties +6 -4
  139. package/src/sap/ui/mdc/messagebundle_vi.properties +6 -4
  140. package/src/sap/ui/mdc/messagebundle_zh_CN.properties +6 -4
  141. package/src/sap/ui/mdc/messagebundle_zh_TW.properties +6 -4
  142. package/src/sap/ui/mdc/mixin/AdaptationMixin.js +4 -11
  143. package/src/sap/ui/mdc/mixin/DelegateMixin.js +1 -1
  144. package/src/sap/ui/mdc/mixin/FilterIntegrationMixin.js +1 -1
  145. package/src/sap/ui/mdc/mixin/PromiseMixin.js +1 -1
  146. package/src/sap/ui/mdc/mixin/PropertyHelperMixin.js +7 -1
  147. package/src/sap/ui/mdc/odata/v4/ChartPropertyHelper.js +1 -1
  148. package/src/sap/ui/mdc/odata/v4/FieldBaseDelegate.js +8 -6
  149. package/src/sap/ui/mdc/odata/v4/TableDelegate.js +18 -33
  150. package/src/sap/ui/mdc/odata/v4/ValueHelpDelegate.js +63 -3
  151. package/src/sap/ui/mdc/odata/v4/vizChart/ChartDelegate.js +57 -0
  152. package/src/sap/ui/mdc/p13n/Engine.js +147 -51
  153. package/src/sap/ui/mdc/p13n/FlexUtil.js +26 -14
  154. package/src/sap/ui/mdc/p13n/PropertyHelper.js +1 -1
  155. package/src/sap/ui/mdc/p13n/StateUtil.js +30 -51
  156. package/src/sap/ui/mdc/p13n/UIManager.js +6 -2
  157. package/src/sap/ui/mdc/p13n/modification/ModificationHandler.js +0 -178
  158. package/src/sap/ui/mdc/p13n/modules/DefaultProviderRegistry.js +2 -2
  159. package/src/sap/ui/mdc/p13n/modules/xConfigAPI.js +219 -0
  160. package/src/sap/ui/mdc/p13n/panels/ChartItemPanel.js +73 -14
  161. package/src/sap/ui/mdc/p13n/subcontroller/AggregateController.js +2 -2
  162. package/src/sap/ui/mdc/p13n/subcontroller/BaseController.js +30 -2
  163. package/src/sap/ui/mdc/p13n/subcontroller/ChartTypeController.js +46 -0
  164. package/src/sap/ui/mdc/p13n/subcontroller/ColumnWidthController.js +37 -6
  165. package/src/sap/ui/mdc/p13n/subcontroller/FilterController.js +24 -6
  166. package/src/sap/ui/mdc/p13n/subcontroller/GroupController.js +9 -2
  167. package/src/sap/ui/mdc/p13n/subcontroller/SortController.js +2 -2
  168. package/src/sap/ui/mdc/table/Column.js +271 -132
  169. package/src/sap/ui/mdc/table/CreationRow.js +1 -1
  170. package/src/sap/ui/mdc/table/PropertyHelper.js +59 -90
  171. package/src/sap/ui/mdc/table/ResponsiveTableType.js +35 -27
  172. package/src/sap/ui/mdc/table/RowActionItem.js +1 -1
  173. package/src/sap/ui/mdc/table/RowSettings.js +1 -1
  174. package/src/sap/ui/mdc/table/TableSettings.js +10 -22
  175. package/src/sap/ui/mdc/table/V4AnalyticsPropertyHelper.js +1 -1
  176. package/src/sap/ui/mdc/table/menu/Item.js +78 -0
  177. package/src/sap/ui/mdc/table/menu/ItemContainer.js +60 -0
  178. package/src/sap/ui/mdc/table/menu/QuickActionContainer.js +151 -0
  179. package/src/sap/ui/mdc/themes/base/Chart.less +4 -0
  180. package/src/sap/ui/mdc/ui/Container.js +0 -0
  181. package/src/sap/ui/mdc/util/FilterUtil.js +1 -1
  182. package/src/sap/ui/mdc/util/IdentifierUtil.js +3 -3
  183. package/src/sap/ui/mdc/util/PromiseCache.js +6 -2
  184. package/src/sap/ui/mdc/util/PropertyHelper.js +5 -1
  185. package/src/sap/ui/mdc/valuehelp/Dialog.js +234 -44
  186. package/src/sap/ui/mdc/valuehelp/Popover.js +3 -2
  187. package/src/sap/ui/mdc/valuehelp/base/Container.js +63 -48
  188. package/src/sap/ui/mdc/valuehelp/base/Content.js +35 -16
  189. package/src/sap/ui/mdc/valuehelp/base/DialogTab.js +1 -1
  190. package/src/sap/ui/mdc/valuehelp/base/FilterableListContent.js +158 -281
  191. package/src/sap/ui/mdc/valuehelp/base/ListContent.js +4 -4
  192. package/src/sap/ui/mdc/valuehelp/content/Bool.js +4 -4
  193. package/src/sap/ui/mdc/valuehelp/content/Conditions.js +4 -4
  194. package/src/sap/ui/mdc/valuehelp/content/FixedList.js +4 -4
  195. package/src/sap/ui/mdc/valuehelp/content/ListCollection.js +205 -0
  196. package/src/sap/ui/mdc/valuehelp/content/MDCTable.js +59 -57
  197. package/src/sap/ui/mdc/valuehelp/content/MTable.js +89 -182
  198. package/test/sap/ui/mdc/testutils/opa/chart/TestObjects.js +2 -3
  199. package/test/sap/ui/mdc/testutils/opa/chartNew/TestObjects.js +2 -3
  200. package/test/sap/ui/mdc/testutils/opa/p13n/Actions.js +17 -3
  201. package/src/sap/ui/mdc/link/ContactDetails.control.xml +0 -29
  202. package/src/sap/ui/mdc/link/Panel.control.xml +0 -36
  203. package/src/sap/ui/mdc/link/PanelListItem.control.xml +0 -24
  204. package/src/sap/ui/mdc/link/PanelListItem.js +0 -101
@@ -0,0 +1,205 @@
1
+ /*
2
+ * ! OpenUI5
3
+ * (c) Copyright 2009-2022 SAP SE or an SAP affiliate company.
4
+ * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
+ */
6
+
7
+ sap.ui.define([
8
+ "sap/ui/mdc/valuehelp/base/Content",
9
+ 'sap/ui/mdc/util/loadModules',
10
+ 'sap/ui/model/BindingMode'
11
+ ], function(
12
+ Content,
13
+ loadModules
14
+ ) {
15
+ "use strict";
16
+
17
+ var ListCollection = Content.extend("sap.ui.mdc.valuehelp.content.ListCollection", /** @lends sap.ui.mdc.valuehelp.content.ListCollection.prototype */
18
+ {
19
+ metadata: {
20
+ library: "sap.ui.mdc",
21
+ interfaces: [
22
+ "sap.ui.mdc.valuehelp.IDialogContent"
23
+ ],
24
+ aggregations: {
25
+ lists: {
26
+ type: "sap.ui.mdc.valuehelp.base.FilterableListContent",
27
+ multiple: true
28
+ }
29
+ },
30
+ defaultAggregation: "lists"
31
+ }
32
+ });
33
+
34
+ ListCollection.prototype.init = function() {
35
+
36
+ Content.prototype.init.apply(this, arguments);
37
+
38
+ this._oObserver.observe(this, {
39
+ aggregations: ["lists", "displayContent"]
40
+ });
41
+
42
+ };
43
+
44
+ ListCollection.prototype._getVisibleList = function () {
45
+ return this.getLists().find(function (oList) {
46
+ return this._sVisibleListId ? oList.getId() === this._sVisibleListId : true;
47
+ }.bind(this));
48
+ };
49
+
50
+ ListCollection.prototype.getFormattedTitle = function(iCount) {
51
+ return "ListCollection: " + this._getVisibleList().getFormattedTitle();
52
+ };
53
+
54
+ ListCollection.prototype.getFormattedShortTitle = function() {
55
+ return "ListCollection: " + this._getVisibleList().getFormattedShortTitle();
56
+ };
57
+
58
+ ListCollection.prototype._observeChanges = function(oChanges) {
59
+ Content.prototype._observeChanges.apply(this, arguments);
60
+
61
+ if (oChanges.name === "lists") {
62
+ this._handleListsUpdate(oChanges);
63
+ }
64
+
65
+ if (oChanges.name === "displayContent") {
66
+ this._assignCollectiveSearchToVisibleList();
67
+ }
68
+
69
+ // Dirty?
70
+ this.getLists().forEach(function (oList) {
71
+ oList._observeChanges(oChanges);
72
+ });
73
+ };
74
+
75
+ ListCollection.prototype.onShow = function () {
76
+ var oActiveList = this._getVisibleList();
77
+ oActiveList.onShow.apply(oActiveList, arguments);
78
+ };
79
+
80
+ ListCollection.prototype.onHide = function () {
81
+ var oActiveList = this._getVisibleList();
82
+ oActiveList.onHide.apply(oActiveList, arguments);
83
+ };
84
+
85
+
86
+ ListCollection.prototype._handleListsUpdate = function (oChanges) {
87
+ if (oChanges.mutation === "insert") {
88
+ if (oChanges.child.setCollectiveSearchSelect) {
89
+ this._updateSelectModel();
90
+ }
91
+ }
92
+ };
93
+
94
+ ListCollection.prototype._handleConfirmed = function (oEvent) {
95
+ this.fireConfirmed(oEvent.getParameters());
96
+ };
97
+
98
+ ListCollection.prototype._handleCanceled = function (oEvent) {
99
+ this.fireCanceled(oEvent.getParameters());
100
+ };
101
+
102
+ ListCollection.prototype._handleSelect = function (oEvent) {
103
+ this.fireSelect(oEvent.getParameters());
104
+ };
105
+
106
+
107
+ ListCollection.prototype._assignCollectiveSearchToVisibleList = function (oChanges) {
108
+ this._retrieveCollectiveSearchSelect().then(function (oSelect) {
109
+ var oList = this._getVisibleList();
110
+ oList.setCollectiveSearchSelect(oSelect);
111
+ }.bind(this));
112
+ };
113
+
114
+ ListCollection.prototype.getContent = function () {
115
+ var oVisibleList = this._getVisibleList();
116
+ return oVisibleList.getContent().then(function (oContent) {
117
+ this.setAggregation("displayContent", oContent);
118
+ return oContent;
119
+ }.bind(this));
120
+
121
+ };
122
+
123
+ ListCollection.prototype.onShow = function () {
124
+ Content.prototype.onShow.apply(this, arguments);
125
+ var oVisibleList = this._getVisibleList();
126
+ this._getContainer()._bindContent(oVisibleList);
127
+ oVisibleList.onShow();
128
+
129
+ };
130
+
131
+ ListCollection.prototype.onHide = function () {
132
+ var oVisibleList = this._getVisibleList();
133
+ this._getContainer()._unbindContent(oVisibleList);
134
+ oVisibleList.onHide();
135
+
136
+ Content.prototype.onHide.apply(this, arguments);
137
+ };
138
+
139
+
140
+ ListCollection.prototype._handleCollectiveSearchSelect = function (oEvent) {
141
+ var oCurrentList = this._getVisibleList();
142
+ this._getContainer()._unbindContent(oCurrentList);
143
+ oCurrentList.onHide();
144
+
145
+ this._sVisibleListId = oEvent.getParameter("key");
146
+ var oNextList = this._getVisibleList();
147
+ this.getContent().then(function () {
148
+ this._getContainer()._bindContent(oNextList);
149
+ oNextList.onShow();
150
+ }.bind(this));
151
+ };
152
+
153
+ ListCollection.prototype._updateSelectModel = function () {
154
+ if (this._oSelectModel) {
155
+ var aLists = this.getLists();
156
+ var oModelData = aLists.reduce(function (oResult, oCurrent) {
157
+ oResult.lists.push({key: oCurrent.getId(), text: oCurrent.getFormattedTitle()});
158
+ return oResult;
159
+ } , {lists: []});
160
+ this._oSelectModel.setData(oModelData);
161
+ }
162
+ };
163
+
164
+ ListCollection.prototype._retrieveCollectiveSearchSelect = function () {
165
+ return this._retrievePromise("collectiveSearchSelect", function () {
166
+ return loadModules([
167
+ "sap/ui/mdc/filterbar/vh/CollectiveSearchSelect",
168
+ "sap/ui/core/Item",
169
+ "sap/ui/model/json/JSONModel"
170
+ ]).then(function(aModules) {
171
+ var CollectiveSearchSelect = aModules[0];
172
+ var Item = aModules[1];
173
+ var JSONModel = aModules[2];
174
+
175
+ this._oSelectModel = new JSONModel(this);
176
+ this._updateSelectModel();
177
+ this.setModel(this._oSelectModel, "$contenthelp");
178
+
179
+ var oItemTemplate = new Item(this.getId() + "-collSearchItem", {
180
+ key: "{$contenthelp>key}",
181
+ text: "{$contenthelp>text}",
182
+ enabled: true
183
+ /*textDirection: "{$contenthelp>textDirection}" */
184
+ });
185
+
186
+ var oCollectiveSearchSelect = new CollectiveSearchSelect(this.getId() + "-collSearch", {
187
+ items: {path: "$contenthelp>/lists", template: oItemTemplate},
188
+ select: this._handleCollectiveSearchSelect.bind(this),
189
+ selectedItemKey: this._oSelectModel.getProperty("/lists/0/key")
190
+ });
191
+ oCollectiveSearchSelect.setModel(this._oSelectModel, "$contenthelp");
192
+ return oCollectiveSearchSelect;
193
+ }.bind(this));
194
+ }.bind(this));
195
+
196
+ };
197
+
198
+ ListCollection.prototype.exit = function () {
199
+ this._oSelectModel = null;
200
+ this._iVisibleListIndex = null;
201
+ Content.prototype.exit.apply(this, arguments);
202
+ };
203
+
204
+ return ListCollection;
205
+ });
@@ -12,8 +12,11 @@ sap.ui.define([
12
12
  'sap/ui/mdc/library',
13
13
  'sap/m/library',
14
14
  "sap/ui/table/library",
15
- "sap/ui/thirdparty/jquery"
16
-
15
+ "sap/ui/thirdparty/jquery",
16
+ // "sap/ui/mdc/p13n/Engine",
17
+ // "sap/ui/mdc/enum/PersistenceMode",
18
+ 'sap/ui/mdc/condition/FilterConverter',
19
+ 'sap/base/util/restricted/_throttle'
17
20
  ], function(
18
21
  FilterableListContent,
19
22
  loadModules,
@@ -22,7 +25,11 @@ sap.ui.define([
22
25
  library,
23
26
  mLibrary,
24
27
  uiTableLibrary,
25
- jQuery
28
+ jQuery,
29
+ // Engine,
30
+ // PersistenceMode,
31
+ FilterConverter,
32
+ throttle
26
33
  ) {
27
34
  "use strict";
28
35
 
@@ -57,13 +64,17 @@ sap.ui.define([
57
64
  return this._oUITableSelectionPlugin || oInnerTable;
58
65
  }.bind(this);
59
66
 
60
- var _fireSelect = function (oItem, bSelected) {
61
- var oValues = this._getItemFromContext(oItem.getBindingContext());
62
- var oCondition = oValues && this._createCondition(oValues.key, oValues.description, oValues.inParameters, oValues.outParameters);
63
- var sAddRemoveType = bSelected ? SelectType.Add : SelectType.Remove;
64
- this.fireSelect({type: this._isSingleSelect() ? SelectType.Set : sAddRemoveType, conditions: [oCondition]});
67
+ var _fireSelect = function (aConditions, bSelected) {
68
+ var sMultiSelectType = bSelected ? SelectType.Add : SelectType.Remove;
69
+
70
+ if (!bSelected && this._isSingleSelect()) {
71
+ sMultiSelectType = SelectType.Add;
72
+ }
73
+
74
+ this._fireSelect({type: sMultiSelectType, conditions: aConditions});
65
75
  };
66
76
 
77
+
67
78
  var MDCTableHelperConfig = {
68
79
  "ResponsiveTable": {
69
80
  getListBindingInfo: function () {
@@ -85,19 +96,26 @@ sap.ui.define([
85
96
  if (!this.isTypeahead() || !this._isSingleSelect()) {
86
97
  oItem.setSelected(!oItem.getSelected());
87
98
  }
88
- _fireSelect.call(this, oItem, oItem.getSelected());
99
+
100
+ var sModelName = this._getListBindingInfo().model;
101
+ var oItemContext = oItem.getBindingContext(sModelName);
102
+ var oValues = this._getItemFromContext(oItemContext);
103
+ var oCondition = oValues && this._createCondition(oValues.key, oValues.description, oValues.payload);
104
+
105
+ _fireSelect.call(this, [oCondition], oItem.getSelected());
106
+
89
107
  },
90
108
  handleSelectionChange: function (oEvent) {
91
109
  if (!this.isTypeahead() || !this._isSingleSelect()) { // single-suggestion handled in this._handleItemPress
92
110
  var oParams = oEvent.getParameters();
93
111
  var aListItems = oParams.listItems || oParams.listItem && [oParams.listItem];
112
+ var sModelName = this._getListBindingInfo().model;
94
113
  var aConditions = aListItems.map(function (oItem) {
95
- // var sKey = _getListItemKey.call(this, oItem);
96
- // return sKey && this._createCondition(sKey);
97
- var oValues = this._getItemFromContext(oItem.getBindingContext());
98
- return oValues && this._createCondition(oValues.key, oValues.description, oValues.inParameters, oValues.outParameters);
114
+ var oItemContext = oItem.getBindingContext(sModelName);
115
+ var oValues = this._getItemFromContext(oItemContext);
116
+ return oValues && this._createCondition(oValues.key, oValues.description, oValues.payload);
99
117
  }.bind(this));
100
- this.fireSelect({type: oParams.selected ? SelectType.Add : SelectType.Remove, conditions: aConditions});
118
+ _fireSelect.call(this, aConditions, oParams.selected);
101
119
  }
102
120
  },
103
121
  adjustTable: function () {
@@ -179,7 +197,7 @@ sap.ui.define([
179
197
  if (bIsInSelectedConditions !== bIsRowSelected) {
180
198
  var aBucket = aSelectedRows.indexOf(oRow) !== -1 ? aAddConditions : aRemoveConditions;
181
199
  var oValues = this._getItemFromContext(oRow.getBindingContext());
182
- var oCondition = oValues && this._createCondition(oValues.key, oValues.description, oValues.inParameters, oValues.outParameters);
200
+ var oCondition = oValues && this._createCondition(oValues.key, oValues.description, oValues.payload);
183
201
  aBucket.push(oCondition);
184
202
  }
185
203
  }.bind(this));
@@ -187,14 +205,14 @@ sap.ui.define([
187
205
  var bSingle = this._isSingleSelect();
188
206
 
189
207
  if (aAddConditions.length) {
190
- this.fireSelect({type: this._isSingleSelect() ? SelectType.Set : SelectType.Add, conditions: aAddConditions});
208
+ _fireSelect.call(this, aAddConditions, true);
191
209
  if (bSingle) {
192
210
  return;
193
211
  }
194
212
  }
195
213
 
196
214
  if (aRemoveConditions.length) {
197
- this.fireSelect({type: this._isSingleSelect() ? SelectType.Set : SelectType.Remove, conditions: aRemoveConditions});
215
+ _fireSelect.call(this, aRemoveConditions, false);
198
216
  }
199
217
  },
200
218
  adjustTable: function () {
@@ -234,7 +252,7 @@ sap.ui.define([
234
252
  };
235
253
 
236
254
  function _updateSelection () {
237
- if (this._oTableHelper) {
255
+ if (this._oTableHelper && !this._bSelectionIsUpdating) {
238
256
  this._bSelectionIsUpdating = true;
239
257
  var aItems = this._oTableHelper.getItems();
240
258
  var aConditions = this.getConditions();
@@ -250,14 +268,16 @@ sap.ui.define([
250
268
  }
251
269
  }
252
270
 
271
+ var _updateSelectionThrottled = throttle(_updateSelection, 100, {leading: true});
272
+
253
273
  /**
254
274
  * Constructor for a new <code>MDCTable</code> content.
255
275
  *
256
- * @param {string} [sId] ID for the new control, generated automatically if no ID is given
257
- * @param {object} [mSettings] Initial settings for the new control
258
- * @class Content for the <code>sap.ui.mdc.valuehelp.base.Container</code> element using a sap.ui.mdc.Table.
276
+ * @param {string} [sId] ID for the new element, generated automatically if no ID is given
277
+ * @param {object} [mSettings] Initial settings for the new element
278
+ * @class Content for the {@link sap.ui.mdc.valuehelp.base.Container Container} element using a {@link sap.ui.mdc.Table}.
259
279
  * @extends sap.ui.mdc.valuehelp.base.FilterableListContent
260
- * @version 1.100.0
280
+ * @version 1.101.0
261
281
  * @constructor
262
282
  * @abstract
263
283
  * @private
@@ -281,7 +301,7 @@ sap.ui.define([
281
301
  * Table to be used in value help
282
302
  *
283
303
  * <b>Note:</b> Set the right selection mode (multiple selection or single selection) as it cannot be determined automatically
284
- * for every case. (Maybe for multi-value <code>FilterField</code> controls only single selection from table might be wanted.)
304
+ * for every case. (Maybe for multi-value {@link sap.ui.mdc.FilterField FilterField} controls only single selection from table might be wanted.)
285
305
  */
286
306
  table: {
287
307
  type: "sap.ui.mdc.Table",
@@ -322,17 +342,19 @@ sap.ui.define([
322
342
  };
323
343
 
324
344
  MDCTable.prototype._handleConditionsUpdate = function() {
325
- _updateSelection.call(this);
345
+ _updateSelectionThrottled.call(this);
326
346
  };
327
347
  MDCTable.prototype._handleUpdateFinished = function (oEvent) {
348
+
328
349
  this._bScrolling = false;
329
350
  this._bSearchTriggered = false;
330
- _updateSelection.call(this);
351
+ _updateSelectionThrottled.call(this);
331
352
  };
332
353
 
333
354
 
334
355
  MDCTable.prototype._handleFirstVisibleRowChanged = function (oEvent) {
335
356
  this._bScrolling = true;
357
+ _updateSelectionThrottled.call(this);
336
358
  };
337
359
 
338
360
  MDCTable.prototype._handleBusyStateChanged = function (oEvent) {
@@ -386,7 +408,7 @@ sap.ui.define([
386
408
  }
387
409
  };
388
410
 
389
- var _handleSearch = function (oEvent) {
411
+ MDCTable.prototype._handleSearch = function (oEvent) {
390
412
  var sFilterFields = this.getFilterFields();
391
413
  var oFilterBar = oEvent.getSource();
392
414
  var oConditions = oFilterBar.getInternalConditions();
@@ -397,34 +419,7 @@ sap.ui.define([
397
419
 
398
420
  MDCTable.prototype._observeChanges = function (oChanges) {
399
421
 
400
- var oFilterBar, oDefaultFilterBar;
401
- if (oChanges.name === "_defaultFilterBar") {
402
- oDefaultFilterBar = oChanges.child;
403
- if (oChanges.mutation === "insert") {
404
- oFilterBar = this.getFilterBar();
405
- if (!oFilterBar) {
406
- oDefaultFilterBar.attachSearch(_handleSearch, this);
407
- }
408
- } else {
409
- oDefaultFilterBar.detachSearch(_handleSearch, this);
410
- }
411
- _updateTableFilter.call(this);
412
- }
413
-
414
- if (oChanges.name === "filterBar") {
415
- oFilterBar = oChanges.child;
416
- oDefaultFilterBar = this.getAggregation("_defaultFilterBar");
417
- if (oChanges.mutation === "insert") {
418
- if (oDefaultFilterBar) {
419
- oDefaultFilterBar.detachSearch(_handleSearch, this);
420
- }
421
- oFilterBar.attachSearch(_handleSearch, this);
422
- } else {
423
- if (oDefaultFilterBar) {
424
- oDefaultFilterBar.attachSearch(_handleSearch, this);
425
- }
426
- oFilterBar.detachSearch(_handleSearch, this);
427
- }
422
+ if (["_defaultFilterBar", "filterBar"].indexOf(oChanges.name) !== -1) {
428
423
  _updateTableFilter.call(this);
429
424
  }
430
425
 
@@ -559,7 +554,7 @@ sap.ui.define([
559
554
  }.bind(this));
560
555
  };
561
556
 
562
- MDCTable.prototype._getListBinding = function() {
557
+ MDCTable.prototype.getListBinding = function() {
563
558
  var oTable = this.getTable();
564
559
  return oTable && oTable.getRowBinding();
565
560
  };
@@ -583,19 +578,26 @@ sap.ui.define([
583
578
  FilterableListContent.prototype.onShow.apply(this, arguments);
584
579
  };
585
580
 
581
+ MDCTable.prototype._createFiltersFromBarConditions = function (oConditions) {
582
+ var oConditionTypes = this._getTypesForConditions(oConditions);
583
+ var oCreatedFBFilters = oConditions && oConditionTypes && FilterConverter.createFilters(oConditions, oConditionTypes, undefined, this.getCaseSensitive());
584
+ return oCreatedFBFilters && [].concat(oCreatedFBFilters);
585
+ };
586
+
586
587
  MDCTable.prototype.applyFilters = function(sSearch) { // TODO the arguments are not passed as expected.
587
588
 
589
+
588
590
  var oTable = this.getTable();
589
591
  var oFilterBar = this._getPriorityFilterBar();
590
592
 
591
593
  if (oTable && oFilterBar) {
592
- var oListBinding = this._getListBinding();
594
+ var oListBinding = this.getListBinding();
593
595
  var bListBindingSuspended = oListBinding && oListBinding.isSuspended();
594
596
 
595
597
  if (oListBinding && !bListBindingSuspended && !this._bSearchTriggered) {
596
598
  var sFBSearch = oFilterBar.getSearch() || "";
597
599
  var sBindingSearch = oListBinding.mParameters.$search || "";
598
- var aFBFilters = this._getFiltersForFilterBar();
600
+ var aFBFilters = this._createFiltersFromBarConditions(oFilterBar.getConditions());
599
601
  var aBindingFilters = oListBinding.aApplicationFilters.reduce(function (aResult, oFilter) {
600
602
  return aResult.concat(oFilter._bMultiFilter ? oFilter.aFilters : oFilter);
601
603
  }, []);