@openui5/sap.ui.dt 1.96.1 → 1.97.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.
Files changed (54) hide show
  1. package/.reuse/dep5 +1 -1
  2. package/THIRDPARTY.txt +2 -1
  3. package/package.json +2 -2
  4. package/src/sap/ui/dt/.library +2 -2
  5. package/src/sap/ui/dt/AggregationDesignTimeMetadata.js +2 -2
  6. package/src/sap/ui/dt/AggregationOverlay.js +2 -2
  7. package/src/sap/ui/dt/ControlObserver.js +2 -2
  8. package/src/sap/ui/dt/DOMUtil.js +8 -7
  9. package/src/sap/ui/dt/DesignTime.js +44 -16
  10. package/src/sap/ui/dt/DesignTimeMetadata.js +2 -2
  11. package/src/sap/ui/dt/DesignTimeStatus.js +1 -1
  12. package/src/sap/ui/dt/ElementDesignTimeMetadata.js +6 -4
  13. package/src/sap/ui/dt/ElementOverlay.js +5 -3
  14. package/src/sap/ui/dt/ElementUtil.js +3 -40
  15. package/src/sap/ui/dt/ManagedObjectObserver.js +3 -2
  16. package/src/sap/ui/dt/MetadataPropagationUtil.js +7 -7
  17. package/src/sap/ui/dt/MutationObserver.js +2 -2
  18. package/src/sap/ui/dt/Overlay.js +17 -18
  19. package/src/sap/ui/dt/OverlayRegistry.js +3 -4
  20. package/src/sap/ui/dt/OverlayUtil.js +5 -5
  21. package/src/sap/ui/dt/Plugin.js +2 -2
  22. package/src/sap/ui/dt/ScrollbarSynchronizer.js +2 -2
  23. package/src/sap/ui/dt/SelectionManager.js +2 -2
  24. package/src/sap/ui/dt/SelectionMode.js +2 -2
  25. package/src/sap/ui/dt/TaskManager.js +2 -2
  26. package/src/sap/ui/dt/TaskRunner.js +2 -2
  27. package/src/sap/ui/dt/Util.js +2 -2
  28. package/src/sap/ui/dt/designtime/notAdaptable.designtime.js +1 -1
  29. package/src/sap/ui/dt/designtime/notAdaptableTree.designtime.js +1 -1
  30. package/src/sap/ui/dt/designtime/notAdaptableVisibility.designtime.js +1 -1
  31. package/src/sap/ui/dt/enablement/ElementEnablementTest.js +3 -4
  32. package/src/sap/ui/dt/enablement/Test.js +26 -25
  33. package/src/sap/ui/dt/enablement/Util.js +10 -10
  34. package/src/sap/ui/dt/enablement/elementDesigntimeTest.js +1 -1
  35. package/src/sap/ui/dt/enablement/libraryTest.js +2 -2
  36. package/src/sap/ui/dt/enablement/report/LibraryReport.js +2 -2
  37. package/src/sap/ui/dt/enablement/report/QUnitReport.js +3 -4
  38. package/src/sap/ui/dt/enablement/report/Statistic.js +2 -2
  39. package/src/sap/ui/dt/enablement/report/StatisticRenderer.js +2 -2
  40. package/src/sap/ui/dt/enablement/report/Table.js +3 -4
  41. package/src/sap/ui/dt/enablement/report/TableRenderer.js +2 -2
  42. package/src/sap/ui/dt/library.js +3 -3
  43. package/src/sap/ui/dt/plugin/ContextMenu.js +22 -10
  44. package/src/sap/ui/dt/plugin/ControlDragDrop.js +2 -2
  45. package/src/sap/ui/dt/plugin/CutPaste.js +2 -2
  46. package/src/sap/ui/dt/plugin/DragDrop.js +20 -19
  47. package/src/sap/ui/dt/plugin/ElementMover.js +4 -3
  48. package/src/sap/ui/dt/plugin/MouseSelection.js +2 -2
  49. package/src/sap/ui/dt/plugin/TabHandling.js +2 -2
  50. package/src/sap/ui/dt/plugin/ToolHooks.js +2 -2
  51. package/src/sap/ui/dt/themes/base/library.source.less +1 -1
  52. package/src/sap/ui/dt/themes/sap_hcb/library.source.less +1 -1
  53. package/src/sap/ui/dt/util/ZIndexManager.js +2 -2
  54. package/src/sap/ui/dt/util/_createPromise.js +7 -5
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * OpenUI5
3
- * (c) Copyright 2009-2021 SAP SE or an SAP affiliate company.
3
+ * (c) Copyright 2009-2022 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
 
@@ -10,7 +10,7 @@ sap.ui.define(function() {
10
10
 
11
11
  /**
12
12
  * @author SAP SE
13
- * @version 1.96.1
13
+ * @version 1.97.1
14
14
  * @namespace
15
15
  */
16
16
  var TableRenderer = {};
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * OpenUI5
3
- * (c) Copyright 2009-2021 SAP SE or an SAP affiliate company.
3
+ * (c) Copyright 2009-2022 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
 
@@ -23,7 +23,7 @@ function (
23
23
  * @namespace
24
24
  * @name sap.ui.dt
25
25
  * @author SAP SE
26
- * @version 1.96.1
26
+ * @version 1.97.1
27
27
  * @since 1.30
28
28
  * @experimental This class is experimental and provides only limited functionality. Also the API might be changed in future.
29
29
  * @private
@@ -32,7 +32,7 @@ function (
32
32
  // delegate further initialization of this library to the Core
33
33
  sap.ui.getCore().initLibrary({
34
34
  name: "sap.ui.dt",
35
- version: "1.96.1",
35
+ version: "1.97.1",
36
36
  dependencies: ["sap.ui.core"],
37
37
  types: [
38
38
  "sap.ui.dt.SelectionMode"
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  * ! OpenUI5
3
- * (c) Copyright 2009-2021 SAP SE or an SAP affiliate company.
3
+ * (c) Copyright 2009-2022 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
  sap.ui.define([
@@ -34,7 +34,7 @@ sap.ui.define([
34
34
  * @class The ContextMenu registers event handler to open the context menu. Menu entries can dynamically be added
35
35
  * @extends sap.ui.dt.Plugin
36
36
  * @author SAP SE
37
- * @version 1.96.1
37
+ * @version 1.97.1
38
38
  * @constructor
39
39
  * @private
40
40
  * @since 1.53
@@ -94,11 +94,13 @@ sap.ui.define([
94
94
  * @param {function} mMenuItem.enabled? function to determine if the menu entry should be enabled, the element for which the menu should be opened
95
95
  * is passed, default true
96
96
  * @param {boolean} bRetrievedFromPlugin flag to mark if a menu item was retrieved from a plugin (in runtime)
97
+ * @param {boolean} bPersistOneTime flag to mark that the Button persist the next Menu clearing
97
98
  */
98
- ContextMenu.prototype.addMenuItem = function (mMenuItem, bRetrievedFromPlugin) {
99
+ ContextMenu.prototype.addMenuItem = function (mMenuItem, bRetrievedFromPlugin, bPersistOneTime) {
99
100
  var mMenuItemEntry = {
100
101
  menuItem: mMenuItem,
101
- fromPlugin: !!bRetrievedFromPlugin
102
+ fromPlugin: !!bRetrievedFromPlugin,
103
+ bPersistOneTime: bPersistOneTime
102
104
  };
103
105
  this._aMenuItems.push(mMenuItemEntry);
104
106
  };
@@ -134,11 +136,13 @@ sap.ui.define([
134
136
 
135
137
  /**
136
138
  * Opens the Context Menu
137
- * @param {sap.ui.dt.Overlay} oOverlay overlay object
138
- * @param {boolean} bContextMenu whether the control should be opened as a context menu
139
- * @param {boolean} bIsSubMenu whether the new ContextMenu is a SubMenu opened by a menu item inside another ContextMenu
139
+ * @param {sap.ui.dt.Overlay} oOverlay - Overlay object
140
+ * @param {boolean} bContextMenu - Whether the control should be opened as a context menu
141
+ * @param {boolean} bIsSubMenu - Whether the new ContextMenu is a SubMenu opened by a menu item inside another ContextMenu
142
+ * @param {object} oEvent - Click event of the menu
140
143
  */
141
144
  ContextMenu.prototype.open = function (oOverlay, bContextMenu, bIsSubMenu, oEvent) {
145
+ var aSelectedOverlays;
142
146
  function addMenuItems(oMenu, aMenuItems) {
143
147
  aMenuItems.forEach(function(oMenuItem, index) {
144
148
  var sText = typeof oMenuItem.text === "function" ? oMenuItem.text(oOverlay) : oMenuItem.text;
@@ -161,7 +165,6 @@ sap.ui.define([
161
165
  });
162
166
  }
163
167
 
164
- this._aMenuItems = [];
165
168
  this._bContextMenu = !!bContextMenu;
166
169
  if (this._bContextMenu) {
167
170
  this.oContextMenuControl.removeStyleClass(miniMenuStyleClass);
@@ -182,12 +185,21 @@ sap.ui.define([
182
185
  this.setContextElement(oNewContextElement);
183
186
  this.getDesignTime().getSelectionManager().attachChange(this._onSelectionChanged, this);
184
187
 
185
- var aSelectedOverlays = this.getSelectedOverlays().filter(function (oElementOverlay) {
188
+ aSelectedOverlays = this.getSelectedOverlays().filter(function (oElementOverlay) {
186
189
  return oElementOverlay !== oOverlay;
187
190
  });
188
191
  aSelectedOverlays.unshift(oOverlay);
189
192
 
190
- //Remove all previous entries retrieved by plugins (the list should always be rebuilt)
193
+ // Keep all persisted menu items
194
+ this._aMenuItems = this._aMenuItems.filter(function (mMenuItemEntry) {
195
+ if (mMenuItemEntry.bPersistOneTime) {
196
+ mMenuItemEntry.bPersistOneTime = false;
197
+ return true;
198
+ }
199
+ return !mMenuItemEntry.fromPlugin;
200
+ });
201
+
202
+ // Remove all previous entries retrieved by plugins (the list should always be rebuilt)
191
203
  this.oContextMenuControl.destroyItems();
192
204
 
193
205
  var oPromise = Promise.resolve();
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  * ! OpenUI5
3
- * (c) Copyright 2009-2021 SAP SE or an SAP affiliate company.
3
+ * (c) Copyright 2009-2022 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
 
@@ -26,7 +26,7 @@ sap.ui.define([
26
26
  * @class The ControlDragDrop enables D&D functionality for the overlays based on aggregation types
27
27
  * @extends sap.ui.dt.plugin.DragDrop
28
28
  * @author SAP SE
29
- * @version 1.96.1
29
+ * @version 1.97.1
30
30
  * @constructor
31
31
  * @private
32
32
  * @since 1.30
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  * ! OpenUI5
3
- * (c) Copyright 2009-2021 SAP SE or an SAP affiliate company.
3
+ * (c) Copyright 2009-2022 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
 
@@ -33,7 +33,7 @@ sap.ui.define([
33
33
  * @class The CutPaste enables Cut & Paste functionality for the overlays based on aggregation types
34
34
  * @extends sap.ui.dt.Plugin
35
35
  * @author SAP SE
36
- * @version 1.96.1
36
+ * @version 1.97.1
37
37
  * @constructor
38
38
  * @private
39
39
  * @since 1.34
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * OpenUI5
3
- * (c) Copyright 2009-2021 SAP SE or an SAP affiliate company.
3
+ * (c) Copyright 2009-2022 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
 
@@ -12,8 +12,7 @@ sap.ui.define([
12
12
  "sap/ui/dt/OverlayRegistry",
13
13
  "sap/ui/thirdparty/jquery",
14
14
  "sap/ui/Device"
15
- ],
16
- function(
15
+ ], function(
17
16
  BaseObject,
18
17
  Plugin,
19
18
  DOMUtil,
@@ -37,7 +36,7 @@ function(
37
36
  * @extends sap.ui.dt.Plugin
38
37
  *
39
38
  * @author SAP SE
40
- * @version 1.96.1
39
+ * @version 1.97.1
41
40
  *
42
41
  * @constructor
43
42
  * @private
@@ -101,7 +100,7 @@ function(
101
100
 
102
101
  /**
103
102
  * @override
104
- * @param {sap.ui.dt.Overlay} an Overlay which should be registered
103
+ * @param {sap.ui.dt.Overlay} oOverlay - Overlay which should be registered
105
104
  */
106
105
  DragDrop.prototype.registerElementOverlay = function(oOverlay) {
107
106
  // this._checkMovable(oOverlay);
@@ -155,7 +154,7 @@ function(
155
154
 
156
155
  /**
157
156
  * @private
158
- * @param {sap.ui.dt.Overlay} an Overlay to attach events to
157
+ * @param {sap.ui.dt.Overlay} oOverlay - Overlay to attach events to
159
158
  */
160
159
  DragDrop.prototype._attachDragEvents = function(oOverlay) {
161
160
  oOverlay.attachBrowserEvent("dragstart", this._onDragStart, this);
@@ -166,7 +165,7 @@ function(
166
165
 
167
166
  /**
168
167
  * @private
169
- * @param {sap.ui.dt.Overlay} an Overlay to detach events from
168
+ * @param {sap.ui.dt.Overlay} oOverlay - Overlay to detach events from
170
169
  */
171
170
  DragDrop.prototype._detachDragEvents = function(oOverlay) {
172
171
  oOverlay.detachBrowserEvent("dragstart", this._onDragStart, this);
@@ -176,70 +175,70 @@ function(
176
175
  };
177
176
 
178
177
  /**
179
- * @param {sap.ui.dt.Overlay} oOverlay overlay instance
178
+ * @param {sap.ui.dt.Overlay} oOverlay - Overlay instance
180
179
  * @protected
181
180
  */
182
181
  DragDrop.prototype.onMovableChange = function() { };
183
182
 
184
183
  /**
185
- * @param {sap.ui.dt.Overlay} oDraggedOverlay dragged overlay instance
184
+ * @param {sap.ui.dt.Overlay} oDraggedOverlay - Dragged overlay instance
186
185
  * @protected
187
186
  */
188
187
  DragDrop.prototype.onDragStart = function() { };
189
188
 
190
189
  /**
191
- * @param {sap.ui.dt.Overlay} oDraggedOverlay dragged overlay instance
190
+ * @param {sap.ui.dt.Overlay} oDraggedOverlay - Dragged overlay instance
192
191
  * @protected
193
192
  */
194
193
  DragDrop.prototype.onDragEnd = function() { };
195
194
 
196
195
  /**
197
- * @param {sap.ui.dt.Overlay} oDraggedOverlay dragged overlay instance
196
+ * @param {sap.ui.dt.Overlay} oDraggedOverlay - Dragged overlay instance
198
197
  * @protected
199
198
  */
200
199
  DragDrop.prototype.onDrag = function() { };
201
200
 
202
201
  /**
203
- * @param {sap.ui.dt.Overlay} oOverlay overlay instance
202
+ * @param {sap.ui.dt.Overlay} oOverlay - Overlay instance
204
203
  * @return {boolean} return true to omit event.preventDefault
205
204
  * @protected
206
205
  */
207
206
  DragDrop.prototype.onDragEnter = function() { };
208
207
 
209
208
  /**
210
- * @param {sap.ui.dt.Overlay} oOverlay overlay instance
209
+ * @param {sap.ui.dt.Overlay} oOverlay - Overlay instance
211
210
  * @return {boolean} return true to omit event.preventDefault
212
211
  * @protected
213
212
  */
214
213
  DragDrop.prototype.onDragLeave = function() { };
215
214
 
216
215
  /**
217
- * @param {sap.ui.dt.Overlay} oOverlay overlay instance
216
+ * @param {sap.ui.dt.Overlay} oOverlay - Overlay instance
218
217
  * @return {boolean} return true to omit event.preventDefault
219
218
  * @protected
220
219
  */
221
220
  DragDrop.prototype.onDragOver = function() { };
222
221
 
223
222
  /**
224
- * @param {sap.ui.dt.AggregationOverlay} oAggregationOverlay aggregation overlay instance
223
+ * @param {sap.ui.dt.AggregationOverlay} oAggregationOverlay - Aggregation overlay instance
225
224
  * @protected
226
225
  */
227
226
  DragDrop.prototype.onAggregationDragEnter = function() { };
228
227
 
229
228
  /**
230
- * @param {sap.ui.dt.AggregationOverlay} oAggregationOverlay aggregation overlay instance
229
+ * @param {sap.ui.dt.AggregationOverlay} oAggregationOverlay - Aggregation overlay instance
231
230
  * @protected
232
231
  */
233
232
  DragDrop.prototype.onAggregationDragOver = function() { };
234
233
 
235
234
  /**
236
- * @param {sap.ui.dt.AggregationOverlay} oAggregationOverlay aggregation overlay instance
235
+ * @param {sap.ui.dt.AggregationOverlay} oAggregationOverlay - Aggregation overlay instance
237
236
  * @protected
238
237
  */
239
238
  DragDrop.prototype.onAggregationDragLeave = function() { };
240
239
 
241
240
  /**
242
- * @param {sap.ui.dt.AggregationOverlay} oAggregationOverlay aggregation overlay instance
241
+ * @param {sap.ui.dt.AggregationOverlay} oAggregationOverlay - Aggregation overlay instance
243
242
  * @protected
244
243
  */
245
244
  DragDrop.prototype.onAggregationDrop = function() { };
@@ -471,6 +470,8 @@ function(
471
470
  };
472
471
 
473
472
  /**
473
+ * @param {sap.ui.dt.Overlay} oOverlay - Overlay instance
474
+ * @returns {object} jQuery ghost object
474
475
  * @protected
475
476
  */
476
477
  DragDrop.prototype.createGhost = function(oOverlay) {
@@ -512,7 +513,7 @@ function(
512
513
 
513
514
  /**
514
515
  * @protected
515
- * @return {jQuery} jQuery object drag ghost
516
+ * @return {jQuery} jQuery ghost object
516
517
  */
517
518
  DragDrop.prototype.getGhost = function() {
518
519
  return this._$ghost;
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  * ! OpenUI5
3
- * (c) Copyright 2009-2021 SAP SE or an SAP affiliate company.
3
+ * (c) Copyright 2009-2022 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
 
@@ -30,7 +30,7 @@ sap.ui.define([
30
30
  * @class The ElementMover enables movement of UI5 elements based on aggregation types, which can be used by drag and
31
31
  * drop or cut and paste behavior.
32
32
  * @author SAP SE
33
- * @version 1.96.1
33
+ * @version 1.97.1
34
34
  * @constructor
35
35
  * @private
36
36
  * @since 1.34
@@ -64,8 +64,9 @@ sap.ui.define([
64
64
 
65
65
  /**
66
66
  * Predicate to compute movability of a type
67
+ * @param {object} oElement - Element to be checked
68
+ * @returns {boolean} <code>true</code> if type is movable, <code>false</code> otherwise
67
69
  * @public
68
- * @return true if type is movable, false otherwise
69
70
  */
70
71
  ElementMover.prototype.isMovableType = function(oElement) {
71
72
  var aMovableTypes = this._getMovableTypes();
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * OpenUI5
3
- * (c) Copyright 2009-2021 SAP SE or an SAP affiliate company.
3
+ * (c) Copyright 2009-2022 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
 
@@ -22,7 +22,7 @@ function(Plugin) {
22
22
  * @extends sap.ui.dt.Plugin
23
23
  *
24
24
  * @author SAP SE
25
- * @version 1.96.1
25
+ * @version 1.97.1
26
26
  *
27
27
  * @constructor
28
28
  * @private
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  * ! OpenUI5
3
- * (c) Copyright 2009-2021 SAP SE or an SAP affiliate company.
3
+ * (c) Copyright 2009-2022 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
 
@@ -27,7 +27,7 @@ sap.ui.define([
27
27
  * @class The TabHandling plugin adjusts the tabindex for the elements.
28
28
  * @extends sap.ui.dt.Plugin
29
29
  * @author SAP SE
30
- * @version 1.96.1
30
+ * @version 1.97.1
31
31
  * @constructor
32
32
  * @private
33
33
  * @since 1.38
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * OpenUI5
3
- * (c) Copyright 2009-2021 SAP SE or an SAP affiliate company.
3
+ * (c) Copyright 2009-2022 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
 
@@ -16,7 +16,7 @@ sap.ui.define([
16
16
  *
17
17
  * @extends sap.ui.dt.Plugin
18
18
  * @author SAP SE
19
- * @version 1.96.1
19
+ * @version 1.97.1
20
20
  * @constructor
21
21
  * @private
22
22
  * @since 1.61
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * OpenUI5
3
- * (c) Copyright 2009-2021 SAP SE or an SAP affiliate company.
3
+ * (c) Copyright 2009-2022 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
 
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * OpenUI5
3
- * (c) Copyright 2009-2021 SAP SE or an SAP affiliate company.
3
+ * (c) Copyright 2009-2022 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
 
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * OpenUI5
3
- * (c) Copyright 2009-2021 SAP SE or an SAP affiliate company.
3
+ * (c) Copyright 2009-2022 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
 
@@ -30,7 +30,7 @@ sap.ui.define([
30
30
  *
31
31
  * @class
32
32
  * @author SAP SE
33
- * @version 1.96.1
33
+ * @version 1.97.1
34
34
  *
35
35
  * @private
36
36
  * @static
@@ -1,16 +1,18 @@
1
1
  /*!
2
2
  * OpenUI5
3
- * (c) Copyright 2009-2021 SAP SE or an SAP affiliate company.
3
+ * (c) Copyright 2009-2022 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
  sap.ui.define(function () {
7
7
  "use strict";
8
8
 
9
9
  /**
10
- * @function
11
- * @experimental
12
- * @private
13
- */
10
+ * @function
11
+ * @experimental
12
+ * @param {function} fn - Function that should be wrapped in a promise
13
+ * @returns {object} Cancelable Promise
14
+ * @private
15
+ */
14
16
  return function (fn) {
15
17
  var bCancelled = false;
16
18
  var oCancelPromise;