@openui5/sap.ui.table 1.100.0 → 1.102.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.
Files changed (96) hide show
  1. package/.eslintrc.json +18 -0
  2. package/THIRDPARTY.txt +5 -5
  3. package/package.json +3 -3
  4. package/src/sap/ui/table/.library +1 -1
  5. package/src/sap/ui/table/AnalyticalColumn.js +5 -3
  6. package/src/sap/ui/table/AnalyticalColumnMenu.js +2 -2
  7. package/src/sap/ui/table/AnalyticalTable.js +1 -1
  8. package/src/sap/ui/table/Column.js +27 -7
  9. package/src/sap/ui/table/ColumnMenu.js +4 -4
  10. package/src/sap/ui/table/CreationRow.js +1 -1
  11. package/src/sap/ui/table/Row.js +3 -2
  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 +26 -7
  16. package/src/sap/ui/table/TablePersoController.js +1 -1
  17. package/src/sap/ui/table/TableRenderer.js +4 -2
  18. package/src/sap/ui/table/TreeTable.js +2 -2
  19. package/src/sap/ui/table/extensions/Accessibility.js +17 -3
  20. package/src/sap/ui/table/extensions/AccessibilityRender.js +1 -1
  21. package/src/sap/ui/table/extensions/DragAndDrop.js +1 -1
  22. package/src/sap/ui/table/extensions/ExtensionBase.js +1 -1
  23. package/src/sap/ui/table/extensions/Keyboard.js +1 -1
  24. package/src/sap/ui/table/extensions/KeyboardDelegate.js +1 -1
  25. package/src/sap/ui/table/extensions/Pointer.js +1 -1
  26. package/src/sap/ui/table/extensions/Scrolling.js +1 -1
  27. package/src/sap/ui/table/extensions/ScrollingIOS.js +1 -1
  28. package/src/sap/ui/table/extensions/Synchronization.js +1 -1
  29. package/src/sap/ui/table/library.js +20 -23
  30. package/src/sap/ui/table/messagebundle_ar.properties +2 -0
  31. package/src/sap/ui/table/messagebundle_bg.properties +2 -0
  32. package/src/sap/ui/table/messagebundle_ca.properties +2 -0
  33. package/src/sap/ui/table/messagebundle_cs.properties +2 -0
  34. package/src/sap/ui/table/messagebundle_cy.properties +2 -0
  35. package/src/sap/ui/table/messagebundle_da.properties +2 -0
  36. package/src/sap/ui/table/messagebundle_de.properties +2 -0
  37. package/src/sap/ui/table/messagebundle_el.properties +2 -0
  38. package/src/sap/ui/table/messagebundle_en.properties +2 -0
  39. package/src/sap/ui/table/messagebundle_en_GB.properties +2 -0
  40. package/src/sap/ui/table/messagebundle_en_US_saprigi.properties +2 -0
  41. package/src/sap/ui/table/messagebundle_en_US_saptrc.properties +2 -0
  42. package/src/sap/ui/table/messagebundle_es.properties +2 -0
  43. package/src/sap/ui/table/messagebundle_es_MX.properties +2 -0
  44. package/src/sap/ui/table/messagebundle_et.properties +2 -0
  45. package/src/sap/ui/table/messagebundle_fi.properties +2 -0
  46. package/src/sap/ui/table/messagebundle_fr.properties +2 -0
  47. package/src/sap/ui/table/messagebundle_fr_CA.properties +2 -0
  48. package/src/sap/ui/table/messagebundle_hi.properties +2 -0
  49. package/src/sap/ui/table/messagebundle_hr.properties +2 -0
  50. package/src/sap/ui/table/messagebundle_hu.properties +2 -0
  51. package/src/sap/ui/table/messagebundle_id.properties +2 -0
  52. package/src/sap/ui/table/messagebundle_it.properties +2 -0
  53. package/src/sap/ui/table/messagebundle_iw.properties +2 -0
  54. package/src/sap/ui/table/messagebundle_ja.properties +2 -0
  55. package/src/sap/ui/table/messagebundle_kk.properties +2 -0
  56. package/src/sap/ui/table/messagebundle_ko.properties +2 -0
  57. package/src/sap/ui/table/messagebundle_lt.properties +2 -0
  58. package/src/sap/ui/table/messagebundle_lv.properties +2 -0
  59. package/src/sap/ui/table/messagebundle_ms.properties +2 -0
  60. package/src/sap/ui/table/messagebundle_nl.properties +2 -0
  61. package/src/sap/ui/table/messagebundle_no.properties +2 -0
  62. package/src/sap/ui/table/messagebundle_pl.properties +2 -0
  63. package/src/sap/ui/table/messagebundle_pt.properties +2 -0
  64. package/src/sap/ui/table/messagebundle_pt_PT.properties +2 -0
  65. package/src/sap/ui/table/messagebundle_ro.properties +2 -0
  66. package/src/sap/ui/table/messagebundle_ru.properties +2 -0
  67. package/src/sap/ui/table/messagebundle_sh.properties +2 -0
  68. package/src/sap/ui/table/messagebundle_sk.properties +2 -0
  69. package/src/sap/ui/table/messagebundle_sl.properties +2 -0
  70. package/src/sap/ui/table/messagebundle_sv.properties +2 -0
  71. package/src/sap/ui/table/messagebundle_th.properties +2 -0
  72. package/src/sap/ui/table/messagebundle_tr.properties +2 -0
  73. package/src/sap/ui/table/messagebundle_uk.properties +2 -0
  74. package/src/sap/ui/table/messagebundle_vi.properties +2 -0
  75. package/src/sap/ui/table/messagebundle_zh_CN.properties +2 -0
  76. package/src/sap/ui/table/messagebundle_zh_TW.properties +2 -0
  77. package/src/sap/ui/table/plugins/BindingSelection.js +1 -1
  78. package/src/sap/ui/table/plugins/PluginBase.js +1 -1
  79. package/src/sap/ui/table/plugins/SelectionModelSelection.js +1 -1
  80. package/src/sap/ui/table/plugins/SelectionPlugin.js +1 -1
  81. package/src/sap/ui/table/plugins/V4Aggregation.js +1 -1
  82. package/src/sap/ui/table/rowmodes/AutoRowMode.js +1 -1
  83. package/src/sap/ui/table/rowmodes/FixedRowMode.js +1 -1
  84. package/src/sap/ui/table/rowmodes/InteractiveRowMode.js +1 -1
  85. package/src/sap/ui/table/rowmodes/RowMode.js +1 -1
  86. package/src/sap/ui/table/rowmodes/VariableRowMode.js +1 -1
  87. package/src/sap/ui/table/rules/Rows.support.js +1 -1
  88. package/src/sap/ui/table/themes/base/Cell.less +1 -0
  89. package/src/sap/ui/table/themes/base/Grouping.less +10 -0
  90. package/src/sap/ui/table/themes/base/Table.less +7 -2
  91. package/src/sap/ui/table/utils/TableUtils.js +19 -5
  92. package/src/sap/ui/table/utils/_BindingUtils.js +1 -1
  93. package/src/sap/ui/table/utils/_ColumnUtils.js +1 -1
  94. package/src/sap/ui/table/utils/_GroupingUtils.js +1 -1
  95. package/src/sap/ui/table/utils/_HookUtils.js +1 -1
  96. package/src/sap/ui/table/utils/_MenuUtils.js +1 -1
package/.eslintrc.json ADDED
@@ -0,0 +1,18 @@
1
+ {
2
+ "overrides": [
3
+ /*
4
+ * Productive code, sample and unit test code of sap.ui.table has been cleaned up.
5
+ * No more references to the global jQuery allowed
6
+ */
7
+ {
8
+ "files": [
9
+ "src/**/*.js",
10
+ "test/sap/ui/table/demokit/**/*.js",
11
+ "test/sap/ui/table/qunit/**/*.js"
12
+ ],
13
+ "globals": {
14
+ "jQuery": "off"
15
+ }
16
+ }
17
+ ]
18
+ }
package/THIRDPARTY.txt CHANGED
@@ -400,7 +400,7 @@ Contained in: src/sap.ui.mdc/test/sap/ui/mdc/sample/field/filterfieldwithoperato
400
400
 
401
401
  Library: sap.ui.webc.common:
402
402
 
403
- Component: UI5 Web Components, version: 1.0.0-rc.12
403
+ Component: UI5 Web Components, version: 1.1.2
404
404
  Copyright: SAP
405
405
  License: Apache-2.0
406
406
  License Text: https://github.com/SAP/openui5/blob/master/LICENSES/Apache-2.0.txt
@@ -411,7 +411,7 @@ Contained in: src/sap.ui.webc.common/src/sap/ui/webc/common/thirdparty/base/*.*
411
411
  src/sap.ui.webc.common/src/sap/ui/webc/common/thirdparty/icons-tnt/*.*
412
412
  src/sap.ui.webc.common/src/sap/ui/webc/common/thirdparty/icons-business-suite/*.*
413
413
 
414
- Component: lit-html, version: 1.4.1
414
+ Component: lit-html, version: 2.0.1
415
415
  Copyright: Google LLC
416
416
  License: BSD-3-Clause
417
417
  License Text: https://github.com/SAP/openui5/blob/master/LICENSES/BSD-3-Clause.txt
@@ -420,7 +420,7 @@ Contained in: src/sap.ui.webc.common/src/sap/ui/webc/common/thirdparty/lit-html/
420
420
 
421
421
  Library: sap.ui.webc.fiori:
422
422
 
423
- Component: UI5 Web Components, version: 1.0.0-rc.12
423
+ Component: UI5 Web Components, version: 1.1.2
424
424
  Copyright: SAP
425
425
  License: Apache-2.0
426
426
  License Text: https://github.com/SAP/openui5/blob/master/LICENSES/Apache-2.0.txt
@@ -429,7 +429,7 @@ Contained in: src/sap.ui.webc.fiori/src/sap/ui/webc/fiori/thirdparty/*.*
429
429
 
430
430
  Library: sap.ui.webc.main:
431
431
 
432
- Component: UI5 Web Components, version: 1.0.0-rc.12
432
+ Component: UI5 Web Components, version: 1.1.2
433
433
  Copyright: SAP
434
434
  License: Apache-2.0
435
435
  License Text: https://github.com/SAP/openui5/blob/master/LICENSES/Apache-2.0.txt
@@ -450,7 +450,7 @@ License: Apache-2.0
450
450
  License Text: https://github.com/SAP/openui5/blob/master/LICENSES/Apache-2.0.txt
451
451
  Contained in: lib/jsdoc/ui5/plugin.js
452
452
 
453
- Component: SAP Theming Base Content, version: 11.1.36-SNAPSHOT
453
+ Component: SAP Theming Base Content, version: 11.1.39
454
454
  Copyright: SAP SE or an SAP affiliate company and Theming Base Content contributors
455
455
  License: Apache-2.0
456
456
  License Text: https://github.com/SAP/openui5/blob/master/LICENSES/Apache-2.0.txt
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openui5/sap.ui.table",
3
- "version": "1.100.0",
3
+ "version": "1.102.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/SAP/openui5.git"
15
15
  },
16
16
  "dependencies": {
17
- "@openui5/sap.ui.core": "1.100.0",
18
- "@openui5/sap.ui.unified": "1.100.0"
17
+ "@openui5/sap.ui.core": "1.102.1",
18
+ "@openui5/sap.ui.unified": "1.102.1"
19
19
  }
20
20
  }
@@ -6,7 +6,7 @@
6
6
  <copyright>OpenUI5
7
7
  * (c) Copyright 2009-2022 SAP SE or an SAP affiliate company.
8
8
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.</copyright>
9
- <version>1.100.0</version>
9
+ <version>1.102.1</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.100.0
49
+ * @version 1.102.1
50
50
  *
51
51
  * @constructor
52
52
  * @public
@@ -363,11 +363,13 @@ sap.ui.define([
363
363
  * <li>The column's <code>leadingProperty</code> must be a sortable and filterable dimension.</li>
364
364
  * </ul>
365
365
  *
366
- * @protected
366
+ * @private
367
+ * @ui5-restricted sap.ui.comp
367
368
  * @return {boolean} <code>true</code> if the column is groupable
368
369
  */
369
- AnalyticalColumn.prototype.isGroupable = function() {
370
+ AnalyticalColumn.prototype.isGroupableByMenu = function() {
370
371
  var oParent = this.getParent();
372
+
371
373
  if (isInstanceOfAnalyticalTable(oParent)) {
372
374
  var oBinding = oParent.getBinding();
373
375
  if (oBinding) {
@@ -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.100.0
26
+ * @version 1.102.1
27
27
  *
28
28
  * @constructor
29
29
  * @public
@@ -59,7 +59,7 @@ sap.ui.define(['./ColumnMenu', "sap/ui/unified/MenuRenderer", './library', "sap/
59
59
  var oColumn = this._oColumn,
60
60
  oTable = this._oTable;
61
61
 
62
- if (oColumn.isGroupable()) {
62
+ if (oColumn.isGroupableByMenu()) {
63
63
  this._oGroupIcon = this._createMenuItem(
64
64
  "group",
65
65
  "TBL_GROUP",
@@ -56,7 +56,7 @@ sap.ui.define([
56
56
  * @see http://scn.sap.com/docs/DOC-44986
57
57
  *
58
58
  * @extends sap.ui.table.Table
59
- * @version 1.100.0
59
+ * @version 1.102.1
60
60
  *
61
61
  * @constructor
62
62
  * @public
@@ -68,7 +68,7 @@ sap.ui.define([
68
68
  * @class
69
69
  * The column allows you to define column specific properties that will be applied when rendering the table.
70
70
  * @extends sap.ui.core.Element
71
- * @version 1.100.0
71
+ * @version 1.102.1
72
72
  *
73
73
  * @constructor
74
74
  * @public
@@ -592,10 +592,10 @@ sap.ui.define([
592
592
  * happens for generated menus.
593
593
  * @private
594
594
  */
595
- Column.prototype.invalidateMenu = function() {
595
+ Column.prototype._invalidateMenu = function() {
596
596
  var oMenu = this.getAggregation("menu");
597
597
 
598
- if (this._bMenuIsColumnMenu) {
598
+ if (oMenu && this._bMenuIsColumnMenu) {
599
599
  oMenu._invalidate();
600
600
  }
601
601
  };
@@ -615,7 +615,7 @@ sap.ui.define([
615
615
  || (oTable ? oTable.getShowColumnVisibilityMenu() : false)
616
616
  || this.isSortableByMenu()
617
617
  || this.isFilterableByMenu()
618
- || this.isGroupable();
618
+ || this.isGroupableByMenu();
619
619
 
620
620
  if (bHasOwnItems) {
621
621
  return true;
@@ -665,7 +665,7 @@ sap.ui.define([
665
665
  *
666
666
  * @returns {boolean}
667
667
  */
668
- Column.prototype.isGroupable = function() {
668
+ Column.prototype.isGroupableByMenu = function() {
669
669
  var oTable = this.getParent();
670
670
  return !!(oTable && oTable.getEnableGrouping && oTable.getEnableGrouping() && this.getSortProperty());
671
671
  };
@@ -696,10 +696,20 @@ sap.ui.define([
696
696
  */
697
697
  Column.prototype.setSortProperty = function(sValue) {
698
698
  this.setProperty("sortProperty", sValue);
699
- this.invalidateMenu();
699
+ this._invalidateMenu();
700
700
  return this;
701
701
  };
702
702
 
703
+ /*
704
+ * @see JSDoc generated by SAPUI5 control API generator
705
+ */
706
+ Column.prototype.setShowSortMenuEntry = function(sValue) {
707
+ if (this.getShowSortMenuEntry() != sValue) {
708
+ this._invalidateMenu();
709
+ }
710
+ return this.setProperty("showSortMenuEntry", sValue);
711
+ };
712
+
703
713
  /*
704
714
  * @see JSDoc generated by SAPUI5 control API generator
705
715
  */
@@ -722,10 +732,20 @@ sap.ui.define([
722
732
  * @see JSDoc generated by SAPUI5 control API generator
723
733
  */
724
734
  Column.prototype.setFilterProperty = function(sValue) {
725
- this.invalidateMenu();
735
+ this._invalidateMenu();
726
736
  return this.setProperty("filterProperty", sValue);
727
737
  };
728
738
 
739
+ /*
740
+ * @see JSDoc generated by SAPUI5 control API generator
741
+ */
742
+ Column.prototype.setShowFilterMenuEntry = function(sValue) {
743
+ if (this.getShowFilterMenuEntry() != sValue) {
744
+ this._invalidateMenu();
745
+ }
746
+ return this.setProperty("showFilterMenuEntry", sValue);
747
+ };
748
+
729
749
  /*
730
750
  * @see JSDoc generated by SAPUI5 control API generator
731
751
  */
@@ -39,7 +39,7 @@ sap.ui.define([
39
39
  * @class
40
40
  * The column menu provides all common actions that can be performed on a column.
41
41
  * @extends sap.ui.unified.Menu
42
- * @version 1.100.0
42
+ * @version 1.102.1
43
43
  *
44
44
  * @constructor
45
45
  * @public
@@ -145,6 +145,8 @@ sap.ui.define([
145
145
  * @private
146
146
  */
147
147
  ColumnMenu.prototype._invalidate = function() {
148
+ this._removeColumnVisibilityFromAggregation();
149
+ this.destroyItems();
148
150
  this._bInvalidated = true;
149
151
  };
150
152
 
@@ -156,8 +158,6 @@ sap.ui.define([
156
158
  ColumnMenu.prototype.open = function() {
157
159
  if (this._bInvalidated) {
158
160
  this._bInvalidated = false;
159
- this._removeColumnVisibilityFromAggregation();
160
- this.destroyItems();
161
161
  this._addMenuItems();
162
162
  } else if (this._oColumn) {
163
163
  this._addColumnVisibilityMenuItem();
@@ -257,7 +257,7 @@ sap.ui.define([
257
257
  ColumnMenu.prototype._addGroupMenuItem = function() {
258
258
  var oColumn = this._oColumn;
259
259
 
260
- if (oColumn.isGroupable()) {
260
+ if (oColumn.isGroupableByMenu()) {
261
261
  var oTable = this._oTable;
262
262
 
263
263
  this.addItem(this._createMenuItem(
@@ -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.100.0
35
+ * @version 1.102.1
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.100.0
138
+ * @version 1.102.1
139
139
  *
140
140
  * @constructor
141
141
  * @public
@@ -688,7 +688,8 @@ sap.ui.define([
688
688
  * The <code>RowAction</code> is generated based on a template. Manipulations of the object or its items are not supported.
689
689
  *
690
690
  * @return {sap.ui.table.RowAction} The related <code>RowAction</code> of the row.
691
- * @protected
691
+ * @private
692
+ * @ui5-restricted For testing purposes only
692
693
  */
693
694
  Row.prototype.getRowAction = function() {
694
695
  return this.getAggregation("_rowAction");
@@ -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.100.0
38
+ * @version 1.102.1
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.100.0
27
+ * @version 1.102.1
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.100.0
27
+ * @version 1.102.1
28
28
  *
29
29
  * @constructor
30
30
  * @public
@@ -92,7 +92,7 @@ sap.ui.define([
92
92
  * the data model and binding being used.
93
93
  * </p>
94
94
  * @extends sap.ui.core.Control
95
- * @version 1.100.0
95
+ * @version 1.102.1
96
96
  *
97
97
  * @constructor
98
98
  * @public
@@ -202,11 +202,12 @@ sap.ui.define([
202
202
  navigationMode : {type : "sap.ui.table.NavigationMode", group : "Behavior", defaultValue : NavigationMode.Scrollbar, deprecated: true},
203
203
 
204
204
  /**
205
- * The <code>threshold</code> defines how many additional (not yet visible records) shall be pre-fetched to enable smooth
206
- * scrolling. The threshold is always added to the <code>visibleRowCount</code>. If the <code>visibleRowCount</code> is 10 and the
205
+ * Defines how many additional (not yet visible) data records from the back-end system are pre-fetched to enable smooth scrolling.
206
+ * The threshold is always added to the <code>visibleRowCount</code>. If the <code>visibleRowCount</code> is 10 and the
207
207
  * <code>threshold</code> is 100, there will be 110 records fetched with the initial load.
208
- * If the <code>threshold</code> is lower than the <code>visibleRowCount</code>, the <code>visibleRowCount</code> will be used as
209
- * the <code>threshold</code>. If the value is 0 then the thresholding is disabled.
208
+ * If the <code>threshold</code> is lower than the number of rows in the scrollable area (<code>visibleRowCount</code> minus number of
209
+ * fixed rows), this number is used as the <code>threshold</code>.
210
+ * If the value is 0, thresholding is disabled.
210
211
  */
211
212
  threshold : {type : "int", group : "Appearance", defaultValue : 100},
212
213
 
@@ -449,6 +450,14 @@ sap.ui.define([
449
450
  */
450
451
  noData : {type : "sap.ui.core.Control", altTypes : ["string"], multiple : false},
451
452
 
453
+ /**
454
+ * The control that is shown in case the Table has no visible columns.
455
+ *
456
+ * @private
457
+ * @ui5-restricted sap.ui.mdc, sap.ui.comp
458
+ */
459
+ _noColumnsMessage: {type : "sap.ui.core.Control", multiple : false, visibility: "hidden"},
460
+
452
461
  /**
453
462
  * Template for row actions. A template is decoupled from the row or table. Each time
454
463
  * the template's properties or aggregations are changed, the template has to be applied again via
@@ -3518,7 +3527,7 @@ sap.ui.define([
3518
3527
  *
3519
3528
  * @returns {int} The actual fixed column count computed based on the column spans of the header, the width of the
3520
3529
  * table and the width of the columns.
3521
- * @protected
3530
+ * @private
3522
3531
  */
3523
3532
  Table.prototype.getComputedFixedColumnCount = function() {
3524
3533
  if (this._bIgnoreFixedColumnCount) {
@@ -3647,7 +3656,7 @@ sap.ui.define([
3647
3656
  Table.prototype._invalidateColumnMenus = function() {
3648
3657
  var aCols = this.getColumns();
3649
3658
  for (var i = 0, l = aCols.length; i < l; i++) {
3650
- aCols[i].invalidateMenu();
3659
+ aCols[i]._invalidateMenu();
3651
3660
  }
3652
3661
  };
3653
3662
 
@@ -3769,6 +3778,16 @@ sap.ui.define([
3769
3778
  this.setAggregation("noData", vNoData, true);
3770
3779
  var sNewNoDataText = TableUtils.getNoDataText(this);
3771
3780
 
3781
+ if (TableUtils.isA(vNoData, "sap.m.IllustratedMessage")) {
3782
+ var oNoColumnsMessage = this.getAggregation("_noColumnsMessage");
3783
+ if (!oNoColumnsMessage) {
3784
+ sap.ui.require(["sap/m/table/Util"], function(MTableUtil) {
3785
+ oNoColumnsMessage = MTableUtil.getNoColumnsIllustratedMessage();
3786
+ this.setAggregation("_noColumnsMessage", oNoColumnsMessage);
3787
+ }.bind(this));
3788
+ }
3789
+ }
3790
+
3772
3791
  // Avoid table re-rendering if only the text is changed. If the NoData text was, or will be a control, the table must be re-rendered.
3773
3792
  if (sOldNoDataText != null && sNewNoDataText != null) {
3774
3793
  // Old and new NoData texts are plain strings, therefore we are able to directly update the DOM in case of a text change.
@@ -30,7 +30,7 @@ sap.ui.define([
30
30
  * @extends sap.ui.base.ManagedObject
31
31
  *
32
32
  * @author SAP SE
33
- * @version 1.100.0
33
+ * @version 1.102.1
34
34
  * @since 1.21.1
35
35
  *
36
36
  * @constructor
@@ -300,8 +300,10 @@ sap.ui.define(['sap/ui/core/Control', 'sap/ui/Device', './library', "./Column",
300
300
  oTable._getAccRenderExtension().writeAriaAttributesFor(rm, oTable, "NODATA");
301
301
  rm.openEnd();
302
302
 
303
- if (oTable.getNoData() instanceof Control && oTable._getVisibleColumns().length > 0) {
304
- rm.renderControl(oTable.getNoData());
303
+ var oNoContentMessage = TableUtils.getNoContentMessage(oTable);
304
+
305
+ if (oNoContentMessage instanceof Control) {
306
+ rm.renderControl(oNoContentMessage);
305
307
  } else {
306
308
  rm.openStart("span", oTable.getId() + "-noDataMsg");
307
309
  rm.class("sapUiTableCtrlEmptyMsg");
@@ -40,7 +40,7 @@ sap.ui.define([
40
40
  * @class
41
41
  * The TreeTable control provides a comprehensive set of features to display hierarchical data.
42
42
  * @extends sap.ui.table.Table
43
- * @version 1.100.0
43
+ * @version 1.102.1
44
44
  *
45
45
  * @constructor
46
46
  * @public
@@ -458,7 +458,7 @@ sap.ui.define([
458
458
  /**
459
459
  * Expands all nodes starting from the root level to the given level 'iLevel'.
460
460
  *
461
- * Only supported with ODataModel v2, when running in OperationMode.Client or OperationMode.Auto.
461
+ * Only supported with ODataModel v2, when running in OperationMode.Client.
462
462
  * Fully supported for <code>sap.ui.model.ClientTreeBinding</code>, e.g. if you are using a <code>sap.ui.model.json.JSONModel</code>.
463
463
  *
464
464
  * Please also see <code>sap.ui.model.odata.OperationMode</code>.
@@ -865,8 +865,22 @@ sap.ui.define([
865
865
 
866
866
  case AccExtension.ELEMENTTYPES.NODATA: //The no data container
867
867
  mAttributes["role"] = "gridcell";
868
- var oNoData = oTable.getNoData();
869
- mAttributes["aria-labelledby"] = [oNoData instanceof Control ? oNoData.getId() : (sTableId + "-noDataMsg")];
868
+ var oNoContentMessage = TableUtils.getNoContentMessage(oTable);
869
+ var aLabels = [];
870
+
871
+ if (oNoContentMessage instanceof Control) {
872
+ if (oNoContentMessage.isA("sap.m.IllustratedMessage")) {
873
+ var oAccRef = oNoContentMessage.getAccessibilityReferences();
874
+ aLabels.push(oAccRef.title);
875
+ aLabels.push(oAccRef.description);
876
+ } else {
877
+ aLabels.push(oNoContentMessage.getId());
878
+ }
879
+ } else {
880
+ aLabels.push(sTableId + "-noDataMsg");
881
+ }
882
+
883
+ mAttributes["aria-labelledby"] = aLabels;
870
884
  addAriaForOverlayOrNoData(oTable, mAttributes, true, false);
871
885
  break;
872
886
 
@@ -906,7 +920,7 @@ sap.ui.define([
906
920
  * @class Extension for sap.ui.table.Table which handles ACC related things.
907
921
  * @extends sap.ui.table.extensions.ExtensionBase
908
922
  * @author SAP SE
909
- * @version 1.100.0
923
+ * @version 1.102.1
910
924
  * @constructor
911
925
  * @private
912
926
  * @alias sap.ui.table.extensions.Accessibility
@@ -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.100.0
45
+ * @version 1.102.1
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.100.0
247
+ * @version 1.102.1
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.100.0
22
+ * @version 1.102.1
23
23
  * @constructor
24
24
  * @private
25
25
  * @alias sap.ui.table.extensions.ExtensionBase
@@ -267,7 +267,7 @@ sap.ui.define([
267
267
  * @class Extension for sap.ui.table.Table which handles keyboard related things.
268
268
  * @extends sap.ui.table.extensions.ExtensionBase
269
269
  * @author SAP SE
270
- * @version 1.100.0
270
+ * @version 1.102.1
271
271
  * @constructor
272
272
  * @private
273
273
  * @alias sap.ui.table.extensions.Keyboard
@@ -64,7 +64,7 @@ sap.ui.define([
64
64
  *
65
65
  * @extends sap.ui.base.Object
66
66
  * @author SAP SE
67
- * @version 1.100.0
67
+ * @version 1.102.1
68
68
  * @constructor
69
69
  * @private
70
70
  * @alias sap.ui.table.extensions.KeyboardDelegate
@@ -796,7 +796,7 @@ sap.ui.define([
796
796
  * @class Extension for sap.ui.table.Table which handles mouse and touch related things.
797
797
  * @extends sap.ui.table.extensions.ExtensionBase
798
798
  * @author SAP SE
799
- * @version 1.100.0
799
+ * @version 1.102.1
800
800
  * @constructor
801
801
  * @private
802
802
  * @alias sap.ui.table.extensions.Pointer
@@ -2257,7 +2257,7 @@ sap.ui.define([
2257
2257
  * @class Extension for sap.ui.table.Table which handles scrolling.
2258
2258
  * @extends sap.ui.table.extensions.ExtensionBase
2259
2259
  * @author SAP SE
2260
- * @version 1.100.0
2260
+ * @version 1.102.1
2261
2261
  * @constructor
2262
2262
  * @private
2263
2263
  * @alias sap.ui.table.extensions.Scrolling
@@ -27,7 +27,7 @@ sap.ui.define([
27
27
  * @class Extension for sap.ui.table.Table which handles the scrollbar on iOS.
28
28
  * @extends sap.ui.table.extensions.ExtensionBase
29
29
  * @author SAP SE
30
- * @version 1.100.0
30
+ * @version 1.102.1
31
31
  * @constructor
32
32
  * @private
33
33
  * @alias sap.ui.table.extensions.ScrollingIOS
@@ -142,7 +142,7 @@ sap.ui.define([
142
142
  * @class Extension for sap.ui.table.Table that allows synchronization with a table.
143
143
  * @extends sap.ui.table.extensions.ExtensionBase
144
144
  * @author SAP SE
145
- * @version 1.100.0
145
+ * @version 1.102.1
146
146
  * @constructor
147
147
  * @private
148
148
  * @alias sap.ui.table.extensions.Synchronization