@eclipse-scout/core 22.0.26 → 22.0.33

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/file-list CHANGED
@@ -1,9 +1,9 @@
1
- eclipse-scout-core-a56958ac9954d00cc62a.min.js
2
- eclipse-scout-core-a56958ac9954d00cc62a.min.js.map
3
- eclipse-scout-core-theme-dark-fd0e080c10f65e67b68b.min.css
1
+ eclipse-scout-core-b11dde8e4ac1367f5a06.min.js
2
+ eclipse-scout-core-b11dde8e4ac1367f5a06.min.js.map
3
+ eclipse-scout-core-theme-dark-0d9d468e5722f73f5075.min.css
4
4
  eclipse-scout-core-theme-dark.css
5
5
  eclipse-scout-core-theme-dark.css.map
6
- eclipse-scout-core-theme-f3a61fbc12acf8e27fcc.min.css
6
+ eclipse-scout-core-theme-db0af3fa95956b820bfc.min.css
7
7
  eclipse-scout-core-theme.css
8
8
  eclipse-scout-core-theme.css.map
9
9
  eclipse-scout-core.js
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eclipse-scout/core",
3
- "version": "22.0.26",
3
+ "version": "22.0.33",
4
4
  "description": "Eclipse Scout runtime",
5
5
  "author": "BSI Business Systems Integration AG",
6
6
  "homepage": "https://www.eclipse.org/scout",
@@ -26,12 +26,12 @@
26
26
  "src"
27
27
  ],
28
28
  "devDependencies": {
29
- "@eclipse-scout/cli": "22.0.26",
29
+ "@eclipse-scout/cli": "22.0.33",
30
30
  "@eclipse-scout/releng": "^22.0.0",
31
31
  "jasmine-core": "3.10.1",
32
32
  "jasmine-ajax": "4.0.0",
33
33
  "jasmine-jquery": "2.1.1",
34
- "karma": "6.3.9"
34
+ "karma": "6.3.20"
35
35
  },
36
36
  "dependencies": {
37
37
  "jquery": "3.6.0",
@@ -322,6 +322,7 @@
322
322
  &.selected {
323
323
  display: flex;
324
324
  flex-wrap: wrap; // Move detail menubar to next line
325
+ background-clip: content-box; // selection background shines through on the bottom of the node sometimes when zoomed -> makes it slightly better
325
326
  }
326
327
 
327
328
  &.child-of-selected.animate-prev-selected {
@@ -23,7 +23,7 @@ export default class OutlineLayout extends TreeLayout {
23
23
 
24
24
  super._layout($container);
25
25
 
26
- containerSize = htmlContainer.availableSize()
26
+ containerSize = htmlContainer.availableSize({exact: true})
27
27
  .subtract(htmlContainer.insets());
28
28
 
29
29
  if (this.outline.embedDetailContent) {
@@ -31,7 +31,7 @@ export default class PageLayout extends AbstractLayout {
31
31
  detailMenuBarHeight = 0,
32
32
  textWidth = 0;
33
33
 
34
- containerSize = htmlContainer.availableSize()
34
+ containerSize = htmlContainer.availableSize({exact: true}) // exact is important to calculate text width correctly and to prevent node menubar from wrapping
35
35
  .subtract(htmlContainer.insets());
36
36
  textWidth = containerSize.width;
37
37
 
@@ -93,7 +93,9 @@ export default class PageLayout extends AbstractLayout {
93
93
  // needs a width to be able to calculate the pref height
94
94
  textHeight = graphics.prefSize($text, {
95
95
  includeMargin: true,
96
- widthHint: textWidth
96
+ widthHint: textWidth,
97
+ enforceSizeHints: true,
98
+ exact: true
97
99
  }).height;
98
100
 
99
101
  if ($icon.length > 0) {
@@ -106,6 +108,7 @@ export default class PageLayout extends AbstractLayout {
106
108
  }
107
109
  if (this.outline.detailContent) {
108
110
  let htmlDetailContent = this.outline.detailContent.htmlComp;
111
+ options = $.extend({}, options, {enforceSizeHints: true, exact: true});
109
112
  detailContentPrefSize = htmlDetailContent.prefSize(options).add(htmlDetailContent.margins());
110
113
  }
111
114
 
@@ -8,7 +8,7 @@
8
8
  * Contributors:
9
9
  * BSI Business Systems Integration AG - initial API and implementation
10
10
  */
11
- import {arrays, Device, Dimension, Insets, Point, Rectangle, scout, scrollbars} from '../index';
11
+ import {arrays, Dimension, Insets, objects, Point, Rectangle, scout, scrollbars} from '../index';
12
12
  import $ from 'jquery';
13
13
 
14
14
  /**
@@ -35,6 +35,10 @@ import $ from 'jquery';
35
35
  *
36
36
  * heightHint undefined Same as 'widthHint' but for the height.
37
37
  *
38
+ * enforceSizeHints false Sets min/max-width/height in addition to with width/height if widthHint resp. heightHint is set.
39
+ * The browser sometimes makes the element smaller or larger than specified by width/height, especially in a flex container.
40
+ * To prevent that, set this option to true. Default is false, but may change in the future.
41
+ *
38
42
  * restoreScrollPositions true By default, the $elem's scrolling position is saved and restored
39
43
  * during the execution of this method (because applying
40
44
  * intermediate styles for measurement might change the current
@@ -96,6 +100,16 @@ export function prefSize($elem, options) {
96
100
  'width': newWidth,
97
101
  'height': newHeight
98
102
  };
103
+ if (scout.nvl(options.enforceSizeHints, false)) {
104
+ if (objects.isNumber(newWidth)) {
105
+ cssProperties['max-width'] = newWidth;
106
+ cssProperties['min-width'] = newWidth;
107
+ }
108
+ if (objects.isNumber(newHeight)) {
109
+ cssProperties['max-height'] = newHeight;
110
+ cssProperties['min-height'] = newHeight;
111
+ }
112
+ }
99
113
 
100
114
  // modify properties which prevent reading the preferred size
101
115
  $elem.css(cssProperties);
package/src/tree/Tree.js CHANGED
@@ -398,7 +398,7 @@ export default class Tree extends Widget {
398
398
  this.scrollToSelection = false;
399
399
  let scrollTop = this.$data[0].scrollTop;
400
400
  let scrollLeft = this.$data[0].scrollLeft;
401
- if (this.scrollTop !== scrollTop) {
401
+ if (this.scrollTop !== scrollTop && this.rendered) {
402
402
  this._renderViewport();
403
403
  }
404
404
  this.scrollTop = scrollTop;
@@ -1915,9 +1915,7 @@ export default class Tree extends Widget {
1915
1915
  _addToVisibleFlatListNoCheck(node, insertIndex, animatedRendering) {
1916
1916
  arrays.insert(this.visibleNodesFlat, node, insertIndex);
1917
1917
  this.visibleNodesMap[node.id] = true;
1918
- if (this.rendered) {
1919
- this.showNode(node, animatedRendering, insertIndex);
1920
- }
1918
+ this.showNode(node, animatedRendering, insertIndex);
1921
1919
  }
1922
1920
 
1923
1921
  scrollTo(node, options) {
@@ -2154,10 +2152,16 @@ export default class Tree extends Widget {
2154
2152
  }
2155
2153
  }
2156
2154
 
2155
+ /**
2156
+ * @param {TreeNode} [parentNode]
2157
+ */
2157
2158
  insertNode(node, parentNode) {
2158
2159
  this.insertNodes([node], parentNode);
2159
2160
  }
2160
2161
 
2162
+ /**
2163
+ * @param {TreeNode} [parentNode]
2164
+ */
2161
2165
  insertNodes(nodes, parentNode) {
2162
2166
  nodes = arrays.ensure(nodes).slice();
2163
2167
  if (nodes.length === 0) {
@@ -3023,7 +3027,7 @@ export default class Tree extends Widget {
3023
3027
  }
3024
3028
 
3025
3029
  hideNode(node, useAnimation, suppressDetachHandling) {
3026
- if (!node.attached) {
3030
+ if (!this.rendered || !node.attached) {
3027
3031
  return;
3028
3032
  }
3029
3033
  this.viewRangeDirty = true;