{"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","containers/world/constant.js","containers/world/utils.js","components/Compass/RotationHandler/index.js","components/Compass/index.js","components/Compass/laban-400px.png","components/Compass/arrow-laban.png","components/KhaiHoanPrimeLayout/index.js","components/MapfoorplanModal/index.js","components/MenuForMobile/index.js","components/MenuForDesktop/index.js","containers/menuV2/ApartmentPopup.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","SET_APARTMENT_POPUP","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","apartmentPopup","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","handleMapClick","currentTarget","log","toFixed","sceneList","mikaSceneList","apartmentList","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","aparmentEnable","isLevel","lvl","isTypeOfApartment","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","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","ApartmentPopup","handleApartmentPopup","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","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","setApartmentPopup","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.7cee18ad.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\r\nexport const INITIATE = 'INITIATE';\r\nexport const INITIATED = 'INITIATED';\r\n// Tour\r\nexport const SET_TOUR_DATA = 'SET_TOUR_DATA';\r\n// Menu\r\nexport const TOGGLE_MENU = 'TOGGLE_MENU';\r\nexport const SET_MENU_POSITION = 'SET_MENU_POSITION';\r\n// Pano (Scene)\r\nexport const TOGGLE_PANO_MODE = 'TOGGLE_PANO_MODE';\r\nexport const SET_PANO_DATA = 'SET_PANO_DATA';\r\nexport const GO_TO_PANO = 'GO_TO_PANO';\r\n// Landing\r\nexport const CLOSE_LANDING = 'CLOSE_LANDING';\r\nexport const TOGGLE_LANDING = 'TOGGLE_LANDING';\r\n// Map 3D Data\r\nexport const SET_AERIAL_MAP_DATA = 'SET_AERIAL_MAP_DATA';\r\nexport const ADD_HOTSPOT_HISTORY = 'ADD_HOTSPOT_HISTORY';\r\n// Camera Control\r\nexport const SET_CONTROL_MODE = 'SET_CONTROL_MODE';\r\nexport const SET_GYRO = 'SET_GYRO';\r\nexport const SET_CENTER_LOOKAT = 'SET_CENTER_LOOKAT';\r\n\r\n// Audio\r\nexport const TOGGLE_AUDIO = 'TOGGLE_AUDIO';\r\nexport const SET_AUDIO_AVAILABLE = 'SET_AUDIO_AVAILABLE';\r\nexport const SET_AUDIO_AUTOPLAY = 'SET_AUDIO_AUTOPLAY';\r\n\r\n// TourAudio\r\nexport const SET_TOUR_AUDIO_AVAILABLE = 'SET_TOUR_AUDIO_AVAILABLE';\r\n\r\n// Dimention\r\nexport const UPDATE_DIMENTIONS = 'UPDATE_DIMENTIONS';\r\n\r\n// Blur\r\nexport const TOGGLE_BLUR = 'TOGGLE_BLUR';\r\n\r\nexport const SET_TOUR_ERROR = 'TOUR_ERROR';\r\n\r\n// View\r\nexport const SET_VIEW_MODE = 'SET_VIEW_MODE';\r\n\r\nexport const SET_AUTO_PLAY = 'SET_AUTO_PLAY';\r\n\r\nexport const UPDATE_PREV_ROTATION = 'UPDATE_PREV_ROTATION';\r\n\r\nexport const SET_AUTO_ROTATE = 'SET_AUTO_ROTATE';\r\n\r\nexport const SET_SEARCH_PARAMS = 'SET_SEARCH_PARAMS';\r\n\r\nexport const SET_OPEN_POPUP = 'SET_OPEN_POPUP';\r\n\r\nexport const UPDATE_WORLD_PARAMS = 'UPDATE_WORLD_PARAMS';\r\n\r\nexport const SET_IS_PANNING = 'SET_IS_PANNING';\r\n\r\nexport const SET_DATE_LIGHT = 'SET_DATE_LIGHT';\r\n\r\nexport const SET_APARTMENT_POPUP = 'SET_APARTMENT_POPUP';\r\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';\r\nimport { HOTSPOT_UI } from 'consts/ui.const';\r\n\r\nconst getParamsFromURL = (pathname) => {\r\n if (!pathname) return { tourId: '', groupId: '', sceneId: '', hotspotId: '' };\r\n const [, tourId, groupId, sceneId, hotspotId] = pathname.split('/');\r\n return { tourId, groupId, sceneId, hotspotId };\r\n};\r\n\r\nconst initialState = {\r\n dateLight: true,\r\n ready: false,\r\n error: null,\r\n tour: null,\r\n json: null,\r\n groups: [],\r\n scenes: [],\r\n panoMode: 'cube',\r\n showLanding: true,\r\n aerialMapData: [],\r\n aerialDataReady: false,\r\n menu: {\r\n isOpen: false,\r\n position: 'left',\r\n isoMetricMap: false,\r\n social: false,\r\n },\r\n currentScene: {},\r\n hotspotHistory: [],\r\n currentHotspot: null,\r\n dimentions: {\r\n width: 0,\r\n height: 0,\r\n dimention: 1,\r\n },\r\n shouldBlur: true,\r\n audio: {\r\n available: false,\r\n enabled: true,\r\n autoPlay: false,\r\n },\r\n tourAudio: {\r\n available: false,\r\n enabled: true,\r\n },\r\n isLandingOpen: false,\r\n controlMode: CONTROLS.ORBIT,\r\n viewMode: null,\r\n autoPlayMode: false,\r\n centerLookAt: null,\r\n subscriptionPlan: {\r\n enableBranding: false,\r\n },\r\n logoURL: null,\r\n hasLogo: false,\r\n prevRotation: 0,\r\n autoRotate: false,\r\n searchParams: {\r\n 'hotspot-ui': HOTSPOT_UI.DEFAULT,\r\n },\r\n worldParams: getParamsFromURL(window.location.pathname),\r\n apartmentPopup: false,\r\n};\r\n\r\nexport default initialState;\r\n","import * as APP_ACTION from './actionTypes';\r\nimport initialState from './state';\r\n\r\nfunction appReducer(state = initialState, action) {\r\n const { type, payload } = action;\r\n switch (type) {\r\n case APP_ACTION.INITIATED:\r\n return {\r\n ...state,\r\n ready: true,\r\n };\r\n case APP_ACTION.SET_TOUR_ERROR:\r\n return {\r\n ...state,\r\n error: payload,\r\n };\r\n case APP_ACTION.UPDATE_DIMENTIONS:\r\n return {\r\n ...state,\r\n dimentions: { ...payload },\r\n };\r\n case APP_ACTION.TOGGLE_PANO_MODE:\r\n return {\r\n ...state,\r\n panoMode: payload,\r\n };\r\n case APP_ACTION.TOGGLE_MENU:\r\n return {\r\n ...state,\r\n menu: {\r\n ...state.menu,\r\n isOpen: payload,\r\n },\r\n };\r\n\r\n case APP_ACTION.SET_MENU_POSITION:\r\n return {\r\n ...state,\r\n menu: {\r\n ...state.menu,\r\n position: payload,\r\n },\r\n };\r\n case APP_ACTION.SET_TOUR_DATA:\r\n const enableBrandingObject = payload.subscriptionPlan.scopes.find(\r\n (scope) => scope.key === 'ENABLE_BRANDING'\r\n );\r\n const enableBranding = Boolean(enableBrandingObject.value);\r\n\r\n return {\r\n ...state,\r\n tour: { ...payload },\r\n subscriptionPlan: {\r\n enableBranding: enableBranding,\r\n },\r\n };\r\n case APP_ACTION.SET_PANO_DATA:\r\n const { scenes, groups } = payload;\r\n const logoURL = payload.tour.logoURL || '';\r\n const hasLogo = logoURL.trim().length > 0;\r\n return {\r\n ...state,\r\n json: { ...payload },\r\n groups: [...groups],\r\n scenes: [...scenes],\r\n logoURL: logoURL,\r\n hasLogo: hasLogo,\r\n };\r\n case APP_ACTION.GO_TO_PANO:\r\n const scene = state.scenes.find(\r\n (s) => s.id === payload.id && s.groupId === payload.groupId\r\n );\r\n return {\r\n ...state,\r\n currentScene: { ...scene },\r\n currentHotspot: null,\r\n menu: {\r\n ...state.menu,\r\n isOpen: false,\r\n social: false,\r\n isoMetricMap: false,\r\n },\r\n hotspotHistory: [...state.hotspotHistory, scene._id],\r\n };\r\n\r\n case APP_ACTION.CLOSE_LANDING:\r\n return {\r\n ...state,\r\n showLanding: false,\r\n blur: false,\r\n };\r\n case APP_ACTION.SET_AERIAL_MAP_DATA:\r\n return {\r\n ...state,\r\n aerialMapData: payload,\r\n aerialDataReady: true,\r\n };\r\n case APP_ACTION.TOGGLE_BLUR:\r\n return {\r\n ...state,\r\n blur: payload !== undefined ? payload : !state.blur,\r\n };\r\n case APP_ACTION.SET_AUDIO_AVAILABLE:\r\n return {\r\n ...state,\r\n audio: {\r\n ...state.audio,\r\n available: payload,\r\n },\r\n };\r\n case APP_ACTION.SET_AUDIO_AUTOPLAY:\r\n return {\r\n ...state,\r\n audio: {\r\n ...state.audio,\r\n autoPlay: true,\r\n },\r\n };\r\n case APP_ACTION.TOGGLE_AUDIO:\r\n return {\r\n ...state,\r\n audio: {\r\n ...state.audio,\r\n enabled: payload,\r\n },\r\n };\r\n // Control Mode\r\n case APP_ACTION.SET_GYRO:\r\n return { ...state, gyro: payload };\r\n case APP_ACTION.SET_CONTROL_MODE:\r\n return { ...state, controlMode: payload };\r\n case APP_ACTION.SET_CENTER_LOOKAT:\r\n return { ...state, centerLookAt: payload };\r\n\r\n // Hotspots\r\n case APP_ACTION.ADD_HOTSPOT_HISTORY:\r\n return { ...state, hotspotHistory: [...state.hotspotHistory, payload] };\r\n\r\n // Landing\r\n case APP_ACTION.TOGGLE_LANDING:\r\n return { ...state, isLandingOpen: payload };\r\n\r\n // View Mode\r\n case APP_ACTION.SET_VIEW_MODE:\r\n return {\r\n ...state,\r\n viewMode: payload,\r\n };\r\n\r\n case APP_ACTION.SET_AUTO_PLAY:\r\n return {\r\n ...state,\r\n autoPlayMode: payload,\r\n };\r\n\r\n case APP_ACTION.UPDATE_PREV_ROTATION:\r\n return { ...state, prevRotation: payload };\r\n\r\n case APP_ACTION.SET_AUTO_ROTATE:\r\n return { ...state, autoRotate: payload };\r\n\r\n case APP_ACTION.SET_SEARCH_PARAMS:\r\n return { ...state, searchParams: { ...state.searchParams, ...payload } };\r\n\r\n case APP_ACTION.SET_OPEN_POPUP:\r\n return { ...state, isOpenPopUp: payload };\r\n\r\n case APP_ACTION.SET_IS_PANNING:\r\n return { ...state, isPanning: payload };\r\n\r\n case APP_ACTION.SET_DATE_LIGHT:\r\n return { ...state, dateLight: payload };\r\n\r\n case APP_ACTION.UPDATE_WORLD_PARAMS:\r\n return {\r\n ...state,\r\n worldParams: {\r\n ...state.worldParams,\r\n ...payload,\r\n },\r\n };\r\n case APP_ACTION.SET_APARTMENT_POPUP:\r\n return { ...state, apartmentPopup: payload };\r\n\r\n default:\r\n return state;\r\n }\r\n}\r\n\r\nexport default appReducer;\r\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';\r\n\r\nexport const initiate = () => ({ type: APP_ACTION.INITIATE });\r\nexport const updateDimentions = (payload) => ({\r\n type: APP_ACTION.UPDATE_DIMENTIONS,\r\n payload,\r\n});\r\nexport const togglePanoMode = (mode) => ({\r\n type: APP_ACTION.TOGGLE_PANO_MODE,\r\n payload: mode,\r\n});\r\nexport const toggleMenu = (isOpen) => ({\r\n type: APP_ACTION.TOGGLE_MENU,\r\n payload: isOpen,\r\n});\r\nexport const setMenuPosition = (payload) => ({\r\n type: APP_ACTION.SET_MENU_POSITION,\r\n payload,\r\n});\r\nexport const setTourData = (payload) => ({\r\n type: APP_ACTION.SET_TOUR_DATA,\r\n payload,\r\n});\r\nexport const setPanoData = (payload) => ({\r\n type: APP_ACTION.SET_PANO_DATA,\r\n payload,\r\n});\r\n\r\nexport const goToScene = (groupId, id) => ({\r\n type: APP_ACTION.GO_TO_PANO,\r\n payload: { id, groupId },\r\n});\r\n\r\nexport const closeLanding = () => ({ type: APP_ACTION.CLOSE_LANDING });\r\nexport const setAerialMapData = (payload) => ({\r\n type: APP_ACTION.SET_AERIAL_MAP_DATA,\r\n payload,\r\n});\r\nexport const toggleBlur = (payload) => ({\r\n type: APP_ACTION.TOGGLE_BLUR,\r\n payload,\r\n});\r\nexport const setAudioAvailable = (payload) => ({\r\n type: APP_ACTION.SET_AUDIO_AVAILABLE,\r\n payload,\r\n});\r\nexport const setAudioAutoPlay = () => ({\r\n type: APP_ACTION.SET_AUDIO_AUTOPLAY,\r\n});\r\nexport const toggleAudio = (isOn) => ({\r\n type: APP_ACTION.TOGGLE_AUDIO,\r\n payload: isOn,\r\n});\r\nexport const setTourAudioAvailabe = (isOn) => ({\r\n type: APP_ACTION.SET_TOUR_AUDIO_AVAILABLE,\r\n payload: isOn,\r\n});\r\n// Hotspots\r\nexport const addHotspotHistory = (payload) => ({\r\n type: APP_ACTION.ADD_HOTSPOT_HISTORY,\r\n payload,\r\n});\r\n\r\n// Control Mode\r\nexport const setGyro = (payload) => ({ type: APP_ACTION.SET_GYRO, payload });\r\nexport const setControlMode = (payload) => ({\r\n type: APP_ACTION.SET_CONTROL_MODE,\r\n payload,\r\n});\r\n\r\nexport const setCenterLookat = (payload) => ({\r\n type: APP_ACTION.SET_CENTER_LOOKAT,\r\n payload,\r\n});\r\n\r\n// Landing\r\nexport const toggleLanding = (payload) => ({\r\n type: APP_ACTION.TOGGLE_LANDING,\r\n payload,\r\n});\r\n\r\nexport const setTourError = (payload) => ({\r\n type: APP_ACTION.SET_TOUR_ERROR,\r\n payload,\r\n});\r\n\r\n//View Mode\r\nexport const setViewMode = (payload) => ({\r\n type: APP_ACTION.SET_VIEW_MODE,\r\n payload,\r\n});\r\n\r\nexport const setAutoPlay = (payload) => ({\r\n type: APP_ACTION.SET_AUTO_PLAY,\r\n payload,\r\n});\r\n\r\nexport const updatePrevRotation = (payload) => ({\r\n type: APP_ACTION.UPDATE_PREV_ROTATION,\r\n payload,\r\n});\r\n\r\nexport const setAutoRotate = (payload) => ({\r\n type: APP_ACTION.SET_AUTO_ROTATE,\r\n payload,\r\n});\r\n\r\nexport const setSearchParams = (payload) => ({\r\n type: APP_ACTION.SET_SEARCH_PARAMS,\r\n payload,\r\n});\r\n\r\nexport const setOpenPopUp = (payload) => ({\r\n type: APP_ACTION.SET_OPEN_POPUP,\r\n payload,\r\n});\r\n\r\nexport const updateWorldParams = (payload) => ({\r\n type: APP_ACTION.UPDATE_WORLD_PARAMS,\r\n payload,\r\n});\r\n\r\nexport const setPanning = (payload) => ({\r\n type: APP_ACTION.SET_IS_PANNING,\r\n payload,\r\n});\r\n\r\nexport const setDateLight = (payload) => ({\r\n type: APP_ACTION.SET_DATE_LIGHT,\r\n payload,\r\n});\r\n\r\nexport const setApartmentPopup = (payload) => ({\r\n type: APP_ACTION.SET_APARTMENT_POPUP,\r\n payload,\r\n});\r\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';\r\nimport { useEffect } from 'react';\r\nimport { useSelector } from 'react-redux';\r\n\r\nfunction setVar(brandColor) {\r\n const doc = document.documentElement;\r\n doc.style.setProperty('--tour-brandColor', 'rgb(255,192,0)');\r\n doc.style.setProperty('--tour-brandSecondColor', '#422213');\r\n}\r\n\r\nfunction BrandColorHandler() {\r\n const brandColor = useSelector(\r\n (state) =>\r\n state.tour?.menuHighlightColor || DEFAULT_TOUR_SETING.menuHighlightColor\r\n );\r\n useEffect(() => {\r\n setVar(brandColor);\r\n }, [brandColor]);\r\n\r\n return null;\r\n}\r\n\r\nexport default BrandColorHandler;\r\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,iVBORw0KGgoAAAANSUhEUgAAAEcAAABHCAYAAABVsFofAAAABHNCSVQICAgIfAhkiAAABjBJREFUeF7tnNtxHUUQhmekJx4AOwLsCLADoGwHQBlHYByAyr0RICI4fSLAjgCZKp6RX3jFJgGkCDhOQEP9qm7RHs2eueyu9tymSqXL2Z3LN32di7ybuHRd9zyE8Eiawfd78vNT+b5yzn2Qny+ccxfe+1UI4R0z4/fZih+7ZSK6570HkB+ccwCgMFqaArRz7/3ZYrF431LBkHdGg0NEALFwzqmUDOlX6l1I2JlzrmNm/Dx5GQxHoPwkUpLq8KUMStXnemDMfI7vkDQD9IFzDl8A/Lxn9HifnXPLqSE1wyEiDAKSAvWJC1QAs3w2xG4Qkaomvn8TNbLy3p8uFovlVCLUBKfrutchBMxeXNDR0ylmVCQUbX4bNQq79IqZ1aiPxqoaDhH94pz7MerBW4EyuXchIrR9GkkSVO2FqupYdIrhiG34IzK4UB+aYtZyAyQiEkhfm2chQW9y75Z+XgSHiGAgfxVjqXW/ZeZYgkrbHeU56Rdsm7VHb5j51RgNZOFIByAxNl4ZdYaGDEQkGp7P2qJRAK2FIw3/ZSTmE7zT2Lo9BI6+S0RQp5emrp+ZGbapueTgAIwGdQDzdA77Ujq6BKBBEt4LJ+GVnm2ixMTgiAg2SANIeDH0u8nNJ+GIJ0CAp2XQDJTO/BjPJWwQAD1sib1uwZHI9x/T0dm9Ui00GQOkRd08IvUXtfWk4MBla0rwnpl1aaG27lmfFy8Lm6ml2ix8BkdCdLhtLY9b9XVWMtJ4ZKDPmflZTb9iOACjkrJ16pQwzkiOrYmokp4bOAmpgRGbPFeqmcmWZ4kIyeprefeCmR+W1mPh2JgGayXIXba+iPfCJKtxRoIKd58t13Ckgn/N0/dbXF+2tZkeiKSn2FwoHCSQWIpA2VoP1cc+8lwrZr5fMk8Kx0aVWKNNLWSV1LexzxARVEuz9yIvrHCgUpp174QhTngum5gW2VQv67QI/FAumRnub+dKNM4PzPw4N0jAQVqP3QOUIqK5Sjf1cyIK2jdmzq5lxXAGr4FsKhjxykhC1aVnzQfgWGNcHANsMoQ1Xgsrhk/k82y0DDhVL2wjFO1z7VgBx0bGWZpbDsemEtmQBXCqjNSWw7HOJ2tfD3DWzDbgWAu+UzlVIhCslpx9MshVnvngrTJqZXOOrdllaHEMLa68Sg9bOrUp79R6ZqgVVvx0jwqHFFOHkTZlfM39iLacPjFz9qwi4NhF6OKFoOZezvRiixDoeo5dCNrJ/CrKIYtsq8KxYfXOLVsk1sizGTkEXOFgr0o386q2L2bSkqpmo4Wuj8xcdBzYbs3YSHmnElAispuV2ZxKyVs4Nt4pWkasmr6ZHh6yWWnhwLXZza8iozXTmIubjaSmeM/qxuaYxSAbEG697ZFjubofh5Npj2q2uOODBLH0ZBeEiqdwhgeJCIcIdDel2NbcsjlGemzEPOjY2Aw8bpqMju1Bah7UbnH3HXvDqSg9ugo7hB3CO7mpMgbQSJ1QZZMG9MFBHIB1Ht3G2BrvlfBOVUbYTs6606Q2MMQ7oxx8HkMy+uo4OTn57vj4+Hfn3JfyTHHAl6ozdw7Znr7YaEBykuJP59wXMlDc84J3ajYH2S3RxMFnLDUiBmpudGzpgSrhTqj3/iutO4Tw23K57LvQVtSFLBzUkgAEg43sffZjcQnjawc+yBQUwRFANkDEn2Z384lT9pdXV1d/Hx0dfW8INQMqhiOAYIOwvGHvOCEnQ4B1Z1LUdd3LEAImyx6X+Sh3M1YJSW8CVAVHAMVuXicJnZ30Uuqay7a33PUYgKrhCCCkGZCY2OBB1fB3dLbpMkZsKeWe+pMQAiL3+DQ9Il/cKU0e0xsKqAmOSTXQWUiMHuuwY4Oa6YX5d0XuQR7CurZc3Ef9qQV/QAEQcFnrNYcAGgQnggSJia83x7DULkGq7KBS/8ahj2f1ZdtWQKPAMZAwy/pljXaN4KSehbFFfAXD2mT4WwCNCseOSiJWeDeoRnwXPAcLaoPcDkBwoaMJSMJ+xVcd13qxyeAkOqb/igEfWTXC7zdqNvVtwBoJujM4OVG5y89LAe0lnJ6U6JaK7S2cEkB7DScHaO/h9AC63hI/wPk/Kv/MzeP4/wGOcZPGix0kJxc+/Ae+8PFmMLYS2QAAAABJRU5ErkJggg==\"","export default \"data:image/png;base64,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\"","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, { useCallback, useMemo } from 'react';\r\nimport {\r\n AudioIcon,\r\n AutoRotateIcon,\r\n ContactFormIcon,\r\n // ExpandIcon,\r\n // FloorMapIcon,\r\n MapLineIcon,\r\n // FullScreenIcon,\r\n // HelpIcon,\r\n MapIcon,\r\n // ShareIcon,\r\n} from 'components/icons';\r\nimport configs from 'configs';\r\n// import { isMobile } from 'react-device-detect';\r\n\r\n// import NotePlate from './NotePlate';\r\n\r\nimport './SchoolLayoutIcons.scss';\r\n// import {\r\n// AquaAutoRotateIcon,\r\n// AquaFullscreenIcon,\r\n// AquaMapfloorplanIconV1,\r\n// PrimeMapFloorPlanIcon,\r\n// ShareIcon,\r\n// } from 'components/icons/AquaIcons';\r\n// import AquaExtraIcons from './AquaExtraIcons';\r\n// import { isMobile } from 'react-device-detect';\r\nimport HoveringPlate from 'components/HoveringPlate';\r\nimport { HomeIcon } from 'components/icons/HomeIcon';\r\n\r\nexport default function PrimeLayoutIcons(props) {\r\n const {\r\n currentPano,\r\n color,\r\n // toggleHelpButton,\r\n featuredMedia,\r\n isShowAudioIcon,\r\n // canFullscreen,\r\n // menuPosition,\r\n // handleFullScreen,\r\n isShowMapFloorPlan,\r\n setIsActiveMap,\r\n isActiveMap,\r\n mapShowed,\r\n // setOpenDropDown,\r\n // openDropDown,\r\n // handleSelectMap,\r\n scenes,\r\n // floorMaps,\r\n switchMode,\r\n handleUpdateRoute,\r\n onSelect,\r\n isPrimeStyle,\r\n isShowOnMap,\r\n shouldShowMapIcon,\r\n isAutoPlay,\r\n // fullScreen,\r\n setIsOpenMapfloorplanModal,\r\n } = props;\r\n\r\n // const handleGoHome = () => {\r\n // window.location.href = 'https://khaihoanprime.vn/';\r\n // };\r\n\r\n const isIndoorMap = useMemo(() => {\r\n return !isNaN(currentPano?.id);\r\n }, [currentPano]);\r\n\r\n // const isMobile = useMemo(() => window.innerWidth <= 767, []);\r\n\r\n const getViewPointTitle = (title) => {\r\n if (isNaN(title)) {\r\n return title;\r\n }\r\n return '';\r\n };\r\n\r\n const handleMapClick = useCallback((event) => {\r\n const rect = event.currentTarget.getBoundingClientRect();\r\n const x = (event.clientX - rect.left) / rect.width;\r\n const y = (event.clientY - rect.top) / rect.height;\r\n\r\n console.log(`Clicked position: (${x.toFixed(4)}, ${y.toFixed(4)})`);\r\n }, []);\r\n\r\n return (\r\n \r\n {isShowMapFloorPlan && (\r\n <>\r\n {/* */}\r\n {\r\n setIsActiveMap(!isActiveMap);\r\n setIsOpenMapfloorplanModal && setIsOpenMapfloorplanModal();\r\n }}\r\n >\r\n {/* */}\r\n \r\n \r\n {/* */}\r\n\r\n \r\n {mapShowed && (\r\n <>\r\n
\r\n setIsActiveMap(false)}\r\n >\r\n \r\n
\r\n {mapShowed.image.name}\r\n {mapShowed.objects.map((viewpoint) => {\r\n const currentPoint = viewpoint.id === currentPano._id;\r\n const [left, top] = viewpoint.coordinates;\r\n const leftInPercent = left * 100;\r\n const topInPercent = top * 100;\r\n const currentScene =\r\n scenes.find((s) => s._id === viewpoint.id) || {};\r\n\r\n return (\r\n {\r\n if (\r\n currentScene.id.indexOf('tong-the-toan-canh-02') !==\r\n -1\r\n ) {\r\n onSelect(\r\n currentScene.groupId,\r\n currentScene.id,\r\n true,\r\n true\r\n );\r\n } else {\r\n onSelect(currentScene.groupId, currentScene.id);\r\n }\r\n }}\r\n >\r\n \r\n
\r\n \r\n \r\n );\r\n })}\r\n \r\n\r\n {/* {isPrimeStyle && (\r\n setIsActiveMap(true)}\r\n >\r\n \r\n \r\n )} */}\r\n \r\n )}\r\n \r\n \r\n )}\r\n\r\n {/* {isPrimeStyle && } */}\r\n\r\n {shouldShowMapIcon && isPrimeStyle && (\r\n handleUpdateRoute(configs.mapRoute)}\r\n >\r\n \r\n \r\n )}\r\n\r\n {isShowAudioIcon && (\r\n \r\n )}\r\n\r\n {\r\n switchMode()}\r\n >\r\n \r\n \r\n }\r\n\r\n {/* {canFullscreen() && menuPosition !== 'bottom' && (\r\n \r\n \r\n \r\n )} */}\r\n\r\n onSelect('welcome', 'tong-the-toan-canh-01')}\r\n >\r\n \r\n \r\n\r\n {/* \r\n \r\n \r\n \r\n \r\n */}\r\n\r\n {featuredMedia.map && (\r\n handleUpdateRoute(featuredMedia.map.id)}\r\n >\r\n \r\n \r\n )}\r\n\r\n {featuredMedia.contact && (\r\n handleUpdateRoute(featuredMedia.contact.id)}\r\n >\r\n \r\n \r\n )}\r\n\r\n {/* \r\n \r\n \r\n \r\n */}\r\n\r\n {/* {\r\n toggleRotate();\r\n }}\r\n >\r\n \r\n */}\r\n \r\n );\r\n}\r\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-25',\n 'mika-topview-tang-27',\n];\n\nexport const apartmentList = [\n 'can-ho-1pn-scene-1',\n 'can-ho-1pn-scene-2',\n 'can-ho-1pn-scene-3',\n 'can-ho-1pn-scene-4',\n 'can-ho-1pn-scene-5',\n 'can-ho-1pn-scene-6',\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';\r\nimport TopviewSubmenu from './TopviewSubmenu';\r\nimport ScaleArrow from 'components/ScaleArrow';\r\n\r\nexport default function AquaMenuItem({\r\n scenes,\r\n scene,\r\n onSelect,\r\n currentPano,\r\n setOpenMobileMenu,\r\n setIsOpenTopviewSubmenu,\r\n setIsOpenMikaTopviewSubmenu,\r\n isOpenMikaTopviewSubmenu,\r\n isOpenTopviewSubmenu,\r\n isTopviewSub,\r\n}) {\r\n const [hover, setHover] = useState(null);\r\n\r\n const [topViewHover, setTopViewHover] = useState(false);\r\n\r\n const hoverImage = useMemo(\r\n () => scenes.find((item) => item._id === scene._id),\r\n [scenes, scene]\r\n );\r\n\r\n const isMobile = useMemo(() => window.innerWidth < 1023, []);\r\n\r\n return (\r\n {\r\n setHover(scene.order);\r\n (scene.id === 'topview' || scene.id === 'mika-topview') &&\r\n setTopViewHover(true);\r\n }}\r\n onMouseLeave={() => {\r\n setHover(null);\r\n setTopViewHover(false);\r\n }}\r\n onClick={(e) => {\r\n e.stopPropagation();\r\n\r\n if (\r\n isMobile &&\r\n (scene.id === 'topview' || scene.id === 'mika-topview')\r\n ) {\r\n if (scene.id === 'topview') {\r\n setIsOpenTopviewSubmenu(!isOpenTopviewSubmenu);\r\n setIsOpenMikaTopviewSubmenu(false);\r\n }\r\n\r\n if (scene.id === 'mika-topview') {\r\n setIsOpenMikaTopviewSubmenu(!isOpenMikaTopviewSubmenu);\r\n setIsOpenTopviewSubmenu(false);\r\n }\r\n } else {\r\n if (scene.id === 'topview' || scene.id === 'mika-topview') {\r\n scene.id === 'topview' &&\r\n onSelect(scene.groupId, 'topview-tang-27');\r\n\r\n scene.id === 'mika-topview' &&\r\n onSelect(scene.groupId, 'mika-topview-tang-27');\r\n } else {\r\n onSelect(scene.groupId || 'welcome', scene.id);\r\n }\r\n\r\n if (isMobile) {\r\n isOpenTopviewSubmenu && setIsOpenTopviewSubmenu(false);\r\n isOpenMikaTopviewSubmenu && setIsOpenMikaTopviewSubmenu(false);\r\n }\r\n\r\n setOpenMobileMenu && setOpenMobileMenu();\r\n }\r\n }}\r\n >\r\n {!isMobile && (\r\n <>\r\n \r\n {scene.title}\r\n

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

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

{scene.title}

\r\n
\r\n \r\n )}\r\n\r\n \r\n );\r\n}\r\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';\r\n\r\nexport default function MoonIcon() {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\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, apartmentList } from './scene.helper';\nimport { isMobile } from 'react-device-detect';\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 aparmentEnable = useMemo(() => {\n if (\n (currentPano?.id && apartmentList.indexOf(currentPano?.id) !== -1) ||\n (currentPano?.id && +currentPano?.id)\n ) {\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 isTypeOfApartment = useMemo(() => {\n if (aparmentEnable && apartmentList.indexOf(currentPano?.id) !== -1) {\n return 1;\n }\n\n if (aparmentEnable && +currentPano?.id) {\n return 2;\n }\n\n return null;\n }, [currentPano, aparmentEnable]);\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('25')}\n >\n 18\n \n goToLevel('27')}\n >\n 24\n \n \n \n\n \n
\n
CĂN HỘ
\n onSelect('can-ho-mau', 'can-ho-1pn-scene-1')}\n >\n {isMobile ? '1PN+' : `1 Phòng Ngủ +`}\n
\n onSelect('can-ho-mau', '2')}\n >\n {isMobile ? '2PN' : `2 Phòng Ngủ`}\n \n \n \n \n );\n}\n","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-25': {},\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-25': -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,iVBORw0KGgoAAAANSUhEUgAAAZAAAAGQCAMAAAC3Ycb+AAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAnlQTFRFAAAAQiITZUMhzZppZUMhZUMhZUMhZUMhZUMhZUMhZUMhZUMhE05iZUMhZUMhE0tfZUMhZUMhZUMhZUMhZUMhZUMhZUMhZUMhYEQlRSUUFkliZUMhZUMhZUMhZUMhRCQUXEQoRiYVVUUuG0tfZUMhG0xiZUMhHlBjZUMhF0pgZUMhZUMhSCgVWkQqPCgeZUMhPiUZZUMhZUMhQSIUQSMUQSMVQCQXPyQXPScbNiwmZUMhNS8qPiYaOikhF0pgKzg6OSsiRycVNi0oPyUXZUMhYkMjYUMkpHZPvYxev45froBUrX9TvIxdwI9gwZBhu4tcZUMhOCsjy5louYlbuopcwpFixZRkw5Jivo1etYZZs4VXs4RXNy0mOygeZUMhPyUYOSsjMjEuZUMhOSohMjAtMjIvZUMhF0tfZUMhZUMhZUMhZUMhZUMhZUMhZUMhGE5iZUMhZUMhQCQWQSMWQiIUGEpgOysjNDQyZUMhOykgZUMhP1JflJ+myM3R0tfas7vBvMPI/Pz8////6evtRFZk8fP0QVNhqLG3jJegZUMhNDEvOisjZUMhQCUXQCUYPCkgPyUZQSQWnnFMOyoiPSgeYUAgZUMhZUMhtYZYxZNjx5VlhF02yJZmuIlbqnxQuIhaxpRkzJlojmU+xJNjvo5fLzMyLTQ0NS4oNiwnNiwlMjAuNS0oMzAsLzIyNi4nNi4oPSYaOCwkNi0nOSoiOigfQCQVLDU2OykfKDg8ZUMhZUMhIEdgI1JkLDY3ZUMhZUMhKDk+ZUMhKEdfYkQjZUMhY0MiSSkWMDIwIU1fKTg8ZUMhZUMhZUMhZUMhZUMhZUMhZUMhZUMhZUMhZRJkAQAAANN0Uk5TAP8Y/9bj6/z/BRYn/20u/1okQE5vfQds//81i8h+WP//////f3aP/5iC4qL////o/86w/////////7T///+T///////F///////////////N/////////////////+f////0////zJ/S+9vwr+H1v93q////tv//7f/4///////////////////9//+/////////////vrv/////////////////////////////////////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\"","export default \"data:image/png;base64,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\"","/* eslint-disable */\r\nimport React, { useEffect, useMemo, useState } from 'react';\r\n// import PerfectScrollbar from 'react-perfect-scrollbar';\r\n// import { useSelector } from 'react-redux';\r\n// import NotePlate from 'components/MenuForDesktop/NotePlate';\r\n\r\nimport PHONELOGO from './phone-icon.png';\r\nimport KhpLogo from '../../assets/images/logo/logo-khaihoanprime.png';\r\n\r\nimport AquaMenuItem from './AquaMenuItem';\r\nimport {\r\n AquaMapfloorplanIconV2,\r\n // AquaRightArrow,\r\n // AquaGreenParkIcon,\r\n // AquaHouse,\r\n // AquaVilla,\r\n // AquaSceneMenuIcon,\r\n // AquaLargeMapfloorplanIcon,\r\n PrimeApartmentIcon,\r\n PrimeOfficeBuildingIcon,\r\n} from 'components/icons/AquaIcons';\r\n\r\nimport 'react-perfect-scrollbar/dist/css/styles.css';\r\nimport './style.scss';\r\n// import HoveringPlate from 'components/HoveringPlate';\r\nimport CheckingSwitchDayTime from './CheckingSwitchDayTime';\r\nimport LevelSwitch from './LevelSwitch';\r\n\r\nimport { mikaSceneList, mikaTopMenu, sceneList } from './scene.helper';\r\nimport ScaleArrow from 'components/ScaleArrow';\r\nimport Compass from 'components/Compass';\r\n\r\nconst Icons = ({ iconOrder, isActive }) => {\r\n const iconComponents = [\r\n ,\r\n ,\r\n ,\r\n ];\r\n\r\n return <>{iconComponents[iconOrder]};\r\n};\r\n\r\nconst KhaiHoanPrimeLayout = ({\r\n desktop,\r\n mobile,\r\n scenes,\r\n // groups,\r\n onSelect,\r\n openMenu,\r\n handleOpenMenu,\r\n // activeColor,\r\n currentPano,\r\n menuList,\r\n // isSchoolLayout,\r\n tourLogo,\r\n isPrimeStyle,\r\n cameraParams,\r\n sceneRotation,\r\n}) => {\r\n // const [selectedCard, setSelectedCard] = useState(null);\r\n const [hoverMenuItem, setHoverMenuItem] = useState(null);\r\n const [hoverScenes, setHoverScenes] = useState([]);\r\n const [openMobileMenu, setOpenMobileMenu] = useState(false);\r\n const [isOpenTopviewSubmenu, setIsOpenTopviewSubmenu] = useState(false);\r\n const [isOpenMikaTopviewSubmenu, setIsOpenMikaTopviewSubmenu] =\r\n useState(false);\r\n // const [openRightMenu, setOpenRightMenu] = useState(false);\r\n\r\n const under1024 = useMemo(() => window.innerWidth < 1024, []);\r\n const isMobile = useMemo(() => window.innerWidth <= 767, []);\r\n\r\n // const { hasLogo } = useSelector((state) => ({\r\n // logoURL: state.logoURL,\r\n // hasLogo: state.hasLogo,\r\n // }));\r\n\r\n // const enableBranding = useSelector(\r\n // ({ subscriptionPlan }) => subscriptionPlan.enableBranding\r\n // );\r\n\r\n const menuScenes = useMemo(() => {\r\n return menuList.flatMap((item) => item.scenes);\r\n }, [menuList]);\r\n\r\n useEffect(() => {\r\n if (hoverMenuItem === null) {\r\n setHoverScenes([]);\r\n return;\r\n }\r\n\r\n const menu = menuList[hoverMenuItem];\r\n\r\n if (menu.order === 0) {\r\n // menu đầu chỉ lấy 4 sub items\r\n\r\n setHoverScenes([...menu.scenes.slice(0, 4)]);\r\n return;\r\n }\r\n\r\n setHoverScenes([...menu.scenes.slice(0, 100)]);\r\n }, [hoverMenuItem, menuList, menuScenes]);\r\n\r\n const topviewSubmenu = useMemo(() => menuList[0].scenes.slice(4), [menuList]);\r\n\r\n const isTopViewScene = useMemo(\r\n () => sceneList.includes(currentPano?.id),\r\n [currentPano?.id]\r\n );\r\n\r\n const isMikaTopViewScene = useMemo(\r\n () => mikaSceneList.includes(currentPano?.id),\r\n [currentPano?.id]\r\n );\r\n\r\n return (\r\n <>\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n {!under1024 ? (\r\n
\r\n \r\n\r\n \r\n \r\n
\r\n \"tour-logo\"\r\n
\r\n
\r\n\r\n \r\n
\r\n {menuList.map((item) => (\r\n setHoverMenuItem(item.order)}\r\n onMouseLeave={() => setHoverMenuItem(null)}\r\n >\r\n \r\n onSelect(item.scenes[0].groupId, item.scenes[0].id)\r\n }\r\n >\r\n \r\n {item.name}\r\n

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

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

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

By 2FVISUAL 2024

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

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

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

{currentScene.title}

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

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

\r\n {subTitle ?? null}\r\n

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

{subTitle || null}

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

\r\n {currentScene.title}\r\n

\r\n
\r\n );\r\n })}\r\n \r\n\r\n {isAquaStyle && (\r\n setIsActiveMap(false)}\r\n >\r\n \r\n \r\n )}\r\n \r\n )}\r\n \r\n {isAquaStyle && (\r\n
\r\n handleUpdateRoute(configs.socialRoute)}\r\n >\r\n \r\n
\r\n \r\n )}\r\n \r\n )}\r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default MenuForDesktop;\r\n","import React from 'react';\n\nimport './ApartmentPopup.scss';\n\nexport default function ApartmentPopup({ handleApartmentPopup, onSelect }) {\n return (\n
\n
\n \n x\n \n
\n onSelect('can-ho-mau', 'can-ho-1pn-scene-1')}\n >\n CĂN HỘ 1 PHÒNG NGỦ +\n \n onSelect('can-ho-mau', '2')}\n >\n CĂN HỘ 2 PHÒNG NGỦ\n \n
\n
\n
\n );\n}\n","import React, { useCallback, useMemo, useState } from 'react';\r\n\r\nimport { connect, useDispatch, useSelector } from 'react-redux';\r\nimport { useMediaQuery } from 'react-responsive';\r\n\r\nimport { isEqual } from 'lodash';\r\n\r\nimport { menuHighlightDefaultColor } from 'consts';\r\nimport configs from 'configs';\r\nimport { EVENT_TYPE, trackEventByType } from 'gaTracking';\r\nimport { ensureSubscriptionData, switchControlMode } from 'utils';\r\n\r\nimport { ShareIcon } from 'components/icons';\r\nimport { useNavigatedRoutes } from 'common/hooks';\r\n\r\nimport {\r\n setMenuPosition,\r\n toggleAudio,\r\n toggleMenu,\r\n togglePanoMode,\r\n setControlMode,\r\n} from 'store/actions';\r\n\r\nimport MenuForMobile from 'components/MenuForMobile';\r\nimport MenuForDesktop from 'components/MenuForDesktop';\r\nimport { LAYOUT_UI } from 'consts/ui.const';\r\nimport ApartmentPopup from './ApartmentPopup';\r\n\r\nconst DEFAUlt_MAP_COORDINATES = [0, 0, 10];\r\n\r\nfunction moveItemToTop(arr, targetId) {\r\n arr.sort((a, b) => b.objects.length - a.objects.length);\r\n\r\n const index = arr.findIndex((item) => {\r\n return item.objects.some((obj) => obj.id === targetId);\r\n });\r\n\r\n if (index !== -1) {\r\n const itemToMove = arr.splice(index, 1)[0];\r\n arr.unshift(itemToMove);\r\n }\r\n\r\n return arr;\r\n}\r\n\r\nconst MenuV2 = (props) => {\r\n const isPhone = useMediaQuery({ query: '(max-width: 480px)' });\r\n const {\r\n logoURL,\r\n hasLogo,\r\n isSchoolLayout,\r\n isAquaStyle,\r\n isPrimeStyle,\r\n apartmentPopup,\r\n } = useSelector((state) => ({\r\n logoURL: state.logoURL,\r\n hasLogo: state.hasLogo,\r\n apartmentPopup: state.apartmentPopup,\r\n isSchoolLayout: state.tour.menuStyle === LAYOUT_UI.SCHOOL,\r\n isAquaStyle: state.tour.menuStyle === LAYOUT_UI.AACORPORATION,\r\n isPrimeStyle: state.tour.menuStyle === LAYOUT_UI.KHAIHOANPRIME,\r\n }));\r\n\r\n const [openMenu, setOpenMenu] = useState(\r\n !(props.tour.menuStyle === LAYOUT_UI.SCHOOL)\r\n );\r\n\r\n const enableBranding = useSelector(\r\n ({ subscriptionPlan }) => subscriptionPlan.enableBranding\r\n );\r\n const menuHighlightColor = props.json.tour.menuHighlightColor;\r\n\r\n const dispatch = useDispatch();\r\n const [handleUpdateRoute] = useNavigatedRoutes();\r\n\r\n const menuOpenScene = (gId, sId) => {\r\n props.onSelect(gId, sId);\r\n trackEventByType(EVENT_TYPE.SCENE_FROM_MENU, sId);\r\n };\r\n const { controlMode } = useSelector((state) => state);\r\n\r\n const handleSwitchControlMode = useCallback(async () => {\r\n const switchToMode = await switchControlMode(controlMode);\r\n if (switchToMode !== controlMode) dispatch(setControlMode(switchToMode));\r\n }, [controlMode, dispatch]);\r\n\r\n const isShowOnMap = useMemo(\r\n () => !isEqual(props.tourMapCoordinates, DEFAUlt_MAP_COORDINATES),\r\n [props.tourMapCoordinates]\r\n );\r\n\r\n const hightLightColor = useMemo(\r\n () => (enableBranding ? menuHighlightColor : menuHighlightDefaultColor),\r\n [enableBranding, menuHighlightColor]\r\n );\r\n\r\n const isShowAudioIcon = useMemo(() => props.audio.available, [props.audio]);\r\n\r\n const floorMaps = useMemo(() => {\r\n const mapFloorPlansSet = new Set();\r\n props?.currentPano?.hotspots.forEach((item) => {\r\n const floorPlans =\r\n item?.media?.type === 'MapFloorPlan'\r\n ? item.media.mapFloorPlan\r\n : item?.type === 'MapFloorPlan'\r\n ? item.mapFloorPlan\r\n : null;\r\n if (floorPlans) {\r\n floorPlans.forEach((floorPlan) => {\r\n mapFloorPlansSet.add(floorPlan);\r\n });\r\n }\r\n });\r\n\r\n return moveItemToTop(Array.from(mapFloorPlansSet), props.currentPano?._id);\r\n }, [props.currentPano]);\r\n\r\n const isShowMapFloorPlan = useMemo(\r\n () => !!floorMaps.length || props?.currentPano?.isShowMapFloorPlan,\r\n [floorMaps.length, props?.currentPano?.isShowMapFloorPlan]\r\n );\r\n\r\n return (\r\n <>\r\n \r\n {enableBranding && hasLogo && !isAquaStyle && !isPrimeStyle && (\r\n
\r\n \"tour-logo\"\r\n
\r\n )}\r\n\r\n {!isSchoolLayout && !isAquaStyle && !isPrimeStyle && (\r\n
\r\n handleUpdateRoute(configs.socialRoute)}\r\n >\r\n \r\n
\r\n \r\n )}\r\n \r\n\r\n {isPhone ? (\r\n \r\n ) : (\r\n \r\n )}\r\n\r\n {apartmentPopup && (\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nconst mapStateToProps = ({\r\n dimentions,\r\n menu,\r\n audio,\r\n json,\r\n currentScene,\r\n tour,\r\n}) => ({\r\n dimentions,\r\n isNavOpen: menu.isOpen,\r\n menuPosition: menu.position,\r\n mapPopupOpen: menu.isoMetricMap,\r\n socialPopupOpen: menu.social,\r\n audio,\r\n json,\r\n featured: json.featured,\r\n featuredMedia: json.featuredMedia,\r\n tourMapCoordinates: json.tour.mapCoordinates,\r\n showOnMap: currentScene.showOnMap,\r\n scope: ensureSubscriptionData(tour.subscriptionPlan.scopes),\r\n tour,\r\n});\r\n\r\nconst mapDispatchToProps = {\r\n toggleMenu,\r\n togglePanoMode,\r\n setMenuPosition,\r\n toggleAudio,\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(MenuV2);\r\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';\r\n\r\nexport const getCameraPositionFromLookAtCoordinates = (x, y, z) => {\r\n let newX = x,\r\n newY = y,\r\n newZ = z;\r\n while (Math.abs(newX) >= 10 || Math.abs(newY) >= 10 || Math.abs(newZ) >= 10) {\r\n newX = newX / 2;\r\n newY = newY / 2;\r\n newZ = newZ / 2;\r\n }\r\n return {\r\n x: -1 * newX,\r\n y: -1 * newY,\r\n z: -1 * newZ,\r\n };\r\n};\r\n\r\nexport const getSphericalPosition = function (x, y, w, h) {\r\n const u = x / w;\r\n const v = y / h;\r\n const theta = u * 2 * Math.PI;\r\n const phi = v * Math.PI;\r\n return new THREE.Vector3(\r\n Math.cos(theta) * Math.sin(phi),\r\n Math.sin(theta) * Math.sin(phi),\r\n Math.cos(phi)\r\n );\r\n};\r\n\r\nwindow.getSphericalPosition = getSphericalPosition;\r\n\r\nexport const updatePositionOfHotspots = (hotspots, camera, width, height) => {\r\n return hotspots.map((hotspot) => ({\r\n ...hotspot,\r\n position: !hotspot.location\r\n ? {\r\n visible: false,\r\n x: -1000,\r\n y: -1000,\r\n }\r\n : get2DScreenPosition(hotspot.location, camera, width, height),\r\n }));\r\n};\r\n\r\nexport const get2DScreenPosition = (coord, camera, width, height) => {\r\n if (!(coord && camera && width && height)) {\r\n return {\r\n visible: false,\r\n x: -1000,\r\n y: -1000,\r\n };\r\n }\r\n const hpLocation = new THREE.Vector3(coord.x, coord.y, coord.z);\r\n const vector = hpLocation.project(camera);\r\n return {\r\n visible: Math.abs(vector.z) <= 1,\r\n x: ((vector.x + 1) / 2) * width,\r\n y: (-(vector.y - 1) / 2) * height,\r\n };\r\n};\r\n\r\nexport const distanceBetween2dCoordinates = (\r\n coord1 = { x: 0, y: 0 },\r\n coord2 = { x: 0, y: 0 }\r\n) => {\r\n const xDiff = Math.abs(coord1.x - coord2.x),\r\n yDiff = Math.abs(coord1.y - coord2.y);\r\n return Math.sqrt(xDiff * xDiff + yDiff * yDiff);\r\n};\r\n\r\nexport const isPositionValid = (position) => {\r\n if (!position || !Array.isArray(position)) return false;\r\n const [x, y, z] = position;\r\n if (x === null || typeof x === 'undefined') return false;\r\n if (y === null || typeof y === 'undefined') return false;\r\n if (z === null || typeof z === 'undefined') return false;\r\n return true;\r\n};\r\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