@eclipse-scout/core 22.0.0-beta.10 → 22.0.1

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eclipse-scout/core",
3
- "version": "22.0.0-beta.10",
3
+ "version": "22.0.1",
4
4
  "description": "Eclipse Scout runtime",
5
5
  "author": "BSI Business Systems Integration AG",
6
6
  "homepage": "https://www.eclipse.org/scout",
@@ -26,7 +26,7 @@
26
26
  "src"
27
27
  ],
28
28
  "devDependencies": {
29
- "@eclipse-scout/cli": "22.0.0-beta.10",
29
+ "@eclipse-scout/cli": "22.0.1",
30
30
  "@eclipse-scout/releng": "^22.0.0",
31
31
  "jasmine-core": "3.10.1",
32
32
  "jasmine-ajax": "4.0.0",
package/src/App.js CHANGED
@@ -291,7 +291,7 @@ export default class App {
291
291
  $loadingRoot.css('opacity', $loadingRoot.css('opacity'));
292
292
  // Add animation listener before adding the classes to ensure the listener will always be triggered even while debugging
293
293
  $loadingRoot.oneAnimationEnd(() => $loadingRoot.remove());
294
- if ($loadingRoot.css('opacity') == 1) {
294
+ if ($loadingRoot.css('opacity') === '1') {
295
295
  $loadingRoot.addClass('fadeout and-more');
296
296
  } else {
297
297
  $loadingRoot.addClass('fadeout');
package/src/box/Box.less CHANGED
@@ -26,9 +26,9 @@
26
26
  }
27
27
 
28
28
  .box-content {
29
- border: 1px solid @border-color;
29
+ border: @popup-border-width solid @popup-border-color;
30
30
  border-radius: @border-radius-large;
31
- background-color: @background-color;
31
+ background-color: @popup-background-color;
32
32
  max-width: @box-width;
33
33
  margin: 0 auto;
34
34
  padding: 45px 95px 50px 95px;
@@ -44,7 +44,7 @@ export default class BreadcrumbBarLayout extends AbstractLayout {
44
44
  this._collapse(breadcrumbItems, containerSize);
45
45
  }
46
46
 
47
- _collapse = function($container, containerSize) {
47
+ _collapse($container, containerSize) {
48
48
  let currentIndex = 1;
49
49
  const visibleBreadcrumbItems = this._visibleBreadcrumbItems();
50
50
  let prefSize = this._actualPrefSize(visibleBreadcrumbItems, true);
@@ -116,7 +116,7 @@ export default class BreadcrumbBarLayout extends AbstractLayout {
116
116
  /**
117
117
  * @return {number} the preferred width of all breadcrumbItems (plus ellipsis breadcrumb)
118
118
  */
119
- _breadcrumbItemsWidth = function(breadcrumbItems, considerEllipsis) {
119
+ _breadcrumbItemsWidth(breadcrumbItems, considerEllipsis) {
120
120
  let breadcrumbsWidth = 0;
121
121
  breadcrumbItems = breadcrumbItems || this._visibleBreadcrumbItems();
122
122
  breadcrumbItems.forEach(breadcrumbItem => {
@@ -19,4 +19,4 @@ export default class DesktopTabAreaLayout extends SimpleTabAreaLayout {
19
19
  super.layout($container);
20
20
  this.tabArea.updateFirstTabSelected();
21
21
  }
22
- }
22
+ }
@@ -35,6 +35,11 @@
35
35
  border-radius: @view-tab-selected-border-radius;
36
36
  }
37
37
 
38
+ & > .edge {
39
+ // Ensure GlassPane.js does not set position: relative if glass pane is added before view tab is selected
40
+ position: absolute;
41
+ }
42
+
38
43
  &.selected:not(.in-background) {
39
44
  margin: @view-tab-selected-margin-top 0 0;
40
45
  border-radius: @view-tab-selected-border-radius @view-tab-selected-border-radius 0 0;
@@ -53,18 +53,20 @@
53
53
  */
54
54
  .login-button.default {
55
55
 
56
- &.login-error {
57
- border-color: @palette-red-4;
58
- background-color: @palette-red-4;
56
+ &.login-error:not(.disabled) {
57
+ border-color: transparent;
58
+ background-color: @error-color;
59
59
 
60
60
  &:hover {
61
- background-color: @palette-red-4;
62
- border-color: @palette-red-4;
61
+ background-color: @error-default-button-background-hover-color;
63
62
  }
64
63
 
65
64
  &:active {
66
- border-color: @palette-red-4;
67
- background-color: darken(@palette-red-4, 5%);
65
+ background-color: @error-default-button-background-active-color;
66
+ }
67
+
68
+ &:focus {
69
+ #scout.focus-border(@box-shadow-color: @error-focus-box-shadow-color, @border-color: mix(@error-color, @error-focus-box-shadow-color, 25%));
68
70
  }
69
71
  }
70
72
 
@@ -88,7 +88,7 @@
88
88
  }
89
89
  }
90
90
 
91
- .severity-button(@error-color, @focus-color: @error-focus-box-shadow-color);
91
+ .severity-button(@error-color, @error-default-button-background-hover-color, @error-default-button-background-active-color, @error-focus-box-shadow-color);
92
92
  }
93
93
 
94
94
  &.warning {
@@ -100,7 +100,7 @@
100
100
  }
101
101
  }
102
102
 
103
- .severity-button(@warning-color, @focus-color: @warning-focus-box-shadow-color);
103
+ .severity-button(@warning-color, @warning-default-button-background-hover-color, @warning-default-button-background-active-color, @warning-focus-box-shadow-color);
104
104
  }
105
105
 
106
106
  &.ok {
@@ -112,7 +112,7 @@
112
112
  }
113
113
  }
114
114
 
115
- .severity-button(@ok-color, @focus-color: @ok-focus-box-shadow-color);
115
+ .severity-button(@ok-color, @ok-default-button-background-hover-color, @ok-default-button-background-active-color, @ok-focus-box-shadow-color);
116
116
  }
117
117
 
118
118
  &.animate-open {
@@ -75,8 +75,14 @@
75
75
  @warning-color: @palette-orange-2;
76
76
  @ok-color: @palette-green-2;
77
77
  @error-background-color: @background-color;
78
+ @error-default-button-background-hover-color: lighten(@error-color, 6%);
79
+ @error-default-button-background-active-color: lighten(@error-color, 10%);
78
80
  @error-focus-box-shadow-color: mix(@error-color, @palette-black, 50%);
81
+ @warning-default-button-background-hover-color: lighten(@warning-color, 8%);
82
+ @warning-default-button-background-active-color: lighten(@warning-color, 12%);
79
83
  @warning-focus-box-shadow-color: mix(@warning-color, @palette-black, 50%);
84
+ @ok-default-button-background-hover-color: lighten(@ok-color, 8%);
85
+ @ok-default-button-background-active-color: lighten(@ok-color, 14%);
80
86
  @ok-focus-box-shadow-color: mix(@ok-color, @palette-black, 50%);
81
87
  @focus-border-color: @focus-color;
82
88
  @focus-box-shadow-color: darken(@focus-color, 30%);
@@ -102,7 +108,8 @@
102
108
  @popup-2-background-color: @palette-gray-6;
103
109
  @popup-2-backdrop-background-color: fade(@popup-2-background-color, 80%);
104
110
  @popup-2-backdrop-filter: blur(15px);
105
- @selected-hover-background-color: darken(@selected-background-color, 10%);
111
+ @selected-hover-background-color: lighten(@selected-background-color, 8%);
112
+ @selected-active-background-color: lighten(@selected-background-color, 12%);
106
113
  @selected-disabled-background-color: @palette-gray-5;
107
114
  @text-color: @palette-gray-2;
108
115
  @text-color-1: @palette-gray-3;
@@ -101,8 +101,14 @@
101
101
  @ok-color: @palette-green-5;
102
102
  @error-background-color: @palette-red-0;
103
103
  @error-border-color: @error-color;
104
+ @error-default-button-background-hover-color: darken(@error-color, 6%);
105
+ @error-default-button-background-active-color: darken(@error-color, 13%);
104
106
  @error-focus-box-shadow-color: fade(@error-color, 40%);
107
+ @warning-default-button-background-hover-color: darken(@warning-color, 6%);
108
+ @warning-default-button-background-active-color: darken(@warning-color, 13%);
105
109
  @warning-focus-box-shadow-color: fade(@warning-color, 40%);
110
+ @ok-default-button-background-hover-color: darken(@ok-color, 6%);
111
+ @ok-default-button-background-active-color: darken(@ok-color, 13%);
106
112
  @ok-focus-box-shadow-color: fade(@ok-color, 40%);
107
113
  @focus-border-color: @accent-color-3;
108
114
  @focus-box-shadow-color: darken(@accent-color-1, 10%);
@@ -213,8 +213,7 @@
213
213
  }
214
214
  }
215
215
 
216
- .tooltip-status,
217
- .info-status {
216
+ .tooltip-status {
218
217
  visibility: visible;
219
218
  cursor: pointer;
220
219
 
@@ -236,6 +235,10 @@
236
235
  }
237
236
  }
238
237
 
238
+ .info-status {
239
+ #scout.tooltip-status();
240
+ }
241
+
239
242
  .ok-status {
240
243
  visibility: visible;
241
244
  cursor: pointer;
@@ -848,7 +848,7 @@ export default class Table extends Widget {
848
848
  _isAggregatedTooltip($cell) {
849
849
  let $row = $cell.parent();
850
850
  return $row.data('aggregateRow') /* row in the table */
851
- || $row.hasClass('table-aggregate') /* aggregate table control */;
851
+ || $row.hasClass('table-aggregate'); /* aggregate table control */
852
852
  }
853
853
 
854
854
  reload(reloadReason) {
@@ -178,7 +178,7 @@ export default class ColumnOptimalWidthMeasurer {
178
178
  return 0;
179
179
  }
180
180
  let $neighbour = cellRange[cellRange.length - 1];
181
- if ($neighbour.hasClass('empty') || $cell.hasClass('halign-right') == $neighbour.hasClass('halign-right')) {
181
+ if ($neighbour.hasClass('empty') || $cell.hasClass('halign-right') === $neighbour.hasClass('halign-right')) {
182
182
  return 0;
183
183
  }
184
184
  let $neighbourText = $neighbour.children('.text');
@@ -20,4 +20,4 @@ export default class TagBarOverflowPopupLayout extends PopupLayout {
20
20
  prefSize.width += this.popup.htmlComp.insets().horizontal();
21
21
  return prefSize;
22
22
  }
23
- }
23
+ }
@@ -15,4 +15,4 @@ export default class ButtonTile extends FormFieldTile {
15
15
  super._render();
16
16
  this.$container.addClass('button-tile');
17
17
  }
18
- }
18
+ }
@@ -18,10 +18,11 @@ export default class LazyNodeFilter {
18
18
  accept(node) {
19
19
  if (node.expanded) {
20
20
  return true;
21
- } else {
22
- // not expanded: remove lazy expand marker (forget lazy expanded children)
23
- node.childNodes.forEach(child => delete child._lazyNodeFilterAccepted);
24
21
  }
22
+ // not expanded: remove lazy expand marker (forget lazy expanded children)
23
+ node.childNodes.forEach(child => {
24
+ child._lazyNodeFilterAccepted = false;
25
+ });
25
26
 
26
27
  if (!node.parentNode || !node.parentNode.expandedLazy || !node.parentNode.lazyExpandingEnabled || !this.tree.lazyExpandingEnabled) {
27
28
  // no lazy expanding supported
@@ -34,7 +35,7 @@ export default class LazyNodeFilter {
34
35
  if (typeof selectedNode === 'string') {
35
36
  break;
36
37
  }
37
- if (selectedNode == node) {
38
+ if (selectedNode === node) {
38
39
  node._lazyNodeFilterAccepted = true;
39
40
  return true;
40
41
  }
package/src/tree/Tree.js CHANGED
@@ -128,10 +128,8 @@ export default class Tree extends Widget {
128
128
  this.initialTraversing = true;
129
129
  this._setCheckable(this.checkable);
130
130
  this._ensureTreeNodes(this.nodes);
131
- this.visitNodes(this._initTreeNode.bind(this));
132
- this.visitNodes(this._updateFlatListAndSelectionPath.bind(this));
131
+ this._initNodes(this.nodes);
133
132
  this.initialTraversing = false;
134
- this.selectedNodes = this._nodesByIds(this.selectedNodes);
135
133
  this.menuBar = scout.create('MenuBar', {
136
134
  parent: this,
137
135
  position: MenuBar.Position.BOTTOM,
@@ -145,6 +143,22 @@ export default class Tree extends Widget {
145
143
  this._setMenus(this.menus);
146
144
  }
147
145
 
146
+ /**
147
+ * Initialize nodes, applies filters and updates flat list
148
+ */
149
+ _initNodes(nodes, parentNode) {
150
+ if (!nodes) {
151
+ nodes = this.nodes;
152
+ }
153
+ Tree.visitNodes(this._initTreeNode.bind(this), nodes, parentNode);
154
+ if (typeof this.selectedNodes[0] === 'string') {
155
+ this.selectedNodes = this._nodesByIds(this.selectedNodes);
156
+ }
157
+ this._updateSelectionPath();
158
+ nodes.forEach(node => this.applyFiltersForNode(node));
159
+ Tree.visitNodes((node, parentNode) => this._addToVisibleFlatList(node, false), nodes, parentNode);
160
+ }
161
+
148
162
  /**
149
163
  * Iterates through the given array and converts node-models to instances of TreeNode (or a subclass).
150
164
  * If the array element is already a TreeNode the function leaves the element untouched. This function also
@@ -226,44 +240,25 @@ export default class Tree extends Widget {
226
240
  }
227
241
 
228
242
  isSelectedNode(node) {
229
- if (this.initialTraversing) {
230
- return this.selectedNodes.indexOf(node.id) > -1;
231
- }
232
243
  return this.selectedNodes.indexOf(node) > -1;
233
244
  }
234
245
 
235
- _updateFlatListAndSelectionPath(node, parentNode) {
236
- // if this node is selected all parent nodes have to be added to selectionPath
237
- if (this.isSelectedNode(node) && (node.parentNode && !this.visibleNodesMap[node.parentNode.id] || node.level === 0)) {
238
- let p = node;
239
- while (p) {
240
- this._inSelectionPathList[p.id] = true;
241
- p.filterDirty = true;
242
-
243
- if (p !== node) {
244
- // ensure node is expanded
245
- node.expanded = true;
246
- // if parent was filtered before, try refilter after adding to selection path.
247
- if (p.level === 0) {
248
- this.applyFiltersForNode(p);
249
-
250
- // add visible nodes to visible nodes array when they are initialized
251
- this._addToVisibleFlatList(p, false);
252
-
253
- // process children
254
- this._addChildrenToFlatList(p, this.visibleNodesFlat.length - 1, false, null, true);
255
- }
256
- }
257
- p = p.parentNode;
258
- }
259
- } else if (node.parentNode && this.isSelectedNode(node.parentNode)) {
260
- this._inSelectionPathList[node.id] = true;
246
+ _updateSelectionPath() {
247
+ let selectedNode = this.selectedNodes[0];
248
+ if (!selectedNode) {
249
+ return;
261
250
  }
251
+ this._inSelectionPathList[selectedNode.id] = true;
262
252
 
263
- this.applyFiltersForNode(node);
253
+ selectedNode.childNodes.forEach(child => {
254
+ this._inSelectionPathList[child.id] = true;
255
+ });
264
256
 
265
- // add visible nodes to visible nodes array when they are initialized
266
- this._addToVisibleFlatList(node, false);
257
+ let parentNode = selectedNode.parentNode;
258
+ while (parentNode) {
259
+ this._inSelectionPathList[parentNode.id] = true;
260
+ parentNode = parentNode.parentNode;
261
+ }
267
262
  }
268
263
 
269
264
  _initTreeNode(node, parentNode) {
@@ -1432,9 +1427,7 @@ export default class Tree extends Widget {
1432
1427
  this._removeFromFlatList(node, false);
1433
1428
  }
1434
1429
  } else if (renderExpansionOpts.expandLazyChanged) {
1435
- node.childNodes.forEach(child => {
1436
- this.applyFiltersForNode(child, true, renderAnimated);
1437
- });
1430
+ this.applyFiltersForNode(node, false, renderAnimated);
1438
1431
  }
1439
1432
 
1440
1433
  if (this.groupedNodes[node.id]) {
@@ -1648,7 +1641,8 @@ export default class Tree extends Widget {
1648
1641
  let insertIndex, isAlreadyAdded = this.visibleNodesMap[node.id];
1649
1642
  if (isAlreadyAdded) {
1650
1643
  this.insertBatchInVisibleNodes(insertBatch, this._showNodes(insertBatch), animatedRendering);
1651
- this.checkAndHandleBatchAnimationWrapper(parentNode, animatedRendering, insertBatch);
1644
+ // Animate rendering is always false because it would generate a bunch of animation wrappers which stay forever without really starting an animation...
1645
+ this.checkAndHandleBatchAnimationWrapper(parentNode, false, insertBatch);
1652
1646
  insertBatch = this.newInsertBatch(insertBatch.nextBatchInsertIndex());
1653
1647
  insertBatch = this._addChildrenToFlatListIfExpanded(1, node, insertIndex, animatedRendering, insertBatch, forceFilter);
1654
1648
  } else {
@@ -2194,9 +2188,7 @@ export default class Tree extends Widget {
2194
2188
  parentNode.childNodes.push(entry);
2195
2189
  });
2196
2190
  }
2197
- // initialize node and add to visible list if node is visible
2198
- Tree.visitNodes(this._initTreeNode.bind(this), nodes, parentNode);
2199
- Tree.visitNodes(this._updateFlatListAndSelectionPath.bind(this), nodes, parentNode);
2191
+ this._initNodes(nodes, parentNode);
2200
2192
  if (this.groupedNodes[parentNode.id]) {
2201
2193
  this._updateItemPath(false, parentNode);
2202
2194
  }
@@ -2219,9 +2211,7 @@ export default class Tree extends Widget {
2219
2211
  } else {
2220
2212
  arrays.pushAll(this.nodes, nodes);
2221
2213
  }
2222
- // initialize node and add to visible list if node is visible
2223
- Tree.visitNodes(this._initTreeNode.bind(this), nodes, parentNode);
2224
- Tree.visitNodes(this._updateFlatListAndSelectionPath.bind(this), nodes, parentNode);
2214
+ this._initNodes(nodes, parentNode);
2225
2215
  }
2226
2216
  if (this.rendered) {
2227
2217
  this.viewRangeDirty = true;
@@ -2345,9 +2335,7 @@ export default class Tree extends Widget {
2345
2335
  }, this);
2346
2336
 
2347
2337
  // update child node indices
2348
- parentNodesToReindex.forEach(function(p) {
2349
- this._updateChildNodeIndex(p.childNodes);
2350
- }, this);
2338
+ parentNodesToReindex.forEach(p => this._updateChildNodeIndex(p.childNodes));
2351
2339
  this._updateChildNodeIndex(topLevelNodesToReindex);
2352
2340
 
2353
2341
  this.deselectNodes(deletedNodes, {collectChildren: true});
@@ -2761,7 +2749,6 @@ export default class Tree extends Widget {
2761
2749
  }
2762
2750
  result.newlyShown.forEach(node => this._addToVisibleFlatList(node, this.filterAnimated));
2763
2751
  result.newlyHidden.forEach(node => this._removeFromFlatList(node, this.filterAnimated));
2764
- this._nodesFiltered(result.newlyHidden);
2765
2752
  this.filteredElementsDirty = false;
2766
2753
  }
2767
2754
 
@@ -2771,7 +2758,7 @@ export default class Tree extends Widget {
2771
2758
  // iterate from end to beginning (child nodes first) so that the state of the children has already been updated
2772
2759
  for (let i = this.visibleNodesFlat.length - 1; i >= 0; i--) {
2773
2760
  let node = this.visibleNodesFlat[i];
2774
- let result = this._applyFiltersForNodeRec(node, false, animated);
2761
+ let result = this._applyFiltersForNodeRec(node, true, animated);
2775
2762
  if (result.newlyHidden.length) {
2776
2763
  if (!node.isFilterAccepted()) {
2777
2764
  newlyHidden.push(...result.newlyHidden);
@@ -2800,11 +2787,11 @@ export default class Tree extends Widget {
2800
2787
  result.newlyShown.unshift(...parentResult.newlyShown);
2801
2788
  parent = parent.parentNode;
2802
2789
  }
2790
+ this._nodesFiltered(result.newlyHidden);
2803
2791
 
2804
2792
  if (applyNewHiddenShownNodes) {
2805
2793
  result.newlyShown.forEach(node => this._addToVisibleFlatList(node, animated));
2806
2794
  result.newlyHidden.forEach(node => this._removeFromFlatList(node, animated));
2807
- this._nodesFiltered(result.newlyHidden);
2808
2795
  }
2809
2796
  return result;
2810
2797
  }
@@ -2816,14 +2803,18 @@ export default class Tree extends Widget {
2816
2803
  let changed = this._applyFiltersForNode(node);
2817
2804
  let hasChildrenWithFilterAccepted = false;
2818
2805
  if (node.level < 32 /* see org.eclipse.scout.rt.client.ui.basic.tree.AbstractTree.expandAllRec */) {
2819
- node.childNodes.forEach(childNode => {
2820
- if (recursive) {
2806
+ if (recursive) {
2807
+ node.childNodes.forEach(childNode => {
2821
2808
  let result = this._applyFiltersForNodeRec(childNode, true, animated);
2822
2809
  newlyHidden.push(...result.newlyHidden);
2823
2810
  newlyShown.push(...result.newlyShown);
2824
- }
2825
- hasChildrenWithFilterAccepted = hasChildrenWithFilterAccepted || childNode.filterAccepted;
2826
- });
2811
+ hasChildrenWithFilterAccepted = hasChildrenWithFilterAccepted || childNode.filterAccepted;
2812
+ });
2813
+ } else if (!node.filterAccepted) {
2814
+ // Check children only if filterAccepted is false because only then hasChildrenWithFilterAccepted is used (see below).
2815
+ // This has great impact on performance when there are many nodes
2816
+ hasChildrenWithFilterAccepted = node.childNodes.some(childNode => childNode.filterAccepted);
2817
+ }
2827
2818
  }
2828
2819
 
2829
2820
  // set filter accepted on this node if it has children with filter accepted (so that the children are visible)
@@ -3053,6 +3044,10 @@ export default class Tree extends Widget {
3053
3044
  that.runningAnimationsFinishFunc();
3054
3045
  $node.removeClass('hiding');
3055
3046
  if (!$node.hasClass('showing')) {
3047
+ // JQuery sets display to none which we don't need because node will be detached.
3048
+ // If node is added using another method than slideDown (used by show node), it would be invisible.
3049
+ // Example: parent is collapsed while nodes are hiding -> remove filter, expand parent -> invisible nodes
3050
+ $node.css('display', '');
3056
3051
  $node.detach();
3057
3052
  node.attached = false;
3058
3053
  }
@@ -3066,15 +3061,11 @@ export default class Tree extends Widget {
3066
3061
  }
3067
3062
 
3068
3063
  _nodesToIds(nodes) {
3069
- return nodes.map(node => {
3070
- return node.id;
3071
- });
3064
+ return nodes.map(node => node.id);
3072
3065
  }
3073
3066
 
3074
3067
  _nodesByIds(ids) {
3075
- return ids.map(id => {
3076
- return this.nodesMap[id];
3077
- });
3068
+ return ids.map(id => this.nodesMap[id]);
3078
3069
  }
3079
3070
 
3080
3071
  _nodeById(id) {
@@ -175,13 +175,13 @@ export function _createDragAndDropHandlerOptions(target) {
175
175
  target: target,
176
176
  supportedScoutTypes: dragAndDrop.SCOUT_TYPES.FILE_TRANSFER,
177
177
  validateFiles: (files, defaultValidator) => defaultValidator(files),
178
- onDrop: (files) => {
178
+ onDrop: files => {
179
179
  },
180
180
  dropType: () => dragAndDrop.SCOUT_TYPES.FILE_TRANSFER,
181
181
  dropMaximumSize: () => target.dropMaximumSize,
182
182
  doInstall: () => target.enabledComputed,
183
183
  container: () => target.$container,
184
- additionalDropProperties: (event) => {
184
+ additionalDropProperties: event => {
185
185
  }
186
186
  };
187
187
  }
@@ -269,6 +269,7 @@ export default {
269
269
  * @property {String} [selector] CSS selector which will be added to the event source.
270
270
  * @property {dropType} [dropType] Returns the allowed drop type during a drop event. Default is {@link dragAndDrop.SCOUT_TYPES.FILE_TRANSFER}
271
271
  * @property {dropMaximumSize} [dropMaximumSize] Returns the maximum allowed size of a dropped object. Default is {@link DragAndDropTarget.dropMaximumSize}
272
- * @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.
272
+ * @property {validateFiles} [validateFiles] An optional function to add a custom file validation logic. Throw a {@link dropValidationErrorMessage} to indicate a failed validation.
273
+ * If no custom validator is installed, the default maximum file size validator is invoked.
273
274
  * @property {additionalDropProperties} [additionalDropProperties] Returns additional drop properties to be used in {@link DragAndDropHandler.uploadFiles} as uploadProperties
274
- */
275
+ */
@@ -220,7 +220,7 @@ export function onSwipe($element, id, onDown, onMove, onUp) {
220
220
  let pageX = events.pageX(event);
221
221
  let deltaX = pageX - origPageX;
222
222
  let newLeft = origPosLeft + deltaX;
223
- if (newLeft != curPosLeft) {
223
+ if (newLeft !== curPosLeft) {
224
224
  // only update swipe direction if it actually changed
225
225
  direction = Math.sign(newLeft - curPosLeft);
226
226
  }
@@ -51,7 +51,7 @@ export default class FilterSupport extends WidgetSupport {
51
51
  scout.assertParameter('getElementsForFiltering', options.getElementsForFiltering);
52
52
  this._getElementsForFiltering = options.getElementsForFiltering;
53
53
  }
54
- this._getElementText = options.getElementText || ((element) => $(element).text());
54
+ this._getElementText = options.getElementText || (element => $(element).text());
55
55
 
56
56
  if (options.createTextFilter) {
57
57
  scout.assertParameter('updateTextFilterText', options.updateTextFilterText);