@openui5/sap.ui.table 1.138.0 → 1.140.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 (156) hide show
  1. package/README.md +1 -1
  2. package/REUSE.toml +8 -1
  3. package/THIRDPARTY.txt +72 -66
  4. package/package.json +4 -4
  5. package/src/sap/ui/table/.library +1 -1
  6. package/src/sap/ui/table/AnalyticalColumn.js +1 -1
  7. package/src/sap/ui/table/AnalyticalColumnMenu.js +1 -1
  8. package/src/sap/ui/table/AnalyticalTable.js +5 -9
  9. package/src/sap/ui/table/Column.js +1 -1
  10. package/src/sap/ui/table/ColumnMenu.js +1 -1
  11. package/src/sap/ui/table/CreationRow.js +1 -1
  12. package/src/sap/ui/table/Row.js +1 -1
  13. package/src/sap/ui/table/RowAction.js +1 -1
  14. package/src/sap/ui/table/RowActionItem.js +1 -1
  15. package/src/sap/ui/table/RowSettings.js +1 -1
  16. package/src/sap/ui/table/Table.js +7 -16
  17. package/src/sap/ui/table/TablePersoController.js +1 -1
  18. package/src/sap/ui/table/TableRenderer.js +2 -8
  19. package/src/sap/ui/table/TreeTable.js +2 -2
  20. package/src/sap/ui/table/extensions/Accessibility.js +55 -58
  21. package/src/sap/ui/table/extensions/AccessibilityRender.js +2 -2
  22. package/src/sap/ui/table/extensions/DragAndDrop.js +2 -2
  23. package/src/sap/ui/table/extensions/ExtensionBase.js +3 -33
  24. package/src/sap/ui/table/extensions/Keyboard.js +3 -3
  25. package/src/sap/ui/table/extensions/KeyboardDelegate.js +13 -26
  26. package/src/sap/ui/table/extensions/Pointer.js +2 -3
  27. package/src/sap/ui/table/extensions/Scrolling.js +2 -2
  28. package/src/sap/ui/table/extensions/ScrollingIOS.js +1 -1
  29. package/src/sap/ui/table/extensions/Synchronization.js +2 -2
  30. package/src/sap/ui/table/i18n/interaction.xml +4 -4
  31. package/src/sap/ui/table/i18n/interaction_ar.xml +23 -20
  32. package/src/sap/ui/table/i18n/interaction_bg.xml +8 -5
  33. package/src/sap/ui/table/i18n/interaction_ca.xml +8 -5
  34. package/src/sap/ui/table/i18n/interaction_cnr.xml +8 -5
  35. package/src/sap/ui/table/i18n/interaction_cs.xml +10 -7
  36. package/src/sap/ui/table/i18n/interaction_cy.xml +9 -6
  37. package/src/sap/ui/table/i18n/interaction_da.xml +8 -5
  38. package/src/sap/ui/table/i18n/interaction_de.xml +9 -6
  39. package/src/sap/ui/table/i18n/interaction_el.xml +8 -5
  40. package/src/sap/ui/table/i18n/interaction_en.xml +8 -5
  41. package/src/sap/ui/table/i18n/interaction_en_GB.xml +8 -5
  42. package/src/sap/ui/table/i18n/interaction_en_US_saprigi.xml +3 -3
  43. package/src/sap/ui/table/i18n/interaction_es.xml +8 -5
  44. package/src/sap/ui/table/i18n/interaction_es_MX.xml +8 -5
  45. package/src/sap/ui/table/i18n/interaction_et.xml +8 -5
  46. package/src/sap/ui/table/i18n/interaction_fi.xml +8 -5
  47. package/src/sap/ui/table/i18n/interaction_fr.xml +9 -6
  48. package/src/sap/ui/table/i18n/interaction_fr_CA.xml +8 -5
  49. package/src/sap/ui/table/i18n/interaction_hi.xml +8 -5
  50. package/src/sap/ui/table/i18n/interaction_hr.xml +14 -11
  51. package/src/sap/ui/table/i18n/interaction_hu.xml +8 -5
  52. package/src/sap/ui/table/i18n/interaction_id.xml +9 -6
  53. package/src/sap/ui/table/i18n/interaction_it.xml +9 -6
  54. package/src/sap/ui/table/i18n/interaction_iw.xml +15 -12
  55. package/src/sap/ui/table/i18n/interaction_ja.xml +9 -6
  56. package/src/sap/ui/table/i18n/interaction_kk.xml +10 -7
  57. package/src/sap/ui/table/i18n/interaction_ko.xml +8 -5
  58. package/src/sap/ui/table/i18n/interaction_lt.xml +8 -5
  59. package/src/sap/ui/table/i18n/interaction_lv.xml +8 -5
  60. package/src/sap/ui/table/i18n/interaction_mk.xml +10 -7
  61. package/src/sap/ui/table/i18n/interaction_ms.xml +8 -5
  62. package/src/sap/ui/table/i18n/interaction_nl.xml +10 -7
  63. package/src/sap/ui/table/i18n/interaction_no.xml +8 -5
  64. package/src/sap/ui/table/i18n/interaction_pl.xml +10 -7
  65. package/src/sap/ui/table/i18n/interaction_pt.xml +8 -5
  66. package/src/sap/ui/table/i18n/interaction_pt_PT.xml +8 -5
  67. package/src/sap/ui/table/i18n/interaction_ro.xml +8 -5
  68. package/src/sap/ui/table/i18n/interaction_ru.xml +8 -5
  69. package/src/sap/ui/table/i18n/interaction_sh.xml +8 -5
  70. package/src/sap/ui/table/i18n/interaction_sk.xml +8 -5
  71. package/src/sap/ui/table/i18n/interaction_sl.xml +9 -6
  72. package/src/sap/ui/table/i18n/interaction_sr.xml +8 -5
  73. package/src/sap/ui/table/i18n/interaction_sv.xml +8 -5
  74. package/src/sap/ui/table/i18n/interaction_th.xml +11 -8
  75. package/src/sap/ui/table/i18n/interaction_tr.xml +8 -5
  76. package/src/sap/ui/table/i18n/interaction_uk.xml +8 -5
  77. package/src/sap/ui/table/i18n/interaction_vi.xml +8 -5
  78. package/src/sap/ui/table/i18n/interaction_zh_CN.xml +8 -5
  79. package/src/sap/ui/table/i18n/interaction_zh_TW.xml +12 -9
  80. package/src/sap/ui/table/library.js +27 -11
  81. package/src/sap/ui/table/menus/AnalyticalTableContextMenu.js +1 -1
  82. package/src/sap/ui/table/menus/ColumnHeaderMenuAdapter.js +1 -1
  83. package/src/sap/ui/table/menus/ContextMenu.js +1 -1
  84. package/src/sap/ui/table/menus/MobileColumnHeaderMenuAdapter.js +2 -2
  85. package/src/sap/ui/table/messagebundle.properties +7 -0
  86. package/src/sap/ui/table/messagebundle_ar.properties +5 -0
  87. package/src/sap/ui/table/messagebundle_bg.properties +5 -0
  88. package/src/sap/ui/table/messagebundle_ca.properties +5 -0
  89. package/src/sap/ui/table/messagebundle_cnr.properties +5 -0
  90. package/src/sap/ui/table/messagebundle_cs.properties +7 -2
  91. package/src/sap/ui/table/messagebundle_cy.properties +6 -1
  92. package/src/sap/ui/table/messagebundle_da.properties +5 -0
  93. package/src/sap/ui/table/messagebundle_de.properties +11 -6
  94. package/src/sap/ui/table/messagebundle_el.properties +5 -0
  95. package/src/sap/ui/table/messagebundle_en.properties +5 -0
  96. package/src/sap/ui/table/messagebundle_en_GB.properties +5 -0
  97. package/src/sap/ui/table/messagebundle_en_US_saprigi.properties +5 -0
  98. package/src/sap/ui/table/messagebundle_es.properties +6 -1
  99. package/src/sap/ui/table/messagebundle_es_MX.properties +5 -0
  100. package/src/sap/ui/table/messagebundle_et.properties +5 -0
  101. package/src/sap/ui/table/messagebundle_fi.properties +6 -1
  102. package/src/sap/ui/table/messagebundle_fr.properties +7 -2
  103. package/src/sap/ui/table/messagebundle_fr_CA.properties +7 -2
  104. package/src/sap/ui/table/messagebundle_hi.properties +5 -0
  105. package/src/sap/ui/table/messagebundle_hr.properties +5 -0
  106. package/src/sap/ui/table/messagebundle_hu.properties +5 -0
  107. package/src/sap/ui/table/messagebundle_id.properties +7 -2
  108. package/src/sap/ui/table/messagebundle_it.properties +5 -0
  109. package/src/sap/ui/table/messagebundle_iw.properties +5 -0
  110. package/src/sap/ui/table/messagebundle_ja.properties +6 -1
  111. package/src/sap/ui/table/messagebundle_kk.properties +5 -0
  112. package/src/sap/ui/table/messagebundle_ko.properties +5 -0
  113. package/src/sap/ui/table/messagebundle_lt.properties +5 -0
  114. package/src/sap/ui/table/messagebundle_lv.properties +8 -3
  115. package/src/sap/ui/table/messagebundle_mk.properties +7 -2
  116. package/src/sap/ui/table/messagebundle_ms.properties +7 -2
  117. package/src/sap/ui/table/messagebundle_nl.properties +6 -1
  118. package/src/sap/ui/table/messagebundle_no.properties +5 -0
  119. package/src/sap/ui/table/messagebundle_pl.properties +5 -0
  120. package/src/sap/ui/table/messagebundle_pt.properties +5 -0
  121. package/src/sap/ui/table/messagebundle_pt_PT.properties +6 -1
  122. package/src/sap/ui/table/messagebundle_ro.properties +7 -2
  123. package/src/sap/ui/table/messagebundle_ru.properties +10 -5
  124. package/src/sap/ui/table/messagebundle_sh.properties +5 -0
  125. package/src/sap/ui/table/messagebundle_sk.properties +5 -0
  126. package/src/sap/ui/table/messagebundle_sl.properties +5 -0
  127. package/src/sap/ui/table/messagebundle_sr.properties +5 -0
  128. package/src/sap/ui/table/messagebundle_sv.properties +5 -0
  129. package/src/sap/ui/table/messagebundle_th.properties +5 -0
  130. package/src/sap/ui/table/messagebundle_tr.properties +5 -0
  131. package/src/sap/ui/table/messagebundle_uk.properties +5 -0
  132. package/src/sap/ui/table/messagebundle_vi.properties +5 -0
  133. package/src/sap/ui/table/messagebundle_zh_CN.properties +5 -0
  134. package/src/sap/ui/table/messagebundle_zh_TW.properties +7 -2
  135. package/src/sap/ui/table/plugins/BindingSelection.js +1 -1
  136. package/src/sap/ui/table/plugins/MultiSelectionPlugin.js +24 -11
  137. package/src/sap/ui/table/plugins/{V4Aggregation.js → ODataV4Aggregation.js} +51 -70
  138. package/src/sap/ui/table/plugins/ODataV4Hierarchy.js +91 -0
  139. package/src/sap/ui/table/plugins/ODataV4MultiLevel.js +100 -0
  140. package/src/sap/ui/table/plugins/ODataV4MultiSelection.js +489 -0
  141. package/src/sap/ui/table/plugins/ODataV4Selection.js +51 -419
  142. package/src/sap/ui/table/plugins/ODataV4SingleSelection.js +120 -0
  143. package/src/sap/ui/table/plugins/PluginBase.js +1 -1
  144. package/src/sap/ui/table/plugins/SelectionModelSelection.js +1 -1
  145. package/src/sap/ui/table/plugins/SelectionPlugin.js +18 -16
  146. package/src/sap/ui/table/rowmodes/Auto.js +1 -1
  147. package/src/sap/ui/table/rowmodes/Fixed.js +1 -1
  148. package/src/sap/ui/table/rowmodes/Interactive.js +1 -1
  149. package/src/sap/ui/table/rowmodes/RowMode.js +1 -1
  150. package/src/sap/ui/table/rowmodes/Variable.js +1 -1
  151. package/src/sap/ui/table/utils/TableUtils.js +1 -1
  152. package/src/sap/ui/table/utils/_ColumnUtils.js +13 -11
  153. package/src/sap/ui/table/utils/_GroupingUtils.js +1 -1
  154. package/src/sap/ui/table/utils/_HookUtils.js +1 -1
  155. package/src/sap/ui/table/utils/_MenuUtils.js +1 -1
  156. package/src/sap/ui/table/plugins/SelectionMode.js +0 -35
@@ -0,0 +1,120 @@
1
+ /*
2
+ * OpenUI5
3
+ * (c) Copyright 2025 SAP SE or an SAP affiliate company.
4
+ * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
+ */
6
+ sap.ui.define([
7
+ "./ODataV4Selection",
8
+ "./PluginBase",
9
+ "../utils/TableUtils",
10
+ "../library"
11
+ ], function(
12
+ ODataV4Selection,
13
+ PluginBase,
14
+ TableUtils,
15
+ library
16
+ ) {
17
+ "use strict";
18
+
19
+ /**
20
+ * @class
21
+ * Integrates the selection of the {@link sap.ui.model.odata.v4.ODataListBinding} and the table. Works only in combination with a
22
+ * {@link sap.ui.model.odata.v4.ODataModel}.
23
+ * The selection of multiple contexts is not allowed. Only one context can be selected at a time.
24
+ *
25
+ * The selection of a context that is not selectable is not allowed.
26
+ * The following contexts are not selectable:
27
+ * <ul>
28
+ * <li>Header context</li>
29
+ * <li>Contexts that represent group headers</li>
30
+ * <li>Contexts that contain totals</li>
31
+ * </ul>
32
+ *
33
+ * All binding-related limitations also apply in the context of this plugin. For details, see {@link sap.ui.model.odata.v4.Context#setSelected}
34
+ * and {@link sap.ui.model.odata.v4.ODataModel#bindList}.
35
+ *
36
+ * @extends sap.ui.table.plugins.SelectionPlugin
37
+ *
38
+ * @author SAP SE
39
+ * @version 1.140.0
40
+ *
41
+ * @public
42
+ * @since 1.140
43
+ * @alias sap.ui.table.plugins.ODataV4SingleSelection
44
+ * @see {@link topic:ec55312f796f45e8883810af3b68b46c OData V4: Selection}
45
+ *
46
+ * @borrows sap.ui.table.plugins.PluginBase.findOn as findOn
47
+ */
48
+ const ODataV4SingleSelection = ODataV4Selection.extend("sap.ui.table.plugins.ODataV4SingleSelection", {
49
+ metadata: {
50
+ library: "sap.ui.table"
51
+ }
52
+ });
53
+
54
+ ODataV4SingleSelection.findOn = PluginBase.findOn;
55
+
56
+ /**
57
+ * @inheritDoc
58
+ */
59
+ ODataV4SingleSelection.prototype.onActivate = function(oTable) {
60
+ ODataV4Selection.prototype.onActivate.apply(this, arguments);
61
+ oTable.setProperty("selectionMode", library.SelectionMode.Single);
62
+ };
63
+
64
+ /**
65
+ * @inheritDoc
66
+ */
67
+ ODataV4SingleSelection.prototype.onDeactivate = function(oTable) {
68
+ ODataV4Selection.prototype.onDeactivate.apply(this, arguments);
69
+ oTable.setProperty("selectionMode", library.SelectionMode.None);
70
+ };
71
+
72
+ /**
73
+ * @inheritDoc
74
+ */
75
+ ODataV4SingleSelection.prototype.setSelected = function(oRow, bSelected, mConfig) {
76
+ const oContext = TableUtils.getBindingContextOfRow(oRow);
77
+
78
+ if (!this.isActive() || !oContext || !this.isContextSelectable(oContext) || this.isSelected(oRow) === bSelected) {
79
+ return;
80
+ }
81
+
82
+ if (bSelected) {
83
+ this.clearSelection();
84
+ }
85
+
86
+ oContext.setSelected(bSelected);
87
+ };
88
+
89
+ /**
90
+ * @inheritDoc
91
+ */
92
+ ODataV4SingleSelection.prototype.validateSelection = function(aContextsToValidate) {
93
+ ODataV4Selection.prototype.validateSelection.apply(this, arguments);
94
+
95
+ if (this.getSelectedCount() > 1) {
96
+ throw new Error("Multiple contexts selected");
97
+ }
98
+ };
99
+
100
+ /**
101
+ * Returns the selected context.
102
+ *
103
+ * @returns {sap.ui.model.odata.v4.Context} The selected context
104
+ * @public
105
+ */
106
+ ODataV4SingleSelection.prototype.getSelectedContext = function() {
107
+ return this.getSelectedContexts()[0];
108
+ };
109
+
110
+ /**
111
+ * Clears the selection.
112
+ *
113
+ * @public
114
+ * @name sap.ui.table.plugins.ODataV4SingleSelection#clearSelection
115
+ * @function
116
+ */
117
+ // Inherited from ODataV4Selection
118
+
119
+ return ODataV4SingleSelection;
120
+ });
@@ -19,7 +19,7 @@ sap.ui.define([
19
19
  * @extends sap.ui.core.Element
20
20
  *
21
21
  * @author SAP SE
22
- * @version 1.138.0
22
+ * @version 1.140.0
23
23
  *
24
24
  * @private
25
25
  * @experimental Since 1.75
@@ -26,7 +26,7 @@ sap.ui.define([
26
26
  * @extends sap.ui.table.plugins.SelectionPlugin
27
27
  *
28
28
  * @author SAP SE
29
- * @version 1.138.0
29
+ * @version 1.140.0
30
30
  *
31
31
  * @private
32
32
  * @alias sap.ui.table.plugins.SelectionModelSelection
@@ -21,7 +21,7 @@ sap.ui.define([
21
21
  * @extends sap.ui.core.Element
22
22
  *
23
23
  * @author SAP SE
24
- * @version 1.138.0
24
+ * @version 1.140.0
25
25
  *
26
26
  * @public
27
27
  * @since 1.64
@@ -29,22 +29,24 @@ sap.ui.define([
29
29
  *
30
30
  * @borrows sap.ui.table.plugins.PluginBase.findOn as findOn
31
31
  */
32
- const SelectionPlugin = PluginBase.extend("sap.ui.table.plugins.SelectionPlugin", {metadata: {
33
- "abstract": true,
34
- library: "sap.ui.table",
35
- properties: {
36
- /**
37
- * Indicates whether this plugin is enabled.
38
- */
39
- enabled: {type: "boolean", defaultValue: true} // TODO: Inherited from private PluginBase. Remove once PluginBase is public.
40
- },
41
- events: {
42
- /**
43
- * This event is fired when the selection is changed.
44
- */
45
- selectionChange: {}
32
+ const SelectionPlugin = PluginBase.extend("sap.ui.table.plugins.SelectionPlugin", {
33
+ metadata: {
34
+ "abstract": true,
35
+ library: "sap.ui.table",
36
+ properties: {
37
+ /**
38
+ * Indicates whether this plugin is enabled.
39
+ */
40
+ enabled: {type: "boolean", defaultValue: true} // TODO: Inherited from private PluginBase. Remove once PluginBase is public.
41
+ },
42
+ events: {
43
+ /**
44
+ * This event is fired when the selection is changed.
45
+ */
46
+ selectionChange: {}
47
+ }
46
48
  }
47
- }});
49
+ });
48
50
 
49
51
  SelectionPlugin.findOn = PluginBase.findOn;
50
52
 
@@ -38,7 +38,7 @@ sap.ui.define([
38
38
  * @public
39
39
  *
40
40
  * @author SAP SE
41
- * @version 1.138.0
41
+ * @version 1.140.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.138.0
30
+ * @version 1.140.0
31
31
  */
32
32
  const FixedRowMode = RowMode.extend("sap.ui.table.rowmodes.Fixed", /** @lends sap.ui.table.rowmodes.Fixed.prototype */ {
33
33
  metadata: {
@@ -40,7 +40,7 @@ sap.ui.define([
40
40
  * @public
41
41
  *
42
42
  * @author SAP SE
43
- * @version 1.138.0
43
+ * @version 1.140.0
44
44
  */
45
45
  const InteractiveRowMode = RowMode.extend("sap.ui.table.rowmodes.Interactive", /** @lends sap.ui.table.rowmodes.Interactive.prototype */ {
46
46
  metadata: {
@@ -37,7 +37,7 @@ sap.ui.define([
37
37
  * @public
38
38
  *
39
39
  * @author SAP SE
40
- * @version 1.138.0
40
+ * @version 1.140.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.138.0
26
+ * @version 1.140.0
27
27
  *
28
28
  * @constructor
29
29
  * @private
@@ -208,7 +208,7 @@ sap.ui.define([
208
208
  * Static collection of utility functions related to the sap.ui.table.Table, ...
209
209
  *
210
210
  * @author SAP SE
211
- * @version 1.138.0
211
+ * @version 1.140.0
212
212
  * @namespace
213
213
  * @alias sap.ui.table.utils.TableUtils
214
214
  * @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.138.0
21
+ * @version 1.140.0
22
22
  * @namespace
23
23
  * @alias sap.ui.table.utils._ColumnUtils
24
24
  * @private
@@ -333,13 +333,13 @@ sap.ui.define([
333
333
  // all columns which are somehow related to each other by spanning column headers are collected now.
334
334
  // It is time to calculate the boundaries, which is the start index and the end index in the columns aggregation
335
335
  // of the table
336
- let iColumnIndex = oTable.indexOfColumn(oColumnMapItem.column);
336
+ let iColumnIndex = oColumnMapItem.column.getIndex();
337
337
  const mBoundaries = {startColumn: oColumnMapItem.column, startIndex: iColumnIndex, endColumn: oColumnMapItem.column, endIndex: -1};
338
338
  const aColumns = oTable.getColumns();
339
339
  const aKeys = Object.getOwnPropertyNames(mColumns);
340
340
  for (let i = 0; i < aKeys.length; i++) {
341
341
  const oColumn = mColumns[aKeys[i]];
342
- iColumnIndex = oTable.indexOfColumn(oColumn);
342
+ iColumnIndex = oColumn.getIndex();
343
343
  const iHeaderSpan = ColumnUtils._getMaxHeaderSpan(oColumn);
344
344
  // start
345
345
  if (iColumnIndex < mBoundaries.startIndex) {
@@ -374,10 +374,11 @@ sap.ui.define([
374
374
  return false;
375
375
  }
376
376
 
377
- const iCurrentIndex = oTable.indexOfColumn(oColumn);
377
+ const iCurrentIndex = oColumn.getIndex();
378
378
 
379
- if (iCurrentIndex < oTable.getComputedFixedColumnCount() || iCurrentIndex < oTable._iFirstReorderableIndex) {
380
- // No movement of fixed columns or e.g. the first column in the TreeTable
379
+ if (iCurrentIndex < oTable.getComputedFixedColumnCount()
380
+ || ColumnUtils.TableUtils.Grouping.isInTreeMode(oTable) && oTable._getVisibleColumns()[0] === oColumn) {
381
+ // No movement of fixed columns or the first visible column in tree mode
381
382
  return false;
382
383
  }
383
384
 
@@ -399,7 +400,7 @@ sap.ui.define([
399
400
  */
400
401
  _normalizeColumnMoveTargetIndex: function(oColumn, iNewIndex) {
401
402
  const oTable = oColumn._getTable();
402
- const iCurrentIndex = oTable.indexOfColumn(oColumn);
403
+ const iCurrentIndex = oColumn.getIndex();
403
404
  const aColumns = oTable.getColumns();
404
405
 
405
406
  if (iNewIndex > iCurrentIndex) {
@@ -437,12 +438,13 @@ sap.ui.define([
437
438
 
438
439
  iNewIndex = ColumnUtils._normalizeColumnMoveTargetIndex(oColumn, iNewIndex);
439
440
 
440
- if (iNewIndex < oTable.getComputedFixedColumnCount() || iNewIndex < oTable._iFirstReorderableIndex) {
441
- // No movement of fixed columns or e.g. the first column in the TreeTable
441
+ if (iNewIndex < oTable.getComputedFixedColumnCount()
442
+ || ColumnUtils.TableUtils.Grouping.isInTreeMode(oTable) && iNewIndex <= oTable._getVisibleColumns()[0].getIndex()) {
443
+ // No movement inside the fixed columns area or the before the first visible column in tree mode
442
444
  return false;
443
445
  }
444
446
 
445
- const iCurrentIndex = oTable.indexOfColumn(oColumn);
447
+ const iCurrentIndex = oColumn.getIndex();
446
448
  const aColumns = oTable.getColumns();
447
449
 
448
450
  if (iNewIndex > iCurrentIndex) { // Column moved to higher index
@@ -479,7 +481,7 @@ sap.ui.define([
479
481
  }
480
482
 
481
483
  const oTable = oColumn._getTable();
482
- const iCurrentIndex = oTable.indexOfColumn(oColumn);
484
+ const iCurrentIndex = oColumn.getIndex();
483
485
 
484
486
  if (iNewIndex === iCurrentIndex) {
485
487
  return false;
@@ -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.138.0
27
+ * @version 1.140.0
28
28
  * @namespace
29
29
  * @alias sap.ui.table.utils._GroupingUtils
30
30
  * @private
@@ -21,7 +21,7 @@ sap.ui.define(["sap/ui/base/DataType", "sap/ui/model/ChangeReason"], function(Da
21
21
  * - There is no concept for public or protected hooks. Never expose a hook directly, only indirectly as can be seen in the examples.
22
22
  *
23
23
  * @author SAP SE
24
- * @version 1.138.0
24
+ * @version 1.140.0
25
25
  * @namespace
26
26
  * @alias sap.ui.table.utils._HookUtils
27
27
  *
@@ -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.Menu...</code>
15
15
  *
16
16
  * @author SAP SE
17
- * @version 1.138.0
17
+ * @version 1.140.0
18
18
  * @namespace
19
19
  * @alias sap.ui.table.utils._MenuUtils
20
20
  * @private
@@ -1,35 +0,0 @@
1
- /*!
2
- * OpenUI5
3
- * (c) Copyright 2025 SAP SE or an SAP affiliate company.
4
- * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
- */
6
- sap.ui.define(["sap/ui/base/DataType"], (DataType) => {
7
- "use strict";
8
-
9
- /**
10
- * Mode of a selection plugin.
11
- *
12
- * @enum {string}
13
- * @alias sap.ui.table.plugins.SelectionMode
14
- * @private
15
- */
16
- const SelectionMode = {
17
- /**
18
- * Only one row can be selected at a time.
19
- *
20
- * @public
21
- */
22
- Single: "Single",
23
-
24
- /**
25
- * Multiple rows can be selected.
26
- *
27
- * @public
28
- */
29
- MultiToggle: "MultiToggle"
30
- };
31
-
32
- DataType.registerEnum("sap.ui.table.plugins.SelectionMode", SelectionMode);
33
-
34
- return SelectionMode;
35
- });