@eclipse-scout/core 22.0.0-beta.5 → 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.
Files changed (101) hide show
  1. package/dist/eclipse-scout-core-c98fb5230e71dcec75ce.min.js +2 -0
  2. package/dist/eclipse-scout-core-c98fb5230e71dcec75ce.min.js.map +1 -0
  3. package/dist/eclipse-scout-core-theme-6b2fef56e9e49231a49c.min.css +1 -0
  4. package/dist/eclipse-scout-core-theme-dark-d2bb274dd42f132bfca0.min.css +1 -0
  5. package/dist/eclipse-scout-core-theme-dark.css +511 -399
  6. package/dist/eclipse-scout-core-theme-dark.css.map +1 -1
  7. package/dist/eclipse-scout-core-theme.css +247 -135
  8. package/dist/eclipse-scout-core-theme.css.map +1 -1
  9. package/dist/eclipse-scout-core.js +865 -646
  10. package/dist/eclipse-scout-core.js.map +1 -1
  11. package/dist/file-list +7 -0
  12. package/dist/locales.json +47126 -0
  13. package/dist/texts.json +1153 -0
  14. package/package.json +2 -2
  15. package/src/App.js +17 -10
  16. package/src/action/Button.less +1 -0
  17. package/src/box/Box.less +2 -2
  18. package/src/breadcrumbbar/BreadcrumbBarLayout.js +2 -2
  19. package/src/calendar/Calendar.js +40 -58
  20. package/src/calendar/Calendar.less +10 -10
  21. package/src/calendar/CalendarLayout.js +3 -1
  22. package/src/datepicker/DatePicker.less +1 -0
  23. package/src/desktop/desktoptab/DesktopTab.less +19 -2
  24. package/src/desktop/desktoptab/DesktopTabArea.less +7 -3
  25. package/src/desktop/desktoptab/DesktopTabAreaLayout.js +1 -1
  26. package/src/desktop/navigation/DesktopNavigation.less +4 -0
  27. package/src/desktop/notification/DesktopNotification.js +11 -4
  28. package/src/desktop/notification/DesktopNotification.less +5 -3
  29. package/src/desktop/outline/Outline.js +0 -30
  30. package/src/desktop/outline/Outline.less +4 -4
  31. package/src/desktop/viewbutton/ViewButton.less +18 -9
  32. package/src/desktop/viewbutton/ViewButtonBox.js +2 -2
  33. package/src/desktop/viewbutton/ViewMenuTab.less +3 -2
  34. package/src/filechooser/FileChooser.less +1 -1
  35. package/src/form/Form.less +1 -0
  36. package/src/form/fields/LookupBox.js +2 -1
  37. package/src/form/fields/breadcrumbbarfield/BreadcrumbBarField.less +14 -0
  38. package/src/form/fields/groupbox/GroupBox.js +13 -9
  39. package/src/form/fields/groupbox/GroupBox.less +4 -1
  40. package/src/form/fields/htmlfield/HtmlField.less +0 -1
  41. package/src/form/fields/listbox/ListBox.js +8 -3
  42. package/src/form/fields/tabbox/TabAreaLayout.js +63 -66
  43. package/src/form/fields/tabbox/TabBox.js +4 -7
  44. package/src/form/fields/tabbox/TabBox.less +2 -1
  45. package/src/form/fields/tabbox/TabBoxHeaderLayout.js +5 -5
  46. package/src/glasspane/GlassPane.js +3 -3
  47. package/src/group/Group.less +1 -1
  48. package/src/index.js +2 -1
  49. package/src/index.less +1 -0
  50. package/src/jquery/jquery-scout.js +5 -4
  51. package/src/login/LoginBox.less +9 -7
  52. package/src/menu/ContextMenuPopup.less +9 -2
  53. package/src/menu/Menu.less +1 -0
  54. package/src/messagebox/MessageBox.less +3 -3
  55. package/src/modeselector/Mode.less +15 -37
  56. package/src/modeselector/ModeSelector.js +1 -1
  57. package/src/modeselector/ModeSelector.less +2 -1
  58. package/src/planner/PlannerHeader.less +2 -1
  59. package/src/popup/Popup.js +24 -8
  60. package/src/popup/PopupLayout.js +2 -8
  61. package/src/scrollbar/Scrollbar.less +8 -1
  62. package/src/scrollbar/scrollbars.js +26 -4
  63. package/src/session/Session.js +4 -1
  64. package/src/style/colors-dark.less +25 -11
  65. package/src/style/colors.less +17 -3
  66. package/src/style/fonts.less +5 -0
  67. package/src/style/mixins.less +21 -14
  68. package/src/style/sizes-dark.less +4 -1
  69. package/src/style/sizes.less +7 -7
  70. package/src/table/Table.js +45 -33
  71. package/src/table/Table.less +49 -16
  72. package/src/table/TableHeader.js +10 -8
  73. package/src/table/TableHeader.less +1 -0
  74. package/src/table/TableHeaderMenu.js +3 -1
  75. package/src/table/TableHeaderMenu.less +7 -2
  76. package/src/table/columns/BooleanColumn.js +2 -2
  77. package/src/table/columns/Column.js +3 -3
  78. package/src/table/columns/ColumnOptimalWidthMeasurer.js +1 -1
  79. package/src/table/editor/CellEditorPopup.js +8 -1
  80. package/src/tagbar/TagBarOverflowPopupLayout.js +1 -1
  81. package/src/tile/TileGrid.js +1 -1
  82. package/src/tile/TileGridLayout.js +2 -2
  83. package/src/tile/accordion/TileAccordion.js +16 -1
  84. package/src/tile/fields/FormFieldTile.less +18 -11
  85. package/src/tile/fields/button/ButtonTile.js +1 -1
  86. package/src/tile/fields/htmlfield/TileHtmlField.js +28 -0
  87. package/src/tooltip/Tooltip.less +7 -5
  88. package/src/tree/CompactTree.less +1 -1
  89. package/src/tree/LazyNodeFilter.js +26 -15
  90. package/src/tree/Tree.js +114 -143
  91. package/src/tree/Tree.less +3 -5
  92. package/src/tree/TreeLayout.js +1 -1
  93. package/src/tree/TreeNode.js +2 -2
  94. package/src/util/Device.js +6 -2
  95. package/src/util/arrays.js +24 -2
  96. package/src/util/dragAndDrop.js +5 -4
  97. package/src/util/events.js +1 -1
  98. package/src/util/objects.js +4 -1
  99. package/src/widget/FilterSupport.js +7 -5
  100. package/src/widget/FilterSupport.less +38 -9
  101. package/src/widget/Widget.js +24 -7
@@ -16,7 +16,7 @@ __webpack_require__.r(__webpack_exports__);
16
16
  /* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! jquery */ "jquery");
17
17
  /* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_1__);
18
18
  /*
19
- * Copyright (c) 2010-2021 BSI Business Systems Integration AG.
19
+ * Copyright (c) 2010-2022 BSI Business Systems Integration AG.
20
20
  * All rights reserved. This program and the accompanying materials
21
21
  * are made available under the terms of the Eclipse Public License v1.0
22
22
  * which accompanies this distribution, and is available at
@@ -241,7 +241,6 @@ class App {
241
241
 
242
242
  _checkBrowserCompatibility(options) {
243
243
  let device = _index__WEBPACK_IMPORTED_MODULE_0__.Device.get();
244
- let app = this;
245
244
  jquery__WEBPACK_IMPORTED_MODULE_1___default().log.isInfoEnabled() && jquery__WEBPACK_IMPORTED_MODULE_1___default().log.info('Detected browser ' + device.browser + ' version ' + device.browserVersion);
246
245
 
247
246
  if (!_index__WEBPACK_IMPORTED_MODULE_0__.scout.nvl(options.checkBrowserCompatibility, true) || device.isSupportedBrowser()) {
@@ -313,7 +312,7 @@ class App {
313
312
 
314
313
  $loadingRoot.oneAnimationEnd(() => $loadingRoot.remove());
315
314
 
316
- if ($loadingRoot.css('opacity') == 1) {
315
+ if ($loadingRoot.css('opacity') === '1') {
317
316
  $loadingRoot.addClass('fadeout and-more');
318
317
  } else {
319
318
  $loadingRoot.addClass('fadeout');
@@ -428,9 +427,8 @@ class App {
428
427
 
429
428
  let desktop = this._createDesktop(session.root);
430
429
 
431
- this.trigger('desktopReady', {
432
- desktop: desktop
433
- });
430
+ this._triggerDesktopReady(desktop);
431
+
434
432
  session.render(() => {
435
433
  session._renderDesktop(); // Ensure layout is valid (explicitly layout immediately and don't wait for setTimeout to run to make layouting invisible to the user)
436
434
 
@@ -438,14 +436,26 @@ class App {
438
436
  session.layoutValidator.validate();
439
437
  session.focusManager.validateFocus();
440
438
  session.ready = true;
441
- this.trigger('sessionReady', {
442
- session: session
443
- });
439
+
440
+ this._triggerSessionReady(session);
441
+
444
442
  jquery__WEBPACK_IMPORTED_MODULE_1___default().log.isInfoEnabled() && jquery__WEBPACK_IMPORTED_MODULE_1___default().log.info('Session initialized. Detected ' + _index__WEBPACK_IMPORTED_MODULE_0__.Device.get());
445
443
  });
446
444
  return jquery__WEBPACK_IMPORTED_MODULE_1___default().resolvedPromise();
447
445
  }
448
446
 
447
+ _triggerDesktopReady(desktop) {
448
+ this.trigger('desktopReady', {
449
+ desktop: desktop
450
+ });
451
+ }
452
+
453
+ _triggerSessionReady(session) {
454
+ this.trigger('sessionReady', {
455
+ session: session
456
+ });
457
+ }
458
+
449
459
  _createSession(options) {
450
460
  return _index__WEBPACK_IMPORTED_MODULE_0__.scout.create('Session', options, {
451
461
  ensureUniqueId: false
@@ -3179,8 +3189,6 @@ __webpack_require__.r(__webpack_exports__);
3179
3189
  /* harmony export */ "default": () => (/* binding */ BreadcrumbBarLayout)
3180
3190
  /* harmony export */ });
3181
3191
  /* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../index */ "./src/index.js");
3182
- 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; }
3183
-
3184
3192
  /*
3185
3193
  * Copyright (c) 2010-2020 BSI Business Systems Integration AG.
3186
3194
  * All rights reserved. This program and the accompanying materials
@@ -3195,40 +3203,6 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
3195
3203
  class BreadcrumbBarLayout extends _index__WEBPACK_IMPORTED_MODULE_0__.AbstractLayout {
3196
3204
  constructor(breadcrumbBar) {
3197
3205
  super();
3198
-
3199
- _defineProperty(this, "_collapse", function ($container, containerSize) {
3200
- let currentIndex = 1;
3201
-
3202
- const visibleBreadcrumbItems = this._visibleBreadcrumbItems();
3203
-
3204
- let prefSize = this._actualPrefSize(visibleBreadcrumbItems, true);
3205
-
3206
- while (prefSize.width > containerSize.width && currentIndex < visibleBreadcrumbItems.length - 1) {
3207
- // remove breadcrumbItems until size fits or only 2 breadcrumbItems are visible
3208
- const crumb = visibleBreadcrumbItems[currentIndex];
3209
- crumb.$container.hide();
3210
- crumb._layHidden = true;
3211
- visibleBreadcrumbItems.splice(currentIndex, 1);
3212
- prefSize = this._actualPrefSize(visibleBreadcrumbItems, true);
3213
- }
3214
- });
3215
-
3216
- _defineProperty(this, "_breadcrumbItemsWidth", function (breadcrumbItems, considerEllipsis) {
3217
- let breadcrumbsWidth = 0;
3218
- breadcrumbItems = breadcrumbItems || this._visibleBreadcrumbItems();
3219
- breadcrumbItems.forEach(breadcrumbItem => {
3220
- if (breadcrumbItem.rendered) {
3221
- breadcrumbsWidth += breadcrumbItem.$container.outerWidth(true);
3222
- }
3223
- }, this);
3224
-
3225
- if (considerEllipsis && this._breadcrumbBar._ellipsisBreadcrumbItem && this._breadcrumbBar._ellipsisBreadcrumbItem.rendered) {
3226
- breadcrumbsWidth += this._breadcrumbBar._ellipsisBreadcrumbItem.$container.outerWidth(true);
3227
- }
3228
-
3229
- return breadcrumbsWidth;
3230
- });
3231
-
3232
3206
  this._breadcrumbBar = breadcrumbBar;
3233
3207
  }
3234
3208
 
@@ -3261,6 +3235,23 @@ class BreadcrumbBarLayout extends _index__WEBPACK_IMPORTED_MODULE_0__.AbstractLa
3261
3235
  this._collapse(breadcrumbItems, containerSize);
3262
3236
  }
3263
3237
 
3238
+ _collapse($container, containerSize) {
3239
+ let currentIndex = 1;
3240
+
3241
+ const visibleBreadcrumbItems = this._visibleBreadcrumbItems();
3242
+
3243
+ let prefSize = this._actualPrefSize(visibleBreadcrumbItems, true);
3244
+
3245
+ while (prefSize.width > containerSize.width && currentIndex < visibleBreadcrumbItems.length - 1) {
3246
+ // remove breadcrumbItems until size fits or only 2 breadcrumbItems are visible
3247
+ const crumb = visibleBreadcrumbItems[currentIndex];
3248
+ crumb.$container.hide();
3249
+ crumb._layHidden = true;
3250
+ visibleBreadcrumbItems.splice(currentIndex, 1);
3251
+ prefSize = this._actualPrefSize(visibleBreadcrumbItems, true);
3252
+ }
3253
+ }
3254
+
3264
3255
  _applyToEllipsis(fun) {
3265
3256
  if (this._breadcrumbBar._ellipsisBreadcrumbItem) {
3266
3257
  fun(this._breadcrumbBar._ellipsisBreadcrumbItem);
@@ -3317,6 +3308,22 @@ class BreadcrumbBarLayout extends _index__WEBPACK_IMPORTED_MODULE_0__.AbstractLa
3317
3308
  */
3318
3309
 
3319
3310
 
3311
+ _breadcrumbItemsWidth(breadcrumbItems, considerEllipsis) {
3312
+ let breadcrumbsWidth = 0;
3313
+ breadcrumbItems = breadcrumbItems || this._visibleBreadcrumbItems();
3314
+ breadcrumbItems.forEach(breadcrumbItem => {
3315
+ if (breadcrumbItem.rendered) {
3316
+ breadcrumbsWidth += breadcrumbItem.$container.outerWidth(true);
3317
+ }
3318
+ }, this);
3319
+
3320
+ if (considerEllipsis && this._breadcrumbBar._ellipsisBreadcrumbItem && this._breadcrumbBar._ellipsisBreadcrumbItem.rendered) {
3321
+ breadcrumbsWidth += this._breadcrumbBar._ellipsisBreadcrumbItem.$container.outerWidth(true);
3322
+ }
3323
+
3324
+ return breadcrumbsWidth;
3325
+ }
3326
+
3320
3327
  }
3321
3328
 
3322
3329
  /***/ }),
@@ -3422,7 +3429,7 @@ __webpack_require__.r(__webpack_exports__);
3422
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; }
3423
3430
 
3424
3431
  /*
3425
- * Copyright (c) 2010-2020 BSI Business Systems Integration AG.
3432
+ * Copyright (c) 2010-2022 BSI Business Systems Integration AG.
3426
3433
  * All rights reserved. This program and the accompanying materials
3427
3434
  * are made available under the terms of the Eclipse Public License v1.0
3428
3435
  * which accompanies this distribution, and is available at
@@ -4205,7 +4212,8 @@ class Calendar extends _index__WEBPACK_IMPORTED_MODULE_0__.Widget {
4205
4212
  this.$topGrid.find('.calendar-day-name').data('new-width', 0);
4206
4213
  this.$grids.find('.calendar-day').data('new-width', 0);
4207
4214
  let newWidthWorkWeek = Math.round(contentW / this.workDayIndices.length);
4208
- jquery__WEBPACK_IMPORTED_MODULE_1___default()('.calendar-day-name:nth-child(-n+6), ' + '.calendar-day:nth-child(-n+6)', this.$topGrid).data('new-width', newWidthWorkWeek);
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);
4209
4217
  jquery__WEBPACK_IMPORTED_MODULE_1___default()('.calendar-day:nth-child(-n+6)', this.$grid).data('new-width', newWidthWorkWeek);
4210
4218
  this.widthPerDivision = newWidthWorkWeek;
4211
4219
  } else if (this._isMonth() || this._isWeek()) {
@@ -4222,23 +4230,33 @@ class Calendar extends _index__WEBPACK_IMPORTED_MODULE_0__.Widget {
4222
4230
  $day = $comp.closest('.calendar-day');
4223
4231
  $comp.toggleClass('compact', $day.data('new-width') < _index__WEBPACK_IMPORTED_MODULE_0__.CalendarComponent.MONTH_COMPACT_THRESHOLD);
4224
4232
  });
4225
- }
4233
+ } // animate old to new sizes
4226
4234
 
4227
- let afterLayoutCallback = this._afterLayout.bind(this); // animate old to new sizes
4228
4235
 
4229
-
4230
- jquery__WEBPACK_IMPORTED_MODULE_1___default()('div', this.$container).each(function () {
4231
- let $e = jquery__WEBPACK_IMPORTED_MODULE_1___default()(this),
4232
- w = $e.data('new-width'),
4233
- 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');
4234
4240
  $e.stop(false, true);
4235
4241
 
4236
4242
  if (w !== undefined && w !== $e.outerWidth()) {
4237
4243
  if (animate) {
4238
- $e.animateAVCSD('width', w, afterLayoutCallback.bind(this, $e, animate));
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);
4239
4256
  } else {
4240
4257
  $e.css('width', w);
4241
- afterLayoutCallback($e, animate);
4258
+
4259
+ this._afterLayout($e, animate);
4242
4260
  }
4243
4261
  }
4244
4262
 
@@ -4253,7 +4271,7 @@ class Calendar extends _index__WEBPACK_IMPORTED_MODULE_0__.Widget {
4253
4271
  $e.addClass('hidden');
4254
4272
  }
4255
4273
 
4256
- afterLayoutCallback($e, animate);
4274
+ this._afterLayout($e, animate);
4257
4275
  });
4258
4276
  } else {
4259
4277
  $e.css('height', h);
@@ -4262,7 +4280,7 @@ class Calendar extends _index__WEBPACK_IMPORTED_MODULE_0__.Widget {
4262
4280
  $e.addClass('hidden');
4263
4281
  }
4264
4282
 
4265
- afterLayoutCallback($e, animate);
4283
+ this._afterLayout($e, animate);
4266
4284
  }
4267
4285
  }
4268
4286
  });
@@ -4302,13 +4320,18 @@ class Calendar extends _index__WEBPACK_IMPORTED_MODULE_0__.Widget {
4302
4320
 
4303
4321
  _updateScrollbars($parent, animate) {
4304
4322
  let $scrollables = jquery__WEBPACK_IMPORTED_MODULE_1___default()('.calendar-scrollable-components', $parent);
4305
- $scrollables.each(function () {
4306
- let $scrollable = jquery__WEBPACK_IMPORTED_MODULE_1___default()(this);
4307
- _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);
4308
4325
  });
4309
4326
  this.updateScrollPosition(animate);
4310
4327
  }
4311
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
+
4312
4335
  _updateTopGrid() {
4313
4336
  jquery__WEBPACK_IMPORTED_MODULE_1___default()('.calendar-component', this.$topGrid).each((index, part) => {
4314
4337
  let component = jquery__WEBPACK_IMPORTED_MODULE_1___default()(part).data('component');
@@ -4487,17 +4510,9 @@ class Calendar extends _index__WEBPACK_IMPORTED_MODULE_0__.Widget {
4487
4510
  }
4488
4511
 
4489
4512
  _remove() {
4490
- let $days = jquery__WEBPACK_IMPORTED_MODULE_1___default()('.calendar-day', this.$grid); // Ensure that scrollbars are unregistered
4513
+ this._uninstallComponentScrollbars(this.$grid);
4491
4514
 
4492
- for (let k = 0; k < $days.length; k++) {
4493
- let $day = $days.eq(k);
4494
- let $scrollableContainer = $day.children('.calendar-scrollable-components');
4495
-
4496
- if ($scrollableContainer.length > 0) {
4497
- _index__WEBPACK_IMPORTED_MODULE_0__.scrollbars.uninstall($scrollableContainer, this.session);
4498
- $scrollableContainer.remove();
4499
- }
4500
- }
4515
+ this._uninstallComponentScrollbars(this.$topGrid);
4501
4516
 
4502
4517
  this.$window.off('mousemove touchmove', this._mouseMoveHandler).off('mouseup touchend touchcancel', this._mouseUpHandler);
4503
4518
  this._moveData = null;
@@ -4632,6 +4647,8 @@ class Calendar extends _index__WEBPACK_IMPORTED_MODULE_0__.Widget {
4632
4647
  if (this._isMonth()) {
4633
4648
  this._uninstallScrollbars();
4634
4649
 
4650
+ this._uninstallComponentScrollbars(this.$topGrid);
4651
+
4635
4652
  this.$grid.removeClass('calendar-scrollable-components');
4636
4653
  } else {
4637
4654
  this.$grid.addClass('calendar-scrollable-components'); // If we're in the non-month views, the time can scroll. Add scrollbars
@@ -4642,16 +4659,21 @@ class Calendar extends _index__WEBPACK_IMPORTED_MODULE_0__.Widget {
4642
4659
  axis: 'y'
4643
4660
  });
4644
4661
 
4645
- let $topDays = jquery__WEBPACK_IMPORTED_MODULE_1___default()('.calendar-scrollable-components', this.$topGrid);
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
+ }
4646
4669
 
4647
- for (k = 0; k < $topDays.length; k++) {
4648
- let $topDay = $topDays.eq(k);
4649
4670
  _index__WEBPACK_IMPORTED_MODULE_0__.scrollbars.install($topDay, {
4650
4671
  parent: this,
4651
4672
  session: this.session,
4652
- axis: 'y'
4673
+ axis: 'y',
4674
+ scrollShadow: 'none'
4653
4675
  });
4654
- }
4676
+ });
4655
4677
  }
4656
4678
  }
4657
4679
 
@@ -5670,6 +5692,7 @@ class CalendarLayout extends _index__WEBPACK_IMPORTED_MODULE_0__.AbstractLayout
5670
5692
  this.calendar = calendar;
5671
5693
  this.stacked = false;
5672
5694
  this.compacted = false;
5695
+ this.compactWidth = 550;
5673
5696
  }
5674
5697
 
5675
5698
  layout($container) {
@@ -5687,7 +5710,8 @@ class CalendarLayout extends _index__WEBPACK_IMPORTED_MODULE_0__.AbstractLayout
5687
5710
  this.stack();
5688
5711
  }
5689
5712
 
5690
- 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
5691
5715
  this.compact();
5692
5716
  }
5693
5717
 
@@ -14369,18 +14393,19 @@ class DesktopNotification extends _index__WEBPACK_IMPORTED_MODULE_0__.Notificati
14369
14393
  }
14370
14394
 
14371
14395
  if (this.nativeNotificationVisibility === DesktopNotification.NativeNotificationVisibility.NONE) {
14396
+ this._hideLaterIfNativeOnly();
14397
+
14372
14398
  return;
14373
14399
  }
14374
14400
 
14375
14401
  if (this.nativeNotificationVisibility === DesktopNotification.NativeNotificationVisibility.BACKGROUND && !this._isDocumentHidden()) {
14402
+ this._hideLaterIfNativeOnly();
14403
+
14376
14404
  return;
14377
14405
  }
14378
14406
 
14379
14407
  if (window.Notification && Notification.permission === 'denied') {
14380
- if (this.nativeOnly) {
14381
- // If native notifications are not allowed, there is no need to keep the (invisible) desktop notification open
14382
- this.hide();
14383
- }
14408
+ this._hideLaterIfNativeOnly();
14384
14409
 
14385
14410
  return;
14386
14411
  }
@@ -14392,6 +14417,15 @@ class DesktopNotification extends _index__WEBPACK_IMPORTED_MODULE_0__.Notificati
14392
14417
  Notification.requestPermission(this._showNativeNotification.bind(this));
14393
14418
  }
14394
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
+ }
14395
14429
  /**
14396
14430
  * Checks if browser supports the promise-based version of the method requestPermission. Safari only supports the older callback version.
14397
14431
  */
@@ -15910,10 +15944,6 @@ class Outline extends _index__WEBPACK_IMPORTED_MODULE_0__.Tree {
15910
15944
  $elements.push(desktop.navigation.$body);
15911
15945
  }
15912
15946
 
15913
- if (desktop.bench && element instanceof _index__WEBPACK_IMPORTED_MODULE_0__.Form && element.displayHint === _index__WEBPACK_IMPORTED_MODULE_0__.Form.DisplayHint.VIEW) {
15914
- _index__WEBPACK_IMPORTED_MODULE_0__.arrays.pushAll($elements, this._getBenchGlassPaneTargetsForView(element));
15915
- }
15916
-
15917
15947
  if (desktop.bench && desktop.bench.outlineContent) {
15918
15948
  _index__WEBPACK_IMPORTED_MODULE_0__.arrays.pushAll($elements, desktop.bench.outlineContent.glassPaneTargets(element));
15919
15949
  }
@@ -15921,33 +15951,6 @@ class Outline extends _index__WEBPACK_IMPORTED_MODULE_0__.Tree {
15921
15951
  return $elements;
15922
15952
  }
15923
15953
 
15924
- _getBenchGlassPaneTargetsForView(view) {
15925
- let $glassPanes = [];
15926
- $glassPanes = $glassPanes.concat(this._getTabGlassPaneTargetsForView(view, this.session.desktop.header));
15927
- this.session.desktop.bench.visibleTabBoxes().forEach(function (tabBox) {
15928
- if (tabBox.hasView(view)) {
15929
- _index__WEBPACK_IMPORTED_MODULE_0__.arrays.pushAll($glassPanes, this._getTabGlassPaneTargetsForView(view, tabBox));
15930
- } else if (tabBox.$container) {
15931
- $glassPanes.push(tabBox.$container);
15932
- }
15933
- }, this);
15934
- return $glassPanes;
15935
- }
15936
-
15937
- _getTabGlassPaneTargetsForView(view, tabBox) {
15938
- let $glassPanes = [];
15939
- tabBox.tabArea.tabs.forEach(tab => {
15940
- if (tab.view !== view && tab.view.displayParent === this) {
15941
- $glassPanes.push(tab.$container); // Workaround for javascript not being able to prevent hover event propagation:
15942
- // In case of tabs, the hover selector is defined on the element that is the direct parent
15943
- // of the glass pane. Under these circumstances, the hover style isn't be prevented by the glass pane.
15944
-
15945
- tab.$container.addClass('glasspane-parent');
15946
- }
15947
- });
15948
- return $glassPanes;
15949
- }
15950
-
15951
15954
  _onGlassPaneMouseDown(glassPaneOwner, $glassPane) {
15952
15955
  let desktop = this.session.desktop;
15953
15956
 
@@ -19735,7 +19738,7 @@ __webpack_require__.r(__webpack_exports__);
19735
19738
  /* harmony export */ });
19736
19739
  /* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../index */ "./src/index.js");
19737
19740
  /*
19738
- * Copyright (c) 2014-2018 BSI Business Systems Integration AG.
19741
+ * Copyright (c) 2010-2022 BSI Business Systems Integration AG.
19739
19742
  * All rights reserved. This program and the accompanying materials
19740
19743
  * are made available under the terms of the Eclipse Public License v1.0
19741
19744
  * which accompanies this distribution, and is available at
@@ -28911,7 +28914,7 @@ __webpack_require__.r(__webpack_exports__);
28911
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; }
28912
28915
 
28913
28916
  /*
28914
- * Copyright (c) 2014-2017 BSI Business Systems Integration AG.
28917
+ * Copyright (c) 2010-2022 BSI Business Systems Integration AG.
28915
28918
  * All rights reserved. This program and the accompanying materials
28916
28919
  * are made available under the terms of the Eclipse Public License v1.0
28917
28920
  * which accompanies this distribution, and is available at
@@ -28929,6 +28932,7 @@ class LookupBox extends _index__WEBPACK_IMPORTED_MODULE_0__.ValueField {
28929
28932
  this.gridDataHints.weightY = 1.0;
28930
28933
  this.gridDataHints.h = 2;
28931
28934
  this.value = [];
28935
+ this.clearable = _index__WEBPACK_IMPORTED_MODULE_0__.ValueField.Clearable.NEVER;
28932
28936
  this.lookupCall = null;
28933
28937
  this._pendingLookup = null;
28934
28938
  this._currentLookupCall = null;
@@ -36428,13 +36432,13 @@ class GroupBox extends _index__WEBPACK_IMPORTED_MODULE_0__.CompositeField {
36428
36432
  render: () => true,
36429
36433
  offset: 0,
36430
36434
  hAlign: _index__WEBPACK_IMPORTED_MODULE_0__.HAlign.RIGHT,
36431
- $drawingArea: function ($drawingArea, event) {
36432
- if (this.labelVisible) {
36435
+ $drawingArea: ($drawingArea, event) => {
36436
+ if (this.$header && this.$header.isVisible()) {
36433
36437
  return this.$header;
36434
36438
  }
36435
36439
 
36436
36440
  return this.$body;
36437
- }.bind(this)
36441
+ }
36438
36442
  };
36439
36443
  keyStrokes.forEach(keyStroke => {
36440
36444
  keyStroke.actionKeyStroke.renderingHints = jquery__WEBPACK_IMPORTED_MODULE_1___default().extend({}, keyStroke.actionKeyStroke.renderingHints, groupBoxRenderingHints);
@@ -36651,13 +36655,11 @@ class GroupBox extends _index__WEBPACK_IMPORTED_MODULE_0__.CompositeField {
36651
36655
  this.$container.toggleClass('has-scroll-shadow-bottom', hasScrollShadowBottom);
36652
36656
 
36653
36657
  if ((headerVisible || hasMenubarTop) && oldHasScrollShadowTop !== hasScrollShadowTop || hasMenubarBottom && oldHasScrollShadowBottom !== hasScrollShadowBottom) {
36654
- this.invalidateLayout();
36658
+ this.invalidateLayoutTree(false);
36655
36659
  } // Enlarge header line if there is a shadow, but don't do it if there is a menubar on top
36656
36660
 
36657
36661
 
36658
- _index__WEBPACK_IMPORTED_MODULE_0__.fields.adjustStatusPositionForScrollShadow(this, () => hasScrollShadowTop && headerVisible && !hasMenubarTop); // Prevent flickering of status icon
36659
-
36660
- this.validateLayout();
36662
+ _index__WEBPACK_IMPORTED_MODULE_0__.fields.adjustStatusPositionForScrollShadow(this, () => hasScrollShadowTop && headerVisible && !hasMenubarTop);
36661
36663
  }
36662
36664
 
36663
36665
  setMainBox(mainBox) {
@@ -37099,10 +37101,18 @@ class GroupBox extends _index__WEBPACK_IMPORTED_MODULE_0__.CompositeField {
37099
37101
  }
37100
37102
 
37101
37103
  _onControlClick(event) {
37102
- if (this.expandable) {
37103
- this.setExpanded(!this.expanded);
37104
+ if (!this.expandable) {
37105
+ return;
37104
37106
  }
37105
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;
37113
+ }
37114
+
37115
+ this.setExpanded(!this.expanded);
37106
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)
37107
37117
  }
37108
37118
 
@@ -38527,7 +38537,7 @@ __webpack_require__.r(__webpack_exports__);
38527
38537
  /* harmony export */ });
38528
38538
  /* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../index */ "./src/index.js");
38529
38539
  /*
38530
- * Copyright (c) 2014-2017 BSI Business Systems Integration AG.
38540
+ * Copyright (c) 2010-2022 BSI Business Systems Integration AG.
38531
38541
  * All rights reserved. This program and the accompanying materials
38532
38542
  * are made available under the terms of the Eclipse Public License v1.0
38533
38543
  * which accompanies this distribution, and is available at
@@ -38542,7 +38552,6 @@ class ListBox extends _index__WEBPACK_IMPORTED_MODULE_0__.LookupBox {
38542
38552
  super();
38543
38553
  this.table = null;
38544
38554
  this.lookupStatus = null;
38545
- this.clearable = _index__WEBPACK_IMPORTED_MODULE_0__.ValueField.Clearable.NEVER;
38546
38555
 
38547
38556
  this._addWidgetProperties(['table', 'filterBox']);
38548
38557
  }
@@ -38557,6 +38566,13 @@ class ListBox extends _index__WEBPACK_IMPORTED_MODULE_0__.LookupBox {
38557
38566
  _initStructure(value) {
38558
38567
  if (!this.table) {
38559
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
38560
38576
  }
38561
38577
  }
38562
38578
 
@@ -48249,7 +48265,7 @@ __webpack_require__.r(__webpack_exports__);
48249
48265
  /* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! jquery */ "jquery");
48250
48266
  /* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_1__);
48251
48267
  /*
48252
- * Copyright (c) 2014-2018 BSI Business Systems Integration AG.
48268
+ * Copyright (c) 2010-2022 BSI Business Systems Integration AG.
48253
48269
  * All rights reserved. This program and the accompanying materials
48254
48270
  * are made available under the terms of the Eclipse Public License v1.0
48255
48271
  * which accompanies this distribution, and is available at
@@ -48277,30 +48293,37 @@ class TabAreaLayout extends _index__WEBPACK_IMPORTED_MODULE_0__.AbstractLayout {
48277
48293
  }
48278
48294
 
48279
48295
  layout($container) {
48280
- let ellipsis = this.tabArea.ellipsis,
48281
- htmlContainer = _index__WEBPACK_IMPORTED_MODULE_0__.HtmlComponent.get($container),
48296
+ let htmlContainer = _index__WEBPACK_IMPORTED_MODULE_0__.HtmlComponent.get($container),
48282
48297
  containerSize = htmlContainer.availableSize().subtract(htmlContainer.insets()); // compute visible and overflown tabs
48283
48298
 
48284
48299
  this.preferredLayoutSize($container, {
48285
48300
  widthHint: containerSize.width
48286
48301
  });
48287
48302
 
48288
- if (this.overflowTabs.length > 0) {
48289
- ellipsis.setHidden(false);
48290
- }
48303
+ this._layoutSelectionMarker();
48304
+ }
48291
48305
 
48292
- this.visibleTabs.forEach(tabItem => {
48293
- tabItem.setOverflown(false);
48294
- });
48295
- this.overflowTabs.forEach(tabItem => {
48296
- tabItem.setOverflown(true);
48297
- });
48306
+ _layoutSelectionMarker() {
48307
+ let $selectionMarker = this.tabArea.$selectionMarker,
48308
+ selectedTab = this.tabArea.selectedTab,
48309
+ selectedItemBounds;
48298
48310
 
48299
- if (this.overflowTabs.length === 0) {
48300
- ellipsis.setHidden(true);
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);
48301
48318
  }
48319
+ }
48302
48320
 
48321
+ _updateEllipsis() {
48322
+ let ellipsis = this.tabArea.ellipsis;
48323
+ ellipsis.setHidden(this.overflowTabs.length < 1);
48303
48324
  ellipsis.setText(this.overflowTabs.length + '');
48325
+ this.visibleTabs.forEach(tabItem => tabItem.setOverflown(false));
48326
+ this.overflowTabs.forEach(tabItem => tabItem.setOverflown(true));
48304
48327
  ellipsis.setChildActions(this.overflowTabs.map(tab => {
48305
48328
  let menu = _index__WEBPACK_IMPORTED_MODULE_0__.scout.create('Menu', {
48306
48329
  parent: ellipsis,
@@ -48317,38 +48340,21 @@ class TabAreaLayout extends _index__WEBPACK_IMPORTED_MODULE_0__.AbstractLayout {
48317
48340
  });
48318
48341
  return menu;
48319
48342
  }, this));
48320
-
48321
- this._layoutSelectionMarker();
48322
- }
48323
-
48324
- _layoutSelectionMarker() {
48325
- let $selectionMarker = this.tabArea.$selectionMarker,
48326
- selectedTab = this.tabArea.selectedTab,
48327
- selectedItemBounds;
48328
-
48329
- if (selectedTab) {
48330
- $selectionMarker.setVisible(true);
48331
- selectedItemBounds = _index__WEBPACK_IMPORTED_MODULE_0__.graphics.bounds(selectedTab.$container);
48332
- $selectionMarker.cssLeft(selectedItemBounds.x);
48333
- $selectionMarker.cssWidth(selectedItemBounds.width);
48334
- } else {
48335
- $selectionMarker.setVisible(false);
48336
- }
48337
48343
  }
48338
48344
 
48339
48345
  preferredLayoutSize($container, options) {
48340
48346
  let htmlComp = _index__WEBPACK_IMPORTED_MODULE_0__.HtmlComponent.get($container),
48341
48347
  prefSize = new _index__WEBPACK_IMPORTED_MODULE_0__.Dimension(0, 0),
48342
- prefWidth = Number.MAX_VALUE,
48343
- visibleTabItems = this.tabArea.visibleTabs(),
48344
- overflowableIndexes = visibleTabItems.map((tabItem, index) => {
48348
+ prefWidth = Number.MAX_VALUE;
48349
+ this.visibleTabs = this.tabArea.visibleTabs();
48350
+ let overflowableIndexes = this.visibleTabs.map((tabItem, index) => {
48345
48351
  if (tabItem.selected) {
48346
48352
  return -1;
48347
48353
  }
48348
48354
 
48349
48355
  return index;
48350
48356
  }).filter(index => index >= 0);
48351
- this.overflowTabs = []; // consider avoid falsy 0 in tabboxes a 0 withHint will be used to calculate the minimum width
48357
+ this.overflowTabs = []; // consider avoid falsy 0 in tab-boxes a 0 withHint will be used to calculate the minimum width
48352
48358
 
48353
48359
  if (options.widthHint === 0 || options.widthHint) {
48354
48360
  prefWidth = options.widthHint - htmlComp.insets().horizontal();
@@ -48356,26 +48362,28 @@ class TabAreaLayout extends _index__WEBPACK_IMPORTED_MODULE_0__.AbstractLayout {
48356
48362
 
48357
48363
 
48358
48364
  if (prefWidth <= 0) {
48359
- return this._minSize(visibleTabItems).add(htmlComp.insets());
48365
+ return this._minSize(this.visibleTabs).add(htmlComp.insets());
48360
48366
  }
48361
48367
 
48362
- let overflowIndex = -1;
48368
+ this._setFirstLastMarker(this.visibleTabs);
48363
48369
 
48364
- this._setFirstLastMarker(visibleTabItems);
48370
+ this._updateEllipsis();
48365
48371
 
48366
- prefSize = this._prefSize(visibleTabItems);
48372
+ prefSize = this._prefSize(this.visibleTabs);
48367
48373
 
48368
48374
  while (prefSize.width > prefWidth && overflowableIndexes.length > 0) {
48369
- overflowIndex = overflowableIndexes.splice(-1)[0];
48370
- this.overflowTabs.splice(0, 0, visibleTabItems[overflowIndex]);
48371
- visibleTabItems.splice(overflowIndex, 1);
48375
+ let overflowIndex = overflowableIndexes.splice(-1)[0];
48376
+ this.overflowTabs.splice(0, 0, this.visibleTabs[overflowIndex]);
48377
+ this.visibleTabs.splice(overflowIndex, 1);
48372
48378
 
48373
- this._setFirstLastMarker(visibleTabItems);
48379
+ this._setFirstLastMarker(this.visibleTabs);
48374
48380
 
48375
- prefSize = this._prefSize(visibleTabItems);
48376
- }
48381
+ this._updateEllipsis(); // update ellipsis here already so that the prefSize on the next line is correct
48382
+
48383
+
48384
+ prefSize = this._prefSize(this.visibleTabs);
48385
+ } // Use the total available space if spreading tabs evenly.
48377
48386
 
48378
- this.visibleTabs = visibleTabItems; // Use the total available space if spreading tabs evenly.
48379
48387
 
48380
48388
  if (this.tabArea.displayStyle === _index__WEBPACK_IMPORTED_MODULE_0__.TabArea.DisplayStyle.SPREAD_EVEN) {
48381
48389
  return _index__WEBPACK_IMPORTED_MODULE_0__.graphics.prefSize($container, options);
@@ -48385,8 +48393,7 @@ class TabAreaLayout extends _index__WEBPACK_IMPORTED_MODULE_0__.AbstractLayout {
48385
48393
  }
48386
48394
 
48387
48395
  _minSize(tabItems) {
48388
- let visibleTabItems = [],
48389
- prefSize;
48396
+ let visibleTabItems = [];
48390
48397
  this.overflowTabs = tabItems.filter(tabItem => {
48391
48398
  if (tabItem.selected) {
48392
48399
  visibleTabItems.push(tabItem);
@@ -48399,21 +48406,20 @@ class TabAreaLayout extends _index__WEBPACK_IMPORTED_MODULE_0__.AbstractLayout {
48399
48406
 
48400
48407
  this._setFirstLastMarker(visibleTabItems);
48401
48408
 
48402
- prefSize = this._prefSize(visibleTabItems);
48403
- return prefSize;
48409
+ return this._prefSize(visibleTabItems);
48404
48410
  }
48405
48411
 
48406
48412
  _prefSize(tabItems, considerEllipsis) {
48407
- let prefSize = tabItems.map(tabItem => this._tabItemSize(tabItem.htmlComp)).reduce((prefSize, itemSize) => {
48413
+ let prefSize = tabItems.map(tabItem => this._tabItemSize(tabItem)).reduce((prefSize, itemSize) => {
48408
48414
  prefSize.height = Math.max(prefSize.height, itemSize.height);
48409
48415
  prefSize.width += itemSize.width;
48410
48416
  return prefSize;
48411
- }, new _index__WEBPACK_IMPORTED_MODULE_0__.Dimension(0, 0)),
48412
- ellipsisSize = new _index__WEBPACK_IMPORTED_MODULE_0__.Dimension(0, 0);
48417
+ }, new _index__WEBPACK_IMPORTED_MODULE_0__.Dimension(0, 0));
48413
48418
  considerEllipsis = _index__WEBPACK_IMPORTED_MODULE_0__.scout.nvl(considerEllipsis, this.overflowTabs.length > 0);
48414
48419
 
48415
48420
  if (considerEllipsis) {
48416
- ellipsisSize = this._tabItemSize(this.tabArea.ellipsis.htmlComp);
48421
+ let ellipsisSize = this._tabItemSize(this.tabArea.ellipsis);
48422
+
48417
48423
  prefSize.height = Math.max(prefSize.height, ellipsisSize.height);
48418
48424
  prefSize.width += ellipsisSize.width;
48419
48425
  }
@@ -48440,8 +48446,9 @@ class TabAreaLayout extends _index__WEBPACK_IMPORTED_MODULE_0__.AbstractLayout {
48440
48446
  }
48441
48447
  }
48442
48448
 
48443
- _tabItemSize(htmlComp) {
48444
- let prefSize,
48449
+ _tabItemSize(item) {
48450
+ let htmlComp = item.htmlComp,
48451
+ prefSize,
48445
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.
48446
48453
 
48447
48454
  if (this.tabArea.displayStyle === _index__WEBPACK_IMPORTED_MODULE_0__.TabArea.DisplayStyle.SPREAD_EVEN) {
@@ -48453,6 +48460,27 @@ class TabAreaLayout extends _index__WEBPACK_IMPORTED_MODULE_0__.AbstractLayout {
48453
48460
  prefSize = htmlComp.prefSize({
48454
48461
  exact: true
48455
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
+
48456
48484
  htmlComp.$comp.attrOrRemove('class', classList);
48457
48485
 
48458
48486
  if (this.tabArea.displayStyle === _index__WEBPACK_IMPORTED_MODULE_0__.TabArea.DisplayStyle.SPREAD_EVEN) {
@@ -48600,7 +48628,6 @@ class TabBox extends _index__WEBPACK_IMPORTED_MODULE_0__.CompositeField {
48600
48628
  this._addPreserveOnPropertyChangeProperties(['selectedTab']);
48601
48629
 
48602
48630
  this._tabBoxHeaderPropertyChangeHander = this._onTabBoxHeaderPropertyChange.bind(this);
48603
- this._selectedTabScrollTopChangeHandler = this._updateScrollShadow.bind(this);
48604
48631
  }
48605
48632
  /**
48606
48633
  * @override FormField.js
@@ -48754,17 +48781,19 @@ class TabBox extends _index__WEBPACK_IMPORTED_MODULE_0__.CompositeField {
48754
48781
  _renderSelectedTab() {
48755
48782
  if (this.selectedTab) {
48756
48783
  this.selectedTab.render(this._$tabContent);
48757
- this.selectedTab.on('propertyChange:scrollTop', this._selectedTabScrollTopChangeHandler);
48784
+ this.selectedTab.get$Scrollable().data('scroll-shadow-customizer', this._updateScrollShadow.bind(this));
48758
48785
  }
48759
48786
 
48760
48787
  if (this.rendered) {
48788
+ this._updateScrollShadow();
48789
+
48761
48790
  _index__WEBPACK_IMPORTED_MODULE_0__.HtmlComponent.get(this._$tabContent).invalidateLayoutTree();
48762
48791
  }
48763
48792
  }
48764
48793
 
48765
48794
  _removeSelectedTab() {
48766
48795
  if (this.selectedTab) {
48767
- this.selectedTab.off('propertyChange:scrollTop', this._selectedTabScrollTopChangeHandler);
48796
+ this.selectedTab.get$Scrollable().removeData('scroll-shadow-customizer');
48768
48797
  this.selectedTab.remove();
48769
48798
  }
48770
48799
  }
@@ -48779,13 +48808,11 @@ class TabBox extends _index__WEBPACK_IMPORTED_MODULE_0__.CompositeField {
48779
48808
  this.$container.toggleClass('has-scroll-shadow-top', hasScrollShadowTop);
48780
48809
 
48781
48810
  if (oldHasScrollShadowTop !== hasScrollShadowTop) {
48782
- this.invalidateLayout();
48811
+ this.invalidateLayoutTree(false);
48783
48812
  } // Enlarge header line if there is a shadow, but only if there is a header (controlled by labelVisible)
48784
48813
 
48785
48814
 
48786
- _index__WEBPACK_IMPORTED_MODULE_0__.fields.adjustStatusPositionForScrollShadow(this, () => hasScrollShadowTop && this.labelVisible); // Prevent flickering of status icon
48787
-
48788
- this.validateLayout();
48815
+ _index__WEBPACK_IMPORTED_MODULE_0__.fields.adjustStatusPositionForScrollShadow(this, () => hasScrollShadowTop && this.labelVisible);
48789
48816
  }
48790
48817
 
48791
48818
  setTabAreaStyle(tabAreaStyle) {
@@ -49071,7 +49098,7 @@ __webpack_require__.r(__webpack_exports__);
49071
49098
  /* harmony export */ });
49072
49099
  /* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../index */ "./src/index.js");
49073
49100
  /*
49074
- * Copyright (c) 2014-2017 BSI Business Systems Integration AG.
49101
+ * Copyright (c) 2010-2022 BSI Business Systems Integration AG.
49075
49102
  * All rights reserved. This program and the accompanying materials
49076
49103
  * are made available under the terms of the Eclipse Public License v1.0
49077
49104
  * which accompanies this distribution, and is available at
@@ -49106,21 +49133,20 @@ class TabBoxHeaderLayout extends _index__WEBPACK_IMPORTED_MODULE_0__.AbstractLay
49106
49133
  }
49107
49134
 
49108
49135
  layout($container) {
49109
- //
49110
49136
  let htmlContainer = _index__WEBPACK_IMPORTED_MODULE_0__.HtmlComponent.get($container),
49111
49137
  tabArea = this.tabBoxHeader.tabArea,
49112
49138
  tabAreaMargins = tabArea.htmlComp.margins(),
49113
49139
  tabAreaPrefSize,
49114
49140
  menuBar = this.tabBoxHeader.menuBar,
49115
49141
  menuBarMargins = menuBar.htmlComp.margins(),
49116
- menuBarMinumumSize,
49142
+ menuBarMinimumSize,
49117
49143
  $status = this.tabBoxHeader.tabBox.$status,
49118
49144
  statusSizeLarge = new _index__WEBPACK_IMPORTED_MODULE_0__.Dimension(),
49119
49145
  insets = htmlContainer.insets(),
49120
49146
  containerSize = htmlContainer.availableSize({
49121
49147
  exact: true
49122
49148
  }).subtract(htmlContainer.insets());
49123
- menuBarMinumumSize = menuBar.htmlComp.prefSize({
49149
+ menuBarMinimumSize = menuBar.htmlComp.prefSize({
49124
49150
  widthHint: 0
49125
49151
  });
49126
49152
 
@@ -49130,7 +49156,7 @@ class TabBoxHeaderLayout extends _index__WEBPACK_IMPORTED_MODULE_0__.AbstractLay
49130
49156
  }
49131
49157
 
49132
49158
  tabAreaPrefSize = tabArea.htmlComp.prefSize({
49133
- widthHint: containerSize.width - menuBarMinumumSize.width - menuBarMargins.horizontal() - statusSizeLarge.width,
49159
+ widthHint: containerSize.width - menuBarMinimumSize.width - menuBarMargins.horizontal() - statusSizeLarge.width,
49134
49160
  exact: false
49135
49161
  }); // layout tabArea
49136
49162
 
@@ -52394,7 +52420,7 @@ __webpack_require__.r(__webpack_exports__);
52394
52420
  /* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! jquery */ "jquery");
52395
52421
  /* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_1__);
52396
52422
  /*
52397
- * Copyright (c) 2010-2021 BSI Business Systems Integration AG.
52423
+ * Copyright (c) 2010-2022 BSI Business Systems Integration AG.
52398
52424
  * All rights reserved. This program and the accompanying materials
52399
52425
  * are made available under the terms of the Eclipse Public License v1.0
52400
52426
  * which accompanies this distribution, and is available at
@@ -52415,7 +52441,7 @@ class GlassPane extends _index__WEBPACK_IMPORTED_MODULE_0__.Widget {
52415
52441
  this.$parent.addClass('glasspane-parent');
52416
52442
  let cssPosition = this.$parent.css('position');
52417
52443
 
52418
- if (!_index__WEBPACK_IMPORTED_MODULE_0__.scout.isOneOf(cssPosition, 'relative', 'absolute')) {
52444
+ if (cssPosition === 'static') {
52419
52445
  this.$parent.css('position', 'relative');
52420
52446
  } // Register 'glassPaneTarget' in focus manager.
52421
52447
 
@@ -54663,93 +54689,94 @@ __webpack_require__.r(__webpack_exports__);
54663
54689
  /* harmony export */ "FormFieldTileAdapter": () => (/* reexport safe */ _tile_fields_FormFieldTileAdapter__WEBPACK_IMPORTED_MODULE_594__["default"]),
54664
54690
  /* harmony export */ "ButtonTile": () => (/* reexport safe */ _tile_fields_button_ButtonTile__WEBPACK_IMPORTED_MODULE_595__["default"]),
54665
54691
  /* harmony export */ "TileButton": () => (/* reexport safe */ _tile_fields_button_TileButton__WEBPACK_IMPORTED_MODULE_596__["default"]),
54666
- /* harmony export */ "TileTableField": () => (/* reexport safe */ _tile_fields_tablefield_TileTableField__WEBPACK_IMPORTED_MODULE_597__["default"]),
54667
- /* harmony export */ "SimpleTab": () => (/* reexport safe */ _tabbox_SimpleTab__WEBPACK_IMPORTED_MODULE_598__["default"]),
54668
- /* harmony export */ "SimpleTabArea": () => (/* reexport safe */ _tabbox_SimpleTabArea__WEBPACK_IMPORTED_MODULE_599__["default"]),
54669
- /* harmony export */ "SimpleTabAreaLayout": () => (/* reexport safe */ _tabbox_SimpleTabAreaLayout__WEBPACK_IMPORTED_MODULE_600__["default"]),
54670
- /* harmony export */ "Desktop": () => (/* reexport safe */ _desktop_Desktop__WEBPACK_IMPORTED_MODULE_601__["default"]),
54671
- /* harmony export */ "DesktopAdapter": () => (/* reexport safe */ _desktop_DesktopAdapter__WEBPACK_IMPORTED_MODULE_602__["default"]),
54672
- /* harmony export */ "DesktopLogo": () => (/* reexport safe */ _desktop_DesktopLogo__WEBPACK_IMPORTED_MODULE_603__["default"]),
54673
- /* harmony export */ "DesktopLayout": () => (/* reexport safe */ _desktop_DesktopLayout__WEBPACK_IMPORTED_MODULE_604__["default"]),
54674
- /* harmony export */ "DesktopTab": () => (/* reexport safe */ _desktop_desktoptab_DesktopTab__WEBPACK_IMPORTED_MODULE_605__["default"]),
54675
- /* harmony export */ "DesktopTabArea": () => (/* reexport safe */ _desktop_desktoptab_DesktopTabArea__WEBPACK_IMPORTED_MODULE_606__["default"]),
54676
- /* harmony export */ "DesktopTabAreaLayout": () => (/* reexport safe */ _desktop_desktoptab_DesktopTabAreaLayout__WEBPACK_IMPORTED_MODULE_607__["default"]),
54677
- /* harmony export */ "DesktopTabBoxController": () => (/* reexport safe */ _desktop_DesktopTabBoxController__WEBPACK_IMPORTED_MODULE_608__["default"]),
54678
- /* harmony export */ "DesktopTabSelectKeyStroke": () => (/* reexport safe */ _desktop_bench_DesktopTabSelectKeyStroke__WEBPACK_IMPORTED_MODULE_609__["default"]),
54679
- /* harmony export */ "DisableBrowserF5ReloadKeyStroke": () => (/* reexport safe */ _desktop_DisableBrowserF5ReloadKeyStroke__WEBPACK_IMPORTED_MODULE_610__["default"]),
54680
- /* harmony export */ "PopupWindow": () => (/* reexport safe */ _desktop_PopupWindow__WEBPACK_IMPORTED_MODULE_611__["default"]),
54681
- /* harmony export */ "OpenUriHandler": () => (/* reexport safe */ _desktop_OpenUriHandler__WEBPACK_IMPORTED_MODULE_612__["default"]),
54682
- /* harmony export */ "DesktopBench": () => (/* reexport safe */ _desktop_bench_DesktopBench__WEBPACK_IMPORTED_MODULE_613__["default"]),
54683
- /* harmony export */ "BenchColumn": () => (/* reexport safe */ _desktop_bench_BenchColumn__WEBPACK_IMPORTED_MODULE_614__["default"]),
54684
- /* harmony export */ "BenchRowLayoutData": () => (/* reexport safe */ _desktop_bench_layout_BenchRowLayoutData__WEBPACK_IMPORTED_MODULE_615__["default"]),
54685
- /* harmony export */ "BenchColumnLayoutData": () => (/* reexport safe */ _desktop_bench_layout_BenchColumnLayoutData__WEBPACK_IMPORTED_MODULE_616__["default"]),
54686
- /* harmony export */ "DisableBrowserTabSwitchingKeyStroke": () => (/* reexport safe */ _desktop_desktoptab_DisableBrowserTabSwitchingKeyStroke__WEBPACK_IMPORTED_MODULE_617__["default"]),
54687
- /* harmony export */ "DesktopHeader": () => (/* reexport safe */ _desktop_header_DesktopHeader__WEBPACK_IMPORTED_MODULE_618__["default"]),
54688
- /* harmony export */ "HeaderTabBoxController": () => (/* reexport safe */ _desktop_header_HeaderTabBoxController__WEBPACK_IMPORTED_MODULE_619__["default"]),
54689
- /* harmony export */ "DesktopHeaderLayout": () => (/* reexport safe */ _desktop_header_DesktopHeaderLayout__WEBPACK_IMPORTED_MODULE_620__["default"]),
54690
- /* harmony export */ "DesktopNavigation": () => (/* reexport safe */ _desktop_navigation_DesktopNavigation__WEBPACK_IMPORTED_MODULE_621__["default"]),
54691
- /* harmony export */ "DesktopNavigationHandle": () => (/* reexport safe */ _desktop_navigation_DesktopNavigationHandle__WEBPACK_IMPORTED_MODULE_622__["default"]),
54692
- /* harmony export */ "DesktopNavigationLayout": () => (/* reexport safe */ _desktop_navigation_DesktopNavigationLayout__WEBPACK_IMPORTED_MODULE_623__["default"]),
54693
- /* harmony export */ "ShrinkNavigationKeyStroke": () => (/* reexport safe */ _desktop_navigation_ShrinkNavigationKeyStroke__WEBPACK_IMPORTED_MODULE_624__["default"]),
54694
- /* harmony export */ "EnlargeNavigationKeyStroke": () => (/* reexport safe */ _desktop_navigation_EnlargeNavigationKeyStroke__WEBPACK_IMPORTED_MODULE_625__["default"]),
54695
- /* harmony export */ "DesktopNotification": () => (/* reexport safe */ _desktop_notification_DesktopNotification__WEBPACK_IMPORTED_MODULE_626__["default"]),
54696
- /* harmony export */ "DesktopNotificationAdapter": () => (/* reexport safe */ _desktop_notification_DesktopNotificationAdapter__WEBPACK_IMPORTED_MODULE_627__["default"]),
54697
- /* harmony export */ "OfflineDesktopNotification": () => (/* reexport safe */ _desktop_notification_OfflineDesktopNotification__WEBPACK_IMPORTED_MODULE_628__["default"]),
54698
- /* harmony export */ "PopupBlockerHandler": () => (/* reexport safe */ _desktop_popupblocker_PopupBlockerHandler__WEBPACK_IMPORTED_MODULE_629__["default"]),
54699
- /* harmony export */ "PopupBlockerDesktopNotification": () => (/* reexport safe */ _desktop_popupblocker_PopupBlockerDesktopNotification__WEBPACK_IMPORTED_MODULE_630__["default"]),
54700
- /* harmony export */ "DesktopToolBox": () => (/* reexport safe */ _desktop_toolbox_DesktopToolBox__WEBPACK_IMPORTED_MODULE_631__["default"]),
54701
- /* harmony export */ "ViewButtonActionKeyStroke": () => (/* reexport safe */ _desktop_viewbutton_ViewButtonActionKeyStroke__WEBPACK_IMPORTED_MODULE_632__["default"]),
54702
- /* harmony export */ "ViewButton": () => (/* reexport safe */ _desktop_viewbutton_ViewButton__WEBPACK_IMPORTED_MODULE_633__["default"]),
54703
- /* harmony export */ "ViewButtonAdapter": () => (/* reexport safe */ _desktop_viewbutton_ViewButtonAdapter__WEBPACK_IMPORTED_MODULE_634__["default"]),
54704
- /* harmony export */ "ViewButtonBox": () => (/* reexport safe */ _desktop_viewbutton_ViewButtonBox__WEBPACK_IMPORTED_MODULE_635__["default"]),
54705
- /* harmony export */ "ViewMenuOpenKeyStroke": () => (/* reexport safe */ _desktop_viewbutton_ViewMenuOpenKeyStroke__WEBPACK_IMPORTED_MODULE_636__["default"]),
54706
- /* harmony export */ "ViewMenuPopup": () => (/* reexport safe */ _desktop_viewbutton_ViewMenuPopup__WEBPACK_IMPORTED_MODULE_637__["default"]),
54707
- /* harmony export */ "ViewMenuPopupEnterKeyStroke": () => (/* reexport safe */ _desktop_viewbutton_ViewMenuPopupEnterKeyStroke__WEBPACK_IMPORTED_MODULE_638__["default"]),
54708
- /* harmony export */ "ViewMenuTab": () => (/* reexport safe */ _desktop_viewbutton_ViewMenuTab__WEBPACK_IMPORTED_MODULE_639__["default"]),
54709
- /* harmony export */ "Page": () => (/* reexport safe */ _desktop_outline_pages_Page__WEBPACK_IMPORTED_MODULE_640__["default"]),
54710
- /* harmony export */ "PageWithNodes": () => (/* reexport safe */ _desktop_outline_pages_PageWithNodes__WEBPACK_IMPORTED_MODULE_641__["default"]),
54711
- /* harmony export */ "PageWithTable": () => (/* reexport safe */ _desktop_outline_pages_PageWithTable__WEBPACK_IMPORTED_MODULE_642__["default"]),
54712
- /* harmony export */ "PageTileButton": () => (/* reexport safe */ _desktop_outline_pages_PageTileButton__WEBPACK_IMPORTED_MODULE_643__["default"]),
54713
- /* harmony export */ "PageTileGrid": () => (/* reexport safe */ _desktop_outline_pages_PageTileGrid__WEBPACK_IMPORTED_MODULE_644__["default"]),
54714
- /* harmony export */ "PageTileGridSelectKeyStroke": () => (/* reexport safe */ _desktop_outline_pages_PageTileGridSelectKeyStroke__WEBPACK_IMPORTED_MODULE_645__["default"]),
54715
- /* harmony export */ "AutoLeafPageWithNodes": () => (/* reexport safe */ _desktop_outline_pages_AutoLeafPageWithNodes__WEBPACK_IMPORTED_MODULE_646__["default"]),
54716
- /* harmony export */ "DetailTableTreeFilter": () => (/* reexport safe */ _desktop_outline_DetailTableTreeFilter__WEBPACK_IMPORTED_MODULE_647__["default"]),
54717
- /* harmony export */ "Outline": () => (/* reexport safe */ _desktop_outline_Outline__WEBPACK_IMPORTED_MODULE_648__["default"]),
54718
- /* harmony export */ "OutlineAdapter": () => (/* reexport safe */ _desktop_outline_OutlineAdapter__WEBPACK_IMPORTED_MODULE_649__["default"]),
54719
- /* harmony export */ "OutlineMediator": () => (/* reexport safe */ _desktop_outline_OutlineMediator__WEBPACK_IMPORTED_MODULE_650__["default"]),
54720
- /* harmony export */ "OutlineLayout": () => (/* reexport safe */ _desktop_outline_OutlineLayout__WEBPACK_IMPORTED_MODULE_651__["default"]),
54721
- /* harmony export */ "OutlineViewButton": () => (/* reexport safe */ _desktop_outline_OutlineViewButton__WEBPACK_IMPORTED_MODULE_652__["default"]),
54722
- /* harmony export */ "OutlineViewButtonAdapter": () => (/* reexport safe */ _desktop_outline_OutlineViewButtonAdapter__WEBPACK_IMPORTED_MODULE_653__["default"]),
54723
- /* harmony export */ "OutlineTileField": () => (/* reexport safe */ _desktop_outline_OutlineTileField__WEBPACK_IMPORTED_MODULE_654__["default"]),
54724
- /* harmony export */ "OutlineTileFieldAdapter": () => (/* reexport safe */ _desktop_outline_OutlineTileFieldAdapter__WEBPACK_IMPORTED_MODULE_655__["default"]),
54725
- /* harmony export */ "PageLayout": () => (/* reexport safe */ _desktop_outline_PageLayout__WEBPACK_IMPORTED_MODULE_656__["default"]),
54726
- /* harmony export */ "SearchOutline": () => (/* reexport safe */ _desktop_outline_SearchOutline__WEBPACK_IMPORTED_MODULE_657__["default"]),
54727
- /* harmony export */ "SearchOutlineAdapter": () => (/* reexport safe */ _desktop_outline_SearchOutlineAdapter__WEBPACK_IMPORTED_MODULE_658__["default"]),
54728
- /* harmony export */ "SearchOutlineLayout": () => (/* reexport safe */ _desktop_outline_SearchOutlineLayout__WEBPACK_IMPORTED_MODULE_659__["default"]),
54729
- /* harmony export */ "NavigateButton": () => (/* reexport safe */ _desktop_outline_navigation_NavigateButton__WEBPACK_IMPORTED_MODULE_660__["default"]),
54730
- /* harmony export */ "NavigateDownButton": () => (/* reexport safe */ _desktop_outline_navigation_NavigateDownButton__WEBPACK_IMPORTED_MODULE_661__["default"]),
54731
- /* harmony export */ "NavigateUpButton": () => (/* reexport safe */ _desktop_outline_navigation_NavigateUpButton__WEBPACK_IMPORTED_MODULE_662__["default"]),
54732
- /* harmony export */ "OutlineKeyStrokeContext": () => (/* reexport safe */ _desktop_outline_keystrokes_OutlineKeyStrokeContext__WEBPACK_IMPORTED_MODULE_663__["default"]),
54733
- /* harmony export */ "OutlineNavigateToTopKeyStroke": () => (/* reexport safe */ _desktop_outline_keystrokes_OutlineNavigateToTopKeyStroke__WEBPACK_IMPORTED_MODULE_664__["default"]),
54734
- /* harmony export */ "OutlineOverview": () => (/* reexport safe */ _desktop_outline_overview_OutlineOverview__WEBPACK_IMPORTED_MODULE_665__["default"]),
54735
- /* harmony export */ "TileOutlineOverview": () => (/* reexport safe */ _desktop_outline_overview_TileOutlineOverview__WEBPACK_IMPORTED_MODULE_666__["default"]),
54736
- /* harmony export */ "DesktopFormController": () => (/* reexport safe */ _desktop_DesktopFormController__WEBPACK_IMPORTED_MODULE_667__["default"]),
54737
- /* harmony export */ "FilterFieldsGroupBox": () => (/* reexport safe */ _table_FilterFieldsGroupBox__WEBPACK_IMPORTED_MODULE_668__["default"]),
54738
- /* harmony export */ "Resizable": () => (/* reexport safe */ _resizable_Resizable__WEBPACK_IMPORTED_MODULE_669__["default"]),
54739
- /* harmony export */ "UnsavedFormChangesForm": () => (/* reexport safe */ _desktop_unsavedchanges_UnsavedFormChangesForm__WEBPACK_IMPORTED_MODULE_670__["default"]),
54740
- /* harmony export */ "UnsavedFormsLookupCall": () => (/* reexport safe */ _desktop_unsavedchanges_UnsavedFormsLookupCall__WEBPACK_IMPORTED_MODULE_671__["default"]),
54741
- /* harmony export */ "TileTableHeaderBox": () => (/* reexport safe */ _table_TileTableHeaderBox__WEBPACK_IMPORTED_MODULE_672__["default"]),
54742
- /* harmony export */ "LoginApp": () => (/* reexport safe */ _login_LoginApp__WEBPACK_IMPORTED_MODULE_673__["default"]),
54743
- /* harmony export */ "LoginBox": () => (/* reexport safe */ _login_LoginBox__WEBPACK_IMPORTED_MODULE_674__["default"]),
54744
- /* harmony export */ "LogoutApp": () => (/* reexport safe */ _login_LogoutApp__WEBPACK_IMPORTED_MODULE_675__["default"]),
54745
- /* harmony export */ "LogoutBox": () => (/* reexport safe */ _login_LogoutBox__WEBPACK_IMPORTED_MODULE_676__["default"]),
54746
- /* harmony export */ "BreadcrumbItem": () => (/* reexport safe */ _breadcrumbbar_BreadcrumbItem__WEBPACK_IMPORTED_MODULE_677__["default"]),
54747
- /* harmony export */ "BreadcrumbItemAdapter": () => (/* reexport safe */ _breadcrumbbar_BreadcrumbItemAdapter__WEBPACK_IMPORTED_MODULE_678__["default"]),
54748
- /* harmony export */ "BreadcrumbBar": () => (/* reexport safe */ _breadcrumbbar_BreadcrumbBar__WEBPACK_IMPORTED_MODULE_679__["default"]),
54749
- /* harmony export */ "BreadcrumbBarLayout": () => (/* reexport safe */ _breadcrumbbar_BreadcrumbBarLayout__WEBPACK_IMPORTED_MODULE_680__["default"]),
54750
- /* harmony export */ "BreadcrumbBarAdapter": () => (/* reexport safe */ _breadcrumbbar_BreadcrumbBarAdapter__WEBPACK_IMPORTED_MODULE_681__["default"]),
54751
- /* harmony export */ "BreadcrumbBarField": () => (/* reexport safe */ _form_fields_breadcrumbbarfield_BreadcrumbBarField__WEBPACK_IMPORTED_MODULE_682__["default"]),
54752
- /* harmony export */ "BreadcrumbBarFieldAdapter": () => (/* reexport safe */ _form_fields_breadcrumbbarfield_BreadcrumbBarFieldAdapter__WEBPACK_IMPORTED_MODULE_683__["default"]),
54692
+ /* harmony export */ "TileHtmlField": () => (/* reexport safe */ _tile_fields_htmlfield_TileHtmlField__WEBPACK_IMPORTED_MODULE_597__["default"]),
54693
+ /* harmony export */ "TileTableField": () => (/* reexport safe */ _tile_fields_tablefield_TileTableField__WEBPACK_IMPORTED_MODULE_598__["default"]),
54694
+ /* harmony export */ "SimpleTab": () => (/* reexport safe */ _tabbox_SimpleTab__WEBPACK_IMPORTED_MODULE_599__["default"]),
54695
+ /* harmony export */ "SimpleTabArea": () => (/* reexport safe */ _tabbox_SimpleTabArea__WEBPACK_IMPORTED_MODULE_600__["default"]),
54696
+ /* harmony export */ "SimpleTabAreaLayout": () => (/* reexport safe */ _tabbox_SimpleTabAreaLayout__WEBPACK_IMPORTED_MODULE_601__["default"]),
54697
+ /* harmony export */ "Desktop": () => (/* reexport safe */ _desktop_Desktop__WEBPACK_IMPORTED_MODULE_602__["default"]),
54698
+ /* harmony export */ "DesktopAdapter": () => (/* reexport safe */ _desktop_DesktopAdapter__WEBPACK_IMPORTED_MODULE_603__["default"]),
54699
+ /* harmony export */ "DesktopLogo": () => (/* reexport safe */ _desktop_DesktopLogo__WEBPACK_IMPORTED_MODULE_604__["default"]),
54700
+ /* harmony export */ "DesktopLayout": () => (/* reexport safe */ _desktop_DesktopLayout__WEBPACK_IMPORTED_MODULE_605__["default"]),
54701
+ /* harmony export */ "DesktopTab": () => (/* reexport safe */ _desktop_desktoptab_DesktopTab__WEBPACK_IMPORTED_MODULE_606__["default"]),
54702
+ /* harmony export */ "DesktopTabArea": () => (/* reexport safe */ _desktop_desktoptab_DesktopTabArea__WEBPACK_IMPORTED_MODULE_607__["default"]),
54703
+ /* harmony export */ "DesktopTabAreaLayout": () => (/* reexport safe */ _desktop_desktoptab_DesktopTabAreaLayout__WEBPACK_IMPORTED_MODULE_608__["default"]),
54704
+ /* harmony export */ "DesktopTabBoxController": () => (/* reexport safe */ _desktop_DesktopTabBoxController__WEBPACK_IMPORTED_MODULE_609__["default"]),
54705
+ /* harmony export */ "DesktopTabSelectKeyStroke": () => (/* reexport safe */ _desktop_bench_DesktopTabSelectKeyStroke__WEBPACK_IMPORTED_MODULE_610__["default"]),
54706
+ /* harmony export */ "DisableBrowserF5ReloadKeyStroke": () => (/* reexport safe */ _desktop_DisableBrowserF5ReloadKeyStroke__WEBPACK_IMPORTED_MODULE_611__["default"]),
54707
+ /* harmony export */ "PopupWindow": () => (/* reexport safe */ _desktop_PopupWindow__WEBPACK_IMPORTED_MODULE_612__["default"]),
54708
+ /* harmony export */ "OpenUriHandler": () => (/* reexport safe */ _desktop_OpenUriHandler__WEBPACK_IMPORTED_MODULE_613__["default"]),
54709
+ /* harmony export */ "DesktopBench": () => (/* reexport safe */ _desktop_bench_DesktopBench__WEBPACK_IMPORTED_MODULE_614__["default"]),
54710
+ /* harmony export */ "BenchColumn": () => (/* reexport safe */ _desktop_bench_BenchColumn__WEBPACK_IMPORTED_MODULE_615__["default"]),
54711
+ /* harmony export */ "BenchRowLayoutData": () => (/* reexport safe */ _desktop_bench_layout_BenchRowLayoutData__WEBPACK_IMPORTED_MODULE_616__["default"]),
54712
+ /* harmony export */ "BenchColumnLayoutData": () => (/* reexport safe */ _desktop_bench_layout_BenchColumnLayoutData__WEBPACK_IMPORTED_MODULE_617__["default"]),
54713
+ /* harmony export */ "DisableBrowserTabSwitchingKeyStroke": () => (/* reexport safe */ _desktop_desktoptab_DisableBrowserTabSwitchingKeyStroke__WEBPACK_IMPORTED_MODULE_618__["default"]),
54714
+ /* harmony export */ "DesktopHeader": () => (/* reexport safe */ _desktop_header_DesktopHeader__WEBPACK_IMPORTED_MODULE_619__["default"]),
54715
+ /* harmony export */ "HeaderTabBoxController": () => (/* reexport safe */ _desktop_header_HeaderTabBoxController__WEBPACK_IMPORTED_MODULE_620__["default"]),
54716
+ /* harmony export */ "DesktopHeaderLayout": () => (/* reexport safe */ _desktop_header_DesktopHeaderLayout__WEBPACK_IMPORTED_MODULE_621__["default"]),
54717
+ /* harmony export */ "DesktopNavigation": () => (/* reexport safe */ _desktop_navigation_DesktopNavigation__WEBPACK_IMPORTED_MODULE_622__["default"]),
54718
+ /* harmony export */ "DesktopNavigationHandle": () => (/* reexport safe */ _desktop_navigation_DesktopNavigationHandle__WEBPACK_IMPORTED_MODULE_623__["default"]),
54719
+ /* harmony export */ "DesktopNavigationLayout": () => (/* reexport safe */ _desktop_navigation_DesktopNavigationLayout__WEBPACK_IMPORTED_MODULE_624__["default"]),
54720
+ /* harmony export */ "ShrinkNavigationKeyStroke": () => (/* reexport safe */ _desktop_navigation_ShrinkNavigationKeyStroke__WEBPACK_IMPORTED_MODULE_625__["default"]),
54721
+ /* harmony export */ "EnlargeNavigationKeyStroke": () => (/* reexport safe */ _desktop_navigation_EnlargeNavigationKeyStroke__WEBPACK_IMPORTED_MODULE_626__["default"]),
54722
+ /* harmony export */ "DesktopNotification": () => (/* reexport safe */ _desktop_notification_DesktopNotification__WEBPACK_IMPORTED_MODULE_627__["default"]),
54723
+ /* harmony export */ "DesktopNotificationAdapter": () => (/* reexport safe */ _desktop_notification_DesktopNotificationAdapter__WEBPACK_IMPORTED_MODULE_628__["default"]),
54724
+ /* harmony export */ "OfflineDesktopNotification": () => (/* reexport safe */ _desktop_notification_OfflineDesktopNotification__WEBPACK_IMPORTED_MODULE_629__["default"]),
54725
+ /* harmony export */ "PopupBlockerHandler": () => (/* reexport safe */ _desktop_popupblocker_PopupBlockerHandler__WEBPACK_IMPORTED_MODULE_630__["default"]),
54726
+ /* harmony export */ "PopupBlockerDesktopNotification": () => (/* reexport safe */ _desktop_popupblocker_PopupBlockerDesktopNotification__WEBPACK_IMPORTED_MODULE_631__["default"]),
54727
+ /* harmony export */ "DesktopToolBox": () => (/* reexport safe */ _desktop_toolbox_DesktopToolBox__WEBPACK_IMPORTED_MODULE_632__["default"]),
54728
+ /* harmony export */ "ViewButtonActionKeyStroke": () => (/* reexport safe */ _desktop_viewbutton_ViewButtonActionKeyStroke__WEBPACK_IMPORTED_MODULE_633__["default"]),
54729
+ /* harmony export */ "ViewButton": () => (/* reexport safe */ _desktop_viewbutton_ViewButton__WEBPACK_IMPORTED_MODULE_634__["default"]),
54730
+ /* harmony export */ "ViewButtonAdapter": () => (/* reexport safe */ _desktop_viewbutton_ViewButtonAdapter__WEBPACK_IMPORTED_MODULE_635__["default"]),
54731
+ /* harmony export */ "ViewButtonBox": () => (/* reexport safe */ _desktop_viewbutton_ViewButtonBox__WEBPACK_IMPORTED_MODULE_636__["default"]),
54732
+ /* harmony export */ "ViewMenuOpenKeyStroke": () => (/* reexport safe */ _desktop_viewbutton_ViewMenuOpenKeyStroke__WEBPACK_IMPORTED_MODULE_637__["default"]),
54733
+ /* harmony export */ "ViewMenuPopup": () => (/* reexport safe */ _desktop_viewbutton_ViewMenuPopup__WEBPACK_IMPORTED_MODULE_638__["default"]),
54734
+ /* harmony export */ "ViewMenuPopupEnterKeyStroke": () => (/* reexport safe */ _desktop_viewbutton_ViewMenuPopupEnterKeyStroke__WEBPACK_IMPORTED_MODULE_639__["default"]),
54735
+ /* harmony export */ "ViewMenuTab": () => (/* reexport safe */ _desktop_viewbutton_ViewMenuTab__WEBPACK_IMPORTED_MODULE_640__["default"]),
54736
+ /* harmony export */ "Page": () => (/* reexport safe */ _desktop_outline_pages_Page__WEBPACK_IMPORTED_MODULE_641__["default"]),
54737
+ /* harmony export */ "PageWithNodes": () => (/* reexport safe */ _desktop_outline_pages_PageWithNodes__WEBPACK_IMPORTED_MODULE_642__["default"]),
54738
+ /* harmony export */ "PageWithTable": () => (/* reexport safe */ _desktop_outline_pages_PageWithTable__WEBPACK_IMPORTED_MODULE_643__["default"]),
54739
+ /* harmony export */ "PageTileButton": () => (/* reexport safe */ _desktop_outline_pages_PageTileButton__WEBPACK_IMPORTED_MODULE_644__["default"]),
54740
+ /* harmony export */ "PageTileGrid": () => (/* reexport safe */ _desktop_outline_pages_PageTileGrid__WEBPACK_IMPORTED_MODULE_645__["default"]),
54741
+ /* harmony export */ "PageTileGridSelectKeyStroke": () => (/* reexport safe */ _desktop_outline_pages_PageTileGridSelectKeyStroke__WEBPACK_IMPORTED_MODULE_646__["default"]),
54742
+ /* harmony export */ "AutoLeafPageWithNodes": () => (/* reexport safe */ _desktop_outline_pages_AutoLeafPageWithNodes__WEBPACK_IMPORTED_MODULE_647__["default"]),
54743
+ /* harmony export */ "DetailTableTreeFilter": () => (/* reexport safe */ _desktop_outline_DetailTableTreeFilter__WEBPACK_IMPORTED_MODULE_648__["default"]),
54744
+ /* harmony export */ "Outline": () => (/* reexport safe */ _desktop_outline_Outline__WEBPACK_IMPORTED_MODULE_649__["default"]),
54745
+ /* harmony export */ "OutlineAdapter": () => (/* reexport safe */ _desktop_outline_OutlineAdapter__WEBPACK_IMPORTED_MODULE_650__["default"]),
54746
+ /* harmony export */ "OutlineMediator": () => (/* reexport safe */ _desktop_outline_OutlineMediator__WEBPACK_IMPORTED_MODULE_651__["default"]),
54747
+ /* harmony export */ "OutlineLayout": () => (/* reexport safe */ _desktop_outline_OutlineLayout__WEBPACK_IMPORTED_MODULE_652__["default"]),
54748
+ /* harmony export */ "OutlineViewButton": () => (/* reexport safe */ _desktop_outline_OutlineViewButton__WEBPACK_IMPORTED_MODULE_653__["default"]),
54749
+ /* harmony export */ "OutlineViewButtonAdapter": () => (/* reexport safe */ _desktop_outline_OutlineViewButtonAdapter__WEBPACK_IMPORTED_MODULE_654__["default"]),
54750
+ /* harmony export */ "OutlineTileField": () => (/* reexport safe */ _desktop_outline_OutlineTileField__WEBPACK_IMPORTED_MODULE_655__["default"]),
54751
+ /* harmony export */ "OutlineTileFieldAdapter": () => (/* reexport safe */ _desktop_outline_OutlineTileFieldAdapter__WEBPACK_IMPORTED_MODULE_656__["default"]),
54752
+ /* harmony export */ "PageLayout": () => (/* reexport safe */ _desktop_outline_PageLayout__WEBPACK_IMPORTED_MODULE_657__["default"]),
54753
+ /* harmony export */ "SearchOutline": () => (/* reexport safe */ _desktop_outline_SearchOutline__WEBPACK_IMPORTED_MODULE_658__["default"]),
54754
+ /* harmony export */ "SearchOutlineAdapter": () => (/* reexport safe */ _desktop_outline_SearchOutlineAdapter__WEBPACK_IMPORTED_MODULE_659__["default"]),
54755
+ /* harmony export */ "SearchOutlineLayout": () => (/* reexport safe */ _desktop_outline_SearchOutlineLayout__WEBPACK_IMPORTED_MODULE_660__["default"]),
54756
+ /* harmony export */ "NavigateButton": () => (/* reexport safe */ _desktop_outline_navigation_NavigateButton__WEBPACK_IMPORTED_MODULE_661__["default"]),
54757
+ /* harmony export */ "NavigateDownButton": () => (/* reexport safe */ _desktop_outline_navigation_NavigateDownButton__WEBPACK_IMPORTED_MODULE_662__["default"]),
54758
+ /* harmony export */ "NavigateUpButton": () => (/* reexport safe */ _desktop_outline_navigation_NavigateUpButton__WEBPACK_IMPORTED_MODULE_663__["default"]),
54759
+ /* harmony export */ "OutlineKeyStrokeContext": () => (/* reexport safe */ _desktop_outline_keystrokes_OutlineKeyStrokeContext__WEBPACK_IMPORTED_MODULE_664__["default"]),
54760
+ /* harmony export */ "OutlineNavigateToTopKeyStroke": () => (/* reexport safe */ _desktop_outline_keystrokes_OutlineNavigateToTopKeyStroke__WEBPACK_IMPORTED_MODULE_665__["default"]),
54761
+ /* harmony export */ "OutlineOverview": () => (/* reexport safe */ _desktop_outline_overview_OutlineOverview__WEBPACK_IMPORTED_MODULE_666__["default"]),
54762
+ /* harmony export */ "TileOutlineOverview": () => (/* reexport safe */ _desktop_outline_overview_TileOutlineOverview__WEBPACK_IMPORTED_MODULE_667__["default"]),
54763
+ /* harmony export */ "DesktopFormController": () => (/* reexport safe */ _desktop_DesktopFormController__WEBPACK_IMPORTED_MODULE_668__["default"]),
54764
+ /* harmony export */ "FilterFieldsGroupBox": () => (/* reexport safe */ _table_FilterFieldsGroupBox__WEBPACK_IMPORTED_MODULE_669__["default"]),
54765
+ /* harmony export */ "Resizable": () => (/* reexport safe */ _resizable_Resizable__WEBPACK_IMPORTED_MODULE_670__["default"]),
54766
+ /* harmony export */ "UnsavedFormChangesForm": () => (/* reexport safe */ _desktop_unsavedchanges_UnsavedFormChangesForm__WEBPACK_IMPORTED_MODULE_671__["default"]),
54767
+ /* harmony export */ "UnsavedFormsLookupCall": () => (/* reexport safe */ _desktop_unsavedchanges_UnsavedFormsLookupCall__WEBPACK_IMPORTED_MODULE_672__["default"]),
54768
+ /* harmony export */ "TileTableHeaderBox": () => (/* reexport safe */ _table_TileTableHeaderBox__WEBPACK_IMPORTED_MODULE_673__["default"]),
54769
+ /* harmony export */ "LoginApp": () => (/* reexport safe */ _login_LoginApp__WEBPACK_IMPORTED_MODULE_674__["default"]),
54770
+ /* harmony export */ "LoginBox": () => (/* reexport safe */ _login_LoginBox__WEBPACK_IMPORTED_MODULE_675__["default"]),
54771
+ /* harmony export */ "LogoutApp": () => (/* reexport safe */ _login_LogoutApp__WEBPACK_IMPORTED_MODULE_676__["default"]),
54772
+ /* harmony export */ "LogoutBox": () => (/* reexport safe */ _login_LogoutBox__WEBPACK_IMPORTED_MODULE_677__["default"]),
54773
+ /* harmony export */ "BreadcrumbItem": () => (/* reexport safe */ _breadcrumbbar_BreadcrumbItem__WEBPACK_IMPORTED_MODULE_678__["default"]),
54774
+ /* harmony export */ "BreadcrumbItemAdapter": () => (/* reexport safe */ _breadcrumbbar_BreadcrumbItemAdapter__WEBPACK_IMPORTED_MODULE_679__["default"]),
54775
+ /* harmony export */ "BreadcrumbBar": () => (/* reexport safe */ _breadcrumbbar_BreadcrumbBar__WEBPACK_IMPORTED_MODULE_680__["default"]),
54776
+ /* harmony export */ "BreadcrumbBarLayout": () => (/* reexport safe */ _breadcrumbbar_BreadcrumbBarLayout__WEBPACK_IMPORTED_MODULE_681__["default"]),
54777
+ /* harmony export */ "BreadcrumbBarAdapter": () => (/* reexport safe */ _breadcrumbbar_BreadcrumbBarAdapter__WEBPACK_IMPORTED_MODULE_682__["default"]),
54778
+ /* harmony export */ "BreadcrumbBarField": () => (/* reexport safe */ _form_fields_breadcrumbbarfield_BreadcrumbBarField__WEBPACK_IMPORTED_MODULE_683__["default"]),
54779
+ /* harmony export */ "BreadcrumbBarFieldAdapter": () => (/* reexport safe */ _form_fields_breadcrumbbarfield_BreadcrumbBarFieldAdapter__WEBPACK_IMPORTED_MODULE_684__["default"]),
54753
54780
  /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
54754
54781
  /* harmony export */ });
54755
54782
  /* harmony import */ var _scout__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./scout */ "./src/scout.js");
@@ -55349,101 +55376,102 @@ __webpack_require__.r(__webpack_exports__);
55349
55376
  /* harmony import */ var _tile_fields_FormFieldTileAdapter__WEBPACK_IMPORTED_MODULE_594__ = __webpack_require__(/*! ./tile/fields/FormFieldTileAdapter */ "./src/tile/fields/FormFieldTileAdapter.js");
55350
55377
  /* harmony import */ var _tile_fields_button_ButtonTile__WEBPACK_IMPORTED_MODULE_595__ = __webpack_require__(/*! ./tile/fields/button/ButtonTile */ "./src/tile/fields/button/ButtonTile.js");
55351
55378
  /* harmony import */ var _tile_fields_button_TileButton__WEBPACK_IMPORTED_MODULE_596__ = __webpack_require__(/*! ./tile/fields/button/TileButton */ "./src/tile/fields/button/TileButton.js");
55352
- /* harmony import */ var _tile_fields_tablefield_TileTableField__WEBPACK_IMPORTED_MODULE_597__ = __webpack_require__(/*! ./tile/fields/tablefield/TileTableField */ "./src/tile/fields/tablefield/TileTableField.js");
55353
- /* harmony import */ var _tabbox_SimpleTab__WEBPACK_IMPORTED_MODULE_598__ = __webpack_require__(/*! ./tabbox/SimpleTab */ "./src/tabbox/SimpleTab.js");
55354
- /* harmony import */ var _tabbox_SimpleTabArea__WEBPACK_IMPORTED_MODULE_599__ = __webpack_require__(/*! ./tabbox/SimpleTabArea */ "./src/tabbox/SimpleTabArea.js");
55355
- /* harmony import */ var _tabbox_SimpleTabAreaLayout__WEBPACK_IMPORTED_MODULE_600__ = __webpack_require__(/*! ./tabbox/SimpleTabAreaLayout */ "./src/tabbox/SimpleTabAreaLayout.js");
55356
- /* harmony import */ var _desktop_Desktop__WEBPACK_IMPORTED_MODULE_601__ = __webpack_require__(/*! ./desktop/Desktop */ "./src/desktop/Desktop.js");
55357
- /* harmony import */ var _desktop_DesktopAdapter__WEBPACK_IMPORTED_MODULE_602__ = __webpack_require__(/*! ./desktop/DesktopAdapter */ "./src/desktop/DesktopAdapter.js");
55358
- /* harmony import */ var _desktop_DesktopLogo__WEBPACK_IMPORTED_MODULE_603__ = __webpack_require__(/*! ./desktop/DesktopLogo */ "./src/desktop/DesktopLogo.js");
55359
- /* harmony import */ var _desktop_DesktopLayout__WEBPACK_IMPORTED_MODULE_604__ = __webpack_require__(/*! ./desktop/DesktopLayout */ "./src/desktop/DesktopLayout.js");
55360
- /* harmony import */ var _desktop_desktoptab_DesktopTab__WEBPACK_IMPORTED_MODULE_605__ = __webpack_require__(/*! ./desktop/desktoptab/DesktopTab */ "./src/desktop/desktoptab/DesktopTab.js");
55361
- /* harmony import */ var _desktop_desktoptab_DesktopTabArea__WEBPACK_IMPORTED_MODULE_606__ = __webpack_require__(/*! ./desktop/desktoptab/DesktopTabArea */ "./src/desktop/desktoptab/DesktopTabArea.js");
55362
- /* harmony import */ var _desktop_desktoptab_DesktopTabAreaLayout__WEBPACK_IMPORTED_MODULE_607__ = __webpack_require__(/*! ./desktop/desktoptab/DesktopTabAreaLayout */ "./src/desktop/desktoptab/DesktopTabAreaLayout.js");
55363
- /* harmony import */ var _desktop_DesktopTabBoxController__WEBPACK_IMPORTED_MODULE_608__ = __webpack_require__(/*! ./desktop/DesktopTabBoxController */ "./src/desktop/DesktopTabBoxController.js");
55364
- /* harmony import */ var _desktop_bench_DesktopTabSelectKeyStroke__WEBPACK_IMPORTED_MODULE_609__ = __webpack_require__(/*! ./desktop/bench/DesktopTabSelectKeyStroke */ "./src/desktop/bench/DesktopTabSelectKeyStroke.js");
55365
- /* harmony import */ var _desktop_DisableBrowserF5ReloadKeyStroke__WEBPACK_IMPORTED_MODULE_610__ = __webpack_require__(/*! ./desktop/DisableBrowserF5ReloadKeyStroke */ "./src/desktop/DisableBrowserF5ReloadKeyStroke.js");
55366
- /* harmony import */ var _desktop_PopupWindow__WEBPACK_IMPORTED_MODULE_611__ = __webpack_require__(/*! ./desktop/PopupWindow */ "./src/desktop/PopupWindow.js");
55367
- /* harmony import */ var _desktop_OpenUriHandler__WEBPACK_IMPORTED_MODULE_612__ = __webpack_require__(/*! ./desktop/OpenUriHandler */ "./src/desktop/OpenUriHandler.js");
55368
- /* harmony import */ var _desktop_bench_DesktopBench__WEBPACK_IMPORTED_MODULE_613__ = __webpack_require__(/*! ./desktop/bench/DesktopBench */ "./src/desktop/bench/DesktopBench.js");
55369
- /* harmony import */ var _desktop_bench_BenchColumn__WEBPACK_IMPORTED_MODULE_614__ = __webpack_require__(/*! ./desktop/bench/BenchColumn */ "./src/desktop/bench/BenchColumn.js");
55370
- /* harmony import */ var _desktop_bench_layout_BenchRowLayoutData__WEBPACK_IMPORTED_MODULE_615__ = __webpack_require__(/*! ./desktop/bench/layout/BenchRowLayoutData */ "./src/desktop/bench/layout/BenchRowLayoutData.js");
55371
- /* harmony import */ var _desktop_bench_layout_BenchColumnLayoutData__WEBPACK_IMPORTED_MODULE_616__ = __webpack_require__(/*! ./desktop/bench/layout/BenchColumnLayoutData */ "./src/desktop/bench/layout/BenchColumnLayoutData.js");
55372
- /* harmony import */ var _desktop_desktoptab_DisableBrowserTabSwitchingKeyStroke__WEBPACK_IMPORTED_MODULE_617__ = __webpack_require__(/*! ./desktop/desktoptab/DisableBrowserTabSwitchingKeyStroke */ "./src/desktop/desktoptab/DisableBrowserTabSwitchingKeyStroke.js");
55373
- /* harmony import */ var _desktop_header_DesktopHeader__WEBPACK_IMPORTED_MODULE_618__ = __webpack_require__(/*! ./desktop/header/DesktopHeader */ "./src/desktop/header/DesktopHeader.js");
55374
- /* harmony import */ var _desktop_header_HeaderTabBoxController__WEBPACK_IMPORTED_MODULE_619__ = __webpack_require__(/*! ./desktop/header/HeaderTabBoxController */ "./src/desktop/header/HeaderTabBoxController.js");
55375
- /* harmony import */ var _desktop_header_DesktopHeaderLayout__WEBPACK_IMPORTED_MODULE_620__ = __webpack_require__(/*! ./desktop/header/DesktopHeaderLayout */ "./src/desktop/header/DesktopHeaderLayout.js");
55376
- /* harmony import */ var _desktop_navigation_DesktopNavigation__WEBPACK_IMPORTED_MODULE_621__ = __webpack_require__(/*! ./desktop/navigation/DesktopNavigation */ "./src/desktop/navigation/DesktopNavigation.js");
55377
- /* harmony import */ var _desktop_navigation_DesktopNavigationHandle__WEBPACK_IMPORTED_MODULE_622__ = __webpack_require__(/*! ./desktop/navigation/DesktopNavigationHandle */ "./src/desktop/navigation/DesktopNavigationHandle.js");
55378
- /* harmony import */ var _desktop_navigation_DesktopNavigationLayout__WEBPACK_IMPORTED_MODULE_623__ = __webpack_require__(/*! ./desktop/navigation/DesktopNavigationLayout */ "./src/desktop/navigation/DesktopNavigationLayout.js");
55379
- /* harmony import */ var _desktop_navigation_ShrinkNavigationKeyStroke__WEBPACK_IMPORTED_MODULE_624__ = __webpack_require__(/*! ./desktop/navigation/ShrinkNavigationKeyStroke */ "./src/desktop/navigation/ShrinkNavigationKeyStroke.js");
55380
- /* harmony import */ var _desktop_navigation_EnlargeNavigationKeyStroke__WEBPACK_IMPORTED_MODULE_625__ = __webpack_require__(/*! ./desktop/navigation/EnlargeNavigationKeyStroke */ "./src/desktop/navigation/EnlargeNavigationKeyStroke.js");
55381
- /* harmony import */ var _desktop_notification_DesktopNotification__WEBPACK_IMPORTED_MODULE_626__ = __webpack_require__(/*! ./desktop/notification/DesktopNotification */ "./src/desktop/notification/DesktopNotification.js");
55382
- /* harmony import */ var _desktop_notification_DesktopNotificationAdapter__WEBPACK_IMPORTED_MODULE_627__ = __webpack_require__(/*! ./desktop/notification/DesktopNotificationAdapter */ "./src/desktop/notification/DesktopNotificationAdapter.js");
55383
- /* harmony import */ var _desktop_notification_OfflineDesktopNotification__WEBPACK_IMPORTED_MODULE_628__ = __webpack_require__(/*! ./desktop/notification/OfflineDesktopNotification */ "./src/desktop/notification/OfflineDesktopNotification.js");
55384
- /* harmony import */ var _desktop_popupblocker_PopupBlockerHandler__WEBPACK_IMPORTED_MODULE_629__ = __webpack_require__(/*! ./desktop/popupblocker/PopupBlockerHandler */ "./src/desktop/popupblocker/PopupBlockerHandler.js");
55385
- /* harmony import */ var _desktop_popupblocker_PopupBlockerDesktopNotification__WEBPACK_IMPORTED_MODULE_630__ = __webpack_require__(/*! ./desktop/popupblocker/PopupBlockerDesktopNotification */ "./src/desktop/popupblocker/PopupBlockerDesktopNotification.js");
55386
- /* harmony import */ var _desktop_toolbox_DesktopToolBox__WEBPACK_IMPORTED_MODULE_631__ = __webpack_require__(/*! ./desktop/toolbox/DesktopToolBox */ "./src/desktop/toolbox/DesktopToolBox.js");
55387
- /* harmony import */ var _desktop_viewbutton_ViewButtonActionKeyStroke__WEBPACK_IMPORTED_MODULE_632__ = __webpack_require__(/*! ./desktop/viewbutton/ViewButtonActionKeyStroke */ "./src/desktop/viewbutton/ViewButtonActionKeyStroke.js");
55388
- /* harmony import */ var _desktop_viewbutton_ViewButton__WEBPACK_IMPORTED_MODULE_633__ = __webpack_require__(/*! ./desktop/viewbutton/ViewButton */ "./src/desktop/viewbutton/ViewButton.js");
55389
- /* harmony import */ var _desktop_viewbutton_ViewButtonAdapter__WEBPACK_IMPORTED_MODULE_634__ = __webpack_require__(/*! ./desktop/viewbutton/ViewButtonAdapter */ "./src/desktop/viewbutton/ViewButtonAdapter.js");
55390
- /* harmony import */ var _desktop_viewbutton_ViewButtonBox__WEBPACK_IMPORTED_MODULE_635__ = __webpack_require__(/*! ./desktop/viewbutton/ViewButtonBox */ "./src/desktop/viewbutton/ViewButtonBox.js");
55391
- /* harmony import */ var _desktop_viewbutton_ViewMenuOpenKeyStroke__WEBPACK_IMPORTED_MODULE_636__ = __webpack_require__(/*! ./desktop/viewbutton/ViewMenuOpenKeyStroke */ "./src/desktop/viewbutton/ViewMenuOpenKeyStroke.js");
55392
- /* harmony import */ var _desktop_viewbutton_ViewMenuPopup__WEBPACK_IMPORTED_MODULE_637__ = __webpack_require__(/*! ./desktop/viewbutton/ViewMenuPopup */ "./src/desktop/viewbutton/ViewMenuPopup.js");
55393
- /* harmony import */ var _desktop_viewbutton_ViewMenuPopupEnterKeyStroke__WEBPACK_IMPORTED_MODULE_638__ = __webpack_require__(/*! ./desktop/viewbutton/ViewMenuPopupEnterKeyStroke */ "./src/desktop/viewbutton/ViewMenuPopupEnterKeyStroke.js");
55394
- /* harmony import */ var _desktop_viewbutton_ViewMenuTab__WEBPACK_IMPORTED_MODULE_639__ = __webpack_require__(/*! ./desktop/viewbutton/ViewMenuTab */ "./src/desktop/viewbutton/ViewMenuTab.js");
55395
- /* harmony import */ var _desktop_outline_pages_Page__WEBPACK_IMPORTED_MODULE_640__ = __webpack_require__(/*! ./desktop/outline/pages/Page */ "./src/desktop/outline/pages/Page.js");
55396
- /* harmony import */ var _desktop_outline_pages_PageWithNodes__WEBPACK_IMPORTED_MODULE_641__ = __webpack_require__(/*! ./desktop/outline/pages/PageWithNodes */ "./src/desktop/outline/pages/PageWithNodes.js");
55397
- /* harmony import */ var _desktop_outline_pages_PageWithTable__WEBPACK_IMPORTED_MODULE_642__ = __webpack_require__(/*! ./desktop/outline/pages/PageWithTable */ "./src/desktop/outline/pages/PageWithTable.js");
55398
- /* harmony import */ var _desktop_outline_pages_PageTileButton__WEBPACK_IMPORTED_MODULE_643__ = __webpack_require__(/*! ./desktop/outline/pages/PageTileButton */ "./src/desktop/outline/pages/PageTileButton.js");
55399
- /* harmony import */ var _desktop_outline_pages_PageTileGrid__WEBPACK_IMPORTED_MODULE_644__ = __webpack_require__(/*! ./desktop/outline/pages/PageTileGrid */ "./src/desktop/outline/pages/PageTileGrid.js");
55400
- /* harmony import */ var _desktop_outline_pages_PageTileGridSelectKeyStroke__WEBPACK_IMPORTED_MODULE_645__ = __webpack_require__(/*! ./desktop/outline/pages/PageTileGridSelectKeyStroke */ "./src/desktop/outline/pages/PageTileGridSelectKeyStroke.js");
55401
- /* harmony import */ var _desktop_outline_pages_AutoLeafPageWithNodes__WEBPACK_IMPORTED_MODULE_646__ = __webpack_require__(/*! ./desktop/outline/pages/AutoLeafPageWithNodes */ "./src/desktop/outline/pages/AutoLeafPageWithNodes.js");
55402
- /* harmony import */ var _desktop_outline_DetailTableTreeFilter__WEBPACK_IMPORTED_MODULE_647__ = __webpack_require__(/*! ./desktop/outline/DetailTableTreeFilter */ "./src/desktop/outline/DetailTableTreeFilter.js");
55403
- /* harmony import */ var _desktop_outline_Outline__WEBPACK_IMPORTED_MODULE_648__ = __webpack_require__(/*! ./desktop/outline/Outline */ "./src/desktop/outline/Outline.js");
55404
- /* harmony import */ var _desktop_outline_OutlineAdapter__WEBPACK_IMPORTED_MODULE_649__ = __webpack_require__(/*! ./desktop/outline/OutlineAdapter */ "./src/desktop/outline/OutlineAdapter.js");
55405
- /* harmony import */ var _desktop_outline_OutlineMediator__WEBPACK_IMPORTED_MODULE_650__ = __webpack_require__(/*! ./desktop/outline/OutlineMediator */ "./src/desktop/outline/OutlineMediator.js");
55406
- /* harmony import */ var _desktop_outline_OutlineLayout__WEBPACK_IMPORTED_MODULE_651__ = __webpack_require__(/*! ./desktop/outline/OutlineLayout */ "./src/desktop/outline/OutlineLayout.js");
55407
- /* harmony import */ var _desktop_outline_OutlineViewButton__WEBPACK_IMPORTED_MODULE_652__ = __webpack_require__(/*! ./desktop/outline/OutlineViewButton */ "./src/desktop/outline/OutlineViewButton.js");
55408
- /* harmony import */ var _desktop_outline_OutlineViewButtonAdapter__WEBPACK_IMPORTED_MODULE_653__ = __webpack_require__(/*! ./desktop/outline/OutlineViewButtonAdapter */ "./src/desktop/outline/OutlineViewButtonAdapter.js");
55409
- /* harmony import */ var _desktop_outline_OutlineTileField__WEBPACK_IMPORTED_MODULE_654__ = __webpack_require__(/*! ./desktop/outline/OutlineTileField */ "./src/desktop/outline/OutlineTileField.js");
55410
- /* harmony import */ var _desktop_outline_OutlineTileFieldAdapter__WEBPACK_IMPORTED_MODULE_655__ = __webpack_require__(/*! ./desktop/outline/OutlineTileFieldAdapter */ "./src/desktop/outline/OutlineTileFieldAdapter.js");
55411
- /* harmony import */ var _desktop_outline_PageLayout__WEBPACK_IMPORTED_MODULE_656__ = __webpack_require__(/*! ./desktop/outline/PageLayout */ "./src/desktop/outline/PageLayout.js");
55412
- /* harmony import */ var _desktop_outline_SearchOutline__WEBPACK_IMPORTED_MODULE_657__ = __webpack_require__(/*! ./desktop/outline/SearchOutline */ "./src/desktop/outline/SearchOutline.js");
55413
- /* harmony import */ var _desktop_outline_SearchOutlineAdapter__WEBPACK_IMPORTED_MODULE_658__ = __webpack_require__(/*! ./desktop/outline/SearchOutlineAdapter */ "./src/desktop/outline/SearchOutlineAdapter.js");
55414
- /* harmony import */ var _desktop_outline_SearchOutlineLayout__WEBPACK_IMPORTED_MODULE_659__ = __webpack_require__(/*! ./desktop/outline/SearchOutlineLayout */ "./src/desktop/outline/SearchOutlineLayout.js");
55415
- /* harmony import */ var _desktop_outline_navigation_NavigateButton__WEBPACK_IMPORTED_MODULE_660__ = __webpack_require__(/*! ./desktop/outline/navigation/NavigateButton */ "./src/desktop/outline/navigation/NavigateButton.js");
55416
- /* harmony import */ var _desktop_outline_navigation_NavigateDownButton__WEBPACK_IMPORTED_MODULE_661__ = __webpack_require__(/*! ./desktop/outline/navigation/NavigateDownButton */ "./src/desktop/outline/navigation/NavigateDownButton.js");
55417
- /* harmony import */ var _desktop_outline_navigation_NavigateUpButton__WEBPACK_IMPORTED_MODULE_662__ = __webpack_require__(/*! ./desktop/outline/navigation/NavigateUpButton */ "./src/desktop/outline/navigation/NavigateUpButton.js");
55418
- /* harmony import */ var _desktop_outline_keystrokes_OutlineKeyStrokeContext__WEBPACK_IMPORTED_MODULE_663__ = __webpack_require__(/*! ./desktop/outline/keystrokes/OutlineKeyStrokeContext */ "./src/desktop/outline/keystrokes/OutlineKeyStrokeContext.js");
55419
- /* harmony import */ var _desktop_outline_keystrokes_OutlineNavigateToTopKeyStroke__WEBPACK_IMPORTED_MODULE_664__ = __webpack_require__(/*! ./desktop/outline/keystrokes/OutlineNavigateToTopKeyStroke */ "./src/desktop/outline/keystrokes/OutlineNavigateToTopKeyStroke.js");
55420
- /* harmony import */ var _desktop_outline_overview_OutlineOverview__WEBPACK_IMPORTED_MODULE_665__ = __webpack_require__(/*! ./desktop/outline/overview/OutlineOverview */ "./src/desktop/outline/overview/OutlineOverview.js");
55421
- /* harmony import */ var _desktop_outline_overview_TileOutlineOverview__WEBPACK_IMPORTED_MODULE_666__ = __webpack_require__(/*! ./desktop/outline/overview/TileOutlineOverview */ "./src/desktop/outline/overview/TileOutlineOverview.js");
55422
- /* harmony import */ var _desktop_DesktopFormController__WEBPACK_IMPORTED_MODULE_667__ = __webpack_require__(/*! ./desktop/DesktopFormController */ "./src/desktop/DesktopFormController.js");
55423
- /* harmony import */ var _table_FilterFieldsGroupBox__WEBPACK_IMPORTED_MODULE_668__ = __webpack_require__(/*! ./table/FilterFieldsGroupBox */ "./src/table/FilterFieldsGroupBox.js");
55424
- /* harmony import */ var _resizable_Resizable__WEBPACK_IMPORTED_MODULE_669__ = __webpack_require__(/*! ./resizable/Resizable */ "./src/resizable/Resizable.js");
55425
- /* harmony import */ var _desktop_unsavedchanges_UnsavedFormChangesForm__WEBPACK_IMPORTED_MODULE_670__ = __webpack_require__(/*! ./desktop/unsavedchanges/UnsavedFormChangesForm */ "./src/desktop/unsavedchanges/UnsavedFormChangesForm.js");
55426
- /* harmony import */ var _desktop_unsavedchanges_UnsavedFormsLookupCall__WEBPACK_IMPORTED_MODULE_671__ = __webpack_require__(/*! ./desktop/unsavedchanges/UnsavedFormsLookupCall */ "./src/desktop/unsavedchanges/UnsavedFormsLookupCall.js");
55427
- /* harmony import */ var _table_TileTableHeaderBox__WEBPACK_IMPORTED_MODULE_672__ = __webpack_require__(/*! ./table/TileTableHeaderBox */ "./src/table/TileTableHeaderBox.js");
55428
- /* harmony import */ var _login_LoginApp__WEBPACK_IMPORTED_MODULE_673__ = __webpack_require__(/*! ./login/LoginApp */ "./src/login/LoginApp.js");
55429
- /* harmony import */ var _login_LoginBox__WEBPACK_IMPORTED_MODULE_674__ = __webpack_require__(/*! ./login/LoginBox */ "./src/login/LoginBox.js");
55430
- /* harmony import */ var _login_LogoutApp__WEBPACK_IMPORTED_MODULE_675__ = __webpack_require__(/*! ./login/LogoutApp */ "./src/login/LogoutApp.js");
55431
- /* harmony import */ var _login_LogoutBox__WEBPACK_IMPORTED_MODULE_676__ = __webpack_require__(/*! ./login/LogoutBox */ "./src/login/LogoutBox.js");
55432
- /* harmony import */ var _breadcrumbbar_BreadcrumbItem__WEBPACK_IMPORTED_MODULE_677__ = __webpack_require__(/*! ./breadcrumbbar/BreadcrumbItem */ "./src/breadcrumbbar/BreadcrumbItem.js");
55433
- /* harmony import */ var _breadcrumbbar_BreadcrumbItemAdapter__WEBPACK_IMPORTED_MODULE_678__ = __webpack_require__(/*! ./breadcrumbbar/BreadcrumbItemAdapter */ "./src/breadcrumbbar/BreadcrumbItemAdapter.js");
55434
- /* harmony import */ var _breadcrumbbar_BreadcrumbBar__WEBPACK_IMPORTED_MODULE_679__ = __webpack_require__(/*! ./breadcrumbbar/BreadcrumbBar */ "./src/breadcrumbbar/BreadcrumbBar.js");
55435
- /* harmony import */ var _breadcrumbbar_BreadcrumbBarLayout__WEBPACK_IMPORTED_MODULE_680__ = __webpack_require__(/*! ./breadcrumbbar/BreadcrumbBarLayout */ "./src/breadcrumbbar/BreadcrumbBarLayout.js");
55436
- /* harmony import */ var _breadcrumbbar_BreadcrumbBarAdapter__WEBPACK_IMPORTED_MODULE_681__ = __webpack_require__(/*! ./breadcrumbbar/BreadcrumbBarAdapter */ "./src/breadcrumbbar/BreadcrumbBarAdapter.js");
55437
- /* harmony import */ var _form_fields_breadcrumbbarfield_BreadcrumbBarField__WEBPACK_IMPORTED_MODULE_682__ = __webpack_require__(/*! ./form/fields/breadcrumbbarfield/BreadcrumbBarField */ "./src/form/fields/breadcrumbbarfield/BreadcrumbBarField.js");
55438
- /* harmony import */ var _form_fields_breadcrumbbarfield_BreadcrumbBarFieldAdapter__WEBPACK_IMPORTED_MODULE_683__ = __webpack_require__(/*! ./form/fields/breadcrumbbarfield/BreadcrumbBarFieldAdapter */ "./src/form/fields/breadcrumbbarfield/BreadcrumbBarFieldAdapter.js");
55439
- /* harmony import */ var _objectFactories__WEBPACK_IMPORTED_MODULE_684__ = __webpack_require__(/*! ./objectFactories */ "./src/objectFactories.js");
55440
- /* harmony import */ var _jquery_jquery_scout__WEBPACK_IMPORTED_MODULE_685__ = __webpack_require__(/*! ./jquery/jquery-scout */ "./src/jquery/jquery-scout.js");
55441
- /* harmony import */ var _jquery_jquery_scout_selectors__WEBPACK_IMPORTED_MODULE_686__ = __webpack_require__(/*! ./jquery/jquery-scout-selectors */ "./src/jquery/jquery-scout-selectors.js");
55442
- /* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_687__ = __webpack_require__(/*! ./index.js */ "./src/index.js");
55379
+ /* harmony import */ var _tile_fields_htmlfield_TileHtmlField__WEBPACK_IMPORTED_MODULE_597__ = __webpack_require__(/*! ./tile/fields/htmlfield/TileHtmlField */ "./src/tile/fields/htmlfield/TileHtmlField.js");
55380
+ /* harmony import */ var _tile_fields_tablefield_TileTableField__WEBPACK_IMPORTED_MODULE_598__ = __webpack_require__(/*! ./tile/fields/tablefield/TileTableField */ "./src/tile/fields/tablefield/TileTableField.js");
55381
+ /* harmony import */ var _tabbox_SimpleTab__WEBPACK_IMPORTED_MODULE_599__ = __webpack_require__(/*! ./tabbox/SimpleTab */ "./src/tabbox/SimpleTab.js");
55382
+ /* harmony import */ var _tabbox_SimpleTabArea__WEBPACK_IMPORTED_MODULE_600__ = __webpack_require__(/*! ./tabbox/SimpleTabArea */ "./src/tabbox/SimpleTabArea.js");
55383
+ /* harmony import */ var _tabbox_SimpleTabAreaLayout__WEBPACK_IMPORTED_MODULE_601__ = __webpack_require__(/*! ./tabbox/SimpleTabAreaLayout */ "./src/tabbox/SimpleTabAreaLayout.js");
55384
+ /* harmony import */ var _desktop_Desktop__WEBPACK_IMPORTED_MODULE_602__ = __webpack_require__(/*! ./desktop/Desktop */ "./src/desktop/Desktop.js");
55385
+ /* harmony import */ var _desktop_DesktopAdapter__WEBPACK_IMPORTED_MODULE_603__ = __webpack_require__(/*! ./desktop/DesktopAdapter */ "./src/desktop/DesktopAdapter.js");
55386
+ /* harmony import */ var _desktop_DesktopLogo__WEBPACK_IMPORTED_MODULE_604__ = __webpack_require__(/*! ./desktop/DesktopLogo */ "./src/desktop/DesktopLogo.js");
55387
+ /* harmony import */ var _desktop_DesktopLayout__WEBPACK_IMPORTED_MODULE_605__ = __webpack_require__(/*! ./desktop/DesktopLayout */ "./src/desktop/DesktopLayout.js");
55388
+ /* harmony import */ var _desktop_desktoptab_DesktopTab__WEBPACK_IMPORTED_MODULE_606__ = __webpack_require__(/*! ./desktop/desktoptab/DesktopTab */ "./src/desktop/desktoptab/DesktopTab.js");
55389
+ /* harmony import */ var _desktop_desktoptab_DesktopTabArea__WEBPACK_IMPORTED_MODULE_607__ = __webpack_require__(/*! ./desktop/desktoptab/DesktopTabArea */ "./src/desktop/desktoptab/DesktopTabArea.js");
55390
+ /* harmony import */ var _desktop_desktoptab_DesktopTabAreaLayout__WEBPACK_IMPORTED_MODULE_608__ = __webpack_require__(/*! ./desktop/desktoptab/DesktopTabAreaLayout */ "./src/desktop/desktoptab/DesktopTabAreaLayout.js");
55391
+ /* harmony import */ var _desktop_DesktopTabBoxController__WEBPACK_IMPORTED_MODULE_609__ = __webpack_require__(/*! ./desktop/DesktopTabBoxController */ "./src/desktop/DesktopTabBoxController.js");
55392
+ /* harmony import */ var _desktop_bench_DesktopTabSelectKeyStroke__WEBPACK_IMPORTED_MODULE_610__ = __webpack_require__(/*! ./desktop/bench/DesktopTabSelectKeyStroke */ "./src/desktop/bench/DesktopTabSelectKeyStroke.js");
55393
+ /* harmony import */ var _desktop_DisableBrowserF5ReloadKeyStroke__WEBPACK_IMPORTED_MODULE_611__ = __webpack_require__(/*! ./desktop/DisableBrowserF5ReloadKeyStroke */ "./src/desktop/DisableBrowserF5ReloadKeyStroke.js");
55394
+ /* harmony import */ var _desktop_PopupWindow__WEBPACK_IMPORTED_MODULE_612__ = __webpack_require__(/*! ./desktop/PopupWindow */ "./src/desktop/PopupWindow.js");
55395
+ /* harmony import */ var _desktop_OpenUriHandler__WEBPACK_IMPORTED_MODULE_613__ = __webpack_require__(/*! ./desktop/OpenUriHandler */ "./src/desktop/OpenUriHandler.js");
55396
+ /* harmony import */ var _desktop_bench_DesktopBench__WEBPACK_IMPORTED_MODULE_614__ = __webpack_require__(/*! ./desktop/bench/DesktopBench */ "./src/desktop/bench/DesktopBench.js");
55397
+ /* harmony import */ var _desktop_bench_BenchColumn__WEBPACK_IMPORTED_MODULE_615__ = __webpack_require__(/*! ./desktop/bench/BenchColumn */ "./src/desktop/bench/BenchColumn.js");
55398
+ /* harmony import */ var _desktop_bench_layout_BenchRowLayoutData__WEBPACK_IMPORTED_MODULE_616__ = __webpack_require__(/*! ./desktop/bench/layout/BenchRowLayoutData */ "./src/desktop/bench/layout/BenchRowLayoutData.js");
55399
+ /* harmony import */ var _desktop_bench_layout_BenchColumnLayoutData__WEBPACK_IMPORTED_MODULE_617__ = __webpack_require__(/*! ./desktop/bench/layout/BenchColumnLayoutData */ "./src/desktop/bench/layout/BenchColumnLayoutData.js");
55400
+ /* harmony import */ var _desktop_desktoptab_DisableBrowserTabSwitchingKeyStroke__WEBPACK_IMPORTED_MODULE_618__ = __webpack_require__(/*! ./desktop/desktoptab/DisableBrowserTabSwitchingKeyStroke */ "./src/desktop/desktoptab/DisableBrowserTabSwitchingKeyStroke.js");
55401
+ /* harmony import */ var _desktop_header_DesktopHeader__WEBPACK_IMPORTED_MODULE_619__ = __webpack_require__(/*! ./desktop/header/DesktopHeader */ "./src/desktop/header/DesktopHeader.js");
55402
+ /* harmony import */ var _desktop_header_HeaderTabBoxController__WEBPACK_IMPORTED_MODULE_620__ = __webpack_require__(/*! ./desktop/header/HeaderTabBoxController */ "./src/desktop/header/HeaderTabBoxController.js");
55403
+ /* harmony import */ var _desktop_header_DesktopHeaderLayout__WEBPACK_IMPORTED_MODULE_621__ = __webpack_require__(/*! ./desktop/header/DesktopHeaderLayout */ "./src/desktop/header/DesktopHeaderLayout.js");
55404
+ /* harmony import */ var _desktop_navigation_DesktopNavigation__WEBPACK_IMPORTED_MODULE_622__ = __webpack_require__(/*! ./desktop/navigation/DesktopNavigation */ "./src/desktop/navigation/DesktopNavigation.js");
55405
+ /* harmony import */ var _desktop_navigation_DesktopNavigationHandle__WEBPACK_IMPORTED_MODULE_623__ = __webpack_require__(/*! ./desktop/navigation/DesktopNavigationHandle */ "./src/desktop/navigation/DesktopNavigationHandle.js");
55406
+ /* harmony import */ var _desktop_navigation_DesktopNavigationLayout__WEBPACK_IMPORTED_MODULE_624__ = __webpack_require__(/*! ./desktop/navigation/DesktopNavigationLayout */ "./src/desktop/navigation/DesktopNavigationLayout.js");
55407
+ /* harmony import */ var _desktop_navigation_ShrinkNavigationKeyStroke__WEBPACK_IMPORTED_MODULE_625__ = __webpack_require__(/*! ./desktop/navigation/ShrinkNavigationKeyStroke */ "./src/desktop/navigation/ShrinkNavigationKeyStroke.js");
55408
+ /* harmony import */ var _desktop_navigation_EnlargeNavigationKeyStroke__WEBPACK_IMPORTED_MODULE_626__ = __webpack_require__(/*! ./desktop/navigation/EnlargeNavigationKeyStroke */ "./src/desktop/navigation/EnlargeNavigationKeyStroke.js");
55409
+ /* harmony import */ var _desktop_notification_DesktopNotification__WEBPACK_IMPORTED_MODULE_627__ = __webpack_require__(/*! ./desktop/notification/DesktopNotification */ "./src/desktop/notification/DesktopNotification.js");
55410
+ /* harmony import */ var _desktop_notification_DesktopNotificationAdapter__WEBPACK_IMPORTED_MODULE_628__ = __webpack_require__(/*! ./desktop/notification/DesktopNotificationAdapter */ "./src/desktop/notification/DesktopNotificationAdapter.js");
55411
+ /* harmony import */ var _desktop_notification_OfflineDesktopNotification__WEBPACK_IMPORTED_MODULE_629__ = __webpack_require__(/*! ./desktop/notification/OfflineDesktopNotification */ "./src/desktop/notification/OfflineDesktopNotification.js");
55412
+ /* harmony import */ var _desktop_popupblocker_PopupBlockerHandler__WEBPACK_IMPORTED_MODULE_630__ = __webpack_require__(/*! ./desktop/popupblocker/PopupBlockerHandler */ "./src/desktop/popupblocker/PopupBlockerHandler.js");
55413
+ /* harmony import */ var _desktop_popupblocker_PopupBlockerDesktopNotification__WEBPACK_IMPORTED_MODULE_631__ = __webpack_require__(/*! ./desktop/popupblocker/PopupBlockerDesktopNotification */ "./src/desktop/popupblocker/PopupBlockerDesktopNotification.js");
55414
+ /* harmony import */ var _desktop_toolbox_DesktopToolBox__WEBPACK_IMPORTED_MODULE_632__ = __webpack_require__(/*! ./desktop/toolbox/DesktopToolBox */ "./src/desktop/toolbox/DesktopToolBox.js");
55415
+ /* harmony import */ var _desktop_viewbutton_ViewButtonActionKeyStroke__WEBPACK_IMPORTED_MODULE_633__ = __webpack_require__(/*! ./desktop/viewbutton/ViewButtonActionKeyStroke */ "./src/desktop/viewbutton/ViewButtonActionKeyStroke.js");
55416
+ /* harmony import */ var _desktop_viewbutton_ViewButton__WEBPACK_IMPORTED_MODULE_634__ = __webpack_require__(/*! ./desktop/viewbutton/ViewButton */ "./src/desktop/viewbutton/ViewButton.js");
55417
+ /* harmony import */ var _desktop_viewbutton_ViewButtonAdapter__WEBPACK_IMPORTED_MODULE_635__ = __webpack_require__(/*! ./desktop/viewbutton/ViewButtonAdapter */ "./src/desktop/viewbutton/ViewButtonAdapter.js");
55418
+ /* harmony import */ var _desktop_viewbutton_ViewButtonBox__WEBPACK_IMPORTED_MODULE_636__ = __webpack_require__(/*! ./desktop/viewbutton/ViewButtonBox */ "./src/desktop/viewbutton/ViewButtonBox.js");
55419
+ /* harmony import */ var _desktop_viewbutton_ViewMenuOpenKeyStroke__WEBPACK_IMPORTED_MODULE_637__ = __webpack_require__(/*! ./desktop/viewbutton/ViewMenuOpenKeyStroke */ "./src/desktop/viewbutton/ViewMenuOpenKeyStroke.js");
55420
+ /* harmony import */ var _desktop_viewbutton_ViewMenuPopup__WEBPACK_IMPORTED_MODULE_638__ = __webpack_require__(/*! ./desktop/viewbutton/ViewMenuPopup */ "./src/desktop/viewbutton/ViewMenuPopup.js");
55421
+ /* harmony import */ var _desktop_viewbutton_ViewMenuPopupEnterKeyStroke__WEBPACK_IMPORTED_MODULE_639__ = __webpack_require__(/*! ./desktop/viewbutton/ViewMenuPopupEnterKeyStroke */ "./src/desktop/viewbutton/ViewMenuPopupEnterKeyStroke.js");
55422
+ /* harmony import */ var _desktop_viewbutton_ViewMenuTab__WEBPACK_IMPORTED_MODULE_640__ = __webpack_require__(/*! ./desktop/viewbutton/ViewMenuTab */ "./src/desktop/viewbutton/ViewMenuTab.js");
55423
+ /* harmony import */ var _desktop_outline_pages_Page__WEBPACK_IMPORTED_MODULE_641__ = __webpack_require__(/*! ./desktop/outline/pages/Page */ "./src/desktop/outline/pages/Page.js");
55424
+ /* harmony import */ var _desktop_outline_pages_PageWithNodes__WEBPACK_IMPORTED_MODULE_642__ = __webpack_require__(/*! ./desktop/outline/pages/PageWithNodes */ "./src/desktop/outline/pages/PageWithNodes.js");
55425
+ /* harmony import */ var _desktop_outline_pages_PageWithTable__WEBPACK_IMPORTED_MODULE_643__ = __webpack_require__(/*! ./desktop/outline/pages/PageWithTable */ "./src/desktop/outline/pages/PageWithTable.js");
55426
+ /* harmony import */ var _desktop_outline_pages_PageTileButton__WEBPACK_IMPORTED_MODULE_644__ = __webpack_require__(/*! ./desktop/outline/pages/PageTileButton */ "./src/desktop/outline/pages/PageTileButton.js");
55427
+ /* harmony import */ var _desktop_outline_pages_PageTileGrid__WEBPACK_IMPORTED_MODULE_645__ = __webpack_require__(/*! ./desktop/outline/pages/PageTileGrid */ "./src/desktop/outline/pages/PageTileGrid.js");
55428
+ /* harmony import */ var _desktop_outline_pages_PageTileGridSelectKeyStroke__WEBPACK_IMPORTED_MODULE_646__ = __webpack_require__(/*! ./desktop/outline/pages/PageTileGridSelectKeyStroke */ "./src/desktop/outline/pages/PageTileGridSelectKeyStroke.js");
55429
+ /* harmony import */ var _desktop_outline_pages_AutoLeafPageWithNodes__WEBPACK_IMPORTED_MODULE_647__ = __webpack_require__(/*! ./desktop/outline/pages/AutoLeafPageWithNodes */ "./src/desktop/outline/pages/AutoLeafPageWithNodes.js");
55430
+ /* harmony import */ var _desktop_outline_DetailTableTreeFilter__WEBPACK_IMPORTED_MODULE_648__ = __webpack_require__(/*! ./desktop/outline/DetailTableTreeFilter */ "./src/desktop/outline/DetailTableTreeFilter.js");
55431
+ /* harmony import */ var _desktop_outline_Outline__WEBPACK_IMPORTED_MODULE_649__ = __webpack_require__(/*! ./desktop/outline/Outline */ "./src/desktop/outline/Outline.js");
55432
+ /* harmony import */ var _desktop_outline_OutlineAdapter__WEBPACK_IMPORTED_MODULE_650__ = __webpack_require__(/*! ./desktop/outline/OutlineAdapter */ "./src/desktop/outline/OutlineAdapter.js");
55433
+ /* harmony import */ var _desktop_outline_OutlineMediator__WEBPACK_IMPORTED_MODULE_651__ = __webpack_require__(/*! ./desktop/outline/OutlineMediator */ "./src/desktop/outline/OutlineMediator.js");
55434
+ /* harmony import */ var _desktop_outline_OutlineLayout__WEBPACK_IMPORTED_MODULE_652__ = __webpack_require__(/*! ./desktop/outline/OutlineLayout */ "./src/desktop/outline/OutlineLayout.js");
55435
+ /* harmony import */ var _desktop_outline_OutlineViewButton__WEBPACK_IMPORTED_MODULE_653__ = __webpack_require__(/*! ./desktop/outline/OutlineViewButton */ "./src/desktop/outline/OutlineViewButton.js");
55436
+ /* harmony import */ var _desktop_outline_OutlineViewButtonAdapter__WEBPACK_IMPORTED_MODULE_654__ = __webpack_require__(/*! ./desktop/outline/OutlineViewButtonAdapter */ "./src/desktop/outline/OutlineViewButtonAdapter.js");
55437
+ /* harmony import */ var _desktop_outline_OutlineTileField__WEBPACK_IMPORTED_MODULE_655__ = __webpack_require__(/*! ./desktop/outline/OutlineTileField */ "./src/desktop/outline/OutlineTileField.js");
55438
+ /* harmony import */ var _desktop_outline_OutlineTileFieldAdapter__WEBPACK_IMPORTED_MODULE_656__ = __webpack_require__(/*! ./desktop/outline/OutlineTileFieldAdapter */ "./src/desktop/outline/OutlineTileFieldAdapter.js");
55439
+ /* harmony import */ var _desktop_outline_PageLayout__WEBPACK_IMPORTED_MODULE_657__ = __webpack_require__(/*! ./desktop/outline/PageLayout */ "./src/desktop/outline/PageLayout.js");
55440
+ /* harmony import */ var _desktop_outline_SearchOutline__WEBPACK_IMPORTED_MODULE_658__ = __webpack_require__(/*! ./desktop/outline/SearchOutline */ "./src/desktop/outline/SearchOutline.js");
55441
+ /* harmony import */ var _desktop_outline_SearchOutlineAdapter__WEBPACK_IMPORTED_MODULE_659__ = __webpack_require__(/*! ./desktop/outline/SearchOutlineAdapter */ "./src/desktop/outline/SearchOutlineAdapter.js");
55442
+ /* harmony import */ var _desktop_outline_SearchOutlineLayout__WEBPACK_IMPORTED_MODULE_660__ = __webpack_require__(/*! ./desktop/outline/SearchOutlineLayout */ "./src/desktop/outline/SearchOutlineLayout.js");
55443
+ /* harmony import */ var _desktop_outline_navigation_NavigateButton__WEBPACK_IMPORTED_MODULE_661__ = __webpack_require__(/*! ./desktop/outline/navigation/NavigateButton */ "./src/desktop/outline/navigation/NavigateButton.js");
55444
+ /* harmony import */ var _desktop_outline_navigation_NavigateDownButton__WEBPACK_IMPORTED_MODULE_662__ = __webpack_require__(/*! ./desktop/outline/navigation/NavigateDownButton */ "./src/desktop/outline/navigation/NavigateDownButton.js");
55445
+ /* harmony import */ var _desktop_outline_navigation_NavigateUpButton__WEBPACK_IMPORTED_MODULE_663__ = __webpack_require__(/*! ./desktop/outline/navigation/NavigateUpButton */ "./src/desktop/outline/navigation/NavigateUpButton.js");
55446
+ /* harmony import */ var _desktop_outline_keystrokes_OutlineKeyStrokeContext__WEBPACK_IMPORTED_MODULE_664__ = __webpack_require__(/*! ./desktop/outline/keystrokes/OutlineKeyStrokeContext */ "./src/desktop/outline/keystrokes/OutlineKeyStrokeContext.js");
55447
+ /* harmony import */ var _desktop_outline_keystrokes_OutlineNavigateToTopKeyStroke__WEBPACK_IMPORTED_MODULE_665__ = __webpack_require__(/*! ./desktop/outline/keystrokes/OutlineNavigateToTopKeyStroke */ "./src/desktop/outline/keystrokes/OutlineNavigateToTopKeyStroke.js");
55448
+ /* harmony import */ var _desktop_outline_overview_OutlineOverview__WEBPACK_IMPORTED_MODULE_666__ = __webpack_require__(/*! ./desktop/outline/overview/OutlineOverview */ "./src/desktop/outline/overview/OutlineOverview.js");
55449
+ /* harmony import */ var _desktop_outline_overview_TileOutlineOverview__WEBPACK_IMPORTED_MODULE_667__ = __webpack_require__(/*! ./desktop/outline/overview/TileOutlineOverview */ "./src/desktop/outline/overview/TileOutlineOverview.js");
55450
+ /* harmony import */ var _desktop_DesktopFormController__WEBPACK_IMPORTED_MODULE_668__ = __webpack_require__(/*! ./desktop/DesktopFormController */ "./src/desktop/DesktopFormController.js");
55451
+ /* harmony import */ var _table_FilterFieldsGroupBox__WEBPACK_IMPORTED_MODULE_669__ = __webpack_require__(/*! ./table/FilterFieldsGroupBox */ "./src/table/FilterFieldsGroupBox.js");
55452
+ /* harmony import */ var _resizable_Resizable__WEBPACK_IMPORTED_MODULE_670__ = __webpack_require__(/*! ./resizable/Resizable */ "./src/resizable/Resizable.js");
55453
+ /* harmony import */ var _desktop_unsavedchanges_UnsavedFormChangesForm__WEBPACK_IMPORTED_MODULE_671__ = __webpack_require__(/*! ./desktop/unsavedchanges/UnsavedFormChangesForm */ "./src/desktop/unsavedchanges/UnsavedFormChangesForm.js");
55454
+ /* harmony import */ var _desktop_unsavedchanges_UnsavedFormsLookupCall__WEBPACK_IMPORTED_MODULE_672__ = __webpack_require__(/*! ./desktop/unsavedchanges/UnsavedFormsLookupCall */ "./src/desktop/unsavedchanges/UnsavedFormsLookupCall.js");
55455
+ /* harmony import */ var _table_TileTableHeaderBox__WEBPACK_IMPORTED_MODULE_673__ = __webpack_require__(/*! ./table/TileTableHeaderBox */ "./src/table/TileTableHeaderBox.js");
55456
+ /* harmony import */ var _login_LoginApp__WEBPACK_IMPORTED_MODULE_674__ = __webpack_require__(/*! ./login/LoginApp */ "./src/login/LoginApp.js");
55457
+ /* harmony import */ var _login_LoginBox__WEBPACK_IMPORTED_MODULE_675__ = __webpack_require__(/*! ./login/LoginBox */ "./src/login/LoginBox.js");
55458
+ /* harmony import */ var _login_LogoutApp__WEBPACK_IMPORTED_MODULE_676__ = __webpack_require__(/*! ./login/LogoutApp */ "./src/login/LogoutApp.js");
55459
+ /* harmony import */ var _login_LogoutBox__WEBPACK_IMPORTED_MODULE_677__ = __webpack_require__(/*! ./login/LogoutBox */ "./src/login/LogoutBox.js");
55460
+ /* harmony import */ var _breadcrumbbar_BreadcrumbItem__WEBPACK_IMPORTED_MODULE_678__ = __webpack_require__(/*! ./breadcrumbbar/BreadcrumbItem */ "./src/breadcrumbbar/BreadcrumbItem.js");
55461
+ /* harmony import */ var _breadcrumbbar_BreadcrumbItemAdapter__WEBPACK_IMPORTED_MODULE_679__ = __webpack_require__(/*! ./breadcrumbbar/BreadcrumbItemAdapter */ "./src/breadcrumbbar/BreadcrumbItemAdapter.js");
55462
+ /* harmony import */ var _breadcrumbbar_BreadcrumbBar__WEBPACK_IMPORTED_MODULE_680__ = __webpack_require__(/*! ./breadcrumbbar/BreadcrumbBar */ "./src/breadcrumbbar/BreadcrumbBar.js");
55463
+ /* harmony import */ var _breadcrumbbar_BreadcrumbBarLayout__WEBPACK_IMPORTED_MODULE_681__ = __webpack_require__(/*! ./breadcrumbbar/BreadcrumbBarLayout */ "./src/breadcrumbbar/BreadcrumbBarLayout.js");
55464
+ /* harmony import */ var _breadcrumbbar_BreadcrumbBarAdapter__WEBPACK_IMPORTED_MODULE_682__ = __webpack_require__(/*! ./breadcrumbbar/BreadcrumbBarAdapter */ "./src/breadcrumbbar/BreadcrumbBarAdapter.js");
55465
+ /* harmony import */ var _form_fields_breadcrumbbarfield_BreadcrumbBarField__WEBPACK_IMPORTED_MODULE_683__ = __webpack_require__(/*! ./form/fields/breadcrumbbarfield/BreadcrumbBarField */ "./src/form/fields/breadcrumbbarfield/BreadcrumbBarField.js");
55466
+ /* harmony import */ var _form_fields_breadcrumbbarfield_BreadcrumbBarFieldAdapter__WEBPACK_IMPORTED_MODULE_684__ = __webpack_require__(/*! ./form/fields/breadcrumbbarfield/BreadcrumbBarFieldAdapter */ "./src/form/fields/breadcrumbbarfield/BreadcrumbBarFieldAdapter.js");
55467
+ /* harmony import */ var _objectFactories__WEBPACK_IMPORTED_MODULE_685__ = __webpack_require__(/*! ./objectFactories */ "./src/objectFactories.js");
55468
+ /* harmony import */ var _jquery_jquery_scout__WEBPACK_IMPORTED_MODULE_686__ = __webpack_require__(/*! ./jquery/jquery-scout */ "./src/jquery/jquery-scout.js");
55469
+ /* harmony import */ var _jquery_jquery_scout_selectors__WEBPACK_IMPORTED_MODULE_687__ = __webpack_require__(/*! ./jquery/jquery-scout-selectors */ "./src/jquery/jquery-scout-selectors.js");
55470
+ /* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_688__ = __webpack_require__(/*! ./index.js */ "./src/index.js");
55443
55471
  function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
55444
55472
 
55445
55473
  /*
55446
- * Copyright (c) 2010-2021 BSI Business Systems Integration AG.
55474
+ * Copyright (c) 2010-2022 BSI Business Systems Integration AG.
55447
55475
  * All rights reserved. This program and the accompanying materials
55448
55476
  * are made available under the terms of the Eclipse Public License v1.0
55449
55477
  * which accompanies this distribution, and is available at
@@ -56133,6 +56161,7 @@ function _extends() { _extends = Object.assign || function (target) { for (var i
56133
56161
 
56134
56162
 
56135
56163
 
56164
+
56136
56165
 
56137
56166
 
56138
56167
  // The following files don't export anything but they need to be imported so they participate on the webpack build
@@ -56145,7 +56174,7 @@ function _extends() { _extends = Object.assign || function (target) { for (var i
56145
56174
 
56146
56175
 
56147
56176
 
56148
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_index_js__WEBPACK_IMPORTED_MODULE_687__);
56177
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_index_js__WEBPACK_IMPORTED_MODULE_688__);
56149
56178
  /**
56150
56179
  * @typedef {Form|TileOverviewForm|UnsavedFormChangesForm|FieldStatus|StatusMenuMapping|FormField|CompositeField|ValueField|WidgetField|Button|WizardProgressField|CarouselField|TileField|TreeField|ImageField|TableField
56151
56180
  * |PlaceholderField|WrappedFormField|PlannerField|CalendarField|AccordionField|BreadcrumbBarField|OutlineTileField|TabArea|TabBoxHeader|Tab|ProposalChooser|TableProposalChooser|TreeProposalChooser|MenuBarBox|MenuBar|MenuBox
@@ -56159,7 +56188,7 @@ function _extends() { _extends = Object.assign || function (target) { for (var i
56159
56188
  // Note: the scout object on the window still needs its own scout object (window.scout.scout).
56160
56189
  // It is required when the eclipse-core/scout is mapped as external webpack library to window.scout
56161
56190
 
56162
- let windowScout = { ..._index_js__WEBPACK_IMPORTED_MODULE_687__,
56191
+ let windowScout = { ..._index_js__WEBPACK_IMPORTED_MODULE_688__,
56163
56192
  ..._scout__WEBPACK_IMPORTED_MODULE_0__
56164
56193
  }; // Add the scout object to the window
56165
56194
 
@@ -56226,7 +56255,7 @@ __webpack_require__.r(__webpack_exports__);
56226
56255
  /* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);
56227
56256
  /* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../index */ "./src/index.js");
56228
56257
  /*
56229
- * Copyright (c) 2010-2021 BSI Business Systems Integration AG.
56258
+ * Copyright (c) 2010-2022 BSI Business Systems Integration AG.
56230
56259
  * All rights reserved. This program and the accompanying materials
56231
56260
  * are made available under the terms of the Eclipse Public License v1.0
56232
56261
  * which accompanies this distribution, and is available at
@@ -57379,17 +57408,19 @@ const __origCleanData = (jquery__WEBPACK_IMPORTED_MODULE_0___default().cleanData
57379
57408
  return this;
57380
57409
  }
57381
57410
 
57382
- return this.on('animationend webkitAnimationEnd', event => {
57411
+ let oneHandler = event => {
57383
57412
  if (event.target !== this[0]) {
57384
57413
  // Ignore events that bubble up from child elements
57385
57414
  return;
57386
57415
  } // Unregister listener to implement "one" semantics
57387
57416
 
57388
57417
 
57389
- this.off(event); // Notify actual event handler
57418
+ this.off('animationend webkitAnimationEnd', oneHandler); // Notify actual event handler
57390
57419
 
57391
57420
  handler(event);
57392
- });
57421
+ };
57422
+
57423
+ return this.on('animationend webkitAnimationEnd', oneHandler);
57393
57424
  };
57394
57425
 
57395
57426
  (jquery__WEBPACK_IMPORTED_MODULE_0___default().fn.hasAnimationClass) = function () {
@@ -73832,7 +73863,9 @@ class ModeSelector extends _index__WEBPACK_IMPORTED_MODULE_0__.Widget {
73832
73863
 
73833
73864
  if (this.selectedMode && this.selectedMode.$container) {
73834
73865
  selectedModePosX = _index__WEBPACK_IMPORTED_MODULE_0__.graphics.position(this.selectedMode.$container).x;
73835
- selectedModeWidth = _index__WEBPACK_IMPORTED_MODULE_0__.graphics.size(this.selectedMode.$container).width;
73866
+ selectedModeWidth = _index__WEBPACK_IMPORTED_MODULE_0__.graphics.size(this.selectedMode.$container, {
73867
+ exact: true
73868
+ }).width;
73836
73869
  }
73837
73870
 
73838
73871
  this.$slider.cssLeft(selectedModePosX);
@@ -76769,7 +76802,7 @@ __webpack_require__.r(__webpack_exports__);
76769
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; }
76770
76803
 
76771
76804
  /*
76772
- * Copyright (c) 2010-2021 BSI Business Systems Integration AG.
76805
+ * Copyright (c) 2010-2022 BSI Business Systems Integration AG.
76773
76806
  * All rights reserved. This program and the accompanying materials
76774
76807
  * are made available under the terms of the Eclipse Public License v1.0
76775
76808
  * which accompanies this distribution, and is available at
@@ -76901,20 +76934,18 @@ class Popup extends _index__WEBPACK_IMPORTED_MODULE_0__.Widget {
76901
76934
 
76902
76935
  _openWithoutParent() {
76903
76936
  // resolve parent for entry-point (don't change the actual property)
76904
- let parent = this.parent;
76905
-
76906
- if (parent.destroyed) {
76937
+ if (this.parent.destroyed) {
76907
76938
  return;
76908
76939
  }
76909
76940
 
76910
- if (parent.rendered || parent.rendering) {
76911
- this.open(parent.entryPoint());
76941
+ if (this.parent.rendered || this.parent.rendering) {
76942
+ this.open(this._getDefaultOpen$Parent());
76912
76943
  return;
76913
76944
  } // This is important for popups rendered in another (native) browser window. The DOM in the popup window
76914
76945
  // is rendered later, so we must wait until that window is rendered and layouted. See popup-window.html.
76915
76946
 
76916
76947
 
76917
- parent.one('render', () => {
76948
+ this.parent.one('render', () => {
76918
76949
  this.session.layoutValidator.schedulePostValidateFunction(() => {
76919
76950
  if (this.destroyed || this.rendered) {
76920
76951
  return;
@@ -76924,6 +76955,15 @@ class Popup extends _index__WEBPACK_IMPORTED_MODULE_0__.Widget {
76924
76955
  });
76925
76956
  });
76926
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
+ }
76927
76967
 
76928
76968
  open($parent) {
76929
76969
  if (!$parent) {
@@ -77201,6 +77241,16 @@ class Popup extends _index__WEBPACK_IMPORTED_MODULE_0__.Widget {
77201
77241
  return cssClass;
77202
77242
  }
77203
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
+
77204
77254
  _isRemovalPrevented() {
77205
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.
77206
77256
  // However, if the popup itself is removed by an animation, removal should be prevented to ensure remove() won't run multiple times.
@@ -77850,7 +77900,7 @@ class Popup extends _index__WEBPACK_IMPORTED_MODULE_0__.Widget {
77850
77900
  }
77851
77901
 
77852
77902
  _handleGlassPanes() {
77853
- 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 rerendered to ensure a glass pane is also painted over the popup
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
77854
77904
 
77855
77905
  if (parentCoveredByGlassPane) {
77856
77906
  this.session.focusManager.rerenderGlassPanes();
@@ -77991,7 +78041,7 @@ __webpack_require__.r(__webpack_exports__);
77991
78041
  /* harmony export */ });
77992
78042
  /* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../index */ "./src/index.js");
77993
78043
  /*
77994
- * Copyright (c) 2014-2020 BSI Business Systems Integration AG.
78044
+ * Copyright (c) 2010-2022 BSI Business Systems Integration AG.
77995
78045
  * All rights reserved. This program and the accompanying materials
77996
78046
  * are made available under the terms of the Eclipse Public License v1.0
77997
78047
  * which accompanies this distribution, and is available at
@@ -78131,9 +78181,6 @@ class PopupLayout extends _index__WEBPACK_IMPORTED_MODULE_0__.AbstractLayout {
78131
78181
 
78132
78182
 
78133
78183
  _calcMaxSize() {
78134
- // Position the popup at the desired location before doing any calculations to consider the preferred bounds
78135
- this._position(false);
78136
-
78137
78184
  let maxWidth,
78138
78185
  maxHeight,
78139
78186
  htmlComp = this.popup.htmlComp,
@@ -78152,7 +78199,7 @@ class PopupLayout extends _index__WEBPACK_IMPORTED_MODULE_0__.AbstractLayout {
78152
78199
  windowSize = this._calcMaxSize(),
78153
78200
  Alignment = _index__WEBPACK_IMPORTED_MODULE_0__.Popup.Alignment,
78154
78201
  horizontalAlignment = this.popup.horizontalAlignment,
78155
- verticalAlignment = this.popup.verticalAlignment; // Decide whether the prefSize can be used or the popup needs to be shrinked so that it fits into the viewport
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
78156
78203
  // The decision is based on the preferred opening direction
78157
78204
  // Example: The popup would like to be opened leftedge and bottom
78158
78205
  // If there is enough space on the right and on the bottom -> pref size is used
@@ -78219,9 +78266,6 @@ class PopupLayout extends _index__WEBPACK_IMPORTED_MODULE_0__.AbstractLayout {
78219
78266
 
78220
78267
 
78221
78268
  _calcMaxSizeAroundAnchor() {
78222
- // Position the popup at the desired location before doing any calculations because positioning adds CSS classes which might change margins
78223
- this._position(false);
78224
-
78225
78269
  let maxWidthLeft,
78226
78270
  maxWidthRight,
78227
78271
  maxHeightDown,
@@ -80805,7 +80849,7 @@ __webpack_require__.r(__webpack_exports__);
80805
80849
  /* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! jquery */ "jquery");
80806
80850
  /* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_1__);
80807
80851
  /*
80808
- * Copyright (c) 2010-2021 BSI Business Systems Integration AG.
80852
+ * Copyright (c) 2010-2022 BSI Business Systems Integration AG.
80809
80853
  * All rights reserved. This program and the accompanying materials
80810
80854
  * are made available under the terms of the Eclipse Public License v1.0
80811
80855
  * which accompanies this distribution, and is available at
@@ -80975,7 +81019,19 @@ function installScrollShadow($container, session, options) {
80975
81019
 
80976
81020
  _installIntersectionObserver();
80977
81021
 
80978
- 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);
80979
81035
  }
80980
81036
  function uninstallScrollShadow($container, session) {
80981
81037
  let $shadow = $container.data('scroll-shadow');
@@ -80998,6 +81054,12 @@ function uninstallScrollShadow($container, session) {
80998
81054
  intersectionObserver.unobserve($container[0]);
80999
81055
  }
81000
81056
 
81057
+ let visibleListener = $container.data('scroll-shadow-visible-listener');
81058
+
81059
+ if (visibleListener) {
81060
+ $container.off('hide show', visibleListener);
81061
+ }
81062
+
81001
81063
  let $scrollables = _$scrollables[session];
81002
81064
 
81003
81065
  if (!$scrollables || !$scrollables.some($scrollable => $scrollable.data('scroll-shadow'))) {
@@ -81073,7 +81135,7 @@ function updateScrollShadow($container) {
81073
81135
  $shadow.toggleClass('right', !atRight && style.indexOf('right') > -1);
81074
81136
  _index__WEBPACK_IMPORTED_MODULE_0__.graphics.setBounds($shadow, _index__WEBPACK_IMPORTED_MODULE_0__.graphics.bounds($container, {
81075
81137
  exact: true
81076
- }));
81138
+ }).subtract(insets($shadow)));
81077
81139
  _index__WEBPACK_IMPORTED_MODULE_0__.graphics.setMargins($shadow, _index__WEBPACK_IMPORTED_MODULE_0__.graphics.margins($container));
81078
81140
  $shadow.css('border-radius', $container.css('border-radius'));
81079
81141
  let customizer = $container.data('scroll-shadow-customizer');
@@ -81089,6 +81151,10 @@ function updateScrollShadow($container) {
81089
81151
  function atEnd(scrollPos, scrollSize, offsetSize) {
81090
81152
  return scrollPos + 1 >= scrollSize - offsetSize;
81091
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
+ }
81092
81158
  }
81093
81159
  /**
81094
81160
  * Installs a dom mutation observer that tracks all scrollables in order to move the scroll shadow along with the scrollable.
@@ -81580,7 +81646,7 @@ function scrollToBottom($scrollable, options) {
81580
81646
  /**
81581
81647
  * @param location object with x and y properties
81582
81648
  * @param $scrollables one or more scrollables to check against
81583
- * @eturns {boolean} true if the location is visible in the current viewport of all the $scrollables, or if $scrollables is null
81649
+ * @returns {boolean} true if the location is visible in the current viewport of all the $scrollables, or if $scrollables is null
81584
81650
  */
81585
81651
 
81586
81652
  function isLocationInView(location, $scrollables) {
@@ -83190,7 +83256,7 @@ __webpack_require__.r(__webpack_exports__);
83190
83256
  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; }
83191
83257
 
83192
83258
  /*
83193
- * Copyright (c) 2010-2021 BSI Business Systems Integration AG.
83259
+ * Copyright (c) 2010-2022 BSI Business Systems Integration AG.
83194
83260
  * All rights reserved. This program and the accompanying materials
83195
83261
  * are made available under the terms of the Eclipse Public License v1.0
83196
83262
  * which accompanies this distribution, and is available at
@@ -83623,6 +83689,8 @@ class Session {
83623
83689
 
83624
83690
  this.desktop = this.getOrCreateWidget(clientSessionData.desktop, this.rootAdapter.widget);
83625
83691
 
83692
+ _index__WEBPACK_IMPORTED_MODULE_0__.App.get()._triggerDesktopReady(this.desktop);
83693
+
83626
83694
  let renderDesktopImpl = function () {
83627
83695
  this._renderDesktop(); // In case the server sent additional events, process them
83628
83696
 
@@ -83644,6 +83712,9 @@ class Session {
83644
83712
  this._resumeBackgroundJobPolling();
83645
83713
 
83646
83714
  this.ready = true;
83715
+
83716
+ _index__WEBPACK_IMPORTED_MODULE_0__.App.get()._triggerSessionReady(this);
83717
+
83647
83718
  jquery__WEBPACK_IMPORTED_MODULE_1___default().log.isInfoEnabled() && jquery__WEBPACK_IMPORTED_MODULE_1___default().log.info('Session initialized. Detected ' + _index__WEBPACK_IMPORTED_MODULE_0__.Device.get());
83648
83719
 
83649
83720
  if (jquery__WEBPACK_IMPORTED_MODULE_1___default().log.isDebugEnabled()) {
@@ -87695,7 +87766,7 @@ __webpack_require__.r(__webpack_exports__);
87695
87766
  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; }
87696
87767
 
87697
87768
  /*
87698
- * Copyright (c) 2010-2021 BSI Business Systems Integration AG.
87769
+ * Copyright (c) 2010-2022 BSI Business Systems Integration AG.
87699
87770
  * All rights reserved. This program and the accompanying materials
87700
87771
  * are made available under the terms of the Eclipse Public License v1.0
87701
87772
  * which accompanies this distribution, and is available at
@@ -87716,6 +87787,7 @@ class Table extends _index__WEBPACK_IMPORTED_MODULE_0__.Widget {
87716
87787
  this.contextColumn = null;
87717
87788
  this.checkable = false;
87718
87789
  this.checkableStyle = Table.CheckableStyle.CHECKBOX;
87790
+ this.cellEditorPopup = null;
87719
87791
  this.compact = false;
87720
87792
  this.compactHandler = _index__WEBPACK_IMPORTED_MODULE_0__.scout.create('TableCompactHandler', {
87721
87793
  table: this
@@ -87797,6 +87869,7 @@ class Table extends _index__WEBPACK_IMPORTED_MODULE_0__.Widget {
87797
87869
  this._popupOpenHandler = this._onDesktopPopupOpen.bind(this);
87798
87870
  this._rerenderViewPortAfterAttach = false;
87799
87871
  this._renderViewPortAfterAttach = false;
87872
+ this._postAttachActions = [];
87800
87873
  this._desktopPropertyChangeHandler = this._onDesktopPropertyChange.bind(this);
87801
87874
 
87802
87875
  this._addWidgetProperties(['tableControls', 'menus', 'keyStrokes', 'staticMenus', 'tileTableHeader', 'tableTileGridMediator']);
@@ -88127,8 +88200,6 @@ class Table extends _index__WEBPACK_IMPORTED_MODULE_0__.Widget {
88127
88200
  }
88128
88201
 
88129
88202
  _removeData() {
88130
- this._destroyCellEditorPopup();
88131
-
88132
88203
  this._removeAggregateRows();
88133
88204
 
88134
88205
  this._uninstallImageListeners();
@@ -88313,13 +88384,13 @@ class Table extends _index__WEBPACK_IMPORTED_MODULE_0__.Widget {
88313
88384
  return;
88314
88385
  }
88315
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
+
88316
88389
  if (mouseButton === 1) {
88317
88390
  column.onMouseUp(event, $row);
88318
88391
  $appLink = this._find$AppLink(event);
88319
88392
  }
88320
88393
 
88321
- let row = $row.data('row');
88322
-
88323
88394
  if ($appLink) {
88324
88395
  this._triggerAppLinkAction(column, row, $appLink.data('ref'), $appLink);
88325
88396
  } else {
@@ -88559,9 +88630,8 @@ class Table extends _index__WEBPACK_IMPORTED_MODULE_0__.Widget {
88559
88630
  let $row = $cell.parent();
88560
88631
  return $row.data('aggregateRow')
88561
88632
  /* row in the table */
88562
- || $row.hasClass('table-aggregate')
88633
+ || $row.hasClass('table-aggregate');
88563
88634
  /* aggregate table control */
88564
- ;
88565
88635
  }
88566
88636
 
88567
88637
  reload(reloadReason) {
@@ -89886,8 +89956,26 @@ class Table extends _index__WEBPACK_IMPORTED_MODULE_0__.Widget {
89886
89956
  });
89887
89957
  }
89888
89958
  /**
89889
- * This functions starts the cell editor for the given row and column. Prepare must wait until
89890
- * a pending completeCellEdit operation is resolved.
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.
89891
89979
  */
89892
89980
 
89893
89981
 
@@ -89901,10 +89989,10 @@ class Table extends _index__WEBPACK_IMPORTED_MODULE_0__.Widget {
89901
89989
  return promise.then(this.prepareCellEditInternal.bind(this, column, row, openFieldPopupOnCellEdit));
89902
89990
  }
89903
89991
  /**
89904
- * @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
89905
89993
  * additional property 'cellEditor' on the editor-field. The field instance may use this property
89906
89994
  * to decide whether or not it should open a popup immediately after it is rendered. This is used
89907
- * for Smart- and DateFields.
89995
+ * for Smart- and DateFields. Default is false.
89908
89996
  */
89909
89997
 
89910
89998
 
@@ -90039,7 +90127,7 @@ class Table extends _index__WEBPACK_IMPORTED_MODULE_0__.Widget {
90039
90127
  let cell, column, predicate;
90040
90128
 
90041
90129
  predicate = function (column) {
90042
- if (column.guiOnly) {
90130
+ if (!column.isVisible() || column.guiOnly) {
90043
90131
  // does not support tabbing
90044
90132
  return false;
90045
90133
  }
@@ -90991,12 +91079,23 @@ class Table extends _index__WEBPACK_IMPORTED_MODULE_0__.Widget {
90991
91079
  }
90992
91080
 
90993
91081
  startCellEdit(column, row, field) {
90994
- if (!this._isDataRendered() || !this.isAttachedAndRendered()) {
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()) {
90995
91088
  this._postRenderActions.push(this.startCellEdit.bind(this, column, row, field));
90996
91089
 
90997
91090
  return;
90998
91091
  }
90999
91092
 
91093
+ if (!this.$container.isAttached()) {
91094
+ this._postAttachActions.push(this.startCellEdit.bind(this, column, row, field));
91095
+
91096
+ return;
91097
+ }
91098
+
91000
91099
  this.trigger('startCellEdit', {
91001
91100
  column: column,
91002
91101
  row: row,
@@ -91005,6 +91104,7 @@ class Table extends _index__WEBPACK_IMPORTED_MODULE_0__.Widget {
91005
91104
  this.ensureRowRendered(row);
91006
91105
  let popup = column.startCellEdit(row, field);
91007
91106
  this.cellEditorPopup = popup;
91107
+ this.$container.toggleClass('has-cell-editor-popup', !!popup);
91008
91108
  return popup;
91009
91109
  }
91010
91110
  /**
@@ -91015,12 +91115,6 @@ class Table extends _index__WEBPACK_IMPORTED_MODULE_0__.Widget {
91015
91115
 
91016
91116
 
91017
91117
  endCellEdit(field, saveEditorValue) {
91018
- if (!this._isDataRendered() || !this.isAttachedAndRendered()) {
91019
- this._postRenderActions.push(this.endCellEdit.bind(this, field, saveEditorValue));
91020
-
91021
- return;
91022
- }
91023
-
91024
91118
  if (!this.cellEditorPopup) {
91025
91119
  // the cellEditorPopup could already be removed by scrolling (out of view range) or be removed by update rows
91026
91120
  field.destroy();
@@ -91771,7 +91865,7 @@ class Table extends _index__WEBPACK_IMPORTED_MODULE_0__.Widget {
91771
91865
 
91772
91866
  if (filter instanceof _index__WEBPACK_IMPORTED_MODULE_0__.TableUserFilter) {
91773
91867
  let previousFilter = this.getFilter(filter.createKey());
91774
- this.filterSupport.removeFilter(previousFilter);
91868
+ this.filterSupport.removeFilter(previousFilter, false);
91775
91869
  }
91776
91870
 
91777
91871
  let added = this.filterSupport.addFilter(filter, applyFilter);
@@ -92799,7 +92893,11 @@ class Table extends _index__WEBPACK_IMPORTED_MODULE_0__.Widget {
92799
92893
  this.$container.toggleClass('table-row-check', this.checkableStyle === Table.CheckableStyle.TABLE_ROW);
92800
92894
 
92801
92895
  if (this._isDataRendered()) {
92896
+ this._updateRowWidth();
92897
+
92802
92898
  this._redraw();
92899
+
92900
+ this.invalidateLayoutTree();
92803
92901
  }
92804
92902
  }
92805
92903
  /**
@@ -93536,20 +93634,6 @@ class Table extends _index__WEBPACK_IMPORTED_MODULE_0__.Widget {
93536
93634
  }
93537
93635
  }
93538
93636
 
93539
- focusCell(column, row) {
93540
- if (!this._isDataRendered() || !this.isAttachedAndRendered()) {
93541
- this._postRenderActions.push(this.focusCell.bind(this, column, row));
93542
-
93543
- return;
93544
- }
93545
-
93546
- let cell = this.cell(column, row);
93547
-
93548
- if (this.enabledComputed && row.enabled && cell.editable) {
93549
- this.prepareCellEdit(column, row, false);
93550
- }
93551
- }
93552
-
93553
93637
  _attach() {
93554
93638
  this.$parent.append(this.$container);
93555
93639
 
@@ -93580,6 +93664,10 @@ class Table extends _index__WEBPACK_IMPORTED_MODULE_0__.Widget {
93580
93664
  this._rerenderViewportAfterAttach();
93581
93665
 
93582
93666
  this._renderViewportAfterAttach();
93667
+
93668
+ let actions = this._postAttachActions;
93669
+ this._postAttachActions = [];
93670
+ actions.forEach(action => action());
93583
93671
  }
93584
93672
 
93585
93673
  _rerenderViewportAfterAttach() {
@@ -93610,12 +93698,6 @@ class Table extends _index__WEBPACK_IMPORTED_MODULE_0__.Widget {
93610
93698
 
93611
93699
  super._detach();
93612
93700
  }
93613
-
93614
- _onDetach() {
93615
- super._onDetach();
93616
-
93617
- this._destroyCellEditorPopup();
93618
- }
93619
93701
  /**
93620
93702
  * @param {function} [callback] function to be called right after the popup is destroyed
93621
93703
  */
@@ -93635,6 +93717,10 @@ class Table extends _index__WEBPACK_IMPORTED_MODULE_0__.Widget {
93635
93717
  this.cellEditorPopup.destroy();
93636
93718
  this.cellEditorPopup = null;
93637
93719
 
93720
+ if (this.$container) {
93721
+ this.$container.removeClass('has-cell-editor-popup');
93722
+ }
93723
+
93638
93724
  if (callback) {
93639
93725
  callback();
93640
93726
  }
@@ -96408,7 +96494,8 @@ class TableHeader extends _index__WEBPACK_IMPORTED_MODULE_0__.Widget {
96408
96494
 
96409
96495
  if (column.sortActive || column.grouped || filtered) {
96410
96496
  if (column.minWidth < _index__WEBPACK_IMPORTED_MODULE_0__.Column.DEFAULT_MIN_WIDTH) {
96411
- column.prefMinWidth = column.minWidth;
96497
+ column.__minWidthWithoutState = column.minWidth;
96498
+ column.__widthWithoutState = column.width;
96412
96499
  column.minWidth = _index__WEBPACK_IMPORTED_MODULE_0__.Column.DEFAULT_MIN_WIDTH;
96413
96500
  }
96414
96501
 
@@ -96416,14 +96503,16 @@ class TableHeader extends _index__WEBPACK_IMPORTED_MODULE_0__.Widget {
96416
96503
  this.table.resizeColumn(column, column.minWidth);
96417
96504
  }
96418
96505
  } else {
96419
- // Reset to preferred min width if no state is visible
96420
- if (column.prefMinWidth !== null) {
96421
- column.minWidth = column.prefMinWidth;
96422
- 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
96423
96509
 
96424
96510
  if (column.width === _index__WEBPACK_IMPORTED_MODULE_0__.Column.DEFAULT_MIN_WIDTH) {
96425
- this.table.resizeColumn(column, column.minWidth);
96511
+ this.table.resizeColumn(column, column.__widthWithoutState);
96426
96512
  }
96513
+
96514
+ column.__minWidthWithoutState = null;
96515
+ column.__widthWithoutState = null;
96427
96516
  }
96428
96517
  }
96429
96518
  }
@@ -97007,7 +97096,10 @@ class TableHeaderMenu extends _index__WEBPACK_IMPORTED_MODULE_0__.Popup {
97007
97096
  this.filterTable.off('rowsChecked', this._filterTableRowsCheckedHandler);
97008
97097
  }
97009
97098
 
97010
- this.tableHeader.$container.off('scroll', this._tableHeaderScrollHandler);
97099
+ if (this.tableHeader.rendered) {
97100
+ this.tableHeader.$container.off('scroll', this._tableHeaderScrollHandler);
97101
+ }
97102
+
97011
97103
  this.$headerItem.select(false);
97012
97104
  this.table.off('columnMoved', this._onColumnMovedHandler);
97013
97105
  this.table.off('filterAdded', this._tableFilterHandler);
@@ -101352,7 +101444,7 @@ __webpack_require__.r(__webpack_exports__);
101352
101444
  /* harmony export */ });
101353
101445
  /* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../index */ "./src/index.js");
101354
101446
  /*
101355
- * Copyright (c) 2010-2020 BSI Business Systems Integration AG.
101447
+ * Copyright (c) 2010-2022 BSI Business Systems Integration AG.
101356
101448
  * All rights reserved. This program and the accompanying materials
101357
101449
  * are made available under the terms of the Eclipse Public License v1.0
101358
101450
  * which accompanies this distribution, and is available at
@@ -101373,7 +101465,7 @@ class BooleanColumn extends _index__WEBPACK_IMPORTED_MODULE_0__.Column {
101373
101465
  this.comparator = _index__WEBPACK_IMPORTED_MODULE_0__.comparators.NUMERIC;
101374
101466
  this.filterType = 'ColumnUserFilter';
101375
101467
  this.horizontalAlignment = 0;
101376
- this.minWidth = _index__WEBPACK_IMPORTED_MODULE_0__.Column.NARROW_MIN_WIDTH;
101468
+ this.minWidth = _index__WEBPACK_IMPORTED_MODULE_0__.Column.SMALL_MIN_WIDTH;
101377
101469
  this.triStateEnabled = false;
101378
101470
  this.textBased = false;
101379
101471
  }
@@ -101556,7 +101648,7 @@ __webpack_require__.r(__webpack_exports__);
101556
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; }
101557
101649
 
101558
101650
  /*
101559
- * Copyright (c) 2010-2021 BSI Business Systems Integration AG.
101651
+ * Copyright (c) 2010-2022 BSI Business Systems Integration AG.
101560
101652
  * All rights reserved. This program and the accompanying materials
101561
101653
  * are made available under the terms of the Eclipse Public License v1.0
101562
101654
  * which accompanies this distribution, and is available at
@@ -101600,7 +101692,6 @@ class Column {
101600
101692
  this.width = 60;
101601
101693
  this.initialWidth = undefined; // the width the column initially has
101602
101694
 
101603
- this.prefMinWidth = null;
101604
101695
  this.minWidth = Column.DEFAULT_MIN_WIDTH; // the minimal width the column can have
101605
101696
 
101606
101697
  this.showSeparator = true;
@@ -101627,7 +101718,6 @@ class Column {
101627
101718
  this.$separator = null;
101628
101719
  }
101629
101720
 
101630
- // for columns without text (icon, check box)
101631
101721
  init(model) {
101632
101722
  this.session = model.session; // Copy all properties from model to this
101633
101723
 
@@ -102696,6 +102786,8 @@ class Column {
102696
102786
 
102697
102787
  _defineProperty(Column, "DEFAULT_MIN_WIDTH", 60);
102698
102788
 
102789
+ _defineProperty(Column, "SMALL_MIN_WIDTH", 38);
102790
+
102699
102791
  _defineProperty(Column, "NARROW_MIN_WIDTH", 32);
102700
102792
 
102701
102793
  /***/ }),
@@ -102899,7 +102991,7 @@ class ColumnOptimalWidthMeasurer {
102899
102991
 
102900
102992
  let $neighbour = cellRange[cellRange.length - 1];
102901
102993
 
102902
- if ($neighbour.hasClass('empty') || $cell.hasClass('halign-right') == $neighbour.hasClass('halign-right')) {
102994
+ if ($neighbour.hasClass('empty') || $cell.hasClass('halign-right') === $neighbour.hasClass('halign-right')) {
102903
102995
  return 0;
102904
102996
  }
102905
102997
 
@@ -105594,7 +105686,7 @@ __webpack_require__.r(__webpack_exports__);
105594
105686
  /* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! jquery */ "jquery");
105595
105687
  /* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_1__);
105596
105688
  /*
105597
- * Copyright (c) 2014-2018 BSI Business Systems Integration AG.
105689
+ * Copyright (c) 2010-2022 BSI Business Systems Integration AG.
105598
105690
  * All rights reserved. This program and the accompanying materials
105599
105691
  * are made available under the terms of the Eclipse Public License v1.0
105600
105692
  * which accompanies this distribution, and is available at
@@ -105656,6 +105748,14 @@ class CellEditorPopup extends _index__WEBPACK_IMPORTED_MODULE_0__.Popup {
105656
105748
  this.position();
105657
105749
  this.pack();
105658
105750
  }
105751
+ /**
105752
+ * @override
105753
+ */
105754
+
105755
+
105756
+ _getDefaultOpen$Parent() {
105757
+ return this.table.$data;
105758
+ }
105659
105759
 
105660
105760
  _render() {
105661
105761
  super._render(); // determine CSS class for first and last column, required for additional margins/padding in cell-editor
@@ -111907,7 +112007,7 @@ class TileGrid extends _index__WEBPACK_IMPORTED_MODULE_0__.Widget {
111907
112007
  }
111908
112008
 
111909
112009
  _onAnimatedTileRemove(tile) {
111910
- if (!tile.rendered || !tile.animateRemoval) {
112010
+ if (!tile.removalPending) {
111911
112011
  return;
111912
112012
  }
111913
112013
 
@@ -113355,7 +113455,7 @@ __webpack_require__.r(__webpack_exports__);
113355
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; }
113356
113456
 
113357
113457
  /*
113358
- * Copyright (c) 2010-2021 BSI Business Systems Integration AG.
113458
+ * Copyright (c) 2010-2022 BSI Business Systems Integration AG.
113359
113459
  * All rights reserved. This program and the accompanying materials
113360
113460
  * are made available under the terms of the Eclipse Public License v1.0
113361
113461
  * which accompanies this distribution, and is available at
@@ -113520,7 +113620,7 @@ class TileGridLayout extends _index__WEBPACK_IMPORTED_MODULE_0__.LogicalGridLayo
113520
113620
 
113521
113621
  _layoutCellBounds(containerSize, containerInsets) {
113522
113622
  // Since the tiles are positioned absolutely it is necessary to add the height of the filler to the top insets
113523
- if (this.widget.virtual) {
113623
+ if (this.widget.virtual && this.widget.$fillBefore) {
113524
113624
  containerInsets.top += this.widget.$fillBefore.outerHeight(true);
113525
113625
  }
113526
113626
 
@@ -114647,7 +114747,7 @@ __webpack_require__.r(__webpack_exports__);
114647
114747
  /* harmony export */ });
114648
114748
  /* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../index */ "./src/index.js");
114649
114749
  /*
114650
- * Copyright (c) 2010-2021 BSI Business Systems Integration AG.
114750
+ * Copyright (c) 2010-2022 BSI Business Systems Integration AG.
114651
114751
  * All rights reserved. This program and the accompanying materials
114652
114752
  * are made available under the terms of the Eclipse Public License v1.0
114653
114753
  * which accompanies this distribution, and is available at
@@ -115030,7 +115130,24 @@ class TileAccordion extends _index__WEBPACK_IMPORTED_MODULE_0__.Accordion {
115030
115130
 
115031
115131
  _filter() {
115032
115132
  this.groups.forEach(group => {
115033
- 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
+ }
115034
115151
  });
115035
115152
  }
115036
115153
  /**
@@ -115904,6 +116021,49 @@ class TileButton extends _index__WEBPACK_IMPORTED_MODULE_0__.Button {
115904
116021
 
115905
116022
  /***/ }),
115906
116023
 
116024
+ /***/ "./src/tile/fields/htmlfield/TileHtmlField.js":
116025
+ /*!****************************************************!*\
116026
+ !*** ./src/tile/fields/htmlfield/TileHtmlField.js ***!
116027
+ \****************************************************/
116028
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
116029
+
116030
+ __webpack_require__.r(__webpack_exports__);
116031
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
116032
+ /* harmony export */ "default": () => (/* binding */ TileHtmlField)
116033
+ /* harmony export */ });
116034
+ /* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../index */ "./src/index.js");
116035
+ /*
116036
+ * Copyright (c) 2010-2022 BSI Business Systems Integration AG.
116037
+ * All rights reserved. This program and the accompanying materials
116038
+ * are made available under the terms of the Eclipse Public License v1.0
116039
+ * which accompanies this distribution, and is available at
116040
+ * http://www.eclipse.org/legal/epl-v10.html
116041
+ *
116042
+ * Contributors:
116043
+ * BSI Business Systems Integration AG - initial API and implementation
116044
+ */
116045
+
116046
+ class TileHtmlField extends _index__WEBPACK_IMPORTED_MODULE_0__.HtmlField {
116047
+ constructor() {
116048
+ super();
116049
+ }
116050
+
116051
+ _render() {
116052
+ super._render();
116053
+
116054
+ this.$container.addClass('scrollbar-y-outside');
116055
+ }
116056
+
116057
+ _installScrollbars(options) {
116058
+ return super._installScrollbars($.extend(true, {}, options, {
116059
+ scrollShadow: 'gradient'
116060
+ }));
116061
+ }
116062
+
116063
+ }
116064
+
116065
+ /***/ }),
116066
+
115907
116067
  /***/ "./src/tile/fields/tablefield/TileTableField.js":
115908
116068
  /*!******************************************************!*\
115909
116069
  !*** ./src/tile/fields/tablefield/TileTableField.js ***!
@@ -118035,7 +118195,7 @@ __webpack_require__.r(__webpack_exports__);
118035
118195
  /* harmony export */ "default": () => (/* binding */ LazyNodeFilter)
118036
118196
  /* harmony export */ });
118037
118197
  /*
118038
- * Copyright (c) 2014-2017 BSI Business Systems Integration AG.
118198
+ * Copyright (c) 2010-2022 BSI Business Systems Integration AG.
118039
118199
  * All rights reserved. This program and the accompanying materials
118040
118200
  * are made available under the terms of the Eclipse Public License v1.0
118041
118201
  * which accompanies this distribution, and is available at
@@ -118046,29 +118206,39 @@ __webpack_require__.r(__webpack_exports__);
118046
118206
  */
118047
118207
  class LazyNodeFilter {
118048
118208
  constructor(tree) {
118049
- //
118050
118209
  this.tree = tree;
118051
118210
  }
118052
118211
 
118053
118212
  accept(node) {
118054
- if (!node.expanded && node.parentNode && node.parentNode.expandedLazy && node.parentNode.lazyExpandingEnabled && this.tree.lazyExpandingEnabled) {
118055
- // if this node is not expanded and parent is lazyExpanding.
118056
- for (let i = 0; i < this.tree.selectedNodes.length; i++) {
118057
- let selectedNode = this.tree.selectedNodes[i]; // not initialized selected nodes
118213
+ if (node.expanded) {
118214
+ return true;
118215
+ } // not expanded: remove lazy expand marker (forget lazy expanded children)
118058
118216
 
118059
- if (typeof selectedNode === 'string') {
118060
- break;
118061
- }
118062
118217
 
118063
- if (selectedNode === node || selectedNode.isDescendantOf(node)) {
118064
- return true;
118065
- }
118218
+ node.childNodes.forEach(child => {
118219
+ child._lazyNodeFilterAccepted = false;
118220
+ });
118221
+
118222
+ if (!node.parentNode || !node.parentNode.expandedLazy || !node.parentNode.lazyExpandingEnabled || !this.tree.lazyExpandingEnabled) {
118223
+ // no lazy expanding supported
118224
+ return true;
118225
+ } // if this node is not expanded and parent is lazyExpanding.
118226
+
118227
+
118228
+ for (let i = 0; i < this.tree.selectedNodes.length; i++) {
118229
+ let selectedNode = this.tree.selectedNodes[i];
118230
+
118231
+ if (typeof selectedNode === 'string') {
118232
+ break;
118066
118233
  }
118067
118234
 
118068
- return false;
118235
+ if (selectedNode === node) {
118236
+ node._lazyNodeFilterAccepted = true;
118237
+ return true;
118238
+ }
118069
118239
  }
118070
118240
 
118071
- return true;
118241
+ return !!node._lazyNodeFilterAccepted;
118072
118242
  }
118073
118243
 
118074
118244
  }
@@ -118091,7 +118261,7 @@ __webpack_require__.r(__webpack_exports__);
118091
118261
  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; }
118092
118262
 
118093
118263
  /*
118094
- * Copyright (c) 2010-2021 BSI Business Systems Integration AG.
118264
+ * Copyright (c) 2010-2022 BSI Business Systems Integration AG.
118095
118265
  * All rights reserved. This program and the accompanying materials
118096
118266
  * are made available under the terms of the Eclipse Public License v1.0
118097
118267
  * which accompanies this distribution, and is available at
@@ -118219,10 +118389,9 @@ class Tree extends _index__WEBPACK_IMPORTED_MODULE_0__.Widget {
118219
118389
 
118220
118390
  this._ensureTreeNodes(this.nodes);
118221
118391
 
118222
- this.visitNodes(this._initTreeNode.bind(this));
118223
- this.visitNodes(this._updateFlatListAndSelectionPath.bind(this));
118392
+ this._initNodes(this.nodes);
118393
+
118224
118394
  this.initialTraversing = false;
118225
- this.selectedNodes = this._nodesByIds(this.selectedNodes);
118226
118395
  this.menuBar = _index__WEBPACK_IMPORTED_MODULE_0__.scout.create('MenuBar', {
118227
118396
  parent: this,
118228
118397
  position: _index__WEBPACK_IMPORTED_MODULE_0__.MenuBar.Position.BOTTOM,
@@ -118239,6 +118408,27 @@ class Tree extends _index__WEBPACK_IMPORTED_MODULE_0__.Widget {
118239
118408
 
118240
118409
  this._setMenus(this.menus);
118241
118410
  }
118411
+ /**
118412
+ * Initialize nodes, applies filters and updates flat list
118413
+ */
118414
+
118415
+
118416
+ _initNodes(nodes, parentNode) {
118417
+ if (!nodes) {
118418
+ nodes = this.nodes;
118419
+ }
118420
+
118421
+ Tree.visitNodes(this._initTreeNode.bind(this), nodes, parentNode);
118422
+
118423
+ if (typeof this.selectedNodes[0] === 'string') {
118424
+ this.selectedNodes = this._nodesByIds(this.selectedNodes);
118425
+ }
118426
+
118427
+ this._updateSelectionPath();
118428
+
118429
+ nodes.forEach(node => this.applyFiltersForNode(node));
118430
+ Tree.visitNodes((node, parentNode) => this._addToVisibleFlatList(node, false), nodes, parentNode);
118431
+ }
118242
118432
  /**
118243
118433
  * Iterates through the given array and converts node-models to instances of TreeNode (or a subclass).
118244
118434
  * If the array element is already a TreeNode the function leaves the element untouched. This function also
@@ -118324,45 +118514,26 @@ class Tree extends _index__WEBPACK_IMPORTED_MODULE_0__.Widget {
118324
118514
  }
118325
118515
 
118326
118516
  isSelectedNode(node) {
118327
- if (this.initialTraversing) {
118328
- return this.selectedNodes.indexOf(node.id) > -1;
118329
- }
118330
-
118331
118517
  return this.selectedNodes.indexOf(node) > -1;
118332
118518
  }
118333
118519
 
118334
- _updateFlatListAndSelectionPath(node, parentNode) {
118335
- // if this node is selected all parent nodes have to be added to selectionPath
118336
- if (this.isSelectedNode(node) && (node.parentNode && !this.visibleNodesMap[node.parentNode.id] || node.level === 0)) {
118337
- let p = node;
118338
-
118339
- while (p) {
118340
- this._inSelectionPathList[p.id] = true;
118341
- p.filterDirty = true;
118342
-
118343
- if (p !== node) {
118344
- // ensure node is expanded
118345
- node.expanded = true; // if parent was filtered before, try refilter after adding to selection path.
118346
-
118347
- if (p.level === 0) {
118348
- this.applyFiltersForNode(p); // add visible nodes to visible nodes array when they are initialized
118349
-
118350
- this._addToVisibleFlatList(p, false); // process children
118351
-
118520
+ _updateSelectionPath() {
118521
+ let selectedNode = this.selectedNodes[0];
118352
118522
 
118353
- this._addChildrenToFlatList(p, this.visibleNodesFlat.length - 1, false, null, true);
118354
- }
118355
- }
118356
-
118357
- p = p.parentNode;
118358
- }
118359
- } else if (node.parentNode && this.isSelectedNode(node.parentNode)) {
118360
- this._inSelectionPathList[node.id] = true;
118523
+ if (!selectedNode) {
118524
+ return;
118361
118525
  }
118362
118526
 
118363
- this.applyFiltersForNode(node); // add visible nodes to visible nodes array when they are initialized
118527
+ this._inSelectionPathList[selectedNode.id] = true;
118528
+ selectedNode.childNodes.forEach(child => {
118529
+ this._inSelectionPathList[child.id] = true;
118530
+ });
118531
+ let parentNode = selectedNode.parentNode;
118364
118532
 
118365
- this._addToVisibleFlatList(node, false);
118533
+ while (parentNode) {
118534
+ this._inSelectionPathList[parentNode.id] = true;
118535
+ parentNode = parentNode.parentNode;
118536
+ }
118366
118537
  }
118367
118538
 
118368
118539
  _initTreeNode(node, parentNode) {
@@ -118410,7 +118581,7 @@ class Tree extends _index__WEBPACK_IMPORTED_MODULE_0__.Widget {
118410
118581
  this._removeFromFlatList(node, false); // ensure node is not longer in visible nodes list.
118411
118582
 
118412
118583
 
118413
- node.destroy();
118584
+ node.destroy(); // noinspection JSUnresolvedVariable
118414
118585
 
118415
118586
  if (this._onNodeDeleted) {
118416
118587
  // Necessary for subclasses
@@ -118481,8 +118652,8 @@ class Tree extends _index__WEBPACK_IMPORTED_MODULE_0__.Widget {
118481
118652
  }
118482
118653
 
118483
118654
  _remove() {
118484
- // remove listener
118485
- this.session.desktop.off('popupOpen', this._popupOpenHandler); // stop all animations
118655
+ this.session.desktop.off('popupOpen', this._popupOpenHandler);
118656
+ this.filterSupport.remove(); // stop all animations
118486
118657
 
118487
118658
  if (this._$animationWrapper) {
118488
118659
  this._$animationWrapper.stop(false, true);
@@ -118496,10 +118667,9 @@ class Tree extends _index__WEBPACK_IMPORTED_MODULE_0__.Widget {
118496
118667
 
118497
118668
  this.$fillBefore = null;
118498
118669
  this.$fillAfter = null;
118499
- this.$data = null; // reset rendered view range because now range is rendered
118670
+ this.$data = null; // reset rendered view range because no range is rendered
118500
118671
 
118501
118672
  this.viewRangeRendered = new _index__WEBPACK_IMPORTED_MODULE_0__.Range(0, 0);
118502
- this.filterSupport.remove();
118503
118673
 
118504
118674
  super._remove();
118505
118675
  }
@@ -119652,9 +119822,8 @@ class Tree extends _index__WEBPACK_IMPORTED_MODULE_0__.Widget {
119652
119822
  renderExpansionOpts.expandLazyChanged = node.expandedLazy !== lazy;
119653
119823
  node.expanded = expanded;
119654
119824
  node.expandedLazy = lazy;
119655
- let filterStateChanged = this.applyFiltersForNode(node, false, renderAnimated);
119656
119825
 
119657
- if (filterStateChanged && renderExpansionOpts.expansionChanged) {
119826
+ if (renderExpansionOpts.expansionChanged) {
119658
119827
  if (node.parentNode) {
119659
119828
  // ensure node is visible under the parent node if there is a parent.
119660
119829
  this._rebuildParent(node.parentNode, opts);
@@ -119664,9 +119833,7 @@ class Tree extends _index__WEBPACK_IMPORTED_MODULE_0__.Widget {
119664
119833
  this._removeFromFlatList(node, false);
119665
119834
  }
119666
119835
  } else if (renderExpansionOpts.expandLazyChanged) {
119667
- node.childNodes.forEach(child => {
119668
- this.applyFiltersForNode(child, false, renderAnimated);
119669
- });
119836
+ this.applyFiltersForNode(node, false, renderAnimated);
119670
119837
  }
119671
119838
 
119672
119839
  if (this.groupedNodes[node.id]) {
@@ -119674,7 +119841,9 @@ class Tree extends _index__WEBPACK_IMPORTED_MODULE_0__.Widget {
119674
119841
  }
119675
119842
 
119676
119843
  if (node.expanded) {
119677
- node.ensureLoadChildren().done(this._addChildrenToFlatList.bind(this, node, null, renderAnimated, null, true));
119844
+ node.ensureLoadChildren().done(this._addChildrenToFlatList.bind(this, node, null, renderAnimated, null, true
119845
+ /* required that ctrl+shift+add expands all rows of a table-page */
119846
+ ));
119678
119847
  } else {
119679
119848
  this._removeChildrenFromFlatList(node, renderAnimated);
119680
119849
  }
@@ -119709,7 +119878,9 @@ class Tree extends _index__WEBPACK_IMPORTED_MODULE_0__.Widget {
119709
119878
  }
119710
119879
 
119711
119880
  if (node.expanded || node.expandedLazy) {
119712
- this._addChildrenToFlatList(node, null, false, null, true);
119881
+ this._addChildrenToFlatList(node, null, true, null, true
119882
+ /* required so that double clicking a table-page-row expands the clicked child row */
119883
+ );
119713
119884
  } else {
119714
119885
  this._removeChildrenFromFlatList(node, false);
119715
119886
  } // Render expansion
@@ -119831,8 +120002,6 @@ class Tree extends _index__WEBPACK_IMPORTED_MODULE_0__.Widget {
119831
120002
  }
119832
120003
 
119833
120004
  _removeFromFlatList(node, animatedRemove) {
119834
- let removedNodes = [];
119835
-
119836
120005
  if (this.visibleNodesMap[node.id]) {
119837
120006
  let index = this.visibleNodesFlat.indexOf(node);
119838
120007
 
@@ -119846,13 +120015,10 @@ class Tree extends _index__WEBPACK_IMPORTED_MODULE_0__.Widget {
119846
120015
  }
119847
120016
  }
119848
120017
 
119849
- removedNodes = _index__WEBPACK_IMPORTED_MODULE_0__.arrays.ensure(this.visibleNodesFlat.splice(index, 1));
120018
+ this.visibleNodesFlat.splice(index, 1);
119850
120019
  delete this.visibleNodesMap[node.id];
119851
120020
  this.hideNode(node, animatedRemove);
119852
120021
  }
119853
-
119854
- removedNodes.push(node);
119855
- return removedNodes;
119856
120022
  }
119857
120023
  /**
119858
120024
  * @returns {boolean} whether or not the function added a node to the flat list
@@ -119862,7 +120028,7 @@ class Tree extends _index__WEBPACK_IMPORTED_MODULE_0__.Widget {
119862
120028
  _addToVisibleFlatList(node, renderingAnimated) {
119863
120029
  // if node already is in visible list don't do anything. If no parentNode is available this node is on toplevel, if a parent is available
119864
120030
  // it has to be in visible list and also be expanded
119865
- if (!this.visibleNodesMap[node.id] && node.isFilterAccepted() && (!node.parentNode || node.parentNode.expanded && this.visibleNodesMap[node.parentNode.id])) {
120031
+ if (!this.visibleNodesMap[node.id] && node.filterAccepted && (!node.parentNode || node.parentNode.expanded && this.visibleNodesMap[node.parentNode.id])) {
119866
120032
  if (this.initialTraversing) {
119867
120033
  // for faster index calculation
119868
120034
  this._addToVisibleFlatListNoCheck(node, this.visibleNodesFlat.length, renderingAnimated);
@@ -119912,12 +120078,11 @@ class Tree extends _index__WEBPACK_IMPORTED_MODULE_0__.Widget {
119912
120078
  isAlreadyAdded = this.visibleNodesMap[node.id];
119913
120079
 
119914
120080
  if (isAlreadyAdded) {
119915
- this.insertBatchInVisibleNodes(insertBatch, this._showNodes(insertBatch), animatedRendering);
119916
- this.checkAndHandleBatchAnimationWrapper(parentNode, animatedRendering, insertBatch);
119917
- insertBatch = this.newInsertBatch(insertBatch.nextBatchInsertIndex());
119918
- insertBatch = this._addChildrenToFlatListIfExpanded(1, node, insertIndex, animatedRendering, insertBatch, forceFilter); // do not animate following
120081
+ this.insertBatchInVisibleNodes(insertBatch, this._showNodes(insertBatch), animatedRendering); // Animate rendering is always false because it would generate a bunch of animation wrappers which stay forever without really starting an animation...
119919
120082
 
119920
- animatedRendering = false;
120083
+ this.checkAndHandleBatchAnimationWrapper(parentNode, false, insertBatch);
120084
+ insertBatch = this.newInsertBatch(insertBatch.nextBatchInsertIndex());
120085
+ insertBatch = this._addChildrenToFlatListIfExpanded(1, node, insertIndex, animatedRendering, insertBatch, forceFilter);
119921
120086
  } else {
119922
120087
  insertBatch.insertNodes.push(node);
119923
120088
  this.visibleNodesMap[node.id] = true;
@@ -120521,11 +120686,9 @@ class Tree extends _index__WEBPACK_IMPORTED_MODULE_0__.Widget {
120521
120686
  nodes.forEach(entry => {
120522
120687
  parentNode.childNodes.push(entry);
120523
120688
  });
120524
- } // initialize node and add to visible list if node is visible
120525
-
120689
+ }
120526
120690
 
120527
- Tree.visitNodes(this._initTreeNode.bind(this), nodes, parentNode);
120528
- Tree.visitNodes(this._updateFlatListAndSelectionPath.bind(this), nodes, parentNode);
120691
+ this._initNodes(nodes, parentNode);
120529
120692
 
120530
120693
  if (this.groupedNodes[parentNode.id]) {
120531
120694
  this._updateItemPath(false, parentNode);
@@ -120552,11 +120715,9 @@ class Tree extends _index__WEBPACK_IMPORTED_MODULE_0__.Widget {
120552
120715
  this._updateChildNodeIndex(this.nodes, nodes[0].childNodeIndex);
120553
120716
  } else {
120554
120717
  _index__WEBPACK_IMPORTED_MODULE_0__.arrays.pushAll(this.nodes, nodes);
120555
- } // initialize node and add to visible list if node is visible
120556
-
120718
+ }
120557
120719
 
120558
- Tree.visitNodes(this._initTreeNode.bind(this), nodes, parentNode);
120559
- Tree.visitNodes(this._updateFlatListAndSelectionPath.bind(this), nodes, parentNode);
120720
+ this._initNodes(nodes, parentNode);
120560
120721
  }
120561
120722
 
120562
120723
  if (this.rendered) {
@@ -120697,9 +120858,7 @@ class Tree extends _index__WEBPACK_IMPORTED_MODULE_0__.Widget {
120697
120858
  Tree.visitNodes(this._destroyTreeNode.bind(this), node.childNodes);
120698
120859
  }, this); // update child node indices
120699
120860
 
120700
- parentNodesToReindex.forEach(function (p) {
120701
- this._updateChildNodeIndex(p.childNodes);
120702
- }, this);
120861
+ parentNodesToReindex.forEach(p => this._updateChildNodeIndex(p.childNodes));
120703
120862
 
120704
120863
  this._updateChildNodeIndex(topLevelNodesToReindex);
120705
120864
 
@@ -121152,10 +121311,8 @@ class Tree extends _index__WEBPACK_IMPORTED_MODULE_0__.Widget {
121152
121311
 
121153
121312
  this.nodes.forEach(node => {
121154
121313
  let result = this.applyFiltersForNode(node, false, this.filterAnimated);
121155
- _index__WEBPACK_IMPORTED_MODULE_0__.arrays.removeAll(newlyHidden, result.newlyShown);
121156
- _index__WEBPACK_IMPORTED_MODULE_0__.arrays.removeAll(newlyShown, result.newlyHidden);
121157
- result.newlyHidden.forEach(hidden => _index__WEBPACK_IMPORTED_MODULE_0__.arrays.pushSet(newlyHidden, hidden));
121158
- result.newlyShown.forEach(shown => _index__WEBPACK_IMPORTED_MODULE_0__.arrays.pushSet(newlyShown, shown));
121314
+ newlyHidden.push(...result.newlyHidden);
121315
+ newlyShown.push(...result.newlyShown);
121159
121316
  });
121160
121317
  return {
121161
121318
  newlyHidden: newlyHidden,
@@ -121169,34 +121326,34 @@ class Tree extends _index__WEBPACK_IMPORTED_MODULE_0__.Widget {
121169
121326
  }
121170
121327
 
121171
121328
  if (opts.textFilterText) {
121172
- result.newlyShown.forEach(node => this._expandAllParentNodes(node));
121329
+ this._nodesByIds(Object.keys(this.nodesMap)).filter(it => it.filterAccepted).forEach(node => this._expandAllParentNodes(node));
121173
121330
  }
121174
121331
 
121175
121332
  result.newlyShown.forEach(node => this._addToVisibleFlatList(node, this.filterAnimated));
121176
-
121177
- this._nodesFiltered(_index__WEBPACK_IMPORTED_MODULE_0__.arrays.flatMap(result.newlyHidden, node => this._removeFromFlatList(node, this.filterAnimated)));
121178
-
121333
+ result.newlyHidden.forEach(node => this._removeFromFlatList(node, this.filterAnimated));
121179
121334
  this.filteredElementsDirty = false;
121180
121335
  }
121181
121336
 
121182
121337
  filterVisibleNodes(animated) {
121183
121338
  // Filter nodes
121184
- let newlyHidden = [];
121339
+ let newlyHidden = []; // iterate from end to beginning (child nodes first) so that the state of the children has already been updated
121185
121340
 
121186
- for (let i = 0; i < this.visibleNodesFlat.length; i++) {
121341
+ for (let i = this.visibleNodesFlat.length - 1; i >= 0; i--) {
121187
121342
  let node = this.visibleNodesFlat[i];
121188
- let result = this.applyFiltersForNode(node, false, animated);
121343
+
121344
+ let result = this._applyFiltersForNodeRec(node, true, animated);
121189
121345
 
121190
121346
  if (result.newlyHidden.length) {
121191
121347
  if (!node.isFilterAccepted()) {
121192
- i--;
121193
- _index__WEBPACK_IMPORTED_MODULE_0__.arrays.pushAll(newlyHidden, this._removeFromFlatList(node, animated));
121348
+ newlyHidden.push(...result.newlyHidden);
121194
121349
  }
121195
121350
 
121196
121351
  this.viewRangeDirty = true;
121197
121352
  }
121198
121353
  }
121199
121354
 
121355
+ newlyHidden.forEach(h => this._removeFromFlatList(h, animated));
121356
+
121200
121357
  this._nodesFiltered(newlyHidden);
121201
121358
  }
121202
121359
 
@@ -121208,69 +121365,73 @@ class Tree extends _index__WEBPACK_IMPORTED_MODULE_0__.Widget {
121208
121365
  applyFiltersForNode(node) {
121209
121366
  let applyNewHiddenShownNodes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
121210
121367
  let animated = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
121368
+
121369
+ let result = this._applyFiltersForNodeRec(node, true, animated); // the result so far only includes the node and all its children.
121370
+ // always include the parent nodes as well so that the filter has an effect
121371
+
121372
+
121373
+ let parent = node.parentNode;
121374
+
121375
+ while (parent) {
121376
+ let parentResult = this._applyFiltersForNodeRec(parent, false, animated);
121377
+
121378
+ result.newlyHidden.unshift(...parentResult.newlyHidden);
121379
+ result.newlyShown.unshift(...parentResult.newlyShown);
121380
+ parent = parent.parentNode;
121381
+ }
121382
+
121383
+ this._nodesFiltered(result.newlyHidden);
121384
+
121385
+ if (applyNewHiddenShownNodes) {
121386
+ result.newlyShown.forEach(node => this._addToVisibleFlatList(node, animated));
121387
+ result.newlyHidden.forEach(node => this._removeFromFlatList(node, animated));
121388
+ }
121389
+
121390
+ return result;
121391
+ }
121392
+
121393
+ _applyFiltersForNodeRec(node, recursive) {
121394
+ let animated = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
121211
121395
  let newlyHidden = [],
121212
121396
  newlyShown = [];
121213
121397
  animated = animated && this.filterAnimated;
121214
- node.filterDirty = true;
121215
121398
 
121216
121399
  let changed = this._applyFiltersForNode(node);
121217
121400
 
121218
- if (changed) {
121219
- let parents = [];
121220
- let parent = node.parentNode; // collect all parents that need to be updated
121221
- // show: if node.filterAccepted === true, all parents with parent.filterAccepted === false need to be updated
121222
- // hide: if node.filterAccepted === false, all parents with parent.filterAccepted === true need to be updated...
121223
- // ...EXCEPT there are other childNodes of parent with childNode.filterAccepted === true OR the parent is directly accepted by all filters
121224
-
121225
- while (parent && parent.filterAccepted !== node.filterAccepted && (node.filterAccepted || parent.childNodes.filter(child => parents.indexOf(child) === -1).every(child => !child.filterAccepted) && !this.filterSupport.elementAcceptedByFilters(parent))) {
121226
- _index__WEBPACK_IMPORTED_MODULE_0__.arrays.insert(parents, parent, 0);
121227
- parent = parent.parentNode;
121228
- }
121229
-
121230
- let removeFrom = node.filterAccepted ? newlyHidden : newlyShown,
121231
- pushTo = node.filterAccepted ? newlyShown : newlyHidden;
121232
- parents.forEach(p => {
121233
- p.setFilterAccepted(node.filterAccepted);
121234
- _index__WEBPACK_IMPORTED_MODULE_0__.arrays.remove(removeFrom, p);
121235
- _index__WEBPACK_IMPORTED_MODULE_0__.arrays.pushSet(pushTo, p);
121236
- });
121237
- _index__WEBPACK_IMPORTED_MODULE_0__.arrays.pushSet(pushTo, node);
121401
+ let hasChildrenWithFilterAccepted = false;
121238
121402
 
121239
- if (this.rendered) {
121240
- this.viewRangeDirty = true;
121241
- }
121242
- } else {
121243
- // this else branch is required when the filter-state of a node has not changed
121244
- // for instance Node "Telefon mit Sabrina" is visible for filter "tel" and also
121245
- // for filter "abr". However, it is possible that the node is _not_ attached, when
121246
- // we switch from one filter to another, because the node was not in the view-range
121247
- // with the previous filter. That's why we must make sure, the node is attached to
121248
- // the DOM, even though the filter state hasn't changed. Otherwise we'd have a
121249
- // problem when we insert nodes in this._insertNodeInDOMAtPlace.
121250
- if (!node.attached) {
121251
- this.showNode(node, animated);
121403
+ if (node.level < 32
121404
+ /* see org.eclipse.scout.rt.client.ui.basic.tree.AbstractTree.expandAllRec */
121405
+ ) {
121406
+ if (recursive) {
121407
+ node.childNodes.forEach(childNode => {
121408
+ let result = this._applyFiltersForNodeRec(childNode, true, animated);
121252
121409
 
121253
- if (node.attached) {
121254
- // If sibling nodes are hiding at the same time, the nodes to be shown should be added after these nodes to make the animation look correctly -> move them
121255
- node.$node.insertAfter(node.$node.nextAll('.hiding:last'));
121256
- }
121410
+ newlyHidden.push(...result.newlyHidden);
121411
+ newlyShown.push(...result.newlyShown);
121412
+ hasChildrenWithFilterAccepted = hasChildrenWithFilterAccepted || childNode.filterAccepted;
121413
+ });
121414
+ } else if (!node.filterAccepted) {
121415
+ // Check children only if filterAccepted is false because only then hasChildrenWithFilterAccepted is used (see below).
121416
+ // This has great impact on performance when there are many nodes
121417
+ hasChildrenWithFilterAccepted = node.childNodes.some(childNode => childNode.filterAccepted);
121257
121418
  }
121258
- }
121419
+ } // set filter accepted on this node if it has children with filter accepted (so that the children are visible)
121259
121420
 
121260
- if (node.level < 32) {
121261
- node.childNodes.forEach(childNode => {
121262
- let result = this.applyFiltersForNode(childNode, false, animated);
121263
- _index__WEBPACK_IMPORTED_MODULE_0__.arrays.removeAll(newlyHidden, result.newlyShown);
121264
- _index__WEBPACK_IMPORTED_MODULE_0__.arrays.removeAll(newlyShown, result.newlyHidden);
121265
- result.newlyHidden.forEach(hidden => _index__WEBPACK_IMPORTED_MODULE_0__.arrays.pushSet(newlyHidden, hidden));
121266
- result.newlyShown.forEach(shown => _index__WEBPACK_IMPORTED_MODULE_0__.arrays.pushSet(newlyShown, shown));
121267
- });
121268
- }
121269
121421
 
121270
- if (applyNewHiddenShownNodes) {
121271
- newlyShown.forEach(node => this._addToVisibleFlatList(node, animated));
121422
+ if (!node.filterAccepted && hasChildrenWithFilterAccepted) {
121423
+ node.setFilterAccepted(true);
121424
+ changed = !changed;
121425
+ } // remember changed node
121426
+
121272
121427
 
121273
- this._nodesFiltered(_index__WEBPACK_IMPORTED_MODULE_0__.arrays.flatMap(newlyHidden, node => this._removeFromFlatList(node, animated)));
121428
+ if (changed) {
121429
+ let pushTo = node.filterAccepted ? newlyShown : newlyHidden;
121430
+ pushTo.unshift(node);
121431
+
121432
+ if (this.rendered) {
121433
+ this.viewRangeDirty = true;
121434
+ }
121274
121435
  }
121275
121436
 
121276
121437
  return {
@@ -121284,17 +121445,16 @@ class Tree extends _index__WEBPACK_IMPORTED_MODULE_0__.Widget {
121284
121445
 
121285
121446
 
121286
121447
  _applyFiltersForNode(node) {
121287
- let changed = this.filterSupport.applyFiltersForElement(node) || node.filterDirty;
121448
+ let changed = this.filterSupport.applyFiltersForElement(node);
121288
121449
 
121289
- if (changed) {
121450
+ if (changed || node.filterDirty) {
121290
121451
  node.filterDirty = false;
121291
121452
  node.childNodes.forEach(childNode => {
121292
121453
  childNode.filterDirty = true;
121293
121454
  });
121294
- return true;
121295
121455
  }
121296
121456
 
121297
- return false;
121457
+ return changed;
121298
121458
  }
121299
121459
  /**
121300
121460
  * @returns {FilterSupport}
@@ -121334,7 +121494,7 @@ class Tree extends _index__WEBPACK_IMPORTED_MODULE_0__.Widget {
121334
121494
  nodes = nodes.filter(function (node) {
121335
121495
  let index = indexHint === undefined ? this.visibleNodesFlat.indexOf(node) : indexHint;
121336
121496
 
121337
- if (index === -1 || !(this.viewRangeRendered.from + this.viewRangeSize >= index && this.viewRangeRendered.from <= index && this.viewRangeRendered.size() > 0) || node.attached) {
121497
+ if (index === -1 || !(this.viewRangeRendered.from + this.viewRangeSize >= index && this.viewRangeRendered.from <= index && this.viewRangeSize > 0) || node.attached) {
121338
121498
  // node is not visible
121339
121499
  return false;
121340
121500
  }
@@ -121522,6 +121682,10 @@ class Tree extends _index__WEBPACK_IMPORTED_MODULE_0__.Widget {
121522
121682
  $node.removeClass('hiding');
121523
121683
 
121524
121684
  if (!$node.hasClass('showing')) {
121685
+ // JQuery sets display to none which we don't need because node will be detached.
121686
+ // If node is added using another method than slideDown (used by show node), it would be invisible.
121687
+ // Example: parent is collapsed while nodes are hiding -> remove filter, expand parent -> invisible nodes
121688
+ $node.css('display', '');
121525
121689
  $node.detach();
121526
121690
  node.attached = false;
121527
121691
  }
@@ -121535,15 +121699,11 @@ class Tree extends _index__WEBPACK_IMPORTED_MODULE_0__.Widget {
121535
121699
  }
121536
121700
 
121537
121701
  _nodesToIds(nodes) {
121538
- return nodes.map(node => {
121539
- return node.id;
121540
- });
121702
+ return nodes.map(node => node.id);
121541
121703
  }
121542
121704
 
121543
121705
  _nodesByIds(ids) {
121544
- return ids.map(id => {
121545
- return this.nodesMap[id];
121546
- });
121706
+ return ids.map(id => this.nodesMap[id]);
121547
121707
  }
121548
121708
 
121549
121709
  _nodeById(id) {
@@ -122125,7 +122285,7 @@ class TreeLayout extends _index__WEBPACK_IMPORTED_MODULE_0__.AbstractLayout {
122125
122285
  exact: true
122126
122286
  }).subtract(htmlContainer.insets());
122127
122287
 
122128
- if (this.tree.toggleBreadcrumbStyleEnabled) {
122288
+ if (this.tree.toggleBreadcrumbStyleEnabled && this._sizeChanged(htmlContainer)) {
122129
122289
  this.tree.setBreadcrumbStyleActive(Math.floor(containerSize.width) <= this.tree.breadcrumbTogglingThreshold);
122130
122290
  }
122131
122291
 
@@ -122220,7 +122380,7 @@ __webpack_require__.r(__webpack_exports__);
122220
122380
  /* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! jquery */ "jquery");
122221
122381
  /* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_1__);
122222
122382
  /*
122223
- * Copyright (c) 2010-2021 BSI Business Systems Integration AG.
122383
+ * Copyright (c) 2010-2022 BSI Business Systems Integration AG.
122224
122384
  * All rights reserved. This program and the accompanying materials
122225
122385
  * are made available under the terms of the Eclipse Public License v1.0
122226
122386
  * which accompanies this distribution, and is available at
@@ -122375,7 +122535,7 @@ class TreeNode {
122375
122535
 
122376
122536
  isFilterAccepted(forceFilter) {
122377
122537
  if (this.filterDirty || forceFilter) {
122378
- this.getTree().applyFiltersForNode(this, false);
122538
+ this.getTree().applyFiltersForNode(this);
122379
122539
  }
122380
122540
 
122381
122541
  return this.filterAccepted;
@@ -123583,7 +123743,7 @@ __webpack_require__.r(__webpack_exports__);
123583
123743
  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; }
123584
123744
 
123585
123745
  /*
123586
- * Copyright (c) 2010-2021 BSI Business Systems Integration AG.
123746
+ * Copyright (c) 2010-2022 BSI Business Systems Integration AG.
123587
123747
  * All rights reserved. This program and the accompanying materials
123588
123748
  * are made available under the terms of the Eclipse Public License v1.0
123589
123749
  * which accompanies this distribution, and is available at
@@ -123830,7 +123990,7 @@ class Device {
123830
123990
  browser = _index__WEBPACK_IMPORTED_MODULE_0__.scout.nvl(browser, this.browser);
123831
123991
  version = _index__WEBPACK_IMPORTED_MODULE_0__.scout.nvl(version, this.browserVersion);
123832
123992
  let browsers = Device.Browser;
123833
- return browser === browsers.CHROME && version >= 69 || browser === browsers.FIREFOX && version >= 62 || browser === browsers.SAFARI && version >= 12.1;
123993
+ return browser === browsers.CHROME && version >= 69 || browser === browsers.FIREFOX && version >= 62 || browser === browsers.SAFARI && version >= 12;
123834
123994
  }
123835
123995
  /**
123836
123996
  * Can not detect type until DOM is ready because we must create a DIV to measure the scrollbars.
@@ -123934,6 +124094,11 @@ class Device {
123934
124094
  } else if (this.browser === browsers.EDGE) {
123935
124095
  versionRegex = /Edge\/([0-9]+\.?[0-9]*)/;
123936
124096
  } else if (this.browser === browsers.SAFARI) {
124097
+ if (this.isIos() && userAgent.indexOf('Version/') < 0) {
124098
+ this.browserVersion = this.systemVersion;
124099
+ return;
124100
+ }
124101
+
123937
124102
  versionRegex = /Version\/([0-9]+\.?[0-9]*)/;
123938
124103
  } else if (this.browser === browsers.FIREFOX) {
123939
124104
  versionRegex = /Firefox\/([0-9]+\.?[0-9]*)/;
@@ -126087,6 +126252,7 @@ __webpack_require__.r(__webpack_exports__);
126087
126252
  /* harmony export */ "$remove": () => (/* binding */ $remove),
126088
126253
  /* harmony export */ "randomElement": () => (/* binding */ randomElement),
126089
126254
  /* harmony export */ "toMap": () => (/* binding */ toMap),
126255
+ /* harmony export */ "nullIfEmpty": () => (/* binding */ nullIfEmpty),
126090
126256
  /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
126091
126257
  /* harmony export */ });
126092
126258
  /* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../index */ "./src/index.js");
@@ -126312,6 +126478,12 @@ function containsAll(haystack, needles) {
126312
126478
  return haystack.indexOf(element) >= 0;
126313
126479
  });
126314
126480
  }
126481
+ /**
126482
+ * @template T
126483
+ * @param {T[]} arr
126484
+ * @return {T}
126485
+ */
126486
+
126315
126487
  function first(arr) {
126316
126488
  if (Array.isArray(arr)) {
126317
126489
  return arr[0];
@@ -126319,6 +126491,12 @@ function first(arr) {
126319
126491
 
126320
126492
  return arr;
126321
126493
  }
126494
+ /**
126495
+ * @template T
126496
+ * @param {T[]} arr
126497
+ * @return {T}
126498
+ */
126499
+
126322
126500
  function last(arr) {
126323
126501
  if (Array.isArray(arr)) {
126324
126502
  return arr[arr.length - 1];
@@ -126391,9 +126569,9 @@ function union(array1, array2) {
126391
126569
  }
126392
126570
  });
126393
126571
  return result;
126394
- } // noinspection DuplicatedCode
126395
-
126572
+ }
126396
126573
  function equalsIgnoreOrder(arr, arr2) {
126574
+ // noinspection DuplicatedCode
126397
126575
  if (arr === arr2) {
126398
126576
  return true;
126399
126577
  }
@@ -126411,9 +126589,9 @@ function equalsIgnoreOrder(arr, arr2) {
126411
126589
  }
126412
126590
 
126413
126591
  return containsAll(arr, arr2);
126414
- } // noinspection DuplicatedCode
126415
-
126592
+ }
126416
126593
  function equals(arr, arr2) {
126594
+ // noinspection DuplicatedCode
126417
126595
  if (arr === arr2) {
126418
126596
  return true;
126419
126597
  }
@@ -126741,6 +126919,17 @@ function toMap(array) {
126741
126919
  return map;
126742
126920
  }, {}));
126743
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
+ }
126744
126933
  /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
126745
126934
  $indexOf,
126746
126935
  $remove,
@@ -126779,6 +126968,7 @@ function toMap(array) {
126779
126968
  max,
126780
126969
  min,
126781
126970
  move,
126971
+ nullIfEmpty,
126782
126972
  pushAll,
126783
126973
  pushIfDefined,
126784
126974
  pushSet,
@@ -128350,7 +128540,8 @@ function uninstallDragAndDropHandler(target) {
128350
128540
  * @property {String} [selector] CSS selector which will be added to the event source.
128351
128541
  * @property {dropType} [dropType] Returns the allowed drop type during a drop event. Default is {@link dragAndDrop.SCOUT_TYPES.FILE_TRANSFER}
128352
128542
  * @property {dropMaximumSize} [dropMaximumSize] Returns the maximum allowed size of a dropped object. Default is {@link DragAndDropTarget.dropMaximumSize}
128353
- * @property {validateFiles} [validateFiles] An optional function to add a custom file validation logic. Throw a {@link dropValidationErrorMessage} to indicate a failed validation. if no custom validator is installed, the default maximum file size validator is invoked.
128543
+ * @property {validateFiles} [validateFiles] An optional function to add a custom file validation logic. Throw a {@link dropValidationErrorMessage} to indicate a failed validation.
128544
+ * If no custom validator is installed, the default maximum file size validator is invoked.
128354
128545
  * @property {additionalDropProperties} [additionalDropProperties] Returns additional drop properties to be used in {@link DragAndDropHandler.uploadFiles} as uploadProperties
128355
128546
  */
128356
128547
 
@@ -128614,7 +128805,7 @@ function onSwipe($element, id, onDown, onMove, onUp) {
128614
128805
  let deltaX = pageX - origPageX;
128615
128806
  let newLeft = origPosLeft + deltaX;
128616
128807
 
128617
- if (newLeft != curPosLeft) {
128808
+ if (newLeft !== curPosLeft) {
128618
128809
  // only update swipe direction if it actually changed
128619
128810
  direction = Math.sign(newLeft - curPosLeft);
128620
128811
  }
@@ -131124,12 +131315,16 @@ function resolveConstProperty(object, config) {
131124
131315
  /**
131125
131316
  * @param {object} obj
131126
131317
  * @returns {Boolean|undefined}
131127
- * - true if the obj is empty
131318
+ * - true if the obj is empty, null or undefined
131128
131319
  * - false if the obj is not empty
131129
131320
  * - nothing if the obj is not an object
131130
131321
  */
131131
131322
 
131132
131323
  function isEmpty(obj) {
131324
+ if (isNullOrUndefined(obj)) {
131325
+ return true;
131326
+ }
131327
+
131133
131328
  if (!isPlainObject(obj)) {
131134
131329
  return;
131135
131330
  }
@@ -132708,7 +132903,7 @@ __webpack_require__.r(__webpack_exports__);
132708
132903
  /* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../index */ "./src/index.js");
132709
132904
  /* harmony import */ var _keystroke_FocusFilterFieldKeyStroke__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../keystroke/FocusFilterFieldKeyStroke */ "./src/keystroke/FocusFilterFieldKeyStroke.js");
132710
132905
  /*
132711
- * Copyright (c) 2010-2021 BSI Business Systems Integration AG.
132906
+ * Copyright (c) 2010-2022 BSI Business Systems Integration AG.
132712
132907
  * All rights reserved. This program and the accompanying materials
132713
132908
  * are made available under the terms of the Eclipse Public License v1.0
132714
132909
  * which accompanies this distribution, and is available at
@@ -132838,14 +133033,20 @@ class FilterSupport extends _index__WEBPACK_IMPORTED_MODULE_0__.WidgetSupport {
132838
133033
  this._filterField.$field.attr('tabIndex', -1);
132839
133034
 
132840
133035
  let color = _index__WEBPACK_IMPORTED_MODULE_0__.styles.getFirstOpaqueBackgroundColor(this._filterField.$container),
132841
- transparentColorRgba = $.extend(true, {}, _index__WEBPACK_IMPORTED_MODULE_0__.styles.rgb(color), {
132842
- alpha: 0.5
132843
- }),
132844
- transparentColor = 'rgba(' + transparentColorRgba.red + ', ' + transparentColorRgba.green + ', ' + transparentColorRgba.blue + ', ' + transparentColorRgba.alpha + ')';
133036
+ colorRgba = $.extend(true, {
133037
+ red: 0,
133038
+ green: 0,
133039
+ blue: 0,
133040
+ alpha: 1
133041
+ }, _index__WEBPACK_IMPORTED_MODULE_0__.styles.rgb(color)),
133042
+ transparent50Color = 'rgba(' + colorRgba.red + ', ' + colorRgba.green + ', ' + colorRgba.blue + ', ' + 0.5 + ')',
133043
+ transparent80Color = 'rgba(' + colorRgba.red + ', ' + colorRgba.green + ', ' + colorRgba.blue + ', ' + 0.8 + ')';
132845
133044
 
132846
133045
  this._filterField.$container.css('--filter-field-background-color', color);
132847
133046
 
132848
- this._filterField.$container.css('--filter-field-transparent-background-color', transparentColor);
133047
+ this._filterField.$container.css('--filter-field-transparent-50-background-color', transparent50Color);
133048
+
133049
+ this._filterField.$container.css('--filter-field-transparent-80-background-color', transparent80Color);
132849
133050
 
132850
133051
  this._textFilter = this._createTextFilter();
132851
133052
  this._textFilter.synthetic = true;
@@ -133455,7 +133656,7 @@ class Widget {
133455
133656
 
133456
133657
  this.cloneOf = null;
133457
133658
  /**
133458
- * The 'rendering' flag is set the true while the _inital_ rendering is performed.
133659
+ * The 'rendering' flag is set the true while the _initial_ rendering is performed.
133459
133660
  * It is used to to something different in a _render* method when the method is
133460
133661
  * called for the first time.
133461
133662
  */
@@ -133535,6 +133736,12 @@ class Widget {
133535
133736
  */
133536
133737
 
133537
133738
 
133739
+ /**
133740
+ * Initializes the widget instance. All properties of the model parameter (object) are set as properties on the widget instance.
133741
+ * Calls {@link Widget#_init} and triggers an <em>init</em> event when initialization has been completed.
133742
+ *
133743
+ * @param {object} model
133744
+ */
133538
133745
  init(model) {
133539
133746
  let staticModel = this._jsonModel();
133540
133747
 
@@ -133564,9 +133771,12 @@ class Widget {
133564
133771
  return model;
133565
133772
  }
133566
133773
  /**
133567
- * @param {object} options
133568
- * - parent (required): The parent widget
133569
- * - session (optional): If not specified the session of the parent is used
133774
+ * Initializes the widget instance. All properties of the model parameter (object) are set as properties on the widget instance.
133775
+ * Override this function to initialize widget specific properties in sub-classes.
133776
+ *
133777
+ * @param {object} model Properties:<ul>
133778
+ * <li>parent (required): parent widget</li>
133779
+ * <li>session (optional): If not specified, session of parent widget is used</li></ul>
133570
133780
  */
133571
133781
 
133572
133782
 
@@ -133992,7 +134202,9 @@ class Widget {
133992
134202
 
133993
134203
 
133994
134204
  _removeAnimated() {
133995
- if (!_index__WEBPACK_IMPORTED_MODULE_0__.Device.get().supportsCssAnimation() || !this.$container || this.$container.isDisplayNone()) {
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()) {
133996
134208
  // Cannot remove animated, remove regularly
133997
134209
  this._removeInternal();
133998
134210
 
@@ -134014,7 +134226,7 @@ class Widget {
134014
134226
  throw new Error('Missing animate removal class. Cannot remove animated.');
134015
134227
  }
134016
134228
 
134017
- if (!this.$container.isVisible() || !this.$container.isEveryParentVisible()) {
134229
+ if (!this.$container.isVisible() || !this.$container.isEveryParentVisible() || !this.$container.isAttached()) {
134018
134230
  // If element is not visible, animationEnd would never fire -> remove it immediately
134019
134231
  this._removeInternal();
134020
134232
 
@@ -134028,7 +134240,14 @@ class Widget {
134028
134240
  }); // If the parent is being removed while the animation is running, the animationEnd event will never fire
134029
134241
  // -> Make sure remove is called nevertheless. Important: remove it before the parent is removed to maintain the regular remove order
134030
134242
 
134031
- this.parent.one('removing', this._parentRemovingWhileAnimatingHandler);
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;
134032
134251
  }
134033
134252
 
134034
134253
  _onParentRemovingWhileAnimating() {