@openui5/sap.ui.table 1.134.0 → 1.136.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 (82) hide show
  1. package/REUSE.toml +649 -0
  2. package/THIRDPARTY.txt +23 -23
  3. package/package.json +3 -3
  4. package/src/sap/ui/table/.library +2 -2
  5. package/src/sap/ui/table/AnalyticalColumn.js +2 -2
  6. package/src/sap/ui/table/AnalyticalColumnMenu.js +2 -2
  7. package/src/sap/ui/table/AnalyticalTable.js +4 -4
  8. package/src/sap/ui/table/Column.js +11 -3
  9. package/src/sap/ui/table/ColumnMenu.js +2 -2
  10. package/src/sap/ui/table/CreationRow.js +2 -2
  11. package/src/sap/ui/table/CreationRowRenderer.js +1 -1
  12. package/src/sap/ui/table/Row.js +24 -33
  13. package/src/sap/ui/table/RowAction.js +2 -2
  14. package/src/sap/ui/table/RowActionItem.js +2 -2
  15. package/src/sap/ui/table/RowActionRenderer.js +1 -1
  16. package/src/sap/ui/table/RowSettings.js +2 -2
  17. package/src/sap/ui/table/Table.js +71 -113
  18. package/src/sap/ui/table/TablePersoController.js +2 -2
  19. package/src/sap/ui/table/TableRenderer.js +15 -16
  20. package/src/sap/ui/table/TreeTable.js +2 -2
  21. package/src/sap/ui/table/designtime/AnalyticalTable.designtime.js +1 -1
  22. package/src/sap/ui/table/designtime/Table.designtime.js +1 -1
  23. package/src/sap/ui/table/designtime/library.designtime.js +1 -1
  24. package/src/sap/ui/table/extensions/Accessibility.js +8 -7
  25. package/src/sap/ui/table/extensions/AccessibilityRender.js +3 -4
  26. package/src/sap/ui/table/extensions/DragAndDrop.js +2 -2
  27. package/src/sap/ui/table/extensions/ExtensionBase.js +2 -2
  28. package/src/sap/ui/table/extensions/Keyboard.js +2 -2
  29. package/src/sap/ui/table/extensions/KeyboardDelegate.js +157 -402
  30. package/src/sap/ui/table/extensions/Pointer.js +4 -6
  31. package/src/sap/ui/table/extensions/Scrolling.js +47 -22
  32. package/src/sap/ui/table/extensions/ScrollingIOS.js +2 -2
  33. package/src/sap/ui/table/extensions/Synchronization.js +2 -2
  34. package/src/sap/ui/table/i18n/interaction.xml +254 -0
  35. package/src/sap/ui/table/library.js +15 -36
  36. package/src/sap/ui/table/library.support.js +1 -1
  37. package/src/sap/ui/table/menus/AnalyticalTableContextMenu.js +2 -2
  38. package/src/sap/ui/table/menus/ColumnHeaderMenuAdapter.js +2 -2
  39. package/src/sap/ui/table/menus/ContextMenu.js +2 -2
  40. package/src/sap/ui/table/menus/LegacyColumnMenuAdapter.js +1 -1
  41. package/src/sap/ui/table/menus/MobileColumnHeaderMenuAdapter.js +2 -2
  42. package/src/sap/ui/table/messagebundle_bg.properties +1 -1
  43. package/src/sap/ui/table/plugins/BindingSelection.js +34 -34
  44. package/src/sap/ui/table/plugins/MultiSelectionPlugin.js +38 -32
  45. package/src/sap/ui/table/plugins/ODataV4Selection.js +217 -101
  46. package/src/sap/ui/table/plugins/PluginBase.js +53 -140
  47. package/src/sap/ui/table/plugins/SelectionMode.js +35 -0
  48. package/src/sap/ui/table/plugins/SelectionModelSelection.js +29 -36
  49. package/src/sap/ui/table/plugins/SelectionPlugin.js +36 -36
  50. package/src/sap/ui/table/plugins/V4Aggregation.js +31 -38
  51. package/src/sap/ui/table/rowmodes/Auto.js +2 -2
  52. package/src/sap/ui/table/rowmodes/Fixed.js +2 -2
  53. package/src/sap/ui/table/rowmodes/Interactive.js +2 -2
  54. package/src/sap/ui/table/rowmodes/RowMode.js +2 -4
  55. package/src/sap/ui/table/rowmodes/Type.js +1 -1
  56. package/src/sap/ui/table/rowmodes/Variable.js +2 -2
  57. package/src/sap/ui/table/rules/Accessibility.support.js +1 -1
  58. package/src/sap/ui/table/rules/Binding.support.js +1 -1
  59. package/src/sap/ui/table/rules/ColumnTemplate.support.js +1 -1
  60. package/src/sap/ui/table/rules/Plugins.support.js +1 -1
  61. package/src/sap/ui/table/rules/Rows.support.js +1 -1
  62. package/src/sap/ui/table/rules/TableHelper.support.js +1 -1
  63. package/src/sap/ui/table/themes/base/Cell.less +66 -48
  64. package/src/sap/ui/table/themes/base/CreationRow.less +10 -8
  65. package/src/sap/ui/table/themes/base/DragDrop.less +34 -31
  66. package/src/sap/ui/table/themes/base/Grouping.less +23 -14
  67. package/src/sap/ui/table/themes/base/Row.less +6 -6
  68. package/src/sap/ui/table/themes/base/RowAction.less +2 -2
  69. package/src/sap/ui/table/themes/base/RowHighlight.less +15 -15
  70. package/src/sap/ui/table/themes/base/RowSelection.less +13 -8
  71. package/src/sap/ui/table/themes/base/Scrolling.less +76 -25
  72. package/src/sap/ui/table/themes/base/Table.less +63 -46
  73. package/src/sap/ui/table/themes/base/library.source.less +4 -4
  74. package/src/sap/ui/table/themes/sap_hcb/library.source.less +1 -1
  75. package/src/sap/ui/table/utils/TableUtils.js +6 -7
  76. package/src/sap/ui/table/utils/_BindingUtils.js +2 -2
  77. package/src/sap/ui/table/utils/_ColumnUtils.js +2 -2
  78. package/src/sap/ui/table/utils/_GroupingUtils.js +2 -2
  79. package/src/sap/ui/table/utils/_HookUtils.js +2 -2
  80. package/src/sap/ui/table/utils/_MenuUtils.js +2 -2
  81. package/ui5.yaml +1 -1
  82. package/.reuse/dep5 +0 -471
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  * OpenUI5
3
- * (c) Copyright 2009-2025 SAP SE or an SAP affiliate company.
3
+ * (c) Copyright 2025 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
  sap.ui.define([
@@ -13,22 +13,31 @@ sap.ui.define([
13
13
  "use strict";
14
14
 
15
15
  /**
16
- * Constructs an instance of sap.ui.table.plugins.V4Aggregation
16
+ * @class
17
+ * Integrates the aggregation information of the {@link sap.ui.model.odata.v4.ODataListBinding} and the table. The table is enabled to visualize
18
+ * group levels and sums according to that information. See {@link sap.ui.model.odata.v4.ODataListBinding#setAggregation} for details.
19
+ *
20
+ * This plugin only works in combination with a <code>sap.ui.model.odata.v4.ODataModel</code>. Do not add it to a table that is bound to another
21
+ * model.
22
+ * @extends sap.ui.core.Element
17
23
  *
18
- * @class TODO
19
- * @extends sap.ui.table.plugins.PluginBase
20
24
  * @author SAP SE
21
- * @version 1.134.0
25
+ * @version 1.136.0
26
+ *
22
27
  * @private
23
- * @since 1.76
24
- * @ui5-restricted sap.ui.mdc
25
28
  * @alias sap.ui.table.plugins.V4Aggregation
29
+ *
26
30
  * @borrows sap.ui.table.plugins.PluginBase.findOn as findOn
27
31
  */
28
32
  const V4Aggregation = PluginBase.extend("sap.ui.table.plugins.V4Aggregation", /** @lends sap.ui.table.plugins.V4Aggregation.prototype */ {
29
33
  metadata: {
30
34
  library: "sap.ui.table",
31
35
  properties: {
36
+ /**
37
+ * Indicates whether this plugin is enabled.
38
+ */
39
+ enabled: {type: "boolean", defaultValue: true}, // TODO: Inherited from private PluginBase. Remove once PluginBase is public.
40
+
32
41
  /**
33
42
  * If the formatter returns undefined, the default group header title is set.
34
43
  *
@@ -50,26 +59,14 @@ sap.ui.define([
50
59
  return PluginBase.prototype.isApplicable.apply(this, arguments) && oControl.getMetadata().getName() === "sap.ui.table.Table";
51
60
  };
52
61
 
53
- /**
54
- * @override
55
- * @inheritDoc
56
- */
57
- V4Aggregation.prototype.activate = function() {
58
- const oBinding = this.getTableBinding();
59
-
60
- if (oBinding && !oBinding.isA("sap.ui.model.odata.v4.ODataListBinding")) {
61
- return;
62
- }
63
-
64
- PluginBase.prototype.activate.apply(this, arguments);
65
- };
66
-
67
62
  /**
68
63
  * @override
69
64
  * @inheritDoc
70
65
  */
71
66
  V4Aggregation.prototype.onActivate = function(oTable) {
67
+ validateBinding(oTable.getBinding());
72
68
  TableUtils.Grouping.setToDefaultGroupMode(oTable);
69
+ TableUtils.Hook.register(oTable, TableUtils.Hook.Keys.Table.RowsBound, validateBinding);
73
70
  TableUtils.Hook.register(oTable, TableUtils.Hook.Keys.Row.UpdateState, updateRowState, this);
74
71
  TableUtils.Hook.register(oTable, TableUtils.Hook.Keys.Row.Expand, expandRow, this);
75
72
  TableUtils.Hook.register(oTable, TableUtils.Hook.Keys.Row.Collapse, collapseRow, this);
@@ -84,28 +81,14 @@ sap.ui.define([
84
81
  oColumn._setCellContentVisibilitySettings();
85
82
  }
86
83
  TableUtils.Grouping.setToDefaultFlatMode(oTable);
84
+ TableUtils.Hook.deregister(oTable, TableUtils.Hook.Keys.Table.RowsBound, validateBinding);
87
85
  TableUtils.Hook.deregister(oTable, TableUtils.Hook.Keys.Row.UpdateState, this.updateRowState, this);
88
86
  TableUtils.Hook.deregister(this, TableUtils.Hook.Keys.Row.Expand, expandRow, this);
89
87
  TableUtils.Hook.deregister(this, TableUtils.Hook.Keys.Row.Collapse, collapseRow, this);
90
88
  };
91
89
 
92
- /**
93
- * @override
94
- * @inheritDoc
95
- */
96
- V4Aggregation.prototype.onTableRowsBound = function(oBinding) {
97
- // TODO: Check whether the plugin is correctly (de)activated in all possible cases and write tests.
98
- // For example:
99
- // - if the plugin is not active because there is no ODataV4 model yet, it won't be activated if that model is added later
100
- // - on unbind
101
- // Consider calling binding-related hooks also on inactive plugins for this purpose (check usage in selection plugins).
102
- if (!oBinding.getModel().isA("sap.ui.model.odata.v4.ODataModel")) {
103
- this.deactivate();
104
- }
105
- };
106
-
107
90
  V4Aggregation.prototype.declareColumnsHavingTotals = function(aColumnsWithTotals) {
108
- const aColumns = this.getTable()?.getColumns() ?? [];
91
+ const aColumns = this.getControl()?.getColumns() ?? [];
109
92
 
110
93
  for (const oColumn of aColumns) {
111
94
  const bHasTotals = aColumnsWithTotals.includes(oColumn);
@@ -117,6 +100,16 @@ sap.ui.define([
117
100
  }
118
101
  };
119
102
 
103
+ function validateBinding(oBinding) {
104
+ if (!oBinding) {
105
+ return;
106
+ }
107
+
108
+ if (!oBinding.getModel().isA("sap.ui.model.odata.v4.ODataModel")) {
109
+ throw new Error("Model must be sap.ui.model.odata.v4.ODataModel");
110
+ }
111
+ }
112
+
120
113
  function updateRowState(oState) {
121
114
  const iLevel = oState.context.getProperty("@$ui5.node.level");
122
115
  const bContainsTotals = oState.context.getProperty("@$ui5.node.isTotal");
@@ -137,7 +130,7 @@ sap.ui.define([
137
130
  }
138
131
 
139
132
  if (bIsGroupHeader) {
140
- const sGroupHeaderPath = this.getTableBinding().getAggregation().groupLevels[iLevel - 1];
133
+ const sGroupHeaderPath = oState.context.getBinding().getAggregation().groupLevels[iLevel - 1];
141
134
  const fnCustomGroupHeaderFormatter = this.getGroupHeaderFormatter();
142
135
 
143
136
  if (fnCustomGroupHeaderFormatter) {
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  * OpenUI5
3
- * (c) Copyright 2009-2025 SAP SE or an SAP affiliate company.
3
+ * (c) Copyright 2025 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
  sap.ui.define([
@@ -38,7 +38,7 @@ sap.ui.define([
38
38
  * @public
39
39
  *
40
40
  * @author SAP SE
41
- * @version 1.134.0
41
+ * @version 1.136.0
42
42
  */
43
43
  const AutoRowMode = RowMode.extend("sap.ui.table.rowmodes.Auto", /** @lends sap.ui.table.rowmodes.Auto.prototype */ {
44
44
  metadata: {
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  * OpenUI5
3
- * (c) Copyright 2009-2025 SAP SE or an SAP affiliate company.
3
+ * (c) Copyright 2025 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
  sap.ui.define([
@@ -27,7 +27,7 @@ sap.ui.define([
27
27
  * @public
28
28
  *
29
29
  * @author SAP SE
30
- * @version 1.134.0
30
+ * @version 1.136.0
31
31
  */
32
32
  const FixedRowMode = RowMode.extend("sap.ui.table.rowmodes.Fixed", /** @lends sap.ui.table.rowmodes.Fixed.prototype */ {
33
33
  metadata: {
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  * OpenUI5
3
- * (c) Copyright 2009-2025 SAP SE or an SAP affiliate company.
3
+ * (c) Copyright 2025 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
  sap.ui.define([
@@ -40,7 +40,7 @@ sap.ui.define([
40
40
  * @public
41
41
  *
42
42
  * @author SAP SE
43
- * @version 1.134.0
43
+ * @version 1.136.0
44
44
  */
45
45
  const InteractiveRowMode = RowMode.extend("sap.ui.table.rowmodes.Interactive", /** @lends sap.ui.table.rowmodes.Interactive.prototype */ {
46
46
  metadata: {
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  * OpenUI5
3
- * (c) Copyright 2009-2025 SAP SE or an SAP affiliate company.
3
+ * (c) Copyright 2025 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
  sap.ui.define([
@@ -37,7 +37,7 @@ sap.ui.define([
37
37
  * @public
38
38
  *
39
39
  * @author SAP SE
40
- * @version 1.134.0
40
+ * @version 1.136.0
41
41
  */
42
42
  const RowMode = Element.extend("sap.ui.table.rowmodes.RowMode", /** @lends sap.ui.table.rowmodes.RowMode.prototype */ {
43
43
  metadata: {
@@ -501,8 +501,6 @@ sap.ui.define([
501
501
  * @private
502
502
  */
503
503
  RowMode.prototype.getRowCountConstraints = function() {
504
- // TODO: Add a type definition for a protected type "rowCountConstraints" in the library file to document the return value
505
- // RowMode#getRowCountConstraints + PluginBase#setRowCountConstraints
506
504
  const oTable = this.getTable();
507
505
  return oTable ? oTable.getProperty("rowCountConstraints") || {} : {};
508
506
  };
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * OpenUI5
3
- * (c) Copyright 2009-2025 SAP SE or an SAP affiliate company.
3
+ * (c) Copyright 2025 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
  sap.ui.define(["sap/ui/base/DataType"], function(DataType) {
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  * OpenUI5
3
- * (c) Copyright 2009-2025 SAP SE or an SAP affiliate company.
3
+ * (c) Copyright 2025 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
  sap.ui.define([
@@ -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.134.0
26
+ * @version 1.136.0
27
27
  *
28
28
  * @constructor
29
29
  * @private
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * OpenUI5
3
- * (c) Copyright 2009-2025 SAP SE or an SAP affiliate company.
3
+ * (c) Copyright 2025 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
  sap.ui.define([
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * OpenUI5
3
- * (c) Copyright 2009-2025 SAP SE or an SAP affiliate company.
3
+ * (c) Copyright 2025 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
  sap.ui.define([
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * OpenUI5
3
- * (c) Copyright 2009-2025 SAP SE or an SAP affiliate company.
3
+ * (c) Copyright 2025 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
  sap.ui.define([
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * OpenUI5
3
- * (c) Copyright 2009-2025 SAP SE or an SAP affiliate company.
3
+ * (c) Copyright 2025 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
  sap.ui.define([
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * OpenUI5
3
- * (c) Copyright 2009-2025 SAP SE or an SAP affiliate company.
3
+ * (c) Copyright 2025 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
  sap.ui.define([
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * OpenUI5
3
- * (c) Copyright 2009-2025 SAP SE or an SAP affiliate company.
3
+ * (c) Copyright 2025 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
  /**
@@ -3,12 +3,12 @@
3
3
  /* Base theme */
4
4
  /* ========================== */
5
5
 
6
- @_sap_ui_table_Cell_FocusOutlineOffset: -@sapUiContentFocusWidth;
7
- @_sap_ui_table_Cell_FocusOutlineOffsetInZoomedChrome: calc(-@sapUiContentFocusWidth ~"- 0.0625rem");
6
+ @_sap_ui_table_Cell_FocusOutlineOffset: ~"calc(var(--sapContent_FocusWidth) * -1)";
7
+ @_sap_ui_table_Cell_FocusOutlineOffsetInZoomedChrome: ~"calc((var(--sapContent_FocusWidth) * -1) - 0.0625rem)"; /* calc(-@sapUiContentFocusWidth ~"- 0.0625rem") */
8
8
  @_sap_ui_table_Cell_Padding: 0 0.5rem;
9
9
  @_sap_ui_table_Cell_TouchMenuIconSize: 1.375rem;
10
10
  @_sap_ui_table_Cell_ColumnIconSize: 0.75rem;
11
- @_sap_ui_table_Cell_BorderColorSelected: @sapUiListBorderColor;
11
+ @_sap_ui_table_Cell_BorderColorSelected: var(--sapList_BorderColor);
12
12
  @_sap_ui_table_Cell_BorderColorFixedSelected: @sapUiListTableFixedBorder;
13
13
  @_sap_ui_table_Cell_ShadowColorFixed: transparent;
14
14
  @_sap_ui_table_Cell_BorderBottomFocus: @sapUiListTableFixedBorder;
@@ -21,11 +21,11 @@
21
21
  outline: none;
22
22
 
23
23
  &::before {
24
- content: "";
24
+ content: '';
25
25
  position: absolute;
26
26
  inset: 0;
27
27
  pointer-events: none;
28
- outline: @sapUiContentFocusWidth @sapUiContentFocusStyle @sapUiContentFocusColor;
28
+ outline: var(--sapContent_FocusWidth) var(--sapContent_FocusStyle) var(--sapContent_FocusColor);
29
29
  outline-offset: @_sap_ui_table_Cell_FocusOutlineOffset;
30
30
 
31
31
  .sapUiTableZoomout & {
@@ -38,8 +38,9 @@
38
38
  * Hover
39
39
  */
40
40
  .sapUiTableHeaderCell:not(.sapUiTableRowActionHeaderCell) {
41
+
41
42
  &:hover {
42
- background-color: @sapUiListHoverBackground;
43
+ background-color: var(--sapList_Hover_Background);
43
44
  }
44
45
  }
45
46
 
@@ -50,25 +51,25 @@
50
51
  position: relative;
51
52
  box-sizing: border-box;
52
53
  border-right: @_sap_ui_table_BaseBorderWidth solid @sapUiListVerticalBorderColor;
53
- border-bottom: @_sap_ui_table_BaseBorderWidth solid @sapUiListBorderColor;
54
+ border-bottom: @_sap_ui_table_BaseBorderWidth solid var(--sapList_BorderColor);
54
55
 
55
56
  .sapUiTableRowIndented > &.sapUiTableRowSelectionCell {
56
57
  border-left: @_sap_ui_table_BaseBorderWidth solid @sapUiListVerticalBorderColor;
57
58
  }
58
59
 
59
- // Adds a border on top that might be required due to indentation of the row above.
60
+ /* Adds a border on top that might be required due to indentation of the row above. */
60
61
  .sapUiTableGroupMode &.sapUiTableRowSelectionCell {
61
- box-shadow: 0 -@_sap_ui_table_BaseBorderWidth @sapUiListBorderColor;
62
+ box-shadow: 0 -@_sap_ui_table_BaseBorderWidth var(--sapList_BorderColor);
62
63
  }
63
64
 
64
- // Last data column border
65
+ /* Last data column border */
65
66
  &.sapUiTableCellLast {
66
- // The table and row action column have a border, so the last data column doesn't need one.
67
- // See: sapUiTableCellDummy, sapUiTableCtrlScr
67
+ /* The table and row action column have a border, so the last data column doesn't need one. */
68
+ /* See: sapUiTableCellDummy, sapUiTableCtrlScr */
68
69
  border-right-color: transparent;
69
70
  }
70
71
 
71
- // Row action column border
72
+ /* Row action column border */
72
73
  &.sapUiTableRowActionHeaderCell,
73
74
  &.sapUiTableRowActionCell {
74
75
  border-left: @_sap_ui_table_BaseBorderWidth solid @sapUiListVerticalBorderColor;
@@ -78,27 +79,28 @@
78
79
  border-right-color: transparent;
79
80
  }
80
81
  }
82
+
81
83
  &.sapUiTableRowActionCell {
84
+
82
85
  .sapUiTableRowNavIndicator & {
83
86
  border-right: none;
84
87
  border-left: none;
85
- background-color: transparent;
86
88
  }
87
89
  }
88
90
 
89
- // Fixed data column border
91
+ /* Fixed data column border */
90
92
  &.sapUiTableCellLastFixed {
91
93
  border-right-color: @sapUiListTableFixedBorder;
92
94
  }
93
95
 
94
- // Header rows borders
96
+ /* Header rows borders */
95
97
  &.sapUiTableHeaderCell {
96
- // Column header rows don't have bottom borders. The header area as a whole has a bottom border.
97
- // See: sapUiTableColHdrCnt
98
+ /* Column header rows don't have bottom borders. The header area as a whole has a bottom border. */
99
+ /* See: sapUiTableColHdrCnt */
98
100
  border-bottom: none;
99
101
  }
100
102
 
101
- // Fixed rows borders
103
+ /* Fixed rows borders */
102
104
  .sapUiTableRowLastFixedTop > &,
103
105
  .sapUiTableRowLastScrollable > & {
104
106
  border-bottom-color: @sapUiListTableFixedBorder;
@@ -117,9 +119,10 @@
117
119
  box-shadow: 0 @_sap_ui_table_BaseBorderWidth @_sap_ui_table_Cell_ShadowColorFixed inset;
118
120
  }
119
121
 
120
- // Last row border
122
+ /* Last row border */
121
123
  .sapUiTableLastRow > & {
122
- // The table has a border, so the last row doesn't need one.
124
+
125
+ /* The table has a border, so the last row doesn't need one. */
123
126
  border-bottom-color: transparent;
124
127
  }
125
128
 
@@ -141,7 +144,7 @@
141
144
  }
142
145
  }
143
146
 
144
- .sapUiTableRowSelectionHeaderCell { // Contains highlight and SelectAll selector.
147
+ .sapUiTableRowSelectionHeaderCell { /* Contains highlight and SelectAll selector. */
145
148
  display: none;
146
149
  vertical-align: bottom;
147
150
  position: absolute;
@@ -155,12 +158,13 @@
155
158
  min-height: @_sap_ui_table_ColumnHeaderHeightCozy;
156
159
  }
157
160
 
161
+ /* Either selectors or highlights visible. */
158
162
  .sapUiTableRowSelectors &,
159
163
  .sapUiTableRowHighlights & {
160
164
  display: inline-block;
161
165
  }
162
166
 
163
- // Only selectors visible.
167
+ /* Only selectors visible. */
164
168
  .sapUiTableRowSelectors:not(.sapUiTableRowHighlights) & {
165
169
  width: @_sap_ui_table_RowSelectorWidth;
166
170
 
@@ -173,12 +177,13 @@
173
177
  }
174
178
  }
175
179
 
176
- // Only highlights visible.
180
+ /* Only highlights visible. */
177
181
  .sapUiTableRowHighlights:not(.sapUiTableRowSelectors) & {
178
182
  width: @_sap_ui_table_RowHighlightWidth;
183
+ pointer-events: none;
179
184
  }
180
185
 
181
- // Both selectors and highlights visible.
186
+ /* Both selectors and highlights visible. */
182
187
  .sapUiTableRowHighlights.sapUiTableRowSelectors & {
183
188
  width: calc(@_sap_ui_table_RowSelectorWidth ~"+" @_sap_ui_table_RowHighlightWidth);
184
189
 
@@ -196,8 +201,12 @@
196
201
  pointer-events: none;
197
202
  }
198
203
 
199
- &:not(.sapUiTableSelAllDisabled), &:not(.sapUiTableSelAllDisabled) .sapUiIcon {
204
+ &:not(.sapUiTableSelAllDisabled) {
200
205
  cursor: pointer;
206
+
207
+ > * {
208
+ cursor: pointer;
209
+ }
201
210
  }
202
211
  }
203
212
 
@@ -206,24 +215,29 @@
206
215
 
207
216
  &.sapUiTableHeaderCellActive {
208
217
  cursor: pointer;
209
- .sapMLabel, .sapMText, .sapUiIcon {
218
+
219
+ .sapMLabel,
220
+ .sapMText,
221
+ .sapUiIcon {
210
222
  cursor: pointer;
211
223
  }
212
224
  }
213
225
 
214
226
  &.sapUiTableHeaderCellActive:active {
215
- // The active state background color and text color should not be applied if column reordering is in progress.
227
+
228
+ /* The active state background color and text color should not be applied if column reordering is in progress. */
216
229
  .sapUiTable:not(.sapUiTableDragDrop) & {
217
- background-color: @sapUiListActiveBackground;
218
- color: @sapUiListActiveTextColor;
230
+ background-color: var(--sapList_Active_Background);
231
+ color: var(--sapList_Active_TextColor);
219
232
  }
220
233
 
221
234
  & > .sapUiTableCellInner {
235
+
222
236
  span,
223
237
  label,
224
238
  &.sapUiTableColSorted::after,
225
239
  &.sapUiTableColFiltered::after {
226
- color: @sapUiListActiveTextColor;
240
+ color: var(--sapList_Active_TextColor);
227
241
  }
228
242
  }
229
243
  }
@@ -245,6 +259,7 @@
245
259
  display: flex;
246
260
  flex: 1 1 auto;
247
261
  overflow: hidden;
262
+ align-items: center;
248
263
 
249
264
  > * {
250
265
  overflow: hidden;
@@ -252,34 +267,35 @@
252
267
  }
253
268
 
254
269
  &::after {
270
+
255
271
  .sapUiTableColSorted&,
256
272
  .sapUiTableColFiltered& {
257
- content: "";
258
- font-family: "SAP-Icons";
273
+ content: '';
274
+ font-family: var(--sapContent_IconFontFamily);
259
275
  font-size: @_sap_ui_table_Cell_ColumnIconSize;
260
- color: @sapUiContentNonInteractiveIconColor;
276
+ color: var(--sapContent_NonInteractiveIconColor);
261
277
  margin-left: 0.5rem;
262
278
  flex: none;
263
279
  }
264
280
 
265
281
  .sapUiTableColSorted& {
266
- content: "\e1fd";
282
+ content: '\e1fd';
267
283
  }
268
284
 
269
285
  .sapUiTableColSortedD& {
270
- content: "\e1fc";
286
+ content: '\e1fc';
271
287
  }
272
288
 
273
289
  .sapUiTableColFiltered& {
274
- content: "\e076";
290
+ content: '\e076';
275
291
  }
276
292
 
277
293
  .sapUiTableColFiltered.sapUiTableColSorted& {
278
- content: "\e076\00a0\e1fd";
294
+ content: '\e076\00a0\e1fd';
279
295
  }
280
296
 
281
297
  .sapUiTableColFiltered.sapUiTableColSortedD& {
282
- content: "\e076\00a0\e1fc";
298
+ content: '\e076\00a0\e1fc';
283
299
  }
284
300
  }
285
301
  }
@@ -294,13 +310,13 @@
294
310
 
295
311
  .sapUiTableColResizer,
296
312
  .sapUiTableColDropDown {
297
- font-family: "SAP-icons";
313
+ font-family: var(--sapContent_IconFontFamily);
298
314
  font-size: @_sap_ui_table_Cell_TouchMenuIconSize;
299
- color: @sapUiContentIconColor;
315
+ color: var(--sapContent_IconColor);
300
316
  cursor: default;
301
317
 
302
318
  &:active {
303
- color: @sapUiContentContrastTextColor;
319
+ color: var(--sapContent_ContrastTextColor);
304
320
  }
305
321
  }
306
322
  }
@@ -361,11 +377,10 @@
361
377
 
362
378
  .sapUiTableRowSelectionCell {
363
379
  cursor: pointer;
364
- }
365
380
 
366
- .sapUiTableRowSelectionCell,
367
- .sapUiTableRowActionCell {
368
- position: relative;
381
+ .sapUiTable:not(.sapUiTableRowSelectors) & {
382
+ pointer-events: none;
383
+ }
369
384
  }
370
385
 
371
386
  .sapUiTableRowActionCell {
@@ -397,18 +412,21 @@
397
412
 
398
413
  .sapUiTableRowNavIndicator & {
399
414
  min-width: @_sap_ui_table_NavIndicatorWidth;
415
+ pointer-events: none;
400
416
  }
401
417
  }
402
418
 
403
419
  .sapUiTableCellDummy {
404
420
  border-left: @_sap_ui_table_BaseBorderWidth solid @_sap_ui_table_Cell_DummyBorderColor;
405
421
  pointer-events: none;
422
+
406
423
  .sapUiTableContentRow & {
407
- background-color: @sapBackgroundColor !important;
424
+ background-color: var(--sapBackgroundColor) !important;
408
425
  }
409
426
  }
410
427
 
411
428
  .sapUiTableCellFlex {
429
+
412
430
  > .sapUiTableCellInner {
413
431
  display: flex;
414
432
  align-items: center;
@@ -435,7 +453,7 @@
435
453
  * Another alternative would be rendering a dummy 0.5rem width column. While this can solve the
436
454
  * API and DOM column width difference, changing the table layout might be expensive.
437
455
  */
438
- .sapUiTable:not(.sapUiTableRowSelectors,.sapUiTableRowHighlights) .sapUiTableFirstVisibleColumnTH {
456
+ .sapUiTable:not(.sapUiTableRowSelectors, .sapUiTableRowHighlights) .sapUiTableFirstVisibleColumnTH {
439
457
  padding-left: .25rem;
440
458
  padding-right: .25rem;
441
459
  }
@@ -5,8 +5,8 @@
5
5
 
6
6
  .sapUiTableCreationRow {
7
7
  display: flex;
8
- background-color: @sapUiListHeaderBackground;
9
- border-bottom: @_sap_ui_table_BaseBorderWidth solid @sapUiListHeaderBorderColor;
8
+ background-color: var(--sapList_HeaderBackground);
9
+ border-bottom: @_sap_ui_table_BaseBorderWidth solid var(--sapList_HeaderBorderColor);
10
10
 
11
11
  > .sapUiTableCreationRowBeginSection {
12
12
  flex: none;
@@ -47,29 +47,31 @@
47
47
  }
48
48
 
49
49
  .sapUiTableCell {
50
- &:extend(.sapUiTableDataCell all); // We want the styles, but not the class. It is a "type class" that influences the tables behavior.
51
50
 
52
- // The cells in the creation row should not have any borders except the ones that indicate fixed areas (e.g. fixed columns).
51
+ &:extend(.sapUiTableDataCell all); /* We want the styles, but not the class. It is a "type class" that influences the tables behavior. */
52
+
53
+ /* The cells in the creation row should not have any borders except the ones that indicate fixed areas (e.g. fixed columns). */
53
54
  border-color: transparent;
54
55
 
55
- // Fixed data column border
56
+ /* Fixed data column border */
56
57
  &.sapUiTableCellLastFixed {
57
58
  border-right-color: @sapUiListTableFixedBorder;
58
59
  }
59
60
 
60
- // Row action column border
61
+ /* Row action column border */
61
62
  .sapUiTableHScr &.sapUiTableRowActionHeaderCell {
62
63
  border-left-color: @sapUiListTableFixedBorder;
63
64
  }
64
65
 
65
- // The height is fixed to the default row height (or the application defined height, see TableRenderer) until variable row heights are
66
- // generally supported.
66
+ /* The height is fixed to the default row height (or the application defined height, see TableRenderer) until variable row heights are */
67
+ /* generally supported. */
67
68
  > .sapUiTableCellInner {
68
69
  max-height: @_sap_ui_table_BaseSize;
69
70
 
70
71
  .sapUiSizeCozy & {
71
72
  max-height: @_sap_ui_table_BaseSizeCozy;
72
73
  }
74
+
73
75
  .sapUiSizeCondensed & {
74
76
  max-height: @_sap_ui_table_BaseSizeCondensed;
75
77
  }