{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/components/flux360/LoginComponents/AudioTest.vue?feb8","webpack:///./src/components/babylonjs/Renderer.vue?d74a","webpack:///./src/components/flux360/EmbeddedDialogues/SituationGallery.vue?b93b","webpack:///./src/components/flux360/SidebarComponents/Sidebar.vue?7a82","webpack:///./src/components/flux360/EmbeddedDialogues/MapDialogue/SituationPin.vue?1e3d","webpack:///./src/components/flux360/EmbeddedDialogues/TutorialDialogue.vue?55cb","webpack:///./src/components/flux360/LoginComponents/LoginDialogue.vue?2a9f","webpack:///./src/components/flux360/EmbeddedDialogues/ForcedDisconnect.vue?5f7d","webpack:///./src/assets/gyrosicon.png","webpack:///./src/components/flux360/Flux360.vue?866c","webpack:///./src/components/flux360/SidebarComponents/ParticipantMenue.vue?1547","webpack:///./src/assets/Map.svg","webpack:///./src/components/flux360/LoginComponents/TroubleShooting.vue?d772","webpack:///./src/components/flux360/EmbeddedDialogues/ScreenSharingPanel.vue?80eb","webpack:///./src/components/flux360/SidebarComponents/ParticipantTab.vue?189a","webpack:///./src/assets/user Icon.svg","webpack:///./src/components/flux360/EmbeddedDialogues/TutorialDialogue.vue?36f0","webpack:///./src/components/flux360/EmbeddedDialogues/BugReportDialogue.vue?091c","webpack:///./src/assets/volume_off_white_24dp.svg","webpack:///./src/components/flux360/EmbeddedDialogues/DisclaimerDialogue.vue?3c9b","webpack:///./src/components/flux360/Navigation.vue?a201","webpack:///./src/components/flux360/LoginComponents/LoginDialogue.vue?a9ad","webpack:///./src/components/flux360/SidebarComponents/ParticipantTab.vue?f302","webpack:///./src/components/flux360/Flux360.vue?1626","webpack:///./src/components/flux360/EmbeddedDialogues/WebsiteDialogue.vue?21e0","webpack:///./src/components/flux360/LanguageSelection.vue?121c","webpack:///./src/components/flux360/Loadingscreen.vue?3167","webpack:///./src/components/flux360/Loadingscreen.vue?9564","webpack:///./src/assets/flux360-Tutorial_scroll.svg","webpack:///./src/components/flux360/EmbeddedDialogues/ShareDialogue.vue?05e2","webpack:///./src/components/flux360/SidebarComponents/ParticipantMenue.vue?a3e4","webpack:///./src/components/babylonjs/Renderer.vue?7128","webpack:///./src/components/flux360/ModeratorMenu.vue?718d","webpack:///./src/components/flux360/LanguageSelection.vue?37eb","webpack:///./src/components/flux360/SidebarComponents/Sidebar.vue?750f","webpack:///./src/assets/play-button.png","webpack:///./src/components/flux360/EmbeddedDialogues/WaitForModeratorDialogue.vue?d804","webpack:///./src/components/flux360/EmbeddedDialogues/ContactPanel.vue?3e69","webpack:///./src/components/flux360/LoginComponents/TroubleShooting.vue?34cb","webpack:///./src/App.vue","webpack:///./src/store/flux360/Request.js","webpack:///./src/store/flux360/PrefabDataTypes.js","webpack:///./src/components/flux360/Flux360.vue","webpack:///./src/components/babylonjs/Renderer.vue","webpack:///src/components/babylonjs/Renderer.vue","webpack:///./src/components/babylonjs/Renderer.vue?66ad","webpack:///./src/components/babylonjs/Renderer.vue?f7ff","webpack:///./src/components/flux360/PanoramaScene.vue","webpack:///./src/components/flux360/components/BasicComponent.js","webpack:///./src/store/flux360/MediaManagerDataTypes.js","webpack:///./src/api/FluxCMS.js","webpack:///./src/store/flux360/EventDataTypes.js","webpack:///./src/store/flux360/UserDataTypes.js","webpack:///./src/components/babylonjs/Converter.js","webpack:///./src/store/flux360/CommandDataTypes.js","webpack:///./src/store/flux360/Flux360Store.js","webpack:///./src/api/MediaManager.js","webpack:///./src/components/flux360/components/Audio.js","webpack:///./src/components/flux360/components/VisualComponent.js","webpack:///./src/components/flux360/components/Image.js","webpack:///./src/components/flux360/components/ImageSphere.js","webpack:///./src/components/babylonjs/Materials.js","webpack:///./src/components/flux360/components/NotifyPosition.js","webpack:///./src/components/flux360/components/Text.js","webpack:///./src/components/flux360/components/Transition.js","webpack:///./src/components/flux360/components/URLButton.js","webpack:///./src/components/flux360/components/User.js","webpack:///./src/components/flux360/components/Video.js","webpack:///./src/components/flux360/components/VideoList.js","webpack:///./src/components/flux360/components/VideoSphere.js","webpack:///./src/components/flux360/components/Viewer3D.js","webpack:///./src/components/flux360/components/Constructor.js","webpack:///src/components/flux360/PanoramaScene.vue","webpack:///./src/components/flux360/PanoramaScene.vue?4234","webpack:///./src/components/flux360/PanoramaScene.vue?a1de","webpack:///./src/components/babylonjs/RenderController.vue","webpack:///src/components/babylonjs/RenderController.vue","webpack:///./src/components/babylonjs/RenderController.vue?2f81","webpack:///./src/components/babylonjs/RenderController.vue?28d1","webpack:///./src/components/flux360/PanoramaSceneUI.vue","webpack:///src/components/flux360/PanoramaSceneUI.vue","webpack:///./src/components/flux360/PanoramaSceneUI.vue?6cb3","webpack:///./src/components/flux360/PanoramaSceneUI.vue?d149","webpack:///./src/store/error-handler.js","webpack:///./src/api/AzureADConnect.js","webpack:///src/components/flux360/Flux360.vue","webpack:///./src/components/flux360/Flux360.vue?4139","webpack:///./src/components/flux360/Flux360.vue?2e53","webpack:///./src/components/flux360/EmbeddedDialogues/MapDialogue/MapDialogue.vue","webpack:///./src/components/flux360/EmbeddedDialogues/MapDialogue/SituationPin.vue","webpack:///./src/components/flux360/EmbeddedDialogues/MapDialogue/SituationCard.vue","webpack:///src/components/flux360/EmbeddedDialogues/MapDialogue/SituationCard.vue","webpack:///./src/components/flux360/EmbeddedDialogues/MapDialogue/SituationCard.vue?86be","webpack:///./src/components/flux360/EmbeddedDialogues/MapDialogue/SituationCard.vue?665e","webpack:///src/components/flux360/EmbeddedDialogues/MapDialogue/SituationPin.vue","webpack:///./src/components/flux360/EmbeddedDialogues/MapDialogue/SituationPin.vue?da2e","webpack:///./src/components/flux360/EmbeddedDialogues/MapDialogue/SituationPin.vue?7bac","webpack:///src/components/flux360/EmbeddedDialogues/MapDialogue/MapDialogue.vue","webpack:///./src/components/flux360/EmbeddedDialogues/MapDialogue/MapDialogue.vue?d8d5","webpack:///./src/components/flux360/EmbeddedDialogues/MapDialogue/MapDialogue.vue?2496","webpack:///./src/components/flux360/MediaController.vue","webpack:///src/components/flux360/MediaController.vue","webpack:///./src/components/flux360/MediaController.vue?625d","webpack:///./src/components/flux360/MediaController.vue?026f","webpack:///./src/components/flux360/EmbeddedDialogues/WaitForModeratorDialogue.vue","webpack:///src/components/flux360/EmbeddedDialogues/WaitForModeratorDialogue.vue","webpack:///./src/components/flux360/EmbeddedDialogues/WaitForModeratorDialogue.vue?b899","webpack:///./src/components/flux360/EmbeddedDialogues/WaitForModeratorDialogue.vue?6e63","webpack:///./src/components/flux360/Watermark.vue","webpack:///src/components/flux360/Watermark.vue","webpack:///./src/components/flux360/Watermark.vue?bf6d","webpack:///./src/components/flux360/Watermark.vue?87c6","webpack:///./src/components/flux360/Navigation.vue","webpack:///src/components/flux360/Navigation.vue","webpack:///./src/components/flux360/Navigation.vue?3951","webpack:///./src/components/flux360/Navigation.vue?18aa","webpack:///./src/components/flux360/EmbeddedDialogues/ShareDialogue.vue","webpack:///src/components/flux360/EmbeddedDialogues/ShareDialogue.vue","webpack:///./src/components/flux360/EmbeddedDialogues/ShareDialogue.vue?b829","webpack:///./src/components/flux360/EmbeddedDialogues/ShareDialogue.vue?e9ee","webpack:///./src/components/flux360/ModeratorMenu.vue","webpack:///src/components/flux360/ModeratorMenu.vue","webpack:///./src/components/flux360/ModeratorMenu.vue?d94a","webpack:///./src/components/flux360/ModeratorMenu.vue?5146","webpack:///./src/components/flux360/EmbeddedDialogues/ScreenSharingPanel.vue","webpack:///src/components/flux360/EmbeddedDialogues/ScreenSharingPanel.vue","webpack:///./src/components/flux360/EmbeddedDialogues/ScreenSharingPanel.vue?d5e8","webpack:///./src/components/flux360/EmbeddedDialogues/ScreenSharingPanel.vue?5e5e","webpack:///./src/components/flux360/LoginComponents/LoginDialogue.vue","webpack:///./src/utils/string-utils.js","webpack:///./src/components/flux360/LoginComponents/AudioVideoDialogue.vue","webpack:///./src/components/flux360/LoginComponents/TroubleShooting.vue","webpack:///src/components/flux360/LoginComponents/TroubleShooting.vue","webpack:///./src/components/flux360/LoginComponents/TroubleShooting.vue?a7c9","webpack:///./src/components/flux360/LoginComponents/TroubleShooting.vue?aebc","webpack:///./src/components/flux360/LoginComponents/ConnectionTest.vue","webpack:///./src/api/raumtaenzer.js","webpack:///src/components/flux360/LoginComponents/ConnectionTest.vue","webpack:///./src/components/flux360/LoginComponents/ConnectionTest.vue?23ae","webpack:///./src/components/flux360/LoginComponents/ConnectionTest.vue?5276","webpack:///./src/components/flux360/LoginComponents/AudioTest.vue","webpack:///src/components/flux360/LoginComponents/AudioTest.vue","webpack:///./src/components/flux360/LoginComponents/AudioTest.vue?41d5","webpack:///./src/components/flux360/LoginComponents/AudioTest.vue?0431","webpack:///src/components/flux360/LoginComponents/AudioVideoDialogue.vue","webpack:///./src/components/flux360/LoginComponents/AudioVideoDialogue.vue?ef2c","webpack:///./src/components/flux360/LoginComponents/AudioVideoDialogue.vue?1dde","webpack:///src/components/flux360/LoginComponents/LoginDialogue.vue","webpack:///./src/components/flux360/LoginComponents/LoginDialogue.vue?db74","webpack:///./src/components/flux360/LoginComponents/LoginDialogue.vue?cdb0","webpack:///./src/components/flux360/EmbeddedDialogues/WebsiteDialogue.vue","webpack:///src/components/flux360/EmbeddedDialogues/WebsiteDialogue.vue","webpack:///./src/components/flux360/EmbeddedDialogues/WebsiteDialogue.vue?c648","webpack:///./src/components/flux360/EmbeddedDialogues/WebsiteDialogue.vue?5649","webpack:///./src/components/flux360/EmbeddedDialogues/Viewer3D.vue","webpack:///src/components/flux360/EmbeddedDialogues/Viewer3D.vue","webpack:///./src/components/flux360/EmbeddedDialogues/Viewer3D.vue?eca5","webpack:///./src/components/flux360/EmbeddedDialogues/Viewer3D.vue?47c8","webpack:///./src/components/flux360/EmbeddedDialogues/ForcedDisconnect.vue","webpack:///src/components/flux360/EmbeddedDialogues/ForcedDisconnect.vue","webpack:///./src/components/flux360/EmbeddedDialogues/ForcedDisconnect.vue?2f2d","webpack:///./src/components/flux360/EmbeddedDialogues/ForcedDisconnect.vue?b66c","webpack:///./src/components/flux360/EmbeddedDialogues/BugReportDialogue.vue","webpack:///src/components/flux360/EmbeddedDialogues/BugReportDialogue.vue","webpack:///./src/components/flux360/EmbeddedDialogues/BugReportDialogue.vue?649f","webpack:///./src/components/flux360/EmbeddedDialogues/BugReportDialogue.vue?f6ee","webpack:///./src/components/flux360/EmbeddedDialogues/DisclaimerDialogue.vue","webpack:///src/components/flux360/EmbeddedDialogues/DisclaimerDialogue.vue","webpack:///./src/components/flux360/EmbeddedDialogues/DisclaimerDialogue.vue?13f6","webpack:///./src/components/flux360/EmbeddedDialogues/DisclaimerDialogue.vue?0447","webpack:///./src/components/flux360/Loadingscreen.vue","webpack:///src/components/flux360/Loadingscreen.vue","webpack:///./src/components/flux360/Loadingscreen.vue?9a98","webpack:///./src/components/flux360/Loadingscreen.vue?674b","webpack:///./src/components/flux360/LanguageSelection.vue","webpack:///src/components/flux360/LanguageSelection.vue","webpack:///./src/components/flux360/LanguageSelection.vue?c342","webpack:///./src/components/flux360/LanguageSelection.vue?963b","webpack:///./src/components/flux360/TransitionPreview.vue","webpack:///src/components/flux360/TransitionPreview.vue","webpack:///./src/components/flux360/TransitionPreview.vue?38c7","webpack:///./src/components/flux360/TransitionPreview.vue?d60a","webpack:///./src/components/flux360/SidebarComponents/Sidebar.vue","webpack:///./src/components/flux360/SidebarComponents/ChatTab.vue","webpack:///src/components/flux360/SidebarComponents/ChatTab.vue","webpack:///./src/components/flux360/SidebarComponents/ChatTab.vue?ede6","webpack:///./src/components/flux360/SidebarComponents/ChatTab.vue?05f3","webpack:///./src/components/flux360/SidebarComponents/ParticipantTab.vue","webpack:///./src/components/flux360/SidebarComponents/ParticipantMenue.vue","webpack:///src/components/flux360/SidebarComponents/ParticipantMenue.vue","webpack:///./src/components/flux360/SidebarComponents/ParticipantMenue.vue?95c0","webpack:///./src/components/flux360/SidebarComponents/ParticipantMenue.vue?bc00","webpack:///src/components/flux360/SidebarComponents/ParticipantTab.vue","webpack:///./src/components/flux360/SidebarComponents/ParticipantTab.vue?a2b6","webpack:///./src/components/flux360/SidebarComponents/ParticipantTab.vue?7580","webpack:///./src/components/flux360/SidebarComponents/VideoSessionPanel.vue","webpack:///./src/api/ModeratorCommands.js","webpack:///src/components/flux360/SidebarComponents/VideoSessionPanel.vue","webpack:///./src/components/flux360/SidebarComponents/VideoSessionPanel.vue?1863","webpack:///./src/components/flux360/SidebarComponents/VideoSessionPanel.vue?c716","webpack:///src/components/flux360/SidebarComponents/Sidebar.vue","webpack:///./src/components/flux360/SidebarComponents/Sidebar.vue?f438","webpack:///./src/components/flux360/SidebarComponents/Sidebar.vue?8bb2","webpack:///./src/components/flux360/EmbeddedDialogues/SituationGallery.vue","webpack:///src/components/flux360/EmbeddedDialogues/SituationGallery.vue","webpack:///./src/components/flux360/EmbeddedDialogues/SituationGallery.vue?a493","webpack:///./src/components/flux360/EmbeddedDialogues/SituationGallery.vue?987f","webpack:///./src/components/flux360/EmbeddedDialogues/TutorialDialogue.vue","webpack:///src/components/flux360/EmbeddedDialogues/TutorialDialogue.vue","webpack:///./src/components/flux360/EmbeddedDialogues/TutorialDialogue.vue?5d0d","webpack:///./src/components/flux360/EmbeddedDialogues/TutorialDialogue.vue?8082","webpack:///./src/components/flux360/EmbeddedDialogues/ContactPanel.vue","webpack:///src/components/flux360/EmbeddedDialogues/ContactPanel.vue","webpack:///./src/components/flux360/EmbeddedDialogues/ContactPanel.vue?2cca","webpack:///./src/components/flux360/EmbeddedDialogues/ContactPanel.vue?354a","webpack:///src/App.vue","webpack:///./src/App.vue?a7d1","webpack:///./src/App.vue?a938","webpack:///./src/store/index.js","webpack:///./src/plugins/i18n.js","webpack:///./src/main.js","webpack:///./src/components/flux360/EmbeddedDialogues/ForcedDisconnect.vue?e2dc","webpack:///./src/assets/play.svg","webpack:///./src/components/flux360/SidebarComponents/VideoSessionPanel.vue?e2e0","webpack:///./src/App.vue?d926","webpack:///./src/assets/pause-button.png","webpack:///./src/components/flux360/TransitionPreview.vue?264c","webpack:///./src/App.vue?8d9d","webpack:///./src/components/flux360/LoginComponents/AudioVideoDialogue.vue?a90a","webpack:///./src/components/flux360/SidebarComponents/ParticipantMenue.vue?ea15","webpack:///./src/components/flux360/MediaController.vue?8ade","webpack:///./src/components/flux360/EmbeddedDialogues/MapDialogue/MapDialogue.vue?954a","webpack:///./src/components/flux360/Watermark.vue?cd44","webpack:///./src/components/flux360/EmbeddedDialogues/DisclaimerDialogue.vue?7aa2","webpack:///./src/assets/Fullscreen.svg","webpack:///./src/components/flux360/SidebarComponents/ParticipantTab.vue?2dab","webpack:///./src/components/flux360/MediaController.vue?ac3c","webpack:///./src/components/flux360/EmbeddedDialogues/WebsiteDialogue.vue?b78e","webpack:///./src/components/flux360/EmbeddedDialogues/TutorialDialogue.vue?8a7a","webpack:///./src/assets/web_asset.svg","webpack:///./src/components/flux360/EmbeddedDialogues/ForcedDisconnect.vue?e9ea","webpack:///./src/components/flux360/EmbeddedDialogues/MapDialogue/SituationCard.vue?95a4","webpack:///./src/assets/mail_fill_primary.svg","webpack:///./src/components/flux360/Loadingscreen.vue?570b","webpack:///./src/components/flux360/SidebarComponents/Sidebar.vue?b5d0","webpack:///./src/components/babylonjs/Renderer.vue?e598","webpack:///./src/components/flux360/EmbeddedDialogues/MapDialogue/MapDialogue.vue?a247","webpack:///./src/components/flux360/LoginComponents/ConnectionTest.vue?199f","webpack:///./src/components/flux360/EmbeddedDialogues/ContactPanel.vue?4f29","webpack:///./src/assets/sounds/ripple.mp3","webpack:///./src/components/flux360/LoginComponents/AudioTest.vue?7e06","webpack:///./src/components/flux360/EmbeddedDialogues/MapDialogue/SituationPin.vue?a157","webpack:///./src/assets/disclaimer.png","webpack:///./src/App.vue?3497","webpack:///./src/assets/Tutorial.svg","webpack:///./src/components/flux360/LoginComponents/AudioTest.vue?0774","webpack:///./src/components/flux360/LoginComponents/ConnectionTest.vue?a810","webpack:///./src/components/flux360/EmbeddedDialogues/MapDialogue/SituationPin.vue?e3b6","webpack:///./src/assets/Communication.svg","webpack:///./src/components/flux360/EmbeddedDialogues/ScreenSharingPanel.vue?7514","webpack:///./src/components/flux360/EmbeddedDialogues/WaitForModeratorDialogue.vue?f937","webpack:///./src/components/flux360/EmbeddedDialogues/Viewer3D.vue?9858","webpack:///./src/assets/black_background_for_publisher.png","webpack:///./src/components/flux360/SidebarComponents/ChatTab.vue?8c52","webpack:///./src/components/flux360/EmbeddedDialogues/Viewer3D.vue?3189","webpack:///./src/components/flux360/ModeratorMenu.vue?71f6","webpack:///./src/components/flux360/EmbeddedDialogues/ShareDialogue.vue?6ca1","webpack:///./src/components/flux360/LoginComponents/ConnectionTest.vue?c833","webpack:///./src/components/flux360/LoginComponents/LoginDialogue.vue?cb27","webpack:///./src/components/flux360/LanguageSelection.vue?32c4","webpack:///./src/components/flux360/EmbeddedDialogues/WaitForModeratorDialogue.vue?86d8","webpack:///./src/components/flux360/EmbeddedDialogues/BugReportDialogue.vue?fc1e","webpack:///./src/assets/bugreport icon.png","webpack:///./src/components/flux360/EmbeddedDialogues/MapDialogue/SituationCard.vue?81b6","webpack:///./src/components/flux360/SidebarComponents/ChatTab.vue?838a","webpack:///./src/assets/phone_fill_primary.svg","webpack:///./src/components/flux360/SidebarComponents/VideoSessionPanel.vue?67ca","webpack:///./src/components/flux360/EmbeddedDialogues/SituationGallery.vue?8501","webpack:///./src/components/flux360/Watermark.vue?f94f","webpack:///./src/components/flux360/SidebarComponents/ChatTab.vue?3cad","webpack:///./src/components/flux360/EmbeddedDialogues/ShareDialogue.vue?0d53","webpack:///./src/components/flux360/Flux360.vue?6c68","webpack:///./src/components/flux360/EmbeddedDialogues/MapDialogue/SituationCard.vue?f65f","webpack:///./src/components/flux360/EmbeddedDialogues/Viewer3D.vue?281d","webpack:///./src/components/flux360/Navigation.vue?e110","webpack:///./src/components/flux360/LoginComponents/AudioVideoDialogue.vue?76a2","webpack:///./src/components/flux360/EmbeddedDialogues/BugReportDialogue.vue?2a24","webpack:///./src/components/flux360/SidebarComponents/VideoSessionPanel.vue?6479","webpack:///./src/components/flux360/ModeratorMenu.vue?811d","webpack:///./src/components/flux360/Navigation.vue?9e1e","webpack:///./src/components/flux360/MediaController.vue?fa6f","webpack:///./src/components/flux360/EmbeddedDialogues/DisclaimerDialogue.vue?b05e","webpack:///./src/components/flux360/LoginComponents/AudioVideoDialogue.vue?862a","webpack:///./src/components/flux360/LoginComponents/TroubleShooting.vue?92e8","webpack:///./src/components/flux360/EmbeddedDialogues/ContactPanel.vue?89af","webpack:///./src/components/flux360/EmbeddedDialogues/SituationGallery.vue?5b61","webpack:///./src/assets/volume_up_white_24dp.svg","webpack:///./src/components/flux360/EmbeddedDialogues/ScreenSharingPanel.vue?f1ba","webpack:///./src/assets/pause.svg","webpack:///./src/components/flux360/Watermark.vue?0e9f","webpack:///./src/components/flux360/EmbeddedDialogues/MapDialogue/MapDialogue.vue?c33c","webpack:///./src/components/flux360/TransitionPreview.vue?3b57","webpack:///./src/components/flux360/TransitionPreview.vue?3d9c","webpack:///./src/components/flux360/EmbeddedDialogues/WebsiteDialogue.vue?53ff"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","window","oldJsonpFunction","slice","content","default","locals","add","___CSS_LOADER_API_IMPORT___","render","_vm","this","_c","_self","ref","staticClass","attrs","on","fullscreenChange","directives","rawName","situationGalleryVisible","expression","mapVisible","fullScreen","loginDialogueVisible","gyrosSupported","gyrosActive","bugReportVisible","sharingVisible","loggedIn","comVisible","localUserIsModerator","tutorialVisible","contactVisible","loadingscreenVisible","moderatorMenueVisible","_e","toggleLogin","enableMap","screenSharingVisible","enablePermanentPanoramaVideoControls","isVideoPanorama","mediaControlsVisible","enableWatermark","isOnboardingComplete","staticRenderFns","Request","constructor","requestedBy","requestType","assign","RequestType","freeze","Play","Pause","Stop","Reset","JumpToTimePosition","ChangeVolume","RuntimeState","paused","pauseType","duration","timeStamp","requests","requestPlay","user","console","log","playRequest","Date","getTime","requestPause","pauseRequest","requestStop","stopRequest","requestReset","resetRequest","requestJumpToTimePosition","time","jumpToTimePositionRequest","timeToJumpTo","requestChangeVolume","volume","changeVolumeRequest","PauseType","Explicit","Implicit","Prefab","id","type","runtimeState","setID","setType","getID","getType","parseFromJSON","json","idName","presetType","error","createFromJSON","toJSON","isOfType","getContentIDs","PrefabType","Situation","SituationImage","SituationVideo","VisualPrefab","ContentPrefab","AudioContent","ImageContent","VideoContent","VideoListContent","Transition","TextContent","URLButton","Application360","Viewer3D","packageName","description","startSituationID","backgroundColor","splashScreens","splashScreenDisplayTime","startInteractionType","super","setName","setDescription","setPackageName","setStartSituationID","setBackgroundColor","setSplashScreen","splashScreen","setSplashScreenDisplayTime","setStartInteractionType","getName","getDescription","getPackageName","getStartSituationID","getBackgroundColor","getSplashScreen","getSplashScreenDisplayTime","getStartInteractionType","start_room","background_color","splashscreens","splashscreen_display_time","start_interaction_type","rv","thumbnail","autoJump","autoJumpAtTime","autoJumpTarget","loop","videoWidth","videoHeight","exposedInUI","exposedUIHeader","setThumbnail","setAutoJump","setAutoJumpAtTime","setAutoJumpTarget","setLoop","setVideoWidth","setVideoHeight","setExposedInUI","setExposedUIHeader","getThumbnail","getAutoJump","getAutoJumpAtTime","getAutoJumpTarget","getLoop","getVideoWidth","getVideoHeight","getExposedInUI","getExposedUIHeader","getSituationID","display_name","display_description","sphereImageID","setSphereImageID","getSphereImageID","roomSphereImage","contentIDs","sphereVideoID","setSphereVideoID","getSphereVideoID","roomSphereVideo","situation","position","rotation","positionPixel","setSituation","setPosition","setPositionPixel","setRotation","getSituation","getPosition","getPositionPixel","getRotation","setRotationX","rotationX","setRotationY","rotationY","setRotationZ","rotationZ","getRotationX","getRotationY","getRotationZ","room","room_relative_position","room_relative_position_pixel","scale","billboard","setScale","setBillboard","getScale","getBillboard","rotate_towards_user","contentId","iconID","undefined","autoplay","autoplayAtTime","looping","clickable","volumeScale","width","height","displayThumbnailBeforeStart","displayThumbnailWhenPaused","distance","displayControls","enlargeOnClick","setContentID","getContentID","setIconID","getIconID","setAutoplay","setAutoplayAtTime","setLooping","setClickable","setVolumeScale","setDisplayThumbnailBeforeStart","setDisplayThumbnailWhenPaused","setDistance","setDisplayControls","setEnlargeOnClick","setWidth","setHeight","getAutoplay","getAutoplayAtTime","getLooping","getClickable","getVolumeScale","getDisplayControls","getEnlargeOnClick","getWidth","getHeight","getDisplayThumbnailBeforeStart","getDisplayThumbnailWhenPaused","getDistance","video","autoPlayAtTime","volume_scale","display_controls","enlarge_on_click","contentID","contentIds","titles","descriptionTexts","setContentIDs","setTitles","getTitles","tiles","setDescriptionTexts","getDescriptionTexts","iconIDs","videos","imageID","setImageID","getImageID","image","URLButtonContent","url","displayInternally","displayUrl","URL","setURL","getURL","setdisplayInternally","getdisplayInternally","setdisplayUrl","getdisplayUrl","Vorschaubild","display_internally","show_url","audioID","isAmbient","setAudioID","setIsAmbient","is_ambient","getAudioID","getIsAmbient","audio","autoplay_at_time","scaleX","scaleY","scaleZ","setScaleX","getScaleX","setScaleZ","getScaleZ","setScaleY","getScaleY","targetID","targetRotation","targetRotationOverwrite","automaticJump","targetLocationID","setTargetID","target","setTargetRotation","setTargetRotationOverwrite","overwrite","setTargetLocationID","setAutomaticJump","jump","getTargetID","getTargetRotation","getTargetRotationOverwrite","getTargetLocationID","targetLocationId","getAutomaticJump","target_location_id","Icon","target_rotation","target_rotation_overwrite","automatic_jump","displayedText","displayOnClick","previewText","textID","setTextID","setDisplayedText","text","setDisplayOnClick","val","setPreviewText","getTextID","getDisplayedText","getDisplayOnClick","getPreviewText","displayed_text","display_on_click","Image","preview_text","PrefabBuilder","supportedPrefabTypes","Map","registerPrefabType","prefab","set","has","PrefabBuilderInstance","staticStyle","$event","preventDefault","_t","computed","methods","initialize","stencil","xrCompatible","customLoadingScreen","document","setTimeout","resizeObserver","mounted","BasicComponent","situationID","rootNode","getRootNode","setSituationID","setRootNode","node","construct","context","BABYLON","scene","update","enable","setEnabled","disable","destruct","dispose","play","pause","stop","reset","jumpToTimePosition","changeVolume","isPlaying","isMute","Media","fileName","requiresDirectURL","fileSize","setFileName","getFileName","setRequiresDirectURL","getRequiresDirectURL","hasType","setFileSize","size","getFileSize","filename","expected_file_size","MediaType","Texture","Video","VideoList","Audio","Text","Model3D","WebsiteURL","PDF","isReadable","mipmapping","linearColorSpace","filterMode","ansioLevel","alphaIsTransparency","texture","setIsReadable","getIsReadable","setMipmapping","getMipmapping","setLinearColorSpace","getLinearColorSpace","setFilterMode","getFilterMode","setAnsioLevel","getAnsioLevel","setAlphaIsTransparency","getAlphaIsTransparency","setTexture","getTexture","setSize","isThreeD","isStream","setIsThreeD","getIsThreed","setStream","getStream","FluxCMS","app_id","app_secret","baseURL","worldsPath","projectsPath","zipPath","rawContentFilePath","rawContentFileURLPath","setAppInformation","axios_app_instance","axios","headers","post_data","getWorlds","fluxCMS","Promise","resolve","reject","worldsURL","appId","appSecret","then","response","catch","status","Error","request","message","config","getProjects","projectID","projectsURL","preview","zipURL","promisify","require","getBinaryContent","JSZipUtils","JSZip","loadAsync","getRawContentFile","rawContentFileID","rawContentFileURL","getRawContentFileURL","getRawContentFileURLURL","rawContentFileURLURL","Event","userID","uuidv4","now","setUserID","getUserID","setTime","setDuration","getDuration","NotifyPositionEvent","color","pos","rot","setColor","getColor","EventBuilder","supportedEventTypes","registerEventType","event","EventBuilderInstance","User","acronym","currentSituationID","role","cmsID","isCMSUser","gazePosition","cursorPosition","userIcon","resetShouldSync","setShouldSync","fullSync","getSharedProperties","shouldSync","ifShouldSync","setGazePosition","setCursorPosition","setCMSID","setIsCMSUser","setAcronym","setUserIcon","setRole","getGazePosition","getCursorPosition","getAcronym","getRole","getUserIcon","getCMSID","isCMSUSer","setCurrentSituationID","Number","isInteger","parseInt","oldSituation","getCurrentSituationID","getUpdatedProperties","Converter","convertPositionFromCMS","v","x","y","z","rotateByQuaternionToRef","RotationAxis","Up","Math","PI","convertRotationFromCMS","isNaN","FromEulerAngles","instance","Command","sourceUserID","completed","setSourceUserID","getSourceUserID","setTarget","getTarget","setCompleted","isCompleted","CommandComeTo","DeleteMessage","setMessage","getMessage","CommandBuilder","supportedCommandTypes","registerCommandType","command","CommandBuilderInstance","Flux360Store","state","flux360Version","process","sessionID","panoramaTourZIP","panoramaTourZIPEN","showLanguageSelection","logoURL","enableCommunication","enableBugReport","enableZooming","secondaryColor","primaryColor","fontFamily","enablePanoramaVideoAutoplay","enableSharing","mapURL","mapPins","favIcon","websiteTitle","enableWaitForModerator","roomRotations","thumbnailType","roomOrder","cameraZoom","enablePreloadAllSituations","converter","prefabs","users","events","commands","localUserID","media","MediaManager","inSetup","vrMode","sounds","SoundTrack","overwriteStartSituationID","doRendering","isDialogueOpen","followModeratorMode","sendingFollowModerator","audioDeviceId","videoDeviceId","audioOn","videoOn","framerate","audiobitrate","audioProcessingDeactivated","getters","appVersion","panoramaTour","apps","filter","localUser","situations","currentSituation","find","currentPrefabs","prefabsForSituation","remoteUsersInCurrentSituation","allPrefabs","moderatorInSession","isVRMode","isInSetup","getAudioDeviceId","getVideoDeviceId","isAudioOn","isVideoOn","getFramerate","getAudiobitrate","isAudioProcessingDeactivated","isGyrosActive","mutations","removeSituation","index","indexOf","setLoadingscreenVisible","boolean","setEnableZooming","setScreenSharingVisible","bool","setSessionID","setVRMode","setIsInSetup","setup","setOpenTokTest","openTokTest","setOpenTokConnectivityResult","openTokConnectivityResult","setOpenTokQualityResult","openTokQualityResult","setOpenTokConnectivityError","openTokConnectivityError","setOpenTokQualityError","openTokQualityError","setAudioDeviceId","setFollowModeratorMode","setSendingFollowModerator","setVideoDeviceId","setAudioOn","setVideoOn","setFramerate","number","setAudiobitrate","setAudioProcessingDeactivated","setPrefabs","commit","sit","warn","setCurrentSituation","setLocalUser","setLocalUserID","addUser","info","JSON","stringify","pauseSound","file","removeUser","u","updateRuntimeState","muted","playing","currentTime","percentageLoaded","Vue","updateUser","onlineStatus","clearMediaManager","clear","addMedia","handleGotoSituationTransition","comesFromModerator","postEvent","e","parse","dispatch","removeEventByID","activateGyros","setDialogueOpen","postCommand","actions","sendCommand","dispatchEvent","CustomEvent","detail","deleteMessage","messageToDelete","createLocalUser","addTestUser","floor","random","g","b","toString","zip","contents","package_name","package_display_name","package_description","map","defaultTransitionTextureID","resolveContent","tourId","supportedMediaTypes","oCanvas","createElement","registerMediaType","hasMedia","getMedia","hasMediaWithType","retrievals","updateURL","includes","forEach","all","summary","getUserAvatar","getContext","replace","fillStyle","fillRect","font","textAlign","fillText","toDataURL","base","audioFile","myVolume","parseFloat","myAudio","skipCodecCheck","play_on_entering","parent","getLength","getAudioBuffer","mute","getVolume","setVolume","unmute","isPaused","runtimeStae","$store","VisualComponent","material","mesh","scaleFactor","setScaleFactor","CreatePlane","sideOrientation","DOUBLESIDE","emissiveTexture","uScale","vScale","disableLighting","opacityTexture","hasAlpha","multiplyByFloats","lookAt","ImageSphere","panoramaPhoto","photoDome","resolution","faceForward","photoTexture","MaterialManager","materials","registerMaterial","createInfo2Material","setFloat","createInfoMaterial","ShadersStore","shaderMaterial","vertex","fragment","attributes","uniforms","needAlphaBlending","setVector3","Zero","backFaceCulling","NotifyPosition","billboardMode","BILLBOARDMODE_ALL","absolutePosition","renderingGroupId","isPickable","open","self","displayPreviewText","cameraX","getCameraByName","posCamera","textGUI","advancedTexture","GUI","CreateForMesh","rect","verticalAlignment","VERTICAL_ALIGNMENT_TOP","adaptWidthToChildren","adaptHeightToChildren","cornerRadius","background","alpha","addControl","fontSize","lineSpacing","textHorizontalAlignment","HORIZONTAL_ALIGNMENT_LEFT","textVerticalAlignment","textWrapping","WordWrap","resizeToFit","paddingTop","paddingLeft","paddingRight","paddingBottom","previewTextGui","visibility","HORIZONTAL_ALIGNMENT_CENTER","button","icon","buttonMaterial","ease","setEasingMode","EASINGMODE_EASEINOUT","actionManager","hoverCursor","registerAction","OnPickTrigger","CreateAndStartAnimation","scaling","One","OnPointerOutTrigger","OnPointerOverTrigger","addEventListener","EASINGMODE_EASEIN","publicPath","trim","ease2","frameRate","pulse","ANIMATIONTYPE_VECTOR3","ANIMATIONLOOPMODE_CYCLE","setEasingFunction","keyFrames","frame","setKeys","animations","beginAnimation","getChildMeshes","lastUpdate","currentRotation","currentPosition","generateTextureForUser","hexToRgbA","hex","test","substring","split","join","uc","svgNew","encodedData","btoa","LoadFromDataString","diffuseTexture","_x","_y","_z","camera","activeCamera","timeStampInMs","performance","timing","navigationStart","frameTimeDifference","camRotation","absoluteRotation","targetRotationQuaternion","currentRotationQuaternion","Slerp","min","toEulerAngles","userRotation","diff","multiply","Inverse","diffEuler","fov","ar","getEngine","getScreenAspectRatio","fov_y","fov_x","abs","sign","targetPosition","BABYON","Vector3","Lerp","base2","videoTexture","autoPlay","autoUpdateTexture","promise","onPointerDown","createControlls","showURL","playpauseButton","diffuseColor","videoControllsSize","videoControlls","advancedTexture2","rect1","top","thickness","grid","addColumnDefinition","addRowDefinition","minColWidth","seperatorWidth","gridControls","sliderUI","minimum","maximum","onloadedmetadata","barOffset","isThumbCircle","isThumbClamped","thumbColor","borderColor","playpauseButton2","playpauseButton2Img","soundBtn","soundImage","volumeSlider","left","VERTICAL_ALIGNMENT_CENTER","openWindowBtn","openWindowBtnImg","drag","volDrag","volumeValue","onPointerClickObservable","src","onPointerDownObservable","detachControl","onPointerUpObservable","attachControl","getElementById","updateTime","removeControl","source","onPointerMoveObservable","style","cursor","ontimeupdate","onplay","onpause","currenTime","formatTime","mins","secs","videoManager","videoList","listOrientation","controllSize","ratioX","ratioY","listGrid","currentVideoIndex","selectedVideos","setVideoData","videoIDs","videoID","videoData","providedVideos","getMeshByName","createVideoList","updateVideo","$browserDetect","isChrome","screenBackground","currentVideoID","children","skipPrevBtn","skipPrevImg","skipNextBtn","skipNextImg","showListBtn","showListBtnImg","pauseVideo","playVideo","onvolumechange","listWinHeight","listWinWidth","listMesh","itemHeightInPx","itemPaddingInPx","advTextureVL","rect3","scrollPanel","verticalBar","barSize","scrollBackground","listWrapper","videoListItem","itemGrid","paddingTopInPixels","paddingBottomInPixels","paddingLeftInPixels","paddingRightInPixels","titleValue","title","maxLineLength","textTime","VERTICAL_ALIGNMENT_BOTTOM","btn","btnImg","videoListItemCopy","onPointerEnterObservable","onPointerOutObservable","wrapText","string","maxLineLetterCount","maxTitleLetterCount","words","lineArray","lineLetterCount","totalLetterCount","lineString","VideoSphere","panoramaVideo","sphere","CreateSphere","arc","diameterX","diameterY","diameterZ","preload","videoMaterial","emissiveColor","White","myVideoDome","clickToPlay","poster","onprogress","bf","buffered","loadedPercentage","end","isFirefox","onended","meshURL","Constructor","TextConstructor","VideoConstructor","VideoListConstructor","ImageConstructor","NotifyPositionConstructor","TransitionConstructor","URLButtonConstructor","urlB","Viewer3DConstructor","viewer","SituationVideoConstructor","vSph","AudioConstructor","SituationImageConstructor","iSph","UserCursorConstructor","ConstructorManager","constructors","registerConstructor","constructPrefabSubgraph","props","debug","required","currentEvents","currentSituationRuntimeStateRequests","getCurrentComponents","initializeScene","initializeAssetsManager","initializeCamera","initializeLighting","initializeSceneGraph","initializeActionManager","trigger","parameter","beta","startRenderLoop","enterSituation","ease1","situationNode","child","componentsToCheck","component","leaveSituation","preloadAllMedia","task","assetM","preloadSituation","createSituation","prefabComponent","coversSituation","getSituationNodeName","onDblClick","onZoom","watch","usersNode","userIDs","usersToAdd","userComponent","eventsNode","eventIDs","eventsToAdd","eventComponent","DeviceOrientationEvent","_v","_s","domProps","composing","_l","playSound","jumpTo","errorHandler","alert","msalConfig","setupAzureLogin","clientId","authority","redirectUri","auth","async","signIn","msalInstance","msal","loginRequest","scopes","authResult","loginPopup","account","components","Renderer","PanoramaScene","PanoramaSceneUI","RenderController","queryParameterSituationID","queryParameterSessionID","automaticTitle","firstTitleChange","myUsers","timers","housekeeping","autostart","repeat","networkSync","created","onPopState","decodeURL","handleSituationChange","search_params","originalURL","myEvents","toggleMap","stopPropagation","sortedSituations","showSituationCard","gotoSituation","class","usersLength","showCard","cardPosition","SituationCard","inject","SituationPin","togglePlayingState","playingState","progressSliderBackground","changeSlider","format","toggleVolume","volumeSliderBackground","VolumeMuteIcon","VolumeIcon","ResetIcon","PlayIcon","PauseIcon","VolumeHigh","VolumeMedium","VolumeLow","userVolume","oldUserVolume","oldDuration","firstTime","$t","ClockTimeFiveOutline","toggleGallery","buttonName","toggleFullScreen","toggleSharing","toggleModeratorMenue","toggleLoginDialogue","toggleTutorialDialogue","toggleGyros","toggleBugReport","toggleContact","MapOutline","ChevronDown","ChevronUp","FullScreenIcon","FullScreenExitIcon","ShareIcon","LoginIcon","ChevronRight","AccountGroup","MonitorShareIcon","AccountCog","Forum","inputWidth","roomLink","copy","tourLink","LinkVariantIcon","toggleScreenSharing","toggleFollowModeratorMode","muteAll","stopVideoAll","removeAll","VolumeOff","VideoOff","AccountOff","Eye","session","openTokStreams","clearInterval","userControl","radius","localUserName","getUserName","videoStreams","connection","user_id","videoType","publishingProperties","videoProperties","CloseIcon","videoPropertyDefault","fitMode","insertDefaultUI","showControls","audioLevelDisplayMode","buttonDisplayMode","nameDisplayMode","maxResolution","vp","settingsVisible","toggleSettings","date","selectedTab","setTab","changeNickname","cancel","btnDisabled","loginWithAzureAD","proceed","getInitials","match","toUpperCase","isLoading","problemDialogVisible","toggleProblemDialog","ConnectionTestVisible","toggleConnectionTest","audioTestDialogVisible","toggleAudioTestDialogue","videoDeviceList","publisher","getUserColor","publisherAndSubscriberProperties","errors","cameraPermissionDenied","askForPermission","hasVideo","model","callback","$$v","saveDeviceIds","deviceId","getLabelForDevice","updateDeviceLists","microphonePermissionDenied","hasAudio","audioDeviceList","from","disabled","slot","connectionTest","connectionResult","failedTests","failedTest","qualityTest","qualityResult","supported","_m","mos","toFixed","bitrate","packetLossRatio","reason","qualityError","repeatTest","rp","defaults","jar","CALLSERVICE_URL","makeRequest","options","logToConsole","res","assertSuccess","jsonResponse","success","code","getVideoSessionInfoForRoom","jwt","method","uri","qs","NetworkTest","connectionError","user_name","room_id","apiKey","sessionId","token","timeout","audioSource","videoSource","cancleTest","stateOfEchoTest","toggleAudio","publisherDefaultBackground","VolumeOn","subscriber","echoTestSuccessful","setEchoTestState","destroyed","runTests","logLevel","cleanUp","initializePublisher","initializeSubscriber","backgroundImageURI","disableAudioProcessing","autoGainControl","echoCancellation","enableStereo","testNetwork","subscriberOptions","initializeSession","RaumtaenzerApi","connectionCreated","connectionDestroyed","sessionConnected","sessionDisconnected","sessionReconnected","sessionReconnecting","streamCreated","streamDestroyed","TroubleShooting","ConnectionTest","Autorenew","AlertCircle","CheckCircle","Wifi","AudioTest","movingAvg","permissionDenied","toggleSettingsInLogin","badge","meter","element","pub2","pub3","pub","OT","handleAudioSelection","restoreSelectionFromSessionStore","audioSelect","videoSelect","addAudioLevelListenerForPublisher","selectVideoDevice","count","requestAnimationFrame","cycle","selectAudioDevice","signOut","logoff","AudioVideoDialogue","nickname","email","password","connect","azureADUser","userToBeRemoved","isValid","changeEmail","changePassword","isNickValid","isLoginValid","userData","websiteDialogueVisible","openLink","toggleWebsiteDialogue","route","switchView","colorSelection","anchorObjects","imgURL","printType","dryingType","openingStates","elem","togglePart","list","category","array","hue","printPattern","obj","files","website","productname","linksVisible","linksToColors","link","selectionID","OpenInNewIcon","ChevronLeft","Check","File","MenuDown","Rotate3d","eventName","fullname","gatherColors","ColorSelection1","ColorSelection2","ColorSelection3","ColorSelection4","spaceBetween","slidesPerView","direction","mousewheel","observer","pagination","el","navigation","nextEl","prevEl","viewer3DVisible","toggleViewer3D","hasAnimations","playAnimation","PlayCircleOutline","reversed","animationGroup","showViewer","meshes","loadedPercent","configureDome","dome","configureCamera","configurePipeline","hideViewer","init3DViewer","light","playStartAnimation","initPipeline","defaultPipeline","optimizeMeshPerformance","forcedDisconnectDialogueVisible","toggleforcedDisconnectDialogue","AlertCircleOutline","send","quality","audioQuality","videoQuality","consoleLog","bugsummary","bugRepro","body","getBrowser","tem","M","version","getOS","checkIfOnMobile","disclaimerVisible","mobileBrowser","toggleDialogue","backgroundImage","languageSelectionVisible","loadTour","showPreview","situationName","hideTransitionPreview","showTransitionPreview","numberOfUsers","computedParticipants","computeMyself","messages","chatTitle","placeholder","colors","borderStyle","hideCloseButton","closeButtonIconSize","submitIconSize","submitImageIconSize","toLoad","loadMoreMessages","asyncMode","scrollBottom","profilePictureConfig","timestampConfig","linkOptions","onImageClicked","onImageSelected","onMessageSubmit","onType","Chat","lastTimeMessageCheck","noMessagesYet","chatMessage","participantIDMap","participantsIDCounter","participants","cachedParticipants","myself","profilePicture","header","bg","others","messagesDisplay","submitIcon","submitImageIcon","topLeft","topRight","bottomLeft","bottomRight","messageSent","messageReceived","displayHeader","styles","borderRadius","relative","className","mapFluxID2ParticipantID","registerID","nextParticipantsID","currentChatRoom","signalController","participantId","timestamp","year","month","day","hour","minute","second","millisecond","messagesAdapted","currentCommands","messageContainer","contextMenu","contextMenuEntry","newValue","search","closeParticipantMenue","filteredUsers","openParticipantMenue","participantMenueOpen","participantMenueUser","participantMenueBottom","bottom","isModerator","muteUser","stopVideo","removeUserFromSession","ArrowRightBoldHexagonOutline","includeUserIDs","ParticipantMenue","DotsVertical","mousePosY","savePos","provide","properties","streams","stream","streamId","isUserWithIDModerator","createElementId","handleHoverOverStream","getUserOfId","help","getHoverStateOfStream","getHoverStateOfVolume","handleHoverOverVolume","getVolumeOfSubscriber","setVolumeOfSubscriber","usersWithoutStream","initModeratorCommands","callbackFunction","registerCommand","executeCommand","signalData","signal","CommandSendModeratorPosition","scene3DViewer","CommandChangeUserControl","CommandMute","publishAudio","CommandStopVideo","publishVideo","CommandSendEvent","commandSendModeratorPositionInstance","commandChangeUserControlInstance","commandMuteInstance","commandStopVideoInstance","commandSendEventInstance","enlargeSidebar","showAudioVideoSettings","layoutSizes","subscribers","isAdjustingSettings","isOpenTokSessionConnnected","hoverOverStream","hoverOverVolume","getSubscriberWithID","setMovingAvgForSubscriber","getMovingAvgForSubscriber","toggleReRenderHelp","handleStreamPropertyChangedEvent","addAudioLevelListenerForSubscriber","activity","talking","handleAudioLevelUpdatedEventForPublisher","hasUserStream","ChatTab","ParticipantTab","VideoSessionPanel","slide","deltaY","changeSituation","ArrowLeft","ArrowRight","arrowLeftVisible","arrowRightVisible","checkArrowVisibility","scrolling","tutorialDialogueVisible","currentSwiperIndex","isVisible","Fullscreen","Flux360","MapDialogue","MediaController","Sidebar","TransitionPreview","LanguageSelection","Contact","Navigation","Watermark","ShareDialogue","ForcedDisconnect","SituationGallery","TutorialDialogue","ScreenSharingPanel","LoginDialogue","WebsiteDialogue","DisclaimerDialogue","Loadingscreen","BugReportDialogue","WaitForModeratorDialogue","ModeratorMenu","messageVisible","infoVisible","screenCastsAvailable","toggleMediaControls","toggleCommunication","toggleVRMode","toggleMediaButton","onbeforeunload","toggleInfo","use","Vuex","store","Store","flux360","FluxWebCommunication","VueI18n","i18n","locale","fallbackLocale","silentFallbackWarn","productionTip","VueMaterial","VueTimers","browserDetect","VModal","h","App","$mount"],"mappings":"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BACA,gBACA,+NACA,mNAEA,gBAAAvU,yDACAokC,gBACA,4EAEAC,uCACA,kFAGArvB,UACAF,gBACA,kBACA,wBACA,IAEAN,YACA,iGACAC,aACA,uBACA,+BACA,wBACA,0BACA,4BACA,+BACAgc,6BAEA6T,uBACA,gFAEAC,kBACAnnC,2CACAA,qCACAA,4CACA,YACAA,+BACAA,oDACA,qMACA,4FACA,iBACA,qCACA,GACAyF,yCACAqb,2DAEA,mDACA,8BACAtI,eAAA,GACAA,8CACAA,8CACAA,+CAEA,mDACA,8BACAA,eAAA,GACAA,8CACAA,8CACAA,+CAEA,0BACA,mCACA,mCAKAf,yEACA,oBAGAA,qEACA,iBAGAA,0EACA,iBAIAA,0EACA,gBAIA,mBAHA,mBACAC,uBAAA,8BAMA0vB,0BACA,wDACA,0DACAjjC,mGAEA,sCACAnE,6EAIAqnC,mBACA,8GACA,+EACA,kGACA,kCACA,mCACA,mCACA,wCACA,wCACA,oCACA,wBACA,uDACA,qDACA,uDACA,wDAEA,kGACA,4EAEAC,qBACA,0EAEAC,uBAEA,sBACA,uEACA,iBACA,6DACA,kBACA,+DACA9pB,wEAEA+pB,0BACAxnC,gEAGAA,sEAAAynC,4CAAAC,eAAA,KACA,2CACA,gCACA,oCAAAhiC,oCAAApJ,MAAAoJ,eAAAob,2CAAA8U,cAAA+R,YAAAzM,kBA6BA16B,SACA,iCAEA,oFACA2iB,iBAEAkQ,YACArzB,wBAGA4nC,kBACA5nC,gDAGA6nC,kBACA,MACA,OAGA,QACA,IACA,+BACA,wBAGAjS,OADA,WACAA,oCAEAA,EAIA+R,OADA,UACAA,kCAEAA,eAGA,UACA3nC,qCAEAA,iDAIA,gCAcA,GAbA+5B,+DAEAA,iBACAA,mBACAA,gCAEAnE,aACAA,oBACA,sCACAA,aACA,wCACAA,cAEA,4CACAmE,UACAA,aACA,CACA,SACA,MAEA,yBACA+N,wDACAxvB,qGACAZ,gBACA,yBACAsgB,0DACA1f,6EACAA,4EACA,KAKA,GADAnU,0DACA,wBAKA,CACAA,0CACA,4BACA,GACA4jC,4BACA,gDACA5jC,gFACA6jC,oBAIA,2EACAC,cAAAC,kBAhBA,mCACA/jC,uCACA,2BAiBAgkC,kBACA,MACA,OAEAhkC,wEACA,4BACA,GACA4jC,4BACA,gDACA5jC,0CACA6jC,oBAKA,yEACAC,cACAC,eAGAE,kBACAjkC,iDACA,2BACA,kCACAgjB,qBACA,uDACA,gDACAkhB,gBACAltB,wBACA,6BACAA,0EAIAmtB,gBACAnkC,kCACAuZ,KAEA4qB,kBACAnkC,4CACAwZ,MAEAxZ,qCACAmkC,aAGAC,oBACApkC,qDACA,wBAEA,4CACA,oBACAsH,iCAIA,2BACA,oBACA,cACA0b,qBACA,yEACA,gDACAkhB,gBACAltB,wBACA,6BACAA,0EAIAmtB,gBACAnkC,kCACAuZ,KAEA4qB,kBACAnkC,4CACAwZ,MAEAxZ,qCACAmkC,aAIAE,mBACA,uEACA,KACA,OAEAT,4EACA,0BACAA,WAGA,yCACA,wBACAU,yBAGA,4CAEA,yCACA,wBACAA,4BAGAC,mBAEA,0EAKAC,wBACA,QAGA,OAFA,sBACAjqC,aACA,gBAEAkqC,aACA,6BAEA,qEACA,UAEA,oBACAzoB,4BACAA,4BACAA,4BAEA,cACAV,6CACA3H,mDACA/L,WACAjI,aACAkI,+BACAkU,kCAEA,mCAMA,2BAMA2oB,UACA,uBACA,gCACA,sBACA,cACA,6BACA,YACA,gCAIAC,OACAnhB,sBACA,yBACA3nB,2CAEAA,yFACAA,8GAGA0oB,aACA,yDAEAue,uCACA,wCACA,4BACA,sDACA,qCACA9jB,UAEA,oCACAA,SAEA,qCACAA,UAEA,kDACAA,qCAEA,4CACAA,2BAGA,sDAGAwF,+BAEA,8BAEAxkB,4GACA,sBACA,OACA,uBACA,0BAGAskB,wBACA,6BAEAtkB,iDAEA4kB,4CACA5kB,iHAEA,0CAEA,MAEA,0BACA4kC,wDACA5lB,iBAEA,oDACAhf,2DACA,GACA+jC,cACA/jC,mCACAgf,aACA,yDAIA4lB,uDACA5lB,iBAEA6lB,4BAEA,2CACA,GACAC,cACA,yCACA,wBACAC,6BAKAlC,4BAGA,iBACA,OAGA,2CAEA,MAEA,0BAEAmC,wDACAhmB,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CA,uBACA,SACA9Y,OACAyS,6BACAsG,sBACApG,uBACAqG,0BACAC,mBACAC,oBACAC,iBAQAC,gBAEA,kBACAjF,SACA,uBACAkF,EACAryC,IACA,GACAjC,iBACAywB,6BAEAzwB,+CACAuZ,WAKAg7B,mCACA,aACA,uBACA,SACAtH,0BACAyF,mCACA91B,8BACA+1B,mCAEA,SACA6B,iBACA,SACA5B,iBACAC,uBACAC,sBAEA,yCACAtG,MACAiI,uBACAz0C,oCAEA00C,yBACA10C,sCAEA20C,sBACA30C,mCAEA40C,yBACA50C,sCAEA60C,wBACA70C,oCAEA80C,yBACA90C,qCAEA+0C,mBACA/0C,+BAEAg1C,qBACAh1C,mCAGAwsC,sBACA,GACAxsC,iBACAywB,4BAEAlX,cC3aiX,MCQ7W,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,4DC+Kf,MAAM,GAA6B,EAAQ,QAE5B,QACfsvB,+BACAhC,YAAAoO,mBAAAC,kBAAAC,kBAAAC,oBAAAC,oBAAAC,aAAAC,cACAp9C,WACA0rB,WACAD,WACAurB,mBACAiB,mBACAoF,eACAzG,yBACAF,wBACAI,0BACAG,eACAR,aACAU,kCACAplC,aACAC,cACAojC,kBACAzZ,aACA0Z,mBACAze,qBACA0e,gBACAxS,OACAyS,4BACAC,wBACAC,sBACAoG,wBAGAzE,QACAkG,oBACAvF,8BACAV,6BAGA9M,OACAgT,+BACAx3C,qBACA6vC,wBACA1wC,6BACAgzC,aAEAr9B,aACA,gBACAvU,4DAEA,4FACAklB,gBACA,8BAEAD,gBACA,8BAEAysB,WACA,yDAGAT,WACA,wDAGA/K,OACAhhB,iBACA,6CAEAD,iBACA,gDAEAG,WACA,oCAEAD,WAEA,GADA,oCACA,GACA,gDACA,kDACA+xB,+BAEA,2CACA,6CACAC,cAKAniC,UACA,aACAH,+BACA,mEACAmd,kBACAA,aAGA,eACA,4BAEA,8CAEA,eACA,4BAEA,8CAEA,wCACAA,cACAA,wCAEA,oCACAolB,uBACAviC,wDACA,iCACA,sCACAmd,aACAA,4CAEA,kCACAA,aACAA,4CAEAld,uBACAkd,iBACA,QAGAxd,SAcAw8B,kCACA,aACA,2BACA,oCACAoG,uBAEA,4BAAA7C,eAAAC,iBAAA,YACA,KAEA,GADAjzC,iBACA,uDACAA,sCACAywB,6BACA,4BAAAuiB,eAAAC,iBAAA,YACA,GACAjzC,oDACAywB,yCAEAqlB,YACArlB,sBACA7W,iBACA6W,qCACA7W,iBACA6W,4BAKA,wBAAAuiB,eAAAC,iBAAA,YACA,GACAjzC,gDACAywB,mCACAlX,OAEAw8B,YACAtlB,sBACA7W,iBACA6W,qCACA7W,iBACA6W,kBACAlX,oBAMAA,UAGAy8B,YACAvlB,sBACA7W,iBACA6W,qCACA7W,iBACA6W,kBACAlX,iBAOAy2B,qBACA,mCAEAC,mCACA,uBACAgG,wBACA,oBACA,yCACA,qCACA,uBACA,uBACA18B,SAIA28B,uBACA,qBACA,0BAEAC,kDACA,aACA,uBACA,iDACA,6CACA,yBACA,mCACA,4CACAC,kBACA,MAIA,yBACA,2BACA,4CACAC,kBACA,MAIA98B,OAGAu2B,yBACA,iDACA,6CACA,oGACA,qGAEAzJ,kBACA,qCACA,mBACA,2BACA,6BACA,kDAEAiQ,oCACA,aACA,mDAOA,GANA,8CACA7lB,yBAEAA,2CAGA,WAEA,4CAGA,GAFAmjB,8BAEA,6CACA,kDACA+B,wCAEA,2CACA,6CACAC,kBAMAvG,gBACA,uCAEAkH,oBACA,aACA,oCACA,IAIA,aACA9lB,yBACA7W,SACA6W,mDACA+lB,IACA,qCACAC,yBACA,kCACAhmB,yBAGA3W,UACA9Z,mBAfA,oBACA02C,KAkBAC,oBACA,aACA,IACA,kCACA,8EACA,0CACA/8B,UACA6W,qDAEA3W,UACA9Z,oBAGA,SACAA,mBAGA42C,mBACA,aACA,WAEAC,EADA,uCACAA,sCAEAA,0CAEA,0CACA72C,4CACA62C,EACAj9B,SACA,oCAEAA,UACA6W,0BACAzwB,4BAEA8Z,UACA9Z,oBAGAgvC,uBACA,wDAEAF,sBACA,sDAEAI,0BACA,4DCriB0X,MCQtX,I,UAAY,eACd,GACA,GACA,IACA,EACA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iBAGA,0CACA,mDAIA,4CACA,8CAKA,4CACA,kBAAA7iD,gCAAApJ,MAAAw0C,kBACA,0BACA,kCAGA,iCACA,yCAGA,8BACA,kBAAAprC,gCAAApJ,MAAAw0C,eAAA38B,wCAAAyhB,sCAAA+R,uCACAjwB,gBAAA1X,qDAAAquB,QAAA5oB,yCAAA,MAGA,iCACA,yCAEA,YACA,oDACAA,oCACAiyC,aACAvyC,0BACA6kD,mBACAC,mBACAtQ,cAGA,8CAGA9B,YACA,yCACA,iBACA,2CAEA,0CACA,iEACA,6CAGA,gBACA,qBAEA,cACA,2CAEAzgC,YACA,mCACA,2EACAkL,eACA,4BAEAulC,qBACA,gBAEAqC,uBACA,kCACA,UACA,IAEAC,+BACA,kCACA,oBAEAC,6BACA,kCACA,yBAGA/B,2BACA,iCACA,UACA,GACA,QACA,6CACAnqD,uCAEA,sEACA,mFACAA,+BAGA,2BAEAkqD,yBACA,iCACA,UACA,GACA,uCACA,GAEAD,2BACA,iCACA,UACA,GACA,oCACA,2BAGAD,yBACA,iCACA,UACA,GACA,yCAIAD,yBACA,iCACA,UACA,GACA,yCAGAH,2BACA,iCACA,UACA,GACA,oCACA,2BAGAuC,qBACA,aACA,cAEAC,6CACA,mEACA,IACA,8CACA,SACAnmD,mBAIAomD,sCACA,aACA,WACA7S,sCACA,iBAmBA,GAlBA,gBACA,EAEA,UACA8S,cACA,oBAGAA,aACA/yC,qFAPA+yC,GAAAjF,YAAAkF,YASA,uBAEA,YACAhzC,qFAEA+yC,QAEA,wIACA,IACA,EADA,gEAGA1Q,EADA,mEACAA,mEAEAA,mEAIAH,EADA,0BACAA,aAEAA,qBAIA,kCAEA5B,EADA,4CACAA,4BAEAA,6BAEAnjB,gEACAklB,6CAIA4Q,qDACA,aACA,yGACA,MAEA5Q,EADA,4CACAA,4CAEAA,wDAGA,8CACAllB,yBAEAA,2CAIA,4CAEAmjB,EADA,4CACAA,4BAEAA,6BAEA+B,0CAGAtG,gBACA,yCACA,WAEAmX,iBACA,6CACA,sDACA,SAGA,UAEA5C,eACA,oCACA,8CAIAhe,gBACA6d,yBACA,0CACA,mBACA,8BAIA3W,eACA,0CACA,kBACA,eAEA,IAEAlvC,uBACA,kEAIAwvC,mBACA,iDAEA,sBAMA,OALA,gCACAU,kBACAA,qBAGA,KCjeyX,MCQrX,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,QCiBA,IACfjH,YAAA4f,WAAAC,kBAAAC,sBACA3zC,aACA,0BACA4qC,gBACA,4BCzC+W,MCQ3W,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,OAIa,M,QCnBXvhD,GAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACG,YAAY,mBAAmBE,GAAG,CAAC,MAAQ,SAASgW,GAAQA,EAAOC,iBAAkBxW,EAAIsqD,MAAM/zC,EAAOg0C,WAAW,CAACrqD,EAAG,MAAM,CAACG,YAAY,YAAYL,EAAImpC,GAAInpC,EAAI+rC,kBAAkB,SAAStuC,GAAG,OAAOyC,EAAG,MAAM,CAAClB,IAAIvB,EAAEuH,GAAG3E,YAAY,UAAU6rC,MAAM,CAAC,oBAAqBlsC,EAAIqgB,oBAAsB5iB,EAAEuH,IAAIzE,GAAG,CAAC,MAAQ,SAASgW,GAAQ,OAAOvW,EAAIwqD,gBAAgB/sD,MAAO,CAAEuC,EAAIilB,oBAAqB/kB,EAAG,MAAM,CAACO,WAAW,CAAC,CAACxC,KAAK,OAAOyC,QAAQ,SAAShC,MAAOsB,EAAIshD,cAAc7jD,EAAEuH,IAAM,GAAKhF,EAAIilB,qBAAuBjlB,EAAIqmB,MAAMhqB,OAAS,EAAGuE,WAAW,uEAAuEP,YAAY,iBAAiB,CAACL,EAAI+oC,GAAG/oC,EAAIgpC,GAAGhpC,EAAIshD,cAAc7jD,EAAEuH,QAAQhF,EAAI2B,KAAKzB,EAAG,MAAM,CAACG,YAAY,oBAAoBC,MAAM,CAAC,IAAMN,EAAIq3B,WAAW,UAAUr3B,EAAI6nB,aAAa7f,UAAU,IAAIvK,EAAEQ,KAAKq5B,OAAO,IAAIt3B,EAAI+lB,cAAc,IAAM,MAAM7lB,EAAG,MAAM,CAACG,YAAY,gBAAgB,CAACL,EAAI+oC,GAAG/oC,EAAIgpC,GAAGvrC,EAAEQ,cAAa,MAE99BmE,GAAkB,G,0BC2JP,IACfmqC,yBACAhC,YACAkgB,kBAAAC,oBAEA7uD,WACAw7B,cACAszB,oBACAC,uBAEAl0C,aACA,6HAEAq1B,mBACA,sCACA,SASA,OARA,2BACA,4BACA,uBACAA,cAKA,EAKA,yBAGA1D,OACAhoB,qBAEApJ,gBACAD,wIACA,OAQAL,YACA,kDAGA6zC,mBACA,oCAAAnzC,mBACA,sBAIAiqC,iBACA,mEAIAuJ,yBAUAP,mBACA,WACAt8C,YACA,2BAEA,aACA,6BACA,MACArP,KACAqY,uFACAmd,yBACAgmB,0BAPA2Q,OCvOwX,MCQpX,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,QCnBX/qD,GAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACG,YAAY,oBAAoB,CAACH,EAAG,MAAM,CAACG,YAAY,gBAAgB,CAACH,EAAG,MAAM,CAACG,YAAY,WAAWE,GAAG,CAAC,MAAQ,SAASgW,GAAQ,OAAOvW,EAAIouC,6BAA6BpuC,EAAIy0C,GAAG,GAAGv0C,EAAG,MAAM,CAACG,YAAY,iBAAiB,CAACH,EAAG,MAAM,CAACG,YAAY,2BAA2B,CAACH,EAAG,MAAM,CAACI,MAAM,CAAC,GAAK,uBAAuBJ,EAAG,MAAM,CAACG,YAAY,cAAc,CAACH,EAAG,MAAM,CAACG,YAAY,oBAAoBE,GAAG,CAAC,MAAQ,SAASgW,GAAQ,OAAOvW,EAAIouC,4BAA4B,CAACpuC,EAAI+oC,GAAG,qBAEniB3mC,GAAkB,CAAC,WAAY,IAAIpC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACG,YAAY,oBAAoBC,MAAM,CAAC,GAAK,aAAa,CAACJ,EAAG,MAAM,CAACG,YAAY,kBAAkB,CAACH,EAAG,MAAM,CAACG,YAAY,gBAAgB,CAACH,EAAG,MAAM,CAACG,YAAY,YAAY,CAACH,EAAG,MAAM,CAACG,YAAY,gBAAgBC,MAAM,CAAC,IAAM8d,EAAQ,QAAwC,IAAM,MAAMle,EAAG,MAAM,CAACG,YAAY,kBAAkB,CAACL,EAAI+oC,GAAG,2BAA2B7oC,EAAG,MAAM,CAACG,YAAY,iBAAiB,CAACL,EAAI+oC,GAAG,8CAA8C7oC,EAAG,MAAM,CAACG,YAAY,gBAAgB,CAACH,EAAG,MAAM,CAACG,YAAY,YAAY,CAACH,EAAG,MAAM,CAACG,YAAY,gBAAgBC,MAAM,CAAC,IAAM8d,EAAQ,QAAyB,IAAM,MAAMle,EAAG,MAAM,CAACG,YAAY,kBAAkB,CAACL,EAAI+oC,GAAG,UAAU7oC,EAAG,MAAM,CAACG,YAAY,iBAAiB,CAACL,EAAI+oC,GAAG,6EAA6E7oC,EAAG,MAAM,CAACG,YAAY,gBAAgB,CAACH,EAAG,MAAM,CAACG,YAAY,YAAY,CAACH,EAAG,MAAM,CAACG,YAAY,gBAAgBC,MAAM,CAAC,IAAM8d,EAAQ,QAA2B,IAAM,MAAMle,EAAG,MAAM,CAACG,YAAY,kBAAkB,CAACL,EAAI+oC,GAAG,qBAAqB7oC,EAAG,MAAM,CAACG,YAAY,iBAAiB,CAACL,EAAI+oC,GAAG,uFCyOtoC,IACfwD,kCACA1wC,gBACA,OACAkvD,2BACAC,uBAGA7zC,UACAF,gBACA,qCACAra,kBACAghD,gBACAE,uBACApwC,aACAqwC,cACAC,YACAC,YACAC,wBACAxwC,gBAGA,kCACA,mDAEA,KCpQwX,MCQpX,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,OAIa,M,QCnBX3N,GAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACgsC,MAAM,CAAC,QAAUlsC,EAAIirD,WAAW3qD,MAAM,CAAC,GAAK,YAAY,CAACJ,EAAG,MAAM,CAACG,YAAY,WAAW,CAACH,EAAG,MAAM,CAACG,YAAY,iBAAiB,CAACH,EAAG,KAAK,CAACF,EAAI+oC,GAAG/oC,EAAIgpC,GAAGhpC,EAAI4tC,GAAG,iBAAiB1tC,EAAG,MAAM,CAACG,YAAY,mBAAmB,CAACH,EAAG,YAAY,CAACG,YAAY,uBAAuBiW,YAAY,CAAC,OAAS,KAAK/V,GAAG,CAAC,MAAQP,EAAIuuC,gBAAgB,CAACruC,EAAG,YAAY,CAACG,YAAY,eAAe,IAAI,KAAKH,EAAG,MAAM,CAACG,YAAY,QAAQ,CAACH,EAAG,KAAK,CAACF,EAAI+oC,GAAG/oC,EAAIgpC,GAAGhpC,EAAI4tC,GAAG,6BAA6B1tC,EAAG,IAAI,CAACF,EAAI+oC,GAAG/oC,EAAIgpC,GAAGhpC,EAAI4tC,GAAG,yHAAyH1tC,EAAG,MAAM,CAACG,YAAY,WAAW,CAACH,EAAG,IAAI,CAACF,EAAI+oC,GAAG/oC,EAAIgpC,GAAGhpC,EAAI4tC,GAAG,+CAA+C5tC,EAAIy0C,GAAG,KAAKv0C,EAAG,IAAI,CAACoW,YAAY,CAAC,aAAa,OAAO,gBAAgB,QAAQhW,MAAM,CAAC,KAAO,4DAA4D,OAAS,WAAW,CAACN,EAAI+oC,GAAG,mCAEz9B3mC,GAAkB,CAAC,WAAY,IAAIpC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,KAAK,CAACA,EAAG,KAAK,CAACA,EAAG,IAAI,CAACI,MAAM,CAAC,KAAO,+BAA+B,CAACJ,EAAG,MAAM,CAACI,MAAM,CAAC,IAAM8d,EAAQ,QAAkC,IAAM,WAAWpe,EAAI+oC,GAAG,6BAA6B7oC,EAAG,KAAK,CAACA,EAAG,IAAI,CAACI,MAAM,CAAC,KAAO,sBAAsB,CAACJ,EAAG,MAAM,CAACI,MAAM,CAAC,IAAM8d,EAAQ,QAAmC,IAAM,WAAWpe,EAAI+oC,GAAG,4BCqCrZ,IACAwB,YAAAwG,mBACAxE,yBACAnG,qBC1CoX,MCQhX,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,QC6GA,IACfmE,YACA2gB,kBAAAC,WAAAC,eAAAC,mBAAAC,WAAAC,qBAAAC,qBAAAC,WAAAC,cAAAC,aAAAC,iBAAAC,oBAAAC,oBAAAC,oBACAC,sBAAAC,iBAAAC,mBAAAC,sBAAAC,iBAAAC,qBAAAvlD,YAAAwlD,4BAAAC,kBAEA1wD,WACAw7B,cACAh2B,cACAP,cACAK,kBACAqrD,kBACA7rD,2BACA8rD,eACAxqD,wBACApB,cACAiB,wBACAf,wBACAK,YACAF,oBACAD,eACAD,kBACAU,yBACAH,mBACAC,oBAEAkV,aAEA,gBACAy5B,gDAEA,gBACA,4IACA,4KAEA,gBACAhuC,yDAKAH,kBAEA,+FAIA,+CAEAV,uBACA,+DAEAorD,uBACA,6DAGArkB,OACAqkB,uBACA,4BAEAznC,sBACA,0CACA,4BAEAI,eACArO,gFAEAoO,iBACApO,oFAEAsO,aACAtO,6EAEA2O,UACA3O,yFAEA4O,eACA5O,mCAGAL,YACA,8DACAw3B,sBACA,qDAEA,4BACA,uBACA,gCACA,6BACA,uBACA,mBACA,yBACA,0BAGAwe,sBACA,qDACA,yBACA,4BACA,uBACA,gCACA,uBACA,mBACA,yBACA,0BAGA7e,gBACA,2DACA,yBACA,+BACA,uBACA,6BACA,uBACA,mBACA,yBACA,0BAGAM,yBACA,2CAEA,uBACA,uBACA,gCACA,6BACA,uBACA,mBACA,2BAGAE,kBACA,6CACA,4CACA,wBACA,uBACA,gCACA,6BACA,uBACA,mBACA,0BAGAL,gBACA,yCACA,0CACA,sBACA,uBACA,gCACA,6BACA,mBACA,yBACA,0BAGApC,YACA,iCACA,sCACA,iHACA,kBACA,uBACA,gCACA,6BACA,uBACA,yBACA,0BAGAqC,uBACA,wDAEAuB,sBACA,qDACA,wDACA,4BACA,uBACA,6BACA,uBACA,2BAGAlB,gBACA,yCACA,sBACA,6BACA,gCACA,6BACA,uBACA,mBACA,yBACA,0BAGAP,mBACA,mCAEA4e,sBACA,kCAEAC,eACA,8CAEArsD,oBACA,mBAEAssD,qBACA,2BAEAC,kBAAA,OAAA9/B,qCAAA1tB,uBAAA,KACAqC,cACA,6BACA,2BACA,cACArC,4DAEAA,gEAEA8uC,cACA,mCACA,uDAGA/C,UACA5nC,6CACAA,gBACAA,yBACAA,4CACAA,0CAIA,yDACA,yBAEAojD,UACA,OACAjb,yBACAoC,iCACAH,iCACAkf,2BACA7e,6CACAvsC,6BACAgrD,6CACAte,qCACAmB,6CACAkd,6CACA3e,uCACAK,6BACArsC,qCACAksC,+CACAE,mDACAG,oCC1X8T,MCQ1T,I,UAAY,eACd,GACAxuC,EACAqC,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","file":"js/app.652984e4.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","// style-loader: Adds some css to the DOM by adding a \r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Renderer.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Renderer.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Renderer.vue?vue&type=template&id=3e272dae&\"\nimport script from \"./Renderer.vue?vue&type=script&lang=js&\"\nexport * from \"./Renderer.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Renderer.vue?vue&type=style&index=0&id=3e272dae&prod&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div')\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import * as BABYLON from 'babylonjs';\r\n\r\nclass BasicComponent {\r\n\r\n constructor( { id, situationID, rootNode = null } = {} ) {\r\n Object.assign( this, { id, situationID } );\r\n\r\n this.rootNode = rootNode;\r\n this.prefab = undefined;\r\n }\r\n\r\n getType() { return \"BasicComponent\"; }\r\n\r\n setID( id ) { this.id = id; return this; }\r\n getID() { return this.id; }\r\n getSituationID() { return this.situationID; }\r\n getRootNode() { return this.rootNode; }\r\n\r\n setSituationID( id ) { this.situationID = id; return this; }\r\n setRootNode( node ) { this.rootNode = node; return this; }\r\n\r\n // Constructs scene graph elements based on this component...\r\n construct( context, prefab ) {\r\n this.setSituationID( prefab.getSituationID() );\r\n this.setRootNode( new BABYLON.TransformNode(prefab.getType() + \"_\" + prefab.getID(), window.scene) );\r\n this.prefab = prefab;\r\n return this;\r\n }\r\n\r\n // Update this component...\r\n update( context = {} ) {\r\n if(context === 42){\r\n console.log(\"42\");\r\n }\r\n }\r\n\r\n // Enable this component in the scene graph\r\n enable() {\r\n if( this.rootNode )\r\n this.rootNode.setEnabled( true );\r\n }\r\n\r\n // Disable this component in the scene graph\r\n disable() {\r\n if( this.rootNode )\r\n this.rootNode.setEnabled( false );\r\n }\r\n\r\n // Destructs the scene graph for this component\r\n destruct() {\r\n if( this.rootNode )\r\n this.rootNode.dispose();\r\n }\r\n\r\n play(){\r\n }\r\n\r\n pause(){\r\n }\r\n\r\n stop(){\r\n }\r\n\r\n reset(){\r\n }\r\n\r\n jumpToTimePosition(timeToJumpTo){\r\n }\r\n\r\n changeVolume(volume){\r\n }\r\n\r\n isPlaying(){\r\n }\r\n\r\n isMute(){\r\n }\r\n}\r\n\r\nexport default BasicComponent;\r\n","//\r\n// Media Management\r\n//\r\n//\r\n// Main class of this package is the MediaManager. It is supposed to be used as a singleton.\r\n// Import the module with \r\n// > import MediaManager from './flux-mediamanager.js';\r\n\r\nclass Media \r\n{\r\n constructor({ \r\n id = -1,\r\n contentID = undefined,\r\n fileName = undefined,\r\n url = undefined,\r\n requiresDirectURL = false,\r\n type = undefined,\r\n fileSize = 0\r\n } = {}) {\r\n Object.assign( this, { id, contentID, fileName, url, requiresDirectURL, type, fileSize } );\r\n }\r\n\r\n setID( id ) { this.id = id; return this; }\r\n getID() { return this.id; }\r\n\r\n setContentID( id ) { this.contentID = id; return this; }\r\n getContentID() { return this.contentID; }\r\n\r\n setFileName( name ) { this.fileName = name; return this; }\r\n getFileName() { return this.fileName; }\r\n\r\n setURL( url ) { this.url = url; return this; }\r\n getURL() { return this.url; }\r\n\r\n setRequiresDirectURL( value ) { this.requiresDirectURL = value; return this; }\r\n getRequiresDirectURL() { return this.requiresDirectURL; }\r\n\r\n setType( type ) { this.type = type; return this; }\r\n getType() { return this.type; }\r\n hasType( id ) { return this.type === id; }\r\n\r\n setFileSize( size ) { this.fileSize = size; return this; }\r\n getFileSize() { return this.fileSize; }\r\n\r\n // Parses this media type from the given JSON object\r\n parseFromJSON( json ) {\r\n // not implemented...\r\n if( json && json.idName && json.filename && json.contentId ) {\r\n // Seems to be a datatype from the CMS...\r\n this.setID( json.idName );\r\n this.setFileName( json.filename );\r\n this.setContentID( json.contentId );\r\n this.setFileSize( json.expected_file_size );\r\n } else {\r\n // Unknown datatype...\r\n console.error(\"Trying to parse unknown filetype for \" + json);\r\n }\r\n }\r\n\r\n createFromJSON() {\r\n\r\n }\r\n\r\n toJSON() {\r\n return {\r\n id: this.id,\r\n contentID: this.contentID,\r\n fileName: this.fileName,\r\n url: this.url,\r\n fileSize: this.fileSize,\r\n type: this.type\r\n }\r\n }\r\n}\r\n\r\nMedia.MediaType = Object.freeze({\r\n Texture: 1001,\r\n Video: 1002,\r\n VideoList: 3000,\r\n Audio: 1003,\r\n Text: 1004,\r\n Model3D: 0,\r\n WebsiteURL: 1008,\r\n PDF: 1009,\r\n Prefab: 30000\r\n })\r\n\r\nclass Texture extends Media\r\n{\r\n get defaultTransitionTextureID() { return -1; }\r\n \r\n constructor({ \r\n id = -1,\r\n fileName = undefined,\r\n url = undefined,\r\n isReadable = false,\r\n contentID = undefined,\r\n mipmapping = true,\r\n linearColorSpace = false,\r\n filterMode = \"BiLinear\",\r\n ansioLevel = 1,\r\n alphaIsTransparency = false,\r\n fileSize = 0,\r\n width = undefined,\r\n height = undefined,\r\n texture = undefined\r\n } = {}) {\r\n super( { id, fileName, url, contentID, fileSize });\r\n this.setType( Media.MediaType.Texture );\r\n Object.assign( this, { isReadable, mipmapping, linearColorSpace, filterMode, ansioLevel, alphaIsTransparency, width, height, texture } );\r\n }\r\n\r\n setIsReadable( value ) { this.isReadable = value; return this; }\r\n getIsReadable() { return this.isReadable; }\r\n\r\n setMipmapping( value ) { this.mipmapping = value; return this; }\r\n getMipmapping() { return this.mipmapping; }\r\n\r\n setLinearColorSpace( value ) { this.linearColorSpace = value; return this; }\r\n getLinearColorSpace() { return this.linearColorSpace; }\r\n\r\n setFilterMode( value ) { this.filterMode = value; return this; }\r\n getFilterMode() { return this.filterMode; }\r\n\r\n setAnsioLevel( value ) { this.ansioLevel = value; return this; }\r\n getAnsioLevel() { return this.ansioLevel; }\r\n\r\n setAlphaIsTransparency( value ) { this.alphaIsTransparency = value; return this; }\r\n getAlphaIsTransparency() { return this.alphaIsTransparency; }\r\n\r\n setTexture( texture ) { this.texture = texture; return this; }\r\n getTexture() { return this.texture; }\r\n\r\n setSize( width, height ) { this.width = width; this.height = height; return this; }\r\n setWidth( width ) { this.width = width; return this; }\r\n getWidth() { return this.width; }\r\n\r\n setHeight( height ) { this.height = height; return this; }\r\n getHeight() { return this.height; }\r\n\r\n parseFromJSON( json ) {\r\n // not implemented...\r\n if( json && json.type === Media.MediaType.Texture ) {\r\n super.parseFromJSON( json );\r\n\r\n // Seems to be a datatype from the CMS...\r\n this.setIsReadable( json.isReadable );\r\n this.setMipmapping( json.mipmapping );\r\n this.setLinearColorSpace( json.linearColorSpace );\r\n this.setFilterMode( json.filterMode );\r\n this.setAnsioLevel( json.ansioLevel );\r\n this.setAlphaIsTransparency( json.alphaIsTransparency );\r\n //this.setRequiresDirectURL( true );\r\n } else {\r\n // Unknown datatype...\r\n console.error(\"Trying to parse unknown filetype into texture\");\r\n }\r\n return this;\r\n }\r\n\r\n createFromJSON( json ) {\r\n return new Texture().parseFromJSON( json );\r\n }\r\n\r\n toJSON() {\r\n var rv = super.toJSON();\r\n rv.isReadable = this.isReadable;\r\n rv.mipmapping = this.mipmapping;\r\n rv.linearColorSpace = this.linearColorSpace;\r\n rv.filterMode = this.filterMode;\r\n rv.ansioLevel = this.ansioLevel;\r\n rv.alphaIsTransparency = this.alphaIsTransparency; \r\n rv.width = this.width;\r\n rv.height = this.height;\r\n return rv;\r\n }\r\n}\r\n\r\n\r\nclass Audio extends Media\r\n{\r\n constructor({ \r\n id = -1,\r\n fileName = undefined,\r\n url = undefined,\r\n contentID = undefined,\r\n isThreeD = false,\r\n isStream = false,\r\n fileSize = 0\r\n } = {}) {\r\n super( { id, fileName, url, contentID, fileSize} );\r\n this.setType( Media.MediaType.Audio );\r\n Object.assign( this, { isThreeD, isStream } );\r\n }\r\n\r\n setIsThreeD( value ) { this.isThreeD = value; return this; }\r\n getIsThreed() { return this.isThreeD; }\r\n\r\n setStream( value ) { this.isStream = value; return this; }\r\n getStream() { return this.isStream; } \r\n\r\n parseFromJSON( json ) {\r\n if( json && json.type === Media.MediaType.Audio ) {\r\n super.parseFromJSON( json );\r\n\r\n // Seems to be a datatype from the CMS...\r\n this.setIsThreeD( json.isThreeD );\r\n this.setStream( json.isStream );\r\n this.setRequiresDirectURL( true );\r\n } else {\r\n // Unknown datatype...\r\n console.error(\"Trying to parse unknown filetype\");\r\n }\r\n return this;\r\n }\r\n\r\n createFromJSON( json ) {\r\n return new Audio().parseFromJSON( json );\r\n }\r\n \r\n toJSON() {\r\n var rv = super.toJSON();\r\n rv.isThreeD = this.isThreeD;\r\n rv.isStream = this.isStream;\r\n return rv;\r\n }\r\n}\r\n\r\nclass Video extends Media\r\n{\r\n constructor({ \r\n id = -1,\r\n fileName = undefined,\r\n url = undefined,\r\n contentID = undefined,\r\n width = undefined,\r\n height = undefined,\r\n fileSize = 0\r\n } = {}) {\r\n super( { id, fileName, url, contentID, fileSize });\r\n this.setType( Media.MediaType.Video );\r\n Object.assign( this, { width, height } );\r\n }\r\n\r\n setSize( width, height ) { this.width = width; this.height = height; return this; }\r\n setWidth( width ) { this.width = width; return this; }\r\n getWidth() { return this.width; }\r\n\r\n setHeight( height ) { this.height = height; return this; }\r\n getHeight() { return this.height; }\r\n\r\n parseFromJSON( json ) {\r\n // not implemented...\r\n if( json && json.type === Media.MediaType.Video ) {\r\n super.parseFromJSON( json );\r\n\r\n // Seems to be a datatype from the CMS...\r\n this.setWidth( json.width );\r\n this.setHeight( json.height );\r\n this.setRequiresDirectURL( true );\r\n } else {\r\n // Unknown datatype...\r\n console.error(\"Trying to parse unknown filetype\");\r\n }\r\n return this;\r\n }\r\n\r\n createFromJSON( json ) {\r\n return new Video().parseFromJSON( json );\r\n }\r\n \r\n\r\n toJSON() {\r\n var rv = super.toJSON();\r\n rv.width = this.width;\r\n rv.height = this.height;\r\n return rv;\r\n }\r\n}\r\n\r\nclass VideoList extends Media\r\n{\r\n constructor({ \r\n id = -1,\r\n fileName = undefined,\r\n url = undefined,\r\n contentID = undefined,\r\n width = undefined,\r\n height = undefined,\r\n fileSize = 0\r\n } = {}) {\r\n super( { id, fileName, url, contentID, fileSize });\r\n this.setType( Media.MediaType.Video );\r\n Object.assign( this, { width, height } );\r\n }\r\n\r\n setSize( width, height ) { this.width = width; this.height = height; return this; }\r\n setWidth( width ) { this.width = width; return this; }\r\n getWidth() { return this.width; }\r\n\r\n setHeight( height ) { this.height = height; return this; }\r\n getHeight() { return this.height; }\r\n\r\n parseFromJSON( json ) {\r\n // not implemented...\r\n if( json && json.type === Media.MediaType.Video ) {\r\n super.parseFromJSON( json );\r\n\r\n // Seems to be a datatype from the CMS...\r\n this.setWidth( json.width );\r\n this.setHeight( json.height );\r\n this.setRequiresDirectURL( true );\r\n } else {\r\n // Unknown datatype...\r\n console.error(\"Trying to parse unknown filetype\");\r\n }\r\n return this;\r\n }\r\n\r\n createFromJSON( json ) {\r\n return new Video().parseFromJSON( json );\r\n }\r\n \r\n toJSON() {\r\n var rv = super.toJSON();\r\n rv.width = this.width;\r\n rv.height = this.height;\r\n return rv;\r\n }\r\n}\r\n\r\nclass Model3D extends Media\r\n{\r\n constructor({ \r\n id = -1,\r\n fileName = undefined,\r\n url = undefined,\r\n contentID = undefined,\r\n fileSize = 0\r\n } = {}) {\r\n super( { id, fileName, url, contentID, fileSize} );\r\n this.setType( Media.MediaType.Model3D );\r\n Object.assign( this, { } );\r\n }\r\n\r\n parseFromJSON( json ) {\r\n if( json && json.type === Media.MediaType.Model3D ) {\r\n super.parseFromJSON( json );\r\n\r\n // Seems to be a datatype from the CMS...\r\n this.setRequiresDirectURL( true );\r\n } else {\r\n // Unknown datatype...\r\n console.error(\"Trying to parse unknown filetype\");\r\n }\r\n return this;\r\n }\r\n\r\n createFromJSON( json ) {\r\n return new Model3D().parseFromJSON( json );\r\n }\r\n \r\n toJSON() {\r\n var rv = super.toJSON();\r\n return rv;\r\n }\r\n}\r\n\r\n\r\nexport { Media, Texture, Audio, Video, VideoList, Model3D}","import axios from 'axios';\r\n//import * as VUEAXIOSPLUGIN from 'vue-axios-plugin';\r\nimport JSZip from 'jszip';\r\nimport JSZipUtils from 'jszip-utils';\r\n\r\nclass FluxCMS{\r\n constructor(\r\n {\r\n app_id = 'ElementsAustellung', // decormetallShowroom, HallePanoTour, HSEmdenLeer, ElementsAustellung\r\n app_secret = 'elementsAustellung2020', // decormetallShowroom2020, hallePanoTour2020, HSEmdenLeerChemie, elementsAustellung2020\r\n baseURL = 'https://rt-ar-app.ar-cms.de',\r\n worldsPath = '/getAllWorldsForUser',\r\n projectsPath = '/getAllArProjectsOfWorldForUser/',\r\n zipPath = '/getBuildZipFile/',\r\n rawContentFilePath = '/getRawContentFile/',\r\n rawContentFileURLPath = '/flux/api/media/RawContent/url/get/',\r\n } = {}\r\n ) {\r\n this.baseURL = baseURL;\r\n this.worldsPath = worldsPath;\r\n this.projectsPath = projectsPath;\r\n this.zipPath = zipPath;\r\n this.rawContentFilePath = rawContentFilePath;\r\n this.rawContentFileURLPath = rawContentFileURLPath;\r\n\r\n this.setAppInformation( app_id, app_secret );\r\n }\r\n\r\n get worldsURL() {\r\n return this.baseURL + this.worldsPath;\r\n }\r\n\r\n get projectsURL() {\r\n return this.baseURL + this.projectsPath;\r\n }\r\n\r\n get rawContentFileURL() {\r\n return this.baseURL + this.rawContentFilePath;\r\n }\r\n\r\n get rawContentFileURLURL() {\r\n return this.baseURL + this.rawContentFileURLPath;\r\n }\r\n\r\n get zipURL() {\r\n return this.baseURL + this.zipPath;\r\n }\r\n\r\n setAppInformation( app_id, app_secret ) {\r\n this.app_id = app_id;\r\n this.app_secret = app_secret;\r\n this.axios_app_instance = axios.create({\r\n headers: {'X-APP-TOKEN': this.app_secret, 'Content-Type': 'application/json'}\r\n });\r\n this.post_data = {'appId': this.app_id, 'appSecret': this.app_secret }\r\n }\r\n\r\n getWorlds() {\r\n var fluxCMS = this;\r\n return new Promise( function( resolve, reject ) {\r\n console.log(\"FluxCMS::getWorlds: \" + fluxCMS.worldsURL );\r\n console.log(\"post_data: \" + fluxCMS.post_data.appId + \" -> \" + fluxCMS.post_data.appSecret );\r\n //this.post_data = {'appId': this.app_id, 'appSecret': this.app_secret }\r\n fluxCMS.axios_app_instance.get(fluxCMS.worldsURL, fluxCMS.post_data).then((response) => {\r\n console.log(response.data.content);\r\n resolve( response.data.content);\r\n }).catch(function (error) {\r\n if (error.response) {\r\n // The request was made and the server responded with a status code\r\n // that falls out of the range of 2xx\r\n console.log(error.response.data);\r\n console.log(error.response.status);\r\n console.log(error.response.headers);\r\n reject(Error(error.response))\r\n } else if (error.request) {\r\n // The request was made but no response was received\r\n // `error.request` is an instance of XMLHttpRequest in the browser and an instance of\r\n // http.ClientRequest in node.js\r\n console.log(error.request);\r\n reject(Error(error.request))\r\n } else {\r\n // Something happened in setting up the request that triggered an Error\r\n console.log('Error', error.message);\r\n reject(Error(error.message))\r\n }\r\n console.log(error.config);\r\n });\r\n });\r\n }\r\n\r\n getProjects( projectID ) {\r\n var fluxCMS = this;\r\n return new Promise( function( resolve, reject ) {\r\n console.log(\"FluxCMS::getProjects: \" + fluxCMS.projectsURL + projectID );\r\n console.log(\"post_data: \" + fluxCMS.post_data.appId + \" -> \" + fluxCMS.post_data.appSecret );\r\n //this.post_data = {'appId': this.app_id, 'appSecret': this.app_secret }\r\n fluxCMS.axios_app_instance.get(fluxCMS.projectsURL + projectID, fluxCMS.post_data).then((response) => {\r\n console.log(response.data.content);\r\n resolve( response.data.content);\r\n }).catch(function (error) {\r\n if (error.response) {\r\n // The request was made and the server responded with a status code\r\n // that falls out of the range of 2xx\r\n console.log(error.response.data);\r\n console.log(error.response.status);\r\n console.log(error.response.headers);\r\n reject(Error(error.response))\r\n } else if (error.request) {\r\n // The request was made but no response was received\r\n // `error.request` is an instance of XMLHttpRequest in the browser and an instance of\r\n // http.ClientRequest in node.js\r\n console.log(error.request);\r\n reject(Error(error.request))\r\n } else {\r\n // Something happened in setting up the request that triggered an Error\r\n console.log('Error', error.message);\r\n reject(Error(error.message))\r\n }\r\n console.log(error.config);\r\n });\r\n });\r\n }\r\n\r\n async getZIP( projectID, preview ) {\r\n const url=`${this.zipURL}${projectID}${preview ? \"?preview=true\" : \"\"}`;\r\n const {promisify} = require('util');\r\n const getBinaryContent = promisify(JSZipUtils.getBinaryContent);\r\n const data = await getBinaryContent(url);\r\n return JSZip.loadAsync(data);\r\n }\r\n\r\n getRawContentFile( rawContentFileID ) {\r\n var fluxCMS = this;\r\n return new Promise( function( resolve, reject ) {\r\n console.log(\"FluxCMS::getRawContentFile: \" + fluxCMS.rawContentFileURL + rawContentFileID );\r\n fluxCMS.axios_app_instance.get(fluxCMS.rawContentFileURL + rawContentFileID).then((response) => {\r\n //console.log(response.data.content);\r\n resolve( response.data.content);\r\n }).catch(function (error) {\r\n if (error.response) {\r\n // The request was made and the server responded with a status code\r\n // that falls out of the range of 2xx\r\n console.log(error.response.data);\r\n console.log(error.response.status);\r\n console.log(error.response.headers);\r\n reject(Error(error.response))\r\n } else if (error.request) {\r\n // The request was made but no response was received\r\n // `error.request` is an instance of XMLHttpRequest in the browser and an instance of\r\n // http.ClientRequest in node.js\r\n console.log(error.request);\r\n reject(Error(error.request))\r\n } else {\r\n // Something happened in setting up the request that triggered an Error\r\n console.log('Error', error.message);\r\n reject(Error(error.message))\r\n }\r\n console.log(error.config);\r\n });\r\n });\r\n }\r\n\r\n getRawContentFileURL( rawContentFileID ) {\r\n return this.rawContentFileURL + rawContentFileID;\r\n }\r\n\r\n getRawContentFileURLURL( rawContentFileID ) {\r\n var fluxCMS = this;\r\n return new Promise( function( resolve, reject ) {\r\n // console.log(\"FluxCMS::getRawContentFileURLURL: \" + fluxCMS.rawContentFileURLURL + rawContentFileID );\r\n fluxCMS.axios_app_instance.get(fluxCMS.rawContentFileURLURL + rawContentFileID).then((response) => {\r\n //console.log(response);\r\n // console.log(\"=>\" + response.data.content.url);\r\n resolve( response.data.content.url );\r\n }).catch(function (error) {\r\n if (error.response) {\r\n // The request was made and the server responded with a status code\r\n // that falls out of the range of 2xx\r\n console.log(error.response.data);\r\n console.log(error.response.status);\r\n console.log(error.response.headers);\r\n reject(Error(error.response))\r\n } else if (error.request) {\r\n // The request was made but no response was received\r\n // `error.request` is an instance of XMLHttpRequest in the browser and an instance of\r\n // http.ClientRequest in node.js\r\n console.log(error.request);\r\n reject(Error(error.request))\r\n } else {\r\n // Something happened in setting up the request that triggered an Error\r\n console.log('Error', error.message);\r\n reject(Error(error.message))\r\n }\r\n console.log(error.config);\r\n });\r\n });\r\n }\r\n}\r\n\r\n// Exports\r\nexport default FluxCMS;\r\nexport { FluxCMS };\r\n","import { v4 as uuidv4 } from 'uuid';\r\n\r\nclass Event {\r\n\r\n constructor({ id, userID, situationID, time, type, duration }) {\r\n this.id = id ? id : uuidv4();\r\n Object.assign(this, { userID, situationID });\r\n this.type = type ? type : \"Event\";\r\n this.time = time ? time : Date.now();\r\n this.duration = duration ? duration : 1000\r\n }\r\n\r\n getType() { return this.type; }\r\n\r\n setID(id) { this.id = id; return this; }\r\n getID() { return this.id; }\r\n\r\n setUserID(id) { this.userID = id; return this; }\r\n getUserID() { return this.userID; }\r\n\r\n setSituationID(id) { this.situationID = id; return this; }\r\n getSituationID() { return this.situationID; }\r\n\r\n setTime(time) { this.time = time; return this; }\r\n getTime() { return this.time; }\r\n\r\n setDuration(duration) { this.duration = duration; return this; }\r\n getDuration() { return this.duration; }\r\n\r\n isOfType(type) {\r\n return type === this.type;\r\n }\r\n\r\n parseFromJSON(json) {\r\n if (json && json.id) {\r\n this\r\n .setID(json.id)\r\n .setUserID(json.userID)\r\n .setSituationID(json.situationID)\r\n .setTime(json.time)\r\n .setDuration(json.duration)\r\n } else {\r\n console.error(\"Trying to parse unknown event type\");\r\n }\r\n return this;\r\n }\r\n}\r\n\r\nclass NotifyPositionEvent extends Event {\r\n constructor({ id, userID, situationID, time, duration,\r\n position,\r\n rotation,\r\n color\r\n } = {}) {\r\n super({ id, userID, situationID, time, duration, type: \"NotifyPositionEvent\" });\r\n Object.assign(this, { position, rotation, color });\r\n }\r\n\r\n isOfType(type) {\r\n return type === this.type || super.isOfType(type);\r\n }\r\n\r\n setPosition(pos) { this.position = pos; return this; }\r\n getPosition() { return this.position; }\r\n\r\n setRotation(rot) { this.rotation = rot; return this; }\r\n getRotation() { return this.rotation; }\r\n\r\n setColor(color) { this.color = color; return this; }\r\n getColor() { return this.color; }\r\n\r\n parseFromJSON(json) {\r\n if (json && json.id) {\r\n super.parseFromJSON( json )\r\n .setPosition(json.position)\r\n .setRotation(json.rotation)\r\n .setColor(json.color)\r\n } else {\r\n console.error(\"Trying to parse unknown event type\");\r\n }\r\n return this;\r\n }\r\n\r\n createFromJSON( json ) {\r\n return new NotifyPositionEvent().parseFromJSON( json );\r\n } \r\n}\r\n\r\nclass EventBuilder {\r\n constructor() {\r\n this.supportedEventTypes = new Map();\r\n }\r\n\r\n registerEventType( event ) {\r\n if( event.getType ) {\r\n this.supportedEventTypes.set( event.getType(), event );\r\n }\r\n }\r\n\r\n createFromJSON( json ) {\r\n if( json && json.type ) {\r\n console.log(\"Trying to instantiate an event for type \" + json.type);\r\n if( this.supportedEventTypes.has( json.type ) ) \r\n return this.supportedEventTypes.get( json.type ).createFromJSON( json );\r\n else\r\n console.log(\"Unknown event type \" + json.type );\r\n } else {\r\n // Unknown datatype...\r\n console.error(\"Trying to parse unknown event type \");\r\n }\r\n }\r\n}\r\n\r\nconst EventBuilderInstance = new EventBuilder();\r\nObject.freeze(EventBuilderInstance);\r\n\r\nEventBuilderInstance.registerEventType( new NotifyPositionEvent() );\r\n\r\nexport { Event, EventBuilder, EventBuilderInstance, NotifyPositionEvent }\r\n","import {v4 as uuidv4} from 'uuid';\r\n\r\nclass User {\r\n\r\n constructor ({id, name, acronym, color, currentSituationID = undefined, role = 'visitor', cmsID, isCMSUser} = {}) {\r\n this.id = id ? id : uuidv4();\r\n Object.assign( this, { name, acronym, color, role, cmsID, isCMSUser } );\r\n this.currentSituationID = currentSituationID;\r\n this.rotation = undefined;\r\n this.position = undefined;\r\n this.gazePosition = undefined;\r\n this.cursorPosition = undefined;\r\n this.userIcon = undefined;\r\n this.resetShouldSync();\r\n }\r\n\r\n getType() { return \"User\"; }\r\n\r\n setShouldSync( fullSync ) { \r\n if( fullSync ) {\r\n this.update = this.getSharedProperties();\r\n }\r\n this.shouldSync = true; \r\n return this; \r\n }\r\n\r\n resetShouldSync() { \r\n this.shouldSync = false; \r\n this.update = {\r\n id: this.id\r\n };\r\n return this; \r\n }\r\n ifShouldSync() { return this.shouldSync; }\r\n\r\n // TODO: consider if this would be better as immutable property?\r\n setID (id) {\r\n this.id = id;\r\n this.update.id = id;\r\n return this;\r\n }\r\n\r\n setRotation (rotation) {\r\n //console.log(\"Setting user rotation \" + JSON.stringify(rotation));\r\n this.rotation = rotation;\r\n this.update.rotation = rotation;\r\n return this;\r\n }\r\n\r\n setPosition (position) {\r\n this.position = position;\r\n this.update.position = position;\r\n return this;\r\n }\r\n\r\n setGazePosition (position) {\r\n this.gazePosition = position;\r\n this.update.gazePosition = position;\r\n return this;\r\n }\r\n\r\n setCursorPosition (position) {\r\n this.cursorPosition = position;\r\n this.update.cursorPosition = position;\r\n return this;\r\n }\r\n\r\n setName (value) {\r\n this.name = value;\r\n this.update.name = value;\r\n return this;\r\n }\r\n\r\n setCMSID( id ) {\r\n this.cmsID = id;\r\n return this;\r\n }\r\n\r\n setIsCMSUser( value ) {\r\n this.isCMSUser = value;\r\n return this;\r\n }\r\n\r\n setAcronym (value) {\r\n this.acronym = value;\r\n this.update.acronym = value;\r\n return this;\r\n }\r\n\r\n setUserIcon (value) {\r\n this.userIcon = value;\r\n return this;\r\n }\r\n\r\n setColor (value) {\r\n this.color = value;\r\n this.update.color = value;\r\n return this;\r\n }\r\n\r\n setRole( value ) {\r\n this.role = value;\r\n this.update.role = value;\r\n return this;\r\n }\r\n\r\n getID () {\r\n return this.id;\r\n }\r\n\r\n getRotation () {\r\n return this.rotation;\r\n }\r\n\r\n getPosition () {\r\n return this.position;\r\n }\r\n\r\n getGazePosition () {\r\n return this.gazePosition;\r\n }\r\n\r\n getCursorPosition () {\r\n return this.cursorPosition;\r\n }\r\n\r\n getName () {\r\n return this.name;\r\n }\r\n\r\n getAcronym () {\r\n return this.acronym;\r\n }\r\n\r\n getColor () {\r\n return this.color;\r\n }\r\n\r\n getRole() {\r\n return this.role;\r\n }\r\n\r\n getUserIcon(){\r\n return this.userIcon;\r\n }\r\n\r\n getCMSID() {\r\n return this.cmsID;\r\n }\r\n\r\n isCMSUSer() {\r\n return this.isCMSUSer;\r\n }\r\n\r\n setCurrentSituationID (id) {\r\n if (!Number.isInteger(id))\r\n id = parseInt(id);\r\n const oldSituation = this.currentSituationID;\r\n if( id !== this.currentSituationID ) {\r\n // console.log(\"User(\" + this.id + \"): Changing Situation ID from \" + this.currentSituationID + \" to \" + id);\r\n this.currentSituationID = id;\r\n this.update.currentSituationID = id;\r\n this.shouldSync = true;\r\n }\r\n return oldSituation;\r\n }\r\n\r\n getCurrentSituationID () {\r\n return this.currentSituationID;\r\n }\r\n\r\n // Returns those properties that are supposed to be shared over the network\r\n getSharedProperties() {\r\n return {\r\n id: this.id,\r\n name: this.name,\r\n acronym: this.acronym,\r\n color: this.color,\r\n currentSituationID: this.currentSituationID,\r\n role: this.role,\r\n rotation: this.rotation,\r\n position: this.position,\r\n gazePosition: this.gazePosition,\r\n cursorPosition: this.cursorPosition\r\n }\r\n }\r\n\r\n getUpdatedProperties() {\r\n return this.update;\r\n }\r\n}\r\n\r\nexport {User}\r\n","import * as BABYLON from 'babylonjs';\r\n\r\nclass Converter\r\n{\r\n name = \"Babylonjs\";\r\n\r\n convertPositionFromCMS( p ) {\r\n var v = new BABYLON.Vector3( p.x, p.y, -1.0 * p.z );\r\n v = v.rotateByQuaternionToRef(BABYLON.Quaternion.RotationAxis( BABYLON.Vector3.Up(), Math.PI ), v );\r\n return v;\r\n }\r\n\r\n convertRotationFromCMS( r ) {\r\n //console.log(\"Converting rotation \" + JSON.stringify(r));\r\n if( !isNaN(r) ) {\r\n let result = BABYLON.Quaternion.FromEulerAngles(0, r ? r * Math.PI /180 + 90*Math.PI / 180: 90*Math.PI / 180, 0 );\r\n //console.log(\" = (Euler) > \" + JSON.stringify(result ));\r\n return result;\r\n }\r\n else {\r\n //console.log(\" => \" + r );\r\n return r;\r\n }\r\n }\r\n}\r\n\r\nconst instance = new Converter();\r\nObject.freeze(instance);\r\n\r\nexport default instance;\r\n","import { v4 as uuidv4 } from 'uuid';\r\n\r\nclass Command {\r\n\r\n constructor({ id, sourceUserID, target, time, type }) {\r\n this.id = id ? id : uuidv4();\r\n Object.assign(this, { sourceUserID, target });\r\n this.type = type ? type : \"Command\";\r\n this.time = time ? time : Date.now();\r\n this.completed = false;\r\n }\r\n\r\n getType() { return this.type; }\r\n\r\n setID(id) { this.id = id; return this; }\r\n getID() { return this.id; }\r\n\r\n setSourceUserID(id) { this.sourceUserID = id; return this; }\r\n getSourceUserID() { return this.sourceUserID; }\r\n\r\n setTarget(id) { this.target = id; return this; }\r\n getTarget() { return this.target; }\r\n\r\n setTime(time) { this.time = time; return this; }\r\n getTime() { return this.time; }\r\n\r\n isOfType(type) {\r\n return type === this.type;\r\n }\r\n\r\n setCompleted() { this.completed = true; return this; }\r\n isCompleted() { return this.completed; }\r\n\r\n parseFromJSON(json) {\r\n if (json && json.id) {\r\n this\r\n .setID(json.id)\r\n .setSourceUserID(json.sourceUserID)\r\n .setTarget(json.target)\r\n .setTime(json.time)\r\n } else {\r\n console.error(\"Trying to parse unknown command type\");\r\n }\r\n return this;\r\n }\r\n}\r\n\r\nclass CommandComeTo extends Command {\r\n constructor({ id, sourceUserID, situationID, time, position, rotation\r\n } = {}) {\r\n super({ id, sourceUserID, time, type: \"ComeTo\" });\r\n Object.assign(this, { situationID, position, rotation });\r\n }\r\n\r\n isOfType(type) {\r\n return type === this.type || super.isOfType(type);\r\n }\r\n\r\n setSituationID(id) { this.situationID = id; return this; }\r\n getSituationID() { return this.situationID; }\r\n\r\n setPosition(pos) { this.position = pos; return this; }\r\n getPosition() { return this.position; }\r\n\r\n setRotation(rot) { this.rotation = rot; return this; }\r\n getRotation() { return this.rotation; }\r\n\r\n parseFromJSON(json) {\r\n if (json && json.id) {\r\n super.parseFromJSON( json )\r\n .setSituationID( json.situationID )\r\n .setPosition(json.position)\r\n .setRotation(json.rotation)\r\n } else {\r\n console.error(\"Trying to parse unknown command type\");\r\n }\r\n return this;\r\n }\r\n\r\n createFromJSON( json ) {\r\n return new CommandComeTo().parseFromJSON( json );\r\n } \r\n}\r\n\r\nclass DeleteMessage extends Command {\r\n constructor({ id, sourceUserID, time, message} = {}) {\r\n super({ id, sourceUserID, time, type: \"DeleteMessage\" });\r\n Object.assign(this, {message});\r\n }\r\n\r\n isOfType(type) {\r\n return type === this.type || super.isOfType(type);\r\n }\r\n\r\n setMessage(message) { this.message = message; return this; }\r\n getMessage() { return this.message; }\r\n\r\n parseFromJSON(json) {\r\n if (json && json.id) {\r\n super.parseFromJSON(json)\r\n .setMessage(json.message)\r\n } else {\r\n console.error(\"Trying to parse unknown command type\");\r\n }\r\n return this;\r\n }\r\n\r\n createFromJSON( json ) {\r\n return new DeleteMessage().parseFromJSON( json );\r\n }\r\n}\r\n\r\nclass CommandBuilder {\r\n constructor() {\r\n this.supportedCommandTypes = new Map();\r\n }\r\n\r\n registerCommandType( command ) {\r\n if( command.getType ) {\r\n this.supportedCommandTypes.set( command.getType(), command );\r\n }\r\n }\r\n\r\n createFromJSON( json ) {\r\n if( json && json.type ) {\r\n //console.log(\"Trying to instantiate a command for type \" + json.type);\r\n if( this.supportedCommandTypes.has( json.type ) ) \r\n return this.supportedCommandTypes.get( json.type ).createFromJSON( json );\r\n else\r\n console.log(\"Unknown command type \" + json.type );\r\n } else {\r\n // Unknown datatype...\r\n console.error(\"Trying to parse unknown command type \");\r\n }\r\n }\r\n}\r\n\r\nconst CommandBuilderInstance = new CommandBuilder();\r\nObject.freeze(CommandBuilderInstance);\r\n\r\nCommandBuilderInstance.registerCommandType( new CommandComeTo() );\r\nCommandBuilderInstance.registerCommandType(new DeleteMessage());\r\n\r\nexport { Command, CommandBuilder, CommandBuilderInstance, CommandComeTo, DeleteMessage }\r\n","import Vue from 'vue';\r\nimport {FluxCMS} from \"@/api/FluxCMS\";\r\nimport {Prefab, PrefabBuilderInstance} from \"./PrefabDataTypes\";\r\nimport {EventBuilderInstance} from \"./EventDataTypes\";\r\nimport {User} from \"./UserDataTypes\";\r\nimport MediaManager from '@/api/MediaManager';\r\nimport Converter from '@/components/babylonjs/Converter';\r\nimport { SoundTrack } from \"babylonjs\";\r\nimport axios from 'axios';\r\nimport { DeleteMessage, CommandBuilderInstance } from './CommandDataTypes';\r\n\r\nconst Flux360Store = {\r\n state: {\r\n flux360Version: process.env.VUE_APP_VERSION || '0.0.0',\r\n // Configuration of the Flux360 Tour.\r\n // These are the defaults set in the application.\r\n // Defaults will be overwritten by a file flux_config.json on the server\r\n config: {\r\n sessionID: undefined, // ID to use for the video session, if undefined, use tour ID\r\n panoramaTourZIP: undefined,\r\n panoramaTourZIPEN: undefined,\r\n showLanguageSelection: false,\r\n enableWatermark: true,\r\n logoURL: \"/Flux360Logo.svg\",\r\n enableCommunication: false,\r\n enableBugReport: true,\r\n enableZooming: false,\r\n enablePermanentPanoramaVideoControls: false,\r\n secondaryColor: \"#a34400\",\r\n primaryColor: \"#E76101\",\r\n fontFamily: \"Avenir\",\r\n enableMap: true,\r\n enablePanoramaVideoAutoplay: true,\r\n enableSharing: true,\r\n mapURL: null,\r\n mapPins: [],\r\n favIcon: \"/favicon.ico\",\r\n websiteTitle: \"Flux 360°\",\r\n enableWaitForModerator: false,\r\n roomRotations: [],\r\n thumbnailType: \"jpg\",\r\n roomOrder: null,\r\n cameraZoom: 0.9,\r\n enablePreloadAllSituations: false,\r\n },\r\n\r\n converter: Converter,\r\n prefabs: [],\r\n users: [],\r\n events: [],\r\n commands: [],\r\n localUserID: undefined,\r\n media: MediaManager,\r\n inSetup: false,\r\n vrMode: false,\r\n gyrosActive: false,\r\n sounds: SoundTrack,\r\n overwriteStartSituationID: undefined, // If this is set to a certain ID, it will overwrite the ID from the CMS\r\n doRendering: true,\r\n isDialogueOpen: false,\r\n loadingscreenVisible: true,\r\n followModeratorMode: false,\r\n sendingFollowModerator: false,\r\n \r\n /*** Settings for publisher ***/\r\n audioDeviceId: undefined,\r\n videoDeviceId: undefined,\r\n audioOn: false,\r\n videoOn: false,\r\n framerate: 30,\r\n audiobitrate: undefined,\r\n audioProcessingDeactivated: false,\r\n\r\n screenSharingVisible: false,\r\n },\r\n getters: {\r\n appVersion: (state) => {\r\n return state.flux360Version\r\n }, \r\n panoramaTour: (state) => {\r\n const apps = state.prefabs.filter( x => x.isOfType( Prefab.PrefabType.Application360 ) );\r\n\t\t\tif( apps.length == 1 )\r\n\t\t\t\treturn apps[0];\r\n\t\t\telse\r\n\t\t\t\tconsole.error(\"No App defined!\");\r\n },\r\n currentSituationID: (state, getters) => {\r\n return getters.localUser ? getters.localUser.getCurrentSituationID() : undefined;\r\n },\r\n situations: state => {\r\n return state.prefabs.filter( x => x.isOfType( Prefab.PrefabType.Situation ) );\r\n },\r\n users: state => {\r\n return state.users;\r\n },\r\n events: state => {\r\n return state.events;\r\n },\r\n commands: state => {\r\n return state.commands;\r\n },\r\n localUserID: state => {\r\n return state.localUserID;\r\n },\r\n currentSituation: (state, getters) => {\r\n return state.prefabs.find(x => x.getID() === getters.currentSituationID);\r\n },\r\n currentPrefabs: (state, getters) => {\r\n return state.prefabs.filter(x => x.getSituation && x.getSituation() === getters.currentSituationID);\r\n },\r\n prefabsForSituation: (state) => (situationID) => {\r\n return state.prefabs.filter(x => x.getSituation && x.getSituation() === situationID);\r\n },\r\n remoteUsersInCurrentSituation: (state, getters) => {\r\n return state.users.filter(x => (x.getCurrentSituationID() === getters.currentSituationID) && (x.getID() !== state.localUserID));\r\n },\r\n localUser: (state) => {\r\n return state.users.find(x => x.getID() === state.localUserID);\r\n },\r\n allPrefabs: (state) => {\r\n return state.prefabs;\r\n },\r\n moderatorInSession: (state) => {\r\n return state.users.find(user => user.getRole() == \"moderator\") != undefined;\r\n }, \r\n config: (state) => { return state.config; },\r\n screenSharingVisible: (state) => {return state.screenSharingVisible},\r\n sessionID: (state) => { return state.config.sessionID; },\r\n sendingFollowModerator: (state) => { return state.sendingFollowModerator; },\r\n followModeratorMode: (state) => { return state.followModeratorMode; },\r\n panoramaTourZIP: (state) => { return state.config.panoramaTourZIP; },\r\n panoramaTourZIPEN: (state) => { return state.config.panoramaTourZIPEN; },\r\n showLanguageSelection: (state) => { return state.config.showLanguageSelection; },\r\n roomOrder: (state) => { return state.config.roomOrder; },\r\n cameraZoom: (state) => { return state.config.cameraZoom; },\r\n thumbnailType: (state) => { return state.config.thumbnailType; },\r\n roomRotations: (state) => { return state.config.roomRotations; },\r\n enableWaitForModerator: (state) => { return state.config.enableWaitForModerator; },\r\n enableSharing: (state) => { return state.config.enableSharing; },\r\n isDialogueOpen: (state) => { return state.isDialogueOpen; },\r\n doRendering: (state) => { return state.doRendering; },\r\n loadingscreenVisible: (state) => { return state.loadingscreenVisible; },\r\n fontFamily: (state) => { return state.config.fontFamily; },\r\n mapURL: (state) => { return state.config.mapURL; },\r\n favIcon: (state) => { return state.config.favIcon; },\r\n websiteTitle: (state) => { return state.config.websiteTitle; },\r\n mapPins: (state) => { return state.config.mapPins; },\r\n enablePanoramaVideoAutoplay: (state) => { return state.config.enablePanoramaVideoAutoplay; },\r\n enableMap: (state) => { return state.config.enableMap; },\r\n primaryColor: (state) => { return state.config.primaryColor; },\r\n secondaryColor: (state) => { return state.config.secondaryColor; },\r\n enableZooming: (state) => { return state.config.enableZooming; },\r\n enablePermanentPanoramaVideoControls: (state) => { return state.config.enablePermanentPanoramaVideoControls; },\r\n enableWatermark: (state) => { return state.config.enableWatermark; },\r\n logoURL: (state) => { return state.config.logoURL; },\r\n enableCommunication: (state) => { return state.config.enableCommunication; },\r\n enableBugReport: (state) => { return state.config.enableBugReport; },\r\n isVRMode: (state) => { return state.vrMode; },\r\n isInSetup: (state) => { return state.inSetup; },\r\n getAudioDeviceId: (state) => {return state.audioDeviceId;},\r\n getVideoDeviceId: (state) => {return state.videoDeviceId;},\r\n isAudioOn: (state) => {return state.audioOn},\r\n isVideoOn: (state) => {return state.videoOn},\r\n getFramerate: (state) => {return state.framerate},\r\n getAudiobitrate: (state) => {return state.audiobitrate},\r\n isAudioProcessingDeactivated: (state) => {return state.audioProcessingDeactivated},\r\n isGyrosActive: (state) => {return state.gyrosActive},\r\n enablePreloadAllSituations: (state) => {return state.config.enablePreloadAllSituations},\r\n },\r\n mutations: {\r\n removeSituation(state, situationID){\r\n let situation = state.prefabs.find(x => x.getID() === getters.situationID);\r\n var index = state.prefabs.indexOf(situation);\r\n if (index > -1) {\r\n state.prefabs.splice(index, 1);\r\n } \r\n },\r\n setLoadingscreenVisible(state, boolean){\r\n state.loadingscreenVisible = boolean;\r\n },\r\n setEnableZooming(state, boolean){\r\n state.config.enableZooming = boolean;\r\n },\r\n overwriteStartSituationID( state, { situationID } = {} ) {\r\n if( situationID )\r\n state.overwriteStartSituationID = situationID;\r\n },\r\n setScreenSharingVisible(state, bool) {\r\n state.screenSharingVisible = bool;\r\n },\r\n setSessionID( state, id ) {\r\n state.config.sessionID = id;\r\n },\r\n setVRMode( state, mode ) {\r\n state.vrMode = mode;\r\n },\r\n setIsInSetup( state, setup ) {\r\n state.inSetup = setup;\r\n },\r\n setOpenTokTest(state, status) {\r\n state.openTokTest = status;\r\n },\r\n setOpenTokConnectivityResult(state, result) {\r\n state.openTokConnectivityResult = result;\r\n },\r\n setOpenTokQualityResult(state, result) {\r\n state.openTokQualityResult = result;\r\n },\r\n setOpenTokConnectivityError(state, error) {\r\n state.openTokConnectivityError = error;\r\n },\r\n setOpenTokQualityError(state, error) {\r\n state.openTokQualityError = error;\r\n },\r\n setAudioDeviceId(state, id) {\r\n state.audioDeviceId = id;\r\n },\r\n setFollowModeratorMode( state, mode ) {\r\n state.followModeratorMode = mode;\r\n },\r\n setSendingFollowModerator( state, mode ) {\r\n state.sendingFollowModerator = mode;\r\n },\r\n setVideoDeviceId(state, id) {\r\n state.videoDeviceId = id;\r\n },\r\n setAudioOn(state, boolean){\r\n state.audioOn = boolean;\r\n },\r\n setVideoOn(state, boolean){\r\n state.videoOn = boolean;\r\n },\r\n setFramerate(state, number){\r\n state.framerate = number;\r\n },\r\n setAudiobitrate(state, number){\r\n state.audiobitrate = number;\r\n },\r\n setAudioProcessingDeactivated(state, number){\r\n state.audioProcessingDeactivated = number;\r\n },\r\n setPrefabs (state, prefabs) {\r\n state.prefabs = prefabs;\r\n const apps = state.prefabs.filter(x => x.isOfType(Prefab.PrefabType.Application360));\r\n if (!apps.length) {\r\n console.warn(\"No App defined!\");\r\n } else {\r\n if (state.localUserID) {\r\n console.log(\"New panorama tour set, setting local user in starting situation.\");\r\n console.log(\"ID is \" + apps[0].getID() + \" start is \" + apps[0].getStartSituationID())\r\n let localUser = state.users.find(x => x.getID() === state.localUserID);\r\n if(!localUser){\r\n this.commit('updateUser', {id: state.localUserID});\r\n localUser = state.users.find(x => x.getID() === state.localUserID);\r\n }\r\n\r\n if( state.overwriteStartSituationID ) {\r\n // it might be that the overwriteStartSituationID is actually false, so we\r\n // have to make a sanity check to avoid setting the user in non existing situations\r\n const sit = state.prefabs.find( x => x.getID() == state.overwriteStartSituationID && x.isOfType(Prefab.PrefabType.Situation))\r\n if( sit )\r\n localUser.setCurrentSituationID(state.overwriteStartSituationID);\r\n else {\r\n console.log(\"Overwrite situation ID is \" + state.overwriteStartSituationID + \" but this situation is not in the tour, using predefined startID \" + apps[0].getStartSituationID());\r\n localUser.setCurrentSituationID(apps[0].getStartSituationID()); \r\n }\r\n }\r\n else\r\n localUser.setCurrentSituationID(apps[0].getStartSituationID()); \r\n }\r\n }\r\n },\r\n setCurrentSituation (state, situation) {\r\n //console.log(\"Setting current situation to \" + situation )\r\n const user = state.users.find(x => x.getID() === state.localUserID);\r\n const currentSituationID = situation ? situation.id : undefined;\r\n //console.log(\"Situation ID is \" + currentSituationID );\r\n //state.currentSituationID = currentSituationID;\r\n if (user) {\r\n user.setCurrentSituationID(currentSituationID);\r\n }\r\n },\r\n setLocalUser (state, user) {\r\n if (user) {\r\n state.users.push(user);\r\n state.localUserID = user.getID();\r\n }\r\n },\r\n setLocalUserID (state, id) {\r\n state.localUserID = id;\r\n },\r\n addUser (state, user) {\r\n console.info(`Flux360Store::addUser: ${JSON.stringify(user)}`);\r\n state.users.push(user);\r\n // If a new user is updated, broadcast our own data to welcome him!\r\n if( user.getID() !== this.localUserID ) {\r\n console.log(\"### Welcoming new user...\");\r\n let localUser = state.users.find(x => x.getID() === state.localUserID);\r\n if( localUser ) {\r\n localUser.setShouldSync(true);\r\n }\r\n }\r\n },\r\n pauseSound(state, file){\r\n console.info(\"Pausing Sound \" + file);\r\n\r\n },\r\n removeUser(state, id) {\r\n const user = state.users.find(u => u.id === id);\r\n if (user) {\r\n state.users.splice(state.users.indexOf(user), 1);\r\n }\r\n },\r\n updateRuntimeState(state, data={}){\r\n const {\r\n id,\r\n paused,\r\n muted,\r\n playing, \r\n duration, \r\n currentTime,\r\n volume,\r\n percentageLoaded\r\n } = data;\r\n //console.log(\"updateRuntimeState: \" + JSON.stringify(data));\r\n let prefab = state.prefabs.find(x => (x.getID() === id));\r\n if(prefab){\r\n if(\"paused\" in data) prefab.runtimeState.paused = paused;\r\n if(\"muted\" in data) prefab.runtimeState.muted = muted;\r\n if(\"playing\" in data) prefab.runtimeState.playing = playing;\r\n if(\"duration\" in data) prefab.runtimeState.duration = duration;\r\n if(\"currentTime\" in data) Vue.set(prefab.runtimeState, \"currentTime\", currentTime);\r\n if(\"volume\" in data) Vue.set(prefab.runtimeState, \"volume\", volume);\r\n if(\"percentageLoaded\" in data) Vue.set(prefab.runtimeState, \"percentageLoaded\", percentageLoaded);\r\n }\r\n },\r\n\r\n updateUser (state, data = {}) {\r\n //console.info(`Flux360Store::updateUser: ${JSON.stringify(data)}`);\r\n //console.info(`Flux360Store::currentUsers: ${JSON.stringify(state.users)}`);\r\n const {\r\n id,\r\n position,\r\n rotation,\r\n gazePosition,\r\n cursorPosition,\r\n name,\r\n color,\r\n role,\r\n acronym,\r\n userIcon,\r\n cmsID,\r\n isCMSUser,\r\n currentSituationID,\r\n onlineStatus\r\n } = data;\r\n let user = state.users.find(x => (x.getID() === id));\r\n if (!user) {\r\n user = new User(data);\r\n this.commit('addUser', user);\r\n }\r\n if (\"position\" in data) user.setPosition(position);\r\n if (\"rotation\" in data) user.setRotation(rotation);\r\n if (\"gazePosition\" in data) user.setGazePosition(gazePosition);\r\n if (\"cursorPosition\" in data) user.setCursorPosition(cursorPosition);\r\n if (\"name\" in data) user.setName(name);\r\n if (\"color\" in data) user.setColor(color);\r\n if (\"acronym\" in data) user.setAcronym(acronym);\r\n if (\"userIcon\" in data) user.setUserIcon(userIcon);\r\n if (\"role\" in data) user.setRole(role);\r\n if (\"cmsID\" in data) user.setCMSID(cmsID);\r\n if (\"isCMSUser\" in data) user.setIsCMSUser(isCMSUser);\r\n if (\"currentSituationID\" in data) user.setCurrentSituationID(currentSituationID);\r\n\r\n // Getters like 'usersInCurrentSituation' will not trigger because\r\n // the collection itself has not changed. Therefore the panorama scene\r\n // will not be updated with this information. To avoid this, we need to\r\n // trigger an event that changes the collection.\r\n \r\n // Why?\r\n // state.users.push(state.users.pop());\r\n\r\n // Finally update userData (session store)\r\n if (id === state.localUserID) {\r\n this.commit('updateUserData', user);\r\n if( name || acronym || color || role || currentSituationID ) {\r\n user.setShouldSync();\r\n }\r\n } else {\r\n if(onlineStatus===\"streamCreated\") {\r\n console.log(\"#### Stream created\");\r\n let localUser = state.users.find(x => (x.getID() === state.localUserID));\r\n localUser.setShouldSync(true);\r\n }\r\n }\r\n },\r\n clearMediaManager (state) {\r\n state.media.MediaManager.clear();\r\n },\r\n addMedia (state, media) {\r\n state.media.addMedia(media);\r\n },\r\n handleGotoSituationTransition (state, {situationID, rotation, comesFromModerator = false} = {}) {\r\n if(!state.followModeratorMode || comesFromModerator){\r\n const user = state.users.find(x => x.getID() === state.localUserID);\r\n if (user) {\r\n if (!(rotation === \"undefined\" || rotation === undefined)){\r\n console.log(\"handleGotoSituationTransition -- setting Rotation: \" + JSON.stringify(rotation));\r\n user.setRotation(rotation);\r\n } else\r\n console.log(\"handleGotoSituationTransition -- no rotation update requested\");\r\n user.setCurrentSituationID(situationID);\r\n }\r\n }\r\n },\r\n postEvent (state, event) {\r\n console.info(`Flux360Store::postEvent: ${JSON.stringify(event)}`);\r\n // Check if it is a string...\r\n let e = event;\r\n if( typeof e === \"string\" ) {\r\n e = JSON.parse(event);\r\n console.log(\"Converted Event to JSON from String: \" + JSON.stringify(e));\r\n }\r\n if( !e.getType ) {\r\n e = EventBuilderInstance.createFromJSON(e);\r\n console.log(\"Converted Event to Eventclass from JSON: \" + JSON.stringify(e));\r\n }\r\n state.events.push(e);\r\n if( e.userID === state.localUserID ) {\r\n // If this is a local user event, let the others now\r\n this.dispatch('broadcastPostEvent', e );\r\n }\r\n },\r\n removeEventByID(state, { id } ) {\r\n const event = state.events.find(u => u.getID() === id);\r\n if (event) {\r\n state.events.splice(state.events.indexOf(event), 1);\r\n }\r\n },\r\n activateGyros(state, value){\r\n state.gyrosActive = value;\r\n },\r\n doRendering(state, value){\r\n state.doRendering = value;\r\n },\r\n setDialogueOpen(state,value){\r\n state.isDialogueOpen = value;\r\n },\r\n ///***********************************************************************************/\r\n /// Command Handling\r\n ///***********************************************************************************/ \r\n postCommand(state, command){\r\n console.info(`Flux360Store::postCommand: ${JSON.stringify(command)}`);\r\n // Check if it is a string...\r\n let c = command;\r\n console.log(typeof c);\r\n if( typeof c === \"string\" ) {\r\n c = JSON.parse(command);\r\n //console.log(\"Converted Command to JSON from String: \" + JSON.stringify(c));\r\n }\r\n if( !c.getType ) {\r\n c = CommandBuilderInstance.createFromJSON(c);\r\n //console.log(\"Converted Command to CommandClass from JSON: \" + JSON.stringify(c));\r\n }\r\n state.commands.push(c);\r\n }\r\n },\r\n actions: {\r\n ///***********************************************************************************/\r\n /// Moderator Commands\r\n ///***********************************************************************************/ \r\n sendCommand(context,{type,data}){\r\n window.dispatchEvent(new CustomEvent(\"sendCommand\",{detail:{\r\n type: type, \r\n data: data, \r\n sourceUserID: context.state.localUserID, \r\n }}));\r\n },\r\n deleteMessage(context, messageToDelete) {\r\n // This function is only allowed if the moderator is calling...\r\n //if( context.getters.localUser && context.getters.localUser.getRole() === \"moderator\" ) {\r\n console.log(\"Local moderator calls all users to delete a message.\");\r\n\r\n let localUser = context.getters.localUser;\r\n\r\n let command = new DeleteMessage(\r\n {\r\n sourceUserID: localUser.getID(),\r\n message: messageToDelete,\r\n type: 'deleteMessage'\r\n });\r\n\r\n //console.log(\"Broadcasting \" + JSON.stringify(command));\r\n this.dispatch('broadcastCommand', command);\r\n\r\n //} else {\r\n // console.log(\"Normal users cannot call all users to delete a message.\");\r\n //}\r\n },\r\n\r\n ///***********************************************************************************/\r\n /// User Creation\r\n ///***********************************************************************************/ \r\n createLocalUser (context) {\r\n const u = new User({name: \"Hiro Protagonist\", acronym: \"HP\"});\r\n context.commit('addUser', u);\r\n const id = u.getID();\r\n context.commit('setLocalUserID', id);\r\n if (context.getters.panoramaTour) {\r\n var currentSituationID = context.getters.panoramaTour.getStartSituationID();\r\n if( context.state.overwriteStartSituationID )\r\n currentSituationID = context.state.overwriteStartSituationID;\r\n context.commit('updateUser', {id, currentSituationID});\r\n }\r\n // Update session store\r\n context.commit('updateUserData', u);\r\n },\r\n addTestUser( context ) {\r\n const u = new User();\r\n\t\t\tif( context.getters.localUser ) {\r\n let localUser = context.getters.localUser;\r\n u.setPosition( localUser.getPosition() );\r\n u.setGazePosition( localUser.getGazePosition() );\r\n u.setCursorPosition( localUser.getCursorPosition() );\r\n u.setRotation( localUser.getRotation() );\r\n u.setCurrentSituationID( localUser.getCurrentSituationID() );\r\n\t\t\t\tu.setName(\"User\"+Math.floor(Math.random() * 100));\r\n \t\t\tlet r = 0;\r\n\t\t\t\tlet g = 0;\r\n\t\t\t\tlet b = 0;\r\n\t\t\t\twhile((r+g+b == 0 || r+g+b < 300)){\r\n\t\t\t\t\tr = Math.floor(Math.random()*255).toString(16);\r\n\t\t\t\t\tg = Math.floor(Math.random()*255).toString(16);\r\n\t\t\t\t\tb = Math.floor(Math.random()*255).toString(16);\r\n\t\t\t\t}\r\n\t\t\t\tif(r.length == 1) r = (\"0\"+r).toString(16);\r\n\t\t\t\tif(g.length == 1) g = (\"0\"+g).toString(16);\r\n\t\t\t\tif(b.length == 1) b = (\"0\"+b).toString(16);\r\n\t\t\t\tu.setColor(\"#\"+r+g+b);\r\n \t\t\tconsole.log(\"Adding user with position and rotation: \" + JSON.stringify(u.getPosition()) + \" / \" + JSON.stringify(u.getRotation()) );\r\n \t\t\tconsole.log(\"And color \" + u.getColor() );\r\n \t\t}\r\n \t\tcontext.commit('addUser', u );\r\n },\r\n\r\n ///***********************************************************************************/\r\n /// Startup and Loading Functions\r\n ///***********************************************************************************/ \r\n async loadLocalConfiguration ( context ) {\r\n console.log(\"FluxCMS::loadingLocalConfiguration\");\r\n return axios.get(\"./flux_config.json\").then((response) => {\r\n const config = response.data;\r\n Object.assign( context.state.config, config );\r\n }).catch(function (error) {\r\n // handle error\r\n console.log(error);\r\n });\r\n },\r\n // Loads a Flux360 panorama tour from ZIP\r\n async loadPanoramaTour (context, {zip, preview}) {\r\n console.log(\"Loading panorama tour with ID \" + zip)\r\n const fluxCMS = new FluxCMS();\r\n let prefabs = [];\r\n let name = \"unknown\";\r\n let packageName = \"unknown\";\r\n let description = \"unknown\";\r\n\r\n // Online Tour\r\n // Load the ZIP file\r\n console.log(\"FluxCMS::loading...\");\r\n let contents;\r\n\r\n // // Online Tour\r\n // const zipFile = await fluxCMS.getZIP(zip, preview);\r\n // console.log(zipFile);\r\n // const filenames = Object.keys(zipFile.files).sort();\r\n // contents = await Promise.all(filenames.map(fileName => zipFile.file(fileName).async(\"string\")));\r\n\r\n // Offline Tour\r\n // \"rename *.rcfg *.json\"),\" in cmd to rename all files into .json\"),\r\n // \"dir /s /b /o:gn\" in cmd to list all files in directory\r\n contents = [\r\n require(\"@/assets/441114/441114.json\"),\r\n require(\"@/assets/441114/application.json\"),\r\n require(\"@/assets/441114/Button, der einen Weblink _ffnet_446558_prefab.json\"),\r\n require(\"@/assets/441114/Button, der einen Weblink _ffnet_446885_prefab.json\"),\r\n require(\"@/assets/441114/Button, der einen Weblink _ffnet_446895_prefab.json\"),\r\n require(\"@/assets/441114/Button, der einen Weblink _ffnet_446985_prefab.json\"),\r\n require(\"@/assets/441114/Button, der einen Weblink _ffnet_447017_prefab.json\"),\r\n require(\"@/assets/441114/Button, der einen Weblink _ffnet_447029_prefab.json\"),\r\n require(\"@/assets/441114/Button, der einen Weblink _ffnet_447054_prefab.json\"),\r\n require(\"@/assets/441114/Button, der einen Weblink _ffnet_447068_prefab.json\"),\r\n require(\"@/assets/441114/Button, der einen Weblink _ffnet_447083_prefab.json\"),\r\n require(\"@/assets/441114/Button, der einen Weblink _ffnet_447093_prefab.json\"),\r\n require(\"@/assets/441114/Button, der einen Weblink _ffnet_447315_prefab.json\"),\r\n require(\"@/assets/441114/Button, der einen Weblink _ffnet_447324_prefab.json\"),\r\n require(\"@/assets/441114/Button, der einen Weblink _ffnet_476302_prefab.json\"),\r\n require(\"@/assets/441114/Button, der einen Weblink _ffnet_492210_prefab.json\"),\r\n require(\"@/assets/441114/Button, der einen Weblink _ffnet_492224_prefab.json\"),\r\n require(\"@/assets/441114/Button, der einen Weblink _ffnet_492235_prefab.json\"),\r\n require(\"@/assets/441114/Button, der einen Weblink _ffnet_492252_prefab.json\"),\r\n require(\"@/assets/441114/Button, der einen Weblink _ffnet_492267_prefab.json\"),\r\n require(\"@/assets/441114/Button, der einen Weblink _ffnet_492286_prefab.json\"),\r\n require(\"@/assets/441114/Button, der einen Weblink _ffnet_492335_prefab.json\"),\r\n require(\"@/assets/441114/Button, der einen Weblink _ffnet_492401_prefab.json\"),\r\n require(\"@/assets/441114/Button, der einen Weblink _ffnet_492422_prefab.json\"),\r\n require(\"@/assets/441114/Button, der einen Weblink _ffnet_492439_prefab.json\"),\r\n require(\"@/assets/441114/Button, der einen Weblink _ffnet_492453_prefab.json\"),\r\n require(\"@/assets/441114/Button, der einen Weblink _ffnet_506201_prefab.json\"),\r\n require(\"@/assets/441114/Button, der einen Weblink _ffnet_506215_prefab.json\"),\r\n require(\"@/assets/441114/Button, der einen Weblink _ffnet_506228_prefab.json\"),\r\n require(\"@/assets/441114/Button, der einen Weblink _ffnet_506237_prefab.json\"),\r\n require(\"@/assets/441114/Button, der einen Weblink _ffnet_506246_prefab.json\"),\r\n require(\"@/assets/441114/primitive_content_444642_IMAGE.json\"),\r\n require(\"@/assets/441114/primitive_content_444654_IMAGE.json\"),\r\n require(\"@/assets/441114/primitive_content_446560_IMAGE.json\"),\r\n require(\"@/assets/441114/primitive_content_446887_IMAGE.json\"),\r\n require(\"@/assets/441114/primitive_content_446897_IMAGE.json\"),\r\n require(\"@/assets/441114/primitive_content_446987_IMAGE.json\"),\r\n require(\"@/assets/441114/primitive_content_447019_IMAGE.json\"),\r\n require(\"@/assets/441114/primitive_content_447031_IMAGE.json\"),\r\n require(\"@/assets/441114/primitive_content_447056_IMAGE.json\"),\r\n require(\"@/assets/441114/primitive_content_447070_IMAGE.json\"),\r\n require(\"@/assets/441114/primitive_content_447085_IMAGE.json\"),\r\n require(\"@/assets/441114/primitive_content_447095_IMAGE.json\"),\r\n require(\"@/assets/441114/primitive_content_447317_IMAGE.json\"),\r\n require(\"@/assets/441114/primitive_content_447326_IMAGE.json\"),\r\n require(\"@/assets/441114/primitive_content_450115_VIDEO.json\"),\r\n require(\"@/assets/441114/primitive_content_476304_IMAGE.json\"),\r\n require(\"@/assets/441114/primitive_content_485362_IMAGE.json\"),\r\n require(\"@/assets/441114/primitive_content_492212_IMAGE.json\"),\r\n require(\"@/assets/441114/primitive_content_492226_IMAGE.json\"),\r\n require(\"@/assets/441114/primitive_content_492237_IMAGE.json\"),\r\n require(\"@/assets/441114/primitive_content_492254_IMAGE.json\"),\r\n require(\"@/assets/441114/primitive_content_492269_IMAGE.json\"),\r\n require(\"@/assets/441114/primitive_content_492288_IMAGE.json\"),\r\n require(\"@/assets/441114/primitive_content_492337_IMAGE.json\"),\r\n require(\"@/assets/441114/primitive_content_492403_IMAGE.json\"),\r\n require(\"@/assets/441114/primitive_content_492424_IMAGE.json\"),\r\n require(\"@/assets/441114/primitive_content_492441_IMAGE.json\"),\r\n require(\"@/assets/441114/primitive_content_492455_IMAGE.json\"),\r\n require(\"@/assets/441114/primitive_content_495130_IMAGE.json\"),\r\n require(\"@/assets/441114/primitive_content_495138_IMAGE.json\"),\r\n require(\"@/assets/441114/primitive_content_495146_IMAGE.json\"),\r\n require(\"@/assets/441114/primitive_content_495161_IMAGE.json\"),\r\n require(\"@/assets/441114/primitive_content_506203_IMAGE.json\"),\r\n require(\"@/assets/441114/primitive_content_506217_IMAGE.json\"),\r\n require(\"@/assets/441114/primitive_content_506230_IMAGE.json\"),\r\n require(\"@/assets/441114/primitive_content_506239_IMAGE.json\"),\r\n require(\"@/assets/441114/primitive_content_506248_IMAGE.json\"),\r\n require(\"@/assets/441114/room_442800.json\"),\r\n require(\"@/assets/441114/room_442800_IMAGE_360.json\"),\r\n require(\"@/assets/441114/room_442804.json\"),\r\n require(\"@/assets/441114/room_442804_IMAGE_360.json\"),\r\n require(\"@/assets/441114/room_476344.json\"),\r\n require(\"@/assets/441114/room_476344_IMAGE_360.json\"),\r\n require(\"@/assets/441114/RoomContentImage_495128_prefab.json\"),\r\n require(\"@/assets/441114/RoomContentImage_495144_prefab.json\"),\r\n require(\"@/assets/441114/RoomContentImage_495159_prefab.json\"),\r\n require(\"@/assets/441114/RoomContentJumper_444638_prefab.json\"),\r\n require(\"@/assets/441114/RoomContentJumper_444650_prefab.json\"),\r\n require(\"@/assets/441114/RoomContentJumper_485358_prefab.json\"),\r\n require(\"@/assets/441114/RoomContentJumper_495134_prefab.json\"),\r\n require(\"@/assets/441114/RoomContentVideo_450113_prefab.json\"),\r\n require(\"@/assets/441114/RoomContentVideoList_448677_prefab.json\"),\r\n require(\"@/assets/441114/RoomContentVideoList_485347_prefab.json\")\r\n ]\r\n\r\n for (let content of contents) {\r\n const json = content; // Offline\r\n // const json = JSON.parse(content); // Online\r\n\r\n if (json.idName) {\r\n // console.log(\"##########################################\")\r\n // console.log(\"ID: \" + json.idName );\r\n // console.log(\"Type: \" + json.type);\r\n // console.log(\"Content: \" + content);\r\n if (json.type === 30000) {\r\n const prefab = PrefabBuilderInstance.createFromJSON(json);\r\n if (prefab)\r\n prefabs.push(prefab);\r\n } else {\r\n const media = MediaManager.createFromJSON(json);\r\n if (media)\r\n MediaManager.addMedia(media);\r\n }\r\n } else {\r\n if (json.package_name) {\r\n //console.log(\"FluxCMS::Parsing application package\");\r\n packageName = json.package_name;\r\n name = json.package_display_name;\r\n description = json.package_description;\r\n //panoramaTour.setContentFileIDs( json.contentFileIds );\r\n //console.log(content);\r\n } else {\r\n console.log(\"FluxCMS::Unknown content\");\r\n console.log(content);\r\n }\r\n }\r\n }\r\n // See if we have an app\r\n // to patch missing information into it\r\n const apps = prefabs.filter(x => x.isOfType(Prefab.PrefabType.Application360));\r\n if (apps.length === 1) {\r\n apps[0].setName(name);\r\n apps[0].setDescription(description);\r\n apps[0].setPackageName(packageName);\r\n }\r\n prefabs = prefabs.map(x => {\r\n //console.log(\"Checking \" + x.getType())\r\n if (x.isOfType(Prefab.PrefabType.ContentPrefab)) {\r\n //console.log(\"### Converting \"+ x.getPosition().x + \" / \" + x.getPosition().y + \" / \" + x.getPosition().z )\r\n x.setPosition(context.state.converter.convertPositionFromCMS(x.getPosition()));\r\n //console.log(\"### Converted to \"+ x.getPosition() )\r\n x.setRotation(context.state.converter.convertRotationFromCMS(x.getRotation()));\r\n }\r\n return x;\r\n });\r\n prefabs = prefabs.map(x => {\r\n if (x.isOfType(Prefab.PrefabType.Transition)) {\r\n if (x.getImageID() === undefined)\r\n x.setImageID(MediaManager.defaultTransitionTextureID);\r\n x.setTargetRotation(context.state.converter.convertRotationFromCMS(x.getTargetRotation()));\r\n }\r\n return x;\r\n });\r\n await MediaManager.resolveContent(fluxCMS);\r\n context.commit('setPrefabs', prefabs);\r\n\r\n // Let session store know.\r\n const tourId = context.getters.panoramaTour.id;\r\n // Here we are setting the ID to use for the video-conferencing session...\r\n if( context.state.config.sessionID ) {\r\n console.log(\"Session ID has been set by config to \" + context.state.config.panoramaTourZIP + \"_\" + context.state.config.sessionID);\r\n await this.dispatch('setupDefaultChatRooms', context.state.config.panoramaTourZIP + \"_\" + context.state.config.sessionID);\r\n } else {\r\n console.log(\"Session ID is set to the tour ID \" + tourId);\r\n await this.dispatch('setupDefaultChatRooms', tourId);\r\n }\r\n \r\n }\r\n }\r\n};\r\n\r\nexport default Flux360Store;\r\n","import {Audio, Video, Texture ,Model3D} from '@/store/flux360/MediaManagerDataTypes';\r\nimport store from '../store/flux360/Flux360Store'\r\n\r\n\r\nclass MediaManager \r\n{\r\n get defaultTransitionTextureID() { return -1; }\r\n \r\n constructor() {\r\n this.media = [];\r\n this.supportedMediaTypes = new Map();\r\n this.oCanvas = document.createElement('canvas');\r\n this.oCanvas.height = 83;\r\n this.oCanvas.width = 83; \r\n }\r\n\r\n clear() {\r\n this.media = [];\r\n }\r\n\r\n registerMediaType( media ) {\r\n if( media.getType ) {\r\n this.supportedMediaTypes.set( media.getType(), media );\r\n }\r\n }\r\n\r\n hasMedia( id ) { return this.media.find( x => x.getID() === id ) != undefined; }\r\n getMedia( id ) { return this.media.find( x => x.getID() === id ); }\r\n addMedia( media ) {\r\n this.media.push( media );\r\n return this;\r\n }\r\n\r\n hasMediaWithType( id, type ) { return this.hasMedia( id ) && this.getMedia( id ).hasType( type ); }\r\n\r\n // Go through the content and resolve the content\r\n // using the CMS...\r\n resolveContent( fluxCMS, contentIDs = undefined ) {\r\n console.log(\"MediaManager::resolveContent\");\r\n // Iterate through all media...\r\n var retrievals = [];\r\n\r\n var updateURL = (media) => { \r\n if(contentIDs)\r\n if( !contentIDs.includes( media.getContentID() ) )\r\n return;\r\n \r\n // Download all Media:\r\n // window.open(fluxCMS.getRawContentFileURL( media.getContentID() ), '_blank').focus();\r\n \r\n // Online Tour\r\n // if(!media.getURL()){\r\n // if( !media.getRequiresDirectURL() ) {\r\n // media.setURL( fluxCMS.getRawContentFileURL( media.getContentID() ) );\r\n // } else {\r\n // retrievals.push(fluxCMS.getRawContentFileURLURL( media.getContentID() )\r\n // .then( url => media.setURL( url ))\r\n // .catch( () => media.setURL( fluxCMS.getRawContentFileURL( media.getContentID() ) ))\r\n // )\r\n // }\r\n // }\r\n\r\n // Offline Tour\r\n if(!media.getURL()){\r\n let url = `./media/Marabu/data/${media.getFileName()}`;\r\n media.setURL(url);\r\n }\r\n }\r\n\r\n this.media.forEach( updateURL );\r\n return Promise.all(retrievals).then( () => console.log(\"All direct URLS resolved\") );\r\n }\r\n\r\n summary() {\r\n return `\r\n MediaManager\r\n ::::::::::::\r\n Medien: ${this.media.size}\r\n `;\r\n }\r\n\r\n toJSON() {\r\n return {\r\n media: this.media.map( x => x.toJSON() ),\r\n }\r\n }\r\n\r\n createFromJSON( json ) {\r\n if( json && json.type || json.type == 0) {\r\n if( this.supportedMediaTypes.has( json.type ) ) \r\n return this.supportedMediaTypes.get( json.type ).createFromJSON( json );\r\n } else {\r\n // Unknown datatype...\r\n console.error(\"Trying to parse unknown filetype: \" + json.type + \" in \" + json);\r\n }\r\n }\r\n\r\n getUserAvatar( user ){\r\n console.log(\"MediaManager getUserAvatar!! \" + user.getColor() + \" \" + user.getAcronym());\r\n var context = this.oCanvas.getContext(\"2d\");\r\n let color = \"\" + user.getColor();\r\n color = color.replace(\"0x\", \"#\");\r\n context.fillStyle = color;\r\n context.fillRect(0, 0, 83, 83);\r\n context.fillStyle= \"white\";\r\n context.font = '40px roboto, sans-serif';\r\n context.textAlign = 'center'; \r\n context.fillText(user.getAcronym(), 41 ,57, 76);\r\n \r\n // no argument defaults to image/png; image/jpeg, etc also work on some\r\n // implementations -- image/png is the only one that must be supported per spec.\r\n let url = this.oCanvas.toDataURL(\"image/png\");\r\n\r\n //only set value if it is valid\r\n if( user.getAcronym()!= undefined && user.getColor()!= undefined){\r\n user.setUserIcon(url);\r\n }\r\n return url;\r\n }\r\n}\r\n\r\nconst instance = new MediaManager();\r\nObject.freeze(instance);\r\n\r\ninstance.registerMediaType( new Audio() );\r\ninstance.registerMediaType( new Video() );\r\ninstance.registerMediaType( new Texture() );\r\ninstance.registerMediaType( new Model3D() );\r\n\r\nexport default instance;\r\n","import * as BABYLON from 'babylonjs';\r\nimport BasicComponent from './BasicComponent';\r\nimport MediaManager from '@/api/MediaManager';\r\nimport { RuntimeState } from \"@/store/flux360/PrefabDataTypes\";\r\n\r\nclass Audio extends BasicComponent {\r\n getType() { return \"Audio\"; }\r\n\r\n constructor( { id } = {} ) {\r\n super( { id });\r\n this.prefab = undefined,\r\n this.context = undefined,\r\n this.audio = undefined,\r\n this.volume = undefined\r\n }\r\n\r\n construct( context, prefab ) {\r\n this.context = context;\r\n const base = super.construct( context, prefab ).getRootNode();\r\n\r\n console.log(\"Getting Audio for \" + prefab.getAudioID() );\r\n var audioFile = MediaManager.getMedia(prefab.getAudioID());\r\n console.log(\"audioFile.fileName: \" + audioFile.fileName + \"url: \" + audioFile.getURL());\r\n \r\n var name = \"Audio_\"+audioFile.getID();\r\n\r\n var myVolume = parseFloat(prefab.getVolumeScale()) / 100;\r\n \r\n // var myAudio = new BABYLON.Sound(name, audioFile.getURL(), window.scene, prefab.getAutoplay()? function() {if(myAudio.isInCurrentRoom)\r\n // Sound has been downloaded & decoded\r\n // myAudio.play();} :null, {\r\n var myAudio = new BABYLON.Sound(name, audioFile.getURL(), window.scene, prefab.getAutoplay()? function() {myAudio.play();} :null, {\r\n loop: prefab.getLooping(),\r\n autoplay: false,\r\n volume: myVolume,\r\n skipCodecCheck: true \r\n });\r\n myAudio.play_on_entering = true; //prefab.getAutoplay();\r\n \r\n this.audio = myAudio;\r\n this.prefab = prefab;\r\n myAudio.parent = base;\r\n return base;\r\n }\r\n\r\n getLength(){\r\n return this.audio.getAudioBuffer().duration;\r\n }\r\n \r\n pause(){\r\n console.log(\"Audio - pause\");\r\n super.pause(); \r\n this.audio.pause();\r\n this.prefab.runtimeState.pauseType=RuntimeState.PauseType.Explicit;\r\n }\r\n\r\n play(){\r\n console.log(\"Audio - play\");\r\n super.play();\r\n if(!this.audio.isPlaying){\r\n this.audio.play();\r\n }\r\n this.prefab.runtimeState.duration = this.audio.getAudioBuffer().duration;\r\n this.prefab.runtimeState.pauseType=RuntimeState.PauseType.Implicit;\r\n }\r\n\r\n reset(){\r\n super.reset();\r\n console.log(\"Audio - reset\");\r\n //this.audio.updateOptions({offset:0.0});\r\n }\r\n\r\n mute(){\r\n super.mute();\r\n console.log(\"Audio -Mute\");\r\n \r\n this.volume = this.audio.getVolume();\r\n console.log(\"Volume was: \" + this.volume);\r\n this.audio.setVolume(0);\r\n }\r\n\r\n unmute(){\r\n super.unmute();\r\n console.log(\"Audio - UnMute\");\r\n if(this.volume){\r\n this.audio.setVolume(this.volume);\r\n }\r\n else\r\n this.audio.setVolume(1);\r\n }\r\n\r\n jumpToTimePosition(timeToJumpTo){\r\n super.jumpToTimePosition(timeToJumpTo); \r\n this.audio.getAudioBuffer().currentTime = timeToJumpTo;\r\n }\r\n\r\n disable(){\r\n super.disable();\r\n this.audio.pause();\r\n }\r\n\r\n enable(){ \r\n super.enable();\r\n console.log(\"Audio - Enable\"); \r\n if(this.prefab && this.prefab.runtimeState && this.prefab.runtimeState.pauseType!=RuntimeState.PauseType.Explicit){\r\n this.audio.play();\r\n }\r\n //if(this.audio.play_on_entering === true){\r\n // this.audio.play();\r\n //}\r\n }\r\n\r\n update () {\r\n if( (this.audio.isPaused() != this.prefab.runtimeState.paused) || \r\n (this.audio.getVolume()===0 != this.prefab.runtimeState.muted) ||\r\n (this.audio.isPlaying() != this.prefab.runtimeStae.playing) ||\r\n (this.audio.getAudioBuffer().duration != this.prefab.runtimeStae.duration) ){\r\n window.scene.$store.commit('updateRuntimeState',{id:this.prefab.getID(), paused:this.audio.isPaused(), \r\n playing:this.prefab.runtimeStae.playing, muted:(this.audio.getVolume()===0), duration:this.audio.getAudioBuffer().duration}); \r\n }\r\n }\r\n}\r\n\r\nexport default Audio;\r\n","import * as BABYLON from 'babylonjs';\r\nimport BasicComponent from './BasicComponent';\r\nimport MediaManager from '@/api/MediaManager';\r\n\r\nclass VisualComponent extends BasicComponent {\r\n getType() { return \"VisualComponent\"; }\r\n\r\n constructor( { id } = {} ) {\r\n super( { id });\r\n\r\n this.material = null;\r\n this.texture = null;\r\n this.mesh = null;\r\n this.scene = null;\r\n this.scaleFactor = 1;\r\n }\r\n\r\n setScaleFactor( value ){\r\n this.scaleFactor = value;\r\n }\r\n\r\n construct( context, prefab ) {\r\n const base = super.construct( context, prefab ).getRootNode();\r\n\r\n this.scene = window.scene;\r\n \r\n if(!prefab.getIconID())\r\n return undefined;\r\n \r\n this.texture = MediaManager.getMedia(prefab.getIconID());\r\n const name = \"VisualComponentImage_\"+prefab.getIconID();\r\n\r\n this.mesh = BABYLON.MeshBuilder.CreatePlane(name, { \r\n width: this.texture.getWidth() * prefab.getScale() * this.scaleFactor, \r\n height: this.texture.getHeight() * prefab.getScale() *this.scaleFactor,\r\n sideOrientation: BABYLON.Mesh.DOUBLESIDE \r\n }, window.scene);\r\n this.mesh.parent = base;\r\n\r\n this.material = new BABYLON.StandardMaterial(name + \"_material\", this.scene);\r\n this.material.emissiveTexture = this.texture.getTexture();\r\n this.material.emissiveTexture.uScale = -1;\r\n this.material.emissiveTexture.vScale = -1;\r\n this.material.disableLighting = true; \r\n this.material.opacityTexture = this.texture.getTexture();\r\n this.material.opacityTexture.uScale = -1;\r\n this.material.opacityTexture.vScale = -1;\r\n this.material.emissiveTexture.hasAlpha = true;\r\n this.mesh.material = this.material;\r\n\r\n base.position = prefab.getPosition().multiplyByFloats(0.95,0.95,0.95);\r\n\r\n if((prefab.getRotationX() && prefab.getRotationX() != 0) || (prefab.getRotationY() && prefab.getRotationY() != 0) || (prefab.getRotationZ() && prefab.getRotationZ() != 0)){\r\n base.rotation = new BABYLON.Vector3(prefab.getRotationX()* Math.PI / 180, prefab.getRotationY()* Math.PI / 180, prefab.getRotationZ()* Math.PI / 180);\r\n }else{\r\n base.lookAt(new BABYLON.Vector3(0,0,0));\r\n }\r\n \r\n return base;\r\n }\r\n}\r\n\r\nexport default VisualComponent;\r\n\r\n","//import * as BABYLON from 'babylonjs';\r\nimport VisualComponent from './VisualComponent';\r\n//import MediaManager from '@/api/MediaManager';\r\n\r\nclass Image extends VisualComponent {\r\n getType() { return \"Image\"; }\r\n\r\n constructor( { id } = {} ) {\r\n super( { id });\r\n }\r\n\r\n construct( context, prefab ) {\r\n const base = super.construct( context, prefab );\r\n\r\n //console.log(\"Image construct...\");\r\n return base;\r\n }\r\n \r\n\r\n}\r\n\r\nexport default Image;\r\n\r\n","import * as BABYLON from 'babylonjs';\r\nimport BasicComponent from './BasicComponent';\r\nimport MediaManager from '@/api/MediaManager';\r\n\r\nclass ImageSphere extends BasicComponent {\r\n getType() { return \"Image\"; }\r\n\r\n constructor( { id } = {} ) {\r\n super( { id });\r\n }\r\n\r\n construct( context, prefab ) {\r\n const base = super.construct( context, prefab ).getRootNode();\r\n\r\n const panoramaPhoto = MediaManager.getMedia(prefab.getSphereImageID());\r\n\r\n const name = \"SituationImage_\"+ prefab.getSphereImageID();\r\n const photoDome = new BABYLON.PhotoDome(name, \"\",{ \r\n resolution:32,\r\n faceForward: false,\r\n size: 600 \r\n }, window.scene);\r\n\r\n photoDome.photoTexture = panoramaPhoto.getTexture(); \r\n\r\n photoDome.parent = base;\r\n return base;\r\n }\r\n}\r\n\r\nexport default ImageSphere;\r\n\r\n","import * as BABYLON from 'babylonjs';\r\n\r\nclass MaterialManager\r\n{\r\n constructor() {\r\n this.materials = new Map();\r\n this.scene = undefined;\r\n this.time = 0;\r\n }\r\n\r\n initialize( scene ) {\r\n this.scene = scene;\r\n this.registerMaterial( \"info\", this.createInfo2Material());\r\n }\r\n\r\n update() {\r\n this.materials.get(\"info\").setFloat(\"time\", this.time);\r\n this.time += 0.02;\r\n }\r\n\r\n registerMaterial( name, material ) {\r\n this.materials.set( name, material );\r\n }\r\n\r\n get( name ) {\r\n if( this.materials.has( name )){\r\n return this.materials.get( name );\r\n }\r\n return undefined;\r\n }\r\n \r\n createInfoMaterial() {\r\n BABYLON.Effect.ShadersStore[\"infoVertexShader\"]=\r\n \"precision highp float;\\r\\n\"+\r\n \"precision highp int;\\r\\n\"+\r\n\r\n \"uniform mat4 worldViewProjection;\\r\\n\"+\r\n\r\n \"attribute vec3 position;\\r\\n\"+\r\n \"attribute vec2 uv;\\r\\n\"+\r\n\r\n \"varying vec2 vUV;\\r\\n\"+\r\n\r\n \"void main() {\\r\\n\"+\r\n\r\n \" vUV = uv;\\r\\n\"+\r\n \" gl_Position = worldViewProjection * vec4( position, 1.0 );\\r\\n\"+\r\n\r\n \"}\\r\\n\";\r\n\r\n BABYLON.Effect.ShadersStore[\"infoFragmentShader\"]= \r\n \"precision highp float;\\r\\n\"+\r\n \"precision highp int;\\r\\n\"+\r\n\r\n \"varying vec2 vUV;\\r\\n\"+\r\n \"uniform float time;\\r\\n\"+\r\n\r\n \"const float F3 = 0.3333333;\\r\\n\"+\r\n \"const float G3 = 0.1666667;\\r\\n\"+\r\n\r\n \"const float waverSpeed = 0.47451395;\\r\\n\"+\r\n \"const float turbulence = 2.6210;\\r\\n\"+\r\n \"const float flashSpeed = 0.0;\\r\\n\"+\r\n \"const float electricitySpeed = 0.271695;\\r\\n\"+\r\n \"const float contrast = 19.07;\\r\\n\"+\r\n \"const float thickness = 0.8;\\r\\n\"+\r\n \"const float phaseSpeed = 10.0;\\r\\n\"+\r\n\r\n \"const vec3 color = vec3(100.0, 0.0, 0.0);\\r\\n\"+\r\n\r\n \"vec3 random3(vec3 c) {\\r\\n\"+\r\n \" float j = 4096.0*sin(dot(c,vec3(17.0, 59.4, 15.0)));\\r\\n\"+\r\n \" vec3 r;\\r\\n\"+\r\n \" r.z = fract(512.0*j);\\r\\n\"+\r\n \" j *= .125;\\r\\n\"+\r\n \" r.x = fract(512.0*j);\\r\\n\"+\r\n \" j *= .125;\\r\\n\"+\r\n \" r.y = fract(512.0*j);\\r\\n\"+\r\n \" return r-0.5;\\r\\n\"+\r\n \"}\\r\\n\"+\r\n\r\n \"float simplex3d(vec3 p) {\\r\\n\"+\r\n \" vec3 s = floor(p + dot(p, vec3(F3)));\\r\\n\"+\r\n \" vec3 x = p - s + dot(s, vec3(G3));\\r\\n\"+\r\n \" vec3 e = step(vec3(0.0), x - x.yzx);\\r\\n\"+\r\n \" vec3 i1 = e*(1.0 - e.zxy);\\r\\n\"+\r\n \" vec3 i2 = 1.0 - e.zxy*(1.0 - e);\\r\\n\"+\r\n \" vec3 x1 = x - i1 + G3;\\r\\n\"+\r\n \" vec3 x2 = x - i2 + 2.0*G3;\\r\\n\"+\r\n \" vec3 x3 = x - 1.0 + 3.0*G3;\\r\\n\"+\r\n \" vec4 w, d;\\r\\n\"+\r\n \" w.x = dot(x, x);\\r\\n\"+\r\n \" w.y = dot(x1, x1);\\r\\n\"+\r\n \" w.z = dot(x2, x2);\\r\\n\"+\r\n \" w.w = dot(x3, x3);\\r\\n\"+\r\n \" w = max(0.6 - w, 0.0);\\r\\n\"+\r\n \" d.x = dot(random3(s), x);\\r\\n\"+\r\n \" d.y = dot(random3(s + i1), x1);\\r\\n\"+\r\n \" d.z = dot(random3(s + i2), x2);\\r\\n\"+\r\n \" d.w = dot(random3(s + 1.0), x3);\\r\\n\"+\r\n \" w *= w;\\r\\n\"+\r\n \" w *= w;\\r\\n\"+\r\n \" d *= w;\\r\\n\"+\r\n\r\n \" return dot(d, vec4(52.0));\\r\\n\"+\r\n \"}\\r\\n\"+\r\n\r\n \"// Add or remove octaves for more granular noise\\r\\n\"+\r\n \"float noise(vec3 m) {\\r\\n\"+\r\n \" return 0.5333333 * simplex3d( m )\\r\\n\"+\r\n \" + 0.2666667 * simplex3d( 2.0 * m )\\r\\n\"+\r\n \" + 0.1333333 * simplex3d( 4.0 * m )\\r\\n\"+\r\n \" + 0.0666667 * simplex3d( 8.0 * m );\\r\\n\"+\r\n \"}\\r\\n\"+\r\n\r\n \"void main(void) {\\r\\n\"+\r\n \" vec2 uvScaled = vUV.xy * 2.0 - 1.0;\\r\\n\"+\r\n \" uvScaled.y += waverSpeed * 4.0 * ( -0.5 + mod( time * waverSpeed, 1.0 ) );\\r\\n\"+\r\n \" vec3 p3 = vec3( vUV.xy * turbulence, time * electricitySpeed );\\r\\n\"+\r\n\r\n \" float simplexNoise = noise( vec3( p3 * 12.0 + 12.0 ) );\\r\\n\"+\r\n\r\n \" float t = clamp( ( uvScaled.x * -uvScaled.x * 0.16 ) + 0.15, 0.0, 1.0 );\\r\\n\"+\r\n \" float y = abs( simplexNoise * -t + uvScaled.y ) * ( 0.6 + sin( time * flashSpeed ) );\\r\\n\"+\r\n\r\n \" float g = pow( y, thickness );\\r\\n\"+\r\n\r\n \" float pixel = pow(1.0 - g, contrast);\\r\\n\"+\r\n \" float alpha = round(pixel + 0.4);\\r\\n\"+\r\n \" gl_FragColor = vec4( pixel * color, alpha );\\r\\n\"+\r\n \"}\\r\\n\";\t\r\n\r\n let shaderMaterial = new BABYLON.ShaderMaterial(\"shader\", this.scene, {\r\n vertex: \"info\",\r\n fragment: \"info\",\r\n },\r\n {\r\n attributes: [\"position\", \"normal\", \"uv\"],\r\n uniforms: [\"world\", \"worldView\", \"worldViewProjection\", \"view\", \"projection\"],\r\n needAlphaBlending: true\r\n });\t\r\n shaderMaterial.setFloat(\"time\", 0);\r\n shaderMaterial.setVector3(\"cameraPosition\", BABYLON.Vector3.Zero());\r\n shaderMaterial.backFaceCulling = false;\r\n\r\n return shaderMaterial;\t\t\t\r\n }\r\n\r\n createInfo2Material() {\r\n BABYLON.Effect.ShadersStore[\"info2VertexShader\"]=\r\n \"precision highp float;\\r\\n\"+\r\n \"precision highp int;\\r\\n\"+\r\n\r\n \"uniform mat4 worldViewProjection;\\r\\n\"+\r\n\r\n \"attribute vec3 position;\\r\\n\"+\r\n \"attribute vec2 uv;\\r\\n\"+\r\n\r\n \"varying vec2 vUV;\\r\\n\"+\r\n\r\n \"void main() {\\r\\n\"+\r\n\r\n \" vUV = uv;\\r\\n\"+\r\n \" gl_Position = worldViewProjection * vec4( position, 1.0 );\\r\\n\"+\r\n\r\n \"}\\r\\n\";\r\n\r\n BABYLON.Effect.ShadersStore[\"info2FragmentShader\"]= \r\n \"precision mediump float;\\r\\n\"+\r\n \"uniform float time;\\r\\n\"+\r\n \"varying vec2 vUV;\\r\\n\"+\r\n \"void main( void ) {\\r\\n\"+\r\n //\" vec2 position = ( gl_FragCoord.xy );\\r\\n\"+ \r\n \" vec2 uvScaled = vUV.xy * 100.0 - 50.0;\\r\\n\"+ \r\n \" vec2 position = ( uvScaled.xy );\\r\\n\"+ \r\n \" float color = 0.0;\\r\\n\"+\r\n \" float alpha = max( 1.0 - 4.0 * sqrt((vUV.x-0.5)*(vUV.x-0.5) + (vUV.y-0.5)*(vUV.y-0.5)), 0.0);\\r\\n\"+\r\n \" for(float i = 0.0; i < 1.0; i++){\\r\\n\"+\r\n \" float v = 10.0;\\r\\n\"+\r\n \" float dx1 = pow(position.x,2.0);\\r\\n\"+\r\n \" float dy1 = pow(position.y,2.0);\\r\\n\"+\r\n \" float r1 = sqrt(dx1+dy1);\\r\\n\"+\r\n \" color += sin( r1 * 0.3 - time*v);\\r\\n\"+\r\n \" }\\r\\n\"+\r\n \" gl_FragColor = vec4( vec3( color, color, color), alpha * color );\\r\\n\"+\r\n \"}\\r\\n\";\t\r\n\r\n let shaderMaterial = new BABYLON.ShaderMaterial(\"shader\", this.scene, {\r\n vertex: \"info2\",\r\n fragment: \"info2\",\r\n },\r\n {\r\n attributes: [\"position\", \"normal\", \"uv\"],\r\n uniforms: [\"world\", \"worldView\", \"worldViewProjection\", \"view\", \"projection\"],\r\n needAlphaBlending: true\r\n });\t\r\n shaderMaterial.setFloat(\"time\", 0);\r\n shaderMaterial.setVector3(\"cameraPosition\", BABYLON.Vector3.Zero());\r\n shaderMaterial.backFaceCulling = false;\r\n\r\n return shaderMaterial;\t\t\t\r\n } \r\n}\r\n\r\nconst instance = new MaterialManager();\r\n//Object.freeze(instance);\r\n\r\nexport default instance;\r\n","import * as BABYLON from 'babylonjs';\r\nimport BasicComponent from './BasicComponent';\r\nimport MaterialManager from \"@/components/babylonjs/Materials\";\r\n\r\nclass NotifyPosition extends BasicComponent {\r\n getType() { return \"NotifyPosition\"; }\r\n\r\n constructor( { id } = {} ) {\r\n super( { id });\r\n\r\n this.event = null;\r\n this.material = null;\r\n this.texture = null;\r\n this.mesh = null;\r\n this.scene = null;\r\n this.scaleFactor = 1; \r\n }\r\n\r\n construct( context, event ) {\r\n this.scene = window.scene;\r\n this.event = event;\r\n this.setID( event.getID() );\r\n\r\n const base = new BABYLON.TransformNode(event.getID(), window.scene);\r\n this.setRootNode(base);\r\n base.rotation = BABYLON.Vector3.Zero(); //rotation;\r\n base.billboardMode = BABYLON.Mesh.BILLBOARDMODE_ALL;\r\n\r\n if (event.getPosition()) {\r\n base.position = event.getPosition(); //BABYLON.Vector3.Lerp( event.getPosition(), this.scene.activeCamera.position, 0.1 );\r\n } else {\r\n base.position = base.absolutePosition;\r\n event.setPosition(event.position);\r\n }\r\n\r\n const name = \"Event_\" + event.getID();\r\n this.mesh = BABYLON.MeshBuilder.CreatePlane(name,{\r\n width: 15,\r\n height: 15,\r\n sideOrientation: BABYLON.Mesh.DOUBLESIDE\r\n }, window.scene);\r\n this.mesh.renderingGroupId = 3;\r\n this.mesh.isPickable = false; // Disable picking, otherwise we could click on Notifications... Gives nice effect but unintended\r\n this.material = MaterialManager.get(\"info\");\r\n this.mesh.material = this.material;\r\n this.mesh.parent = base;\r\n\r\n let audio = new Audio(require('@/assets/sounds/ripple.mp3'));\r\n audio.play();\r\n\r\n return this;\r\n }\r\n}\r\n\r\nexport default NotifyPosition;\r\n","import * as BABYLON from 'babylonjs';\r\nimport BasicComponent from './BasicComponent';\r\nimport MediaManager from '@/api/MediaManager';\r\nimport * as GUI from 'babylonjs-gui';\r\n\r\nclass Text extends BasicComponent {\r\n getType() { return \"Text\"; }\r\n\r\n constructor( { id } = {} ) {\r\n super( { id });\r\n\r\n this.open = false;\r\n }\r\n\r\n construct( context, prefab ) {\r\n console.log(\"Text construct...\");\r\n\r\n let self = this;\r\n \r\n let displayPreviewText = prefab.getPreviewText() ? prefab.getPreviewText().length > 0: false;\r\n\r\n let width = 15 * prefab.getScale();\r\n let height = 15 * prefab.getScale();\r\n\r\n const base = super.construct( context, prefab ).getRootNode();\r\n base.position = prefab.getPosition();\r\n let cameraX = window.scene.getCameraByName(\"MainCamera\");\r\n let posCamera = cameraX.position;\r\n base.lookAt(posCamera);\r\n \r\n let textGUI = BABYLON.MeshBuilder.CreatePlane(\"\", { \r\n width: 180,\r\n height: 180,\r\n sideOrientation: BABYLON.Mesh.DOUBLESIDE \r\n }, window.scene);\r\n\r\n textGUI.parent = base;\r\n textGUI.isPickable = false;\r\n textGUI.renderingGroupId = 1;\r\n textGUI.rotation.y = Math.PI;\r\n textGUI.position.y = -90-7*prefab.getScale();\r\n\r\n // GUI\r\n var advancedTexture = GUI.AdvancedDynamicTexture.CreateForMesh(textGUI);\t\r\n\r\n // Rectangle\r\n var rect = new GUI.Rectangle();\r\n rect.verticalAlignment = GUI.Control.VERTICAL_ALIGNMENT_TOP;\r\n rect.adaptWidthToChildren = true;\r\n rect.adaptHeightToChildren = true;\r\n rect.cornerRadius = 20;\r\n rect.background = \"white\";\r\n rect.alpha = 0.9;\r\n rect.width = \"90%\";\r\n advancedTexture.addControl(rect);\r\n\r\n // Text ontop of Rectanble\r\n var text = new GUI.TextBlock();\r\n text.text = prefab.displayedText;\r\n text.fontSize = \"26pt\";\r\n text.color = \"black\";\r\n text.lineSpacing = 2;\r\n text.textHorizontalAlignment = GUI.Control.HORIZONTAL_ALIGNMENT_LEFT;\r\n text.textVerticalAlignment = GUI.Control.VERTICAL_ALIGNMENT_TOP;\r\n text.textWrapping = GUI.TextWrapping.WordWrap;\r\n text.resizeToFit = true;\r\n text.paddingTop = 20;\r\n text.paddingLeft = 20;\r\n text.paddingRight = 20;\r\n text.paddingBottom = 20;\r\n \r\n rect.addControl(text);\r\n\r\n if(prefab.displayOnClick == \"true\"){\r\n\r\n let previewTextGui;\r\n if(displayPreviewText){\r\n previewTextGui = BABYLON.MeshBuilder.CreatePlane(\"\", { \r\n width: 180,\r\n height: 180,\r\n sideOrientation: BABYLON.Mesh.DOUBLESIDE \r\n }, window.scene);\r\n\r\n previewTextGui.parent = base;\r\n previewTextGui.isPickable = false;\r\n previewTextGui.renderingGroupId = 1;\r\n previewTextGui.position.y = 5 + 5*prefab.getScale();\r\n previewTextGui.rotation.y = Math.PI;\r\n previewTextGui.visibility = 0;\r\n \r\n var advancedTexture = GUI.AdvancedDynamicTexture.CreateForMesh(previewTextGui);\r\n \r\n var text = new GUI.TextBlock();\r\n text.text = prefab.getPreviewText();\r\n text.fontSize = \"35pt\";\r\n text.color = \"White\";\r\n text.lineSpacing = 2;\r\n text.textHorizontalAlignment = GUI.Control.HORIZONTAL_ALIGNMENT_CENTER;\r\n text.textVerticalAlignment = GUI.Control.VERTICAL_ALIGNMENT_TOP;\r\n text.resizeToFit = true;\r\n advancedTexture.addControl(text);\r\n }\r\n\r\n textGUI.visibility = 0;\r\n\r\n //Button - OnHover Open Text\r\n let button = BABYLON.MeshBuilder.CreatePlane(\"\", { \r\n width: width,\r\n height: height,\r\n sideOrientation: BABYLON.Mesh.DOUBLESIDE \r\n }, window.scene);\r\n \r\n let icon = MediaManager.getMedia(prefab.getIconID());\r\n\r\n let buttonMaterial = new BABYLON.StandardMaterial(\"\", window.scene);\r\n buttonMaterial.opacityTexture = buttonMaterial.emissiveTexture = icon.getTexture();\r\n buttonMaterial.disableLighting = true; \r\n button.material = buttonMaterial;\r\n \r\n button.parent = base;\r\n button.rotation.y = Math.PI;\r\n button.rotation.z = Math.PI;\r\n button.renderingGroupId = 2;\r\n\r\n var ease = new BABYLON.CubicEase();\r\n ease.setEasingMode(BABYLON.EasingFunction.EASINGMODE_EASEINOUT);\r\n \r\n button.actionManager = new BABYLON.ActionManager(window.scene);\r\n button.actionManager.hoverCursor = \"pointer\";\r\n button.actionManager.registerAction(new BABYLON.ExecuteCodeAction(BABYLON.ActionManager.OnPickTrigger, function(){ \r\n self.open = !self.open;\r\n if(self.open){\r\n BABYLON.Animation.CreateAndStartAnimation(\"\", textGUI, \"visibility\", 30,10, 0, 1, 0, ease);\r\n }else{\r\n BABYLON.Animation.CreateAndStartAnimation(\"\", button, \"scaling\", 30,10, button.scaling, new BABYLON.Vector3.One(), 0, ease);\r\n BABYLON.Animation.CreateAndStartAnimation(\"\", textGUI, \"visibility\", 30,10, 1, 0, 0, ease);\r\n }\r\n \r\n window.dispatchEvent(new CustomEvent(\"closeAllTextElements\",{detail:{this: self}}));\r\n }));\r\n\r\n button.actionManager.registerAction(new BABYLON.ExecuteCodeAction(BABYLON.ActionManager.OnPointerOutTrigger, function(){ \r\n if(!self.open){\r\n BABYLON.Animation.CreateAndStartAnimation(\"\", button, \"scaling\", 30,10, button.scaling, new BABYLON.Vector3.One(), 0, ease);\r\n if(displayPreviewText)\r\n BABYLON.Animation.CreateAndStartAnimation(\"\", previewTextGui, \"visibility\", 30,10, previewTextGui.visibility, 0, 0, ease);\r\n }\r\n \r\n }));\r\n\r\n button.actionManager.registerAction(new BABYLON.ExecuteCodeAction(BABYLON.ActionManager.OnPointerOverTrigger, function(){\r\n if(!self.open){\r\n BABYLON.Animation.CreateAndStartAnimation(\"\", button, \"scaling\", 30,10, new BABYLON.Vector3.One(), new BABYLON.Vector3.One().scale(1.2), 0,ease);\r\n if(displayPreviewText)\r\n BABYLON.Animation.CreateAndStartAnimation(\"\", previewTextGui, \"visibility\", 30,10, previewTextGui.visibility, 1, 0, ease);\r\n }\r\n \r\n }));\r\n\r\n window.addEventListener('closeAllTextElements',(e) =>{\r\n if(e.detail.this != this){\r\n self.open = false;\r\n BABYLON.Animation.CreateAndStartAnimation(\"\", button, \"scaling\", 30,10, button.scaling, new BABYLON.Vector3.One(), 0, ease);\r\n BABYLON.Animation.CreateAndStartAnimation(\"\", textGUI, \"visibility\", 30,10, textGUI.visibility, 0, 0, ease);\r\n if(previewTextGui)\r\n BABYLON.Animation.CreateAndStartAnimation(\"\", previewTextGui, \"visibility\", 30,10, previewTextGui.visibility, 0, 0, ease);\r\n }\r\n });\r\n }\r\n\r\n return base;\r\n }\r\n}\r\n\r\nexport default Text;\r\n\r\n","import * as BABYLON from 'babylonjs';\r\nimport VisualComponent from './VisualComponent';\r\nclass Transition extends VisualComponent {\r\n getType() { return \"Transition\"; }\r\n\r\n constructor( { id } = {} ) {\r\n super( { id });\r\n }\r\n\r\n construct( context, prefab ) {\r\n let situation;\r\n for (let i = 0; i < context.situations.length; i++) \r\n if(context.situations[i].id == prefab.getTargetID())\r\n situation = context.situations[i];\r\n \r\n\r\n super.setScaleFactor(0.2);\r\n const base = super.construct( context, prefab );\r\n\r\n var ease = new BABYLON.CubicEase();\r\n ease.setEasingMode(BABYLON.EasingFunction.EASINGMODE_EASEIN);\r\n \r\n this.mesh.actionManager = new BABYLON.ActionManager(this.scene);\r\n this.mesh.actionManager.registerAction(new BABYLON.ExecuteCodeAction(BABYLON.ActionManager.OnPickTrigger,() => {\r\n if(!context.followModeratorMode){\r\n window.dispatchEvent(new CustomEvent(\"hideTransitionPreview\"));\r\n context.$store.commit('handleGotoSituationTransition',{ situationID: prefab.getTargetID() }); \r\n\r\n // TODO: Fix Transition Animation\r\n // Camera Rotation & Animation when leaving current room\r\n // let camera = window.scene.activeCamera;\r\n // let fps = 60;\r\n // let duration = 1000;\r\n\r\n // var clickedMeshPos = base.position;\r\n // let unitVec = new BABYLON.Vector3(clickedMeshPos.x,0,clickedMeshPos.z).normalize();\r\n // var transitionEndPoint = camera.target.add(unitVec.scale(120));\r\n\r\n // var coordinates = BABYLON.Vector3.Project(\r\n // clickedMeshPos,\r\n // BABYLON.Matrix.Identity(),\r\n // window.scene.getTransformMatrix(),\r\n // camera.viewport.toGlobal(\r\n // window.scene.getEngine().getRenderWidth(),\r\n // window.scene.getEngine().getRenderHeight(),\r\n // ));\r\n // var vec_target_n = new BABYLON.Vector3(clickedMeshPos.x, 0 ,clickedMeshPos.z);\r\n // var vec_camDirection_n = camera.getForwardRay().direction;\r\n // vec_camDirection_n.y = 0;\r\n // var dotProduct = vec_target_n.x*vec_camDirection_n.x + vec_target_n.y*vec_camDirection_n.y + vec_target_n.z*vec_camDirection_n.z;\r\n // var newAngle = Math.acos(dotProduct/(vec_target_n.length()*vec_camDirection_n.length()));\r\n // var newCamAlpha = coordinates.x > (this.scene.getEngine().getRenderWidth()/2) ? camera.alpha-newAngle : camera.alpha+newAngle\r\n\r\n // setTimeout(() => {\r\n // document.getElementById(\"renderCanvas\").style.filter = \"blur(20px)\";\r\n // setTimeout(() => {\r\n // document.getElementById(\"renderCanvas\").style.filter = \"blur(0px)\";\r\n // }, 400);\r\n // }, duration-300);\r\n // \r\n // BABYLON.Animation.CreateAndStartAnimation(\"\",camera,\"alpha\",fps, (duration/1000)*fps, camera.alpha, newCamAlpha, 0, ease);\r\n // BABYLON.Animation.CreateAndStartAnimation(\"\",camera,\"target\",fps, (duration/1000)*fps, camera.target, transitionEndPoint, 0, ease);\r\n // BABYLON.Animation.CreateAndStartAnimation(\"\",camera,\"beta\",fps, (duration/1000)*fps, camera.beta, camera.beta, 0, ease, () => {\r\n // context.$store.commit('handleGotoSituationTransition',{ situationID: prefab.getTargetID() }); \r\n // });\r\n }\r\n }));\r\n \r\n // Hover-over animation\r\n this.mesh.actionManager.registerAction(new BABYLON.ExecuteCodeAction(BABYLON.ActionManager.OnPointerOutTrigger,() => { \r\n // BABYLON.Animation.CreateAndStartAnimation(\"\", this.mesh, \"scaling\", 30,10, this.mesh.scaling, new BABYLON.Vector3.One(), 0, ease); \r\n window.dispatchEvent(new CustomEvent(\"hideTransitionPreview\"));\r\n }));\r\n\r\n this.mesh.actionManager.registerAction(new BABYLON.ExecuteCodeAction(BABYLON.ActionManager.OnPointerOverTrigger,() => {\r\n // BABYLON.Animation.CreateAndStartAnimation(\"\", this.mesh, \"scaling\", 30,10, this.mesh.scaling, new BABYLON.Vector3.One().scale(1.1), 0, ease);\r\n window.dispatchEvent(new CustomEvent(\"showTransitionPreview\",{detail:{\r\n url: context.publicPath + \"/media/\" +context.panoramaTour.getName()+ \"/\" + situation.name.trim() + \".\" + context.thumbnailType,\r\n name: situation.name,\r\n }}));\r\n }));\r\n\r\n var ease2 = new BABYLON.CubicEase();\r\n ease2.setEasingMode(BABYLON.EasingFunction.EASINGMODE_EASEINOUT);\r\n \r\n // Pulse Animation\r\n const frameRate = 60;\r\n const pulse = new BABYLON.Animation(\"pulse\", \"scaling\", frameRate, BABYLON.Animation.ANIMATIONTYPE_VECTOR3, BABYLON.Animation.ANIMATIONLOOPMODE_CYCLE);\r\n pulse.setEasingFunction(ease2);\r\n const keyFrames = []; \r\n keyFrames.push({frame: 0, value: new BABYLON.Vector3(1,1,1)});\r\n keyFrames.push({frame: 2* frameRate, value: new BABYLON.Vector3(1.2,1.2,1.2)});\r\n keyFrames.push({frame: 4 * frameRate, value: new BABYLON.Vector3(1,1,1)});\r\n pulse.setKeys(keyFrames);\r\n this.mesh.animations.push(pulse);\r\n window.scene.beginAnimation(this.mesh, 0, 10 * frameRate, true);\r\n\r\n return base;\r\n }\r\n\r\n // createThumbnail(context,situation,base,prefab){\r\n // //CREATE THUMBNAIL\r\n // let texture = new BABYLON.Texture(context.publicPath + \"/media/\" +context.panoramaTour.getName()+ \"/\" + situation.name.trim() + \".jpg\", window.scene);\r\n // let name = \"VisualComponentImage_\"+prefab.getIconID();\r\n // let thumbnail = BABYLON.MeshBuilder.CreatePlane(\r\n // name, \r\n // {\r\n // width: 50, \r\n // height: 25,\r\n // sideOrientation: BABYLON.Mesh.DOUBLESIDE \r\n // }, window.scene);\r\n // let thumbnailMaterial = new BABYLON.StandardMaterial(name + \"_material\", window.scene);\r\n // thumbnailMaterial.emissiveTexture = texture;\r\n // thumbnailMaterial.emissiveTexture.uScale = -1;\r\n // thumbnailMaterial.emissiveTexture.vScale = 1;\r\n // thumbnailMaterial.disableLighting = true; \r\n // thumbnailMaterial.opacityTexture = texture;\r\n // thumbnailMaterial.opacityTexture.uScale = -1;\r\n // thumbnailMaterial.opacityTexture.vScale = 1;\r\n // thumbnailMaterial.emissiveTexture.hasAlpha = true;\r\n // thumbnail.material = thumbnailMaterial;\r\n // thumbnail.position.y = 30;\r\n // thumbnail.position.z = -10;\r\n // thumbnail.visibility = 0;\r\n\r\n // //CREATE TEXT\r\n // var plane = BABYLON.MeshBuilder.CreatePlane(\r\n // \"plane\",{ \r\n // width: 60, \r\n // height: 60,\r\n // sideOrientation: BABYLON.Mesh.DOUBLESIDE \r\n // },window.scene);\r\n // plane.position.y = 40;\r\n // plane.position.z = -15;\r\n // plane.visibility = 0;\r\n \r\n // var advancedTexture = BABYLONGUI.AdvancedDynamicTexture.CreateForMesh(plane);\r\n // var text1 = new BABYLONGUI.TextBlock();\r\n // text1.text = situation.name;\r\n // text1.color = \"white\";\r\n // text1.fontSize = 60;\r\n // text1.drawOutline = true;\r\n // text1.outlineColor = \"black\";\r\n // text1.outlineWidth = 4;\r\n // advancedTexture.addControl(text1);\r\n \r\n // let thumbnailRoot = new BABYLON.TransformNode();\r\n // thumbnailRoot.parent = base;\r\n // this.mesh.actionManager.registerAction(new BABYLON.ExecuteCodeAction(BABYLON.ActionManager.OnPointerOutTrigger, function(){ \r\n // BABYLON.Animation.CreateAndStartAnimation(\"hide\", thumbnail, \"visibility\", 10,2, 1, 0, 0) \r\n // BABYLON.Animation.CreateAndStartAnimation(\"hide\", plane, \"visibility\", 10, 2, 1, 0, 0) \r\n // }));\r\n // this.mesh.actionManager.registerAction(new BABYLON.ExecuteCodeAction(BABYLON.ActionManager.OnPointerOverTrigger, function(){\r\n // BABYLON.Animation.CreateAndStartAnimation(\"hide\", thumbnail, \"visibility\", 10,2, 0, 1, 0)\r\n // BABYLON.Animation.CreateAndStartAnimation(\"hide\", plane, \"visibility\",10,2, 0, 1, 0)\r\n // }));\r\n\r\n // thumbnail.parent = thumbnailRoot;\r\n // plane.parent = thumbnailRoot;\r\n // }\r\n}\r\n\r\nexport default Transition;\r\n","import * as BABYLON from 'babylonjs';\r\nimport VisualComponent from './VisualComponent';\r\n\r\nclass URLButton extends VisualComponent {\r\n getType() { return \"URLButton\"; }\r\n\r\n constructor( { id } = {} ) {\r\n super( { id });\r\n }\r\n\r\n construct( context, prefab ) {\r\n const base = super.construct( context, prefab );\r\n \r\n base.getChildMeshes().forEach(mesh => {\r\n mesh.renderingGroupId = 3;\r\n });\r\n\r\n if(prefab.getURL()) {\r\n var url = prefab.getURL();\r\n \r\n this.mesh.actionManager = new BABYLON.ActionManager(this.scene);\r\n this.mesh.actionManager.registerAction(new BABYLON.ExecuteCodeAction(BABYLON.ActionManager.OnPickTrigger, () => {\r\n if(!context.followModeratorMode){\r\n if(prefab.getdisplayInternally() == \"true\"){\r\n window.dispatchEvent(new CustomEvent(\"openURL\",{detail:{url: url}}));\r\n }else{\r\n window.open(url, \"_blank\"); \r\n } \r\n }\r\n }));\r\n \r\n var ease = new BABYLON.CubicEase();\r\n ease.setEasingMode(BABYLON.EasingFunction.EASINGMODE_EASEINOUT);\r\n \r\n // Highlight-ring (TODO: enable in CMS)\r\n // let highlight = BABYLON.MeshBuilder.CreatePlane(\"\", { \r\n // width: this.texture.getWidth() * prefab.getScale() * this.scaleFactor, \r\n // height: this.texture.getHeight() * prefab.getScale() *this.scaleFactor,\r\n // sideOrientation: BABYLON.Mesh.DOUBLESIDE \r\n // }, window.scene);\r\n // highlight.visibility = 0;\r\n // highlight.material = new BABYLON.StandardMaterial(\"\", window.scene);\r\n // highlight.material.opacityTexture = new BABYLON.Texture( require(\"@/assets/highlight.png\"), window.scene);\r\n // highlight.material.emissiveColor = BABYLON.Color3.FromHexString(context.primaryColor);\r\n // highlight.material.disableLighting = true; \r\n // highlight.parent = base;\r\n // highlight.isPickable = false;\r\n \r\n this.mesh.actionManager.registerAction(new BABYLON.ExecuteCodeAction(BABYLON.ActionManager.OnPointerOutTrigger, () => {\r\n BABYLON.Animation.CreateAndStartAnimation(\"\", this.mesh, \"scaling\", 30,10, this.mesh.scaling, new BABYLON.Vector3.One(), 0, ease); \r\n // BABYLON.Animation.CreateAndStartAnimation(\"\", highlight, \"visibility\", 30,10, highlight.visibility, 0, 0, ease); \r\n }));\r\n\r\n this.mesh.actionManager.registerAction(new BABYLON.ExecuteCodeAction(BABYLON.ActionManager.OnPointerOverTrigger, () => {\r\n BABYLON.Animation.CreateAndStartAnimation(\"\", this.mesh, \"scaling\", 30,10, this.mesh.scaling, new BABYLON.Vector3.One().scale(1.1), 0, ease);\r\n // BABYLON.Animation.CreateAndStartAnimation(\"\", highlight, \"visibility\", 30,10, highlight.visibility, 1, 0, ease); \r\n }));\r\n }\r\n\r\n return base;\r\n }\r\n \r\n\r\n}\r\n\r\nexport default URLButton;\r\n","import * as BABYLON from 'babylonjs';\r\nimport BasicComponent from './BasicComponent';\r\nimport axios from 'axios';\r\n\r\nclass User extends BasicComponent {\r\n getType () {\r\n return \"User\";\r\n }\r\n\r\n constructor ({id} = {}) {\r\n super({id});\r\n\r\n this.material = null;\r\n this.texture = null;\r\n this.mesh = null;\r\n this.scene = null;\r\n this.user = null;\r\n this.acronym = \"NN\";\r\n this.color = \"#E76101\"\r\n this.lastUpdate = 0;\r\n this.targetRotation = new BABYLON.Vector3();\r\n this.currentRotation = new BABYLON.Vector3();\r\n this.currentPosition = new BABYLON.Vector3();\r\n }\r\n\r\n construct (context, user) {\r\n console.info(`User::construct: constructing scene graph for user: ${JSON.stringify(user)}`);\r\n this.setSituationID(user.getCurrentSituationID());\r\n this.scene = window.scene;\r\n this.user = user;\r\n this.setID( user.getID() );\r\n\r\n const base = new BABYLON.TransformNode(user.getID(), window.scene);\r\n this.setRootNode(base);\r\n \r\n if (user.getPosition()) {\r\n base.position = user.getPosition();\r\n } else {\r\n base.position = base.absolutePosition;\r\n user.setPosition(base.position);\r\n }\r\n base.rotation = user.getRotation();\r\n\r\n const name = \"User_\" + user.getID();\r\n this.mesh = BABYLON.MeshBuilder.CreatePlane(name,\r\n {\r\n width: 3.8,\r\n height: 3.8,\r\n sideOrientation: BABYLON.Mesh.DOUBLESIDE\r\n }, window.scene);\r\n\r\n this.material = new BABYLON.StandardMaterial(name + \"_material\", window.scene);\r\n this.material.disableLighting = true;\r\n this.mesh.material = this.material;\r\n this.mesh.position = new BABYLON.Vector3(0, 0, 100);\r\n this.mesh.rotation = BABYLON.Vector3.Zero(); //rotation;\r\n this.mesh.setEnabled(false);\r\n this.mesh.parent = base;\r\n this.mesh.renderingGroupId = 3;\r\n\r\n this.generateTextureForUser(user);\r\n\r\n return this;\r\n }\r\n\r\n hexToRgbA (hex) {\r\n var c;\r\n if (/^#([A-Fa-f0-9]{3}){1,2}$/.test(hex)) {\r\n c = hex.substring(1).split('');\r\n if (c.length == 3) {\r\n c = [c[0], c[0], c[1], c[1], c[2], c[2]];\r\n }\r\n c = '0x' + c.join('');\r\n return 'rgba(' + [(c >> 16) & 255, (c >> 8) & 255, c & 255].join(',') + ',1)';\r\n }\r\n throw new Error('Bad Hex');\r\n }\r\n\r\n generateTextureForUser (user) {\r\n let uc = this;\r\n uc.color = user.getColor();\r\n uc.acronym = user.getAcronym();\r\n axios.get(require(\"@/assets/user Icon.svg\")).then((response) => {\r\n let color = \"\" + uc.color; \r\n color = color.replace(\"0x\", \"#\");\r\n console.log(\"Generating user icon for \" + user.getID() + \" Color: \" + color + \" Acronym: \" + uc.acronym);\r\n //console.log(\"SVG: \" + JSON.stringify(response));\r\n // response = response.data;\r\n // let svgNew = response.replace(\"#ACRONYM\", uc.acronym); \r\n let svgNew = response.data;\r\n // COLOR setzen... \r\n svgNew = svgNew.split(\"#USERCOLOR\").join(color); //replaceAll(\"#USERCOLOR\", \"orange\");\r\n // svgNew = svgNew.replace(\"#CIRCLE_STYLE\", \" stroke-dasharray='20,20' \");\r\n // svgNew = svgNew.replace(\"#CIRCLE_STYLE\", \" \");\r\n \r\n // console.log(\"NEW SVG:\" + svgNew)\r\n let encodedData = window.btoa(svgNew);\r\n // let decodedData = window.atob(encodedData);\r\n // console.log(decodedData);\r\n encodedData = \"data:image/svg+xml;base64,\" + encodedData;\r\n const key = `${user.id}-${user.color}-texture`;\r\n uc.texture = BABYLON.Texture.LoadFromDataString(key, encodedData, this.scene);\r\n uc.material.diffuseTexture = this.texture;\r\n //uc.material.diffuseTexture.hasAlpha = true;\r\n //uc.material.diffuseTexture.useAlphaFromDiffuseTexture = true; \r\n uc.material.opacityTexture = this.texture;\r\n uc.material.emissiveTexture = this.texture; \r\n //uc.material.emissiveTexture.hasAlpha = true;\r\n uc.mesh.setEnabled(true);\r\n });\r\n }\r\n\r\n update () {\r\n \r\n let rotation = new BABYLON.Vector3(this.user.getRotation()._x,this.user.getRotation()._y,this.user.getRotation()._z)\r\n\r\n // console.info(`Updating user node (${this.user.acronym} id: ${this.user.id} color: ${this.user.color})`);\r\n let node = this.getRootNode();\r\n //console.log(\"Update \" + this.user.getID() + \" - \" + JSON.stringify(this.user.getRotation()) );\r\n let camera = this.scene.activeCamera;\r\n\r\n let timeStampInMs = window.performance && window.performance.now && window.performance.timing && window.performance.timing.navigationStart ? window.performance.now() + window.performance.timing.navigationStart : Date.now();\r\n let frameTimeDifference = (timeStampInMs - this.lastUpdate) / 1000;\r\n //this.lastUpdate = timeStampInMs;\r\n if( camera ) {\r\n\r\n let camRotation = camera.absoluteRotation;\r\n\r\n if( this.user.getRotation() ) {\r\n \r\n // Check if we receive a new rotation value...\r\n if( this.targetRotation.x != rotation.x || this.targetRotation.y != rotation.y ||this.targetRotation.z != rotation.z ) {\r\n this.targetRotation = rotation;\r\n this.lastUpdate = timeStampInMs;\r\n frameTimeDifference = (timeStampInMs - this.lastUpdate) / 1000;\r\n } \r\n\r\n let targetRotationQuaternion = BABYLON.Quaternion.FromEulerAngles( this.targetRotation.x, this.targetRotation.y, this.targetRotation.z );\r\n let currentRotationQuaternion = BABYLON.Quaternion.FromEulerAngles( this.currentRotation.x, this.currentRotation.y, this.currentRotation.z );\r\n // Compute new target rotation...\r\n if( frameTimeDifference >= 1.0 ) {\r\n currentRotationQuaternion = targetRotationQuaternion;\r\n this.currentRotation = this.targetRotation;\r\n } else {\r\n currentRotationQuaternion = BABYLON.Quaternion.Slerp( currentRotationQuaternion, targetRotationQuaternion, Math.min( frameTimeDifference, 1.0 ));\r\n this.currentRotation = currentRotationQuaternion.toEulerAngles();\r\n }\r\n\r\n let userRotation = currentRotationQuaternion;\r\n //let userRotation = BABYLON.Quaternion.FromEulerAngles( this.currentRotation.x, this.currentRotation.y, this.currentRotation.z );\r\n // We have to rotate that, due to the user looking in the wrong direction...\r\n //userRotation.multiplyInPlace( BABYLON.Quaternion.FromEulerAngles(0,Math.PI,0) );\r\n // Now let's see what the angles are...\r\n let diff = camRotation.multiply( BABYLON.Quaternion.Inverse( userRotation ) );\r\n let diffEuler = diff.toEulerAngles();\r\n //console.log(\"Difference vector is \" + diffEuler.x, \" / \" + diffEuler.y + \" / \" + diffEuler.z );\r\n let fov = camera.fov / 2;\r\n let ar = this.scene.getEngine().getScreenAspectRatio(); \r\n let fov_y = fov * ar * 0.85;\r\n let fov_x = fov * 0.95;\r\n // If we are within the field of view, everything is fine...\r\n if( Math.abs(diffEuler.x) <= fov_x && Math.abs(diffEuler.y) <= fov_y ) {\r\n node.rotation = this.currentRotation;\r\n if( this.material && this.material.diffuseTexture ) {\r\n this.material.alpha = 1.0;\r\n }\r\n } else {\r\n userRotation = this.currentRotation;\r\n camRotation = camRotation.toEulerAngles();\r\n if( Math.abs(diffEuler.x) > fov_x )\r\n userRotation.x = camRotation.x + Math.sign(diffEuler.x) * fov_x;\r\n if( Math.abs(diffEuler.y) > fov_y )\r\n userRotation.y = camRotation.y - Math.sign(diffEuler.y) * fov_y;\r\n node.rotation = userRotation;\r\n if( this.material && this.material.diffuseTexture ) {\r\n this.material.alpha = 0.3;\r\n }\r\n }\r\n }\r\n } else {\r\n if (this.user.getPosition()) {\r\n let targetPosition = this.user.getPosition();\r\n this.currentPosition = BABYON.Vector3.Lerp( this.currentPosition, targetPosition, Math.min( frameTimeDifference, 1.0 ));\r\n node.position = this.currentPosition;\r\n }\r\n if (this.user.getRotation()) {\r\n node.rotation = rotation;\r\n }\r\n }\r\n this.setSituationID(this.user.getCurrentSituationID());\r\n if (this.user.getAcronym() !== this.acronym || this.user.getColor() !== this.color) {\r\n console.log(\"###### Acronym or Color has changed.\")\r\n this.generateTextureForUser(this.user);\r\n }\r\n }\r\n}\r\n\r\nexport default User;\r\n\r\n","import * as BABYLON from 'babylonjs';\r\nimport BasicComponent from './BasicComponent';\r\nimport MediaManager from '@/api/MediaManager';\r\nimport * as GUI from 'babylonjs-gui';\r\n\r\nclass Video extends BasicComponent {\r\n getType() { return \"Video\"; }\r\n\r\n constructor( { id } = {} ) {\r\n super( { id });\r\n\r\n this.material = undefined;\r\n this.texture = undefined;\r\n this.mesh = undefined;\r\n this.scene = undefined;\r\n this.video = undefined;\r\n this.prefab = undefined;\r\n this.context = undefined;\r\n this.width = undefined;\r\n this.height = undefined;\r\n }\r\n\r\n construct( context, prefab ) { \r\n this.context = context;\r\n this.scene = window.scene;\r\n this.prefab = prefab;\r\n\r\n // Create Base\r\n const base = super.construct( context, prefab ).getRootNode();\r\n base.position = prefab.getPosition();\r\n base.lookAt(new BABYLON.Vector3(0,0,0));\r\n base.scaling = new BABYLON.Vector3(1.2,1.2,1.2);\r\n\r\n let base2 = new BABYLON.TransformNode(\"\");\r\n base2.rotation.x += prefab.getRotationX() * Math.PI / 180;\r\n base2.rotation.y += prefab.getRotationY() * Math.PI / 180;\r\n base2.rotation.z += prefab.getRotationZ() * Math.PI / 180;\r\n base2.parent = base;\r\n\r\n this.width = parseInt(prefab.getWidth());\r\n this.height = parseInt(prefab.getHeight());\r\n \r\n // Create Video\r\n const video = MediaManager.getMedia(prefab.getContentID());\r\n let videoTexture = new BABYLON.VideoTexture(\"VisualComponentVideo_Video\", video.getURL(), this.scene, false, false, BABYLON.TRILINEAR_SAMPLINGMODE, { \r\n loop: prefab.getLooping() === \"true\",\r\n autoPlay: prefab.getAutoplay() === \"true\",\r\n autoUpdateTexture: true,\r\n // poster: prefab.getPoster(), //TODO Poster from CMS\r\n });\r\n\r\n this.texture = videoTexture;\r\n this.video = videoTexture.video;\r\n this.video.volume = prefab.getVolumeScale()/100;\r\n this.video.muted = this.video.volume == 0;\r\n \r\n // quickly play and pause video to get first frame as thumbnail\r\n if(this.video.paused){\r\n console.log(\"VideoSphere: fixing Chrome thumbnail\");\r\n\r\n // muted videos can be autoplayed\r\n // mute and play Video to get thumbnail, \r\n this.video.muted = true;\r\n let promise = this.video.play();\r\n \r\n // After play is successful pause and unmute video again\r\n promise.then( ()=>{\r\n this.video.pause();\r\n this.video.muted = false;\r\n \r\n // Ensure autoplay after user interaction for chrome\r\n if(prefab.getAutoplay() === \"true\"){\r\n window.scene.onPointerDown = () => {\r\n this.video.play();\r\n window.scene.onPointerDown = undefined;\r\n }\r\n }\r\n })\r\n }\r\n\r\n // Create Material\r\n this.material = new BABYLON.StandardMaterial(\"VisualComponentVideo_VideoMaterial\" + \"_material\", this.scene);\r\n this.material.emissiveTexture = this.texture;\r\n this.material.disableLighting = true; \r\n this.material.opacityTexture = this.texture; \r\n \r\n // Create Mesh\r\n this.mesh = BABYLON.MeshBuilder.CreatePlane(\"Video\", {width: this.width , height: this.height , sideOrientation: BABYLON.Mesh.DOUBLESIDE }, window.scene);\r\n this.mesh.material = this.material;\r\n this.mesh.rotation.y = Math.PI;\r\n this.mesh.parent = base2;\r\n \r\n // Create controls if checked in CMS\r\n if(prefab.getDisplayControls() === \"true\"){\r\n this.createControlls();\r\n }else{\r\n if(prefab.getEnlargeOnClick() === \"true\"){\r\n this.mesh.actionManager = new BABYLON.ActionManager(this.scene);\r\n\r\n this.mesh.actionManager.registerAction(new BABYLON.ExecuteCodeAction(BABYLON.ActionManager.OnPickTrigger, () =>{ \r\n if(!context.followModeratorMode) \r\n window.dispatchEvent(new CustomEvent(\"openURL\",{detail:{url: video.getURL(),showURL: false}}));\r\n }));\r\n }else{\r\n this.mesh.isPickable = false;\r\n }\r\n }\r\n\r\n base.getChildMeshes().forEach(mesh => {\r\n mesh.renderingGroupId = 2;\r\n });\r\n \r\n return base;\r\n }\r\n \r\n\r\n createControlls(){\r\n var ease = new BABYLON.CubicEase();\r\n ease.setEasingMode(BABYLON.EasingFunction.EASINGMODE_EASEINOUT);\r\n \r\n // Create Play/Pause Button\r\n // shows play/pause button when you hover over the video element\r\n var playpauseButton = BABYLON.Mesh.CreatePlane(\"Play/PauseButton\", 20, this.scene);\r\n playpauseButton.rotation.y = Math.PI;\r\n playpauseButton.parent = this.mesh.parent;\r\n playpauseButton.setEnabled(false);\r\n var advancedTexture = GUI.AdvancedDynamicTexture.CreateForMesh(playpauseButton);\r\n var image = new GUI.Image(\"\", require(\"@/assets/play-button.png\"));\r\n advancedTexture.addControl(image);\r\n playpauseButton.isPickable = false;\r\n\r\n // var videoName = new GUI.TextBlock(\"videoName\");\r\n // videoName.parent = this.mesh.parent;\r\n // videoName.text = \"abc\";\r\n // videoName.height = \"40px\";\r\n // videoName.width = \"200px\";\r\n // advancedTexture.addControl(videoName);\r\n \r\n // Black plane before Video that will be visible when you hover over the video\r\n let background = BABYLON.MeshBuilder.CreatePlane(\"Background\",{width: this.width, height: this.height ,sideOrientation: BABYLON.Mesh.DOUBLESIDE},this.scene);\r\n background.material = new BABYLON.StandardMaterial(\"\", this.scene);\r\n background.material.diffuseColor = new BABYLON.Color3(0, 0, 0);\r\n background.parent = this.mesh.parent;\r\n background.setEnabled(false);\r\n background.isPickable = false;\r\n\r\n // videoControlls: slider/timer\r\n let distance = -this.height*1.38;\r\n let videoControllsSize = parseInt(this.width > this.height ? this.width : this.height)*1.05;\r\n var videoControlls = BABYLON.MeshBuilder.CreatePlane(\"VideoControlls\", {width: videoControllsSize, height: videoControllsSize,sideOrientation: BABYLON.Mesh.DOUBLESIDE}, this.scene);\r\n videoControlls.parent = this.mesh.parent;\r\n videoControlls.position.y = distance;\r\n videoControlls.position.z = 5;\r\n videoControlls.rotation.y = Math.PI;\r\n\r\n var advancedTexture2 = GUI.AdvancedDynamicTexture.CreateForMesh(videoControlls);\r\n \r\n var rect1 = new GUI.Rectangle();\r\n rect1.verticalAlignment = GUI.Control.VERTICAL_ALIGNMENT_TOP;\r\n rect1.top = \"60px\";\r\n rect1.height = \"100px\";\r\n rect1.cornerRadius = 10;\r\n rect1.thickness = 0;\r\n rect1.background = rect1.color = \"#333333\";\r\n advancedTexture2.addControl(rect1); \r\n\r\n var grid = new GUI.Grid(); \r\n grid.addColumnDefinition(1);\r\n grid.addRowDefinition(20,true);\r\n grid.addRowDefinition(0.5);\r\n rect1.addControl(grid); \r\n\r\n var minColWidth = 0.06;\r\n var seperatorWidth = 1 - (minColWidth*11.5);\r\n var gridControls = new GUI.Grid();\r\n gridControls.addColumnDefinition(minColWidth*1.5);\r\n gridControls.addColumnDefinition(minColWidth*2);\r\n gridControls.addColumnDefinition(minColWidth*3);\r\n gridControls.addColumnDefinition(minColWidth*3);\r\n gridControls.addColumnDefinition(minColWidth);\r\n gridControls.addColumnDefinition(seperatorWidth);\r\n gridControls.addColumnDefinition(minColWidth);\r\n gridControls.addColumnDefinition(minColWidth);\r\n gridControls.paddingLeft = \"20px\";\r\n gridControls.paddingRight = \"20px\";\r\n grid.addControl(gridControls,1,0);\r\n\r\n\r\n // Zeitleiste\r\n var sliderUI = new GUI.Slider();\r\n sliderUI.hoverCursor = \"pointer\";\r\n sliderUI.value = 0;\r\n sliderUI.minimum = 0;\r\n sliderUI.maximum = 1;\r\n this.video.onloadedmetadata = function() { sliderUI.maximum = this.duration;};\r\n sliderUI.height = \"20px\";\r\n sliderUI.barOffset = \"0px\";\r\n sliderUI.isThumbCircle = true; \r\n sliderUI.isThumbClamped = true;\r\n sliderUI.thumbColor = this.context.primaryColor;\r\n sliderUI.borderColor = this.context.primaryColor;\r\n sliderUI.background = \"#111111\";\r\n sliderUI.color = this.context.primaryColor;\r\n grid.addControl(sliderUI,0,0); \r\n \r\n //Play/Pause Button \r\n var playpauseButton2 = new GUI.Button(\"playPauseBtn2\");\r\n playpauseButton2.hoverCursor = \"pointer\";\r\n playpauseButton2.thickness = 0;\r\n var playpauseButton2Img = new GUI.Image(\"\",require(\"@/assets/pause.svg\"));\r\n playpauseButton2.width = \"48px\";\r\n playpauseButton2.height = \"48px\";\r\n playpauseButton2.addControl(playpauseButton2Img);\r\n gridControls.addControl(playpauseButton2, 0, 0);\r\n\r\n // Sound Button\r\n var soundBtn = new GUI.Button(\"soundBtn\");\r\n soundBtn.hoverCursor = \"pointer\";\r\n soundBtn.thickness = 0;\r\n var soundImage = new GUI.Image(\"\", this.video.muted ? require(\"@/assets/volume_off_white_24dp.svg\") : require(\"@/assets/volume_up_white_24dp.svg\"));\r\n soundImage.width = \"48px\";\r\n soundImage.height = \"48px\";\r\n soundBtn.addControl(soundImage);\r\n gridControls.addControl(soundBtn, 0, 1);\r\n \r\n //Volume Slider\r\n var volumeSlider = new GUI.Slider(\"volumeSlider\");\r\n volumeSlider.hoverCursor = \"pointer\";\r\n volumeSlider.value = this.video.volume;\r\n volumeSlider.minimum = 0;\r\n volumeSlider.maximum = 1;\r\n volumeSlider.height = \"14px\";\r\n volumeSlider.barOffset = \"0px\";\r\n volumeSlider.isThumbCircle = true; \r\n volumeSlider.isThumbClamped = true;\r\n volumeSlider.thumbColor = this.context.primaryColor;\r\n volumeSlider.borderColor = this.context.primaryColor;\r\n volumeSlider.background = \"#111111\";\r\n volumeSlider.color = this.context.primaryColor;\r\n gridControls.addControl(volumeSlider,0,2)\r\n\r\n\r\n //Video Laufzeit Text\r\n var time = new GUI.TextBlock();\r\n // time.fontFamily = this.context.fontFamily;\r\n time.left = \"28px\";\r\n time.text = \"0:00/0:00\";\r\n time.color = \"#ffffff\";\r\n time.fontSize = 26;\r\n time.textHorizontalAlignment = GUI.Control.HORIZONTAL_ALIGNMENT_LEFT;\r\n time.textVerticalAlignment = GUI.Control.VERTICAL_ALIGNMENT_CENTER;\r\n gridControls.addControl(time, 0, 3);\r\n\r\n //Popup Video Window\r\n var openWindowBtn = new GUI.Button(\"openWindow\");\r\n openWindowBtn.hoverCursor = \"pointer\";\r\n openWindowBtn.thickness = 0;\r\n var openWindowBtnImg = new GUI.Image(\"\",require(\"@/assets/web_asset.svg\"));\r\n openWindowBtn.width = \"48px\";\r\n openWindowBtn.height = \"48px\";\r\n openWindowBtn.addControl(openWindowBtnImg);\r\n gridControls.addControl(openWindowBtn, 0, 8);\r\n\r\n\r\n this.mesh.actionManager = new BABYLON.ActionManager(this.scene);\r\n\r\n\r\n // INTERACTIONS ------------------------------\r\n let drag = false;\r\n let volDrag = false;\r\n\r\n var volumeValue = 0;\r\n\r\n // Open Video Gallery inside Pop-Up\r\n openWindowBtn.onPointerClickObservable.add(() => {\r\n this.video.pause();\r\n window.dispatchEvent(new CustomEvent(\"openURL\",{detail: {url: this.video.src}}));\r\n });\r\n\r\n // When user starts dragging pause video\r\n // Detach camera otherwise camera will move while dragging the slider\r\n sliderUI.onPointerDownObservable.add(() => {\r\n drag = true;\r\n this.scene.getCameraByName(\"MainCamera\").detachControl();\r\n this.video.pause();\r\n }); \r\n\r\n // When user stops dragging play video\r\n // attach camera again\r\n sliderUI.onPointerUpObservable.add(() => {\r\n drag = false;\r\n this.scene.getCameraByName(\"MainCamera\").attachControl(document.getElementById(\"renderCanvas\"), true, false,4);\r\n this.video.currentTime = sliderUI.value;\r\n time.text = this.updateTime();\r\n this.video.play();\r\n });\r\n \r\n // Volume Behavior\r\n soundBtn.onPointerClickObservable.add( () => {\r\n if(!this.video.muted){\r\n soundBtn.removeControl(soundImage);\r\n soundImage.source = require(\"@/assets/volume_off_white_24dp.svg\");\r\n soundBtn.addControl(soundImage);\r\n volumeSlider.value = 0;\r\n } else {\r\n soundBtn.removeControl(soundImage);\r\n soundImage.source = require(\"@/assets/volume_up_white_24dp.svg\");\r\n soundBtn.addControl(soundImage);\r\n if(volumeValue < 0.01){\r\n volumeSlider.value = 1;\r\n } else {\r\n volumeSlider.value = volumeValue;\r\n }\r\n }\r\n this.video.volume = volumeSlider.value;\r\n this.video.muted = !this.video.muted;\r\n });\r\n\r\n\r\n volumeSlider.onPointerDownObservable.add(() => {\r\n volDrag = true;\r\n this.scene.getCameraByName(\"MainCamera\").detachControl();\r\n });\r\n volumeSlider.onPointerUpObservable.add(() => {\r\n volDrag = false;\r\n this.scene.getCameraByName(\"MainCamera\").attachControl(document.getElementById(\"renderCanvas\"), true, false,4);\r\n this.video.volume = volumeSlider.value;\r\n if(this.video.volume != 0){\r\n soundBtn.removeControl(soundImage);\r\n soundImage.source = require(\"@/assets/volume_up_white_24dp.svg\");\r\n soundBtn.addControl(soundImage);\r\n this.video.muted = false;\r\n }\r\n }); \r\n volumeSlider.onPointerMoveObservable.add(() => {\r\n if(volDrag){\r\n document.getElementById(\"renderCanvas\").style.cursor = \"pointer\";\r\n this.video.volume = volumeSlider.value;\r\n if(volumeSlider.value == 0){\r\n soundBtn.removeControl(soundImage);\r\n soundImage.source = require(\"@/assets/volume_off_white_24dp.svg\");\r\n soundBtn.addControl(soundImage);\r\n this.video.muted = true;\r\n } else {\r\n if(this.video.muted){\r\n soundBtn.removeControl(soundImage);\r\n soundImage.source = require(\"@/assets/volume_up_white_24dp.svg\");\r\n soundBtn.addControl(soundImage);\r\n this.video.muted = false;\r\n }\r\n volumeValue = volumeSlider.value;\r\n }\r\n }\r\n }); \r\n\r\n // change currentTime of video when user is dragging the slider \r\n // changing cursor to pointer because the cursor somehow changes to default when dragging\r\n sliderUI.onPointerMoveObservable.add(() => {\r\n if(drag){\r\n document.getElementById(\"renderCanvas\").style.cursor = \"pointer\";\r\n this.video.currentTime = sliderUI.value;\r\n time.text = this.updateTime();\r\n }\r\n }); \r\n\r\n // Refresh slider value when currentTime of video changes\r\n // Dont update slider when user interacts with it\r\n this.video.ontimeupdate = () =>{\r\n if(!drag){\r\n time.text = this.updateTime();\r\n sliderUI.value = this.video.currentTime;\r\n }\r\n };\r\n \r\n // Switch pause to play Button when video is playing\r\n this.video.onplay = function() {\r\n advancedTexture.removeControl(image);\r\n image = new GUI.Image(\"\", require(\"@/assets/pause-button.png\"));\r\n advancedTexture.addControl(image);\r\n playpauseButton2.removeControl(playpauseButton2Img);\r\n playpauseButton2Img = new GUI.Image(\"\",require(\"@/assets/pause.svg\"));\r\n playpauseButton2.addControl(playpauseButton2Img);\r\n };\r\n\r\n // Switch play to pause Button when video is paused\r\n this.video.onpause = function() {\r\n advancedTexture.removeControl(image);\r\n image = new GUI.Image(\"\", require(\"@/assets/play-button.png\"));\r\n advancedTexture.addControl(image);\r\n playpauseButton2.removeControl(playpauseButton2Img);\r\n playpauseButton2Img = new GUI.Image(\"\",require(\"@/assets/play.svg\"));\r\n playpauseButton2.addControl(playpauseButton2Img);\r\n };\r\n\r\n // Click: play/pause video\r\n this.mesh.actionManager.registerAction(new BABYLON.ExecuteCodeAction(BABYLON.ActionManager.OnPickTrigger, () =>{ \r\n this.video.paused ? this.video.play() : this.video.pause();\r\n }));\r\n\r\n playpauseButton2.onPointerClickObservable.add(()=>{\r\n this.video.paused ? this.video.play() : this.video.pause();\r\n })\r\n \r\n // hover out: Hide play/pause Button\r\n this.mesh.actionManager.registerAction(new BABYLON.ExecuteCodeAction(BABYLON.ActionManager.OnPointerOutTrigger, function(){ \r\n BABYLON.Animation.CreateAndStartAnimation(\"\", playpauseButton, \"visibility\", 10,2, playpauseButton.visibility, 0, 0, ease, function(){ \r\n playpauseButton.setEnabled(false);\r\n }) \r\n BABYLON.Animation.CreateAndStartAnimation(\"\", background, \"visibility\", 10,2, background.visibility, 0, 0, ease, function(){ \r\n background.setEnabled(false);\r\n }) \r\n }));\r\n \r\n // hover over: Display play/pause Button\r\n this.mesh.actionManager.registerAction(new BABYLON.ExecuteCodeAction(BABYLON.ActionManager.OnPointerOverTrigger, function(){\r\n playpauseButton.setEnabled(true);\r\n BABYLON.Animation.CreateAndStartAnimation(\"\", playpauseButton, \"visibility\", 10,2, 0, 1, 0, ease);\r\n background.setEnabled(true);\r\n BABYLON.Animation.CreateAndStartAnimation(\"\", background, \"visibility\", 10,2, 0, 0.7, 0, ease);\r\n }));\r\n }\r\n\r\n updateTime(){ \r\n let currenTime = this.formatTime(this.video.currentTime);\r\n let duration = this.formatTime(this.video.duration);\r\n return currenTime + \"/\" + duration;\r\n }\r\n\r\n formatTime(time){\r\n var mins = Math.floor(time / 60);\r\n var secs = Math.floor(time - mins * 60);\r\n return mins + \":\" + (secs < 10 ? \"0\" : \"\") + secs;\r\n }\r\n \r\n enable(){\r\n super.enable(); \r\n if(this.prefab.getAutoplay() ===\"true\" && this.video)\r\n this.video.play();\r\n }\r\n\r\n disable(){\r\n super.disable();\r\n if(this.video)\r\n this.video.pause();\r\n }\r\n\r\n}\r\n\r\nexport default Video;\r\n\r\n","import * as BABYLON from 'babylonjs';\r\nimport BasicComponent from './BasicComponent';\r\nimport * as GUI from 'babylonjs-gui';\r\nimport MediaManager from '@/api/MediaManager';\r\nimport providedVideos from \"../../../../public/media/Marabu/videos/videos.json\";\r\n\r\nclass VideoList extends BasicComponent {\r\n getType() { return \"VideoList\"; }\r\n\r\n constructor( { id } = {} ) {\r\n super( { id });\r\n\r\n this.material = undefined;\r\n this.texture = undefined;\r\n this.mesh = undefined;\r\n this.video = undefined;\r\n this.prefab = undefined;\r\n this.context = undefined;\r\n this.width = undefined;\r\n this.height = undefined;\r\n\r\n this.videoManager = undefined;\r\n this.videoList = undefined;\r\n this.videos = undefined; \r\n this.listOrientation = undefined;\r\n this.controllSize = undefined;\r\n this.ratioX = undefined;\r\n this.ratioY = undefined;\r\n\r\n this.listGrid = undefined;\r\n this.currentVideoIndex = 0;\r\n\r\n this.selectedVideos = []\r\n } \r\n\r\n setVideoData(){\r\n this.videoIDs = this.prefab.getContentIDs().split(\",\");\r\n console.log()\r\n this.videoIDs.forEach(videoID => {\r\n var videoData = providedVideos.find(video => video.id == videoID);\r\n if(videoData){\r\n this.selectedVideos.push(videoData);\r\n console.log(\"Found Video with ID:\",videoID);\r\n } else {\r\n console.log(\"Cannot find Video with ID:\", videoID);\r\n }\r\n });\r\n\r\n }\r\n\r\n construct( context, prefab ) { \r\n this.context = context;\r\n this.prefab = prefab;\r\n \r\n // Create Base\r\n const base = super.construct( context, prefab ).getRootNode();\r\n base.scaling = new BABYLON.Vector3(1.1,1.1,1.1);\r\n base.position = prefab.getPosition();\r\n base.lookAt(new BABYLON.Vector3(0,0,0));\r\n\r\n let base2 = new BABYLON.TransformNode(\"\");\r\n base2.rotation.x += prefab.getRotationX() * Math.PI / 180;\r\n base2.rotation.y += prefab.getRotationY() * Math.PI / 180;\r\n base2.rotation.z += prefab.getRotationZ() * Math.PI / 180;\r\n base2.parent = base;\r\n\r\n this.width = parseInt(prefab.getWidth());\r\n this.height = parseInt(prefab.getHeight());\r\n \r\n this.setVideoData();\r\n \r\n window.addEventListener(\"languageChange\", () => {\r\n this.setVideoData();\r\n\r\n window.scene.getMeshByName(\"VideoList\").dispose();\r\n this.createVideoList();\r\n \r\n this.updateVideo();\r\n });\r\n console.log(this.selectedVideos);\r\n console.log(this.context.publicPath + \"/media/Marabu/videos/\" + this.selectedVideos[0].id);\r\n let videoTexture = new BABYLON.VideoTexture(\"VisualComponentVideo_Video\", this.context.publicPath + \"/media/Marabu/videos/\" + this.selectedVideos[0].filename, window.scene, false, false, BABYLON.TRILINEAR_SAMPLINGMODE, { \r\n loop: prefab.getLooping() === \"true\",\r\n autoPlay: false,\r\n autoUpdateTexture: true,\r\n // poster: prefab.getPoster(), //TODO Poster from CMS\r\n });\r\n \r\n this.texture = videoTexture;\r\n this.video = videoTexture.video;\r\n this.video.volume = prefab.getVolumeScale()/100;\r\n \r\n // quickly play and pause video to get first frame as thumbnail\r\n if(this.video.paused && context.$browserDetect.isChrome){\r\n console.log(\"VideoSphere: fixing Chrome thumbnail\");\r\n\r\n // muted videos can be autoplayed\r\n // mute and play Video to get thumbnail, \r\n this.video.muted = true;\r\n let promise = this.video.play();\r\n \r\n // After play is successful pause and unmute video again\r\n promise.then( ()=>{\r\n this.video.pause();\r\n this.video.muted = false;\r\n \r\n // Ensure autoplay after user interaction for chrome\r\n if(prefab.getAutoplay() === \"true\"){\r\n window.scene.onPointerDown = () => {\r\n this.video.play();\r\n window.scene.onPointerDown = undefined;\r\n }\r\n }\r\n })\r\n }\r\n\r\n // Create Material\r\n this.material = new BABYLON.StandardMaterial(\"VisualComponentVideo_VideoMaterial\" + \"_material\", window.scene);\r\n this.material.emissiveTexture = this.texture;\r\n this.material.disableLighting = true; \r\n this.material.opacityTexture = this.texture; \r\n\r\n // Create Mesh\r\n this.mesh = BABYLON.MeshBuilder.CreatePlane(\"Video\", {width: this.width , height: this.height , sideOrientation: BABYLON.Mesh.DOUBLESIDE }, window.scene);\r\n this.mesh.material = this.material;\r\n this.mesh.rotation.y = Math.PI;\r\n this.mesh.scaling = new BABYLON.Vector3(1.2,1.2,1.2);\r\n this.mesh.parent = base2;\r\n \r\n let screenBackground = BABYLON.MeshBuilder.CreatePlane(\"Background\",{width: this.width, height: this.height ,sideOrientation: BABYLON.Mesh.DOUBLESIDE},window.scene);\r\n screenBackground.material = new BABYLON.StandardMaterial(\"\", window.scene);\r\n screenBackground.material.diffuseColor = new BABYLON.Color3(0, 0, 0);\r\n screenBackground.rotation.y = Math.PI;\r\n screenBackground.position.z = -0.1;\r\n screenBackground.setEnabled(true);\r\n screenBackground.parent = this.mesh.parent;\r\n\r\n\r\n this.createControlls();\r\n this.createVideoList();\r\n \r\n window.addEventListener('changeVideoGallery',(e) => {\r\n // Change Volume\r\n if(e.detail.volume != undefined)\r\n this.video.volume = e.detail.volume;\r\n \r\n // Change Time\r\n if(e.detail.currentTime != undefined)\r\n this.video.currentTime = e.detail.currentTime;\r\n \r\n // Play/Pause Video\r\n if(e.detail.paused != undefined && this.video.paused != e.detail.paused)\r\n e.detail.paused ? this.video.pause() : this.video.play();\r\n \r\n // Change Video\r\n if(e.detail.currentVideoID != undefined && this.currentVideoIndex != e.detail.currentVideoID){\r\n this.currentVideoIndex = e.detail.currentVideoID;\r\n for (let i = 0; i < this.listGrid.children.length; i++) {\r\n this.listGrid.children[i].thickness = i == this.currentVideoIndex ? 10 : 0;\r\n this.listGrid.children[i].children[0].children[3].children[0].source = i == this.currentVideoIndex ? this.context.publicPath + \"/media/Marabu/icons/pause.svg\" : this.context.publicPath + \"/media/Marabu/icons/play.svg\";\r\n }\r\n this.video.src = this.context.publicPath + \"/media/Marabu/videos/\" + this.selectedVideos[this.currentVideoIndex].filename;\r\n setTimeout(() => {\r\n for (let i = 0; i < this.listGrid.children.length; i++) \r\n if(i == this.currentVideoIndex)\r\n this.listGrid.children[i].children[0].children[3].children[0].source = this.context.publicPath + \"/media/Marabu/icons/pause.svg\";\r\n this.video.play();\r\n }, 500);\r\n }\r\n });\r\n\r\n base.getChildMeshes().forEach(mesh => {\r\n mesh.renderingGroupId = 2;\r\n });\r\n\r\n return base;\r\n }\r\n \r\n\r\n createControlls(){\r\n var ease = new BABYLON.CubicEase();\r\n ease.setEasingMode(BABYLON.EasingFunction.EASINGMODE_EASEINOUT);\r\n \r\n // Create Play/Pause Button\r\n // shows play/pause button when you hover over the video element\r\n var playpauseButton = BABYLON.Mesh.CreatePlane(\"Play/PauseButton\", 20, window.scene);\r\n playpauseButton.rotation.y = Math.PI;\r\n playpauseButton.parent = this.mesh.parent;\r\n playpauseButton.setEnabled(false);\r\n playpauseButton.scaling = new BABYLON.Vector3(1.2,1.2,1.2);\r\n var advancedTexture = GUI.AdvancedDynamicTexture.CreateForMesh(playpauseButton);\r\n var image = new GUI.Image(\"\", this.context.publicPath + \"/media/Marabu/icons/play-button.png\");\r\n advancedTexture.addControl(image);\r\n playpauseButton.isPickable = false;\r\n\r\n // Black plane before Video that will be visible when you hover over the video\r\n let background = BABYLON.MeshBuilder.CreatePlane(\"Background\",{width: this.width, height: this.height ,sideOrientation: BABYLON.Mesh.DOUBLESIDE},window.scene);\r\n background.material = new BABYLON.StandardMaterial(\"\", window.scene);\r\n background.material.diffuseColor = new BABYLON.Color3(0, 0, 0);\r\n background.parent = this.mesh.parent;\r\n background.setEnabled(false);\r\n background.isPickable = false;\r\n background.scaling = new BABYLON.Vector3(1.2,1.2,1.2);\r\n\r\n // videoControlls: slider/timer\r\n let distance = -this.height * 1.5 - 1.5;\r\n let videoControllsSize = this.controllSize = 10 + parseInt(this.width > this.height ? this.width : this.height);\r\n var videoControlls = BABYLON.MeshBuilder.CreatePlane(\"VideoControlls\", {width: videoControllsSize, height: videoControllsSize,sideOrientation: BABYLON.Mesh.DOUBLESIDE}, window.scene);\r\n videoControlls.parent = this.mesh.parent;\r\n videoControlls.position.y = distance;\r\n videoControlls.position.z = 5;\r\n videoControlls.rotation.y = Math.PI;\r\n\r\n var advancedTexture2 = GUI.AdvancedDynamicTexture.CreateForMesh(videoControlls);\r\n \r\n var rect1 = new GUI.Rectangle();\r\n rect1.verticalAlignment = GUI.Control.VERTICAL_ALIGNMENT_TOP;\r\n rect1.top = \"60px\";\r\n rect1.height = \"100px\";\r\n rect1.cornerRadius = 10;\r\n rect1.thickness = 0;\r\n rect1.background = rect1.color = \"#333333\";\r\n advancedTexture2.addControl(rect1); \r\n\r\n var grid = new GUI.Grid(); \r\n grid.addColumnDefinition(1);\r\n grid.addRowDefinition(20,true);\r\n grid.addRowDefinition(0.5);\r\n rect1.addControl(grid); \r\n\r\n var minColWidth = 0.06;\r\n var seperatorWidth = 1 - (minColWidth*11.5);\r\n var gridControls = new GUI.Grid();\r\n gridControls.addColumnDefinition(minColWidth);\r\n gridControls.addColumnDefinition(minColWidth*1.5);\r\n gridControls.addColumnDefinition(minColWidth);\r\n gridControls.addColumnDefinition(minColWidth);\r\n gridControls.addColumnDefinition(minColWidth*2);\r\n gridControls.addColumnDefinition(minColWidth*3);\r\n gridControls.addColumnDefinition(seperatorWidth);\r\n gridControls.addColumnDefinition(minColWidth);\r\n gridControls.addColumnDefinition(minColWidth);\r\n gridControls.paddingLeft = \"20px\";\r\n gridControls.paddingRight = \"20px\";\r\n grid.addControl(gridControls,1,0);\r\n\r\n\r\n // Zeitleiste\r\n var sliderUI = new GUI.Slider();\r\n sliderUI.hoverCursor = \"pointer\";\r\n sliderUI.value = 0;\r\n sliderUI.minimum = 0;\r\n sliderUI.maximum = 1;\r\n this.video.onloadedmetadata = function() { sliderUI.maximum = this.duration;};\r\n sliderUI.height = \"20px\";\r\n sliderUI.barOffset = \"0px\";\r\n sliderUI.isThumbCircle = true; \r\n sliderUI.isThumbClamped = true;\r\n sliderUI.thumbColor = this.context.primaryColor;\r\n sliderUI.borderColor = this.context.primaryColor;\r\n sliderUI.background = \"#111111\";\r\n sliderUI.color = this.context.primaryColor;\r\n grid.addControl(sliderUI,0,0); \r\n \r\n // Skip Buttons\r\n var skipPrevBtn = new GUI.Button(\"skipPrevBtn\");\r\n skipPrevBtn.hoverCursor = \"pointer\";\r\n skipPrevBtn.thickness = 0;\r\n var skipPrevImg = new GUI.Image(\"\",this.context.publicPath + \"/media/Marabu/icons/skip_previous.svg\");\r\n skipPrevBtn.width = \"48px\";\r\n skipPrevBtn.height = \"48px\";\r\n skipPrevBtn.addControl(skipPrevImg);\r\n gridControls.addControl(skipPrevBtn, 0, 0);\r\n\r\n var skipNextBtn = new GUI.Button(\"skipNextBtn\");\r\n skipNextBtn.hoverCursor = \"pointer\";\r\n skipNextBtn.thickness = 0;\r\n var skipNextImg = new GUI.Image(\"\",this.context.publicPath + \"/media/Marabu/icons/skip_next.svg\");\r\n skipNextBtn.width = \"48px\";\r\n skipNextBtn.height = \"48px\";\r\n skipNextBtn.addControl(skipNextImg);\r\n gridControls.addControl(skipNextBtn, 0, 2);\r\n\r\n //Play/Pause Button \r\n var playpauseButton2 = new GUI.Button(\"playPauseBtn2\");\r\n playpauseButton2.hoverCursor = \"pointer\";\r\n playpauseButton2.thickness = 0;\r\n var playpauseButton2Img = new GUI.Image(\"\",this.context.publicPath + \"/media/Marabu/icons/play.svg\");\r\n playpauseButton2.width = \"48px\";\r\n playpauseButton2.height = \"48px\";\r\n playpauseButton2.addControl(playpauseButton2Img);\r\n gridControls.addControl(playpauseButton2, 0, 1);\r\n\r\n // Sound Button\r\n var soundBtn = new GUI.Button(\"soundBtn\");\r\n soundBtn.hoverCursor = \"pointer\";\r\n soundBtn.thickness = 0;\r\n var soundImage = new GUI.Image(\"\",this.context.publicPath + \"/media/Marabu/icons/volume_up_white_24dp.svg\");\r\n soundImage.width = \"48px\";\r\n soundImage.height = \"48px\";\r\n soundBtn.addControl(soundImage);\r\n gridControls.addControl(soundBtn, 0, 3);\r\n \r\n //Volume Slider\r\n var volumeSlider = new GUI.Slider(\"volumeSlider\");\r\n volumeSlider.hoverCursor = \"pointer\";\r\n volumeSlider.value = 1;\r\n volumeSlider.minimum = 0;\r\n volumeSlider.maximum = 1;\r\n volumeSlider.height = \"14px\";\r\n volumeSlider.barOffset = \"0px\";\r\n volumeSlider.isThumbCircle = true; \r\n volumeSlider.isThumbClamped = true;\r\n volumeSlider.thumbColor = this.context.primaryColor;\r\n volumeSlider.borderColor = this.context.primaryColor;\r\n volumeSlider.background = \"#111111\";\r\n volumeSlider.color = this.context.primaryColor;\r\n gridControls.addControl(volumeSlider,0,4)\r\n\r\n //Video Laufzeit Text\r\n var time = new GUI.TextBlock();\r\n // time.fontFamily = this.context.fontFamily;\r\n time.left = \"28px\";\r\n time.text = \"0:00/0:00\";\r\n time.color = \"#ffffff\";\r\n time.fontSize = 26;\r\n time.textHorizontalAlignment = GUI.Control.HORIZONTAL_ALIGNMENT_LEFT;\r\n time.textVerticalAlignment = GUI.Control.VERTICAL_ALIGNMENT_CENTER;\r\n gridControls.addControl(time, 0, 5);\r\n\r\n // Galerie Button\r\n var showListBtn = new GUI.Button(\"showList\");\r\n showListBtn.hoverCursor = \"pointer\";\r\n showListBtn.thickness = 0;\r\n var showListBtnImg = new GUI.Image(\"\",this.context.publicPath + \"/media/Marabu/icons/format_list_bulleted.svg\");\r\n showListBtn.width = \"48px\";\r\n showListBtn.height = \"48px\";\r\n showListBtn.addControl(showListBtnImg);\r\n // gridControls.addControl(showListBtn, 0, 7);\r\n\r\n //Popup Video Window\r\n var openWindowBtn = new GUI.Button(\"openWindow\");\r\n openWindowBtn.hoverCursor = \"pointer\";\r\n openWindowBtn.thickness = 0;\r\n var openWindowBtnImg = new GUI.Image(\"\",this.context.publicPath + \"/media/Marabu/icons/web_asset.svg\");\r\n openWindowBtn.width = \"48px\";\r\n openWindowBtn.height = \"48px\";\r\n openWindowBtn.addControl(openWindowBtnImg);\r\n gridControls.addControl(openWindowBtn, 0, 8);\r\n\r\n this.mesh.actionManager = new BABYLON.ActionManager(window.scene);\r\n\r\n\r\n // INTERACTIONS ------------------------------\r\n let drag = false;\r\n let volDrag = false;\r\n\r\n var volumeValue = 0;\r\n\r\n // Open Video Gallery inside Pop-Up\r\n openWindowBtn.onPointerClickObservable.add(() => {\r\n this.video.pause();\r\n window.dispatchEvent(new CustomEvent(\"openURL\",{detail: {url: this.video.src}}));\r\n });\r\n\r\n // Open Video Gallery List\r\n showListBtn.onPointerClickObservable.add(()=>{\r\n if(this.videoList.visibility == 1){\r\n BABYLON.Animation.CreateAndStartAnimation(\"\", this.videoList, \"visibility\", 30,10, this.videoList.visibility, 0, 0, ease);\r\n BABYLON.Animation.CreateAndStartAnimation(\"\", this.videoList, \"position.y\", 30,10, this.videoList.position.y, this.videoList.position.y+10, 0, ease);\r\n } else {\r\n BABYLON.Animation.CreateAndStartAnimation(\"\", this.videoList, \"visibility\", 30,10, this.videoList.visibility, 1, 0, ease);\r\n BABYLON.Animation.CreateAndStartAnimation(\"\", this.videoList, \"position.y\", 30,10, this.videoList.position.y-30, this.videoList.position.y-10, 0, ease);\r\n }\r\n });\r\n\r\n //Skip Button Function\r\n skipPrevBtn.onPointerClickObservable.add(()=>{\r\n this.currentVideoIndex = this.currentVideoIndex == 0 ? this.selectedVideos.length-1 : this.currentVideoIndex-1;\r\n this.updateVideo();\r\n });\r\n skipNextBtn.onPointerClickObservable.add(()=>{\r\n this.currentVideoIndex = this.currentVideoIndex == this.selectedVideos.length-1 ? 0 : this.currentVideoIndex+1;\r\n this.updateVideo();\r\n });\r\n\r\n\r\n // When user starts dragging pause video\r\n // Detach camera otherwise camera will move while dragging the slider\r\n sliderUI.onPointerDownObservable.add(() => {\r\n drag = true;\r\n window.scene.activeCamera.detachControl();\r\n this.pauseVideo();\r\n }); \r\n\r\n // When user stops dragging play video\r\n // attach camera again\r\n sliderUI.onPointerUpObservable.add(() => {\r\n drag = false;\r\n window.scene.activeCamera.attachControl(document.getElementById(\"renderCanvas\"), true, false,4);\r\n this.video.currentTime = sliderUI.value;\r\n time.text = this.updateTime();\r\n this.playVideo();\r\n });\r\n\r\n // change currentTime of video when user is dragging the slider \r\n // changing cursor to pointer because the cursor somehow changes to default when dragging\r\n sliderUI.onPointerMoveObservable.add(() => {\r\n if(drag){\r\n document.getElementById(\"renderCanvas\").style.cursor = \"pointer\";\r\n this.video.currentTime = sliderUI.value;\r\n time.text = this.updateTime();\r\n }\r\n }); \r\n \r\n // Volume Behavior\r\n soundBtn.onPointerClickObservable.add( () => {\r\n if(!this.video.muted){\r\n soundBtn.removeControl(soundImage);\r\n soundImage.source = this.context.publicPath + \"/media/Marabu/icons/volume_off_white_24dp.svg\";\r\n soundBtn.addControl(soundImage);\r\n volumeSlider.value = 0;\r\n } else {\r\n soundBtn.removeControl(soundImage);\r\n soundImage.source = this.context.publicPath + \"/media/Marabu/icons/volume_up_white_24dp.svg\";\r\n soundBtn.addControl(soundImage);\r\n if(volumeValue < 0.01){\r\n volumeSlider.value = 1;\r\n } else {\r\n volumeSlider.value = volumeValue;\r\n }\r\n }\r\n this.video.volume = volumeSlider.value;\r\n this.video.muted = !this.video.muted;\r\n });\r\n\r\n\r\n volumeSlider.onPointerDownObservable.add(() => {\r\n volDrag = true;\r\n window.scene.activeCamera.detachControl();\r\n });\r\n volumeSlider.onPointerUpObservable.add(() => {\r\n volDrag = false;\r\n window.scene.activeCamera.attachControl(document.getElementById(\"renderCanvas\"), true, false,4);\r\n volumeValue = volumeSlider.value;\r\n this.video.volume = volumeValue;\r\n }); \r\n volumeSlider.onPointerMoveObservable.add(() => {\r\n if(volDrag){\r\n document.getElementById(\"renderCanvas\").style.cursor = \"pointer\";\r\n this.video.volume = volumeSlider.value;\r\n if(volumeSlider.value == 0){\r\n soundBtn.removeControl(soundImage);\r\n soundImage.source = this.context.publicPath + \"/media/Marabu/icons/volume_off_white_24dp.svg\";\r\n soundBtn.addControl(soundImage);\r\n this.video.muted = true;\r\n } else {\r\n if(this.video.muted){\r\n soundBtn.removeControl(soundImage);\r\n soundImage.source = this.context.publicPath + \"/media/Marabu/icons/volume_up_white_24dp.svg\";\r\n soundBtn.addControl(soundImage);\r\n this.video.muted = false;\r\n }\r\n volumeValue = volumeSlider.value;\r\n }\r\n }\r\n }); \r\n \r\n // Refresh slider value when currentTime of video changes\r\n // Dont update slider when user interacts with it\r\n this.video.ontimeupdate = () =>{\r\n if(!drag){\r\n time.text = this.updateTime();\r\n sliderUI.value = this.video.currentTime;\r\n }\r\n };\r\n\r\n // Refrech volume slider value when video volume changes\r\n this.video.onvolumechange = () =>{\r\n volumeSlider.value = this.video.volume; \r\n };\r\n \r\n // Switch pause to play Button when video is playing\r\n this.video.onplay = () =>{\r\n advancedTexture.removeControl(image);\r\n image = new GUI.Image(\"\", this.context.publicPath + \"/media/Marabu/icons/pause-button.png\");\r\n advancedTexture.addControl(image);\r\n playpauseButton2.removeControl(playpauseButton2Img);\r\n playpauseButton2Img = new GUI.Image(\"\",this.context.publicPath + \"/media/Marabu/icons/pause.svg\");\r\n playpauseButton2.addControl(playpauseButton2Img);\r\n };\r\n\r\n // Switch play to pause Button when video is paused\r\n this.video.onpause = () =>{\r\n advancedTexture.removeControl(image);\r\n image = new GUI.Image(\"\", this.context.publicPath + \"/media/Marabu/icons/play-button.png\");\r\n advancedTexture.addControl(image);\r\n playpauseButton2.removeControl(playpauseButton2Img);\r\n playpauseButton2Img = new GUI.Image(\"\",this.context.publicPath + \"/media/Marabu/icons/play.svg\");\r\n playpauseButton2.addControl(playpauseButton2Img);\r\n };\r\n\r\n // Click: play/pause video\r\n this.mesh.actionManager.registerAction(new BABYLON.ExecuteCodeAction(BABYLON.ActionManager.OnPickTrigger, () =>{\r\n this.video.paused ? this.playVideo() : this.pauseVideo();\r\n }));\r\n\r\n playpauseButton2.onPointerClickObservable.add(()=>{\r\n this.video.paused ? this.playVideo() : this.pauseVideo();\r\n })\r\n \r\n // hover out: Hide play/pause Button\r\n this.mesh.actionManager.registerAction(new BABYLON.ExecuteCodeAction(BABYLON.ActionManager.OnPointerOutTrigger, function(){ \r\n BABYLON.Animation.CreateAndStartAnimation(\"\", playpauseButton, \"visibility\", 10,2, playpauseButton.visibility, 0, 0, ease, function(){ \r\n playpauseButton.setEnabled(false);\r\n }) \r\n BABYLON.Animation.CreateAndStartAnimation(\"\", background, \"visibility\", 10,2, background.visibility, 0, 0, ease, function(){ \r\n background.setEnabled(false);\r\n }) \r\n }));\r\n \r\n // hover over: Display play/pause Button\r\n this.mesh.actionManager.registerAction(new BABYLON.ExecuteCodeAction(BABYLON.ActionManager.OnPointerOverTrigger, function(){\r\n playpauseButton.setEnabled(true);\r\n BABYLON.Animation.CreateAndStartAnimation(\"\", playpauseButton, \"visibility\", 10,2, 0, 1, 0, ease);\r\n background.setEnabled(true);\r\n BABYLON.Animation.CreateAndStartAnimation(\"\", background, \"visibility\", 10,2, 0, 0.7, 0, ease);\r\n }));\r\n }\r\n\r\n createVideoList(){\r\n var listWinHeight = this.height + 25;\r\n var listWinWidth = this.height + 25;\r\n var listMesh = BABYLON.MeshBuilder.CreatePlane(\"VideoList\", {width: listWinWidth, height: listWinHeight, sideOrientation: BABYLON.Mesh.DOUBLESIDE}, window.scene);\r\n listMesh.position.x = this.width/2 + listWinWidth/2 + 2;\r\n listMesh.position.y = -6;\r\n listMesh.position.z = 30;\r\n listMesh.rotation.y = -1.15 * Math.PI;\r\n listMesh.parent = this.mesh.parent;\r\n\r\n this.ratioX = this.controllSize / listWinWidth;\r\n this.ratioY = this.controllSize / listWinHeight;\r\n\r\n var itemHeightInPx = 130;\r\n var itemPaddingInPx = 5;\r\n\r\n var advTextureVL = GUI.AdvancedDynamicTexture.CreateForMesh(listMesh);\r\n\r\n var rect3 = new GUI.Rectangle();\r\n rect3.cornerRadius = 20*this.ratioX;\r\n rect3.thickness = 1;\r\n rect3.alpha = 1;\r\n rect3.background = rect3.color = \"#333333\";\r\n advTextureVL.addControl(rect3);\r\n\r\n var scrollPanel = new GUI.ScrollViewer();\r\n scrollPanel.thickness = 0;\r\n scrollPanel.color = \"transparent\";\r\n scrollPanel.paddingTop = 20*this.ratioY+\"px\";\r\n scrollPanel.paddingBottom = 20*this.ratioY+\"px\";\r\n scrollPanel.paddingLeft = 30*this.ratioX+\"px\";\r\n scrollPanel.paddingRight = \"0px\";\r\n scrollPanel.verticalBar.thickness = 0;\r\n scrollPanel.barSize = 20*this.ratioX;\r\n scrollPanel.scrollBackground = \"transparent\";\r\n advTextureVL.addControl(scrollPanel);\r\n\r\n var listWrapper = new GUI.Rectangle();\r\n listWrapper.thickness = 0;\r\n\r\n listWrapper.height = this.selectedVideos.length > 4 ? (this.selectedVideos.length-1)*(itemHeightInPx+4*itemPaddingInPx)*this.ratioY + \"px\" : \"100%\";\r\n scrollPanel.addControl(listWrapper);\r\n\r\n var listGrid = new GUI.Grid();\r\n listGrid.paddingRight = 20*this.ratioX+\"px\";\r\n for(var i=0; i < this.selectedVideos.length; i++){\r\n listGrid.addRowDefinition((itemHeightInPx)*this.ratioY,true);\r\n }\r\n listWrapper.addControl(listGrid);\r\n \r\n for(var i=0; i < this.selectedVideos.length; i++){\r\n var videoListItem = new GUI.Rectangle(\"videoListItem\");\r\n videoListItem.thickness = this.currentVideoIndex == i ? 5 : 0;\r\n videoListItem.paddingTop = itemPaddingInPx*this.ratioY + \"px\";\r\n videoListItem.paddingBottom = itemPaddingInPx*this.ratioY + \"px\";\r\n videoListItem.cornerRadius = 5;\r\n videoListItem.color = this.context.primaryColor;\r\n videoListItem.hoverCursor = \"Pointer\";\r\n\r\n var itemGrid = new GUI.Grid();\r\n itemGrid.paddingTopInPixels = itemPaddingInPx*this.ratioY;\r\n itemGrid.paddingBottomInPixels = itemPaddingInPx*this.ratioY;\r\n itemGrid.paddingLeftInPixels = itemPaddingInPx*this.ratioX;\r\n itemGrid.paddingRightInPixels = itemPaddingInPx*this.ratioX;\r\n itemGrid.addColumnDefinition(0.3);\r\n itemGrid.addColumnDefinition(0.6);\r\n itemGrid.addColumnDefinition(0.1);\r\n videoListItem.addControl(itemGrid);\r\n\r\n var image = new GUI.Image(\"\",this.context.publicPath + \"/media/Marabu/thumbnails/\" + this.selectedVideos[i].thumbnail);\r\n itemGrid.addControl(image,0,0);\r\n\r\n\r\n var titleValue = this.selectedVideos[i].title;\r\n\r\n var text = new GUI.TextBlock();\r\n var maxLineLength = titleValue.length > (maxLineLength*2) ? 18 : 16;\r\n text.fontSize = \"31px\";\r\n text.text = titleValue; //this.wrapText(titleValue,maxLineLength,maxLineLength*2);\r\n text.textVerticalAlignment = GUI.Control.VERTICAL_ALIGNMENT_TOP;\r\n text.textHorizontalAlignment = GUI.Control.HORIZONTAL_ALIGNMENT_LEFT;\r\n text.left = 20*this.ratioX + \"px\";\r\n text.color = \"white\";\r\n itemGrid.addControl(text,0,1);\r\n\r\n var textTime = new GUI.TextBlock();\r\n textTime.textVerticalAlignment = GUI.Control.VERTICAL_ALIGNMENT_BOTTOM;\r\n textTime.textHorizontalAlignment = GUI.Control.HORIZONTAL_ALIGNMENT_LEFT;\r\n textTime.fontSize = \"28px\";\r\n textTime.left = 20*this.ratioX + \"px\";\r\n textTime.text = this.selectedVideos[i].duration; // ZEIT hier ändern!\r\n textTime.color = \"#d6d6d6\";\r\n itemGrid.addControl(textTime,0,1);\r\n\r\n var btn = new GUI.Button();\r\n btn.hoverCursor =\"pointer\";\r\n btn.width = 48*this.ratioX+\"px\";\r\n btn.height = 48*this.ratioY+\"px\";\r\n btn.thickness = 0;\r\n var btnImg = new GUI.Image(\"\",this.context.publicPath + \"/media/Marabu/icons/play.svg\");\r\n btn.addControl(btnImg);\r\n\r\n itemGrid.addControl(btn,0,2);\r\n\r\n listGrid.addControl(videoListItem,i,0);\r\n\r\n console.log(\"Videoitem:\",\r\n this.selectedVideos[i]\r\n )\r\n\r\n // Interactions\r\n const t = i;\r\n videoListItem.onPointerClickObservable.add(()=>{\r\n this.currentVideoIndex = t;\r\n this.updateVideo();\r\n });\r\n\r\n const videoListItemCopy = videoListItem;\r\n videoListItem.onPointerEnterObservable.add(()=>{\r\n videoListItemCopy.background = \"#444444\";\r\n });\r\n videoListItem.onPointerOutObservable.add(()=>{\r\n videoListItemCopy.background = \"transparent\";\r\n });\r\n }\r\n this.listGrid = listGrid;\r\n this.videoList = listMesh;\r\n\r\n // Block Zooming on scroll\r\n listMesh.actionManager = new BABYLON.ActionManager(window.scene);\r\n listMesh.actionManager.registerAction(new BABYLON.ExecuteCodeAction(BABYLON.ActionManager.OnPointerOverTrigger, () => {\r\n this.context.setEnableZooming(false);\r\n }));\r\n listMesh.actionManager.registerAction(new BABYLON.ExecuteCodeAction(BABYLON.ActionManager.OnPointerOutTrigger, () => {\r\n this.context.setEnableZooming(true);\r\n }));\r\n\r\n //detach and attach Camera on scrollbar-hover\r\n scrollPanel.verticalBar.onPointerDownObservable.add(()=>{\r\n window.scene.activeCamera.detachControl();\r\n });\r\n scrollPanel.verticalBar.onPointerUpObservable.add(()=>{\r\n window.scene.activeCamera.attachControl(document.getElementById(\"renderCanvas\"), true, false, 4);\r\n });\r\n }\r\n\r\n wrapText(string, maxLineLetterCount, maxTitleLetterCount){\r\n var words = string.split(\" \");\r\n var lineArray = [];\r\n var lineLetterCount = 0;\r\n var totalLetterCount = 0;\r\n for(var i = 0; i maxLineLetterCount){\r\n lineArray.push(\"\\n\");\r\n lineLetterCount = 0;\r\n } else {\r\n lineLetterCount += words[i].length;\r\n \r\n }\r\n totalLetterCount += words[i].length;\r\n lineArray.push(words[i]);\r\n } else {\r\n lineArray.push(\"...\");\r\n break;\r\n }\r\n }\r\n \r\n var lineString = \"\";\r\n for(var j = 0; j 0 ? (bf.end(bf.length-1) / this.duration) *100: 0;\r\n loadedPercentage = context.$browserDetect.isFirefox && loadedPercentage > 70 ? 100 : loadedPercentage; //Firefox wont trigger progress again when video completely loaded\r\n context.updateRuntimeState({id: prefab.getID(),percentageLoaded: loadedPercentage});\r\n }\r\n\r\n // update runtimestate: change currenTime when the panorama video currenttime changed\r\n // timeupdate event fires when the panorama video attribute currentTime changed\r\n this.video.ontimeupdate = () => {\r\n context.updateRuntimeState({id: this.prefab.getID(),currentTime: this.video.currentTime});\r\n };\r\n \r\n // update runtimestate: change duration when the panorama video meta data are loaded (meta data include duration of video)\r\n this.video.onloadedmetadata = () => {\r\n context.updateRuntimeState({id: this.prefab.getID(),duration: this.video.duration});\r\n setTimeout(() => {\r\n context.setLoadingscreenVisible(false); //Disable loadingscreen when meta data is loaded to prevent white screen\r\n }, 500);\r\n };\r\n \r\n // update runtimestate: change playstate of video to paused when video ended\r\n this.video.onended = () => {\r\n this.pause();\r\n };\r\n \r\n // update runtimestate: set playing state based on video autoplay\r\n context.updateRuntimeState({id: this.prefab.getID(),paused: !context.enablePanoramaVideoAutoplay}); \r\n\r\n\r\n /** Edge cases **/ \r\n \r\n // Chrome shows blackscreen as thumbnail -> happens when video is not autoplayed or browser stops autoplaying\r\n // quickly play and pause video to get first frame as thumbnail\r\n if(this.video.paused && context.$browserDetect.isChrome){\r\n console.log(\"VideoSphere: fixing Chrome thumbnail\");\r\n\r\n // muted videos can be autoplayed\r\n // mute and play Video to get thumbnail, \r\n this.video.muted = true;\r\n let promise = this.video.play();\r\n \r\n // After play is successful pause and unmute video again\r\n promise.then( ()=>{\r\n this.pause(); \r\n this.video.muted = false;\r\n \r\n // Ensure autoplay after user interaction for chrome\r\n if(context.enablePanoramaVideoAutoplay){\r\n this.play();\r\n console.log(\"VideoSphere: adding function to simulate Autoplay - Chrome\");\r\n window.scene.onPointerDown = () => {\r\n if(this.situationID == this.context.currentSituationID)\r\n this.play();\r\n }\r\n }\r\n })\r\n }\r\n\r\n\r\n // if autoplay is enabled and video is paused the browser stopped autoplay -> happens when first situation contains a video and the video is not muted\r\n // Modern Browsers stop autoplay of videos with sound on when the user didnt interact with the document first\r\n // Runs when meta data is loaded because safari stops video when metacdata is loaded\r\n /* TODO: Display an Overlay to force the user to interact with the document first. With that we can get Autoplay with sound on */\r\n this.video.addEventListener(\"loadedmetadata\",() => {\r\n if(this.video.paused && context.enablePanoramaVideoAutoplay){\r\n console.log(\"VideoSphere: adding function to simulate Autoplay\");\r\n this.pause(); //Call pause again to update runtimestate\r\n window.scene.onPointerDown = () => {\r\n if(this.situationID == this.context.currentSituationID)\r\n this.play();\r\n }\r\n }\r\n });\r\n\r\n return base;\r\n }\r\n\r\n \r\n enable(){\r\n super.enable();\r\n if(this.context.enablePanoramaVideoAutoplay)\r\n this.play(); \r\n }\r\n\r\n disable(){\r\n super.disable();\r\n this.pause();\r\n }\r\n\r\n pause(){\r\n super.pause();\r\n this.video.pause();\r\n this.context.updateRuntimeState({id: this.prefab.getID(),paused: this.video.paused}); \r\n }\r\n\r\n play(){\r\n super.play();\r\n this.video.play(); \r\n this.context.updateRuntimeState({id: this.prefab.getID(),paused: this.video.paused}); \r\n \r\n // Remove onPointerDown when user plays video\r\n if(window.scene.onPointerDown)\r\n window.scene.onPointerDown = undefined;\r\n }\r\n\r\n jumpToTimePosition(time){\r\n super.jumpToTimePosition(time);\r\n this.video.currentTime = time;\r\n this.context.updateRuntimeState({id: this.prefab.getID(),currentTime: time}); \r\n }\r\n\r\n changeVolume(volume){\r\n super.changeVolume(volume);\r\n this.video.volume = volume;\r\n this.video.muted = volume == 0;\r\n this.context.updateRuntimeState({id: this.prefab.getID(),volume: volume}); \r\n }\r\n\r\n update () {\r\n\r\n }\r\n}\r\n\r\nexport default VideoSphere;\r\n\r\n","import * as BABYLON from 'babylonjs';\r\nimport VisualComponent from './VisualComponent';\r\nimport MediaManager from '@/api/MediaManager';\r\n\r\nclass Viewer3D extends VisualComponent {\r\n getType() { return \"Viewer3D\"; }\r\n\r\n constructor( { id } = {} ) {\r\n super( { id });\r\n }\r\n\r\n construct(context, prefab) {\r\n const base = super.construct( context, prefab );\r\n\r\n if(prefab.getURL()){\r\n\r\n this.mesh.actionManager = new BABYLON.ActionManager(this.scene);\r\n \r\n this.mesh.actionManager.registerAction(new BABYLON.ExecuteCodeAction(BABYLON.ActionManager.OnPickTrigger, () => {\r\n window.dispatchEvent(new CustomEvent(\"openViewer3D\",{detail:{\r\n meshURL: MediaManager.getMedia(prefab.getURL()).getURL(), \r\n name: prefab.getName(),\r\n }}));\r\n }));\r\n\r\n var ease = new BABYLON.CubicEase();\r\n ease.setEasingMode(BABYLON.EasingFunction.EASINGMODE_EASEINOUT);\r\n\r\n this.mesh.actionManager.registerAction(new BABYLON.ExecuteCodeAction(BABYLON.ActionManager.OnPointerOutTrigger, () => {\r\n BABYLON.Animation.CreateAndStartAnimation(\"\", this.mesh, \"scaling\", 30,10, this.mesh.scaling, new BABYLON.Vector3.One(), 0, ease); \r\n }));\r\n\r\n this.mesh.actionManager.registerAction(new BABYLON.ExecuteCodeAction(BABYLON.ActionManager.OnPointerOverTrigger, () => {\r\n BABYLON.Animation.CreateAndStartAnimation(\"\", this.mesh, \"scaling\", 30,10, this.mesh.scaling, new BABYLON.Vector3.One().scale(1.1), 0, ease);\r\n }));\r\n }\r\n\r\n return base;\r\n }\r\n \r\n}\r\n\r\nexport default Viewer3D;\r\n","import * as BABYLON from 'babylonjs';\r\nimport { Prefab } from '@/store/flux360/PrefabDataTypes';\r\n\r\nimport { Audio, BasicComponent, Text, Transition, URLButton, User, Image, Video, VideoList, ImageSphere, VideoSphere, NotifyPosition, Viewer3D } from '@/components/flux360/components';\r\n\r\nclass Constructor {\r\n getType() { return \"Prefab\"; }\r\n\r\n construct( context, prefab ) {\r\n return new BasicComponent( \r\n { \r\n id: prefab.getSituationID ? prefab.getSituationID() : undefined,\r\n rootNode: new BABYLON.TransformNode(prefab.getType() + \"_\" + prefab.getID(), window.scene)\r\n });\r\n }\r\n}\r\n\r\nclass TextConstructor extends Constructor {\r\n getType() { return Prefab.PrefabType.TextContent; }\r\n\r\n construct( context, prefab ) {\r\n let t = new Text();\r\n t.construct( context, prefab );\r\n return t;\r\n }\r\n \r\n}\r\n\r\nclass VideoConstructor extends Constructor {\r\n getType() { return Prefab.PrefabType.VideoContent; }\r\n\r\n construct( context, prefab ) {\r\n console.log(\"VideoConstructor - starting to construct...\");\r\n let v = new Video();\r\n v.construct( context, prefab );\r\n return v;\r\n }\r\n \r\n}\r\n\r\nclass VideoListConstructor extends Constructor {\r\n getType() { return Prefab.PrefabType.VideoListContent; }\r\n\r\n construct( context, prefab ) {\r\n console.log(\"VideoListConstructor - starting to construct...\");\r\n let v = new VideoList();\r\n v.construct( context, prefab );\r\n return v;\r\n }\r\n \r\n}\r\n\r\nclass ImageConstructor extends Constructor {\r\n getType() { return Prefab.PrefabType.ImageContent; }\r\n\r\n construct( context, prefab ) {\r\n console.log(\"ImageConstructor - starting to construct...\");\r\n let i = new Image();\r\n i.construct( context, prefab );\r\n return i;\r\n }\r\n \r\n}\r\n\r\nclass NotifyPositionConstructor extends Constructor {\r\n getType() { return \"NotifyPositionEvent\"; }\r\n\r\n construct( context, event ) {\r\n let i = new NotifyPosition();\r\n i.construct( context, event );\r\n return i;\r\n }\r\n \r\n}\r\n\r\n\r\nclass TransitionConstructor extends Constructor {\r\n getType() { return Prefab.PrefabType.Transition; }\r\n\r\n construct( context, prefab ) {\r\n let t = new Transition();\r\n t.construct( context, prefab );\r\n return t;\r\n }\r\n}\r\n\r\n\r\nclass URLButtonConstructor extends Constructor {\r\n getType() { return Prefab.PrefabType.URLButton }\r\n\r\n construct( context, prefab ) {\r\n let urlB = new URLButton();\r\n urlB.construct( context, prefab );\r\n return urlB;\r\n }\r\n}\r\n\r\nclass Viewer3DConstructor extends Constructor {\r\n getType() { return Prefab.PrefabType.Viewer3D }\r\n\r\n construct( context, prefab ) {\r\n let viewer = new Viewer3D();\r\n viewer.construct( context, prefab );\r\n return viewer;\r\n }\r\n}\r\n\r\nclass SituationVideoConstructor extends Constructor {\r\n getType() { return Prefab.PrefabType.SituationVideo; }\r\n\r\n construct( context, prefab ) {\r\n let vSph = new VideoSphere();\r\n vSph.construct( context, prefab );\r\n return vSph;\r\n }\r\n\r\n}\r\n\r\nclass AudioConstructor extends Constructor {\r\n getType() { return Prefab.PrefabType.AudioContent; }\r\n\r\n construct( context, prefab ) {\r\n let audio = new Audio();\r\n audio.construct( context, prefab );\r\n return audio;\r\n }\r\n \r\n}\r\n\r\nclass SituationImageConstructor extends Constructor {\r\n getType() { return Prefab.PrefabType.SituationImage; }\r\n\r\n construct( context, prefab ) {\r\n let iSph = new ImageSphere();\r\n iSph.construct( context, prefab );\r\n return iSph;\r\n }\r\n \r\n}\r\n\r\nclass UserCursorConstructor extends Constructor {\r\n getType() { return \"User\"; }\r\n\r\n construct( context, user ) {\r\n let t = new User();\r\n t.construct( context, user );\r\n return t;\r\n }\r\n}\r\n\r\nclass ConstructorManager\r\n{\r\n constructor() {\r\n this.constructors = new Map();\r\n }\r\n\r\n registerConstructor( c ) {\r\n if( c.getType ) {\r\n this.constructors.set( c.getType(), c );\r\n }\r\n }\r\n\r\n constructPrefabSubgraph( context, prefab ) {\r\n if( this.constructors.has( prefab.getType() )){\r\n return this.constructors.get(prefab.getType()).construct( context, prefab );\r\n }\r\n return this.constructors.get(\"Prefab\").construct( context, prefab );\r\n }\r\n}\r\n\r\nconst instance = new ConstructorManager();\r\n\r\ninstance.registerConstructor( new TextConstructor() );\r\ninstance.registerConstructor( new ImageConstructor() );\r\ninstance.registerConstructor( new VideoConstructor() );\r\ninstance.registerConstructor( new VideoListConstructor() );\r\ninstance.registerConstructor( new TransitionConstructor() );\r\ninstance.registerConstructor( new SituationImageConstructor() );\r\ninstance.registerConstructor( new SituationVideoConstructor() );\r\ninstance.registerConstructor( new UserCursorConstructor() );\r\ninstance.registerConstructor( new AudioConstructor() );\r\ninstance.registerConstructor( new URLButtonConstructor() );\r\ninstance.registerConstructor( new Viewer3DConstructor() );\r\ninstance.registerConstructor( new NotifyPositionConstructor() );\r\ninstance.registerConstructor( new Constructor() );\r\n\r\nObject.freeze(instance);\r\n\r\nexport default instance;","\r\n\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PanoramaScene.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PanoramaScene.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PanoramaScene.vue?vue&type=template&id=f597ebbc&\"\nimport script from \"./PanoramaScene.vue?vue&type=script&lang=js&\"\nexport * from \"./PanoramaScene.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div')\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RenderController.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RenderController.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./RenderController.vue?vue&type=template&id=04038856&\"\nimport script from \"./RenderController.vue?vue&type=script&lang=js&\"\nexport * from \"./RenderController.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('md-app',{staticStyle:{\"width\":\"100%\"}},[_c('md-app-drawer',{staticStyle:{\"pointer-events\":\"auto\"},attrs:{\"md-permanent\":\"full\"}},[_c('md-toolbar',{staticClass:\"md-transparent\",attrs:{\"md-elevation\":\"1\"}},[(_vm.panoramaTour)?_c('p',[_vm._v(_vm._s(_vm.panoramaTour.getName()))]):_vm._e()]),_c('md-list',{staticClass:\"md-double-line\"},[_c('md-subheader',[_vm._v(\"Situation\")]),_c('md-list-item',[_c('div',{staticClass:\"md-list-item-text\"},[(_vm.currentSituation)?_c('span',[_vm._v(_vm._s(_vm.currentSituation.getName()))]):_vm._e(),_c('span',[_vm._v(\"Name\")])])]),_c('md-divider'),_c('md-subheader',[_vm._v(\"User\")]),_c('md-list-item',[_c('div',{staticClass:\"md-list-item-text\"},[_c('span',[_vm._v(_vm._s(_vm.localUser.getID())+\" \")]),_c('span',[_vm._v(\"ID \")])])]),_c('md-list-item',[_c('div',{staticClass:\"md-list-item-text\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.acronym),expression:\"acronym\"}],domProps:{\"value\":(_vm.acronym)},on:{\"input\":function($event){if($event.target.composing)return;_vm.acronym=$event.target.value}}}),_c('span',[_vm._v(\"Acronym\")])])]),_c('md-list-item',[_c('div',{staticClass:\"md-list-item-text\"},[_c('span',[_vm._v(_vm._s(_vm.localUser.getRotation())+\" \")]),_c('span',[_vm._v(\"Rotation \")])])]),_c('md-subheader',[_vm._v(\"Users\")]),_c('md-list-item',[_c('button',{on:{\"click\":_vm.addUser}},[_vm._v(\"Add User\")])]),_vm._l((_vm.remoteUsersInCurrentSituation),function(u){return _c('md-list-item',{key:u.getID()},[_vm._v(\" \"+_vm._s(u.getID())+\" \")])})],2),_c('md-list-item',[_c('button',{on:{\"click\":_vm.playSound}},[_vm._v(\"Play\")])]),_c('md-list-item',[_c('button',{on:{\"click\":_vm.pauseSound}},[_vm._v(\"Pause\")])]),_c('md-list-item',[_c('button',{on:{\"click\":_vm.jumpTo}},[_vm._v(\"JumpTo\")])])],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PanoramaSceneUI.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PanoramaSceneUI.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PanoramaSceneUI.vue?vue&type=template&id=24ecc1af&\"\nimport script from \"./PanoramaSceneUI.vue?vue&type=script&lang=js&\"\nexport * from \"./PanoramaSceneUI.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","/**\r\n * Called by vuex stores in case of exceptions/errors.\r\n *\r\n * @param error\r\n */\r\nexport const errorHandler = (error) => {\r\n // TODO: emit an event indicating login failure\r\n console.error(error);\r\n alert(error.message);\r\n};\r\n\r\n","import * as msal from \"@azure/msal-browser\";\r\n\r\n// marabu\r\n// clientId: '46d305eb-f03f-4726-9244-d7d231c86281',\r\n// authority: 'https://login.microsoftonline.com/bb594fc7-a1fc-45de-aae4-91fc7c387655'\r\n\r\n// hcg\r\n// clientId: 'e67abe24-f1f8-464c-ab63-f7818a3dcf60',\r\n// authority: 'https://login.microsoftonline.com/a83377f5-adc4-4996-93f0-ea8dc0da82f7'\r\n\r\nlet msalConfig;\r\n\r\nfunction setupAzureLogin(clientId, authority, redirectUri) {\r\n msalConfig = {\r\n auth: {\r\n clientId: clientId,\r\n authority: authority,\r\n redirectUri: redirectUri\r\n },\r\n };\r\n}\r\n\r\nasync function signIn() {\r\n const msalInstance = new msal.PublicClientApplication(msalConfig);\r\n \r\n const loginRequest = {\r\n scopes: [\"user.read\"],\r\n };\r\n\r\n try {\r\n const authResult = await msalInstance.loginPopup(loginRequest);\r\n //console.log(\"Access token:\", authResult.accessToken);\r\n //console.log(\"User info:\", authResult.account);\r\n return authResult.account;\r\n } catch (error) {\r\n console.log(error);\r\n return null;\r\n }\r\n}\r\nexport function getInitials (name) {\r\n return name.split(\" \").map((n)=>n[0]).join(\"\").toUpperCase();\r\n}\r\n\r\n\r\n/**\r\n * Customer log off from RT CMS.\r\n *\r\n * @param context\r\n */\r\n// async function logOffFromAzure (context) {\r\n// try {\r\n// //await RaumtaenzerApi.logout(context.getters.authToken);\r\n// // Alter state via mutation\r\n// context.commit('setOpenTokSessionInfo', null);\r\n// await context.dispatch('disconnectOpenTok');\r\n//\r\n// // Clean up user and maintain his position in the tour\r\n// // this should not be done, we have not added the current user and we should not remove it...\r\n// const currentSituationID = this.getters.currentSituationID;\r\n// //context.commit('removeUser', this.getters.localUserID);\r\n//\r\n// await context.dispatch('initialize', {currentSituationID});\r\n// console.log('Session cleared');\r\n// } catch (error) {\r\n// //errorHandler(error);\r\n// }\r\n// }\r\n\r\n\r\n\r\nexport { signIn, setupAzureLogin };","\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Flux360.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Flux360.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Flux360.vue?vue&type=template&id=e42962d2&\"\nimport script from \"./Flux360.vue?vue&type=script&lang=js&\"\nexport * from \"./Flux360.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Flux360.vue?vue&type=style&index=0&id=e42962d2&prod&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"MapDialogue\",on:{\"click\":function($event){return _vm.toggleMap();}}},[(_vm.mapURL)?_c('div',{staticClass:\"md-container-specific\",on:{\"click\":function($event){return $event.stopPropagation()}}},[_c('img',{staticClass:\"md-map\",attrs:{\"src\":_vm.publicPath+'/media/'+_vm.mapURL,\"alt\":\"\"}}),_vm._l((_vm.sortedSituations),function(s,i){return _c('SituationPin',{key:s.id,staticClass:\"md-sp\",style:({'left': _vm.mapPins[i] ? _vm.mapPins[i].left : '', 'top': _vm.mapPins[i] ? _vm.mapPins[i].top : ''}),attrs:{\"situation\":s}})})],2):_c('div',{staticClass:\"md-container-generic\"},_vm._l((_vm.sortedSituations),function(s){return _c('SituationCard',{key:s.id,staticClass:\"md-card\",attrs:{\"situation\":s}})}),1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{ref:\"spContainer\",staticClass:\"sp-container\",on:{\"mouseenter\":function($event){return _vm.showSituationCard()},\"mouseleave\":function($event){return _vm.showSituationCard()}}},[_c('div',{on:{\"click\":function($event){return _vm.gotoSituation()}}},[_c('div',{staticClass:\"sp-dot\",class:{ 'sp-currentSituation': _vm.currentSituationID == _vm.situation.id}}),(_vm.usersLength && _vm.enableCommunication)?_c('div',{staticClass:\"sp-ppl\"},[_vm._v(_vm._s(_vm.usersLength))]):_vm._e()]),_c('transition',{attrs:{\"name\":\"fade\"}},[_c('SituationCard',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showCard),expression:\"showCard\"}],ref:\"spCard\",staticClass:\"sp-card\",style:(_vm.cardPosition),attrs:{\"situation\":_vm.situation}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"SituationCard\",on:{\"click\":function($event){return _vm.handleGotoSituationTransition({situationID: _vm.situation.id})}}},[_c('img',{staticClass:\"sc-thumbnail\",class:{'sc-thumbnail-highlight': _vm.currentSituationID == _vm.situation.id},attrs:{\"src\":_vm.publicPath+'/media/'+_vm.panoramaTour.getName()+'/'+_vm.situation.name.trim()+'.'+_vm.thumbnailType,\"alt\":\"\"}}),_c('span',{staticClass:\"sc-name\"},[_vm._v(_vm._s(_vm.situation.name))])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SituationCard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SituationCard.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SituationCard.vue?vue&type=template&id=40f08ad4&scoped=true&\"\nimport script from \"./SituationCard.vue?vue&type=script&lang=js&\"\nexport * from \"./SituationCard.vue?vue&type=script&lang=js&\"\nimport style0 from \"./SituationCard.vue?vue&type=style&index=0&id=40f08ad4&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"40f08ad4\",\n null\n \n)\n\nexport default component.exports","\r\n\r\n\r\n\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SituationPin.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SituationPin.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SituationPin.vue?vue&type=template&id=93c46e92&\"\nimport script from \"./SituationPin.vue?vue&type=script&lang=js&\"\nexport * from \"./SituationPin.vue?vue&type=script&lang=js&\"\nimport style0 from \"./SituationPin.vue?vue&type=style&index=0&id=93c46e92&prod&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\n \r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MapDialogue.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MapDialogue.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./MapDialogue.vue?vue&type=template&id=5e90d808&scoped=true&\"\nimport script from \"./MapDialogue.vue?vue&type=script&lang=js&\"\nexport * from \"./MapDialogue.vue?vue&type=script&lang=js&\"\nimport style0 from \"./MapDialogue.vue?vue&type=style&index=0&id=5e90d808&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5e90d808\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"MediaController\",class:{'mcp-permanentPanel':_vm.enablePermanentPanoramaVideoControls}},[_c('div',{staticClass:\"mcp-container\"},[_c('md-button',{staticClass:\"md-icon-button mcp-playpause\",on:{\"click\":_vm.togglePlayingState}},[(_vm.playingState)?_c('PauseIcon'):_c('PlayIcon')],1),_c('span',{staticClass:\"mcp-slider-container mcp-progress-slider-container\"},[_c('input',{staticClass:\"mcp-slider mcp-progress-slider\",style:(_vm.progressSliderBackground),attrs:{\"type\":\"range\"},domProps:{\"value\":_vm.currentTime/_vm.duration*100},on:{\"input\":function($event){return _vm.changeSlider($event)}}})]),_c('span',{staticClass:\"mcp-progress\"},[_c('span',[_vm._v(_vm._s(_vm.format(_vm.currentTime))+\" / \")]),_c('span',{staticClass:\"mcp-progress-durration\"},[_vm._v(_vm._s(_vm.format(_vm.duration)))])]),_c('span',{staticClass:\"mcp-volume\"},[_c('md-button',{staticClass:\"md-icon-button mcp-volume-button\",on:{\"click\":function($event){return _vm.toggleVolume()}}},[(_vm.volume > .66)?_c('VolumeHigh'):(_vm.volume > .33)?_c('VolumeMedium'):(_vm.volume > 0)?_c('VolumeLow'):_c('VolumeMuteIcon')],1),_c('span',{staticClass:\"mcp-slider-container mcp-volume-slider-container\"},[_c('input',{staticClass:\"mcp-slider mcp-volume-slider\",style:(_vm.volumeSliderBackground),attrs:{\"type\":\"range\"},domProps:{\"value\":_vm.volume*100},on:{\"input\":function($event){return _vm.changeVolume($event)}}})])],1)],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MediaController.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MediaController.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./MediaController.vue?vue&type=template&id=5bce7096&scoped=true&\"\nimport script from \"./MediaController.vue?vue&type=script&lang=js&\"\nexport * from \"./MediaController.vue?vue&type=script&lang=js&\"\nimport style0 from \"./MediaController.vue?vue&type=style&index=0&id=5bce7096&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5bce7096\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('transition',{attrs:{\"name\":\"fade\"}},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.moderatorInSession && _vm.isOnboardingComplete && _vm.enableWaitForModerator),expression:\"!moderatorInSession && isOnboardingComplete && enableWaitForModerator\"}],staticClass:\"WaitForModeratorDialogue\"},[_c('div',{staticClass:\"wm-container\"},[_c('ClockTimeFiveOutline'),_c('h1',{staticClass:\"wm-title\"},[_vm._v(\" \"+_vm._s(_vm.$t('Auf einen Moderator warten...')))])],1)])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n \r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WaitForModeratorDialogue.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WaitForModeratorDialogue.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./WaitForModeratorDialogue.vue?vue&type=template&id=2a015312&scoped=true&\"\nimport script from \"./WaitForModeratorDialogue.vue?vue&type=script&lang=js&\"\nexport * from \"./WaitForModeratorDialogue.vue?vue&type=script&lang=js&\"\nimport style0 from \"./WaitForModeratorDialogue.vue?vue&type=style&index=0&id=2a015312&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2a015312\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"watermark\"},[_c('img',{attrs:{\"src\":_vm.publicPath+'/media/'+_vm.logoURL}})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Watermark.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Watermark.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Watermark.vue?vue&type=template&id=44d1059e&\"\nimport script from \"./Watermark.vue?vue&type=script&lang=js&\"\nexport * from \"./Watermark.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Watermark.vue?vue&type=style&index=0&id=44d1059e&prod&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"Navigation\"},[_c('md-button',{staticClass:\"md-icon-button na-gallery\",on:{\"click\":_vm.toggleGallery}},[_c('span',{staticClass:\"situationName\"},[_vm._v(_vm._s(_vm.currentSituation ? _vm.currentSituation.getName() : \"undefined\"))]),(!_vm.situationGalleryVisible)?_c('ChevronDown'):_c('ChevronUp')],1),_c('div',{staticClass:\"na-navbar\"},[_c('transition',{attrs:{\"name\":\"fade\",\"mode\":\"out-in\"}},[_c('div',{key:_vm.buttonName,staticClass:\"na-navbar-tooltip\"},[_vm._v(_vm._s(_vm.$t(_vm.buttonName)))])]),_c('div',{staticClass:\"na-navbar-buttons\"},[(_vm.enableMap)?_c('md-button',{staticClass:\"md-icon-button\",class:{ 'active-Icon': _vm.mapVisible },attrs:{\"md-ripple\":false},on:{\"click\":_vm.toggleMap,\"mouseover\":function($event){_vm.buttonName = 'Zur Übersicht'}}},[_c('img',{staticClass:\"na-navbar-button-img\",attrs:{\"src\":require(\"@/assets/Map.svg\"),\"alt\":\"\"}})]):_vm._e(),_c('md-button',{staticClass:\"md-icon-button\",class:{ 'active-Icon': _vm.fullScreen },attrs:{\"md-ripple\":false},on:{\"click\":_vm.toggleFullScreen,\"mouseover\":function($event){_vm.buttonName = 'Vollbildmodus'}}},[_c('img',{staticClass:\"na-navbar-button-img\",attrs:{\"src\":require(\"@/assets/Fullscreen.svg\"),\"alt\":\"\"}})]),(_vm.enableSharing)?_c('md-button',{staticClass:\"md-icon-button\",class:{ 'active-Icon': _vm.sharingVisible },attrs:{\"md-ripple\":false},on:{\"click\":_vm.toggleSharing,\"mouseover\":function($event){_vm.buttonName = 'Teilen'}}},[_c('ShareIcon')],1):_vm._e(),(_vm.localUserIsModerator)?_c('md-button',{staticClass:\"md-icon-button\",attrs:{\"md-ripple\":false},on:{\"click\":_vm.toggleModeratorMenue,\"mouseover\":function($event){_vm.buttonName = 'Moderatorfunktionen'}}},[_c('AccountCog')],1):_vm._e(),(!_vm.loggedIn && _vm.enableCommunication && _vm.sessionID)?_c('md-button',{staticClass:\"md-icon-button\",class:{ 'active-Icon': _vm.loginDialogueVisible},attrs:{\"md-ripple\":false},on:{\"click\":_vm.toggleLoginDialogue,\"mouseover\":function($event){_vm.buttonName = 'Kommunikation'}}},[_c('img',{staticClass:\"na-navbar-button-img\",attrs:{\"src\":require(\"@/assets/Communication.svg\"),\"alt\":\"\"}})]):_vm._e(),_c('md-button',{staticClass:\"md-icon-button\",class:{ 'active-Icon': _vm.tutorialVisible},attrs:{\"md-ripple\":false},on:{\"click\":_vm.toggleTutorialDialogue,\"mouseover\":function($event){_vm.buttonName = 'Hilfe'}}},[_c('img',{staticClass:\"na-navbar-button-img\",attrs:{\"src\":require(\"@/assets/Tutorial.svg\"),\"alt\":\"\"}})]),(_vm.gyrosSupported)?_c('md-button',{staticClass:\"md-icon-button\",class:{ 'active-Icon': _vm.gyrosActive },attrs:{\"md-ripple\":false},on:{\"click\":_vm.toggleGyros}},[_c('img',{staticClass:\"na-navbar-button-img\",attrs:{\"src\":require(\"@/assets/gyrosicon.png\"),\"alt\":\"\"}})]):_vm._e(),(_vm.enableBugReport)?_c('md-button',{staticClass:\"md-icon-button\",class:{ 'active-Icon': _vm.bugReportVisible },attrs:{\"md-ripple\":false},on:{\"click\":_vm.toggleBugReport,\"mouseover\":function($event){_vm.buttonName = 'Fehlermeldung'}}},[_c('img',{staticClass:\"na-navbar-button-img\",attrs:{\"src\":require(\"@/assets/bugreport icon.png\"),\"alt\":\"\"}})]):_vm._e(),_c('md-button',{staticClass:\"md-icon-button\",class:{ 'active-Icon': _vm.contactVisible },attrs:{\"md-ripple\":false},on:{\"click\":_vm.toggleContact,\"mouseover\":function($event){_vm.buttonName = 'Kontakt'}}},[_c('Forum')],1)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Navigation.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Navigation.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Navigation.vue?vue&type=template&id=0fbba902&scoped=true&\"\nimport script from \"./Navigation.vue?vue&type=script&lang=js&\"\nexport * from \"./Navigation.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Navigation.vue?vue&type=style&index=0&id=0fbba902&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0fbba902\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"ShareDialogue\",on:{\"click\":function($event){return _vm.toggleSharing()}}},[_c('div',{staticClass:\"sd-container\",on:{\"click\":function($event){return $event.stopPropagation()}}},[_c('h1',{staticClass:\"sd-text\"},[_vm._v(_vm._s(_vm.$t('Raum teilen')))]),_c('input',{staticClass:\"sd-link\",style:({'width': _vm.inputWidth}),attrs:{\"type\":\"text\",\"id\":\"roomlink\",\"readonly\":\"\"},domProps:{\"value\":_vm.roomLink}}),_c('md-button',{staticClass:\"md-icon-button md-primary sd-copy\",on:{\"click\":function($event){return _vm.copy('roomlink')}}},[_c('LinkVariantIcon')],1),_c('h1',{staticClass:\"sd-text\",staticStyle:{\"margin-top\":\"25px\"}},[_vm._v(_vm._s(_vm.$t('Tour teilen')))]),_c('input',{staticClass:\"sd-link\",style:({'width': _vm.inputWidth}),attrs:{\"type\":\"text\",\"id\":\"tourlink\",\"readonly\":\"\"},domProps:{\"value\":_vm.tourLink}}),_c('md-button',{staticClass:\"md-icon-button sd-copy\",on:{\"click\":function($event){return _vm.copy('tourlink')}}},[_c('LinkVariantIcon')],1)],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n \r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ShareDialogue.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ShareDialogue.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ShareDialogue.vue?vue&type=template&id=9e10ec4e&scoped=true&\"\nimport script from \"./ShareDialogue.vue?vue&type=script&lang=js&\"\nexport * from \"./ShareDialogue.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ShareDialogue.vue?vue&type=style&index=0&id=9e10ec4e&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"9e10ec4e\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('md-list',{staticClass:\"ModeratorMenue\"},[_c('md-list-item',{class:{'mm-list-item-active': _vm.screenSharingVisible},on:{\"click\":function($event){_vm.toggleScreenSharing(); _vm.toggleModeratorMenue();}}},[_c('MonitorShareIcon',{staticClass:\"md-list-item-icon\"}),(!_vm.screenSharingVisible)?_c('span',{staticClass:\"md-list-item-text\"},[_vm._v(_vm._s(_vm.$t('Bildschirm teilen')))]):_c('span',{staticClass:\"md-list-item-text\"},[_vm._v(_vm._s(_vm.$t('Bildschirm teilen abbrechen')))])],1),_c('md-list-item',{class:{'mm-list-item-active': _vm.sendingFollowModerator},on:{\"click\":function($event){_vm.toggleFollowModeratorMode(); _vm.toggleModeratorMenue();}}},[_c('Eye',{staticClass:\"md-list-item-icon\"}),(!_vm.sendingFollowModerator)?_c('span',{staticClass:\"md-list-item-text\"},[_vm._v(_vm._s(_vm.$t('Geführter Modus aktivieren')))]):_c('span',{staticClass:\"md-list-item-text\"},[_vm._v(_vm._s(_vm.$t('Geführter Modus deaktivieren')))])],1),_c('md-list-item',{on:{\"click\":function($event){_vm.muteAll(); _vm.toggleModeratorMenue();}}},[_c('VolumeOff',{staticClass:\"md-list-item-icon\"}),_c('span',{staticClass:\"md-list-item-text\"},[_vm._v(_vm._s(_vm.$t('Alle Teilnehmer stummschalten')))])],1),_c('md-list-item',{on:{\"click\":function($event){_vm.stopVideoAll(); _vm.toggleModeratorMenue();}}},[_c('VideoOff',{staticClass:\"md-list-item-icon\"}),_c('span',{staticClass:\"md-list-item-text\"},[_vm._v(_vm._s(_vm.$t('Videos aller Teilnehmer ausstellen')))])],1),_c('md-list-item',{on:{\"click\":function($event){_vm.removeAll(); _vm.toggleModeratorMenue();}}},[_c('AccountOff',{staticClass:\"md-list-item-icon\"}),_c('span',{staticClass:\"md-list-item-text\"},[_vm._v(_vm._s(_vm.$t('Alle Teilnehmer Entfernen')))])],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ModeratorMenu.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ModeratorMenu.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ModeratorMenu.vue?vue&type=template&id=19fc57e8&scoped=true&\"\nimport script from \"./ModeratorMenu.vue?vue&type=script&lang=js&\"\nexport * from \"./ModeratorMenu.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ModeratorMenu.vue?vue&type=style&index=0&id=19fc57e8&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"19fc57e8\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.localUserIsModerator),expression:\"!localUserIsModerator\"}],staticClass:\"ScreenSharingPanel-Parent\",staticStyle:{\"width\":\"100%\",\"height\":\"100%\"}},[_c('div',{staticClass:\"ScreenSharingPanel\"},[_c('div',{staticClass:\"scs-container\"},[_c('div',{staticClass:\"scs-bar\"},[_c('p',{staticClass:\"scs-bar-name\"},[_vm._v(_vm._s(\"Bildschirmübertragung von \" + (_vm.localUserIsModerator ? _vm.localUserName : _vm.getUserName(_vm.videoStreams[0].connection.data.user_id))))]),_c('div',{staticClass:\"scs-bar-buttons\"},[_c('md-button',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.localUserIsModerator),expression:\"localUserIsModerator\"}],staticClass:\"md-icon-button\",staticStyle:{\"margin-right\":\"0\"},on:{\"click\":function($event){return _vm.toggleScreenSharing()}}},[_c('CloseIcon',{staticClass:\"closeIcon\"})],1)],1)]),_c('div',{staticClass:\"scs-content\"},[(_vm.localUserIsModerator && !_vm.openTokStreams.find( x => x.videoType === 'screen'))?_c('FluxComPublisher',{attrs:{\"screencast\":\"\",\"opts\":_vm.publishingProperties,\"where\":\"video-session\"}}):_c('FluxComSubscriber',{attrs:{\"stream\":_vm.videoStreams[0],\"opts\":_vm.videoProperties(_vm.videoStreams[0])}})],1)])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n \r\n\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ScreenSharingPanel.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ScreenSharingPanel.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ScreenSharingPanel.vue?vue&type=template&id=29a528b5&scoped=true&\"\nimport script from \"./ScreenSharingPanel.vue?vue&type=script&lang=js&\"\nexport * from \"./ScreenSharingPanel.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ScreenSharingPanel.vue?vue&type=style&index=0&id=29a528b5&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"29a528b5\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"login-screen\"},[(!_vm.settingsVisible)?_c('div',{staticClass:\"layout\"},[_c('img',{staticClass:\"ld-logo\",attrs:{\"src\":_vm.publicPath+'/media/'+_vm.logoURL,\"alt\":\"\"}}),_c('div',{attrs:{\"id\":\"date\"}},[_vm._v(_vm._s(this.date))]),_c('md-tabs',{staticClass:\"md-accent\",staticStyle:{\"background\":\"transparent\",\"color\":\"transparent\"},attrs:{\"id\":\"login-tabs\",\"md-active-tab\":_vm.selectedTab,\"md-alignment\":\"fixed\"},on:{\"md-changed\":_vm.setTab}},[_c('md-tab',{staticStyle:{\"background\":\"transparent\",\"color\":\"transparent\"},attrs:{\"id\":\"visitor\",\"md-label\":_vm.$t('Gast')}},[_c('div',{staticClass:\"ld-content\"},[_c('md-field',[_c('input',{staticClass:\"ld-input\",attrs:{\"id\":\"nickname\",\"autocomplete\":\"off\",\"maxlength\":\"30\",\"required\":\"\",\"placeholder\":_vm.$t('Anzeigename')},on:{\"input\":function($event){return _vm.changeNickname()}}})])],1)]),_c('md-tab',{staticStyle:{\"background-color\":\"transparent\"},attrs:{\"id\":\"moderator\",\"md-label\":_vm.$t('Moderator')}})],1),_c('span',{staticClass:\"error\",attrs:{\"id\":\"login-error\"}}),_c('div',{staticClass:\"button-container\"},[(!_vm.enableWaitForModerator)?_c('md-button',{staticClass:\"normal-md-button\",staticStyle:{\"font-size\":\"16px\",\"height\":\"45px\",\"width\":\"80%\",\"margin-right\":\"20px\"},on:{\"click\":function($event){return _vm.cancel()}}},[_vm._v(_vm._s(_vm.$t('Abbrechen')))]):_vm._e(),_c('md-button',{staticClass:\"accent-md-button\",staticStyle:{\"font-size\":\"16px\",\"height\":\"45px\"},style:({width: _vm.enableWaitForModerator ? '100%' : '80%'}),attrs:{\"disabled\":!_vm.btnDisabled},on:{\"click\":function($event){_vm.selectedTab == 'moderator' ? _vm.loginWithAzureAD() : _vm.proceed()}}},[_vm._v(_vm._s(_vm.$t(_vm.selectedTab == 'moderator' ? 'Login with Azure' : 'Weiter')))])],1)],1):_c('AudioVideoDialogue',{attrs:{\"from\":'login',\"loginDialogueVisible\":this.loginDialogueVisible,\"settingsVisible\":this.settingsVisible,\"toggleLogin\":this.toggleLogin,\"toggleSettingsInLogin\":this.toggleSettings}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\r\n * Takes a string representing a name and turns it into initials.\r\n * @param name\r\n * @return {string}\r\n */\r\nexport function getInitials (name) {\r\n return name.match(/(\\b\\S)?/g).join(\"\").toUpperCase();\r\n}","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{attrs:{\"id\":\"audio-video-dialogue\"}},[_c('transition',{attrs:{\"name\":\"fade\"}},[(_vm.isLoading)?_c('div',{staticClass:\"audio-video-loading-screen\"},[_c('div',{staticClass:\"big-symbol-container\"},[_c('div',{staticClass:\"flux-animation-circle-one flux-animation-circle\"}),_c('div',{staticClass:\"flux-animation-circle-two flux-animation-circle\"}),_c('div',{staticClass:\"flux-animation-circle-three flux-animation-circle\"})])]):_vm._e()]),_c('transition',{attrs:{\"name\":\"fade\"}},[(_vm.problemDialogVisible)?_c('TroubleShooting',{attrs:{\"toggleProblemDialog\":_vm.toggleProblemDialog}}):_vm._e()],1),_c('transition',{attrs:{\"name\":\"fade\"}},[(_vm.ConnectionTestVisible)?_c('ConnectionTest',{attrs:{\"toggleConnectionTest\":this.toggleConnectionTest,\"audioDeviceId\":this.audioDeviceId,\"videoDeviceId\":this.videoDeviceId,\"signIn\":this.signIn}}):_vm._e()],1),_c('transition',{attrs:{\"name\":\"fade\"}},[(_vm.audioTestDialogVisible)?_c('AudioTest',{attrs:{\"toggleAudioTestDialogue\":_vm.toggleAudioTestDialogue}}):_vm._e()],1),_c('div',{staticClass:\"audio-video-content\"},[_c('div',{staticClass:\"avd-title\"},[_vm._v(_vm._s(_vm.$t('Mikrofon- und Kameraeinstellungen')))]),_c('div',{staticClass:\"avd-content-left\"},[_c('div',{attrs:{\"id\":\"video-container\"}},[(_vm.videoDeviceList.length === 0 || !_vm.videoOn || !_vm.publisher)?_c('div',{staticClass:\"camera-placeholder\"},[_c('img',{staticClass:\"user-badge badge\",attrs:{\"src\":this.localUser.getUserIcon()}}),_c('div',{staticClass:\"user-badge-audio badge\",style:({'background-color':_vm.getUserColor(this.localUser)}),attrs:{\"id\":\"local-user-badge\"}})]):_vm._e(),((_vm.videoDeviceId || _vm.audioDeviceId) && !_vm.isLoading)?_c('FluxComPublisher',{attrs:{\"hidden\":!_vm.videoOn,\"id\":\"publisher-container\",\"where\":\"audio-video-dialogue\",\"opts\":_vm.publisherAndSubscriberProperties}}):_vm._e()],1),_c('md-button',{staticClass:\"normal-md-button avd-audiotest\",on:{\"click\":function($event){return _vm.toggleAudioTestDialogue()}}},[_vm._v(_vm._s(_vm.$t('Audiotest')))])],1),_c('div',{staticClass:\"avd-content-right\"},[_c('div',{staticClass:\"settings-section\"},[(!_vm.isLoading)?_c('div',{staticClass:\"error-access-denied\"},[(_vm.errors.cameraPermissionDenied)?_c('div',{staticClass:\"error-access-denied-content\"},[_vm._v(\" \"+_vm._s(_vm.$t('Browser-Zugriff auf Ihre Kamera wurde nicht erlaubt. Klicken Sie'))+\" \"),_c('span',{staticClass:\"error-access-denied-button\",on:{\"click\":function($event){return _vm.askForPermission()}}},[_vm._v(_vm._s(_vm.$t('hier')))]),_vm._v(\" \"+_vm._s(_vm.$t(', um nach dem Zugriff gefragt zu werden.'))+\" \")]):_vm._e(),(_vm.videoDeviceList.length === 0 && !_vm.errors.cameraPermissionDenied)?_c('div',{staticClass:\"error-access-denied-content\"},[_vm._v(_vm._s(_vm.$t('Es wurde keine Kamera erkannt'))+\".\")]):_vm._e()]):_vm._e(),_c('div',{staticClass:\"avd-switch-container\"},[_c('span',{staticClass:\"subheading\"},[_vm._v(_vm._s(_vm.$t('Kamera'))+\":\")]),_c('md-switch',{staticClass:\"avd-switch\",attrs:{\"disabled\":!_vm.publisher || !_vm.hasVideo},model:{value:(_vm.videoOn),callback:function ($$v) {_vm.videoOn=$$v},expression:\"videoOn\"}})],1),_c('div',[_c('select',{attrs:{\"id\":\"video-selection\",\"disabled\":_vm.videoDeviceList.length === 0 || !_vm.videoOn},on:{\"change\":function($event){return _vm.saveDeviceIds();}}},_vm._l((_vm.videoDeviceList),function(video){return _c('option',{domProps:{\"value\":video.deviceId}},[_vm._v(_vm._s(_vm.getLabelForDevice(video)))])}),0),_c('md-button',{staticClass:\"normal-md-button renew\",attrs:{\"disabled\":_vm.videoDeviceList.length === 0 || !_vm.videoOn},on:{\"click\":_vm.updateDeviceLists}},[_c('Autorenew')],1)],1)]),_c('div',{staticClass:\"settings-section\"},[(!_vm.isLoading)?_c('div',{staticClass:\"error-access-denied\"},[(_vm.errors.microphonePermissionDenied)?_c('div',{staticClass:\"error-access-denied-content\"},[_vm._v(\" \"+_vm._s(_vm.$t('Browser-Zugriff auf Ihr Mikrofon wurde nicht erlaubt. Klicken Sie'))+\" \"),_c('span',{staticClass:\"error-access-denied-button\",on:{\"click\":function($event){return _vm.askForPermission()}}},[_vm._v(_vm._s(_vm.$t('hier')))]),_vm._v(\" \"+_vm._s(_vm.$t(', um nach dem Zugriff gefragt zu werden.'))+\" \")]):_vm._e(),(_vm.videoDeviceList.length === 0 && !_vm.errors.microphonePermissionDenied)?_c('div',{staticClass:\"error-access-denied-content\"},[_vm._v(_vm._s(_vm.$t('Es wurde keine Mikrofon erkannt'))+\".\")]):_vm._e()]):_vm._e(),_c('div',{staticClass:\"avd-switch-container\"},[_c('span',{staticClass:\"subheading\"},[_vm._v(_vm._s(_vm.$t('Mikrofon'))+\":\")]),_c('md-switch',{staticClass:\"avd-switch\",attrs:{\"disabled\":!_vm.publisher || !_vm.hasAudio},model:{value:(_vm.audioOn),callback:function ($$v) {_vm.audioOn=$$v},expression:\"audioOn\"}})],1),_c('div',[_c('select',{attrs:{\"id\":\"audio-selection\",\"disabled\":_vm.audioDeviceList.length === 0 || !_vm.audioOn},on:{\"change\":function($event){return _vm.saveDeviceIds();}}},_vm._l((_vm.audioDeviceList),function(audio){return _c('option',{domProps:{\"value\":audio.deviceId}},[_vm._v(_vm._s(_vm.getLabelForDevice(audio)))])}),0),_c('md-button',{staticClass:\"normal-md-button renew\",attrs:{\"disabled\":_vm.audioDeviceList.length === 0 || !_vm.audioOn},on:{\"click\":_vm.updateDeviceLists}},[_c('Autorenew')],1)],1),_c('meter',{attrs:{\"id\":\"audio-meter\",\"high\":\"1\",\"low\":\"0.2\",\"optimum\":\"0.8\",\"value\":\"0\",\"min\":\"0\",\"max\":\"1\"}})])]),(_vm.from === 'login')?_c('div',{staticClass:\"avd-button-container\"},[_c('md-button',{staticClass:\"accent-md-button avd-login-button\",on:{\"click\":function($event){_vm.saveDeviceIds(); _vm.signIn()}}},[_vm._v(\" \"+_vm._s(_vm.$t('Jetzt teilnehmen'))+\" \")]),_c('div',{staticStyle:{\"padding-bottom\":\"20px\"}},[_c('md-button',{staticClass:\"normal-md-button avd-troubleshooting-button\",attrs:{\"id\":\"problem-button\"},on:{\"click\":_vm.toggleProblemDialog}},[_c('AlertCircle'),_c('div',{staticClass:\"avd-button-text\"},[_vm._v(_vm._s(_vm.$t('Problembehandlung')))])],1),_c('md-button',{staticClass:\"normal-md-button avd-connectiontest-button\",class:{disabled: !_vm.videoDeviceId && !_vm.audioDeviceId},attrs:{\"id\":\"connection-test-button\"},on:{\"click\":function($event){_vm.saveDeviceIds(); _vm.toggleConnectionTest();}}},[_c('Wifi'),_c('div',{staticClass:\"avd-button-text\"},[_vm._v(_vm._s(_vm.$t('Verbindungstest')))])],1)],1)],1):_vm._e()])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"TroubleShooting\",on:{\"click\":function($event){return _vm.toggleProblemDialog()}}},[_c('div',{staticClass:\"tr-container\",on:{\"click\":function($event){return $event.stopPropagation()}}},[_c('div',{staticClass:\"tr-wrapper\"},[_c('div',{staticClass:\"ts-title\"},[_vm._v(_vm._s(_vm.$t('Problembehandlung')))]),_c('md-list',{attrs:{\"md-expand-single\":true}},[_c('md-list-item',{attrs:{\"md-expand\":\"\"}},[_c('span',{staticClass:\"md-list-item-text\"},[_vm._v(_vm._s(_vm.$t('Ich höre niemanden')))]),_c('md-list',{attrs:{\"slot\":\"md-expand\",\"md-expand-single\":true},slot:\"md-expand\"},[_c('md-list',{staticClass:\"sub-list\",attrs:{\"md-expand-single\":true}},[_c('md-list-item',{attrs:{\"md-expand\":\"\"}},[_c('span',{staticClass:\"md-list-item-text\"},[_vm._v(_vm._s(_vm.$t('Das Standardkommunikationsgerät umstellen (Windows 10)')))]),_c('md-list',{attrs:{\"slot\":\"md-expand\",\"md-expand-single\":true},slot:\"md-expand\"},[_c('md-list-item',{staticClass:\"md-inset\"},[_c('div',{staticClass:\"solution-description\"},[_vm._v(\" \"+_vm._s(_vm.$t(`Öffnen Sie die Soundeinstellungen (am besten direkt in die Suche eingeben). Scrollen Sie nach unten, bis Sie zur Überschrift \"Verwandte Einstellungen\" gelangen. Darunter klicken Sie auf \"Sound-Systemsteuerung\". Es öffnet sich ein kleines Fenster, in dem verschiedene Ausgabegeräte zu sehen sind. Machen Sie einen Rechtsklick auf das Gerät, das Sie verwenden möchten und klicken Sie dann auf \"Als Standardkommunikationsgerät auswählen\". Nun sollte das korrekte Gerät für die Ausgabe verwendet werden.`))+\" \")])])],1)],1)],1)],1)],1),_c('md-list-item',{attrs:{\"md-expand\":\"\"}},[_c('span',{staticClass:\"md-list-item-text\"},[_vm._v(_vm._s(_vm.$t(`Ich höre Echogeräusche`)))]),_c('md-list',{attrs:{\"slot\":\"md-expand\",\"md-expand-single\":true},slot:\"md-expand\"},[_c('md-list',{staticClass:\"sub-list\",attrs:{\"md-expand-single\":true}},[_c('md-list-item',{attrs:{\"md-expand\":\"\"}},[_c('span',{staticClass:\"md-list-item-text\"},[_vm._v(_vm._s(_vm.$t(`Ein Headset verwenden`)))]),_c('md-list',{attrs:{\"slot\":\"md-expand\",\"md-expand-single\":true},slot:\"md-expand\"},[_c('md-list-item',{staticClass:\"md-inset\"},[_c('div',{staticClass:\"solution-description\"},[_vm._v(\" \"+_vm._s(_vm.$t(`Wenn Sie ein Notebook oder ein ähnliches Gerät verwenden, kann es sein, dass der Lautsprecher und das Mikrofon zu nah beieinander sind und der Ton aus dem Lautsprecher direkt vom Mikrofon aufgenommen wird. Dadurch hört Ihr Gegenüber die eigene Stimme, was es schwieriger macht, sich auf das Gespräch zu konzentrieren. Wenn dies der Fall ist, schießen Sie bitte ein Headset an.`))+\" \")])])],1)],1),_c('md-list-item',{attrs:{\"md-expand\":\"\"}},[_c('span',{staticClass:\"md-list-item-text\"},[_vm._v(_vm._s(_vm.$t(`Nur ein Mikrofon und einen Lautsprecher pro Raum verwenden`)))]),_c('md-list',{attrs:{\"slot\":\"md-expand\",\"md-expand-single\":true},slot:\"md-expand\"},[_c('md-list-item',{staticClass:\"md-inset\"},[_c('div',{staticClass:\"solution-description\"},[_vm._v(\" \"+_vm._s(_vm.$t(`Wenn Sie mit weiteren Personen an einer Tour teilnehmen und sich diese Personen im selben Raum befinden wie Sie, kann es sein, dass das ihre Stimme mehrmals aufgenommen wird und Echo Geräusche entstehen. Achten Sie daher darauf, dass nur ein Microfon aktiviert ist oder die Personen weitgenug auseinander sitzen.`))+\" \")])])],1)],1)],1)],1)],1),_c('md-list-item',{attrs:{\"md-expand\":\"\"}},[_c('span',{staticClass:\"md-list-item-text\"},[_vm._v(_vm._s(_vm.$t(`Meine Kamera/Mikrofon wird nicht erkannt`)))]),_c('md-list',{attrs:{\"slot\":\"md-expand\",\"md-expand-single\":true},slot:\"md-expand\"},[_c('md-list',{staticClass:\"sub-list\",attrs:{\"md-expand-single\":true}},[_c('md-list-item',{attrs:{\"md-expand\":\"\"}},[_c('span',{staticClass:\"md-list-item-text\"},[_vm._v(_vm._s(_vm.$t(`Erlauben Sie den Zugriff`)))]),_c('md-list',{attrs:{\"slot\":\"md-expand\",\"md-expand-single\":true},slot:\"md-expand\"},[_c('md-list-item',{staticClass:\"md-inset\"},[_c('div',{staticClass:\"solution-description\"},[_vm._v(\" \"+_vm._s(_vm.$t(`Beim Öffnen der Mikrofon- und Kameraeinstellungen fragt der Browser nach dem Zugriff auf Ihre Mikrofone und Kameras. Ohne Ihre Erlaubnis kann die Anwendung ihre Kamera und Mikrofon nicht nutzen. Überprüfen Sie die Mikrofon- und Kameraeinstellungen ihres Browsers, falls Sie nicht nach dem Zugriff gefragt werden.`))+\" \")])])],1)],1),_c('md-list-item',{attrs:{\"md-expand\":\"\"}},[_c('span',{staticClass:\"md-list-item-text\"},[_vm._v(_vm._s(_vm.$t(`Ändern Sie die Datenschutzeinstellungen`)))]),_c('md-list',{attrs:{\"slot\":\"md-expand\",\"md-expand-single\":true},slot:\"md-expand\"},[_c('md-list-item',{staticClass:\"md-inset\"},[_c('div',{staticClass:\"solution-description\"},[_vm._v(\" \"+_vm._s(_vm.$t(`Ihr Betriebssystem kann dem Browser den generellen Zugriff auf die Kamera und Mikrofon blockieren. Überprüfen sie die Datenschutzeinstellungen ihres Betriebssystemes, und erlauben Sie ihrem Browser ggf. Zugriff!`))+\" \")])])],1)],1),_c('md-list-item',{attrs:{\"md-expand\":\"\"}},[_c('span',{staticClass:\"md-list-item-text\"},[_vm._v(_vm._s(_vm.$t(`Kamera/Mikrofon wird bereits genutzt`)))]),_c('md-list',{attrs:{\"slot\":\"md-expand\",\"md-expand-single\":true},slot:\"md-expand\"},[_c('md-list-item',{staticClass:\"md-inset\"},[_c('div',{staticClass:\"solution-description\"},[_vm._v(\" \"+_vm._s(_vm.$t(`Es könnte sein, dass andere Anwendungen wie Microsoft Teams oder ein anderer geöffneter Browser bereits Kamera oder Mikrofon nutzen. Stellen Sie sicher, das ihre Kamera nicht von anderen Anwendungen genutzt wird und schließen Sie diese Anwendungen gegebenenfalls.`))+\" \")])])],1)],1)],1)],1)],1),_c('md-list-item',{attrs:{\"md-expand\":\"\"}},[_c('span',{staticClass:\"md-list-item-text\"},[_vm._v(_vm._s(_vm.$t(`Beim Audiotest wird meine Audio nicht übertragen`)))]),_c('md-list',{attrs:{\"slot\":\"md-expand\",\"md-expand-single\":true},slot:\"md-expand\"},[_c('md-list',{staticClass:\"sub-list\",attrs:{\"md-expand-single\":true}},[_c('md-list-item',{attrs:{\"md-expand\":\"\"}},[_c('span',{staticClass:\"md-list-item-text\"},[_vm._v(_vm._s(_vm.$t(`Die Firewall-Einstellungen anpassen`)))]),_c('md-list',{attrs:{\"slot\":\"md-expand\",\"md-expand-single\":true},slot:\"md-expand\"},[_c('md-list-item',{staticClass:\"md-inset\"},[_c('div',{staticClass:\"solution-description\"},[_vm._v(\" \"+_vm._s(_vm.$t(`Zur Kommunikation mit dem Server ist es notwendig, dass Sie den TCP Port 443 freigeben. Wenn Sie eine Whitelist für Domains pflegen, ist es außerdem wichtig, dass Sie die Domains \"*.tokbox.com\" und \"*.opentok.com\" (ohne Anführungszeichen) in die Liste einfügen.`))+\" \")])])],1)],1),_c('md-list-item',{attrs:{\"md-expand\":\"\"}},[_c('span',{staticClass:\"md-list-item-text\"},[_vm._v(_vm._s(_vm.$t(`Die Proxy-Einstellungen anpassen`)))]),_c('md-list',{attrs:{\"slot\":\"md-expand\",\"md-expand-single\":true},slot:\"md-expand\"},[_c('md-list-item',{staticClass:\"md-inset\"},[_c('div',{staticClass:\"solution-description\"},[_vm._v(\" \"+_vm._s(_vm.$t(`Am besten funktioniert der Videochat ohne einen Proxy. Wenn Sie ohne Proxy keinen Zugang zum Internet haben, sollten Sie einen transparenten Proxy verwenden oder den Proxy im Browser für HTTPS-Verbindungen konfigurieren.`))+\" \")])])],1)],1)],1)],1)],1),_c('md-list-item',{attrs:{\"md-expand\":\"\"}},[_c('span',{staticClass:\"md-list-item-text\"},[_vm._v(_vm._s(_vm.$t(`Sonstiges`)))]),_c('md-list',{attrs:{\"slot\":\"md-expand\",\"md-expand-single\":true},slot:\"md-expand\"},[_c('md-list',{staticClass:\"sub-list\",attrs:{\"md-expand-single\":true}},[_c('md-list-item',{attrs:{\"md-expand\":\"\"}},[_c('span',{staticClass:\"md-list-item-text\"},[_vm._v(_vm._s(_vm.$t(`Unterstützte Browser`)))]),_c('md-list',{attrs:{\"slot\":\"md-expand\",\"md-expand-single\":true},slot:\"md-expand\"},[_c('md-list-item',{staticClass:\"md-inset\"},[_c('div',{staticClass:\"solution-description\"},[_vm._v(\" \"+_vm._s(_vm.$t(`Am besten wird die Anwendung von den Browsern Firefox, Chrome, Safari, Opera und Edge unterstützt. Achten Sie bitte darauf, dass Sie die jeweils aktuelle Version installiert haben und aktualisieren Sie diese ggf. manuel, da die Browser dies nicht immer automatisch tun.`))+\" \")])])],1)],1)],1)],1)],1)],1)],1),_c('md-button',{staticClass:\"normal-md-button\",staticStyle:{\"margin-top\":\"15px\",\"width\":\"150px\",\"height\":\"45px\"},on:{\"click\":function($event){return _vm.toggleProblemDialog();}}},[_vm._v(_vm._s(_vm.$t('Zurück')))])],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TroubleShooting.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TroubleShooting.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TroubleShooting.vue?vue&type=template&id=22736b90&scoped=true&\"\nimport script from \"./TroubleShooting.vue?vue&type=script&lang=js&\"\nexport * from \"./TroubleShooting.vue?vue&type=script&lang=js&\"\nimport style0 from \"./TroubleShooting.vue?vue&type=style&index=0&id=22736b90&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"22736b90\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"TestResults\",on:{\"click\":function($event){return _vm.toggleConnectionTest()}}},[_c('div',{staticClass:\"tr-container\",on:{\"click\":function($event){return $event.stopPropagation()}}},[_c('h1',{staticClass:\"tr-title\"},[_vm._v(_vm._s(_vm.$t('Verbindungstest')))]),_c('div',[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.connectionTest == null),expression:\"connectionTest == null\"}],staticClass:\"tr-waiting\"},[_vm._v(_vm._s(_vm.$t('Ihre Verbindung wird überprüft'))+\"...\")]),(_vm.connectionTest == 'success')?_c('div',{staticClass:\"tr-success\"},[_vm._v(_vm._s(_vm.$t('Der Verbindungsaufbau war erfolgreich')))]):_vm._e(),(_vm.connectionTest == 'failed')?_c('div',[_c('div',{staticClass:\"tr-failed\"},[_vm._v(_vm._s(_vm.$t('Der Verbindungsaufbau war nicht erfolgreich')))]),_c('div',[_vm._v(_vm._s(_vm.$t('Folgende Fehler sind aufgetreten:')))]),_vm._l((this.connectionResult.failedTests),function(failedTest){return _c('tbody',{key:failedTest.error.message},[_c('td',[_vm._v(_vm._s(failedTest.error.message))])])})],2):_vm._e(),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.qualityTest == null),expression:\"qualityTest == null\"}],staticClass:\"tr-waiting\"},[_vm._v(_vm._s(_vm.$t('Ihre Verbindungsqualität wird überprüft'))+\"...\")]),(_vm.qualityTest == 'success')?_c('div',[_c('div',{staticClass:\"tr-success\"},[_vm._v(_vm._s(_vm.$t('Die Überprüfung ihrer Verbindungsqualität war erfolgreich')))]),_c('div',[_vm._v(_vm._s(_vm.$t('Ergebniss des Tests:')))]),_c('table',[_c('div',{staticClass:\"tr-table\"},[(this.qualityResult.video.supported === true)?_c('tbody',[_vm._m(0),_c('tr',[_c('td',[_vm._v(_vm._s(_vm.$t('Qualität'))+\":\")]),_c('td',[_vm._v(_vm._s(this.qualityResult.video.mos.toFixed(1))+\" / 4.5\")])]),_c('tr',[_c('td',[_vm._v(_vm._s(_vm.$t('Durchschnittliche Bitrate'))+\":\")]),_c('td',[_vm._v(_vm._s(this.qualityResult.video.bitrate.toFixed(0))+\" kbps\")])]),_c('tr',[_c('td',[_vm._v(_vm._s(_vm.$t('Durchschnittliche Framerate'))+\":\")]),_c('td',[_vm._v(_vm._s(this.qualityResult.video.frameRate.toFixed(0))+\" fps\")])]),_c('tr',[_c('td',[_vm._v(_vm._s(_vm.$t('Verlustrate der Pakete'))+\":\")]),_c('td',[_vm._v(_vm._s(this.qualityResult.video.packetLossRatio.toFixed(2))+\"%\")])])]):_vm._e()]),_c('div',{staticClass:\"tr-table\"},[(this.qualityResult.video.supported === false)?_c('tbody',[_vm._m(1),_c('tr',[_c('td',[_vm._v(_vm._s(_vm.$t('Fehler bei der Video Übertragung:')))]),_c('td',[_vm._v(_vm._s(this.qualityResult.video.reason))])])]):_vm._e()]),_c('div',{staticClass:\"tr-table\"},[(this.qualityResult.audio.supported === true)?_c('tbody',[_vm._m(2),_c('tr',[_c('td',[_vm._v(_vm._s(_vm.$t('Qualität'))+\":\")]),_c('td',[_vm._v(_vm._s(this.qualityResult.audio.mos.toFixed(1))+\" / 4.5\")])]),_c('tr',[_c('td',[_vm._v(_vm._s(_vm.$t('Durchschnittliche Bitrate'))+\":\")]),_c('td',[_vm._v(_vm._s(this.qualityResult.audio.bitrate.toFixed(0))+\" kbps\")])]),_c('tr',[_c('td',[_vm._v(_vm._s(_vm.$t('Verlustrate der Pakete'))+\":\")]),_c('td',[_vm._v(_vm._s(this.qualityResult.audio.packetLossRatio.toFixed(2))+\"%\")])])]):_vm._e()]),_c('div',{staticClass:\"tr-table\"},[(this.qualityResult.audio.supported === false)?_c('tbody',[_vm._m(3),_c('tr',[_c('td',[_vm._v(_vm._s(_vm.$t('Fehler bei der Audio Übertragung:')))]),_c('td',[_vm._v(_vm._s(this.qualityResult.audio.reason))])])]):_vm._e()])])]):_vm._e(),(_vm.qualityTest == 'failed')?_c('div',[_c('div',{staticClass:\"tr-failed\"},[_vm._v(_vm._s(_vm.$t('Der Qualitäts Test konnte nicht durchgeführt werden!')))]),_c('div',[_vm._v(\"F\"+_vm._s(_vm.$t('Folgender Fehler ist aufgetreten:')))]),_c('tbody',[_c('td',[_vm._v(_vm._s(this.qualityError))])])]):_vm._e(),_c('div',{staticClass:\"tr-buttons\"},[(_vm.qualityTest != null && _vm.connectionTest != null)?_c('md-button',{staticClass:\"normal-md-button\",staticStyle:{\"background-color\":\"rgb(50, 50, 50)\"},on:{\"click\":function($event){return _vm.repeatTest()}}},[_vm._v(\" \"+_vm._s(_vm.$t('Test Wiederholen'))+\" \")]):_vm._e(),(_vm.qualityTest == null || _vm.connectionTest == null)?_c('md-button',{staticClass:\"normal-md-button\",staticStyle:{\"background-color\":\"rgb(50, 50, 50)\"},on:{\"click\":function($event){return _vm.toggleConnectionTest();}}},[_vm._v(\" \"+_vm._s(_vm.$t('Abbrechen'))+\" \")]):_vm._e(),(_vm.qualityTest != null && _vm.connectionTest != null)?_c('md-button',{staticClass:\"accent-md-button\",staticStyle:{\"margin-left\":\"5px\",\"background-color\":\"var(--primaryColor)\"},on:{\"click\":function($event){return _vm.toggleConnectionTest();}}},[_vm._v(\" \"+_vm._s(_vm.$t('Fertig'))+\" \")]):_vm._e()],1)])])])\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c;return _c('tr',[_c('th',{attrs:{\"colspan\":\"2\"}},[_vm._v(\"Video\")])])\n},function (){var _vm=this,_c=_vm._self._c;return _c('tr',[_c('th',{attrs:{\"colspan\":\"2\"}},[_vm._v(\"Video\")])])\n},function (){var _vm=this,_c=_vm._self._c;return _c('tr',[_c('th',{attrs:{\"colspan\":\"2\"}},[_vm._v(\"Audio\")])])\n},function (){var _vm=this,_c=_vm._self._c;return _c('tr',[_c('th',{attrs:{\"colspan\":\"2\"}},[_vm._v(\"Audio\")])])\n}]\n\nexport { render, staticRenderFns }","//\r\n// Module for communicating with Raumtaenzer's backend services\r\n//\r\n\r\nconst rp = require('request-promise').defaults({jar: true})\r\n// import * as rp from 'request-promise';\r\n\r\nconst CMS_BASE_URL = \"https://rt-ar-app.ar-cms.de\"\r\nconst CALLSERVICE_URL = \"https://flux-360-call-server.ar-cms.de:443\" // \"https://flux-360-call-server.ar-cms.de:8002\"\r\n\r\n/**\r\n * Take uri as relative path and return complete url to\r\n * CMS backend.\r\n * @param uri\r\n */\r\nexport function cmsUrl (uri) {\r\n return `${CMS_BASE_URL}${uri}`;\r\n}\r\n\r\n/**\r\n * Make a request asynchronously.\r\n *\r\n * @param options\r\n * @logToConsole {boolean} Log request to console? Defaults to true\r\n * @return {Promise<*>}\r\n */\r\nasync function makeRequest (options, logToConsole = true) {\r\n if (logToConsole) {\r\n console.debug(`Making request ${JSON.stringify(options, null)}`);\r\n }\r\n let res = null;\r\n try {\r\n res = await rp(options);\r\n } catch(e ) {\r\n // Safari is always throwing type errors when connecting the ar-cms\r\n console.log(\"Error: \" + e);\r\n }\r\n if (logToConsole) {\r\n console.debug(`Received response ${JSON.stringify(res, null)}`);\r\n }\r\n return res;\r\n}\r\n\r\n/**\r\n * Take the given json response and make sure that the\r\n * 'success' flag is true. If not, create an error from\r\n * the 'description' field. Only for calls that follow\r\n * the scheme (success flag etc.)\r\n *\r\n * @param jsonResponse {Object} Parsed JSON response\r\n * @throws {Error}\r\n */\r\nconst assertSuccess = (jsonResponse) => {\r\n const success = JSON.parse(jsonResponse.success);\r\n if (!success) {\r\n const error = new Error(jsonResponse.description);\r\n if (jsonResponse.name) {\r\n error.name = jsonResponse.name;\r\n }\r\n if (jsonResponse.code) {\r\n error.code = jsonResponse.code;\r\n }\r\n throw error;\r\n }\r\n}\r\n\r\n/**\r\n * Log in with the CMS.\r\n *\r\n * @param email\r\n * @param password\r\n * @return {Promise<*>}\r\n */\r\nexport async function login (email, password) {\r\n const response = await makeRequest({\r\n method: 'POST',\r\n uri: `${CMS_BASE_URL}/flux/api/login`,\r\n form: {\r\n 'mail': email,\r\n 'password': password\r\n },\r\n json: true\r\n });\r\n assertSuccess(response);\r\n return response.content;\r\n}\r\n\r\n/**\r\n * Log off from CMS.\r\n *\r\n * @param accessToken\r\n * @return {Promise<*>}\r\n */\r\nexport async function logout (accessToken) {\r\n return await makeRequest({\r\n method: 'POST',\r\n headers: {\r\n \"x-auth-token\": accessToken\r\n },\r\n uri: `${CMS_BASE_URL}/flux/api/logout`,\r\n json: true\r\n });\r\n}\r\n\r\nexport async function getRooms (jwt, userId) {\r\n console.debug(`making call with ${jwt} for ${userId}`);\r\n // TODO: replace with API call\r\n return [\r\n {\r\n id: 103591,\r\n name: \"Reception\"\r\n },\r\n {\r\n id: 103592,\r\n name: \"White\"\r\n },\r\n {\r\n id: 103593,\r\n name: \"Clivia\"\r\n },\r\n {\r\n id: 103594,\r\n name: \"Vigour Vogue\"\r\n },\r\n ]\r\n}\r\n\r\n/**\r\n * Get access data to join a tour video session.\r\n *\r\n * @param jwt {string} JWT auth token\r\n * @param data {Object} Necessary information of the structure:\r\n * \r\n * {\r\n * user_id: {string}\r\n * user_name: {string},\r\n * role: {string},\r\n * room_id: {string}\r\n * }\r\n * \r\n * @return {Promise<*>}\r\n */\r\nexport async function getVideoSessionInfoForRoom (jwt, data) {\r\n const response = await makeRequest({\r\n method: 'GET',\r\n uri: `${CALLSERVICE_URL}/request_session_connection`,\r\n qs: data,\r\n json: true\r\n });\r\n assertSuccess(response);\r\n return response;\r\n}\r\n\r\n/**\r\n * Sends a heartbeat to the call-service to inform that the given user\r\n * is still online.\r\n * @param userId {string} The user_id field given to this OpenTok user\r\n * when calling @see {getVideoSessionInfoForRoom}\r\n * @return {Promise}\r\n */\r\nexport async function heartbeat (userId) {\r\n await makeRequest({\r\n method: 'POST',\r\n uri: `${CALLSERVICE_URL}/check_for_call?callee=${userId}`,\r\n json: true\r\n }, false);\r\n}\r\n\r\n/**\r\n * Obtain information on the users connected to the rooms listed.\r\n * The rooms are identified by their room ids as entered in the call\r\n * to @see #getVideoSessionInfoForRoom\r\n *\r\n * @param roomIds {Array<{String}>} room ids\r\n * @return {Array}\r\n */\r\nexport async function getSessionInfo (roomIds) {\r\n const response = await makeRequest({\r\n method: 'POST',\r\n uri: `${CALLSERVICE_URL}/get_session_info`,\r\n body: {\r\n room_ids: roomIds\r\n },\r\n json: true\r\n }, true);\r\n if(!response)\r\n return [];\r\n assertSuccess(response);\r\n return response.rooms;\r\n}\r\n\r\n/**\r\n * Retrieves contact status for the given list of users.\r\n *\r\n * @param callerId {string} user_id of the requesting party\r\n * @param contactIds {Array} user_ids of the contacts of interest.\r\n * @return {Array} List of contact infos.\r\n */\r\nexport async function getOnlineStatus (callerId, contactIds) {\r\n const response = await makeRequest({\r\n method: 'POST',\r\n uri: `${CALLSERVICE_URL}/request_contact_status`,\r\n body: {\r\n id: callerId,\r\n contact_ids: contactIds\r\n },\r\n json: true\r\n }, true);\r\n if( !response )\r\n return [];\r\n assertSuccess(response);\r\n return response.contacts;\r\n}","\r\n\r\n\r\n\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConnectionTest.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConnectionTest.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ConnectionTest.vue?vue&type=template&id=568fd15c&scoped=true&\"\nimport script from \"./ConnectionTest.vue?vue&type=script&lang=js&\"\nexport * from \"./ConnectionTest.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ConnectionTest.vue?vue&type=style&index=0&id=568fd15c&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"568fd15c\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"AudioTest\",on:{\"click\":function($event){return _vm.toggleAudioTestDialogue()}}},[_c('div',{staticClass:\"at-container\",on:{\"click\":function($event){return $event.stopPropagation()}}},[_c('h1',{staticClass:\"at-title\"},[_vm._v(_vm._s(_vm.$t('Audiotest')))]),_c('p',{staticStyle:{\"font-size\":\"16px\",\"text-align\":\"center\"}},[_vm._v(\" \"+_vm._s(_vm.$t('Der Audiotest simuliert eine Verbindung zum Server. Sie können ihre Audioübertragung dann abhören, um sie zu überprüfen.'))+\" \")]),_c('div',{staticClass:\"at-content-container\"},[_c('transition',{attrs:{\"name\":\"fade\"}},[(!_vm.stateOfEchoTest)?_c('div',{staticClass:\"at-content\"},[_c('div',{staticClass:\"at-loading\"},[_c('div',{staticClass:\"flux-animation-circle-one flux-animation-circle\"}),_c('div',{staticClass:\"flux-animation-circle-two flux-animation-circle\"}),_c('div',{staticClass:\"flux-animation-circle-three flux-animation-circle\"})])]):_vm._e()]),_c('transition',{attrs:{\"name\":\"fade\"}},[(_vm.stateOfEchoTest == 'finished')?_c('div',{staticClass:\"at-content at-success\"},[_c('md-button',{staticClass:\"normal-md-button at-success-muteButton\",on:{\"click\":function($event){return _vm.toggleAudio()}}},[(_vm.audioOn)?_c('VolumeOn'):_c('VolumeOff')],1),_c('meter',{staticClass:\"at-audioMeter\",attrs:{\"high\":\"0.8\",\"low\":\"0.1\",\"optimum\":\"0.5\",\"value\":\"0\",\"min\":\"0\",\"max\":\"1\"}})],1):_vm._e()]),_c('transition',{attrs:{\"name\":\"fade\"}},[(_vm.stateOfEchoTest == 'failed')?_c('div',{staticClass:\"at-content at-failed\"},[_c('p',[_vm._v(_vm._s(_vm.$t('Verbindung zum Server fehlgeschlagen!')))]),_c('md-button',{staticClass:\"normal-md-button\",staticStyle:{\"margin-bottom\":\"10px\"},on:{\"click\":function($event){return _vm.repeatTest()}}},[_vm._v(\" \"+_vm._s(_vm.$t('Wiederholen'))+\" \")])],1):_vm._e()])],1),_c('md-button',{staticClass:\"normal-md-button\",on:{\"click\":function($event){return _vm.toggleAudioTestDialogue()}}},[_vm._v(_vm._s(_vm.$t('Zurück')))]),_c('div',{staticStyle:{\"display\":\"none\"},attrs:{\"id\":\"subscriber-echo-test\"}}),_c('div',{staticStyle:{\"display\":\"none\"},attrs:{\"id\":\"publisher-echo-test\"}})],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AudioTest.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AudioTest.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./AudioTest.vue?vue&type=template&id=1541ca22&scoped=true&\"\nimport script from \"./AudioTest.vue?vue&type=script&lang=js&\"\nexport * from \"./AudioTest.vue?vue&type=script&lang=js&\"\nimport style0 from \"./AudioTest.vue?vue&type=style&index=0&id=1541ca22&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1541ca22\",\n null\n \n)\n\nexport default component.exports","\r\n\r\n\r\n\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AudioVideoDialogue.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AudioVideoDialogue.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./AudioVideoDialogue.vue?vue&type=template&id=6ef7eb06&scoped=true&\"\nimport script from \"./AudioVideoDialogue.vue?vue&type=script&lang=js&\"\nexport * from \"./AudioVideoDialogue.vue?vue&type=script&lang=js&\"\nimport style0 from \"./AudioVideoDialogue.vue?vue&type=style&index=0&id=6ef7eb06&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6ef7eb06\",\n null\n \n)\n\nexport default component.exports","\r\n \r\n\r\n\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoginDialogue.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoginDialogue.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./LoginDialogue.vue?vue&type=template&id=a25c28ac&\"\nimport script from \"./LoginDialogue.vue?vue&type=script&lang=js&\"\nexport * from \"./LoginDialogue.vue?vue&type=script&lang=js&\"\nimport style0 from \"./LoginDialogue.vue?vue&type=style&index=0&id=a25c28ac&prod&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('transition',{attrs:{\"name\":\"fade\"}},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.websiteDialogueVisible),expression:\"websiteDialogueVisible\"}],staticClass:\"WebsiteDialogue\"},[_c('div',{staticClass:\"wd-container\"},[_c('div',{staticClass:\"nav-bar\"},[(_vm.title)?_c('div',{staticClass:\"nav-bar-title\"},[_c('h2',[_vm._v(_vm._s(_vm.title))])]):_vm._e(),_c('div',{staticClass:\"nav-bar-buttons\"},[(_vm.type != 'selection' && _vm.type != 'viewer')?_c('md-button',{staticClass:\"md-icon-button\",on:{\"click\":function($event){return _vm.openLink()}}},[_c('OpenInNewIcon',{staticClass:\"openInNewIconIcon\"})],1):_vm._e(),_c('md-button',{staticClass:\"md-icon-button close\",class:{'followModeratorDisableButton': _vm.followModeratorMode},staticStyle:{\"margin\":\"0\"},on:{\"click\":function($event){return _vm.toggleWebsiteDialogue(false)}}},[_c('CloseIcon',{staticClass:\"closeIcon\"})],1)],1)]),(_vm.route.length>1)?_c('md-button',{staticClass:\"md-icon-button back\",class:{'followModeratorDisableButton': _vm.followModeratorMode},on:{\"click\":function($event){return _vm.switchView('back')}}},[_c('ChevronLeft')],1):_vm._e(),(_vm.type == 'pdf')?_c('iframe',{staticClass:\"wd-iframe\",attrs:{\"id\":\"wd-iframe\",\"src\":_vm.url}}):_vm._e(),(_vm.type == 'web')?_c('iframe',{staticClass:\"wd-iframe\",attrs:{\"src\":_vm.url,\"frameborder\":\"0\"}}):_vm._e(),(_vm.type == 'image')?_c('img',{staticClass:\"wd-image wd-iframe\",attrs:{\"src\":_vm.url,\"alt\":\"\"}}):_vm._e(),(_vm.type == 'video')?_c('iframe',{staticClass:\"wd-video wd-iframe\",attrs:{\"src\":_vm.url,\"frameborder\":\"0\"}}):_vm._e(),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.type == 'selection'),expression:\"type == 'selection'\"}],staticClass:\"wd-color-selection\"},[_c('div',{attrs:{\"id\":\"wd-color-swiper\"}},[_c('div',{staticClass:\"wd-color-swiper-button-next\"},[_c('ChevronLeft')],1),_c('div',{staticClass:\"wd-color-swiper-button-prev\"},[_c('ChevronLeft')],1),_c('div',{staticClass:\"swiper-wrapper\"},_vm._l((_vm.colorSelection),function(color,index){return _c('div',{key:index,staticClass:\"swiper-slide\"},[_c('div',{staticClass:\"card\"},[(color.anchorObjects && color.anchorObjects.length>0)?_c('button',{staticClass:\"badge\",class:{'followModeratorDisableButton': _vm.followModeratorMode},on:{\"click\":function($event){return _vm.switchView('viewer', color.anchorObjects[0])}}},[_c('img',{attrs:{\"src\":_vm.publicPath+'/media/Marabu/icons/marabu_ic_360_white.png',\"alt\":\"\"}})]):_vm._e(),(color.videoID && color.videoID!='')?_c('button',{staticClass:\"badge\",class:{'followModeratorDisableButton': _vm.followModeratorMode},on:{\"click\":function($event){return _vm.switchView('video', color.videoID)}}},[_c('img',{attrs:{\"src\":_vm.publicPath+'/media/Marabu/icons/play.svg',\"alt\":\"\"}})]):_vm._e(),_c('div',{staticClass:\"card-content\"},[_c('div',{staticClass:\"image-wrapper\"},[_c('img',{attrs:{\"src\":color.imgURL,\"alt\":\"\"}})]),_c('div',{staticClass:\"card-body\"},[_c('h1',[_vm._v(_vm._s(color.name))]),_c('div',{staticClass:\"infos-general\"},[_c('div',{staticClass:\"row print-type\"},[_c('div',[_vm._v(\"Printing Type\")]),_c('div',[_vm._v(_vm._s(color.printType))])]),_c('div',{staticClass:\"row drying-type\"},[_c('div',[_vm._v(\"Drying Type\")]),_c('div',[_vm._v(_vm._s(color.dryingType))])]),(color.colorSelection)?_c('div',{staticClass:\"row color-selection\"},[_c('div',[_vm._v(\"Ink Selection\")]),_c('div',[_c('md-button',{staticClass:\"md-icon-button\",class:{'open':(_vm.openingStates.find(elem => (elem.index == index && elem.name == 'colors')))},on:{\"click\":function($event){return _vm.togglePart(index,'colors')}}},[_c('ChevronDown')],1)],1)]):_vm._e(),(color.colorSelection)?_c('div',{staticClass:\"color-selection-wrapper\",class:{'open':(_vm.openingStates.find(elem => (elem.index == index && elem.name == 'colors')))}},_vm._l((color.colorSelection),function(list,index){return _c('div',{key:index,staticClass:\"list\"},[_c('div',{staticClass:\"name\"},[_vm._v(_vm._s(list.category))]),_c('div',{staticClass:\"content\"},_vm._l((list.array),function(hue,index){return _c('div',{key:index,staticClass:\"hue\",class:{'bordered':hue.hex == '#ffffff'},style:({'background-color': hue.hex})},[_c('p',[_vm._v(_vm._s(hue.code))])])}),0)])}),0):_c('div',{staticClass:\"filler\"})]),_c('div',{staticClass:\"infos-pattern\",class:{'open':(_vm.openingStates.find(elem => (elem.index == index && elem.name == 'pattern')))}},[_vm._l((color.printPattern),function(obj,index){return _c('div',{key:index,staticClass:\"pattern\"},[_c('div',[_c('Check')],1),_c('div',[_vm._v(_vm._s(obj))])])}),_c('div',{staticClass:\"opener\",class:{'open':(_vm.openingStates.find(elem => (elem.index == index && elem.name == 'pattern')))}},[_c('md-button',{staticClass:\"md-icon-button\",class:{'open':(_vm.openingStates.find(elem => (elem.index == index && elem.name == 'pattern')))},on:{\"click\":function($event){return _vm.togglePart(index,'pattern')}}},[_c('ChevronDown')],1)],1)],2),_vm._l((color.files),function(file,index){return _c('div',{key:index,staticClass:\"fileEntry\"},[_c('a',{attrs:{\"href\":file.url,\"target\":\"blank\"}},[_c('File'),_vm._v(\" \"+_vm._s(file.name))],1)])})],2)]),_c('div',{staticClass:\"card-footer\"},[_c('md-button',{class:{'disabled':(color.website == '' || !color.website)},attrs:{\"href\":(color.website != '' && color.website) ? color.website : '#',\"target\":\"blank\"}},[_vm._v(\" More Information \")])],1)])])}),0)])]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.type == 'viewer'),expression:\"type == 'viewer'\"}],staticClass:\"embeddedViewer\"},[_c('iframe',{attrs:{\"src\":_vm.publicPath+'/media/Marabu/wr360/produkte/'+_vm.productname+'/viewer.html',\"width\":\"750\",\"height\":\"500\",\"scrolling\":\"no\",\"frameborder\":\"0\",\"allowfullscreen\":\"\"}}),(_vm.linksVisible && _vm.linksToColors.length>0)?_c('div',{staticClass:\"links\"},[_c('h1',[_vm._v(\"Ink Systems\")]),_vm._l((_vm.linksToColors),function(link,index){return _c('a',{key:index,class:{'followModeratorDisableButton': _vm.followModeratorMode},on:{\"click\":function($event){return _vm.switchView('selection',link.selectionID)}}},[_vm._v(_vm._s(link.name))])})],2):_vm._e()])],1)])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n \r\n\r\n\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WebsiteDialogue.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WebsiteDialogue.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./WebsiteDialogue.vue?vue&type=template&id=0b73dd5e&scoped=true&\"\nimport script from \"./WebsiteDialogue.vue?vue&type=script&lang=js&\"\nexport * from \"./WebsiteDialogue.vue?vue&type=script&lang=js&\"\nimport style0 from \"./WebsiteDialogue.vue?vue&type=style&index=0&id=0b73dd5e&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0b73dd5e\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('transition',{attrs:{\"name\":\"fade\"}},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.viewer3DVisible),expression:\"viewer3DVisible\"}],staticClass:\"Viewer3D\"},[_c('div',{staticClass:\"v3-container\"},[_c('div',{staticClass:\"v3-bar\"},[_c('transition',{attrs:{\"name\":\"fade\"}},[_c('p',{staticClass:\"v3-bar-name\"},[_vm._v(_vm._s(_vm.name))])]),_c('div',{staticClass:\"v3-bar-buttons\"},[_c('md-button',{staticClass:\"md-icon-button\",class:{'followModeratorDisableButton': _vm.followModeratorMode},staticStyle:{\"margin-right\":\"0\"},on:{\"click\":function($event){return _vm.toggleViewer3D(false)}}},[_c('CloseIcon',{staticClass:\"closeIcon\"})],1)],1)],1),_c('div',{staticClass:\"v3-loadingscreen\",attrs:{\"id\":\"v3-loadingScreen\"}},[_c('div',[_c('img',{staticClass:\"v3-logo\",attrs:{\"src\":_vm.publicPath+'/media/'+_vm.logoURL,\"alt\":\"\"}}),_c('div',{staticClass:\"v3-text\",attrs:{\"id\":\"v3-text\"}},[_vm._v(\"0%\")]),_c('svg',{staticClass:\"v3-animation\",attrs:{\"version\":\"1.1\",\"id\":\"L9\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"xmlns:xlink\":\"http://www.w3.org/1999/xlink\",\"x\":\"0px\",\"y\":\"0px\",\"viewBox\":\"0 0 100 100\",\"enable-background\":\"new 0 0 0 0\",\"xml:space\":\"preserve\"}},[_c('path',{attrs:{\"d\":\"M73,50c0-12.7-10.3-23-23-23S27,37.3,27,50 M30.9,50c0-10.5,8.5-19.1,19.1-19.1S69.1,39.5,69.1,50\"}},[_c('animateTransform',{attrs:{\"attributeName\":\"transform\",\"attributeType\":\"XML\",\"type\":\"rotate\",\"dur\":\"1s\",\"from\":\"0 50 50\",\"to\":\"360 50 50\",\"repeatCount\":\"indefinite\"}})],1)])])]),(_vm.hasAnimations)?_c('div',{staticClass:\"v3-animation-button\",on:{\"click\":function($event){return _vm.playAnimation()}}},[_c('PlayCircleOutline')],1):_vm._e(),_c('Canvas',{staticClass:\"v3-canvas\",attrs:{\"id\":\"v3-canvas\"}})],1)])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Viewer3D.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Viewer3D.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Viewer3D.vue?vue&type=template&id=53ab81c9&scoped=true&\"\nimport script from \"./Viewer3D.vue?vue&type=script&lang=js&\"\nexport * from \"./Viewer3D.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Viewer3D.vue?vue&type=style&index=0&id=53ab81c9&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"53ab81c9\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('transition',{attrs:{\"name\":\"fade\"}},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.forcedDisconnectDialogueVisible),expression:\"forcedDisconnectDialogueVisible\"}],staticClass:\"ForceDisconnect\",on:{\"click\":function($event){return _vm.toggleforcedDisconnectDialogue()}}},[_c('div',{staticClass:\"fd-container\",on:{\"click\":function($event){return $event.stopPropagation()}}},[_c('AlertCircleOutline'),_c('h1',{staticClass:\"fd-title\"},[_vm._v(\" \"+_vm._s(_vm.$t('Ein Moderator hat die Session für Sie geschlossen!')))])],1)])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n \r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ForcedDisconnect.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ForcedDisconnect.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ForcedDisconnect.vue?vue&type=template&id=655eee55&scoped=true&\"\nimport script from \"./ForcedDisconnect.vue?vue&type=script&lang=js&\"\nexport * from \"./ForcedDisconnect.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ForcedDisconnect.vue?vue&type=style&index=0&id=655eee55&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"655eee55\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"BugReportDialogue\",on:{\"click\":function($event){return _vm.toggleBugReport()}}},[_c('div',{staticClass:\"br-container\",on:{\"click\":function($event){return $event.stopPropagation()}}},[_c('h1',{staticClass:\"br-header\"},[_vm._v(\"Melde ein Problem\")]),_c('h2',{staticClass:\"br-subheader\"},[_vm._v(\"Fasse bitte das Problem für uns zusammen:\")]),_c('textarea',{staticClass:\"br-textarea\",attrs:{\"id\":\"br-summary\",\"name\":\"\"}}),_c('h2',{staticClass:\"br-subheader\"},[_vm._v(\"Welche Schritte führen zum Problem:\")]),_c('textarea',{staticClass:\"br-textarea\",attrs:{\"id\":\"br-repro\",\"name\":\"\"}}),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.qualityTest == null || _vm.connectionTest == null),expression:\"qualityTest == null || connectionTest == null\"}],staticClass:\"br-testing\"},[_vm._v(_vm._s(_vm.$t('Ihre Verbindung wird überprüft'))+\"...\")]),_c('md-button',{staticClass:\"br-send\",on:{\"click\":function($event){return _vm.send();}}},[_vm._v(\"Senden\")]),_c('p',{staticClass:\"br-version\"},[_vm._v(\"Flux360 Version: \"+_vm._s(_vm.appVersion))])],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","