@openui5/sap.ui.table 1.99.1 → 1.102.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.
Files changed (98) 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 +3 -3
  7. package/src/sap/ui/table/AnalyticalTable.js +2 -6
  8. package/src/sap/ui/table/Column.js +28 -11
  9. package/src/sap/ui/table/ColumnMenu.js +6 -8
  10. package/src/sap/ui/table/CreationRow.js +3 -2
  11. package/src/sap/ui/table/Row.js +3 -2
  12. package/src/sap/ui/table/RowAction.js +3 -2
  13. package/src/sap/ui/table/RowActionItem.js +1 -1
  14. package/src/sap/ui/table/RowActionRenderer.js +2 -2
  15. package/src/sap/ui/table/RowSettings.js +1 -1
  16. package/src/sap/ui/table/Table.js +31 -11
  17. package/src/sap/ui/table/TablePersoController.js +1 -1
  18. package/src/sap/ui/table/TableRenderer.js +4 -2
  19. package/src/sap/ui/table/TreeTable.js +3 -3
  20. package/src/sap/ui/table/extensions/Accessibility.js +19 -6
  21. package/src/sap/ui/table/extensions/AccessibilityRender.js +1 -1
  22. package/src/sap/ui/table/extensions/DragAndDrop.js +1 -1
  23. package/src/sap/ui/table/extensions/ExtensionBase.js +1 -1
  24. package/src/sap/ui/table/extensions/Keyboard.js +1 -1
  25. package/src/sap/ui/table/extensions/KeyboardDelegate.js +1 -1
  26. package/src/sap/ui/table/extensions/Pointer.js +1 -1
  27. package/src/sap/ui/table/extensions/Scrolling.js +3 -2
  28. package/src/sap/ui/table/extensions/ScrollingIOS.js +1 -1
  29. package/src/sap/ui/table/extensions/Synchronization.js +4 -4
  30. package/src/sap/ui/table/library.js +20 -23
  31. package/src/sap/ui/table/messagebundle_ar.properties +2 -0
  32. package/src/sap/ui/table/messagebundle_bg.properties +2 -0
  33. package/src/sap/ui/table/messagebundle_ca.properties +2 -0
  34. package/src/sap/ui/table/messagebundle_cs.properties +2 -0
  35. package/src/sap/ui/table/messagebundle_cy.properties +2 -0
  36. package/src/sap/ui/table/messagebundle_da.properties +2 -0
  37. package/src/sap/ui/table/messagebundle_de.properties +2 -0
  38. package/src/sap/ui/table/messagebundle_el.properties +2 -0
  39. package/src/sap/ui/table/messagebundle_en.properties +2 -0
  40. package/src/sap/ui/table/messagebundle_en_GB.properties +2 -0
  41. package/src/sap/ui/table/messagebundle_en_US_saprigi.properties +2 -0
  42. package/src/sap/ui/table/messagebundle_en_US_saptrc.properties +2 -0
  43. package/src/sap/ui/table/messagebundle_es.properties +2 -0
  44. package/src/sap/ui/table/messagebundle_es_MX.properties +2 -0
  45. package/src/sap/ui/table/messagebundle_et.properties +2 -0
  46. package/src/sap/ui/table/messagebundle_fi.properties +2 -0
  47. package/src/sap/ui/table/messagebundle_fr.properties +2 -0
  48. package/src/sap/ui/table/messagebundle_fr_CA.properties +2 -0
  49. package/src/sap/ui/table/messagebundle_hi.properties +2 -0
  50. package/src/sap/ui/table/messagebundle_hr.properties +2 -0
  51. package/src/sap/ui/table/messagebundle_hu.properties +2 -0
  52. package/src/sap/ui/table/messagebundle_id.properties +2 -0
  53. package/src/sap/ui/table/messagebundle_it.properties +2 -0
  54. package/src/sap/ui/table/messagebundle_iw.properties +2 -0
  55. package/src/sap/ui/table/messagebundle_ja.properties +2 -0
  56. package/src/sap/ui/table/messagebundle_kk.properties +2 -0
  57. package/src/sap/ui/table/messagebundle_ko.properties +2 -0
  58. package/src/sap/ui/table/messagebundle_lt.properties +2 -0
  59. package/src/sap/ui/table/messagebundle_lv.properties +2 -0
  60. package/src/sap/ui/table/messagebundle_ms.properties +2 -0
  61. package/src/sap/ui/table/messagebundle_nl.properties +2 -0
  62. package/src/sap/ui/table/messagebundle_no.properties +2 -0
  63. package/src/sap/ui/table/messagebundle_pl.properties +2 -0
  64. package/src/sap/ui/table/messagebundle_pt.properties +2 -0
  65. package/src/sap/ui/table/messagebundle_pt_PT.properties +2 -0
  66. package/src/sap/ui/table/messagebundle_ro.properties +2 -0
  67. package/src/sap/ui/table/messagebundle_ru.properties +2 -0
  68. package/src/sap/ui/table/messagebundle_sh.properties +2 -0
  69. package/src/sap/ui/table/messagebundle_sk.properties +2 -0
  70. package/src/sap/ui/table/messagebundle_sl.properties +2 -0
  71. package/src/sap/ui/table/messagebundle_sv.properties +2 -0
  72. package/src/sap/ui/table/messagebundle_th.properties +2 -0
  73. package/src/sap/ui/table/messagebundle_tr.properties +2 -0
  74. package/src/sap/ui/table/messagebundle_uk.properties +2 -0
  75. package/src/sap/ui/table/messagebundle_vi.properties +2 -0
  76. package/src/sap/ui/table/messagebundle_zh_CN.properties +2 -0
  77. package/src/sap/ui/table/messagebundle_zh_TW.properties +2 -0
  78. package/src/sap/ui/table/plugins/BindingSelection.js +1 -1
  79. package/src/sap/ui/table/plugins/MultiSelectionPlugin.js +0 -4
  80. package/src/sap/ui/table/plugins/PluginBase.js +1 -1
  81. package/src/sap/ui/table/plugins/SelectionModelSelection.js +1 -1
  82. package/src/sap/ui/table/plugins/SelectionPlugin.js +1 -1
  83. package/src/sap/ui/table/plugins/V4Aggregation.js +1 -1
  84. package/src/sap/ui/table/rowmodes/AutoRowMode.js +5 -3
  85. package/src/sap/ui/table/rowmodes/FixedRowMode.js +1 -1
  86. package/src/sap/ui/table/rowmodes/InteractiveRowMode.js +1 -1
  87. package/src/sap/ui/table/rowmodes/RowMode.js +1 -3
  88. package/src/sap/ui/table/rowmodes/VariableRowMode.js +1 -1
  89. package/src/sap/ui/table/rules/Rows.support.js +4 -3
  90. package/src/sap/ui/table/themes/base/Cell.less +1 -0
  91. package/src/sap/ui/table/themes/base/Grouping.less +10 -0
  92. package/src/sap/ui/table/themes/base/Table.less +7 -2
  93. package/src/sap/ui/table/utils/TableUtils.js +19 -5
  94. package/src/sap/ui/table/utils/_BindingUtils.js +1 -1
  95. package/src/sap/ui/table/utils/_ColumnUtils.js +2 -9
  96. package/src/sap/ui/table/utils/_GroupingUtils.js +2 -3
  97. package/src/sap/ui/table/utils/_HookUtils.js +2 -2
  98. 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.34
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.99.1",
3
+ "version": "1.102.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/SAP/openui5.git"
15
15
  },
16
16
  "dependencies": {
17
- "@openui5/sap.ui.core": "1.99.1",
18
- "@openui5/sap.ui.unified": "1.99.1"
17
+ "@openui5/sap.ui.core": "1.102.0",
18
+ "@openui5/sap.ui.unified": "1.102.0"
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.99.1</version>
9
+ <version>1.102.0</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.99.1
49
+ * @version 1.102.0
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.99.1
26
+ * @version 1.102.0
27
27
  *
28
28
  * @constructor
29
29
  * @public
@@ -36,7 +36,7 @@ sap.ui.define(['./ColumnMenu', "sap/ui/unified/MenuRenderer", './library', "sap/
36
36
  metadata : {
37
37
  library : "sap.ui.table"
38
38
  },
39
- renderer: "sap.ui.unified.MenuRenderer"
39
+ renderer: MenuRenderer
40
40
  });
41
41
 
42
42
  /**
@@ -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",
@@ -13,9 +13,7 @@ sap.ui.define([
13
13
  "./TableRenderer",
14
14
  './library',
15
15
  'sap/ui/model/analytics/ODataModelAdapter',
16
- 'sap/ui/model/SelectionModel',
17
16
  'sap/ui/model/Sorter',
18
- 'sap/ui/unified/Menu',
19
17
  'sap/ui/unified/MenuItem',
20
18
  './utils/TableUtils',
21
19
  "./plugins/BindingSelection",
@@ -31,9 +29,7 @@ sap.ui.define([
31
29
  TableRenderer,
32
30
  library,
33
31
  ODataModelAdapter,
34
- SelectionModel,
35
32
  Sorter,
36
- Menu,
37
33
  MenuItem,
38
34
  TableUtils,
39
35
  BindingSelectionPlugin,
@@ -60,7 +56,7 @@ sap.ui.define([
60
56
  * @see http://scn.sap.com/docs/DOC-44986
61
57
  *
62
58
  * @extends sap.ui.table.Table
63
- * @version 1.99.1
59
+ * @version 1.102.0
64
60
  *
65
61
  * @constructor
66
62
  * @public
@@ -168,7 +164,7 @@ sap.ui.define([
168
164
  dirty : {type : "boolean", group : "Appearance", defaultValue : null, deprecated: true}
169
165
  },
170
166
  designtime: "sap/ui/table/designtime/AnalyticalTable.designtime"
171
- }, renderer: "sap.ui.table.TableRenderer"});
167
+ }, renderer: TableRenderer});
172
168
 
173
169
  /**
174
170
  * @inheritDoc
@@ -20,7 +20,6 @@ sap.ui.define([
20
20
  "sap/ui/model/type/String",
21
21
  "sap/base/util/ObjectPath",
22
22
  "sap/base/util/JSTokenizer",
23
- "sap/base/util/deepClone",
24
23
  "sap/base/Log"
25
24
  ], function(
26
25
  ColumnMenu,
@@ -37,7 +36,6 @@ sap.ui.define([
37
36
  StringType,
38
37
  ObjectPath,
39
38
  JSTokenizer,
40
- deepClone,
41
39
  Log
42
40
  ) {
43
41
  "use strict";
@@ -70,7 +68,7 @@ sap.ui.define([
70
68
  * @class
71
69
  * The column allows you to define column specific properties that will be applied when rendering the table.
72
70
  * @extends sap.ui.core.Element
73
- * @version 1.99.1
71
+ * @version 1.102.0
74
72
  *
75
73
  * @constructor
76
74
  * @public
@@ -594,10 +592,10 @@ sap.ui.define([
594
592
  * happens for generated menus.
595
593
  * @private
596
594
  */
597
- Column.prototype.invalidateMenu = function() {
595
+ Column.prototype._invalidateMenu = function() {
598
596
  var oMenu = this.getAggregation("menu");
599
597
 
600
- if (this._bMenuIsColumnMenu) {
598
+ if (oMenu && this._bMenuIsColumnMenu) {
601
599
  oMenu._invalidate();
602
600
  }
603
601
  };
@@ -617,7 +615,7 @@ sap.ui.define([
617
615
  || (oTable ? oTable.getShowColumnVisibilityMenu() : false)
618
616
  || this.isSortableByMenu()
619
617
  || this.isFilterableByMenu()
620
- || this.isGroupable();
618
+ || this.isGroupableByMenu();
621
619
 
622
620
  if (bHasOwnItems) {
623
621
  return true;
@@ -667,7 +665,7 @@ sap.ui.define([
667
665
  *
668
666
  * @returns {boolean}
669
667
  */
670
- Column.prototype.isGroupable = function() {
668
+ Column.prototype.isGroupableByMenu = function() {
671
669
  var oTable = this.getParent();
672
670
  return !!(oTable && oTable.getEnableGrouping && oTable.getEnableGrouping() && this.getSortProperty());
673
671
  };
@@ -698,10 +696,20 @@ sap.ui.define([
698
696
  */
699
697
  Column.prototype.setSortProperty = function(sValue) {
700
698
  this.setProperty("sortProperty", sValue);
701
- this.invalidateMenu();
699
+ this._invalidateMenu();
702
700
  return this;
703
701
  };
704
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
+
705
713
  /*
706
714
  * @see JSDoc generated by SAPUI5 control API generator
707
715
  */
@@ -724,10 +732,20 @@ sap.ui.define([
724
732
  * @see JSDoc generated by SAPUI5 control API generator
725
733
  */
726
734
  Column.prototype.setFilterProperty = function(sValue) {
727
- this.invalidateMenu();
735
+ this._invalidateMenu();
728
736
  return this.setProperty("filterProperty", sValue);
729
737
  };
730
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
+
731
749
  /*
732
750
  * @see JSDoc generated by SAPUI5 control API generator
733
751
  */
@@ -1301,8 +1319,7 @@ sap.ui.define([
1301
1319
  * Returns the <code>sap.ui.core.IColumnHeaderMenu<\code>, which is the current target of the association <code>columnHeaderMenu</code>, or null.
1302
1320
  *
1303
1321
  * @returns {sap.ui.core.IColumnHeaderMenu}
1304
- * @since 1.98.0
1305
- * @public
1322
+ * @private
1306
1323
  */
1307
1324
  Column.prototype.getColumnHeaderMenu = function () {
1308
1325
  return sap.ui.getCore().byId(this.getAssociation("columnHeaderMenu"));
@@ -11,12 +11,11 @@ sap.ui.define([
11
11
  'sap/ui/unified/MenuItem',
12
12
  'sap/ui/unified/MenuTextFieldItem',
13
13
  "sap/ui/unified/MenuRenderer",
14
- 'sap/ui/Device',
15
14
  './utils/TableUtils',
16
15
  "sap/base/assert",
17
16
  "sap/ui/thirdparty/jquery"
18
17
  ],
19
- function(library, Menu, MenuItem, MenuTextFieldItem, MenuRenderer, Device, TableUtils, assert, jQuery) {
18
+ function(library, Menu, MenuItem, MenuTextFieldItem, MenuRenderer, TableUtils, assert, jQuery) {
20
19
  "use strict";
21
20
 
22
21
  /**
@@ -40,7 +39,7 @@ sap.ui.define([
40
39
  * @class
41
40
  * The column menu provides all common actions that can be performed on a column.
42
41
  * @extends sap.ui.unified.Menu
43
- * @version 1.99.1
42
+ * @version 1.102.0
44
43
  *
45
44
  * @constructor
46
45
  * @public
@@ -51,7 +50,7 @@ sap.ui.define([
51
50
  metadata : {
52
51
  library : "sap.ui.table"
53
52
  },
54
- renderer: "sap.ui.unified.MenuRenderer"
53
+ renderer: MenuRenderer
55
54
  });
56
55
 
57
56
 
@@ -146,6 +145,8 @@ sap.ui.define([
146
145
  * @private
147
146
  */
148
147
  ColumnMenu.prototype._invalidate = function() {
148
+ this._removeColumnVisibilityFromAggregation();
149
+ this.destroyItems();
149
150
  this._bInvalidated = true;
150
151
  };
151
152
 
@@ -157,8 +158,6 @@ sap.ui.define([
157
158
  ColumnMenu.prototype.open = function() {
158
159
  if (this._bInvalidated) {
159
160
  this._bInvalidated = false;
160
- this._removeColumnVisibilityFromAggregation();
161
- this.destroyItems();
162
161
  this._addMenuItems();
163
162
  } else if (this._oColumn) {
164
163
  this._addColumnVisibilityMenuItem();
@@ -258,7 +257,7 @@ sap.ui.define([
258
257
  ColumnMenu.prototype._addGroupMenuItem = function() {
259
258
  var oColumn = this._oColumn;
260
259
 
261
- if (oColumn.isGroupable()) {
260
+ if (oColumn.isGroupableByMenu()) {
262
261
  var oTable = this._oTable;
263
262
 
264
263
  this.addItem(this._createMenuItem(
@@ -333,7 +332,6 @@ sap.ui.define([
333
332
 
334
333
  /**
335
334
  * Factory method for the column visibility menu item.
336
- * @param {string} sId the id of the menu item.
337
335
  * @param {sap.ui.table.Column} oColumn the associated column to the menu item.
338
336
  * @returns {sap.ui.unified.MenuItem} the created menu item.
339
337
  * @private
@@ -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.99.1
35
+ * @version 1.102.0
36
36
  *
37
37
  * @constructor
38
38
  * @private
@@ -76,7 +76,8 @@ sap.ui.define([
76
76
  allowPreventDefault: true
77
77
  }
78
78
  }
79
- }
79
+ },
80
+ renderer: Renderer
80
81
  });
81
82
 
82
83
  /*
@@ -135,7 +135,7 @@ sap.ui.define([
135
135
  * @class
136
136
  * The row.
137
137
  * @extends sap.ui.core.Element
138
- * @version 1.99.1
138
+ * @version 1.102.0
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.99.1
38
+ * @version 1.102.0
39
39
  *
40
40
  * @constructor
41
41
  * @public
@@ -70,7 +70,8 @@ sap.ui.define([
70
70
  _menu: {type: "sap.ui.unified.Menu", multiple: false, visibility: "hidden"}
71
71
  },
72
72
  events: {}
73
- }
73
+ },
74
+ renderer: RowActionRenderer
74
75
  });
75
76
 
76
77
  RowAction.prototype.init = function() {
@@ -24,7 +24,7 @@ sap.ui.define([
24
24
  * @extends sap.ui.core.Element
25
25
  *
26
26
  * @author SAP SE
27
- * @version 1.99.1
27
+ * @version 1.102.0
28
28
  * @since 1.45
29
29
  *
30
30
  * @constructor
@@ -5,8 +5,8 @@
5
5
  */
6
6
 
7
7
  //Provides default renderer for control sap.ui.table.RowAction
8
- sap.ui.define(['sap/ui/table/Row'],
9
- function(Row) {
8
+ sap.ui.define([],
9
+ function() {
10
10
  "use strict";
11
11
 
12
12
  /**
@@ -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.99.1
27
+ * @version 1.102.0
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.99.1
95
+ * @version 1.102.0
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
@@ -540,7 +549,7 @@ sap.ui.define([
540
549
  /**
541
550
  * binding context of the row which has been clicked so that selection has been changed
542
551
  */
543
- rowContext : {type : "object"},
552
+ rowContext : {type : "sap.ui.model.Context"},
544
553
 
545
554
  /**
546
555
  * array of row indices which selection has been changed (either selected or deselected)
@@ -870,7 +879,7 @@ sap.ui.define([
870
879
  }
871
880
  },
872
881
  designtime: "sap/ui/table/designtime/Table.designtime"
873
- }});
882
+ }, renderer: TableRenderer});
874
883
 
875
884
  /**
876
885
  * Gets content of aggregation <code>dragDropConfig</code> which defines the drag-and-drop configuration.
@@ -1269,7 +1278,7 @@ sap.ui.define([
1269
1278
 
1270
1279
  var oSapUiTableCtrlScroll = oDomRef.querySelector(".sapUiTableCtrlScroll:not(.sapUiTableCHT)");
1271
1280
  if (oSapUiTableCtrlScroll) {
1272
- oSizes.tableCtrlScrollWidth = oSapUiTableCtrlScroll.clientWidth;
1281
+ oSizes.tableCtrlScrollWidth = oSapUiTableCtrlScroll.getBoundingClientRect().width;
1273
1282
  }
1274
1283
 
1275
1284
  var oSapUiTableRowHdrScr = oDomRef.querySelector(".sapUiTableRowHdrScr");
@@ -1279,7 +1288,7 @@ sap.ui.define([
1279
1288
 
1280
1289
  var oCtrlScrDomRef = oDomRef.querySelector(".sapUiTableCtrlScr:not(.sapUiTableCHA)");
1281
1290
  if (oCtrlScrDomRef) {
1282
- oSizes.tableCtrlScrWidth = oCtrlScrDomRef.clientWidth;
1291
+ oSizes.tableCtrlScrWidth = oCtrlScrDomRef.getBoundingClientRect().width;
1283
1292
  }
1284
1293
 
1285
1294
  var oCtrlFixed = oDomRef.querySelector(".sapUiTableCtrlScrFixed:not(.sapUiTableCHA) > .sapUiTableCtrlFixed");
@@ -1348,6 +1357,7 @@ sap.ui.define([
1348
1357
 
1349
1358
  /**
1350
1359
  * Synchronizes the row heights.
1360
+ * @param {float[]} aRowItemHeights
1351
1361
  * @param {boolean} bHeader update of column headers if true, otherwise update data rows.
1352
1362
  * @private
1353
1363
  */
@@ -3517,7 +3527,7 @@ sap.ui.define([
3517
3527
  *
3518
3528
  * @returns {int} The actual fixed column count computed based on the column spans of the header, the width of the
3519
3529
  * table and the width of the columns.
3520
- * @protected
3530
+ * @private
3521
3531
  */
3522
3532
  Table.prototype.getComputedFixedColumnCount = function() {
3523
3533
  if (this._bIgnoreFixedColumnCount) {
@@ -3646,7 +3656,7 @@ sap.ui.define([
3646
3656
  Table.prototype._invalidateColumnMenus = function() {
3647
3657
  var aCols = this.getColumns();
3648
3658
  for (var i = 0, l = aCols.length; i < l; i++) {
3649
- aCols[i].invalidateMenu();
3659
+ aCols[i]._invalidateMenu();
3650
3660
  }
3651
3661
  };
3652
3662
 
@@ -3768,6 +3778,16 @@ sap.ui.define([
3768
3778
  this.setAggregation("noData", vNoData, true);
3769
3779
  var sNewNoDataText = TableUtils.getNoDataText(this);
3770
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
+
3771
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.
3772
3792
  if (sOldNoDataText != null && sNewNoDataText != null) {
3773
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.99.1
33
+ * @version 1.102.0
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.99.1
43
+ * @version 1.102.0
44
44
  *
45
45
  * @constructor
46
46
  * @public
@@ -152,7 +152,7 @@ sap.ui.define([
152
152
  }
153
153
  }
154
154
  }
155
- }, renderer: "sap.ui.table.TableRenderer"});
155
+ }, renderer: TableRenderer});
156
156
 
157
157
 
158
158
  /**
@@ -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>.
@@ -11,9 +11,8 @@ sap.ui.define([
11
11
  "../utils/TableUtils",
12
12
  "../library",
13
13
  "sap/ui/core/Control",
14
- "sap/ui/Device",
15
14
  "sap/ui/thirdparty/jquery"
16
- ], function(ExtensionBase, AccRenderExtension, TableUtils, library, Control, Device, jQuery) {
15
+ ], function(ExtensionBase, AccRenderExtension, TableUtils, library, Control, jQuery) {
17
16
  "use strict";
18
17
 
19
18
  // shortcuts
@@ -866,8 +865,22 @@ sap.ui.define([
866
865
 
867
866
  case AccExtension.ELEMENTTYPES.NODATA: //The no data container
868
867
  mAttributes["role"] = "gridcell";
869
- var oNoData = oTable.getNoData();
870
- 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;
871
884
  addAriaForOverlayOrNoData(oTable, mAttributes, true, false);
872
885
  break;
873
886
 
@@ -907,7 +920,7 @@ sap.ui.define([
907
920
  * @class Extension for sap.ui.table.Table which handles ACC related things.
908
921
  * @extends sap.ui.table.extensions.ExtensionBase
909
922
  * @author SAP SE
910
- * @version 1.99.1
923
+ * @version 1.102.0
911
924
  * @constructor
912
925
  * @private
913
926
  * @alias sap.ui.table.extensions.Accessibility
@@ -1187,7 +1200,7 @@ sap.ui.define([
1187
1200
  *
1188
1201
  * @param {sap.ui.table.Row} oRow Instance of the row.
1189
1202
  * @param {jQuery} $Ref The jQuery references to the DOM areas of the row.
1190
- * @param {string} sSelectReference The text for the tooltip.
1203
+ * @param {string} sTextMouse The text for the tooltip.
1191
1204
  * @public
1192
1205
  */
1193
1206
  AccExtension.prototype.updateRowTooltips = function(oRow, $Ref, sTextMouse) {