@openui5/sap.ui.table 1.143.0 → 1.144.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.
- package/THIRDPARTY.txt +1 -1
- package/package.json +3 -3
- package/src/sap/ui/table/.library +2 -2
- package/src/sap/ui/table/AnalyticalColumn.js +2 -2
- package/src/sap/ui/table/AnalyticalColumnMenu.js +2 -2
- package/src/sap/ui/table/AnalyticalTable.js +2 -2
- package/src/sap/ui/table/Column.js +2 -2
- package/src/sap/ui/table/ColumnMenu.js +2 -2
- package/src/sap/ui/table/CreationRow.js +2 -2
- package/src/sap/ui/table/CreationRowRenderer.js +2 -2
- package/src/sap/ui/table/HeaderSelector.js +90 -0
- package/src/sap/ui/table/HeaderSelectorRenderer.js +88 -0
- package/src/sap/ui/table/Row.js +2 -2
- package/src/sap/ui/table/RowAction.js +2 -2
- package/src/sap/ui/table/RowActionItem.js +2 -2
- package/src/sap/ui/table/RowActionRenderer.js +1 -1
- package/src/sap/ui/table/RowSettings.js +2 -2
- package/src/sap/ui/table/Table.js +37 -60
- package/src/sap/ui/table/TablePersoController.js +2 -2
- package/src/sap/ui/table/TableRenderer.js +1624 -718
- package/src/sap/ui/table/TreeTable.js +2 -2
- package/src/sap/ui/table/designtime/AnalyticalTable.designtime.js +5 -1
- package/src/sap/ui/table/designtime/Table.designtime.js +5 -1
- package/src/sap/ui/table/designtime/library.designtime.js +1 -1
- package/src/sap/ui/table/designtime/messagebundle.properties +6 -0
- package/src/sap/ui/table/extensions/Accessibility.js +28 -53
- package/src/sap/ui/table/extensions/AccessibilityRender.js +3 -4
- package/src/sap/ui/table/extensions/DragAndDrop.js +2 -2
- package/src/sap/ui/table/extensions/ExtensionBase.js +2 -2
- package/src/sap/ui/table/extensions/Keyboard.js +5 -31
- package/src/sap/ui/table/extensions/KeyboardDelegate.js +2 -2
- package/src/sap/ui/table/extensions/Pointer.js +2 -2
- package/src/sap/ui/table/extensions/Scrolling.js +2 -10
- package/src/sap/ui/table/extensions/ScrollingIOS.js +2 -2
- package/src/sap/ui/table/extensions/Synchronization.js +16 -18
- package/src/sap/ui/table/library.js +11 -11
- package/src/sap/ui/table/library.support.js +1 -1
- package/src/sap/ui/table/menus/AnalyticalTableContextMenu.js +2 -2
- package/src/sap/ui/table/menus/ColumnHeaderMenuAdapter.js +2 -2
- package/src/sap/ui/table/menus/ContextMenu.js +2 -2
- package/src/sap/ui/table/menus/LegacyColumnMenuAdapter.js +1 -1
- package/src/sap/ui/table/menus/MobileColumnHeaderMenuAdapter.js +2 -2
- package/src/sap/ui/table/plugins/BindingSelection.js +27 -13
- package/src/sap/ui/table/plugins/MultiSelectionPlugin.js +63 -52
- package/src/sap/ui/table/plugins/ODataV4Aggregation.js +2 -2
- package/src/sap/ui/table/plugins/ODataV4Hierarchy.js +2 -2
- package/src/sap/ui/table/plugins/ODataV4MultiLevel.js +2 -2
- package/src/sap/ui/table/plugins/ODataV4MultiSelection.js +78 -71
- package/src/sap/ui/table/plugins/ODataV4Selection.js +2 -2
- package/src/sap/ui/table/plugins/ODataV4SingleSelection.js +2 -2
- package/src/sap/ui/table/plugins/PluginBase.js +2 -2
- package/src/sap/ui/table/plugins/SelectionModelSelection.js +26 -13
- package/src/sap/ui/table/plugins/SelectionPlugin.js +16 -14
- package/src/sap/ui/table/rowmodes/Auto.js +5 -13
- package/src/sap/ui/table/rowmodes/Fixed.js +3 -4
- package/src/sap/ui/table/rowmodes/Interactive.js +21 -27
- package/src/sap/ui/table/rowmodes/RowMode.js +20 -88
- package/src/sap/ui/table/rowmodes/Type.js +1 -1
- package/src/sap/ui/table/rowmodes/Variable.js +2 -2
- package/src/sap/ui/table/rules/Accessibility.support.js +1 -1
- package/src/sap/ui/table/rules/Binding.support.js +1 -1
- package/src/sap/ui/table/rules/ColumnTemplate.support.js +1 -1
- package/src/sap/ui/table/rules/Plugins.support.js +1 -1
- package/src/sap/ui/table/rules/Rows.support.js +1 -1
- package/src/sap/ui/table/rules/TableHelper.support.js +1 -1
- package/src/sap/ui/table/themes/base/Cell.less +26 -16
- package/src/sap/ui/table/themes/base/CheckBox.less +51 -0
- package/src/sap/ui/table/themes/base/HeaderSelector.less +61 -0
- package/src/sap/ui/table/themes/base/RowSelection.less +9 -138
- package/src/sap/ui/table/themes/base/library.source.less +3 -1
- package/src/sap/ui/table/themes/sap_hcb/base_Cell.less +1 -1
- package/src/sap/ui/table/themes/sap_hcb/base_RowSelection.less +1 -1
- package/src/sap/ui/table/themes/sap_hcb/library.source.less +1 -1
- package/src/sap/ui/table/utils/TableUtils.js +2 -2
- package/src/sap/ui/table/utils/_ColumnUtils.js +2 -2
- package/src/sap/ui/table/utils/_GroupingUtils.js +2 -2
- package/src/sap/ui/table/utils/_HookUtils.js +2 -2
- package/src/sap/ui/table/utils/_MenuUtils.js +2 -2
package/THIRDPARTY.txt
CHANGED
|
@@ -202,7 +202,7 @@ License: Apache-2.0
|
|
|
202
202
|
License Text: https://github.com/UI5/openui5/blob/master/LICENSES/Apache-2.0.txt
|
|
203
203
|
Contained in: src/sap.ui.core/src/sap/ui/thirdparty/caja-html-sanitizer.js
|
|
204
204
|
|
|
205
|
-
Component: Unicode Common Locale Data Repository, version:
|
|
205
|
+
Component: Unicode Common Locale Data Repository, version: 48.0.0
|
|
206
206
|
Copyright: 1991-2024 Unicode, Inc.
|
|
207
207
|
License: LicenseRef-Unicode-3.0
|
|
208
208
|
License Text: https://github.com/UI5/openui5/blob/master/LICENSES/LicenseRef-Unicode-3.0.txt
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openui5/sap.ui.table",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.144.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/UI5/openui5.git"
|
|
15
15
|
},
|
|
16
16
|
"dependencies": {
|
|
17
|
-
"@openui5/sap.ui.core": "1.
|
|
18
|
-
"@openui5/sap.ui.unified": "1.
|
|
17
|
+
"@openui5/sap.ui.core": "1.144.0",
|
|
18
|
+
"@openui5/sap.ui.unified": "1.144.0"
|
|
19
19
|
}
|
|
20
20
|
}
|
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
<name>sap.ui.table</name>
|
|
5
5
|
<vendor>SAP SE</vendor>
|
|
6
6
|
<copyright>OpenUI5
|
|
7
|
-
* (c) Copyright
|
|
7
|
+
* (c) Copyright 2026 SAP SE or an SAP affiliate company.
|
|
8
8
|
* Licensed under the Apache License, Version 2.0 - see LICENSE.txt.</copyright>
|
|
9
|
-
<version>1.
|
|
9
|
+
<version>1.144.0</version>
|
|
10
10
|
|
|
11
11
|
<documentation>Table-like controls, mainly for desktop scenarios.</documentation>
|
|
12
12
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* OpenUI5
|
|
3
|
-
* (c) Copyright
|
|
3
|
+
* (c) Copyright 2026 SAP SE or an SAP affiliate company.
|
|
4
4
|
* Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
|
|
5
5
|
*/
|
|
6
6
|
|
|
@@ -47,7 +47,7 @@ sap.ui.define([
|
|
|
47
47
|
* @extends sap.ui.table.Column
|
|
48
48
|
*
|
|
49
49
|
* @author SAP SE
|
|
50
|
-
* @version 1.
|
|
50
|
+
* @version 1.144.0
|
|
51
51
|
*
|
|
52
52
|
* @constructor
|
|
53
53
|
* @public
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* OpenUI5
|
|
3
|
-
* (c) Copyright
|
|
3
|
+
* (c) Copyright 2026 SAP SE or an SAP affiliate company.
|
|
4
4
|
* Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
|
|
5
5
|
*/
|
|
6
6
|
|
|
@@ -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.
|
|
23
|
+
* @version 1.144.0
|
|
24
24
|
*
|
|
25
25
|
* @constructor
|
|
26
26
|
* @public
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* OpenUI5
|
|
3
|
-
* (c) Copyright
|
|
3
|
+
* (c) Copyright 2026 SAP SE or an SAP affiliate company.
|
|
4
4
|
* Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
|
|
5
5
|
*/
|
|
6
6
|
|
|
@@ -52,7 +52,7 @@ sap.ui.define([
|
|
|
52
52
|
* @see {@link topic:148892ff9aea4a18b912829791e38f3e Tables: Which One Should I Choose?}
|
|
53
53
|
*
|
|
54
54
|
* @extends sap.ui.table.Table
|
|
55
|
-
* @version 1.
|
|
55
|
+
* @version 1.144.0
|
|
56
56
|
*
|
|
57
57
|
* @constructor
|
|
58
58
|
* @public
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* OpenUI5
|
|
3
|
-
* (c) Copyright
|
|
3
|
+
* (c) Copyright 2026 SAP SE or an SAP affiliate company.
|
|
4
4
|
* Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
|
|
5
5
|
*/
|
|
6
6
|
|
|
@@ -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.
|
|
66
|
+
* @version 1.144.0
|
|
67
67
|
*
|
|
68
68
|
* @constructor
|
|
69
69
|
* @public
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* OpenUI5
|
|
3
|
-
* (c) Copyright
|
|
3
|
+
* (c) Copyright 2026 SAP SE or an SAP affiliate company.
|
|
4
4
|
* Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
|
|
5
5
|
*/
|
|
6
6
|
|
|
@@ -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.
|
|
43
|
+
* @version 1.144.0
|
|
44
44
|
*
|
|
45
45
|
* @constructor
|
|
46
46
|
* @public
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* OpenUI5
|
|
3
|
-
* (c) Copyright
|
|
3
|
+
* (c) Copyright 2026 SAP SE or an SAP affiliate company.
|
|
4
4
|
* Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
|
|
5
5
|
*/
|
|
6
6
|
|
|
@@ -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.
|
|
35
|
+
* @version 1.144.0
|
|
36
36
|
*
|
|
37
37
|
* @constructor
|
|
38
38
|
* @private
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* OpenUI5
|
|
3
|
-
* (c) Copyright
|
|
3
|
+
* (c) Copyright 2026 SAP SE or an SAP affiliate company.
|
|
4
4
|
* Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
|
|
5
5
|
*/
|
|
6
6
|
|
|
@@ -219,7 +219,7 @@ sap.ui.define([
|
|
|
219
219
|
oRm.openStart("div");
|
|
220
220
|
oRm.class("sapUiTableCellInner");
|
|
221
221
|
oRm.openEnd();
|
|
222
|
-
TableRenderer.
|
|
222
|
+
TableRenderer.renderDataCellControl(oRm, oTable, oCell, {isFirstColumn: bIsFirstColumn});
|
|
223
223
|
oRm.close("div");
|
|
224
224
|
}
|
|
225
225
|
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* OpenUI5
|
|
3
|
+
* (c) Copyright 2026 SAP SE or an SAP affiliate company.
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
sap.ui.define([
|
|
8
|
+
"./HeaderSelectorRenderer",
|
|
9
|
+
"sap/ui/core/Control"
|
|
10
|
+
], function(
|
|
11
|
+
HeaderSelectorRenderer,
|
|
12
|
+
Control
|
|
13
|
+
) {
|
|
14
|
+
"use strict";
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Constructor for a new HeaderSelector.
|
|
18
|
+
*
|
|
19
|
+
* @param {string} [sId] ID for the new control, generated automatically if no ID is given
|
|
20
|
+
* @param {object} [mSettings] Initial settings for the new control
|
|
21
|
+
*
|
|
22
|
+
* @class
|
|
23
|
+
* The <code>HeaderSelector</code> control renders the header selector cell content.
|
|
24
|
+
* This control must only be used in the context of the <code>sap.ui.table.Table</code> control.
|
|
25
|
+
* It is managed by selection plugins which update its state based on the current selection.
|
|
26
|
+
*
|
|
27
|
+
* @extends sap.ui.core.Control
|
|
28
|
+
* @version 1.144.0
|
|
29
|
+
*
|
|
30
|
+
* @constructor
|
|
31
|
+
* @private
|
|
32
|
+
* @alias sap.ui.table.HeaderSelector
|
|
33
|
+
*/
|
|
34
|
+
const HeaderSelector = Control.extend("sap.ui.table.HeaderSelector", /** @lends sap.ui.table.HeaderSelector.prototype */ {
|
|
35
|
+
metadata: {
|
|
36
|
+
library: "sap.ui.table",
|
|
37
|
+
properties: {
|
|
38
|
+
/**
|
|
39
|
+
* Type of the header selector.
|
|
40
|
+
*
|
|
41
|
+
* "CheckBox" - Renders a checkbox.
|
|
42
|
+
* Supported properties: visible, enabled, tooltip (has default value based on selected state), selected
|
|
43
|
+
*
|
|
44
|
+
* "Icon" - Renders an icon.
|
|
45
|
+
* Supported properties: visible, enabled, tooltip, icon
|
|
46
|
+
*/
|
|
47
|
+
type: {type: "string", group: "Appearance", defaultValue: "CheckBox"},
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Whether the header selector is visible.
|
|
51
|
+
*/
|
|
52
|
+
visible: {type: "boolean", group: "Appearance", defaultValue: false},
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Whether the header selector is enabled.
|
|
56
|
+
*/
|
|
57
|
+
enabled: {type: "boolean", group: "Behavior", defaultValue: true},
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Whether the checkbox is selected.
|
|
61
|
+
*
|
|
62
|
+
* Only used if type is "CheckBox".
|
|
63
|
+
*/
|
|
64
|
+
checkBoxSelected: {type: "boolean", group: "Appearance", defaultValue: false},
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* Icon URI.
|
|
68
|
+
*
|
|
69
|
+
* Only used if type is "Icon".
|
|
70
|
+
*/
|
|
71
|
+
icon: {type: "sap.ui.core.URI", group: "Appearance", defaultValue: ""}
|
|
72
|
+
}
|
|
73
|
+
},
|
|
74
|
+
renderer: HeaderSelectorRenderer
|
|
75
|
+
});
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* Resets all properties to their default values.
|
|
79
|
+
*/
|
|
80
|
+
HeaderSelector.prototype.resetSettings = function() {
|
|
81
|
+
this.resetProperty("type");
|
|
82
|
+
this.resetProperty("visible");
|
|
83
|
+
this.resetProperty("enabled");
|
|
84
|
+
this.resetProperty("checkBoxSelected");
|
|
85
|
+
this.resetProperty("icon");
|
|
86
|
+
this.destroyTooltip();
|
|
87
|
+
};
|
|
88
|
+
|
|
89
|
+
return HeaderSelector;
|
|
90
|
+
});
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* OpenUI5
|
|
3
|
+
* (c) Copyright 2026 SAP SE or an SAP affiliate company.
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
// Provides default renderer for control sap.ui.table.HeaderSelector
|
|
8
|
+
sap.ui.define([
|
|
9
|
+
"./utils/TableUtils"
|
|
10
|
+
], function(
|
|
11
|
+
TableUtils
|
|
12
|
+
) {
|
|
13
|
+
"use strict";
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* HeaderSelector renderer.
|
|
17
|
+
* @namespace
|
|
18
|
+
*/
|
|
19
|
+
const HeaderSelectorRenderer = {
|
|
20
|
+
apiVersion: 2
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Renders the HTML for the given control, using the provided {@link sap.ui.core.RenderManager}.
|
|
25
|
+
*
|
|
26
|
+
* @param {sap.ui.core.RenderManager} rm RenderManager instance
|
|
27
|
+
* @param {sap.ui.table.HeaderSelector} oHeaderSelector HeaderSelector to be rendered
|
|
28
|
+
*/
|
|
29
|
+
HeaderSelectorRenderer.render = function(rm, oHeaderSelector) {
|
|
30
|
+
const sType = oHeaderSelector.getType();
|
|
31
|
+
const bVisible = oHeaderSelector.getVisible();
|
|
32
|
+
let sTooltip = oHeaderSelector.getTooltip_AsString();
|
|
33
|
+
|
|
34
|
+
rm.openStart("div", oHeaderSelector);
|
|
35
|
+
rm.class("sapUiTableHeaderSelector");
|
|
36
|
+
|
|
37
|
+
// For accessibility reasons, the HeaderSelector acts as the table cell and receives the focus instead of the actual cell.
|
|
38
|
+
rm.class("sapUiTableCell");
|
|
39
|
+
rm.class("sapUiTableHeaderCell");
|
|
40
|
+
rm.class("sapUiTableRowSelectionHeaderCell");
|
|
41
|
+
rm.attr("tabindex", "-1");
|
|
42
|
+
|
|
43
|
+
if (bVisible) {
|
|
44
|
+
if (!oHeaderSelector.getEnabled()) {
|
|
45
|
+
rm.class("sapUiTableHeaderSelectorDisabled");
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
if (sType === "CheckBox") {
|
|
49
|
+
if (oHeaderSelector.getCheckBoxSelected()) {
|
|
50
|
+
sTooltip ??= TableUtils.getResourceText("TBL_DESELECT_ALL");
|
|
51
|
+
} else {
|
|
52
|
+
sTooltip ??= TableUtils.getResourceText("TBL_SELECT_ALL");
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
if (sTooltip) {
|
|
57
|
+
rm.attr("title", sTooltip);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
const oTable = oHeaderSelector.getParent();
|
|
61
|
+
oTable._getAccRenderExtension().writeAriaAttributesFor(rm, oTable, "ColumnRowHeader", oHeaderSelector);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
rm.openEnd();
|
|
65
|
+
|
|
66
|
+
if (bVisible) {
|
|
67
|
+
if (sType === "Icon") {
|
|
68
|
+
rm.icon(oHeaderSelector.getIcon(), ["sapUiTableHeaderSelectorIcon"], {
|
|
69
|
+
"title": null
|
|
70
|
+
});
|
|
71
|
+
} else if (sType === "CheckBox") {
|
|
72
|
+
rm.openStart("div");
|
|
73
|
+
rm.class("sapUiTableCheckBox");
|
|
74
|
+
|
|
75
|
+
if (oHeaderSelector.getCheckBoxSelected()) {
|
|
76
|
+
rm.class("sapUiTableCheckBoxSelected");
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
rm.openEnd();
|
|
80
|
+
rm.close("div");
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
rm.close("div");
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
return HeaderSelectorRenderer;
|
|
88
|
+
});
|
package/src/sap/ui/table/Row.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* OpenUI5
|
|
3
|
-
* (c) Copyright
|
|
3
|
+
* (c) Copyright 2026 SAP SE or an SAP affiliate company.
|
|
4
4
|
* Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
|
|
5
5
|
*/
|
|
6
6
|
|
|
@@ -135,7 +135,7 @@ sap.ui.define([
|
|
|
135
135
|
* @class
|
|
136
136
|
* The row.
|
|
137
137
|
* @extends sap.ui.core.Element
|
|
138
|
-
* @version 1.
|
|
138
|
+
* @version 1.144.0
|
|
139
139
|
*
|
|
140
140
|
* @constructor
|
|
141
141
|
* @public
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* OpenUI5
|
|
3
|
-
* (c) Copyright
|
|
3
|
+
* (c) Copyright 2026 SAP SE or an SAP affiliate company.
|
|
4
4
|
* Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
|
|
5
5
|
*/
|
|
6
6
|
|
|
@@ -39,7 +39,7 @@ sap.ui.define([
|
|
|
39
39
|
* of the order in the <code>items</code> aggregation.
|
|
40
40
|
*
|
|
41
41
|
* @extends sap.ui.core.Control
|
|
42
|
-
* @version 1.
|
|
42
|
+
* @version 1.144.0
|
|
43
43
|
*
|
|
44
44
|
* @constructor
|
|
45
45
|
* @public
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* OpenUI5
|
|
3
|
-
* (c) Copyright
|
|
3
|
+
* (c) Copyright 2026 SAP SE or an SAP affiliate company.
|
|
4
4
|
* Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
|
|
5
5
|
*/
|
|
6
6
|
|
|
@@ -36,7 +36,7 @@ sap.ui.define([
|
|
|
36
36
|
* @extends sap.ui.core.Element
|
|
37
37
|
*
|
|
38
38
|
* @author SAP SE
|
|
39
|
-
* @version 1.
|
|
39
|
+
* @version 1.144.0
|
|
40
40
|
* @since 1.45
|
|
41
41
|
*
|
|
42
42
|
* @constructor
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* OpenUI5
|
|
3
|
-
* (c) Copyright
|
|
3
|
+
* (c) Copyright 2026 SAP SE or an SAP affiliate company.
|
|
4
4
|
* Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
|
|
5
5
|
*/
|
|
6
6
|
|
|
@@ -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.
|
|
30
|
+
* @version 1.144.0
|
|
31
31
|
*
|
|
32
32
|
* @constructor
|
|
33
33
|
* @public
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* OpenUI5
|
|
3
|
-
* (c) Copyright
|
|
3
|
+
* (c) Copyright 2026 SAP SE or an SAP affiliate company.
|
|
4
4
|
* Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
|
|
5
5
|
*/
|
|
6
6
|
|
|
@@ -17,6 +17,7 @@ sap.ui.define([
|
|
|
17
17
|
"sap/ui/model/BindingMode",
|
|
18
18
|
"./Column",
|
|
19
19
|
"./Row",
|
|
20
|
+
"./HeaderSelector",
|
|
20
21
|
"./library",
|
|
21
22
|
"./utils/TableUtils",
|
|
22
23
|
"./extensions/ExtensionBase",
|
|
@@ -50,6 +51,7 @@ sap.ui.define([
|
|
|
50
51
|
BindingMode,
|
|
51
52
|
Column,
|
|
52
53
|
Row,
|
|
54
|
+
HeaderSelector,
|
|
53
55
|
library,
|
|
54
56
|
TableUtils,
|
|
55
57
|
ExtensionBase,
|
|
@@ -106,7 +108,7 @@ sap.ui.define([
|
|
|
106
108
|
* the data model and binding being used.
|
|
107
109
|
* </p>
|
|
108
110
|
* @extends sap.ui.core.Control
|
|
109
|
-
* @version 1.
|
|
111
|
+
* @version 1.144.0
|
|
110
112
|
*
|
|
111
113
|
* @constructor
|
|
112
114
|
* @public
|
|
@@ -1100,6 +1102,8 @@ sap.ui.define([
|
|
|
1100
1102
|
}
|
|
1101
1103
|
|
|
1102
1104
|
this._bInvalid = true;
|
|
1105
|
+
|
|
1106
|
+
this.addAggregation("_hiddenDependents", new HeaderSelector(this.getId() + "-selall"));
|
|
1103
1107
|
};
|
|
1104
1108
|
|
|
1105
1109
|
/**
|
|
@@ -1495,24 +1499,14 @@ sap.ui.define([
|
|
|
1495
1499
|
};
|
|
1496
1500
|
|
|
1497
1501
|
Table.prototype.onBeforeRendering = function(oEvent) {
|
|
1498
|
-
// The table can be re-rendered as part of the rendering of its parent, without being invalidated before.
|
|
1499
|
-
this._bInvalid = true;
|
|
1500
|
-
|
|
1501
1502
|
this._detachEvents();
|
|
1502
|
-
|
|
1503
|
-
if (oEvent && oEvent.isMarked("renderRows")) {
|
|
1504
|
-
return;
|
|
1505
|
-
}
|
|
1506
|
-
|
|
1503
|
+
this._adjustFirstVisibleRowToTotalRowCount();
|
|
1507
1504
|
this._cleanUpTimers();
|
|
1508
1505
|
this._aTableHeaders = []; // free references to DOM elements
|
|
1509
1506
|
};
|
|
1510
1507
|
|
|
1511
1508
|
Table.prototype.onAfterRendering = function(oEvent) {
|
|
1512
|
-
const bRenderedRows = oEvent && oEvent.isMarked("renderRows");
|
|
1513
|
-
|
|
1514
1509
|
this._bInvalid = false;
|
|
1515
|
-
|
|
1516
1510
|
this._attachEvents();
|
|
1517
1511
|
|
|
1518
1512
|
// since the row is an element it has no own renderer. Anyway, logically it has a domref. Let the rows
|
|
@@ -1520,18 +1514,11 @@ sap.ui.define([
|
|
|
1520
1514
|
this._initRowDomRefs();
|
|
1521
1515
|
|
|
1522
1516
|
// enable/disable text selection for column headers
|
|
1523
|
-
if (!this._bAllowColumnHeaderTextSelection
|
|
1517
|
+
if (!this._bAllowColumnHeaderTextSelection) {
|
|
1524
1518
|
this._disableTextSelection(this.$().find(".sapUiTableColHdrCnt"));
|
|
1525
1519
|
}
|
|
1526
1520
|
|
|
1527
|
-
|
|
1528
|
-
// manually removed so that the actions are later correctly positioned.
|
|
1529
|
-
this.getDomRef().classList.remove("sapUiTableRActFlexible");
|
|
1530
|
-
|
|
1531
|
-
if (!bRenderedRows) {
|
|
1532
|
-
// needed for the column resize ruler
|
|
1533
|
-
this._aTableHeaders = this.$().find(".sapUiTableColHdrCnt th");
|
|
1534
|
-
}
|
|
1521
|
+
this._aTableHeaders = this.$().find(".sapUiTableColHdrCnt th");
|
|
1535
1522
|
|
|
1536
1523
|
this._updateTableSizes(TableUtils.RowsUpdateReason.Render, true);
|
|
1537
1524
|
TableUtils.registerResizeHandler(this, "Table", this._onTableResize.bind(this));
|
|
@@ -1763,13 +1750,8 @@ sap.ui.define([
|
|
|
1763
1750
|
};
|
|
1764
1751
|
|
|
1765
1752
|
Table.prototype.applyFocusInfo = function(mFocusInfo) {
|
|
1766
|
-
delete this._bApplyFocusInfoFailed;
|
|
1767
1753
|
if (mFocusInfo && mFocusInfo.customId) {
|
|
1768
|
-
|
|
1769
|
-
jQuery(document.getElementById(mFocusInfo.customId)).trigger("focus");
|
|
1770
|
-
} else {
|
|
1771
|
-
this._bApplyFocusInfoFailed = true;
|
|
1772
|
-
}
|
|
1754
|
+
jQuery(document.getElementById(mFocusInfo.customId)).trigger("focus");
|
|
1773
1755
|
} else {
|
|
1774
1756
|
Control.prototype.applyFocusInfo.apply(this, arguments);
|
|
1775
1757
|
}
|
|
@@ -3264,10 +3246,6 @@ sap.ui.define([
|
|
|
3264
3246
|
return;
|
|
3265
3247
|
}
|
|
3266
3248
|
|
|
3267
|
-
const mRenderConfig = this._getSelectionPlugin().getRenderConfig();
|
|
3268
|
-
|
|
3269
|
-
const $SelectAll = this.$("selall");
|
|
3270
|
-
|
|
3271
3249
|
// trigger the rows to update their selection
|
|
3272
3250
|
const aRows = this.getRows();
|
|
3273
3251
|
|
|
@@ -3275,28 +3253,6 @@ sap.ui.define([
|
|
|
3275
3253
|
const oRow = aRows[i];
|
|
3276
3254
|
oRow._updateSelection();
|
|
3277
3255
|
}
|
|
3278
|
-
|
|
3279
|
-
if (!mRenderConfig.headerSelector.visible) {
|
|
3280
|
-
return;
|
|
3281
|
-
}
|
|
3282
|
-
|
|
3283
|
-
// update the DOM without going through the whole table rendering
|
|
3284
|
-
if (mRenderConfig.headerSelector.type === "toggle") {
|
|
3285
|
-
const bAllRowsSelected = mRenderConfig.headerSelector.selected;
|
|
3286
|
-
|
|
3287
|
-
$SelectAll.toggleClass("sapUiTableSelAll", !bAllRowsSelected);
|
|
3288
|
-
this._getAccExtension().setSelectAllState(bAllRowsSelected);
|
|
3289
|
-
} else if (mRenderConfig.headerSelector.type === "custom") {
|
|
3290
|
-
$SelectAll.toggleClass("sapUiTableSelAllDisabled", !mRenderConfig.headerSelector.enabled);
|
|
3291
|
-
|
|
3292
|
-
if (mRenderConfig.headerSelector.enabled) {
|
|
3293
|
-
$SelectAll.removeAttr("aria-disabled");
|
|
3294
|
-
} else {
|
|
3295
|
-
$SelectAll.attr("aria-disabled", "true");
|
|
3296
|
-
}
|
|
3297
|
-
const sTitle = mRenderConfig.headerSelector.tooltip;
|
|
3298
|
-
$SelectAll.attr('title', sTitle);
|
|
3299
|
-
}
|
|
3300
3256
|
};
|
|
3301
3257
|
|
|
3302
3258
|
/**
|
|
@@ -4125,6 +4081,17 @@ sap.ui.define([
|
|
|
4125
4081
|
return this;
|
|
4126
4082
|
};
|
|
4127
4083
|
|
|
4084
|
+
/**
|
|
4085
|
+
* Gets the header selector control.
|
|
4086
|
+
*
|
|
4087
|
+
* @return {sap.ui.table.HeaderSelector} The header selector control.
|
|
4088
|
+
* @private
|
|
4089
|
+
*/
|
|
4090
|
+
Table.prototype._getHeaderSelector = function() {
|
|
4091
|
+
const aHiddenDependents = this.getAggregation("_hiddenDependents") || [];
|
|
4092
|
+
return aHiddenDependents.find((oDependent) => oDependent.isA("sap.ui.table.HeaderSelector"));
|
|
4093
|
+
};
|
|
4094
|
+
|
|
4128
4095
|
/**
|
|
4129
4096
|
* Gets the selection plugin. If no selection plugin is applied to the table, a legacy selection plugin is returned.
|
|
4130
4097
|
*
|
|
@@ -4144,6 +4111,7 @@ sap.ui.define([
|
|
|
4144
4111
|
|
|
4145
4112
|
if (oSelectionPlugin && oLegacySelectionPlugin) {
|
|
4146
4113
|
delete _private(this).oLegacySelectionPlugin;
|
|
4114
|
+
delete oLegacySelectionPlugin.isMainSelectionPlugin;
|
|
4147
4115
|
oLegacySelectionPlugin.destroy();
|
|
4148
4116
|
} else if (!oSelectionPlugin && !oLegacySelectionPlugin && !this.isDestroyed()) {
|
|
4149
4117
|
oLegacySelectionPlugin = this._createLegacySelectionPlugin();
|
|
@@ -4154,6 +4122,7 @@ sap.ui.define([
|
|
|
4154
4122
|
*/
|
|
4155
4123
|
oLegacySelectionPlugin.setSelectedIndex(this.getProperty("selectedIndex"));
|
|
4156
4124
|
oLegacySelectionPlugin.attachSelectionChange(onLegacySelectionChanged, this);
|
|
4125
|
+
oLegacySelectionPlugin.isMainSelectionPlugin = true;
|
|
4157
4126
|
this.addAggregation("_hiddenDependents", oLegacySelectionPlugin);
|
|
4158
4127
|
|
|
4159
4128
|
// Temporary fix for the Support Assistant hacks. Support Assistant should implement a selection plugin.
|
|
@@ -4178,19 +4147,27 @@ sap.ui.define([
|
|
|
4178
4147
|
};
|
|
4179
4148
|
|
|
4180
4149
|
Table.prototype._onSelectionPluginChange = function() {
|
|
4181
|
-
|
|
4150
|
+
const oCurrentSelectionPlugin = _private(this).oSelectionPlugin;
|
|
4151
|
+
let oNewSelectionPlugin = SelectionPlugin.findOn(this);
|
|
4182
4152
|
|
|
4183
4153
|
/**
|
|
4184
4154
|
* @deprecated As of version 1.120
|
|
4185
4155
|
*/
|
|
4186
4156
|
if (this.getPlugins().length > 0) {
|
|
4187
|
-
|
|
4157
|
+
oNewSelectionPlugin = this.getPlugins()[0];
|
|
4188
4158
|
}
|
|
4189
4159
|
|
|
4190
|
-
if (
|
|
4191
|
-
|
|
4192
|
-
|
|
4193
|
-
|
|
4160
|
+
if (oCurrentSelectionPlugin !== oNewSelectionPlugin) {
|
|
4161
|
+
if (oCurrentSelectionPlugin) {
|
|
4162
|
+
oCurrentSelectionPlugin.detachSelectionChange(this._updateSelection, this);
|
|
4163
|
+
delete oCurrentSelectionPlugin.isMainSelectionPlugin;
|
|
4164
|
+
}
|
|
4165
|
+
if (oNewSelectionPlugin) {
|
|
4166
|
+
oNewSelectionPlugin.attachSelectionChange(this._updateSelection, this);
|
|
4167
|
+
oNewSelectionPlugin.isMainSelectionPlugin = true;
|
|
4168
|
+
}
|
|
4169
|
+
this._getHeaderSelector()?.resetSettings();
|
|
4170
|
+
_private(this).oSelectionPlugin = oNewSelectionPlugin;
|
|
4194
4171
|
}
|
|
4195
4172
|
};
|
|
4196
4173
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*
|
|
2
2
|
* OpenUI5
|
|
3
|
-
* (c) Copyright
|
|
3
|
+
* (c) Copyright 2026 SAP SE or an SAP affiliate company.
|
|
4
4
|
* Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
|
|
5
5
|
*/
|
|
6
6
|
|
|
@@ -34,7 +34,7 @@ sap.ui.define([
|
|
|
34
34
|
* @extends sap.ui.base.ManagedObject
|
|
35
35
|
*
|
|
36
36
|
* @author SAP SE
|
|
37
|
-
* @version 1.
|
|
37
|
+
* @version 1.144.0
|
|
38
38
|
* @since 1.21.1
|
|
39
39
|
*
|
|
40
40
|
* @constructor
|