@openui5/sap.ui.table 1.135.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.
- package/REUSE.toml +649 -0
- package/THIRDPARTY.txt +22 -22
- package/package.json +3 -3
- package/src/sap/ui/table/.library +2 -2
- package/src/sap/ui/table/AnalyticalColumn.js +2 -2
- package/src/sap/ui/table/AnalyticalColumnMenu.js +2 -2
- package/src/sap/ui/table/AnalyticalTable.js +2 -2
- package/src/sap/ui/table/Column.js +11 -3
- package/src/sap/ui/table/ColumnMenu.js +2 -2
- package/src/sap/ui/table/CreationRow.js +2 -2
- package/src/sap/ui/table/CreationRowRenderer.js +1 -1
- package/src/sap/ui/table/Row.js +4 -13
- package/src/sap/ui/table/RowAction.js +2 -2
- package/src/sap/ui/table/RowActionItem.js +2 -2
- package/src/sap/ui/table/RowActionRenderer.js +1 -1
- package/src/sap/ui/table/RowSettings.js +2 -2
- package/src/sap/ui/table/Table.js +2 -2
- package/src/sap/ui/table/TablePersoController.js +2 -2
- package/src/sap/ui/table/TableRenderer.js +12 -11
- package/src/sap/ui/table/TreeTable.js +2 -2
- package/src/sap/ui/table/designtime/AnalyticalTable.designtime.js +1 -1
- package/src/sap/ui/table/designtime/Table.designtime.js +1 -1
- package/src/sap/ui/table/designtime/library.designtime.js +1 -1
- package/src/sap/ui/table/extensions/Accessibility.js +6 -4
- package/src/sap/ui/table/extensions/AccessibilityRender.js +2 -2
- package/src/sap/ui/table/extensions/DragAndDrop.js +2 -2
- package/src/sap/ui/table/extensions/ExtensionBase.js +2 -2
- package/src/sap/ui/table/extensions/Keyboard.js +2 -2
- package/src/sap/ui/table/extensions/KeyboardDelegate.js +156 -400
- package/src/sap/ui/table/extensions/Pointer.js +2 -2
- package/src/sap/ui/table/extensions/Scrolling.js +47 -22
- package/src/sap/ui/table/extensions/ScrollingIOS.js +2 -2
- package/src/sap/ui/table/extensions/Synchronization.js +2 -2
- package/src/sap/ui/table/i18n/interaction.xml +254 -0
- package/src/sap/ui/table/library.js +14 -11
- package/src/sap/ui/table/library.support.js +1 -1
- package/src/sap/ui/table/menus/AnalyticalTableContextMenu.js +2 -2
- package/src/sap/ui/table/menus/ColumnHeaderMenuAdapter.js +2 -2
- package/src/sap/ui/table/menus/ContextMenu.js +2 -2
- package/src/sap/ui/table/menus/LegacyColumnMenuAdapter.js +1 -1
- package/src/sap/ui/table/menus/MobileColumnHeaderMenuAdapter.js +2 -2
- package/src/sap/ui/table/plugins/BindingSelection.js +2 -2
- package/src/sap/ui/table/plugins/MultiSelectionPlugin.js +2 -2
- package/src/sap/ui/table/plugins/ODataV4Selection.js +109 -56
- package/src/sap/ui/table/plugins/PluginBase.js +2 -2
- package/src/sap/ui/table/plugins/SelectionMode.js +1 -1
- package/src/sap/ui/table/plugins/SelectionModelSelection.js +2 -2
- package/src/sap/ui/table/plugins/SelectionPlugin.js +3 -2
- package/src/sap/ui/table/plugins/V4Aggregation.js +2 -2
- package/src/sap/ui/table/rowmodes/Auto.js +2 -2
- package/src/sap/ui/table/rowmodes/Fixed.js +2 -2
- package/src/sap/ui/table/rowmodes/Interactive.js +2 -2
- package/src/sap/ui/table/rowmodes/RowMode.js +2 -2
- package/src/sap/ui/table/rowmodes/Type.js +1 -1
- package/src/sap/ui/table/rowmodes/Variable.js +2 -2
- package/src/sap/ui/table/rules/Accessibility.support.js +1 -1
- package/src/sap/ui/table/rules/Binding.support.js +1 -1
- package/src/sap/ui/table/rules/ColumnTemplate.support.js +1 -1
- package/src/sap/ui/table/rules/Plugins.support.js +1 -1
- package/src/sap/ui/table/rules/Rows.support.js +1 -1
- package/src/sap/ui/table/rules/TableHelper.support.js +1 -1
- package/src/sap/ui/table/themes/base/Cell.less +12 -6
- package/src/sap/ui/table/themes/base/Scrolling.less +3 -0
- package/src/sap/ui/table/themes/base/library.source.less +1 -1
- package/src/sap/ui/table/themes/sap_hcb/library.source.less +1 -1
- package/src/sap/ui/table/utils/TableUtils.js +5 -5
- package/src/sap/ui/table/utils/_BindingUtils.js +2 -2
- package/src/sap/ui/table/utils/_ColumnUtils.js +2 -2
- package/src/sap/ui/table/utils/_GroupingUtils.js +2 -2
- package/src/sap/ui/table/utils/_HookUtils.js +2 -2
- package/src/sap/ui/table/utils/_MenuUtils.js +2 -2
- package/ui5.yaml +1 -1
- package/.reuse/dep5 +0 -471
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*
|
|
2
2
|
* OpenUI5
|
|
3
|
-
* (c) Copyright
|
|
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([
|
|
@@ -42,7 +42,7 @@ sap.ui.define([
|
|
|
42
42
|
* @extends sap.ui.table.plugins.SelectionPlugin
|
|
43
43
|
*
|
|
44
44
|
* @author SAP SE
|
|
45
|
-
* @version 1.
|
|
45
|
+
* @version 1.136.0
|
|
46
46
|
*
|
|
47
47
|
* @private
|
|
48
48
|
* @alias sap.ui.table.plugins.ODataV4Selection
|
|
@@ -117,15 +117,21 @@ sap.ui.define([
|
|
|
117
117
|
oTable.setProperty("selectionMode", this.getSelectionMode());
|
|
118
118
|
attachToBinding(this, oBinding);
|
|
119
119
|
TableUtils.Hook.register(oTable, TableUtils.Hook.Keys.Table.RowsBound, onTableRowsBound, this);
|
|
120
|
+
TableUtils.Hook.register(oTable, TableUtils.Hook.Keys.Table.UnbindRows, onTableUnbindRows, this);
|
|
120
121
|
};
|
|
121
122
|
|
|
122
123
|
ODataV4Selection.prototype.onDeactivate = function(oTable) {
|
|
123
124
|
SelectionPlugin.prototype.onDeactivate.apply(this, arguments);
|
|
125
|
+
_private(this).bLimitReached = false;
|
|
126
|
+
_private(this).oRangeSelectionStartContext = null;
|
|
124
127
|
oTable.setProperty("selectionMode", library.SelectionMode.None);
|
|
125
|
-
clearTimeout(this.iSelectionChangeTimeout);
|
|
126
|
-
delete this.iSelectionChangeTimeout;
|
|
128
|
+
clearTimeout(_private(this).iSelectionChangeTimeout);
|
|
129
|
+
delete _private(this).iSelectionChangeTimeout;
|
|
127
130
|
detachFromBinding(this, oTable.getBinding());
|
|
128
131
|
TableUtils.Hook.deregister(oTable, TableUtils.Hook.Keys.Table.RowsBound, onTableRowsBound, this);
|
|
132
|
+
TableUtils.Hook.register(oTable, TableUtils.Hook.Keys.Table.UnbindRows, onTableUnbindRows, this);
|
|
133
|
+
delete _private(this).aSelectedContexts; // Delete the cached selected contexts to force a recalculation.
|
|
134
|
+
delete _private(this).iSelectionCount; // Delete the cached selection count to force a recalculation.
|
|
129
135
|
};
|
|
130
136
|
|
|
131
137
|
ODataV4Selection.prototype.setSelected = function(oRow, bSelected, mConfig) {
|
|
@@ -171,12 +177,21 @@ sap.ui.define([
|
|
|
171
177
|
}
|
|
172
178
|
|
|
173
179
|
ODataV4Selection.prototype.isSelected = function(oRow) {
|
|
174
|
-
|
|
175
|
-
|
|
180
|
+
if (!this.isActive()) {
|
|
181
|
+
return false;
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
return oRow.getRowBindingContext()?.isSelected() ?? false;
|
|
176
185
|
};
|
|
177
186
|
|
|
178
187
|
ODataV4Selection.prototype.getSelectedCount = function() {
|
|
179
|
-
|
|
188
|
+
if (!this.isActive()) {
|
|
189
|
+
return 0;
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
_private(this).iSelectionCount ??= this.getSelectedContexts().length;
|
|
193
|
+
|
|
194
|
+
return _private(this).iSelectionCount;
|
|
180
195
|
};
|
|
181
196
|
|
|
182
197
|
/**
|
|
@@ -186,36 +201,50 @@ sap.ui.define([
|
|
|
186
201
|
* @returns {int} The number of selectable rows, or -1 if the number cannot be determined.
|
|
187
202
|
*/
|
|
188
203
|
function getSelectableCount(oPlugin) {
|
|
189
|
-
const oBinding = oPlugin.getControl()
|
|
204
|
+
const oBinding = oPlugin.getControl().getBinding();
|
|
205
|
+
let iSelectableCount = -1;
|
|
190
206
|
|
|
191
|
-
if (!oBinding) {
|
|
207
|
+
if (!oBinding || oBinding.getLength() === 0) {
|
|
192
208
|
return 0;
|
|
193
209
|
}
|
|
194
210
|
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
if (!oBinding.isLengthFinal()) {
|
|
198
|
-
return -1;
|
|
211
|
+
if (_private(oPlugin).iSelectableCount != null) {
|
|
212
|
+
return _private(oPlugin).iSelectableCount;
|
|
199
213
|
}
|
|
200
214
|
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
215
|
+
if (oBinding.getAggregation()) {
|
|
216
|
+
/* In case of data aggregation with visual grouping and sum rows, we cannot determine the number of selectable contexts.
|
|
217
|
+
* The expected behavior is that if all visible selectable rows are selected, the state changes to "everything is selected". For example,
|
|
218
|
+
* the Select All checkbox should then be checked.
|
|
219
|
+
* visible rows = All rows that can be scrolled to. Does not include children of collapsed rows.
|
|
220
|
+
* selectable rows = All visible rows that are not group headers or sums.
|
|
221
|
+
* There are no values available to determine the number of selectable rows. Length, count, and selection count are all based on different
|
|
222
|
+
* criteria.
|
|
223
|
+
* The length would work for hierarchies, but there is nothing to compare it to. For example, selected contexts may be present in
|
|
224
|
+
* collapsed rows, increasing the selection count.
|
|
225
|
+
* We would have to load all contexts and check if all selectable contexts are selected. This would significantly impact performance.
|
|
226
|
+
*
|
|
227
|
+
* If the selection limit is disabled, the Select All checkbox is shown. In this case, not reaching the "everything is selected" state is
|
|
228
|
+
* not an option. Therefore, we have to accept the loss of performance.
|
|
229
|
+
*
|
|
230
|
+
* As a consequence:
|
|
231
|
+
* - The "everything is selected" state is never reached.
|
|
232
|
+
* - If the visible rows in the table are all group headers or sums, the header selector is enabled, but pressing it has no effect.
|
|
233
|
+
* - If the selection limit is disabled, the "everything is selected" state is reached when it shouldn't be if there are invisible
|
|
234
|
+
* selected contexts, for example, in collapsed rows.
|
|
235
|
+
*/
|
|
236
|
+
if (oPlugin._isLimitDisabled()) {
|
|
237
|
+
const aAllCurrentContexts = oBinding.getAllCurrentContexts();
|
|
238
|
+
if (oBinding.getLength() === aAllCurrentContexts.length) {
|
|
239
|
+
iSelectableCount = aAllCurrentContexts.filter(isContextSelectable).length;
|
|
240
|
+
}
|
|
213
241
|
}
|
|
214
|
-
} else {
|
|
215
|
-
|
|
216
|
-
}
|
|
242
|
+
} else if (oBinding.isLengthFinal()) {
|
|
243
|
+
iSelectableCount = oBinding.getLength();
|
|
244
|
+
} // The count is not requested and not all data is loaded.
|
|
217
245
|
|
|
218
|
-
|
|
246
|
+
_private(oPlugin).iSelectableCount = iSelectableCount;
|
|
247
|
+
return iSelectableCount;
|
|
219
248
|
}
|
|
220
249
|
|
|
221
250
|
/**
|
|
@@ -245,7 +274,6 @@ sap.ui.define([
|
|
|
245
274
|
if (!this.isActive()) {
|
|
246
275
|
return SelectionPlugin.prototype.getRenderConfig.apply(this, arguments);
|
|
247
276
|
}
|
|
248
|
-
this.aAllCurrentContexts = this.getControl().getBinding()?.getAllCurrentContexts();
|
|
249
277
|
|
|
250
278
|
updateHeaderSelectorIcon(this);
|
|
251
279
|
|
|
@@ -262,8 +290,6 @@ sap.ui.define([
|
|
|
262
290
|
}
|
|
263
291
|
};
|
|
264
292
|
|
|
265
|
-
delete this.aAllCurrentContexts;
|
|
266
|
-
|
|
267
293
|
return mRenderConfig;
|
|
268
294
|
};
|
|
269
295
|
|
|
@@ -278,7 +304,7 @@ sap.ui.define([
|
|
|
278
304
|
oPlugin.clearSelection();
|
|
279
305
|
return false;
|
|
280
306
|
} else if (oPlugin._isLimitDisabled()) {
|
|
281
|
-
const oBinding = oPlugin.getControl()
|
|
307
|
+
const oBinding = oPlugin.getControl().getBinding();
|
|
282
308
|
if (oBinding?.getLength()) {
|
|
283
309
|
select(oPlugin, 0, oBinding.getLength() - 1);
|
|
284
310
|
return true;
|
|
@@ -295,6 +321,10 @@ sap.ui.define([
|
|
|
295
321
|
*/
|
|
296
322
|
function areAllRowsSelected(oPlugin) {
|
|
297
323
|
const iSelectableCount = getSelectableCount(oPlugin);
|
|
324
|
+
/* Fails to return the correct information if there are selected invisible contexts. For example, if a context is selected and after
|
|
325
|
+
* filtering the table contains 1 row with a different, unselected context -> 1 === 1.
|
|
326
|
+
* We would have to load all contexts and check if all selectable contexts are selected. This would significantly impact performance.
|
|
327
|
+
*/
|
|
298
328
|
return iSelectableCount > 0 && iSelectableCount === oPlugin.getSelectedCount();
|
|
299
329
|
}
|
|
300
330
|
|
|
@@ -315,7 +345,7 @@ sap.ui.define([
|
|
|
315
345
|
if (this.getSelectedCount() > 0) {
|
|
316
346
|
this.clearSelection();
|
|
317
347
|
} else {
|
|
318
|
-
const oBinding = this.getControl()
|
|
348
|
+
const oBinding = this.getControl().getBinding();
|
|
319
349
|
if (oBinding?.getLength() > 0) {
|
|
320
350
|
select(this, 0, oBinding.getLength() - 1);
|
|
321
351
|
}
|
|
@@ -338,7 +368,7 @@ sap.ui.define([
|
|
|
338
368
|
oEvent.setMarked("sapUiTableClearAll");
|
|
339
369
|
}
|
|
340
370
|
} else {
|
|
341
|
-
const oBinding = this.getControl()
|
|
371
|
+
const oBinding = this.getControl().getBinding();
|
|
342
372
|
if (oBinding?.getLength() > 0) {
|
|
343
373
|
select(this, 0, oBinding.getLength() - 1);
|
|
344
374
|
}
|
|
@@ -350,16 +380,16 @@ sap.ui.define([
|
|
|
350
380
|
};
|
|
351
381
|
|
|
352
382
|
ODataV4Selection.prototype.setSelectionMode = function(sSelectionMode) {
|
|
353
|
-
const oTable = this.getControl();
|
|
354
|
-
|
|
355
383
|
this.setProperty("selectionMode", sSelectionMode, true);
|
|
356
|
-
_private(this).oRangeSelectionStartContext = null;
|
|
357
|
-
this.clearSelection();
|
|
358
384
|
|
|
359
|
-
if (
|
|
360
|
-
|
|
385
|
+
if (!this.isActive()) {
|
|
386
|
+
return this;
|
|
361
387
|
}
|
|
362
388
|
|
|
389
|
+
_private(this).oRangeSelectionStartContext = null;
|
|
390
|
+
this.clearSelection();
|
|
391
|
+
this.getControl().setProperty("selectionMode", this.getSelectionMode());
|
|
392
|
+
|
|
363
393
|
return this;
|
|
364
394
|
};
|
|
365
395
|
|
|
@@ -396,22 +426,28 @@ sap.ui.define([
|
|
|
396
426
|
*
|
|
397
427
|
* @param {object} oPlugin The table plugin instance.
|
|
398
428
|
* @param {object} oBinding The binding instance associated with the table.
|
|
399
|
-
* @param {object} [oContext] The specific context to validate. If not provided, all selected contexts
|
|
429
|
+
* @param {object} [oContext] The specific context to validate. If not provided, all selected contexts are validated.
|
|
400
430
|
* @throws {Error} If the header context is selected.
|
|
401
431
|
* @throws {Error} If a context that is not selectable is selected.
|
|
402
432
|
* @throws {Error} If multiple contexts are selected in 'Single' selection mode.
|
|
403
433
|
*/
|
|
404
434
|
function validateSelection(oPlugin, oBinding, oContext) {
|
|
405
|
-
const
|
|
406
|
-
let aContextsToValidate =
|
|
435
|
+
const oHeaderContext = oBinding.getHeaderContext();
|
|
436
|
+
let aContextsToValidate = [];
|
|
407
437
|
|
|
408
438
|
if (oContext) {
|
|
409
439
|
aContextsToValidate = oContext.isSelected() ? [oContext] : [];
|
|
440
|
+
} else {
|
|
441
|
+
aContextsToValidate = oPlugin.getSelectedContexts();
|
|
442
|
+
|
|
443
|
+
if (oHeaderContext?.isSelected()) {
|
|
444
|
+
aContextsToValidate.unshift(oHeaderContext);
|
|
445
|
+
}
|
|
410
446
|
}
|
|
411
447
|
|
|
412
448
|
for (const oContext of aContextsToValidate) {
|
|
413
449
|
// To avoid compatibility issues if support is added. Handling a selected header context might affect UI, behavior, and settings.
|
|
414
|
-
if (oContext ===
|
|
450
|
+
if (oContext === oHeaderContext) {
|
|
415
451
|
throw new Error("Header context must not be selected");
|
|
416
452
|
}
|
|
417
453
|
|
|
@@ -421,7 +457,7 @@ sap.ui.define([
|
|
|
421
457
|
}
|
|
422
458
|
}
|
|
423
459
|
|
|
424
|
-
if (oPlugin.getSelectionMode() === SelectionMode.Single &&
|
|
460
|
+
if (oPlugin.getSelectionMode() === SelectionMode.Single && oPlugin.getSelectedCount() > 1) {
|
|
425
461
|
throw new Error("Multiple contexts selected. Cannot select more than one context in selection mode 'Single'");
|
|
426
462
|
}
|
|
427
463
|
}
|
|
@@ -431,17 +467,27 @@ sap.ui.define([
|
|
|
431
467
|
attachToBinding(this, oBinding);
|
|
432
468
|
}
|
|
433
469
|
|
|
470
|
+
function onTableUnbindRows() {
|
|
471
|
+
delete _private(this).aSelectedContexts; // Delete the cached selected contexts to force a recalculation.
|
|
472
|
+
delete _private(this).iSelectionCount; // Delete the cached selection count to force a recalculation.
|
|
473
|
+
}
|
|
474
|
+
|
|
434
475
|
function attachToBinding(oPlugin, oBinding) {
|
|
435
476
|
oBinding?.attachEvent("selectionChanged", onBindingSelectionChanged, oPlugin);
|
|
477
|
+
oBinding?.attachChange(onBindingChange, oPlugin);
|
|
436
478
|
}
|
|
437
479
|
|
|
438
480
|
function detachFromBinding(oPlugin, oBinding) {
|
|
439
481
|
oBinding?.detachEvent("selectionChanged", onBindingSelectionChanged, oPlugin);
|
|
482
|
+
oBinding?.detachChange(onBindingChange, oPlugin);
|
|
440
483
|
}
|
|
441
484
|
|
|
442
485
|
function onBindingSelectionChanged(oEvent) {
|
|
443
486
|
const oContext = oEvent.getParameter("context");
|
|
444
487
|
|
|
488
|
+
delete _private(this).aSelectedContexts; // Delete the cached selected contexts to force a recalculation.
|
|
489
|
+
delete _private(this).iSelectionCount; // Delete the cached selection count to force a recalculation.
|
|
490
|
+
|
|
445
491
|
try {
|
|
446
492
|
validateSelection(this, oContext.getBinding(), oContext);
|
|
447
493
|
} catch (oError) {
|
|
@@ -449,16 +495,22 @@ sap.ui.define([
|
|
|
449
495
|
throw oError;
|
|
450
496
|
}
|
|
451
497
|
|
|
452
|
-
if (this.iSelectionChangeTimeout) {
|
|
498
|
+
if (_private(this).iSelectionChangeTimeout) {
|
|
453
499
|
return;
|
|
454
500
|
}
|
|
455
501
|
|
|
456
|
-
this.iSelectionChangeTimeout = setTimeout(() => {
|
|
502
|
+
_private(this).iSelectionChangeTimeout = setTimeout(() => {
|
|
457
503
|
this.fireSelectionChange();
|
|
458
|
-
delete this.iSelectionChangeTimeout;
|
|
504
|
+
delete _private(this).iSelectionChangeTimeout;
|
|
459
505
|
}, 0);
|
|
460
506
|
}
|
|
461
507
|
|
|
508
|
+
function onBindingChange(oEvent) {
|
|
509
|
+
delete _private(this).aSelectedContexts; // Delete the cached selected contexts to force a recalculation.
|
|
510
|
+
delete _private(this).iSelectionCount; // Delete the cached selection count to force a recalculation.
|
|
511
|
+
delete _private(this).iSelectableCount; // Delete the cached selectable count to force a recalculation.
|
|
512
|
+
}
|
|
513
|
+
|
|
462
514
|
/**
|
|
463
515
|
* Checks whether the limit is disabled.
|
|
464
516
|
*
|
|
@@ -534,21 +586,22 @@ sap.ui.define([
|
|
|
534
586
|
}
|
|
535
587
|
|
|
536
588
|
ODataV4Selection.prototype.clearSelection = function() {
|
|
537
|
-
|
|
538
|
-
|
|
589
|
+
if (!this.isActive()) {
|
|
590
|
+
return;
|
|
539
591
|
}
|
|
592
|
+
|
|
593
|
+
this.getControl().getBinding()?.getHeaderContext()?.setSelected(false);
|
|
540
594
|
};
|
|
541
595
|
|
|
542
596
|
ODataV4Selection.prototype.getSelectedContexts = function() {
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
if (!this.isActive() || !oBinding) {
|
|
597
|
+
if (!this.isActive()) {
|
|
546
598
|
return [];
|
|
547
599
|
}
|
|
548
600
|
|
|
549
|
-
|
|
601
|
+
_private(this).aSelectedContexts ??= this.getControl().getBinding()?.getAllCurrentContexts().filter((oContext) => oContext.isSelected()) ?? [];
|
|
602
|
+
_private(this).iSelectionCount = _private(this).aSelectedContexts.length;
|
|
550
603
|
|
|
551
|
-
return
|
|
604
|
+
return _private(this).aSelectedContexts;
|
|
552
605
|
};
|
|
553
606
|
|
|
554
607
|
ODataV4Selection.prototype.onThemeChanged = function() {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*
|
|
2
2
|
* OpenUI5
|
|
3
|
-
* (c) Copyright
|
|
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([
|
|
@@ -19,7 +19,7 @@ sap.ui.define([
|
|
|
19
19
|
* @extends sap.ui.core.Element
|
|
20
20
|
*
|
|
21
21
|
* @author SAP SE
|
|
22
|
-
* @version 1.
|
|
22
|
+
* @version 1.136.0
|
|
23
23
|
*
|
|
24
24
|
* @private
|
|
25
25
|
* @experimental Since 1.75
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* OpenUI5
|
|
3
|
-
* (c) Copyright
|
|
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"], (DataType) => {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*
|
|
2
2
|
* OpenUI5
|
|
3
|
-
* (c) Copyright
|
|
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([
|
|
@@ -26,7 +26,7 @@ sap.ui.define([
|
|
|
26
26
|
* @extends sap.ui.table.plugins.SelectionPlugin
|
|
27
27
|
*
|
|
28
28
|
* @author SAP SE
|
|
29
|
-
* @version 1.
|
|
29
|
+
* @version 1.136.0
|
|
30
30
|
*
|
|
31
31
|
* @private
|
|
32
32
|
* @alias sap.ui.table.plugins.SelectionModelSelection
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*
|
|
2
2
|
* OpenUI5
|
|
3
|
-
* (c) Copyright
|
|
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([
|
|
@@ -21,7 +21,7 @@ sap.ui.define([
|
|
|
21
21
|
* @extends sap.ui.core.Element
|
|
22
22
|
*
|
|
23
23
|
* @author SAP SE
|
|
24
|
-
* @version 1.
|
|
24
|
+
* @version 1.136.0
|
|
25
25
|
*
|
|
26
26
|
* @public
|
|
27
27
|
* @since 1.64
|
|
@@ -142,6 +142,7 @@ sap.ui.define([
|
|
|
142
142
|
* TODO: Only used for the row drag ghost. Replace with getSelectedContexts() (getSelectedContexts().length)? Useful in integration scenarios.
|
|
143
143
|
* Check if this is possible with our index-based selection plugins. And if not, does that need to impact the modern interface? Legacy alternative
|
|
144
144
|
* possible?
|
|
145
|
+
* If we keep this method, rename to getSelectionCount?
|
|
145
146
|
*
|
|
146
147
|
* @returns {int} The number of selected rows
|
|
147
148
|
* @abstract
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*
|
|
2
2
|
* OpenUI5
|
|
3
|
-
* (c) Copyright
|
|
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([
|
|
@@ -22,7 +22,7 @@ sap.ui.define([
|
|
|
22
22
|
* @extends sap.ui.core.Element
|
|
23
23
|
*
|
|
24
24
|
* @author SAP SE
|
|
25
|
-
* @version 1.
|
|
25
|
+
* @version 1.136.0
|
|
26
26
|
*
|
|
27
27
|
* @private
|
|
28
28
|
* @alias sap.ui.table.plugins.V4Aggregation
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*
|
|
2
2
|
* OpenUI5
|
|
3
|
-
* (c) Copyright
|
|
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.
|
|
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
|
|
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.
|
|
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
|
|
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.
|
|
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
|
|
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.
|
|
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: {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* OpenUI5
|
|
3
|
-
* (c) Copyright
|
|
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
|
|
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.
|
|
26
|
+
* @version 1.136.0
|
|
27
27
|
*
|
|
28
28
|
* @constructor
|
|
29
29
|
* @private
|
|
@@ -85,7 +85,6 @@
|
|
|
85
85
|
.sapUiTableRowNavIndicator & {
|
|
86
86
|
border-right: none;
|
|
87
87
|
border-left: none;
|
|
88
|
-
background-color: transparent;
|
|
89
88
|
}
|
|
90
89
|
}
|
|
91
90
|
|
|
@@ -159,6 +158,7 @@
|
|
|
159
158
|
min-height: @_sap_ui_table_ColumnHeaderHeightCozy;
|
|
160
159
|
}
|
|
161
160
|
|
|
161
|
+
/* Either selectors or highlights visible. */
|
|
162
162
|
.sapUiTableRowSelectors &,
|
|
163
163
|
.sapUiTableRowHighlights & {
|
|
164
164
|
display: inline-block;
|
|
@@ -180,6 +180,7 @@
|
|
|
180
180
|
/* Only highlights visible. */
|
|
181
181
|
.sapUiTableRowHighlights:not(.sapUiTableRowSelectors) & {
|
|
182
182
|
width: @_sap_ui_table_RowHighlightWidth;
|
|
183
|
+
pointer-events: none;
|
|
183
184
|
}
|
|
184
185
|
|
|
185
186
|
/* Both selectors and highlights visible. */
|
|
@@ -200,8 +201,12 @@
|
|
|
200
201
|
pointer-events: none;
|
|
201
202
|
}
|
|
202
203
|
|
|
203
|
-
&:not(.sapUiTableSelAllDisabled)
|
|
204
|
+
&:not(.sapUiTableSelAllDisabled) {
|
|
204
205
|
cursor: pointer;
|
|
206
|
+
|
|
207
|
+
> * {
|
|
208
|
+
cursor: pointer;
|
|
209
|
+
}
|
|
205
210
|
}
|
|
206
211
|
}
|
|
207
212
|
|
|
@@ -254,6 +259,7 @@
|
|
|
254
259
|
display: flex;
|
|
255
260
|
flex: 1 1 auto;
|
|
256
261
|
overflow: hidden;
|
|
262
|
+
align-items: center;
|
|
257
263
|
|
|
258
264
|
> * {
|
|
259
265
|
overflow: hidden;
|
|
@@ -371,11 +377,10 @@
|
|
|
371
377
|
|
|
372
378
|
.sapUiTableRowSelectionCell {
|
|
373
379
|
cursor: pointer;
|
|
374
|
-
}
|
|
375
380
|
|
|
376
|
-
.
|
|
377
|
-
|
|
378
|
-
|
|
381
|
+
.sapUiTable:not(.sapUiTableRowSelectors) & {
|
|
382
|
+
pointer-events: none;
|
|
383
|
+
}
|
|
379
384
|
}
|
|
380
385
|
|
|
381
386
|
.sapUiTableRowActionCell {
|
|
@@ -407,6 +412,7 @@
|
|
|
407
412
|
|
|
408
413
|
.sapUiTableRowNavIndicator & {
|
|
409
414
|
min-width: @_sap_ui_table_NavIndicatorWidth;
|
|
415
|
+
pointer-events: none;
|
|
410
416
|
}
|
|
411
417
|
}
|
|
412
418
|
|
|
@@ -44,10 +44,13 @@
|
|
|
44
44
|
.sapUiTableVSb {
|
|
45
45
|
width: 100%;
|
|
46
46
|
position: absolute;
|
|
47
|
+
bottom: 0;
|
|
47
48
|
overflow-x: hidden;
|
|
48
49
|
overflow-y: scroll;
|
|
49
50
|
-webkit-overflow-scrolling: auto;
|
|
50
51
|
background-color: var(--sapList_Background);
|
|
52
|
+
border-top: @_sap_ui_table_BaseBorderWidth solid var(--sapList_HeaderBorderColor);
|
|
53
|
+
border-bottom: @_sap_ui_table_BaseBorderWidth solid var(--sapList_HeaderBorderColor);
|
|
51
54
|
}
|
|
52
55
|
|
|
53
56
|
.sapUiTableVSbHeader {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* OpenUI5
|
|
3
|
-
* (c) Copyright
|
|
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
|
@import "../../../../../sap/ui/core/themes/base/base.less";
|