@openui5/sap.ui.table 1.100.0 → 1.101.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 (46) 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 +1 -1
  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/plugins/BindingSelection.js +1 -1
  31. package/src/sap/ui/table/plugins/PluginBase.js +1 -1
  32. package/src/sap/ui/table/plugins/SelectionModelSelection.js +1 -1
  33. package/src/sap/ui/table/plugins/SelectionPlugin.js +1 -1
  34. package/src/sap/ui/table/plugins/V4Aggregation.js +1 -1
  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/Table.less +6 -0
  41. package/src/sap/ui/table/utils/TableUtils.js +19 -5
  42. package/src/sap/ui/table/utils/_BindingUtils.js +1 -1
  43. package/src/sap/ui/table/utils/_ColumnUtils.js +1 -1
  44. package/src/sap/ui/table/utils/_GroupingUtils.js +1 -1
  45. package/src/sap/ui/table/utils/_HookUtils.js +1 -1
  46. 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.38
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.101.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.100.0",
18
- "@openui5/sap.ui.unified": "1.100.0"
17
+ "@openui5/sap.ui.core": "1.101.0",
18
+ "@openui5/sap.ui.unified": "1.101.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.100.0</version>
9
+ <version>1.101.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.100.0
49
+ * @version 1.101.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.100.0
26
+ * @version 1.101.0
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.101.0
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.101.0
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.101.0
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.101.0
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.101.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.100.0
38
+ * @version 1.101.0
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.101.0
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.101.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.100.0
95
+ * @version 1.101.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
@@ -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.101.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.100.0
43
+ * @version 1.101.0
44
44
  *
45
45
  * @constructor
46
46
  * @public
@@ -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.101.0
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.101.0
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.101.0
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.101.0
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.101.0
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.101.0
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.101.0
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.101.0
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.101.0
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.101.0
146
146
  * @constructor
147
147
  * @private
148
148
  * @alias sap.ui.table.extensions.Synchronization
@@ -14,10 +14,19 @@ sap.ui.define(['sap/ui/core/Core', 'sap/ui/model/TreeAutoExpandMode',
14
14
 
15
15
  "use strict";
16
16
 
17
- // delegate further initialization of this library to the Core
18
- sap.ui.getCore().initLibrary({
17
+ /**
18
+ * Table-like controls, mainly for desktop scenarios.
19
+ *
20
+ * @namespace
21
+ * @alias sap.ui.table
22
+ * @author SAP SE
23
+ * @version 1.101.0
24
+ * @since 0.8
25
+ * @public
26
+ */
27
+ var thisLib = sap.ui.getCore().initLibrary({
19
28
  name : "sap.ui.table",
20
- version: "1.100.0",
29
+ version: "1.101.0",
21
30
  dependencies : ["sap.ui.core","sap.ui.unified"],
22
31
  designtime: "sap/ui/table/designtime/library.designtime",
23
32
  types: [
@@ -68,22 +77,10 @@ sap.ui.define(['sap/ui/core/Core', 'sap/ui/model/TreeAutoExpandMode',
68
77
  }
69
78
  });
70
79
 
71
- /**
72
- * Table-like controls, mainly for desktop scenarios.
73
- *
74
- * @namespace
75
- * @alias sap.ui.table
76
- * @author SAP SE
77
- * @version 1.100.0
78
- * @since 0.8
79
- * @public
80
- */
81
- var thisLib = sap.ui.table;
82
-
83
80
  /**
84
81
  * Navigation mode of the table
85
82
  *
86
- * @version 1.100.0
83
+ * @version 1.101.0
87
84
  * @enum {string}
88
85
  * @public
89
86
  * @ui5-metamodel This enumeration also will be described in the UI5 (legacy) designtime metamodel
@@ -111,7 +108,7 @@ sap.ui.define(['sap/ui/core/Core', 'sap/ui/model/TreeAutoExpandMode',
111
108
  /**
112
109
  * Row Action types.
113
110
  *
114
- * @version 1.100.0
111
+ * @version 1.101.0
115
112
  * @enum {string}
116
113
  * @public
117
114
  * @ui5-metamodel This enumeration also will be described in the UI5 (legacy) designtime metamodel
@@ -142,7 +139,7 @@ sap.ui.define(['sap/ui/core/Core', 'sap/ui/model/TreeAutoExpandMode',
142
139
  /**
143
140
  * Selection behavior of the table
144
141
  *
145
- * @version 1.100.0
142
+ * @version 1.101.0
146
143
  * @enum {string}
147
144
  * @public
148
145
  * @ui5-metamodel This enumeration also will be described in the UI5 (legacy) designtime metamodel
@@ -173,7 +170,7 @@ sap.ui.define(['sap/ui/core/Core', 'sap/ui/model/TreeAutoExpandMode',
173
170
  /**
174
171
  * Selection mode of the table
175
172
  *
176
- * @version 1.100.0
173
+ * @version 1.101.0
177
174
  * @enum {string}
178
175
  * @public
179
176
  * @ui5-metamodel This enumeration also will be described in the UI5 (legacy) designtime metamodel
@@ -211,7 +208,7 @@ sap.ui.define(['sap/ui/core/Core', 'sap/ui/model/TreeAutoExpandMode',
211
208
  /**
212
209
  * Sort order of a column
213
210
  *
214
- * @version 1.100.0
211
+ * @version 1.101.0
215
212
  * @enum {string}
216
213
  * @public
217
214
  * @ui5-metamodel This enumeration also will be described in the UI5 (legacy) designtime metamodel
@@ -236,7 +233,7 @@ sap.ui.define(['sap/ui/core/Core', 'sap/ui/model/TreeAutoExpandMode',
236
233
  /**
237
234
  * VisibleRowCountMode of the table
238
235
  *
239
- * @version 1.100.0
236
+ * @version 1.101.0
240
237
  * @enum {string}
241
238
  * @public
242
239
  * @ui5-metamodel This enumeration also will be described in the UI5 (legacy) designtime metamodel
@@ -268,7 +265,7 @@ sap.ui.define(['sap/ui/core/Core', 'sap/ui/model/TreeAutoExpandMode',
268
265
  *
269
266
  * Contains IDs of shared DOM references, which should be accessible to inheriting controls via getDomRef() function.
270
267
  *
271
- * @version 1.100.0
268
+ * @version 1.101.0
272
269
  * @enum {string}
273
270
  * @public
274
271
  */
@@ -366,7 +363,7 @@ sap.ui.define(['sap/ui/core/Core', 'sap/ui/model/TreeAutoExpandMode',
366
363
  *
367
364
  * This is an alias for {@link sap.ui.model.TreeAutoExpandMode} and kept for compatibility reasons.
368
365
  *
369
- * @version 1.100.0
366
+ * @version 1.101.0
370
367
  * @typedef {sap.ui.model.TreeAutoExpandMode}
371
368
  * @public
372
369
  */
@@ -22,7 +22,7 @@ sap.ui.define([
22
22
  *
23
23
  * @class Implements the selection methods for TreeTable and AnalyticalTable
24
24
  * @extends sap.ui.table.plugins.SelectionPlugin
25
- * @version 1.100.0
25
+ * @version 1.101.0
26
26
  * @constructor
27
27
  * @private
28
28
  * @alias sap.ui.table.plugins.BindingSelection
@@ -28,7 +28,7 @@ sap.ui.define([
28
28
  * @extends sap.ui.core.Element
29
29
  *
30
30
  * @author SAP SE
31
- * @version 1.100.0
31
+ * @version 1.101.0
32
32
  *
33
33
  * @private
34
34
  * @experimental Since 1.75
@@ -23,7 +23,7 @@ sap.ui.define([
23
23
  *
24
24
  * @class Implements the selection methods for a Table
25
25
  * @extends sap.ui.table.plugins.SelectionPlugin
26
- * @version 1.100.0
26
+ * @version 1.101.0
27
27
  * @constructor
28
28
  * @private
29
29
  * @alias sap.ui.table.plugins.SelectionModelSelection
@@ -29,7 +29,7 @@ sap.ui.define([
29
29
  * @class Implements the selection methods for a table.
30
30
  * @extends sap.ui.core.Element
31
31
  * @author SAP SE
32
- * @version 1.100.0
32
+ * @version 1.101.0
33
33
  * @public
34
34
  * @since 1.64
35
35
  * @experimental As of version 1.64
@@ -32,7 +32,7 @@ sap.ui.define([
32
32
  * @class TODO (don't forget to document fixed row count restrictions because fixed rows are set by this plugin)
33
33
  * @extends sap.ui.table.plugins.PluginBase
34
34
  * @author SAP SE
35
- * @version 1.100.0
35
+ * @version 1.101.0
36
36
  * @private
37
37
  * @since 1.76
38
38
  * @experimental
@@ -35,7 +35,7 @@ sap.ui.define([
35
35
  * @ui5-restricted sap.ui.mdc
36
36
  *
37
37
  * @author SAP SE
38
- * @version 1.100.0
38
+ * @version 1.101.0
39
39
  * @ui5-metamodel This control/element also will be described in the UI5 (legacy) designtime metamodel
40
40
  */
41
41
  var AutoRowMode = RowMode.extend("sap.ui.table.rowmodes.AutoRowMode", /** @lends sap.ui.table.rowmodes.AutoRowMode.prototype */ {
@@ -29,7 +29,7 @@ sap.ui.define([
29
29
  * @ui5-restricted sap.ui.mdc
30
30
  *
31
31
  * @author SAP SE
32
- * @version 1.100.0
32
+ * @version 1.101.0
33
33
  *
34
34
  * @ui5-metamodel This control/element also will be described in the UI5 (legacy) designtime metamodel
35
35
  */
@@ -33,7 +33,7 @@ sap.ui.define([
33
33
  * @ui5-restricted sap.ui.mdc
34
34
  *
35
35
  * @author SAP SE
36
- * @version 1.100.0
36
+ * @version 1.101.0
37
37
  *
38
38
  * @ui5-metamodel This control/element also will be described in the UI5 (legacy) designtime metamodel
39
39
  */
@@ -34,7 +34,7 @@ sap.ui.define([
34
34
  * @ui5-restricted sap.ui.mdc
35
35
  *
36
36
  * @author SAP SE
37
- * @version 1.100.0
37
+ * @version 1.101.0
38
38
  * @ui5-metamodel This control/element also will be described in the UI5 (legacy) designtime metamodel
39
39
  */
40
40
  var RowMode = Element.extend("sap.ui.table.rowmodes.RowMode", /** @lends sap.ui.table.rowmodes.RowMode.prototype */ {
@@ -23,7 +23,7 @@ sap.ui.define([
23
23
  * @extends sap.ui.table.rowmodes.RowMode
24
24
  *
25
25
  * @author SAP SE
26
- * @version 1.100.0
26
+ * @version 1.101.0
27
27
  *
28
28
  * @constructor
29
29
  * @private
@@ -164,6 +164,12 @@
164
164
  }
165
165
  }
166
166
 
167
+ .sapUiTableCtrlEmpty > .sapMIllustratedMessage {
168
+ position: absolute;
169
+ top: 50%;
170
+ transform: translate(0, -50%);
171
+ }
172
+
167
173
  .sapUiTableOverlayArea {
168
174
  background-color: transparent;
169
175
  z-index: 12;
@@ -203,7 +203,7 @@ sap.ui.define([
203
203
  * Static collection of utility functions related to the sap.ui.table.Table, ...
204
204
  *
205
205
  * @author SAP SE
206
- * @version 1.100.0
206
+ * @version 1.101.0
207
207
  * @namespace
208
208
  * @alias sap.ui.table.utils.TableUtils
209
209
  * @private
@@ -478,7 +478,21 @@ sap.ui.define([
478
478
  }
479
479
  },
480
480
 
481
- /**
481
+ /**
482
+ * Gets the message to be displayed if the table contains no columns or no data.
483
+ *
484
+ * @param oTable Instance of the table.
485
+ * @returns {Control | string} The no data control or text message.
486
+ */
487
+ getNoContentMessage: function(oTable) {
488
+ if (oTable._getVisibleColumns().length > 0) {
489
+ return oTable.getNoData();
490
+ } else {
491
+ return oTable.getAggregation("_noColumnsMessage");
492
+ }
493
+ },
494
+
495
+ /**
482
496
  * Gets the text to be displayed as the "no data text".
483
497
  * If a control is set for the <code>noData</code> aggregation, <code>null</code> is returned.
484
498
  *
@@ -486,12 +500,12 @@ sap.ui.define([
486
500
  * @returns {string | null} The no data text.
487
501
  */
488
502
  getNoDataText: function(oTable) {
489
- if (TableUtils.getVisibleColumnCount(oTable) === 0) {
503
+ var vNoData = oTable.getNoData();
504
+
505
+ if (TableUtils.getVisibleColumnCount(oTable) === 0 && !TableUtils.isA(vNoData, "sap.m.IllustratedMessage")) {
490
506
  return TableUtils.getResourceText("TBL_NO_COLUMNS");
491
507
  }
492
508
 
493
- var vNoData = oTable.getNoData();
494
-
495
509
  if (TableUtils.isA(vNoData, "sap.ui.core.Control")) {
496
510
  return null;
497
511
  } else if (typeof vNoData === "string") {
@@ -14,7 +14,7 @@ sap.ui.define([], function() {
14
14
  * Note: Do not access the functions of this helper directly, but via <code>sap.ui.table.utils.TableUtils.Binding...</code>
15
15
  *
16
16
  * @author SAP SE
17
- * @version 1.100.0
17
+ * @version 1.101.0
18
18
  * @namespace
19
19
  * @alias sap.ui.table.utils._BindingUtils
20
20
  * @private
@@ -18,7 +18,7 @@ sap.ui.define([
18
18
  * Note: Do not access the functions of this helper directly, but via <code>sap.ui.table.utils.TableUtils.Column...</code>
19
19
  *
20
20
  * @author SAP SE
21
- * @version 1.100.0
21
+ * @version 1.101.0
22
22
  * @namespace
23
23
  * @alias sap.ui.table.utils._ColumnUtils
24
24
  * @private
@@ -23,7 +23,7 @@ sap.ui.define([
23
23
  * Note: Do not access the functions of this helper directly, but via <code>sap.ui.table.utils.TableUtils.Grouping...</code>
24
24
  *
25
25
  * @author SAP SE
26
- * @version 1.100.0
26
+ * @version 1.101.0
27
27
  * @namespace
28
28
  * @alias sap.ui.table.utils._GroupingUtils
29
29
  * @private
@@ -22,7 +22,7 @@ sap.ui.define(["sap/ui/base/DataType"], function(DataType) {
22
22
  * - There is no concept for public or protected hooks. Never expose a hook directly, only indirectly as can be seen in the examples.
23
23
  *
24
24
  * @author SAP SE
25
- * @version 1.100.0
25
+ * @version 1.101.0
26
26
  * @namespace
27
27
  * @alias sap.ui.table.utils._HookUtils
28
28
  *
@@ -42,7 +42,7 @@ sap.ui.define([
42
42
  * Note: Do not access the functions of this helper directly, but via <code>sap.ui.table.utils.TableUtils.Menu...</code>
43
43
  *
44
44
  * @author SAP SE
45
- * @version 1.100.0
45
+ * @version 1.101.0
46
46
  * @namespace
47
47
  * @alias sap.ui.table.utils._MenuUtils
48
48
  * @private