@openui5/sap.ui.table 1.142.0 → 1.142.1
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/REUSE.toml +1 -1
- package/THIRDPARTY.txt +2 -2
- 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 +1 -1
- package/src/sap/ui/table/RowActionItem.js +1 -7
- package/src/sap/ui/table/RowSettings.js +1 -1
- package/src/sap/ui/table/Table.js +1 -1
- package/src/sap/ui/table/TablePersoController.js +1 -1
- package/src/sap/ui/table/TableRenderer.js +42 -23
- package/src/sap/ui/table/TreeTable.js +1 -1
- package/src/sap/ui/table/extensions/Accessibility.js +56 -16
- 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/messagebundle.properties +12 -0
- package/src/sap/ui/table/plugins/BindingSelection.js +1 -1
- package/src/sap/ui/table/plugins/MultiSelectionPlugin.js +1 -1
- 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/rules/ColumnTemplate.support.js +2 -7
- 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/REUSE.toml
CHANGED
|
@@ -385,7 +385,7 @@ SPDX-FileComment = "these files belong to: handlebars"
|
|
|
385
385
|
[[annotations]]
|
|
386
386
|
path = "src/sap.ui.core/src/sap/ui/thirdparty/require.js"
|
|
387
387
|
precedence = "aggregate"
|
|
388
|
-
SPDX-FileCopyrightText = "2010-
|
|
388
|
+
SPDX-FileCopyrightText = "2010-2024, jQuery Foundation and other contributors"
|
|
389
389
|
SPDX-License-Identifier = "MIT"
|
|
390
390
|
SPDX-FileComment = "these files belong to: requireJS"
|
|
391
391
|
|
package/THIRDPARTY.txt
CHANGED
|
@@ -254,8 +254,8 @@ License: MIT
|
|
|
254
254
|
License Text: https://github.com/UI5/openui5/blob/master/LICENSES/MIT.txt
|
|
255
255
|
Contained in: src/sap.ui.core/src/sap/ui/thirdparty/handlebars.js
|
|
256
256
|
|
|
257
|
-
Component: requireJS, version: 2.
|
|
258
|
-
Copyright: 2010-
|
|
257
|
+
Component: requireJS, version: 2.3.7
|
|
258
|
+
Copyright: 2010-2024, jQuery Foundation and other contributors
|
|
259
259
|
License: MIT
|
|
260
260
|
License Text: https://github.com/UI5/openui5/blob/master/LICENSES/MIT.txt
|
|
261
261
|
Contained in: src/sap.ui.core/src/sap/ui/thirdparty/require.js
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openui5/sap.ui.table",
|
|
3
|
-
"version": "1.142.
|
|
3
|
+
"version": "1.142.1",
|
|
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.142.
|
|
18
|
-
"@openui5/sap.ui.unified": "1.142.
|
|
17
|
+
"@openui5/sap.ui.core": "1.142.1",
|
|
18
|
+
"@openui5/sap.ui.unified": "1.142.1"
|
|
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.142.
|
|
9
|
+
<version>1.142.1</version>
|
|
10
10
|
|
|
11
11
|
<documentation>Table-like controls, mainly for desktop scenarios.</documentation>
|
|
12
12
|
|
package/src/sap/ui/table/Row.js
CHANGED
|
@@ -36,7 +36,7 @@ sap.ui.define([
|
|
|
36
36
|
* @extends sap.ui.core.Element
|
|
37
37
|
*
|
|
38
38
|
* @author SAP SE
|
|
39
|
-
* @version 1.142.
|
|
39
|
+
* @version 1.142.1
|
|
40
40
|
* @since 1.45
|
|
41
41
|
*
|
|
42
42
|
* @constructor
|
|
@@ -100,9 +100,6 @@ sap.ui.define([
|
|
|
100
100
|
return TableUtils.isA(oParent, "sap.ui.table.RowAction") ? oParent : null;
|
|
101
101
|
};
|
|
102
102
|
|
|
103
|
-
/**
|
|
104
|
-
* @inheritDoc
|
|
105
|
-
*/
|
|
106
103
|
Item.prototype.setIcon = function(sIcon) {
|
|
107
104
|
this.setProperty("icon", sIcon, true);
|
|
108
105
|
if (this._oIcon) {
|
|
@@ -111,9 +108,6 @@ sap.ui.define([
|
|
|
111
108
|
return this;
|
|
112
109
|
};
|
|
113
110
|
|
|
114
|
-
/**
|
|
115
|
-
* @inheritDoc
|
|
116
|
-
*/
|
|
117
111
|
Item.prototype.setText = function(sText) {
|
|
118
112
|
this.setProperty("text", sText, true);
|
|
119
113
|
if (this._oIcon) {
|
|
@@ -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.142.
|
|
30
|
+
* @version 1.142.1
|
|
31
31
|
*
|
|
32
32
|
* @constructor
|
|
33
33
|
* @public
|
|
@@ -97,6 +97,7 @@ sap.ui.define([
|
|
|
97
97
|
}
|
|
98
98
|
|
|
99
99
|
const oScrollExtension = oTable._getScrollExtension();
|
|
100
|
+
const oAccRenderExtension = oTable._getAccRenderExtension();
|
|
100
101
|
if (oScrollExtension.isVerticalScrollbarRequired() && !oScrollExtension.isVerticalScrollbarExternal()) {
|
|
101
102
|
rm.class("sapUiTableVScr"); // show vertical scrollbar
|
|
102
103
|
}
|
|
@@ -186,7 +187,7 @@ sap.ui.define([
|
|
|
186
187
|
this.renderTabElement(rm, "sapUiTableCtrlBefore", bDummyTabbable ? "0" : "-1");
|
|
187
188
|
|
|
188
189
|
rm.openStart("div", oTable.getId() + "-sapUiTableGridCnt");
|
|
189
|
-
|
|
190
|
+
oAccRenderExtension.writeAriaAttributesFor(rm, oTable, "Content");
|
|
190
191
|
rm.openEnd();
|
|
191
192
|
|
|
192
193
|
this.renderColRsz(rm, oTable);
|
|
@@ -206,12 +207,12 @@ sap.ui.define([
|
|
|
206
207
|
this.renderHSbBackground(rm, oTable);
|
|
207
208
|
this.renderHSb(rm, oTable);
|
|
208
209
|
|
|
209
|
-
|
|
210
|
+
oAccRenderExtension.writeHiddenAccTexts(rm, oTable);
|
|
210
211
|
|
|
211
212
|
rm.openStart("div", oTable.getId() + "-overlay");
|
|
212
213
|
rm.class("sapUiTableOverlayArea");
|
|
213
214
|
rm.attr("tabindex", "0");
|
|
214
|
-
|
|
215
|
+
oAccRenderExtension.writeAriaAttributesFor(rm, oTable, "Overlay");
|
|
215
216
|
rm.openEnd();
|
|
216
217
|
rm.close("div");
|
|
217
218
|
|
|
@@ -415,12 +416,28 @@ sap.ui.define([
|
|
|
415
416
|
let bEnabled = false;
|
|
416
417
|
let bSelAll = false;
|
|
417
418
|
const mRenderConfig = oTable._getSelectionPlugin().getRenderConfig();
|
|
419
|
+
const oAccRenderExtension = oTable._getAccRenderExtension();
|
|
418
420
|
|
|
419
421
|
rm.openStart("div");
|
|
420
|
-
|
|
422
|
+
oAccRenderExtension.writeAriaAttributesFor(rm, oTable, "ColumnRowHeaderRow");
|
|
421
423
|
rm.openEnd();
|
|
422
|
-
|
|
423
|
-
|
|
424
|
+
|
|
425
|
+
const iHeaderRowCount = TableUtils.getHeaderRowCount(oTable);
|
|
426
|
+
if (iHeaderRowCount > 1) {
|
|
427
|
+
// In multi label scenario extra hidden cells are rendered in order to maintain correct aria-ownns relationship for each header row. They
|
|
428
|
+
// are rendered in the same row which does not affect the announcement because the row has aria-hidden.
|
|
429
|
+
for (let i = 0; i < iHeaderRowCount - 1; i++) {
|
|
430
|
+
rm.openStart("div", oTable.getId() + "-rowcolhdr" + i);
|
|
431
|
+
oAccRenderExtension.writeAriaAttributesFor(rm, oTable, "ColumnRowHeaderCell", {bLabel: false});
|
|
432
|
+
rm.openEnd();
|
|
433
|
+
rm.close("div");
|
|
434
|
+
}
|
|
435
|
+
rm.openStart("div", oTable.getId() + "-rowcolhdr" + (iHeaderRowCount - 1));
|
|
436
|
+
} else {
|
|
437
|
+
rm.openStart("div", oTable.getId() + "-rowcolhdr");
|
|
438
|
+
}
|
|
439
|
+
|
|
440
|
+
oAccRenderExtension.writeAriaAttributesFor(rm, oTable, "ColumnRowHeaderCell", {bLabel: true});
|
|
424
441
|
rm.openEnd();
|
|
425
442
|
rm.openStart("div", oTable.getId() + "-selall");
|
|
426
443
|
|
|
@@ -458,7 +475,7 @@ sap.ui.define([
|
|
|
458
475
|
enabled: bEnabled,
|
|
459
476
|
checked: bSelAll
|
|
460
477
|
};
|
|
461
|
-
|
|
478
|
+
oAccRenderExtension.writeAriaAttributesFor(rm, oTable, "ColumnRowHeader", oParams);
|
|
462
479
|
|
|
463
480
|
rm.openEnd();
|
|
464
481
|
|
|
@@ -627,11 +644,12 @@ sap.ui.define([
|
|
|
627
644
|
// =============================================================================
|
|
628
645
|
|
|
629
646
|
TableRenderer.renderRowHdr = function(rm, oTable) {
|
|
647
|
+
const oAccRenderExtension = oTable._getAccRenderExtension();
|
|
630
648
|
rm.openStart("div", oTable.getId() + "-sapUiTableRowHdrScr");
|
|
631
|
-
|
|
649
|
+
oAccRenderExtension.writeAriaAttributesFor(rm, oTable, "Presentation");
|
|
632
650
|
rm.class("sapUiTableRowHdrScr");
|
|
633
651
|
rm.class("sapUiTableNoOpacity");
|
|
634
|
-
|
|
652
|
+
oAccRenderExtension.writeAriaAttributesFor(rm, oTable, "RowHeaderCol");
|
|
635
653
|
rm.openEnd();
|
|
636
654
|
|
|
637
655
|
// start with the first current top visible row
|
|
@@ -688,9 +706,10 @@ sap.ui.define([
|
|
|
688
706
|
|
|
689
707
|
TableRenderer.renderRowAddon = function(rm, oTable, oRow, iRowIndex, bHeader) {
|
|
690
708
|
const bRowSelected = oRow._isSelected();
|
|
709
|
+
const oAccRenderExtension = oTable._getAccRenderExtension();
|
|
691
710
|
|
|
692
711
|
rm.openStart("div");
|
|
693
|
-
|
|
712
|
+
oAccRenderExtension.writeAriaAttributesFor(rm, oTable, "RowAddon");
|
|
694
713
|
|
|
695
714
|
rm.attr("data-sap-ui-related", oRow.getId());
|
|
696
715
|
rm.attr("data-sap-ui-rowindex", iRowIndex);
|
|
@@ -725,7 +744,7 @@ sap.ui.define([
|
|
|
725
744
|
rowSelected: bRowSelected,
|
|
726
745
|
rowHidden: oRow.isEmpty()
|
|
727
746
|
};
|
|
728
|
-
|
|
747
|
+
oAccRenderExtension.writeAriaAttributesFor(rm, oTable, bHeader ? "RowHeader" : "RowAction", oParams);
|
|
729
748
|
|
|
730
749
|
rm.openEnd();
|
|
731
750
|
if (bHeader) {
|
|
@@ -824,7 +843,8 @@ sap.ui.define([
|
|
|
824
843
|
rm.class(sClass);
|
|
825
844
|
});
|
|
826
845
|
|
|
827
|
-
oTable._getAccRenderExtension()
|
|
846
|
+
const oAccRenderExtension = oTable._getAccRenderExtension();
|
|
847
|
+
oAccRenderExtension.writeAriaAttributesFor(rm, oTable, bHeader ? "Presentation" : "Table");
|
|
828
848
|
|
|
829
849
|
rm.class("sapUiTableCtrl");
|
|
830
850
|
if (bHeader) {
|
|
@@ -890,7 +910,7 @@ sap.ui.define([
|
|
|
890
910
|
if (oColParam.shouldRender) {
|
|
891
911
|
if (iStartRow === 0) {
|
|
892
912
|
rm.openStart("th", oTable.getId() + sSuffix + iCol);
|
|
893
|
-
|
|
913
|
+
oAccRenderExtension.writeAriaAttributesFor(rm, oTable, "Th", {column: oColumn});
|
|
894
914
|
} else {
|
|
895
915
|
rm.openStart("th");
|
|
896
916
|
}
|
|
@@ -915,7 +935,7 @@ sap.ui.define([
|
|
|
915
935
|
// dummy column to fill the table width
|
|
916
936
|
if (bRenderDummyColumn) {
|
|
917
937
|
rm.openStart("th", bHeader && oTable.getId() + "-dummycolhdr");
|
|
918
|
-
|
|
938
|
+
oAccRenderExtension.writeAriaAttributesFor(rm, oTable, "Presentation");
|
|
919
939
|
rm.openEnd().close("th");
|
|
920
940
|
}
|
|
921
941
|
|
|
@@ -1016,7 +1036,8 @@ sap.ui.define([
|
|
|
1016
1036
|
rm.class("sapUiTableRow");
|
|
1017
1037
|
rm.class("sapUiTableHeaderRow");
|
|
1018
1038
|
rm.class("sapUiTableColHdrTr");
|
|
1019
|
-
oTable._getAccRenderExtension()
|
|
1039
|
+
const oAccRenderExtension = oTable._getAccRenderExtension();
|
|
1040
|
+
oAccRenderExtension.writeAriaAttributesFor(rm, oTable, "ColumnHeaderRow", {rowIndex: iRow, fixedCol: bFixedTable});
|
|
1020
1041
|
rm.openEnd();
|
|
1021
1042
|
|
|
1022
1043
|
//
|
|
@@ -1068,7 +1089,7 @@ sap.ui.define([
|
|
|
1068
1089
|
|
|
1069
1090
|
if (!bFixedTable && bHasOnlyFixedColumns && aColumns.length > 0) {
|
|
1070
1091
|
rm.openStart("td").class("sapUiTableCellDummy");
|
|
1071
|
-
|
|
1092
|
+
oAccRenderExtension.writeAriaAttributesFor(rm, oTable, "Presentation");
|
|
1072
1093
|
rm.openEnd().close("td");
|
|
1073
1094
|
}
|
|
1074
1095
|
rm.close("tr");
|
|
@@ -1118,7 +1139,8 @@ sap.ui.define([
|
|
|
1118
1139
|
fixedCol: bFixedTable,
|
|
1119
1140
|
rowNavigated: oRowSettings ? oRowSettings.getNavigated() : false
|
|
1120
1141
|
};
|
|
1121
|
-
oTable._getAccRenderExtension()
|
|
1142
|
+
const oAccRenderExtension = oTable._getAccRenderExtension();
|
|
1143
|
+
oAccRenderExtension.writeAriaAttributesFor(rm, oTable, "Tr", oParams);
|
|
1122
1144
|
|
|
1123
1145
|
rm.openEnd();
|
|
1124
1146
|
|
|
@@ -1130,14 +1152,14 @@ sap.ui.define([
|
|
|
1130
1152
|
}
|
|
1131
1153
|
if (!bFixedTable && bHasOnlyFixedColumns && aCells.length > 0) {
|
|
1132
1154
|
rm.openStart("td").class("sapUiTableCellDummy");
|
|
1133
|
-
|
|
1155
|
+
oAccRenderExtension.writeAriaAttributesFor(rm, oTable, "Presentation");
|
|
1134
1156
|
rm.openEnd();
|
|
1135
1157
|
rm.close("td");
|
|
1136
1158
|
}
|
|
1137
1159
|
rm.close("tr");
|
|
1138
1160
|
};
|
|
1139
1161
|
|
|
1140
|
-
TableRenderer.renderTableCell = function(rm, oTable, oRow, oCell, iCellIndex, bFixedTable, iStartColumn, iEndColumn, aVisibleColumns, iLastFixedColumnIndex
|
|
1162
|
+
TableRenderer.renderTableCell = function(rm, oTable, oRow, oCell, iCellIndex, bFixedTable, iStartColumn, iEndColumn, aVisibleColumns, iLastFixedColumnIndex) {
|
|
1141
1163
|
const oColumn = Column.ofCell(oCell);
|
|
1142
1164
|
const iColIndex = oColumn.getIndex();
|
|
1143
1165
|
|
|
@@ -1153,10 +1175,7 @@ sap.ui.define([
|
|
|
1153
1175
|
const bIsLastFixedColumn = bFixedTable && iLastFixedColumnIndex === iColIndex;
|
|
1154
1176
|
|
|
1155
1177
|
const oParams = {
|
|
1156
|
-
column: oColumn
|
|
1157
|
-
row: oRow,
|
|
1158
|
-
fixed: bFixedTable,
|
|
1159
|
-
rowSelected: bSelected
|
|
1178
|
+
column: oColumn
|
|
1160
1179
|
};
|
|
1161
1180
|
oTable._getAccRenderExtension().writeAriaAttributesFor(rm, oTable, "DataCell", oParams);
|
|
1162
1181
|
|
|
@@ -38,7 +38,7 @@ sap.ui.define([
|
|
|
38
38
|
* The control can be used in combination with {@link sap.ui.model.json.JSONModel JSONModel} and {@link sap.ui.model.odata.v2.ODataModel ODataModel V2}.
|
|
39
39
|
* For a tree-table-like behavior with OData V4 services, use the {@link sap.ui.table.Table Table} control with the {@link sap.ui.table.plugins.ODataV4Hierarchy ODataV4Hierarchy} plugin.
|
|
40
40
|
* @extends sap.ui.table.Table
|
|
41
|
-
* @version 1.142.
|
|
41
|
+
* @version 1.142.1
|
|
42
42
|
*
|
|
43
43
|
* @constructor
|
|
44
44
|
* @public
|
|
@@ -449,6 +449,12 @@ sap.ui.define([
|
|
|
449
449
|
let sText = "";
|
|
450
450
|
if (oInfo) {
|
|
451
451
|
sText = oInfo.description;
|
|
452
|
+
if (bIsTreeColumnCell && !bHidden) {
|
|
453
|
+
const sExpandCollapseButtonText = oTableInstances.row.isExpanded() ?
|
|
454
|
+
TableUtils.getResourceText("TBL_COLLAPSE_BUTTON") : TableUtils.getResourceText("TBL_EXPAND_BUTTON");
|
|
455
|
+
|
|
456
|
+
sText = sExpandCollapseButtonText.concat(" ", oInfo.description);
|
|
457
|
+
}
|
|
452
458
|
if (TableUtils.getInteractiveElements($Cell) !== null) {
|
|
453
459
|
sText = TableUtils.getResourceText("TBL_CELL_INCLUDES", [sText]);
|
|
454
460
|
}
|
|
@@ -634,10 +640,26 @@ sap.ui.define([
|
|
|
634
640
|
|
|
635
641
|
/**
|
|
636
642
|
* Returns the aria attributes for the column row header cell.
|
|
643
|
+
*
|
|
644
|
+
* @param {sap.ui.table.extensions.Accessibility} oExtension The accessibility extension
|
|
645
|
+
* @param {{bLabel: boolean}} mParams Whether an aria-label should be added
|
|
637
646
|
* @returns {object} An object containing the aria attributes
|
|
638
647
|
*/
|
|
639
|
-
getAriaAttributesForColumnRowHeaderCell: function() {
|
|
640
|
-
|
|
648
|
+
getAriaAttributesForColumnRowHeaderCell: function(oExtension, mParams) {
|
|
649
|
+
const mAttributes = {"role": "columnheader"};
|
|
650
|
+
const oTable = oExtension.getTable();
|
|
651
|
+
const sSelectionMode = oTable.getSelectionMode();
|
|
652
|
+
|
|
653
|
+
if (mParams.bLabel) {
|
|
654
|
+
if (sSelectionMode !== SelectionMode.None) {
|
|
655
|
+
mAttributes["aria-label"] = TableUtils.getResourceText("TBL_TABLE_SELECTION_COLUMNHEADER");
|
|
656
|
+
} else if (TableUtils.hasRowHeader(oTable)) {
|
|
657
|
+
// Table has no selection, but because group mode is active, selection column is still visible with focusable row header cells.
|
|
658
|
+
mAttributes["aria-label"] = TableUtils.getResourceText("TBL_ROW_SELECTION_COLUMN_LABEL");
|
|
659
|
+
}
|
|
660
|
+
}
|
|
661
|
+
|
|
662
|
+
return mAttributes;
|
|
641
663
|
},
|
|
642
664
|
|
|
643
665
|
/**
|
|
@@ -725,8 +747,8 @@ sap.ui.define([
|
|
|
725
747
|
* Returns the aria attributes for a column header.
|
|
726
748
|
*
|
|
727
749
|
* @param {sap.ui.table.extensions.Accessibility} oExtension The accessibility extension
|
|
728
|
-
* @param {{column: sap.ui.table.Column, headerId: string,
|
|
729
|
-
* column, the id of the header cell,
|
|
750
|
+
* @param {{column: sap.ui.table.Column, headerId: string, colspan: boolean}} mParams An object containing the instance of the
|
|
751
|
+
* column, the id of the header cell, and whether the column has span
|
|
730
752
|
* @returns {object} An object containing the aria attributes
|
|
731
753
|
*/
|
|
732
754
|
getAriaAttributesForColumnHeader: function(oExtension, mParams) {
|
|
@@ -778,9 +800,7 @@ sap.ui.define([
|
|
|
778
800
|
* Returns the aria attributes for a data cell.
|
|
779
801
|
*
|
|
780
802
|
* @param {sap.ui.table.extensions.Accessibility} oExtension The accessibility extension
|
|
781
|
-
* @param {{
|
|
782
|
-
* containing the index of the row, the instance of the column, the instance of the row, whether the column is fixed and whether the row is
|
|
783
|
-
* selected
|
|
803
|
+
* @param {{column: sap.ui.table.Column}} mParams An object containing the instance of the column
|
|
784
804
|
* @returns {object} An object containing the aria attributes
|
|
785
805
|
*/
|
|
786
806
|
getAriaAttributesForDataCell: function(oExtension, mParams) {
|
|
@@ -820,7 +840,9 @@ sap.ui.define([
|
|
|
820
840
|
const sTableId = oTable.getId();
|
|
821
841
|
|
|
822
842
|
mAttributes["role"] = TableUtils.Grouping.isInGroupMode(oTable) || TableUtils.Grouping.isInTreeMode(oTable) ? "treegrid" : "grid";
|
|
823
|
-
|
|
843
|
+
if (oTable.getSelectionMode() !== SelectionMode.None) {
|
|
844
|
+
mAttributes["aria-describedby"] = [sTableId + "-ariaselection"];
|
|
845
|
+
}
|
|
824
846
|
mAttributes["aria-labelledby"] = [].concat(oTable.getAriaLabelledBy());
|
|
825
847
|
if (oTable.getTitle()) {
|
|
826
848
|
mAttributes["aria-labelledby"].push(oTable.getTitle().getId());
|
|
@@ -891,23 +913,37 @@ sap.ui.define([
|
|
|
891
913
|
* Returns the aria attributes for the row that contains the column headers.
|
|
892
914
|
*
|
|
893
915
|
* @param {sap.ui.table.extensions.Accessibility} oExtension The accessibility extension
|
|
894
|
-
* @param {
|
|
895
|
-
* @param {int} mParams.rowIndex The index of the row
|
|
916
|
+
* @param {{rowIndex: int, fixedCol: boolean}} mParams An object containing the index of the row and whether the column is fixed
|
|
896
917
|
* @returns {object} An object containing the aria attributes
|
|
897
918
|
*/
|
|
898
919
|
getAriaAttributesForColumnHeaderRow: function(oExtension, mParams) {
|
|
899
920
|
const mAttributes = {"role": "row"};
|
|
921
|
+
if (mParams.fixedCol) {
|
|
922
|
+
return mAttributes;
|
|
923
|
+
}
|
|
900
924
|
const oTable = oExtension.getTable();
|
|
901
925
|
const sTableId = oTable.getId();
|
|
902
926
|
|
|
903
927
|
mAttributes["aria-rowindex"] = mParams.rowIndex + 1;
|
|
904
928
|
mAttributes["aria-owns"] = [];
|
|
905
|
-
if (TableUtils.hasRowHeader(oTable)) {
|
|
906
|
-
mAttributes["aria-owns"].push(sTableId + "-rowcolhdr");
|
|
907
|
-
}
|
|
908
929
|
|
|
909
|
-
|
|
910
|
-
|
|
930
|
+
const aVisibleColumns = oTable._getVisibleColumns();
|
|
931
|
+
if (TableUtils.getHeaderRowCount(oTable) > 1) {
|
|
932
|
+
if (TableUtils.hasRowHeader(oTable)) {
|
|
933
|
+
mAttributes["aria-owns"].push(sTableId + "-rowcolhdr" + mParams.rowIndex);
|
|
934
|
+
}
|
|
935
|
+
let j = 0;
|
|
936
|
+
while (j < TableUtils.getVisibleColumnCount(oTable)) {
|
|
937
|
+
mAttributes["aria-owns"].push(aVisibleColumns[j].getId() + (mParams.rowIndex > 0 ? "_" + mParams.rowIndex : ""));
|
|
938
|
+
j += parseInt(aVisibleColumns[j].getHeaderSpan()[mParams.rowIndex]) || 1;
|
|
939
|
+
}
|
|
940
|
+
} else {
|
|
941
|
+
if (TableUtils.hasRowHeader(oTable)) {
|
|
942
|
+
mAttributes["aria-owns"].push(sTableId + "-rowcolhdr");
|
|
943
|
+
}
|
|
944
|
+
for (let j = 0; j < TableUtils.getVisibleColumnCount(oTable); j++) {
|
|
945
|
+
mAttributes["aria-owns"].push(aVisibleColumns[j].getId());
|
|
946
|
+
}
|
|
911
947
|
}
|
|
912
948
|
|
|
913
949
|
if (TableUtils.hasRowActions(oTable)) {
|
|
@@ -978,6 +1014,10 @@ sap.ui.define([
|
|
|
978
1014
|
mAttributes["aria-current"] = true;
|
|
979
1015
|
}
|
|
980
1016
|
|
|
1017
|
+
if (mParams.fixedCol) {
|
|
1018
|
+
return mAttributes;
|
|
1019
|
+
}
|
|
1020
|
+
|
|
981
1021
|
mAttributes["aria-owns"] = [];
|
|
982
1022
|
if (TableUtils.hasRowHeader(oTable)) {
|
|
983
1023
|
mAttributes["aria-owns"].push(sTableId + "-rowsel" + mParams.index);
|
|
@@ -1143,7 +1183,7 @@ sap.ui.define([
|
|
|
1143
1183
|
* @class Extension for sap.ui.table.Table which handles ACC related things.
|
|
1144
1184
|
* @extends sap.ui.table.extensions.ExtensionBase
|
|
1145
1185
|
* @author SAP SE
|
|
1146
|
-
* @version 1.142.
|
|
1186
|
+
* @version 1.142.1
|
|
1147
1187
|
* @constructor
|
|
1148
1188
|
* @private
|
|
1149
1189
|
* @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.142.
|
|
47
|
+
* @version 1.142.1
|
|
48
48
|
* @constructor
|
|
49
49
|
* @private
|
|
50
50
|
* @alias sap.ui.table.extensions.AccessibilityRender
|
|
@@ -265,7 +265,7 @@ sap.ui.define([
|
|
|
265
265
|
* @class Extension for sap.ui.table.Table which handles keyboard related things.
|
|
266
266
|
* @extends sap.ui.table.extensions.ExtensionBase
|
|
267
267
|
* @author SAP SE
|
|
268
|
-
* @version 1.142.
|
|
268
|
+
* @version 1.142.1
|
|
269
269
|
* @constructor
|
|
270
270
|
* @private
|
|
271
271
|
* @alias sap.ui.table.extensions.Keyboard
|
|
@@ -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.142.
|
|
673
|
+
* @version 1.142.1
|
|
674
674
|
* @constructor
|
|
675
675
|
* @private
|
|
676
676
|
* @alias sap.ui.table.extensions.Pointer
|
|
@@ -2314,7 +2314,7 @@ sap.ui.define([
|
|
|
2314
2314
|
* @class Extension for sap.ui.table.Table which handles scrolling.
|
|
2315
2315
|
* @extends sap.ui.table.extensions.ExtensionBase
|
|
2316
2316
|
* @author SAP SE
|
|
2317
|
-
* @version 1.142.
|
|
2317
|
+
* @version 1.142.1
|
|
2318
2318
|
* @constructor
|
|
2319
2319
|
* @private
|
|
2320
2320
|
* @alias sap.ui.table.extensions.Scrolling
|
|
@@ -29,7 +29,7 @@ sap.ui.define([
|
|
|
29
29
|
* @class Extension for sap.ui.table.Table which handles the scrollbar on iOS.
|
|
30
30
|
* @extends sap.ui.table.extensions.ExtensionBase
|
|
31
31
|
* @author SAP SE
|
|
32
|
-
* @version 1.142.
|
|
32
|
+
* @version 1.142.1
|
|
33
33
|
* @constructor
|
|
34
34
|
* @private
|
|
35
35
|
* @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.142.
|
|
188
|
+
* @version 1.142.1
|
|
189
189
|
* @constructor
|
|
190
190
|
* @private
|
|
191
191
|
* @alias sap.ui.table.extensions.Synchronization
|
|
@@ -40,14 +40,14 @@ sap.ui.define([
|
|
|
40
40
|
* @namespace
|
|
41
41
|
* @alias sap.ui.table
|
|
42
42
|
* @author SAP SE
|
|
43
|
-
* @version 1.142.
|
|
43
|
+
* @version 1.142.1
|
|
44
44
|
* @since 0.8
|
|
45
45
|
* @public
|
|
46
46
|
*/
|
|
47
47
|
const thisLib = Library.init({
|
|
48
48
|
name: "sap.ui.table",
|
|
49
49
|
apiVersion: 2,
|
|
50
|
-
version: "1.142.
|
|
50
|
+
version: "1.142.1",
|
|
51
51
|
dependencies: ["sap.ui.core", "sap.ui.unified"],
|
|
52
52
|
...{
|
|
53
53
|
interactionDocumentation: true
|
|
@@ -114,7 +114,7 @@ sap.ui.define([
|
|
|
114
114
|
/**
|
|
115
115
|
* Navigation mode of the table
|
|
116
116
|
*
|
|
117
|
-
* @version 1.142.
|
|
117
|
+
* @version 1.142.1
|
|
118
118
|
* @enum {string}
|
|
119
119
|
* @deprecated As of version 1.38, the concept has been discarded.
|
|
120
120
|
* @public
|
|
@@ -145,7 +145,7 @@ sap.ui.define([
|
|
|
145
145
|
/**
|
|
146
146
|
* Row Action types.
|
|
147
147
|
*
|
|
148
|
-
* @version 1.142.
|
|
148
|
+
* @version 1.142.1
|
|
149
149
|
* @enum {string}
|
|
150
150
|
* @public
|
|
151
151
|
*/
|
|
@@ -176,7 +176,7 @@ sap.ui.define([
|
|
|
176
176
|
/**
|
|
177
177
|
* Selection behavior of the table
|
|
178
178
|
*
|
|
179
|
-
* @version 1.142.
|
|
179
|
+
* @version 1.142.1
|
|
180
180
|
* @enum {string}
|
|
181
181
|
* @public
|
|
182
182
|
*/
|
|
@@ -207,7 +207,7 @@ sap.ui.define([
|
|
|
207
207
|
/**
|
|
208
208
|
* Selection mode of the table
|
|
209
209
|
*
|
|
210
|
-
* @version 1.142.
|
|
210
|
+
* @version 1.142.1
|
|
211
211
|
* @enum {string}
|
|
212
212
|
* @public
|
|
213
213
|
*/
|
|
@@ -245,7 +245,7 @@ sap.ui.define([
|
|
|
245
245
|
/**
|
|
246
246
|
* Sort order of a column
|
|
247
247
|
*
|
|
248
|
-
* @version 1.142.
|
|
248
|
+
* @version 1.142.1
|
|
249
249
|
* @enum {string}
|
|
250
250
|
* @public
|
|
251
251
|
* @deprecated As of version 1.120, replaced with <code>sap.ui.core.SortOrder</code>
|
|
@@ -272,7 +272,7 @@ sap.ui.define([
|
|
|
272
272
|
/**
|
|
273
273
|
* VisibleRowCountMode of the table
|
|
274
274
|
*
|
|
275
|
-
* @version 1.142.
|
|
275
|
+
* @version 1.142.1
|
|
276
276
|
* @enum {string}
|
|
277
277
|
* @deprecated As of version 1.119, see the <code>rowMode</code> aggregation of <code>sap.ui.table.Table</code> for more details.
|
|
278
278
|
* @public
|
|
@@ -317,7 +317,7 @@ sap.ui.define([
|
|
|
317
317
|
*
|
|
318
318
|
* Contains IDs of shared DOM references, which should be accessible to inheriting controls via getDomRef() function.
|
|
319
319
|
*
|
|
320
|
-
* @version 1.142.
|
|
320
|
+
* @version 1.142.1
|
|
321
321
|
* @enum {string}
|
|
322
322
|
* @public
|
|
323
323
|
*/
|
|
@@ -418,7 +418,7 @@ sap.ui.define([
|
|
|
418
418
|
*
|
|
419
419
|
* This is an alias for {@link sap.ui.model.TreeAutoExpandMode} and kept for compatibility reasons.
|
|
420
420
|
*
|
|
421
|
-
* @version 1.142.
|
|
421
|
+
* @version 1.142.1
|
|
422
422
|
* @typedef {sap.ui.model.TreeAutoExpandMode}
|
|
423
423
|
* @public
|
|
424
424
|
* @deprecated As of version 1.120, replaced by <code>sap.ui.model.TreeAutoExpandMode</code>
|
|
@@ -91,6 +91,12 @@ TBL_DESELECT_ALL=Deselect All
|
|
|
91
91
|
#XACT: accessibility text for announcing the cell content
|
|
92
92
|
TBL_CELL_INCLUDES=Includes {0}
|
|
93
93
|
|
|
94
|
+
#XACT: accessibility text for announcing the expand button in a tree table
|
|
95
|
+
TBL_EXPAND_BUTTON=Expand Button
|
|
96
|
+
|
|
97
|
+
#XACT: accessibility text for announcing the collapse button in a tree table
|
|
98
|
+
TBL_COLLAPSE_BUTTON=Collapse Button
|
|
99
|
+
|
|
94
100
|
#XTOL: Tooltip of the button to expand/collapse a tree table node
|
|
95
101
|
TBL_COLLAPSE_EXPAND=Expand / Collapse Node
|
|
96
102
|
|
|
@@ -184,9 +190,15 @@ TBL_ROW_STATE_NAVIGATED=Navigated
|
|
|
184
190
|
#XACT: accessibilty description for expanding the table row via keyboard
|
|
185
191
|
TBL_ROW_EXPAND_KEY=To expand row press SPACEBAR
|
|
186
192
|
|
|
193
|
+
#XACT: accessibilty description for expanding the table row via keyboard when cell selection is enabled
|
|
194
|
+
TBL_ROW_EXPAND_KEY_ALTERNATIVE=To expand row press ENTER
|
|
195
|
+
|
|
187
196
|
#XACT: accessibilty description for collapsing the table row via keyboard
|
|
188
197
|
TBL_ROW_COLLAPSE_KEY=To collapse row press SPACEBAR
|
|
189
198
|
|
|
199
|
+
#XACT: accessibilty description for collapsing the table row via keyboard when cell selection is enabled
|
|
200
|
+
TBL_ROW_COLLAPSE_KEY_ALTERNATIVE=To collapse row press ENTER
|
|
201
|
+
|
|
190
202
|
#XBUT: Text of the apply button to save the data entered in the "creation row", a form in the table for creating new rows.
|
|
191
203
|
TBL_CREATIONROW_APPLY=Add Row
|
|
192
204
|
|
|
@@ -40,7 +40,7 @@ sap.ui.define([
|
|
|
40
40
|
* @public
|
|
41
41
|
*
|
|
42
42
|
* @author SAP SE
|
|
43
|
-
* @version 1.142.
|
|
43
|
+
* @version 1.142.1
|
|
44
44
|
*/
|
|
45
45
|
const InteractiveRowMode = RowMode.extend("sap.ui.table.rowmodes.Interactive", /** @lends sap.ui.table.rowmodes.Interactive.prototype */ {
|
|
46
46
|
metadata: {
|
|
@@ -47,9 +47,9 @@ sap.ui.define([
|
|
|
47
47
|
minversion: "1.38",
|
|
48
48
|
categories: [Categories.Usage],
|
|
49
49
|
title: "Column template validation - 'sap.m.Text'",
|
|
50
|
-
description: "The 'wrapping'
|
|
50
|
+
description: "The 'wrapping' property of the control 'sap.m.Text' is set to 'true' "
|
|
51
51
|
+ "although the control is used as a column template.",
|
|
52
|
-
resolution: "Set the 'wrapping'
|
|
52
|
+
resolution: "Set the 'wrapping' property of the control 'sap.m.Text' to 'false' if the "
|
|
53
53
|
+ "control is used as a column template.",
|
|
54
54
|
check: function(oIssueManager, oCoreFacade, oScope) {
|
|
55
55
|
checkColumnTemplate(function(oTable, oColumn, oMTextTemplate) {
|
|
@@ -59,11 +59,6 @@ sap.ui.define([
|
|
|
59
59
|
SupportHelper.reportIssue(oIssueManager, "Column '" + sColumnId + "' of table '" + oTable.getId() + "' uses an "
|
|
60
60
|
+ "'sap.m.Text' control with wrapping enabled.", Severity.High, sColumnId);
|
|
61
61
|
}
|
|
62
|
-
if (oMTextTemplate.isBound("renderWhitespace") || (!oMTextTemplate.isBound("renderWhitespace")
|
|
63
|
-
&& oMTextTemplate.getRenderWhitespace())) {
|
|
64
|
-
SupportHelper.reportIssue(oIssueManager, "Column '" + sColumnId + "' of table '" + oTable.getId() + "' uses an "
|
|
65
|
-
+ "'sap.m.Text' control with renderWhitespace enabled.", Severity.High, sColumnId);
|
|
66
|
-
}
|
|
67
62
|
}, oScope, "sap.m.Text");
|
|
68
63
|
}
|
|
69
64
|
});
|
|
@@ -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.142.
|
|
21
|
+
* @version 1.142.1
|
|
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.142.
|
|
27
|
+
* @version 1.142.1
|
|
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.142.
|
|
24
|
+
* @version 1.142.1
|
|
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.142.
|
|
17
|
+
* @version 1.142.1
|
|
18
18
|
* @namespace
|
|
19
19
|
* @alias sap.ui.table.utils._MenuUtils
|
|
20
20
|
* @private
|