{"version":3,"sources":["configs.js","gaTracking.js","utils/i18next.js","store/actionTypes.js","consts/controls.js","consts/introStep.js","consts/menuLocation.js","consts/color.js","consts/planeScope.js","consts/ui.const.js","store/state.js","store/reducers.js","store/middlewares.js","store/sagas.js","store/index.js","store/actions.js","consts/dimention.const.js","containers/detectors/size.detector.js","consts/defaultTourSetting.js","containers/detectors/brandColor.handler.js","NotFound.js","utils/global.utils.js","utils/imageHelper.js","utils/canvasHelper.js","utils/textureHelper.js","components/inputSearch/index.js","components/inputSearch/feather-search.png","components/inputSearch/button-search.png","containers/Search/logo-png.png","services/searchApi.js","components/searchData/index.js","containers/Search/index.js","consts/sceneRatio.const.js","consts/hotspotType.const.js","consts/mediaType.const.js","consts/sceneType.const.js","consts/regex.const.js","utils/mediaHelper.js","utils/jsonHelper.js","consts/socialMediaData.js","utils/tourHelper.js","utils/apiHelper.js","components/errors/domError.js","components/errors/panoError.js","containers/ResumeExperience/index.js","assets/images/logo/logo-khaihoanprime.png","components/LoadingImage/khp-pattern-sm.png","components/LoadingImage/index.js","components/HidenUiByQueryParams/index.jsx","utils/menuHelper.js","deviceDetect.js","containers/landing/tip_1.js","containers/landing/tip_2.js","containers/landing/tip_3.js","assets/images/logo/vz-logo.png","components/powered/logo.js","containers/landing/introSlider.js","common/hooks/window.js","consts/url.js","containers/landing/intro.js","containers/world/routes/1stRoute.js","containers/world/routes/2ndRoute.js","containers/world/routes/3rdRoute.js","containers/world/routes/4thRoute.js","containers/world/routes/index.js","utils/controlHelper.js","utils/fullScreen.js","utils/ensurePlanScopeData.js","components/icons/AutoRotateIcon.js","components/icons/FullScreenIcon.js","utils/colorHelper.js","components/icons/ShareIcon.js","components/icons/GyroscopeIcon.js","components/icons/ContactFormIcon.js","components/icons/AudioIcon.js","components/icons/MapIcon.js","components/icons/MapLineIcon.js","components/icons/FloorMapIcon.js","components/icons/PinIcon.js","components/icons/HelpIcon.js","components/icons/AutoPlayIcon.js","components/icons/MapFloorPlanIcon.js","components/icons/ExpandIcon.js","common/hooks/useAddHotspotHistory.js","common/hooks/useNavigatedRoutes.js","components/icons/SceneIconAerial.js","components/icons/SceneIconGround.js","components/panoMenu/menuItem/index.js","components/panoMenu/iconArrow/iconArrowUp.js","components/panoMenu/iconArrow/iconArrowDown.js","components/panoMenu/listItem/index.js","components/panoMenu/index.js","components/GalleryMenu/MenuItem.js","components/GalleryMenu/index.js","components/MenuForDesktop/NotePlate.js","utils/limitLetters.js","components/SchoolLayoutMenu/MenuItem.js","components/SchoolLayoutMenu/index.js","components/MenuForDesktop/SchoolLayoutIcons.js","containers/hotspots/icons/iconHuman.js","components/AACorporationLayout/AquaMenuItem.js","components/icons/icon-images/picture-frame.png","components/icons/icon-images/map-v2.png","components/icons/icon-images/pin.png","components/icons/icon-images/arrow.png","components/icons/icon-images/share.png","components/icons/icon-images/map.png","components/icons/AquaIcons.js","components/icons/icon-images/address.png","components/icons/icon-images/bench-tree.png","components/icons/icon-images/fullscreen.png","components/icons/icon-images/old-building.png","components/icons/icon-images/city.png","components/icons/icon-images/right.png","components/icons/icon-images/list.png","components/icons/icon-images/home.png","components/icons/icon-images/office-building.png","components/HoveringPlate/index.js","components/AACorporationLayout/index.js","components/AquaModal/index.js","components/MenuForDesktop/AquaExtraIcons.js","components/MenuForDesktop/AquaLayoutIcons.js","components/icons/HomeIcon.js","components/MenuForDesktop/PrimeLayoutIcons.js","components/KhaiHoanPrimeLayout/phone-icon.png","components/KhaiHoanPrimeLayout/scene.helper.js","components/KhaiHoanPrimeLayout/PreviewSceneImage.js","components/KhaiHoanPrimeLayout/TopviewSubmenu.js","components/ScaleArrow/index.js","components/KhaiHoanPrimeLayout/AquaMenuItem.js","components/DayTimeSwitch/SunIcon.js","components/DayTimeSwitch/MoonIcon.js","components/DayTimeSwitch/index.js","components/KhaiHoanPrimeLayout/dayNight.const.js","components/KhaiHoanPrimeLayout/CheckingSwitchDayTime.js","components/KhaiHoanPrimeLayout/LevelSwitch.js","components/Compass/laban-400px.png","containers/world/constant.js","containers/world/utils.js","components/Compass/RotationHandler/index.js","components/Compass/index.js","components/Compass/arrow-laban.png","components/KhaiHoanPrimeLayout/index.js","components/MapfoorplanModal/index.js","components/MenuForMobile/index.js","components/MenuForDesktop/index.js","containers/menuV2/index.js","components/popup/iconClose.js","components/popup/index.js","utils/cssHelper.js","containers/socialPopup/IconWebsite.svg","containers/socialPopup/IconFB.svg","containers/socialPopup/IconInstagram.svg","containers/socialPopup/IconTwitter.svg","containers/socialPopup/IconYoutube.svg","containers/socialPopup/IconEmail.svg","containers/socialPopup/IconPinterest.svg","containers/socialPopup/IconSnapchat.svg","containers/socialPopup/icon.js","containers/socialPopup/index.js","utils/positionHelper.js","assets/images/default-preview.svg","containers/hotspots/icons/flicked-arrow.png","containers/hotspots/icons/iconFlickedArrow.js","containers/hotspots/icons/iconAirBalloon.js","containers/scene.types.js","containers/hotspots/icons/iconAerialMap.js","containers/hotspots/icons/iconAerialScene.js","containers/hotspots/icons/iconGroundScene.js","containers/hotspots/icons/pulse.js","utils/distanceHelper.js","containers/hotspots/icons/iconCustom.js","containers/hotspots/icons/aqua-hotspot-frame/index.js","containers/hotspots/icons/scene.js","components/icons/checked.js","containers/hotspots/icons/iconGoogle360.js","assets/icons/google.png","containers/hotspots/icons/iconMapFloorPlan.js","containers/hotspots/icons/iconMatterport.js","assets/icons/Matterport_icon.png","containers/hotspots/icons/iconMediaGallery.js","containers/hotspots/icons/iconMediaInfo.js","assets/icons/info.png","assets/icons/pdf.png","containers/hotspots/icons/iconMediaPdf.js","containers/hotspots/icons/iconMediaVideo.js","containers/hotspots/icons/iconTypeForm.js","containers/hotspots/icons/iconShapeSpark.js","assets/icons/shapespark.png","containers/hotspots/icons/iconMediaSketchFab.js","containers/hotspots/icons/iconMediaLumaAi.js","assets/icons/luma_ai_icon.jpg","containers/hotspots/tag/InfoTag.js","containers/hotspots/icons/media.js","containers/hotspots/icons/index.js","containers/hotspots/index.js","containers/threedMap/marker.js","containers/threedMap/bubblePositioning.js","containers/threedMap/box.js","containers/threedMap/callout_aerial.svg","containers/threedMap/mapLoading.js","containers/threedMap/mapBoxUtils.js","containers/threedMap/index.js","containers/world/popupHandle/index.js","containers/audio/ambient.js","containers/audio/audio.js","containers/audio/tourAudio.js","containers/audio/index.js","containers/world/handleAutoRotate.js","components/TitleFollowCursor/index.js","components/MouseGuideline/index.js","components/MouseGuideline/hand-sm-red.png","components/MouseGuideline/mouse-sm-red.png","containers/world/world2d.js","containers/world/controls/deviceOrientationControls/DeviceOrientationControls.js","containers/world/controls/deviceOrientationControls/index.js","containers/world/controls/orbitControls/OrbitControls.js","containers/world/controls/orbitControls/index.js","containers/world/controls/index.js","consts/mediaTypeAudio.js","containers/world/lensflare/lensflare.js","containers/world/lensflare/index.js","containers/world/lensflare/lensflareCheck.js","containers/hotspots/line/utils.js","containers/hotspots/line/calloutLine.js","containers/hotspots/line/Html.js","containers/hotspots/line/canvasCircle.js","containers/hotspots/line/canvas.js","containers/hotspots/line/hotspotContainer.js","containers/hotspots/line/canvasPulsePoint.js","containers/hotspots/line/mediaHotspotLine.js","containers/hotspots/line/sceneIndoorHotspot.js","containers/hotspots/line/sceneOutdoorHotspot.js","containers/hotspots/line/primaryTopviewHotspot.js","containers/hotspots/line/lineSingle.js","utils/hotspotHelper.js","containers/hotspots/line/index.js","containers/world/lineListHander/index.js","containers/world/worldInteract.js","containers/world/anisotropy.js","containers/world/renderOverride.js","containers/world/deviceControlMode/locationLookAt.js","containers/world/deviceControlMode/index.js","containers/world/sceneController/cube360/lookUtils.js","containers/world/sceneController/transition.const.js","containers/world/sceneController/cube360/constants.js","containers/world/sceneController/cube360/materials/fadeMaterial.js","containers/world/sceneController/cube360/materials/material.js","containers/world/sceneController/cube360/materials/transparentShader.js","containers/world/sceneController/cube360/SceneInteractionTracker.js","containers/world/sceneController/cube360/cubeEffect.js","containers/world/sceneController/cube360/tripodMarker.js","containers/world/sceneController/scene.utils.js","containers/world/sceneController/cube360/cube.js","containers/world/sceneController/footStep/index.js","containers/world/sceneController/footCursor/index.js","containers/world/sceneController/transparentCube/index.js","containers/world/sceneController/cube360/index.js","containers/world/sceneController/index.js","containers/world/world3d.js","containers/world/popupPasscode/index.js","components/AutoPlayModeByQueryParams/index.jsx","containers/world/index.js","AppRoutes.js","error.const.js","TourError.js","App.js","reportWebVitals.js","serviceWorker.js","index.js","utils/trackingHelper.js"],"names":["isPreview","indexOf","window","location","hostname","configs","local","process","prod","baseUrl","apiUrl","viewMode","previewMode","googleApiKey","mapBoxToken","gaTrackingId","singleTour","tourJson","REACT_APP_TOUR_JSON","mapRoute","socialRoute","crossfadeSpeed","transitionSpeed","zoom","min","max","useSplitTexture","gaTrackerNames","hasGATracking","trackPageView","page","trackTourView","tourId","EVENT_CATEGORY","TOUR","SCENE","MEDIA","TOUR_MEDIA","MAP","EVENT_TYPE","trackEventByType","type","id","eventData","action","targetId","item_id","category","label","data","tour","trackEvent","initTracking","trackDeepLink","fbPixelId","trackingGroup","push","trackingId","gaOptions","name","ReactGA","initialize","debug","titleCase","alwaysSendToDefaultTracker","pathname","search","logMessage","ReactPixel","init","autoConfig","pageView","scene","hotspot","mediaId","getMediaIdByFriendlyName","sceneId","getSceneIdByFriendlyName","json","scenes","find","_id","media","resource","en","translation","vi","jp","i18n","use","LanguageDetector","initReactI18next","detection","order","lookupLocalStorage","lookupQuerystring","caches","resources","fallbackLng","supportedLngs","interpolation","escapeValue","INITIATE","INITIATED","SET_TOUR_DATA","TOGGLE_MENU","SET_MENU_POSITION","TOGGLE_PANO_MODE","SET_PANO_DATA","GO_TO_PANO","CLOSE_LANDING","TOGGLE_LANDING","SET_AERIAL_MAP_DATA","ADD_HOTSPOT_HISTORY","SET_CONTROL_MODE","SET_GYRO","SET_CENTER_LOOKAT","TOGGLE_AUDIO","SET_AUDIO_AVAILABLE","SET_AUDIO_AUTOPLAY","UPDATE_DIMENTIONS","TOGGLE_BLUR","SET_TOUR_ERROR","SET_VIEW_MODE","SET_AUTO_PLAY","UPDATE_PREV_ROTATION","SET_AUTO_ROTATE","SET_SEARCH_PARAMS","SET_OPEN_POPUP","UPDATE_WORLD_PARAMS","SET_IS_PANNING","SET_DATE_LIGHT","CONTROLS","INTRO_STEP","MENU_LOCATION","menuHighlightDefaultColor","defaultIconBgColor","PLAN_SCOPE_KEYS","DEFAULT_SCOPES_DATA","scopeType","value","limitPerTour","user","HOTSPOT_UI","LAYOUT_UI","initialState","dateLight","ready","error","groups","panoMode","showLanding","aerialMapData","aerialDataReady","menu","isOpen","position","isoMetricMap","social","currentScene","hotspotHistory","currentHotspot","dimentions","width","height","dimention","shouldBlur","audio","available","enabled","autoPlay","tourAudio","isLandingOpen","controlMode","autoPlayMode","centerLookAt","subscriptionPlan","enableBranding","logoURL","hasLogo","prevRotation","autoRotate","searchParams","worldParams","groupId","hotspotId","split","getParamsFromURL","appReducer","state","payload","APP_ACTION","enableBrandingObject","scopes","scope","key","Boolean","trim","length","s","blur","undefined","gyro","isOpenPopUp","isPanning","initiate","Promise","resolve","setTimeout","result","put","middlewares","handleInit","rootSaga","takeLatest","all","sagaMiddleware","createSagaMiddleware","composeEnhancer","__REDUX_DEVTOOLS_EXTENSION_COMPOSE__","compose","store","createStore","reducers","applyMiddleware","run","toggleMenu","goToScene","toggleAudio","isOn","setAutoPlay","updatePrevRotation","setAutoRotate","setDateLight","mapDispatchToProps","updateDimentions","connect","props","currDimentions","isClient","getWinSize","innerWidth","innerHeight","DIMENTION","useState","winSize","setWinDim","useEffect","handleResize","addEventListener","removeEventListener","useWindowSize","DEFAULT_TOUR_SETING","menuHighlightColor","calloutHeaderColor","calloutSubHeaderColor","lightboxBGColor","lightboxHeaderColor","lightboxBodyTextColor","BrandColorHandler","brandColor","useSelector","doc","document","documentElement","style","setProperty","setVar","NotFound","className","display","alignItems","justifyContent","textAlign","fontWeight","fontSize","color","isoDateString","Date","toISOString","waitASecond","sec","imageQueues","imageQueueNo","cancelImageQueues","imgs","Object","keys","index","img","Image","complete","naturalHeight","src","maxDimension","Math","getSizeBasedOnScreenSize","Cache","THREECache","ColorManagement","textures","loader","TextureLoader","imgLoader","ImageBitmapLoader","setCrossOrigin","setRequestHeader","credentials","loadTest","date","load","bitMap","loadTexture","anisotropy","hdImgs","reject","dispose","getTextureStatus","texture","cleanLoadTexture","colorSpace","LinearSRGBColorSpace","cleanLoadTextures","imgReqs","map","then","res","catch","err","InputSearch","onSubmitSearch","text","setText","onKeyDown","e","alt","placeholder","onChange","event","preventDefault","target","onClick","searchByQuery","query","fetch","method","body","JSON","stringify","Query","searchData","backgroundImage","introImageUrl","to","tagline","substr","Search","searchResult","setSearchResult","firstInit","setFirstInit","isSuccess","console","LogoCompany","SCENE_RATIO","IMAGE","INFO_TAG","YOUTUBE","AUDIO","PDF","GALLERY","MATTERPORT","MAPFLOORPLAN","GOOGLE360","TYPEFORM","CUSTOM","VIDEO","TOUR_AUDIO","SHAPESPARK","SKETCH_FAB","MODEL_3D","LUMA","SCENE_TYPES","AERIAL","LANDING","GROUND","REGEX","YOUTUBE_ID","VIMEO_ID","YOUTUBE_URL","VIMEO_URL","EXTRACT_YOUTUBE_ID","EMAIL","FACEBOOK","platforms","getVideoId","vimeo","url","match","youtube","updateVideoMediaData","videoData","videoUrl","platform","p","includes","checkVideoType","videoId","getVideoIdByPlatform","getNewImgUrl","path","imgUrl","newUrl","convertImg","newImg","constructor","String","Array","getMediaHotspotItem","friendlyName","formatJsonImgUrl","jsonData","panoList","pop","join","getPathFromJsonUrl","brand","logo","forEach","images","hotspots","h","icons","unread","read","thumb","formatOldJson","parse","newJson","hp","HOTSPOT_TYPE","x","y","z","distance","sceneLinkId","panoId","mediaLinkId","m","title","MEDIA_TYPE","content","description","imageURL","readMoreURL","moreInfoLink","youtubeID","SCENE_TYPE","toUpperCase","isDefault","default","viewingAngle","defaultOrientation","coordinates","lng","lat","lensFlareLocation","lensflare","noLensFlare","yaw","elevation","previewImgUrl","cubeMapImages","size1024","cube","low","size2048","high","items","i","panos","j","replaceItemIdWithFriendlyName","list","item","fromCustomData","customData","typeForm","LOGO_OVERRIDE","logoOverride","google360Url","google360","sketchFab","lumaUrl","luma","shapeSparkUrl","shapeSpark","video","soundUrl","modelUrl","modelName","size","modelCoordinate","updateItemId","sceneRatio","shouldLimitPan","group","g","tourGroupId","replacegroupIdWithFriendlyName","checkEnableBranding","subscription","SOCICAL_MEDIA","combineTour","customer","objectCustomerTour","toLowerCase","loadJsonVNNIC","response","ensureData","featuredMedia","contact","featuredHotspots","featured","isArray","getFeatureMedia","mediaType","mapId","contactId","other","updateFeatureMedia","sceneType","updateScenesAndHotspots","d","updateMenuItemsWithScene","brandColor1","companyTagline","lightboxBackgroundColor1","lightboxBackgroundColor2","lightboxBackgroundColor3","audioAvailable","hotspotStyle","updateDefaultValues","loadFromUrl","jsonUrl","loadTourSubscription","parsePreloadJsonScript","jsonStr","jsonStrFormatted","replace","loadTourJson","tourAccessCode","preloadEl","getElementById","textContent","active","DomErrorBoundary","hasError","errorInfo","this","children","React","Component","PanoErrorBoundary","ResumeExperience","onUpdate","spinnerVisible","isFirstTime","setIsFirstTime","setEnabled","step","setStep","onHide","useCallback","triggerClickHide","requestAnimationFrame","LoadingImage","loaded","onClosing","onClosed","loadingImage","useMemo","clientLogo","enableAnimation","setEnabledAnimation","startTimer","useRef","now","delay","ms","current","progress","progressEl","updateProgress","el","timer","setInterval","clearInterval","patternPng","ref","HidenUiByQueryParams","dispatch","useDispatch","useLocation","history","useHistory","modeValue","URLSearchParams","get","isMenuLeft","detector","MobileDetect","navigator","userAgent","isMobile","mobile","isPhone","phone","Tip","xmlns","xlink","viewBox","fill","stroke","strokeWidth","transform","clipPath","strokeLinecap","strokeMiterlimit","strokeLinejoin","cx","cy","rx","ry","x2","PoweredLogo","IntroSlider","setSize","useLayoutEffect","updateSize","widthScreen","portrait","listRef","slidePerPage","setSlidePerPage","settings","dots","adaptiveHeight","speed","slidesToShow","slidesToScroll","onClickCapture","stopPropagation","rel","href","PHONE","withRouter","status","setStatus","highlightColor","globalAudioPlayed","play","tourAudioPlayed","haveAudioSrc","getElementsByClassName","hasOwnProperty","call","background","image","queries","isMobileDevice","ORBIT","DEVICE","handleGetControlModeOnMobile","mode","nextMode","DeviceOrientationEvent","requestPermission","switchControlMode","canFullscreen","docElm","requestFullscreen","mozRequestFullScreen","webkitRequestFullScreen","msRequestFullscreen","toggleFullScreen","fullscreenElement","webkitFullscreenElement","mozFullScreenElement","msFullscreenElement","exitFullscreen","webkitExitFullscreen","mozCancelFullScreen","msExitFullscreen","ensureSubscriptionData","subscriptionData","reduce","preValue","currentValue","enableAnalytics","AutoRotateIcon","shouldRotate","activeColor","FullScreenIcon","fullScreen","mixColor","mixClr","mClr","Color","mix","floor","ShareIcon","settingColor","clr","red","green","blue","ensureNonWhite","GyroscopeIcon","ContactFormIcon","AudioIcon","MapIcon","MapLineIcon","version","r","FloorMapIcon","PinIcon","HelpIcon","AutoPlayIcon","MapFloorPlanIcon","fillRule","opacity","ExpandIcon","xmlnsXlink","xmlSpace","useAddHotspotHistory","hsId","mediaHotspot","useNavigatedRoutes","addHotspotHistory","activeHotspot","setActiveHotspot","handleUpdateRoute","MenuIcon","colorChecked","bgColor","SceneIcon","onSelect","viewed","colorActive","alpha","toString","backgroundColor","IconArrowUp","enableBackground","space","IconArrowDown","ListMenuItem","historyLogs","toggle","setToggle","setHeight","onClickMenu","duration","MenuItem","sceneGroup","selectedCard","handleSelect","defaultSceneId","scenesInGroup","filter","some","groupScene","defaultScene","isSelected","border","GalleryMenu","desktop","openMenu","handleOpenMenu","currentPano","setSelectedCard","currentGroup","options","suppressScrollX","suppressScrollY","NotePlate","note","arrowClass","limitLetters","letters","limit","slice","SchoolLayoutMenu","menuList","isSchoolLayout","menuScenes","flatMap","htmlFor","SchoolLayoutIcons","isAutoPlay","toggleHelpButton","isShowAudioIcon","menuPosition","handleFullScreen","isShowMapFloorPlan","setIsActiveMap","isActiveMap","mapShowed","setOpenDropDown","openDropDown","handleSelectMap","floorMaps","switchMode","enableGyroscope","handleSwitchControlMode","objects","viewpoint","currentPoint","leftInPercent","topInPercent","left","top","IconHuman","AquaMenuItem","setOpenMobileMenu","hover","setHover","hoverImage","onMouseLeave","AquaVideoIcon","AquaMapfloorplanIconV1","AquaMapfloorplanIconV2","isActive","Map2","AquaLocationIcon","Location","AquaGreenParkIcon","AquaFullscreenIcon","AquaAutoRotateIcon","AutoRotate","AquaHouse","AquaVilla","Share","AquaRightArrow","AquaSceneMenuIcon","AquaLargeMapfloorplanIcon","LargeMapfloorplanIcon","PrimeApartmentIcon","PrimeOfficeBuildingIcon","HoveringPlate","textHover","isPrimeStyle","showTooltip","setShowTooltip","setPosition","updatedText","onMouseEnter","onMouseMove","rect","getBoundingClientRect","clientX","clientY","Icons","iconOrder","iconComponents","AACorporationLayout","tourLogo","hoverMenuItem","setHoverMenuItem","hoverScenes","setHoverScenes","openMobileMenu","openRightMenu","setOpenRightMenu","isIpad","currentMenu","sce","rightGroupMenu","gr","Fragment","onMouseOver","AquaModal","iframeObject","handleClose","shouldRenderIframe","setShouldRenderIframe","isLoading","setIsLoading","clearTimeout","frameBorder","allow","referrerPolicy","allowFullScreen","AquaExtraIcons","setIsOpen","setIframeObject","AquaLayoutIcons","isAquaStyle","isShowOnMap","shouldShowMapIcon","shareUrl","encodeURIComponent","open","HomeIcon","PrimeLayoutIcons","setIsOpenMapfloorplanModal","isIndoorMap","isNaN","sceneList","mikaSceneList","mikaTopMenu","PreviewSceneImage","subTopviewScenes","indexHover","TopviewSubmenu","sceneDetail","sort","a","b","aTitle","bTitle","localeCompare","ScaleArrow","rotate","setIsOpenTopviewSubmenu","setIsOpenMikaTopviewSubmenu","isOpenMikaTopviewSubmenu","isOpenTopviewSubmenu","isTopviewSub","topViewHover","setTopViewHover","SunIcon","overflow","MoonIcon","DayTimeSwitch","daylight","setDaylight","sceneDayTime","tongThe01","tongThe02","hoBoi","congVao","bbq","quangTruong","suKien","sceneNightTime","sceneDay2Night","sceneNight2Day","objHasValue","obj","val","values","isDayScene","isNightScene","getOppositeScene","sceneDayNightList","isDayOrNight","CheckingSwitchDayTime","toggleDateLight","opp","isVisibleDayNightControl","LevelSwitch","enable","mikaEnable","isLevel","lvl","goToLevel","STEP_WIDTH","BOX_WIDTH","TRANSFORM_RATIO","sqrt","INITIAL_POSITION_CURSOR","INITIAL_ROTATION_CURSOR","PI","DEFAULT_ROTATION_X_ANGLE","getCrossProductTwoVectors","vec1","vec2","cosTwoVectors","pow","calcAngleBetweenVectors","cosAngle","acos","calcRotationY","crossProduct","calcCamRotationY","camPosition1","camPosition2","calcFootRotationY","angle","angleRotate","calcScaleForProjection","yFootPos","currentScale","scaleX","scaleY","getCenterScreen","formatScenes","mapFloorPlanItems","allObjects","mapFloorPlan","floorPlan","object","parentId","itemB","matchingObjects","mapFloorPlans","isHaveMap","updateVector3OrPointByRotationXZ","pointArr","rad","isVec3","x_new","cos","sin","z_new","Vector3","RotationHandler","cameraParams","sceneRotation","setRotationY","defaultOrientationAdj","prevRot","lookAtPoint","fov","rotationY","angleInClockwise","dotProduct","getDotProductTwoVectors","calRotationYDefaultAndCenterLookAt","Compass","deg","compassRef","compassImg","COMPASS_DATA","COMPASS_DEGREE_DATA","CompassContainer","isVisible","defaultDegree","compassDeg","radians","round","KhaiHoanPrimeLayout","under1024","topviewSubmenu","isTopViewScene","isMikaTopViewScene","KhpLogo","MapfloorplanModal","close","pointerEvents","MenuForMobile","isNavOpen","subTitle","menuOpenScene","toggleRotate","setIsAutoPlay","setFullScreen","setMapShowed","isOpenMapfloorplanModal","isMenuGallery","menuStyle","setOpenMenu","mapCoordinates","mediaMap2D","hs","intialMap","pano","getCurrentMap","VZIcon","onClose","MenuForDesktop","classList","add","remove","isPublic","cursor","DEFAUlt_MAP_COORDINATES","togglePanoMode","setMenuPosition","mapPopupOpen","socialPopupOpen","tourMapCoordinates","showOnMap","useMediaQuery","gId","sId","switchToMode","isEqual","hightLightColor","mapFloorPlansSet","Set","floorPlans","arr","findIndex","itemToMove","splice","unshift","moveItemToTop","from","IconClose","t","useTranslation","fontFamily","color1","color2","color3","popupBody","popupBodyEl","disableBodyScroll","enableBodyScroll","clr3","hideCloseBtn","containerStyle","boxShadow","IconWebsite","iconWebsite","IconFacebook","iconFB","IconInstagram","iconInstagram","IconTwitter","iconTwitter","IconYoutube","iconYoutube","IconEmail","iconEmail","IconPinterest","iconPinterest","IconSnapchat","iconSnapchat","SocialIcon","link","textColor","lightboxBodyColor","formatEmailUrl","email","closePopup","websiteUrl","facebookUrl","instagramUrl","twitterUrl","youtubeUrl","pinterestUrl","snapchatUrl","getCameraPositionFromLookAtCoordinates","newX","newY","newZ","abs","getSphericalPosition","w","v","theta","phi","THREE","get2DScreenPosition","coord","camera","visible","vector","project","distanceBetween2dCoordinates","coord1","coord2","xDiff","yDiff","isPositionValid","IconFlickedArrow","FlickedArrow","AirBalloonIcon","AERIAL_MAP","Icon","IconAerialScene","visited","IconGroundScene","Pulse","validCoord","Number","feetBetween","lngLat1","LngLat","lngLat2","distanceTo","metersBetween","num","IconCustom","iconUrl","AquaHotspotFrame","configsData","subtitle","subImage","titleFontSize","subtitleFontSize","titleColor","subtitleColor","backgroundBlur","titleBold","subtitleBold","borderWidth","borderType","borderColor","isShowPreviewImg","setIsShowPreviewImg","paddingAtt","pdY","pdX","rgbBgColor","hex","hexChar","bigint","parseInt","hexToRgb","bgOpacity","backdropFilter","borderRadius","padding","SceneHotspot","currentSceneCoords","isActiveIcon","setDistance","isHotspotUiDefault","params","isAirBalloonStyle","feet","fts","IconAirBalloon","IconAerialMap","onClickHotspot","isHover","toggleHover","newPath","closeMapNavigation","hoverIn","hoverOut","isMapFloorPlan","defaultPreview","draggable","CheckBox","iconGoogle360","iconMapFloorPlan","iconMatterport","PdfIcon","iconTypeForm","iconShapeSpark","iconSketchFab","iconMediaLumaAi","InfoTag","detail","up","styles","bottom","infoTag","readMoreUrl","isURL","MediaHotspot","isShowMapFloorPlanButton","MEDIA_TYPES","IconMediaVideo","IconMediaInfo","iconMediaPdf","IconMediaGallery","IconMediaMatterport","IconGoogle360","IconMapFloorPlan","IconTypeForm","IconShapeSpark","IconSketchFab","IconMediaLumaAi","getIcon","typeLabel","getTypeLabel","HotspotIcon","SceneHotspotIcon","MediaHotspotIcon","zIndexRange1","zIndexRangeHover","HotspotSingle","elRef","zIndex","setZIndex","zIndexRange","setZIndexRange","hovering","setHovering","hoverToggled","parentNode","Html","center","Line","source","x1","y1","z1","y2","z2","lineGeometry","setFromPoints","geometry","attach","linewidth","Point","aerial","coords","bubbleCoords","args","scale","onClickBubble","isValidCoords","distance2d","a1","b1","getCenter","aerials","totals","acc","getRandomNumber","random","separateAerials","centerCoord","vecCenter","normalize","calcBubblePosition","times","collapsedAerials","objectAerials","haveCollapsed","aerial2","jindex","BUBBLE_WIDTH","getGroupAerials","grouped","uniques","currGroup","currCenter","unique","u","currA","isArr1ChildOfArr2","toGroup","k1","k2","childArrId","getChildGroup","childId","k3","arr2","aChild","isArr1EqualsArr2","isArr1InArr2","every","MAP_SIZE","MAP_STYLE","getMapBoxImgUrl","bearing","mapConfig","mapBoxAccessToken","mapBoxStyle","sidePxUrl","sideNxUrl","sidePyUrl","sideNyUrl","currRotate","Box","rotateDeg","updateCenter","aerialScenes","isDragging","setAerials","iconVisible","setIconVisible","useThree","gl","set","lookAt","maxAnisotropy","capabilities","getMaxAnisotropy","setTexture","t0","setT0","t90","t180","t270","rotation","gsap","positioned","bubbleUtils","mapCoords","sideTexture","Texture","pxTexture","setPxTexture","nxTexture","setNxTexture","pyTexture","setPyTexture","nyTexture","setNyTexture","txt","side","FrontSide","MapLoading","aerialIcon","clamp","n","mercatorYfromLat","log","tan","earthCircumfrence","mercatorZfromAltitude","altitude","latitude","defaultOptions","pitch","MapBoxUtils","tileSize","worldSize","_fov","maxValidLatitude","_pitch","zoomScale","convert","constrain","calcMatrixes","lnglat","tProject","cameraToCenterDistance","halfFov","groundAngle","topHalfSurfaceDistance","point","farZ","nearZ","Float64Array","mat4","perspective","translate","rotateX","rotateZ","mercatorMatrix","projMatrix","create","labelPlaneMatrix","pixelMatrix","multiply","_constraining","unmodified","_unmodified","unproject","scaleZoom","LN2","MercatorCoordinate","fromLngLat","coordinatePoint","locationCoordinate","toLngLat","vec4","transformMat4","TheedMap","angleZ","mapRotate","lightSettings","intensity","oldCoord","interval","setCenter","calcAerialScenesPosition","setAerialMapData","handlePointerDown","pageX","pageY","setState","handlePointerUp","newAngleZ","handlePointerMove","centralizeCoordinates","AngleBetweenVectors","Ax","Ay","Bx","By","magAmagB","sinTheta","cosTheta","atan2","queryMapScenes","applyMapConfig","light","onPointerDownCapture","onPointerMoveCapture","onPointerUpCapture","fallback","mapLightColor","mapLightIntensity","PopupHandle","useParams","isConfigRoute","currentMedia","AmbientAudio","audios","audioRef","loop","repeat","audioUrl","setAudioUrl","aUrl","audioConfigs","audioRepeat","TourAudio","audioSoundUrl","pause","spinnerOn","controls","onPlay","findObjectIndex","HandleAutoRotate","onChangeScene","autoRotateSpeed","isRotate","currentIndex","setCurrentIndex","tocDo","banKinh","timeoutId","TitleFollowCursor","iconImg","isFirstShowGuideline","instruction","MouseGuideline","show","setShow","handleClick","showSpinner","showIntro","selectSceneById","toggleFeatured","toggleMap","control","switchControl","onClickPoweredBy","mediasList","mediaGroups","introOn","DeviceOrientationControls","_defineProperty","beta","gamma","deviceOrientation","screenOrientation","orientation","Euler","Quaternion","quaternion","orient","euler","setFromEuler","q1","q0","setFromAxisAngle","zee","onScreenOrientationChangeEvent","onDeviceOrientationChangeEvent","device","MathUtils","degToRad","alphaOffset","setObjectQuaternion","lastQuaternion","dot","EPS","copy","dispatchEvent","changeEvent","disconnect","reorder","EventDispatcher","rest","defaultCamera","invalidate","explCamera","DeviceOrientationControls$1","callback","useFrame","update","_extends","_changeEvent","_startEvent","_endEvent","ZOOM_MODE","OrbitControls","domElement","warn","touchAction","minDistance","maxDistance","Infinity","minZoom","maxZoom","zoomMode","minPolarAngle","maxPolarAngle","minAzimuthAngle","maxAzimuthAngle","enableDamping","dampingFactor","enableZoom","zoomSpeed","tempPauseRotate","enableRotate","rotateSpeed","enablePan","panSpeed","screenSpacePanning","keyPanSpeed","LEFT","UP","RIGHT","BOTTOM","mouseButtons","MOUSE","ROTATE","MIDDLE","DOLLY","PAN","touches","ONE","TOUCH","TWO","DOLLY_PAN","target0","clone","position0","zoom0","_domElementKeyEvents","getPolarAngle","spherical","getAzimuthalAngle","getDistance","listenToKeyEvents","saveState","reset","updateProjectionMatrix","STATE","NONE","offset","quat","setFromUnitVectors","quatInverse","invert","lastPosition","twoPI","sub","applyQuaternion","setFromVector3","rotateLeft","sphericalDelta","isFinite","makeSafe","radius","addScaledVector","panOffset","setFromSpherical","multiplyScalar","zoomChanged","distanceToSquared","onContextMenu","onPointerDown","onPointerCancel","onMouseWheel","onPointerMove","onPointerUp","TOUCH_ROTATE","TOUCH_PAN","TOUCH_DOLLY_PAN","TOUCH_DOLLY_ROTATE","Spherical","rotateStart","Vector2","rotateEnd","rotateDelta","panStart","panEnd","panDelta","dollyStart","dollyEnd","dollyDelta","pointers","pointerPositions","getZoomScale","rotateUp","panLeft","objectMatrix","setFromMatrixColumn","panUp","crossVectors","pan","deltaX","deltaY","element","isPerspectiveCamera","targetDistance","clientHeight","matrix","isOrthographicCamera","right","clientWidth","dollyOut","dollyScale","nextFov","newZoom","dollyIn","handleMouseDownRotate","handleMouseDownPan","handleTouchStartRotate","handleTouchStartPan","handleTouchStartDolly","dx","dy","handleTouchMoveRotate","getSecondPointerPosition","subVectors","handleTouchMovePan","handleTouchMoveDolly","setPointerCapture","pointerId","addPointer","pointerType","trackPointer","DOLLY_ROTATE","onTouchStart","mouseAction","button","handleMouseDownDolly","ctrlKey","metaKey","shiftKey","onMouseDown","handleTouchMoveDollyPan","handleTouchMoveDollyRotate","onTouchMove","handleMouseMoveRotate","handleMouseMoveDolly","handleMouseMovePan","removePointer","releasePointerCapture","handleMouseWheel","needsUpdate","code","handleKeyDown","pointer","passive","toggleOverride","extend","ROTATE_SPEED","ZOOM_SPEED","Controls","guideMode","setGuideMode","autoOverride","setAutoOverride","controlRef","minPolar","maxPolar","ena1","auto1","autoSpeed1","enableKeys","isDevice","setIsDevice","Lensflare","LensflareElement","LensflareComponent","lightRef","sunRef","lightPos","aspect","getLightPosition","loadLenflare","loadTextures","flareSun","flareRed","flareYellow","flareGreen","flareBlue","flareRainB","addElement","setSunSize","xyLocation","maxVisibleDistance","screenCenter","newSize","decay","WebLensflare","threeContext","CANVAS_H","CANVAS_W","CANVAS_STYLE","v1","v2","v3","ori","ANIMATION_DURATION","getElapsed","time","handleDrawLine","lineColor","ctx","drawDashHsLine","drawHsLine","drawHsLinePercent","toX","toY","visibleAt","onVisible","elapsed","percent","tp","getPercent","beginPath","moveTo","lineTo","lineWidth","strokeStyle","setLineDash","onPositionChanged","cvRef","hsRef","getContext","clearRect","hs2d","forwardRef","eps","prepend","fullscreen","portal","scaleFactor","hotspotRef","canvasRef","createElement","root","old","forceUp","currentRoot","ReactDOM","updateMatrixWorld","objectPos","setFromMatrixPosition","matrixWorld","widthHalf","heightHalf","cameraPos","deltaCamObj","camDir","getWorldDirection","isBehind","angleTo","calculatePosition","cssText","appendChild","removeChild","unmount","render","calculatePosition1","calculatePosition2","PerspectiveCamera","vFOV","dist","OrthographicCamera","objectScale","A","far","near","B","objectZIndex","defaultCalculatePosition","epsilon","getCSSMatrix","multipliers","matrix3d","elements","getCameraCSSMatrix","getObjectCSSMatrix","factor","f","distanceFactor","sprite","occlude","onOcclude","castShadow","receiveShadow","material","as","wrapperClass","raycaster","events","viewport","oldZoom","oldPosition","transformOuterRef","transformInnerRef","connected","occlusionMeshRef","isMeshSizeSet","isRayCastOcclusion","isRefObject","vec","transformStyle","transformInnerStyles","_root$current","_root$current2","updateWorldMatrix","isBehindCamera","isObjectBehindCamera","raytraceTarget","previouslyVisible","isvisible","elPos","screenPos","setFromCamera","intersects","intersectObjects","intersectionDistance","ray","origin","isObjectVisible","halfRange","zRange","projectionMatrix","cameraMatrix","matrixWorldInverse","cameraTransform","transpose","copyPosition","divideScalar","setScalar","ratio","ele","shaders","vertexShader","fragmentShader","DoubleSide","CanvasMarker","centerX","arc","centerY","fillStyle","closePath","memo","Canvas","HotspotContainer","CanvasPulsePoint","contents","isSalesGallery","sceneIndoorHotspot","SceneOutdoorHotspot","titles","primaryTopviewHotspot","title1","title2","MEDIA_DATA","kdt","_","clubhouse","LineSingle","trackingRef","isCalloutStyle","isTag","setHotspotHovering","xyHotSpotPos","onHotspotVisible","map2Dconfigs","isShowHotspot","checkIsShowHotspotMap","mediaHeight","checkMediaLineHeight","baseIconType","spots","setHotspots","timeOut","spotHistory","hsPos","currHsPos","onClickJumpSpot","toggleHideFootSteps","LineListHandler","showHP","restProps","popupOpen","WorldInteract","meshRef","boxArgs","BackSide","transparent","RenderOverride","LocationLookAt","getCenterLookAt","intersection","intersectObject","handleCenterLookAt","DetectControlSwitch","qua","moveCloseToY","toCal","getCurvePoints","basePoints","start","nRound","stepNum","yStep","dStep","points","ang","curPoint","getPoints","TRANSITION_METHOD","SIDE","CustomShader","CrossFadeMaterial","ShaderMaterial","texture1","texture2","mixFactor","materialRef","opacityRef","uniforms","transparentOpacity","anim","TransparentShader","UniformsUtils","merge","mouse","SceneInteractionTracker","userEngagementInterval","userEngagementTimeout","prevPointRef","isFirst","countDrag","countClick","countScroll","isUserEngagement","setIsUserEngagement","isChange","setIsChange","mouseDownTime","setMouseDownTime","mouseUpTime","setMouseUpTime","debounceTimeoutDragging","setDebounceTimeoutDragging","debounceTimeoutClick","setDebounceTimeoutClick","debounceTimeoutScroll","eventCount","setEventCount","useImperativeHandle","handleMouseDown","currentTime","getTime","handleMouseUp","saveCurrentOrientation","getCenterLookat","handleScroll","prev","prevX","prevY","prevZ","elapsedTime","SCALE_RANGE","CubeEffect","texture0","stepHandlers","tripodMarkerUrl","getCameraParams","getSceneRotation","setOpacity","sceneViewRef","findCenterPointLookAt","updateMatrix","planeWidth","planeHeight","planeGeometry","planeMaterial","planeMesh","renderOrder","marker","sceneData","stepPosition","rotations","shouldAnimate","transitionMethod","currRot","currRotation","fromPosition","transformData","positionNext","nextPosition","matrixAutoUpdate","createTexture","cubeMaterials","px","nx","py","ny","pz","nz","Cube360","queue","toClean","linkedScenes","nonLinkedScenes","processQueue","loadImages","loadImageAsTextures","onSDLoaded","getLinkedImages","animateCamera","cleanHdCache","onShowHotspots","loadLinkedImages","onHDLoaded","tablet","size4096","loadNonLinkedImages","linkedStepSceneIds","steps","targetSceneId","linkedHotspotSceneIds","linkedSceneIds","hotspotsSceneList","menuPano","menuJson","menuPanoId","flatten","menuPanoList","loadQueue","handleQueue","onCompleted","preloadImages","allAtOnce","reloadTextureState","reqs","textureKey","callBack","getCurrentIdIndex","curMixFactor","preProps","footStepImg","FootStep","scaleRef","useTexture","stepX","stepY","stepZ","scaledPosition","newScale","alphaTest","FootCursor","visibleSteps","calculate2DDistance","pointerDownTime","pointerDownPosition","clickPoint","boxObj","getObjectByName","findIntersectionPoint","Raycaster","toArray","handleCursorMove","x_cursor","y_cursor","z_cursor","hasCloseStep","pointerUpTime","pointerUpPosition","timeDiff","clickPoint2D","TransparentCube","onClickStep","hideFootSteps","groupRef","showStep","setShowStep","isStepVisible","showFootCursor","intSecPoint","currStepPos","currStepPos2D","handleSelectedStep","selectedStep","shortestDistance","MAX_VALUE","cameraPosition","targetSceneCameraPosition","renderFootCursor","Cube","introClosed","setIsFirst","setCamPosition","handleLinear","jumpAnimate","newPos","onComplete","onChangeLookAt","linearUpdate","indexing","ease","Power4","easeInOut","ceil","cPercent","fPercent","firstLinearUpdate","lookAtCoords","isIntroAnimation","turnOffIntroAnimate","firstAnimateCamera","CUBE_TOGGLE","SceneController","onSwitchScene","lastScene","sceneAData","setSceneAData","sceneBData","setSceneBData","currentCube","setCurrentCube","stepClickingData","handleClickStep","sceneID","targetScene","targetSceneData","setSceneCallback","commonCubeHandlers","cubeA","cubeB","intervalId","DEVICE_PIXEL_RATIO","devicePixelRatio","World3D","linkedMedias","interactionOn","hotspotName","lastPanTime","lastPos","subscriptionScope","onSelectPano","onSwitchPano","trackOnSwitchPano","wTourData","trackingTourData","wSceneData","trackingSceneData","tour_id","scene_id","referrer_id","onSelectPanoById","getViewingAngle","defaultViewingAngle","updateHotspots","hps","MEDIA_TYPE_AUDIO","queryHotspotsByType","validHotspots","enableInteraction","enteredPasscode","Consumer","dpr","PopupPasscode","tourPasscode","passcode","setPasscode","errorMessage","setErrorMessage","onSubmit","focus","disabled","AutoPlayModeByQueryParams","existingQueries","modeQuery","newQueryStr","k","World","featuredHotspot","initiating","jsonInvalid","sdLoaded","hdLoaded","spinner","introStatus","hotspotHovering","isFinalIntroSlide","showPasscode","panCounter","disableRotate","panTimer","worldEl","isHovering","handleRotate","getFeaturedMedia","featuredId","mediaList","dataArrived","cubeMap","googleAnalyticTrackingId","facebookPixelID","setAudioAvailable","requirePasscode","passcodeData","getDefaultScene","selectDefaultScene","loadData","setTourError","setPanoData","setTourData","isForced","changeDateNight","isDayOrNightScene","updateWorldParams","nextSceneId","loadSceneById","selectHotspot","setScene","initialing","foundFeatured","showHotspot","toggleIntro","featureId","isAutoRotate","resetTimer","onPointerClick","setPanning","onImageLoaded","tourLoadAt","toggleLanding","onUpdateIntroStep","renderLanding","renderPasscodePopup","tourIdData","preState","onSelectHotspot","Id","setTourAudioAvailabe","defaultTexture","AppRoutes","basename","exact","ERROR_MESSAGES","NO_JSON","NO_TOUR","TOUR_INACTIVE","INVALID_IP","NO_GROUP","NO_SCENE","GENERAL","TourError","errorMsg","ContentBody","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","appHeight","referrer","parts","cookie","shift","getCookie","referrerId","decodeURIComponent","tourCount","gtag","initGtag","container","createRoot","I18nextProvider","serviceWorker","registration","unregister"],"mappings":"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","file":"static/js/main.e881a701.chunk.js","sourcesContent":["var isPreview = true;\nvar viewHostnames = [];\nif (viewHostnames.indexOf(window.location.hostname) !== -1) {\n isPreview = false;\n}\n\nconst configs = {\n local: process.env.NODE_ENV === 'development',\n prod: process.env.REACT_APP_PROD === 'true',\n baseUrl: process.env.REACT_APP_BASE_URL || '',\n apiUrl: process.env.REACT_APP_API_URL || '',\n viewMode: !isPreview,\n previewMode: isPreview,\n googleApiKey: process.env.REACT_APP_GOOGLE_API_KEY || '',\n mapBoxToken: process.env.REACT_APP_MAPBOX_TOKEN || '',\n gaTrackingId: process.env.REACT_APP_GA_TRACKING_ID || '',\n singleTour: process.env.REACT_APP_SINGLE_TOUR === 'true',\n tourJson: process.env.REACT_APP_TOUR_JSON || '',\n mapRoute: 'map-navigation',\n socialRoute: 'follow-us',\n crossfadeSpeed: 2,\n transitionSpeed: 1,\n zoom: {\n min: process.env.REACT_APP_MIN_FOV || 30,\n max: process.env.REACT_APP_MAX_FOV || 100,\n },\n useSplitTexture: process.env.REACT_APP_USE_SPLIT_TEXTURE === 'true',\n};\n\nexport default configs;\n","import ReactGA from 'react-ga4';\nimport ReactPixel from 'react-facebook-pixel';\nimport configs from './configs';\nimport { getCookie } from 'utils/trackingHelper';\n\nconst gaTrackerNames = ['Vizion', 'Customer'];\n\nlet hasGATracking = false;\n\nexport const init = (gaTrackingId, fbPixelId) => {\n // Google Analytics & Google Tags\n const trackingGroup = [];\n if (configs.gaTrackingId) {\n trackingGroup.push({\n trackingId: configs.gaTrackingId,\n gaOptions: {\n name: gaTrackerNames[0],\n },\n });\n hasGATracking = true;\n }\n if (gaTrackingId) {\n trackingGroup.push({\n trackingId: gaTrackingId,\n gaOptions: {\n name: gaTrackerNames[1],\n },\n });\n hasGATracking = true;\n }\n if (hasGATracking) {\n ReactGA.initialize(trackingGroup, {\n debug: false,\n // debug: !configs.prod,\n titleCase: false,\n alwaysSendToDefaultTracker: false,\n });\n }\n\n const tourId = window.data?.tour?.id;\n if (tourId) {\n trackPageView(`/${tourId}`);\n trackTourView(tourId);\n }\n trackPageView(window.location.pathname + window.location.search);\n\n if (fbPixelId) {\n window.logMessage('fbPixelId', fbPixelId);\n // optional, more info: https://developers.facebook.com/docs/facebook-pixel/pixel-with-ads/conversion-tracking#advanced_match\n const advancedMatching = {};\n const options = {\n autoConfig: true,\n debug: false,\n };\n ReactPixel.init(fbPixelId, advancedMatching, options);\n ReactPixel.pageView();\n }\n};\n\nexport const trackPageView = (page) => {\n if (hasGATracking) {\n // ReactGA.event('page_view', {\n // page_location: page,\n // user_agent: navigator.userAgent,\n // });\n }\n};\n\nexport const trackTourView = (tourId) => {\n if (hasGATracking) {\n // ReactGA.event(`${EVENT_CATEGORY.TOUR}.${tourId}`, { item_id: tourId });\n }\n};\n\nexport const trackEvent = (eventData) => {\n if (hasGATracking) {\n const { action, category, targetId } = eventData;\n let eventName = category;\n if (category === EVENT_CATEGORY.SCENE) {\n eventName += `.${targetId}.${action}`;\n }\n if (category === EVENT_CATEGORY.TOUR_MEDIA) {\n const tourId = window.data?.tour?.id;\n // eslint-disable-next-line\n eventName += `.${tourId}.${targetId}.${action}`;\n }\n // ReactGA.event(eventName, eventData);\n }\n};\n\nexport const EVENT_CATEGORY = {\n TOUR: 'Tour',\n SCENE: 'Scene',\n MEDIA: 'Media',\n TOUR_MEDIA: 'TourMediaView', // new cat to track media associated to tour\n MAP: 'Map',\n};\n\nexport const EVENT_TYPE = {\n SCENE: 'SceneView',\n SCENE_DEEPLINK: 'SceneView.DeepLink',\n SCENE_FROM_HOTSPOT: 'SceneView.HotspotClick',\n SCENE_FROM_MENU: 'SceneView.MenuClick',\n SCENE_FROM_MAP: 'SceneView.MapClick',\n MAP: 'MapView',\n MAP_DEEPLINK: 'MapView.DeepLink',\n HOTSPOT: 'MediaView',\n HOTSPOT_DEEPLINK: 'MediaView.DeepLink',\n HOTSPOT_FROM_HOTSPOT: 'MediaView.HotspotClick',\n};\n\nexport const trackEventByType = (type, id) => {\n const eventData = {\n action: type,\n };\n if (id) {\n eventData.targetId = id;\n eventData.item_id = id;\n }\n if (\n type === EVENT_TYPE.SCENE ||\n type === EVENT_TYPE.SCENE_DEEPLINK ||\n type === EVENT_TYPE.SCENE_FROM_HOTSPOT ||\n type === EVENT_TYPE.SCENE_FROM_MENU ||\n type === EVENT_TYPE.SCENE_FROM_MAP\n ) {\n eventData.category = EVENT_CATEGORY.SCENE;\n eventData.label = `View Scene: ${id || ''}`;\n }\n if (\n type === EVENT_TYPE.HOTSPOT ||\n type === EVENT_TYPE.HOTSPOT_DEEPLINK ||\n type === EVENT_TYPE.HOTSPOT_FROM_HOTSPOT\n ) {\n eventData.category = EVENT_CATEGORY.TOUR_MEDIA;\n eventData.label = `View Media: ${id || ''}`;\n }\n if (type === EVENT_TYPE.MAP || type === EVENT_TYPE.MAP_DEEPLINK) {\n eventData.category = EVENT_CATEGORY.MAP;\n eventData.label = `Viewing Map`;\n }\n trackEvent(eventData);\n};\n\nexport const initTracking = (gaTrackingId, trackDeepLink, fbPixelId) => {\n init(gaTrackingId, fbPixelId);\n if (!trackDeepLink) return;\n const { scene, hotspot } = trackDeepLink;\n if (hotspot) {\n if (hotspot === configs.mapRoute) {\n trackEventByType(EVENT_TYPE.MAP_DEEPLINK, null);\n } else {\n const mediaId = getMediaIdByFriendlyName(hotspot);\n trackEventByType(EVENT_TYPE.HOTSPOT_DEEPLINK, mediaId);\n }\n } else {\n const sceneId = getSceneIdByFriendlyName(scene);\n trackEventByType(EVENT_TYPE.SCENE_DEEPLINK, sceneId);\n }\n};\n\nconst getSceneIdByFriendlyName = (name) => {\n const scenes = window.data?.json.scenes || [];\n return scenes.find(({ id }) => id === name)?._id || 'UNKNOWN';\n};\n\nconst getMediaIdByFriendlyName = (name) => {\n const media = window.data?.json.media || [];\n return media.find(({ id }) => id === name)?._id || 'UNKNOWN';\n};\n\nexport const initGtag = () => {\n const referrer = getCookie('referrer');\n const referrerId = referrer ? decodeURIComponent(referrer) : '';\n\n window.trackingTourData = {};\n window.trackingSceneData = {};\n window.referrer_id = referrerId;\n window.isFirst = true;\n window.tourCount = 1;\n\n if (!window.gtag) {\n function gtag() {\n // console.log(arguments);\n }\n window.gtag = gtag;\n }\n};\n\nexport const sendGtagEvent = (event, data) => {\n // window.gtag('event', event, {\n // ...data,\n // });\n};\n\nexport const trackEventByGtag = (eventName, eventData) => {\n sendGtagEvent(eventName, eventData);\n};\n\nexport const trackSessionStart = (data) => {\n sendGtagEvent('session_start', data);\n};\n\nexport const countTimeCTACLick = (data) => {\n sendGtagEvent('cta_click', data);\n};\n\nexport const trackTourByGtag = (data) => {\n sendGtagEvent('tour_view', data);\n};\n\nexport const trackTimeOnTour = (data) => {\n return setInterval(() => {\n sendGtagEvent('tour_timer_15s', data);\n }, 3000);\n};\n\nexport const trackSceneView = (data) => {\n sendGtagEvent('scene_view', data);\n};\n\nexport const trackTimeOnScene = (data) => {\n return setInterval(() => {\n sendGtagEvent('scene_timer_15s', data);\n }, 3000);\n};\n\nexport const trackUserEngagement = (data) => {\n sendGtagEvent('user_engagement', data);\n};\n\nexport const trackUserEngagementSingle = (data) => {\n sendGtagEvent('user_engagement_single', data);\n};\n\nexport const trackViewOfUser = (data) => {\n sendGtagEvent('scene_lookat', data);\n};\n\nexport const trackTourLoadEnd = (data) => {\n sendGtagEvent('tour_load_end', data);\n};\n\nexport const trackUserBeginEngagement = (data) => {\n sendGtagEvent('user_begin_engagement', data);\n};\n\nexport const trackTourContentVisible = (data) => {\n sendGtagEvent('tour_content_visible', data);\n};\n\nexport const trackTourContentOpen = (data) => {\n sendGtagEvent('tour_content_open', data);\n};\n","import i18n from 'i18next';\nimport { initReactI18next } from 'react-i18next';\nimport LanguageDetector from 'i18next-browser-languagedetector';\n\nimport en from 'assets/locales/en/translation.json';\nimport vi from 'assets/locales/vi/translation.json';\nimport jp from 'assets/locales/jp/translation.json';\n\nconst options = {\n // order and from where user language should be detected\n order: ['querystring', 'localStorage', 'navigator', 'path'],\n\n // keys or params to lookup language from\n lookupLocalStorage: 'i18nextLng',\n lookupQuerystring: 'lang',\n\n // cache user language on\n caches: ['localStorage'],\n};\n\nconst resource = {\n en: {\n translation: en,\n },\n vi: {\n translation: vi,\n },\n jp: {\n translation: jp,\n },\n};\n\ni18n\n .use(LanguageDetector)\n .use(initReactI18next)\n .init({\n detection: options,\n resources: resource,\n fallbackLng: 'en',\n supportedLngs: ['en', 'vi', 'jp'],\n interpolation: {\n escapeValue: false,\n },\n });\n\nexport default i18n;\n","// Initiate\nexport const INITIATE = 'INITIATE';\nexport const INITIATED = 'INITIATED';\n// Tour\nexport const SET_TOUR_DATA = 'SET_TOUR_DATA';\n// Menu\nexport const TOGGLE_MENU = 'TOGGLE_MENU';\nexport const SET_MENU_POSITION = 'SET_MENU_POSITION';\n// Pano (Scene)\nexport const TOGGLE_PANO_MODE = 'TOGGLE_PANO_MODE';\nexport const SET_PANO_DATA = 'SET_PANO_DATA';\nexport const GO_TO_PANO = 'GO_TO_PANO';\n// Landing\nexport const CLOSE_LANDING = 'CLOSE_LANDING';\nexport const TOGGLE_LANDING = 'TOGGLE_LANDING';\n// Map 3D Data\nexport const SET_AERIAL_MAP_DATA = 'SET_AERIAL_MAP_DATA';\nexport const ADD_HOTSPOT_HISTORY = 'ADD_HOTSPOT_HISTORY';\n// Camera Control\nexport const SET_CONTROL_MODE = 'SET_CONTROL_MODE';\nexport const SET_GYRO = 'SET_GYRO';\nexport const SET_CENTER_LOOKAT = 'SET_CENTER_LOOKAT';\n\n// Audio\nexport const TOGGLE_AUDIO = 'TOGGLE_AUDIO';\nexport const SET_AUDIO_AVAILABLE = 'SET_AUDIO_AVAILABLE';\nexport const SET_AUDIO_AUTOPLAY = 'SET_AUDIO_AUTOPLAY';\n\n// TourAudio\nexport const SET_TOUR_AUDIO_AVAILABLE = 'SET_TOUR_AUDIO_AVAILABLE';\n\n// Dimention\nexport const UPDATE_DIMENTIONS = 'UPDATE_DIMENTIONS';\n\n// Blur\nexport const TOGGLE_BLUR = 'TOGGLE_BLUR';\n\nexport const SET_TOUR_ERROR = 'TOUR_ERROR';\n\n// View\nexport const SET_VIEW_MODE = 'SET_VIEW_MODE';\n\nexport const SET_AUTO_PLAY = 'SET_AUTO_PLAY';\n\nexport const UPDATE_PREV_ROTATION = 'UPDATE_PREV_ROTATION';\n\nexport const SET_AUTO_ROTATE = 'SET_AUTO_ROTATE';\n\nexport const SET_SEARCH_PARAMS = 'SET_SEARCH_PARAMS';\n\nexport const SET_OPEN_POPUP = 'SET_OPEN_POPUP';\n\nexport const UPDATE_WORLD_PARAMS = 'UPDATE_WORLD_PARAMS';\n\nexport const SET_IS_PANNING = 'SET_IS_PANNING';\n\nexport const SET_DATE_LIGHT = 'SET_DATE_LIGHT';\n","export const CONTROLS = {\n ORBIT: 'orbit',\n DEVICE: 'device',\n};\n","export const INTRO_STEP = {\n RENDER: 0,\n FADING_IN: 1,\n FADED_IN: 2,\n FADING_OUT: 3,\n FADED_OUT: 4,\n};\n","export const MENU_LOCATION = {\n LEFT: 'left',\n BOTTOM: 'bottom',\n};\n","export const menuHighlightDefaultColor = '#F73D3C';\n\nexport const defaultIconBgColor = '#4d4d4d';\n","export const PLAN_SCOPES = {\n NOT_ALLOWED: 'NOT_ALLOWED',\n UNLIMITED: 'UNLIMITED',\n NORMAL: 'NORMAL',\n};\n\nexport const PLAN_SCOPE_KEYS = {\n SCOPE_TYPE: 'SCOPE_TYPE',\n TOUR_COUNT: 'TOUR_COUNT',\n SCENE_COUNT: 'SCENE_COUNT',\n MEDIA_COUNT: 'MEDIA_COUNT',\n USER_COUNT: 'USER_COUNT',\n SCENE_PER_TOUR_COUNT: 'SCENE_PER_TOUR_COUNT',\n MEDIA_PER_TOUR_COUNT: 'MEDIA_PER_TOUR_COUNT',\n ENABLE_BRANDING: 'ENABLE_BRANDING',\n ENABLE_ANALYTICS: 'ENABLE_ANALYTICS',\n};\n\nexport const SCOPE_NAME = {\n TOUR: 'tour',\n SCENE: 'scene',\n MEDIA: 'media',\n USER: 'user',\n};\n\nexport const DEFAULT_SCOPES_DATA = {\n scopeType: -1,\n tour: {\n value: -1,\n },\n scene: {\n value: -1,\n limitPerTour: -1,\n },\n media: {\n value: -1,\n limitPerTour: -1,\n },\n user: {\n value: -1,\n },\n};\n","export const HOTSPOT_UI = {\n DEFAULT: 'default',\n CALLOUT: 'callout',\n AIR_BALLOON: 'air-balloon',\n};\n\nexport const LAYOUT_UI = {\n GALLERY: 'gallery',\n SCHOOL: 'school',\n AACORPORATION: 'aqua',\n KHAIHOANPRIME: 'prime',\n};\n","import { CONTROLS } from 'consts';\nimport { HOTSPOT_UI } from 'consts/ui.const';\n\nconst getParamsFromURL = (pathname) => {\n if (!pathname) return { tourId: '', groupId: '', sceneId: '', hotspotId: '' };\n const [, tourId, groupId, sceneId, hotspotId] = pathname.split('/');\n return { tourId, groupId, sceneId, hotspotId };\n};\n\nconst initialState = {\n dateLight: true,\n ready: false,\n error: null,\n tour: null,\n json: null,\n groups: [],\n scenes: [],\n panoMode: 'cube',\n showLanding: true,\n aerialMapData: [],\n aerialDataReady: false,\n menu: {\n isOpen: false,\n position: 'left',\n isoMetricMap: false,\n social: false,\n },\n currentScene: {},\n hotspotHistory: [],\n currentHotspot: null,\n dimentions: {\n width: 0,\n height: 0,\n dimention: 1,\n },\n shouldBlur: true,\n audio: {\n available: false,\n enabled: true,\n autoPlay: false,\n },\n tourAudio: {\n available: false,\n enabled: true,\n },\n isLandingOpen: false,\n controlMode: CONTROLS.ORBIT,\n viewMode: null,\n autoPlayMode: false,\n centerLookAt: null,\n subscriptionPlan: {\n enableBranding: false,\n },\n logoURL: null,\n hasLogo: false,\n prevRotation: 0,\n autoRotate: false,\n searchParams: {\n 'hotspot-ui': HOTSPOT_UI.DEFAULT,\n },\n worldParams: getParamsFromURL(window.location.pathname),\n};\n\nexport default initialState;\n","import * as APP_ACTION from './actionTypes';\nimport initialState from './state';\n\nfunction appReducer(state = initialState, action) {\n const { type, payload } = action;\n switch (type) {\n case APP_ACTION.INITIATED:\n return {\n ...state,\n ready: true,\n };\n case APP_ACTION.SET_TOUR_ERROR:\n return {\n ...state,\n error: payload,\n };\n case APP_ACTION.UPDATE_DIMENTIONS:\n return {\n ...state,\n dimentions: { ...payload },\n };\n case APP_ACTION.TOGGLE_PANO_MODE:\n return {\n ...state,\n panoMode: payload,\n };\n case APP_ACTION.TOGGLE_MENU:\n return {\n ...state,\n menu: {\n ...state.menu,\n isOpen: payload,\n },\n };\n\n case APP_ACTION.SET_MENU_POSITION:\n return {\n ...state,\n menu: {\n ...state.menu,\n position: payload,\n },\n };\n case APP_ACTION.SET_TOUR_DATA:\n const enableBrandingObject = payload.subscriptionPlan.scopes.find(\n (scope) => scope.key === 'ENABLE_BRANDING'\n );\n const enableBranding = Boolean(enableBrandingObject.value);\n\n return {\n ...state,\n tour: { ...payload },\n subscriptionPlan: {\n enableBranding: enableBranding,\n },\n };\n case APP_ACTION.SET_PANO_DATA:\n const { scenes, groups } = payload;\n const logoURL = payload.tour.logoURL || '';\n const hasLogo = logoURL.trim().length > 0;\n return {\n ...state,\n json: { ...payload },\n groups: [...groups],\n scenes: [...scenes],\n logoURL: logoURL,\n hasLogo: hasLogo,\n };\n case APP_ACTION.GO_TO_PANO:\n const scene = state.scenes.find(\n (s) => s.id === payload.id && s.groupId === payload.groupId\n );\n return {\n ...state,\n currentScene: { ...scene },\n currentHotspot: null,\n menu: {\n ...state.menu,\n isOpen: false,\n social: false,\n isoMetricMap: false,\n },\n hotspotHistory: [...state.hotspotHistory, scene._id],\n };\n\n case APP_ACTION.CLOSE_LANDING:\n return {\n ...state,\n showLanding: false,\n blur: false,\n };\n case APP_ACTION.SET_AERIAL_MAP_DATA:\n return {\n ...state,\n aerialMapData: payload,\n aerialDataReady: true,\n };\n case APP_ACTION.TOGGLE_BLUR:\n return {\n ...state,\n blur: payload !== undefined ? payload : !state.blur,\n };\n case APP_ACTION.SET_AUDIO_AVAILABLE:\n return {\n ...state,\n audio: {\n ...state.audio,\n available: payload,\n },\n };\n case APP_ACTION.SET_AUDIO_AUTOPLAY:\n return {\n ...state,\n audio: {\n ...state.audio,\n autoPlay: true,\n },\n };\n case APP_ACTION.TOGGLE_AUDIO:\n return {\n ...state,\n audio: {\n ...state.audio,\n enabled: payload,\n },\n };\n // Control Mode\n case APP_ACTION.SET_GYRO:\n return { ...state, gyro: payload };\n case APP_ACTION.SET_CONTROL_MODE:\n return { ...state, controlMode: payload };\n case APP_ACTION.SET_CENTER_LOOKAT:\n return { ...state, centerLookAt: payload };\n\n // Hotspots\n case APP_ACTION.ADD_HOTSPOT_HISTORY:\n return { ...state, hotspotHistory: [...state.hotspotHistory, payload] };\n\n // Landing\n case APP_ACTION.TOGGLE_LANDING:\n return { ...state, isLandingOpen: payload };\n\n // View Mode\n case APP_ACTION.SET_VIEW_MODE:\n return {\n ...state,\n viewMode: payload,\n };\n\n case APP_ACTION.SET_AUTO_PLAY:\n return {\n ...state,\n autoPlayMode: payload,\n };\n\n case APP_ACTION.UPDATE_PREV_ROTATION:\n return { ...state, prevRotation: payload };\n\n case APP_ACTION.SET_AUTO_ROTATE:\n return { ...state, autoRotate: payload };\n\n case APP_ACTION.SET_SEARCH_PARAMS:\n return { ...state, searchParams: { ...state.searchParams, ...payload } };\n\n case APP_ACTION.SET_OPEN_POPUP:\n return { ...state, isOpenPopUp: payload };\n\n case APP_ACTION.SET_IS_PANNING:\n return { ...state, isPanning: payload };\n\n case APP_ACTION.SET_DATE_LIGHT:\n return { ...state, dateLight: payload };\n\n case APP_ACTION.UPDATE_WORLD_PARAMS:\n return {\n ...state,\n worldParams: {\n ...state.worldParams,\n ...payload,\n },\n };\n\n default:\n return state;\n }\n}\n\nexport default appReducer;\n","import { put } from 'redux-saga/effects';\nimport * as APP_ACTION from './actionTypes';\n\nfunction kickStart() {\n return new Promise((resolve) => {\n setTimeout(() => resolve('DONE'), 0);\n });\n}\n\nfunction* initiate() {\n try {\n const result = yield kickStart();\n window.logMessage('initiation: ' + result);\n yield put({\n type: APP_ACTION.INITIATED,\n });\n } catch (error) {}\n}\n\nconst middlewares = {\n initiate,\n};\n\nexport default middlewares;\n","import { all, takeLatest } from 'redux-saga/effects';\nimport * as APP_ACTION from './actionTypes';\nimport middlewares from './middlewares';\n\nfunction* handleInit() {\n yield takeLatest(APP_ACTION.INITIATE, middlewares.initiate);\n}\n\nexport default function* rootSaga() {\n yield all([handleInit()]);\n}\n","import { createStore, applyMiddleware, compose } from 'redux';\nimport createSagaMiddleware from 'redux-saga';\nimport reducers from './reducers';\nimport rootSaga from './sagas';\n\nconst sagaMiddleware = createSagaMiddleware();\nconst composeEnhancer = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;\nconst store = createStore(\n reducers,\n composeEnhancer(applyMiddleware(sagaMiddleware))\n);\n\nsagaMiddleware.run(rootSaga);\n\nexport default store;\n","import * as APP_ACTION from './actionTypes';\n\nexport const initiate = () => ({ type: APP_ACTION.INITIATE });\nexport const updateDimentions = (payload) => ({\n type: APP_ACTION.UPDATE_DIMENTIONS,\n payload,\n});\nexport const togglePanoMode = (mode) => ({\n type: APP_ACTION.TOGGLE_PANO_MODE,\n payload: mode,\n});\nexport const toggleMenu = (isOpen) => ({\n type: APP_ACTION.TOGGLE_MENU,\n payload: isOpen,\n});\nexport const setMenuPosition = (payload) => ({\n type: APP_ACTION.SET_MENU_POSITION,\n payload,\n});\nexport const setTourData = (payload) => ({\n type: APP_ACTION.SET_TOUR_DATA,\n payload,\n});\nexport const setPanoData = (payload) => ({\n type: APP_ACTION.SET_PANO_DATA,\n payload,\n});\n\nexport const goToScene = (groupId, id) => ({\n type: APP_ACTION.GO_TO_PANO,\n payload: { id, groupId },\n});\n\nexport const closeLanding = () => ({ type: APP_ACTION.CLOSE_LANDING });\nexport const setAerialMapData = (payload) => ({\n type: APP_ACTION.SET_AERIAL_MAP_DATA,\n payload,\n});\nexport const toggleBlur = (payload) => ({\n type: APP_ACTION.TOGGLE_BLUR,\n payload,\n});\nexport const setAudioAvailable = (payload) => ({\n type: APP_ACTION.SET_AUDIO_AVAILABLE,\n payload,\n});\nexport const setAudioAutoPlay = () => ({\n type: APP_ACTION.SET_AUDIO_AUTOPLAY,\n});\nexport const toggleAudio = (isOn) => ({\n type: APP_ACTION.TOGGLE_AUDIO,\n payload: isOn,\n});\nexport const setTourAudioAvailabe = (isOn) => ({\n type: APP_ACTION.SET_TOUR_AUDIO_AVAILABLE,\n payload: isOn,\n});\n// Hotspots\nexport const addHotspotHistory = (payload) => ({\n type: APP_ACTION.ADD_HOTSPOT_HISTORY,\n payload,\n});\n\n// Control Mode\nexport const setGyro = (payload) => ({ type: APP_ACTION.SET_GYRO, payload });\nexport const setControlMode = (payload) => ({\n type: APP_ACTION.SET_CONTROL_MODE,\n payload,\n});\n\nexport const setCenterLookat = (payload) => ({\n type: APP_ACTION.SET_CENTER_LOOKAT,\n payload,\n});\n\n// Landing\nexport const toggleLanding = (payload) => ({\n type: APP_ACTION.TOGGLE_LANDING,\n payload,\n});\n\nexport const setTourError = (payload) => ({\n type: APP_ACTION.SET_TOUR_ERROR,\n payload,\n});\n\n//View Mode\nexport const setViewMode = (payload) => ({\n type: APP_ACTION.SET_VIEW_MODE,\n payload,\n});\n\nexport const setAutoPlay = (payload) => ({\n type: APP_ACTION.SET_AUTO_PLAY,\n payload,\n});\n\nexport const updatePrevRotation = (payload) => ({\n type: APP_ACTION.UPDATE_PREV_ROTATION,\n payload,\n});\n\nexport const setAutoRotate = (payload) => ({\n type: APP_ACTION.SET_AUTO_ROTATE,\n payload,\n});\n\nexport const setSearchParams = (payload) => ({\n type: APP_ACTION.SET_SEARCH_PARAMS,\n payload,\n});\n\nexport const setOpenPopUp = (payload) => ({\n type: APP_ACTION.SET_OPEN_POPUP,\n payload,\n});\n\nexport const updateWorldParams = (payload) => ({\n type: APP_ACTION.UPDATE_WORLD_PARAMS,\n payload,\n});\n\nexport const setPanning = (payload) => ({\n type: APP_ACTION.SET_IS_PANNING,\n payload,\n});\n\nexport const setDateLight = (payload) => ({\n type: APP_ACTION.SET_DATE_LIGHT,\n payload,\n});\n","export default {\n PORTRAIT: 1,\n LANDSCAPE: 2,\n};\n","import React, { useState, useEffect } from 'react';\nimport { connect } from 'react-redux';\nimport { updateDimentions } from '../../store/actions';\nimport DIMENTION from '../../consts/dimention.const';\n\nfunction useWindowSize() {\n const isClient = typeof window === 'object';\n function getWinSize() {\n return !isClient\n ? {\n width: 0,\n height: 0,\n dimention: DIMENTION.PORTRAIT,\n }\n : {\n width: window.innerWidth,\n height: window.innerHeight,\n dimention:\n window.innerWidth > window.innerHeight\n ? DIMENTION.LANDSCAPE\n : DIMENTION.PORTRAIT,\n };\n }\n const [winSize, setWinDim] = useState(getWinSize);\n useEffect(() => {\n if (!isClient) {\n return false;\n }\n function handleResize() {\n setWinDim(getWinSize());\n }\n window.addEventListener('resize', handleResize);\n return () => {\n window.removeEventListener('resize', handleResize);\n };\n // eslint-disable-next-line\n }, []);\n return winSize;\n}\n\nfunction SizeDetector(props) {\n const currDimentions = useWindowSize();\n useEffect(() => {\n if (currDimentions.width) {\n props.updateDimentions(currDimentions);\n }\n }, [props, currDimentions]);\n return <>;\n}\n\nconst mapDispatchToProps = {\n updateDimentions,\n};\n\nexport default connect(null, mapDispatchToProps)(SizeDetector);\n","export const DEFAULT_TOUR_SETING = {\n logoURL: null,\n menuHighlightColor: '#F73D3C',\n calloutHeaderColor: '#000000',\n calloutSubHeaderColor: '#FFFFFF',\n lightboxBGColor: '#000000',\n lightboxHeaderColor: '#FFFFFF',\n lightboxBodyTextColor: '#FFFFFF',\n};\n","import { DEFAULT_TOUR_SETING } from 'consts/defaultTourSetting';\nimport { useEffect } from 'react';\nimport { useSelector } from 'react-redux';\n\nfunction setVar(brandColor) {\n const doc = document.documentElement;\n doc.style.setProperty('--tour-brandColor', 'rgb(255,192,0)');\n doc.style.setProperty('--tour-brandSecondColor', '#216d8d');\n}\n\nfunction BrandColorHandler() {\n const brandColor = useSelector(\n (state) =>\n state.tour?.menuHighlightColor || DEFAULT_TOUR_SETING.menuHighlightColor\n );\n useEffect(() => {\n setVar(brandColor);\n }, [brandColor]);\n\n return null;\n}\n\nexport default BrandColorHandler;\n","import React from 'react';\n\nfunction NotFound() {\n return (\n \n \n Sorry! The Tour you are looking for is not found.\n \n \n );\n}\n\nexport default NotFound;\n","// import configs from '../configs';\n\nconst doNothing = () => null;\n// window.logMessage = configs.prod ? doNothing : console.log;\nwindow.logMessage = doNothing;\nwindow.isoDateString = () => new Date().toISOString();\nwindow.waitASecond = (sec = 1) =>\n new Promise((resolve) => {\n window.logMessage(`wait ${sec}s... ${window.isoDateString()}`);\n setTimeout(() => {\n resolve(true);\n window.logMessage(`waited ${sec}s... ${window.isoDateString()}`);\n }, sec * 1000);\n });\n\nexport const log = window.logMessage;\n","const TYPE = 'image/jpeg';\nconst SIZES = ['px', 'nx', 'py', 'ny', 'pz', 'nz'];\n\nexport const loadImageData = (fileUrl) =>\n new Promise((resolve) => {\n if (fileUrl) {\n var img = new Image();\n img.crossOrigin = 'anonymous';\n img.onload = function () {\n var canvas = document.createElement('canvas');\n canvas.width = img.width;\n canvas.height = img.height;\n var ctx = canvas.getContext('2d');\n ctx.drawImage(this, 0, 0, img.width, img.height);\n resolve(canvas.toDataURL(TYPE));\n };\n img.onerror = function () {\n resolve(null);\n };\n img.src = fileUrl;\n } else {\n resolve(null);\n }\n });\n\nwindow.imageQueues = {};\nwindow.imageQueueNo = 0;\n\nvar SHOULD_CACHE_HD = true;\n\nwindow.cancelImageQueues = () => {\n window.imageQueueNo += 1;\n const imgs = Object.keys(window.imageQueues);\n for (let index = 0; index < imgs.length; index++) {\n const img = imgs[index];\n if (window.imageQueues[img] instanceof Image) {\n if (\n !window.imageQueues[img].complete ||\n window.imageQueues[img].naturalHeight <= 0 ||\n !SHOULD_CACHE_HD\n ) {\n window.imageQueues[img].src = '';\n delete window.imageQueues[img];\n }\n }\n }\n};\n\nexport const loadImageForFrag = (fileUrl) =>\n new Promise((resolve) => {\n if (fileUrl) {\n window.imageQueues[fileUrl] = new Image();\n const img = window.imageQueues[fileUrl];\n img.crossOrigin = 'anonymous';\n img.onload = function () {\n resolve(this);\n };\n img.onerror = function () {\n resolve(null);\n };\n img.src = fileUrl;\n } else {\n resolve(null);\n }\n });\n\nexport const getImgForSide = (side, cubeMapImages, SourceImgId) => {\n const i = SIZES.indexOf(side);\n const size1024_4f = cubeMapImages.size1024_4f[i] + '/' + SourceImgId;\n const size1024_16f = cubeMapImages.size1024_16f[i] + '/' + SourceImgId;\n const size1024_4fs = [\n size1024_4f + '-11',\n size1024_4f + '-12',\n size1024_4f + '-21',\n size1024_4f + '-22',\n ];\n const size1024_16fs = [\n size1024_16f + '-11',\n size1024_16f + '-12',\n size1024_16f + '-13',\n size1024_16f + '-14',\n\n size1024_16f + '-21',\n size1024_16f + '-22',\n size1024_16f + '-23',\n size1024_16f + '-24',\n\n size1024_16f + '-31',\n size1024_16f + '-32',\n size1024_16f + '-33',\n size1024_16f + '-34',\n\n size1024_16f + '-41',\n size1024_16f + '-42',\n size1024_16f + '-43',\n size1024_16f + '-44',\n ];\n\n return {\n size1024: cubeMapImages.size1024[i],\n size2048: cubeMapImages.size2048[i],\n size1024_4f: size1024_4fs,\n size1024_16f: size1024_16fs,\n };\n};\n","import { log } from './global.utils';\nimport { loadImageForFrag } from './imageHelper';\n\nconst CANVAS_SIZE = 2048;\nconst IMAGE_SIZE = 1024;\nconst IMAGE_SIZE_4F = CANVAS_SIZE * 0.5;\n\nconst getSizeBasedOnScreenSize = () => {\n const maxDimension = Math.max(window.innerWidth, window.innerHeight);\n if (maxDimension >= 3000) return 4096;\n if (maxDimension >= 1800) return 2048;\n if (maxDimension >= 900) return 1024;\n return 512;\n};\n\nconst DYNAMIC_SCREEN_SIZE = getSizeBasedOnScreenSize();\n\nexport const createCanvas = () => {\n const canvas = document.createElement('CANVAS');\n canvas.width = DYNAMIC_SCREEN_SIZE;\n canvas.height = DYNAMIC_SCREEN_SIZE;\n\n return canvas;\n};\n\nconst loadFragmentOf4 = async (imgUri, ctx, position = 0) => {\n const img = await loadImageForFrag(imgUri);\n\n const positions = [\n { x: 0, y: 0 },\n { x: 0.5, y: 0 },\n { x: 0, y: 0.5 },\n { x: 0.5, y: 0.5 },\n ];\n\n if (img) {\n ctx.drawImage(\n img,\n positions[position].x * DYNAMIC_SCREEN_SIZE,\n positions[position].y * DYNAMIC_SCREEN_SIZE,\n (IMAGE_SIZE_4F / CANVAS_SIZE) * DYNAMIC_SCREEN_SIZE,\n (IMAGE_SIZE_4F / CANVAS_SIZE) * DYNAMIC_SCREEN_SIZE\n );\n }\n};\n\nconst loadFragmentOf16 = async (imgUri, ctx, position = 0) => {\n const img = await loadImageForFrag(imgUri);\n\n const positions = [\n { x: 0, y: 0 },\n { x: 0.25, y: 0 },\n { x: 0.5, y: 0 },\n { x: 0.75, y: 0 },\n { x: 0, y: 0.25 },\n { x: 0.25, y: 0.25 },\n { x: 0.5, y: 0.25 },\n { x: 0.75, y: 0.25 },\n { x: 0, y: 0.5 },\n { x: 0.25, y: 0.5 },\n { x: 0.5, y: 0.5 },\n { x: 0.75, y: 0.5 },\n { x: 0, y: 0.75 },\n { x: 0.25, y: 0.75 },\n { x: 0.5, y: 0.75 },\n { x: 0.75, y: 0.75 },\n ];\n\n if (img) {\n ctx.drawImage(\n img,\n positions[position].x * DYNAMIC_SCREEN_SIZE,\n positions[position].y * DYNAMIC_SCREEN_SIZE,\n (IMAGE_SIZE / CANVAS_SIZE) * DYNAMIC_SCREEN_SIZE,\n (IMAGE_SIZE / CANVAS_SIZE) * DYNAMIC_SCREEN_SIZE\n );\n }\n};\n\nexport const loadImageToCanvas = async (canvas, imageUrl) => {\n const img = await loadImageForFrag(imageUrl);\n if (img) {\n const ctx = canvas.getContext('2d');\n ctx.drawImage(img, 0, 0, DYNAMIC_SCREEN_SIZE, DYNAMIC_SCREEN_SIZE);\n }\n};\n\nexport const loadCanvasImage = async (\n imageData = { size1024: '', size1024_4f: [''], size1024_16f: [''] },\n frag = 1,\n callback1 = null,\n callback2 = null,\n callback3 = null\n) => {\n const currentQueueNo = window.imageQueueNo;\n const canvas = createCanvas();\n const ctx = canvas.getContext('2d');\n try {\n const img1024 = await loadImageForFrag(imageData.size1024);\n\n if (!img1024) return canvas;\n ctx.drawImage(img1024, 0, 0, DYNAMIC_SCREEN_SIZE, DYNAMIC_SCREEN_SIZE);\n\n callback1 && callback1(canvas);\n\n if (currentQueueNo !== window.imageQueueNo) {\n log('Loading queue changed');\n return canvas;\n }\n\n if (frag > 1) {\n const requests = Array.from(Array(4).keys()).map((i) =>\n loadFragmentOf4(imageData.size1024_4f[i], ctx, i)\n );\n await Promise.all(requests);\n\n callback2 && callback2(canvas);\n }\n\n if (currentQueueNo !== window.imageQueueNo) {\n log('Loading queue changed');\n return canvas;\n }\n\n if (frag > 4) {\n const requests = Array.from(Array(16).keys()).map((i) =>\n loadFragmentOf16(imageData.size1024_16f[i], ctx, i)\n );\n await Promise.all(requests);\n\n callback3 && callback3(canvas);\n }\n } catch (err) {\n log(err, canvas);\n }\n\n return canvas;\n};\n","import {\n Cache,\n TextureLoader,\n ImageBitmapLoader,\n CanvasTexture,\n ColorManagement,\n LinearSRGBColorSpace,\n} from 'three';\nimport { loadCanvasImage } from './canvasHelper';\n\nCache.enabled = true;\nwindow.THREECache = Cache;\nColorManagement.enabled = true;\n\nconst textures = {};\n\nconst images = {};\n\nconst loader = new TextureLoader();\n\nconst imgLoader = new ImageBitmapLoader().setCrossOrigin('*').setRequestHeader({ credentials: 'omit' });\n\nwindow.loadTest = (img) => {\n const date = new Date();\n imgLoader.load(img, (bitMap) => {\n window.logMessage((new Date() - date) / 1000);\n });\n};\n\nexport const loadImage = (img) =>\n new Promise((resolve, reject) => {\n if (img) {\n if (images[img]) {\n return resolve(images[img]);\n } else {\n imgLoader.load(\n img,\n (imageBitmap) => {\n images[img] = imageBitmap;\n resolve(images[img]);\n },\n null,\n (err) => {\n reject(err);\n }\n );\n }\n } else {\n return reject('EMPTY');\n }\n });\n\nexport const loadImages = (imgs = []) =>\n new Promise((resolve, reject) => {\n const imgReqs = imgs.map((img) => loadImage(img));\n Promise.all(imgReqs)\n .then((res) => resolve(res))\n .catch((err) => reject(err));\n });\n\n// const imgToTexture = (url, img, anisotropy = 8) => {\n// const texture = new THREE.CanvasTexture(img);\n// texture.center = new THREE.Vector2(0.5, 0.5);\n// texture.rotation = Math.PI;\n// texture.anisotropy = anisotropy;\n// textures[url] = texture;\n// return textures[url];\n// };\n\nexport const loadTexture = (img, anisotropy = 8, hdImgs = null) =>\n new Promise((resolve, reject) => {\n if (img) {\n if (hdImgs && textures[hdImgs]) {\n setTimeout(() => {\n if (textures[img]) {\n textures[img].dispose();\n delete textures[img];\n }\n getTextureStatus();\n });\n return resolve(textures[hdImgs]);\n } else if (textures[img]) {\n getTextureStatus();\n return resolve(textures[img]);\n } else {\n loader.load(img, (texture) => {\n texture.anisotropy = anisotropy;\n textures[img] = texture;\n getTextureStatus();\n resolve(textures[img]);\n });\n }\n } else {\n return reject('EMPTY');\n }\n });\n\nexport const loadHdTexture = (hdImg, anisotropy = 8, img = null) =>\n new Promise((resolve, reject) => {\n if (hdImg) {\n loader.load(hdImg, (texture) => {\n texture.anisotropy = anisotropy;\n textures[hdImg] = texture;\n setTimeout(() => {\n if (textures[img]) {\n textures[img].dispose();\n delete textures[img];\n getTextureStatus();\n }\n }, 100);\n resolve(textures[hdImg]);\n });\n } else {\n return reject('EMPTY');\n }\n });\n\nexport const loadTextures = (imgs = [], anisotropy = 8, hdImgs = []) =>\n new Promise((resolve, reject) => {\n const imgReqs = imgs.map((img, index) =>\n loadTexture(img, anisotropy, hdImgs[index])\n );\n Promise.all(imgReqs)\n .then((res) => resolve(res))\n .catch((err) => reject(err));\n });\n\nexport const loadHdTextures = (hdImgs = [], anisotropy = 8, imgs = []) =>\n new Promise((resolve, reject) => {\n const imgReqs = hdImgs.map((img, index) =>\n loadHdTexture(img, anisotropy, imgs[index])\n );\n Promise.all(imgReqs)\n .then((res) => resolve(res))\n .catch((err) => reject(err));\n });\n\nconst getTextureStatus = () => {\n window.logMessage(\n 'status: ' + Object.keys(textures).length + ' textures cached!'\n );\n};\n\nexport const cleanLoadTexture = (img, anisotropy = 8) =>\n new Promise((resolve, reject) => {\n if (img) {\n loader.load(img, (texture) => {\n texture.anisotropy = anisotropy;\n texture.colorSpace = LinearSRGBColorSpace;\n resolve(texture);\n },\n null,\n () => reject('FAIL_TO_LOAD'),\n {\n // options object passed to fetch\n credentials: 'omit',\n });\n } else {\n return reject('EMPTY');\n }\n });\n\nexport const cleanLoadTextures = (imgs, anisotropy = 8) =>\n new Promise((resolve, reject) => {\n const imgReqs = imgs.map((img) => cleanLoadTexture(img, anisotropy));\n Promise.all(imgReqs)\n .then((res) => resolve(res))\n .catch((err) => reject(err));\n });\n\nconst ToTexture = (canvas) => {\n const txt = new CanvasTexture(canvas);\n txt.repeat.set(1, 1);\n return txt;\n};\n\nexport const loadCanvasTexture = async ({\n imgData,\n frag,\n cbSD,\n cbMD,\n cbHD,\n}) => {\n const toCallback = (callback) => {\n return (canvasEl) => {\n callback && callback(ToTexture(canvasEl));\n };\n };\n\n const callback1 = toCallback(cbSD);\n const callback2 = toCallback(cbMD);\n const callback3 = toCallback(cbHD);\n\n const canvas = await loadCanvasImage(\n imgData,\n frag,\n callback1,\n callback2,\n callback3\n );\n\n return ToTexture(canvas);\n};\n\nwindow.getTextureStatus = getTextureStatus;\n","import React, { useState } from 'react';\nimport featherSearch from './feather-search.png';\nimport buttonSearch from './button-search.png';\nimport './style.scss';\n\nfunction InputSearch({ onSubmitSearch }) {\n const [text, setText] = useState('');\n\n const handleInputChange = (event) => {\n event.preventDefault();\n setText(event.target.value);\n };\n\n const onSearch = () => {\n onSubmitSearch(text);\n };\n\n const handleEnterKeyDown = (e) => {\n if (e.key === 'Enter') {\n onSubmitSearch(text);\n }\n };\n\n return (\n
\n \n \n \n
\n );\n}\n\nexport default InputSearch;\n","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFQAAABUCAYAAAAcaxDBAAAABHNCSVQICAgIfAhkiAAAB39JREFUeF7tnY113DYMx6kJ2k5QZ4LaEySeIMkEbSYIboLGExwzQZMJcpmgzgS1J2gyQZsJ1Pe/B14hmNKREj8T67182McTyZ8AEAQpcDANXER0OQzDD8aYy3Ecf+QmPeN/8fMl///OGPMv//8W/w7DgJ/vxnH8aq3F51WvoVbtu93u+TiOL4wxAHeRqB2fjTG3wzAc9vv9x0T3jLpNMaBEdDEMw1OGCJAlrgPgjuP4yVoL2Nmv7EChzsaYPUviXIe+Qm35z0SloeJOlflecyYB9cBszF0wEbvcZiEbUEikMeZ3Y8xvMz28h3oaY96l6iQDR30wI7/M1PvOGHOTS2KTAyUiSBBAkqdDsGuAeMjVIVcnP1Bno5972vLGGPPWWus0Iok5SAaUQb5mkE4tXSMBknJDnCPCcK0xRoMFTPw+GdgkQLnBH4R74/r2yRjzxlp7dHFqX0QEUwDJfKraAvt9nUJaNwNlu/WnMUZK5RfYzlZA6gfJYGFLfxafQVoBdZMvuwkoEWEA+EM1GCMp1Kj5i4hg5+GByOuVtRawV12rgRIRGiIHHrg+z7Y+4VW92PAl1jCYJOlyQSZ2a24bDZQHH0ildM7hAr2oNeis6bj8Do8BB+Vq4WdIa5QXEAWUYcJeurk12oURHPYyquKtEFJ/n/sGVZeeQPRgFQsUI7mUTLgbPn8zdX+L3Y+IYP/h/rkLPvPL0AYEA/VUtMl4hzawRjnPYBssOEFAt1RQA0iKOtcK0FmgPAr+JRr50VpbKlqUgs3qexARBiZnU4P81EWgPPoBpnPaMZrDNep6AAolzAMVXCoXaEG/nyz1fxaoZ0SHn3nZq2sUClGXY6HCaO/81MWRfwko5ryIGrnrqjenfS1ED1S4idLsIfwHPg8uL1CWzr+FqncznUwF0QNVTlNnVX8OqPTFvlhrU6355OpvkfsSEZZRXEDFK6UPgLLNgHS6CxGYJsJvRagtVEJE8G4wuXEXBqjJWpUPKKZfv/I3sLjllnNr96eJ+okIwuXiqe+ttZMlnglQj8/5KJ3qMXIsFfEM72CtgaKgk8hiDryYlWDB7lUToris+tLhv7XWXrviJ6Ae2/nAPuTqKBGN4t7NQ11iJYFKt6CYdAKkZ97cA1QppadAkQQqCxT3O4lIDobg3DRUtXxyEkAJVKpdMXWXZqQnqFrtrbVHlse/lH91b62VEflcptN7386gYl7vAicvrbUHB1SqW3AwNRfpXqAq23/0SR1QzIzc9LKJIEgPUJXf/tla+2RQv8SmVb2NJpcgnr1vJ1ARKHGhvSsAhSPvPP/mppqtQ1VT0WsAlXHP6vbTJ7YtQ1V2dKeBzgZOz+pn5gKtQlUCeQOgMvbZLFB275pz/n1AZTiq+ehSa5KqxyBIaFdAW5NUH1Dpg1aZcq4xvx5JrTKgKrfzDhJ6msO7+eiaDtb4jlrjMbXaLxl2C7QVCWUTdBJKAJUreV2ovAfmg7WdUhqjVP6+u0GpJZgsnZOZZldAW4M5B1Q69sUj9aGq2SJMBiqn7seZ0uQXc3t2Qjueo1yrMLsE2jJMzwLjMTjSbPiudZgMdDLT1AFmvEr9Uw61jb1nDzAZ6D9il+KVWwKRvmj1JZCOYMp9o8ddis0t0vUC02M/J4t0cpvenbX2KlZFU5TvCSYDxa5mt+T+/zKyno/yxvwiOTrcg+gQJlaJT/toJxsdGGi1rTievU3V5uahmhayFafmZjG5Dah5mB4B9G4Wm4hwSbUXEtoLzFlWesOtdFKjXhoNVZVvoRwRyZeIJ3sZHreERz7hqC3hngWwyXbnyLq/yeJEJLfNL7+0wEC1fWh+abnUk1v1Wo1nBnDcVVaq0S3XQ0RyhTjsxS8Gih14cOzdrrJmA8+lHoDyO/Ei8YXvreTHl2cDnojn/a24l2eFlOp3xRGJKjolDehv1iKxOQNCEhAEvyuetWcVbj6TM8Cr6q55a1JkfDcOv3LggxJ9nQXK6q9TslXZR1RSSLMlcRHhNZ3P6HtKMxS8bzZIQgVUGeLDr1fniCspbTF1eXL6Rb2mGQsU/qkc+dHWVTniYjpZouxCTr+oLEBRQIU75csRhyWALl2qmYSyq3L6RQNdsKlBiaJKSFtMHTMJZYNtpq5rNdCZ0R8nH9B+v38b06laZXe73etxHGXyWLhGyBVdPiGrkFSs+umEplB9eAFNJn/hqBESyspsP0F+5rmHv0lCBVQ0TCc0xccACvVpAiwHh5HcSyemSZaCLglQMVhhoQ9/9IkHgI2IVZVBiwcdSKROggiphMrD/UuSzy8ZUCGtcK0AVaZ5cx/jbI7bcRzh22WFy2eP4AAXSKMvm+RNSpDBc/lzNmPuc5YK7D11OaB0UQRdYAqwjLAp1bmy56gPEOeSKLzn3PpZHmhyCdXU2C2BWulk/LLo8UwkebgKJBkF5DlJ4twl/F6ftwSAS6+m45ACjOBJHt6cIGUHqgYup36+sznWKsPS9+Ccw35jsTGLRCb1Q7cQYNfFHX4iTzzYcluc8OAObwHI4lcxCV3qmTgnSaqtVGmXKAXuzYPzlpypyK3OIU/nP5MED446KfQgAAAAAElFTkSuQmCC\"","export default __webpack_public_path__ + \"static/media/logo-png.f5b835c8.png\";","import configs from '../configs';\n\nexport const searchByQuery = async (query) => {\n const res = await fetch(`${configs.apiUrl}Tours/SearchByQuery`, {\n method: 'POST',\n body: JSON.stringify({ Query: query }),\n });\n const data = await res.json();\n return data;\n};\n\nexport default searchByQuery;\n","import React from 'react';\nimport { Link } from 'react-router-dom';\nimport './style.scss';\n\nfunction searchData(props) {\n const { data } = props;\n return (\n
\n
\n \n {/* {data.tagline} */}\n {/* travel tour */}\n
\n
\n {/*

{data.name}

*/}\n \n {data.name}\n \n

{data.location}

\n

\n {data.tagline.length > 500\n ? data.tagline.substr(0, 500) + '...'\n : data.tagline}\n

\n
\n
\n
\n {data.tagline.length > 200\n ? data.tagline.substr(0, 200) + '...'\n : data.tagline}\n
\n {/*

{data.text}

*/}\n \n );\n}\n\nexport default searchData;\n","import React from 'react';\nimport { useState } from 'react';\nimport InputSearch from '../../components/inputSearch';\nimport LogoCompany from './logo-png.png';\n// import LogoCompany from './Logo.svg';\nimport './style.scss';\nimport searchByQuery from '../../services/searchApi';\nimport { useEffect } from 'react';\nimport SearchData from 'components/searchData';\n\nfunction Search() {\n const [searchResult, setSearchResult] = useState([]);\n const [firstInit, setFirstInit] = useState(true);\n\n useEffect(() => {}, [searchResult]);\n\n const onSubmitSearch = async (query) => {\n const res = await searchByQuery(query);\n setFirstInit(false);\n if (res.isSuccess) {\n if (res.data.length > 0) {\n setSearchResult(res.data);\n } else {\n setSearchResult(null);\n }\n } else {\n console.error('ERROR WHEN SEARCHING');\n }\n };\n\n return (\n <>\n
\n
\n
\n \n
\n
\n

What are you looking for?

\n \n
\n
\n
\n
\n
\n {!searchResult && (\n
\n

\n The tour your looking is not found, try other keywork or access\n code\n

\n
\n )}\n\n {firstInit && (\n
\n

Use the Search Bar to find your tour

\n
\n )}\n
\n {searchResult &&\n searchResult.map((data) => )}\n
\n \n );\n}\n\nexport default Search;\n","const SCENE_RATIO = [2, 4];\n\nexport const DEFAULT_SCENE_RATIO = 2;\n\nexport default SCENE_RATIO;\n","export default {\n SCENE: 'Scene',\n MEDIA: 'Media',\n AUDIO: 'Audio',\n};\n","export default {\n IMAGE: 'Image',\n INFO_TAG: 'InfoTag',\n YOUTUBE: 'Youtube',\n AUDIO: 'Audio',\n PDF: 'PDF',\n GALLERY: 'Gallery',\n MATTERPORT: 'Matterport',\n MAPFLOORPLAN: 'MapFloorPlan',\n GOOGLE360: 'Google360',\n TYPEFORM: 'TypeForm',\n CUSTOM: 'Custom',\n VIDEO: 'Video',\n TOUR_AUDIO: 'TourAudio',\n SHAPESPARK: 'ShapeSpark',\n SKETCH_FAB: 'SketchFab',\n MODEL_3D: 'Model3D',\n LUMA: 'Luma',\n};\n","export const SCENE_TYPES = {\n AERIAL: 'AERIAL',\n LANDING: 'LANDING',\n GROUND: 'GROUND',\n};\n\nexport const isAerial = (type) =>\n String(type).toUpperCase() === SCENE_TYPES.AERIAL;\n\nexport default SCENE_TYPES;\n","/* eslint-disable */\nconst REGEX = {\n YOUTUBE_ID:\n /^.*((youtu.be\\/)|(v\\/)|(\\/u\\/\\w\\/)|(embed\\/)|(watch\\?))\\??v?=?([^#&?]*).*/,\n VIMEO_ID:\n /(?:www\\.|player\\.)?vimeo.com\\/(?:channels\\/(?:\\w+\\/)?|groups\\/(?:[^/]*)\\/videos\\/|album\\/(?:\\d+)\\/video\\/|video\\/|)(\\d+)(?:[a-zA-Z0-9_-]+)?/i,\n YOUTUBE_URL:\n /^(?:https?:\\/\\/)?(?:m\\.|www\\.)?(?:youtu\\.be\\/|youtube\\.com\\/(?:embed\\/|v\\/|watch\\?v=|watch\\?.+&v=))((\\w|-){11})(?:\\S+)?$/,\n VIMEO_URL:\n /(?:http|https)?:?\\/?\\/?(?:www\\.|player\\.)?vimeo\\.com\\/(?:channels\\/(?:\\w+\\/)?|groups\\/(?:[^\\/]*)\\/videos\\/|video\\/|)(\\d+)(?:|\\/\\?)/,\n EXTRACT_YOUTUBE_ID:\n /^.*((youtu.be\\/)|(v\\/)|(\\/u\\/\\w\\/)|(embed\\/)|(watch\\?))\\??v?=?([^#&?]*).*/,\n EMAIL:\n /^^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/,\n FACEBOOK:\n /^(?:https?:\\/\\/)?(?:www\\.)?(mbasic.facebook|m\\.facebook|facebook|fb)\\.(com|me)\\/.(?:(?:\\w\\.)*#!\\/)?(?:pages\\/)?(?:[\\w\\-.]*\\/)*([\\w\\-.]*)/,\n};\n\nexport default REGEX;\n","import REGEX from 'consts/regex.const';\nconst platforms = ['vimeo', 'youtube', 'youtu.be'];\n\nconst getVideoId = {\n vimeo: (url) => {\n const match = url.match(REGEX.VIMEO_ID);\n return (match && match[1]) || '';\n },\n youtube: (url) => {\n const match = url.match(REGEX.YOUTUBE_ID);\n return match && match[7].length === 11 ? match[7] : '';\n },\n};\n\n/**\n * Get video id by platform\n * @param {string} url Video Url\n * @param {string} platform video platform\n * @return {string} videoId\n */\nexport const getVideoIdByPlatform = (url, platform) => {\n if (!url || !platform) return '';\n\n return getVideoId[platform] ? getVideoId[platform](url) : '';\n};\n\n/**\n * Check video platform from url\n * @param {string} url video url\n * @returns {string}\n *\n * ```js\n * checkVideoType('https://www.youtube.com/watch?v=UgfsbL-uHOA') => 'youtube'\n * ```\n */\nconst checkVideoType = (url) => {\n const platform = platforms.find((p) => url.includes(p));\n\n if (platform) {\n return platform === 'youtu.be' ? 'youtube' : platform;\n }\n\n return '';\n};\n\n/**\n * Update video media data for video type\n * @param {object} videoData video media data\n * @return {object} parsed custom video data\n *\n * Support CUSTOM.VIDEO, CUSTOM.VIMEO, MEDIA.YOUTUBE\n *\n * ```js\n * videoData = {}\n * updateVideoMediaData(videoData) => ({...videoData, platform: 'Vimeo', videoId: 'abcXYZ'})\n * ```\n */\nexport const updateVideoMediaData = (videoData) => {\n const { videoUrl } = videoData;\n\n const platform = checkVideoType(videoUrl);\n if (!platform) return videoData;\n\n const videoId = getVideoIdByPlatform(videoUrl, platform);\n\n return {\n ...videoData,\n videoId,\n platform,\n };\n};\n\nexport const isMatterportUrl = (mpUrl) => {\n if (!mpUrl.includes('matterport.com')) return '';\n\n if (mpUrl.includes('/show')) {\n const urlParses = mpUrl.split('?');\n const urlParams = urlParses[1].split('&');\n return (\n (urlParams &&\n urlParams.find((p) => p.indexOf('m=') === 0).split('=')[1]) ||\n ''\n );\n } else if (mpUrl.includes('/discover/space/')) {\n return mpUrl.split('/space/')[1];\n }\n\n return '';\n};\n","import { DEFAULT_TOUR_SETING } from 'consts/defaultTourSetting';\nimport SCENE_RATIO, { DEFAULT_SCENE_RATIO } from 'consts/sceneRatio.const';\nimport HOTSPOT_TYPE from '../consts/hotspotType.const';\nimport MEDIA_TYPE from '../consts/mediaType.const';\nimport SCENE_TYPE from '../consts/sceneType.const';\nimport { updateVideoMediaData } from './mediaHelper';\n\nexport const getPathFromJsonUrl = (url) => {\n var path = url.split('/');\n path.pop();\n return path.join('/');\n};\n\nexport const getNewImgUrl = (path, imgUrl) => {\n let newUrl = imgUrl.trim();\n if (newUrl.indexOf('http://') === 0 || newUrl.indexOf('https://') === 0) {\n return newUrl;\n }\n if (newUrl[0] !== '/') {\n newUrl = '/' + newUrl;\n }\n return path + newUrl;\n};\n\nexport const convertImg = (img, path) => {\n let newImg = img;\n if (newImg) {\n if (newImg.constructor === String) {\n newImg = getNewImgUrl(path, newImg);\n }\n if (newImg.constructor === Array) {\n newImg = newImg.map((img) => getNewImgUrl(path, img));\n }\n }\n return newImg;\n};\n/**\n * find media has id = id which one of featuredMedia\n *@params {string} mediaId Media id\n *@params {object} list media object data\n *@returns object media\n **/\nexport const getFeatureMedia = (id, media) => {\n return media.find((m) => m.id === id);\n};\n\nexport const getMediaHotspotItem = (media) => ({\n id: media.friendlyName,\n _id: media.id,\n media,\n});\n\nexport const formatJsonImgUrl = (url, jsonData) => {\n if (jsonData.panoList) {\n const path = getPathFromJsonUrl(url);\n if (jsonData.brand && jsonData.brand.logo) {\n jsonData.brand.logo = convertImg(jsonData.brand.logo, path);\n }\n jsonData.panoList.forEach((p) => {\n Object.keys(p.images).forEach((type) => {\n if (p.images[type]) {\n Object.keys(p.images[type]).forEach((res) => {\n if (p.images[type][res]) {\n if (p.images[type][res].constructor === Array) {\n p.images[type][res].forEach((img, index) => {\n p.images[type][res][index] = convertImg(img, path);\n });\n } else {\n p.images[type][res] = convertImg(p.images[type][res], path);\n }\n }\n });\n }\n });\n if (p.hotspots) {\n p.hotspots.forEach((h) => {\n h.icons.unread = convertImg(h.icons.unread, path);\n h.icons.read = convertImg(h.icons.read, path);\n if (h.thumb) {\n h.thumb = convertImg(h.thumb, path);\n }\n });\n }\n });\n }\n return jsonData;\n};\n\nexport const formatOldJson = (json) => {\n const data = JSON.parse(JSON.stringify(json));\n if (!data.panoList) {\n return data;\n }\n const newJson = {};\n newJson.media = [];\n newJson.scenes = data.panoList.map((p) => {\n const hotspots = [];\n p.hotspots.forEach((h) => {\n const hp = {\n id: h.id,\n type: h.type === 'pano' ? HOTSPOT_TYPE.SCENE : HOTSPOT_TYPE.MEDIA,\n location: [h.location.x, h.location.y, h.location.z],\n distance: h.type === 'pano' ? h.distance : null,\n sceneLinkId: h.type === 'pano' ? h.panoId : null,\n mediaLinkId: h.type !== 'pano' ? h.id : null,\n };\n hotspots.push(hp);\n if (h.type !== 'pano' && !newJson.media.find((m) => m.id === h.id)) {\n newJson.media.push({\n id: h.id,\n title: h.title,\n friendlyName: h.id,\n type:\n h.type === 'youtube-video' ? MEDIA_TYPE.YOUTUBE : MEDIA_TYPE.IMAGE,\n text: h.type === 'info-box' ? h.content.description : null,\n imageURL: h.type === 'info-box' ? h.content.images[0] : null,\n readMoreURL: h.type === 'info-box' ? h.content.moreInfoLink : null,\n youtubeID: h.type === 'youtube-video' ? h.content : null,\n });\n }\n });\n const scene = {\n id: p.id,\n title: p.title,\n friendlyName: p.id,\n type: String(p.type || SCENE_TYPE.GROUND).toUpperCase(),\n isDefault: p.default || false,\n location: '',\n viewingAngle: 70,\n defaultOrientation: [\n p.defaultOrientation.x,\n p.defaultOrientation.y,\n p.defaultOrientation.z,\n ],\n coordinates: [\n (p.coordinates && p.coordinates.lng) || 0,\n (p.coordinates && p.coordinates.lat) || 0,\n (p.coordinates && p.coordinates.alt) || 0,\n ],\n lensFlareLocation: [p.lensflare.x, p.lensflare.y, p.lensflare.z],\n noLensFlare: !(p.lensflare || p.lensflare.x) ? true : false,\n yaw: '',\n elevation: '',\n previewImgUrl: p.thumb,\n cubeMapImages: {\n size1024: p.images.cube.low,\n size2048: p.images.cube.high,\n },\n hotspots: hotspots,\n };\n return scene;\n });\n newJson.menu = data.menu.items.map((m, i) => ({\n name: m.title,\n order: i,\n scenes: m.panos.map((p, j) => ({\n id: p.id,\n order: j,\n })),\n }));\n return newJson;\n};\n\nexport const updateDefaultValues = (data) => {\n if (data.customer && data.tour) {\n data.customer.brandColor1 = data.customer.brandColor1 || 'white';\n data.tour.logoURL = data.tour.logoURL || data.customer.logoURL;\n data.tour.tagline = data.tour.tagline || data.customer.companyTagline;\n data.tour.menuHighlightColor = data.tour.menuHighlightColor || 'white';\n data.tour.lightboxBackgroundColor1 =\n data.tour.lightboxBackgroundColor1 || 'black';\n data.tour.lightboxBackgroundColor2 =\n data.tour.lightboxBackgroundColor2 || 'black';\n data.tour.lightboxBackgroundColor3 =\n data.tour.lightboxBackgroundColor3 || 'black';\n data.tour.lightboxHeaderColor = data.tour.lightboxHeaderColor || 'white';\n data.tour.audioAvailable = (data.media || []).find(\n (m) => m.type === MEDIA_TYPE.AUDIO || m.type === MEDIA_TYPE.TOUR_AUDIO\n )\n ? true\n : false;\n data.tour.hotspotStyle = data.tour.hotspotStyle || 'default';\n }\n};\nexport const updateFeatureMedia = (data) => {\n data.featuredMedia = {\n map: null,\n contact: null,\n audio: null,\n };\n\n data.featuredHotspots = [];\n\n if (data.featured) {\n if (Array.isArray(data.featured)) {\n if (data.featured.length === 0) {\n return;\n }\n data.featured.forEach((media) => {\n const featuredMedia = getFeatureMedia(media.mediaId, data.media);\n if (featuredMedia) {\n data.featuredHotspots.push(getMediaHotspotItem(featuredMedia));\n fromCustomData(featuredMedia);\n const mediaType = media.type.toLowerCase();\n if (mediaType === 'form') {\n data.featuredMedia.contact = featuredMedia;\n } else data.featuredMedia[mediaType] = featuredMedia;\n }\n });\n } else {\n const mapId = data.featured.mediaId || '';\n const map = mapId ? data.media.find((m) => m.id === mapId) || null : null;\n const contactId = (data.featured.other && data.featured.other[0]) || '';\n const contact = contactId\n ? data.media.find((m) => m.id === contactId) || null\n : null;\n data.featuredMedia.map = map;\n data.featuredMedia.contact = contact;\n if (map) {\n data.featuredHotspots.push(getMediaHotspotItem(map));\n }\n if (contact) {\n data.featuredHotspots.push(getMediaHotspotItem(contact));\n }\n }\n }\n};\nexport const updateScenesAndHotspots = (data) => {\n data.scenes.forEach((scene) => {\n scene.sceneType = String(scene.type || SCENE_TYPE.GROUND).toUpperCase();\n scene.hotspots.forEach((h) => {\n if (h.type === HOTSPOT_TYPE.MEDIA) {\n h.media = data.media.find((m) => m.id === h.mediaLinkId) || null;\n if (h.media) {\n h._id = h.media.id;\n h.id = h.media.friendlyName;\n h.friendlyName = h.media.friendlyName;\n }\n } else if (h.type === HOTSPOT_TYPE.SCENE) {\n h.scene = data.scenes.find((s) => s.id === h.sceneLinkId) || null;\n if (h.scene) {\n h._id = h.scene.id;\n h.id = h.scene.friendlyName;\n h.friendlyName = h.scene.friendlyName;\n }\n }\n });\n });\n};\n\nexport const updateMenuItemsWithScene = (data) => {\n data.menu.forEach((g) => {\n g.scenes.forEach((s) => {\n const scene = data.scenes.find((d) => d.id === s.id);\n if (scene) {\n if (scene.tourGroupId && data.groups) {\n const group = data.groups.find((g) => g.id === scene.tourGroupId);\n if (group) {\n s.groupId = group.friendlyName;\n }\n }\n s._id = s.id;\n s.id = scene.friendlyName;\n s.title = s.title || scene.title;\n s.friendlyName = scene.friendlyName;\n s.type = String(scene.type || SCENE_TYPE.GROUND).toUpperCase();\n }\n });\n });\n};\n\nexport const replaceItemIdWithFriendlyName = (list = []) => {\n list.forEach((item) => {\n if (item.friendlyName) {\n item._id = item.id;\n item.id = item.friendlyName;\n }\n });\n};\n\nconst replacegroupIdWithFriendlyName = (data) => {\n data.scenes.forEach((scene) => {\n let group = data.groups.find((g) => g.id === scene.tourGroupId);\n if (!group) {\n group = data.groups.find((g) => g.isDefault) || data.groups[0];\n }\n scene.groupId = group ? group.friendlyName : 'welcome';\n });\n};\n\nconst fromCustomData = (media) => {\n if (media.type === MEDIA_TYPE.CUSTOM) {\n let customData = null;\n try {\n customData = JSON.parse(media.customData);\n //Parse TypeForm\n if (customData.type === MEDIA_TYPE.TYPEFORM && customData.url) {\n media.type = MEDIA_TYPE.TYPEFORM;\n media.typeForm = {\n url: customData.url,\n };\n }\n // Parse Logo Override\n else if (customData.type === MEDIA_TYPE.LOGO_OVERRIDE && customData.url) {\n media.type = MEDIA_TYPE.LOGO_OVERRIDE;\n media.logoOverride = {\n url: customData.url,\n };\n }\n // Parse Google360\n else if (\n customData.type === MEDIA_TYPE.GOOGLE360 &&\n customData.google360Url\n ) {\n media.type = MEDIA_TYPE.GOOGLE360;\n media.google360 = {\n url: customData.google360Url,\n };\n } else if (\n customData.type === MEDIA_TYPE.SKETCH_FAB &&\n customData.sketchFab\n ) {\n media.type = MEDIA_TYPE.SKETCH_FAB;\n media.sketchFab = {\n url: customData.sketchFab,\n };\n } else if (customData.type === MEDIA_TYPE.LUMA && customData.lumaUrl) {\n media.type = MEDIA_TYPE.LUMA;\n media.luma = {\n lumaUrl: customData.lumaUrl,\n };\n }\n // Parse ShapeSpark\n else if (\n customData.type === MEDIA_TYPE.SHAPESPARK &&\n customData.shapeSparkUrl\n ) {\n media.type = MEDIA_TYPE.SHAPESPARK;\n media.shapeSpark = {\n url: customData.shapeSparkUrl,\n };\n } else if (customData.type === MEDIA_TYPE.VIDEO) {\n media.type = MEDIA_TYPE.VIDEO;\n const videoData = updateVideoMediaData(customData);\n media.video = videoData;\n } else if (customData.type === MEDIA_TYPE.TOUR_AUDIO) {\n media.type = MEDIA_TYPE.TOUR_AUDIO;\n media.soundUrl = customData.url;\n } else if (customData.type === MEDIA_TYPE.MODEL_3D) {\n media.type = MEDIA_TYPE.MODEL_3D;\n media.modelUrl = customData.url;\n media.modelName = customData.modelName;\n media.size = customData.size;\n media.modelCoordinate = customData.modelCoordinate;\n }\n } catch (error) {\n window.logMessage('error parsing custom type from api response', error);\n }\n }\n};\n\nconst parseMediaCustom = (listMedia) => {\n listMedia.forEach((m) => fromCustomData(m));\n};\n\n/**\n * Check and update tour.sceneRatio if need\n * @param {object} tour Tour detail data\n * @return {void}\n *\n * Support 2 value of ratio (2: Default, 4: Other)\n *\n * ```js\n * checkTourAspectRation({...tour, sceneRatio: 6}) => ({...tour, sceneRatio: 2})\n * ```\n */\nconst checkTourAspectRation = (tour) => {\n if (!tour.sceneRatio || !SCENE_RATIO.includes(tour.sceneRatio)) {\n tour.sceneRatio = DEFAULT_SCENE_RATIO;\n }\n tour.shouldLimitPan = tour.sceneRatio !== DEFAULT_SCENE_RATIO;\n};\n\nexport const updateItemId = (data) => {\n replaceItemIdWithFriendlyName(data.scenes);\n parseMediaCustom(data.media);\n replaceItemIdWithFriendlyName(data.media);\n checkTourAspectRation(data.tour);\n if (data.groups) {\n replacegroupIdWithFriendlyName(data);\n replaceItemIdWithFriendlyName(data.groups);\n }\n};\n\nexport const checkEnableBranding = (tour, subscriptionPlan) => {\n const subscription = tour.subscriptionPlan || subscriptionPlan;\n const isEnabled = subscription?.scopes?.find(\n (item) => item.key === 'ENABLE_BRANDING' && item.value\n );\n\n if (isEnabled) {\n return { ...tour };\n }\n return { ...tour, ...DEFAULT_TOUR_SETING };\n};\n","export const SOCICAL_MEDIA = [\n 'youtubeUrl',\n 'websiteUrl',\n 'email',\n 'twitterUrl',\n 'snapchatUrl',\n 'pinterestUrl',\n 'facebookUrl',\n 'instagramUrl',\n];\n","import { SOCICAL_MEDIA } from 'consts/socialMediaData';\n\n/**\n * Ensure old data will still get data from customer\n * @param {object} tour Tour Data\n * @param {object} json Json Data\n * @returns {object} Data tour combined\n */\nexport const combineTour = (tour, { customer }) => {\n const objectCustomerTour = {};\n Object.keys(customer).map(\n (item) => (objectCustomerTour[item.toLowerCase()] = customer[item])\n );\n SOCICAL_MEDIA.forEach((item) => {\n if (!tour[item]) {\n tour[item] = objectCustomerTour[item.toLowerCase()];\n }\n });\n return tour;\n};\n","import {\n formatJsonImgUrl,\n formatOldJson,\n updateDefaultValues,\n updateScenesAndHotspots,\n updateMenuItemsWithScene,\n updateItemId,\n updateFeatureMedia,\n checkEnableBranding,\n} from './jsonHelper';\nimport configs from '../configs';\nimport { combineTour } from './tourHelper';\n\nexport const loadJson = async (url) => {\n try {\n const response = await fetch(url + '?v=' + new Date().getTime());\n return await response.json();\n } catch (error) {\n window.logMessage('load.json.error:', error);\n return null;\n }\n};\n\nexport const loadJsonVNNIC = async (url) => {\n try {\n const response = await fetch(url);\n return await response.json();\n } catch (error) {\n window.logMessage('load.json.error:', error);\n return null;\n }\n};\n\nexport const ensureData = (data) => {\n updateFeatureMedia(data);\n updateScenesAndHotspots(data);\n updateMenuItemsWithScene(data);\n updateItemId(data);\n updateDefaultValues(data);\n return data;\n};\n\nexport const loadFromUrl = async (jsonUrl) => {\n const json = await loadJsonVNNIC(jsonUrl);\n if (json) {\n const data = formatOldJson(formatJsonImgUrl(jsonUrl, json));\n return ensureData(data);\n }\n return null;\n};\n\nexport const loadTourSubscription = async (jsonUrl) => {\n const response = await fetch(jsonUrl);\n if (response) return response.json();\n return null;\n};\n\nexport const loadTourDetail = async (tourId) => {\n const response = await fetch(`${configs.apiUrl}Tours/${tourId}/detail`);\n const data = await response.json();\n return data.data;\n};\n\nexport const loadTourJsons = async (tourId) => {\n try {\n const reqBody = {\n tours: [tourId],\n };\n if (configs.viewMode) {\n reqBody.isPublished = true;\n }\n const response = await fetch(`${configs.apiUrl}Tours/json`, {\n method: 'PATCH',\n body: JSON.stringify(reqBody),\n });\n const { data } = await response.json();\n if (data && data.length) {\n return data;\n }\n } catch (error) {\n window.logMessage('loadTourJsons.error', error);\n }\n return [];\n};\n\nexport const loadPreviewJson = async (tourId) => {\n const data = await loadTourJsons(tourId);\n if (data && data.length) {\n return data.pop();\n }\n return null;\n};\n\nexport const loadPublishedJson = async (tourId) => {\n const data = await loadTourJsons(tourId);\n if (data && data.length) {\n return data.find((d) => d.isPublished) || null;\n }\n return null;\n};\n\nvar parsePreloadJsonScript = (jsonStr) => {\n const jsonStrFormatted = jsonStr\n .replace(/__OPEN_TAG__/g, '<')\n .replace(/__CLOSE_TAG__/g, '>');\n return JSON.parse(jsonStrFormatted);\n};\n\nexport const loadTourJson = async (tourAccessCode) => {\n const data = {\n tour: null,\n json: null,\n };\n\n const preloadEl = document.getElementById('vizion-data');\n\n if (preloadEl) {\n data.json = ensureData(parsePreloadJsonScript(preloadEl.textContent));\n data.tour = combineTour(data.json.tour, data.json);\n data.tour = checkEnableBranding(data.tour);\n window.data = data;\n window.logMessage('window.data', data);\n\n return Promise.resolve(data);\n }\n\n // const tour = await loadTourDetail(tourAccessCode);\n // if (!tour?.id) return data;\n // if (!tour.active) return { tour };\n // const requestFunction = configs.viewMode\n // ? loadPublishedJson\n // : loadPreviewJson;\n // const jsonRecord = await requestFunction(tour.id);\n // window.logMessage('jsonRecord', jsonRecord);\n\n // if (jsonRecord?.jsonUrl) {\n\n try {\n const json = await loadFromUrl('/assets/khp-json/khp.json');\n\n const tour = {};\n tour.subscriptionPlan = await loadTourSubscription(\n '/assets/khp-json/tour-subscription.json'\n );\n\n if (json) {\n json.tour.active = true;\n data.tour = combineTour(json.tour, json);\n data.tour = checkEnableBranding(data.tour, tour.subscriptionPlan);\n data.tour.subscriptionPlan = tour.subscriptionPlan;\n data.json = json;\n }\n } catch (error) {\n window.logMessage('loadTourJson.error', error);\n }\n window.data = data;\n window.logMessage('window.data', data);\n return data;\n};\n","import React from 'react';\n\nclass DomErrorBoundary extends React.Component {\n constructor(props) {\n super(props);\n this.state = { hasError: false };\n }\n\n static getDerivedStateFromError(error) {\n // Update state so the next render will show the fallback UI.\n return { hasError: true };\n }\n\n componentDidCatch(error, errorInfo) {\n // You can also log the error to an error reporting service\n window.logMessage('componentDidCatch', error, errorInfo);\n }\n\n render() {\n if (this.state.hasError) {\n // You can render any custom fallback UI\n return null;\n }\n\n return this.props.children;\n }\n}\n\nexport default DomErrorBoundary;\n","import React from 'react';\n\nclass PanoErrorBoundary extends React.Component {\n constructor(props) {\n super(props);\n this.state = { hasError: false };\n }\n\n static getDerivedStateFromError(error) {\n // Update state so the next render will show the fallback UI.\n return { hasError: true };\n }\n\n componentDidCatch(error, errorInfo) {\n // You can also log the error to an error reporting service\n window.logMessage('componentDidCatch', error, errorInfo);\n }\n\n render() {\n if (this.state.hasError) {\n // You can render any custom fallback UI\n return

Something went wrong.

;\n }\n\n return this.props.children;\n }\n}\n\nexport default PanoErrorBoundary;\n","import React, { useEffect, useState, useCallback } from 'react';\n// import { isMobileOnly } from 'react-device-detect';\nimport { useSelector } from 'react-redux';\n\n// import { useIsMobile } from 'common/hooks';\n// import { setAudioAutoPlay } from 'store/actions';\n\n// import MobileExperience from './MobileExperience';\n// import DesktopExperience from './DesktopExperience';\n// import LanguageSelect from './LanguageSelect';\n// import ExperienceButton from './ExperienceButton';\n\nimport { INTRO_STEP } from 'consts';\n\nimport './style.scss';\n\n// const playAudio = (el) => {\n// try {\n// for (const key in el) {\n// if (Object.hasOwnProperty.call(el, key)) {\n// const element = el[key];\n// element.play();\n// }\n// }\n// } catch (error) {\n// // console.error(error);\n// }\n// };\n\n// const triggerPlayAudio = () => {\n// if (!window.globalAudioPlayed) {\n// playAudio(document.getElementById('globalAudio'));\n// if (window.tourAudioPlayed) {\n// playAudio(document.getElementById('tourAudio'));\n// }\n// if (window.haveAudioSrc) {\n// playAudio(document.getElementsByClassName('sceneAudio'));\n// }\n// }\n// };\n\nexport default function ResumeExperience(props) {\n const {\n onUpdate,\n spinnerVisible,\n setAutoRotate,\n isFirstTime,\n setIsFirstTime,\n } = props;\n const [enabled, setEnabled] = useState(true);\n // const isMobile = useIsMobile();\n const [step, setStep] = useState(INTRO_STEP.RENDER);\n // const { viewMode } = useSelector((state) => state);\n const { autoPlayMode } = useSelector((state) => state);\n // const dispatch = useDispatch();\n\n const onHide = useCallback(() => {\n setEnabled(false);\n setStep(INTRO_STEP.FADING_OUT);\n // dispatch(setAudioAutoPlay());\n // }, [dispatch]);\n }, []);\n\n // const onClickHide = useCallback(() => {\n // isFirstTime && setAutoRotate(false);\n // if (enabled) {\n // // triggerPlayAudio();\n // onHide();\n // }\n // }, [enabled, isFirstTime, onHide, setAutoRotate]);\n\n const triggerClickHide = useCallback(() => {\n isFirstTime && setAutoRotate(false);\n if (enabled) {\n onHide();\n }\n }, [enabled, isFirstTime, onHide, setAutoRotate]);\n\n useEffect(() => {\n return () => {\n setIsFirstTime(false);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n if (step === INTRO_STEP.FADING_IN) {\n setStep(() => INTRO_STEP.FADED_IN);\n }\n if (step === INTRO_STEP.FADING_OUT) {\n setStep(() => INTRO_STEP.FADED_OUT);\n }\n onUpdate(step);\n }, [step, onUpdate]);\n\n useEffect(() => {\n if (!spinnerVisible && step === INTRO_STEP.RENDER) {\n setStep(INTRO_STEP.FADING_IN);\n }\n }, [step, spinnerVisible]);\n\n useEffect(() => {\n triggerClickHide();\n if (isFirstTime || autoPlayMode) {\n requestAnimationFrame(() => {\n // triggerPlayAudio();\n onHide();\n requestAnimationFrame(() => {\n setIsFirstTime(false);\n });\n });\n }\n }, [autoPlayMode, isFirstTime, triggerClickHide, onHide, setIsFirstTime]);\n\n return (\n
\n {/* */}\n {/* {isMobileOnly || isMobile ? : } */}\n {/* */}\n
\n );\n}\n","export default __webpack_public_path__ + \"static/media/logo-khaihoanprime.e0192211.png\";","export default __webpack_public_path__ + \"static/media/khp-pattern-sm.db7f5b42.png\";","import React, { useEffect, useState, useMemo, useRef } from 'react';\n\nimport clientLogo from '../../assets/images/logo/logo-khaihoanprime.png';\n\nimport './style.scss';\nimport patternPng from './khp-pattern-sm.png';\n\nconst LoadingImage = (props) => {\n const { loaded, onClosing, onClosed } = props;\n const loadingImage = useMemo(() => clientLogo, []);\n const [enabled, setEnabled] = useState(true);\n const [enableAnimation, setEnabledAnimation] = useState(false);\n const startTimer = useRef(Date.now());\n const delay = (ms) => new Promise((resolve) => setTimeout(resolve, ms));\n\n useEffect(() => {\n if (loaded) {\n (async () => {\n const elapsedTime = Date.now() - startTimer.current;\n\n if (elapsedTime < 4000) {\n await delay(4000);\n }\n setEnabledAnimation(true);\n await delay(3000);\n onClosing && onClosing();\n setEnabled(false);\n onClosed && onClosed();\n window.logMessage('Loading image closed');\n })();\n }\n // eslint-disable-next-line\n }, [loaded]);\n\n const progress = useRef(0);\n const progressEl = useRef(null);\n\n useEffect(() => {\n const updateProgress = () => {\n const el = progressEl.current;\n if (el) {\n el.style.width = `${progress.current}%`;\n }\n };\n if (loaded) {\n setTimeout(() => {\n progress.current = 100;\n updateProgress();\n }, 1000);\n return;\n }\n const timer = setInterval(() => {\n progress.current += 1;\n updateProgress();\n if (progress.current >= 100) {\n clearInterval(timer);\n }\n }, 40);\n\n return () => clearInterval(timer);\n }, [progress, loaded]);\n\n return (\n <>\n {enabled ? (\n \n
\n \"Loading\n
\n
\n \"Loading\n\n
\n

\n  \n

\n
\n
\n \n ) : null}\n \n );\n};\n\nexport default LoadingImage;\n","import React, { useEffect } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useHistory, useLocation } from 'react-router-dom';\nimport { setViewMode } from 'store/actions';\n\nconst HidenUiByQueryParams = () => {\n const dispatch = useDispatch();\n const { search } = useLocation();\n const history = useHistory();\n const { viewMode } = useSelector((state) => state);\n\n useEffect(() => {\n const query = new URLSearchParams(search);\n const modeValue = query.get('mode');\n if (modeValue && viewMode !== modeValue) dispatch(setViewMode(modeValue));\n if (viewMode && history.action !== 'POP') history.push('?mode=' + viewMode);\n }, [dispatch, history, search, viewMode]);\n return <>;\n};\nexport default HidenUiByQueryParams;\n","export const isMenuLeft = ({ dimention, width }) =>\n // dimention === DIMENTIONS.LANDSCAPE ||\n width > 575;\n","import MobileDetect from 'mobile-detect';\n\nconst detector = new MobileDetect(window.navigator.userAgent);\n\nexport const isMobile = () => detector.mobile();\nexport const isTablet = () => detector.tablet();\nexport const isPhone = () => detector.phone();\n","import React from 'react';\n\nfunction Tip({ color }) {\n return (\n \n \n {/* */}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n}\n\nexport default Tip;\n","import React from 'react';\n\nfunction Tip({ color }) {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n}\n\nexport default Tip;\n","import React from 'react';\n\nfunction Tip({ color }) {\n return (\n \n \n {/* */}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n}\n\nexport default Tip;\n","export default \"data:image/png;base64,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\"","import React from 'react';\nimport PoweredLogo from 'assets/images/logo/vz-logo.png';\nimport './logo.scss';\n\nexport default () => (\n
\n \"Powered\n
\n);\n","import React, { useRef, useEffect, useState } from 'react';\nimport Slider from 'react-slick';\nimport './introSlider.scss';\nimport Tip1 from './tip_1';\nimport Tip2 from './tip_2';\nimport Tip3 from './tip_3';\n// import Tip4 from './tip_4';\nimport 'slick-carousel/slick/slick.css';\nimport 'slick-carousel/slick/slick-theme.css';\nimport PoweredLogo from 'components/powered/logo';\nimport { useWindowSize } from '../../common/hooks/window';\nimport { LANDING_PAGE_URL } from 'consts/url';\n\nconst IntroSlider = (props) => {\n const [widthScreen] = useWindowSize();\n const { phone, portrait, onClick } = props;\n const listRef = useRef();\n const [slidePerPage, setSlidePerPage] = useState(1);\n\n useEffect(() => {\n if (phone) {\n setSlidePerPage(window.innerWidth < window.innerHeight ? 1 : 2);\n } else {\n if (window.innerWidth < 576) {\n setSlidePerPage(1);\n } else if (window.innerWidth < 768) {\n setSlidePerPage(2);\n } else {\n setSlidePerPage(3);\n }\n }\n }, [widthScreen, phone]);\n\n const settings = {\n dots: Boolean(props.phone),\n adaptiveHeight: true,\n speed: 500,\n slidesToShow: slidePerPage,\n slidesToScroll: slidePerPage,\n };\n\n return (\n \n
\n \n
\n
\n \n

Menu

\n
\n See a list of locations & control viewing options with the\n menu\n
\n
\n
\n
\n
\n \n

360°

\n
\n Click and drag to rotate 360° in any direction\n
\n
\n
\n
\n
\n \n

Explore

\n
\n Fly between locations, open media & see every detail\n
\n
\n
\n
\n e.stopPropagation()}\n >\n \n \n \n
\n \n \n );\n};\n\nexport default IntroSlider;\n","import { useState, useLayoutEffect } from 'react';\n\nexport const useWindowSize = () => {\n const [size, setSize] = useState([0, 0]);\n useLayoutEffect(() => {\n function updateSize() {\n setSize([window.innerWidth, window.innerHeight]);\n }\n window.addEventListener('resize', updateSize);\n updateSize();\n return () => window.removeEventListener('resize', updateSize);\n }, []);\n return size;\n};\n","export const LANDING_PAGE_URL = 'https://vizion.space';\n","import React, { useState, useEffect } from 'react';\n\nimport { connect, useSelector } from 'react-redux';\n\nimport { isMenuLeft } from 'utils/menuHelper';\nimport { isPhone } from 'deviceDetect';\n\nimport IntroSlider from './introSlider';\n\nimport './intro.scss';\n\nconst PHONE = isPhone();\n\nexport const INTRO_STEP = {\n RENDER: 0,\n FADING_IN: 1,\n FADED_IN: 2,\n FADING_OUT: 3,\n FADED_OUT: 4,\n};\n\nconst Intro = (props) => {\n const { spinnerVisible, dimentions, onUpdate } = props;\n const portrait = window.innerWidth < window.innerHeight;\n const [step, setStep] = useState(INTRO_STEP.RENDER);\n const [status, setStatus] = useState('out');\n const [enabled, setEnabled] = useState(true);\n\n const highlightColor = useSelector((state) => state.tour.menuHighlightColor);\n\n useEffect(() => {\n if (step === INTRO_STEP.FADING_IN) {\n setStatus('in');\n setTimeout(() => setStep(INTRO_STEP.FADED_IN), 1000);\n }\n if (step === INTRO_STEP.FADING_OUT) {\n setStatus('out');\n setTimeout(() => setStep(INTRO_STEP.FADED_OUT), 1000);\n }\n onUpdate(step);\n // eslint-disable-next-line\n }, [step]);\n useEffect(() => {\n if (!spinnerVisible && step === INTRO_STEP.RENDER) {\n setStep(INTRO_STEP.FADING_IN);\n }\n }, [step, spinnerVisible]);\n\n const onHide = () => {\n setEnabled(false);\n setStep(INTRO_STEP.FADING_OUT);\n };\n\n const onClickHide = () => {\n if (enabled) {\n if (!window.globalAudioPlayed) {\n document.getElementById('globalAudio').play();\n if (window.tourAudioPlayed) {\n document.getElementById('tourAudio').play();\n }\n if (window.haveAudioSrc) {\n const audio = document.getElementsByClassName('sceneAudio');\n for (const key in audio) {\n if (Object.hasOwnProperty.call(audio, key)) {\n const element = audio[key];\n element.play();\n }\n }\n }\n }\n onHide();\n }\n };\n\n return (\n <>\n \n
\n

Welcome

\n \n Get started\n \n
\n
\n \n
\n \n \n );\n};\n\nconst mapStateToProps = ({ dimentions, tour }) => ({\n dimentions,\n});\n\nexport default connect(mapStateToProps)(Intro);\n","import React, { useEffect, useMemo } from 'react';\n// import { useSelector } from 'react-redux';\nimport { withRouter } from 'react-router-dom';\nimport { useDispatch } from 'react-redux';\nimport { setSearchParams } from 'store/actions';\n// import { useHistory } from 'react-router-dom/cjs/react-router-dom.min';\n\nconst RouteHandler = ({ location }) => {\n const dispatch = useDispatch();\n // const history = useHistory();\n // const { tourId, groupId, sceneId, hotspotId } = useSelector(\n // (state) => state.worldParams\n // );\n const query = useMemo(() => new URLSearchParams(location.search), [location]);\n const queries = useMemo(() => {\n const data = {};\n query.forEach((value, key) => {\n data[key] = value;\n });\n return data;\n }, [query]);\n\n useEffect(() => {\n dispatch(setSearchParams(queries));\n }, [queries, dispatch]);\n\n // useEffect(() => {\n // const routeParams = [tourId, groupId, sceneId, hotspotId].filter(Boolean);\n // history.push(`/${routeParams.join('/')}`);\n // }, [groupId, history, hotspotId, sceneId, tourId]);\n\n return <>;\n};\n\nexport default withRouter(RouteHandler);\n","import React from 'react';\nimport { withRouter } from 'react-router-dom';\n\nconst RouteHandler = ({ match }) => {\n window.logMessage('match', match);\n return <>;\n};\n\nexport default withRouter(RouteHandler);\n","import React from 'react';\nimport { withRouter } from 'react-router-dom';\n\nconst RouteHandler = ({ match }) => {\n window.logMessage('match', match);\n return <>;\n};\n\nexport default withRouter(RouteHandler);\n","import React from 'react';\nimport { withRouter } from 'react-router-dom';\n\nconst RouteHandler = ({ match }) => {\n window.logMessage('match', match);\n return <>;\n};\n\nexport default withRouter(RouteHandler);\n","import React from 'react';\nimport { connect } from 'react-redux';\nimport DomErrorBoundary from 'components/errors/domError';\nimport FirstRoute from './1stRoute';\nimport SecondRoute from './2ndRoute';\nimport ThirdRoute from './3rdRoute';\nimport FourthRoute from './4thRoute';\n\nconst RouteHandlers = (props) => (\n \n \n \n \n \n \n);\n\nconst mapStateToProps = ({ json: { scenes, groups } }) => ({\n scenes,\n groups,\n});\n\nexport default connect(mapStateToProps)(RouteHandlers);\n","import { CONTROLS } from 'consts';\nimport { isMobile } from 'deviceDetect';\n\nconst isMobileDevice = isMobile();\nconst { ORBIT, DEVICE } = CONTROLS;\n\n/**\n * Get request permission for device orientation control\n * only on iPhone with iOS > 13\n */\nexport const requestDeviceOrientationPermission = async () => {\n let isGranted = false;\n if (typeof DeviceOrientationEvent?.requestPermission === 'function') {\n try {\n const status = await DeviceOrientationEvent.requestPermission();\n if (status === 'granted') isGranted = true;\n } catch (error) {\n console.error('Fail to get permission for device: ', error);\n }\n }\n return isGranted;\n};\n\n/**\n * Get control mode on mobile device\n * @param {string} mode current control mode\n * @return {string} next controlMode\n */\nconst handleGetControlModeOnMobile = async (mode) => {\n let nextMode = ORBIT;\n if (\n mode === ORBIT &&\n window.DeviceOrientationEvent !== undefined &&\n typeof window.DeviceOrientationEvent.requestPermission === 'function'\n ) {\n // need user permisison to allow using device orientation control\n // iOS 13+\n const permissionStatus = await DeviceOrientationEvent.requestPermission();\n if (permissionStatus === 'granted') {\n nextMode = DEVICE;\n }\n } else {\n // Other mobile device\n // Android etc\n nextMode = mode === ORBIT ? DEVICE : ORBIT;\n }\n return nextMode;\n};\n\n/**\n * Handle check and return control mode\n * @param {string} mode Control Mode `orbit` | `device`\n * @return {string} mode\n */\nexport const switchControlMode = async (mode) => {\n // handle control mode on Desktop\n if (!isMobileDevice) return ORBIT;\n // Handle control mode on mobile\n const nextMode = await handleGetControlModeOnMobile(mode);\n return nextMode;\n};\n","export const canFullscreen = () => {\n const docElm = document.documentElement;\n if (\n docElm.requestFullscreen ||\n docElm.mozRequestFullScreen ||\n docElm.webkitRequestFullScreen ||\n docElm.msRequestFullscreen\n ) {\n return true;\n }\n return false;\n};\n\nexport const isFullscreen = () =>\n (document.fullscreenElement && document.fullscreenElement !== null) ||\n (document.webkitFullscreenElement &&\n document.webkitFullscreenElement !== null) ||\n (document.mozFullScreenElement && document.mozFullScreenElement !== null) ||\n (document.msFullscreenElement && document.msFullscreenElement !== null);\n\nexport const toggleFullScreen = () => {\n const docElm = document.documentElement;\n if (!isFullscreen()) {\n if (docElm.requestFullscreen) {\n docElm.requestFullscreen();\n } else if (docElm.mozRequestFullScreen) {\n docElm.mozRequestFullScreen();\n } else if (docElm.webkitRequestFullScreen) {\n docElm.webkitRequestFullScreen();\n } else if (docElm.msRequestFullscreen) {\n docElm.msRequestFullscreen();\n } else {\n window.logMessage('cannot do full screen');\n }\n } else {\n if (document.exitFullscreen) {\n document.exitFullscreen();\n } else if (document.webkitExitFullscreen) {\n document.webkitExitFullscreen();\n } else if (document.mozCancelFullScreen) {\n document.mozCancelFullScreen();\n } else if (document.msExitFullscreen) {\n document.msExitFullscreen();\n } else {\n window.logMessage('cannot exit full screen');\n }\n }\n};\n","import { DEFAULT_SCOPES_DATA, PLAN_SCOPE_KEYS } from 'consts';\n\nexport const ensureSubscriptionData = (subscriptionData) =>\n subscriptionData.reduce((preValue, currentValue) => {\n const { key, value } = currentValue;\n switch (key) {\n case PLAN_SCOPE_KEYS.SCOPE_TYPE:\n return { ...preValue, scopeType: value };\n case PLAN_SCOPE_KEYS.TOUR_COUNT:\n return { ...preValue, tour: { ...preValue.tour, value: +value } };\n case PLAN_SCOPE_KEYS.SCENE_COUNT:\n return { ...preValue, scene: { ...preValue.scene, value: +value } };\n case PLAN_SCOPE_KEYS.MEDIA_COUNT:\n return { ...preValue, media: { ...preValue.media, value: +value } };\n case PLAN_SCOPE_KEYS.USER_COUNT:\n return { ...preValue, user: { ...preValue.user, value: +value } };\n case PLAN_SCOPE_KEYS.SCENE_PER_TOUR_COUNT:\n return {\n ...preValue,\n scene: { ...preValue.scene, limitPerTour: +value },\n };\n case PLAN_SCOPE_KEYS.MEDIA_PER_TOUR_COUNT:\n return {\n ...preValue,\n media: { ...preValue.media, limitPerTour: +value },\n };\n case PLAN_SCOPE_KEYS.ENABLE_BRANDING:\n return {\n ...preValue,\n enableBranding: { ...preValue.enableBranding, value: value },\n };\n case PLAN_SCOPE_KEYS.ENABLE_ANALYTICS:\n return {\n ...preValue,\n enableAnalytics: { ...preValue.enableAnalytics, value: value },\n };\n default:\n return preValue;\n }\n }, DEFAULT_SCOPES_DATA);\n","import React from 'react';\n\nexport const AutoRotateIcon = ({ shouldRotate, activeColor }) => {\n return shouldRotate ? (\n \n \n \n \n \n \n \n \n \n \n \n \n \n ) : (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n","import React from 'react';\n\nimport { isMobile } from 'react-device-detect';\n\nexport const FullScreenIcon = ({ fullScreen, activeColor }) => {\n return fullScreen ? (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ) : (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n","import Color from 'color';\n\nexport const ensureNonWhite = (color) => {\n const clr = Color(color);\n const r = ((clr.red() + 1) / 256) * 100;\n const g = ((clr.green() + 1) / 256) * 100;\n const b = ((clr.blue() + 1) / 256) * 100;\n const whiteMatch = (r + g + b) / 3;\n if (whiteMatch > 90) {\n return 'black';\n }\n\n return color;\n};\n\nexport const mixColor = (color, mixClr) => {\n const mClr = Color(color).mix(Color(mixClr));\n\n return `rgba(${Math.floor(mClr.color[0])},${Math.floor(\n mClr.color[1]\n )},${Math.floor(mClr.color[2])},1)`;\n};\n","import React, { useMemo } from 'react';\nimport { ensureNonWhite } from 'utils/colorHelper';\n\nexport const ShareIcon = ({ color: settingColor }) => {\n const color = useMemo(() => ensureNonWhite(settingColor), [settingColor]);\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n","import React, { useMemo } from 'react';\nimport { useSelector } from 'react-redux';\n\nconst ORBIT_MODE = 'orbit';\nexport const GyroscopeIcon = ({ activeColor }) => {\n const { controlMode } = useSelector((state) => state);\n const isGyrosControlMode = useMemo(\n () => (controlMode === ORBIT_MODE ? true : false),\n [controlMode]\n );\n\n return isGyrosControlMode ? (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ) : (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n","import React from 'react';\n\nexport const ContactFormIcon = (props) => {\n return (\n \n \n \n \n \n \n \n );\n};\n","import React, { useMemo } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { toggleAudio } from 'store/actions';\n\nexport const AudioIcon = (props) => {\n const { audio } = useSelector((state) => state);\n\n const color = useMemo(\n () => (audio.enabled ? props.activeColor : '#fff'),\n [audio.enabled, props.activeColor]\n );\n\n const dispatch = useDispatch();\n\n const handleToggleAudio = () => {\n dispatch(toggleAudio(!audio.enabled));\n };\n\n return (\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n );\n};\n","import React from 'react';\n\nexport const MapIcon = (props) => {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n","import React, { useMemo } from 'react';\n\nexport const MapLineIcon = ({ activeColor, active }) => {\n const color = useMemo(\n () => (active ? activeColor : '#fff'),\n [activeColor, active]\n );\n return (\n \n \n \n \n \n \n );\n};\n","import React from 'react';\n\nexport const FloorMapIcon = (props) => {\n return (\n \n \n \n \n \n \n \n \n \n );\n};\n","import React from 'react';\n\nexport const PinIcon = ({ color }) => {\n return (\n \n \n \n \n \n \n );\n};\n","import React from 'react';\n\nexport const HelpIcon = () => {\n return (\n \n \n \n \n \n \n \n \n \n );\n};\n","export const AutoPlayIcon = ({ shouldRotate }) => {\n return (\n <>\n {!shouldRotate ? (\n \n \n \n ) : (\n \n \n \n )}\n \n );\n};\n","export const MapFloorPlanIcon = ({ active }) => {\n return active ? (\n \n \n \n \n \n \n \n \n \n ) : (\n \n \n\n \n \n \n \n );\n};\n","import React from 'react';\n\nexport const ExpandIcon = () => {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n","import { useCallback } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { addHotspotHistory } from 'store/actions';\nimport configs from 'configs';\n\nexport function useAddHotspotHistory() {\n const dispatch = useDispatch();\n const { media } = useSelector((state) => state.json);\n\n return useCallback(\n (hsId) => {\n if ([configs.mapRoute, configs.socialRoute].includes(hsId)) return;\n const mediaHotspot = media.find((m) => m.id === hsId);\n if (mediaHotspot) dispatch(addHotspotHistory(mediaHotspot._id));\n },\n [dispatch, media]\n );\n}\n","import { useCallback, useState } from 'react';\nimport { useSelector } from 'react-redux';\nimport { useHistory } from 'react-router-dom';\n\nimport { useAddHotspotHistory } from './useAddHotspotHistory';\n\nexport const useNavigatedRoutes = () => {\n const { tourId, groupId, sceneId } = useSelector(\n (state) => state.worldParams\n );\n const addHotspotHistory = useAddHotspotHistory();\n\n const [activeHotspot, setActiveHotspot] = useState('');\n\n const history = useHistory();\n\n const handleUpdateRoute = useCallback(\n (hsId = '') => {\n if (hsId) {\n history.push(`/${tourId}/${groupId}/${sceneId}/${hsId}`);\n setActiveHotspot(hsId);\n addHotspotHistory(hsId);\n return;\n }\n history.push(`/${tourId}/${groupId}/${sceneId}`);\n setActiveHotspot('');\n },\n [addHotspotHistory, groupId, history, sceneId, tourId]\n );\n\n return [handleUpdateRoute, activeHotspot];\n};\n","import React, { useMemo } from 'react';\n\nimport { defaultIconBgColor } from 'consts';\nimport { mixColor } from 'utils/colorHelper';\n\nconst MenuIcon = ({ colorChecked, active }) => {\n const bgColor = useMemo(\n () => (active ? defaultIconBgColor : mixColor(colorChecked, '#000')),\n [active, colorChecked]\n );\n\n return (\n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default MenuIcon;\n","import React, { useMemo } from 'react';\n\nimport { defaultIconBgColor } from 'consts';\nimport { mixColor } from 'utils/colorHelper';\n\nconst SceneIcon = ({ colorChecked, active }) => {\n const bgColor = useMemo(\n () => (active ? defaultIconBgColor : mixColor(colorChecked, '#000')),\n [active, colorChecked]\n );\n\n return (\n \n \n \n \n \n \n \n \n );\n};\n\nexport default SceneIcon;\n","import React, { useMemo } from 'react';\nimport { connect } from 'react-redux';\nimport Color from 'color';\n\nimport { defaultIconBgColor } from 'consts';\n\nimport IconAerial from 'components/icons/SceneIconAerial';\nimport IconGround from 'components/icons/SceneIconGround';\n\nimport './style.scss';\n\nfunction NavMenuItem(props) {\n const { item, index, active, onSelect, viewed, color } = props;\n const onClickMenuItem = () => onSelect && onSelect();\n const colorChecked = useMemo(\n () => (viewed ? color : defaultIconBgColor),\n [viewed, color]\n );\n\n const colorActive = useMemo(() => {\n if (!active) return '';\n const clrString = Color(color).alpha(0.4);\n return clrString.toString();\n }, [active, color]);\n\n return (\n \n
\n
\n \n {item.type === 'AERIAL' ? (\n \n ) : (\n \n )}\n \n {`${index} . ${item.title}`}\n
\n
\n \n );\n}\n\nconst mapStateToProps = () => ({});\n\nexport default connect(mapStateToProps)(NavMenuItem);\n","import React from 'react';\n\nconst IconArrowUp = () => {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default IconArrowUp;\n","import React from 'react';\n\nconst IconArrowDown = () => {\n return (\n \n \n {' '}\n Svg Vector Icons : http://www.onlinewebfonts.com/icon{' '}\n \n \n \n \n \n );\n};\n\nexport default IconArrowDown;\n","import React, { useState } from 'react';\nimport AnimateHeight from 'react-animate-height';\nimport NavMenuItem from '../menuItem';\nimport IconArrowUp from '../iconArrow/iconArrowUp';\nimport IconArrowDown from '../iconArrow/iconArrowDown';\n\nconst ListMenuItem = ({\n group,\n toggleMenu,\n onSelect,\n panoId,\n historyLogs,\n color,\n}) => {\n const [toggle, setToggle] = useState(true);\n const [height, setHeight] = useState('auto');\n\n const onClickMenu = (item) => {\n toggleMenu(false);\n onSelect(item.groupId, item.id);\n };\n\n let index = 0;\n\n return (\n
\n {\n setToggle(!toggle);\n setHeight(height === 0 ? 'auto' : 0);\n }}\n >\n
\n

{group.name}

\n {toggle ? : }\n
\n
\n \n
\n {group.scenes.map((item, j) => (\n onClickMenu(item)}\n color={color}\n />\n ))}\n
\n
\n \n );\n};\n\nexport default ListMenuItem;\n","import React from 'react';\nimport { connect } from 'react-redux';\nimport PerfectScrollbar from 'react-perfect-scrollbar';\n\nimport { toggleMenu } from 'store/actions';\nimport { MENU_LOCATION } from 'consts';\n\nimport ListMenuItem from './listItem';\n\nfunction NavMenu(props) {\n const { isOpen, location, menu, tour, onSelect, panoId, historyLogs, color } =\n props;\n const isMenuLeft = location === MENU_LOCATION.LEFT;\n\n return (\n \n
\n
\n
\n
\n

{tour.name}

\n

{tour.tagline}

\n
\n
\n
\n
\n
\n \n {menu.map((group, i) => (\n \n ))}\n \n
\n
\n
\n \n );\n}\n\nconst mapStateToProps = ({ hotspotHistory, currentScene, json }) => ({\n panoId: currentScene.id,\n historyLogs: hotspotHistory,\n tour: json.tour,\n customer: json.customer,\n});\n\nconst mapDispatchToProps = {\n toggleMenu,\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(NavMenu);\n","import React, { useMemo } from 'react';\n\nimport './style.scss';\n\nconst MenuItem = ({\n scenes,\n sceneGroup,\n onSelect,\n selectedCard,\n handleSelect,\n activeColor,\n}) => {\n const { defaultSceneId, title, _id } = sceneGroup;\n\n const scenesInGroup = useMemo(() => {\n return scenes.filter((scene) =>\n sceneGroup.scenes.some((groupScene) => groupScene.id === scene._id)\n );\n }, [sceneGroup, scenes]);\n\n const defaultScene = useMemo(() => {\n return defaultSceneId\n ? scenesInGroup.find((scene) => scene._id === defaultSceneId)\n : scenesInGroup[0];\n }, [defaultSceneId, scenesInGroup]);\n\n const handleSwitchPano = () => {\n onSelect(sceneGroup.id, defaultScene.id);\n handleSelect();\n };\n\n const isSelected = useMemo(() => selectedCard === _id, [_id, selectedCard]);\n\n return (\n \n
\n {defaultScene.title}\n
\n
{title}
\n \n );\n};\n\nexport default MenuItem;\n","import React, { useState, useEffect } from 'react';\nimport PerfectScrollbar from 'react-perfect-scrollbar';\n\nimport MenuItem from './MenuItem';\n\nimport 'react-perfect-scrollbar/dist/css/styles.css';\nimport './style.scss';\n\nconst GalleryMenu = ({\n desktop,\n mobile,\n scenes,\n groups,\n onSelect,\n openMenu,\n handleOpenMenu,\n activeColor,\n currentPano,\n}) => {\n const [selectedCard, setSelectedCard] = useState(null);\n\n const handleMenuToggle = () => {\n handleOpenMenu();\n };\n\n useEffect(() => {\n if (currentPano && groups.length) {\n const currentGroup = groups.find(\n (group) => group._id === currentPano.tourGroupId\n );\n setSelectedCard(currentGroup._id);\n } else setSelectedCard(null);\n }, [currentPano, groups]);\n\n return (\n \n {desktop ? (\n
\n ) : (\n
\n )}\n
\n \n {groups.map((group) => {\n return (\n setSelectedCard(group._id)}\n />\n );\n })}\n \n
\n {desktop ? (\n
\n ) : (\n
\n )}\n
\n \n \n
\n \n );\n};\n\nexport default GalleryMenu;\n","import React from 'react';\n\nexport default function NotePlate({ note, transform, arrowClass, className }) {\n return (\n \n

{note}

\n
\n \n );\n}\n","export const limitLetters = (letters, limit = 50) => {\n return letters.length > limit ? letters.slice(0, limit) + '...' : letters;\n};\n","import React, { useMemo } from 'react';\n\nimport { limitLetters } from 'utils/limitLetters';\n\nimport './style.scss';\n\nconst MenuItem = ({\n scenes,\n sceneGroup,\n onSelect,\n selectedCard,\n handleSelect,\n activeColor,\n}) => {\n const { _id } = sceneGroup;\n\n const defaultScene = useMemo(\n () => scenes.find((scene) => scene._id === _id),\n [_id, scenes]\n );\n\n const handleSwitchPano = () => {\n onSelect(sceneGroup.groupId, defaultScene.id);\n handleSelect();\n };\n\n const isSelected = useMemo(() => selectedCard === _id, [_id, selectedCard]);\n\n return (\n \n
\n {defaultScene.title}\n
\n

{limitLetters(defaultScene.title, 15)}

\n
\n
\n {/*
{title}
*/}\n \n );\n};\n\nexport default MenuItem;\n","import React, { useState, useEffect, useMemo } from 'react';\nimport PerfectScrollbar from 'react-perfect-scrollbar';\nimport { useSelector } from 'react-redux';\nimport { isMobile } from 'react-device-detect';\nimport NotePlate from 'components/MenuForDesktop/NotePlate';\n\nimport MenuItem from './MenuItem';\n\nimport 'react-perfect-scrollbar/dist/css/styles.css';\nimport './style.scss';\n\nconst SchoolLayoutMenu = ({\n desktop,\n mobile,\n scenes,\n groups,\n onSelect,\n openMenu,\n handleOpenMenu,\n activeColor,\n currentPano,\n menuList,\n isSchoolLayout,\n}) => {\n const [selectedCard, setSelectedCard] = useState(null);\n const { logoURL, hasLogo } = useSelector((state) => ({\n logoURL: state.logoURL,\n hasLogo: state.hasLogo,\n }));\n\n const enableBranding = useSelector(\n ({ subscriptionPlan }) => subscriptionPlan.enableBranding\n );\n\n const handleMenuToggle = () => {\n handleOpenMenu();\n };\n\n const menuScenes = useMemo(() => {\n return menuList.flatMap((item) => item.scenes);\n }, [menuList]);\n\n useEffect(() => {\n if (currentPano && menuScenes.length) {\n const currentGroup = menuScenes.find(\n (group) => group._id === currentPano._id\n );\n setSelectedCard(currentGroup._id);\n } else setSelectedCard(null);\n }, [currentPano, groups, menuScenes]);\n\n return (\n \n {!isMobile && enableBranding && hasLogo && (\n
\n \"tour-logo\"\n
\n )}\n {desktop ? (\n
\n ) : (\n
\n )}\n \n \n {menuScenes.map((group) => {\n return (\n setSelectedCard(group._id)}\n />\n );\n })}\n \n \n {desktop ? (\n
\n ) : (\n
\n )}\n\n
\n \n \n
\n {isSchoolLayout && currentPano && (isMobile || !openMenu) && (\n \n

{currentPano.title}

\n
\n )}\n {!isMobile && (\n \n )}\n \n \n \n );\n};\n\nexport default SchoolLayoutMenu;\n","import React from 'react';\nimport {\n AudioIcon,\n AutoRotateIcon,\n ContactFormIcon,\n ExpandIcon,\n FloorMapIcon,\n FullScreenIcon,\n GyroscopeIcon,\n HelpIcon,\n MapFloorPlanIcon,\n ShareIcon,\n} from 'components/icons';\nimport configs from 'configs';\nimport { isMobile } from 'react-device-detect';\nimport { limitLetters } from 'utils/limitLetters';\n\nimport NotePlate from './NotePlate';\n\nimport './SchoolLayoutIcons.scss';\n\nexport default function SchoolLayoutIcons(props) {\n const {\n currentPano,\n isAutoPlay,\n color,\n toggleHelpButton,\n featuredMedia,\n isShowAudioIcon,\n canFullscreen,\n menuPosition,\n handleFullScreen,\n fullScreen,\n isShowMapFloorPlan,\n setIsActiveMap,\n isActiveMap,\n mapShowed,\n setOpenDropDown,\n openDropDown,\n handleSelectMap,\n scenes,\n floorMaps,\n switchMode,\n handleUpdateRoute,\n onSelect,\n isSchoolLayout,\n enableGyroscope,\n handleSwitchControlMode,\n } = props;\n\n return (\n \n {isShowMapFloorPlan && (\n <>\n setIsActiveMap(!isActiveMap)}\n >\n \n {!isMobile && (\n \n )}\n \n \n {mapShowed && (\n <>\n
\n setOpenDropDown(!openDropDown)}\n >\n {limitLetters(mapShowed.image.name, 15)}\n \n {openDropDown && (\n \n
    \n {floorMaps?.map((item, index) => (\n handleSelectMap(item)}\n key={index}\n >\n {limitLetters(item.image.name, 10)}\n \n ))}\n
\n
\n )}\n \n
\n \n
\n \n
\n {mapShowed.image.name}\n {mapShowed.objects.map((viewpoint) => {\n const currentPoint = viewpoint.id === currentPano._id;\n const [left, top] = viewpoint.coordinates;\n const leftInPercent = left * 100;\n const topInPercent = top * 100;\n const currentScene =\n scenes.find((s) => s._id === viewpoint.id) || {};\n\n return (\n \n onSelect(currentScene.groupId, currentScene.id)\n }\n >\n

{currentScene.title}

\n
\n );\n })}\n \n \n )}\n \n \n )}\n\n {isShowAudioIcon && (\n
\n \n {!isMobile && (\n \n )}\n
\n )}\n\n
\n
switchMode()}>\n \n
\n {!isMobile && (\n \n )}\n
\n\n {canFullscreen() && menuPosition !== 'bottom' && (\n
\n
\n \n {!isMobile && (\n \n )}\n
\n
\n )}\n\n handleUpdateRoute(configs.socialRoute)}\n >\n
\n \n {!isMobile && (\n \n )}\n
\n \n\n {enableGyroscope && (\n \n \n \n )}\n\n
\n
\n \n {!isMobile && (\n \n )}\n
\n
\n\n {featuredMedia.map && (\n handleUpdateRoute(featuredMedia.map.id)}\n >\n \n \n )}\n\n {featuredMedia.contact && (\n handleUpdateRoute(featuredMedia.contact.id)}\n >\n \n \n )}\n \n );\n}\n","import React from 'react';\n\nconst IconHuman = ({ color }) => {\n return (\n \n \n \n \n \n );\n};\n\nexport default IconHuman;\n","import IconHuman from 'containers/hotspots/icons/iconHuman';\nimport React, { useMemo, useState } from 'react';\n\nexport default function AquaMenuItem({\n scenes,\n scene,\n onSelect,\n currentPano,\n setOpenMobileMenu,\n}) {\n const [hover, setHover] = useState(null);\n\n const hoverImage = useMemo(\n () => scenes.find((item) => item._id === scene._id),\n [scenes, scene]\n );\n\n const isMobile = useMemo(() => window.innerWidth < 1023, []);\n\n return (\n setHover(scene.order)}\n onMouseLeave={() => setHover(null)}\n onClick={() => {\n onSelect(scene.groupId, scene.id);\n setOpenMobileMenu && setOpenMobileMenu();\n }}\n >\n {isMobile && (\n \n )}\n\n \n {scene.title}\n

\n\n {!isMobile && (\n \n )}\n\n {!isMobile && (\n \n {hoverImage.title}\n
\n

{scene.title}

\n
\n \n )}\n \n );\n}\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAMAAADDpiTIAAAAA3NCSVQICAjb4U/gAAAACXBIWXMAABUGAAAVBgFFbYDNAAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAFdQTFRF////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXD3nBAAAABx0Uk5TAEBocHiAjqiqr7C+xMvO0dPV2ODh5Ojt8vP19v+jbA8AAAQESURBVHja7d3NasJAGIZRIyaWiv2nheL9X1yLlCIWNSHtor2BeSFR6znrDCNfHhlXzmQCAAAAAAAAAAAAAAAAAJyTqjaDizZ7MYOLNjUCASAABIAAEAACQAAIAAEgAASAABAAAkAACAABIAAEgAAQAAJAAAgAASAABIAAEAACQAAIAAEgAASAABAAAkAACAABIAAEgAA4nlnZ45ttskn9aNCBdZusWi6GDGDXJZ+p9zIT+2hu+7IAHAF+AyAABIAAEAACQAAIAAEgAASAABAAAkAACAABIAAEgAAQAAJAAAgAASAABIAAEAACQAAIAAEgAASAABAAAkAACAABIAAEgAAQAAJAAAgAASAABMA4Ci+NWkabNOacWByiVWWPVyuDdgQgAASAABAAAkAACAABIAAEgAAQAAJAAAgAASAABIAAEAACQAAIAAEgAASAABAAAkAACAABIAAEgAAQAAJAAAgAASAABIAAEAAC4AgK7wvo99EmtUEH2i5ZdVUNGcA6CmD66m0G3vtk1fWDIwABIAAEgAAQAAJAAAgAASAABIAAEAACQAACQAAIAAEgAASAABAAAkAACAABIAAEgAAQAAJAAAgAASAABIAAEAACQAAIAAEgAASAABAAAkAACAABcIIKL42aHUbYhL+xtSN8pauVQTsCEAACQAAIAAEgAASAABAAAkAACAABIAAEgAAQAAJAAAgAASAABIAAEAACQAAIAAEgAASAABAAAkAACAABIAAEgAAQAAJAAAgAASAAxlZ4l8PHV7JJ/WzQgbfowojF3ZABdN/JZ+q8zGhs0bB7RwACQAAIAAEgAASAABAAAkAACAABIAAEgAAEgAAQAAJAAAgAASAABIAAEAACQAAIAAEgAASAABAAAkAACAABIAAEgAAQAAJAAAgAASAABIAAEAAC4BQVXhp1fxhhE349RZdtzQd9NzPvcjxN4whAAAgAASAABIAAEAACQAAIAAEgAASAABAAAkAACAABIAAEgAAQAAJAAAgAASAABIAAEAACQAACQAAIAAEgAASAABAAAkAACAAB8I8V/v37bpNs0twadOAzupzhZj5kAJt98plaASS2fbSqLABHgN8ACAABIAAEgAAQAAJAAAgAASAABIAAEAACQAAIAAEgAASAABAAAkAACAABIAAEgAAQAAJAAAgAASAABIAAEAACQAAIAAEgAASAABAAAkAACAABMI7CS6PmXbJJbc6Jpo1WlT1erQzaEYAAEAACQAAIAAEgAASAABAAAkAACAABIAAEgAAQAAJAAAgAASAABIAAEAACQAAIAAEgAASAABAAAkAACAABIAAEgAAQAAJAABxH5a/cAQAAAAAAAAAAAAAAAADOxw/n4TFVM4YJxgAAAABJRU5ErkJggg==\"","export default __webpack_public_path__ + \"static/media/map-v2.34589de5.png\";","export default __webpack_public_path__ + \"static/media/pin.a23d395c.png\";","export default __webpack_public_path__ + \"static/media/arrow.4a4244e0.png\";","export default __webpack_public_path__ + \"static/media/share.8f7deca4.png\";","export default __webpack_public_path__ + \"static/media/map.8c08d2a2.png\";","import { isMobile } from 'react-device-detect';\nimport Video from './icon-images/picture-frame.png';\nimport Map1 from './icon-images/address.png';\nimport Map2 from './icon-images/map-v2.png';\nimport Location from './icon-images/pin.png';\nimport GreenPark from './icon-images/bench-tree.png';\nimport Fullscreen from './icon-images/fullscreen.png';\nimport AutoRotate from './icon-images/arrow.png';\nimport House from './icon-images/old-building.png';\nimport Villa from './icon-images/city.png';\nimport Share from './icon-images/share.png';\nimport RightArrow from './icon-images/right.png';\nimport SceneMenuIcon from './icon-images/list.png';\nimport LargeMapfloorplanIcon from './icon-images/map.png';\nimport PrimeApartment from './icon-images/home.png';\nimport PrimeOfficeBuilding from './icon-images/office-building.png';\nimport SampleImg from './icon-images/sample-img.png';\n\nexport const AquaVideoIcon = () => {\n return (\n \n );\n};\n\nexport const AquaMapfloorplanIconV1 = () => {\n return (\n \n );\n};\n\nexport const AquaMapfloorplanIconV2 = ({ isActive }) => {\n return (\n \n );\n};\n\nexport const AquaLocationIcon = () => {\n return (\n \n );\n};\n\nexport const AquaGreenParkIcon = ({ isActive }) => {\n return (\n \n );\n};\n\nexport const AquaFullscreenIcon = () => {\n return (\n \n );\n};\n\nexport const AquaAutoRotateIcon = () => {\n return (\n \n );\n};\n\nexport const AquaHouse = ({ isActive }) => {\n return (\n \n );\n};\n\nexport const AquaVilla = ({ isActive }) => {\n return (\n \n );\n};\n\nexport const ShareIcon = () => {\n return (\n \n );\n};\n\nexport const AquaRightArrow = () => {\n return (\n \n );\n};\n\nexport const AquaSceneMenuIcon = () => {\n return (\n \n );\n};\n\nexport const AquaLargeMapfloorplanIcon = () => {\n return (\n \n );\n};\n\nexport const PrimeApartmentIcon = ({ isActive }) => {\n return (\n \n );\n};\n\nexport const PrimeOfficeBuildingIcon = ({ isActive }) => {\n return (\n \n );\n};\n\nexport const PrimeMapFloorPlanIcon = ({ isActive }) => {\n return (\n \n \n \n \n \n );\n};\n\nexport const PrimeSampleImageIcon = ({ isActive }) => {\n return (\n \n );\n};\n","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,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\"","import React, { useMemo, useState } from 'react';\n\nimport './HoveringPlate.scss';\n\nexport default function HoveringPlate({ children, textHover, isPrimeStyle }) {\n const [showTooltip, setShowTooltip] = useState(false);\n const [position, setPosition] = useState({ x: 0, y: 0 });\n\n const handleMouseEnter = () => {\n setShowTooltip(true);\n };\n\n const handleMouseLeave = () => {\n setShowTooltip(false);\n };\n\n const handleMouseMove = (e) => {\n const rect = e.target.getBoundingClientRect();\n setPosition({\n x: e.clientX - rect.left,\n y: e.clientY - rect.top,\n });\n };\n\n const updatedText = useMemo(() => {\n if (!textHover) return '';\n\n return textHover\n .toLowerCase()\n .replace('- ban đêm', '')\n .replace('ban đêm', '')\n .trim();\n }, [textHover]);\n\n return (\n \n {children}\n {showTooltip && updatedText && (\n \n {updatedText === 'bbq riverside' ? 'BBQ Riverside' : updatedText}\n \n )}\n \n );\n}\n","import React, { useEffect, useMemo, useState } from 'react';\n// import PerfectScrollbar from 'react-perfect-scrollbar';\nimport { useSelector } from 'react-redux';\n// import { isMobile } from 'react-device-detect';\n// import NotePlate from 'components/MenuForDesktop/NotePlate';\n\nimport AquaMenuItem from './AquaMenuItem';\nimport {\n AquaMapfloorplanIconV2,\n AquaRightArrow,\n AquaGreenParkIcon,\n AquaHouse,\n AquaVilla,\n AquaSceneMenuIcon,\n AquaLargeMapfloorplanIcon,\n} from 'components/icons/AquaIcons';\n\nimport 'react-perfect-scrollbar/dist/css/styles.css';\nimport './style.scss';\nimport HoveringPlate from 'components/HoveringPlate';\n\nconst Icons = ({ iconOrder, isActive }) => {\n const iconComponents = [\n ,\n ,\n ,\n ,\n ];\n\n return <>{iconComponents[iconOrder]};\n};\n\nconst AACorporationLayout = ({\n desktop,\n mobile,\n scenes,\n groups,\n onSelect,\n openMenu,\n handleOpenMenu,\n // activeColor,\n currentPano,\n menuList,\n // isSchoolLayout,\n tourLogo,\n}) => {\n // const [selectedCard, setSelectedCard] = useState(null);\n const [hoverMenuItem, setHoverMenuItem] = useState(null);\n const [hoverScenes, setHoverScenes] = useState([]);\n const [openMobileMenu, setOpenMobileMenu] = useState(true);\n const [openRightMenu, setOpenRightMenu] = useState(false);\n\n const { hasLogo } = useSelector((state) => ({\n logoURL: state.logoURL,\n hasLogo: state.hasLogo,\n }));\n\n const enableBranding = useSelector(\n ({ subscriptionPlan }) => subscriptionPlan.enableBranding\n );\n\n const menuScenes = useMemo(() => {\n return menuList.flatMap((item) => item.scenes);\n }, [menuList]);\n\n useEffect(() => {\n if (hoverMenuItem === null) {\n setHoverScenes([]);\n return;\n }\n\n const menu = menuList[hoverMenuItem];\n setHoverScenes([...menu.scenes]);\n }, [hoverMenuItem, menuList, menuScenes]);\n\n const isMobile = useMemo(() => window.innerWidth < 1024, []);\n const isIpad = useMemo(\n () => window.innerWidth <= 1023 && window.innerWidth > 767,\n []\n );\n\n const currentMenu = useMemo(() => {\n if (currentPano) {\n return menuList.find((item) =>\n item.scenes.some((sce) => sce._id === currentPano._id)\n );\n }\n return null;\n }, [currentPano, menuList]);\n\n const handleOpenMenuInMobile = () => {\n if (hoverMenuItem !== null) return;\n setHoverMenuItem(currentMenu.order);\n };\n\n const rightGroupMenu = useMemo(\n () =>\n groups.find((gr) =>\n gr.scenes.some((scene) => scene.id === currentPano?._id)\n ),\n [groups, currentPano]\n );\n\n const getParseSceneId = (sceneId) => {\n const foundScene = scenes.find((sce) => sce._id === sceneId);\n return foundScene.id;\n };\n\n return (\n <>\n {!isMobile ? (\n
\n \n {enableBranding && hasLogo && (\n
\n \n \"tour-logo\"\n \n
\n )}\n\n \n
\n {menuList.map((item) => (\n setHoverMenuItem(item.order)}\n onMouseLeave={() => setHoverMenuItem(null)}\n >\n \n onSelect(item.scenes[0].groupId, item.scenes[0].id)\n }\n >\n \n {item.name}\n

\n \n
\n\n \n {hoverScenes.map((scene) => (\n \n \n \n ))}\n
\n \n ))}\n \n\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n \n\n \n \n TP. Hồ Chí Minh:\n 30°C/87°F\n

\n \n\n \n \n
\n
\n
\n
\n
\n \n \n \n\n
\n setOpenRightMenu(true)}\n onMouseLeave={() => setOpenRightMenu(false)}\n >\n \n {rightGroupMenu && (\n \n
\n

\n {rightGroupMenu.title}\n

\n
\n {rightGroupMenu.scenes.map((scene, index) => (\n \n onSelect(rightGroupMenu.id, getParseSceneId(scene.id))\n }\n >\n

\n {scene.title}\n

\n
\n ))}\n \n )}\n \n
\n \n
\n \n \n ) : (\n
\n
\n
\n \n TP. Hồ Chí Minh:\n 30°C/87°F\n

\n {\n setOpenMobileMenu(!openMobileMenu);\n if (openMobileMenu) handleOpenMenuInMobile();\n }}\n >\n \n \n
\n
\n
\n
\n \n
\n
\n \n \n \n
\n {menuList.map((item) => (\n {\n if (\n hoverMenuItem !== null &&\n hoverMenuItem === item.order\n ) {\n setHoverMenuItem(null);\n } else {\n setHoverMenuItem(item.order);\n }\n // onSelect(item.scenes[0].groupId, item.scenes[0].id);\n }}\n >\n \n \n {item.name}\n

\n \n
\n\n \n {hoverScenes.map((scene) => (\n \n setOpenMobileMenu(true)}\n />\n \n ))}\n \n \n ))}\n \n\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n \n \n\n
\n

\n {currentMenu && currentMenu.name}\n

\n
\n \n
\n\n

\n {currentPano && currentPano.title}\n

\n
\n \n )}\n\n {!isMobile && (\n
\n

\n {currentMenu && currentMenu.name}\n

\n
\n \n
\n\n

\n {currentPano && currentPano.title}\n

\n
\n )}\n\n {isIpad && (\n
\n

\n TP. Hồ Chí Minh:\n 30°C/87°F\n

\n
\n )}\n \n );\n};\n\nexport default AACorporationLayout;\n","import React, { useEffect, useState } from 'react';\n\nimport './AquaModal.scss';\n\nexport default function AquaModal({ isOpen, iframeObject, handleClose }) {\n const [shouldRenderIframe, setShouldRenderIframe] = useState(false);\n const [isLoading, setIsLoading] = useState(true);\n\n useEffect(() => {\n let timer;\n if (isOpen) {\n timer = setTimeout(() => {\n setShouldRenderIframe(true);\n }, 3000);\n } else {\n setShouldRenderIframe(false);\n }\n\n return () => clearTimeout(timer);\n }, [isOpen]);\n\n useEffect(() => {\n if (shouldRenderIframe) {\n setIsLoading(false);\n }\n }, [shouldRenderIframe]);\n\n return (\n
\n
\n {isLoading &&
}\n {shouldRenderIframe && (\n
\n \n {\n handleClose();\n setIsLoading(true);\n }}\n >\n \n
\n
\n )}\n
\n \n );\n}\n","import React, { useState } from 'react';\nimport AquaModal from 'components/AquaModal';\nimport { AquaLocationIcon, AquaVideoIcon } from 'components/icons/AquaIcons';\nimport HoveringPlate from 'components/HoveringPlate';\n\nconst MAPIFRAME =\n 'https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d15676.26935678528!2d106.61836624145508!3d10.806154553909906!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x31752be27d8b4f4d%3A0x92dcba2950430867!2sHCMC%20University%20of%20Industry%20and%20Trade!5e0!3m2!1sen!2s!4v1715332984041!5m2!1sen!2s';\n\nconst YOUTUBEIFRAME =\n 'https://www.youtube.com/embed/f7dx1GgO7CI?si=UDpkw-aYukxDQXN3';\n\nexport default function AquaExtraIcons() {\n const [isOpen, setIsOpen] = useState(false);\n\n const [iframeObject, setIframeObject] = useState({});\n\n return (\n <>\n \n {\n setIsOpen(true);\n setIframeObject({ url: YOUTUBEIFRAME, type: 'youtube' });\n }}\n >\n \n \n \n\n \n {\n setIsOpen(true);\n setIframeObject({ url: MAPIFRAME, type: 'map' });\n }}\n >\n \n \n \n\n setIsOpen(false)}\n iframeObject={iframeObject}\n />\n \n );\n}\n","import React from 'react';\nimport {\n AudioIcon,\n ContactFormIcon,\n ExpandIcon,\n FloorMapIcon,\n HelpIcon,\n MapIcon,\n // ShareIcon,\n} from 'components/icons';\nimport configs from 'configs';\n// import { isMobile } from 'react-device-detect';\nimport { limitLetters } from 'utils/limitLetters';\n\n// import NotePlate from './NotePlate';\n\nimport './SchoolLayoutIcons.scss';\nimport {\n AquaAutoRotateIcon,\n AquaFullscreenIcon,\n AquaMapfloorplanIconV1,\n ShareIcon,\n} from 'components/icons/AquaIcons';\nimport AquaExtraIcons from './AquaExtraIcons';\nimport { isMobile } from 'react-device-detect';\nimport HoveringPlate from 'components/HoveringPlate';\n\nexport default function AquaLayoutIcons(props) {\n const {\n currentPano,\n color,\n toggleHelpButton,\n featuredMedia,\n isShowAudioIcon,\n canFullscreen,\n menuPosition,\n handleFullScreen,\n isShowMapFloorPlan,\n setIsActiveMap,\n isActiveMap,\n mapShowed,\n setOpenDropDown,\n openDropDown,\n handleSelectMap,\n scenes,\n floorMaps,\n switchMode,\n handleUpdateRoute,\n onSelect,\n isAquaStyle,\n isShowOnMap,\n shouldShowMapIcon,\n } = props;\n\n const handleShare = () => {\n const shareUrl =\n 'https://www.facebook.com/sharer/sharer.php?u=' +\n encodeURIComponent(window.location.href);\n\n window.open(shareUrl, '_blank');\n };\n\n return (\n \n {isShowMapFloorPlan && (\n <>\n \n setIsActiveMap(!isActiveMap)}\n >\n {/* */}\n \n \n \n\n \n {mapShowed && (\n <>\n {floorMaps?.length > 1 && !isAquaStyle && (\n
\n setOpenDropDown(!openDropDown)}\n >\n {limitLetters(mapShowed.image.name, 15)}\n \n {openDropDown && (\n \n
    \n {floorMaps?.map((item, index) => (\n handleSelectMap(item)}\n key={index}\n >\n {limitLetters(item.image.name, 10)}\n \n ))}\n
\n
\n )}\n \n \n \n \n \n )}\n
\n {mapShowed.image.name}\n {mapShowed.objects.map((viewpoint) => {\n const currentPoint = viewpoint.id === currentPano._id;\n const [left, top] = viewpoint.coordinates;\n const leftInPercent = left * 100;\n const topInPercent = top * 100;\n const currentScene =\n scenes.find((s) => s._id === viewpoint.id) || {};\n\n return (\n \n onSelect(currentScene.groupId, currentScene.id)\n }\n >\n \n {/*

{currentScene.title}

*/}\n\n
\n
\n
\n );\n })}\n \n\n {isAquaStyle && (\n setIsActiveMap(true)}\n >\n \n \n )}\n \n )}\n \n \n )}\n\n {isAquaStyle && }\n\n {shouldShowMapIcon && isAquaStyle && (\n handleUpdateRoute(configs.mapRoute)}\n >\n \n \n )}\n\n {!isMobile && (\n \n switchMode()}\n >\n \n \n \n )}\n\n {canFullscreen() && menuPosition !== 'bottom' && (\n \n \n \n \n \n )}\n\n \n \n \n \n \n\n {featuredMedia.map && (\n handleUpdateRoute(featuredMedia.map.id)}\n >\n \n \n )}\n\n {featuredMedia.contact && (\n handleUpdateRoute(featuredMedia.contact.id)}\n >\n \n \n )}\n {isShowAudioIcon && (\n \n )}\n\n \n \n \n \n \n\n {/* {\n toggleRotate();\n }}\n >\n \n */}\n \n );\n}\n","import React from 'react';\n\nexport const HomeIcon = () => {\n return (\n \n \n \n );\n};\n","import React, { useMemo } from 'react';\nimport {\n AudioIcon,\n AutoRotateIcon,\n ContactFormIcon,\n // ExpandIcon,\n // FloorMapIcon,\n MapLineIcon,\n // FullScreenIcon,\n // HelpIcon,\n MapIcon,\n // ShareIcon,\n} from 'components/icons';\nimport configs from 'configs';\n// import { isMobile } from 'react-device-detect';\n\n// import NotePlate from './NotePlate';\n\nimport './SchoolLayoutIcons.scss';\n// import {\n// AquaAutoRotateIcon,\n// AquaFullscreenIcon,\n// AquaMapfloorplanIconV1,\n// PrimeMapFloorPlanIcon,\n// ShareIcon,\n// } from 'components/icons/AquaIcons';\n// import AquaExtraIcons from './AquaExtraIcons';\n// import { isMobile } from 'react-device-detect';\nimport HoveringPlate from 'components/HoveringPlate';\nimport { HomeIcon } from 'components/icons/HomeIcon';\n\nexport default function PrimeLayoutIcons(props) {\n const {\n currentPano,\n color,\n // toggleHelpButton,\n featuredMedia,\n isShowAudioIcon,\n // canFullscreen,\n // menuPosition,\n // handleFullScreen,\n isShowMapFloorPlan,\n setIsActiveMap,\n isActiveMap,\n mapShowed,\n // setOpenDropDown,\n // openDropDown,\n // handleSelectMap,\n scenes,\n // floorMaps,\n switchMode,\n handleUpdateRoute,\n onSelect,\n isPrimeStyle,\n isShowOnMap,\n shouldShowMapIcon,\n isAutoPlay,\n // fullScreen,\n setIsOpenMapfloorplanModal,\n } = props;\n\n // const handleGoHome = () => {\n // window.location.href = 'https://khaihoanprime.vn/';\n // };\n\n const isIndoorMap = useMemo(() => {\n return !isNaN(currentPano?.id);\n }, [currentPano]);\n\n // const isMobile = useMemo(() => window.innerWidth <= 767, []);\n\n const getViewPointTitle = (title) => {\n if (isNaN(title)) {\n return title;\n }\n return '';\n };\n\n return (\n \n {isShowMapFloorPlan && (\n <>\n {/* */}\n {\n setIsActiveMap(!isActiveMap);\n setIsOpenMapfloorplanModal && setIsOpenMapfloorplanModal();\n }}\n >\n {/* */}\n \n \n {/* */}\n\n \n {mapShowed && (\n <>\n
\n setIsActiveMap(false)}\n >\n \n
\n {mapShowed.image.name}\n {mapShowed.objects.map((viewpoint) => {\n const currentPoint = viewpoint.id === currentPano._id;\n const [left, top] = viewpoint.coordinates;\n const leftInPercent = left * 100;\n const topInPercent = top * 100;\n const currentScene =\n scenes.find((s) => s._id === viewpoint.id) || {};\n\n return (\n {\n if (\n currentScene.id.indexOf('tong-the-toan-canh-02') !==\n -1\n ) {\n onSelect(\n currentScene.groupId,\n currentScene.id,\n true,\n true\n );\n } else {\n onSelect(currentScene.groupId, currentScene.id);\n }\n }}\n >\n \n
\n \n \n );\n })}\n \n\n {/* {isPrimeStyle && (\n setIsActiveMap(true)}\n >\n \n \n )} */}\n \n )}\n \n \n )}\n\n {/* {isPrimeStyle && } */}\n\n {shouldShowMapIcon && isPrimeStyle && (\n handleUpdateRoute(configs.mapRoute)}\n >\n \n \n )}\n\n {isShowAudioIcon && (\n \n )}\n\n {\n switchMode()}\n >\n \n \n }\n\n {/* {canFullscreen() && menuPosition !== 'bottom' && (\n \n \n \n )} */}\n\n onSelect('welcome', 'tong-the-toan-canh-01')}\n >\n \n \n\n {/* \n \n \n \n \n */}\n\n {featuredMedia.map && (\n handleUpdateRoute(featuredMedia.map.id)}\n >\n \n \n )}\n\n {featuredMedia.contact && (\n handleUpdateRoute(featuredMedia.contact.id)}\n >\n \n \n )}\n\n {/* \n \n \n \n */}\n\n {/* {\n toggleRotate();\n }}\n >\n \n */}\n \n );\n}\n","export default __webpack_public_path__ + \"static/media/phone-icon.1988ecd0.png\";","export const sceneList = [\n 'topview',\n 'topview-tang-07',\n 'topview-tang-15',\n 'topview-tang-22',\n 'topview-tang-27',\n];\n\nexport const mikaSceneList = [\n 'mika-topview',\n 'mika-topview-tang-07',\n 'mika-topview-tang-15',\n // 'mika-topview-tang-22',\n 'mika-topview-tang-25',\n 'mika-topview-tang-27',\n];\n\nexport const mikaTopMenu = [\n {\n id: 'mika-topview-tang-07',\n title: 'Mika Topview Tầng 06',\n },\n {\n id: 'mika-topview-tang-15',\n title: 'Mika Topview Tầng 12',\n },\n // {\n // id: 'mika-topview-tang-22',\n // title: 'Mika Topview Tầng 18',\n // },\n {\n id: 'mika-topview-tang-25',\n title: 'Mika Topview Tầng 18',\n },\n {\n id: 'mika-topview-tang-27',\n title: 'Mika Topview Tầng 24',\n },\n];\n","import React, { useMemo } from 'react';\n\nimport './PreviewSceneImage.scss';\n\nexport default function PreviewSceneImage({ subTopviewScenes, indexHover }) {\n const isMobile = useMemo(() => window.innerWidth < 1023, []);\n return (\n
\n {!isMobile &&\n subTopviewScenes &&\n subTopviewScenes.map((scene, index) => (\n \n {scene.title}\n
\n

{scene.title}

\n
\n
\n ))}\n \n );\n}\n","import React, { useMemo, useState } from 'react';\n\nimport './TopviewSubmenu.scss';\nimport { mikaSceneList, sceneList } from './scene.helper';\nimport PreviewSceneImage from './PreviewSceneImage';\n\nexport default function TopviewSubmenu({ scenes, currentPano, onSelect , sceneDetail}) {\n // const isMobile = useMemo(() => window.innerWidth < 768, []);\n const [hover, setHover] = useState(null);\n const subTopviewScenes = useMemo(\n () =>\n scenes\n .filter(\n (scene) => sceneDetail.id === 'topview' ? (scene.id !== 'topview' && sceneList.includes(scene.id)) : (scene.id !== 'mika-topview' && mikaSceneList.includes(scene.id)) \n )\n .sort((a, b) => {\n const aTitle = typeof a === 'object' ? a.title : a;\n const bTitle = typeof b === 'object' ? b.title : b;\n return aTitle.localeCompare(bTitle);\n }),\n [sceneDetail.id, scenes]\n );\n\n return (\n
e.stopPropagation()}>\n {subTopviewScenes.length &&\n subTopviewScenes.map((scene, index) => (\n setHover(index)}\n onMouseLeave={() => setHover(null)}\n onClick={() => {\n onSelect(scene.groupId, scene.id);\n // setOpenMobileMenu && setOpenMobileMenu();\n }}\n >\n \n \n {scene.title}\n

\n\n
\n \n
\n
\n ))}\n \n );\n}\n","import React from 'react';\n\nimport './style.scss';\n\nexport default function ScaleArrow({ fontSize, color, rotate }) {\n return (\n \n ❮\n \n );\n}\n","import React, { useMemo, useState } from 'react';\nimport TopviewSubmenu from './TopviewSubmenu';\nimport ScaleArrow from 'components/ScaleArrow';\n\nexport default function AquaMenuItem({\n scenes,\n scene,\n onSelect,\n currentPano,\n setOpenMobileMenu,\n setIsOpenTopviewSubmenu,\n setIsOpenMikaTopviewSubmenu,\n isOpenMikaTopviewSubmenu,\n isOpenTopviewSubmenu,\n isTopviewSub,\n}) {\n const [hover, setHover] = useState(null);\n\n const [topViewHover, setTopViewHover] = useState(false);\n\n const hoverImage = useMemo(\n () => scenes.find((item) => item._id === scene._id),\n [scenes, scene]\n );\n\n const isMobile = useMemo(() => window.innerWidth < 1023, []);\n\n return (\n {\n setHover(scene.order);\n (scene.id === 'topview' || scene.id === 'mika-topview') &&\n setTopViewHover(true);\n }}\n onMouseLeave={() => {\n setHover(null);\n setTopViewHover(false);\n }}\n onClick={(e) => {\n e.stopPropagation();\n\n if (\n isMobile &&\n (scene.id === 'topview' || scene.id === 'mika-topview')\n ) {\n if (scene.id === 'topview') {\n setIsOpenTopviewSubmenu(!isOpenTopviewSubmenu);\n setIsOpenMikaTopviewSubmenu(false);\n }\n\n if (scene.id === 'mika-topview') {\n setIsOpenMikaTopviewSubmenu(!isOpenMikaTopviewSubmenu);\n setIsOpenTopviewSubmenu(false);\n }\n } else {\n if (scene.id === 'topview' || scene.id === 'mika-topview') {\n scene.id === 'topview' &&\n onSelect(scene.groupId, 'topview-tang-27');\n\n scene.id === 'mika-topview' &&\n onSelect(scene.groupId, 'mika-topview-tang-27');\n } else {\n onSelect(scene.groupId || 'welcome', scene.id);\n }\n\n if (isMobile) {\n isOpenTopviewSubmenu && setIsOpenTopviewSubmenu(false);\n isOpenMikaTopviewSubmenu && setIsOpenMikaTopviewSubmenu(false);\n }\n\n setOpenMobileMenu && setOpenMobileMenu();\n }\n }}\n >\n {!isMobile && (\n <>\n \n {scene.title}\n

\n {topViewHover && !isMobile && (\n \n )}\n\n {(scene.id === 'topview' || scene.id === 'mika-topview') && (\n \n )}\n \n )}\n\n {isMobile && (\n
\n \n {scene.id === 'topview' &&\n (isOpenTopviewSubmenu ? (\n \n ) : (\n \n ))}\n\n {scene.id === 'mika-topview' &&\n (isOpenMikaTopviewSubmenu ? (\n \n ) : (\n \n ))}\n\n {isTopviewSub && }\n {scene.title}\n

\n\n {scene.id === 'topview' && (\n \n )}\n\n {scene.id === 'mika-topview' && (\n \n )}\n
\n )}\n\n {!isMobile && scene.id !== 'topview' && (\n \n {hoverImage.title}\n
\n

{scene.title}

\n
\n \n )}\n \n );\n}\n","import React from 'react';\n\nexport default function SunIcon() {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n}\n","import React from 'react';\n\nexport default function MoonIcon() {\n return (\n \n \n \n \n \n \n \n );\n}\n","import React from 'react';\n\nimport './style.scss';\nimport SunIcon from './SunIcon';\nimport MoonIcon from './MoonIcon';\n\nexport default function DayTimeSwitch({ daylight, setDaylight }) {\n return (\n \n
\n {daylight ? : }\n
\n
\n {daylight ? 'DAY' : 'NIGHT'}\n
\n \n );\n}\n","export const sceneDayTime = {\n tongThe01: 'tong-the-toan-canh-01',\n tongThe02: 'tong-the-toan-canh-02',\n hoBoi: 'ho-boi',\n congVao: 'cong-vao',\n bbq: 'bbq-riverside',\n quangTruong: 'quang-truong',\n suKien: 'su-kien',\n};\n\nexport const sceneNightTime = {\n tongThe01: 'tong-the-toan-canh-01---ban-o8em',\n tongThe02: 'tong-the-toan-canh-02---ban-wcem',\n hoBoi: 'ho-boi---ban-3fem',\n congVao: 'cong-vao-ban-8hem',\n bbq: 'bbq-riverside-ban-kgem',\n quangTruong: 'quang-truong-ban-q0em',\n suKien: 'su-kien-ban-2rem',\n};\n\nexport const sceneDay2Night = {\n [sceneDayTime.tongThe01]: sceneNightTime.tongThe01,\n [sceneDayTime.tongThe02]: sceneNightTime.tongThe02,\n [sceneDayTime.hoBoi]: sceneNightTime.hoBoi,\n [sceneDayTime.congVao]: sceneNightTime.congVao,\n [sceneDayTime.bbq]: sceneNightTime.bbq,\n [sceneDayTime.quangTruong]: sceneNightTime.quangTruong,\n [sceneDayTime.suKien]: sceneNightTime.suKien,\n};\n\nexport const sceneNight2Day = {\n [sceneNightTime.tongThe01]: sceneDayTime.tongThe01,\n [sceneNightTime.tongThe02]: sceneDayTime.tongThe02,\n [sceneNightTime.hoBoi]: sceneDayTime.hoBoi,\n [sceneNightTime.congVao]: sceneDayTime.congVao,\n [sceneNightTime.bbq]: sceneDayTime.bbq,\n [sceneNightTime.quangTruong]: sceneDayTime.quangTruong,\n [sceneNightTime.suKien]: sceneDayTime.suKien,\n};\n\nconst objHasValue = (obj, val) => {\n return Object.values(obj).indexOf(val) !== -1;\n};\n\nexport const isDayScene = (sceneId) => {\n return objHasValue(sceneDayTime, sceneId);\n};\n\nexport const isNightScene = (sceneId) => {\n return objHasValue(sceneNightTime, sceneId);\n};\n\nexport const getOppositeScene = (sceneId) => {\n if (isDayScene(sceneId)) {\n return sceneDay2Night[sceneId];\n } else if (isNightScene(sceneId)) {\n return sceneNight2Day[sceneId];\n } else {\n return null;\n }\n};\n\nexport const sceneDayNightList = [\n ...Object.values(sceneDayTime),\n ...Object.values(sceneNightTime),\n];\n\nexport const isDayOrNight = (sceneId) => {\n return sceneDayNightList.indexOf(sceneId) !== -1;\n};\n","import React, { useCallback, useMemo } from 'react';\nimport DayTimeSwitch from 'components/DayTimeSwitch';\nimport { isDayOrNight, getOppositeScene } from './dayNight.const';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { setDateLight } from 'store/actions';\n\nexport default function CheckingSwitchDayTime({ currentPano, onSelect }) {\n const dateLight = useSelector((state) => state.dateLight);\n const dispatch = useDispatch();\n\n const toggleDateLight = useCallback(() => {\n const opp = getOppositeScene(currentPano?.id);\n if (opp) {\n dispatch(setDateLight(!dateLight));\n onSelect('welcome', opp, true);\n }\n }, [dateLight, onSelect, dispatch, currentPano]);\n\n const isVisibleDayNightControl = useMemo(\n () => isDayOrNight(currentPano?.id),\n [currentPano]\n );\n\n return (\n <>\n {isVisibleDayNightControl && (\n \n )}\n \n );\n}\n","import React, { useCallback, useMemo } from 'react';\nimport './LevelSwitch.scss';\n\nimport { sceneList, mikaSceneList } from './scene.helper';\n\nexport default function LevelSwitch({ currentPano, onSelect }) {\n const enable = useMemo(() => {\n if (currentPano?.id && sceneList.indexOf(currentPano?.id) !== -1) {\n return true;\n }\n return false;\n }, [currentPano]);\n\n const mikaEnable = useMemo(() => {\n if (currentPano?.id && mikaSceneList.indexOf(currentPano?.id) !== -1) {\n return true;\n }\n return false;\n }, [currentPano]);\n\n const isLevel = useCallback(\n (lvl) => {\n if (enable && currentPano?.id === `topview-tang-${lvl}`) {\n return true;\n }\n\n if (mikaEnable && currentPano?.id === `mika-topview-tang-${lvl}`) {\n return true;\n }\n return false;\n },\n [currentPano, enable, mikaEnable]\n );\n\n const goToLevel = useCallback(\n (lvl) => {\n if (enable && currentPano?.id !== `topview-tang-${lvl}`) {\n onSelect('welcome', `topview-tang-${lvl}`);\n }\n\n if (mikaEnable && currentPano?.id !== `topview-tang-${lvl}`) {\n onSelect('welcome', `mika-topview-tang-${lvl}`);\n }\n },\n [currentPano, onSelect, enable, mikaEnable]\n );\n\n return (\n <>\n \n
\n
TẦNG
\n goToLevel('07')}\n >\n 07\n
\n goToLevel('15')}\n >\n 15\n \n goToLevel('22')}\n >\n 22\n \n goToLevel('27')}\n >\n 27\n \n \n \n\n \n
\n
TẦNG
\n goToLevel('07')}\n >\n 06\n
\n goToLevel('15')}\n >\n 12\n \n {/* goToLevel('22')}\n >\n 18\n */}\n goToLevel('25')}\n >\n 18\n \n goToLevel('27')}\n >\n 24\n \n \n \n \n );\n}\n","export default __webpack_public_path__ + \"static/media/laban-400px.2c5888e4.png\";","export const STEP_WIDTH = 100;\nexport const CURSOR_WIDTH = 100;\nexport const BOX_WIDTH = 1000;\nexport const THRESHOLD_2D_DISTANCE = 100;\n\n// This is the factor to determine the coordinates of the footsteps inside the transparent box\nexport const TRANSFORM_RATIO =\n (BOX_WIDTH - STEP_WIDTH * Math.sqrt(2)) / BOX_WIDTH;\n\nexport const INITIAL_POSITION_CURSOR = [\n 0,\n -(BOX_WIDTH - STEP_WIDTH * Math.sqrt(2)),\n 0,\n];\nexport const INITIAL_ROTATION_CURSOR = [-Math.PI / 2, 0, 0];\nexport const TOP_Y = 0;\nexport const AXIS_LIMIT = BOX_WIDTH / 2;\nexport const DEFAULT_ROTATION_X_ANGLE = -Math.PI / 2;\nexport const SCALE = 1.2;\n","import REGEX from 'consts/regex.const';\nimport { Vector3 } from 'three';\nimport { BOX_WIDTH } from './constant';\n\nexport function ToVector(x, y, z) {\n return { x, y, z };\n}\n\nexport function getCrossProductTwoVectors(vec1, vec2) {\n return {\n x: vec1.y * vec2.z - vec1.z * vec2.y,\n y: vec1.z * vec2.x - vec1.x * vec2.z,\n z: vec1.x * vec2.y - vec1.y * vec2.x,\n };\n}\n\nexport function cosTwoVectors(a, b) {\n return (\n (a.x * b.x + a.y * b.y + a.z * b.z) /\n (Math.sqrt(Math.pow(a.x, 2) + Math.pow(a.y, 2) + Math.pow(a.z, 2)) *\n Math.sqrt(Math.pow(b.x, 2) + Math.pow(b.y, 2) + Math.pow(b.z, 2)))\n );\n}\n\nexport function calcAngleBetweenVectors(a, b) {\n const cosAngle = cosTwoVectors(a, b);\n const angle = Math.acos(cosAngle);\n return angle;\n}\n\nexport function calcRotationY(vec1, vec2) {\n const crossProduct = getCrossProductTwoVectors(vec1, vec2);\n\n // Use cross product to determine rotation direction\n if (crossProduct.y < 0) {\n return Math.acos(cosTwoVectors(vec1, vec2));\n } else if (crossProduct.y > 0) {\n return -Math.acos(cosTwoVectors(vec1, vec2));\n }\n\n return 0;\n}\n\nexport function calcRotationDegree(vec1, vec2) {\n const rad = calcRotationY(vec1, vec2);\n return (rad * 180) / Math.PI;\n}\n\nexport function calcCamRotationY(camPosition1, camPosition2) {\n const currentCam = {\n x: camPosition1[0],\n y: 0,\n z: camPosition1[2],\n };\n\n const targetCam = {\n x: camPosition2[0],\n y: 0,\n z: camPosition2[2],\n };\n\n return calcRotationY(currentCam, targetCam);\n}\n\nexport function calcFootRotationY([x, , z]) {\n const projectOnXZ = { x, y: 0, z };\n const unitVectorZAxis = { x: 0, y: 0, z: 1 };\n const angle = calcAngleBetweenVectors(projectOnXZ, unitVectorZAxis);\n let angleRotate = 0;\n if (x < 0) {\n angleRotate = -angle + Math.PI;\n }\n if (x > 0) {\n angleRotate = angle + Math.PI;\n }\n if (x === 0 && z > 0) {\n angleRotate = Math.PI;\n }\n\n return angleRotate;\n}\n\nexport const calcScaleForProjection = (yFootPos) => {\n const topScale = 0,\n bottomScale = 1.25;\n const scaleUnit = (topScale - bottomScale) / 100;\n const halfBox = BOX_WIDTH / 2;\n const bottomY = -halfBox,\n topY = 0;\n const percentY = ((yFootPos + halfBox) / (topY - bottomY)) * 100;\n const currentScale = bottomScale + percentY * scaleUnit;\n return { scaleX: currentScale, scaleY: currentScale };\n};\n\nexport const calcDisTwoPoints = (point1, point2) => {\n const dx = point1[0] - point2[0];\n const dy = point1[1] - point2[1];\n const dz = point1[2] - point2[2];\n return Math.sqrt(dx * dx + dy * dy + dz * dz);\n};\n\nexport const getCenterScreen = () => ({\n x: window.innerWidth / 2,\n y: window.innerHeight / 2,\n});\n\nexport const measureElement = (node, dimension, setValue) => {\n if (node !== null) {\n const rect = node.getBoundingClientRect();\n let value = null;\n if (dimension === 'width') {\n value = rect.width;\n } else if (dimension === 'height') {\n value = rect.height;\n }\n setValue(value);\n }\n};\n\nexport const getImageRatio = (imgUrl) => {\n return new Promise((resolve, reject) => {\n const img = new Image();\n img.src = imgUrl;\n\n img.onload = () => {\n const width = img.width;\n const height = img.height;\n const ratio = width / height;\n resolve(ratio);\n };\n\n img.onerror = () => {\n reject(new Error('Unable to load image.'));\n };\n });\n};\n\nexport const parseConfigsData = (data) => {\n if (!data) return;\n return JSON.parse(data);\n};\n\nexport const checkVideoUrl = (videoUrl) => {\n switch (true) {\n case REGEX.VIMEO_URL.test(videoUrl):\n return 'Vimeo';\n case REGEX.YOUTUBE_URL.test(videoUrl):\n return 'Youtube';\n default:\n return '';\n }\n};\n\nexport const getYoutubeVideoId = (url) => {\n const match = url.match(REGEX.EXTRACT_YOUTUBE_ID);\n return match && match[7].length === 11 ? match[7] : false;\n};\n\nexport const getVimeoId = (url) => {\n const match = url.match(REGEX.VIMEO_URL);\n return match[1] ?? false;\n};\n\nexport const formatScenes = (media, scenes) => {\n const mapFloorPlanItems = media.filter(\n (item) => item.type === 'MapFloorPlan'\n );\n const allObjects = mapFloorPlanItems.flatMap((item) =>\n item.mapFloorPlan.flatMap((floorPlan) =>\n floorPlan.objects.map((object) => ({ ...object, parentId: item.id }))\n )\n );\n\n const newScenes = scenes.map((itemB) => {\n const matchingObjects = allObjects.filter(\n (object) => object.id === itemB._id\n );\n\n const mapFloorPlans = mapFloorPlanItems.filter((map) =>\n matchingObjects.some((object) => map.id === object.parentId)\n );\n\n const isHaveMap = itemB.hotspots.some((map) =>\n mapFloorPlans.some((floorPlan) => map.id === floorPlan.id)\n );\n\n if (matchingObjects.length) {\n return {\n ...itemB,\n isShowMapFloorPlan: true,\n hotspots: isHaveMap\n ? itemB.hotspots\n : [...itemB.hotspots, ...mapFloorPlans],\n };\n } else {\n return { ...itemB, isShowMapFloorPlan: false };\n }\n });\n return newScenes;\n};\n\nexport const updateVector3OrPointByRotationXZ = (\n pointArr,\n rad,\n isVec3 = true\n) => {\n const [x, y, z] = pointArr;\n const x_new = x * Math.cos(rad || 0) + z * Math.sin(rad || 0);\n const z_new = z * Math.cos(rad || 0) - x * Math.sin(rad || 0);\n if (isVec3) {\n return new Vector3(x_new, 0, z_new);\n } else {\n return [x_new, y, z_new];\n }\n};\n\nexport function getDotProductTwoVectors(vec1, vec2) {\n return vec1.x * vec2.x + vec1.y * vec2.y + vec1.z * vec2.z;\n}\n\nexport function calRotationYDefaultAndCenterLookAt(\n defaultOrientation,\n lookAtPoint\n) {\n const vec1 = { x: -defaultOrientation[0], y: 0, z: -defaultOrientation[2] };\n const vec2 = { x: -lookAtPoint[0], y: 0, z: -lookAtPoint[2] };\n const angle = calcAngleBetweenVectors(vec1, vec2);\n const crossProduct = getCrossProductTwoVectors(vec1, vec2);\n const dotProduct = getDotProductTwoVectors(vec1, vec2);\n let angleInClockwise;\n if (crossProduct.y < 0) {\n angleInClockwise = angle;\n } else if (crossProduct.y > 0) {\n angleInClockwise = 2 * Math.PI - angle;\n } else if (crossProduct.y === 0) {\n angleInClockwise = dotProduct > 0 ? 0 : Math.PI;\n }\n return angleInClockwise;\n}\n","import {\n calRotationYDefaultAndCenterLookAt,\n updateVector3OrPointByRotationXZ,\n} from 'containers/world/utils';\nimport React, { useEffect, useMemo } from 'react';\n\nexport default function RotationHandler({\n cameraParams,\n currentPano,\n sceneRotation,\n setRotationY,\n}) {\n const { defaultOrientation } = currentPano;\n\n const defaultOrientationAdj = useMemo(() => {\n if (currentPano && sceneRotation?.prevRot) {\n return updateVector3OrPointByRotationXZ(\n currentPano?.defaultOrientation,\n sceneRotation?.prevRot?.rad || 0,\n false\n );\n }\n return defaultOrientation;\n }, [currentPano, defaultOrientation, sceneRotation]);\n\n const { lookAtPoint } = useMemo(() => {\n if (cameraParams?.lookAtPoint && cameraParams?.fov) {\n return { lookAtPoint: cameraParams.lookAtPoint, fov: cameraParams.fov };\n }\n return { lookAtPoint: defaultOrientationAdj, fov: 60 };\n }, [cameraParams, defaultOrientationAdj]);\n\n useEffect(() => {\n const rotationY = calRotationYDefaultAndCenterLookAt(\n defaultOrientation,\n lookAtPoint\n );\n setRotationY(rotationY);\n }, [defaultOrientation, lookAtPoint, setRotationY]);\n\n return <>;\n}\n","import React, { useEffect, useMemo, useRef, useState } from 'react';\nimport compassImg from './laban-400px.png';\nimport compassArrowImg from './arrow-laban.png';\nimport RotationHandler from './RotationHandler';\n\nimport './style.scss';\n\nconst radiansToDegrees = (radians) => {\n return Math.round(radians * (180 / Math.PI));\n};\n\nconst Compass = ({ deg }) => {\n const compassRef = useRef(null);\n useEffect(() => {\n // nếu deg null thì ko xoay\n compassRef.current.style.transform = `rotate(${deg || 0}deg)`;\n }, [deg, compassRef]);\n\n return (\n
\n
\n \"compass\"\n
\n
\n \"compass-arrow\"\n
\n
\n );\n};\n\nconst COMPASS_DATA = {\n 'tong-the-toan-canh-01': {},\n 'tong-the-toan-canh-01---ban-o8em': {},\n 'tong-the-toan-canh-02': {},\n 'tong-the-toan-canh-02---ban-wcem': {},\n 'topview-tang-27': {},\n 'topview-tang-22': {},\n 'topview-tang-15': {},\n 'topview-tang-07': {},\n\n 'mika-topview-tang-27': {},\n 'mika-topview-tang-22': {},\n 'mika-topview-tang-15': {},\n 'mika-topview-tang-07': {},\n};\n\nconst COMPASS_DEGREE_DATA = {\n 'tong-the-toan-canh-01': 45,\n 'tong-the-toan-canh-01---ban-o8em': 45,\n 'tong-the-toan-canh-02': -45,\n 'tong-the-toan-canh-02---ban-wcem': -125,\n 'topview-tang-27': -18,\n 'topview-tang-22': -18,\n 'topview-tang-15': -18,\n 'topview-tang-07': -18,\n 'mika-topview-tang-27': -18,\n 'mika-topview-tang-22': -18,\n 'mika-topview-tang-15': -18,\n 'mika-topview-tang-07': -18,\n};\n\nconst CompassContainer = ({\n currentPano,\n cameraParams,\n sceneRotation,\n ...props\n}) => {\n const [rotationY, setRotationY] = useState(0);\n const isVisible = useMemo(() => {\n if (currentPano?.id && COMPASS_DATA[currentPano?.id]) {\n return true;\n }\n return false;\n }, [currentPano]);\n\n const defaultDegree = useMemo(() => {\n if (currentPano?.id && COMPASS_DEGREE_DATA[currentPano?.id]) {\n return COMPASS_DEGREE_DATA[currentPano?.id];\n }\n return 0;\n }, [currentPano]);\n\n const compassDeg =\n useMemo(() => radiansToDegrees(rotationY), [rotationY]) || 0;\n\n if (!isVisible) return null;\n\n return (\n <>\n {currentPano && (\n \n )}\n \n \n );\n};\n\nexport default CompassContainer;\n","export default \"data:image/png;base64,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\"","/* eslint-disable */\nimport React, { useEffect, useMemo, useState } from 'react';\n// import PerfectScrollbar from 'react-perfect-scrollbar';\n// import { useSelector } from 'react-redux';\n// import NotePlate from 'components/MenuForDesktop/NotePlate';\n\nimport PHONELOGO from './phone-icon.png';\nimport KhpLogo from '../../assets/images/logo/logo-khaihoanprime.png';\n\nimport AquaMenuItem from './AquaMenuItem';\nimport {\n AquaMapfloorplanIconV2,\n // AquaRightArrow,\n // AquaGreenParkIcon,\n // AquaHouse,\n // AquaVilla,\n // AquaSceneMenuIcon,\n // AquaLargeMapfloorplanIcon,\n PrimeApartmentIcon,\n PrimeOfficeBuildingIcon,\n} from 'components/icons/AquaIcons';\n\nimport 'react-perfect-scrollbar/dist/css/styles.css';\nimport './style.scss';\n// import HoveringPlate from 'components/HoveringPlate';\nimport CheckingSwitchDayTime from './CheckingSwitchDayTime';\nimport LevelSwitch from './LevelSwitch';\n\nimport { mikaSceneList, mikaTopMenu, sceneList } from './scene.helper';\nimport ScaleArrow from 'components/ScaleArrow';\nimport Compass from 'components/Compass';\n\nconst Icons = ({ iconOrder, isActive }) => {\n const iconComponents = [\n ,\n ,\n ,\n ];\n\n return <>{iconComponents[iconOrder]};\n};\n\nconst KhaiHoanPrimeLayout = ({\n desktop,\n mobile,\n scenes,\n // groups,\n onSelect,\n openMenu,\n handleOpenMenu,\n // activeColor,\n currentPano,\n menuList,\n // isSchoolLayout,\n tourLogo,\n isPrimeStyle,\n cameraParams,\n sceneRotation,\n}) => {\n // const [selectedCard, setSelectedCard] = useState(null);\n const [hoverMenuItem, setHoverMenuItem] = useState(null);\n const [hoverScenes, setHoverScenes] = useState([]);\n const [openMobileMenu, setOpenMobileMenu] = useState(false);\n const [isOpenTopviewSubmenu, setIsOpenTopviewSubmenu] = useState(false);\n const [isOpenMikaTopviewSubmenu, setIsOpenMikaTopviewSubmenu] =\n useState(false);\n // const [openRightMenu, setOpenRightMenu] = useState(false);\n\n const under1024 = useMemo(() => window.innerWidth < 1024, []);\n const isMobile = useMemo(() => window.innerWidth <= 767, []);\n\n // const { hasLogo } = useSelector((state) => ({\n // logoURL: state.logoURL,\n // hasLogo: state.hasLogo,\n // }));\n\n // const enableBranding = useSelector(\n // ({ subscriptionPlan }) => subscriptionPlan.enableBranding\n // );\n\n const menuScenes = useMemo(() => {\n return menuList.flatMap((item) => item.scenes);\n }, [menuList]);\n\n useEffect(() => {\n if (hoverMenuItem === null) {\n setHoverScenes([]);\n return;\n }\n\n const menu = menuList[hoverMenuItem];\n\n if (menu.order === 0) {\n // menu đầu chỉ lấy 4 sub items\n setHoverScenes([\n ...menu.scenes.slice(0, 4).filter((scene) => scene.id !== 'topview'),\n ]);\n return;\n }\n setHoverScenes([...menu.scenes.slice(0, 100)]);\n }, [hoverMenuItem, menuList, menuScenes]);\n\n const topviewSubmenu = useMemo(() => menuList[0].scenes.slice(4), [menuList]);\n\n const isTopViewScene = useMemo(\n () => sceneList.includes(currentPano?.id),\n [currentPano?.id]\n );\n\n const isMikaTopViewScene = useMemo(\n () => mikaSceneList.includes(currentPano?.id),\n [currentPano?.id]\n );\n\n return (\n <>\n \n\n \n\n \n\n \n\n {!under1024 ? (\n
\n \n\n \n \n
\n \"tour-logo\"\n
\n
\n\n \n
\n {menuList.map((item) => (\n setHoverMenuItem(item.order)}\n onMouseLeave={() => setHoverMenuItem(null)}\n >\n \n onSelect(item.scenes[0].groupId, item.scenes[0].id)\n }\n >\n \n {item.name}\n

\n \n
\n\n \n\n {hoverScenes?.length > 1 && (\n \n {hoverScenes.map((scene) => (\n \n \n \n ))}\n
\n )}\n \n ))}\n \n\n
\n
\n \n \n \n\n \n \n \n\n \n \n \n {/* \n \n */}\n
\n
\n\n \n \n\n \n \n
\n
\n
\n
\n
\n \n \n\n {!openMenu && (\n
\n

\n {currentPano?.title == +currentPano?.title\n ? 'CĂN HỘ MẪU'\n : currentPano?.title}\n

\n
\n )}\n\n
\n

By 2FVISUAL 2024

\n
\n \n \n ) : (\n
\n \n {tourLogo && (\n \n )}\n \n
\n
\n By 2FVISUAL 2024\n
\n {\n setOpenMobileMenu(!openMobileMenu);\n handleOpenMenu();\n }}\n >\n \n \n
\n
\n
\n
\n \n
\n\n
\n \n isMobile &&\n isTopViewScene &&\n onSelect('welcome', 'topview-tang-27')\n }\n >\n {currentPano?.title == +currentPano?.title\n ? 'CĂN HỘ MẪU'\n : isMobile && isTopViewScene\n ? 'TOPVIEW'\n : isMobile && isMikaTopViewScene\n ? 'MIKA TOPVIEW'\n : currentPano?.title}\n

\n
\n\n
\n \n \n\n \n
\n {menuList.map((item) => (\n {\n if (\n hoverMenuItem !== null &&\n hoverMenuItem === item.order\n ) {\n setHoverMenuItem(null);\n } else {\n if (item.scenes.length > 1) {\n setHoverMenuItem(item.order);\n if (item.order !== 0) {\n setIsOpenTopviewSubmenu(false);\n setIsOpenMikaTopviewSubmenu(false);\n }\n } else if (item.scenes.length === 1) {\n onSelect(item.scenes[0].groupId, item.scenes[0].id);\n setOpenMobileMenu(false);\n }\n }\n }}\n >\n \n
\n \n {item.name}\n

\n \n
\n \n
\n\n \n {hoverScenes.map((scene) => {\n if (scene.id === 'mika-topview') return null;\n return (\n \n setOpenMobileMenu(false)}\n isOpenTopviewSubmenu={isOpenTopviewSubmenu}\n setIsOpenTopviewSubmenu={setIsOpenTopviewSubmenu}\n isOpenMikaTopviewSubmenu={\n isOpenMikaTopviewSubmenu\n }\n setIsOpenMikaTopviewSubmenu={\n setIsOpenMikaTopviewSubmenu\n }\n />\n \n );\n })}\n\n {isOpenTopviewSubmenu &&\n topviewSubmenu.map((scene) => (\n \n setOpenMobileMenu(false)}\n isOpenTopviewSubmenu={isOpenTopviewSubmenu}\n setIsOpenTopviewSubmenu={setIsOpenTopviewSubmenu}\n isTopviewSub={true}\n />\n \n ))}\n\n {hoverScenes.map((scene) => {\n if (scene.id !== 'mika-topview') return null;\n return (\n \n setOpenMobileMenu(false)}\n isOpenTopviewSubmenu={isOpenTopviewSubmenu}\n setIsOpenTopviewSubmenu={setIsOpenTopviewSubmenu}\n isOpenMikaTopviewSubmenu={\n isOpenMikaTopviewSubmenu\n }\n setIsOpenMikaTopviewSubmenu={\n setIsOpenMikaTopviewSubmenu\n }\n />\n \n );\n })}\n\n {isOpenMikaTopviewSubmenu &&\n mikaTopMenu.map((scene) => (\n \n setOpenMobileMenu(false)}\n isOpenMikaTopviewSubmenu={\n isOpenMikaTopviewSubmenu\n }\n setIsOpenMikaTopviewSubmenu={\n setIsOpenMikaTopviewSubmenu\n }\n isTopviewSub={true}\n />\n \n ))}\n \n \n ))}\n \n
\n
\n \n \n \n\n \n \n \n\n \n \n \n {/* \n \n */}\n
\n
\n\n \n \n \n \n )}\n \n );\n};\n\nexport default KhaiHoanPrimeLayout;\n","import React from 'react';\n\nimport './style.scss';\nimport { ExpandIcon } from 'components/icons';\nimport { limitLetters } from 'utils/limitLetters';\nimport HoveringPlate from 'components/HoveringPlate';\n\nexport default function MapfloorplanModal({\n isOpen,\n close,\n setIsActiveMap,\n isShowMapFloorPlan,\n isActiveMap,\n mapShowed,\n floorMaps,\n setOpenDropDown,\n openDropDown,\n handleSelectMap,\n currentPano,\n scenes,\n onSelect,\n isPrimeStyle,\n}) {\n return (\n \n
\n \n {\n close();\n setIsActiveMap(false);\n }}\n style={{ pointerEvents: isOpen ? 'all' : 'none' }}\n >\n
\n
\n \n {/*
*/}\n {isShowMapFloorPlan && (\n <>\n {/* */}\n\n {/* */}\n\n \n {mapShowed && (\n <>\n {floorMaps?.length > 1 && !isPrimeStyle && (\n
\n setOpenDropDown(!openDropDown)}\n >\n {limitLetters(mapShowed.image.name, 15)}\n \n {openDropDown && (\n \n
    \n {floorMaps?.map((item, index) => (\n handleSelectMap(item)}\n key={index}\n >\n {limitLetters(item.image.name, 10)}\n \n ))}\n
\n
\n )}\n
\n \n \n
\n \n )}\n
\n \n {mapShowed.objects.map((viewpoint) => {\n const currentPoint = viewpoint.id === currentPano._id;\n const [left, top] = viewpoint.coordinates;\n const leftInPercent = left * 100;\n const topInPercent = top * 100;\n const currentScene =\n scenes.find((s) => s._id === viewpoint.id) || {};\n\n return (\n {\n onSelect(currentScene.groupId, currentScene.id);\n close();\n setIsActiveMap(false);\n }}\n >\n \n {/*

{currentScene.title}

*/}\n\n
\n
\n
\n );\n })}\n \n\n {/* {isPrimeStyle && (\n setIsActiveMap(true)}\n >\n \n \n )} */}\n \n )}\n \n \n )}\n {/* */}\n \n \n \n );\n}\n","import React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useNavigatedRoutes } from 'common/hooks';\n\nimport { canFullscreen, toggleFullScreen } from 'utils';\n\nimport PanoMenu from 'components/panoMenu';\nimport {\n AutoRotateIcon,\n ContactFormIcon,\n FloorMapIcon,\n GyroscopeIcon,\n MapIcon,\n AudioIcon,\n HelpIcon,\n PinIcon,\n MapFloorPlanIcon,\n ExpandIcon,\n ShareIcon,\n} from 'components/icons';\nimport VZIcon from 'assets/images/logo/vz-logo.png';\nimport { AutoPlayIcon } from 'components/icons/AutoPlayIcon';\nimport GalleryMenu from 'components/GalleryMenu';\n\nimport { setAutoPlay } from 'store/actions';\nimport configs from 'configs';\nimport SchoolLayoutMenu from 'components/SchoolLayoutMenu';\nimport { LAYOUT_UI } from 'consts/ui.const';\nimport SchoolLayoutIcons from 'components/MenuForDesktop/SchoolLayoutIcons';\nimport AACorporationLayout from 'components/AACorporationLayout';\nimport { limitLetters } from 'utils/limitLetters';\nimport AquaLayoutIcons from 'components/MenuForDesktop/AquaLayoutIcons';\nimport PrimeLayoutIcons from 'components/MenuForDesktop/PrimeLayoutIcons';\nimport KhaiHoanPrimeLayout from 'components/KhaiHoanPrimeLayout';\nimport { isMobile } from 'react-device-detect';\nimport MapfloorplanModal from 'components/MapfoorplanModal';\n\nconst MenuForMobile = (props) => {\n const {\n menuList,\n isNavOpen,\n menuPosition,\n currentPano,\n subTitle,\n showLanding,\n menuOpenScene,\n toggleRotate,\n toggleMenu,\n shouldRotate,\n handleSwitchControlMode,\n featuredMedia,\n color,\n isShowOnMap,\n isShowAudioIcon,\n tour,\n onSelect,\n groups,\n scenes,\n isShowMapFloorPlan,\n floorMaps,\n cameraParams,\n sceneRotation,\n } = props;\n\n const {\n tour: { enableGyroscope },\n } = useSelector((state) => state);\n const [handleUpdateRoute] = useNavigatedRoutes();\n const autoPlayMode = useSelector((state) => state.autoPlayMode);\n const [isAutoPlay, setIsAutoPlay] = useState(autoPlayMode);\n const [fullScreen, setFullScreen] = useState(false);\n const [isActiveMap, setIsActiveMap] = useState(false);\n const [openDropDown, setOpenDropDown] = useState(false);\n const [mapShowed, setMapShowed] = useState();\n\n const [isOpenMapfloorplanModal, setIsOpenMapfloorplanModal] = useState(false);\n const isMenuGallery = useSelector(\n ({ searchParams }) => searchParams['menu-ui'] === 'gallery'\n );\n const [openMenu, setOpenMenu] = useState(\n !(tour.menuStyle === LAYOUT_UI.SCHOOL)\n );\n\n useEffect(() => {\n setOpenDropDown(false);\n }, [currentPano]);\n\n // const autoRotateSpeed = useSelector((state) => state.tour.autoRotateSpeed);\n\n const shouldShowMapIcon = useMemo(\n () =>\n tour.mapCoordinates.length > 0 &&\n !(tour.mapCoordinates[0] === 0 && tour.mapCoordinates[1] === 0),\n [tour]\n );\n\n const isSchoolLayout = useMemo(\n () => tour.menuStyle === LAYOUT_UI.SCHOOL,\n [tour]\n );\n\n const isAquaStyle = useMemo(\n () => tour.menuStyle === LAYOUT_UI.AACORPORATION,\n [tour]\n );\n\n const isPrimeStyle = useMemo(\n () => tour.menuStyle === LAYOUT_UI.KHAIHOANPRIME,\n [tour]\n );\n\n const mediaMap2D = useMemo(\n () =>\n currentPano?.hotspots\n .map((hs) =>\n hs.media?.type === 'MapFloorPlan' && hs.media.mapFloorPlan.length\n ? hs.media\n : null\n )\n .filter((el) => el !== null)[0] || null,\n [currentPano]\n );\n\n const toggleHelpButton = () => {\n showLanding();\n };\n\n const dispatch = useDispatch();\n\n const switchMode = useCallback(() => {\n setIsAutoPlay(!isAutoPlay);\n dispatch(setAutoPlay(!isAutoPlay));\n }, [dispatch, isAutoPlay]);\n\n const handleOpenMenu = () => {\n setOpenMenu(!openMenu);\n };\n\n const handleFullScreen = () => {\n toggleFullScreen();\n setFullScreen(!fullScreen);\n };\n\n const handleSelectMap = (item) => {\n setMapShowed(item);\n };\n\n useEffect(() => {\n if (floorMaps.length > 0 && currentPano) {\n const getCurrentMap = (floorMaps, pano) => {\n return floorMaps.find((item) =>\n item.objects.length\n ? item.objects.some((obj) => obj.id === pano._id)\n : item\n );\n };\n\n const intialMap = getCurrentMap(floorMaps, currentPano);\n\n setMapShowed(intialMap);\n }\n }, [currentPano, floorMaps]);\n\n return (\n <>\n \n \n {!isSchoolLayout && !isAquaStyle && !isPrimeStyle && (\n
\n \"vz-logo\"\n
\n )}\n\n {isSchoolLayout && (\n \n )}\n\n {isAquaStyle && (\n \n )}\n\n {isPrimeStyle && (\n \n setIsOpenMapfloorplanModal(true)\n }\n />\n )}\n\n {!isSchoolLayout && !isAquaStyle && !isPrimeStyle && (\n \n {\n switchMode();\n }}\n >\n \n \n
\n \n
\n {shouldShowMapIcon && (\n handleUpdateRoute(configs.mapRoute)}\n >\n \n \n )}\n\n {featuredMedia.map && (\n handleUpdateRoute(featuredMedia.map.id)}\n >\n \n \n )}\n\n {featuredMedia.contact && (\n handleUpdateRoute(featuredMedia.contact.id)}\n >\n \n \n )}\n\n {isShowAudioIcon && (\n \n )}\n {\n toggleRotate();\n }}\n >\n \n \n\n {enableGyroscope && (\n
\n \n
\n )}\n\n {isShowMapFloorPlan && (\n <>\n setIsActiveMap(!isActiveMap)}\n >\n \n \n \n {mapShowed && (\n <>\n {floorMaps.length > 1 && (\n
\n setOpenDropDown(!openDropDown)}\n >\n \n {limitLetters(mapShowed.image.name, 15)}\n \n \n {openDropDown && (\n \n
    \n {floorMaps?.map((item, index) => (\n handleSelectMap(item)}\n key={index}\n >\n {limitLetters(item.image.name, 10)}\n \n ))}\n
\n
\n )}\n \n handleUpdateRoute(mediaMap2D.id)}\n >\n \n \n \n )}\n
\n \n {mapShowed.objects.map((viewpoint) => {\n const currentPoint =\n viewpoint.id === currentPano._id;\n const [left, top] = viewpoint.coordinates;\n const leftInPercent = left * 100;\n const topInPercent = top * 100;\n const currentScene =\n scenes.find((s) => s._id === viewpoint.id) || {};\n\n return (\n \n \n onSelect(\n currentScene.groupId,\n currentScene.id\n )\n }\n >
\n \n {currentScene.title}\n

\n \n {/* */}\n \n \n );\n })}\n \n\n setIsActiveMap(false)}\n >\n \n \n \n )}\n \n \n )}\n\n {isAquaStyle && (\n
\n handleUpdateRoute(configs.socialRoute)}\n >\n \n
\n \n )}\n \n )}\n \n\n {!isMenuGallery && !isSchoolLayout && !isAquaStyle && !isPrimeStyle && (\n <>\n
\n
\n
\n toggleMenu(!isNavOpen)}\n >\n
\n \n
\n
\n \n {currentPano ? currentPano.title : null}\n
\n

\n {subTitle ?? null}\n

\n \n \n \n )}\n toggleMenu(false)}\n onSelect={menuOpenScene}\n color={color}\n />\n \n {isMenuGallery && (\n \n )}\n\n {isSchoolLayout && (\n \n )}\n\n {isAquaStyle && (\n \n )}\n\n {isPrimeStyle && (\n \n )}\n\n {isPrimeStyle && isMobile && (\n setIsOpenMapfloorplanModal(false)}\n setIsActiveMap={setIsActiveMap}\n isShowMapFloorPlan={isShowMapFloorPlan}\n isActiveMap={isActiveMap}\n mapShowed={mapShowed}\n floorMaps={floorMaps}\n setOpenDropDown={setOpenDropDown}\n openDropDown={openDropDown}\n handleSelectMap={handleSelectMap}\n handleUpdateRoute={handleUpdateRoute}\n mediaMap2D={mediaMap2D}\n currentPano={currentPano}\n scenes={scenes}\n onSelect={onSelect}\n isPrimeStyle={isPrimeStyle}\n />\n )}\n \n );\n};\n\nexport default MenuForMobile;\n","import React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\n\nimport { canFullscreen, toggleFullScreen } from 'utils';\nimport configs from 'configs';\n\nimport { useNavigatedRoutes } from 'common/hooks';\nimport {\n AutoRotateIcon,\n ContactFormIcon,\n FullScreenIcon,\n AudioIcon,\n MapIcon,\n FloorMapIcon,\n PinIcon,\n HelpIcon,\n MapFloorPlanIcon,\n ExpandIcon,\n ShareIcon,\n} from 'components/icons';\nimport PanoMenu from 'components/panoMenu';\nimport { limitLetters } from 'utils/limitLetters';\nimport { AutoPlayIcon } from 'components/icons/AutoPlayIcon';\nimport { setAutoPlay } from 'store/actions';\nimport GalleryMenu from 'components/GalleryMenu';\nimport { LAYOUT_UI } from 'consts/ui.const';\nimport SchoolLayoutMenu from 'components/SchoolLayoutMenu';\n\nimport SchoolLayoutIcons from './SchoolLayoutIcons';\nimport AACorporationLayout from 'components/AACorporationLayout';\nimport AquaLayoutIcons from './AquaLayoutIcons';\nimport AquaExtraIcons from './AquaExtraIcons';\nimport KhaiHoanPrimeLayout from 'components/KhaiHoanPrimeLayout';\nimport PrimeLayoutIcons from './PrimeLayoutIcons';\n\nconst MenuForDesktop = (props) => {\n const {\n menuList,\n isNavOpen,\n menuPosition,\n currentPano,\n subTitle,\n menuOpenScene,\n toggleRotate,\n toggleMenu,\n shouldRotate,\n featuredMedia,\n color,\n isShowOnMap,\n isShowAudioIcon,\n isShowMapFloorPlan,\n floorMaps,\n tour,\n showLanding,\n groups,\n onSelect,\n scenes,\n openMenu,\n setOpenMenu,\n isAquaStyle,\n isPrimeStyle,\n cameraParams,\n sceneRotation,\n } = props;\n const [handleUpdateRoute] = useNavigatedRoutes();\n const [fullScreen, setFullScreen] = useState(false);\n\n const autoPlayMode = useSelector((state) => state.autoPlayMode);\n const [isAutoPlay, setIsAutoPlay] = useState(autoPlayMode);\n const [isActiveMap, setIsActiveMap] = useState(window.innerWidth > 767);\n\n const [openDropDown, setOpenDropDown] = useState(false);\n const [mapShowed, setMapShowed] = useState();\n\n useEffect(() => {\n if (openMenu) {\n document.body.classList.add('khp-menu-open');\n } else {\n document.body.classList.remove('khp-menu-open');\n }\n }, [openMenu]);\n\n useEffect(() => {\n setOpenDropDown(false);\n }, [currentPano]);\n\n const isMenuGallery = useSelector(\n ({ searchParams }) => searchParams['menu-ui'] === 'gallery'\n );\n\n const shouldShowMapIcon = useMemo(\n () =>\n tour.mapCoordinates.length > 0 &&\n !(tour.mapCoordinates[0] === 0 && tour.mapCoordinates[1] === 0),\n [tour]\n );\n\n const isSchoolLayout = useMemo(\n () => tour.menuStyle === LAYOUT_UI.SCHOOL,\n [tour]\n );\n\n const toggleHelpButton = () => {\n showLanding();\n };\n\n const handleFullScreen = () => {\n toggleFullScreen();\n setFullScreen(!fullScreen);\n };\n\n const dispatch = useDispatch();\n\n const switchMode = useCallback(() => {\n setIsAutoPlay(!isAutoPlay);\n dispatch(setAutoPlay(!isAutoPlay));\n }, [dispatch, isAutoPlay]);\n\n const handleOpenMenu = () => {\n setOpenMenu(!openMenu);\n };\n\n \n\n useEffect(() => {\n if (floorMaps.length > 0 && currentPano) {\n \n const getCurrentMap = (floorMaps, pano) => {\n return floorMaps.find((item) =>\n item.objects.length\n ? item.objects.some((obj) => obj.id === pano._id)\n : item\n );\n };\n\n const intialMap = getCurrentMap(floorMaps, currentPano);\n\n setMapShowed(intialMap);\n }\n }, [currentPano, floorMaps]);\n\n const handleSelectMap = (item) => {\n setMapShowed(item);\n };\n\n return (\n \n {isMenuGallery && (\n \n )}\n\n {isSchoolLayout && (\n \n )}\n\n {isAquaStyle && (\n \n )}\n\n {isPrimeStyle && (\n \n )}\n\n \n
\n {!isMenuGallery &&\n !isSchoolLayout &&\n !isAquaStyle &&\n !isPrimeStyle && (\n toggleMenu(tour.isPublic ? false : !isNavOpen)}\n style={{ cursor: ` ${tour.isPublic ? 'default' : 'pointer'}` }}\n >\n
\n \n
\n
\n
\n {currentPano ? limitLetters(currentPano.title, 100) : null}\n
\n

{subTitle || null}

\n
\n
\n )}\n toggleMenu(false)}\n onSelect={menuOpenScene}\n color={color}\n />\n \n \n
\n \n {shouldShowMapIcon && !isAquaStyle && !isPrimeStyle && (\n handleUpdateRoute(configs.mapRoute)}\n >\n \n
\n )}\n \n {isSchoolLayout && (\n \n )}\n\n {isAquaStyle && (\n \n )}\n\n {isPrimeStyle && (\n \n )}\n\n {!isSchoolLayout && !isAquaStyle && !isPrimeStyle && (\n
\n {shouldShowMapIcon && isAquaStyle && (\n handleUpdateRoute(configs.mapRoute)}\n >\n \n
\n )}\n\n {isAquaStyle && }\n\n switchMode()}\n >\n \n \n\n \n \n \n {featuredMedia.map && (\n handleUpdateRoute(featuredMedia.map.id)}\n >\n \n \n )}\n {featuredMedia.contact && (\n handleUpdateRoute(featuredMedia.contact.id)}\n >\n \n \n )}\n {isShowAudioIcon && (\n \n )}\n {\n toggleRotate();\n }}\n >\n \n \n {canFullscreen() && menuPosition !== 'bottom' && (\n \n \n \n )}\n {isShowMapFloorPlan && (\n <>\n setIsActiveMap(!isActiveMap)}\n >\n \n \n \n {mapShowed && (\n <>\n {floorMaps?.length > 1 && !isAquaStyle && (\n
\n setOpenDropDown(!openDropDown)}\n >\n \n {limitLetters(mapShowed.image.name, 15)}\n \n \n {openDropDown && (\n \n
    \n {floorMaps?.map((item, index) => (\n handleSelectMap(item)}\n key={index}\n >\n {limitLetters(item.image.name, 10)}\n \n ))}\n
\n
\n )}\n \n \n \n \n \n )}\n
\n \n {mapShowed.objects.map((viewpoint) => {\n const currentPoint = viewpoint.id === currentPano._id;\n const [left, top] = viewpoint.coordinates;\n const leftInPercent = left * 100;\n const topInPercent = top * 100;\n const currentScene =\n scenes.find((s) => s._id === viewpoint.id) || {};\n\n return (\n \n onSelect(currentScene.groupId, currentScene.id)\n }\n >\n

\n {currentScene.title}\n

\n
\n );\n })}\n \n\n {isAquaStyle && (\n setIsActiveMap(false)}\n >\n \n \n )}\n \n )}\n \n {isAquaStyle && (\n
\n handleUpdateRoute(configs.socialRoute)}\n >\n \n
\n \n )}\n \n )}\n \n )}\n \n \n );\n};\n\nexport default MenuForDesktop;\n","import React, { useCallback, useMemo, useState } from 'react';\n\nimport { connect, useDispatch, useSelector } from 'react-redux';\nimport { useMediaQuery } from 'react-responsive';\n\nimport { isEqual } from 'lodash';\n\nimport { menuHighlightDefaultColor } from 'consts';\nimport configs from 'configs';\nimport { EVENT_TYPE, trackEventByType } from 'gaTracking';\nimport { ensureSubscriptionData, switchControlMode } from 'utils';\n\nimport { ShareIcon } from 'components/icons';\nimport { useNavigatedRoutes } from 'common/hooks';\n\nimport {\n setMenuPosition,\n toggleAudio,\n toggleMenu,\n togglePanoMode,\n setControlMode,\n} from 'store/actions';\n\nimport MenuForMobile from 'components/MenuForMobile';\nimport MenuForDesktop from 'components/MenuForDesktop';\nimport { LAYOUT_UI } from 'consts/ui.const';\n\nconst DEFAUlt_MAP_COORDINATES = [0, 0, 10];\n\nfunction moveItemToTop(arr, targetId) {\n arr.sort((a, b) => b.objects.length - a.objects.length);\n\n const index = arr.findIndex((item) => {\n return item.objects.some((obj) => obj.id === targetId);\n });\n\n if (index !== -1) {\n const itemToMove = arr.splice(index, 1)[0];\n arr.unshift(itemToMove);\n }\n\n return arr;\n}\n\nconst MenuV2 = (props) => {\n const isPhone = useMediaQuery({ query: '(max-width: 480px)' });\n const { logoURL, hasLogo, isSchoolLayout, isAquaStyle, isPrimeStyle } =\n useSelector((state) => ({\n logoURL: state.logoURL,\n hasLogo: state.hasLogo,\n isSchoolLayout: state.tour.menuStyle === LAYOUT_UI.SCHOOL,\n isAquaStyle: state.tour.menuStyle === LAYOUT_UI.AACORPORATION,\n isPrimeStyle: state.tour.menuStyle === LAYOUT_UI.KHAIHOANPRIME,\n }));\n\n const [openMenu, setOpenMenu] = useState(\n !(props.tour.menuStyle === LAYOUT_UI.SCHOOL)\n );\n\n const enableBranding = useSelector(\n ({ subscriptionPlan }) => subscriptionPlan.enableBranding\n );\n const menuHighlightColor = props.json.tour.menuHighlightColor;\n\n const dispatch = useDispatch();\n const [handleUpdateRoute] = useNavigatedRoutes();\n\n const menuOpenScene = (gId, sId) => {\n props.onSelect(gId, sId);\n trackEventByType(EVENT_TYPE.SCENE_FROM_MENU, sId);\n };\n const { controlMode } = useSelector((state) => state);\n\n const handleSwitchControlMode = useCallback(async () => {\n const switchToMode = await switchControlMode(controlMode);\n if (switchToMode !== controlMode) dispatch(setControlMode(switchToMode));\n }, [controlMode, dispatch]);\n\n const isShowOnMap = useMemo(\n () => !isEqual(props.tourMapCoordinates, DEFAUlt_MAP_COORDINATES),\n [props.tourMapCoordinates]\n );\n\n const hightLightColor = useMemo(\n () => (enableBranding ? menuHighlightColor : menuHighlightDefaultColor),\n [enableBranding, menuHighlightColor]\n );\n\n const isShowAudioIcon = useMemo(() => props.audio.available, [props.audio]);\n\n const floorMaps = useMemo(() => {\n const mapFloorPlansSet = new Set();\n props?.currentPano?.hotspots.forEach((item) => {\n const floorPlans =\n item?.media?.type === 'MapFloorPlan'\n ? item.media.mapFloorPlan\n : item?.type === 'MapFloorPlan'\n ? item.mapFloorPlan\n : null;\n if (floorPlans) {\n floorPlans.forEach((floorPlan) => {\n mapFloorPlansSet.add(floorPlan);\n });\n }\n });\n\n return moveItemToTop(Array.from(mapFloorPlansSet), props.currentPano?._id);\n }, [props.currentPano]);\n\n const isShowMapFloorPlan = useMemo(\n () => !!floorMaps.length || props?.currentPano?.isShowMapFloorPlan,\n [floorMaps.length, props?.currentPano?.isShowMapFloorPlan]\n );\n\n return (\n <>\n \n {enableBranding && hasLogo && !isAquaStyle && !isPrimeStyle && (\n
\n \"tour-logo\"\n
\n )}\n\n {!isSchoolLayout && !isAquaStyle && !isPrimeStyle && (\n
\n handleUpdateRoute(configs.socialRoute)}\n >\n \n
\n \n )}\n \n\n {isPhone ? (\n \n ) : (\n \n )}\n \n );\n};\n\nconst mapStateToProps = ({\n dimentions,\n menu,\n audio,\n json,\n currentScene,\n tour,\n}) => ({\n dimentions,\n isNavOpen: menu.isOpen,\n menuPosition: menu.position,\n mapPopupOpen: menu.isoMetricMap,\n socialPopupOpen: menu.social,\n audio,\n json,\n featured: json.featured,\n featuredMedia: json.featuredMedia,\n tourMapCoordinates: json.tour.mapCoordinates,\n showOnMap: currentScene.showOnMap,\n scope: ensureSubscriptionData(tour.subscriptionPlan.scopes),\n tour,\n});\n\nconst mapDispatchToProps = {\n toggleMenu,\n togglePanoMode,\n setMenuPosition,\n toggleAudio,\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(MenuV2);\n","import React from 'react';\n\nimport { useTranslation } from 'react-i18next';\n\nfunction IconClose(props) {\n const { t } = useTranslation();\n\n return (\n \n \n \n \n \n {t('close')}\n \n \n \n \n \n \n );\n}\n\nexport default IconClose;\n","import React, { useRef, useEffect } from 'react';\nimport { disableBodyScroll, enableBodyScroll } from 'body-scroll-lock';\nimport { connect } from 'react-redux';\nimport { isMenuLeft } from '../../utils/menuHelper';\nimport { formatPopupStyle } from '../../utils/cssHelper';\nimport IconClose from './iconClose';\nimport { useNavigatedRoutes } from 'common/hooks';\nimport './style.scss';\n\nfunction Popup(props) {\n const popupBody = useRef(null);\n const [handleUpdateRoute] = useNavigatedRoutes();\n useEffect(() => {\n const popupBodyEl = popupBody?.current;\n if (popupBodyEl) disableBodyScroll(popupBodyEl);\n return () => popupBodyEl && enableBodyScroll(popupBodyEl);\n }, []);\n const { dimentions, hideCloseBtn, containerStyle, color1, color2, color3 } =\n props;\n // lightboxHeaderColor\n return (\n \n {!hideCloseBtn && (\n
\n handleUpdateRoute()}>\n \n \n
\n )}\n \n
{props.children}
\n \n \n );\n}\n\nconst mapStateToProps = ({ dimentions, tour }) => ({\n dimentions,\n color1: tour?.lightboxBackgroundColor1 || '',\n color2: tour?.lightboxBackgroundColor2 || '',\n color3: tour?.lightboxBackgroundColor3 || '',\n});\n\nconst mapDispatchToProps = {};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Popup);\n","import camelCase from 'camelcase';\n\nexport const formatStyle = (style) => {\n let styles = {};\n if (typeof style === 'object') {\n Object.keys(style).forEach((key) => {\n const currKey = camelCase(key);\n styles[currKey] = style[key];\n });\n }\n return styles;\n};\n\nexport const formatPopupStyle = (clr1, clr2, clr3) => ({\n // backgroundImage: `linear-gradient(to right top, ${\n // `rgba($color: ${clr1}, $alpha: 0.75)` || 'rgba(0, 0, 0, 0.5)'\n // }, ${`rgba($color: ${clr2}, $alpha: 0.75)` || 'rgba(0, 0, 0, 0.5)'})`,\n // boxShadow: `inset 0 -70vh 70vh -5vh ${clr3 || 'rgba(0, 0, 0, .5)'}`,\n background: `linear-gradient(to right top, rgba(0,0,0,0.75), rgba(0,0,0,0.75))`,\n boxShadow: `inset 0 -30vh 50vh -5vh ${clr3 || 'rgba(0, 0, 0, .5)'}`,\n});\n","export default __webpack_public_path__ + \"static/media/IconWebsite.019ca875.svg\";","export default __webpack_public_path__ + \"static/media/IconFB.d1f88c10.svg\";","export default __webpack_public_path__ + \"static/media/IconInstagram.7badf64c.svg\";","export default __webpack_public_path__ + \"static/media/IconTwitter.adab749e.svg\";","export default __webpack_public_path__ + \"static/media/IconYoutube.da19db49.svg\";","export default __webpack_public_path__ + \"static/media/IconEmail.c5a7bcbe.svg\";","export default __webpack_public_path__ + \"static/media/IconPinterest.20b3e48b.svg\";","export default __webpack_public_path__ + \"static/media/IconSnapchat.46b095f8.svg\";","import React from 'react';\n\nimport iconWebsite from './IconWebsite.svg';\nimport iconFB from './IconFB.svg';\nimport iconInstagram from './IconInstagram.svg';\nimport iconTwitter from './IconTwitter.svg';\nimport iconYoutube from './IconYoutube.svg';\nimport iconEmail from './IconEmail.svg';\nimport iconPinterest from './IconPinterest.svg';\nimport iconSnapchat from './IconSnapchat.svg';\n\nimport './icon.scss';\n\nconst IconWebsite = () => {\n return \"icon-website\";\n};\n\nconst IconFacebook = () => {\n return \"icon-facebook\";\n};\n\nconst IconInstagram = () => {\n return \"icon-instagram\";\n};\n\nconst IconTwitter = () => {\n return \"icon-twitter\";\n};\n\nconst IconYoutube = () => {\n return \"icon-youtube\";\n};\n\nconst IconEmail = () => {\n return \"icon-email\";\n};\n\nconst IconPinterest = () => {\n return \"icon-instagram\";\n};\n\nconst IconSnapchat = () => {\n return \"icon-snapchat\";\n};\n\nconst Icons = (props) => {\n const { type, color } = props;\n switch (type) {\n case 'WEBSITE':\n return ;\n case 'FACEBOOK':\n return ;\n case 'INSTAGRAM':\n return ;\n case 'TWITTER':\n return ;\n case 'YOUTUBE':\n return ;\n case 'PINTEREST':\n return ;\n case 'EMAIL':\n return ;\n case 'PRINTEREST':\n return ;\n case 'SNAPCHAT':\n return ;\n default:\n return <>;\n }\n};\n\nconst SocialIcon = (props) => {\n const { type, color, link } = props;\n return (\n
\n
\n \n \n \n
\n
\n );\n};\n\nexport default SocialIcon;\n","import React, { useMemo } from 'react';\nimport { connect } from 'react-redux';\n\nimport { useNavigatedRoutes } from 'common/hooks';\n\nimport Popup from '../../components/popup';\nimport SocialIcon from './icon';\n\nimport './style.scss';\n\nconst SocialPopup = (props) => {\n const { tour } = props;\n const [handleUpdateRoute] = useNavigatedRoutes();\n const formatEmailUrl = useMemo(() => `mailto:${tour.email}`, [tour.email]);\n\n return (\n handleUpdateRoute()}>\n
\n {typeof tour === 'object' && (\n
\n {tour.websiteUrl && (\n \n )}\n {tour.facebookUrl && (\n \n )}\n {tour.instagramUrl && (\n \n )}\n {tour.twitterUrl && (\n \n )}\n {tour.youtubeUrl && (\n \n )}\n {tour.email && (\n \n )}\n {tour.pinterestUrl && (\n \n )}\n {tour.snapchatUrl && (\n \n )}\n
\n )}\n
\n
\n );\n};\n\nconst mapStateToProps = ({ json, tour }) => ({\n textColor: tour.menuHighlightColor,\n color: (tour && tour.lightboxBodyColor) || 'white',\n customer: json.customer || {},\n tour: tour,\n});\n\nexport default connect(mapStateToProps)(SocialPopup);\n","import * as THREE from 'three';\n\nexport const getCameraPositionFromLookAtCoordinates = (x, y, z) => {\n let newX = x,\n newY = y,\n newZ = z;\n while (Math.abs(newX) >= 10 || Math.abs(newY) >= 10 || Math.abs(newZ) >= 10) {\n newX = newX / 2;\n newY = newY / 2;\n newZ = newZ / 2;\n }\n return {\n x: -1 * newX,\n y: -1 * newY,\n z: -1 * newZ,\n };\n};\n\nexport const getSphericalPosition = function (x, y, w, h) {\n const u = x / w;\n const v = y / h;\n const theta = u * 2 * Math.PI;\n const phi = v * Math.PI;\n return new THREE.Vector3(\n Math.cos(theta) * Math.sin(phi),\n Math.sin(theta) * Math.sin(phi),\n Math.cos(phi)\n );\n};\n\nwindow.getSphericalPosition = getSphericalPosition;\n\nexport const updatePositionOfHotspots = (hotspots, camera, width, height) => {\n return hotspots.map((hotspot) => ({\n ...hotspot,\n position: !hotspot.location\n ? {\n visible: false,\n x: -1000,\n y: -1000,\n }\n : get2DScreenPosition(hotspot.location, camera, width, height),\n }));\n};\n\nexport const get2DScreenPosition = (coord, camera, width, height) => {\n if (!(coord && camera && width && height)) {\n return {\n visible: false,\n x: -1000,\n y: -1000,\n };\n }\n const hpLocation = new THREE.Vector3(coord.x, coord.y, coord.z);\n const vector = hpLocation.project(camera);\n return {\n visible: Math.abs(vector.z) <= 1,\n x: ((vector.x + 1) / 2) * width,\n y: (-(vector.y - 1) / 2) * height,\n };\n};\n\nexport const distanceBetween2dCoordinates = (\n coord1 = { x: 0, y: 0 },\n coord2 = { x: 0, y: 0 }\n) => {\n const xDiff = Math.abs(coord1.x - coord2.x),\n yDiff = Math.abs(coord1.y - coord2.y);\n return Math.sqrt(xDiff * xDiff + yDiff * yDiff);\n};\n\nexport const isPositionValid = (position) => {\n if (!position || !Array.isArray(position)) return false;\n const [x, y, z] = position;\n if (x === null || typeof x === 'undefined') return false;\n if (y === null || typeof y === 'undefined') return false;\n if (z === null || typeof z === 'undefined') return false;\n return true;\n};\n","export default __webpack_public_path__ + \"static/media/default-preview.0f11c297.svg\";","export default __webpack_public_path__ + \"static/media/flicked-arrow.9d31b3a0.png\";","import React from 'react';\n\nimport FlickedArrow from './flicked-arrow.png';\n\nconst IconFlickedArrow = () => {\n return (\n
\n \n
\n );\n};\n\nexport default IconFlickedArrow;\n","import React from 'react';\n\nconst AirBalloonIcon = () => {\n return
;\n};\n\nexport default AirBalloonIcon;\n","const SCENE_TYPE = {\n AERIAL: 'AERIAL',\n AERIAL_MAP: 'AERIAL_MAP',\n GROUND: 'GROUND',\n LANDING: 'LANDING',\n};\n\nexport default SCENE_TYPE;\n","import React from 'react';\n\nconst Icon = (props) => {\n const bgColor = props.bgColor || 'white';\n // const borderColor = props.borderColor || '#447594';\n // const color = props.color || '#326f3f';\n return (\n \n \n \n \n \n \n \n );\n};\n\nexport default Icon;\n","import React, { useMemo } from 'react';\n\nconst IconAerialScene = ({ hightLightColor, visited }) => {\n const color = useMemo(\n () => (visited ? hightLightColor : 'black'),\n [visited, hightLightColor]\n );\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default IconAerialScene;\n","import React, { useMemo } from 'react';\nimport { mixColor } from 'utils/colorHelper';\n\nconst IconGroundScene = ({ visited, hightLightColor }) => {\n const color = useMemo(\n () => (visited ? mixColor(hightLightColor, '#000') : 'black'),\n [visited, hightLightColor]\n );\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default IconGroundScene;\n","import React from 'react';\nimport './pulse.scss';\n\nconst Pulse = () => (\n

\n  \n

\n);\n\nexport default Pulse;\n","import { LngLat } from 'mapbox-gl';\n\nexport const metersBetween = (coord1, coord2) => {\n const lngLat1 = new LngLat(coord1[0], coord1[1]);\n const lngLat2 = new LngLat(coord2[0], coord2[1]);\n return lngLat1.distanceTo(lngLat2);\n};\n\nexport const validCoord = ([lng, lat]) =>\n Number(lng) !== 0 && Number(lat) !== 0;\n\nexport const feetBetween = (coord1, coord2) => {\n return validCoord(coord1) && validCoord(coord2)\n ? metersBetween(coord1, coord2) / 0.3048\n : 0;\n};\n\nconst FEET_PER_MILE = 5280;\n\nconst round = (num) => Math.round(num * 10) / 10;\n\nexport const getFriendlyDistance = (fts) => {\n if (typeof fts === 'number') {\n return fts <= 1000\n ? `${round(fts)} FT`\n : `${round(fts / FEET_PER_MILE)} Mi`;\n }\n return '';\n};\n","export const IconCustom = ({ iconUrl }) => {\n return (\n
\n \"video-icon\"\n
\n );\n};\n","import React, { useMemo, useState } from 'react';\n\nimport './aqua-hotspot-frame.scss';\n\nfunction hexToRgb(hex) {\n hex = hex.replace(/^#/, '');\n\n if (hex.length === 3) {\n hex = hex\n .split('')\n .map((hexChar) => hexChar + hexChar)\n .join('');\n }\n\n const bigint = parseInt(hex, 16);\n const r = (bigint >> 16) & 255;\n const g = (bigint >> 8) & 255;\n const b = bigint & 255;\n\n return `${r}, ${g}, ${b}`;\n}\n\nexport default function AquaHotspotFrame({\n configs,\n isPrimeStyle,\n previewImgUrl,\n hotspot,\n onClick,\n}) {\n const configsData = useMemo(() => JSON.parse(configs), [configs]);\n const {\n title,\n subtitle,\n subImage,\n titleFontSize,\n subtitleFontSize,\n titleColor = 'white',\n subtitleColor = 'white',\n backgroundBlur,\n titleBold,\n subtitleBold,\n bgColor = '#1C58A2',\n borderWidth = 1,\n borderType,\n borderColor,\n } = configsData;\n\n const [isShowPreviewImg, setIsShowPreviewImg] = useState(false);\n\n const paddingAtt = useMemo(() => {\n if (title && !subtitle && !subImage) {\n return { pdY: 15, pdX: 15 };\n }\n return { pdY: 10, pdX: 15 };\n }, [title, subtitle, subImage]);\n\n const rgbBgColor = hexToRgb(bgColor);\n\n const bgOpacity = useMemo(\n () => (title && !subtitle ? 1 : 0.9),\n [title, subtitle]\n );\n\n return (\n \n setIsShowPreviewImg(true)}\n onMouseLeave={() => setIsShowPreviewImg(false)}\n onClick={() => onClick(hotspot)}\n >\n {isShowPreviewImg && isPrimeStyle && (\n
\n \"scene-preview\"\n
\n )}\n {title && (\n \n {title}\n

\n )}\n\n {subtitle && (\n \n {subtitle}\n

\n )}\n\n {subImage && (\n
\n \"img-frame\"\n
\n )}\n \n \n );\n}\n","import React, { useState, useEffect, useMemo } from 'react';\n\nimport { menuHighlightDefaultColor } from 'consts';\nimport { HOTSPOT_UI, LAYOUT_UI } from 'consts/ui.const';\nimport defaultPreview from 'assets/images/default-preview.svg';\nimport IconFlickedArrow from './iconFlickedArrow';\nimport IconAirBalloon from './iconAirBalloon';\n\nimport SCENE_TYPE from '../../scene.types';\nimport SCENE_TYPES from '../../../consts/sceneType.const';\nimport IconAerialMap from './iconAerialMap';\nimport IconAerialScene from './iconAerialScene';\nimport IconGroundScene from './iconGroundScene';\nimport Pulse from './pulse';\nimport {\n getFriendlyDistance,\n feetBetween,\n} from '../../../utils/distanceHelper';\nimport configs from '../../../configs';\n\nimport './scene.scss';\nimport { IconCustom } from './iconCustom';\nimport AquaHotspotFrame from './aqua-hotspot-frame';\n\nconst SceneHotspot = (props) => {\n const { currentSceneCoords, isActiveIcon } = props;\n const { title, sceneType, previewImgUrl, coordinates } = props.data;\n const [distance, setDistance] = useState('');\n\n const hightLightColor = useMemo(\n () =>\n props.scope.enableBranding.value\n ? props.tour.menuHighlightColor\n : menuHighlightDefaultColor,\n [props.tour, props.scope]\n );\n\n const isHotspotUiDefault = useMemo(\n () => props.params && props.params['hotspot-ui'] === HOTSPOT_UI.DEFAULT,\n [props.params]\n );\n\n const isAirBalloonStyle = useMemo(\n () => props.hotspotStyle === HOTSPOT_UI.AIR_BALLOON,\n [props.hotspotStyle]\n );\n\n const isAquaStyle = useMemo(\n () => props.tour.menuStyle === LAYOUT_UI.AACORPORATION,\n [props.tour.menuStyle]\n );\n\n const isPrimeStyle = useMemo(\n () => props.tour.menuStyle === LAYOUT_UI.KHAIHOANPRIME,\n [props.tour.menuStyle]\n );\n\n useEffect(() => {\n if (sceneType !== SCENE_TYPES.GROUND && currentSceneCoords) {\n const feet = feetBetween(currentSceneCoords, coordinates);\n if (feet) {\n const d = getFriendlyDistance(feet);\n setDistance(d);\n } else {\n setDistance('');\n }\n } else {\n setDistance('');\n }\n }, [currentSceneCoords, coordinates, sceneType]);\n\n let Icon = IconGroundScene;\n if (isAirBalloonStyle) {\n Icon = IconAirBalloon;\n } else if (\n (props.hotspotStyle === HOTSPOT_UI.DEFAULT || isHotspotUiDefault) &&\n !isAquaStyle &&\n !isPrimeStyle\n ) {\n Icon = IconFlickedArrow;\n } else {\n switch (sceneType) {\n case SCENE_TYPE.AERIAL_MAP:\n Icon = IconAerialMap;\n break;\n case SCENE_TYPE.AERIAL:\n case SCENE_TYPES.AERIAL:\n Icon = IconAerialScene;\n break;\n default:\n Icon = IconGroundScene;\n break;\n }\n }\n\n const onClickHotspotParent = (e) => {\n window.logMessage('onClickHotspotParent', e);\n props.toggleHover(true);\n };\n\n const closeMapNavigation = () => {\n const pathname = props.history.location.pathname;\n if (pathname.includes(configs.mapRoute)) {\n const newPath = pathname.replace('/map-navigation', '');\n props.history.push(newPath);\n }\n };\n\n const onClickHotspot = (e) => {\n e.stopPropagation();\n window.logMessage('onClickHotspot', e);\n if (!props.isHover) {\n props.toggleHover(true);\n }\n setTimeout(props.onClick, 0);\n if (props.history) closeMapNavigation();\n };\n\n if ((isAquaStyle || isPrimeStyle) && props?.hotspot?.configs)\n return (\n \n );\n\n return (\n \n \n \n  \n \n \n \n \n \n {title}\n

\n \n {distance && (\n
\n \n {distance || 'N/A'}\n

\n
\n )}\n \n
\n {isAirBalloonStyle ? (\n <>\n {!isHotspotUiDefault && }\n {props.hotspot?.iconUrl ? (\n \n ) : (\n \n )}\n \n ) : props.isMapFloorPlan && !isActiveIcon ? (\n \n {props.index}\n \n ) : (\n !props.isHover && (\n <>\n {!isHotspotUiDefault && }\n {props.hotspot?.iconUrl ? (\n \n ) : (\n \n )}\n \n )\n )}\n
\n \n \n );\n};\n\nexport default SceneHotspot;\n","import React from 'react';\n\nconst CheckBox = (props) => {\n const bgColor = props.bgColor || 'white';\n const color = props.color || '#447594';\n return (\n \n \n \n \n \n \n );\n};\n\nexport default CheckBox;\n","import React from 'react';\n\nimport Google360Icon from 'assets/icons/google.png';\n\nfunction iconGoogle360(props) {\n return (\n
\n \"video-icon\"\n
\n );\n}\n\nexport default iconGoogle360;\n","export default \"data:image/png;base64,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\"","import React from 'react';\n\nfunction iconMapFloorPlan(props) {\n return (\n \n \n \n \n \n \n \n \n \n \n \n );\n}\n\nexport default iconMapFloorPlan;\n","import React from 'react';\n\nimport MatterportIcon from 'assets/icons/Matterport_icon.png';\n\nfunction iconMatterport(props) {\n return (\n
\n \"video-icon\"\n
\n );\n}\n\nexport default iconMatterport;\n","export default \"data:image/png;base64,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\"","import React from 'react';\n\nconst Icon = (props) => {\n return (\n
\n \n \n \n \n \n \n \n
\n );\n};\n\nexport default Icon;\n","import React from 'react';\n\nimport InfoIcon from 'assets/icons/info.png';\n\nconst Icon = (props) => {\n return (\n
\n \"info-icon\"\n
\n );\n};\n\nexport default Icon;\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAA+CAYAAADeQLDtAAAABHNCSVQICAgIfAhkiAAAAs1JREFUWEftmNtRAzEMRdkKoANCBUAFhAqgA0IFkAoIFRAqYFMBoQJCBZAKCBUAFYR7jb3j7MOWtOEPz3h4rK1jSbYku9gxtPV6PcC0M/Rz9KEX8YafC/RZURT8vWqFlgHABHNuMvOmAI3DGDEEwvcw6Rn9SLiwEqBLjhVBDICwjluAJlJIiVkXQg3iYV/44yALgRZ0LM1kbWMJxKpFWNSLBEKVd61qYN5XEuId/tkD4KbmIAOMee8JWUrMte4JmUkgK0D2e4COJZARAA9GCOPYSAJhOFmgHypBSwBcCMpCOAi7jIMJkm7lewCuw6JEEA+iRnP0k4RGM3ybAEA/Vk0MCTN8LmEeITQ0l0sgnAe30dQQpV/c8H+Iymr/5tq+uXwKZhk08J2HjQeTJ3vj4KnPiU9aj5g4TCz9EqAypVqn45VlUBKUgjDA3QmN/1v6aMMKNGHapQ+kbQzIVOwTY631Akir71rNJSyq64tWQxaQkMobbVZRQywViiuuRT4x+oOyTwGhBRqt4ROjP3YA6DwObZCt+oNqtUFY+8b5W3JOOv3RgPjS51UitTbmuH4Zjb9vaAKIJpQEOd8AJDWvQxi+eXXWtCdAWCJ1tjrE4o/OmBWoFaSHPxh9VyJNjP74AGCQs22sicUf7mqggVj8kU291TnxRbTlbpj1RwyhytrbVHXJEZkLmpQYqH3W2LjoZHeXIZ9TZvJ8QOYVxjA4T4se/mgNilEhOATEjSHE4g9qwtsVd9cbZDBV87ww9sXvYS4lE8Iyhqr9RasgC0jXFg3SBbnNQU20RZwUUG0MQiyVSQr0jY8jaMAw5dq2IUsP2HyyhSIrfOjzQBMWzIeCa2jQuMtTkxIftac9NteHF16Zp25LQpg6edHRNgrnEwcXmWwunyi1ecIUPix3rryhSfiHP/k8sfUnJzrTvZ2gz9tsLtKkPojxLJe3c4Lj7z9MBS0EZidLFwAAAABJRU5ErkJggg==\"","export default __webpack_public_path__ + \"static/media/pdf.30952cc8.png\";","import React from 'react';\n\nimport PdfIcon from 'assets/icons/pdf.png';\n\nconst Icon = (props) => {\n return (\n
\n \"info-icon\"\n
\n );\n};\n\nexport default Icon;\n","import React from 'react';\n\n// import VideoIcon from 'assets/icons/video.png';\n\nconst Icon = (props) => {\n return (\n
\n \n \n \n
\n );\n};\n\nexport default Icon;\n","import React from 'react';\n\nfunction iconTypeForm(props) {\n return (\n
\n \n \n \n \n \n \n
\n );\n}\n\nexport default iconTypeForm;\n","import React from 'react';\n\nimport ShapeSparkIcon from 'assets/icons/shapespark.png';\n\nfunction iconShapeSpark(props) {\n return (\n
\n \n
\n );\n}\n\nexport default iconShapeSpark;\n","export default \"data:image/png;base64,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\"","import React from 'react';\n\nfunction iconSketchFab(props) {\n return (\n
\n \n \n \n \n
\n );\n}\n\nexport default iconSketchFab;\n","import React from 'react';\nimport LumaAiIcon from 'assets/icons/luma_ai_icon.jpg';\n\nfunction iconMediaLumaAi(props) {\n return (\n
\n \"video-icon\"\n
\n );\n}\n\nexport default iconMediaLumaAi;\n","export default \"data:image/jpeg;base64,/9j/4QDKRXhpZgAATU0AKgAAAAgABgESAAMAAAABAAEAAAEaAAUAAAABAAAAVgEbAAUAAAABAAAAXgEoAAMAAAABAAIAAAITAAMAAAABAAEAAIdpAAQAAAABAAAAZgAAAAAAAABIAAAAAQAAAEgAAAABAAeQAAAHAAAABDAyMjGRAQAHAAAABAECAwCgAAAHAAAABDAxMDCgAQADAAAAAQABAACgAgAEAAAAAQAAAMigAwAEAAAAAQAAAMikBgADAAAAAQAAAAAAAAAAAAD/2wCEABwcHBwcHDAcHDBEMDAwRFxEREREXHRcXFxcXHSMdHR0dHR0jIyMjIyMjIyoqKioqKjExMTExNzc3Nzc3Nzc3NwBIiQkODQ4YDQ0YOacgJzm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5v/dAAQADf/AABEIAMgAyAMBIgACEQEDEQH/xAGiAAABBQEBAQEBAQAAAAAAAAAAAQIDBAUGBwgJCgsQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+gEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoLEQACAQIEBAMEBwUEBAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri4+Tl5ufo6ery8/T19vf4+fr/2gAMAwEAAhEDEQA/AOdooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA/9DnaKKKACiiigAooooAKKKKACiiigAoop6IznagyfQUAMoqzPavbqpkxlu3piq1FrCjJNXQUUUUDCiiigAooooAKKKKACiiigAooooA/9HnaKKKACiiigAooooAKKKKACl9hVq3spp+QNq+prbgs4bflRlvU1UYXOepiIw0Mu306ST5pfkX071sxQxQrtjGKlorZRSPPqVpT3MjVf8Aln+P9Kxq2dV/5Z/j/SsasZ7noYb+GgoooqToCiiigAooooAKKKKACiiigAooooA//9LnaKKKACiiigAop6IzttQZPoK1rfTB964/75FNRvsZzqxhuZkMEs5xGM/yrat9Oii+aT52/SryqqLtQYA7CnVtGCR59TEylotEFFFJVnMLSUUUAZGq/wDLP8f6Vj1sar/yz/H+lY9c89z1sN/DQUUUVJuFFFFABRRRQAUUUUAFFFFABRRRQB//0+dooooAKKKKANPS/wDXN/u/4Vu1haX/AK5v93/Ctyt6ex5WK+MWkopKs5xaKSkpgLRSUlAzK1T/AJZ/j/SsitbU/wDln+P9Kya557nq4f8AhoKKKKg3CiiigAooooAKKKKACiiigAooooA//9TnaKKKACiiigDT0v8A1zf7v+FbdYemf65v93/Ctut6ex5eJ+MWkopK0OcWkpKSmMWkopKY7GXqf/LP8f6VlVqal/yz/H+lZdctT4j1MP8Aw0FFFFQbBRRRQAUUUUAFFFFABRRRQAUUUUAf/9XnaKKKACiiigDS0z/XN/u/4VtViab/AK5v92tmuinseZifjFpKSkrUwsLRTaSnYdh1NpuabmnYqxTvkLhMds1lEEcGtm4/hqsUVxhhUzocyuj0aHwIzqKsPbsvK8iq9ckouOjNgoooqQCiiigAooooAKKKKACiiigD/9bnaKKKACiiigDQ07/Wt/u1sVj6f/rT/u1rV1UvhPOxHxi0lNLBetQGTPTitlEyUScsBUe7NQ5pc1XKWokmaM1HmlzTsFiObtUQp8vamCqWx20vhRIKa8CSdeD6inCpBUySejNjLkt3j56j1FQVviq8tmj8p8p/SuSdH+ULGRRUskMkRw4xUVc9gCiiigAooooAKKKKAP/X52iiigAooooAvWBAkYn+7V5p+yViAkcirCTdmrqoTitGc9Sld8xc3Z60ZqIMD0pc122MuUlzS5qLNLmiwWJM0uajzS5pWFYH7U0UN2oFB00/hJBUgqMVIKlmpIKkFRipBUMY/arDawyKz5tO/ig/75NaGVUZY4AqhNqIHywD8TWFTl6jMpkZDtcYI7U2nu7SNuc5NMrlJCiiigAooooA/9DnaKKKACiiigAooooAcrFelWFlB4PFVaK1p1ZQ2JcUy/mlzVJXK/SrCuG6V3U60ZGLhYmzS5qOlraxFh9KKYKeKlm8NiQVIKjFNeZI+vX0rOTS3NC0KglvI4+E+Y/pWfJcPJx0HoKr1yTrdIgSyTSSnLn8O1RUUVzgFFFFABRRRQAUUUUAf//R52iiigAooooAKKKKACiiigAooooAlWQjg1OGB6VTpQcdK6aeIcdGQ4IvLTyyoMtVMTMBURJPJrWeJX2RxVkWHuGPCcCq9JRXHKTluUFFFFSAUUUUAFFFFABRRRQAUUUUAf/S52iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD/0+dooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA/9k=\"","import React, { useMemo } from 'react';\nimport isURL from 'validator/lib/isURL';\n\nimport './InfoTag.scss';\n\nconst handleReadmoreURL = (readMoreURL) => {\n if (\n readMoreURL.split(':')[0] === 'https' ||\n readMoreURL.split(':')[0] === 'http'\n ) {\n return readMoreURL;\n }\n return '//' + readMoreURL;\n};\n\nconst InfoTag = ({ detail }) => {\n const up = useMemo(\n () => detail.hotspot.location[1] > 0,\n [detail.hotspot.location]\n );\n const styles = useMemo(() => {\n return {\n position: 'absolute',\n left: '50%',\n transform: 'translate(-50%)',\n bottom: up ? '0' : null,\n };\n }, [up]);\n return (\n
\n
\n
\n

{detail.data.title}

\n
\n

\n {detail.data.infoTag?.text}\n

\n {detail.data.infoTag?.readMoreUrl &&\n isURL(detail.data.infoTag?.readMoreUrl) && (\n \n
Read more
\n \n \n \n \n \n )}\n
\n
\n );\n};\n\nexport default InfoTag;\n","import React, { useMemo } from 'react';\n// import IconMediaMatterport from './iconMediaMatterport';\n// import IconMedia2D from './iconMedia2D';\nimport { limitLetters } from 'utils/limitLetters';\nimport { HOTSPOT_UI } from 'consts/ui.const';\n\nimport CheckMark from '../../../components/icons/checked';\nimport MEDIA_TYPES from '../../../consts/mediaType.const';\nimport IconGoogle360 from './iconGoogle360';\nimport IconMapFloorPlan from './iconMapFloorPlan';\nimport IconMediaMatterport from './iconMatterport';\nimport IconMediaGallery from './iconMediaGallery';\nimport IconMediaInfo from './iconMediaInfo';\nimport iconMediaPdf from './iconMediaPdf';\nimport IconMediaVideo from './iconMediaVideo';\nimport IconTypeForm from './iconTypeForm';\nimport IconShapeSpark from './iconShapeSpark';\nimport IconSketchFab from './iconMediaSketchFab';\nimport IconMediaLumaAi from './iconMediaLumaAi';\nimport Pulse from './pulse';\nimport InfoTag from '../tag/InfoTag';\nimport { IconCustom } from './iconCustom';\n\nimport './media.scss';\nimport AquaHotspotFrame from './aqua-hotspot-frame';\n\nconst getIcon = (type) => {\n if (type === MEDIA_TYPES.YOUTUBE || type === MEDIA_TYPES.VIDEO) {\n return IconMediaVideo;\n } else if (type === MEDIA_TYPES.IMAGE) {\n return IconMediaInfo;\n } else if (type === MEDIA_TYPES.PDF) {\n return iconMediaPdf;\n } else if (type === MEDIA_TYPES.INFO_TAG) {\n return InfoTag;\n } else if (type === MEDIA_TYPES.GALLERY) {\n return IconMediaGallery;\n } else if (type === MEDIA_TYPES.MATTERPORT) {\n return IconMediaMatterport;\n } else if (type === MEDIA_TYPES.GOOGLE360) {\n return IconGoogle360;\n } else if (type === MEDIA_TYPES.MAPFLOORPLAN) {\n return IconMapFloorPlan;\n } else if (type === MEDIA_TYPES.TYPEFORM) {\n return IconTypeForm;\n } else if (type === MEDIA_TYPES.SHAPESPARK) {\n return IconShapeSpark;\n } else if (type === MEDIA_TYPES.SKETCH_FAB) {\n return IconSketchFab;\n } else if (type === MEDIA_TYPES.LUMA) {\n return IconMediaLumaAi;\n } else if (type === MEDIA_TYPES.MODEL_3D) {\n return IconSketchFab;\n } else {\n return null;\n }\n};\n\nconst getTypeLabel = (type) => {\n if (type === MEDIA_TYPES.IMAGE) {\n return 'INFO';\n } else if (type === MEDIA_TYPES.PDF) {\n return 'PDF';\n } else if (type === MEDIA_TYPES.MAPFLOORPLAN) {\n return '2D Map/Floor Plan';\n } else if (type === MEDIA_TYPES.GOOGLE360) {\n return 'Google 360';\n } else if (type === MEDIA_TYPES.SKETCH_FAB) {\n return 'Sketch Fab';\n } else if (type === MEDIA_TYPES.SHAPESPARK) {\n return 'Shape Spark';\n } else if (type === MEDIA_TYPES.LUMA) {\n return 'Luma’s NeRF';\n } else if (type === MEDIA_TYPES.MODEL_3D) {\n return 'Model 3D';\n } else return type;\n};\n\nconst MediaHotspot = ({ isShowMapFloorPlanButton, ...props }) => {\n const { title, type } = props.data;\n\n const isAirBalloonStyle = useMemo(\n () => props.hotspotStyle === HOTSPOT_UI.AIR_BALLOON,\n [props.hotspotStyle]\n );\n\n const Icon = getIcon(type);\n if (!Icon) {\n return null;\n }\n\n const typeLabel = getTypeLabel(type);\n\n const onClickHotspot = (e) => {\n e.stopPropagation();\n if (props.isHover) {\n props.toggleHover(false);\n }\n props.onClick();\n };\n\n if (type === MEDIA_TYPES.MAPFLOORPLAN && !isShowMapFloorPlanButton)\n return null;\n\n if (type === MEDIA_TYPES.INFO_TAG) return ;\n\n if (props?.hotspot?.configs)\n return ;\n\n return (\n <>\n props.toggleHover(true)}\n onMouseEnter={props.hoverIn}\n onMouseLeave={props.hoverOut}\n >\n \n
\n

{limitLetters(title, 18)}

\n
\n
\n

{typeLabel}

\n
\n \n
\n {isAirBalloonStyle ? (\n
\n ) : (\n \n )}\n\n {props.hotspot.iconUrl ? (\n \n ) : (\n \n )}\n
\n {props.visited && (\n
\n \n
\n )}\n \n \n );\n};\n\nexport default MediaHotspot;\n","import React from 'react';\nimport HOTSPOT_TYPE from '../../../consts/hotspotType.const';\nimport SceneHotspotIcon from './scene';\nimport MediaHotspotIcon from './media';\n\nconst HotspotIcon = (props) => {\n const { type, scene, media, index, tour, isActiveIcon } = props;\n const Icon =\n type === HOTSPOT_TYPE.SCENE ? SceneHotspotIcon : MediaHotspotIcon;\n const data = type === HOTSPOT_TYPE.SCENE ? { ...scene } : { ...media };\n\n return (\n \n );\n};\n\nexport default HotspotIcon;\n","import React, { useState, useRef } from 'react';\nimport { Html } from '@react-three/drei';\nimport HOTSPOT_TYPE from '../../consts/hotspotType.const';\nimport HotspotIcon from './icons';\nimport { trackEventByType, EVENT_TYPE } from '../../gaTracking';\n\nconst HOVERzINDEX = '100';\nconst zIndexRange1 = [50, 0];\nconst zIndexRangeHover = [100, 100];\n\nexport const HotspotSingle = (props) => {\n const elRef = useRef();\n const [x, y, z] = props.position;\n const [zIndex, setZIndex] = useState('0');\n const [zIndexRange, setZIndexRange] = useState(zIndexRange1);\n const [hovering, setHovering] = useState(false);\n\n const hoverToggled = (isHover) => {\n const parentNode = elRef.current && elRef.current.parentNode;\n setHovering(Boolean(isHover));\n if (isHover) {\n setZIndexRange(zIndexRangeHover);\n if (parentNode) {\n setZIndex(parentNode.style.zIndex);\n parentNode.style.zIndex = HOVERzINDEX;\n }\n } else {\n setTimeout(() => {\n setZIndexRange(zIndexRange1);\n if (parentNode) {\n parentNode.style.zIndex = zIndex;\n }\n }, 0);\n }\n };\n\n return (\n \n \n hoverToggled(val)}\n hoverIn={() => hoverToggled(true)}\n hoverOut={() => hoverToggled(false)}\n visited={props.visited}\n color={props.color || ''}\n scope={props.scope}\n history={props.history}\n hotspotHistory={props.hotspotHistory}\n />\n \n \n );\n};\n\nconst HotspotList = (props) => {\n const hotspots = props.hotspots.filter(\n (hs) => hs.scene || (hs.media && !hs.media.audio)\n );\n\n if (!hotspots || !hotspots.length) {\n return null;\n }\n const onClickHotspot = (hs) => {\n if (hs.type === HOTSPOT_TYPE.MEDIA) {\n trackEventByType(EVENT_TYPE.HOTSPOT_FROM_HOTSPOT, hs.media.id);\n props.onClickMedia(hs.media.id);\n } else {\n trackEventByType(EVENT_TYPE.SCENE_FROM_HOTSPOT, hs.scene.id);\n props.onClickJumpSpot(hs.scene.id);\n }\n };\n\n return (\n <>\n {hotspots.map((hs, index) => (\n onClickHotspot(hs)}\n />\n ))}\n \n );\n};\n\nexport default HotspotList;\n","import React, { useMemo } from 'react';\nimport * as THREE from 'three';\nimport './marker.scss';\nimport { HotspotSingle } from '../hotspots';\n\nconst Line = (props) => {\n const [x1, y1, z1] = props.source;\n const source = useMemo(() => new THREE.Vector3(x1, y1, z1), [x1, y1, z1]);\n\n // const source = new THREE.Vector3(x1, y1, z1)\n const [x2, y2, z2] = props.target;\n const target = useMemo(() => new THREE.Vector3(x2, y2, z2), [x2, y2, z2]);\n const lineGeometry = useMemo(() => {\n const line = new THREE.BufferGeometry().setFromPoints([source, target]);\n return line;\n }, [source, target]);\n return (\n \n \n \n );\n};\n\nexport const Point = (props) => {\n const { visible } = props.aerial.coords;\n if (!visible) {\n return null;\n }\n const { bubbleCoords } = props.aerial;\n const { x, y, z } = bubbleCoords;\n return (\n \n \n \n \n \n \n \n \n \n \n props.onClickBubble(props.aerial)}\n scope={props.scope}\n history={props.history}\n hotspotHistory={props.hotspotHistory}\n />\n \n );\n};\n","import * as THREE from 'three';\nimport { isAerial } from '../../consts/sceneType.const';\n\nexport const SCALE = 1.0;\n\nconst isValidCoords = (coords) =>\n !(\n typeof coords !== 'object' ||\n typeof coords[0] !== 'number' ||\n typeof coords[1] !== 'number'\n );\n\nexport const queryAerialScenes = (scenes = []) => {\n return scenes.filter(\n (scene) => isAerial(scene.type) && isValidCoords(scene.coordinates)\n );\n};\n\nexport const queryMapScenes = (scenes = []) => {\n return scenes.filter(\n (scene) => scene.showOnMap && isValidCoords(scene.coordinates)\n );\n};\n\nexport const calc3DLocation = (center, point, ratio, boxWidth) => {\n if (isValidCoords(point)) {\n return {\n x: 0,\n y: 0,\n visible: false,\n };\n }\n const coords = {\n x: (point.lng - center.lng) / ratio,\n y: (point.lat - center.lat) / ratio,\n };\n if (\n Math.abs(coords.x) >= boxWidth / 2 ||\n Math.abs(coords.y) >= boxWidth / 2\n ) {\n coords.visible = false;\n } else {\n coords.visible = true;\n }\n return coords;\n};\n\nconst BUBBLE_WIDTH = 1 * SCALE;\nconst BUBBLE_OFFSET = BUBBLE_WIDTH * 2;\n\nexport const distance2d = (a, b) => {\n const a1 = new THREE.Vector2(a.x, a.y);\n const b1 = new THREE.Vector2(b.x, b.y);\n return a1.distanceTo(b1);\n};\n\nexport const getBubbleDefaultPosition = (aerials = []) => {\n return aerials.map((aerial) => ({\n ...aerial,\n bubbleCoords: {\n x: aerial.coords.x,\n y: aerial.coords.y,\n z: 1.6,\n },\n }));\n};\n\nexport const getCenter = (aerials = []) => {\n const totals = aerials.reduce(\n (acc, aerial) => {\n acc.x += aerial.bubbleCoords.x;\n acc.y += aerial.bubbleCoords.y;\n return acc;\n },\n { x: 0, y: 0 }\n );\n return {\n x: totals.x / aerials.length,\n y: totals.y / aerials.length,\n };\n};\n\nfunction getRandomNumber(min, max) {\n return Math.random() * (max - min) + min;\n}\n\nexport const separateAerials = (aerials = [], centerCoord = null) => {\n const center = centerCoord || getCenter(aerials);\n aerials.forEach((aerial) => {\n const { x, y } = aerial.bubbleCoords;\n const vecCenter = new THREE.Vector2(x - center.x, y - center.y);\n if (vecCenter.x === 0 && vecCenter.y === 0) {\n vecCenter.x = getRandomNumber(0, 1);\n vecCenter.y = getRandomNumber(0, 1);\n }\n window.logMessage(vecCenter.x, vecCenter.y);\n vecCenter.normalize();\n window.logMessage(vecCenter.x, vecCenter.y);\n aerial.bubbleCoords = {\n x: aerial.bubbleCoords.x + vecCenter.x / 5,\n y: aerial.bubbleCoords.y + vecCenter.y / 5,\n z: aerial.bubbleCoords.z,\n };\n window.logMessage(aerial.id, aerial.bubbleCoords.x, aerial.bubbleCoords.y);\n });\n};\n\nexport const calcBubblePosition = (aerials = [], times = 0) => {\n if (times >= 10) {\n window.logMessage('too much loop, stop!');\n return aerials;\n }\n window.logMessage('calcBubblePosition.loop', times);\n const collapsedAerials = {};\n const objectAerials = {};\n let haveCollapsed = false;\n aerials.forEach((aerial, index) => {\n objectAerials[aerial.id] = aerial;\n if (typeof collapsedAerials[aerial.id] === 'undefined') {\n collapsedAerials[aerial.id] = {};\n }\n aerials.forEach((aerial2, jindex) => {\n if (typeof collapsedAerials[aerial2.id] === 'undefined') {\n collapsedAerials[aerial2.id] = {};\n }\n if (index !== jindex) {\n if (\n distance2d(aerial.bubbleCoords, aerial2.bubbleCoords) < BUBBLE_OFFSET\n ) {\n collapsedAerials[aerial.id][aerial.id] = true;\n collapsedAerials[aerial.id][aerial2.id] = true;\n collapsedAerials[aerial2.id][aerial.id] = true;\n collapsedAerials[aerial2.id][aerial2.id] = true;\n haveCollapsed = true;\n }\n }\n });\n });\n if (haveCollapsed) {\n window.logMessage('collapsedAerials', collapsedAerials);\n const { grouped, uniques } = getGroupAerials(collapsedAerials);\n window.logMessage('grouped', grouped);\n Object.keys(grouped).forEach((key) => {\n const currGroup = grouped[key].map((g) => objectAerials[g]);\n const currCenter = { ...objectAerials[key].bubbleCoords };\n separateAerials(currGroup, currCenter);\n });\n window.logMessage('uniques', uniques);\n Object.values(uniques).forEach((unique) => {\n separateAerials(unique.map((u) => objectAerials[u]));\n });\n return calcBubblePosition(aerials, times + 1);\n }\n return aerials;\n};\n\nconst getGroupAerials = (aerials = {}) => {\n const uniques = {};\n Object.keys(aerials).forEach((key) => {\n const currA = Object.keys(aerials[key]);\n window.logMessage('currA', [...currA]);\n window.logMessage('curr uniques', Object.values(uniques));\n if (currA.length && !isArr1ChildOfArr2(currA, Object.values(uniques))) {\n uniques[key] = currA;\n }\n });\n window.logMessage('uniques', { ...uniques });\n const grouped = {};\n const toGroup = {};\n Object.keys(uniques).forEach((k1) => {\n Object.keys(uniques).forEach((k2) => {\n if (k1 !== k2) {\n const childArrId = getChildGroup(uniques[k1], uniques[k2]);\n if (childArrId !== 0) {\n const childId = childArrId === 1 ? k1 : k2;\n const parentId = childArrId === 2 ? k1 : k2;\n delete grouped[childId];\n delete toGroup[childId];\n if (!grouped[parentId]) {\n grouped[parentId] = uniques[parentId].filter(\n (k3) => k3 !== parentId\n );\n }\n toGroup[parentId] = parentId;\n }\n }\n });\n });\n Object.keys(toGroup).forEach((key) => {\n if (uniques[key]) {\n delete uniques[key];\n }\n });\n window.logMessage('toGroup', { ...toGroup });\n return { uniques, grouped };\n};\n\nconst isArr1ChildOfArr2 = (arr = [], arr2 = []) =>\n !!arr2.find((aChild) => isArr1EqualsArr2(arr, aChild));\n\nconst isArr1InArr2 = (arr = [], arr2 = []) =>\n arr.every((val) => arr2.indexOf(val) >= 0);\n\nconst isArr1EqualsArr2 = (arr = [], arr2 = []) =>\n arr.every((val) => arr2.indexOf(val) >= 0) && arr.length === arr2.length;\n\nconst getChildGroup = (arr = [], arr2 = []) => {\n if (isArr1InArr2(arr, arr2)) {\n return 1;\n }\n if (isArr1InArr2(arr2, arr)) {\n return 2;\n }\n return 0;\n};\n\nwindow.getChildGroup = getChildGroup;\n","import React, { useRef, useEffect, useState, useMemo } from 'react';\nimport { useThree } from '@react-three/fiber';\nimport { Texture, FrontSide } from 'three';\nimport { gsap } from 'gsap';\nimport { cleanLoadTexture } from '../../utils/textureHelper';\nimport { get2DScreenPosition } from '../../utils/positionHelper';\nimport configs from '../../configs';\nimport { Point } from './marker';\nimport * as bubbleUtils from './bubblePositioning';\n\nconst { SCALE } = bubbleUtils;\n\nconst BOX_WIDTH = 10 * SCALE;\nexport const MAP_SIZE = 1024; // max: 1280\nexport const MAP_STYLE = {\n STREET: 'mapbox/streets-v11',\n SATELLITE: 'mapbox/satellite-v9',\n SATELLITE_STREET: 'mapbox/satellite-streets-v11',\n // CUSTOM: 'benrobbins/ckg135uru2tue19qmssh0ob8t',\n};\n\nconst getMapBoxImgUrl = (lat, lng, zoom, bearing, mapConfig) => {\n let styles = MAP_STYLE.SATELLITE_STREET;\n let mapBoxToken = configs.mapBoxToken;\n if (mapConfig.mapBoxAccessToken) {\n mapBoxToken = mapConfig.mapBoxAccessToken;\n }\n if (mapConfig.mapBoxStyle) {\n styles = mapConfig.mapBoxStyle;\n }\n return `https://api.mapbox.com/styles/v1/${styles}/static/${lng},${lat},${zoom},${\n bearing || '0'\n }/${MAP_SIZE}x${MAP_SIZE}@2x?access_token=${mapBoxToken}`;\n};\n\nconst sidePxUrl = configs.baseUrl + '/assets/images/earth_crust_px.jpg';\nconst sideNxUrl = configs.baseUrl + '/assets/images/earth_crust_nx.jpg';\nconst sidePyUrl = configs.baseUrl + '/assets/images/earth_crust_py.jpg';\nconst sideNyUrl = configs.baseUrl + '/assets/images/earth_crust_ny.jpg';\n\nconst rotateByDeg = (deg) => -(deg / 360) * 2 * Math.PI;\n\nconst currRotate = {\n z: 0,\n};\n\n// const getBearing = (deg) => {\n// const bearing = Math.round(deg / 90) * 90 - 45;\n// window.logMessage('bearing', bearing);\n// return bearing;\n// };\n\nconst SNAP_SPEED = 0.5;\n\n// let currentBearing = 0;\nconst ROTATE_MAP_IMAGE = false;\n\nfunction Box(props) {\n const obj = useRef();\n const { mapConfig, rotateDeg, updateCenter, aerialScenes, isDragging } =\n props;\n const [aerials, setAerials] = useState([]);\n const [iconVisible, setIconVisible] = useState(false);\n const { gl, camera, size } = useThree();\n\n useEffect(() => {\n camera.position.set(0, -10 * SCALE, 9 * SCALE);\n camera.lookAt(0, 0, 0);\n }, [camera]);\n\n const maxAnisotropy = useMemo(() => gl.capabilities.getMaxAnisotropy(), [gl]);\n\n const [texture, setTexture] = useState(null);\n const [t0, setT0] = useState(null);\n const [t90, setT90] = useState(null);\n const [t180, setT180] = useState(null);\n const [t270, setT270] = useState(null);\n\n useEffect(() => {\n if (obj.current) {\n const newZ = rotateByDeg(rotateDeg);\n if (isDragging) {\n obj.current.rotation.z = newZ;\n } else {\n currRotate.z = obj.current.rotation.z;\n gsap.to(currRotate, {\n z: newZ,\n duration: SNAP_SPEED,\n onUpdate: () => {\n if (obj.current) {\n obj.current.rotation.z = currRotate.z;\n }\n },\n });\n // if (ROTATE_MAP_IMAGE) {\n // const bearing = getBearing(rotateDeg)\n // if (bearing !== currentBearing) {\n // if (bearing === 90) {\n // setTexture(t90)\n // } else if (bearing === 180) {\n // setTexture(t180)\n // } else if (bearing === 270) {\n // setTexture(t270)\n // } else {\n // setTexture(t0)\n // }\n // currentBearing = bearing\n // }\n // }\n }\n }\n }, [rotateDeg, isDragging, t0, t90, t180, t270]);\n\n useEffect(() => {\n const {\n center: [lng, lat],\n } = mapConfig;\n const zoom = Math.floor(mapConfig.zoom * 100) / 100;\n window.logMessage('aerialScenes', aerialScenes);\n cleanLoadTexture(\n getMapBoxImgUrl(lat, lng, zoom, null, mapConfig),\n maxAnisotropy\n ).then((img) => {\n setTexture(img);\n setT0(img);\n setTimeout(() => setIconVisible(true), 500);\n });\n if (ROTATE_MAP_IMAGE) {\n cleanLoadTexture(\n getMapBoxImgUrl(lat, lng, zoom, 90, mapConfig),\n maxAnisotropy\n ).then(setT90);\n cleanLoadTexture(\n getMapBoxImgUrl(lat, lng, zoom, 180, mapConfig),\n maxAnisotropy\n ).then(setT180);\n cleanLoadTexture(\n getMapBoxImgUrl(lat, lng, zoom, 270, mapConfig),\n maxAnisotropy\n ).then(setT270);\n }\n const positioned = bubbleUtils.getBubbleDefaultPosition(\n aerialScenes.map((scene) => {\n scene.coords = {\n x: ((scene.mapCoords.x - MAP_SIZE / 2) / MAP_SIZE) * BOX_WIDTH,\n y: ((MAP_SIZE / 2 - scene.mapCoords.y) / MAP_SIZE) * BOX_WIDTH,\n };\n if (\n Math.abs(scene.coords.x) < BOX_WIDTH / 2 &&\n Math.abs(scene.coords.y) < BOX_WIDTH / 2\n ) {\n scene.coords.visible = true;\n }\n return scene;\n })\n );\n setAerials(\n bubbleUtils.calcBubblePosition(positioned.filter((p) => p.coords.visible))\n );\n }, [mapConfig, maxAnisotropy, aerialScenes]);\n\n const { width, height } = size;\n useEffect(() => {\n const center = get2DScreenPosition(\n { x: 0, y: 0, z: 0 },\n camera,\n width,\n height\n );\n updateCenter(center);\n }, [width, height, camera, updateCenter, isDragging]);\n\n const sideTexture = new Texture();\n const [pxTexture, setPxTexture] = useState(sideTexture);\n const [nxTexture, setNxTexture] = useState(sideTexture);\n const [pyTexture, setPyTexture] = useState(sideTexture);\n const [nyTexture, setNyTexture] = useState(sideTexture);\n\n useEffect(() => {\n window.logMessage('load side textures for map');\n cleanLoadTexture(sidePxUrl, maxAnisotropy).then((txt) => setPxTexture(txt));\n cleanLoadTexture(sideNxUrl, maxAnisotropy).then((txt) => setNxTexture(txt));\n cleanLoadTexture(sidePyUrl, maxAnisotropy).then((txt) => setPyTexture(txt));\n cleanLoadTexture(sideNyUrl, maxAnisotropy).then((txt) => setNyTexture(txt));\n }, [maxAnisotropy]);\n\n return (\n \n \n \n \n {/* px */}\n \n {/* nx */}\n \n {/* py */}\n \n {/* ny */}\n {/* map face */}\n \n {/* pz */}\n {/* end map face */}\n \n {/* nz */}\n \n {iconVisible &&\n aerials.map((aerial, index) => (\n true}\n onClickBubble={props.onClickBubble}\n visited={false}\n scope={props.scope}\n history={props.history}\n hotspotHistory={props.hotspotHistory}\n // visited={props.hotspotHistory.indexOf(aerial._id) !== -1}\n />\n ))}\n \n );\n}\n\nexport default Box;\n","export default __webpack_public_path__ + \"static/media/callout_aerial.7bb6ada6.svg\";","import React from 'react';\nimport aerialIcon from './callout_aerial.svg';\nimport './mapLoading.scss';\n\nconst MapLoading = () => {\n return (\n
\n \"Map\n
\n );\n};\n\nexport default MapLoading;\n","import { vec4, mat4 } from 'gl-matrix';\nimport { MercatorCoordinate, LngLat } from 'mapbox-gl';\n\nfunction clamp(n, min, max) {\n return Math.min(max, Math.max(min, n));\n}\n\nfunction mercatorXfromLng(lng) {\n return (180 + lng) / 360;\n}\n\nfunction mercatorYfromLat(lat) {\n return (\n (180 -\n (180 / Math.PI) *\n Math.log(Math.tan(Math.PI / 4 + (lat * Math.PI) / 360))) /\n 360\n );\n}\n\nconst earthRadius = 6371008.8;\nconst earthCircumfrence = 2 * Math.PI * earthRadius; // meters\n\nfunction circumferenceAtLatitude(latitude) {\n return earthCircumfrence * Math.cos((latitude * Math.PI) / 180);\n}\n\nfunction mercatorZfromAltitude(altitude, lat) {\n return altitude / circumferenceAtLatitude(lat);\n}\n\nconst defaultOptions = {\n center: [0, 0],\n zoom: 0,\n bearing: 0,\n pitch: 0,\n width: 0,\n height: 0,\n};\n\nclass MapBoxUtils {\n tileSize = 512;\n scale = 1;\n worldSize = 1;\n width = 0;\n height = 0;\n center = new LngLat(0, 0);\n _fov = 0.6435011087932844;\n maxValidLatitude = 85.051129;\n zoom = 1;\n\n constructor(options) {\n options = { ...defaultOptions, ...options };\n this.width = options.width;\n this.height = options.height;\n this._pitch = options.pitch;\n this.zoom = options.zoom;\n this.scale = this.zoomScale(options.zoom);\n this.worldSize = this.tileSize * this.scale;\n this.center = LngLat.convert(options.center);\n this.constrain();\n this.calcMatrixes();\n }\n\n tProject(lnglat) {\n const lat = clamp(\n lnglat.lat,\n -this.maxValidLatitude,\n this.maxValidLatitude\n );\n return {\n x: mercatorXfromLng(lnglat.lng) * this.worldSize,\n y: mercatorYfromLat(lat) * this.worldSize,\n };\n }\n\n get point() {\n return this.tProject(this.center);\n }\n get size() {\n return {\n x: this.width,\n y: this.height,\n };\n }\n\n calcMatrixes() {\n if (!this.height) return;\n\n const cameraToCenterDistance =\n (0.5 / Math.tan(this._fov / 2)) * this.height;\n const halfFov = this._fov / 2;\n const groundAngle = Math.PI / 2 + this._pitch;\n const topHalfSurfaceDistance =\n (Math.sin(halfFov) * cameraToCenterDistance) /\n Math.sin(clamp(Math.PI - groundAngle - halfFov, 0.01, Math.PI - 0.01));\n const point = this.point;\n const x = point.x,\n y = point.y;\n\n const furthestDistance =\n Math.cos(Math.PI / 2 - this._pitch) * topHalfSurfaceDistance +\n cameraToCenterDistance;\n const farZ = furthestDistance * 1.01;\n const nearZ = this.height / 50;\n\n let m = new Float64Array(16);\n mat4.perspective(m, this._fov, this.width / this.height, nearZ, farZ);\n\n mat4.scale(m, m, [1, -1, 1]);\n mat4.translate(m, m, [0, 0, -cameraToCenterDistance]);\n mat4.rotateX(m, m, this._pitch);\n mat4.rotateZ(m, m, 0);\n mat4.translate(m, m, [-x, -y, 0]);\n this.mercatorMatrix = mat4.scale([], m, [\n this.worldSize,\n this.worldSize,\n this.worldSize,\n ]);\n\n // scale vertically to meters per pixel (inverse of ground resolution):\n mat4.scale(m, m, [\n 1,\n 1,\n mercatorZfromAltitude(1, this.center.lat) * this.worldSize,\n 1,\n ]);\n\n this.projMatrix = m;\n\n m = mat4.create();\n mat4.scale(m, m, [this.width / 2, -this.height / 2, 1]);\n mat4.translate(m, m, [1, -1, 0]);\n this.labelPlaneMatrix = m;\n\n this.pixelMatrix = mat4.multiply(\n new Float64Array(16),\n this.labelPlaneMatrix,\n this.projMatrix\n );\n }\n\n constrain() {\n if (!this.center || !this.width || !this.height || this._constraining)\n return;\n\n this._constraining = true;\n\n let minY = -90;\n let maxY = 90;\n let minX = -180;\n let maxX = 180;\n let sy, sx, x2, y2;\n const unmodified = this._unmodified;\n\n const point = this.point;\n\n // how much the map should scale to fit the screen into given latitude/longitude ranges\n const s = Math.max(sx || 0, sy || 0);\n\n if (s) {\n this.center = this.unproject({\n x: sx ? (maxX + minX) / 2 : point.x,\n y: sy ? (maxY + minY) / 2 : point.y,\n });\n this.zoom += this.scaleZoom(s);\n this._unmodified = unmodified;\n this._constraining = false;\n return;\n }\n\n // pan the map if the screen goes off the range\n if (x2 !== undefined || y2 !== undefined) {\n this.center = this.unproject({\n x: x2 !== undefined ? x2 : point.x,\n y: y2 !== undefined ? y2 : point.y,\n });\n }\n\n this._unmodified = unmodified;\n this._constraining = false;\n }\n\n zoomScale(zoom) {\n return Math.pow(2, zoom);\n }\n scaleZoom(scale) {\n return Math.log(scale) / Math.LN2;\n }\n\n locationCoordinate(lnglat) {\n return MercatorCoordinate.fromLngLat(LngLat.convert(lnglat));\n }\n\n project(lnglat) {\n return this.coordinatePoint(this.locationCoordinate(lnglat));\n }\n\n unproject(point) {\n return new MercatorCoordinate(\n point.x / this.worldSize,\n point.y / this.worldSize\n ).toLngLat();\n }\n\n coordinatePoint(coord) {\n const p = [coord.x * this.worldSize, coord.y * this.worldSize, 0, 1];\n vec4.transformMat4(p, p, this.pixelMatrix);\n return {\n x: p[0] / p[3],\n y: p[1] / p[3],\n };\n }\n}\n\nexport default MapBoxUtils;\n","import React, { Suspense } from 'react';\n\nimport { Color } from 'three';\nimport { Canvas } from '@react-three/fiber';\nimport { connect } from 'react-redux';\n\nimport { ensureSubscriptionData } from 'utils';\nimport { goToScene, setAerialMapData } from 'store/actions';\nimport Popup from 'components/popup';\nimport { trackEventByType, EVENT_TYPE } from 'gaTracking';\n\nimport Box, { MAP_SIZE } from './box';\nimport { queryMapScenes } from './bubblePositioning';\nimport MapLoading from './mapLoading';\nimport MapBoxUtils from './mapBoxUtils';\n\nimport './style.scss';\n\nclass TheedMap extends React.Component {\n state = {\n isDragging: false,\n angleZ: -45,\n mapRotate: 0,\n lightSettings: {\n intensity: 0.5,\n color: new Color('white'),\n },\n };\n center = {\n x: 0,\n y: 0,\n };\n oldCoord = {\n x: 0,\n y: 0,\n };\n aerialScenes = [];\n interval = null;\n\n componentDidMount() {\n if (this.interval) {\n clearInterval(this.interval);\n }\n this.aerialScenes = queryMapScenes(this.props.scenes);\n if (!this.props.aerialDataReady) {\n this.calcAerialScenesPosition();\n }\n if (this.props.mapConfig) {\n this.applyMapConfig(this.props.mapConfig);\n }\n }\n\n componentWillUnmount() {\n if (this.interval) {\n clearInterval(this.interval);\n }\n }\n\n applyMapConfig(mapConfig) {\n const lightSettings = { ...this.state.lightSettings };\n if (mapConfig.light) {\n if (typeof mapConfig.light.intensity === 'number') {\n lightSettings.intensity += mapConfig.light.intensity;\n }\n if (typeof mapConfig.light.color === 'string') {\n lightSettings.color.set(mapConfig.light.color);\n }\n }\n this.setState({ lightSettings });\n }\n\n setCenter = ({ x, y, visible }) => {\n this.center = { x, y, visible };\n window.logMessage('this.center', { ...this.center });\n };\n\n calcAerialScenesPosition = () => {\n const { center, zoom } = this.props.mapConfig;\n const map = new MapBoxUtils({\n width: MAP_SIZE,\n height: MAP_SIZE,\n center,\n zoom,\n });\n this.aerialScenes.forEach((aerial) => {\n var coordinates = [aerial.coordinates[0], aerial.coordinates[1]];\n aerial.mapCoords = map.project(coordinates);\n window.logMessage('aerial.mapCoords', { ...aerial.mapCoords });\n });\n this.props.setAerialMapData(this.aerialScenes);\n };\n\n onClickBubble = ({ id, groupId }) => {\n window.logMessage('id, groupId', id, groupId);\n this.props.goToScene(groupId, id);\n trackEventByType(EVENT_TYPE.SCENE_FROM_HOTSPOT, id);\n };\n\n handlePointerDown = (e) => {\n this.oldCoord.x = e.pageX;\n this.oldCoord.y = e.pageY;\n this.setState({ isDragging: true });\n };\n\n handlePointerUp = () => {\n const newAngleZ = Math.round((this.state.angleZ - 45) / 90) * 90 + 45;\n this.setState({\n isDragging: false,\n angleZ: newAngleZ,\n mapRotate: newAngleZ + 45,\n });\n };\n\n handlePointerMove = (e) => {\n if (this.state.isDragging) {\n const coord = { x: e.pageX, y: e.pageY };\n const coord1 = this.centralizeCoordinates(\n this.oldCoord.x,\n this.oldCoord.y\n );\n const coord2 = this.centralizeCoordinates(coord.x, coord.y);\n const angle = this.AngleBetweenVectors(\n coord1.x,\n coord1.y,\n coord2.x,\n coord2.y\n );\n this.setState({ angleZ: this.state.angleZ + angle });\n this.oldCoord = {\n ...coord,\n };\n }\n };\n\n centralizeCoordinates = (x, y) => ({\n x: x - this.center.x,\n y: y - this.center.y,\n });\n\n AngleBetweenVectors = (Ax, Ay, Bx, By) => {\n const magA = Math.sqrt(Ax * Ax + Ay * Ay);\n const magB = Math.sqrt(Bx * Bx + By * By);\n const magAmagB = magA * magB;\n if (magAmagB === 0) return 0;\n const sinTheta = (Ax * By - Bx * Ay) / magAmagB;\n const cosTheta = (Ax * Bx + Ay * By) / magAmagB;\n const theta = Math.atan2(sinTheta, cosTheta);\n return (theta * 180) / Math.PI;\n };\n\n render() {\n const { mapConfig, aerialDataReady, aerialMapData } = this.props;\n const { angleZ, isDragging, lightSettings } = this.state;\n\n return (\n false}>\n \n {aerialDataReady ? (\n \n \n \n \n \n \n ) : (\n \n )}\n \n \n );\n }\n}\n\nconst mapStateToProps = ({\n json,\n hotspotHistory,\n aerialMapData,\n aerialDataReady,\n tour,\n}) => ({\n mapConfig: {\n center: [json.tour.mapCoordinates[0], json.tour.mapCoordinates[1]],\n zoom: json.tour.mapCoordinates[2],\n light: {\n color: json.tour.mapLightColor || 'white',\n intensity: json.tour.mapLightIntensity || 0.5,\n },\n mapBoxAccessToken: json.tour.mapBoxAccessToken,\n mapBoxStyle: json.tour.mapBoxStyle,\n },\n brandColor: json.tour.menuHighlightColor,\n scenes: json.scenes,\n tour: json.tour,\n hotspotHistory,\n aerialMapData,\n aerialDataReady,\n scope: ensureSubscriptionData(tour.subscriptionPlan.scopes),\n});\n\nconst mapDispatchToProps = {\n goToScene,\n setAerialMapData,\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(TheedMap);\n","import { useEffect, useMemo } from 'react';\n\nimport { useParams } from 'react-router-dom';\n\nimport configs from 'configs';\nimport SocialPopup from 'containers/socialPopup';\nimport ThreeMap from 'containers/threedMap';\n// import HotspotPopup from '../mediaPopup';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { setOpenPopUp } from 'store/actions';\n\nconst PopupHandle = ({ ...props }) => {\n const { hotspotId } = useParams();\n const dispatch = useDispatch();\n const { audio } = useSelector((state) => state);\n const { media } = useSelector((state) => state.json);\n\n useEffect(() => {\n if (!hotspotId) return;\n }, [hotspotId]);\n\n const isConfigRoute = useMemo(\n () => [configs.mapRoute, configs.socialRoute].includes(hotspotId),\n [hotspotId]\n );\n\n const currentHotspot = useMemo(() => {\n if (!hotspotId || isConfigRoute) return;\n const currentMedia = media.find((m) => m.id === hotspotId) || {};\n return {\n id: currentMedia.friendlyName,\n _id: currentMedia._id,\n media: currentMedia,\n };\n }, [hotspotId, isConfigRoute, media]);\n\n useEffect(() => {\n if (currentHotspot) {\n dispatch(setOpenPopUp(true));\n }\n }, [audio.enable, currentHotspot, dispatch]);\n\n if (!hotspotId) return null;\n\n if (isConfigRoute) {\n if (hotspotId === configs.socialRoute) {\n return ;\n }\n if (hotspotId === configs.mapRoute) {\n return ;\n }\n }\n\n return (\n <>\n {/* {currentHotspot && (\n \n )} */}\n \n );\n};\n\nexport default PopupHandle;\n","import React, { useRef, useEffect } from 'react';\nimport { useSelector } from 'react-redux';\n\nwindow.haveAudioSrc = false;\n\nconst AmbientAudio = (props) => {\n const { audios } = props;\n\n const audioRef = useRef();\n const autoPlay = useSelector((state) => state.audio.autoPlay);\n\n useEffect(() => {\n const src = audios.map((item) => item.soundUrl);\n window.haveAudioSrc = Boolean(src);\n }, [audios]);\n\n return (\n <>\n {audios.map((item, index) => {\n return (\n (audioRef[index] = ref)}\n className=\"sceneAudio\"\n autoPlay={autoPlay}\n loop={item.repeat}\n key={index}\n src={item.soundUrl}\n >\n );\n })}\n \n );\n};\n\nexport default AmbientAudio;\n","import React, { useEffect, useState } from 'react';\nimport { connect, useSelector } from 'react-redux';\nimport MEDIA_TYPES from '../../consts/mediaType.const';\nimport AmbientAudio from './ambient';\n\nconst Audio = (props) => {\n const {\n available,\n enabled,\n scene: { hotspots },\n } = props;\n\n const { isOpenPopUp } = useSelector((state) => state);\n\n const [audioUrl, setAudioUrl] = useState([{ repeat: '', soundUrl: '' }]);\n // PR\n useEffect(() => {\n let aUrl = [];\n if (available && enabled && hotspots && !isOpenPopUp) {\n const hotspot = hotspots.filter(\n (h) => h.media && h.media.type === MEDIA_TYPES.AUDIO && h.media.soundUrl\n );\n const audioConfigs = hotspot.map((item) => ({\n repeat: item.configs ? JSON.parse(item.configs).audioRepeat : true,\n soundUrl: item.media.soundUrl,\n }));\n\n aUrl = hotspot ? audioConfigs : [{ repeat: '', soundUrl: '' }];\n }\n if (aUrl[0]?.soundUrl !== audioUrl[0]?.soundUrl) {\n setAudioUrl(aUrl);\n window.logMessage('audioUrl', aUrl);\n }\n }, [available, enabled, hotspots, audioUrl, isOpenPopUp]);\n\n return ;\n};\n\nconst mapStateToProps = ({ audio: { enabled, available } }) => ({\n enabled,\n available,\n});\n\nexport default connect(mapStateToProps)(Audio);\n","import React, { useEffect, useRef } from 'react';\nimport { useSelector } from 'react-redux';\n\nwindow.tourAudioPlayed = false;\n\nconst TourAudio = () => {\n const audioRef = useRef();\n const { featuredMedia } = useSelector((state) => state.json);\n const enabled = useSelector((state) => state.audio.enabled);\n const autoPlay = useSelector((state) => state.audio.autoPlay);\n const isOpenPopUp = useSelector((state) => state.isOpenPopUp);\n\n useEffect(() => {\n const audioSoundUrl = featuredMedia?.audio?.soundUrl || '';\n if (enabled && audioSoundUrl) {\n audioRef.current.src = audioSoundUrl;\n if (autoPlay) {\n audioRef.current.play();\n window.tourAudioPlayed = true;\n } else {\n audioRef.current.pause();\n }\n } else {\n audioRef.current.src = '';\n }\n }, [autoPlay, enabled, featuredMedia, isOpenPopUp]);\n\n return (\n \n );\n};\n\nexport default TourAudio;\n","import React from 'react';\nimport { connect } from 'react-redux';\nimport Audio from './audio';\nimport TourAudio from './tourAudio';\n\nwindow.globalAudioPlayed = false;\n\nconst AmbientAudio = (props) => {\n const { spinnerOn, scene } = props;\n\n return (\n <>\n {!spinnerOn && (\n <>\n