@eclipse-scout/core 22.0.1 → 22.0.2
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/dist/eclipse-scout-core-c98fb5230e71dcec75ce.min.js +2 -0
- package/dist/eclipse-scout-core-c98fb5230e71dcec75ce.min.js.map +1 -0
- package/dist/eclipse-scout-core-theme-6b2fef56e9e49231a49c.min.css +1 -0
- package/dist/eclipse-scout-core-theme-dark-d2bb274dd42f132bfca0.min.css +1 -0
- package/dist/eclipse-scout-core-theme-dark.css +367 -312
- package/dist/eclipse-scout-core-theme-dark.css.map +1 -1
- package/dist/eclipse-scout-core-theme.css +150 -95
- package/dist/eclipse-scout-core-theme.css.map +1 -1
- package/dist/eclipse-scout-core.js +371 -204
- package/dist/eclipse-scout-core.js.map +1 -1
- package/dist/file-list +7 -0
- package/dist/locales.json +47126 -0
- package/dist/texts.json +1153 -0
- package/package.json +2 -2
- package/src/action/Button.less +1 -0
- package/src/calendar/Calendar.js +40 -58
- package/src/calendar/Calendar.less +10 -10
- package/src/calendar/CalendarLayout.js +3 -1
- package/src/datepicker/DatePicker.less +1 -0
- package/src/desktop/desktoptab/DesktopTab.less +5 -2
- package/src/desktop/desktoptab/DesktopTabArea.less +7 -3
- package/src/desktop/navigation/DesktopNavigation.less +4 -0
- package/src/desktop/notification/DesktopNotification.js +11 -4
- package/src/desktop/notification/DesktopNotification.less +5 -3
- package/src/desktop/outline/Outline.less +4 -4
- package/src/desktop/viewbutton/ViewButton.less +13 -9
- package/src/desktop/viewbutton/ViewMenuTab.less +3 -2
- package/src/filechooser/FileChooser.less +1 -1
- package/src/form/Form.less +1 -0
- package/src/form/fields/LookupBox.js +2 -1
- package/src/form/fields/breadcrumbbarfield/BreadcrumbBarField.less +14 -0
- package/src/form/fields/groupbox/GroupBox.js +13 -9
- package/src/form/fields/groupbox/GroupBox.less +1 -0
- package/src/form/fields/htmlfield/HtmlField.less +0 -1
- package/src/form/fields/listbox/ListBox.js +8 -3
- package/src/form/fields/tabbox/TabAreaLayout.js +63 -66
- package/src/form/fields/tabbox/TabBox.js +4 -7
- package/src/form/fields/tabbox/TabBox.less +2 -1
- package/src/form/fields/tabbox/TabBoxHeaderLayout.js +5 -5
- package/src/glasspane/GlassPane.js +3 -3
- package/src/group/Group.less +1 -1
- package/src/index.less +1 -0
- package/src/jquery/jquery-scout.js +5 -4
- package/src/menu/ContextMenuPopup.less +9 -2
- package/src/menu/Menu.less +1 -0
- package/src/modeselector/Mode.less +15 -37
- package/src/modeselector/ModeSelector.js +1 -1
- package/src/modeselector/ModeSelector.less +2 -1
- package/src/planner/PlannerHeader.less +2 -1
- package/src/popup/Popup.js +24 -8
- package/src/popup/PopupLayout.js +2 -8
- package/src/scrollbar/Scrollbar.less +8 -1
- package/src/scrollbar/scrollbars.js +26 -4
- package/src/style/colors-dark.less +17 -10
- package/src/style/colors.less +11 -3
- package/src/style/fonts.less +5 -0
- package/src/style/mixins.less +16 -12
- package/src/style/sizes-dark.less +4 -1
- package/src/style/sizes.less +3 -4
- package/src/table/Table.js +37 -29
- package/src/table/Table.less +36 -13
- package/src/table/TableHeader.js +10 -8
- package/src/table/TableHeader.less +1 -0
- package/src/table/TableHeaderMenu.js +3 -1
- package/src/table/TableHeaderMenu.less +7 -2
- package/src/table/columns/BooleanColumn.js +2 -2
- package/src/table/columns/Column.js +3 -3
- package/src/table/editor/CellEditorPopup.js +8 -1
- package/src/tile/TileGrid.js +1 -1
- package/src/tile/TileGridLayout.js +2 -2
- package/src/tile/accordion/TileAccordion.js +16 -1
- package/src/tile/fields/FormFieldTile.less +18 -11
- package/src/tree/CompactTree.less +1 -1
- package/src/tree/Tree.less +1 -3
- package/src/util/arrays.js +24 -2
- package/src/util/objects.js +4 -1
- package/src/widget/Widget.js +11 -3
|
@@ -3429,7 +3429,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
3429
3429
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
3430
3430
|
|
|
3431
3431
|
/*
|
|
3432
|
-
* Copyright (c) 2010-
|
|
3432
|
+
* Copyright (c) 2010-2022 BSI Business Systems Integration AG.
|
|
3433
3433
|
* All rights reserved. This program and the accompanying materials
|
|
3434
3434
|
* are made available under the terms of the Eclipse Public License v1.0
|
|
3435
3435
|
* which accompanies this distribution, and is available at
|
|
@@ -4212,7 +4212,8 @@ class Calendar extends _index__WEBPACK_IMPORTED_MODULE_0__.Widget {
|
|
|
4212
4212
|
this.$topGrid.find('.calendar-day-name').data('new-width', 0);
|
|
4213
4213
|
this.$grids.find('.calendar-day').data('new-width', 0);
|
|
4214
4214
|
let newWidthWorkWeek = Math.round(contentW / this.workDayIndices.length);
|
|
4215
|
-
|
|
4215
|
+
this.$topGrid.find('.calendar-day-name').slice(0, 5).data('new-width', newWidthWorkWeek);
|
|
4216
|
+
this.$topGrid.find('.calendar-day').slice(0, 5).data('new-width', newWidthWorkWeek);
|
|
4216
4217
|
jquery__WEBPACK_IMPORTED_MODULE_1___default()('.calendar-day:nth-child(-n+6)', this.$grid).data('new-width', newWidthWorkWeek);
|
|
4217
4218
|
this.widthPerDivision = newWidthWorkWeek;
|
|
4218
4219
|
} else if (this._isMonth() || this._isWeek()) {
|
|
@@ -4229,23 +4230,33 @@ class Calendar extends _index__WEBPACK_IMPORTED_MODULE_0__.Widget {
|
|
|
4229
4230
|
$day = $comp.closest('.calendar-day');
|
|
4230
4231
|
$comp.toggleClass('compact', $day.data('new-width') < _index__WEBPACK_IMPORTED_MODULE_0__.CalendarComponent.MONTH_COMPACT_THRESHOLD);
|
|
4231
4232
|
});
|
|
4232
|
-
}
|
|
4233
|
+
} // animate old to new sizes
|
|
4233
4234
|
|
|
4234
|
-
let afterLayoutCallback = this._afterLayout.bind(this); // animate old to new sizes
|
|
4235
4235
|
|
|
4236
|
-
|
|
4237
|
-
|
|
4238
|
-
let
|
|
4239
|
-
|
|
4240
|
-
h = $e.data('new-height');
|
|
4236
|
+
jquery__WEBPACK_IMPORTED_MODULE_1___default()('div', this.$container).each((i, elem) => {
|
|
4237
|
+
let $e = jquery__WEBPACK_IMPORTED_MODULE_1___default()(elem);
|
|
4238
|
+
let w = $e.data('new-width');
|
|
4239
|
+
let h = $e.data('new-height');
|
|
4241
4240
|
$e.stop(false, true);
|
|
4242
4241
|
|
|
4243
4242
|
if (w !== undefined && w !== $e.outerWidth()) {
|
|
4244
4243
|
if (animate) {
|
|
4245
|
-
|
|
4244
|
+
let opts = {
|
|
4245
|
+
complete: () => this._afterLayout($e, animate)
|
|
4246
|
+
};
|
|
4247
|
+
|
|
4248
|
+
if ($e[0] === this.$grids[0]) {
|
|
4249
|
+
// Grid contains scroll shadows that should be updated during animation (don't due it always for performance reasons)
|
|
4250
|
+
opts.progress = () => this._afterLayout($e, animate);
|
|
4251
|
+
}
|
|
4252
|
+
|
|
4253
|
+
$e.animate({
|
|
4254
|
+
width: w
|
|
4255
|
+
}, opts);
|
|
4246
4256
|
} else {
|
|
4247
4257
|
$e.css('width', w);
|
|
4248
|
-
|
|
4258
|
+
|
|
4259
|
+
this._afterLayout($e, animate);
|
|
4249
4260
|
}
|
|
4250
4261
|
}
|
|
4251
4262
|
|
|
@@ -4260,7 +4271,7 @@ class Calendar extends _index__WEBPACK_IMPORTED_MODULE_0__.Widget {
|
|
|
4260
4271
|
$e.addClass('hidden');
|
|
4261
4272
|
}
|
|
4262
4273
|
|
|
4263
|
-
|
|
4274
|
+
this._afterLayout($e, animate);
|
|
4264
4275
|
});
|
|
4265
4276
|
} else {
|
|
4266
4277
|
$e.css('height', h);
|
|
@@ -4269,7 +4280,7 @@ class Calendar extends _index__WEBPACK_IMPORTED_MODULE_0__.Widget {
|
|
|
4269
4280
|
$e.addClass('hidden');
|
|
4270
4281
|
}
|
|
4271
4282
|
|
|
4272
|
-
|
|
4283
|
+
this._afterLayout($e, animate);
|
|
4273
4284
|
}
|
|
4274
4285
|
}
|
|
4275
4286
|
});
|
|
@@ -4309,13 +4320,18 @@ class Calendar extends _index__WEBPACK_IMPORTED_MODULE_0__.Widget {
|
|
|
4309
4320
|
|
|
4310
4321
|
_updateScrollbars($parent, animate) {
|
|
4311
4322
|
let $scrollables = jquery__WEBPACK_IMPORTED_MODULE_1___default()('.calendar-scrollable-components', $parent);
|
|
4312
|
-
$scrollables.each(
|
|
4313
|
-
|
|
4314
|
-
_index__WEBPACK_IMPORTED_MODULE_0__.scrollbars.update($scrollable, true);
|
|
4323
|
+
$scrollables.each((i, elem) => {
|
|
4324
|
+
_index__WEBPACK_IMPORTED_MODULE_0__.scrollbars.update(jquery__WEBPACK_IMPORTED_MODULE_1___default()(elem), true);
|
|
4315
4325
|
});
|
|
4316
4326
|
this.updateScrollPosition(animate);
|
|
4317
4327
|
}
|
|
4318
4328
|
|
|
4329
|
+
_uninstallComponentScrollbars($parent) {
|
|
4330
|
+
$parent.find('.calendar-scrollable-components').each((i, elem) => {
|
|
4331
|
+
_index__WEBPACK_IMPORTED_MODULE_0__.scrollbars.uninstall(jquery__WEBPACK_IMPORTED_MODULE_1___default()(elem), this.session);
|
|
4332
|
+
});
|
|
4333
|
+
}
|
|
4334
|
+
|
|
4319
4335
|
_updateTopGrid() {
|
|
4320
4336
|
jquery__WEBPACK_IMPORTED_MODULE_1___default()('.calendar-component', this.$topGrid).each((index, part) => {
|
|
4321
4337
|
let component = jquery__WEBPACK_IMPORTED_MODULE_1___default()(part).data('component');
|
|
@@ -4494,17 +4510,9 @@ class Calendar extends _index__WEBPACK_IMPORTED_MODULE_0__.Widget {
|
|
|
4494
4510
|
}
|
|
4495
4511
|
|
|
4496
4512
|
_remove() {
|
|
4497
|
-
|
|
4513
|
+
this._uninstallComponentScrollbars(this.$grid);
|
|
4498
4514
|
|
|
4499
|
-
|
|
4500
|
-
let $day = $days.eq(k);
|
|
4501
|
-
let $scrollableContainer = $day.children('.calendar-scrollable-components');
|
|
4502
|
-
|
|
4503
|
-
if ($scrollableContainer.length > 0) {
|
|
4504
|
-
_index__WEBPACK_IMPORTED_MODULE_0__.scrollbars.uninstall($scrollableContainer, this.session);
|
|
4505
|
-
$scrollableContainer.remove();
|
|
4506
|
-
}
|
|
4507
|
-
}
|
|
4515
|
+
this._uninstallComponentScrollbars(this.$topGrid);
|
|
4508
4516
|
|
|
4509
4517
|
this.$window.off('mousemove touchmove', this._mouseMoveHandler).off('mouseup touchend touchcancel', this._mouseUpHandler);
|
|
4510
4518
|
this._moveData = null;
|
|
@@ -4639,6 +4647,8 @@ class Calendar extends _index__WEBPACK_IMPORTED_MODULE_0__.Widget {
|
|
|
4639
4647
|
if (this._isMonth()) {
|
|
4640
4648
|
this._uninstallScrollbars();
|
|
4641
4649
|
|
|
4650
|
+
this._uninstallComponentScrollbars(this.$topGrid);
|
|
4651
|
+
|
|
4642
4652
|
this.$grid.removeClass('calendar-scrollable-components');
|
|
4643
4653
|
} else {
|
|
4644
4654
|
this.$grid.addClass('calendar-scrollable-components'); // If we're in the non-month views, the time can scroll. Add scrollbars
|
|
@@ -4649,16 +4659,21 @@ class Calendar extends _index__WEBPACK_IMPORTED_MODULE_0__.Widget {
|
|
|
4649
4659
|
axis: 'y'
|
|
4650
4660
|
});
|
|
4651
4661
|
|
|
4652
|
-
|
|
4662
|
+
this.$topGrid.find('.calendar-scrollable-components').each((i, elem) => {
|
|
4663
|
+
let $topDay = jquery__WEBPACK_IMPORTED_MODULE_1___default()(elem);
|
|
4664
|
+
|
|
4665
|
+
if ($topDay.data('scrollable')) {
|
|
4666
|
+
_index__WEBPACK_IMPORTED_MODULE_0__.scrollbars.update($topDay);
|
|
4667
|
+
return;
|
|
4668
|
+
}
|
|
4653
4669
|
|
|
4654
|
-
for (k = 0; k < $topDays.length; k++) {
|
|
4655
|
-
let $topDay = $topDays.eq(k);
|
|
4656
4670
|
_index__WEBPACK_IMPORTED_MODULE_0__.scrollbars.install($topDay, {
|
|
4657
4671
|
parent: this,
|
|
4658
4672
|
session: this.session,
|
|
4659
|
-
axis: 'y'
|
|
4673
|
+
axis: 'y',
|
|
4674
|
+
scrollShadow: 'none'
|
|
4660
4675
|
});
|
|
4661
|
-
}
|
|
4676
|
+
});
|
|
4662
4677
|
}
|
|
4663
4678
|
}
|
|
4664
4679
|
|
|
@@ -5677,6 +5692,7 @@ class CalendarLayout extends _index__WEBPACK_IMPORTED_MODULE_0__.AbstractLayout
|
|
|
5677
5692
|
this.calendar = calendar;
|
|
5678
5693
|
this.stacked = false;
|
|
5679
5694
|
this.compacted = false;
|
|
5695
|
+
this.compactWidth = 550;
|
|
5680
5696
|
}
|
|
5681
5697
|
|
|
5682
5698
|
layout($container) {
|
|
@@ -5694,7 +5710,8 @@ class CalendarLayout extends _index__WEBPACK_IMPORTED_MODULE_0__.AbstractLayout
|
|
|
5694
5710
|
this.stack();
|
|
5695
5711
|
}
|
|
5696
5712
|
|
|
5697
|
-
if ($header[0].scrollWidth > $container.width()) {
|
|
5713
|
+
if ($container.width() < this.compactWidth || $header[0].scrollWidth > $container.width()) {
|
|
5714
|
+
// Title may take a lot of space, make it always compact for small devices so it won't toggle when changing display mode or view range
|
|
5698
5715
|
this.compact();
|
|
5699
5716
|
}
|
|
5700
5717
|
|
|
@@ -14376,18 +14393,19 @@ class DesktopNotification extends _index__WEBPACK_IMPORTED_MODULE_0__.Notificati
|
|
|
14376
14393
|
}
|
|
14377
14394
|
|
|
14378
14395
|
if (this.nativeNotificationVisibility === DesktopNotification.NativeNotificationVisibility.NONE) {
|
|
14396
|
+
this._hideLaterIfNativeOnly();
|
|
14397
|
+
|
|
14379
14398
|
return;
|
|
14380
14399
|
}
|
|
14381
14400
|
|
|
14382
14401
|
if (this.nativeNotificationVisibility === DesktopNotification.NativeNotificationVisibility.BACKGROUND && !this._isDocumentHidden()) {
|
|
14402
|
+
this._hideLaterIfNativeOnly();
|
|
14403
|
+
|
|
14383
14404
|
return;
|
|
14384
14405
|
}
|
|
14385
14406
|
|
|
14386
14407
|
if (window.Notification && Notification.permission === 'denied') {
|
|
14387
|
-
|
|
14388
|
-
// If native notifications are not allowed, there is no need to keep the (invisible) desktop notification open
|
|
14389
|
-
this.hide();
|
|
14390
|
-
}
|
|
14408
|
+
this._hideLaterIfNativeOnly();
|
|
14391
14409
|
|
|
14392
14410
|
return;
|
|
14393
14411
|
}
|
|
@@ -14399,6 +14417,15 @@ class DesktopNotification extends _index__WEBPACK_IMPORTED_MODULE_0__.Notificati
|
|
|
14399
14417
|
Notification.requestPermission(this._showNativeNotification.bind(this));
|
|
14400
14418
|
}
|
|
14401
14419
|
}
|
|
14420
|
+
|
|
14421
|
+
_hideLaterIfNativeOnly() {
|
|
14422
|
+
if (!this.nativeOnly) {
|
|
14423
|
+
return;
|
|
14424
|
+
} // If native notifications are not shown, there is no need to keep the (invisible) desktop notification open (prevent dom-leak)
|
|
14425
|
+
|
|
14426
|
+
|
|
14427
|
+
setTimeout(() => this.hide()); // async because this method is called in render and removing the notification within render throws exception
|
|
14428
|
+
}
|
|
14402
14429
|
/**
|
|
14403
14430
|
* Checks if browser supports the promise-based version of the method requestPermission. Safari only supports the older callback version.
|
|
14404
14431
|
*/
|
|
@@ -28887,7 +28914,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
28887
28914
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
28888
28915
|
|
|
28889
28916
|
/*
|
|
28890
|
-
* Copyright (c)
|
|
28917
|
+
* Copyright (c) 2010-2022 BSI Business Systems Integration AG.
|
|
28891
28918
|
* All rights reserved. This program and the accompanying materials
|
|
28892
28919
|
* are made available under the terms of the Eclipse Public License v1.0
|
|
28893
28920
|
* which accompanies this distribution, and is available at
|
|
@@ -28905,6 +28932,7 @@ class LookupBox extends _index__WEBPACK_IMPORTED_MODULE_0__.ValueField {
|
|
|
28905
28932
|
this.gridDataHints.weightY = 1.0;
|
|
28906
28933
|
this.gridDataHints.h = 2;
|
|
28907
28934
|
this.value = [];
|
|
28935
|
+
this.clearable = _index__WEBPACK_IMPORTED_MODULE_0__.ValueField.Clearable.NEVER;
|
|
28908
28936
|
this.lookupCall = null;
|
|
28909
28937
|
this._pendingLookup = null;
|
|
28910
28938
|
this._currentLookupCall = null;
|
|
@@ -36404,13 +36432,13 @@ class GroupBox extends _index__WEBPACK_IMPORTED_MODULE_0__.CompositeField {
|
|
|
36404
36432
|
render: () => true,
|
|
36405
36433
|
offset: 0,
|
|
36406
36434
|
hAlign: _index__WEBPACK_IMPORTED_MODULE_0__.HAlign.RIGHT,
|
|
36407
|
-
$drawingArea:
|
|
36408
|
-
if (this.
|
|
36435
|
+
$drawingArea: ($drawingArea, event) => {
|
|
36436
|
+
if (this.$header && this.$header.isVisible()) {
|
|
36409
36437
|
return this.$header;
|
|
36410
36438
|
}
|
|
36411
36439
|
|
|
36412
36440
|
return this.$body;
|
|
36413
|
-
}
|
|
36441
|
+
}
|
|
36414
36442
|
};
|
|
36415
36443
|
keyStrokes.forEach(keyStroke => {
|
|
36416
36444
|
keyStroke.actionKeyStroke.renderingHints = jquery__WEBPACK_IMPORTED_MODULE_1___default().extend({}, keyStroke.actionKeyStroke.renderingHints, groupBoxRenderingHints);
|
|
@@ -36627,13 +36655,11 @@ class GroupBox extends _index__WEBPACK_IMPORTED_MODULE_0__.CompositeField {
|
|
|
36627
36655
|
this.$container.toggleClass('has-scroll-shadow-bottom', hasScrollShadowBottom);
|
|
36628
36656
|
|
|
36629
36657
|
if ((headerVisible || hasMenubarTop) && oldHasScrollShadowTop !== hasScrollShadowTop || hasMenubarBottom && oldHasScrollShadowBottom !== hasScrollShadowBottom) {
|
|
36630
|
-
this.
|
|
36658
|
+
this.invalidateLayoutTree(false);
|
|
36631
36659
|
} // Enlarge header line if there is a shadow, but don't do it if there is a menubar on top
|
|
36632
36660
|
|
|
36633
36661
|
|
|
36634
|
-
_index__WEBPACK_IMPORTED_MODULE_0__.fields.adjustStatusPositionForScrollShadow(this, () => hasScrollShadowTop && headerVisible && !hasMenubarTop);
|
|
36635
|
-
|
|
36636
|
-
this.validateLayout();
|
|
36662
|
+
_index__WEBPACK_IMPORTED_MODULE_0__.fields.adjustStatusPositionForScrollShadow(this, () => hasScrollShadowTop && headerVisible && !hasMenubarTop);
|
|
36637
36663
|
}
|
|
36638
36664
|
|
|
36639
36665
|
setMainBox(mainBox) {
|
|
@@ -37075,10 +37101,18 @@ class GroupBox extends _index__WEBPACK_IMPORTED_MODULE_0__.CompositeField {
|
|
|
37075
37101
|
}
|
|
37076
37102
|
|
|
37077
37103
|
_onControlClick(event) {
|
|
37078
|
-
if (this.expandable) {
|
|
37079
|
-
|
|
37104
|
+
if (!this.expandable) {
|
|
37105
|
+
return;
|
|
37106
|
+
}
|
|
37107
|
+
|
|
37108
|
+
const target = _index__WEBPACK_IMPORTED_MODULE_0__.scout.widget(event.target);
|
|
37109
|
+
|
|
37110
|
+
if (this.menuBarPosition === GroupBox.MenuBarPosition.TITLE && this.menuBar.has(target)) {
|
|
37111
|
+
// If the position of the menubar is set to title and a menu has been clicked, then the event must not be handled
|
|
37112
|
+
return;
|
|
37080
37113
|
}
|
|
37081
37114
|
|
|
37115
|
+
this.setExpanded(!this.expanded);
|
|
37082
37116
|
jquery__WEBPACK_IMPORTED_MODULE_1___default().suppressEvent(event); // otherwise, the event would be triggered twice sometimes (by group-box-control and group-box-title)
|
|
37083
37117
|
}
|
|
37084
37118
|
|
|
@@ -38503,7 +38537,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
38503
38537
|
/* harmony export */ });
|
|
38504
38538
|
/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../index */ "./src/index.js");
|
|
38505
38539
|
/*
|
|
38506
|
-
* Copyright (c)
|
|
38540
|
+
* Copyright (c) 2010-2022 BSI Business Systems Integration AG.
|
|
38507
38541
|
* All rights reserved. This program and the accompanying materials
|
|
38508
38542
|
* are made available under the terms of the Eclipse Public License v1.0
|
|
38509
38543
|
* which accompanies this distribution, and is available at
|
|
@@ -38518,7 +38552,6 @@ class ListBox extends _index__WEBPACK_IMPORTED_MODULE_0__.LookupBox {
|
|
|
38518
38552
|
super();
|
|
38519
38553
|
this.table = null;
|
|
38520
38554
|
this.lookupStatus = null;
|
|
38521
|
-
this.clearable = _index__WEBPACK_IMPORTED_MODULE_0__.ValueField.Clearable.NEVER;
|
|
38522
38555
|
|
|
38523
38556
|
this._addWidgetProperties(['table', 'filterBox']);
|
|
38524
38557
|
}
|
|
@@ -38533,6 +38566,13 @@ class ListBox extends _index__WEBPACK_IMPORTED_MODULE_0__.LookupBox {
|
|
|
38533
38566
|
_initStructure(value) {
|
|
38534
38567
|
if (!this.table) {
|
|
38535
38568
|
this.table = this._createDefaultListBoxTable();
|
|
38569
|
+
} // align checkableColumn in table with checkboxes of tree fields
|
|
38570
|
+
|
|
38571
|
+
|
|
38572
|
+
if (this.table.checkableColumn) {
|
|
38573
|
+
// may be null if a non-default list-box-table with checkable=false is used
|
|
38574
|
+
this.table.checkableColumn.minWidth = 28;
|
|
38575
|
+
this.table.checkableColumn.width = this.table.checkableColumn.minWidth; // do not use setWidth here
|
|
38536
38576
|
}
|
|
38537
38577
|
}
|
|
38538
38578
|
|
|
@@ -48225,7 +48265,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
48225
48265
|
/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! jquery */ "jquery");
|
|
48226
48266
|
/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_1__);
|
|
48227
48267
|
/*
|
|
48228
|
-
* Copyright (c)
|
|
48268
|
+
* Copyright (c) 2010-2022 BSI Business Systems Integration AG.
|
|
48229
48269
|
* All rights reserved. This program and the accompanying materials
|
|
48230
48270
|
* are made available under the terms of the Eclipse Public License v1.0
|
|
48231
48271
|
* which accompanies this distribution, and is available at
|
|
@@ -48253,30 +48293,37 @@ class TabAreaLayout extends _index__WEBPACK_IMPORTED_MODULE_0__.AbstractLayout {
|
|
|
48253
48293
|
}
|
|
48254
48294
|
|
|
48255
48295
|
layout($container) {
|
|
48256
|
-
let
|
|
48257
|
-
htmlContainer = _index__WEBPACK_IMPORTED_MODULE_0__.HtmlComponent.get($container),
|
|
48296
|
+
let htmlContainer = _index__WEBPACK_IMPORTED_MODULE_0__.HtmlComponent.get($container),
|
|
48258
48297
|
containerSize = htmlContainer.availableSize().subtract(htmlContainer.insets()); // compute visible and overflown tabs
|
|
48259
48298
|
|
|
48260
48299
|
this.preferredLayoutSize($container, {
|
|
48261
48300
|
widthHint: containerSize.width
|
|
48262
48301
|
});
|
|
48263
48302
|
|
|
48264
|
-
|
|
48265
|
-
|
|
48266
|
-
}
|
|
48303
|
+
this._layoutSelectionMarker();
|
|
48304
|
+
}
|
|
48267
48305
|
|
|
48268
|
-
|
|
48269
|
-
|
|
48270
|
-
|
|
48271
|
-
|
|
48272
|
-
tabItem.setOverflown(true);
|
|
48273
|
-
});
|
|
48306
|
+
_layoutSelectionMarker() {
|
|
48307
|
+
let $selectionMarker = this.tabArea.$selectionMarker,
|
|
48308
|
+
selectedTab = this.tabArea.selectedTab,
|
|
48309
|
+
selectedItemBounds;
|
|
48274
48310
|
|
|
48275
|
-
if (
|
|
48276
|
-
|
|
48311
|
+
if (selectedTab) {
|
|
48312
|
+
$selectionMarker.setVisible(true);
|
|
48313
|
+
selectedItemBounds = _index__WEBPACK_IMPORTED_MODULE_0__.graphics.bounds(selectedTab.$container);
|
|
48314
|
+
$selectionMarker.cssLeft(selectedItemBounds.x);
|
|
48315
|
+
$selectionMarker.cssWidth(selectedItemBounds.width);
|
|
48316
|
+
} else {
|
|
48317
|
+
$selectionMarker.setVisible(false);
|
|
48277
48318
|
}
|
|
48319
|
+
}
|
|
48278
48320
|
|
|
48321
|
+
_updateEllipsis() {
|
|
48322
|
+
let ellipsis = this.tabArea.ellipsis;
|
|
48323
|
+
ellipsis.setHidden(this.overflowTabs.length < 1);
|
|
48279
48324
|
ellipsis.setText(this.overflowTabs.length + '');
|
|
48325
|
+
this.visibleTabs.forEach(tabItem => tabItem.setOverflown(false));
|
|
48326
|
+
this.overflowTabs.forEach(tabItem => tabItem.setOverflown(true));
|
|
48280
48327
|
ellipsis.setChildActions(this.overflowTabs.map(tab => {
|
|
48281
48328
|
let menu = _index__WEBPACK_IMPORTED_MODULE_0__.scout.create('Menu', {
|
|
48282
48329
|
parent: ellipsis,
|
|
@@ -48293,38 +48340,21 @@ class TabAreaLayout extends _index__WEBPACK_IMPORTED_MODULE_0__.AbstractLayout {
|
|
|
48293
48340
|
});
|
|
48294
48341
|
return menu;
|
|
48295
48342
|
}, this));
|
|
48296
|
-
|
|
48297
|
-
this._layoutSelectionMarker();
|
|
48298
|
-
}
|
|
48299
|
-
|
|
48300
|
-
_layoutSelectionMarker() {
|
|
48301
|
-
let $selectionMarker = this.tabArea.$selectionMarker,
|
|
48302
|
-
selectedTab = this.tabArea.selectedTab,
|
|
48303
|
-
selectedItemBounds;
|
|
48304
|
-
|
|
48305
|
-
if (selectedTab) {
|
|
48306
|
-
$selectionMarker.setVisible(true);
|
|
48307
|
-
selectedItemBounds = _index__WEBPACK_IMPORTED_MODULE_0__.graphics.bounds(selectedTab.$container);
|
|
48308
|
-
$selectionMarker.cssLeft(selectedItemBounds.x);
|
|
48309
|
-
$selectionMarker.cssWidth(selectedItemBounds.width);
|
|
48310
|
-
} else {
|
|
48311
|
-
$selectionMarker.setVisible(false);
|
|
48312
|
-
}
|
|
48313
48343
|
}
|
|
48314
48344
|
|
|
48315
48345
|
preferredLayoutSize($container, options) {
|
|
48316
48346
|
let htmlComp = _index__WEBPACK_IMPORTED_MODULE_0__.HtmlComponent.get($container),
|
|
48317
48347
|
prefSize = new _index__WEBPACK_IMPORTED_MODULE_0__.Dimension(0, 0),
|
|
48318
|
-
prefWidth = Number.MAX_VALUE
|
|
48319
|
-
|
|
48320
|
-
|
|
48348
|
+
prefWidth = Number.MAX_VALUE;
|
|
48349
|
+
this.visibleTabs = this.tabArea.visibleTabs();
|
|
48350
|
+
let overflowableIndexes = this.visibleTabs.map((tabItem, index) => {
|
|
48321
48351
|
if (tabItem.selected) {
|
|
48322
48352
|
return -1;
|
|
48323
48353
|
}
|
|
48324
48354
|
|
|
48325
48355
|
return index;
|
|
48326
48356
|
}).filter(index => index >= 0);
|
|
48327
|
-
this.overflowTabs = []; // consider avoid falsy 0 in
|
|
48357
|
+
this.overflowTabs = []; // consider avoid falsy 0 in tab-boxes a 0 withHint will be used to calculate the minimum width
|
|
48328
48358
|
|
|
48329
48359
|
if (options.widthHint === 0 || options.widthHint) {
|
|
48330
48360
|
prefWidth = options.widthHint - htmlComp.insets().horizontal();
|
|
@@ -48332,26 +48362,28 @@ class TabAreaLayout extends _index__WEBPACK_IMPORTED_MODULE_0__.AbstractLayout {
|
|
|
48332
48362
|
|
|
48333
48363
|
|
|
48334
48364
|
if (prefWidth <= 0) {
|
|
48335
|
-
return this._minSize(
|
|
48365
|
+
return this._minSize(this.visibleTabs).add(htmlComp.insets());
|
|
48336
48366
|
}
|
|
48337
48367
|
|
|
48338
|
-
|
|
48368
|
+
this._setFirstLastMarker(this.visibleTabs);
|
|
48339
48369
|
|
|
48340
|
-
this.
|
|
48370
|
+
this._updateEllipsis();
|
|
48341
48371
|
|
|
48342
|
-
prefSize = this._prefSize(
|
|
48372
|
+
prefSize = this._prefSize(this.visibleTabs);
|
|
48343
48373
|
|
|
48344
48374
|
while (prefSize.width > prefWidth && overflowableIndexes.length > 0) {
|
|
48345
|
-
overflowIndex = overflowableIndexes.splice(-1)[0];
|
|
48346
|
-
this.overflowTabs.splice(0, 0,
|
|
48347
|
-
|
|
48375
|
+
let overflowIndex = overflowableIndexes.splice(-1)[0];
|
|
48376
|
+
this.overflowTabs.splice(0, 0, this.visibleTabs[overflowIndex]);
|
|
48377
|
+
this.visibleTabs.splice(overflowIndex, 1);
|
|
48348
48378
|
|
|
48349
|
-
this._setFirstLastMarker(
|
|
48379
|
+
this._setFirstLastMarker(this.visibleTabs);
|
|
48380
|
+
|
|
48381
|
+
this._updateEllipsis(); // update ellipsis here already so that the prefSize on the next line is correct
|
|
48350
48382
|
|
|
48351
|
-
prefSize = this._prefSize(visibleTabItems);
|
|
48352
|
-
}
|
|
48353
48383
|
|
|
48354
|
-
|
|
48384
|
+
prefSize = this._prefSize(this.visibleTabs);
|
|
48385
|
+
} // Use the total available space if spreading tabs evenly.
|
|
48386
|
+
|
|
48355
48387
|
|
|
48356
48388
|
if (this.tabArea.displayStyle === _index__WEBPACK_IMPORTED_MODULE_0__.TabArea.DisplayStyle.SPREAD_EVEN) {
|
|
48357
48389
|
return _index__WEBPACK_IMPORTED_MODULE_0__.graphics.prefSize($container, options);
|
|
@@ -48361,8 +48393,7 @@ class TabAreaLayout extends _index__WEBPACK_IMPORTED_MODULE_0__.AbstractLayout {
|
|
|
48361
48393
|
}
|
|
48362
48394
|
|
|
48363
48395
|
_minSize(tabItems) {
|
|
48364
|
-
let visibleTabItems = []
|
|
48365
|
-
prefSize;
|
|
48396
|
+
let visibleTabItems = [];
|
|
48366
48397
|
this.overflowTabs = tabItems.filter(tabItem => {
|
|
48367
48398
|
if (tabItem.selected) {
|
|
48368
48399
|
visibleTabItems.push(tabItem);
|
|
@@ -48375,21 +48406,20 @@ class TabAreaLayout extends _index__WEBPACK_IMPORTED_MODULE_0__.AbstractLayout {
|
|
|
48375
48406
|
|
|
48376
48407
|
this._setFirstLastMarker(visibleTabItems);
|
|
48377
48408
|
|
|
48378
|
-
|
|
48379
|
-
return prefSize;
|
|
48409
|
+
return this._prefSize(visibleTabItems);
|
|
48380
48410
|
}
|
|
48381
48411
|
|
|
48382
48412
|
_prefSize(tabItems, considerEllipsis) {
|
|
48383
|
-
let prefSize = tabItems.map(tabItem => this._tabItemSize(tabItem
|
|
48413
|
+
let prefSize = tabItems.map(tabItem => this._tabItemSize(tabItem)).reduce((prefSize, itemSize) => {
|
|
48384
48414
|
prefSize.height = Math.max(prefSize.height, itemSize.height);
|
|
48385
48415
|
prefSize.width += itemSize.width;
|
|
48386
48416
|
return prefSize;
|
|
48387
|
-
}, new _index__WEBPACK_IMPORTED_MODULE_0__.Dimension(0, 0))
|
|
48388
|
-
ellipsisSize = new _index__WEBPACK_IMPORTED_MODULE_0__.Dimension(0, 0);
|
|
48417
|
+
}, new _index__WEBPACK_IMPORTED_MODULE_0__.Dimension(0, 0));
|
|
48389
48418
|
considerEllipsis = _index__WEBPACK_IMPORTED_MODULE_0__.scout.nvl(considerEllipsis, this.overflowTabs.length > 0);
|
|
48390
48419
|
|
|
48391
48420
|
if (considerEllipsis) {
|
|
48392
|
-
ellipsisSize = this._tabItemSize(this.tabArea.ellipsis
|
|
48421
|
+
let ellipsisSize = this._tabItemSize(this.tabArea.ellipsis);
|
|
48422
|
+
|
|
48393
48423
|
prefSize.height = Math.max(prefSize.height, ellipsisSize.height);
|
|
48394
48424
|
prefSize.width += ellipsisSize.width;
|
|
48395
48425
|
}
|
|
@@ -48416,8 +48446,9 @@ class TabAreaLayout extends _index__WEBPACK_IMPORTED_MODULE_0__.AbstractLayout {
|
|
|
48416
48446
|
}
|
|
48417
48447
|
}
|
|
48418
48448
|
|
|
48419
|
-
_tabItemSize(
|
|
48420
|
-
let
|
|
48449
|
+
_tabItemSize(item) {
|
|
48450
|
+
let htmlComp = item.htmlComp,
|
|
48451
|
+
prefSize,
|
|
48421
48452
|
classList = htmlComp.$comp.attr('class'); // temporarily revert display style to default. otherwise the pref size of the tab item will be the size of the container.
|
|
48422
48453
|
|
|
48423
48454
|
if (this.tabArea.displayStyle === _index__WEBPACK_IMPORTED_MODULE_0__.TabArea.DisplayStyle.SPREAD_EVEN) {
|
|
@@ -48429,6 +48460,27 @@ class TabAreaLayout extends _index__WEBPACK_IMPORTED_MODULE_0__.AbstractLayout {
|
|
|
48429
48460
|
prefSize = htmlComp.prefSize({
|
|
48430
48461
|
exact: true
|
|
48431
48462
|
}).add(_index__WEBPACK_IMPORTED_MODULE_0__.graphics.margins(htmlComp.$comp));
|
|
48463
|
+
|
|
48464
|
+
if (item.fieldStatus && item.fieldStatus.htmlComp) {
|
|
48465
|
+
let statusOverflownAndHidden = item.overflown && !item.fieldStatus.visible;
|
|
48466
|
+
|
|
48467
|
+
if (statusOverflownAndHidden) {
|
|
48468
|
+
// overflown tabs have no fieldStatus: explicitly set to visible so that the real consumed space can be computed
|
|
48469
|
+
item.fieldStatus.setVisible(true);
|
|
48470
|
+
}
|
|
48471
|
+
|
|
48472
|
+
let statusWidth = item.fieldStatus.htmlComp.prefSize({
|
|
48473
|
+
includeMargin: true
|
|
48474
|
+
}).width;
|
|
48475
|
+
|
|
48476
|
+
if (statusOverflownAndHidden) {
|
|
48477
|
+
// restore
|
|
48478
|
+
item.fieldStatus.setVisible(false);
|
|
48479
|
+
}
|
|
48480
|
+
|
|
48481
|
+
prefSize.width += statusWidth;
|
|
48482
|
+
}
|
|
48483
|
+
|
|
48432
48484
|
htmlComp.$comp.attrOrRemove('class', classList);
|
|
48433
48485
|
|
|
48434
48486
|
if (this.tabArea.displayStyle === _index__WEBPACK_IMPORTED_MODULE_0__.TabArea.DisplayStyle.SPREAD_EVEN) {
|
|
@@ -48576,7 +48628,6 @@ class TabBox extends _index__WEBPACK_IMPORTED_MODULE_0__.CompositeField {
|
|
|
48576
48628
|
this._addPreserveOnPropertyChangeProperties(['selectedTab']);
|
|
48577
48629
|
|
|
48578
48630
|
this._tabBoxHeaderPropertyChangeHander = this._onTabBoxHeaderPropertyChange.bind(this);
|
|
48579
|
-
this._selectedTabScrollTopChangeHandler = this._updateScrollShadow.bind(this);
|
|
48580
48631
|
}
|
|
48581
48632
|
/**
|
|
48582
48633
|
* @override FormField.js
|
|
@@ -48730,17 +48781,19 @@ class TabBox extends _index__WEBPACK_IMPORTED_MODULE_0__.CompositeField {
|
|
|
48730
48781
|
_renderSelectedTab() {
|
|
48731
48782
|
if (this.selectedTab) {
|
|
48732
48783
|
this.selectedTab.render(this._$tabContent);
|
|
48733
|
-
this.selectedTab.
|
|
48784
|
+
this.selectedTab.get$Scrollable().data('scroll-shadow-customizer', this._updateScrollShadow.bind(this));
|
|
48734
48785
|
}
|
|
48735
48786
|
|
|
48736
48787
|
if (this.rendered) {
|
|
48788
|
+
this._updateScrollShadow();
|
|
48789
|
+
|
|
48737
48790
|
_index__WEBPACK_IMPORTED_MODULE_0__.HtmlComponent.get(this._$tabContent).invalidateLayoutTree();
|
|
48738
48791
|
}
|
|
48739
48792
|
}
|
|
48740
48793
|
|
|
48741
48794
|
_removeSelectedTab() {
|
|
48742
48795
|
if (this.selectedTab) {
|
|
48743
|
-
this.selectedTab.
|
|
48796
|
+
this.selectedTab.get$Scrollable().removeData('scroll-shadow-customizer');
|
|
48744
48797
|
this.selectedTab.remove();
|
|
48745
48798
|
}
|
|
48746
48799
|
}
|
|
@@ -48755,13 +48808,11 @@ class TabBox extends _index__WEBPACK_IMPORTED_MODULE_0__.CompositeField {
|
|
|
48755
48808
|
this.$container.toggleClass('has-scroll-shadow-top', hasScrollShadowTop);
|
|
48756
48809
|
|
|
48757
48810
|
if (oldHasScrollShadowTop !== hasScrollShadowTop) {
|
|
48758
|
-
this.
|
|
48811
|
+
this.invalidateLayoutTree(false);
|
|
48759
48812
|
} // Enlarge header line if there is a shadow, but only if there is a header (controlled by labelVisible)
|
|
48760
48813
|
|
|
48761
48814
|
|
|
48762
|
-
_index__WEBPACK_IMPORTED_MODULE_0__.fields.adjustStatusPositionForScrollShadow(this, () => hasScrollShadowTop && this.labelVisible);
|
|
48763
|
-
|
|
48764
|
-
this.validateLayout();
|
|
48815
|
+
_index__WEBPACK_IMPORTED_MODULE_0__.fields.adjustStatusPositionForScrollShadow(this, () => hasScrollShadowTop && this.labelVisible);
|
|
48765
48816
|
}
|
|
48766
48817
|
|
|
48767
48818
|
setTabAreaStyle(tabAreaStyle) {
|
|
@@ -49047,7 +49098,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
49047
49098
|
/* harmony export */ });
|
|
49048
49099
|
/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../index */ "./src/index.js");
|
|
49049
49100
|
/*
|
|
49050
|
-
* Copyright (c)
|
|
49101
|
+
* Copyright (c) 2010-2022 BSI Business Systems Integration AG.
|
|
49051
49102
|
* All rights reserved. This program and the accompanying materials
|
|
49052
49103
|
* are made available under the terms of the Eclipse Public License v1.0
|
|
49053
49104
|
* which accompanies this distribution, and is available at
|
|
@@ -49082,21 +49133,20 @@ class TabBoxHeaderLayout extends _index__WEBPACK_IMPORTED_MODULE_0__.AbstractLay
|
|
|
49082
49133
|
}
|
|
49083
49134
|
|
|
49084
49135
|
layout($container) {
|
|
49085
|
-
//
|
|
49086
49136
|
let htmlContainer = _index__WEBPACK_IMPORTED_MODULE_0__.HtmlComponent.get($container),
|
|
49087
49137
|
tabArea = this.tabBoxHeader.tabArea,
|
|
49088
49138
|
tabAreaMargins = tabArea.htmlComp.margins(),
|
|
49089
49139
|
tabAreaPrefSize,
|
|
49090
49140
|
menuBar = this.tabBoxHeader.menuBar,
|
|
49091
49141
|
menuBarMargins = menuBar.htmlComp.margins(),
|
|
49092
|
-
|
|
49142
|
+
menuBarMinimumSize,
|
|
49093
49143
|
$status = this.tabBoxHeader.tabBox.$status,
|
|
49094
49144
|
statusSizeLarge = new _index__WEBPACK_IMPORTED_MODULE_0__.Dimension(),
|
|
49095
49145
|
insets = htmlContainer.insets(),
|
|
49096
49146
|
containerSize = htmlContainer.availableSize({
|
|
49097
49147
|
exact: true
|
|
49098
49148
|
}).subtract(htmlContainer.insets());
|
|
49099
|
-
|
|
49149
|
+
menuBarMinimumSize = menuBar.htmlComp.prefSize({
|
|
49100
49150
|
widthHint: 0
|
|
49101
49151
|
});
|
|
49102
49152
|
|
|
@@ -49106,7 +49156,7 @@ class TabBoxHeaderLayout extends _index__WEBPACK_IMPORTED_MODULE_0__.AbstractLay
|
|
|
49106
49156
|
}
|
|
49107
49157
|
|
|
49108
49158
|
tabAreaPrefSize = tabArea.htmlComp.prefSize({
|
|
49109
|
-
widthHint: containerSize.width -
|
|
49159
|
+
widthHint: containerSize.width - menuBarMinimumSize.width - menuBarMargins.horizontal() - statusSizeLarge.width,
|
|
49110
49160
|
exact: false
|
|
49111
49161
|
}); // layout tabArea
|
|
49112
49162
|
|
|
@@ -52370,7 +52420,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
52370
52420
|
/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! jquery */ "jquery");
|
|
52371
52421
|
/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_1__);
|
|
52372
52422
|
/*
|
|
52373
|
-
* Copyright (c) 2010-
|
|
52423
|
+
* Copyright (c) 2010-2022 BSI Business Systems Integration AG.
|
|
52374
52424
|
* All rights reserved. This program and the accompanying materials
|
|
52375
52425
|
* are made available under the terms of the Eclipse Public License v1.0
|
|
52376
52426
|
* which accompanies this distribution, and is available at
|
|
@@ -52391,7 +52441,7 @@ class GlassPane extends _index__WEBPACK_IMPORTED_MODULE_0__.Widget {
|
|
|
52391
52441
|
this.$parent.addClass('glasspane-parent');
|
|
52392
52442
|
let cssPosition = this.$parent.css('position');
|
|
52393
52443
|
|
|
52394
|
-
if (
|
|
52444
|
+
if (cssPosition === 'static') {
|
|
52395
52445
|
this.$parent.css('position', 'relative');
|
|
52396
52446
|
} // Register 'glassPaneTarget' in focus manager.
|
|
52397
52447
|
|
|
@@ -56205,7 +56255,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
56205
56255
|
/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);
|
|
56206
56256
|
/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../index */ "./src/index.js");
|
|
56207
56257
|
/*
|
|
56208
|
-
* Copyright (c) 2010-
|
|
56258
|
+
* Copyright (c) 2010-2022 BSI Business Systems Integration AG.
|
|
56209
56259
|
* All rights reserved. This program and the accompanying materials
|
|
56210
56260
|
* are made available under the terms of the Eclipse Public License v1.0
|
|
56211
56261
|
* which accompanies this distribution, and is available at
|
|
@@ -57358,17 +57408,19 @@ const __origCleanData = (jquery__WEBPACK_IMPORTED_MODULE_0___default().cleanData
|
|
|
57358
57408
|
return this;
|
|
57359
57409
|
}
|
|
57360
57410
|
|
|
57361
|
-
|
|
57411
|
+
let oneHandler = event => {
|
|
57362
57412
|
if (event.target !== this[0]) {
|
|
57363
57413
|
// Ignore events that bubble up from child elements
|
|
57364
57414
|
return;
|
|
57365
57415
|
} // Unregister listener to implement "one" semantics
|
|
57366
57416
|
|
|
57367
57417
|
|
|
57368
|
-
this.off(
|
|
57418
|
+
this.off('animationend webkitAnimationEnd', oneHandler); // Notify actual event handler
|
|
57369
57419
|
|
|
57370
57420
|
handler(event);
|
|
57371
|
-
}
|
|
57421
|
+
};
|
|
57422
|
+
|
|
57423
|
+
return this.on('animationend webkitAnimationEnd', oneHandler);
|
|
57372
57424
|
};
|
|
57373
57425
|
|
|
57374
57426
|
(jquery__WEBPACK_IMPORTED_MODULE_0___default().fn.hasAnimationClass) = function () {
|
|
@@ -73811,7 +73863,9 @@ class ModeSelector extends _index__WEBPACK_IMPORTED_MODULE_0__.Widget {
|
|
|
73811
73863
|
|
|
73812
73864
|
if (this.selectedMode && this.selectedMode.$container) {
|
|
73813
73865
|
selectedModePosX = _index__WEBPACK_IMPORTED_MODULE_0__.graphics.position(this.selectedMode.$container).x;
|
|
73814
|
-
selectedModeWidth = _index__WEBPACK_IMPORTED_MODULE_0__.graphics.size(this.selectedMode.$container
|
|
73866
|
+
selectedModeWidth = _index__WEBPACK_IMPORTED_MODULE_0__.graphics.size(this.selectedMode.$container, {
|
|
73867
|
+
exact: true
|
|
73868
|
+
}).width;
|
|
73815
73869
|
}
|
|
73816
73870
|
|
|
73817
73871
|
this.$slider.cssLeft(selectedModePosX);
|
|
@@ -76748,7 +76802,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
76748
76802
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
76749
76803
|
|
|
76750
76804
|
/*
|
|
76751
|
-
* Copyright (c) 2010-
|
|
76805
|
+
* Copyright (c) 2010-2022 BSI Business Systems Integration AG.
|
|
76752
76806
|
* All rights reserved. This program and the accompanying materials
|
|
76753
76807
|
* are made available under the terms of the Eclipse Public License v1.0
|
|
76754
76808
|
* which accompanies this distribution, and is available at
|
|
@@ -76880,20 +76934,18 @@ class Popup extends _index__WEBPACK_IMPORTED_MODULE_0__.Widget {
|
|
|
76880
76934
|
|
|
76881
76935
|
_openWithoutParent() {
|
|
76882
76936
|
// resolve parent for entry-point (don't change the actual property)
|
|
76883
|
-
|
|
76884
|
-
|
|
76885
|
-
if (parent.destroyed) {
|
|
76937
|
+
if (this.parent.destroyed) {
|
|
76886
76938
|
return;
|
|
76887
76939
|
}
|
|
76888
76940
|
|
|
76889
|
-
if (parent.rendered || parent.rendering) {
|
|
76890
|
-
this.open(
|
|
76941
|
+
if (this.parent.rendered || this.parent.rendering) {
|
|
76942
|
+
this.open(this._getDefaultOpen$Parent());
|
|
76891
76943
|
return;
|
|
76892
76944
|
} // This is important for popups rendered in another (native) browser window. The DOM in the popup window
|
|
76893
76945
|
// is rendered later, so we must wait until that window is rendered and layouted. See popup-window.html.
|
|
76894
76946
|
|
|
76895
76947
|
|
|
76896
|
-
parent.one('render', () => {
|
|
76948
|
+
this.parent.one('render', () => {
|
|
76897
76949
|
this.session.layoutValidator.schedulePostValidateFunction(() => {
|
|
76898
76950
|
if (this.destroyed || this.rendered) {
|
|
76899
76951
|
return;
|
|
@@ -76903,6 +76955,15 @@ class Popup extends _index__WEBPACK_IMPORTED_MODULE_0__.Widget {
|
|
|
76903
76955
|
});
|
|
76904
76956
|
});
|
|
76905
76957
|
}
|
|
76958
|
+
/**
|
|
76959
|
+
* Only called if parent.rendered or parent.rendering
|
|
76960
|
+
* @return {$}
|
|
76961
|
+
*/
|
|
76962
|
+
|
|
76963
|
+
|
|
76964
|
+
_getDefaultOpen$Parent() {
|
|
76965
|
+
return this.parent.entryPoint();
|
|
76966
|
+
}
|
|
76906
76967
|
|
|
76907
76968
|
open($parent) {
|
|
76908
76969
|
if (!$parent) {
|
|
@@ -77180,6 +77241,16 @@ class Popup extends _index__WEBPACK_IMPORTED_MODULE_0__.Widget {
|
|
|
77180
77241
|
return cssClass;
|
|
77181
77242
|
}
|
|
77182
77243
|
|
|
77244
|
+
_animateRemovalWhileRemovingParent() {
|
|
77245
|
+
if (!this.$anchor) {
|
|
77246
|
+
// Allow remove animations for popups without an anchor
|
|
77247
|
+
return true;
|
|
77248
|
+
} // If parent is the anchor, prevent remove animation to ensure popup will be removed together with the anchor
|
|
77249
|
+
|
|
77250
|
+
|
|
77251
|
+
return _index__WEBPACK_IMPORTED_MODULE_0__.widgets.get(this.$anchor) !== this.parent;
|
|
77252
|
+
}
|
|
77253
|
+
|
|
77183
77254
|
_isRemovalPrevented() {
|
|
77184
77255
|
// If removal of a parent is pending due to an animation then don't return true to make sure popups are closed before the parent animation starts.
|
|
77185
77256
|
// However, if the popup itself is removed by an animation, removal should be prevented to ensure remove() won't run multiple times.
|
|
@@ -77829,7 +77900,7 @@ class Popup extends _index__WEBPACK_IMPORTED_MODULE_0__.Widget {
|
|
|
77829
77900
|
}
|
|
77830
77901
|
|
|
77831
77902
|
_handleGlassPanes() {
|
|
77832
|
-
let parentCoveredByGlassPane = this.session.focusManager.isElementCovertByGlassPane(this.parent.$container); // if a popup is covered by a glass pane the glass pane's need to be
|
|
77903
|
+
let parentCoveredByGlassPane = this.session.focusManager.isElementCovertByGlassPane(this.parent.$container); // if a popup is covered by a glass pane the glass pane's need to be re-rendered to ensure a glass pane is also painted over the popup
|
|
77833
77904
|
|
|
77834
77905
|
if (parentCoveredByGlassPane) {
|
|
77835
77906
|
this.session.focusManager.rerenderGlassPanes();
|
|
@@ -77970,7 +78041,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
77970
78041
|
/* harmony export */ });
|
|
77971
78042
|
/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../index */ "./src/index.js");
|
|
77972
78043
|
/*
|
|
77973
|
-
* Copyright (c)
|
|
78044
|
+
* Copyright (c) 2010-2022 BSI Business Systems Integration AG.
|
|
77974
78045
|
* All rights reserved. This program and the accompanying materials
|
|
77975
78046
|
* are made available under the terms of the Eclipse Public License v1.0
|
|
77976
78047
|
* which accompanies this distribution, and is available at
|
|
@@ -78110,9 +78181,6 @@ class PopupLayout extends _index__WEBPACK_IMPORTED_MODULE_0__.AbstractLayout {
|
|
|
78110
78181
|
|
|
78111
78182
|
|
|
78112
78183
|
_calcMaxSize() {
|
|
78113
|
-
// Position the popup at the desired location before doing any calculations to consider the preferred bounds
|
|
78114
|
-
this._position(false);
|
|
78115
|
-
|
|
78116
78184
|
let maxWidth,
|
|
78117
78185
|
maxHeight,
|
|
78118
78186
|
htmlComp = this.popup.htmlComp,
|
|
@@ -78131,7 +78199,7 @@ class PopupLayout extends _index__WEBPACK_IMPORTED_MODULE_0__.AbstractLayout {
|
|
|
78131
78199
|
windowSize = this._calcMaxSize(),
|
|
78132
78200
|
Alignment = _index__WEBPACK_IMPORTED_MODULE_0__.Popup.Alignment,
|
|
78133
78201
|
horizontalAlignment = this.popup.horizontalAlignment,
|
|
78134
|
-
verticalAlignment = this.popup.verticalAlignment; // Decide whether the prefSize can be used or the popup needs to be
|
|
78202
|
+
verticalAlignment = this.popup.verticalAlignment; // Decide whether the prefSize can be used or the popup needs to be shrunken so that it fits into the viewport
|
|
78135
78203
|
// The decision is based on the preferred opening direction
|
|
78136
78204
|
// Example: The popup would like to be opened leftedge and bottom
|
|
78137
78205
|
// If there is enough space on the right and on the bottom -> pref size is used
|
|
@@ -78198,9 +78266,6 @@ class PopupLayout extends _index__WEBPACK_IMPORTED_MODULE_0__.AbstractLayout {
|
|
|
78198
78266
|
|
|
78199
78267
|
|
|
78200
78268
|
_calcMaxSizeAroundAnchor() {
|
|
78201
|
-
// Position the popup at the desired location before doing any calculations because positioning adds CSS classes which might change margins
|
|
78202
|
-
this._position(false);
|
|
78203
|
-
|
|
78204
78269
|
let maxWidthLeft,
|
|
78205
78270
|
maxWidthRight,
|
|
78206
78271
|
maxHeightDown,
|
|
@@ -80784,7 +80849,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
80784
80849
|
/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! jquery */ "jquery");
|
|
80785
80850
|
/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_1__);
|
|
80786
80851
|
/*
|
|
80787
|
-
* Copyright (c) 2010-
|
|
80852
|
+
* Copyright (c) 2010-2022 BSI Business Systems Integration AG.
|
|
80788
80853
|
* All rights reserved. This program and the accompanying materials
|
|
80789
80854
|
* are made available under the terms of the Eclipse Public License v1.0
|
|
80790
80855
|
* which accompanies this distribution, and is available at
|
|
@@ -80954,7 +81019,19 @@ function installScrollShadow($container, session, options) {
|
|
|
80954
81019
|
|
|
80955
81020
|
_installIntersectionObserver();
|
|
80956
81021
|
|
|
80957
|
-
intersectionObserver.observe($container[0]);
|
|
81022
|
+
intersectionObserver.observe($container[0]); // this is required in addition to the intersection observer because the observer events are handled asynchronously later after all the setTimeout calls.
|
|
81023
|
+
// Then the shadow might stay visible too long which has an impact on layout updates.
|
|
81024
|
+
|
|
81025
|
+
let containerElement = $container[0];
|
|
81026
|
+
|
|
81027
|
+
let visibleListener = e => {
|
|
81028
|
+
if (e.target === containerElement) {
|
|
81029
|
+
_onScrollableVisibleChange(containerElement, e.type === 'show');
|
|
81030
|
+
}
|
|
81031
|
+
};
|
|
81032
|
+
|
|
81033
|
+
$container.data('scroll-shadow-visible-listener', visibleListener);
|
|
81034
|
+
$container.on('hide show', visibleListener);
|
|
80958
81035
|
}
|
|
80959
81036
|
function uninstallScrollShadow($container, session) {
|
|
80960
81037
|
let $shadow = $container.data('scroll-shadow');
|
|
@@ -80977,6 +81054,12 @@ function uninstallScrollShadow($container, session) {
|
|
|
80977
81054
|
intersectionObserver.unobserve($container[0]);
|
|
80978
81055
|
}
|
|
80979
81056
|
|
|
81057
|
+
let visibleListener = $container.data('scroll-shadow-visible-listener');
|
|
81058
|
+
|
|
81059
|
+
if (visibleListener) {
|
|
81060
|
+
$container.off('hide show', visibleListener);
|
|
81061
|
+
}
|
|
81062
|
+
|
|
80980
81063
|
let $scrollables = _$scrollables[session];
|
|
80981
81064
|
|
|
80982
81065
|
if (!$scrollables || !$scrollables.some($scrollable => $scrollable.data('scroll-shadow'))) {
|
|
@@ -81052,7 +81135,7 @@ function updateScrollShadow($container) {
|
|
|
81052
81135
|
$shadow.toggleClass('right', !atRight && style.indexOf('right') > -1);
|
|
81053
81136
|
_index__WEBPACK_IMPORTED_MODULE_0__.graphics.setBounds($shadow, _index__WEBPACK_IMPORTED_MODULE_0__.graphics.bounds($container, {
|
|
81054
81137
|
exact: true
|
|
81055
|
-
}));
|
|
81138
|
+
}).subtract(insets($shadow)));
|
|
81056
81139
|
_index__WEBPACK_IMPORTED_MODULE_0__.graphics.setMargins($shadow, _index__WEBPACK_IMPORTED_MODULE_0__.graphics.margins($container));
|
|
81057
81140
|
$shadow.css('border-radius', $container.css('border-radius'));
|
|
81058
81141
|
let customizer = $container.data('scroll-shadow-customizer');
|
|
@@ -81068,6 +81151,10 @@ function updateScrollShadow($container) {
|
|
|
81068
81151
|
function atEnd(scrollPos, scrollSize, offsetSize) {
|
|
81069
81152
|
return scrollPos + 1 >= scrollSize - offsetSize;
|
|
81070
81153
|
}
|
|
81154
|
+
|
|
81155
|
+
function insets($shadow) {
|
|
81156
|
+
return new _index__WEBPACK_IMPORTED_MODULE_0__.Insets($shadow.cssPxValue('--scroll-shadow-inset-top'), $shadow.cssPxValue('--scroll-shadow-inset-right'), $shadow.cssPxValue('--scroll-shadow-inset-bottom'), $shadow.cssPxValue('--scroll-shadow-inset-left'));
|
|
81157
|
+
}
|
|
81071
81158
|
}
|
|
81072
81159
|
/**
|
|
81073
81160
|
* Installs a dom mutation observer that tracks all scrollables in order to move the scroll shadow along with the scrollable.
|
|
@@ -81559,7 +81646,7 @@ function scrollToBottom($scrollable, options) {
|
|
|
81559
81646
|
/**
|
|
81560
81647
|
* @param location object with x and y properties
|
|
81561
81648
|
* @param $scrollables one or more scrollables to check against
|
|
81562
|
-
* @
|
|
81649
|
+
* @returns {boolean} true if the location is visible in the current viewport of all the $scrollables, or if $scrollables is null
|
|
81563
81650
|
*/
|
|
81564
81651
|
|
|
81565
81652
|
function isLocationInView(location, $scrollables) {
|
|
@@ -87700,6 +87787,7 @@ class Table extends _index__WEBPACK_IMPORTED_MODULE_0__.Widget {
|
|
|
87700
87787
|
this.contextColumn = null;
|
|
87701
87788
|
this.checkable = false;
|
|
87702
87789
|
this.checkableStyle = Table.CheckableStyle.CHECKBOX;
|
|
87790
|
+
this.cellEditorPopup = null;
|
|
87703
87791
|
this.compact = false;
|
|
87704
87792
|
this.compactHandler = _index__WEBPACK_IMPORTED_MODULE_0__.scout.create('TableCompactHandler', {
|
|
87705
87793
|
table: this
|
|
@@ -87781,6 +87869,7 @@ class Table extends _index__WEBPACK_IMPORTED_MODULE_0__.Widget {
|
|
|
87781
87869
|
this._popupOpenHandler = this._onDesktopPopupOpen.bind(this);
|
|
87782
87870
|
this._rerenderViewPortAfterAttach = false;
|
|
87783
87871
|
this._renderViewPortAfterAttach = false;
|
|
87872
|
+
this._postAttachActions = [];
|
|
87784
87873
|
this._desktopPropertyChangeHandler = this._onDesktopPropertyChange.bind(this);
|
|
87785
87874
|
|
|
87786
87875
|
this._addWidgetProperties(['tableControls', 'menus', 'keyStrokes', 'staticMenus', 'tileTableHeader', 'tableTileGridMediator']);
|
|
@@ -88111,8 +88200,6 @@ class Table extends _index__WEBPACK_IMPORTED_MODULE_0__.Widget {
|
|
|
88111
88200
|
}
|
|
88112
88201
|
|
|
88113
88202
|
_removeData() {
|
|
88114
|
-
this._destroyCellEditorPopup();
|
|
88115
|
-
|
|
88116
88203
|
this._removeAggregateRows();
|
|
88117
88204
|
|
|
88118
88205
|
this._uninstallImageListeners();
|
|
@@ -88297,13 +88384,13 @@ class Table extends _index__WEBPACK_IMPORTED_MODULE_0__.Widget {
|
|
|
88297
88384
|
return;
|
|
88298
88385
|
}
|
|
88299
88386
|
|
|
88387
|
+
let row = $row.data('row'); // read row before the $row potentially could be replaced by the column specific logic on mouse up
|
|
88388
|
+
|
|
88300
88389
|
if (mouseButton === 1) {
|
|
88301
88390
|
column.onMouseUp(event, $row);
|
|
88302
88391
|
$appLink = this._find$AppLink(event);
|
|
88303
88392
|
}
|
|
88304
88393
|
|
|
88305
|
-
let row = $row.data('row');
|
|
88306
|
-
|
|
88307
88394
|
if ($appLink) {
|
|
88308
88395
|
this._triggerAppLinkAction(column, row, $appLink.data('ref'), $appLink);
|
|
88309
88396
|
} else {
|
|
@@ -89869,8 +89956,26 @@ class Table extends _index__WEBPACK_IMPORTED_MODULE_0__.Widget {
|
|
|
89869
89956
|
});
|
|
89870
89957
|
}
|
|
89871
89958
|
/**
|
|
89872
|
-
*
|
|
89873
|
-
*
|
|
89959
|
+
* Starts cell editing for the cell at the given column and row, but only if editing is allowed.
|
|
89960
|
+
* @see prepareCellEdit
|
|
89961
|
+
*/
|
|
89962
|
+
|
|
89963
|
+
|
|
89964
|
+
focusCell(column, row) {
|
|
89965
|
+
let cell = this.cell(column, row);
|
|
89966
|
+
|
|
89967
|
+
if (this.enabledComputed && row.enabled && cell.editable) {
|
|
89968
|
+
this.prepareCellEdit(column, row);
|
|
89969
|
+
}
|
|
89970
|
+
}
|
|
89971
|
+
/**
|
|
89972
|
+
* Creates a cell editor for the cell at the given column and row, ensures the row is selected and passes the editor
|
|
89973
|
+
* to {@link #startCellEdit} which starts the editing by rendering the editor in a {@link CellEditorPopup}.<br>
|
|
89974
|
+
* If the completion of a previous cell edit is still in progress, the preparation is delayed until the completion is finished.
|
|
89975
|
+
*
|
|
89976
|
+
* @param {boolean} [openFieldPopupOnCellEdit] true to instruct the editor to open its control popup when the editor is rendered.
|
|
89977
|
+
* This only has an effect if the editor has a popup (e.g. SmartField or DateField).
|
|
89978
|
+
* @returns Promise the promise will be resolved when the preparation has been finished.
|
|
89874
89979
|
*/
|
|
89875
89980
|
|
|
89876
89981
|
|
|
@@ -89884,10 +89989,10 @@ class Table extends _index__WEBPACK_IMPORTED_MODULE_0__.Widget {
|
|
|
89884
89989
|
return promise.then(this.prepareCellEditInternal.bind(this, column, row, openFieldPopupOnCellEdit));
|
|
89885
89990
|
}
|
|
89886
89991
|
/**
|
|
89887
|
-
* @param openFieldPopupOnCellEdit when this parameter is set to true, the CellEditorPopup sets an
|
|
89992
|
+
* @param {boolean} [openFieldPopupOnCellEdit] when this parameter is set to true, the CellEditorPopup sets an
|
|
89888
89993
|
* additional property 'cellEditor' on the editor-field. The field instance may use this property
|
|
89889
89994
|
* to decide whether or not it should open a popup immediately after it is rendered. This is used
|
|
89890
|
-
* for Smart- and DateFields.
|
|
89995
|
+
* for Smart- and DateFields. Default is false.
|
|
89891
89996
|
*/
|
|
89892
89997
|
|
|
89893
89998
|
|
|
@@ -90974,12 +91079,23 @@ class Table extends _index__WEBPACK_IMPORTED_MODULE_0__.Widget {
|
|
|
90974
91079
|
}
|
|
90975
91080
|
|
|
90976
91081
|
startCellEdit(column, row, field) {
|
|
90977
|
-
if (
|
|
91082
|
+
if (field.destroyed) {
|
|
91083
|
+
// May happen if the action was postponed and the field destroyed in the meantime using endCellEdit.
|
|
91084
|
+
return;
|
|
91085
|
+
}
|
|
91086
|
+
|
|
91087
|
+
if (!this._isDataRendered()) {
|
|
90978
91088
|
this._postRenderActions.push(this.startCellEdit.bind(this, column, row, field));
|
|
90979
91089
|
|
|
90980
91090
|
return;
|
|
90981
91091
|
}
|
|
90982
91092
|
|
|
91093
|
+
if (!this.$container.isAttached()) {
|
|
91094
|
+
this._postAttachActions.push(this.startCellEdit.bind(this, column, row, field));
|
|
91095
|
+
|
|
91096
|
+
return;
|
|
91097
|
+
}
|
|
91098
|
+
|
|
90983
91099
|
this.trigger('startCellEdit', {
|
|
90984
91100
|
column: column,
|
|
90985
91101
|
row: row,
|
|
@@ -90999,12 +91115,6 @@ class Table extends _index__WEBPACK_IMPORTED_MODULE_0__.Widget {
|
|
|
90999
91115
|
|
|
91000
91116
|
|
|
91001
91117
|
endCellEdit(field, saveEditorValue) {
|
|
91002
|
-
if (!this._isDataRendered() || !this.isAttachedAndRendered()) {
|
|
91003
|
-
this._postRenderActions.push(this.endCellEdit.bind(this, field, saveEditorValue));
|
|
91004
|
-
|
|
91005
|
-
return;
|
|
91006
|
-
}
|
|
91007
|
-
|
|
91008
91118
|
if (!this.cellEditorPopup) {
|
|
91009
91119
|
// the cellEditorPopup could already be removed by scrolling (out of view range) or be removed by update rows
|
|
91010
91120
|
field.destroy();
|
|
@@ -92783,7 +92893,11 @@ class Table extends _index__WEBPACK_IMPORTED_MODULE_0__.Widget {
|
|
|
92783
92893
|
this.$container.toggleClass('table-row-check', this.checkableStyle === Table.CheckableStyle.TABLE_ROW);
|
|
92784
92894
|
|
|
92785
92895
|
if (this._isDataRendered()) {
|
|
92896
|
+
this._updateRowWidth();
|
|
92897
|
+
|
|
92786
92898
|
this._redraw();
|
|
92899
|
+
|
|
92900
|
+
this.invalidateLayoutTree();
|
|
92787
92901
|
}
|
|
92788
92902
|
}
|
|
92789
92903
|
/**
|
|
@@ -93520,20 +93634,6 @@ class Table extends _index__WEBPACK_IMPORTED_MODULE_0__.Widget {
|
|
|
93520
93634
|
}
|
|
93521
93635
|
}
|
|
93522
93636
|
|
|
93523
|
-
focusCell(column, row) {
|
|
93524
|
-
if (!this._isDataRendered() || !this.isAttachedAndRendered()) {
|
|
93525
|
-
this._postRenderActions.push(this.focusCell.bind(this, column, row));
|
|
93526
|
-
|
|
93527
|
-
return;
|
|
93528
|
-
}
|
|
93529
|
-
|
|
93530
|
-
let cell = this.cell(column, row);
|
|
93531
|
-
|
|
93532
|
-
if (this.enabledComputed && row.enabled && cell.editable) {
|
|
93533
|
-
this.prepareCellEdit(column, row, false);
|
|
93534
|
-
}
|
|
93535
|
-
}
|
|
93536
|
-
|
|
93537
93637
|
_attach() {
|
|
93538
93638
|
this.$parent.append(this.$container);
|
|
93539
93639
|
|
|
@@ -93564,6 +93664,10 @@ class Table extends _index__WEBPACK_IMPORTED_MODULE_0__.Widget {
|
|
|
93564
93664
|
this._rerenderViewportAfterAttach();
|
|
93565
93665
|
|
|
93566
93666
|
this._renderViewportAfterAttach();
|
|
93667
|
+
|
|
93668
|
+
let actions = this._postAttachActions;
|
|
93669
|
+
this._postAttachActions = [];
|
|
93670
|
+
actions.forEach(action => action());
|
|
93567
93671
|
}
|
|
93568
93672
|
|
|
93569
93673
|
_rerenderViewportAfterAttach() {
|
|
@@ -93594,12 +93698,6 @@ class Table extends _index__WEBPACK_IMPORTED_MODULE_0__.Widget {
|
|
|
93594
93698
|
|
|
93595
93699
|
super._detach();
|
|
93596
93700
|
}
|
|
93597
|
-
|
|
93598
|
-
_onDetach() {
|
|
93599
|
-
super._onDetach();
|
|
93600
|
-
|
|
93601
|
-
this._destroyCellEditorPopup();
|
|
93602
|
-
}
|
|
93603
93701
|
/**
|
|
93604
93702
|
* @param {function} [callback] function to be called right after the popup is destroyed
|
|
93605
93703
|
*/
|
|
@@ -96396,7 +96494,8 @@ class TableHeader extends _index__WEBPACK_IMPORTED_MODULE_0__.Widget {
|
|
|
96396
96494
|
|
|
96397
96495
|
if (column.sortActive || column.grouped || filtered) {
|
|
96398
96496
|
if (column.minWidth < _index__WEBPACK_IMPORTED_MODULE_0__.Column.DEFAULT_MIN_WIDTH) {
|
|
96399
|
-
column.
|
|
96497
|
+
column.__minWidthWithoutState = column.minWidth;
|
|
96498
|
+
column.__widthWithoutState = column.width;
|
|
96400
96499
|
column.minWidth = _index__WEBPACK_IMPORTED_MODULE_0__.Column.DEFAULT_MIN_WIDTH;
|
|
96401
96500
|
}
|
|
96402
96501
|
|
|
@@ -96404,14 +96503,16 @@ class TableHeader extends _index__WEBPACK_IMPORTED_MODULE_0__.Widget {
|
|
|
96404
96503
|
this.table.resizeColumn(column, column.minWidth);
|
|
96405
96504
|
}
|
|
96406
96505
|
} else {
|
|
96407
|
-
// Reset to
|
|
96408
|
-
if (column.
|
|
96409
|
-
column.minWidth = column.
|
|
96410
|
-
column.prefMinWidth = null; // Resize to old min width, assuming user has not manually changed the size because column is still as width as default_min_width
|
|
96506
|
+
// Reset to previous min width if no state is visible
|
|
96507
|
+
if (!_index__WEBPACK_IMPORTED_MODULE_0__.objects.isNullOrUndefined(column.__minWidthWithoutState)) {
|
|
96508
|
+
column.minWidth = column.__minWidthWithoutState; // Resize to previous min width, assuming user has not manually changed the size because column is still as width as default_min_width
|
|
96411
96509
|
|
|
96412
96510
|
if (column.width === _index__WEBPACK_IMPORTED_MODULE_0__.Column.DEFAULT_MIN_WIDTH) {
|
|
96413
|
-
this.table.resizeColumn(column, column.
|
|
96511
|
+
this.table.resizeColumn(column, column.__widthWithoutState);
|
|
96414
96512
|
}
|
|
96513
|
+
|
|
96514
|
+
column.__minWidthWithoutState = null;
|
|
96515
|
+
column.__widthWithoutState = null;
|
|
96415
96516
|
}
|
|
96416
96517
|
}
|
|
96417
96518
|
}
|
|
@@ -96995,7 +97096,10 @@ class TableHeaderMenu extends _index__WEBPACK_IMPORTED_MODULE_0__.Popup {
|
|
|
96995
97096
|
this.filterTable.off('rowsChecked', this._filterTableRowsCheckedHandler);
|
|
96996
97097
|
}
|
|
96997
97098
|
|
|
96998
|
-
this.tableHeader
|
|
97099
|
+
if (this.tableHeader.rendered) {
|
|
97100
|
+
this.tableHeader.$container.off('scroll', this._tableHeaderScrollHandler);
|
|
97101
|
+
}
|
|
97102
|
+
|
|
96999
97103
|
this.$headerItem.select(false);
|
|
97000
97104
|
this.table.off('columnMoved', this._onColumnMovedHandler);
|
|
97001
97105
|
this.table.off('filterAdded', this._tableFilterHandler);
|
|
@@ -101340,7 +101444,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
101340
101444
|
/* harmony export */ });
|
|
101341
101445
|
/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../index */ "./src/index.js");
|
|
101342
101446
|
/*
|
|
101343
|
-
* Copyright (c) 2010-
|
|
101447
|
+
* Copyright (c) 2010-2022 BSI Business Systems Integration AG.
|
|
101344
101448
|
* All rights reserved. This program and the accompanying materials
|
|
101345
101449
|
* are made available under the terms of the Eclipse Public License v1.0
|
|
101346
101450
|
* which accompanies this distribution, and is available at
|
|
@@ -101361,7 +101465,7 @@ class BooleanColumn extends _index__WEBPACK_IMPORTED_MODULE_0__.Column {
|
|
|
101361
101465
|
this.comparator = _index__WEBPACK_IMPORTED_MODULE_0__.comparators.NUMERIC;
|
|
101362
101466
|
this.filterType = 'ColumnUserFilter';
|
|
101363
101467
|
this.horizontalAlignment = 0;
|
|
101364
|
-
this.minWidth = _index__WEBPACK_IMPORTED_MODULE_0__.Column.
|
|
101468
|
+
this.minWidth = _index__WEBPACK_IMPORTED_MODULE_0__.Column.SMALL_MIN_WIDTH;
|
|
101365
101469
|
this.triStateEnabled = false;
|
|
101366
101470
|
this.textBased = false;
|
|
101367
101471
|
}
|
|
@@ -101544,7 +101648,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
101544
101648
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
101545
101649
|
|
|
101546
101650
|
/*
|
|
101547
|
-
* Copyright (c) 2010-
|
|
101651
|
+
* Copyright (c) 2010-2022 BSI Business Systems Integration AG.
|
|
101548
101652
|
* All rights reserved. This program and the accompanying materials
|
|
101549
101653
|
* are made available under the terms of the Eclipse Public License v1.0
|
|
101550
101654
|
* which accompanies this distribution, and is available at
|
|
@@ -101588,7 +101692,6 @@ class Column {
|
|
|
101588
101692
|
this.width = 60;
|
|
101589
101693
|
this.initialWidth = undefined; // the width the column initially has
|
|
101590
101694
|
|
|
101591
|
-
this.prefMinWidth = null;
|
|
101592
101695
|
this.minWidth = Column.DEFAULT_MIN_WIDTH; // the minimal width the column can have
|
|
101593
101696
|
|
|
101594
101697
|
this.showSeparator = true;
|
|
@@ -101615,7 +101718,6 @@ class Column {
|
|
|
101615
101718
|
this.$separator = null;
|
|
101616
101719
|
}
|
|
101617
101720
|
|
|
101618
|
-
// for columns without text (icon, check box)
|
|
101619
101721
|
init(model) {
|
|
101620
101722
|
this.session = model.session; // Copy all properties from model to this
|
|
101621
101723
|
|
|
@@ -102684,6 +102786,8 @@ class Column {
|
|
|
102684
102786
|
|
|
102685
102787
|
_defineProperty(Column, "DEFAULT_MIN_WIDTH", 60);
|
|
102686
102788
|
|
|
102789
|
+
_defineProperty(Column, "SMALL_MIN_WIDTH", 38);
|
|
102790
|
+
|
|
102687
102791
|
_defineProperty(Column, "NARROW_MIN_WIDTH", 32);
|
|
102688
102792
|
|
|
102689
102793
|
/***/ }),
|
|
@@ -105582,7 +105686,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
105582
105686
|
/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! jquery */ "jquery");
|
|
105583
105687
|
/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_1__);
|
|
105584
105688
|
/*
|
|
105585
|
-
* Copyright (c)
|
|
105689
|
+
* Copyright (c) 2010-2022 BSI Business Systems Integration AG.
|
|
105586
105690
|
* All rights reserved. This program and the accompanying materials
|
|
105587
105691
|
* are made available under the terms of the Eclipse Public License v1.0
|
|
105588
105692
|
* which accompanies this distribution, and is available at
|
|
@@ -105644,6 +105748,14 @@ class CellEditorPopup extends _index__WEBPACK_IMPORTED_MODULE_0__.Popup {
|
|
|
105644
105748
|
this.position();
|
|
105645
105749
|
this.pack();
|
|
105646
105750
|
}
|
|
105751
|
+
/**
|
|
105752
|
+
* @override
|
|
105753
|
+
*/
|
|
105754
|
+
|
|
105755
|
+
|
|
105756
|
+
_getDefaultOpen$Parent() {
|
|
105757
|
+
return this.table.$data;
|
|
105758
|
+
}
|
|
105647
105759
|
|
|
105648
105760
|
_render() {
|
|
105649
105761
|
super._render(); // determine CSS class for first and last column, required for additional margins/padding in cell-editor
|
|
@@ -111895,7 +112007,7 @@ class TileGrid extends _index__WEBPACK_IMPORTED_MODULE_0__.Widget {
|
|
|
111895
112007
|
}
|
|
111896
112008
|
|
|
111897
112009
|
_onAnimatedTileRemove(tile) {
|
|
111898
|
-
if (!tile.
|
|
112010
|
+
if (!tile.removalPending) {
|
|
111899
112011
|
return;
|
|
111900
112012
|
}
|
|
111901
112013
|
|
|
@@ -113343,7 +113455,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
113343
113455
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
113344
113456
|
|
|
113345
113457
|
/*
|
|
113346
|
-
* Copyright (c) 2010-
|
|
113458
|
+
* Copyright (c) 2010-2022 BSI Business Systems Integration AG.
|
|
113347
113459
|
* All rights reserved. This program and the accompanying materials
|
|
113348
113460
|
* are made available under the terms of the Eclipse Public License v1.0
|
|
113349
113461
|
* which accompanies this distribution, and is available at
|
|
@@ -113508,7 +113620,7 @@ class TileGridLayout extends _index__WEBPACK_IMPORTED_MODULE_0__.LogicalGridLayo
|
|
|
113508
113620
|
|
|
113509
113621
|
_layoutCellBounds(containerSize, containerInsets) {
|
|
113510
113622
|
// Since the tiles are positioned absolutely it is necessary to add the height of the filler to the top insets
|
|
113511
|
-
if (this.widget.virtual) {
|
|
113623
|
+
if (this.widget.virtual && this.widget.$fillBefore) {
|
|
113512
113624
|
containerInsets.top += this.widget.$fillBefore.outerHeight(true);
|
|
113513
113625
|
}
|
|
113514
113626
|
|
|
@@ -114635,7 +114747,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
114635
114747
|
/* harmony export */ });
|
|
114636
114748
|
/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../index */ "./src/index.js");
|
|
114637
114749
|
/*
|
|
114638
|
-
* Copyright (c) 2010-
|
|
114750
|
+
* Copyright (c) 2010-2022 BSI Business Systems Integration AG.
|
|
114639
114751
|
* All rights reserved. This program and the accompanying materials
|
|
114640
114752
|
* are made available under the terms of the Eclipse Public License v1.0
|
|
114641
114753
|
* which accompanies this distribution, and is available at
|
|
@@ -115018,7 +115130,24 @@ class TileAccordion extends _index__WEBPACK_IMPORTED_MODULE_0__.Accordion {
|
|
|
115018
115130
|
|
|
115019
115131
|
_filter() {
|
|
115020
115132
|
this.groups.forEach(group => {
|
|
115021
|
-
group.body.filter();
|
|
115133
|
+
group.body.filter(); // If the layout has not been invalidated as part of the filtering above, it even though must be validated here.
|
|
115134
|
+
// This is because groups above might have fewer visible Tiles now which makes room for this group.
|
|
115135
|
+
// The revalidateLayout() with scrolling=true here ensures TileGrid._renderViewPort() is called to ensure these Tiles become visible as there is space available now.
|
|
115136
|
+
// It is executed as postValidateFunction because the groups above must have completed their layouting so that
|
|
115137
|
+
// TileGrid._renderViewPort() knows that there is more space available now.
|
|
115138
|
+
|
|
115139
|
+
if (group.body.htmlComp && group.body.htmlComp.valid && !group.body._accordionLayoutHandler
|
|
115140
|
+
/* skip if already registered */
|
|
115141
|
+
) {
|
|
115142
|
+
group.body._accordionLayoutHandler = () => {
|
|
115143
|
+
group.body.scrolling = true;
|
|
115144
|
+
group.body.revalidateLayout();
|
|
115145
|
+
group.body.scrolling = false;
|
|
115146
|
+
group.body._accordionLayoutHandler = null;
|
|
115147
|
+
};
|
|
115148
|
+
|
|
115149
|
+
this.session.layoutValidator.schedulePostValidateFunction(group.body._accordionLayoutHandler);
|
|
115150
|
+
}
|
|
115022
115151
|
});
|
|
115023
115152
|
}
|
|
115024
115153
|
/**
|
|
@@ -126123,6 +126252,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
126123
126252
|
/* harmony export */ "$remove": () => (/* binding */ $remove),
|
|
126124
126253
|
/* harmony export */ "randomElement": () => (/* binding */ randomElement),
|
|
126125
126254
|
/* harmony export */ "toMap": () => (/* binding */ toMap),
|
|
126255
|
+
/* harmony export */ "nullIfEmpty": () => (/* binding */ nullIfEmpty),
|
|
126126
126256
|
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
126127
126257
|
/* harmony export */ });
|
|
126128
126258
|
/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../index */ "./src/index.js");
|
|
@@ -126348,6 +126478,12 @@ function containsAll(haystack, needles) {
|
|
|
126348
126478
|
return haystack.indexOf(element) >= 0;
|
|
126349
126479
|
});
|
|
126350
126480
|
}
|
|
126481
|
+
/**
|
|
126482
|
+
* @template T
|
|
126483
|
+
* @param {T[]} arr
|
|
126484
|
+
* @return {T}
|
|
126485
|
+
*/
|
|
126486
|
+
|
|
126351
126487
|
function first(arr) {
|
|
126352
126488
|
if (Array.isArray(arr)) {
|
|
126353
126489
|
return arr[0];
|
|
@@ -126355,6 +126491,12 @@ function first(arr) {
|
|
|
126355
126491
|
|
|
126356
126492
|
return arr;
|
|
126357
126493
|
}
|
|
126494
|
+
/**
|
|
126495
|
+
* @template T
|
|
126496
|
+
* @param {T[]} arr
|
|
126497
|
+
* @return {T}
|
|
126498
|
+
*/
|
|
126499
|
+
|
|
126358
126500
|
function last(arr) {
|
|
126359
126501
|
if (Array.isArray(arr)) {
|
|
126360
126502
|
return arr[arr.length - 1];
|
|
@@ -126427,9 +126569,9 @@ function union(array1, array2) {
|
|
|
126427
126569
|
}
|
|
126428
126570
|
});
|
|
126429
126571
|
return result;
|
|
126430
|
-
}
|
|
126431
|
-
|
|
126572
|
+
}
|
|
126432
126573
|
function equalsIgnoreOrder(arr, arr2) {
|
|
126574
|
+
// noinspection DuplicatedCode
|
|
126433
126575
|
if (arr === arr2) {
|
|
126434
126576
|
return true;
|
|
126435
126577
|
}
|
|
@@ -126447,9 +126589,9 @@ function equalsIgnoreOrder(arr, arr2) {
|
|
|
126447
126589
|
}
|
|
126448
126590
|
|
|
126449
126591
|
return containsAll(arr, arr2);
|
|
126450
|
-
}
|
|
126451
|
-
|
|
126592
|
+
}
|
|
126452
126593
|
function equals(arr, arr2) {
|
|
126594
|
+
// noinspection DuplicatedCode
|
|
126453
126595
|
if (arr === arr2) {
|
|
126454
126596
|
return true;
|
|
126455
126597
|
}
|
|
@@ -126777,6 +126919,17 @@ function toMap(array) {
|
|
|
126777
126919
|
return map;
|
|
126778
126920
|
}, {}));
|
|
126779
126921
|
}
|
|
126922
|
+
/**
|
|
126923
|
+
* If the argument is an empty array, null is returned. Otherwise, the argument is returned unchanged.
|
|
126924
|
+
*
|
|
126925
|
+
* @template T
|
|
126926
|
+
* @param {T[]} array
|
|
126927
|
+
* @return {T[]|null}
|
|
126928
|
+
*/
|
|
126929
|
+
|
|
126930
|
+
function nullIfEmpty(array) {
|
|
126931
|
+
return empty(array) ? null : array;
|
|
126932
|
+
}
|
|
126780
126933
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
|
|
126781
126934
|
$indexOf,
|
|
126782
126935
|
$remove,
|
|
@@ -126815,6 +126968,7 @@ function toMap(array) {
|
|
|
126815
126968
|
max,
|
|
126816
126969
|
min,
|
|
126817
126970
|
move,
|
|
126971
|
+
nullIfEmpty,
|
|
126818
126972
|
pushAll,
|
|
126819
126973
|
pushIfDefined,
|
|
126820
126974
|
pushSet,
|
|
@@ -131161,12 +131315,16 @@ function resolveConstProperty(object, config) {
|
|
|
131161
131315
|
/**
|
|
131162
131316
|
* @param {object} obj
|
|
131163
131317
|
* @returns {Boolean|undefined}
|
|
131164
|
-
* - true if the obj is empty
|
|
131318
|
+
* - true if the obj is empty, null or undefined
|
|
131165
131319
|
* - false if the obj is not empty
|
|
131166
131320
|
* - nothing if the obj is not an object
|
|
131167
131321
|
*/
|
|
131168
131322
|
|
|
131169
131323
|
function isEmpty(obj) {
|
|
131324
|
+
if (isNullOrUndefined(obj)) {
|
|
131325
|
+
return true;
|
|
131326
|
+
}
|
|
131327
|
+
|
|
131170
131328
|
if (!isPlainObject(obj)) {
|
|
131171
131329
|
return;
|
|
131172
131330
|
}
|
|
@@ -134044,7 +134202,9 @@ class Widget {
|
|
|
134044
134202
|
|
|
134045
134203
|
|
|
134046
134204
|
_removeAnimated() {
|
|
134047
|
-
|
|
134205
|
+
let animateRemovalWhileRemovingParent = this._animateRemovalWhileRemovingParent();
|
|
134206
|
+
|
|
134207
|
+
if (this.parent.removing && !animateRemovalWhileRemovingParent || !_index__WEBPACK_IMPORTED_MODULE_0__.Device.get().supportsCssAnimation() || !this.$container || this.$container.isDisplayNone()) {
|
|
134048
134208
|
// Cannot remove animated, remove regularly
|
|
134049
134209
|
this._removeInternal();
|
|
134050
134210
|
|
|
@@ -134066,7 +134226,7 @@ class Widget {
|
|
|
134066
134226
|
throw new Error('Missing animate removal class. Cannot remove animated.');
|
|
134067
134227
|
}
|
|
134068
134228
|
|
|
134069
|
-
if (!this.$container.isVisible() || !this.$container.isEveryParentVisible()) {
|
|
134229
|
+
if (!this.$container.isVisible() || !this.$container.isEveryParentVisible() || !this.$container.isAttached()) {
|
|
134070
134230
|
// If element is not visible, animationEnd would never fire -> remove it immediately
|
|
134071
134231
|
this._removeInternal();
|
|
134072
134232
|
|
|
@@ -134080,7 +134240,14 @@ class Widget {
|
|
|
134080
134240
|
}); // If the parent is being removed while the animation is running, the animationEnd event will never fire
|
|
134081
134241
|
// -> Make sure remove is called nevertheless. Important: remove it before the parent is removed to maintain the regular remove order
|
|
134082
134242
|
|
|
134083
|
-
|
|
134243
|
+
if (!animateRemovalWhileRemovingParent) {
|
|
134244
|
+
this.parent.one('removing', this._parentRemovingWhileAnimatingHandler);
|
|
134245
|
+
}
|
|
134246
|
+
}
|
|
134247
|
+
|
|
134248
|
+
_animateRemovalWhileRemovingParent() {
|
|
134249
|
+
// By default, remove animation is prevented when parent is being removed
|
|
134250
|
+
return false;
|
|
134084
134251
|
}
|
|
134085
134252
|
|
|
134086
134253
|
_onParentRemovingWhileAnimating() {
|