@openui5/sap.ui.table 1.130.0 → 1.131.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 (51) hide show
  1. package/THIRDPARTY.txt +1 -1
  2. package/package.json +3 -3
  3. package/src/sap/ui/table/.library +1 -1
  4. package/src/sap/ui/table/AnalyticalColumn.js +1 -1
  5. package/src/sap/ui/table/AnalyticalColumnMenu.js +1 -1
  6. package/src/sap/ui/table/AnalyticalTable.js +1 -1
  7. package/src/sap/ui/table/Column.js +1 -4
  8. package/src/sap/ui/table/ColumnMenu.js +1 -1
  9. package/src/sap/ui/table/CreationRow.js +1 -1
  10. package/src/sap/ui/table/Row.js +1 -1
  11. package/src/sap/ui/table/RowAction.js +1 -1
  12. package/src/sap/ui/table/RowActionItem.js +1 -1
  13. package/src/sap/ui/table/RowSettings.js +3 -2
  14. package/src/sap/ui/table/Table.js +11 -1
  15. package/src/sap/ui/table/TablePersoController.js +1 -1
  16. package/src/sap/ui/table/TreeTable.js +1 -1
  17. package/src/sap/ui/table/extensions/Accessibility.js +1 -1
  18. package/src/sap/ui/table/extensions/AccessibilityRender.js +1 -1
  19. package/src/sap/ui/table/extensions/DragAndDrop.js +1 -1
  20. package/src/sap/ui/table/extensions/ExtensionBase.js +1 -1
  21. package/src/sap/ui/table/extensions/Keyboard.js +1 -1
  22. package/src/sap/ui/table/extensions/KeyboardDelegate.js +1 -1
  23. package/src/sap/ui/table/extensions/Pointer.js +1 -1
  24. package/src/sap/ui/table/extensions/Scrolling.js +1 -1
  25. package/src/sap/ui/table/extensions/ScrollingIOS.js +1 -1
  26. package/src/sap/ui/table/extensions/Synchronization.js +1 -1
  27. package/src/sap/ui/table/library.js +11 -11
  28. package/src/sap/ui/table/menus/ColumnHeaderMenuAdapter.js +1 -1
  29. package/src/sap/ui/table/menus/GroupHeaderContextMenuAdapter.js +1 -1
  30. package/src/sap/ui/table/menus/MobileColumnHeaderMenuAdapter.js +1 -1
  31. package/src/sap/ui/table/messagebundle.properties +0 -6
  32. package/src/sap/ui/table/messagebundle_en_US_saprigi.properties +0 -4
  33. package/src/sap/ui/table/messagebundle_no.properties +1 -1
  34. package/src/sap/ui/table/plugins/BindingSelection.js +1 -1
  35. package/src/sap/ui/table/plugins/PluginBase.js +1 -1
  36. package/src/sap/ui/table/plugins/SelectionModelSelection.js +1 -1
  37. package/src/sap/ui/table/plugins/SelectionPlugin.js +1 -1
  38. package/src/sap/ui/table/plugins/V4Aggregation.js +30 -382
  39. package/src/sap/ui/table/rowmodes/Auto.js +1 -1
  40. package/src/sap/ui/table/rowmodes/Fixed.js +1 -1
  41. package/src/sap/ui/table/rowmodes/Interactive.js +1 -1
  42. package/src/sap/ui/table/rowmodes/RowMode.js +1 -1
  43. package/src/sap/ui/table/rowmodes/Variable.js +1 -1
  44. package/src/sap/ui/table/themes/base/RowHighlight.less +10 -0
  45. package/src/sap/ui/table/themes/base/RowSelection.less +4 -1
  46. package/src/sap/ui/table/utils/TableUtils.js +1 -1
  47. package/src/sap/ui/table/utils/_BindingUtils.js +1 -1
  48. package/src/sap/ui/table/utils/_ColumnUtils.js +1 -1
  49. package/src/sap/ui/table/utils/_GroupingUtils.js +1 -1
  50. package/src/sap/ui/table/utils/_HookUtils.js +1 -1
  51. package/src/sap/ui/table/utils/_MenuUtils.js +1 -1
package/THIRDPARTY.txt CHANGED
@@ -468,7 +468,7 @@ License: Apache-2.0
468
468
  License Text: https://github.com/SAP/openui5/blob/master/LICENSES/Apache-2.0.txt
469
469
  Contained in: lib/jsdoc/ui5/plugin.js
470
470
 
471
- Component: SAP Theming Base Content, version: 11.18.0
471
+ Component: SAP Theming Base Content, version: 11.22.0
472
472
  Copyright: SAP SE or an SAP affiliate company and Theming Base Content contributors
473
473
  License: Apache-2.0
474
474
  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.table",
3
- "version": "1.130.0",
3
+ "version": "1.131.0",
4
4
  "description": "OpenUI5 UI Library sap.ui.table",
5
5
  "author": "SAP SE (https://www.sap.com)",
6
6
  "license": "Apache-2.0",
@@ -14,7 +14,7 @@
14
14
  "url": "https://github.com/SAP/openui5.git"
15
15
  },
16
16
  "dependencies": {
17
- "@openui5/sap.ui.core": "1.130.0",
18
- "@openui5/sap.ui.unified": "1.130.0"
17
+ "@openui5/sap.ui.core": "1.131.0",
18
+ "@openui5/sap.ui.unified": "1.131.0"
19
19
  }
20
20
  }
@@ -6,7 +6,7 @@
6
6
  <copyright>OpenUI5
7
7
  * (c) Copyright 2009-2024 SAP SE or an SAP affiliate company.
8
8
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.</copyright>
9
- <version>1.130.0</version>
9
+ <version>1.131.0</version>
10
10
 
11
11
  <documentation>Table-like controls, mainly for desktop scenarios.</documentation>
12
12
 
@@ -47,7 +47,7 @@ sap.ui.define([
47
47
  * @extends sap.ui.table.Column
48
48
  *
49
49
  * @author SAP SE
50
- * @version 1.130.0
50
+ * @version 1.131.0
51
51
  *
52
52
  * @constructor
53
53
  * @public
@@ -20,7 +20,7 @@ sap.ui.define(['./ColumnMenu', "sap/ui/unified/MenuRenderer", './utils/TableUtil
20
20
  * @extends sap.ui.table.ColumnMenu
21
21
  *
22
22
  * @author SAP SE
23
- * @version 1.130.0
23
+ * @version 1.131.0
24
24
  *
25
25
  * @constructor
26
26
  * @public
@@ -50,7 +50,7 @@ sap.ui.define([
50
50
  * @see https://github.com/SAP/odata-vocabularies/blob/main/docs/v2-annotations.md
51
51
  *
52
52
  * @extends sap.ui.table.Table
53
- * @version 1.130.0
53
+ * @version 1.131.0
54
54
  *
55
55
  * @constructor
56
56
  * @public
@@ -63,7 +63,7 @@ sap.ui.define([
63
63
  * @class
64
64
  * The column allows you to define column specific properties that will be applied when rendering the table.
65
65
  * @extends sap.ui.core.Element
66
- * @version 1.130.0
66
+ * @version 1.131.0
67
67
  *
68
68
  * @constructor
69
69
  * @public
@@ -619,7 +619,6 @@ sap.ui.define([
619
619
  return !!(this.getSortProperty() && this.getShowSortMenuEntry());
620
620
  };
621
621
 
622
- // eslint-disable-next-line valid-jsdoc
623
622
  /**
624
623
  * This function checks whether a grouping column menu item will be created. Although it evaluates some column
625
624
  * properties, it does not check the metadata. Since a property of the table must be checked, this function will
@@ -685,7 +684,6 @@ sap.ui.define([
685
684
  return oHeaderMenu?.isOpen() || false;
686
685
  };
687
686
 
688
- // eslint-disable-next-line valid-jsdoc
689
687
  /**
690
688
  * @deprecated As of version 1.118.
691
689
  * @private
@@ -711,7 +709,6 @@ sap.ui.define([
711
709
  this.sort(this.getSorted() && this.getSortOrder() === SortOrder.Ascending);
712
710
  };
713
711
 
714
- // eslint-disable-next-line valid-jsdoc
715
712
  /**
716
713
  * Sorts the current column ascending or descending.
717
714
  *
@@ -40,7 +40,7 @@ sap.ui.define([
40
40
  * @class
41
41
  * The column menu provides all common actions that can be performed on a column.
42
42
  * @extends sap.ui.unified.Menu
43
- * @version 1.130.0
43
+ * @version 1.131.0
44
44
  *
45
45
  * @constructor
46
46
  * @public
@@ -32,7 +32,7 @@ sap.ui.define([
32
32
  * <code>sap.ui.commons</code> library.
33
33
  * @extends sap.ui.core.Control
34
34
  * @author SAP SE
35
- * @version 1.130.0
35
+ * @version 1.131.0
36
36
  *
37
37
  * @constructor
38
38
  * @private
@@ -135,7 +135,7 @@ sap.ui.define([
135
135
  * @class
136
136
  * The row.
137
137
  * @extends sap.ui.core.Element
138
- * @version 1.130.0
138
+ * @version 1.131.0
139
139
  *
140
140
  * @constructor
141
141
  * @public
@@ -35,7 +35,7 @@ sap.ui.define([
35
35
  * If more action items are available as the available space allows to display an overflow mechanism is provided.
36
36
  * This control must only be used in the context of the <code>sap.ui.table.Table</code> control to define row actions.
37
37
  * @extends sap.ui.core.Control
38
- * @version 1.130.0
38
+ * @version 1.131.0
39
39
  *
40
40
  * @constructor
41
41
  * @public
@@ -24,7 +24,7 @@ sap.ui.define([
24
24
  * @extends sap.ui.core.Element
25
25
  *
26
26
  * @author SAP SE
27
- * @version 1.130.0
27
+ * @version 1.131.0
28
28
  * @since 1.45
29
29
  *
30
30
  * @constructor
@@ -27,7 +27,7 @@ sap.ui.define([
27
27
  * The <code>RowSettings</code> control allows you to configure a row.
28
28
  * You can only use this control in the context of the <code>sap.ui.table.Table</code> control to define row settings.
29
29
  * @extends sap.ui.core.Element
30
- * @version 1.130.0
30
+ * @version 1.131.0
31
31
  *
32
32
  * @constructor
33
33
  * @public
@@ -44,7 +44,8 @@ sap.ui.define([
44
44
  *
45
45
  * If the highlight is set to {@link sap.ui.core.MessageType sap.ui.core.MessageType.None} (default), no highlights are visible.
46
46
  * Valid values for the <code>highlight</code> property are values of the enumerations {@link sap.ui.core.MessageType} or
47
- * {@link sap.ui.core.IndicationColor}.
47
+ * {@link sap.ui.core.IndicationColor} (only values of <code>Indication01</code> to <code>Indication10</code> are supported
48
+ * for accessibility contrast reasons).
48
49
  *
49
50
  * Accessibility support is provided through the associated {@link sap.ui.table.RowSettings#setHighlightText highlightText} property.
50
51
  * If the <code>highlight</code> property is set to a value of {@link sap.ui.core.MessageType}, the <code>highlightText</code>
@@ -102,7 +102,7 @@ sap.ui.define([
102
102
  * the data model and binding being used.
103
103
  * </p>
104
104
  * @extends sap.ui.core.Control
105
- * @version 1.130.0
105
+ * @version 1.131.0
106
106
  *
107
107
  * @constructor
108
108
  * @public
@@ -1189,6 +1189,16 @@ sap.ui.define([
1189
1189
  this.firePaste({data: aData});
1190
1190
  };
1191
1191
 
1192
+ // Override "focusfail" handler, see sap.ui.core.Element#onfocusfail
1193
+ Table.prototype.onfocusfail = function() {
1194
+ // Disable default handler for DragAndDrop.
1195
+ if (this._bReorderInProcess) {
1196
+ return undefined;
1197
+ } else {
1198
+ return Control.prototype.onfocusfail.apply(this, arguments);
1199
+ }
1200
+ };
1201
+
1192
1202
  /**
1193
1203
  * Theme changed
1194
1204
  * @private
@@ -34,7 +34,7 @@ sap.ui.define([
34
34
  * @extends sap.ui.base.ManagedObject
35
35
  *
36
36
  * @author SAP SE
37
- * @version 1.130.0
37
+ * @version 1.131.0
38
38
  * @since 1.21.1
39
39
  *
40
40
  * @constructor
@@ -42,7 +42,7 @@ sap.ui.define([
42
42
  * @class
43
43
  * The TreeTable control provides a comprehensive set of features to display hierarchical data.
44
44
  * @extends sap.ui.table.Table
45
- * @version 1.130.0
45
+ * @version 1.131.0
46
46
  *
47
47
  * @constructor
48
48
  * @public
@@ -969,7 +969,7 @@ sap.ui.define([
969
969
  * @class Extension for sap.ui.table.Table which handles ACC related things.
970
970
  * @extends sap.ui.table.extensions.ExtensionBase
971
971
  * @author SAP SE
972
- * @version 1.130.0
972
+ * @version 1.131.0
973
973
  * @constructor
974
974
  * @private
975
975
  * @alias sap.ui.table.extensions.Accessibility
@@ -44,7 +44,7 @@ sap.ui.define([
44
44
  * @class Extension for sap.ui.table.TableRenderer which handles ACC related things.
45
45
  * @extends sap.ui.table.extensions.ExtensionBase
46
46
  * @author SAP SE
47
- * @version 1.130.0
47
+ * @version 1.131.0
48
48
  * @constructor
49
49
  * @private
50
50
  * @alias sap.ui.table.extensions.AccessibilityRender
@@ -274,7 +274,7 @@ sap.ui.define([
274
274
  *
275
275
  * @extends sap.ui.table.extensions.ExtensionBase
276
276
  * @author SAP SE
277
- * @version 1.130.0
277
+ * @version 1.131.0
278
278
  * @constructor
279
279
  * @private
280
280
  * @alias sap.ui.table.extensions.DragAndDrop
@@ -19,7 +19,7 @@ sap.ui.define([
19
19
  * @abstract
20
20
  * @extends sap.ui.base.Object
21
21
  * @author SAP SE
22
- * @version 1.130.0
22
+ * @version 1.131.0
23
23
  * @constructor
24
24
  * @private
25
25
  * @alias sap.ui.table.extensions.ExtensionBase
@@ -267,7 +267,7 @@ sap.ui.define([
267
267
  * @class Extension for sap.ui.table.Table which handles keyboard related things.
268
268
  * @extends sap.ui.table.extensions.ExtensionBase
269
269
  * @author SAP SE
270
- * @version 1.130.0
270
+ * @version 1.131.0
271
271
  * @constructor
272
272
  * @private
273
273
  * @alias sap.ui.table.extensions.Keyboard
@@ -65,7 +65,7 @@ sap.ui.define([
65
65
  *
66
66
  * @extends sap.ui.base.Object
67
67
  * @author SAP SE
68
- * @version 1.130.0
68
+ * @version 1.131.0
69
69
  * @constructor
70
70
  * @private
71
71
  * @alias sap.ui.table.extensions.KeyboardDelegate
@@ -670,7 +670,7 @@ sap.ui.define([
670
670
  * @class Extension for sap.ui.table.Table which handles mouse and touch related things.
671
671
  * @extends sap.ui.table.extensions.ExtensionBase
672
672
  * @author SAP SE
673
- * @version 1.130.0
673
+ * @version 1.131.0
674
674
  * @constructor
675
675
  * @private
676
676
  * @alias sap.ui.table.extensions.Pointer
@@ -2295,7 +2295,7 @@ sap.ui.define([
2295
2295
  * @class Extension for sap.ui.table.Table which handles scrolling.
2296
2296
  * @extends sap.ui.table.extensions.ExtensionBase
2297
2297
  * @author SAP SE
2298
- * @version 1.130.0
2298
+ * @version 1.131.0
2299
2299
  * @constructor
2300
2300
  * @private
2301
2301
  * @alias sap.ui.table.extensions.Scrolling
@@ -27,7 +27,7 @@ sap.ui.define([
27
27
  * @class Extension for sap.ui.table.Table which handles the scrollbar on iOS.
28
28
  * @extends sap.ui.table.extensions.ExtensionBase
29
29
  * @author SAP SE
30
- * @version 1.130.0
30
+ * @version 1.131.0
31
31
  * @constructor
32
32
  * @private
33
33
  * @alias sap.ui.table.extensions.ScrollingIOS
@@ -185,7 +185,7 @@ sap.ui.define([
185
185
  * @class Extension for sap.ui.table.Table that allows synchronization with a table.
186
186
  * @extends sap.ui.table.extensions.ExtensionBase
187
187
  * @author SAP SE
188
- * @version 1.130.0
188
+ * @version 1.131.0
189
189
  * @constructor
190
190
  * @private
191
191
  * @alias sap.ui.table.extensions.Synchronization
@@ -27,14 +27,14 @@ sap.ui.define([
27
27
  * @namespace
28
28
  * @alias sap.ui.table
29
29
  * @author SAP SE
30
- * @version 1.130.0
30
+ * @version 1.131.0
31
31
  * @since 0.8
32
32
  * @public
33
33
  */
34
34
  const thisLib = Library.init({
35
35
  name: "sap.ui.table",
36
36
  apiVersion: 2,
37
- version: "1.130.0",
37
+ version: "1.131.0",
38
38
  dependencies: ["sap.ui.core", "sap.ui.unified"],
39
39
  designtime: "sap/ui/table/designtime/library.designtime",
40
40
  types: [
@@ -96,7 +96,7 @@ sap.ui.define([
96
96
  /**
97
97
  * Navigation mode of the table
98
98
  *
99
- * @version 1.130.0
99
+ * @version 1.131.0
100
100
  * @enum {string}
101
101
  * @deprecated As of version 1.38, the concept has been discarded.
102
102
  * @public
@@ -127,7 +127,7 @@ sap.ui.define([
127
127
  /**
128
128
  * Row Action types.
129
129
  *
130
- * @version 1.130.0
130
+ * @version 1.131.0
131
131
  * @enum {string}
132
132
  * @public
133
133
  */
@@ -158,7 +158,7 @@ sap.ui.define([
158
158
  /**
159
159
  * Selection behavior of the table
160
160
  *
161
- * @version 1.130.0
161
+ * @version 1.131.0
162
162
  * @enum {string}
163
163
  * @public
164
164
  */
@@ -189,7 +189,7 @@ sap.ui.define([
189
189
  /**
190
190
  * Selection mode of the table
191
191
  *
192
- * @version 1.130.0
192
+ * @version 1.131.0
193
193
  * @enum {string}
194
194
  * @public
195
195
  */
@@ -227,7 +227,7 @@ sap.ui.define([
227
227
  /**
228
228
  * Sort order of a column
229
229
  *
230
- * @version 1.130.0
230
+ * @version 1.131.0
231
231
  * @enum {string}
232
232
  * @public
233
233
  * @deprecated As of version 1.120, replaced with <code>sap.ui.core.SortOrder</code>
@@ -254,7 +254,7 @@ sap.ui.define([
254
254
  /**
255
255
  * VisibleRowCountMode of the table
256
256
  *
257
- * @version 1.130.0
257
+ * @version 1.131.0
258
258
  * @enum {string}
259
259
  * @deprecated As of version 1.119, see the <code>rowMode</code> aggregation of <code>sap.ui.table.Table</code> for more details.
260
260
  * @public
@@ -299,7 +299,7 @@ sap.ui.define([
299
299
  *
300
300
  * Contains IDs of shared DOM references, which should be accessible to inheriting controls via getDomRef() function.
301
301
  *
302
- * @version 1.130.0
302
+ * @version 1.131.0
303
303
  * @enum {string}
304
304
  * @public
305
305
  */
@@ -400,7 +400,7 @@ sap.ui.define([
400
400
  *
401
401
  * This is an alias for {@link sap.ui.model.TreeAutoExpandMode} and kept for compatibility reasons.
402
402
  *
403
- * @version 1.130.0
403
+ * @version 1.131.0
404
404
  * @typedef {sap.ui.model.TreeAutoExpandMode}
405
405
  * @public
406
406
  * @deprecated As of version 1.120, replaced by <code>sap.ui.model.TreeAutoExpandMode</code>
@@ -414,7 +414,7 @@ sap.ui.define([
414
414
  /**
415
415
  * Mode of a selection plugin
416
416
  *
417
- * @version 1.130.0
417
+ * @version 1.131.0
418
418
  * @enum {string}
419
419
  * @private
420
420
  */
@@ -35,7 +35,7 @@ sap.ui.define([
35
35
  *
36
36
  * @extends sap.ui.base.Object
37
37
  * @author SAP SE
38
- * @version 1.130.0
38
+ * @version 1.131.0
39
39
  * @private
40
40
  * @alias sap.ui.table.menus.ColumnHeaderMenuAdapter
41
41
  */
@@ -29,7 +29,7 @@ sap.ui.define([
29
29
  *
30
30
  * @extends sap.ui.base.Object
31
31
  * @author SAP SE
32
- * @version 1.130.0
32
+ * @version 1.131.0
33
33
  * @private
34
34
  * @alias sap.ui.table.menus.GroupHeaderContextMenuAdapter
35
35
  */
@@ -59,7 +59,7 @@ sap.ui.define([
59
59
  *
60
60
  * @extends sap.ui.table.menus.ColumnHeaderMenuAdapter
61
61
  * @author SAP SE
62
- * @version 1.130.0
62
+ * @version 1.131.0
63
63
  * @private
64
64
  * @alias sap.ui.table.menus.MobileColumnHeaderMenuAdapter
65
65
  */
@@ -112,12 +112,6 @@ TBL_COL_COLCOUNT=Column {0} of {1}
112
112
  #XACT: accessibility label for a grouping row
113
113
  TBL_ROW_GROUP_LABEL=Group Row
114
114
 
115
- #XTXT: Title of group headers. For example: "Country: Germany"
116
- TBL_ROW_GROUP_TITLE={0}: {1}
117
-
118
- #XTXT: Title of group headers with a combination of ID and text. For example: "Country: 001 - Germany"
119
- TBL_ROW_GROUP_TITLE_FULL={0}: {1} - {2}
120
-
121
115
  #XACT: accessibility description for a column when menu is available
122
116
  TBL_COL_DESC_MENU=Menu Available
123
117
 
@@ -64,10 +64,6 @@ TBL_COL_COLCOUNT=\u206A\u206A\u206A\u200C\u200D\u200C\u200D\u200B\u200C\u200D\u2
64
64
 
65
65
  TBL_ROW_GROUP_LABEL=\u206A\u206A\u206A\u200C\u200B\u200C\u200C\u200B\u200C\u200B\u200D\u200C\u200D\u200C\u200D\u200C\u200D\u200C\u200D\u200C\u200B\u200C\u200C\u200C\u200D\u200B\u200C\u200C\u200C\u200C\u200C\u200B\u200C\u200D\u200C\u200D\u200B\u200C\u200B\u200D\u200D\u206AGroup Row\u206A\u206A
66
66
 
67
- TBL_ROW_GROUP_TITLE=\u206A\u206A\u206A\u200C\u200B\u200C\u200B\u200B\u200D\u200B\u200D\u200C\u200B\u200C\u200B\u200C\u200D\u200B\u200B\u200C\u200D\u200C\u200C\u200D\u200B\u200C\u200C\u200C\u200C\u200C\u200C\u200C\u200C\u200D\u200C\u200C\u200B\u200B\u200B\u200B\u200B\u200B\u200B\u200D\u206A\u200B\u200B\u200B{0}\u200C\u200C\u200C\: \u200B\u200B\u200B{1}\u200C\u200C\u200C\u206A\u206A
68
-
69
- TBL_ROW_GROUP_TITLE_FULL=\u206A\u206A\u206A\u200C\u200C\u200C\u200C\u200C\u200B\u200C\u200B\u200B\u200C\u200D\u200C\u200B\u200B\u200B\u200B\u200B\u200D\u200C\u200B\u200B\u200D\u200D\u200B\u200C\u200D\u200B\u200C\u200B\u200C\u200C\u200B\u200B\u200C\u200D\u200D\u200C\u200B\u200B\u200B\u200B\u206A\u200B\u200B\u200B{0}\u200C\u200C\u200C\: \u200B\u200B\u200B{1}\u200C\u200C\u200C - \u200B\u200B\u200B{2}\u200C\u200C\u200C\u206A\u206A
70
-
71
67
  TBL_COL_DESC_MENU=\u206A\u206A\u206A\u200C\u200D\u200D\u200B\u200C\u200D\u200D\u200B\u200B\u200D\u200B\u200D\u200D\u200B\u200B\u200B\u200C\u200D\u200C\u200B\u200C\u200D\u200D\u200B\u200D\u200B\u200B\u200D\u200B\u200C\u200B\u200D\u200C\u200B\u200B\u200B\u200D\u200C\u200B\u206AMenu Available\u206A\u206A
72
68
 
73
69
  TBL_COL_DESC_FILTERED=\u206A\u206A\u206A\u200C\u200B\u200D\u200D\u200D\u200B\u200D\u200B\u200D\u200B\u200B\u200D\u200D\u200D\u200B\u200C\u200B\u200D\u200C\u200C\u200C\u200B\u200D\u200B\u200C\u200D\u200B\u200C\u200C\u200B\u200B\u200D\u200C\u200B\u200B\u200D\u200D\u200C\u200C\u200D\u200B\u206AFiltered\u206A\u206A
@@ -118,7 +118,7 @@ TBL_ROW_EXPAND_KEY=Trykk p\u00E5 mellomromstasten for \u00E5 utvide en rad
118
118
 
119
119
  TBL_ROW_COLLAPSE_KEY=Trykk p\u00E5 mellomromstasten for \u00E5 komprimere en rad
120
120
 
121
- TBL_CREATIONROW_APPLY=Tilf\u00F8y rad
121
+ TBL_CREATIONROW_APPLY=Legg til rad
122
122
 
123
123
  TBL_CREATEROW_LABEL=Opprett ny tabellpost
124
124
 
@@ -21,7 +21,7 @@ sap.ui.define([
21
21
  *
22
22
  * @class Implements the selection methods for TreeTable and AnalyticalTable
23
23
  * @extends sap.ui.table.plugins.SelectionPlugin
24
- * @version 1.130.0
24
+ * @version 1.131.0
25
25
  * @constructor
26
26
  * @private
27
27
  * @alias sap.ui.table.plugins.BindingSelection
@@ -28,7 +28,7 @@ sap.ui.define([
28
28
  * @extends sap.ui.core.Element
29
29
  *
30
30
  * @author SAP SE
31
- * @version 1.130.0
31
+ * @version 1.131.0
32
32
  *
33
33
  * @private
34
34
  * @experimental Since 1.75
@@ -23,7 +23,7 @@ sap.ui.define([
23
23
  *
24
24
  * @class Implements the selection methods for a Table
25
25
  * @extends sap.ui.table.plugins.SelectionPlugin
26
- * @version 1.130.0
26
+ * @version 1.131.0
27
27
  * @constructor
28
28
  * @private
29
29
  * @alias sap.ui.table.plugins.SelectionModelSelection
@@ -27,7 +27,7 @@ sap.ui.define([
27
27
  * @class Implements the selection methods for a table.
28
28
  * @extends sap.ui.core.Element
29
29
  * @author SAP SE
30
- * @version 1.130.0
30
+ * @version 1.131.0
31
31
  * @public
32
32
  * @since 1.64
33
33
  * @experimental As of version 1.64
@@ -5,34 +5,20 @@
5
5
  */
6
6
  sap.ui.define([
7
7
  "./PluginBase",
8
- "../utils/TableUtils",
9
- "sap/base/util/deepClone"
8
+ "../utils/TableUtils"
10
9
  ], function(
11
10
  PluginBase,
12
- TableUtils,
13
- deepClone
11
+ TableUtils
14
12
  ) {
15
13
  "use strict";
16
14
 
17
- function defaultGroupHeaderFormatter(oContext, mGroupLevelInfo) {
18
- let sResourceKey = "TBL_ROW_GROUP_TITLE";
19
- const aValues = [mGroupLevelInfo.property.label, oContext.getProperty(mGroupLevelInfo.property.path, true)];
20
-
21
- if (mGroupLevelInfo.textProperty) {
22
- sResourceKey = "TBL_ROW_GROUP_TITLE_FULL";
23
- aValues.push(oContext.getProperty(mGroupLevelInfo.textProperty.path, true));
24
- }
25
-
26
- return TableUtils.getResourceText(sResourceKey, aValues);
27
- }
28
-
29
15
  /**
30
16
  * Constructs an instance of sap.ui.table.plugins.V4Aggregation
31
17
  *
32
- * @class TODO (don't forget to document fixed row count restrictions because fixed rows are set by this plugin)
18
+ * @class TODO
33
19
  * @extends sap.ui.table.plugins.PluginBase
34
20
  * @author SAP SE
35
- * @version 1.130.0
21
+ * @version 1.131.0
36
22
  * @private
37
23
  * @since 1.76
38
24
  * @ui5-restricted sap.ui.mdc
@@ -43,14 +29,6 @@ sap.ui.define([
43
29
  metadata: {
44
30
  library: "sap.ui.table",
45
31
  properties: {
46
- // None, Top, FixedTop, Bottom, FixedBottom, TopAndBottom, FixedTopAndBottom, TopAndFixedBottom, FixedTopAndFixedBottom
47
- //totalSummary: {type: "string", defaultValue: "FixedBottom"},
48
- totalSummaryOnTop: {type: "string", defaultValue: "Off"}, // On, Off, Fixed
49
- totalSummaryOnBottom: {type: "string", defaultValue: "Fixed"}, // On, Off, Fixed
50
- groupSummary: {type: "string", defaultValue: "Bottom"}, // None, Top, Bottom, TopAndBottom
51
- //groupSummaryOnTop: {type: "string", defaultValue: "On"}, // On, Off
52
- //groupSummaryOnBottom: {type: "string", defaultValue: "Off"}, // On, Off
53
-
54
32
  /**
55
33
  * If the formatter returns undefined, the default group header title is set.
56
34
  *
@@ -91,12 +69,8 @@ sap.ui.define([
91
69
  * @inheritDoc
92
70
  */
93
71
  V4Aggregation.prototype.onActivate = function(oTable) {
94
- this.setRowCountConstraints({
95
- fixedTop: false,
96
- fixedBottom: false
97
- });
98
72
  TableUtils.Grouping.setToDefaultGroupMode(oTable);
99
- TableUtils.Hook.register(oTable, TableUtils.Hook.Keys.Row.UpdateState, this.updateRowState, this);
73
+ TableUtils.Hook.register(oTable, TableUtils.Hook.Keys.Row.UpdateState, updateRowState, this);
100
74
  TableUtils.Hook.register(oTable, TableUtils.Hook.Keys.Row.Expand, expandRow, this);
101
75
  TableUtils.Hook.register(oTable, TableUtils.Hook.Keys.Row.Collapse, collapseRow, this);
102
76
  };
@@ -106,72 +80,15 @@ sap.ui.define([
106
80
  * @inheritDoc
107
81
  */
108
82
  V4Aggregation.prototype.onDeactivate = function(oTable) {
109
- this._mGroup = undefined;
110
- this._mAggregate = undefined;
111
- this._aGroupLevels = undefined;
112
- this._mColumnState = undefined;
113
- this.setRowCountConstraints();
114
- resetCellContentVisibilitySettings(this);
115
-
83
+ for (const oColumn of oTable.getColumns()) {
84
+ oColumn._setCellContentVisibilitySettings();
85
+ }
116
86
  TableUtils.Grouping.setToDefaultFlatMode(oTable);
117
87
  TableUtils.Hook.deregister(oTable, TableUtils.Hook.Keys.Row.UpdateState, this.updateRowState, this);
118
88
  TableUtils.Hook.deregister(this, TableUtils.Hook.Keys.Row.Expand, expandRow, this);
119
89
  TableUtils.Hook.deregister(this, TableUtils.Hook.Keys.Row.Collapse, collapseRow, this);
120
-
121
- const oBinding = oTable.getBinding();
122
- if (oBinding) {
123
- oBinding.setAggregation();
124
- }
125
90
  };
126
91
 
127
- /**
128
- * Resets the cell content visibility settings of the columns in the table to the defaults.
129
- *
130
- * @param {sap.ui.table.plugins.V4Aggregation} oPlugin The instance of the plugin.
131
- */
132
- function resetCellContentVisibilitySettings(oPlugin) {
133
- const oTable = oPlugin.getTable();
134
-
135
- if (oTable) {
136
- oTable.getColumns().forEach(function(oColumn) {
137
- oColumn._setCellContentVisibilitySettings();
138
- });
139
- }
140
- }
141
-
142
- /**
143
- * Updates the cell content visibility settings of the columns in the table.
144
- *
145
- * @param {sap.ui.table.plugins.V4Aggregation} oPlugin The instance of the plugin.
146
- */
147
- function updateCellContentVisibilitySettings(oPlugin) {
148
- const oTable = oPlugin.getTable();
149
- const sGroupSummary = oPlugin.getGroupSummary();
150
-
151
- if (!oTable || !oPlugin._mColumnState) {
152
- return;
153
- }
154
-
155
- oTable.getColumns().forEach(function(oColumn) {
156
- const mColumnState = oPlugin._mColumnState[oColumn.getId()];
157
-
158
- if (mColumnState) {
159
- oColumn._setCellContentVisibilitySettings({
160
- groupHeader: {
161
- expanded: !!mColumnState.subtotals && (sGroupSummary === "Top" || sGroupSummary === "TopAndBottom"),
162
- collapsed: !!mColumnState.subtotals && (sGroupSummary === "Bottom" || sGroupSummary === "TopAndBottom")
163
- },
164
- summary: {
165
- group: !!mColumnState.subtotals,
166
- total: !!mColumnState.grandTotal
167
- }
168
- });
169
- } else {
170
- oColumn._setCellContentVisibilitySettings();
171
- }
172
- });
173
- }
174
-
175
92
  /**
176
93
  * @override
177
94
  * @inheritDoc
@@ -187,16 +104,20 @@ sap.ui.define([
187
104
  }
188
105
  };
189
106
 
190
- /**
191
- * @override
192
- * @inheritDoc
193
- */
194
- V4Aggregation.prototype.onTableBindRows = function(oBindingInfo) {
195
- oBindingInfo.parameters = oBindingInfo.parameters || {};
196
- oBindingInfo.parameters.$$aggregation = this.getAggregationInfo();
107
+ V4Aggregation.prototype.declareColumnsHavingTotals = function(aColumnsWithTotals) {
108
+ const aColumns = this.getTable()?.getColumns() ?? [];
109
+
110
+ for (const oColumn of aColumns) {
111
+ const bHasTotals = aColumnsWithTotals.includes(oColumn);
112
+
113
+ oColumn._setCellContentVisibilitySettings({
114
+ groupHeader: bHasTotals,
115
+ summary: bHasTotals
116
+ });
117
+ }
197
118
  };
198
119
 
199
- V4Aggregation.prototype.updateRowState = function(oState) {
120
+ function updateRowState(oState) {
200
121
  const iLevel = oState.context.getProperty("@$ui5.node.level");
201
122
  const bContainsTotals = oState.context.getProperty("@$ui5.node.isTotal");
202
123
  const bIsLeaf = oState.context.getProperty("@$ui5.node.isExpanded") === undefined;
@@ -210,234 +131,27 @@ sap.ui.define([
210
131
 
211
132
  if (bIsGrandTotal || bIsGroupTotal) {
212
133
  oState.type = oState.Type.Summary;
213
- oState.level++;
134
+ oState.level = iLevel + 1;
214
135
  } else if (bIsGroupHeader) {
215
136
  oState.type = oState.Type.GroupHeader;
216
137
  }
217
138
 
218
139
  if (bIsGroupHeader) {
219
- const mGroupLevelInfo = this._aGroupLevels[iLevel - 1];
220
- const fnGroupHeaderFormatter = this.getGroupHeaderFormatter();
221
- const sCustomGroupHeaderTitle = fnGroupHeaderFormatter ? fnGroupHeaderFormatter(oState.context, mGroupLevelInfo.property.key) : undefined;
222
-
223
- if (sCustomGroupHeaderTitle === undefined) {
224
- oState.title = defaultGroupHeaderFormatter(oState.context, mGroupLevelInfo);
225
- } else if (typeof sCustomGroupHeaderTitle !== "string") {
226
- throw new Error("The group header title must be a string or undefined");
227
- } else {
228
- oState.title = sCustomGroupHeaderTitle;
229
- }
230
- }
231
- };
232
-
233
- V4Aggregation.prototype.setPropertyInfos = function(aPropertyInfos) {
234
- this._aPropertyInfos = aPropertyInfos;
235
- };
236
-
237
- V4Aggregation.prototype.getPropertyInfos = function() {
238
- return this._aPropertyInfos || [];
239
- };
240
-
241
- /**
242
- * Retrieves a propertyInfo by its key.
243
- *
244
- * @param {string} sPropertyKey key of the propertyInfo to be found
245
- * @returns {object|undefined} the property info with the corresponding key, or undefined
246
- */
247
- V4Aggregation.prototype.findPropertyInfo = function(sPropertyKey) {
248
- return this.getPropertyInfos().find(function(oPropertyInfo) {
249
- return oPropertyInfo.key === sPropertyKey;
250
- });
251
- };
252
-
253
- /**
254
- * Sets aggregation info and derives the query options to be passed to the table list binding.
255
- *
256
- * @param {object} oAggregateInfo An object holding the information needed for data aggregation
257
- * @param {string[]} oAggregateInfo.visible An array of property info names, containing the list of visible properties
258
- * @param {string[]} oAggregateInfo.groupLevels An array of groupable property info names used to determine group levels (visual grouping).
259
- * @param {string[]} oAggregateInfo.subtotals An array of aggregatable property info names for which the subtotals are displayed
260
- * @param {string[]} oAggregateInfo.grandTotal An array of aggregatable property info names for which the grand total is displayed
261
- * @param {object} [oAggregateInfo.columnState]
262
- * A key-value map, where the key is the column id, and the value is the column's state information.
263
- * The state is an object with the following keys:
264
- * - subtotals: boolean - Whether the cell content should be visible in subtotal rows
265
- * - grandTotal: boolean - Whether the cell content should be visible in grand total rows
266
- * @param {string} [oAggregateInfo.search]
267
- * A search string used to search transformation (see {@link sap.ui.model.odata.v4.ODataListBinding#setAggregation} for details)
268
- */
269
- V4Aggregation.prototype.setAggregationInfo = function(oAggregateInfo) {
270
- oAggregateInfo = Object.assign({
271
- columnState: {}
272
- }, oAggregateInfo);
273
-
274
- if (!Array.isArray(oAggregateInfo.visible)) {
275
- this._mGroup = undefined;
276
- this._mAggregate = undefined;
277
- this._aGroupLevels = undefined;
278
- this._sSearch = undefined;
279
- } else {
280
- const oAllUnitPropertyPaths = new Set();
281
- const oAllAdditionalPropertyPaths = new Set();
282
- const aVisiblePropertyKeys = oAggregateInfo.visible.concat(); // Copy
283
-
284
- // Always use keys in the properties to be grouped
285
- this._mGroup = this.getPropertyInfos().reduce(function(mGroup, oPropertyInfo) {
286
- if (oPropertyInfo.isKey) {
287
- mGroup[oPropertyInfo.path] = {};
288
- }
289
- return mGroup;
290
- }, {});
291
- this._mAggregate = {};
292
-
293
- // We need to consider groupLevels as visible properties, to add them in the query properly if they have additional properties
294
- if (oAggregateInfo.groupLevels) {
295
- oAggregateInfo.groupLevels.forEach(function(sGroupLevelName) {
296
- if (aVisiblePropertyKeys.indexOf(sGroupLevelName) < 0) {
297
- aVisiblePropertyKeys.push(sGroupLevelName);
298
- }
299
- });
300
- }
140
+ const sGroupHeaderPath = this.getTableBinding().getAggregation().groupLevels[iLevel - 1];
141
+ const fnCustomGroupHeaderFormatter = this.getGroupHeaderFormatter();
301
142
 
302
- for (const sPropertyKey of aVisiblePropertyKeys) {
303
- const oPropertyInfo = this.findPropertyInfo(sPropertyKey);
143
+ if (fnCustomGroupHeaderFormatter) {
144
+ const sCustomGroupHeaderTitle = fnCustomGroupHeaderFormatter(oState.context, sGroupHeaderPath);
304
145
 
305
- if (!oPropertyInfo || !oPropertyInfo.groupable && !oPropertyInfo.aggregatable) {
306
- continue;
146
+ if (typeof sCustomGroupHeaderTitle !== "string") {
147
+ throw new Error("The group header title must be a string");
307
148
  }
308
149
 
309
- // Skip text property if its id is visible.
310
- const oAdditionalProperty = this.findPropertyInfo(oPropertyInfo.additionalProperties?.[0]);
311
- if (oAdditionalProperty?.text === oPropertyInfo.key && aVisiblePropertyKeys.includes(oAdditionalProperty.key)) {
312
- continue;
313
- }
314
-
315
- // TODO: We cannot really support properties that are both groupable and aggregatable. Either text or unit will be missing. Let
316
- // property validation fail in MDC if both technicallyAggregatable and technicallyGroupable are true?
317
-
318
- if (oPropertyInfo.groupable) {
319
- this._mGroup[oPropertyInfo.path] = {};
320
- }
321
-
322
- if (oPropertyInfo.aggregatable) {
323
- this._mAggregate[oPropertyInfo.path] = {};
324
-
325
- if (oAggregateInfo.grandTotal && (oAggregateInfo.grandTotal.indexOf(oPropertyInfo.key) >= 0)) {
326
- this._mAggregate[oPropertyInfo.path].grandTotal = true;
327
- }
328
-
329
- if (oAggregateInfo.subtotals && (oAggregateInfo.subtotals.indexOf(oPropertyInfo.key) >= 0)) {
330
- this._mAggregate[oPropertyInfo.path].subtotals = true;
331
- }
332
-
333
- if (oPropertyInfo.unit) {
334
- const oUnitPropertyInfo = this.findPropertyInfo(oPropertyInfo.unit);
335
- if (oUnitPropertyInfo) {
336
- this._mAggregate[oPropertyInfo.path].unit = oUnitPropertyInfo.path;
337
- oAllUnitPropertyPaths.add(oUnitPropertyInfo.path);
338
- }
339
- }
340
-
341
- if (!oPropertyInfo.additionalProperties?.length && oPropertyInfo.aggregationDetails?.customAggregate?.contextDefiningProperties) {
342
- oPropertyInfo.aggregationDetails.customAggregate.contextDefiningProperties.forEach(function(sContextDefiningPropertyName) {
343
- const oDefiningPropertyInfo = this.findPropertyInfo(sContextDefiningPropertyName);
344
- if (oDefiningPropertyInfo) {
345
- this._mGroup[oDefiningPropertyInfo.path] = {};
346
- }
347
- }.bind(this));
348
- }
349
- }
350
-
351
- // Additional properties
352
- const aAdditionalPropertyPaths = getAdditionalPropertyPaths(this, oPropertyInfo);
353
-
354
- if (oPropertyInfo.aggregatable) {
355
- for (const sPropertyPath of aAdditionalPropertyPaths) {
356
- this._mGroup[sPropertyPath] = {};
357
- }
358
- } else if (oPropertyInfo.groupable && oPropertyInfo.path in this._mGroup) {
359
- this._mGroup[oPropertyInfo.path].additionally = aAdditionalPropertyPaths;
360
- aAdditionalPropertyPaths.forEach((sPath) => oAllAdditionalPropertyPaths.add(sPath));
361
- }
362
- }
363
-
364
- // Visual grouping (expandable groups)
365
- this._aGroupLevels = [];
366
- if (oAggregateInfo.groupLevels) {
367
- oAggregateInfo.groupLevels.forEach(function(sGroupLevelName) {
368
- const oGroupedPropertyInfo = this.findPropertyInfo(sGroupLevelName);
369
- if (oGroupedPropertyInfo) {
370
- this._aGroupLevels.push({
371
- property: oGroupedPropertyInfo,
372
- textProperty: this.findPropertyInfo(oGroupedPropertyInfo.text)
373
- });
374
- }
375
- }.bind(this));
376
- }
377
-
378
- // Sanitize the aggregation info
379
- for (const sPath in this._mGroup) {
380
- // A property may not be in both "group" and "aggregate".
381
- if (sPath in this._mAggregate) {
382
- if (this._mAggregate[sPath].grandTotal || this._mAggregate[sPath].subtotals) {
383
- delete this._mGroup[sPath];
384
- continue;
385
- } else {
386
- delete this._mAggregate[sPath];
387
- }
388
- }
389
-
390
- // A property may not be in "group" if it is in "group.additionally".
391
- if (oAllAdditionalPropertyPaths.has(sPath)) {
392
- delete this._mGroup[sPath];
393
- }
150
+ oState.title = sCustomGroupHeaderTitle;
151
+ } else {
152
+ oState.title = oState.context.getProperty(sGroupHeaderPath, true);
394
153
  }
395
-
396
- this._sSearch = oAggregateInfo.search;
397
154
  }
398
-
399
- this._mColumnState = oAggregateInfo.columnState;
400
- updateCellContentVisibilitySettings(this);
401
-
402
- this.updateAggregation();
403
- };
404
-
405
- V4Aggregation.prototype.getAggregationInfo = function() {
406
- if (!Object.keys(this._mGroup || {}).length && !Object.keys(this._mAggregate || {}).length) {
407
- return;
408
- }
409
-
410
- const mAggregation = {
411
- aggregate: deepClone(this._mAggregate),
412
- group: deepClone(this._mGroup),
413
- groupLevels: this._aGroupLevels ? this._aGroupLevels.map(function(mGroupLevelInfo) {
414
- return mGroupLevelInfo.property.path;
415
- }) : undefined,
416
- search: this._sSearch
417
- };
418
-
419
- if (mAggregation.aggregate) {
420
- handleGrandTotals(this, mAggregation);
421
- handleGroupTotals(this, mAggregation);
422
- }
423
-
424
- return mAggregation;
425
- };
426
-
427
- function getAdditionalPropertyPaths(oPlugin, oPropertyInfo) {
428
- const oPropertyPaths = new Set();
429
-
430
- if (oPropertyInfo.text) {
431
- const oTextPropertyInfo = oPlugin.findPropertyInfo(oPropertyInfo.text);
432
- oPropertyPaths.add(oTextPropertyInfo.path);
433
- }
434
-
435
- for (const sPropertyKey of oPropertyInfo.additionalProperties ?? []) {
436
- const oPropertyInfo = oPlugin.findPropertyInfo(sPropertyKey);
437
- oPropertyPaths.add(oPropertyInfo.path);
438
- }
439
-
440
- return Array.from(oPropertyPaths);
441
155
  }
442
156
 
443
157
  function expandRow(oRow) {
@@ -456,71 +170,5 @@ sap.ui.define([
456
170
  }
457
171
  }
458
172
 
459
- V4Aggregation.prototype.setTotalSummaryOnTop = function(sValue) {
460
- this.setProperty("totalSummaryOnTop", sValue, true);
461
- this.updateAggregation();
462
- };
463
-
464
- V4Aggregation.prototype.setTotalSummaryOnBottom = function(sValue) {
465
- this.setProperty("totalSummaryOnBottom", sValue, true);
466
- this.updateAggregation();
467
- };
468
-
469
- V4Aggregation.prototype.setGroupSummary = function(sValue) {
470
- this.setProperty("groupSummary", sValue, true);
471
- updateCellContentVisibilitySettings(this);
472
- this.updateAggregation();
473
- };
474
-
475
- V4Aggregation.prototype.updateAggregation = function() {
476
- const oBinding = this.getTableBinding();
477
- if (oBinding) {
478
- oBinding.setAggregation(this.getAggregationInfo());
479
- }
480
- };
481
-
482
- function handleGrandTotals(oPlugin, mAggregation) {
483
- const sTotalSummaryOnTop = oPlugin.getTotalSummaryOnTop();
484
- const sTotalSummaryOnBottom = oPlugin.getTotalSummaryOnBottom();
485
- const bShowTotalSummaryOnTop = sTotalSummaryOnTop === "On" || sTotalSummaryOnTop === "Fixed";
486
- const bShowTotalSummaryOnBottom = sTotalSummaryOnBottom === "On" || sTotalSummaryOnBottom === "Fixed";
487
- const bHasGrandTotals = Object.keys(mAggregation.aggregate).some(function(sKey) {
488
- return mAggregation.aggregate[sKey].grandTotal;
489
- });
490
-
491
- if (bShowTotalSummaryOnTop && bShowTotalSummaryOnBottom) {
492
- mAggregation.grandTotalAtBottomOnly = false;
493
- } else if (bShowTotalSummaryOnBottom) {
494
- mAggregation.grandTotalAtBottomOnly = true;
495
- } else if (bShowTotalSummaryOnTop) {
496
- mAggregation.grandTotalAtBottomOnly = undefined;
497
- } else {
498
- Object.keys(mAggregation.aggregate).forEach(function(sKey) {
499
- delete mAggregation.aggregate[sKey].grandTotal;
500
- });
501
- }
502
-
503
- oPlugin.setRowCountConstraints({
504
- fixedTop: sTotalSummaryOnTop === "Fixed" && bHasGrandTotals,
505
- fixedBottom: sTotalSummaryOnBottom === "Fixed" && bHasGrandTotals
506
- });
507
- }
508
-
509
- function handleGroupTotals(oPlugin, mAggregation) {
510
- const sGroupSummary = oPlugin.getGroupSummary();
511
-
512
- if (sGroupSummary === "Top") {
513
- mAggregation.subtotalsAtBottomOnly = undefined;
514
- } else if (sGroupSummary === "Bottom") {
515
- mAggregation.subtotalsAtBottomOnly = true;
516
- } else if (sGroupSummary === "TopAndBottom") {
517
- mAggregation.subtotalsAtBottomOnly = false;
518
- } else {
519
- Object.keys(mAggregation.aggregate).forEach(function(sKey) {
520
- delete mAggregation.aggregate[sKey].subtotals;
521
- });
522
- }
523
- }
524
-
525
173
  return V4Aggregation;
526
174
  });
@@ -38,7 +38,7 @@ sap.ui.define([
38
38
  * @public
39
39
  *
40
40
  * @author SAP SE
41
- * @version 1.130.0
41
+ * @version 1.131.0
42
42
  */
43
43
  const AutoRowMode = RowMode.extend("sap.ui.table.rowmodes.Auto", /** @lends sap.ui.table.rowmodes.Auto.prototype */ {
44
44
  metadata: {
@@ -27,7 +27,7 @@ sap.ui.define([
27
27
  * @public
28
28
  *
29
29
  * @author SAP SE
30
- * @version 1.130.0
30
+ * @version 1.131.0
31
31
  */
32
32
  const FixedRowMode = RowMode.extend("sap.ui.table.rowmodes.Fixed", /** @lends sap.ui.table.rowmodes.Fixed.prototype */ {
33
33
  metadata: {
@@ -38,7 +38,7 @@ sap.ui.define([
38
38
  * @public
39
39
  *
40
40
  * @author SAP SE
41
- * @version 1.130.0
41
+ * @version 1.131.0
42
42
  */
43
43
  const InteractiveRowMode = RowMode.extend("sap.ui.table.rowmodes.Interactive", /** @lends sap.ui.table.rowmodes.Interactive.prototype */ {
44
44
  metadata: {
@@ -37,7 +37,7 @@ sap.ui.define([
37
37
  * @public
38
38
  *
39
39
  * @author SAP SE
40
- * @version 1.130.0
40
+ * @version 1.131.0
41
41
  */
42
42
  const RowMode = Element.extend("sap.ui.table.rowmodes.RowMode", /** @lends sap.ui.table.rowmodes.RowMode.prototype */ {
43
43
  metadata: {
@@ -23,7 +23,7 @@ sap.ui.define([
23
23
  * @extends sap.ui.table.rowmodes.RowMode
24
24
  *
25
25
  * @author SAP SE
26
- * @version 1.130.0
26
+ * @version 1.131.0
27
27
  *
28
28
  * @constructor
29
29
  * @private
@@ -15,6 +15,8 @@
15
15
  @_sap_ui_table_RowHighlight_Indication06Color: @sapUiIndication6;
16
16
  @_sap_ui_table_RowHighlight_Indication07Color: @sapUiIndication7;
17
17
  @_sap_ui_table_RowHighlight_Indication08Color: @sapUiIndication8;
18
+ @_sap_ui_table_RowHighlight_Indication09Color: @sapUiIndication9;
19
+ @_sap_ui_table_RowHighlight_Indication10Color: @sapUiIndication10;
18
20
 
19
21
  .sapUiTableRowHighlight {
20
22
  height: 100%;
@@ -77,4 +79,12 @@
77
79
  &.sapUiTableRowHighlightIndication08 {
78
80
  background-color: @_sap_ui_table_RowHighlight_Indication08Color;
79
81
  }
82
+
83
+ &.sapUiTableRowHighlightIndication09 {
84
+ background-color: @_sap_ui_table_RowHighlight_Indication09Color;
85
+ }
86
+
87
+ &.sapUiTableRowHighlightIndication10 {
88
+ background-color: @_sap_ui_table_RowHighlight_Indication10Color;
89
+ }
80
90
  }
@@ -126,7 +126,6 @@
126
126
  display: block !important; /* otherwise will be overwritten by icon css rules in RTL */
127
127
  position: absolute;
128
128
  width: 100%;
129
- vertical-align: baseline;
130
129
  font-size: @_sap_ui_table_RowSelection_CheckBoxIconSizeCozy;
131
130
  line-height: @_sap_ui_table_RowSelection_CheckBoxSizeCozy;
132
131
  bottom: calc(~"(" @_sap_ui_table_ColumnHeaderHeight ~"-" @_sap_ui_table_RowSelection_CheckBoxSizeCozy ~") / 2");
@@ -134,6 +133,10 @@
134
133
  .sapUiSizeCozy & {
135
134
  bottom: calc(~"(" @_sap_ui_table_ColumnHeaderHeightCozy ~"-" @_sap_ui_table_RowSelection_CheckBoxSizeCozy ~") / 2");
136
135
  }
136
+
137
+ .sapUiTableRowHighlights.sapUiTableRowSelectors & {
138
+ padding: 0 calc(~"(" @_sap_ui_table_RowHighlightWidth ~") / 2");
139
+ }
137
140
  }
138
141
 
139
142
  &:active {
@@ -216,7 +216,7 @@ sap.ui.define([
216
216
  * Static collection of utility functions related to the sap.ui.table.Table, ...
217
217
  *
218
218
  * @author SAP SE
219
- * @version 1.130.0
219
+ * @version 1.131.0
220
220
  * @namespace
221
221
  * @alias sap.ui.table.utils.TableUtils
222
222
  * @private
@@ -14,7 +14,7 @@ sap.ui.define([], function() {
14
14
  * Note: Do not access the functions of this helper directly, but via <code>sap.ui.table.utils.TableUtils.Binding...</code>
15
15
  *
16
16
  * @author SAP SE
17
- * @version 1.130.0
17
+ * @version 1.131.0
18
18
  * @namespace
19
19
  * @alias sap.ui.table.utils._BindingUtils
20
20
  * @private
@@ -18,7 +18,7 @@ sap.ui.define([
18
18
  * Note: Do not access the functions of this helper directly, but via <code>sap.ui.table.utils.TableUtils.Column...</code>
19
19
  *
20
20
  * @author SAP SE
21
- * @version 1.130.0
21
+ * @version 1.131.0
22
22
  * @namespace
23
23
  * @alias sap.ui.table.utils._ColumnUtils
24
24
  * @private
@@ -24,7 +24,7 @@ sap.ui.define([
24
24
  * Note: Do not access the functions of this helper directly, but via <code>sap.ui.table.utils.TableUtils.Grouping...</code>
25
25
  *
26
26
  * @author SAP SE
27
- * @version 1.130.0
27
+ * @version 1.131.0
28
28
  * @namespace
29
29
  * @alias sap.ui.table.utils._GroupingUtils
30
30
  * @private
@@ -22,7 +22,7 @@ sap.ui.define(["sap/ui/base/DataType", "sap/ui/model/ChangeReason"], function(Da
22
22
  * - There is no concept for public or protected hooks. Never expose a hook directly, only indirectly as can be seen in the examples.
23
23
  *
24
24
  * @author SAP SE
25
- * @version 1.130.0
25
+ * @version 1.131.0
26
26
  * @namespace
27
27
  * @alias sap.ui.table.utils._HookUtils
28
28
  *
@@ -42,7 +42,7 @@ sap.ui.define([
42
42
  * Note: Do not access the functions of this helper directly, but via <code>sap.ui.table.utils.TableUtils.Menu...</code>
43
43
  *
44
44
  * @author SAP SE
45
- * @version 1.130.0
45
+ * @version 1.131.0
46
46
  * @namespace
47
47
  * @alias sap.ui.table.utils._MenuUtils
48
48
  * @private