@openui5/sap.ui.table 1.141.2 → 1.142.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/README.md +2 -2
- package/REUSE.toml +38 -0
- package/THIRDPARTY.txt +34 -1
- package/package.json +3 -3
- package/src/sap/ui/table/.library +1 -1
- package/src/sap/ui/table/AnalyticalColumn.js +1 -1
- package/src/sap/ui/table/AnalyticalColumnMenu.js +1 -1
- package/src/sap/ui/table/AnalyticalTable.js +1 -1
- package/src/sap/ui/table/Column.js +1 -1
- package/src/sap/ui/table/ColumnMenu.js +1 -1
- package/src/sap/ui/table/CreationRow.js +1 -1
- package/src/sap/ui/table/Row.js +1 -1
- package/src/sap/ui/table/RowAction.js +62 -143
- package/src/sap/ui/table/RowActionItem.js +67 -41
- package/src/sap/ui/table/RowActionRenderer.js +40 -5
- package/src/sap/ui/table/RowSettings.js +1 -1
- package/src/sap/ui/table/Table.js +62 -4
- package/src/sap/ui/table/TablePersoController.js +1 -1
- package/src/sap/ui/table/TableRenderer.js +8 -1
- package/src/sap/ui/table/TreeTable.js +1 -1
- package/src/sap/ui/table/extensions/Accessibility.js +1 -1
- package/src/sap/ui/table/extensions/AccessibilityRender.js +1 -1
- package/src/sap/ui/table/extensions/DragAndDrop.js +1 -1
- package/src/sap/ui/table/extensions/ExtensionBase.js +1 -1
- package/src/sap/ui/table/extensions/Keyboard.js +1 -1
- package/src/sap/ui/table/extensions/KeyboardDelegate.js +1 -1
- package/src/sap/ui/table/extensions/Pointer.js +1 -1
- package/src/sap/ui/table/extensions/Scrolling.js +1 -1
- package/src/sap/ui/table/extensions/ScrollingIOS.js +1 -1
- package/src/sap/ui/table/extensions/Synchronization.js +1 -1
- package/src/sap/ui/table/library.js +10 -10
- package/src/sap/ui/table/menus/AnalyticalTableContextMenu.js +1 -1
- package/src/sap/ui/table/menus/ColumnHeaderMenuAdapter.js +1 -1
- package/src/sap/ui/table/menus/ContextMenu.js +1 -1
- package/src/sap/ui/table/menus/MobileColumnHeaderMenuAdapter.js +1 -1
- package/src/sap/ui/table/plugins/BindingSelection.js +1 -1
- package/src/sap/ui/table/plugins/MultiSelectionPlugin.js +10 -2
- package/src/sap/ui/table/plugins/ODataV4Aggregation.js +1 -1
- package/src/sap/ui/table/plugins/ODataV4Hierarchy.js +1 -1
- package/src/sap/ui/table/plugins/ODataV4MultiLevel.js +1 -1
- package/src/sap/ui/table/plugins/ODataV4MultiSelection.js +1 -1
- package/src/sap/ui/table/plugins/ODataV4Selection.js +1 -1
- package/src/sap/ui/table/plugins/ODataV4SingleSelection.js +1 -1
- package/src/sap/ui/table/plugins/PluginBase.js +1 -1
- package/src/sap/ui/table/plugins/SelectionModelSelection.js +1 -1
- package/src/sap/ui/table/plugins/SelectionPlugin.js +1 -1
- package/src/sap/ui/table/rowmodes/Auto.js +1 -1
- package/src/sap/ui/table/rowmodes/Fixed.js +1 -1
- package/src/sap/ui/table/rowmodes/Interactive.js +1 -1
- package/src/sap/ui/table/rowmodes/RowMode.js +1 -1
- package/src/sap/ui/table/rowmodes/Variable.js +1 -1
- package/src/sap/ui/table/themes/base/Cell.less +53 -28
- package/src/sap/ui/table/themes/base/Scrolling.less +58 -24
- package/src/sap/ui/table/themes/base/library.source.less +7 -3
- package/src/sap/ui/table/themes/sap_hcb/base_Cell.less +54 -29
- package/src/sap/ui/table/themes/sap_hcb/base_Scrolling.less +49 -21
- package/src/sap/ui/table/themes/sap_hcb/library.source.less +7 -3
- package/src/sap/ui/table/utils/TableUtils.js +1 -1
- package/src/sap/ui/table/utils/_ColumnUtils.js +1 -1
- package/src/sap/ui/table/utils/_GroupingUtils.js +1 -1
- package/src/sap/ui/table/utils/_HookUtils.js +1 -1
- package/src/sap/ui/table/utils/_MenuUtils.js +1 -1
package/README.md
CHANGED
|
@@ -4,13 +4,13 @@
|
|
|
4
4
|
Runtime resources of the [OpenUI5](https://github.com/UI5/openui5) UI Library **sap.ui.table**.
|
|
5
5
|
|
|
6
6
|
## Usage
|
|
7
|
-
Add this library as a dependency to your UI5 project by using [UI5
|
|
7
|
+
Add this library as a dependency to your UI5 project by using [UI5 CLI](https://ui5.github.io/cli/):
|
|
8
8
|
|
|
9
9
|
```
|
|
10
10
|
ui5 add sap.ui.table
|
|
11
11
|
```
|
|
12
12
|
|
|
13
|
-
For more information, please refer to our documentation on [Consuming OpenUI5 Libraries](https://
|
|
13
|
+
For more information, please refer to our documentation on [Consuming OpenUI5 Libraries](https://ui5.github.io/cli/pages/OpenUI5/).
|
|
14
14
|
|
|
15
15
|
## License
|
|
16
16
|
OpenUI5 is licensed under [Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0), see [LICENSE.txt](LICENSE.txt).
|
package/REUSE.toml
CHANGED
|
@@ -21,6 +21,44 @@ SPDX-License-Identifier = "Apache-2.0"
|
|
|
21
21
|
#
|
|
22
22
|
|
|
23
23
|
|
|
24
|
+
# Library: sap.f:
|
|
25
|
+
|
|
26
|
+
[[annotations]]
|
|
27
|
+
path = "src/sap.f/src/sap/f/thirdparty/**"
|
|
28
|
+
precedence = "aggregate"
|
|
29
|
+
SPDX-FileCopyrightText = "SAP"
|
|
30
|
+
SPDX-License-Identifier = "Apache-2.0"
|
|
31
|
+
SPDX-FileComment = "these files belong to: UI5 Web Components"
|
|
32
|
+
|
|
33
|
+
[[annotations]]
|
|
34
|
+
path = "src/sap.f/src/sap/f/thirdparty/**"
|
|
35
|
+
precedence = "aggregate"
|
|
36
|
+
SPDX-FileCopyrightText = "SAP"
|
|
37
|
+
SPDX-License-Identifier = "Apache-2.0"
|
|
38
|
+
SPDX-FileComment = "these files belong to: UI5 Web Components Fiori"
|
|
39
|
+
|
|
40
|
+
[[annotations]]
|
|
41
|
+
path = "src/sap.f/src/sap/f/thirdparty/**"
|
|
42
|
+
precedence = "aggregate"
|
|
43
|
+
SPDX-FileCopyrightText = "SAP"
|
|
44
|
+
SPDX-License-Identifier = "Apache-2.0"
|
|
45
|
+
SPDX-FileComment = "these files belong to: UI5 Web Components Icons"
|
|
46
|
+
|
|
47
|
+
[[annotations]]
|
|
48
|
+
path = "src/sap.f/src/sap/f/thirdparty/**"
|
|
49
|
+
precedence = "aggregate"
|
|
50
|
+
SPDX-FileCopyrightText = "SAP"
|
|
51
|
+
SPDX-License-Identifier = "Apache-2.0"
|
|
52
|
+
SPDX-FileComment = "these files belong to: UI5 Web Components Icons Business Suite"
|
|
53
|
+
|
|
54
|
+
[[annotations]]
|
|
55
|
+
path = "src/sap.f/src/sap/f/thirdparty/**"
|
|
56
|
+
precedence = "aggregate"
|
|
57
|
+
SPDX-FileCopyrightText = "SAP"
|
|
58
|
+
SPDX-License-Identifier = "Apache-2.0"
|
|
59
|
+
SPDX-FileComment = "these files belong to: UI5 Web Components Icons TNT"
|
|
60
|
+
|
|
61
|
+
|
|
24
62
|
# Library: sap.m:
|
|
25
63
|
|
|
26
64
|
[[annotations]]
|
package/THIRDPARTY.txt
CHANGED
|
@@ -4,6 +4,39 @@ each subcomponent.
|
|
|
4
4
|
The full text of all referenced licenses is appended at the end of this file.
|
|
5
5
|
|
|
6
6
|
|
|
7
|
+
Library: sap.f:
|
|
8
|
+
|
|
9
|
+
Component: UI5 Web Components, version: 2.15.0
|
|
10
|
+
Copyright: SAP
|
|
11
|
+
License: Apache-2.0
|
|
12
|
+
License Text: https://github.com/UI5/openui5/blob/master/LICENSES/Apache-2.0.txt
|
|
13
|
+
Contained in: src/sap.f/src/sap/f/thirdparty/**
|
|
14
|
+
|
|
15
|
+
Component: UI5 Web Components Fiori, version: 2.15.0
|
|
16
|
+
Copyright: SAP
|
|
17
|
+
License: Apache-2.0
|
|
18
|
+
License Text: https://github.com/UI5/openui5/blob/master/LICENSES/Apache-2.0.txt
|
|
19
|
+
Contained in: src/sap.f/src/sap/f/thirdparty/**
|
|
20
|
+
|
|
21
|
+
Component: UI5 Web Components Icons, version: 2.15.0
|
|
22
|
+
Copyright: SAP
|
|
23
|
+
License: Apache-2.0
|
|
24
|
+
License Text: https://github.com/UI5/openui5/blob/master/LICENSES/Apache-2.0.txt
|
|
25
|
+
Contained in: src/sap.f/src/sap/f/thirdparty/**
|
|
26
|
+
|
|
27
|
+
Component: UI5 Web Components Icons Business Suite, version: 2.15.0
|
|
28
|
+
Copyright: SAP
|
|
29
|
+
License: Apache-2.0
|
|
30
|
+
License Text: https://github.com/UI5/openui5/blob/master/LICENSES/Apache-2.0.txt
|
|
31
|
+
Contained in: src/sap.f/src/sap/f/thirdparty/**
|
|
32
|
+
|
|
33
|
+
Component: UI5 Web Components Icons TNT, version: 2.15.0
|
|
34
|
+
Copyright: SAP
|
|
35
|
+
License: Apache-2.0
|
|
36
|
+
License Text: https://github.com/UI5/openui5/blob/master/LICENSES/Apache-2.0.txt
|
|
37
|
+
Contained in: src/sap.f/src/sap/f/thirdparty/**
|
|
38
|
+
|
|
39
|
+
|
|
7
40
|
Library: sap.m:
|
|
8
41
|
|
|
9
42
|
Component: purify.js, version: 3.2.4
|
|
@@ -354,7 +387,7 @@ Contained in: src/sap.ui.documentation/src/sap/ui/documentation/sdk/thirdparty/D
|
|
|
354
387
|
|
|
355
388
|
Library: sap.ui.integration:
|
|
356
389
|
|
|
357
|
-
Component: UI5 Web Components, version:
|
|
390
|
+
Component: UI5 Web Components, version: 2.15.0
|
|
358
391
|
Copyright: SAP
|
|
359
392
|
License: Apache-2.0
|
|
360
393
|
License Text: https://github.com/UI5/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.
|
|
3
|
+
"version": "1.142.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.142.0",
|
|
18
|
+
"@openui5/sap.ui.unified": "1.142.0"
|
|
19
19
|
}
|
|
20
20
|
}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
<copyright>OpenUI5
|
|
7
7
|
* (c) Copyright 2025 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.142.0</version>
|
|
10
10
|
|
|
11
11
|
<documentation>Table-like controls, mainly for desktop scenarios.</documentation>
|
|
12
12
|
|
package/src/sap/ui/table/Row.js
CHANGED
|
@@ -6,21 +6,21 @@
|
|
|
6
6
|
|
|
7
7
|
// Provides control sap.ui.table.RowAction
|
|
8
8
|
sap.ui.define([
|
|
9
|
-
"./library",
|
|
10
9
|
"./utils/TableUtils",
|
|
11
10
|
"./RowActionRenderer",
|
|
12
11
|
"sap/ui/core/Control",
|
|
13
12
|
"sap/ui/core/Icon",
|
|
14
|
-
"sap/ui/
|
|
15
|
-
"sap/ui/core/Popup"
|
|
13
|
+
"sap/ui/core/IconPool",
|
|
14
|
+
"sap/ui/core/Popup",
|
|
15
|
+
"sap/ui/unified/Menu"
|
|
16
16
|
], function(
|
|
17
|
-
library,
|
|
18
17
|
TableUtils,
|
|
19
18
|
RowActionRenderer,
|
|
20
19
|
Control,
|
|
21
20
|
Icon,
|
|
22
|
-
|
|
23
|
-
Popup
|
|
21
|
+
IconPool,
|
|
22
|
+
Popup,
|
|
23
|
+
Menu
|
|
24
24
|
) {
|
|
25
25
|
"use strict";
|
|
26
26
|
|
|
@@ -34,8 +34,12 @@ sap.ui.define([
|
|
|
34
34
|
* The <code>RowAction</code> control allows to display multiple action items which can be selected by the user.
|
|
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
|
+
*
|
|
38
|
+
* <b>Note</b>: The <code>RowActionItem</code> of type <code>Navigation</code> has a special role and is shown as the rightmost icon independent
|
|
39
|
+
* of the order in the <code>items</code> aggregation.
|
|
40
|
+
*
|
|
37
41
|
* @extends sap.ui.core.Control
|
|
38
|
-
* @version 1.
|
|
42
|
+
* @version 1.142.0
|
|
39
43
|
*
|
|
40
44
|
* @constructor
|
|
41
45
|
* @public
|
|
@@ -56,117 +60,13 @@ sap.ui.define([
|
|
|
56
60
|
/**
|
|
57
61
|
* The action items which should be displayed.
|
|
58
62
|
*/
|
|
59
|
-
items: {type: "sap.ui.table.RowActionItem", multiple: true}
|
|
60
|
-
|
|
61
|
-
/*
|
|
62
|
-
* Hidden aggregation for the internally used icon controls.
|
|
63
|
-
*/
|
|
64
|
-
_icons: {type: "sap.ui.core.Icon", multiple: true, visibility: "hidden"},
|
|
65
|
-
|
|
66
|
-
/*
|
|
67
|
-
* Hidden aggregation for the internally used menu control.
|
|
68
|
-
*/
|
|
69
|
-
_menu: {type: "sap.ui.unified.Menu", multiple: false, visibility: "hidden"}
|
|
63
|
+
items: {type: "sap.ui.table.RowActionItem", multiple: true}
|
|
70
64
|
},
|
|
71
65
|
events: {}
|
|
72
66
|
},
|
|
73
67
|
renderer: RowActionRenderer
|
|
74
68
|
});
|
|
75
69
|
|
|
76
|
-
RowAction.prototype.init = function() {
|
|
77
|
-
/*
|
|
78
|
-
* Enables or disables the fixed layout.
|
|
79
|
-
* If enabled, the position of the icons is stable.
|
|
80
|
-
*
|
|
81
|
-
* @type {boolean}
|
|
82
|
-
*/
|
|
83
|
-
this._bFixedLayout = true;
|
|
84
|
-
|
|
85
|
-
this._aActions = ["", ""];
|
|
86
|
-
this._iLastCloseTime = 0;
|
|
87
|
-
|
|
88
|
-
this.addAggregation("_icons", new Icon(this.getId() + "-icon0", {
|
|
89
|
-
decorative: false,
|
|
90
|
-
press: [this._onIconPress, this]
|
|
91
|
-
})
|
|
92
|
-
.addStyleClass("sapUiTableActionIcon"))
|
|
93
|
-
.addDelegate({
|
|
94
|
-
onAfterRendering: function() {
|
|
95
|
-
const oIconDomRef = this.getAggregation("_icons")[0].getDomRef();
|
|
96
|
-
|
|
97
|
-
if (this._aActions[0] === "menu") {
|
|
98
|
-
oIconDomRef.setAttribute("aria-haspopup", "menu");
|
|
99
|
-
} else {
|
|
100
|
-
oIconDomRef.removeAttribute("aria-haspopup");
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
}, this);
|
|
104
|
-
|
|
105
|
-
this.addAggregation("_icons", new Icon(this.getId() + "-icon1", {
|
|
106
|
-
decorative: false,
|
|
107
|
-
press: [this._onIconPress, this]
|
|
108
|
-
})
|
|
109
|
-
.addStyleClass("sapUiTableActionIcon"))
|
|
110
|
-
.addDelegate({
|
|
111
|
-
onAfterRendering: function() {
|
|
112
|
-
const oIconDomRef = this.getAggregation("_icons")[1].getDomRef();
|
|
113
|
-
|
|
114
|
-
if (this._aActions[1] === "menu") {
|
|
115
|
-
oIconDomRef.setAttribute("aria-haspopup", "menu");
|
|
116
|
-
} else {
|
|
117
|
-
oIconDomRef.removeAttribute("aria-haspopup");
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
}, this);
|
|
121
|
-
};
|
|
122
|
-
|
|
123
|
-
RowAction.prototype.onBeforeRendering = function() {
|
|
124
|
-
const oRow = this.getRow();
|
|
125
|
-
const oTable = oRow ? oRow.getTable() : null;
|
|
126
|
-
const aIcons = this.getAggregation("_icons");
|
|
127
|
-
const aItems = this.getItems();
|
|
128
|
-
const aVisibleItems = this._getVisibleItems();
|
|
129
|
-
const iVisibleItems = aVisibleItems.length;
|
|
130
|
-
const iSize = this._getSize();
|
|
131
|
-
const sHeaderLabelId = oTable ? oTable.getId() + "-rowacthdr" : "";
|
|
132
|
-
|
|
133
|
-
if (this._bFixedLayout && iVisibleItems === 1 && iSize === 2 && aItems.length > 1 && aVisibleItems[0] === aItems[1]) {
|
|
134
|
-
aVisibleItems[0]._syncIcon(aIcons[1]);
|
|
135
|
-
this._aActions = ["", "action_fixed"];
|
|
136
|
-
} else if (iVisibleItems === 0 || iSize === 0) {
|
|
137
|
-
this._aActions = ["", ""];
|
|
138
|
-
} else if (iVisibleItems === 1 && iSize > 0) {
|
|
139
|
-
aVisibleItems[0]._syncIcon(aIcons[0]);
|
|
140
|
-
this._aActions = ["action", ""];
|
|
141
|
-
} else if (iVisibleItems === 2 && iSize === 2) {
|
|
142
|
-
aVisibleItems[0]._syncIcon(aIcons[0]);
|
|
143
|
-
aVisibleItems[1]._syncIcon(aIcons[1]);
|
|
144
|
-
this._aActions = ["action", "action"];
|
|
145
|
-
} else if (iVisibleItems > 2 && iSize === 2) {
|
|
146
|
-
aVisibleItems[0]._syncIcon(aIcons[0]);
|
|
147
|
-
aIcons[1].setSrc("sap-icon://overflow");
|
|
148
|
-
aIcons[1].setTooltip(TableUtils.getResourceText("TBL_ROW_ACTION_MORE"));
|
|
149
|
-
this._aActions = ["action", "menu"];
|
|
150
|
-
} else { // iVisibleItems > 2 && iSize === 1
|
|
151
|
-
aIcons[0].setSrc("sap-icon://overflow");
|
|
152
|
-
aIcons[0].setTooltip(TableUtils.getResourceText("TBL_ROW_ACTION_MORE"));
|
|
153
|
-
this._aActions = ["menu", ""];
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
aIcons.forEach(function(oIcon, iIndex) {
|
|
157
|
-
oIcon.removeAllAriaLabelledBy();
|
|
158
|
-
oIcon.removeStyleClass("sapUiTableActionHidden");
|
|
159
|
-
|
|
160
|
-
if (sHeaderLabelId) {
|
|
161
|
-
oIcon.addAriaLabelledBy(sHeaderLabelId);
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
if (this._aActions[iIndex] === "") {
|
|
165
|
-
oIcon.addStyleClass("sapUiTableActionHidden");
|
|
166
|
-
}
|
|
167
|
-
}.bind(this));
|
|
168
|
-
};
|
|
169
|
-
|
|
170
70
|
/*
|
|
171
71
|
* @override
|
|
172
72
|
* @inheritDoc
|
|
@@ -226,48 +126,67 @@ sap.ui.define([
|
|
|
226
126
|
RowAction.prototype._getSize = function() {
|
|
227
127
|
const oRow = this.getRow();
|
|
228
128
|
const oTable = oRow ? oRow.getTable() : null;
|
|
229
|
-
|
|
129
|
+
|
|
130
|
+
return oTable ? oTable.getRowActionCount() : 3;
|
|
230
131
|
};
|
|
231
132
|
|
|
232
133
|
/**
|
|
233
|
-
*
|
|
134
|
+
* Returns an overflow icon which opens a menu containing the overflowing items.
|
|
234
135
|
*
|
|
235
|
-
* @param {sap.ui.
|
|
136
|
+
* @param {sap.ui.table.RowActionItem[]} aItems The visible action items (excluding navigation items)
|
|
137
|
+
* @param {sap.ui.table.RowActionItem[]} aNavigationItems The visible navigation action items
|
|
138
|
+
* @param {int} iItemsBeforeOverflow The number of items which are displayed before the overflow
|
|
139
|
+
*
|
|
140
|
+
* @returns {sap.ui.core.Icon} The overflow icon.
|
|
236
141
|
* @private
|
|
237
142
|
*/
|
|
238
|
-
RowAction.prototype.
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
143
|
+
RowAction.prototype._getOverflowIcon = function(aItems, aNavigationItems, iItemsBeforeOverflow) {
|
|
144
|
+
if (!this._oOverflowIcon) {
|
|
145
|
+
this._oOverflowIcon = new Icon({
|
|
146
|
+
src: IconPool.getIconURI("overflow"),
|
|
147
|
+
decorative: false
|
|
148
|
+
}).addStyleClass("sapUiTableActionIcon");
|
|
149
|
+
|
|
150
|
+
this._oOverflowIcon.addDelegate({
|
|
151
|
+
onAfterRendering: function() {
|
|
152
|
+
this._oOverflowIcon.getDomRef().setAttribute("aria-haspopup", "Menu");
|
|
153
|
+
}
|
|
154
|
+
}, this);
|
|
155
|
+
this.addDependent(this._oOverflowIcon);
|
|
156
|
+
} else {
|
|
157
|
+
this._oOverflowIcon.detachPress(fnPress, this);
|
|
158
|
+
}
|
|
242
159
|
|
|
243
|
-
|
|
244
|
-
this._getVisibleItems()[iIconIndex]._firePress();
|
|
245
|
-
} else if (sAction === "action_fixed") {
|
|
246
|
-
this._getVisibleItems()[0]._firePress();
|
|
247
|
-
} else if (sAction === "menu") {
|
|
248
|
-
let oMenu = this.getAggregation("_menu");
|
|
249
|
-
if (!oMenu) {
|
|
250
|
-
oMenu = new Menu();
|
|
251
|
-
this.setAggregation("_menu", oMenu, true);
|
|
252
|
-
oMenu.getPopup().attachClosed(function() {
|
|
253
|
-
this._iLastCloseTime = Date.now();
|
|
254
|
-
}, this);
|
|
255
|
-
}
|
|
256
|
-
oMenu.removeAllItems();
|
|
160
|
+
this._oOverflowIcon.attachPress({aItems, aNavigationItems, iItemsBeforeOverflow}, fnPress, this);
|
|
257
161
|
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
return;
|
|
261
|
-
}
|
|
162
|
+
return this._oOverflowIcon;
|
|
163
|
+
};
|
|
262
164
|
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
165
|
+
function fnPress(oEvent, mParameters) {
|
|
166
|
+
const aItems = mParameters.aItems;
|
|
167
|
+
const aNavigationItems = mParameters.aNavigationItems;
|
|
168
|
+
const iItemsBeforeOverflow = mParameters.iItemsBeforeOverflow;
|
|
169
|
+
const oTable = this.getRow().getTable();
|
|
267
170
|
|
|
268
|
-
|
|
171
|
+
if (!oTable._oRowActionOverflowMenu) {
|
|
172
|
+
oTable._oRowActionOverflowMenu = new Menu();
|
|
173
|
+
oTable.addAggregation("_hiddenDependents", oTable._oRowActionOverflowMenu);
|
|
174
|
+
} else {
|
|
175
|
+
oTable._oRowActionOverflowMenu.removeAllItems();
|
|
269
176
|
}
|
|
270
|
-
|
|
177
|
+
|
|
178
|
+
for (let i = iItemsBeforeOverflow; i < aItems.length; i++) {
|
|
179
|
+
oTable._oRowActionOverflowMenu.addItem(aItems[i]._getOverflowMenuItem());
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
if (aNavigationItems.length >= this._getSize()) {
|
|
183
|
+
for (let i = 0; i < aNavigationItems.length - this._getSize(); i++) {
|
|
184
|
+
oTable._oRowActionOverflowMenu.addItem(aNavigationItems[i]._getOverflowMenuItem());
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
oTable._oRowActionOverflowMenu.open(true, oEvent.getSource(), Popup.Dock.CenterTop, Popup.Dock.CenterBottom, oEvent.getSource().getDomRef());
|
|
189
|
+
}
|
|
271
190
|
|
|
272
191
|
return RowAction;
|
|
273
192
|
});
|
|
@@ -6,8 +6,20 @@
|
|
|
6
6
|
|
|
7
7
|
// Provides control sap.ui.table.RowActionItem.
|
|
8
8
|
sap.ui.define([
|
|
9
|
-
"./library",
|
|
10
|
-
|
|
9
|
+
"./library",
|
|
10
|
+
"./utils/TableUtils",
|
|
11
|
+
"sap/ui/core/Element",
|
|
12
|
+
"sap/ui/core/Icon",
|
|
13
|
+
"sap/ui/core/IconPool",
|
|
14
|
+
"sap/ui/unified/MenuItem"
|
|
15
|
+
], function(
|
|
16
|
+
library,
|
|
17
|
+
TableUtils,
|
|
18
|
+
Element,
|
|
19
|
+
Icon,
|
|
20
|
+
IconPool,
|
|
21
|
+
MenuItem
|
|
22
|
+
) {
|
|
11
23
|
"use strict";
|
|
12
24
|
|
|
13
25
|
const RowActionType = library.RowActionType;
|
|
@@ -24,7 +36,7 @@ sap.ui.define([
|
|
|
24
36
|
* @extends sap.ui.core.Element
|
|
25
37
|
*
|
|
26
38
|
* @author SAP SE
|
|
27
|
-
* @version 1.
|
|
39
|
+
* @version 1.142.0
|
|
28
40
|
* @since 1.45
|
|
29
41
|
*
|
|
30
42
|
* @constructor
|
|
@@ -77,17 +89,6 @@ sap.ui.define([
|
|
|
77
89
|
}
|
|
78
90
|
});
|
|
79
91
|
|
|
80
|
-
Item.prototype.init = function() {
|
|
81
|
-
this._oMenuItem = null;
|
|
82
|
-
};
|
|
83
|
-
|
|
84
|
-
Item.prototype.exit = function() {
|
|
85
|
-
if (this._oMenuItem) {
|
|
86
|
-
this._oMenuItem.destroy();
|
|
87
|
-
this._oMenuItem = null;
|
|
88
|
-
}
|
|
89
|
-
};
|
|
90
|
-
|
|
91
92
|
/**
|
|
92
93
|
* Gets the instance of the row action this control belongs to.
|
|
93
94
|
*
|
|
@@ -99,6 +100,28 @@ sap.ui.define([
|
|
|
99
100
|
return TableUtils.isA(oParent, "sap.ui.table.RowAction") ? oParent : null;
|
|
100
101
|
};
|
|
101
102
|
|
|
103
|
+
/**
|
|
104
|
+
* @inheritDoc
|
|
105
|
+
*/
|
|
106
|
+
Item.prototype.setIcon = function(sIcon) {
|
|
107
|
+
this.setProperty("icon", sIcon, true);
|
|
108
|
+
if (this._oIcon) {
|
|
109
|
+
this._oIcon.setSrc(this._getIconUri());
|
|
110
|
+
}
|
|
111
|
+
return this;
|
|
112
|
+
};
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
* @inheritDoc
|
|
116
|
+
*/
|
|
117
|
+
Item.prototype.setText = function(sText) {
|
|
118
|
+
this.setProperty("text", sText, true);
|
|
119
|
+
if (this._oIcon) {
|
|
120
|
+
this._oIcon.setTooltip(sText);
|
|
121
|
+
}
|
|
122
|
+
return this;
|
|
123
|
+
};
|
|
124
|
+
|
|
102
125
|
/**
|
|
103
126
|
* Fires the press event of this item with the relevant parameters.
|
|
104
127
|
*
|
|
@@ -114,30 +137,12 @@ sap.ui.define([
|
|
|
114
137
|
};
|
|
115
138
|
|
|
116
139
|
/**
|
|
117
|
-
*
|
|
118
|
-
*
|
|
119
|
-
* @returns {sap.ui.unified.MenuItem} The corresponding menu item
|
|
120
|
-
* @private
|
|
121
|
-
*/
|
|
122
|
-
Item.prototype._getMenuItem = function() {
|
|
123
|
-
if (!this._oMenuItem) {
|
|
124
|
-
this._oMenuItem = new MenuItem({
|
|
125
|
-
select: [this._firePress, this]
|
|
126
|
-
});
|
|
127
|
-
}
|
|
128
|
-
this._oMenuItem.setIcon(this._getIcon());
|
|
129
|
-
this._oMenuItem.setVisible(this.getVisible());
|
|
130
|
-
this._oMenuItem.setText(this._getText(false));
|
|
131
|
-
return this._oMenuItem;
|
|
132
|
-
};
|
|
133
|
-
|
|
134
|
-
/**
|
|
135
|
-
* Computes which icon should be used for this item.
|
|
140
|
+
* Computes which icon should be used for this action item.
|
|
136
141
|
*
|
|
137
142
|
* @returns {string} The name of the icon in the icon font.
|
|
138
143
|
* @private
|
|
139
144
|
*/
|
|
140
|
-
Item.prototype.
|
|
145
|
+
Item.prototype._getIconUri = function() {
|
|
141
146
|
const oIcon = this.getIcon();
|
|
142
147
|
if (oIcon) {
|
|
143
148
|
return oIcon;
|
|
@@ -152,7 +157,26 @@ sap.ui.define([
|
|
|
152
157
|
};
|
|
153
158
|
|
|
154
159
|
/**
|
|
155
|
-
*
|
|
160
|
+
* Returns an icon control which represents this action item.
|
|
161
|
+
* @returns {sap.ui.core.Icon} The icon control.
|
|
162
|
+
* @private
|
|
163
|
+
*/
|
|
164
|
+
Item.prototype._getIcon = function() {
|
|
165
|
+
if (!this._oIcon) {
|
|
166
|
+
this._oIcon = new Icon({
|
|
167
|
+
src: this._getIconUri(),
|
|
168
|
+
decorative: false,
|
|
169
|
+
tooltip: this._getText(),
|
|
170
|
+
press: [this._firePress, this]
|
|
171
|
+
});
|
|
172
|
+
this.addDependent(this._oIcon);
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
return this._oIcon;
|
|
176
|
+
};
|
|
177
|
+
|
|
178
|
+
/**
|
|
179
|
+
* Computes which text should be used for this actionitem.
|
|
156
180
|
*
|
|
157
181
|
* @param {boolean} bPreferTooltip Whether the tooltip or text is preferred
|
|
158
182
|
* @returns {string} The item text
|
|
@@ -173,14 +197,16 @@ sap.ui.define([
|
|
|
173
197
|
};
|
|
174
198
|
|
|
175
199
|
/**
|
|
176
|
-
*
|
|
177
|
-
*
|
|
178
|
-
* @param {sap.ui.core.Icon} oIcon The icon control to update
|
|
200
|
+
* Returns a menu item representing this action item.
|
|
201
|
+
* @returns {sap.ui.unified.MenuItem} A menu item representing this action item
|
|
179
202
|
* @private
|
|
180
203
|
*/
|
|
181
|
-
Item.prototype.
|
|
182
|
-
|
|
183
|
-
|
|
204
|
+
Item.prototype._getOverflowMenuItem = function() {
|
|
205
|
+
return new MenuItem({
|
|
206
|
+
text: this._getText(),
|
|
207
|
+
icon: this._getIconUri(),
|
|
208
|
+
select: [this._firePress, this]
|
|
209
|
+
});
|
|
184
210
|
};
|
|
185
211
|
|
|
186
212
|
return Item;
|