@openui5/sap.ui.table 1.142.0 → 1.143.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/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 -31
- package/src/sap/ui/table/TreeTable.js +1 -1
- package/src/sap/ui/table/extensions/Accessibility.js +53 -20
- package/src/sap/ui/table/extensions/AccessibilityRender.js +1 -1
- package/src/sap/ui/table/extensions/DragAndDrop.js +3 -3
- 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 +2 -2
- 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/messagebundle_ar.properties +8 -0
- package/src/sap/ui/table/messagebundle_bg.properties +8 -0
- package/src/sap/ui/table/messagebundle_ca.properties +8 -0
- package/src/sap/ui/table/messagebundle_cnr.properties +8 -0
- package/src/sap/ui/table/messagebundle_cs.properties +8 -0
- package/src/sap/ui/table/messagebundle_cy.properties +8 -0
- package/src/sap/ui/table/messagebundle_da.properties +8 -0
- package/src/sap/ui/table/messagebundle_de.properties +8 -0
- package/src/sap/ui/table/messagebundle_el.properties +8 -0
- package/src/sap/ui/table/messagebundle_en.properties +8 -0
- package/src/sap/ui/table/messagebundle_en_GB.properties +8 -0
- package/src/sap/ui/table/messagebundle_en_US_saprigi.properties +8 -0
- package/src/sap/ui/table/messagebundle_es.properties +9 -1
- package/src/sap/ui/table/messagebundle_es_MX.properties +8 -0
- package/src/sap/ui/table/messagebundle_et.properties +8 -0
- package/src/sap/ui/table/messagebundle_fi.properties +8 -0
- package/src/sap/ui/table/messagebundle_fr.properties +9 -1
- package/src/sap/ui/table/messagebundle_fr_CA.properties +8 -0
- package/src/sap/ui/table/messagebundle_hi.properties +8 -0
- package/src/sap/ui/table/messagebundle_hr.properties +8 -0
- package/src/sap/ui/table/messagebundle_hu.properties +8 -0
- package/src/sap/ui/table/messagebundle_id.properties +8 -0
- package/src/sap/ui/table/messagebundle_it.properties +8 -0
- package/src/sap/ui/table/messagebundle_iw.properties +8 -0
- package/src/sap/ui/table/messagebundle_ja.properties +8 -0
- package/src/sap/ui/table/messagebundle_kk.properties +8 -0
- package/src/sap/ui/table/messagebundle_ko.properties +8 -0
- package/src/sap/ui/table/messagebundle_lt.properties +8 -0
- package/src/sap/ui/table/messagebundle_lv.properties +8 -0
- package/src/sap/ui/table/messagebundle_mk.properties +8 -0
- package/src/sap/ui/table/messagebundle_ms.properties +8 -0
- package/src/sap/ui/table/messagebundle_nl.properties +8 -0
- package/src/sap/ui/table/messagebundle_no.properties +8 -0
- package/src/sap/ui/table/messagebundle_pl.properties +8 -0
- package/src/sap/ui/table/messagebundle_pt.properties +8 -0
- package/src/sap/ui/table/messagebundle_pt_PT.properties +8 -0
- package/src/sap/ui/table/messagebundle_ro.properties +8 -0
- package/src/sap/ui/table/messagebundle_ru.properties +8 -0
- package/src/sap/ui/table/messagebundle_sh.properties +8 -0
- package/src/sap/ui/table/messagebundle_sk.properties +8 -0
- package/src/sap/ui/table/messagebundle_sl.properties +8 -0
- package/src/sap/ui/table/messagebundle_sr.properties +8 -0
- package/src/sap/ui/table/messagebundle_sv.properties +8 -0
- package/src/sap/ui/table/messagebundle_th.properties +8 -0
- package/src/sap/ui/table/messagebundle_tr.properties +8 -0
- package/src/sap/ui/table/messagebundle_uk.properties +8 -0
- package/src/sap/ui/table/messagebundle_vi.properties +10 -2
- package/src/sap/ui/table/messagebundle_zh_CN.properties +8 -0
- package/src/sap/ui/table/messagebundle_zh_TW.properties +10 -2
- 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/themes/base/Row.less +2 -18
- package/src/sap/ui/table/themes/base/Table.less +1 -1
- package/src/sap/ui/table/themes/sap_hcb/base_Row.less +1 -17
- package/src/sap/ui/table/themes/sap_hcb/base_Table.less +1 -1
- 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.
|
|
3
|
+
"version": "1.143.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.143.0",
|
|
18
|
+
"@openui5/sap.ui.unified": "1.143.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.143.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
|
@@ -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.143.0
|
|
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.
|
|
30
|
+
* @version 1.143.0
|
|
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
|
|
|
@@ -473,14 +490,6 @@ sap.ui.define([
|
|
|
473
490
|
}
|
|
474
491
|
}
|
|
475
492
|
|
|
476
|
-
if (TableUtils.hasRowHeader(oTable) && oTable.getSelectionMode() === library.SelectionMode.None) {
|
|
477
|
-
rm.openStart("span", oTable.getId() + "-rowselecthdr");
|
|
478
|
-
rm.class("sapUiPseudoInvisibleText");
|
|
479
|
-
rm.openEnd();
|
|
480
|
-
rm.text(TableUtils.getResourceText("TBL_ROW_SELECTION_COLUMN_LABEL"));
|
|
481
|
-
rm.close("span");
|
|
482
|
-
}
|
|
483
|
-
|
|
484
493
|
rm.close("div").close("div").close("div");
|
|
485
494
|
};
|
|
486
495
|
|
|
@@ -627,11 +636,12 @@ sap.ui.define([
|
|
|
627
636
|
// =============================================================================
|
|
628
637
|
|
|
629
638
|
TableRenderer.renderRowHdr = function(rm, oTable) {
|
|
639
|
+
const oAccRenderExtension = oTable._getAccRenderExtension();
|
|
630
640
|
rm.openStart("div", oTable.getId() + "-sapUiTableRowHdrScr");
|
|
631
|
-
|
|
641
|
+
oAccRenderExtension.writeAriaAttributesFor(rm, oTable, "Presentation");
|
|
632
642
|
rm.class("sapUiTableRowHdrScr");
|
|
633
643
|
rm.class("sapUiTableNoOpacity");
|
|
634
|
-
|
|
644
|
+
oAccRenderExtension.writeAriaAttributesFor(rm, oTable, "RowHeaderCol");
|
|
635
645
|
rm.openEnd();
|
|
636
646
|
|
|
637
647
|
// start with the first current top visible row
|
|
@@ -688,9 +698,10 @@ sap.ui.define([
|
|
|
688
698
|
|
|
689
699
|
TableRenderer.renderRowAddon = function(rm, oTable, oRow, iRowIndex, bHeader) {
|
|
690
700
|
const bRowSelected = oRow._isSelected();
|
|
701
|
+
const oAccRenderExtension = oTable._getAccRenderExtension();
|
|
691
702
|
|
|
692
703
|
rm.openStart("div");
|
|
693
|
-
|
|
704
|
+
oAccRenderExtension.writeAriaAttributesFor(rm, oTable, "RowAddon");
|
|
694
705
|
|
|
695
706
|
rm.attr("data-sap-ui-related", oRow.getId());
|
|
696
707
|
rm.attr("data-sap-ui-rowindex", iRowIndex);
|
|
@@ -725,7 +736,7 @@ sap.ui.define([
|
|
|
725
736
|
rowSelected: bRowSelected,
|
|
726
737
|
rowHidden: oRow.isEmpty()
|
|
727
738
|
};
|
|
728
|
-
|
|
739
|
+
oAccRenderExtension.writeAriaAttributesFor(rm, oTable, bHeader ? "RowHeader" : "RowAction", oParams);
|
|
729
740
|
|
|
730
741
|
rm.openEnd();
|
|
731
742
|
if (bHeader) {
|
|
@@ -824,7 +835,8 @@ sap.ui.define([
|
|
|
824
835
|
rm.class(sClass);
|
|
825
836
|
});
|
|
826
837
|
|
|
827
|
-
oTable._getAccRenderExtension()
|
|
838
|
+
const oAccRenderExtension = oTable._getAccRenderExtension();
|
|
839
|
+
oAccRenderExtension.writeAriaAttributesFor(rm, oTable, bHeader ? "Presentation" : "Table");
|
|
828
840
|
|
|
829
841
|
rm.class("sapUiTableCtrl");
|
|
830
842
|
if (bHeader) {
|
|
@@ -890,7 +902,7 @@ sap.ui.define([
|
|
|
890
902
|
if (oColParam.shouldRender) {
|
|
891
903
|
if (iStartRow === 0) {
|
|
892
904
|
rm.openStart("th", oTable.getId() + sSuffix + iCol);
|
|
893
|
-
|
|
905
|
+
oAccRenderExtension.writeAriaAttributesFor(rm, oTable, "Th", {column: oColumn});
|
|
894
906
|
} else {
|
|
895
907
|
rm.openStart("th");
|
|
896
908
|
}
|
|
@@ -915,7 +927,7 @@ sap.ui.define([
|
|
|
915
927
|
// dummy column to fill the table width
|
|
916
928
|
if (bRenderDummyColumn) {
|
|
917
929
|
rm.openStart("th", bHeader && oTable.getId() + "-dummycolhdr");
|
|
918
|
-
|
|
930
|
+
oAccRenderExtension.writeAriaAttributesFor(rm, oTable, "Presentation");
|
|
919
931
|
rm.openEnd().close("th");
|
|
920
932
|
}
|
|
921
933
|
|
|
@@ -1016,7 +1028,8 @@ sap.ui.define([
|
|
|
1016
1028
|
rm.class("sapUiTableRow");
|
|
1017
1029
|
rm.class("sapUiTableHeaderRow");
|
|
1018
1030
|
rm.class("sapUiTableColHdrTr");
|
|
1019
|
-
oTable._getAccRenderExtension()
|
|
1031
|
+
const oAccRenderExtension = oTable._getAccRenderExtension();
|
|
1032
|
+
oAccRenderExtension.writeAriaAttributesFor(rm, oTable, "ColumnHeaderRow", {rowIndex: iRow, fixedCol: bFixedTable});
|
|
1020
1033
|
rm.openEnd();
|
|
1021
1034
|
|
|
1022
1035
|
//
|
|
@@ -1068,7 +1081,7 @@ sap.ui.define([
|
|
|
1068
1081
|
|
|
1069
1082
|
if (!bFixedTable && bHasOnlyFixedColumns && aColumns.length > 0) {
|
|
1070
1083
|
rm.openStart("td").class("sapUiTableCellDummy");
|
|
1071
|
-
|
|
1084
|
+
oAccRenderExtension.writeAriaAttributesFor(rm, oTable, "Presentation");
|
|
1072
1085
|
rm.openEnd().close("td");
|
|
1073
1086
|
}
|
|
1074
1087
|
rm.close("tr");
|
|
@@ -1118,7 +1131,8 @@ sap.ui.define([
|
|
|
1118
1131
|
fixedCol: bFixedTable,
|
|
1119
1132
|
rowNavigated: oRowSettings ? oRowSettings.getNavigated() : false
|
|
1120
1133
|
};
|
|
1121
|
-
oTable._getAccRenderExtension()
|
|
1134
|
+
const oAccRenderExtension = oTable._getAccRenderExtension();
|
|
1135
|
+
oAccRenderExtension.writeAriaAttributesFor(rm, oTable, "Tr", oParams);
|
|
1122
1136
|
|
|
1123
1137
|
rm.openEnd();
|
|
1124
1138
|
|
|
@@ -1130,14 +1144,14 @@ sap.ui.define([
|
|
|
1130
1144
|
}
|
|
1131
1145
|
if (!bFixedTable && bHasOnlyFixedColumns && aCells.length > 0) {
|
|
1132
1146
|
rm.openStart("td").class("sapUiTableCellDummy");
|
|
1133
|
-
|
|
1147
|
+
oAccRenderExtension.writeAriaAttributesFor(rm, oTable, "Presentation");
|
|
1134
1148
|
rm.openEnd();
|
|
1135
1149
|
rm.close("td");
|
|
1136
1150
|
}
|
|
1137
1151
|
rm.close("tr");
|
|
1138
1152
|
};
|
|
1139
1153
|
|
|
1140
|
-
TableRenderer.renderTableCell = function(rm, oTable, oRow, oCell, iCellIndex, bFixedTable, iStartColumn, iEndColumn, aVisibleColumns, iLastFixedColumnIndex
|
|
1154
|
+
TableRenderer.renderTableCell = function(rm, oTable, oRow, oCell, iCellIndex, bFixedTable, iStartColumn, iEndColumn, aVisibleColumns, iLastFixedColumnIndex) {
|
|
1141
1155
|
const oColumn = Column.ofCell(oCell);
|
|
1142
1156
|
const iColIndex = oColumn.getIndex();
|
|
1143
1157
|
|
|
@@ -1153,10 +1167,7 @@ sap.ui.define([
|
|
|
1153
1167
|
const bIsLastFixedColumn = bFixedTable && iLastFixedColumnIndex === iColIndex;
|
|
1154
1168
|
|
|
1155
1169
|
const oParams = {
|
|
1156
|
-
column: oColumn
|
|
1157
|
-
row: oRow,
|
|
1158
|
-
fixed: bFixedTable,
|
|
1159
|
-
rowSelected: bSelected
|
|
1170
|
+
column: oColumn
|
|
1160
1171
|
};
|
|
1161
1172
|
oTable._getAccRenderExtension().writeAriaAttributesFor(rm, oTable, "DataCell", oParams);
|
|
1162
1173
|
|
|
@@ -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.
|
|
41
|
+
* @version 1.143.0
|
|
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
|
/**
|
|
@@ -650,13 +672,8 @@ sap.ui.define([
|
|
|
650
672
|
getAriaAttributesForColumnRowHeader: function(oExtension, mParams) {
|
|
651
673
|
const mAttributes = {};
|
|
652
674
|
const oTable = oExtension.getTable();
|
|
653
|
-
|
|
654
675
|
const mRenderConfig = oTable._getSelectionPlugin().getRenderConfig();
|
|
655
676
|
|
|
656
|
-
if (oTable.getSelectionMode() !== SelectionMode.None) {
|
|
657
|
-
mAttributes["aria-label"] = TableUtils.getResourceText("TBL_TABLE_SELECTION_COLUMNHEADER");
|
|
658
|
-
}
|
|
659
|
-
|
|
660
677
|
if (mRenderConfig.headerSelector.visible) {
|
|
661
678
|
if (mRenderConfig.headerSelector.type === "toggle") {
|
|
662
679
|
mAttributes["role"] = ["checkbox"];
|
|
@@ -725,8 +742,8 @@ sap.ui.define([
|
|
|
725
742
|
* Returns the aria attributes for a column header.
|
|
726
743
|
*
|
|
727
744
|
* @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,
|
|
745
|
+
* @param {{column: sap.ui.table.Column, headerId: string, colspan: boolean}} mParams An object containing the instance of the
|
|
746
|
+
* column, the id of the header cell, and whether the column has span
|
|
730
747
|
* @returns {object} An object containing the aria attributes
|
|
731
748
|
*/
|
|
732
749
|
getAriaAttributesForColumnHeader: function(oExtension, mParams) {
|
|
@@ -778,9 +795,7 @@ sap.ui.define([
|
|
|
778
795
|
* Returns the aria attributes for a data cell.
|
|
779
796
|
*
|
|
780
797
|
* @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
|
|
798
|
+
* @param {{column: sap.ui.table.Column}} mParams An object containing the instance of the column
|
|
784
799
|
* @returns {object} An object containing the aria attributes
|
|
785
800
|
*/
|
|
786
801
|
getAriaAttributesForDataCell: function(oExtension, mParams) {
|
|
@@ -891,23 +906,37 @@ sap.ui.define([
|
|
|
891
906
|
* Returns the aria attributes for the row that contains the column headers.
|
|
892
907
|
*
|
|
893
908
|
* @param {sap.ui.table.extensions.Accessibility} oExtension The accessibility extension
|
|
894
|
-
* @param {
|
|
895
|
-
* @param {int} mParams.rowIndex The index of the row
|
|
909
|
+
* @param {{rowIndex: int, fixedCol: boolean}} mParams An object containing the index of the row and whether the column is fixed
|
|
896
910
|
* @returns {object} An object containing the aria attributes
|
|
897
911
|
*/
|
|
898
912
|
getAriaAttributesForColumnHeaderRow: function(oExtension, mParams) {
|
|
899
913
|
const mAttributes = {"role": "row"};
|
|
914
|
+
if (mParams.fixedCol) {
|
|
915
|
+
return mAttributes;
|
|
916
|
+
}
|
|
900
917
|
const oTable = oExtension.getTable();
|
|
901
918
|
const sTableId = oTable.getId();
|
|
902
919
|
|
|
903
920
|
mAttributes["aria-rowindex"] = mParams.rowIndex + 1;
|
|
904
921
|
mAttributes["aria-owns"] = [];
|
|
905
|
-
if (TableUtils.hasRowHeader(oTable)) {
|
|
906
|
-
mAttributes["aria-owns"].push(sTableId + "-rowcolhdr");
|
|
907
|
-
}
|
|
908
922
|
|
|
909
|
-
|
|
910
|
-
|
|
923
|
+
const aVisibleColumns = oTable._getVisibleColumns();
|
|
924
|
+
if (TableUtils.getHeaderRowCount(oTable) > 1) {
|
|
925
|
+
if (TableUtils.hasRowHeader(oTable)) {
|
|
926
|
+
mAttributes["aria-owns"].push(sTableId + "-rowcolhdr" + mParams.rowIndex);
|
|
927
|
+
}
|
|
928
|
+
let j = 0;
|
|
929
|
+
while (j < TableUtils.getVisibleColumnCount(oTable)) {
|
|
930
|
+
mAttributes["aria-owns"].push(aVisibleColumns[j].getId() + (mParams.rowIndex > 0 ? "_" + mParams.rowIndex : ""));
|
|
931
|
+
j += parseInt(aVisibleColumns[j].getHeaderSpan()[mParams.rowIndex]) || 1;
|
|
932
|
+
}
|
|
933
|
+
} else {
|
|
934
|
+
if (TableUtils.hasRowHeader(oTable)) {
|
|
935
|
+
mAttributes["aria-owns"].push(sTableId + "-rowcolhdr");
|
|
936
|
+
}
|
|
937
|
+
for (let j = 0; j < TableUtils.getVisibleColumnCount(oTable); j++) {
|
|
938
|
+
mAttributes["aria-owns"].push(aVisibleColumns[j].getId());
|
|
939
|
+
}
|
|
911
940
|
}
|
|
912
941
|
|
|
913
942
|
if (TableUtils.hasRowActions(oTable)) {
|
|
@@ -978,6 +1007,10 @@ sap.ui.define([
|
|
|
978
1007
|
mAttributes["aria-current"] = true;
|
|
979
1008
|
}
|
|
980
1009
|
|
|
1010
|
+
if (mParams.fixedCol) {
|
|
1011
|
+
return mAttributes;
|
|
1012
|
+
}
|
|
1013
|
+
|
|
981
1014
|
mAttributes["aria-owns"] = [];
|
|
982
1015
|
if (TableUtils.hasRowHeader(oTable)) {
|
|
983
1016
|
mAttributes["aria-owns"].push(sTableId + "-rowsel" + mParams.index);
|
|
@@ -1143,7 +1176,7 @@ sap.ui.define([
|
|
|
1143
1176
|
* @class Extension for sap.ui.table.Table which handles ACC related things.
|
|
1144
1177
|
* @extends sap.ui.table.extensions.ExtensionBase
|
|
1145
1178
|
* @author SAP SE
|
|
1146
|
-
* @version 1.
|
|
1179
|
+
* @version 1.143.0
|
|
1147
1180
|
* @constructor
|
|
1148
1181
|
* @private
|
|
1149
1182
|
* @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.
|
|
47
|
+
* @version 1.143.0
|
|
48
48
|
* @constructor
|
|
49
49
|
* @private
|
|
50
50
|
* @alias sap.ui.table.extensions.AccessibilityRender
|
|
@@ -61,12 +61,12 @@ sap.ui.define([
|
|
|
61
61
|
scrollVertically: TableUtils.throttle(function(oTable, bDown, iBase, iPercentage) {
|
|
62
62
|
const oVerticalScrollbar = oTable._getScrollExtension().getVerticalScrollbar();
|
|
63
63
|
oVerticalScrollbar.scrollTop += this.calculateScrollDistance(iBase, iPercentage) * (bDown ? 1 : -1);
|
|
64
|
-
}, 50),
|
|
64
|
+
}, 50, {leading: false}),
|
|
65
65
|
|
|
66
66
|
scrollHorizontally: TableUtils.throttle(function(oTable, bRight, iBase, iPercentage) {
|
|
67
67
|
const oHorizontalScrollbar = oTable._getScrollExtension().getHorizontalScrollbar();
|
|
68
68
|
oHorizontalScrollbar.scrollLeft += this.calculateScrollDistance(iBase, iPercentage) * (bRight ? 1 : -1);
|
|
69
|
-
}, 50),
|
|
69
|
+
}, 50, {leading: false}),
|
|
70
70
|
|
|
71
71
|
calculateScrollDistance: function(iBase, iPercentage) {
|
|
72
72
|
const iMinDistance = 2;
|
|
@@ -274,7 +274,7 @@ sap.ui.define([
|
|
|
274
274
|
*
|
|
275
275
|
* @extends sap.ui.table.extensions.ExtensionBase
|
|
276
276
|
* @author SAP SE
|
|
277
|
-
* @version 1.
|
|
277
|
+
* @version 1.143.0
|
|
278
278
|
* @constructor
|
|
279
279
|
* @private
|
|
280
280
|
* @alias sap.ui.table.extensions.DragAndDrop
|
|
@@ -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.
|
|
268
|
+
* @version 1.143.0
|
|
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.
|
|
673
|
+
* @version 1.143.0
|
|
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.
|
|
2317
|
+
* @version 1.143.0
|
|
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.
|
|
32
|
+
* @version 1.143.0
|
|
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.
|
|
188
|
+
* @version 1.143.0
|
|
189
189
|
* @constructor
|
|
190
190
|
* @private
|
|
191
191
|
* @alias sap.ui.table.extensions.Synchronization
|