@sapui5/sap.ui.vbm 1.93.1 → 1.96.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/package.json +1 -1
  2. package/src/sap/ui/vbm/.library +1 -1
  3. package/src/sap/ui/vbm/Adapter.js +17 -13
  4. package/src/sap/ui/vbm/Adapter3D.js +1 -1
  5. package/src/sap/ui/vbm/Areas.js +7 -8
  6. package/src/sap/ui/vbm/Cluster.js +4 -3
  7. package/src/sap/ui/vbm/ClusterBase.js +4 -7
  8. package/src/sap/ui/vbm/ClusterRenderer.js +0 -1
  9. package/src/sap/ui/vbm/Containers.js +3 -5
  10. package/src/sap/ui/vbm/GeoJsonLayer.js +9 -10
  11. package/src/sap/ui/vbm/GeoMap.js +3 -2
  12. package/src/sap/ui/vbm/VBI.js +40 -8
  13. package/src/sap/ui/vbm/Viewport.js +6 -5
  14. package/src/sap/ui/vbm/VoAggregation.js +3 -5
  15. package/src/sap/ui/vbm/adapter3d/ModelHandler.js +1 -1
  16. package/src/sap/ui/vbm/adapter3d/ObjectFactory.js +1 -1
  17. package/src/sap/ui/vbm/adapter3d/PolygonHandler.js +1 -1
  18. package/src/sap/ui/vbm/adapter3d/SceneBuilder.js +270 -182
  19. package/src/sap/ui/vbm/adapter3d/VBIJSONParser.js +1 -1
  20. package/src/sap/ui/vbm/adapter3d/thirdparty/ColladaLoader.js +2267 -2509
  21. package/src/sap/ui/vbm/adapter3d/thirdparty/DecalGeometry.js +194 -266
  22. package/src/sap/ui/vbm/adapter3d/thirdparty/OrbitControls.js +1004 -700
  23. package/src/sap/ui/vbm/lib/sapactions.js +12 -9
  24. package/src/sap/ui/vbm/lib/sapautomations.js +12 -13
  25. package/src/sap/ui/vbm/lib/sapconfig.js +11 -3
  26. package/src/sap/ui/vbm/lib/sapdataprovider.js +11 -21
  27. package/src/sap/ui/vbm/lib/sapevents.js +11 -11
  28. package/src/sap/ui/vbm/lib/sapgeolocation.js +10 -3
  29. package/src/sap/ui/vbm/lib/sapgeomath.js +11 -4
  30. package/src/sap/ui/vbm/lib/sapgeotool.js +12 -3
  31. package/src/sap/ui/vbm/lib/sapheatmap.js +28 -25
  32. package/src/sap/ui/vbm/lib/saplabels.js +17 -11
  33. package/src/sap/ui/vbm/lib/saplassotrack.js +11 -5
  34. package/src/sap/ui/vbm/lib/sapmaplayer.js +13 -10
  35. package/src/sap/ui/vbm/lib/sapmapmanager.js +14 -4
  36. package/src/sap/ui/vbm/lib/sapmapprovider.js +11 -5
  37. package/src/sap/ui/vbm/lib/sapnavigation.js +11 -3
  38. package/src/sap/ui/vbm/lib/sapparsing.js +11 -1
  39. package/src/sap/ui/vbm/lib/sappositioning.js +12 -5
  40. package/src/sap/ui/vbm/lib/sapprojection.js +12 -5
  41. package/src/sap/ui/vbm/lib/saprecttrack.js +11 -5
  42. package/src/sap/ui/vbm/lib/sapresources.js +12 -6
  43. package/src/sap/ui/vbm/lib/sapscale.js +15 -5
  44. package/src/sap/ui/vbm/lib/sapscene.js +15 -13
  45. package/src/sap/ui/vbm/lib/saputilities.js +19 -91
  46. package/src/sap/ui/vbm/lib/sapvbcluster.js +14 -6
  47. package/src/sap/ui/vbm/lib/sapvbi.js +11 -42
  48. package/src/sap/ui/vbm/lib/sapvbicontext.js +11 -5
  49. package/src/sap/ui/vbm/lib/sapvbmenu.js +19 -13
  50. package/src/sap/ui/vbm/lib/sapvobase.js +17 -16
  51. package/src/sap/ui/vbm/lib/sapvoutils.js +14 -24
  52. package/src/sap/ui/vbm/lib/sapwindow.js +12 -12
  53. package/src/sap/ui/vbm/library.js +28 -31
  54. package/src/sap/ui/vbm/adapter3d/thirdparty/html2canvas.js +0 -6
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sapui5/sap.ui.vbm",
3
- "version": "1.93.1",
3
+ "version": "1.96.1",
4
4
  "description": "SAPUI5 Library sap.ui.vbm",
5
5
  "homepage": "https://sap.github.io/ui5-tooling/pages/SAPUI5/",
6
6
  "author": "SAP SE (https://www.sap.com)",
@@ -3,7 +3,7 @@
3
3
  <name>sap.ui.vbm</name>
4
4
  <vendor>SAP SE</vendor>
5
5
  <copyright>SAP UI development toolkit for HTML5 (SAPUI5) (c) Copyright 2009-2012 SAP AG. All rights reserved</copyright>
6
- <version>1.93.1</version>
6
+ <version>1.96.1</version>
7
7
 
8
8
  <documentation>SAP UI library: sap.ui.vbm</documentation>
9
9
 
@@ -23,7 +23,7 @@ sap.ui.define([
23
23
  * @param {string} [sId] id for the new control, generated automatically if no id is given
24
24
  * @param {object} [mSettings] initial settings for the new object
25
25
  * @author SAP SE
26
- * @version 1.93.1
26
+ * @version 1.96.1
27
27
  * @extends sap.ui.core.Element
28
28
  * @constructor
29
29
  * @public
@@ -1298,13 +1298,16 @@ sap.ui.define([
1298
1298
  * @private
1299
1299
  */
1300
1300
  Adapter.prototype._processDetailWindows = function(obj) {
1301
- //No transformation needed for removal - pass it along to VBI as is.
1302
-
1303
1301
  var oGeoMap = this._map();
1304
1302
  var that = this;
1305
1303
 
1306
- /*Only delta supported for Windows - Set*/
1307
- if (obj.SAPVB.Windows.Set.name) {
1304
+ // "Remove" and "Set" verbs supported only
1305
+ if (!obj.SAPVB.Windows.Set && !obj.SAPVB.Windows.Remove) {
1306
+ return this;
1307
+ }
1308
+ // No transformation needed for removal - pass it along to VBI as is.
1309
+ // Only delta supported for Windows - Set
1310
+ if (obj.SAPVB.Windows.Set && obj.SAPVB.Windows.Set.name) {
1308
1311
 
1309
1312
  var findPredicate = function(prop, name) {
1310
1313
  return function(d) {
@@ -1321,7 +1324,7 @@ sap.ui.define([
1321
1324
  for (var sAttribute in wnd.Window) {
1322
1325
  if (wnd.Window.hasOwnProperty(sAttribute)) {
1323
1326
  if (sAttribute.endsWith(".bind")) {
1324
- //Only known bound attribute is pos - known to have a value like Spots.+hY+jTn2HueNpLoqrc5IAg==.GeoPosition
1327
+ // Only known bound attribute is pos - known to have a value like Spots.+hY+jTn2HueNpLoqrc5IAg==.GeoPosition
1325
1328
  if (sAttribute.startsWith("pos")) {
1326
1329
  var aParameters = wnd.Window[sAttribute].split(".");
1327
1330
  if (aParameters[0] in oModelData) {
@@ -1345,7 +1348,7 @@ sap.ui.define([
1345
1348
 
1346
1349
  obj.SAPVB.Windows.Set = aWindows;
1347
1350
 
1348
- //Dereference VOs
1351
+ // Dereference VOs
1349
1352
  if (obj.SAPVB.Scenes && obj.SAPVB.Scenes.Set && obj.SAPVB.Scenes.Set.name && obj.SAPVB.Scenes.Set.Scene && obj.SAPVB.Scenes.Set.Scene.VO) {
1350
1353
 
1351
1354
  var aVOs = [].concat(obj.SAPVB.Scenes.Set.Scene.VO).map(function(v) {
@@ -1374,18 +1377,18 @@ sap.ui.define([
1374
1377
  for (var sAttribute in v) {
1375
1378
  if (v.hasOwnProperty(sAttribute)) {
1376
1379
  if (sAttribute.endsWith(".bind")) {
1377
- //Only known bound attribute is text - has values like DetailData.0.Column.1.Text
1380
+ // Only known bound attribute is text - has values like DetailData.0.Column.1.Text
1378
1381
  var aParameters = v[sAttribute].split(".");
1379
1382
 
1380
1383
  if (obj.SAPVB.Data && obj.SAPVB.Data.Set) {
1381
- //Only Delta supported for Detail Window
1384
+ // Only Delta supported for Detail Window
1382
1385
  [].concat(obj.SAPVB.Data.Set).forEach(dereferenceBoundAttributes(oVO, sAttribute, aParameters), this);
1383
1386
  }
1384
1387
  }
1385
1388
  }
1386
1389
  }
1387
1390
 
1388
- //Process relevant actions
1391
+ // Process relevant actions
1389
1392
  if (obj.SAPVB.Actions && obj.SAPVB.Actions.Set) {
1390
1393
  [].concat(obj.SAPVB.Actions.Set).filter(function(a) { return a.Action.refVO === oVO.id; }).forEach(function(fa) {
1391
1394
  that._attachHandler.call(oGeoMap, fa.Action.name, that._handler, that);
@@ -1394,12 +1397,13 @@ sap.ui.define([
1394
1397
 
1395
1398
  return oVO;
1396
1399
  }, this);
1397
-
1398
- //delete obj.SAPVB["Actions"];
1400
+ // delete obj.SAPVB["Actions"];
1399
1401
  obj.SAPVB.Scenes.Set.Scene.VO = aVOs;
1400
1402
  }
1401
- oGeoMap.load(obj);
1402
1403
  }
1404
+ // pass it to VBI (this is hazardous as if payload contains something not related to Detail Windows in Scene,
1405
+ // VO or Data sections then it will be processed twice with unpredictable results)
1406
+ oGeoMap.load(obj);
1403
1407
  return this;
1404
1408
  };
1405
1409
 
@@ -42,7 +42,7 @@ sap.ui.define([
42
42
  * @param {string} [sId] id for the new control, generated automatically if no id is given
43
43
  * @param {object} [mSettings] initial settings for the new object
44
44
  * @author SAP SE
45
- * @version 1.93.1
45
+ * @version 1.96.1
46
46
  * @extends sap.ui.core.Element
47
47
  * @constructor
48
48
  * @public
@@ -6,16 +6,17 @@
6
6
  // Provides control sap.ui.vbm.Areas.
7
7
  sap.ui.define([
8
8
  "./VoAggregation",
9
+ "sap/ui/unified/Menu",
9
10
  "sap/base/Log",
10
11
  "./library"
11
- ], function(VoAggregation, Log, library) {
12
+ ], function(VoAggregation, Menu, Log, library) {
12
13
  "use strict";
13
14
 
14
15
  var thisModule = "sap.ui.vbm.Areas";
15
16
 
16
17
  /**
17
18
  * Constructor for a new Areas.
18
- *
19
+ *
19
20
  * @param {string} [sId] id for the new control, generated automatically if no id is given
20
21
  * @param {object} [mSettings] initial settings for the new control
21
22
  * @class Type specific Visual Object aggregation for <i>Area</i> instances.
@@ -67,7 +68,7 @@ sap.ui.define([
67
68
  */
68
69
  instance: {
69
70
  type: "sap.ui.vbm.Area"
70
- },
71
+ },
71
72
  /**
72
73
  * The number of the edge where the click occured. Edges are numbered zero based: e.g. edge from point 1 to point 2 has number
73
74
  * 0
@@ -282,21 +283,19 @@ sap.ui.define([
282
283
  if ((Area = this.findInstance(event.Action.instance))) {
283
284
  var eventContext = {
284
285
  data: event,
285
- edge: parseInt(event.Action.Params.Param['2']['#'], 10)
286
+ edge: parseInt(event.Action.Params.Param['2']['#'], 10)
286
287
  };
287
-
288
+
288
289
  if (s == "edgeContextMenu") {
289
290
  Area.mClickPos = [
290
291
  event.Action.Params.Param[0]['#'], event.Action.Params.Param[1]['#']
291
292
  ];
292
- // lazy load sap.ui.unified library for using the Menu
293
- sap.ui.getCore().loadLibrary("sap.ui.unified");
294
293
 
295
294
  if (this.oParent.mVBIContext.m_Menus) {
296
295
  this.oParent.mVBIContext.m_Menus.deleteMenu("DynContextMenu");
297
296
  }
298
297
  // create an empty menu
299
- var oMenuObject = new sap.ui.unified.Menu();
298
+ var oMenuObject = new Menu();
300
299
  oMenuObject.vbi_data = {};
301
300
  oMenuObject.vbi_data.menuRef = "CTM";
302
301
  oMenuObject.vbi_data.VBIName = "DynContextMenu";
@@ -7,13 +7,14 @@
7
7
  sap.ui.define([
8
8
  "sap/ui/core/Control",
9
9
  "jquery.sap.global",
10
- "./library"
11
- ], function(Control, jQuery, library) {
10
+ "./library",
11
+ "./ClusterRenderer"
12
+ ], function(Control, jQuery, library, ClusterRenderer) {
12
13
  "use strict";
13
14
 
14
15
  /**
15
16
  * Constructor for a new Cluster.
16
- *
17
+ *
17
18
  * @param {string} [sId] id for the new control, generated automatically if no id is given
18
19
  * @param {object} [mSettings] initial settings for the new control
19
20
  * @class Cluster control to visualize clustered objects on a map. The Cluster control does not cluster anything itself, instead it only shows a
@@ -8,10 +8,11 @@ sap.ui.define([
8
8
  "sap/ui/core/Element",
9
9
  "sap/ui/core/theming/Parameters",
10
10
  "./ClusterContainer",
11
+ "sap/ui/unified/Menu",
11
12
  "jquery.sap.global",
12
13
  "sap/base/Log",
13
14
  "./library"
14
- ], function(Element, Parameters, ClusterContainer, jQuery, Log, library) {
15
+ ], function(Element, Parameters, ClusterContainer, Menu, jQuery, Log, library) {
15
16
  "use strict";
16
17
 
17
18
  var thisModule = "sap.ui.vbm.ClusterBase";
@@ -390,14 +391,12 @@ sap.ui.define([
390
391
  oVo.mClickPos = [
391
392
  event.Action.Params.Param[0]['#'], event.Action.Params.Param[1]['#']
392
393
  ];
393
- // lazy load sap.ui.unified library for using the Menu
394
- sap.ui.getCore().loadLibrary("sap.ui.unified");
395
394
 
396
395
  if (this.oParent.mVBIContext.m_Menus) {
397
396
  this.oParent.mVBIContext.m_Menus.deleteMenu("DynContextMenu");
398
397
  }
399
398
  // create an empty menu
400
- var oMenuObject = new sap.ui.unified.Menu();
399
+ var oMenuObject = new Menu();
401
400
  oMenuObject.vbi_data = {};
402
401
  oMenuObject.vbi_data.menuRef = "CTM";
403
402
  oMenuObject.vbi_data.VBIName = "DynContextMenu";
@@ -543,15 +542,13 @@ sap.ui.define([
543
542
  oCluster.mClickPos = [
544
543
  oEvent.clientX - oMapDiv.offsetLeft, oEvent.clientY - oMapDiv.offsetTop
545
544
  ];
546
- // lazy load sap.ui.unified library for using the Menu
547
- sap.ui.getCore().loadLibrary("sap.ui.unified");
548
545
 
549
546
  try {
550
547
  if (this.oParent.mVBIContext.m_Menus) {
551
548
  this.oParent.mVBIContext.m_Menus.deleteMenu("DynContextMenu");
552
549
  }
553
550
  // create an empty menu
554
- var oMenuObject = new sap.ui.unified.Menu();
551
+ var oMenuObject = new Menu();
555
552
  oMenuObject.vbi_data = {};
556
553
  oMenuObject.vbi_data.menuRef = "CTM";
557
554
  oMenuObject.vbi_data.VBIName = "DynContextMenu";
@@ -37,7 +37,6 @@ sap.ui.define([
37
37
 
38
38
  var col = oControl.getColor();
39
39
  var type = oControl.getType();
40
- IconPool.insertFontFaceStyle();
41
40
  var iiconVal = oControl.getIcon();
42
41
  var icon, icInfo;
43
42
  if (iiconVal) {
@@ -6,8 +6,9 @@
6
6
  // Provides control sap.ui.vbm.Containers.
7
7
  sap.ui.define([
8
8
  "./VoAggregation",
9
+ "sap/ui/unified/Menu",
9
10
  "./library"
10
- ], function(VoAggregation, library) {
11
+ ], function(VoAggregation, Menu, library) {
11
12
  "use strict";
12
13
 
13
14
  /**
@@ -214,15 +215,12 @@ sap.ui.define([
214
215
  oContainer.mClickPos = [
215
216
  oEvent.clientX - oMapDivRect.left, oEvent.clientY - oMapDivRect.top
216
217
  ];
217
- // lazy load sap.ui.unified library for using the Menu
218
- sap.ui.getCore().loadLibrary("sap.ui.unified");
219
-
220
218
  try {
221
219
  if (this.oParent.mVBIContext.m_Menus) {
222
220
  this.oParent.mVBIContext.m_Menus.deleteMenu("DynContextMenu");
223
221
  }
224
222
  // create an empty menu
225
- var oMenuObject = new sap.ui.unified.Menu();
223
+ var oMenuObject = new Menu();
226
224
  oMenuObject.vbi_data = {};
227
225
  oMenuObject.vbi_data.menuRef = "CTM";
228
226
  oMenuObject.vbi_data.VBIName = "DynContextMenu";
@@ -7,17 +7,18 @@
7
7
  sap.ui.define([
8
8
  "sap/ui/core/Element",
9
9
  "sap/ui/core/theming/Parameters",
10
+ "sap/ui/unified/Menu",
10
11
  "jquery.sap.global",
11
12
  "sap/base/Log",
12
13
  "./library"
13
- ], function(Element, Parameters, jQuery, Log, library) {
14
+ ], function(Element, Parameters, Menu, jQuery, Log, library) {
14
15
  "use strict";
15
16
 
16
17
  var thisModule = "sap.ui.vbm.GeoJsonLayer";
17
18
 
18
19
  /**
19
20
  * Constructor for a new GeoJsonLayer.
20
- *
21
+ *
21
22
  * @param {string} [sId] id for the new control, generated automatically if no id is given
22
23
  * @param {object} [mSettings] initial settings for the new control
23
24
  * @class GeoJsonLayer aggregation container. A GeoJsonLayer can render the content of an assigned GeoJSON. The naming is associated to the
@@ -158,7 +159,7 @@ sap.ui.define([
158
159
 
159
160
  /**
160
161
  * Add GeoJSON object to the layer
161
- *
162
+ *
162
163
  * @param {object} aData GeoJSON object or an array of those
163
164
  * @returns {void}
164
165
  * @public
@@ -726,7 +727,7 @@ sap.ui.define([
726
727
  }
727
728
  // if( this.mEventRegistry[ "drop" ] || this.isEventRegistered( "drop" ) )
728
729
  // aActions.push( { "id": id + "3", "name": "drop", "refScene": "MainScene", "refVO": id, "refEvent": "Drop" } );
729
- //
730
+ //
730
731
  // if( this.mEventRegistry[ "edgeClick" ] || this.isEventRegistered( "edgeClick" ) )
731
732
  // aActions.push( { "id": id + "7", "name": "edgeClick", "refScene": "MainScene", "refVO": id, "refEvent": "EdgeClick" });
732
733
  // if( this.mEventRegistry[ "edgeContextMenu" ] || this.isEventRegistered( "edgeContextMenu" ) )
@@ -737,7 +738,7 @@ sap.ui.define([
737
738
 
738
739
  /**
739
740
  * Returns Properties for Features like name, bounding box, and midpoint
740
- *
741
+ *
741
742
  * @param {string[]} aFeatureIds Array of Feature Ids. The Feature Id must match the GeoJSON tag.
742
743
  * @returns {array} Array of Feature Information Objects. Each object in the array has the properties BBox: Bounding Box for the Feature in format
743
744
  * "lonMin;latMin;lonMax;latMax", Midpoint: Centerpoint for Feature in format "lon;lat", Name: Name of the Feature, and Properties: Array
@@ -777,14 +778,12 @@ sap.ui.define([
777
778
  oOverlay.mClickPos = [
778
779
  event.Action.Params.Param[0]['#'], event.Action.Params.Param[1]['#']
779
780
  ];
780
- // lazy load sap.ui.unified library for using the Menu
781
- sap.ui.getCore().loadLibrary("sap.ui.unified");
782
781
 
783
782
  if (this.oParent.mVBIContext.m_Menus) {
784
783
  this.oParent.mVBIContext.m_Menus.deleteMenu("DynContextMenu");
785
784
  }
786
785
  // create an empty menu
787
- var oMenuObject = new sap.ui.unified.Menu();
786
+ var oMenuObject = new Menu();
788
787
  oMenuObject.vbi_data = {};
789
788
  oMenuObject.vbi_data.menuRef = "CTM";
790
789
  oMenuObject.vbi_data.VBIName = "DynContextMenu";
@@ -812,7 +811,7 @@ sap.ui.define([
812
811
 
813
812
  /**
814
813
  * open a Detail Window
815
- *
814
+ *
816
815
  * @param {sap.ui.vbm.Feature} oFeature VO instance for which the Detail Window should be opened
817
816
  * @param {object} oParams Parameter object
818
817
  * @param {string} oParams.caption Text for Detail Window caption
@@ -835,7 +834,7 @@ sap.ui.define([
835
834
 
836
835
  /**
837
836
  * open the context menu
838
- *
837
+ *
839
838
  * @param {sap.ui.vbm.Feature} oFeature VO instance for which the Detail Window should be opened
840
839
  * @param {object} oMenu the context menu to be opened
841
840
  * @returns {void}
@@ -8,8 +8,9 @@ sap.ui.define([
8
8
  "./VBI",
9
9
  "jquery.sap.global",
10
10
  "sap/base/Log",
11
- "./library"
12
- ], function(VBI, jQuery, Log, library) {
11
+ "./library",
12
+ "./GeoMapRenderer"
13
+ ], function(VBI, jQuery, Log, library, GeoMapRenderer) {
13
14
  "use strict";
14
15
 
15
16
  var thisModule = "sap.ui.vbm.GeoMap";
@@ -10,13 +10,45 @@ sap.ui.define([
10
10
  "sap/ui/core/RenderManager",
11
11
  "jquery.sap.global",
12
12
  "sap/base/Log",
13
+ "./library",
14
+ "./VBIRenderer",
13
15
  "./lib/sapvbi",
14
- "./library"
15
- ], function(Control, RenderManager, jQuery, Log, sapvbi, library) {
16
+ "./lib/saputilities", // utility functions
17
+ "./lib/sapvbicontext", // control context
18
+ "./lib/sapdataprovider", // data provider
19
+ "./lib/sapresources", // resources
20
+ "./lib/sapgeomath", // geo math functions
21
+ "./lib/sapmaplayer",
22
+ "./lib/sapmapprovider",
23
+ "./lib/sapmapmanager", // map support
24
+ "./lib/sapvoutils",
25
+ "./lib/sapvobase", // visual objects base and vo implementation
26
+ "./lib/sapevents", // event subscription
27
+ "./lib/saplabels", // labels
28
+ "./lib/sappositioning", // GetPosFrom/// and co
29
+ "./lib/sapscene", // scene handling, scenes
30
+ "./lib/sapwindow", // window handling, detail and so on
31
+ "./lib/sapactions", // actions handling, framework event subscription
32
+ "./lib/sapautomations",
33
+ "./lib/sapgeolocation",
34
+ "./lib/sapgeotool", // geo tools for VBI namespace
35
+ "./lib/sapscale",
36
+ "./lib/sapnavigation",
37
+ "./lib/sapvbmenu", // context menu
38
+ "./lib/sapprojection", // map projection (mercator, linear)
39
+ "./lib/sapvbcluster", // VO clustering
40
+ "./lib/sapparsing", // expression evaluation
41
+ "./lib/sapconfig",
42
+ "./lib/saplassotrack",
43
+ "./lib/saprecttrack",
44
+ "./lib/sapheatmap"
45
+ ], function(Control, RenderManager, jQuery, Log, library, VBIRenderer) {
16
46
  "use strict";
17
47
 
18
48
  var thisModule = "sap.ui.vbm.VBI";
19
49
 
50
+ VBI.Utilities.GetTransparentImage();
51
+
20
52
  /**
21
53
  * Constructor for a new VBI.
22
54
  *
@@ -872,13 +904,13 @@ sap.ui.define([
872
904
 
873
905
  /**
874
906
  * Retrieve information on a specific cluster object.
875
- *
876
- * Type :
907
+ *
908
+ * Type :
877
909
  * <ul>
878
- * <li>0 : contained VOs</li>
879
- * <li>1 : child clusters (tree clustering only)</li>
880
- * <li>2 : parent Node (tree clustering only)</li>
881
- * <li>10 : Information on Node</li>
910
+ * <li>0 : contained VOs</li>
911
+ * <li>1 : child clusters (tree clustering only)</li>
912
+ * <li>2 : parent Node (tree clustering only)</li>
913
+ * <li>10 : Information on Node</li>
882
914
  * <li>11 : Edges of the Voronoi Area (tree clustering only, not merged with rectangle)</li>
883
915
  * </ul>
884
916
  *
@@ -24,7 +24,7 @@ sap.ui.define([
24
24
  *
25
25
  * @public
26
26
  * @author SAP SE
27
- * @version 1.93.1
27
+ * @version 1.96.1
28
28
  * @extends sap.ui.core.Control
29
29
  * @alias sap.ui.vbm.Viewport
30
30
  */
@@ -177,6 +177,7 @@ sap.ui.define([
177
177
  this._bbox = new THREE.Box3(); // scene bounding box
178
178
 
179
179
  this._cameraController = new OrbitControls(this._camera, this._renderer.domElement);
180
+ this._cameraController.listenToKeyEvents(this._renderer.domElement);
180
181
  this._cameraController.addEventListener("end", this._cameraEnd.bind(this));
181
182
  this._cameraController.addEventListener("change", this._cameraUpdate.bind(this));
182
183
  this._cameraController.update();
@@ -489,7 +490,7 @@ sap.ui.define([
489
490
  box.union(_box);
490
491
  }
491
492
  }
492
-
493
+
493
494
  var children = object.children;
494
495
  for (i = 0; i < children.length; ++i) {
495
496
  calcBBox(children[i], box);
@@ -506,7 +507,7 @@ sap.ui.define([
506
507
  }
507
508
  return this._bbox;
508
509
  };
509
-
510
+
510
511
  // debug: visualize scene bounding box & sphere
511
512
  // var sceneBox, sceneSphere;
512
513
 
@@ -569,13 +570,13 @@ sap.ui.define([
569
570
  // private, update OrbitControls -> adjust target point so it's always on the ground (XZ) plane to ensure zoom is always works in a same way
570
571
  Viewport.prototype._updateController = function() {
571
572
  var dir = this._cameraController.target.clone().sub(this._camera.position).normalize();
572
- var normal = new THREE.Vector3(0, this._camera.position.y > 0 ? 1 : -1, 0);
573
+ var normal = new THREE.Vector3(0, this._camera.position.y > 0 ? 1 : -1, 0);
573
574
  var plane = new THREE.Plane(normal), target = new THREE.Vector3();
574
575
  var ray = new THREE.Ray(this._camera.position, dir);
575
576
  // adjust only if intersection exists
576
577
  if (ray.intersectPlane(plane, target)) {
577
578
  // when camera is almost on XZ plane, intersection point could be very far or very close
578
- // setting it straight as camera target makes navigation unusable, as either
579
+ // setting it straight as camera target makes navigation unusable, as either
579
580
  // small mouse movements results in huge move of camera in space (when intersection is far away)
580
581
  // or huge mouse movements result in bearly visible camera move in space (when intersection point is too close)
581
582
  // so don't update camera target in those extreme cases
@@ -6,10 +6,11 @@
6
6
  // Provides control sap.ui.vbm.VoAggregation.
7
7
  sap.ui.define([
8
8
  "./VoAbstract",
9
+ "sap/ui/unified/Menu",
9
10
  "jquery.sap.global",
10
11
  "sap/base/Log",
11
12
  "./library"
12
- ], function(VoAbstract, jQuery, Log, library) {
13
+ ], function(VoAbstract, Menu, jQuery, Log, library) {
13
14
  "use strict";
14
15
 
15
16
  /**
@@ -808,14 +809,11 @@ sap.ui.define([
808
809
  event.Action.Params.Param[0]['#'], event.Action.Params.Param[1]['#']
809
810
  ];
810
811
 
811
- // lazy load sap.ui.unified library for using the Menu
812
- sap.ui.getCore().loadLibrary("sap.ui.unified");
813
-
814
812
  if (this.oParent.mVBIContext.m_Menus) {
815
813
  this.oParent.mVBIContext.m_Menus.deleteMenu("DynContextMenu");
816
814
  }
817
815
  // create an empty menu
818
- var oMenuObject = new sap.ui.unified.Menu();
816
+ var oMenuObject = new Menu();
819
817
  oMenuObject.vbi_data = {};
820
818
  oMenuObject.vbi_data.menuRef = "CTM";
821
819
  oMenuObject.vbi_data.VBIName = "DynContextMenu";
@@ -30,7 +30,7 @@ sap.ui.define([
30
30
  *
31
31
  * @private
32
32
  * @author SAP SE
33
- * @version 1.93.1
33
+ * @version 1.96.1
34
34
  * @alias sap.ui.vbm.adapter3d.ModelHandler
35
35
  */
36
36
  var ModelHandler = BaseObject.extend("sap.ui.vbm.adapter3d.ModelHandler", /** @lends sap.ui.vbm.adapter3d.ModelHandler.prototype */ {
@@ -378,7 +378,7 @@ sap.ui.define([
378
378
  *
379
379
  * @private
380
380
  * @author SAP SE
381
- * @version 1.93.1
381
+ * @version 1.96.1
382
382
  * @alias sap.ui.vbm.adapter3d.ObjectFactory
383
383
  */
384
384
  var ObjectFactory = BaseObject.extend("sap.ui.vbm.adapter3d.ObjectFactory", /** @lends sap.ui.vbm.adapter3d.ObjectFactory.prototype */ {});
@@ -33,7 +33,7 @@ sap.ui.define([
33
33
  *
34
34
  * @private
35
35
  * @author SAP SE
36
- * @version 1.93.1
36
+ * @version 1.96.1
37
37
  * @alias sap.ui.vbm.adapter3d.PolygonHandler
38
38
  */
39
39
  var PolygonHandler = BaseObject.extend("sap.ui.vbm.adapter3d.PolygonHandler", /** @lends sap.ui.vbm.adapter3d.PolygonHandler.prototype */ {