@sapui5/sap.ui.vk 1.139.0 → 1.141.0
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 +1 -1
- package/src/sap/ui/vk/.library +1 -1
- package/src/sap/ui/vk/AnimationPlayback.js +1 -1
- package/src/sap/ui/vk/AnimationPlayer.js +1 -1
- package/src/sap/ui/vk/AnimationSequence.js +1 -1
- package/src/sap/ui/vk/AnimationTimeSlider.js +1 -1
- package/src/sap/ui/vk/AnimationTrack.js +1 -1
- package/src/sap/ui/vk/Annotation.js +3 -3
- package/src/sap/ui/vk/BaseNodeProxy.js +1 -1
- package/src/sap/ui/vk/Camera.js +1 -1
- package/src/sap/ui/vk/ContentConnector.js +1 -1
- package/src/sap/ui/vk/ContentManager.js +1 -1
- package/src/sap/ui/vk/ContentResource.js +1 -1
- package/src/sap/ui/vk/Core.js +1 -1
- package/src/sap/ui/vk/DownloadManager.js +1 -1
- package/src/sap/ui/vk/DrawerToolbar.js +1 -1
- package/src/sap/ui/vk/DvlException.js +1 -1
- package/src/sap/ui/vk/FlexibleControl.js +1 -1
- package/src/sap/ui/vk/FlexibleControlLayoutData.js +1 -1
- package/src/sap/ui/vk/Highlight.js +1 -1
- package/src/sap/ui/vk/ImageContentManager.js +1 -1
- package/src/sap/ui/vk/JointUtils.js +1 -1
- package/src/sap/ui/vk/LayerProxy.js +1 -1
- package/src/sap/ui/vk/Loco.js +1 -1
- package/src/sap/ui/vk/Material.js +1 -1
- package/src/sap/ui/vk/NativeViewport.js +1 -1
- package/src/sap/ui/vk/NodeContentType.js +6 -1
- package/src/sap/ui/vk/NodeHierarchy.js +1 -1
- package/src/sap/ui/vk/NodeProxy.js +1 -1
- package/src/sap/ui/vk/NodeUtils.js +1 -1
- package/src/sap/ui/vk/Notifications.js +1 -1
- package/src/sap/ui/vk/ObjectType.js +2 -1
- package/src/sap/ui/vk/OrthographicCamera.js +1 -1
- package/src/sap/ui/vk/PerspectiveCamera.js +1 -1
- package/src/sap/ui/vk/ProgressIndicator.js +1 -1
- package/src/sap/ui/vk/RedlineCollaboration.js +1 -1
- package/src/sap/ui/vk/RedlineConversation.js +1 -1
- package/src/sap/ui/vk/RedlineDesign.js +1 -1
- package/src/sap/ui/vk/RedlineElement.js +1 -1
- package/src/sap/ui/vk/RedlineElementComment.js +1 -1
- package/src/sap/ui/vk/RedlineElementEllipse.js +1 -1
- package/src/sap/ui/vk/RedlineElementFreehand.js +1 -1
- package/src/sap/ui/vk/RedlineElementLine.js +1 -1
- package/src/sap/ui/vk/RedlineElementRectangle.js +1 -1
- package/src/sap/ui/vk/RedlineElementText.js +1 -1
- package/src/sap/ui/vk/RedlineSurface.js +1 -1
- package/src/sap/ui/vk/SafeArea.js +1 -1
- package/src/sap/ui/vk/Scene.js +1 -1
- package/src/sap/ui/vk/SceneTree.js +1 -1
- package/src/sap/ui/vk/StepNavigation.js +1 -1
- package/src/sap/ui/vk/Texture.js +1 -1
- package/src/sap/ui/vk/ToggleMenuButton.js +1 -1
- package/src/sap/ui/vk/ToggleMenuItem.js +1 -1
- package/src/sap/ui/vk/Toolbar.js +1 -1
- package/src/sap/ui/vk/View.js +1 -1
- package/src/sap/ui/vk/ViewGallery.js +1 -1
- package/src/sap/ui/vk/ViewGalleryThumbnail.js +1 -1
- package/src/sap/ui/vk/ViewGroup.js +1 -1
- package/src/sap/ui/vk/ViewManager.js +1 -1
- package/src/sap/ui/vk/ViewStateManager.js +1 -1
- package/src/sap/ui/vk/ViewStateManagerBase.js +1 -1
- package/src/sap/ui/vk/Viewer.js +12 -2
- package/src/sap/ui/vk/Viewport.js +43 -1
- package/src/sap/ui/vk/ViewportBase.js +24 -1
- package/src/sap/ui/vk/dvl/BaseNodeProxy.js +1 -1
- package/src/sap/ui/vk/dvl/ContentManager.js +1 -1
- package/src/sap/ui/vk/dvl/GraphicsCore.js +1 -1
- package/src/sap/ui/vk/dvl/LayerProxy.js +1 -1
- package/src/sap/ui/vk/dvl/NodeHierarchy.js +1 -1
- package/src/sap/ui/vk/dvl/NodeProxy.js +1 -1
- package/src/sap/ui/vk/dvl/Scene.js +1 -1
- package/src/sap/ui/vk/dvl/ViewStateManager.js +1 -1
- package/src/sap/ui/vk/dvl/Viewport.js +2 -2
- package/src/sap/ui/vk/ecad/ElementsPanel.js +636 -375
- package/src/sap/ui/vk/ecad/LayersPanel.js +88 -75
- package/src/sap/ui/vk/i18n/messagebundle.properties +0 -4
- package/src/sap/ui/vk/i18n/messagebundle_ar.properties +2 -3
- package/src/sap/ui/vk/i18n/messagebundle_bg.properties +2 -3
- package/src/sap/ui/vk/i18n/messagebundle_ca.properties +2 -3
- package/src/sap/ui/vk/i18n/messagebundle_cnr.properties +2 -3
- package/src/sap/ui/vk/i18n/messagebundle_cs.properties +2 -3
- package/src/sap/ui/vk/i18n/messagebundle_cy.properties +2 -3
- package/src/sap/ui/vk/i18n/messagebundle_da.properties +2 -3
- package/src/sap/ui/vk/i18n/messagebundle_de.properties +4 -5
- package/src/sap/ui/vk/i18n/messagebundle_el.properties +2 -3
- package/src/sap/ui/vk/i18n/messagebundle_en.properties +2 -3
- package/src/sap/ui/vk/i18n/messagebundle_en_GB.properties +2 -3
- package/src/sap/ui/vk/i18n/messagebundle_en_US_saprigi.properties +1 -3
- package/src/sap/ui/vk/i18n/messagebundle_es.properties +2 -3
- package/src/sap/ui/vk/i18n/messagebundle_es_MX.properties +2 -3
- package/src/sap/ui/vk/i18n/messagebundle_et.properties +2 -3
- package/src/sap/ui/vk/i18n/messagebundle_fi.properties +2 -3
- package/src/sap/ui/vk/i18n/messagebundle_fr.properties +2 -3
- package/src/sap/ui/vk/i18n/messagebundle_fr_CA.properties +2 -3
- package/src/sap/ui/vk/i18n/messagebundle_hi.properties +2 -3
- package/src/sap/ui/vk/i18n/messagebundle_hr.properties +2 -3
- package/src/sap/ui/vk/i18n/messagebundle_hu.properties +2 -3
- package/src/sap/ui/vk/i18n/messagebundle_id.properties +3 -4
- package/src/sap/ui/vk/i18n/messagebundle_it.properties +2 -3
- package/src/sap/ui/vk/i18n/messagebundle_iw.properties +2 -3
- package/src/sap/ui/vk/i18n/messagebundle_ja.properties +4 -5
- package/src/sap/ui/vk/i18n/messagebundle_kk.properties +2 -3
- package/src/sap/ui/vk/i18n/messagebundle_ko.properties +2 -3
- package/src/sap/ui/vk/i18n/messagebundle_lt.properties +2 -3
- package/src/sap/ui/vk/i18n/messagebundle_lv.properties +2 -3
- package/src/sap/ui/vk/i18n/messagebundle_mk.properties +2 -3
- package/src/sap/ui/vk/i18n/messagebundle_ms.properties +2 -3
- package/src/sap/ui/vk/i18n/messagebundle_nl.properties +2 -3
- package/src/sap/ui/vk/i18n/messagebundle_no.properties +3 -4
- package/src/sap/ui/vk/i18n/messagebundle_pl.properties +2 -3
- package/src/sap/ui/vk/i18n/messagebundle_pt.properties +2 -3
- package/src/sap/ui/vk/i18n/messagebundle_pt_PT.properties +2 -3
- package/src/sap/ui/vk/i18n/messagebundle_ro.properties +2 -3
- package/src/sap/ui/vk/i18n/messagebundle_ru.properties +2 -3
- package/src/sap/ui/vk/i18n/messagebundle_sh.properties +2 -3
- package/src/sap/ui/vk/i18n/messagebundle_sk.properties +2 -3
- package/src/sap/ui/vk/i18n/messagebundle_sl.properties +2 -3
- package/src/sap/ui/vk/i18n/messagebundle_sr.properties +2 -3
- package/src/sap/ui/vk/i18n/messagebundle_sv.properties +2 -3
- package/src/sap/ui/vk/i18n/messagebundle_th.properties +2 -3
- package/src/sap/ui/vk/i18n/messagebundle_tr.properties +2 -3
- package/src/sap/ui/vk/i18n/messagebundle_uk.properties +2 -3
- package/src/sap/ui/vk/i18n/messagebundle_vi.properties +3 -4
- package/src/sap/ui/vk/i18n/messagebundle_zh_CN.properties +2 -3
- package/src/sap/ui/vk/i18n/messagebundle_zh_TW.properties +2 -3
- package/src/sap/ui/vk/library.js +2 -2
- package/src/sap/ui/vk/measurements/Angle.js +1 -1
- package/src/sap/ui/vk/measurements/Area.js +1 -1
- package/src/sap/ui/vk/measurements/Distance.js +1 -1
- package/src/sap/ui/vk/measurements/Edge.js +1 -1
- package/src/sap/ui/vk/measurements/Face.js +1 -1
- package/src/sap/ui/vk/measurements/Feature.js +1 -1
- package/src/sap/ui/vk/measurements/Vertex.js +1 -1
- package/src/sap/ui/vk/pdf/ContentManager.js +85 -13
- package/src/sap/ui/vk/pdf/Viewport.js +1 -1
- package/src/sap/ui/vk/svg/BaseNodeProxy.js +1 -1
- package/src/sap/ui/vk/svg/ContentDeliveryService.js +1 -1
- package/src/sap/ui/vk/svg/ContentManager.js +2 -1
- package/src/sap/ui/vk/svg/Element.js +162 -23
- package/src/sap/ui/vk/svg/Ellipse.js +4 -0
- package/src/sap/ui/vk/svg/HotspotHelper.js +30 -17
- package/src/sap/ui/vk/svg/MiniMap.js +63 -1
- package/src/sap/ui/vk/svg/NodeHierarchy.js +17 -1
- package/src/sap/ui/vk/svg/NodeProxy.js +1 -1
- package/src/sap/ui/vk/svg/OrthographicCamera.js +1 -1
- package/src/sap/ui/vk/svg/Scene.js +1 -1
- package/src/sap/ui/vk/svg/SceneBuilder.js +57 -5
- package/src/sap/ui/vk/svg/Text.js +72 -30
- package/src/sap/ui/vk/svg/ViewStateManager.js +2 -2
- package/src/sap/ui/vk/svg/Viewport.js +178 -32
- package/src/sap/ui/vk/svg/ViewportRenderer.js +82 -0
- package/src/sap/ui/vk/thirdparty/BufferGeometryUtils.js +86 -27
- package/src/sap/ui/vk/thirdparty/pdf.js +18003 -13388
- package/src/sap/ui/vk/thirdparty/pdf.worker.js +38149 -36166
- package/src/sap/ui/vk/thirdparty/three.js +48127 -25854
- package/src/sap/ui/vk/threejs/AnimationHelper.js +1 -1
- package/src/sap/ui/vk/threejs/BaseNodeProxy.js +1 -1
- package/src/sap/ui/vk/threejs/Billboard.js +1 -1
- package/src/sap/ui/vk/threejs/Callout.js +1 -1
- package/src/sap/ui/vk/threejs/ContentDeliveryService.js +1 -1
- package/src/sap/ui/vk/threejs/ContentManager.js +1 -1
- package/src/sap/ui/vk/threejs/DetailView.js +1 -1
- package/src/sap/ui/vk/threejs/HighlightPlayer.js +1 -1
- package/src/sap/ui/vk/threejs/Material.js +1 -1
- package/src/sap/ui/vk/threejs/NodeHierarchy.js +1 -1
- package/src/sap/ui/vk/threejs/NodeProxy.js +1 -1
- package/src/sap/ui/vk/threejs/OrthographicCamera.js +1 -1
- package/src/sap/ui/vk/threejs/PerspectiveCamera.js +1 -1
- package/src/sap/ui/vk/threejs/PointCloudGroup.js +1 -1
- package/src/sap/ui/vk/threejs/Scene.js +1 -1
- package/src/sap/ui/vk/threejs/SceneBuilder.js +12 -1
- package/src/sap/ui/vk/threejs/Texture.js +1 -1
- package/src/sap/ui/vk/threejs/Thrustline.js +1 -1
- package/src/sap/ui/vk/threejs/ViewStateManager.js +7 -8
- package/src/sap/ui/vk/threejs/Viewport.js +7 -5
- package/src/sap/ui/vk/tools/AnchorPointTool.js +1 -1
- package/src/sap/ui/vk/tools/AnchorPointToolGizmo.js +1 -1
- package/src/sap/ui/vk/tools/AxisAngleRotationTool.js +1 -1
- package/src/sap/ui/vk/tools/AxisAngleRotationToolGizmo.js +1 -1
- package/src/sap/ui/vk/tools/CreateEllipseTool.js +1 -1
- package/src/sap/ui/vk/tools/CreateEllipseToolGizmo.js +1 -1
- package/src/sap/ui/vk/tools/CreateParametricGizmo.js +1 -1
- package/src/sap/ui/vk/tools/CreatePathTool.js +1 -1
- package/src/sap/ui/vk/tools/CreatePathToolGizmo.js +1 -1
- package/src/sap/ui/vk/tools/CreateRectangleTool.js +1 -1
- package/src/sap/ui/vk/tools/CreateRectangleToolGizmo.js +1 -1
- package/src/sap/ui/vk/tools/CreateTextTool.js +1 -1
- package/src/sap/ui/vk/tools/CreateTextToolGizmo.js +1 -1
- package/src/sap/ui/vk/tools/CrossSectionTool.js +1 -1
- package/src/sap/ui/vk/tools/CrossSectionToolGizmo.js +1 -1
- package/src/sap/ui/vk/tools/DuplicateSvgElementTool.js +1 -1
- package/src/sap/ui/vk/tools/DuplicateSvgElementToolGizmo.js +1 -1
- package/src/sap/ui/vk/tools/ExplodeTool.js +1 -1
- package/src/sap/ui/vk/tools/ExplodeToolGizmo.js +1 -1
- package/src/sap/ui/vk/tools/Gizmo.js +4 -3
- package/src/sap/ui/vk/tools/HitTestTool.js +1 -1
- package/src/sap/ui/vk/tools/MoveTool.js +1 -1
- package/src/sap/ui/vk/tools/MoveToolGizmo.js +1 -1
- package/src/sap/ui/vk/tools/PointCloudSelectionTool.js +1 -1
- package/src/sap/ui/vk/tools/PointCloudSelectionToolGizmo.js +1 -1
- package/src/sap/ui/vk/tools/RectSelectTool.js +1 -1
- package/src/sap/ui/vk/tools/RedlineTool.js +1 -1
- package/src/sap/ui/vk/tools/RedlineToolGizmo.js +1 -1
- package/src/sap/ui/vk/tools/RotateOrbitTool.js +1 -1
- package/src/sap/ui/vk/tools/RotateTool.js +1 -1
- package/src/sap/ui/vk/tools/RotateToolGizmo.js +1 -1
- package/src/sap/ui/vk/tools/RotateTurntableTool.js +1 -1
- package/src/sap/ui/vk/tools/ScaleTool.js +1 -1
- package/src/sap/ui/vk/tools/ScaleToolGizmo.js +1 -1
- package/src/sap/ui/vk/tools/SceneOrientationTool.js +1 -1
- package/src/sap/ui/vk/tools/SceneOrientationToolGizmo.js +1 -1
- package/src/sap/ui/vk/tools/Tool.js +1 -1
- package/src/sap/ui/vk/tools/TooltipTool.js +1 -1
- package/src/sap/ui/vk/tools/TooltipToolGizmo.js +1 -1
- package/src/sap/ui/vk/tools/TransformSvgElementTool.js +1 -1
- package/src/sap/ui/vk/tools/TransformSvgElementToolGizmo.js +3 -3
- package/src/sap/ui/vk/tools/TransformSvgElementToolHandler.js +1 -1
- package/src/sap/ui/vk/totara/Command.js +1 -0
- package/src/sap/ui/vk/totara/SceneContext.js +26 -2
- package/src/sap/ui/vk/totara/TotaraLoader.js +1 -0
- package/src/sap/ui/vk/totara/TotaraLoaderWorker.js +16 -0
- package/src/sap/ui/vk/totara/TotaraUtils.js +3 -1
- package/src/sap/ui/vk/ve/dvl.wasm +0 -0
|
@@ -44,7 +44,7 @@ SCENETREE_VISIBILITYSTATEHIDDEN=\u5355\u51FB\u4EE5\u53D8\u4E3A\u53EF\u89C1
|
|
|
44
44
|
SCENETREE_VISIBILITYSTATEVISIBLEALL=\u5355\u51FB\u4EE5\u5168\u90E8\u9690\u85CF
|
|
45
45
|
SCENETREE_VISIBILITYSTATEHIDDENALL=\u5355\u51FB\u4EE5\u5168\u90E8\u663E\u793A
|
|
46
46
|
SCENETREE_SELECTIONSTATESELECTED=\u5DF2\u9009\u62E9
|
|
47
|
-
|
|
47
|
+
SCENETREE_SELECTED_SCENE_TREE_ITEM_INFO=\u5DF2\u9009\u62E9\uFF1A{0}
|
|
48
48
|
|
|
49
49
|
CONTAINERBASE_FULLSCREEN=\u5168\u5C4F
|
|
50
50
|
CONTAINERBASE_SETTINGS=\u8BBE\u7F6E
|
|
@@ -378,7 +378,6 @@ ELEMENTS_BUTTONTOOLTIP=\u5143\u7D20
|
|
|
378
378
|
|
|
379
379
|
TOGGLE_HOTSPOTS_BUTTONTOOLTIP=\u5207\u6362\u70ED\u70B9
|
|
380
380
|
|
|
381
|
-
LAYERS_PANEL_NO_DATA=\u65E0\u4EFB\u4F55\u5C42
|
|
382
381
|
LAYERS_PANEL_SHOW_BUTTON=\u663E\u793A
|
|
383
382
|
LAYERS_PANEL_SHOW_BUTTON_TOOLTIP=\u663E\u793A\u6240\u9009\u5C42\u7684\u5143\u7D20
|
|
384
383
|
LAYERS_PANEL_HIDE_BUTTON=\u9690\u85CF
|
|
@@ -389,7 +388,6 @@ LAYERS_PANEL_VISIBLE_COLUMN_VISIBLE_TOOLTIP=\u6240\u6709\u5143\u7D20\u90FD\u53EF
|
|
|
389
388
|
LAYERS_PANEL_VISIBLE_COLUMN_PARTIAL_TOOLTIP=\u4E00\u4E9B\u5143\u7D20\u53EF\u89C1\uFF0C\u4E00\u4E9B\u5143\u7D20\u5DF2\u9690\u85CF
|
|
390
389
|
LAYERS_PANEL_VISIBLE_COLUMN_HIDDEN_TOOLTIP=\u6240\u6709\u5143\u7D20\u90FD\u5DF2\u9690\u85CF
|
|
391
390
|
|
|
392
|
-
ELEMENTS_PANEL_NO_DATA=\u65E0\u4EFB\u4F55\u5143\u7D20
|
|
393
391
|
ELEMENTS_PANEL_SHOW_BUTTON=\u663E\u793A
|
|
394
392
|
ELEMENTS_PANEL_SHOW_BUTTON_TOOLTIP=\u5728\u89C6\u53E3\u4E2D\u663E\u793A\u5143\u7D20
|
|
395
393
|
ELEMENTS_PANEL_HIDE_BUTTON=\u9690\u85CF
|
|
@@ -402,6 +400,7 @@ ELEMENTS_PANEL_VISIBLE_COLUMN=\u53EF\u89C1\u6027
|
|
|
402
400
|
ELEMENTS_PANEL_VISIBLE_COLUMN_VISIBLE_TOOLTIP=\u53EF\u89C1\u5143\u7D20
|
|
403
401
|
ELEMENTS_PANEL_VISIBLE_COLUMN_PARTIAL_TOOLTIP=\u90E8\u5206\u53EF\u89C1\u5143\u7D20
|
|
404
402
|
ELEMENTS_PANEL_VISIBLE_COLUMN_HIDDEN_TOOLTIP=\u5DF2\u9690\u85CF\u5143\u7D20
|
|
403
|
+
|
|
405
404
|
ELEMENTS_PANEL_TYPE_COMPONENT=\u7EC4\u4EF6
|
|
406
405
|
ELEMENTS_PANEL_TYPE_NET=\u7F51
|
|
407
406
|
ELEMENTS_PANEL_TYPE_UNKNOWN=\u672A\u77E5
|
|
@@ -44,7 +44,7 @@ SCENETREE_VISIBILITYSTATEHIDDEN=\u6309\u4E00\u4E0B\u4EE5\u986F\u793A
|
|
|
44
44
|
SCENETREE_VISIBILITYSTATEVISIBLEALL=\u6309\u4E00\u4E0B\u4EE5\u5168\u90E8\u96B1\u85CF
|
|
45
45
|
SCENETREE_VISIBILITYSTATEHIDDENALL=\u6309\u4E00\u4E0B\u4EE5\u5168\u90E8\u986F\u793A
|
|
46
46
|
SCENETREE_SELECTIONSTATESELECTED=\u5DF2\u9078\u64C7
|
|
47
|
-
|
|
47
|
+
SCENETREE_SELECTED_SCENE_TREE_ITEM_INFO=\u5DF2\u9078\u64C7\uFF1A{0}
|
|
48
48
|
|
|
49
49
|
CONTAINERBASE_FULLSCREEN=\u5168\u756B\u9762
|
|
50
50
|
CONTAINERBASE_SETTINGS=\u8A2D\u5B9A
|
|
@@ -378,7 +378,6 @@ ELEMENTS_BUTTONTOOLTIP=\u5143\u7D20
|
|
|
378
378
|
|
|
379
379
|
TOGGLE_HOTSPOTS_BUTTONTOOLTIP=\u5207\u63DB\u71B1\u9EDE
|
|
380
380
|
|
|
381
|
-
LAYERS_PANEL_NO_DATA=\u6C92\u6709\u5C64
|
|
382
381
|
LAYERS_PANEL_SHOW_BUTTON=\u986F\u793A
|
|
383
382
|
LAYERS_PANEL_SHOW_BUTTON_TOOLTIP=\u986F\u793A\u6240\u9078\u5C64\u7684\u5143\u7D20
|
|
384
383
|
LAYERS_PANEL_HIDE_BUTTON=\u96B1\u85CF
|
|
@@ -389,7 +388,6 @@ LAYERS_PANEL_VISIBLE_COLUMN_VISIBLE_TOOLTIP=\u6240\u6709\u5143\u7D20\u7686\u53EF
|
|
|
389
388
|
LAYERS_PANEL_VISIBLE_COLUMN_PARTIAL_TOOLTIP=\u90E8\u4EFD\u5143\u7D20\u53EF\u898B\uFF0C\u90E8\u4EFD\u5143\u7D20\u5247\u96B1\u85CF
|
|
390
389
|
LAYERS_PANEL_VISIBLE_COLUMN_HIDDEN_TOOLTIP=\u6240\u6709\u5143\u7D20\u7686\u96B1\u85CF
|
|
391
390
|
|
|
392
|
-
ELEMENTS_PANEL_NO_DATA=\u6C92\u6709\u5143\u7D20
|
|
393
391
|
ELEMENTS_PANEL_SHOW_BUTTON=\u986F\u793A
|
|
394
392
|
ELEMENTS_PANEL_SHOW_BUTTON_TOOLTIP=\u986F\u793A\u6AA2\u8996\u5340\u4E2D\u7684\u5143\u7D20
|
|
395
393
|
ELEMENTS_PANEL_HIDE_BUTTON=\u96B1\u85CF
|
|
@@ -402,6 +400,7 @@ ELEMENTS_PANEL_VISIBLE_COLUMN=\u53EF\u898B\u5EA6
|
|
|
402
400
|
ELEMENTS_PANEL_VISIBLE_COLUMN_VISIBLE_TOOLTIP=\u53EF\u898B\u5143\u7D20
|
|
403
401
|
ELEMENTS_PANEL_VISIBLE_COLUMN_PARTIAL_TOOLTIP=\u90E8\u4EFD\u53EF\u898B\u5143\u7D20
|
|
404
402
|
ELEMENTS_PANEL_VISIBLE_COLUMN_HIDDEN_TOOLTIP=\u96B1\u85CF\u5143\u7D20
|
|
403
|
+
|
|
405
404
|
ELEMENTS_PANEL_TYPE_COMPONENT=\u5143\u4EF6
|
|
406
405
|
ELEMENTS_PANEL_TYPE_NET=\u6DE8\u503C
|
|
407
406
|
ELEMENTS_PANEL_TYPE_UNKNOWN=\u672A\u77E5
|
package/src/sap/ui/vk/library.js
CHANGED
|
@@ -62,7 +62,7 @@ sap.ui.define([
|
|
|
62
62
|
* @namespace
|
|
63
63
|
* @name sap.ui.vk
|
|
64
64
|
* @author SAP SE
|
|
65
|
-
* @version 1.
|
|
65
|
+
* @version 1.141.0
|
|
66
66
|
* @public
|
|
67
67
|
*/
|
|
68
68
|
|
|
@@ -150,7 +150,7 @@ sap.ui.define([
|
|
|
150
150
|
"sap.ui.vk.tools.PoiManipulationTool"
|
|
151
151
|
],
|
|
152
152
|
noLibraryCSS: false,
|
|
153
|
-
version: "1.
|
|
153
|
+
version: "1.141.0",
|
|
154
154
|
designtime: "sap/ui/vk/designtime/library.designtime"
|
|
155
155
|
});
|
|
156
156
|
|
|
@@ -28,7 +28,7 @@ sap.ui.define([
|
|
|
28
28
|
* @param {float[]} [settings.edge] World coordinates of the edge ends in form <code>[x1, y1, z1, x2, y2, z2]</code>.
|
|
29
29
|
* @private
|
|
30
30
|
* @author SAP SE
|
|
31
|
-
* @version 1.
|
|
31
|
+
* @version 1.141.0
|
|
32
32
|
* @alias sap.ui.vk.measurement.Edge
|
|
33
33
|
* @since 1.101.0
|
|
34
34
|
*/
|
|
@@ -28,7 +28,7 @@ sap.ui.define([
|
|
|
28
28
|
* @param {float[]} [settings.vertex] World coordinates of the vertex in form <code>[x, y, z]</code>.
|
|
29
29
|
* @private
|
|
30
30
|
* @author SAP SE
|
|
31
|
-
* @version 1.
|
|
31
|
+
* @version 1.141.0
|
|
32
32
|
* @alias sap.ui.vk.measurement.Vertex
|
|
33
33
|
* @since 1.101.0
|
|
34
34
|
*/
|
|
@@ -43,7 +43,7 @@ sap.ui.define([
|
|
|
43
43
|
* @param {object} [mSettings] Initial settings for the new ContentManager object.
|
|
44
44
|
* @private
|
|
45
45
|
* @author SAP SE
|
|
46
|
-
* @version 1.
|
|
46
|
+
* @version 1.141.0
|
|
47
47
|
* @extends sap.ui.vk.ContentManager
|
|
48
48
|
* @alias sap.ui.vk.pdf.ContentManager
|
|
49
49
|
* @since 1.123.0
|
|
@@ -288,31 +288,51 @@ sap.ui.define([
|
|
|
288
288
|
};
|
|
289
289
|
|
|
290
290
|
function addNodesToScene(sceneBuilder, sceneId, nodes, parametrics) {
|
|
291
|
-
|
|
292
|
-
|
|
291
|
+
// Recursively process each tree node.
|
|
292
|
+
function processNodeRecursively(treeNode) {
|
|
293
|
+
const { node, children = [], parentId } = treeNode;
|
|
294
|
+
|
|
295
|
+
// Set parent ID if parent exists. `parentId` is used by `SceneBuilder` to set up the
|
|
296
|
+
// parent-child relationship when creating the node.
|
|
297
|
+
if (parentId != null) {
|
|
298
|
+
node.parentId = parentId;
|
|
299
|
+
} else if (node.parent != null) {
|
|
300
|
+
node.parentId = node.parent;
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
// // Handle parametric content.
|
|
304
|
+
const parametric = node.parametric == null
|
|
305
|
+
? null
|
|
306
|
+
: parametrics[node.parametric];
|
|
293
307
|
|
|
294
308
|
if (parametric != null) {
|
|
295
309
|
node.parametricId = parametric.id;
|
|
296
310
|
}
|
|
297
311
|
|
|
298
|
-
|
|
312
|
+
// Create the node in the scene.
|
|
313
|
+
const nodeRef = sceneBuilder.createNode(node, sceneId);
|
|
299
314
|
|
|
315
|
+
// Set parametric content if available.
|
|
300
316
|
if (parametric != null) {
|
|
301
317
|
sceneBuilder.setParametricContent(node.sid, parametric, sceneId);
|
|
302
318
|
}
|
|
303
|
-
}
|
|
304
319
|
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
320
|
+
// Recursively process all children.
|
|
321
|
+
for (const childTreeNode of children) {
|
|
322
|
+
processNodeRecursively(childTreeNode);
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
// Initialize as hotspot.
|
|
326
|
+
nodeRef._initAsHotspot();
|
|
327
|
+
}
|
|
309
328
|
|
|
310
|
-
|
|
329
|
+
// Convert flat array to forest (array of root trees).
|
|
330
|
+
const forest = convertFlatListToForest(nodes);
|
|
311
331
|
|
|
312
|
-
|
|
313
|
-
|
|
332
|
+
// Process each root tree in the forest.
|
|
333
|
+
for (const rootTreeNode of forest) {
|
|
334
|
+
processNodeRecursively(rootTreeNode);
|
|
314
335
|
}
|
|
315
|
-
*/
|
|
316
336
|
}
|
|
317
337
|
|
|
318
338
|
function buildGetSceneUrl(contentResource, parameters) {
|
|
@@ -337,5 +357,57 @@ sap.ui.define([
|
|
|
337
357
|
return source;
|
|
338
358
|
}
|
|
339
359
|
|
|
360
|
+
/**
|
|
361
|
+
* @typedef {object} Node
|
|
362
|
+
* @property {string} sid The node's persistent ID.
|
|
363
|
+
* @property {string} name The name of the node.
|
|
364
|
+
* @property {string} [parent] The persistent ID of the node's parent.
|
|
365
|
+
* @property {int[]} [children] The indices of the node's children in the flat list of nodes.
|
|
366
|
+
* @property {int} [parametric] The index of the node's parametric in the <code>parametrics</code> array.
|
|
367
|
+
* @property {object} [transform] The node's transformation matrix.
|
|
368
|
+
* @property {boolean} [visible] Whether the node is visible.
|
|
369
|
+
* @property {int} [pageIndex] The zero-based index of the page on which the node is located.
|
|
370
|
+
* @property {string} contentType The type of content. E.g. for hotspots this is always "HOTSPOT".
|
|
371
|
+
*/
|
|
372
|
+
|
|
373
|
+
/**
|
|
374
|
+
* @typedef {object} TreeNode
|
|
375
|
+
* @property {Node} node The node.
|
|
376
|
+
* @property {string} [parentId] The persistent ID of the node's parent.
|
|
377
|
+
* @property {TreeNode} [parent] The node's parent.
|
|
378
|
+
* @property {TreeNode[]} [children] The node's children.
|
|
379
|
+
*/
|
|
380
|
+
|
|
381
|
+
/**
|
|
382
|
+
* Converts a flat list of nodes received from the backend into a forest (an array of root nodes).
|
|
383
|
+
*
|
|
384
|
+
* The input nodes are not modified.
|
|
385
|
+
*
|
|
386
|
+
* @param {Node[]} nodes The flat list of nodes
|
|
387
|
+
* @returns {TreeNode[]} The forest of nodes (root nodes)
|
|
388
|
+
*/
|
|
389
|
+
function convertFlatListToForest(nodes) {
|
|
390
|
+
// First create a TreeNode object for each node in the flat list.
|
|
391
|
+
/** @type TreeNode[] */
|
|
392
|
+
const treeNodes = nodes.map((node) => ({ node }));
|
|
393
|
+
|
|
394
|
+
// Then set up parent-child relationships between the TreeNode objects.
|
|
395
|
+
treeNodes
|
|
396
|
+
.filter(({ node: { children } }) => children != null)
|
|
397
|
+
.forEach((treeNode) => {
|
|
398
|
+
const { node } = treeNode;
|
|
399
|
+
|
|
400
|
+
treeNode.children = node.children.map((childIndex) => {
|
|
401
|
+
const childNode = treeNodes[childIndex];
|
|
402
|
+
childNode.parentId = node.sid;
|
|
403
|
+
childNode.parent = treeNode;
|
|
404
|
+
return childNode;
|
|
405
|
+
});
|
|
406
|
+
});
|
|
407
|
+
|
|
408
|
+
// Finally, return the roots of the trees in the forest.
|
|
409
|
+
return treeNodes.filter(({ parent }) => parent == null);
|
|
410
|
+
}
|
|
411
|
+
|
|
340
412
|
return ContentManager;
|
|
341
413
|
});
|
|
@@ -29,7 +29,7 @@ sap.ui.define([
|
|
|
29
29
|
* @class Provides a class to communicate with content delivery service.
|
|
30
30
|
* @private
|
|
31
31
|
* @author SAP SE
|
|
32
|
-
* @version 1.
|
|
32
|
+
* @version 1.141.0
|
|
33
33
|
* @extends sap.ui.base.ManagedObject
|
|
34
34
|
* @alias sap.ui.vk.svg.ContentDeliveryService
|
|
35
35
|
*/
|
|
@@ -45,7 +45,7 @@ sap.ui.define([
|
|
|
45
45
|
* @param {object} [mSettings] Initial settings for the new ContentManager object.
|
|
46
46
|
* @protected
|
|
47
47
|
* @author SAP SE
|
|
48
|
-
* @version 1.
|
|
48
|
+
* @version 1.141.0
|
|
49
49
|
* @extends sap.ui.vk.ContentManager
|
|
50
50
|
* @alias sap.ui.vk.svg.ContentManager
|
|
51
51
|
* @since 1.80.0
|
|
@@ -137,6 +137,7 @@ sap.ui.define([
|
|
|
137
137
|
var value = values[0];
|
|
138
138
|
scene.backgroundTopColor = value.backgroundTopColor; // hex color or undefined
|
|
139
139
|
scene.backgroundBottomColor = value.backgroundBottomColor; // hex color or undefined
|
|
140
|
+
scene.outputSettings = value.outputSettings;
|
|
140
141
|
}
|
|
141
142
|
|
|
142
143
|
// add loader information to content to show who loaded it
|
|
@@ -11,12 +11,14 @@ sap.ui.define([
|
|
|
11
11
|
"../cssColorToColor",
|
|
12
12
|
"../NodeContentType",
|
|
13
13
|
"sap/base/assert",
|
|
14
|
+
"sap/base/Log",
|
|
14
15
|
"sap/base/util/uid"
|
|
15
16
|
], function(
|
|
16
17
|
abgrToColor,
|
|
17
18
|
cssColorToColor,
|
|
18
19
|
NodeContentType,
|
|
19
20
|
assert,
|
|
21
|
+
Log,
|
|
20
22
|
uid
|
|
21
23
|
) {
|
|
22
24
|
"use strict";
|
|
@@ -136,6 +138,7 @@ sap.ui.define([
|
|
|
136
138
|
this.stroke = convertColor(material.lineColor, 1);
|
|
137
139
|
this.strokeWidth = material.lineWidth !== undefined ? material.lineWidth : 1;
|
|
138
140
|
this.strokeDashArray = (material.lineStyle && material.lineStyle.dashPattern) || [];
|
|
141
|
+
this.coordinateSpace = material.lineStyle?.widthCoordinateSpace ?? unknownCoordinateSpace;
|
|
139
142
|
}
|
|
140
143
|
}
|
|
141
144
|
|
|
@@ -208,6 +211,11 @@ sap.ui.define([
|
|
|
208
211
|
this._updateHotspotDescendants(hasHostpotAncestor ? null : this);
|
|
209
212
|
}
|
|
210
213
|
|
|
214
|
+
const hasDynamicContentAncestor = this._hasDynamicContentAncestor();
|
|
215
|
+
if (hasDynamicContentAncestor || this.nodeContentType === NodeContentType.DynamicContent) {
|
|
216
|
+
this._updateHotspotDescendants(hasDynamicContentAncestor ? null : this);
|
|
217
|
+
}
|
|
218
|
+
|
|
211
219
|
if (this.domRef) {
|
|
212
220
|
element.traverse(function(child) {
|
|
213
221
|
if (!child.domRef) {
|
|
@@ -274,6 +282,19 @@ sap.ui.define([
|
|
|
274
282
|
|
|
275
283
|
node.userData.skipIt = true;
|
|
276
284
|
|
|
285
|
+
if (hotspotNode && node._isGeometryNode()) {
|
|
286
|
+
Object.defineProperty(node, "filter", {
|
|
287
|
+
get: function() {
|
|
288
|
+
return hotspotNode.getHotspotEffectDef().name;
|
|
289
|
+
},
|
|
290
|
+
configurable: true
|
|
291
|
+
});
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
if (node.hasOwnProperty("opacity")) {
|
|
295
|
+
delete node.opacity;
|
|
296
|
+
}
|
|
297
|
+
|
|
277
298
|
if (node._isGeometryNode()) {
|
|
278
299
|
node.fill = node.stroke = new Float32Array([1, 1, 1, 1]);
|
|
279
300
|
node._updateColor();
|
|
@@ -289,6 +310,29 @@ sap.ui.define([
|
|
|
289
310
|
return; // ignore this hotspot node because it has a hotspot ancestor
|
|
290
311
|
}
|
|
291
312
|
|
|
313
|
+
Object.defineProperty(this, "opacity", {
|
|
314
|
+
get: function() {
|
|
315
|
+
return this.highlightColor || this.customHotspotColor || this.hotspotColor ? 1 : 0;
|
|
316
|
+
},
|
|
317
|
+
configurable: true
|
|
318
|
+
});
|
|
319
|
+
|
|
320
|
+
this._updateHotspotDescendants(this);
|
|
321
|
+
|
|
322
|
+
if (this.domRef !== null) {
|
|
323
|
+
if (this.domRef === (this.parent && this.parent.domRef)) {
|
|
324
|
+
this.invalidate();
|
|
325
|
+
} else {
|
|
326
|
+
this._updateColor();
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
};
|
|
330
|
+
|
|
331
|
+
Element.prototype._initAsDynamicContent = function() {
|
|
332
|
+
if (this._hasDynamicContentAncestor()) {
|
|
333
|
+
return; // ignore this dynamic content node because it has a dynamic content ancestor
|
|
334
|
+
}
|
|
335
|
+
|
|
292
336
|
this._updateHotspotDescendants(this);
|
|
293
337
|
|
|
294
338
|
if (this.domRef !== null) {
|
|
@@ -305,6 +349,10 @@ sap.ui.define([
|
|
|
305
349
|
if (nodeContentType === NodeContentType.Hotspot) {
|
|
306
350
|
this._initAsHotspot();
|
|
307
351
|
}
|
|
352
|
+
|
|
353
|
+
if (nodeContentType === NodeContentType.DynamicContent) {
|
|
354
|
+
this._initAsDynamicContent();
|
|
355
|
+
}
|
|
308
356
|
};
|
|
309
357
|
|
|
310
358
|
Element.prototype.traverse = function(callback) {
|
|
@@ -362,8 +410,28 @@ sap.ui.define([
|
|
|
362
410
|
var domRef = this.domRef;
|
|
363
411
|
if (domRef !== null) {
|
|
364
412
|
if (this.nodeContentType === NodeContentType.Hotspot && !this._hasHostpotAncestor()) {
|
|
365
|
-
|
|
366
|
-
|
|
413
|
+
if (this.customText) {
|
|
414
|
+
this.customText.filter = this.getHotspotEffectDef().name + "-custom-text";
|
|
415
|
+
this.customText.domRef?.setAttribute("filter", `url(#${this.customText.filter})`);
|
|
416
|
+
}
|
|
417
|
+
this.traverse((node) => {
|
|
418
|
+
const filter = node.filter;
|
|
419
|
+
if (filter) {
|
|
420
|
+
node.domRef?.setAttribute("filter", `url(#${filter})`);
|
|
421
|
+
}
|
|
422
|
+
});
|
|
423
|
+
domRef.setAttribute("opacity", this.opacity);
|
|
424
|
+
} else if (this.nodeContentType === NodeContentType.DynamicContent && !this._hasDynamicContentAncestor()) {
|
|
425
|
+
if (this.customText) {
|
|
426
|
+
this.customText.filter = this.getHotspotEffectDef().name + "-custom-text";
|
|
427
|
+
this.customText.domRef?.setAttribute("filter", `url(#${this.customText.filter})`);
|
|
428
|
+
}
|
|
429
|
+
this.traverse((node) => {
|
|
430
|
+
const filter = node.filter;
|
|
431
|
+
if (filter) {
|
|
432
|
+
node.domRef?.setAttribute("filter", `url(#${filter})`);
|
|
433
|
+
}
|
|
434
|
+
});
|
|
367
435
|
} else {
|
|
368
436
|
var setAttributeFunc = domRef.setAttribute.bind(domRef);
|
|
369
437
|
if (this.highlightColor || this.tintColor) {
|
|
@@ -397,10 +465,6 @@ sap.ui.define([
|
|
|
397
465
|
}
|
|
398
466
|
};
|
|
399
467
|
|
|
400
|
-
Element.prototype._getHotspotOpacity = function() {
|
|
401
|
-
return this.highlightColor || this.customHotspotColor || this.hotspotColor ? 1 : 0;
|
|
402
|
-
};
|
|
403
|
-
|
|
404
468
|
Element._hotspotEffectName = function(color) {
|
|
405
469
|
return "hotspot-effect-" + rgbaToCSS(color.red, color.green, color.blue, color.alpha);
|
|
406
470
|
};
|
|
@@ -440,7 +504,7 @@ sap.ui.define([
|
|
|
440
504
|
};
|
|
441
505
|
|
|
442
506
|
Element.prototype.setTintColor = function(mask, tintColor) {
|
|
443
|
-
assert(this.nodeContentType !== NodeContentType.Hotspot
|
|
507
|
+
assert(this.nodeContentType !== NodeContentType.Hotspot, "setTintColor() method is not for hotspots, use setHotspotColor() method");
|
|
444
508
|
this.tintColor = tintColor;
|
|
445
509
|
this._updateColor(mask);
|
|
446
510
|
};
|
|
@@ -450,13 +514,13 @@ sap.ui.define([
|
|
|
450
514
|
};
|
|
451
515
|
|
|
452
516
|
Element.prototype.setHotspotColor = function(mask, color) {
|
|
453
|
-
assert(this.nodeContentType === NodeContentType.Hotspot
|
|
517
|
+
assert((this.nodeContentType === NodeContentType.Hotspot || this.nodeContentType === NodeContentType.DynamicContent), "setHotspotColor() method is only for hotspots or dynamic content");
|
|
454
518
|
this.hotspotColor = color;
|
|
455
519
|
this._updateColor(mask);
|
|
456
520
|
};
|
|
457
521
|
|
|
458
522
|
Element.prototype.setCustomHotspotColor = function(mask, color) {
|
|
459
|
-
assert(this.nodeContentType === NodeContentType.Hotspot
|
|
523
|
+
assert(this.nodeContentType === NodeContentType.Hotspot, "setCustomHotspotColor() method is only for hotspots");
|
|
460
524
|
this.customHotspotColor = color;
|
|
461
525
|
this._updateColor(mask);
|
|
462
526
|
};
|
|
@@ -466,7 +530,7 @@ sap.ui.define([
|
|
|
466
530
|
};
|
|
467
531
|
|
|
468
532
|
Element.prototype.setOpacity = function(opacity) {
|
|
469
|
-
assert(this.nodeContentType !== NodeContentType.Hotspot
|
|
533
|
+
assert(this.nodeContentType !== NodeContentType.Hotspot, "setOpacity() method is not for hotspots");
|
|
470
534
|
|
|
471
535
|
if (this._isGeometryNode()) {
|
|
472
536
|
return;
|
|
@@ -502,6 +566,57 @@ sap.ui.define([
|
|
|
502
566
|
}
|
|
503
567
|
}
|
|
504
568
|
}
|
|
569
|
+
this._updateCustomText();
|
|
570
|
+
};
|
|
571
|
+
|
|
572
|
+
/**
|
|
573
|
+
* Attaches a custom text to this element.
|
|
574
|
+
* @param {object} [options] The custom text options. If not specified, the existing custom text will be removed.
|
|
575
|
+
* @param {string} [options.text] The text to display, it's mutually exclusive with htmlText option.
|
|
576
|
+
* @param {string} [options.htmlText] The HTML text to display, it's mutually exclusive with text option.
|
|
577
|
+
* @param {string} [options.fontFamily] The font family of the text. Default is "Arial".
|
|
578
|
+
* @param {string} [options.fontStyle] The font style of the text (normal | italic | oblique). Default is undefined ("normal").
|
|
579
|
+
* @param {string} [options.fontWeight] The font weight of the text (normal | bold | bolder | lighter | <number>). Default is undefined ("normal").
|
|
580
|
+
* @param {string} [options.textDecoration] The text decoration of the text (none | underline | line-through, etc). Default is undefined ("none").
|
|
581
|
+
* @param {number} [options.size] The font size of the text in pixels. If not specified then the size will be automatically
|
|
582
|
+
* determined based on the median text size in the scene or computed from the bounding box of the scene.
|
|
583
|
+
* @param {string} [options.fill] The fill color of the text in CSS format. Default is "black".
|
|
584
|
+
* @param {number[]} [options.pivot] The pivot point of the text relative to the bounding box of the element. Default is [0.5, 0.5] (center).
|
|
585
|
+
* @param {number[]} [options.anchor] The anchor point of the text. Default is [0.5, 0.5] (center).
|
|
586
|
+
* @returns {sap.ui.vk.svg.Element} Returns this element for method chaining.
|
|
587
|
+
* @public
|
|
588
|
+
* @experimental
|
|
589
|
+
* @since 1.141.0
|
|
590
|
+
*/
|
|
591
|
+
Element.prototype.setCustomText = function(options) {
|
|
592
|
+
Log.warning("You need to import 'sap.ui.vk.svg.Text' module to call method setCustomText().");
|
|
593
|
+
return this;
|
|
594
|
+
};
|
|
595
|
+
|
|
596
|
+
Element.prototype._updateCustomText = function() {
|
|
597
|
+
if (this.customText) {
|
|
598
|
+
const bbox = this._getBBox(null, true);
|
|
599
|
+
const textBBox = this.customText.domRef?.getBBox();
|
|
600
|
+
if (bbox && textBBox) {
|
|
601
|
+
// calculate the matrix of the custom text element based on the bounding box of the element
|
|
602
|
+
const matrix = this._matrixWorld();
|
|
603
|
+
const pivot = this.customText.pivot ?? [0.5, 0.5]; // default pivot is center of the bonding box
|
|
604
|
+
const x = bbox.x + bbox.width * pivot[0];
|
|
605
|
+
const y = bbox.y + bbox.height * (matrix[3] < 0 ? 1 - pivot[1] : pivot[1]);
|
|
606
|
+
matrix[4] = matrix[5] = 0;
|
|
607
|
+
const p = Element._transformPoint(x, y, matrix);
|
|
608
|
+
const anchor = this.customText.anchor;
|
|
609
|
+
if (anchor) {
|
|
610
|
+
p.x -= textBBox.x + textBBox.width * anchor[0];
|
|
611
|
+
p.y -= textBBox.y + textBBox.height * anchor[1];
|
|
612
|
+
}
|
|
613
|
+
const invMatrix = Element._invertMatrix(matrix);
|
|
614
|
+
const p2 = Element._transformPoint(p.x, p.y, invMatrix);
|
|
615
|
+
invMatrix[4] = p2.x;
|
|
616
|
+
invMatrix[5] = p2.y;
|
|
617
|
+
this.customText.setMatrix(invMatrix);
|
|
618
|
+
}
|
|
619
|
+
}
|
|
505
620
|
};
|
|
506
621
|
|
|
507
622
|
Element._multiplyMatrices = function(a, b) {
|
|
@@ -650,10 +765,10 @@ sap.ui.define([
|
|
|
650
765
|
}
|
|
651
766
|
|
|
652
767
|
// This method returns aligned bounding box if the matrix is passed, or oriented bounding box if no matrix is passed
|
|
653
|
-
Element.prototype._getBBox = function(matrix) {
|
|
768
|
+
Element.prototype._getBBox = function(matrix, childrenOnly) {
|
|
654
769
|
if (this.domRef) {
|
|
655
770
|
var bbox;
|
|
656
|
-
if (!
|
|
771
|
+
if (!childrenOnly && this.domRef !== this.parent?.domRef) {
|
|
657
772
|
bbox = this.domRef.getBBox();
|
|
658
773
|
if (matrix && bbox) {// transform bounding box to parent coordinate system
|
|
659
774
|
bbox = transformBBox(bbox, matrix);
|
|
@@ -687,6 +802,7 @@ sap.ui.define([
|
|
|
687
802
|
isIdentityMatrix(element.matrix) &&
|
|
688
803
|
element.opacity === undefined &&
|
|
689
804
|
(element.nodeContentType !== NodeContentType.Hotspot || element._hasHostpotAncestor()) && // not a hotspot
|
|
805
|
+
(element.nodeContentType !== NodeContentType.DynamicContent || element._hasDynamicContentAncestor()) && // not a dynamic content
|
|
690
806
|
element.vMask === 1;
|
|
691
807
|
}
|
|
692
808
|
|
|
@@ -777,13 +893,14 @@ sap.ui.define([
|
|
|
777
893
|
Element.prototype._setBaseAttributes = function(setAttributeFunc, mask) {
|
|
778
894
|
setAttributeFunc("id", this.uid);
|
|
779
895
|
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
896
|
+
const filter = this.filter; // filter can be defined as a getter for hotspots
|
|
897
|
+
if (filter != null) {
|
|
898
|
+
setAttributeFunc("filter", `url(#${filter})`);
|
|
899
|
+
}
|
|
900
|
+
|
|
901
|
+
const opacity = this.opacity; // opacity can be defined as a getter for hotspots
|
|
902
|
+
if (opacity != null) {
|
|
903
|
+
setAttributeFunc("opacity", opacity);
|
|
787
904
|
}
|
|
788
905
|
if (!isIdentityMatrix(this.matrix)) {
|
|
789
906
|
setAttributeFunc("transform", "matrix(" + this.matrix.join(",") + ")");
|
|
@@ -876,7 +993,7 @@ sap.ui.define([
|
|
|
876
993
|
|
|
877
994
|
var hotspots = [];
|
|
878
995
|
this.children.forEach(function(element) {
|
|
879
|
-
if (element.nodeContentType === NodeContentType.Hotspot) {
|
|
996
|
+
if (element.nodeContentType === NodeContentType.Hotspot || element.nodeContentType === NodeContentType.DynamicContent) {
|
|
880
997
|
hotspots.push(element);
|
|
881
998
|
} else {
|
|
882
999
|
element.render(rm, mask, viewport);
|
|
@@ -888,6 +1005,8 @@ sap.ui.define([
|
|
|
888
1005
|
element.render(rm, mask);
|
|
889
1006
|
});
|
|
890
1007
|
|
|
1008
|
+
this.customText?.render(rm, mask);
|
|
1009
|
+
|
|
891
1010
|
if (!skipIt) {
|
|
892
1011
|
rm.close(tagName);
|
|
893
1012
|
}
|
|
@@ -979,6 +1098,11 @@ sap.ui.define([
|
|
|
979
1098
|
}
|
|
980
1099
|
child._setDomRef(childDomRef);
|
|
981
1100
|
}
|
|
1101
|
+
|
|
1102
|
+
if (this.customText) {
|
|
1103
|
+
this.customText.domRef = document.getElementById(this.customText.uid);
|
|
1104
|
+
this._updateCustomText();
|
|
1105
|
+
}
|
|
982
1106
|
};
|
|
983
1107
|
|
|
984
1108
|
Element.prototype.getElementByProperty = function(name, value) {
|
|
@@ -986,14 +1110,17 @@ sap.ui.define([
|
|
|
986
1110
|
return this;
|
|
987
1111
|
}
|
|
988
1112
|
|
|
989
|
-
|
|
990
|
-
|
|
991
|
-
var element = children[i].getElementByProperty(name, value);
|
|
1113
|
+
for (const child of this.children) {
|
|
1114
|
+
const element = child.getElementByProperty(name, value);
|
|
992
1115
|
if (element !== null) {
|
|
993
1116
|
return element;
|
|
994
1117
|
}
|
|
995
1118
|
}
|
|
996
1119
|
|
|
1120
|
+
if (this.customText && this.customText[name] === value) {
|
|
1121
|
+
return this.customText;
|
|
1122
|
+
}
|
|
1123
|
+
|
|
997
1124
|
return null;
|
|
998
1125
|
};
|
|
999
1126
|
|
|
@@ -1193,6 +1320,18 @@ sap.ui.define([
|
|
|
1193
1320
|
return false;
|
|
1194
1321
|
};
|
|
1195
1322
|
|
|
1323
|
+
Element.prototype._hasDynamicContentAncestor = function() {
|
|
1324
|
+
var ancestor = this.parent;
|
|
1325
|
+
while (ancestor) {
|
|
1326
|
+
if (ancestor.nodeContentType === NodeContentType.DynamicContent) {
|
|
1327
|
+
return true;
|
|
1328
|
+
}
|
|
1329
|
+
ancestor = ancestor.parent;
|
|
1330
|
+
}
|
|
1331
|
+
|
|
1332
|
+
return false;
|
|
1333
|
+
};
|
|
1334
|
+
|
|
1196
1335
|
/**
|
|
1197
1336
|
* The string given as "className" will be added to the "class" attribute of this element's root HTML element.
|
|
1198
1337
|
* @param {string} className the CSS class name to be added
|