@openui5/sap.ui.mdc 1.101.0 → 1.102.2

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 (186) hide show
  1. package/.eslintrc.json +19 -0
  2. package/THIRDPARTY.txt +1 -1
  3. package/package.json +4 -4
  4. package/src/sap/ui/mdc/.library +1 -1
  5. package/src/sap/ui/mdc/ActionToolbar.js +1 -1
  6. package/src/sap/ui/mdc/Chart.js +1 -1
  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 +9 -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/MultiValueField.js +1 -1
  14. package/src/sap/ui/mdc/Table.js +114 -160
  15. package/src/sap/ui/mdc/TableDelegate.js +28 -32
  16. package/src/sap/ui/mdc/ValueHelp.js +20 -14
  17. package/src/sap/ui/mdc/ValueHelpDelegate.js +9 -3
  18. package/src/sap/ui/mdc/actiontoolbar/ActionToolbarAction.js +1 -1
  19. package/src/sap/ui/mdc/chart/ChartSelectionDetails.js +1 -1
  20. package/src/sap/ui/mdc/chart/ChartToolbar.js +5 -2
  21. package/src/sap/ui/mdc/chart/PropertyHelper.js +1 -1
  22. package/src/sap/ui/mdc/condition/Condition.js +1 -1
  23. package/src/sap/ui/mdc/condition/ConditionConverter.js +1 -1
  24. package/src/sap/ui/mdc/condition/ConditionModel.js +1 -1
  25. package/src/sap/ui/mdc/condition/FilterConverter.js +1 -1
  26. package/src/sap/ui/mdc/condition/FilterOperatorUtil.js +9 -9
  27. package/src/sap/ui/mdc/condition/Operator.js +85 -15
  28. package/src/sap/ui/mdc/condition/OperatorDynamicDateOption.js +5 -3
  29. package/src/sap/ui/mdc/condition/RangeOperator.js +1 -1
  30. package/src/sap/ui/mdc/designtime/chart/Chart.designtime.js +13 -1
  31. package/src/sap/ui/mdc/enum/PropagationReason.js +2 -2
  32. package/src/sap/ui/mdc/enum/SelectType.js +3 -0
  33. package/src/sap/ui/mdc/field/BoolFieldHelp.js +1 -1
  34. package/src/sap/ui/mdc/field/ConditionFieldHelp.js +1 -1
  35. package/src/sap/ui/mdc/field/ConditionType.js +32 -14
  36. package/src/sap/ui/mdc/field/ConditionsType.js +6 -2
  37. package/src/sap/ui/mdc/field/CustomFieldHelp.js +1 -1
  38. package/src/sap/ui/mdc/field/CustomFieldInfo.js +1 -1
  39. package/src/sap/ui/mdc/field/DefineConditionPanel.js +15 -19
  40. package/src/sap/ui/mdc/field/DynamicDateRangeConditionsType.js +9 -62
  41. package/src/sap/ui/mdc/field/FieldBase.js +18 -4
  42. package/src/sap/ui/mdc/field/FieldHelpBase.js +1 -1
  43. package/src/sap/ui/mdc/field/FieldInfoBase.js +1 -1
  44. package/src/sap/ui/mdc/field/FieldInput.js +1 -1
  45. package/src/sap/ui/mdc/field/FieldInputRenderUtil.js +1 -1
  46. package/src/sap/ui/mdc/field/FieldMultiInput.js +1 -1
  47. package/src/sap/ui/mdc/field/FieldValueHelp.js +1 -1
  48. package/src/sap/ui/mdc/field/FieldValueHelpContentWrapperBase.js +1 -1
  49. package/src/sap/ui/mdc/field/FieldValueHelpMTableWrapper.js +3 -1
  50. package/src/sap/ui/mdc/field/FieldValueHelpMdcTableWrapper.js +13 -1
  51. package/src/sap/ui/mdc/field/FieldValueHelpTableWrapperBase.js +3 -3
  52. package/src/sap/ui/mdc/field/FieldValueHelpUITableWrapper.js +28 -29
  53. package/src/sap/ui/mdc/field/InParameter.js +1 -1
  54. package/src/sap/ui/mdc/field/ListFieldHelp.js +1 -1
  55. package/src/sap/ui/mdc/field/ListFieldHelpItem.js +1 -1
  56. package/src/sap/ui/mdc/field/MultiValueFieldItem.js +1 -1
  57. package/src/sap/ui/mdc/field/OutParameter.js +1 -1
  58. package/src/sap/ui/mdc/field/TokenDisplay.js +1 -1
  59. package/src/sap/ui/mdc/field/TokenizerDisplay.js +1 -1
  60. package/src/sap/ui/mdc/field/ValueHelpPanel.js +1 -1
  61. package/src/sap/ui/mdc/field/content/ContentFactory.js +8 -0
  62. package/src/sap/ui/mdc/field/content/DateContent.js +3 -3
  63. package/src/sap/ui/mdc/field/content/DateTimeContent.js +43 -2
  64. package/src/sap/ui/mdc/filterbar/FilterBarBase.js +1 -1
  65. package/src/sap/ui/mdc/filterbar/PropertyHelper.js +1 -1
  66. package/src/sap/ui/mdc/filterbar/p13n/AdaptationFilterBar.js +21 -1
  67. package/src/sap/ui/mdc/filterbar/vh/FilterBar.js +1 -1
  68. package/src/sap/ui/mdc/flexibility/Chart.flexibility.js +1 -1
  69. package/src/sap/ui/mdc/flexibility/FilterBar.flexibility.js +1 -1
  70. package/src/sap/ui/mdc/flexibility/FilterItemFlex.js +1 -1
  71. package/src/sap/ui/mdc/library.js +4 -4
  72. package/src/sap/ui/mdc/link/ContactDetails.js +1 -1
  73. package/src/sap/ui/mdc/link/ContactDetailsAddressItem.js +1 -1
  74. package/src/sap/ui/mdc/link/ContactDetailsEmailItem.js +1 -1
  75. package/src/sap/ui/mdc/link/ContactDetailsItem.js +1 -1
  76. package/src/sap/ui/mdc/link/ContactDetailsPhoneItem.js +1 -1
  77. package/src/sap/ui/mdc/link/ContactDetailsRenderer.js +1 -1
  78. package/src/sap/ui/mdc/link/Factory.js +1 -1
  79. package/src/sap/ui/mdc/link/FakeFlpConnector.js +1 -1
  80. package/src/sap/ui/mdc/link/LinkItem.js +1 -1
  81. package/src/sap/ui/mdc/link/Panel.js +2 -4
  82. package/src/sap/ui/mdc/link/PanelItem.js +1 -1
  83. package/src/sap/ui/mdc/link/SemanticObjectMapping.js +1 -1
  84. package/src/sap/ui/mdc/link/SemanticObjectMappingItem.js +1 -1
  85. package/src/sap/ui/mdc/link/SemanticObjectUnavailableAction.js +1 -1
  86. package/src/sap/ui/mdc/messagebundle.properties +4 -2
  87. package/src/sap/ui/mdc/messagebundle_ar.properties +3 -3
  88. package/src/sap/ui/mdc/messagebundle_bg.properties +1 -1
  89. package/src/sap/ui/mdc/messagebundle_ca.properties +1 -1
  90. package/src/sap/ui/mdc/messagebundle_cs.properties +1 -1
  91. package/src/sap/ui/mdc/messagebundle_cy.properties +1 -1
  92. package/src/sap/ui/mdc/messagebundle_da.properties +1 -1
  93. package/src/sap/ui/mdc/messagebundle_de.properties +1 -1
  94. package/src/sap/ui/mdc/messagebundle_el.properties +1 -1
  95. package/src/sap/ui/mdc/messagebundle_en.properties +1 -1
  96. package/src/sap/ui/mdc/messagebundle_en_GB.properties +1 -1
  97. package/src/sap/ui/mdc/messagebundle_en_US_sappsd.properties +1 -1
  98. package/src/sap/ui/mdc/messagebundle_es.properties +1 -1
  99. package/src/sap/ui/mdc/messagebundle_es_MX.properties +1 -1
  100. package/src/sap/ui/mdc/messagebundle_et.properties +1 -1
  101. package/src/sap/ui/mdc/messagebundle_fi.properties +1 -1
  102. package/src/sap/ui/mdc/messagebundle_fr.properties +1 -1
  103. package/src/sap/ui/mdc/messagebundle_fr_CA.properties +1 -1
  104. package/src/sap/ui/mdc/messagebundle_hi.properties +1 -1
  105. package/src/sap/ui/mdc/messagebundle_hr.properties +1 -1
  106. package/src/sap/ui/mdc/messagebundle_hu.properties +1 -1
  107. package/src/sap/ui/mdc/messagebundle_id.properties +1 -1
  108. package/src/sap/ui/mdc/messagebundle_it.properties +1 -1
  109. package/src/sap/ui/mdc/messagebundle_iw.properties +1 -1
  110. package/src/sap/ui/mdc/messagebundle_ja.properties +1 -1
  111. package/src/sap/ui/mdc/messagebundle_kk.properties +1 -1
  112. package/src/sap/ui/mdc/messagebundle_ko.properties +1 -1
  113. package/src/sap/ui/mdc/messagebundle_lt.properties +1 -1
  114. package/src/sap/ui/mdc/messagebundle_lv.properties +1 -1
  115. package/src/sap/ui/mdc/messagebundle_ms.properties +1 -1
  116. package/src/sap/ui/mdc/messagebundle_nl.properties +1 -1
  117. package/src/sap/ui/mdc/messagebundle_no.properties +1 -1
  118. package/src/sap/ui/mdc/messagebundle_pl.properties +1 -1
  119. package/src/sap/ui/mdc/messagebundle_pt.properties +6 -6
  120. package/src/sap/ui/mdc/messagebundle_pt_PT.properties +1 -1
  121. package/src/sap/ui/mdc/messagebundle_ro.properties +1 -1
  122. package/src/sap/ui/mdc/messagebundle_ru.properties +1 -1
  123. package/src/sap/ui/mdc/messagebundle_sh.properties +1 -1
  124. package/src/sap/ui/mdc/messagebundle_sk.properties +1 -1
  125. package/src/sap/ui/mdc/messagebundle_sl.properties +1 -1
  126. package/src/sap/ui/mdc/messagebundle_sv.properties +1 -1
  127. package/src/sap/ui/mdc/messagebundle_th.properties +1 -1
  128. package/src/sap/ui/mdc/messagebundle_tr.properties +3 -3
  129. package/src/sap/ui/mdc/messagebundle_uk.properties +1 -1
  130. package/src/sap/ui/mdc/messagebundle_vi.properties +1 -1
  131. package/src/sap/ui/mdc/messagebundle_zh_CN.properties +1 -1
  132. package/src/sap/ui/mdc/messagebundle_zh_TW.properties +1 -1
  133. package/src/sap/ui/mdc/mixin/AdaptationMixin.js +1 -1
  134. package/src/sap/ui/mdc/mixin/DelegateMixin.js +1 -1
  135. package/src/sap/ui/mdc/mixin/FilterIntegrationMixin.js +1 -1
  136. package/src/sap/ui/mdc/mixin/PromiseMixin.js +1 -1
  137. package/src/sap/ui/mdc/mixin/PropertyHelperMixin.js +4 -4
  138. package/src/sap/ui/mdc/odata/TypeUtil.js +1 -0
  139. package/src/sap/ui/mdc/odata/v4/ChartPropertyHelper.js +1 -1
  140. package/src/sap/ui/mdc/odata/v4/TableDelegate.js +53 -16
  141. package/src/sap/ui/mdc/odata/v4/vizChart/ChartDelegate.js +19 -3
  142. package/src/sap/ui/mdc/p13n/Engine.js +8 -4
  143. package/src/sap/ui/mdc/p13n/PropertyHelper.js +1 -1
  144. package/src/sap/ui/mdc/p13n/UIManager.js +1 -1
  145. package/src/sap/ui/mdc/p13n/modules/DefaultProviderRegistry.js +14 -11
  146. package/src/sap/ui/mdc/p13n/panels/FilterPanel.js +42 -18
  147. package/src/sap/ui/mdc/p13n/panels/GroupView.js +1 -0
  148. package/src/sap/ui/mdc/p13n/subcontroller/BaseController.js +1 -1
  149. package/src/sap/ui/mdc/table/Column.js +4 -1
  150. package/src/sap/ui/mdc/table/CreationRow.js +3 -1
  151. package/src/sap/ui/mdc/table/GridTableType.js +0 -5
  152. package/src/sap/ui/mdc/table/PropertyHelper.js +27 -74
  153. package/src/sap/ui/mdc/table/ResponsiveTableType.js +29 -17
  154. package/src/sap/ui/mdc/table/RowActionItem.js +1 -1
  155. package/src/sap/ui/mdc/table/RowSettings.js +1 -1
  156. package/src/sap/ui/mdc/table/V4AnalyticsPropertyHelper.js +1 -1
  157. package/src/sap/ui/mdc/table/menu/QuickActionContainer.js +3 -3
  158. package/src/sap/ui/mdc/themes/base/Chart.less +5 -0
  159. package/src/sap/ui/mdc/util/DateUtil.js +30 -5
  160. package/src/sap/ui/mdc/util/PromiseCache.js +1 -1
  161. package/src/sap/ui/mdc/util/PropertyHelper.js +1 -1
  162. package/src/sap/ui/mdc/valuehelp/Dialog.js +61 -26
  163. package/src/sap/ui/mdc/valuehelp/Popover.js +2 -2
  164. package/src/sap/ui/mdc/valuehelp/base/Container.js +9 -5
  165. package/src/sap/ui/mdc/valuehelp/base/Content.js +23 -9
  166. package/src/sap/ui/mdc/valuehelp/base/DialogTab.js +1 -1
  167. package/src/sap/ui/mdc/valuehelp/base/FilterableListContent.js +43 -7
  168. package/src/sap/ui/mdc/valuehelp/base/ListContent.js +3 -3
  169. package/src/sap/ui/mdc/valuehelp/content/Bool.js +1 -1
  170. package/src/sap/ui/mdc/valuehelp/content/Conditions.js +1 -1
  171. package/src/sap/ui/mdc/valuehelp/content/FixedList.js +1 -1
  172. package/src/sap/ui/mdc/valuehelp/content/MDCTable.js +7 -3
  173. package/src/sap/ui/mdc/valuehelp/content/MTable.js +8 -2
  174. package/test/sap/ui/mdc/testutils/opa/chart/ActionsBase.js +48 -2
  175. package/test/sap/ui/mdc/testutils/opa/chart/TestObjects.js +3 -3
  176. package/test/sap/ui/mdc/testutils/opa/chartNew/TestObjects.js +3 -3
  177. package/test/sap/ui/mdc/testutils/opa/filterbar/Actions.js +55 -4
  178. package/test/sap/ui/mdc/testutils/opa/filterbar/TestObjects.js +2 -2
  179. package/test/sap/ui/mdc/testutils/opa/link/Actions.js +53 -12
  180. package/test/sap/ui/mdc/testutils/opa/link/TestObjects.js +6 -6
  181. package/test/sap/ui/mdc/testutils/opa/p13n/Actions.js +87 -120
  182. package/test/sap/ui/mdc/testutils/opa/p13n/waitForSelectWithSelectedTextOnPanel.js +5 -2
  183. package/test/sap/ui/mdc/testutils/opa/table/Actions.js +70 -0
  184. package/test/sap/ui/mdc/testutils/opa/table/TestObjects.js +9 -7
  185. package/test/sap/ui/mdc/testutils/opa/valueHelp/Actions.js +2 -2
  186. package/src/sap/ui/mdc/valuehelp/content/ListCollection.js +0 -205
package/.eslintrc.json ADDED
@@ -0,0 +1,19 @@
1
+ {
2
+ "overrides": [
3
+ /*
4
+ * Productive code, sample and unit test code of sap.ui.mdc has been cleaned up.
5
+ * No more references to the global jQuery allowed
6
+ */
7
+ {
8
+ "files": [
9
+ "src/**/*.js",
10
+ "test/sap/ui/mdc/demokit/**/*.js",
11
+ "test/sap/ui/mdc/integration/**/*.js",
12
+ "test/sap/ui/mdc/qunit/**/*.js"
13
+ ],
14
+ "globals": {
15
+ "jQuery": "off"
16
+ }
17
+ }
18
+ ]
19
+ }
package/THIRDPARTY.txt CHANGED
@@ -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.38
453
+ Component: SAP Theming Base Content, version: 11.1.39
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.101.0",
3
+ "version": "1.102.2",
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.101.0",
18
- "@openui5/sap.ui.core": "1.101.0",
19
- "@openui5/sap.ui.layout": "1.101.0"
17
+ "@openui5/sap.m": "1.102.2",
18
+ "@openui5/sap.ui.core": "1.102.2",
19
+ "@openui5/sap.ui.layout": "1.102.2"
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.101.0</version>
9
+ <version>1.102.2</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.101.0
34
+ * @version 1.102.2
35
35
  * @constructor
36
36
  * @private
37
37
  * @since 1.58
@@ -62,7 +62,7 @@ sap.ui.define([
62
62
  * @class The Chart control creates a chart based on metadata and the configuration specified.
63
63
  * @extends sap.ui.mdc.Control
64
64
  * @author SAP SE
65
- * @version 1.101.0
65
+ * @version 1.102.2
66
66
  * @constructor
67
67
  * @experimental As of version ...
68
68
  * @private
@@ -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.101.0
23
+ * @version 1.102.2
24
24
  * @alias sap.ui.mdc.Control
25
25
  *
26
26
  * @borrows sap.ui.mdc.mixin.DelegateMixin.awaitControlDelegate as awaitControlDelegate
@@ -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.101.0
23
+ * @version 1.102.2
24
24
  * @alias sap.ui.mdc.Element
25
25
  *
26
26
  * @borrows sap.ui.mdc.mixin.DelegateMixin.awaitControlDelegate as awaitControlDelegate
@@ -46,12 +46,12 @@ sap.ui.define([
46
46
  * @implements sap.ui.core.IFormContent
47
47
  *
48
48
  * @author SAP SE
49
- * @version 1.101.0
49
+ * @version 1.102.2
50
50
  *
51
51
  * @constructor
52
52
  * @alias sap.ui.mdc.Field
53
53
  * @author SAP SE
54
- * @version 1.101.0
54
+ * @version 1.102.2
55
55
  * @since 1.54.0
56
56
  * @experimental As of version 1.54
57
57
  *
@@ -166,6 +166,13 @@ sap.ui.define([
166
166
  !deepEqual(oDataType.getConstraints(), oBindingInfo.type.getConstraints()) ||
167
167
  oDataType._bCreatedByOperator !== oBindingInfo.type._bCreatedByOperator)) {
168
168
  this._oContentFactory.setDataType(oBindingInfo.type);
169
+ if (oBindingInfo.type.isA("sap.ui.model.CompositeType") && oBindingInfo.parts) {
170
+ var aTypes = [];
171
+ for (var i = 0; i < oBindingInfo.parts.length; i++) {
172
+ aTypes.push(oBindingInfo.parts[i].type);
173
+ }
174
+ this._oContentFactory.setCompositeTypes(aTypes);
175
+ }
169
176
  this._oContentFactory.updateConditionType();
170
177
  this.invalidate(); // as new inner control might be needed
171
178
  }
@@ -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.101.0
24
+ * @version 1.102.2
25
25
  * @constructor
26
26
  * @experimental As of version 1.61
27
27
  * @private
@@ -33,12 +33,12 @@ sap.ui.define([
33
33
  * @extends sap.ui.mdc.field.FieldBase
34
34
  *
35
35
  * @author SAP SE
36
- * @version 1.101.0
36
+ * @version 1.102.2
37
37
  *
38
38
  * @constructor
39
39
  * @alias sap.ui.mdc.FilterField
40
40
  * @author SAP SE
41
- * @version 1.101.0
41
+ * @version 1.102.2
42
42
  * @since 1.48.0
43
43
  *
44
44
  * @experimental As of version 1.48
@@ -45,7 +45,7 @@ sap.ui.define([
45
45
  * @extends sap.ui.mdc.field.FieldInfoBase
46
46
  *
47
47
  * @author SAP SE
48
- * @version 1.101.0
48
+ * @version 1.102.2
49
49
  *
50
50
  * @constructor
51
51
  * @alias sap.ui.mdc.Link
@@ -35,7 +35,7 @@ sap.ui.define([
35
35
  * @constructor
36
36
  * @alias sap.ui.mdc.MultiValueField
37
37
  * @author SAP SE
38
- * @version 1.101.0
38
+ * @version 1.102.2
39
39
  * @since 1.93.0
40
40
  *
41
41
  * @private
@@ -29,7 +29,6 @@ sap.ui.define([
29
29
  "sap/ui/core/library",
30
30
  "sap/ui/events/KeyCodes",
31
31
  "sap/ui/model/Sorter",
32
- "sap/ui/dom/containsOrEquals",
33
32
  "sap/base/strings/capitalize",
34
33
  "sap/base/util/deepEqual",
35
34
  "sap/base/util/Deferred",
@@ -73,7 +72,6 @@ sap.ui.define([
73
72
  coreLibrary,
74
73
  KeyCodes,
75
74
  Sorter,
76
- containsOrEquals,
77
75
  capitalize,
78
76
  deepEqual,
79
77
  Deferred,
@@ -97,7 +95,6 @@ sap.ui.define([
97
95
 
98
96
  var SelectionMode = library.SelectionMode;
99
97
  var TableType = library.TableType;
100
- var RowAction = library.RowAction;
101
98
  var P13nMode = library.TableP13nMode;
102
99
  var ToolbarDesign = MLibrary.ToolbarDesign;
103
100
  var ToolbarStyle = MLibrary.ToolbarStyle;
@@ -172,16 +169,6 @@ sap.ui.define([
172
169
  defaultValue: null,
173
170
  invalidate: true
174
171
  },
175
- /**
176
- * Actions available for a table row.
177
- *
178
- * @since 1.60
179
- * @deprecated as of version 1.98, use row settings instead.
180
- */
181
- rowAction: {
182
- type: "sap.ui.mdc.RowAction[]",
183
- defaultValue: []
184
- },
185
172
  /**
186
173
  * Personalization options for the table.<br>
187
174
  * <b>Note:</b> The order of the options does not influence the position on the UI.
@@ -889,11 +876,6 @@ sap.ui.define([
889
876
  // ----End Type----
890
877
 
891
878
  Table.prototype.setRowSettings = function(oRowSettings) {
892
- if (this._oTableRowAction) {
893
- if (oRowSettings.getRowActions().length == 0) {
894
- oRowSettings.addRowAction(this._oTableRowAction);
895
- }
896
- }
897
879
  this.setAggregation("rowSettings", oRowSettings, true);
898
880
 
899
881
  if (this._oTable) {
@@ -922,11 +904,8 @@ sap.ui.define([
922
904
  };
923
905
 
924
906
  Table.prototype.focus = function(oFocusInfo) {
925
- //see Element.prototype.focus, MDCTable does not have any own focusable DOM, therefor forward to inner control
926
- var oDomRef = this.getDomRef();
927
-
928
- if (this._oTable && oDomRef && !containsOrEquals(oDomRef, document.activeElement)) {
929
- this._oTable.focus();
907
+ if (this._oTable) {
908
+ this._oTable.focus(oFocusInfo);
930
909
  }
931
910
  };
932
911
 
@@ -968,24 +947,6 @@ sap.ui.define([
968
947
  return this;
969
948
  };
970
949
 
971
- // TODO: Temporary solution until apps adapted changes. Remove this, as this is replaced by rowSettings
972
- Table.prototype.setRowAction = function(aActions) {
973
- this.setProperty("rowAction", aActions, true);
974
-
975
- var oRowSettings = this.getRowSettings() || new RowSettings();
976
-
977
- oRowSettings.destroyRowActions();
978
- if (this.getRowAction().indexOf(RowAction.Navigation) > -1) {
979
- this._oTableRowAction = new RowActionItem({
980
- type: RowAction.Navigation
981
- });
982
- oRowSettings.addRowAction(this._oTableRowAction);
983
- }
984
- this.setRowSettings(oRowSettings);
985
-
986
- return this;
987
- };
988
-
989
950
  Table.prototype.setCreationRow = function(oCreationRow) {
990
951
  this.setAggregation("creationRow", oCreationRow, true);
991
952
 
@@ -1117,13 +1078,13 @@ sap.ui.define([
1117
1078
  function updateFilterInfoBar(oTable) {
1118
1079
  var oFilterInfoBar = getFilterInfoBar(oTable);
1119
1080
  var oFilterInfoBarText = getFilterInfoBarText(oTable);
1120
- var aFilteredProperties = getFilteredProperties(oTable);
1081
+ var aFilteredProperties = getInternallyFilteredProperties(oTable);
1121
1082
 
1122
1083
  if (!oFilterInfoBar) {
1123
1084
  return;
1124
1085
  }
1125
1086
 
1126
- if (aFilteredProperties.length === 0 || !oTable.isFilteringEnabled()) {
1087
+ if (aFilteredProperties.length === 0) {
1127
1088
  var oFilterInfoBarDomRef = oFilterInfoBar.getDomRef();
1128
1089
 
1129
1090
  if (oFilterInfoBarDomRef && oFilterInfoBarDomRef.contains(document.activeElement)) {
@@ -1131,7 +1092,7 @@ sap.ui.define([
1131
1092
  }
1132
1093
 
1133
1094
  oFilterInfoBar.setVisible(false);
1134
- oTable._oTable.removeAriaLabelledBy(oFilterInfoBarText);
1095
+ getFilterInfoBarInvisibleText(oTable).setText("");
1135
1096
 
1136
1097
  return;
1137
1098
  }
@@ -1147,10 +1108,10 @@ sap.ui.define([
1147
1108
 
1148
1109
  if (!oFilterInfoBar.getVisible()) {
1149
1110
  oFilterInfoBar.setVisible(true);
1150
- oTable._oTable.addAriaLabelledBy(oFilterInfoBarText);
1151
1111
  }
1152
1112
 
1153
1113
  oFilterInfoBarText.setText(sFilterText);
1114
+ getFilterInfoBarInvisibleText(oTable).setText(sFilterText);
1154
1115
  });
1155
1116
  }
1156
1117
 
@@ -1173,9 +1134,19 @@ sap.ui.define([
1173
1134
  oTable._oTable.insertExtension(oFilterInfoBar, 1);
1174
1135
  }
1175
1136
 
1176
- if (oFilterInfoBar.getVisible()) {
1177
- oTable._oTable.addAriaLabelledBy(getFilterInfoBarText(oTable));
1137
+ var oInvisibleText = getFilterInfoBarInvisibleText(oTable);
1138
+ oTable._oTable.addAriaLabelledBy(oInvisibleText.getId());
1139
+ }
1140
+
1141
+ function getFilterInfoBarInvisibleText(oTable) {
1142
+ if (!oTable) {
1143
+ return null;
1144
+ }
1145
+
1146
+ if (!oTable._oFilterInfoBarInvisibleText) {
1147
+ oTable._oFilterInfoBarInvisibleText = new InvisibleText().toStatic();
1178
1148
  }
1149
+ return oTable._oFilterInfoBarInvisibleText;
1179
1150
  }
1180
1151
 
1181
1152
  function createFilterInfoBar(oTable) {
@@ -1300,13 +1271,13 @@ sap.ui.define([
1300
1271
  return oRb.getText("table.NO_DATA");
1301
1272
  }
1302
1273
 
1303
- // Table is bound, but does not show any data
1304
- // If table-internal or external (for example FilterBar) filters are set, then show the message that the data not found and also ask to adjust the filters.
1305
- var oExternalFilter = Core.byId(this.getFilter());
1306
- if ((this.isFilteringEnabled() && getFilteredProperties(this).length > 0) || //internal filters check
1307
- (oExternalFilter && getFilteredProperties(oExternalFilter).length > 0)) { //external filters check
1274
+ // Table is bound, but does not show any data.
1275
+ // If the table is filtered internally or externally, e.g. FilterBar, then show the message that no data was found and that filters can be
1276
+ // adjusted.
1277
+ if (isFiltered(this)) {
1308
1278
  return oRb.getText("table.NO_RESULTS");
1309
1279
  }
1280
+
1310
1281
  // If no filters set, show only message that the data are not found, and nothing about the filters.
1311
1282
  return oRb.getText("table.NO_DATA");
1312
1283
  };
@@ -1550,12 +1521,44 @@ sap.ui.define([
1550
1521
  return this.getEngine().readXConfig(this);
1551
1522
  };
1552
1523
 
1553
- // oControl can be a Table or FilterBar - any Control that is able to have Filter
1554
- function getFilteredProperties(oControl) {
1555
- var mFilterConditions = oControl.getFilterConditions();
1524
+ /**
1525
+ * Gets the keys of properties that are filtered internally via the inbuilt filtering ({@link sap.ui.mdc.filterbar.p13n.AdaptationFilterBar}).
1526
+ *
1527
+ * @param {sap.ui.mdc.Table} oTable Instance of the table.
1528
+ * @returns {string[]} The keys of the filtered properties.
1529
+ */
1530
+ function getInternallyFilteredProperties(oTable) {
1531
+ return oTable.isFilteringEnabled() ? getFilteredProperties(oTable.getFilterConditions()) : [];
1532
+ }
1533
+
1534
+ /**
1535
+ * Gets the keys of properties that are filtered externally via the associated filter ({@link sap.ui.mdc.IFilter}).
1536
+ *
1537
+ * @param {sap.ui.mdc.Table} oTable Instance of the table.
1538
+ * @returns {string[]} The keys of the filtered properties.
1539
+ */
1540
+ function getExternallyFilteredProperties(oTable) {
1541
+ var oFilter = Core.byId(oTable.getFilter());
1542
+ return oFilter ? getFilteredProperties(oFilter.getConditions()) : [];
1543
+ }
1544
+
1545
+ /**
1546
+ * Whether the table is filtered internally via the inbuilt filtering ({@link sap.ui.mdc.filterbar.p13n.AdaptationFilterBar}), or externally via
1547
+ * the associated filter ({@link sap.ui.mdc.IFilter}).
1548
+ *
1549
+ * @param {sap.ui.mdc.Table} oTable Instance of the table.
1550
+ * @return {boolean} Whether the table is filtered (internally or externally).
1551
+ */
1552
+ function isFiltered(oTable) {
1553
+ var oFilter = Core.byId(oTable.getFilter());
1554
+ return getInternallyFilteredProperties(oTable).length > 0
1555
+ || getExternallyFilteredProperties(oTable).length > 0
1556
+ || oFilter && oFilter.getSearch() !== "";
1557
+ }
1556
1558
 
1557
- return Object.keys(mFilterConditions).filter(function(sProperty) {
1558
- return mFilterConditions[sProperty].length > 0;
1559
+ function getFilteredProperties(mConditions) {
1560
+ return Object.keys(mConditions || {}).filter(function(sProperty) {
1561
+ return mConditions[sProperty].length > 0;
1559
1562
  });
1560
1563
  }
1561
1564
 
@@ -1685,23 +1688,17 @@ sap.ui.define([
1685
1688
  return null;
1686
1689
  }
1687
1690
 
1688
- var mDefaultExportSettings = {
1689
- fileName: this.getHeader()
1690
- };
1691
-
1692
- if (!this._cachedExportSettings) {
1693
- this._cachedExportSettings = mDefaultExportSettings;
1694
- }
1695
-
1696
1691
  if (!this._oExportButton) {
1697
1692
  this._oExportButton = TableSettings.createExportButton(this.getId(), {
1698
1693
  "default": [
1699
1694
  function() {
1700
- this._onExport(mDefaultExportSettings);
1695
+ this._onExport();
1701
1696
  }, this
1702
1697
  ],
1703
1698
  "exportAs": [
1704
- this._onExportAs, this
1699
+ function() {
1700
+ this._onExport(true);
1701
+ }, this
1705
1702
  ]
1706
1703
  });
1707
1704
  }
@@ -1734,8 +1731,7 @@ sap.ui.define([
1734
1731
  * @returns {Promise} Column configuration to be exported
1735
1732
  * @private
1736
1733
  */
1737
- Table.prototype._createExportColumnConfiguration = function(mCustomConfig) {
1738
- var bSplitCells = mCustomConfig && mCustomConfig.splitCells;
1734
+ Table.prototype._createExportColumnConfiguration = function() {
1739
1735
  var aColumns = this.getColumns();
1740
1736
 
1741
1737
  return this._fullyInitialized().then(function() {
@@ -1743,26 +1739,35 @@ sap.ui.define([
1743
1739
  var aSheetColumns = [];
1744
1740
 
1745
1741
  aColumns.forEach(function(oColumn) {
1746
- var aColumnExportSettings = oPropertyHelper.getColumnExportSettings(oColumn, bSplitCells);
1742
+ var aColumnExportSettings = oPropertyHelper.getColumnExportSettings(oColumn);
1747
1743
  aSheetColumns = aSheetColumns.concat(aColumnExportSettings);
1748
1744
  }, this);
1749
- return [aSheetColumns, oPropertyHelper];
1745
+ return aSheetColumns;
1750
1746
  }.bind(this));
1751
1747
  };
1752
1748
 
1749
+ /**
1750
+ * Returns the label/header text of the column
1751
+ * @param {string} sPath column key
1752
+ * @returns {string|null} column label/header text. Returns null if no column or header/label text is available.
1753
+ * @private
1754
+ */
1755
+ Table.prototype._getColumnLabel = function(sPath) {
1756
+ var oPropertyHelper = this.getPropertyHelper();
1757
+ var mPropertyInfo = oPropertyHelper.getProperty(sPath);
1758
+ return mPropertyInfo && mPropertyInfo.label;
1759
+ };
1760
+
1753
1761
  /**
1754
1762
  * Triggers export via "sap.ui.export"/"Document Export Services" export functionality
1755
1763
  *
1756
- * @param {Object} mCustomConfig Custom config for the spreadsheet export
1764
+ * @param {boolean} bExportAs controls whether the regular export or the Export As dialog should be called
1757
1765
  * @returns {Promise} export build process promise
1758
1766
  * @private
1759
1767
  */
1760
- Table.prototype._onExport = function(mCustomConfig) {
1768
+ Table.prototype._onExport = function(bExportAs) {
1761
1769
  var that = this;
1762
- return this._createExportColumnConfiguration(mCustomConfig).then(function(aResult) {
1763
- var aSheetColumns = aResult[0];
1764
- var oPropertyHelper = aResult[1];
1765
-
1770
+ return this._createExportColumnConfiguration().then(function(aSheetColumns) {
1766
1771
  // If no columns exist, show message and return without exporting
1767
1772
  if (!aSheetColumns || !aSheetColumns.length) {
1768
1773
  sap.ui.require(["sap/m/MessageBox"], function(MessageBox) {
@@ -1774,95 +1779,39 @@ sap.ui.define([
1774
1779
  }
1775
1780
 
1776
1781
  var oRowBinding = that._getRowBinding();
1782
+ var fnGetColumnLabel = that._getColumnLabel.bind(that);
1777
1783
  var mExportSettings = {
1778
1784
  workbook: {
1779
1785
  columns: aSheetColumns,
1780
1786
  context: {
1781
- title: that.getHeader() || mCustomConfig.fileName
1787
+ title: that.getHeader()
1782
1788
  }
1783
1789
  },
1784
1790
  dataSource: oRowBinding,
1785
- fileType: mCustomConfig.selectedFileType,
1786
- fileName: mCustomConfig ? mCustomConfig.fileName : this.getHeader()
1791
+ fileName: that.getHeader()
1787
1792
  };
1788
1793
 
1789
- var mPDFUserSettings = {
1790
- border: mCustomConfig.border,
1791
- fontSize: mCustomConfig.fontSize,
1792
- paperSize: mCustomConfig.selectedPaperSize,
1793
- doEnableAccessibility: mCustomConfig.doEnableAccessibility,
1794
- signature: mCustomConfig.signature,
1795
- signatureReason: mCustomConfig.signatureReason,
1796
- orientation: mCustomConfig.selectedOrientation,
1797
- fitToPage: mCustomConfig.fitToPage,
1798
- pdfArchive: mCustomConfig.pdfArchive
1799
- };
1800
-
1801
- if (mExportSettings.fileType === "PDF") {
1802
- Object.assign(mExportSettings, mPDFUserSettings);
1803
- }
1804
-
1805
1794
  that._loadExportLibrary().then(function() {
1806
- sap.ui.require(["sap/ui/export/ExportUtils"], function(ExportUtils) {
1807
- var oProcessor = Promise.resolve();
1808
-
1809
- if (mCustomConfig.includeFilterSettings) {
1810
- oProcessor = ExportUtils.parseFilterConfiguration(oRowBinding, function(sPropertyName) {
1811
- return oPropertyHelper.hasProperty(sPropertyName) ? oPropertyHelper.getProperty(sPropertyName).label : null;
1812
- }).then(function(oFilterConfig) {
1813
- if (oFilterConfig) {
1814
- var oContext = mExportSettings.workbook.context;
1815
-
1816
- oContext.metaSheetName = oFilterConfig.name;
1817
- oContext.metainfo = [oFilterConfig];
1818
- }
1819
- });
1820
- }
1821
-
1822
- oProcessor.then(function() {
1823
- var mUserSettings = {
1824
- splitCells: false,
1825
- includeFilterSettings: false
1826
- };
1827
-
1828
- if (mCustomConfig) {
1829
- mUserSettings.splitCells = mCustomConfig.splitCells;
1830
- mUserSettings.includeFilterSettings = mCustomConfig.includeFilterSettings;
1831
- }
1832
-
1833
- ExportUtils.getExportInstance(mExportSettings).then(function(oSheet){
1834
- oSheet.attachBeforeExport(function(oEvent) {
1835
- var oExportSettings = oEvent.getParameter("exportSettings");
1836
-
1837
- that.fireBeforeExport({
1838
- exportSettings: oExportSettings,
1839
- userExportSettings: mUserSettings
1840
- });
1841
- }, that);
1842
- oSheet.build().finally(function() {
1843
- oSheet.destroy();
1795
+ sap.ui.require(["sap/ui/export/ExportHandler"], function(ExportHandler) {
1796
+ var oHandler;
1797
+
1798
+ that.getControlDelegate().fetchExportCapabilities(that).then(function(oExportCapabilities) {
1799
+ if (!that._oExportHandler) {
1800
+ oHandler = new ExportHandler(oExportCapabilities);
1801
+
1802
+ oHandler.attachBeforeExport(function(oEvent) {
1803
+ that.fireBeforeExport({
1804
+ exportSettings: oEvent.getParameter('exportSettings'),
1805
+ userExportSettings: oEvent.getParameter('userExportSettings')
1806
+ });
1844
1807
  });
1845
- });
1846
- });
1847
- });
1848
- });
1849
- });
1850
- };
1851
-
1852
- /**
1853
- * Opens the export settings dialog for providing user specific export settings.
1854
- *
1855
- * @private
1856
- */
1857
- Table.prototype._onExportAs = function(mCustomConfig) {
1858
- var that = this;
1859
-
1860
- this._loadExportLibrary().then(function() {
1861
- sap.ui.require(['sap/ui/export/ExportUtils'], function(ExportUtils) {
1862
- that.getControlDelegate().fetchExportCapabilities().then(function(oExportCapabilities) {
1863
- ExportUtils.getExportSettingsViaDialog(that._cachedExportSettings, oExportCapabilities, that).then(function(oUserInput) {
1864
- that._cachedExportSettings = oUserInput;
1865
- that._onExport(oUserInput);
1808
+ that._oExportHandler = oHandler;
1809
+ }
1810
+ if (bExportAs) {
1811
+ that._oExportHandler.exportAs(mExportSettings, fnGetColumnLabel);
1812
+ } else {
1813
+ that._oExportHandler.export(mExportSettings, fnGetColumnLabel);
1814
+ }
1866
1815
  });
1867
1816
  });
1868
1817
  });
@@ -1895,7 +1844,7 @@ sap.ui.define([
1895
1844
 
1896
1845
  if ((oEvent.metaKey || oEvent.ctrlKey) && oEvent.shiftKey && oEvent.which === KeyCodes.E) {
1897
1846
  if (this.getEnableExport() && this._oExportButton && this._oExportButton.getEnabled()) {
1898
- this._onExportAs();
1847
+ this._onExport(true);
1899
1848
  oEvent.setMarked();
1900
1849
  oEvent.preventDefault();
1901
1850
  }
@@ -2078,10 +2027,6 @@ sap.ui.define([
2078
2027
  this._oItemContainer.initializeItems()
2079
2028
  ]).then(function() {
2080
2029
  if (this._oQuickActionContainer.hasQuickActions() || this._oItemContainer.hasItems()) {
2081
- if (this._oColumnHeaderMenu._oItemsContainer) {
2082
- this._oColumnHeaderMenu._oItemsContainer.destroy();
2083
- this._oColumnHeaderMenu._oItemsContainer = null;
2084
- }
2085
2030
  this._oColumnHeaderMenu.openBy(oColumn);
2086
2031
  }
2087
2032
  }.bind(this));
@@ -2296,6 +2241,10 @@ sap.ui.define([
2296
2241
  if (iIndex >= 0) {
2297
2242
  this._oTemplate.insertCell(oCellTemplate, iIndex);
2298
2243
  this._oTable.getItems().forEach(function(oItem) {
2244
+ // ignore group headers since it does not have "cells" aggregation
2245
+ if (oItem.isA("sap.m.GroupHeaderListItem")) {
2246
+ return;
2247
+ }
2299
2248
  // Add lightweight placeholders that can be rendered - if they cannot be rendered, there will be errors in the console.
2300
2249
  // The actual cells are created after rebind.
2301
2250
  oItem.insertAggregation("cells", new InvisibleText(), iIndex, true);
@@ -2793,6 +2742,11 @@ sap.ui.define([
2793
2742
  this._oFullInitialize = null;
2794
2743
  this._oPasteButton = null;
2795
2744
 
2745
+ if (this._oFilterInfoBarInvisibleText) {
2746
+ this._oFilterInfoBarInvisibleText.destroy();
2747
+ this._oFilterInfoBarInvisibleText = null;
2748
+ }
2749
+
2796
2750
  Control.prototype.exit.apply(this, arguments);
2797
2751
  };
2798
2752