@openui5/sap.ui.table 1.91.0 → 1.93.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/.reuse/dep5 +46 -0
  2. package/THIRDPARTY.txt +59 -1
  3. package/package.json +3 -3
  4. package/src/sap/ui/table/.library +1 -1
  5. package/src/sap/ui/table/AnalyticalColumn.js +2 -2
  6. package/src/sap/ui/table/AnalyticalColumnMenu.js +1 -1
  7. package/src/sap/ui/table/AnalyticalTable.js +2 -1
  8. package/src/sap/ui/table/Column.js +2 -2
  9. package/src/sap/ui/table/ColumnMenu.js +1 -1
  10. package/src/sap/ui/table/CreationRow.js +1 -1
  11. package/src/sap/ui/table/Row.js +1 -1
  12. package/src/sap/ui/table/RowAction.js +1 -1
  13. package/src/sap/ui/table/RowActionItem.js +1 -1
  14. package/src/sap/ui/table/RowSettings.js +1 -1
  15. package/src/sap/ui/table/Table.js +5 -7
  16. package/src/sap/ui/table/TablePersoController.js +1 -1
  17. package/src/sap/ui/table/TreeTable.js +1 -1
  18. package/src/sap/ui/table/extensions/Accessibility.js +31 -6
  19. package/src/sap/ui/table/extensions/AccessibilityRender.js +1 -1
  20. package/src/sap/ui/table/extensions/DragAndDrop.js +1 -1
  21. package/src/sap/ui/table/extensions/ExtensionBase.js +1 -1
  22. package/src/sap/ui/table/extensions/Keyboard.js +1 -1
  23. package/src/sap/ui/table/extensions/KeyboardDelegate.js +28 -13
  24. package/src/sap/ui/table/extensions/Pointer.js +3 -3
  25. package/src/sap/ui/table/extensions/Scrolling.js +7 -8
  26. package/src/sap/ui/table/extensions/Synchronization.js +1 -1
  27. package/src/sap/ui/table/library.js +11 -10
  28. package/src/sap/ui/table/messagebundle_de.properties +1 -1
  29. package/src/sap/ui/table/plugins/BindingSelection.js +1 -1
  30. package/src/sap/ui/table/plugins/MultiSelectionPlugin.js +2 -2
  31. package/src/sap/ui/table/plugins/PluginBase.js +2 -2
  32. package/src/sap/ui/table/plugins/SelectionModelSelection.js +26 -4
  33. package/src/sap/ui/table/plugins/SelectionPlugin.js +1 -1
  34. package/src/sap/ui/table/plugins/V4Aggregation.js +2 -2
  35. package/src/sap/ui/table/rowmodes/AutoRowMode.js +1 -1
  36. package/src/sap/ui/table/rowmodes/FixedRowMode.js +1 -1
  37. package/src/sap/ui/table/rowmodes/InteractiveRowMode.js +1 -1
  38. package/src/sap/ui/table/rowmodes/RowMode.js +1 -1
  39. package/src/sap/ui/table/rowmodes/VariableRowMode.js +1 -1
  40. package/src/sap/ui/table/themes/base/Cell.less +14 -14
  41. package/src/sap/ui/table/themes/base/Grouping.less +18 -3
  42. package/src/sap/ui/table/themes/base/Table.less +1 -2
  43. package/src/sap/ui/table/themes/base/library.source.less +3 -2
  44. package/src/sap/ui/table/utils/TableUtils.js +4 -4
  45. package/src/sap/ui/table/utils/_BindingUtils.js +1 -1
  46. package/src/sap/ui/table/utils/_ColumnUtils.js +1 -1
  47. package/src/sap/ui/table/utils/_GroupingUtils.js +3 -1
  48. package/src/sap/ui/table/utils/_HookUtils.js +4 -1
  49. package/src/sap/ui/table/utils/_MenuUtils.js +1 -1
package/.reuse/dep5 CHANGED
@@ -352,6 +352,11 @@ Copyright: 2006 Google Inc.
352
352
  License: Apache-2.0
353
353
  Comment: these files belong to: google-code-prettify
354
354
 
355
+ Files: src/sap.ui.documentation/src/sap/ui/documentation/sdk/thirdparty/highlight.js/*
356
+ Copyright: 2006-2020, Ivan Sagalaev
357
+ License: BSD-3-Clause
358
+ Comment: these files belong to: highlight.js
359
+
355
360
  Files: src/sap.ui.documentation/src/sap/ui/documentation/sdk/thirdparty/elasticlunr.js
356
361
  Copyright: 2017 Wei Song and Oliver Nightingale
357
362
  License: MIT
@@ -411,6 +416,35 @@ License: Apache-2.0 and MIT
411
416
  Comment: these files contain content from SAP and BooleanExpressionEvaluator: BoolExprTool.js is authored by SAP, but partly inspired by BooleanExpressionEvaluator
412
417
 
413
418
 
419
+ # Library: sap.ui.webc.common:
420
+
421
+ Files: src/sap.ui.webc.common/src/sap/ui/webc/common/thirdparty/base/*.* src/sap.ui.webc.common/src/sap/ui/webc/common/thirdparty/theme-base/*.* src/sap.ui.webc.common/src/sap/ui/webc/common/thirdparty/localization/*.* src/sap.ui.webc.common/src/sap/ui/webc/common/thirdparty/icons/*.* src/sap.ui.webc.common/src/sap/ui/webc/common/thirdparty/icons-tnt/*.*
422
+ Copyright: SAP
423
+ License: Apache-2.0
424
+ Comment: these files belong to: UI5 Web Components
425
+
426
+ Files: src/sap.ui.webc.common/src/sap/ui/webc/common/thirdparty/lit-html/*.*
427
+ Copyright: Google LLC
428
+ License: BSD-3-Clause
429
+ Comment: these files belong to: lit-html
430
+
431
+
432
+ # Library: sap.ui.webc.fiori:
433
+
434
+ Files: src/sap.ui.webc.fiori/src/sap/ui/webc/fiori/thirdparty/*.*
435
+ Copyright: SAP
436
+ License: Apache-2.0
437
+ Comment: these files belong to: UI5 Web Components
438
+
439
+
440
+ # Library: sap.ui.webc.main:
441
+
442
+ Files: src/sap.ui.webc.main/src/sap/ui/webc/main/thirdparty/*.*
443
+ Copyright: SAP
444
+ License: Apache-2.0
445
+ Comment: these files belong to: UI5 Web Components
446
+
447
+
414
448
  # Outside of Libraries:
415
449
 
416
450
  Files: src/testsuite-utils/src/main/resources/META-INF/less/less.js
@@ -423,3 +457,15 @@ Copyright: 2015-2017 Evgeny Poberezkin
423
457
  License: MIT
424
458
  Comment: these files belong to: ajv
425
459
 
460
+ Files: lib/jsdoc/ui5/plugin.js
461
+ Copyright:
462
+ 2009-2021 SAP SE or an SAP affiliate company and OpenUI5 contributors
463
+ 2011-present Michael Mathews micmath@gmail.com and the contributors to JSDoc
464
+ License: Apache-2.0
465
+ Comment: these files contain content from SAP and JSDoc 3: plugin.js is overall written by SAP, but contains code taken from JSDoc 3.6.7 (see the respective comments)
466
+
467
+ Files: src/sap.ui.core/src/sap/ui/core/themes/base/base.less src/themelib_sap_belize/src/sap/ui/core/themes/*/base.less src/themelib_sap_fiori_3/src/sap/ui/core/themes/*/base.less src/themelib_sap_horizon/src/sap/ui/core/themes/*/base.less
468
+ Copyright: SAP SE or an SAP affiliate company and Theming Base Content contributors
469
+ License: Apache-2.0
470
+ Comment: these files belong to: SAP Theming Base Content
471
+
package/THIRDPARTY.txt CHANGED
@@ -197,7 +197,7 @@ License: BSD-3-Clause
197
197
  License Text: https://github.com/SAP/openui5/blob/master/LICENSES/BSD-3-Clause.txt
198
198
  Contained in: src/sap.ui.core/src/sap/ui/thirdparty/sinon-qunit.js
199
199
 
200
- Component: URI.js, version: 1.19.6
200
+ Component: URI.js, version: 1.19.7
201
201
  Copyright: Rodney Rehm
202
202
  License: MIT
203
203
  License Text: https://github.com/SAP/openui5/blob/master/LICENSES/MIT.txt
@@ -330,6 +330,12 @@ License: Apache-2.0
330
330
  License Text: https://github.com/SAP/openui5/blob/master/LICENSES/Apache-2.0.txt
331
331
  Contained in: src/sap.ui.documentation/src/sap/ui/documentation/sdk/thirdparty/google-code-prettify/*
332
332
 
333
+ Component: highlight.js, version: 10.4.1
334
+ Copyright: 2006-2020, Ivan Sagalaev
335
+ License: BSD-3-Clause
336
+ License Text: https://github.com/SAP/openui5/blob/master/LICENSES/BSD-3-Clause.txt
337
+ Contained in: src/sap.ui.documentation/src/sap/ui/documentation/sdk/thirdparty/highlight.js/*
338
+
333
339
  Component: Elasticlunr, version: 0.9.5
334
340
  Copyright: 2017 Wei Song and Oliver Nightingale
335
341
  License: MIT
@@ -399,6 +405,43 @@ License Text: https://github.com/SAP/openui5/blob/master/LICENSES/MIT.txt
399
405
  Contained in: src/sap.ui.mdc/test/sap/ui/mdc/sample/field/filterfieldwithoperators/BoolExprTool.js
400
406
 
401
407
 
408
+ Library: sap.ui.webc.common:
409
+
410
+ Component: UI5 Web Components, version: 1.0.0-rc.12
411
+ Copyright: SAP
412
+ License: Apache-2.0
413
+ License Text: https://github.com/SAP/openui5/blob/master/LICENSES/Apache-2.0.txt
414
+ Contained in: src/sap.ui.webc.common/src/sap/ui/webc/common/thirdparty/base/*.*
415
+ src/sap.ui.webc.common/src/sap/ui/webc/common/thirdparty/theme-base/*.*
416
+ src/sap.ui.webc.common/src/sap/ui/webc/common/thirdparty/localization/*.*
417
+ src/sap.ui.webc.common/src/sap/ui/webc/common/thirdparty/icons/*.*
418
+ src/sap.ui.webc.common/src/sap/ui/webc/common/thirdparty/icons-tnt/*.*
419
+
420
+ Component: lit-html, version: 1.4.1
421
+ Copyright: Google LLC
422
+ License: BSD-3-Clause
423
+ License Text: https://github.com/SAP/openui5/blob/master/LICENSES/BSD-3-Clause.txt
424
+ Contained in: src/sap.ui.webc.common/src/sap/ui/webc/common/thirdparty/lit-html/*.*
425
+
426
+
427
+ Library: sap.ui.webc.fiori:
428
+
429
+ Component: UI5 Web Components, version: 1.0.0-rc.12
430
+ Copyright: SAP
431
+ License: Apache-2.0
432
+ License Text: https://github.com/SAP/openui5/blob/master/LICENSES/Apache-2.0.txt
433
+ Contained in: src/sap.ui.webc.fiori/src/sap/ui/webc/fiori/thirdparty/*.*
434
+
435
+
436
+ Library: sap.ui.webc.main:
437
+
438
+ Component: UI5 Web Components, version: 1.0.0-rc.12
439
+ Copyright: SAP
440
+ License: Apache-2.0
441
+ License Text: https://github.com/SAP/openui5/blob/master/LICENSES/Apache-2.0.txt
442
+ Contained in: src/sap.ui.webc.main/src/sap/ui/webc/main/thirdparty/*.*
443
+
444
+
402
445
  Outside of Libraries:
403
446
 
404
447
  Component: LESS, version: 1.6.3
@@ -413,6 +456,21 @@ License: MIT
413
456
  License Text: https://github.com/SAP/openui5/blob/master/LICENSES/MIT.txt
414
457
  Contained in: ../test/sap/ui/integration/demokit/cardExplorer/webapp/thirdparty/ajv/ajv.min.js
415
458
 
459
+ Component: JSDoc 3, version: 3.6.7
460
+ Copyright: 2011-present Michael Mathews micmath@gmail.com and the contributors to JSDoc
461
+ License: Apache-2.0
462
+ License Text: https://github.com/SAP/openui5/blob/master/LICENSES/Apache-2.0.txt
463
+ Contained in: lib/jsdoc/ui5/plugin.js
464
+
465
+ Component: SAP Theming Base Content, version: 11.1.34
466
+ Copyright: SAP SE or an SAP affiliate company and Theming Base Content contributors
467
+ License: Apache-2.0
468
+ License Text: https://github.com/SAP/openui5/blob/master/LICENSES/Apache-2.0.txt
469
+ Contained in: src/sap.ui.core/src/sap/ui/core/themes/base/base.less
470
+ src/themelib_sap_belize/src/sap/ui/core/themes/*/base.less
471
+ src/themelib_sap_fiori_3/src/sap/ui/core/themes/*/base.less
472
+ src/themelib_sap_horizon/src/sap/ui/core/themes/*/base.less
473
+
416
474
 
417
475
  ALL LICENSE TEXTS:
418
476
  ==================
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openui5/sap.ui.table",
3
- "version": "1.91.0",
3
+ "version": "1.93.2",
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/SAP/openui5.git"
15
15
  },
16
16
  "dependencies": {
17
- "@openui5/sap.ui.core": "1.91.0",
18
- "@openui5/sap.ui.unified": "1.91.0"
17
+ "@openui5/sap.ui.core": "1.93.2",
18
+ "@openui5/sap.ui.unified": "1.93.2"
19
19
  }
20
20
  }
@@ -6,7 +6,7 @@
6
6
  <copyright>OpenUI5
7
7
  * (c) Copyright 2009-2021 SAP SE or an SAP affiliate company.
8
8
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.</copyright>
9
- <version>1.91.0</version>
9
+ <version>1.93.2</version>
10
10
 
11
11
  <documentation>Table-like controls, mainly for desktop scenarios.</documentation>
12
12
 
@@ -46,7 +46,7 @@ sap.ui.define([
46
46
  * @extends sap.ui.table.Column
47
47
  *
48
48
  * @author SAP SE
49
- * @version 1.91.0
49
+ * @version 1.93.2
50
50
  *
51
51
  * @constructor
52
52
  * @public
@@ -296,7 +296,7 @@ sap.ui.define([
296
296
 
297
297
  /**
298
298
  * Checks whether or not the menu has items
299
- * @returns {Boolean} True if the menu has or could have items.
299
+ * @returns {boolean} True if the menu has or could have items.
300
300
  */
301
301
  AnalyticalColumn.prototype._menuHasItems = function() {
302
302
  var fnMenuHasItems = function() {
@@ -23,7 +23,7 @@ sap.ui.define(['./ColumnMenu', "sap/ui/unified/MenuRenderer", './library', "sap/
23
23
  * @extends sap.ui.table.ColumnMenu
24
24
  *
25
25
  * @author SAP SE
26
- * @version 1.91.0
26
+ * @version 1.93.2
27
27
  *
28
28
  * @constructor
29
29
  * @public
@@ -62,7 +62,7 @@ sap.ui.define([
62
62
  * @see http://scn.sap.com/docs/DOC-44986
63
63
  *
64
64
  * @extends sap.ui.table.Table
65
- * @version 1.91.0
65
+ * @version 1.93.2
66
66
  *
67
67
  * @constructor
68
68
  * @public
@@ -424,6 +424,7 @@ sap.ui.define([
424
424
  if (this._aGroupedColumns.indexOf(oColumn.getId()) > -1) {
425
425
  continue;
426
426
  }
427
+ // eslint-disable-next-line no-unsafe-negation
427
428
  if (!oColumn instanceof AnalyticalColumn) {
428
429
  Log.error("You have to use AnalyticalColumns for the Analytical table");
429
430
  }
@@ -70,7 +70,7 @@ sap.ui.define([
70
70
  * @class
71
71
  * The column allows you to define column specific properties that will be applied when rendering the table.
72
72
  * @extends sap.ui.core.Element
73
- * @version 1.91.0
73
+ * @version 1.93.2
74
74
  *
75
75
  * @constructor
76
76
  * @public
@@ -576,7 +576,7 @@ sap.ui.define([
576
576
  * Checks whether or not the menu has items. This function considers table and column
577
577
  * properties to determine whether the column menu would have items. If there is a menu set,
578
578
  * it will just check whether there are items in the item aggregation.
579
- * @returns {Boolean} True if the menu has or could have items.
579
+ * @returns {boolean} True if the menu has or could have items.
580
580
  * @private
581
581
  */
582
582
  Column.prototype._menuHasItems = function() {
@@ -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.91.0
43
+ * @version 1.93.2
44
44
  *
45
45
  * @constructor
46
46
  * @public
@@ -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.91.0
35
+ * @version 1.93.2
36
36
  *
37
37
  * @constructor
38
38
  * @private
@@ -135,7 +135,7 @@ sap.ui.define([
135
135
  * @class
136
136
  * The row.
137
137
  * @extends sap.ui.core.Element
138
- * @version 1.91.0
138
+ * @version 1.93.2
139
139
  *
140
140
  * @constructor
141
141
  * @public
@@ -35,7 +35,7 @@ sap.ui.define([
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
37
  * @extends sap.ui.core.Control
38
- * @version 1.91.0
38
+ * @version 1.93.2
39
39
  *
40
40
  * @constructor
41
41
  * @public
@@ -24,7 +24,7 @@ sap.ui.define([
24
24
  * @extends sap.ui.core.Element
25
25
  *
26
26
  * @author SAP SE
27
- * @version 1.91.0
27
+ * @version 1.93.2
28
28
  * @since 1.45
29
29
  *
30
30
  * @constructor
@@ -24,7 +24,7 @@ sap.ui.define([
24
24
  * The <code>RowSettings</code> control allows you to configure a row.
25
25
  * You can only use this control in the context of the <code>sap.ui.table.Table</code> control to define row settings.
26
26
  * @extends sap.ui.core.Element
27
- * @version 1.91.0
27
+ * @version 1.93.2
28
28
  *
29
29
  * @constructor
30
30
  * @public
@@ -94,7 +94,7 @@ sap.ui.define([
94
94
  * the data model and binding being used.
95
95
  * </p>
96
96
  * @extends sap.ui.core.Control
97
- * @version 1.91.0
97
+ * @version 1.93.2
98
98
  *
99
99
  * @constructor
100
100
  * @public
@@ -1418,7 +1418,7 @@ sap.ui.define([
1418
1418
 
1419
1419
  if (!bRenderedRows) {
1420
1420
  // needed for the column resize ruler
1421
- this._aTableHeaders = this.$("tableCCnt").find("th");
1421
+ this._aTableHeaders = this.$().find(".sapUiTableColHdrCnt th");
1422
1422
  }
1423
1423
 
1424
1424
  this._updateTableSizes(TableUtils.RowsUpdateReason.Render, true);
@@ -2446,13 +2446,11 @@ sap.ui.define([
2446
2446
  Table.prototype._adjustToTotalRowCount = function() {
2447
2447
  var oBinding = this.getBinding();
2448
2448
  var iTotalRowCount = this._getTotalRowCount();
2449
- var oScrollExtension = this._getScrollExtension();
2450
2449
 
2451
2450
  if (this._iBindingLength !== iTotalRowCount) {
2452
2451
  this._iBindingLength = iTotalRowCount;
2453
2452
  this._updateFixedBottomRows();
2454
- this._getAccExtension()._updateAriaRowCount();
2455
- oScrollExtension.adjustToTotalRowCount();
2453
+ TableUtils.Hook.call(this, Hook.TotalRowCountChanged);
2456
2454
 
2457
2455
  if (!oBinding || !TableUtils.hasPendingRequests(this)) {
2458
2456
  // A client binding -or- an $expand filled list binding does not fire dataReceived events. Therefore we need to update the no data area here.
@@ -3052,7 +3050,7 @@ sap.ui.define([
3052
3050
  * Pushes the sorted column to array.
3053
3051
  *
3054
3052
  * @param {sap.ui.table.Column} oColumn Column to be sorted
3055
- * @param {Boolean} bAdd Set to true to add the new sort criterion to the existing sort criteria
3053
+ * @param {boolean} bAdd Set to true to add the new sort criterion to the existing sort criteria
3056
3054
  * @private
3057
3055
  * @ui5-metamodel This method also will be described in the UI5 (legacy) designtime metamodel
3058
3056
  */
@@ -3085,7 +3083,7 @@ sap.ui.define([
3085
3083
  *
3086
3084
  * @param {sap.ui.table.Column | undefined} oColumn Column to be sorted or undefined to clear sorting
3087
3085
  * @param {sap.ui.table.SortOrder} oSortOrder Sort order of the column (if undefined the default will be ascending)
3088
- * @param {Boolean} bAdd Set to true to add the new sort criterion to the existing sort criteria
3086
+ * @param {boolean} bAdd Set to true to add the new sort criterion to the existing sort criteria
3089
3087
  * @public
3090
3088
  * @ui5-metamodel This method also will be described in the UI5 (legacy) designtime metamodel
3091
3089
  */
@@ -30,7 +30,7 @@ sap.ui.define([
30
30
  * @extends sap.ui.base.ManagedObject
31
31
  *
32
32
  * @author SAP SE
33
- * @version 1.91.0
33
+ * @version 1.93.2
34
34
  * @since 1.21.1
35
35
  *
36
36
  * @constructor
@@ -38,7 +38,7 @@ sap.ui.define([
38
38
  * @class
39
39
  * The TreeTable control provides a comprehensive set of features to display hierarchical data.
40
40
  * @extends sap.ui.table.Table
41
- * @version 1.91.0
41
+ * @version 1.93.2
42
42
  *
43
43
  * @constructor
44
44
  * @public
@@ -384,7 +384,6 @@ sap.ui.define([
384
384
 
385
385
  if (bIsGroupHeader) {
386
386
  aLabels.push(sTableId + "-ariarowgrouplabel");
387
- aLabels.push(sRowId + "-groupHeader");
388
387
  } else if (oRow.isTotalSummary()) {
389
388
  aLabels.push(sTableId + "-ariagrandtotallabel");
390
389
  } else if (oRow.isGroupSummary()) {
@@ -424,7 +423,10 @@ sap.ui.define([
424
423
  }
425
424
 
426
425
  ExtensionHelper.performCellModifications(this, $Cell, aDefaultLabels, null, aLabels, aDescriptions, sText,
427
- function(aLabels, aDescriptions, bRowChange, bColChange, bInitial) {
426
+ function(aLabels, aDescriptions, bRowChange, bColChange) {
427
+ if (bIsGroupHeader && bRowChange) {
428
+ aLabels.splice(3, 0, sRowId + "-groupHeader");
429
+ }
428
430
  var bContainsTreeIcon = $Cell.find(".sapUiTableTreeIcon").not(".sapUiTableTreeIconLeaf").length == 1;
429
431
 
430
432
  if ((bContainsTreeIcon || bIsGroupHeader) && (bRowChange || bColChange)) {
@@ -541,10 +543,10 @@ sap.ui.define([
541
543
  var aDefaultLabels = ExtensionHelper.getAriaAttributesFor(this, AccExtension.ELEMENTTYPES.ROWACTION)["aria-labelledby"] || [];
542
544
  var aLabels = [sTableId + "-rownumberofrows", sTableId + "-colnumberofcols"].concat(aDefaultLabels);
543
545
  var aDescriptions = [];
546
+ var bIsGroupHeader = oRow.isGroupHeader();
544
547
 
545
- if (oRow.isGroupHeader()) {
548
+ if (bIsGroupHeader) {
546
549
  aLabels.push(sTableId + "-ariarowgrouplabel");
547
- aLabels.push(sRowId + "-groupHeader");
548
550
  aLabels.push(sTableId + (oRow.isExpanded() ? "-rowcollapsetext" : "-rowexpandtext"));
549
551
  }
550
552
 
@@ -577,7 +579,14 @@ sap.ui.define([
577
579
  }
578
580
  }
579
581
 
580
- ExtensionHelper.performCellModifications(this, $Cell, aDefaultLabels, [], aLabels, aDescriptions, sText);
582
+ ExtensionHelper.performCellModifications(this, $Cell, aDefaultLabels, [], aLabels, aDescriptions, sText,
583
+ function(aLabels, aDescriptions, bRowChange) {
584
+ if (bIsGroupHeader && bRowChange) {
585
+ var iIndex = aLabels.indexOf(sTableId + "-ariarowgrouplabel") + 1;
586
+ aLabels.splice(iIndex, 0, sRowId + "-groupHeader");
587
+ }
588
+ }
589
+ );
581
590
  },
582
591
 
583
592
  /**
@@ -874,7 +883,7 @@ sap.ui.define([
874
883
  * @class Extension for sap.ui.table.Table which handles ACC related things.
875
884
  * @extends sap.ui.table.extensions.ExtensionBase
876
885
  * @author SAP SE
877
- * @version 1.91.0
886
+ * @version 1.93.2
878
887
  * @constructor
879
888
  * @private
880
889
  * @alias sap.ui.table.extensions.Accessibility
@@ -897,6 +906,22 @@ sap.ui.define([
897
906
  return "AccExtension";
898
907
  },
899
908
 
909
+ /**
910
+ * @override
911
+ * @inheritDoc
912
+ */
913
+ _attachEvents: function() {
914
+ TableUtils.Hook.register(this.getTable(), TableUtils.Hook.Keys.Table.TotalRowCountChanged, this._updateAriaRowCount, this);
915
+ },
916
+
917
+ /**
918
+ * @override
919
+ * @inheritDoc
920
+ */
921
+ _detachEvents: function() {
922
+ TableUtils.Hook.deregister(this.getTable(), TableUtils.Hook.Keys.Table.TotalRowCountChanged, this._updateAriaRowCount, this);
923
+ },
924
+
900
925
  /**
901
926
  * Enables debugging for the extension. Internal helper classes become accessible.
902
927
  *
@@ -42,7 +42,7 @@ sap.ui.define([
42
42
  * @class Extension for sap.ui.table.TableRenderer which handles ACC related things.
43
43
  * @extends sap.ui.table.extensions.ExtensionBase
44
44
  * @author SAP SE
45
- * @version 1.91.0
45
+ * @version 1.93.2
46
46
  * @constructor
47
47
  * @private
48
48
  * @alias sap.ui.table.extensions.AccessibilityRender
@@ -244,7 +244,7 @@ sap.ui.define([
244
244
  *
245
245
  * @extends sap.ui.table.extensions.ExtensionBase
246
246
  * @author SAP SE
247
- * @version 1.91.0
247
+ * @version 1.93.2
248
248
  * @constructor
249
249
  * @private
250
250
  * @alias sap.ui.table.extensions.DragAndDrop
@@ -19,7 +19,7 @@ sap.ui.define([
19
19
  * @abstract
20
20
  * @extends sap.ui.base.Object
21
21
  * @author SAP SE
22
- * @version 1.91.0
22
+ * @version 1.93.2
23
23
  * @constructor
24
24
  * @private
25
25
  * @alias sap.ui.table.extensions.ExtensionBase
@@ -260,7 +260,7 @@ sap.ui.define([
260
260
  * @class Extension for sap.ui.table.Table which handles keyboard related things.
261
261
  * @extends sap.ui.table.extensions.ExtensionBase
262
262
  * @author SAP SE
263
- * @version 1.91.0
263
+ * @version 1.93.2
264
264
  * @constructor
265
265
  * @private
266
266
  * @alias sap.ui.table.extensions.Keyboard
@@ -52,7 +52,7 @@ sap.ui.define([
52
52
  *
53
53
  * @extends sap.ui.base.Object
54
54
  * @author SAP SE
55
- * @version 1.91.0
55
+ * @version 1.93.2
56
56
  * @constructor
57
57
  * @private
58
58
  * @alias sap.ui.table.extensions.KeyboardDelegate
@@ -473,7 +473,7 @@ sap.ui.define([
473
473
  oTable._getSelectionPlugin().onHeaderSelectorPress();
474
474
 
475
475
  // Expand/Collapse group.
476
- } else if (KeyboardDelegate._isElementGroupToggler(oTable, oEvent.target)) {
476
+ } else if (KeyboardDelegate._allowsToggleExpandedState(oTable, oEvent.target)) {
477
477
  getRowByDomRef(oTable, oEvent.target).toggleExpandedState();
478
478
 
479
479
  // Select/Deselect row.
@@ -645,22 +645,31 @@ sap.ui.define([
645
645
  }
646
646
 
647
647
  /**
648
- * Checks whether an element is in the list of elements which can allow expanding and collapsing a group, if a specific key is pressed on them.
648
+ * Checks whether an element is a tree icon.
649
+ *
650
+ * @param {HTMLElement} oElement The element to check.
651
+ * @returns {boolean} Whether the element is a tree icon.
652
+ */
653
+ function isTreeIcon(oElement) {
654
+ return oElement.classList.contains("sapUiTableTreeIconNodeOpen") || oElement.classList.contains("sapUiTableTreeIconNodeClosed");
655
+ }
656
+
657
+ /**
658
+ * Checks whether an element allows a group or a tree node to be expanded or collapsed on user interaction.
649
659
  *
650
660
  * @param {sap.ui.table.Table} oTable Instance of the table.
651
661
  * @param {HTMLElement} oElement The element to check.
652
- * @returns {boolean} Returns <code>true</code>, if pressing a specific key on this element can cause a group to expand or to collapse.
662
+ * @returns {boolean} Whether user interaction with this element can trigger expand or collapse of a group or tree node.
653
663
  * @private
654
664
  * @static
655
665
  */
656
- KeyboardDelegate._isElementGroupToggler = function(oTable, oElement) {
666
+ KeyboardDelegate._allowsToggleExpandedState = function(oTable, oElement) {
657
667
  return TableUtils.Grouping.isInGroupHeaderRow(oElement)
658
668
  || (TableUtils.Grouping.isInTreeMode(oTable)
659
669
  && oElement.classList.contains("sapUiTableCellFirst")
660
670
  && (oElement.querySelector(".sapUiTableTreeIconNodeOpen")
661
671
  || oElement.querySelector(".sapUiTableTreeIconNodeClosed")))
662
- || oElement.classList.contains("sapUiTableTreeIconNodeOpen")
663
- || oElement.classList.contains("sapUiTableTreeIconNodeClosed");
672
+ || isTreeIcon(oElement);
664
673
  };
665
674
 
666
675
  /**
@@ -1038,14 +1047,20 @@ sap.ui.define([
1038
1047
  }
1039
1048
 
1040
1049
  return;
1050
+ }
1041
1051
 
1042
1052
  // Expand/Collapse group.
1043
- } else if (KeyboardDelegate._isKeyCombination(oEvent, KeyCodes.F4) &&
1044
- KeyboardDelegate._isElementGroupToggler(this, oEvent.target)) {
1053
+ if (KeyboardDelegate._isKeyCombination(oEvent, KeyCodes.F4) && KeyboardDelegate._allowsToggleExpandedState(this, oEvent.target)) {
1045
1054
  getRowByDomRef(this, oEvent.target).toggleExpandedState();
1046
1055
  return;
1047
1056
  }
1048
1057
 
1058
+ // Prevent page scrolling when pressing Space on the tree icon.
1059
+ if (KeyboardDelegate._isKeyCombination(oEvent, KeyCodes.SPACE) && isTreeIcon(oEvent.target)) {
1060
+ oEvent.preventDefault(); // Prevent scrolling the page.
1061
+ return;
1062
+ }
1063
+
1049
1064
  if (this._getKeyboardExtension().isInActionMode() || !oCellInfo.isOfType(CellType.ANY)) {
1050
1065
  return;
1051
1066
  }
@@ -1104,13 +1119,13 @@ sap.ui.define([
1104
1119
  var oCellInfo = TableUtils.getCellInfo(oEvent.target);
1105
1120
 
1106
1121
  if (KeyboardDelegate._isKeyCombination(oEvent, "+")) {
1107
- if (KeyboardDelegate._isElementGroupToggler(this, oEvent.target)) {
1122
+ if (KeyboardDelegate._allowsToggleExpandedState(this, oEvent.target)) {
1108
1123
  getRowByDomRef(this, oEvent.target).expand();
1109
1124
  } else if (oCellInfo.isOfType(CellType.DATACELL | CellType.ROWACTION)) {
1110
1125
  oKeyboardExtension.setActionMode(true);
1111
1126
  }
1112
1127
  } else if (KeyboardDelegate._isKeyCombination(oEvent, "-")) {
1113
- if (KeyboardDelegate._isElementGroupToggler(this, oEvent.target)) {
1128
+ if (KeyboardDelegate._allowsToggleExpandedState(this, oEvent.target)) {
1114
1129
  getRowByDomRef(this, oEvent.target).collapse();
1115
1130
  } else if (oCellInfo.isOfType(CellType.DATACELL | CellType.ROWACTION)) {
1116
1131
  oKeyboardExtension.setActionMode(true);
@@ -1357,7 +1372,7 @@ sap.ui.define([
1357
1372
  var oKeyboardExtension = this._getKeyboardExtension();
1358
1373
 
1359
1374
  if (KeyboardDelegate._isKeyCombination(oEvent, null, ModKey.ALT) &&
1360
- KeyboardDelegate._isElementGroupToggler(this, oEvent.target)) {
1375
+ KeyboardDelegate._allowsToggleExpandedState(this, oEvent.target)) {
1361
1376
 
1362
1377
  preventItemNavigation(oEvent);
1363
1378
  getRowByDomRef(this, oEvent.target).expand();
@@ -1433,7 +1448,7 @@ sap.ui.define([
1433
1448
  }
1434
1449
 
1435
1450
  if (KeyboardDelegate._isKeyCombination(oEvent, null, ModKey.ALT) &&
1436
- KeyboardDelegate._isElementGroupToggler(this, oEvent.target)) {
1451
+ KeyboardDelegate._allowsToggleExpandedState(this, oEvent.target)) {
1437
1452
 
1438
1453
  preventItemNavigation(oEvent);
1439
1454
  getRowByDomRef(this, oEvent.target).collapse();
@@ -173,7 +173,7 @@ sap.ui.define([
173
173
  exitColumnResizing: function(oEvent) {
174
174
  var iLocationX = ExtensionHelper._getEventPosition(oEvent, this).x;
175
175
  var oColumn = this._getVisibleColumns()[this._iLastHoveredVisibleColumnIndex];
176
- var $RelevantColumnElement = this.$("tableCCnt").find("th[data-sap-ui-colid=\"" + oColumn.getId() + "\"]"); // Consider span and multi-header
176
+ var $RelevantColumnElement = this.$().find("th[data-sap-ui-colid=\"" + oColumn.getId() + "\"]"); // Consider span and multi-header
177
177
  var iColumnWidth = $RelevantColumnElement[0].offsetWidth;
178
178
  var iDeltaX = iLocationX - ($RelevantColumnElement.offset().left + (this._bRtlMode ? 0 : iColumnWidth));
179
179
  var iCalculatedColumnWidth = Math.round(iColumnWidth + iDeltaX * (this._bRtlMode ? -1 : 1));
@@ -673,7 +673,7 @@ sap.ui.define([
673
673
  // => prevent the default behavior only in this case (to still allow text selection)
674
674
  // Also prevent default when clicking on scrollbars to prevent ItemNavigation to re-apply
675
675
  // focus to old position (table cell).
676
- if ((Device.browser.firefox && !!(oEvent.metaKey || oEvent.ctrlKey))
676
+ if ((Device.browser.firefox && (oEvent.metaKey || oEvent.ctrlKey))
677
677
  || $Target.closest(".sapUiTableHSb", this.getDomRef()).length === 1
678
678
  || $Target.closest(".sapUiTableVSb", this.getDomRef()).length === 1) {
679
679
  oEvent.preventDefault();
@@ -805,7 +805,7 @@ sap.ui.define([
805
805
  * @class Extension for sap.ui.table.Table which handles mouse and touch related things.
806
806
  * @extends sap.ui.table.extensions.ExtensionBase
807
807
  * @author SAP SE
808
- * @version 1.91.0
808
+ * @version 1.93.2
809
809
  * @constructor
810
810
  * @private
811
811
  * @alias sap.ui.table.extensions.Pointer