{"version":3,"sources":["components/PMAutomation/ifdValue.js","img/HowTos/TES_Menu.png","img/skyline_logo_transparent.png","img/marketingPage/Depositphotos_31419439_xl-2015.png","img/marketingPage/3d-model.png","img/marketingPage/store.png","img/marketingPage/merge.png","img/marketingPage/computer1.png","img/marketingPage/computer2.png","img/marketingPage/icon_viewshed.png","img/marketingPage/icon_slope.png","img/marketingPage/icon_distance.png","img/marketingPage/icon_contour.png","img/marketingPage/icon_flood.png","img/marketingPage/icon_shadow.png","img/marketingPage/icon_volume.png","img/marketingPage/icon_comparison.png","img/marketingPage/layers.png","img/marketingPage/publishing_to_secure.png","img/FailedProcessing.png","img/PM_Cloud_3D_Mapping_Selected.png","img/HowTos/OpenLicenseManager.gif","img/screenshots/orlando2.png","img/HowTos/Esri_Add_Data.png","img/PM_Cloud_2d_Mapping.png","img/PM_Cloud_2d_Mapping_Selected.png","img/PM_Cloud_Only_Me_Selected.png","img/PM_Cloud_Everyone.png","img/CloseRangeObject.png","img/WideAreaMapping_Selected.png","img/standard_selected.png","img/RTK_PPK.png","img/marketingPage/map_production.png","dashcore/html/img/avatar/1.jpg","img/marketingPage/flag_orange_small.png","img/marketingPage/flag_blue_small.png","img/skyline_logo.png","img/screenshots/auburn1.png","img/screenshots/orlando1.png","img/screenshots/sanfrancisco1.png","img/screenshots/sanfrancisco2.png","img/screenshots/sanfrancisco3.png","img/screenshots/sanfrancisco4.png","img/screenshots/sanfrancisco5.png","img/Icon feather-calendar.png","img/Icon feather-package.png","img/ActiveStatus.png","img/ExpiredStatus.png","img/HowTos/Esri_Online_Add_Layer.png","img/HowTos/Esri_Portal_Manager.png","img/HowTos/QGIS_Add_Layer.png","img/HowTos/OpenTEDProject.gif","img/HowTos/OpenTEMProject.gif","img/HowTos/TED_Menu.png","img/HowTos/OpenLicenseManagerTEPlus.gif","img/HowTos/OpenLicenseManagerTEProPlus.gif","img/HowTos/LicenseTB.gif","img/HowTos/LicensePM.gif","img/HowTos/CheckoutLicenseManagerTE.gif","img/HowTos/CheckinLicenseManagerTE.gif","img/HowTos/CheckoutLicenseManagerTEPlus.gif","img/HowTos/CheckinLicenseManagerTEPlus.gif","img/HowTos/CheckoutLicenseManagerTEProPlus.gif","img/HowTos/CheckinLicenseManagerTEProPlus.gif","img/HowTos/CheckoutLicenseManagerTB.gif","img/HowTos/CheckinLicenseManagerTB.gif","img/HowTos/CheckoutLicenseManagerPM.gif","img/HowTos/CheckinLicenseManagerPM.gif","img/HowTos/CheckoutLicenseManagerSG.gif","img/HowTos/CheckinLicenseManagerSG.gif","img/HowTos/PublishToSG.png","img/HowTos/LogInTED.gif","img/Icon feather-trash-2.png","img/Plus_Icon.png","img/PM_Cloud_3D_Mapping.png","img/PM_Cloud_Only_Me.png","img/PM_Cloud_Everyone_Selected.png","img/CloseRangeObject_Selected.png","img/WideAreaMapping.png","img/standard.png","img/RTK_PPK_Selected.png","img/upload_icon.gif","img/DataProcessing.png","img/settings_TE4W.png","img/HowTos/SGSLogin.png","img/HowTos/TEDLogin.png","img/HowTos/TEW_Login.png","img/HowTos/LicenseManager.gif","../node_modules/exifr/dist sync","components/LoaderButton.js","components/accountStatus.jsx","components/logOut.jsx","header.js","components/skylineDesignPattern.jsx","signIn.js","components/industry.jsx","components/signUp.jsx","components/navSide.jsx","components/Account/licensePackages.jsx","components/CloudProcessingBox.jsx","components/CommonManager.js","components/Account/cloudProcessing.jsx","components/protectionTypeDrawer.jsx","components/account.jsx","containers/NotFound.js","containers/AuthenticatedRoute.js","containers/UnauthenticatedRoute.js","components/forgotPassword.jsx","components/contactSkyline.jsx","components/pricing.js","components/resetPassword.jsx","components/changePassword.jsx","components/succefullyPurchased.jsx","containers/InternalServerError.js","components/contactUs.jsx","components/atlasUs.js","slCommon.js","components/gettingStarted.jsx","components/losAngeles.js","components/gettingStartedProducts.jsx","components/gettingStartedUploads.jsx","components/UAVPackage/pricing.js","components/Modal.jsx","components/updateUserPreferences.jsx","components/deleteAccount.jsx","components/PMAutomation/parseJpeg.js","components/PMAutomation/parseTiff.js","components/PMAutomation/newPMProjectPhaseI.jsx","components/PMAutomation/newPMProjectPhaseII.jsx","components/PMAutomation/newPMProjectPhaseIII.jsx","components/PMAutomation/newPMProjectPhaseIV.jsx","components/PMAutomation/newPMProjectPhaseEndpoint.jsx","components/PMAutomation/PMProjectUploadingAborted.jsx","components/PMAutomation/ErrorMessages.jsx","components/PMAutomation/newPMProject.jsx","core.js","components/footer.jsx","app.js","index.js"],"names":["types","Map","readByte","decoder","count","module","exports","getUInt16","array","Uint16Array","i","getUInt32","Uint32Array","rationals","Array","getInt16","Int16Array","getInt32","Int32Array","getByteLength","type","val","get","Error","concat","readData","value","data","getUint16","offset","littleEndian","getUint32","__webpack_require__","p","webpackEmptyContext","req","e","code","keys","resolve","id","components_LoaderButton","_ref","isLoading","text","loadingText","_ref$className","className","_ref$disabled","disabled","style","props","Object","objectWithoutProperties","react_default","a","createElement","Button","assign","AccountStatus","Component","_Component","_this","classCallCheck","this","possibleConstructorReturn","getPrototypeOf","call","handleOpenAccountMenu","event","setState","openAccountMenu","currentTarget","redirection","isLoggedIn","location","search","window","origin","pathname","encodeURIComponent","handleLogOut","preventDefault","fetch","process","method","credentials","headers","Content-Type","body","JSON","stringify","then","res","json","result","Result","userHasAuthenticated","undefined","catch","error","console","handleServerError","state","inherits","createClass","key","Fragment","NavDropdown","title","firstName","toUpperCase","charAt","lastName","Item","href","es","size","email","userName","name","round","fontSize","color","Divider","onClick","react_router_dom","to","Header","classNavBarName","toLowerCase","includes","isSubLoginType","src","customerLogoUrl","alt","navLogo","lightLogo","logo","data-toggle","data-target","aria-controls","aria-expanded","aria-label","accountStatus","DivsPatterns","_React$Component","selectedImageUrl","img3","images","img1","img2","img4","img5","img6","img7","img8","randomNumber","Math","floor","random","length","backgroundImage","headerText","children","React","SignIn","getSocialesLogin","socialesLogin","handleRecaptchChange","recaptchSucceeded","asyncScriptOnLoad","callback","handleSubmit","validateForm","Email","Password","password","Remember","rememberMe","CodeFromIdp","codeFromIdp","State","idpParams","handleUpdates","showHeader","showFullImageLoader","toString","isLoginFailed","FirstName","LastName","Username","CustomerId","SubLoginType","errorMessage","intl","failureTimes","handleLoginIconClick","row","idpUrl","LoginUrl","stateObj","cloudSSOKey","Name","stateObjStr","stateObjB64","btoa","queryParams","URLSearchParams","fullUrl","open","afterActivation","isGettingStartedNavigation","passwordInputType","_reCaptchaRef","createRef","_this2","urlParams","match","_React$createElement","_this3","skylineDesignPattern","onSubmit","onChange","target","placeholder","autoFocus","required","defineProperty","right","position","top","aria-hidden","defaultChecked","checked","htmlFor","esm","textAlign","ref","sitekey","decodeURIComponent","hash","map","LoginIcon","withRouter","Industry","selectedchanged","industryHasChanged","industries","default","profession","NavSide","_getPrototypeOf2","_len","arguments","args","_key","apply","activeClass","route","SkylineLogo","width","LicensePackages","handleScrollToPackage","splitPathName","split","packageId","productId","packageIdElement","document","getElementById","productIdElement","scrollIntoView","slice","join","history","replaceState","product","packagesDataCustom","find","x","Id","toggleDrawer","packages","protectionType","noOfLics","isSubscriptionDataLoading","isDataLoading","align","row1","Package","evaluation","isActive","Date","expirationeDate","ActiveStatus","ExpiredStatus","Calendar","GigaPixel","toDateString","checkoutLicAllowed","checkoutLicDays","scope","colSpan","products","ProductName","replace","BaseProduct","cloudSiteName","dictionaryOfSites","cloudSiteId","ViewerAccessToken","cloudAccessToken","AccessGUID","calcTotal","calcAvailable","calcUsed","protectionTypeCodes","filter","addingParamToPass","logs","handleShowLogs","handlelogsToDisplay","handlelogsAccessGUID","CloudProcessingBox","cloudProcessingData","PMAutomationStatus","borderLeft","marginTop","UserIdentifier","EndpointID","textTransform","float","height","padding","PMAutomationID","FilesCount","GPRequestedValue","toFixed","CreatedAt","PackageID","marginRight","OutputParams","str","jsonObj","parse","Common","index","CloudProcessing","fontWeight","marginBottom","spinRefreshIcon","cursor","changeSpinRefreshIcon","refreshData","iscloudProcessingPackagesLoading","cloudProcessingPackages","j","endpoint_name","push","isCloudProcessingDataLoading","components_CloudProcessingBox","ProtectionTypeDrawer","handleSaveProtectionType","previousProtectionTypeCodes","addedProtectionTypeCodes","productName","success","handleSavedProtectionTypeCodes","handleErrorSavedProtectionTypeCodes","message","handleSaveClick","_step","txtlines","textAreaTexts","trim","invalidLines","_iterator","_createForOfIteratorHelper","s","n","done","line","test","err","f","formattedLines","formattingMachineKey","validateMACAddress","log","errorProtectionTypeMessage","protectionTypeState","parts","part","substr","macAddress","Drawer","anchor","openDrawer","onClose","isDrawerLoading","CircularProgress","readOnlyTextArea","numOfProtectionTypes","rows","readOnly","isTrustedCustomer","showSavedProtectionType","left","handleChangeMachineCodeInput","handleClearClick","toggleDrawerFromURL","goBack","DraggableModalDialog","react_draggable_default","handle","esm_ModalDialog","Account","getAccountPackagesData","getCloudProcessingStatus","GetEndpointsFromDB","isLocal","REACT_APP_IS_LOCAL","searchText","sortString","isSortDescending","ret","returnCode","endpointsData","forEach","endpoint","packageIndex","findIndex","endpoint_id","handleTabSelect","pushState","tabsEnterKey","closeLogsDialog","showLogs","logsToDisplay","logsAccessGUID","ok","status","handleOnChangeAutoRenew","SubscriptionId","autoRenewCheckboxDisabled","subscriptionId","newValue","prevState","checkedItems","set","show","handleUpdateProtectionTypeState","items","toConsumableArray","packagesData","itemIndex","item","objectSpread","onSort","column","direction","sort","sortedData","subscriptionsData","b","subA","subB","CreatedTime","reverse","setArrow","bytesToSize","bytes","parseInt","pow","fetchSiteRemainingStorage","siteId","SiteStorageRemaining","fetchSiteUsedStorage","SiteStorageLimit","IsJsonString","jsonString","createHeadersAndDataForCsv","Time","Total","GPLeft","Gp","arr","tmpObjData","convert_server_dt_format","Message","parseFloat","GP","exportToCsv","filename","processRow","finalVal","csvFile","blob","Blob","navigator","msSaveBlob","link","download","url","URL","createObjectURL","setAttribute","visibility","appendChild","click","removeChild","dtStr","dt","getHours","padStart","getMinutes","BaseProductName","buildParamString","totalUsers","SiteSessionsLimit","amountValue","GPInitValue","ConcurrentUsers","totalUsersLeft","SiteSessionsRemaining","ammountOfUsersThatUsingThisLic","totalUsersUsed","numOfLics","fromURL","activeProductId","activePackageId","TrustedCustomer","innerArray","setTimeout","userData","autoRenewCheckboxIsChecked","autoRenewCheckboxSubscriptionId","ExpiresInDays","ExpiresInSubscription","hasSGStatusData","inTrial","handleShow","bind","assertThisInitialized","handleSubmitClose","handleClose","accountTabName","isChecked","userDataTemp","SiteExpireDate","SiteStorageLimitDescp","fetchLogs","element","Rebilly_SubscriptionId","isAutoRenew","found1","Data","ExpirationInDays","InTrial","_this4","navSide","days","licensePackages","cloudProcessing","Modal","onHide","animation","aria-labelledby","centered","closeButton","Title","Body","Footer","variant","dialogAs","class","protectionTypeDrawer","containers_NotFound","AuthenticatedRoute","C","component","cProps","rest","react_router","render","path","UnauthenticatedRoute","redirect","results","RegExp","exec","querystring","ForgotPassword","isFPForm","isEmailFailed","renderForgotPasswordForm","renderCheckYourEmail","ContactSkyline","Pricing","selectedSingleUserChanged","setSingleUserSelected","extenstion_single_User_checkbox","extenstion_single_User_checkbox_changed","single_user_selected","package_time","extensionIncluded","selected_package","package_id","package_price","selectedSmallBusinessChanged","setSmallBusinessSelected","extension_small_Business_checkbox","extenstion_small_business_checkbox_changed","small_business_selected","selectedEnterpriseChanged","setEnterpriseSelected","extension_Enterprise_checkbox","extenstion_enterprise_checkbox_changed","enterpriser_selected","handleBuyNow","planID","isFreeTrialSelected","fetchBuyNow","testFlag","RedirectUrl","handle_buy_error","handle_buy_error_message","escape","single_user_packages","small_business_packages","enterprise_packages","configureAnchors","scrollDuration","react_scrollable_anchor_lib_default","_regeneratorRuntime","Op","prototype","hasOwn","hasOwnProperty","obj","desc","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","enumerable","configurable","writable","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","create","context","Context","makeInvokeMethod","tryCatch","fn","arg","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","NativeIteratorPrototype","values","defineIteratorMethods","_invoke","AsyncIterator","PromiseImpl","previousPromise","callInvokeWithMethodAndArg","reject","invoke","record","__await","unwrapped","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","methodName","return","TypeError","info","resultName","next","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","displayName","isGeneratorFunction","genFun","ctor","constructor","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","object","pop","skipTempReset","prev","stop","rootRecord","rval","exception","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","ResetPassword","handleChange","mediumRegex","confirmPassword","isChangePasswordFailed","confirmedPasswordDisabled","failedMessage","handleConfirmClick","asyncToGenerator","_callee","queryString","queryToken","_context","isConfirming","newPassword","token","confirmed","Validations","ValidationCode","_x","confirmPasswordInputType","FormGroup","controlId","FormControl","block","bsSize","validateResetForm","whiteSpace","renderSuccessMessage","renderConfirmationForm","ChangePassword","newPasswordDisabled","oldPassword","currentPassword","confirmNewPassword","newPasswordInputType","confirmNewPasswordInputType","PurchaseSucceeded","InternalServerError","ContactUs","companyName","isCUForm","CompanyName","renderContactUsForm","renderThanksForSending","AtlasUs","onScroll","isTop","scrollY","setHeaderClassName","AOS","init","addEventListener","removeEventListener","paddingLeft","HeaderDashBoard","ThreeDModelImg","MergeImg","StoreImg","xmlns","xmlnsXlink","viewBox","y1","x2","y2","gradientUnits","stopColor","data-name","d","data-sw-navigation","data-aos","data-aos-duration","SuperiorPrecision","Interoperability","ViewshedAnalysis","DistanceAnalysis","FloodAnalysis","VolumeAnalysis","SlopeAnalysis","ContourAnalysis","ShadowAnalysis","ComparisonAnalysis","LayersImage","PublishingToSecureImage","copyToClipboard","textToCopy","innerText","clipboard","isSecureContext","writeText","textArea","focus","select","rej","execCommand","remove","generateUniqueString","company","isEnglishCompany","substring","uuidv4","now","year","getUTCFullYear","month","String","getUTCMonth","day","getUTCDate","hours","getUTCHours","minutes","getUTCMinutes","seconds","getUTCSeconds","FAQ","hashString","queryParameters","siteName","SGSpremiumData","SGSpremiumDataProjectID","BaseGlobeProjectID","AtlasILProjectID","accessToken","SGBaseUrl","copyText","copiedText","cloudProjectId","cloudProject","cloudKmlLayerDesc","cloudFlyLayerDesc","origHashToScroll","terraExplorerDownloadPath","sgsPremiumData","projectId","getUserStatusData","Site","SiteName","InstallationPaths","TerraExplorerPro","ProjectRun","CloudKmlLayerDesc","CloudFlyLayerDesc","goToAnchor","backgroundColor","TED_Menu","SLCommon","getElementsByClassName","display","OpenTEDProjct","OpenTEMProject","marginLeft","QGIS_Add_Layer","Esri_Portal_Manager","Esri_Add_Data","Cloud3dLayerDesc","Esri_Online_Add_Layer","LosAngeles","GettingStartedProducts","downloadSelectedKit","baseProduct","loadingButtonName","installationKitPath","productVersion","terraExplorerProProducts","selectedTerraExplorerPro","InstallationKitURL","ProductVersion","terraExplorerPlusProducts","selectedTerraExplorerPlus","terraExplorerProPlusProducts","selectedTerraExplorerProPlus","photoMeshProducts","selectedPhotoMesh","pmGigaPixelProducts","selectedPMGigaPixel","skylineGlobeServerProducts","selectedSkylineGlobeServer","terraBuilderProducts","selectedTerraBuilder","handleDowmloadZipFile","revokeObjectURL","tokenString","downloadLink","guid","packageDetails","productAccessToken","sgBaseUrl","downloadPaths","isPMGigapixel","licenseType","isTEProDownloading","isTEPlusDownloading","isTEProPlusDownloading","isPMDownloading","isSGSDownloading","isTBDownloading","expirationDate","isExpired","packageIdParam","IsDefault","IsRestricted","userHasProductRestricted","baseProductId","some","userProduct","selectedRestrictVersionId","PackageDetails","getAllProducts","PackageAccessToken","ProtectionType","ProtectionTypeCodes","LicenseType","ExpirationDate","today","expirationDateTemp","createdAtGrace","setDate","getDate","CheckoutLicAllowed","CheckoutLicDays","every","getHTML","TES_Menu","OpenLicenseManager","CheckoutLicenseManagerTE","CheckinLicenseManagerTE","OpenLicenseManagerTEPlus","CheckoutLicenseManagerTEPlus","CheckinLicenseManagerTEPlus","OpenLicenseManagerTEProPlus","CheckoutLicenseManagerTEProPlus","CheckinLicenseManagerTEProPlus","LicensePM","CheckoutLicenseManagerPM","CheckinLicenseManagerPM","CheckoutLicenseManagerSG","CheckinLicenseManagerSG","LicenseTB","CheckoutLicenseManagerTB","CheckinLicenseManagerTB","GettingStartedUploads","LogInTED","PublishToSG","checkoutPageId","isTestPlan","matchPlan","matchCheckout","textDecoration","ModalDialog","modelSizeWindow","modalClassName","modalHeaderClass","secondaryButtonId","handleButtonClose","primaryButtonId","handleButtonName","UserPrivacyPreferences","GetUserPrivacyPreferences","Unsubscribe","unsubscribeValue","handleRadioButtonValue","radioButtonValue","cancelOnClick","handleConfirmationModalClose","showConfirmationModal","handleDialog","preference","comment","commentMessage","targetEmail","groups","data-indeterminate","components_Modal","DeleteAccount","parseJpeg","testff","frame","readUint16","readDataBlock","subarray","fileMarker","malformedDataOffset","comments","extended","progressive","precision","scanLines","samplesPerLine","components","componentsOrder","nextOffset","jfif","adobe","parseTiff","getFirstIFD","byteLength","dvOffset","DataView","ifdValue","seek","numEntries","ifd","tag","numValues","Uint32","valueOfTag","newPMProjectPhaseI_regeneratorRuntime","DragAndDrop","onDrop","useCallback","acceptedFiles","handleIsLoading","handleErrorMessage","_x2","_getExifTagsData","getExifTagsData","numOfRejected","reason","numOfRejectedFiles","_useDropzone","useDropzone","maxFIles","noClick","noKeyboard","fileRejections","isDragAccept","getRootProps","getInputProps","file","errors","_callee2","files","numRejected","acceptedPhotos","acceptedPhotosDict","imagesSize","RequiredGP","_context2","all","_ref2","base","sliceSize","fileSliceLength","firstIFDResult","parseTiffResult","imageHasWidthAndHeight","sliceBytes","uIntArray","parseJpegResult","CheckDuplicateFileNames","lastIndexOf","endsWith","exifr","GPSLongitude","GPSLatitude","GPSAltitude","ExifImageHeight","ExifImageWidth","ImageHeight","ImageWidth","t0","arrayBuffer","t1","t2","t3","t4","t5","Uint8Array","t6","_x3","AddAcceptedPhotos","alignItems","justifyContent","plusIcon","GPAmount","newPMProjectPhaseI","errorMessgae","ResetState","RemoveAcceptedPhotos","handleProjectName","maxLength","projectName","validity","valid","numOfGigapixel","ProgressBar","photosSize","formatBytes","trashImg","resMessage","checkMovingFromPhaseItoPhaseII","setPageNumer","Dialog","DialogContent","newPMProjectPhaseII","ThreeDMappingImage","ThreeDMappingSelected","TwoDMappingImage","TwoDMapping","OnlyMeImage","OnlyMeSelected","EveryoneImage","Everyone","CloseRangeObjectImage","CloseRangeObject","WideAreaMappingImage","WideAreaMappingSelected","StandardImage","StandardSelected","RTK_PPKImage","RTK_PPK","paddingBottom","paddingRight","image1ClassName","handleIsGPSAccuracy","handlePhaseIIImageClassName","image2ClassName","Standard","RTK_PPKSelected","handleAltitudeMethod","image3ClassName","handleCapturedSceneIsWideArea","image4ClassName","WideAreaMapping","CloseRangeObjectSelected","ThreeDMapping","handleRemoveSelectedPhotoMeshOutputs","OutputFormatThreeD","handleAddSelectedPhotoMeshOutputs","TwoDMappingSelected","OutputFormatTwoD","handleIsProjectAccessToEveryone","EveryoneSelected","OnlyMe","numOfImages","checkMovingFromPhaseIItoPhaseIII","newPMProjectPhaseIII","startUploading","beforeUnloadHandler","returnValue","UploadingImages","accountPage","progressState","label","handleShowAbortDialog","showAbortDialog","fullWidth","maxWidth","DialogTitle","DialogActions","handleAbortUploading","newPMProjectPhaseIV","V_Data_Proccessing","fontFamily","skipSteps","newPMProjectPhaseEndpoint","updateParamsFromQuery","params","found","paramKey","paramArray","disable","string","notEditAble","options","showInUI","showParametersHeader","temp","paramType","param","showParametersHeaders","paramName","updatedParams","customProjectName","newPMProjectPhaseEndpoint_createForOfIteratorHelper","entries","slicedToArray","datafield","_ref3","_ref4","optionLabel","renderParamsOfType","PMProjectUploadingAborted","FailedProcessing","startPage","ErrorMessages","errorMessageString","userEmail","newPMProject_regeneratorRuntime","controller","AbortController","signal","NewPMProject","getEndpointParamsById","podName","global_params","defaultValue","phaseNumber","stateName","SelectedPodOutputs","IsProjectAccessToEveryone","isGPSAccuracyRTK_PPK","isCaptureSceneWideArea","SelectedVerticalDatum","SelectedAltitudeMethod","getImgFromUrl","imgUrl","filePath","acceptedPhotosDictionary","acceptedPhotosDictionaryTemp","MaximumNumOfPhotos","numOfPhotosRequired","MinimumNumOfPhotos","startProjectCounter","userIdentifier","buildType","publishPermissions","gpsAccuracy","capturedScene","verticalDatum","altitudeMethod","gpRequested","filesCount","filesTotalSize","runId","isAborted","getPresignedURLs","ErrorMessage","fileGroups","_i","tempArray","arrFilePaths","inputData","progressChunk","startPMProject","fileNames","uploadFiles","fileToURL","_callee3","arrRequests","_context3","newProgressState","_x4","_x5","_x6","identifier","abort","fatalError","stepIndex","getPMCloudData","newPMProject_createForOfIteratorHelper","_ref5","Company","decimals","dm","PMAutomation_newPMProjectPhaseEndpoint","PMAutomation_newPMProjectPhaseI","PMAutomation_newPMProjectPhaseII","PMAutomation_newPMProjectPhaseIII","PMAutomation_newPMProjectPhaseIV","PMAutomation_PMProjectUploadingAborted","PMAutomation_ErrorMessages","Menu","MainCore","childProps","customerId","exact","components_pricing","atlasUs","losAngeles","gettingStarted","gettingStartedProducts","gettingStartedUploads","succefullyPurchased","contactUs","UAVPackage_pricing","contactSkyline","NotFound","getFullYear","locales","en-US","require","App","AddcookieConsentToCookies","localStorage","showCookiesBanner","authenticated","username","isError","hasServerError","handleLoginClick","isTopFixed","isOnTop","initLocalizeDone","isIEorEdge","loadLocales","isIE","documentMode","isEdge","StyleMedia","matchCookieInQuery","loginWithCookie","checkLogin","cookie","Cookie","Accept","currentLocale","_this5","header","core","footer","ReactGA","initialize","pageview","ReactDom","basename","src_app"],"mappings":"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ouNCAAD,EAAAC,QAAA,wgNCAAD,EAAAC,QAAA,smFCAAD,EAAAC,QAAiB0B,EAAAC,EAAuB,uDCAxC5B,EAAAC,QAAiB0B,EAAAC,EAAuB,qDCAxC5B,EAAAC,QAAA,olCCAAD,EAAAC,QAAA,4mCCAAD,EAAAC,QAAA,w5BCAAD,EAAAC,QAAA,ovCCAAD,EAAAC,QAAA,ghDCAAD,EAAAC,QAAA,wyCCAAD,EAAAC,QAAA,wuCCAAD,EAAAC,QAAA,gtCCAAD,EAAAC,QAAA,w0DCAAD,EAAAC,QAAA,gsDCAAD,EAAAC,QAAA,+rPCAAD,EAAAC,QAAA,itHCAAD,EAAAC,QAAiB0B,EAAAC,EAAuB,iECAxC5B,EAAAC,QAAiB0B,EAAAC,EAAuB,qDCAxC5B,EAAAC,QAAA,w/BCAAD,EAAAC,QAAA,w6GCAAD,EAAAC,QAAA,wmHCAAD,EAAAC,QAAA,4jGCAAD,EAAAC,QAAA,48GCAAD,EAAAC,QAAA,4oHCAAD,EAAAC,QAAA,g/GCAAD,EAAAC,QAAA,g7GCAAD,EAAAC,QAAA,srHCAAD,EAAAC,QAAiB0B,EAAAC,EAAuB,0DCAxC5B,EAAAC,QAAA,qvECAAD,EAAAC,QAAA,wUCAAD,EAAAC,QAAA,yUCAAD,EAAAC,QAAA,+pQCAAD,EAAAC,QAAiB0B,EAAAC,EAAuB,qDCAxC5B,EAAAC,QAAiB0B,EAAAC,EAAuB,sDCAxC5B,EAAAC,QAAiB0B,EAAAC,EAAuB,2DCAxC5B,EAAAC,QAAiB0B,EAAAC,EAAuB,2DCAxC5B,EAAAC,QAAiB0B,EAAAC,EAAuB,2DCAxC5B,EAAAC,QAAiB0B,EAAAC,EAAuB,2DCAxC5B,EAAAC,QAAiB0B,EAAAC,EAAuB,yDCAxC5B,EAAAC,QAAA,w2BCAAD,EAAAC,QAAA,whDCAAD,EAAAC,QAAA,o2CCAAD,EAAAC,QAAA,w2CCAAD,EAAAC,QAAA,g8ECAAD,EAAAC,QAAA,kxZCAAD,EAAAC,QAAiB0B,EAAAC,EAAuB,4DCAxC5B,EAAAC,QAAiB0B,EAAAC,EAAuB,4DCAxC5B,EAAAC,QAAiB0B,EAAAC,EAAuB,0DCAxC5B,EAAAC,QAAA,saCAAD,EAAAC,QAAiB0B,EAAAC,EAAu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","file":"static/js/main.5345ec19.chunk.js","sourcesContent":["let types = new Map([\r\n [1, [1, readByte]],\r\n [2, [1, readASCII]],\r\n [3, [2, readShort]],\r\n [4, [4, readLong]],\r\n [5, [8, readRational]],\r\n [6, [1, readSByte]],\r\n [7, [1, readByte]],\r\n [8, [2, readSShort]],\r\n [9, [4, readSLong]],\r\n [10, [8, readSRational]],\r\n [11, [4, readFloat]],\r\n [12, [8, readDouble]], // DOUBLE\r\n]);\r\n\r\nmodule.exports = {\r\n getByteLength: function(type, count) {\r\n const val = types.get(type);\r\n if (!val)\r\n throw new Error(`type not found: ${type}`);\r\n return val[0] * count;\r\n },\r\n readData: function(decoder, type, count) {\r\n const val = types.get(type);\r\n if (!val)\r\n throw new Error(`type not found: ${type}`);\r\n return val[1](decoder, count);\r\n },\r\n getUInt16: function(decoder) {\r\n decoder.value = decoder.data.getUint16(decoder.offset, decoder.littleEndian);\r\n decoder.offset += 2;\r\n return decoder.value;\r\n },\r\n getUInt32: function(decoder) {\r\n decoder.value = decoder.data.getUint32(decoder.offset, decoder.littleEndian);\r\n decoder.offset += 4;\r\n return decoder.value;\r\n },\r\n getInt16: function(decoder) {\r\n const value = decoder.data.getInt16(decoder.offset, decoder.littleEndian);\r\n decoder.offset += 2;\r\n return value;\r\n },\r\n getInt32: function(decoder) {\r\n const value = decoder.data.getInt32(decoder.offset, decoder.littleEndian);\r\n decoder.offset += 4;\r\n return value;\r\n }\r\n\r\n};\r\n\r\nfunction readByte(decoder, count) {\r\n return;\r\n // if (count === 1)\r\n // return decoder.readUint8();\r\n // let array = new Uint8Array(count);\r\n // for (let i = 0; i < count; i++) {\r\n // array[i] = decoder.readUint8();\r\n // }\r\n // return array;\r\n}\r\nfunction readASCII(decoder, count) {\r\n return;\r\n // let strings = [];\r\n // let currentString = '';\r\n // for (let i = 0; i < count; i++) {\r\n // let char = String.fromCharCode(decoder.readUint8());\r\n // if (char === '\\0') {\r\n // strings.push(currentString);\r\n // currentString = '';\r\n // }\r\n // else {\r\n // currentString += char;\r\n // }\r\n // }\r\n // if (strings.length === 1) {\r\n // return strings[0];\r\n // }\r\n // else {\r\n // return strings;\r\n // }\r\n}\r\nfunction readShort(decoder, count) {\r\n if (count === 1)\r\n return module.exports.getUInt16(decoder);\r\n let array = new Uint16Array(count);\r\n for (let i = 0; i < count; i++) {\r\n array[i] = module.exports.getUInt16(decoder);\r\n }\r\n return array;\r\n}\r\nfunction readLong(decoder, count) {\r\n if (count === 1)\r\n return module.exports.getUInt32(decoder);\r\n let array = new Uint32Array(count);\r\n for (let i = 0; i < count; i++) {\r\n array[i] = module.exports.getUInt32(decoder);\r\n }\r\n return array;\r\n}\r\nfunction readRational(decoder, count) {\r\n if (count === 1) {\r\n return module.exports.getUInt32(decoder) / module.exports.getUInt32(decoder);\r\n }\r\n let rationals = new Array(count);\r\n for (let i = 0; i < count; i++) {\r\n rationals[i] = module.exports.getUInt32(decoder) / module.exports.getUInt32(decoder);\r\n }\r\n return rationals;\r\n}\r\nfunction readSByte(decoder, count) {\r\n // if (count === 1)\r\n // return decoder.readInt8();\r\n // let array = new Int8Array(count);\r\n // for (let i = 0; i < count; i++) {\r\n // array[i] = decoder.readInt8();\r\n // }\r\n // return array;\r\n}\r\nfunction readSShort(decoder, count) {\r\n if (count === 1)\r\n return module.exports.getInt16(decoder);\r\n let array = new Int16Array(count);\r\n for (let i = 0; i < count; i++) {\r\n array[i] = module.exports.getInt16(decoder);\r\n }\r\n return array;\r\n}\r\nfunction readSLong(decoder, count) {\r\n if (count === 1)\r\n return module.exports.getInt32(decoder);\r\n let array = new Int32Array(count);\r\n for (let i = 0; i < count; i++) {\r\n array[i] = module.exports.getInt32(decoder);\r\n }\r\n return array;\r\n}\r\nfunction readSRational(decoder, count) {\r\n if (count === 1) {\r\n return module.exports.getInt32(decoder) / module.exports.getInt32(decoder);\r\n }\r\n let rationals = new Array(count);\r\n for (let i = 0; i < count; i++) {\r\n rationals[i] = module.exports.getInt32(decoder) / module.exports.getInt32(decoder);\r\n }\r\n return rationals;\r\n}\r\nfunction readFloat(decoder, count) {\r\n // if (count === 1)\r\n // return decoder.readFloat32();\r\n // let array = new Float32Array(count);\r\n // for (let i = 0; i < count; i++) {\r\n // array[i] = decoder.readFloat32();\r\n // }\r\n // return array;\r\n}\r\nfunction readDouble(decoder, count) {\r\n // if (count === 1)\r\n // return decoder.readFloat64();\r\n // let array = new Float64Array(count);\r\n // for (let i = 0; i < count; i++) {\r\n // array[i] = decoder.readFloat64();\r\n // }\r\n // return array;\r\n}\r\n\r\n\r\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAkCAYAAADLsGk3AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAASdEVYdFNvZnR3YXJlAEdyZWVuc2hvdF5VCAUAAAU3SURBVFhHzZhdbhxFFIVnG7YndkI2AQ88RgoSjySCZURiG3ZgGQkLSLIAHHbVzNdnvqnTPTNm4ImSju5v3XtuV/W45c313fUEti+2M26e3xx08Oyb2+nq9mq6fXl3FCe2ffFs9t083+7rYCeGxBb4ru+Sa94anavPPqPfMpe+G0igSLR14aDIkA60kTSxeYrjDySjfnXLvmWeBHloSJEeS9Kn4hsIQibTDvL4GMhY5zR5dJtYXNKJDxIdN9ZxBwIMRI62efQF6NZAbpIc8upJyFO3YDaPIVoGIQUkhNTHKeSkB2nqit5vDuhY+9f2fLUk6BDZHJtBkE1amzyKKCEqeaWNJOSQoAfFVlovPZfx7kkcHcyDCIJpOIZTZ5PANm5DG0EOpM7STm5sCfQpmQOaPPWR+uzXeYertSbfhAV+8o1pmy+RJYlBWl0puQY1cguOB8pe382Rj3/++ZV8Ez4l13GfJnauVZ4URG00COQkyJOAA6VG51pnnISEjWE7EL7FiTSywWM9Pon2i/iW5L/9/rvp7S9vp3e/vpsefn8/ffryafrz6+PkMq/JAmvo73h4RKrPgzR4YkjJ+quFzRCgbXJe/fBqerMj+/Dbw/Thj4/T444oxS9ZkgWeUJPHFvjop9994PCynyKJzMQhDIyrn1s0umQ1GeAw6Rvy+NF5qPr1mbMYhKS2HSzvQgZrPDUIhC5ZEKKOpByoSSIZYu3vH4XDO4JskvryBDKEp+AQ2OfWvxkEIi3Xep8Cfb3u+ogvPlHWQyBJ0qcfO8W3ezrH678Moi7SO34geaSx8Nj/QZTsGpLtOE/Dq/bUIDS5ZJHX5LG9RhCWvHlI4ADi8IniJmwlcAilucZtRNwaNkze+NoVyacm9UIkD2cQdhjtNfCHU+RhEGXrEtYveqhzi2aXLIg4sKR9GBKVvHn420ZfXC0lCSB/hcdQSvWnBqHBJYs80SckUXUJ4/PXyjixw8+vg0gQ6F/bFNB/blH8ktVDtJSocUnDEb2HQN/0y9uDqKdYBhAjfv760OCSRX1PwgGorY5cwyGMz4M0WYdgMAdpv7oDse/cosYlK72PSarnekeHk7Y5Dj1//cbpUwnBJMQHtHN6436eWxS/ZKV2rlOIeXVD1n5KidvfvM3pxBRL4hhGn8Mnvp1e//h6/mi83300ftx/NOK/ZEmk6/UgQBvQG1sODrZ72ceRqpvQPv3q63yxjvEZ/9PPb+bP+Pv399PnL5+nx7++7scYL3vIjZPpel2//cbYu3tH4lw/5ZbtF50PKNZ5+vhj2PGOIX3ROxZ/9ulDNjoH7D8aR6J3NIn569vNjCMtqN8a1jFOvgNp9z5scq3beeYqrYn07wmYT0RYUBtde93kFLqZBHn33Id8qr77k5u7r+w9vs/tnwexaTe0cIoNW59FKNqFffLdpG0kNfR3j3VeHsK4msZAx/AvXnada7jZuLp7INF+B8dnDNl5yIbxjqE3L+SpveTMgxCkCA6LaTchbX3u/T+cyuFXS5lgCp7euGzWOhL0oNqAvdRYD2rsn2oYR6eOOsPMJyJB0Bt6I0Bvv80bNnGPdc3v/crO0W+/fg+QxtTF0c9vNg+C+jqvCQl8EjfmXuNtA/IZunNFauUXq5Fax1/Au2+tZQOlidpeh3W+A7gH6QmTo8Rvjn5965pK6/VAxrvnfLVObURKRntdqIma03lNrnXz2NMgpgTpP/5xbpw/gmBd5/AHEaekgE27gfKcTj4E9FPPmus8h8MHtL1qkkxuhnEABwPoty/vpr8BtC13sa+CQHIAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/Depositphotos_31419439_xl-2015.b7f97fff.png\";","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/computer1.ab5b6cf1.png\";","module.exports = __webpack_public_path__ + \"static/media/computer2.8a200913.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADMAAAAzCAYAAAA6oTAqAAAACXBIWXMAAAsSAAALEgHS3X78AAAC00lEQVRoge2aP2gaURzHv6np1GLawaYEhEIdhGTI0JTGLHWLpC5d4mTHlEDtVLsViu4FXcSluMUlU5u4FNuCokMgILa0UEjDUUP+2KpoMCCW3+E7rC8099fe0ftMz9/v3fH7eL7fvVMnXC7XNQDzsBa7h4eHv0YrnhyI5C0m4wfwfjR4iZtmYWwZszJpxaJXHgTnC6XyaHjXkjL3FhdfcUHAb68Zs2LLmJWxNYBkMgm32y2Ot7e3sbGxgUajwc3TwliuDImsrq6i2WzC5/MhFothZ2cHgUCAm2tqGSYSiUQQDofh9XpRLpfhdDqRyWQQCoW4Y9RiqMywCH2siHq9jmAwKL1OJBK6XSHDZM4TGYbihUJBmjs1NcXNUYohMheJMNbX18UmQB+5eDzO5f+5jFwRolarIZ1Oi2M6hnU7tegqo0SEkUqlpBYdjUa5vBJ0k1EjQrRaLfG+g8HV0bJ2dJFRK8LY2tqSxlpatWYZrSJELpeTxktLS1xeLppk9BBhsDa9vLzM5eSiWkZPEaJYLErjubk5Li8HVTJ6ixCVSkUaq20CimWMECFoE8qgzagaFMkYJULs7+9zMaXIljFShBAEgYspRZbM2tqaoSLQ2MUYFz5p0k2MHqay2awo4nA40Ov1uHl/g60B6lK0uGljyTqWlvuKIhkSoecNDN652dlZVKtVKX9eUfSa4lQ0y500OzhptqXjhKMGfnbPxPGb0id8FY6l3Gn3DG3Hda4WTTL0wMREiPyHj3j89Jk4vjkzg97lq+gMCiJYQZ/bwGn9FMLxAfDuC3deOTiOfugrQ5u/J89f4IrnLhqd7p/J79+4+XpydKCzDJF9naJNOvwrD7mckeTfbuovw1B78nFjf6NpVmwZs2LLmBVbxqzYMmaFtjN7AF4O13fb47l1Z2HhkVmLvjE9zcWIiX6/zwULpfJ9K/45yF4zZuW/+OmcawqmB9j7DUCjJCTx34DQAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADMAAAAzCAYAAAA6oTAqAAAACXBIWXMAAAsSAAALEgHS3X78AAAC5UlEQVRoge2asW/aQBTGX6rM0AWygFSp2QApQyM1sDQjtJHYYIINJtjYYKjYYKgEE4xMMMEGU+gCSgZQBtgjweSp8A9QfSfOis6tMdimZ9U/ySIcF3if33vfu0Rc+Hy+90R0Q87iRVGUX2LEl3shY4eJuSein+LiO802B+OKkZVLJwb99dvDzeTpWVx+caSYz3d3PzSLRPduz8iKK0ZWbBHj9Xopn8/TYDCgeDyued0uLHWzUqnELpHhcKhZswNLMxOJRGg6ndJ6vVbXCoWCZp8jxGQyGUomk+rzXq9Hq9WKms0mKYqiXuFwWPO7VmB5z6BXAoEAbbdbKpfLTEgqlWKvjUYj9tjpdFhfSS0GAfKeabVaLANcSKVSYZlDGUIszw7PGszCLJaKyeVy5PF4WM+0220WKFgul0wcxEajUXV/LBZjYrPZLBOXTqc173kMlokJBoNqVmq1GgsOGQAoNy4WoAQnkwltNhv2PJFIsEf0lxRieEDISrfbVTOAskLgEIt+on0JgsViwbIC6vU622eGo+YMgkEp4E6LH4wAERy/2xy+DyWHEkRWUIIczCCr5tBRmcE0D4VC1O/3WcOKFovAIYj2QSJw3IDxeKxmCnNHFGwVhsWIzYufHx8f2R1HCYlAFEoH2cANAMVi0dbTgGExfztjwY1msxlrfnF2oPT8fr96oZfsxLAY2KgeEMNF/StMZ+YtKCmImc/npmfGKRgSg6wgUKNgvjQaDdb4hzJ6djGn/k2i53x2YEgMH4incsj5rOKgGHw4P5aYBc6H0vuT81nBQTFmsyLCTQLOx483ZxNjlytBVLVatdT5dMWgFPj0tgvufDAJs86nK+ac/1mBSXDnO9UkdE/NeFMc4c8NXA9HoWPPcbpicFDE5RR0y8xpuGJkxRUjK64YWXHFyApOAK9E9P1tfB+vrz98ur3Nyhq0/+pKswYudrudZnHy9PzFiV8OcntGVv6LLwJpTEF6iF5/A5UbIe6BuoDrAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADMAAAAzCAYAAAA6oTAqAAAACXBIWXMAAAsSAAALEgHS3X78AAACRUlEQVRoge2asUsCURzHf0aztliLQlCbCiEJqUttQgVuurnp5OimQ6CLDg1Ojro5ubrZclKD0KB7qJNT+g8Y30cHde8y9Xzeu3ofcLj3DO7T9/1+v0PO5fV6j4jogpzF62w2ezfe8eGnSM9hMjdE9GRcPOC+5mCUjKwcOvGmb+/uL7TnF+PyqyNlrqLRR26R6EbVjKwoGVlRMqLxeDxUr9cpGAw6WyadTtNgMKBUKsWkNkGaOeP3+1kSkHG73dz+OkghUygU2GexWLDPttgqE4/HWSKhUIhdI5FtUyE7ZVqtFiUSCUtJGNm7TC6X+3ZtJQkje5Xp9XoUCARYGruU0BHemtFey+UyK/DJZMLWjCL9fp9KpRL3t5siPBmk4fP5uHWAhGq1GjUaDdYMrCJEBh0KE3w4HNJ4PDaVabfbVCwWaT6fc3vbsnMZiCANHKVYLMbtT6dTyufzpGkat2eVndUMjgkk0K2QiBk4UuFwWIgI7SIZFDhS6HQ67BrdyggKHGnoDUAUlpLRHworlQqNRiNuHwWeyWQomUwKF6Ftk0Fd6C0XqWCSG4FctVplQut0qk0f983YSAYC2WyWzYxut7ty+OG4NZtNbl0ka8vo/139ccQsDbv5VQZHCjWBm0chy8xKGaSAI6UfJbO54ZhkMC/Qjezip3n1EytlRA03UaifmmRFyciKkpEVJSMrSkZW/tx7AG9E9PB18ez8/PQyErHvCfMXjk9OTL/gWi6X3KL2/HLtxJeDVM3Iyr94EYhrCtJD9PYBxNGwbtr7fhYAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADMAAAAzCAYAAAA6oTAqAAAACXBIWXMAAAsSAAALEgHS3X78AAADSUlEQVRoge2av08aYRjHHxtn6SIuSprUDUgcalJlKRtom+gEE2xssMHG0GC7ODSBCTaY2IBFN+iC0cHEBNgcjDgxFf4Bmu+bPuZyd/R+cMBLe5/EgC9w936f5/k+zx1hY3t7+y0RHdB68TAajX6pd7z5R0hnzcSEieinevGN5m1rjCtGVjbXcdOnn78cdG/v1MsPaynm49HRD80iUdj1jKy4YmTFthiPx6NZWzW2xXQ6HYrH45r1VWJLTCgUot3dXSoWi3RxcaF5fVXYEhONRl+fp1IpajabUpSd7cyAZDJJLy8vdHx8LAQFAgHNe5eJZTF7e3vk9/uFiOvrawqHw3RzcyPWIEiZNenFcFaurq7E43g8prOzM6pUKrS1tUXVapWy2azmc8vA8rXZycmJeIRHWBjo9/s0GAxEhiAmGAxSOp0WYpcFbps/WbnTfHx8FBkwA8RBEIQ6SeHbdwoEg+ojhi1lBpmAEGwSZebz+YSHJpMJ9Xo9Gg6HYuN4hH/YR2gU3W5XczynsSSGzV2v16lcLmteV4LGUCqVKBaLUaPRoHw+b/iZebHUANgvbH4jsHlkERQKBSFukfPIdGZQTpj6oNVq0fPzsygptcFhfJQiZo8aZAmzKJFIiFJ0GtNiOCsAovCnt2ElmD/wCuYRRNdqNeEjXNctwkemxXAbPj8/F5tQtmU1yJpe5DGPcC3HPspkMsJ/TmFaTCQSEV2Lo2knqsgOWjXEYhbhQhVBwZoTmBLDXQzRxslnRX4W3NLhFzxXlif7CFmbd8CaEsMlhXpHeSiBL/TADOKGoQYZho/QFXO5nDju/f29EDTPgDUlhs1/eXn52q0QzVldSwlaMyLOwxTlqdwwgsE+arfbc/nIUAw2jQhjUxDjNE76yHBocokt8nIE50CGeMAiS2jfVgesYWbY/DghJjgiqAdKB15Qoy5DDg42Cq/MAq/hdgLzyGxjMBTDm8HB/3Zyu3AD4cyr/7eCoRiv1yuiqHdLbGR+JcrMWW3tZjHVzZBmvUjpra0S9xtNWXHFyIorRlZcMbLyz/0O4ImIvioX3+/vv/tweJjUvFsSvDs7uhvZmE6nmsXu7Z2lr2wlwf0dgLT8Fz8E0jQF6SF6+g1jSXIcR35pdAAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADMAAAAzCAYAAAA6oTAqAAAACXBIWXMAAAsSAAALEgHS3X78AAAEIElEQVRoge2ZUUhbVxjH/x0tW3wwEomBGutgSUunRkFbjdJhLAOdEWStKIzpm+7FRxmjOjZ0fdCHPvikb0pfxK364BxsmEhHNAkIVmQF40OdcbAUQ+NDs9EHx/9oLjFH12uMckPvDw65+c53zvn+9zvn3HOTS2azOQ9ABbKL1Ugk8io14suHQrxZJsYFYDHV+J7klsXoYrTK5WwMutndUuHzB1LNq1kppsbpfCQZAZe+ZrTKuYnp6enB6OgojEajYuN1XV2dKEVFRVKbs5JxMQxydnYWg4ODaG9vx8rKCpqamkRdaWkpZmZmROno6JDaakpMX1+fCL62tlax5ebmYmJiApOTk+L6PMnIbsY7zilVUlIi1SVobGwU5Tw5c2aYDY/H879CLoq0M8NFzGxYrVapTg3cIPb29jA2NpYxqafODHekoaEhsYjTFYLDtcRNgptFpna2U4lhNrxeL7q7u6W6dOFmwT45XS9ETKaycRLMEsVQFDeTdFElJhaLob+/HwUFBUpZWlqS/I6DfsntRkZGjngl17lcLqyvrx/Tizr044xWydgrwMDAwJEpwvV10WRMDIX4fD7Jzt0qEolI9vNAXzNaRRejVXQxauCJ+KJJW0xvby+mpqYkewKbzYbKyspjjz3j4+Ow2+3iCJNJ0nrO5Fms2N7eFoKGh4fFuwnPb8f5tLa2itM2fQjfX/g8uvKBATnGfLyO7Ur9p4tqMRzcfvsubLcbcOV9g7Btrfnxx9M5cQhNwHr65RhNePNvHJtBD4LBBfg6O4UHBVS1dKHYUSO+v45FEQouYGttGW/+iUvjngb+P1P/tr80rt4oFwFQRGLwPEuREhBF/bWxio/vuGG0WBWfqzcqYL5mV0ThUCz7YZtE3/xOn2e/TgtRb2Pwh4coLStLdXOpyozz/lciwNTBNoMLuPmJW4hiYUDPf/9ZZOug3gNz8XWUf9qGm3eahe3lnyE8fzqHl1sbBxn/7SDjxQ4nqlo6VYk5CVWZ4RTjFDAYDKiuccJuv45wOIxAYBnR3V1Rz0wlAqSPw1GOUGgDAf8y4vG4WEPk1d9hmPLzUe9qQI4hR/FJHifdzKgSQ5o+c4sAKIjB8ZMEA37Mz88JURT5xZddMJlMig8/F70eLHoXDvppdqO+vuFI3/T5ZX5O+KnhTGK+/uYBCgutiEajYlDeSd7de/faUOYoFz47O2Hhw8Ce/DQtfCju8/ttip2FQjdDITx+PCHaVVc7lZvE/r/79oE0fipnEsOAdjit/PJ8LrRa4XLdhcmUL6YMM8Cgk0lMO8I+1taeHalPTF/eoCc/TktjZFSM1jhJjH420yq6GK2ii9EqPJu9APB9cnwf2WwfVt261aXVoAssFslGLu3v70tGnz+Qdc8e/TmjZd6JH86lTUHzAC/+A61eoL8n33lAAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADMAAAAzCAYAAAA6oTAqAAAACXBIWXMAAAsSAAALEgHS3X78AAADcUlEQVRoge2a30tTYRjHv5Ygc6BydHmxMxBSkbRtF0n+uPHHjVLdFIEXRd006Q+QiPQiHER4EWQg1NWsULPSi6irthGM9EJQEYO2C7F5M3CkMCfbhfG8uTHPO+fOzque1T5wmHve95yd7/N832fnlRWZTKYKAHbkF4uhUOi38o6L94V48kxMJwCvMniGm5bHFMToleJ8vOkrV6/ZfXPzyvBiXoppaW19xgWBTqE2Ky8vh9PpRFNTEzd2EggT09vbi4WFBTgcDrjdbgwMDCTHZmdnEQqF2HGcaBZD1RgfH4fL5UJZWVkyTmI8Hs+JVknTmunr62O2ShWRSmNjI6vS9vY2N3Yc5CTGYrFgdHQUbW1t3Fg6DhMrGtU26+/vZ/bJVogSqiRZ81TFUDVoIQ8PD2vKNDUISkZ7ezs3ppWsxNBipk6VazWUyLKMmZkZ1jhEVimjGOpElMXUNiuSnp4eliRq6yI4sgEMDg4eEEc2y4ahoSGsrKwkZ1IlEkxNTWFyclJ4cjKKSb0ZtdC5Pp8v7Vnr6+uHjmkho83yjYyVOYpgMIiJiYnkLOpQoppELmgSQ3YZGRk5EEuIoe+Tra0t7hzdiskEPcqcNIVts14piNErBTF6RVVrDgQCeDf9AVUmE3sfj8Xx/MVYctxoLIXb+407T0mFVMXFRHDWaDTWALibzbUikQiWlpfQ0HABsVgMu7u7B8bj8TgikZ0jj5KSEhhKS/FjdZX7jGzo6u7Guepq5UyXapttBIN4+9rFxdXS0dGFyy2tmq+TSk5rZnl5CV6vm4ur5fqNmzDLshglWhrAx/fTCPj9XFwNBoMB9xz32asINHWzVy/HEI1GubgaJEnCrdt3hIhR/aBJtiCvy2YLe09itGb2otWGBw8fIboT3b/mDrweN/z+n9zcTKgWQw2ALEYC6urqYbXZUVtXzzKsBbNZZokhEV7P15wqnvMWgD6MGgEdhFRZCavVxgSSOLXVCofDePrEqcm2wvYz4c3N/az+7XIJUVabjWU9HSRgI/iL2YwqS/ZNnH+qYpSQ3+n48vkTZ0mC4vNz39nf1AAkiSprZ5WmxOhKTCpKSyp5I+BLGIWnZh1TEKNX/rnN2RqAx6nB87W1NZeam8U8MB0DafYyjKK9vT0u6Jub78jHHwcV1oxe+S/+O8M1Bd0DrP0BtEY7qG8QqrgAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADMAAAAzCAYAAAA6oTAqAAAACXBIWXMAAAsSAAALEgHS3X78AAADQklEQVRoge2asU8iQRTGnxdrvEZswFxydEBiwpmc2JxWincRK6GBDirsoFGKy3nXWFwiocDCxA4rqNBKroFoQWIBFRQGqLY6+Ae8fBPGkN1ld4BVl3N/ySY6Ow7zzbz53mPXucXFxfdEtEKzxb0kSX/lM54fCCnPmJgNIvojb3yn6DbDWGLMyvwsTnrn67eVyu2dvPl+JsV8Xlv7rWgk2rDOjFmxxJgVS4xZeXtJ0+Px0PHxsaJdjaurK8rlcip3nh8hMQsLC+T3+xXtakC4qcVUKhWy2+20vr6uuMdpt9tUq9XIZrNROp2mm5sbRZ9xwecaLgYkk0l2jcLn81G1WmU7mEgk2DUtWEDDxTidTorH49RoNOjo6Ehx7/T0lN3P5/PC4ahFv9+ner2u0UMdITGZTIaFD4SobX0qlaJAIEAnJydsIug7DRASDAbHHkHXmkOhEFvty8tLVSEAB97hcLB+cLPXQlMMXAyWjNWWh9cwpVKJ/RYOh1movRaaYQYhCBnsCixXi263S1tbW3R4eMh+xk69NJpicLjB/v4+u0TA2cFOxWIxof7YdYQmQhhXp9NR9BFFU8wkwNV2d3d1xcDGcdaMPGOGi0F4IXnqAbMYtnGIm8TBhhEWw8MBmd7r9bLzMS4YAwbR6/VYOLrd7qkmL0fTzTgwAGR4hAVWENl9c3OTJVFRstksuVwuJobvwt7eHhP4YmKur6+ZLV9cXLB6q1AoULPZZO4WiUSEJnN2dkbn5+dULpefxuB1XDQaVfSfFM0wQybGbsCieXzzDI8SBruDrL+9va3422HQB4vBw4qPgcoCOw6xRoC3AF/0Hpy3Wq2nfINdKhaLbGKYJC4RJElivQ4ODtgiYQyMiVAbVVmM4sfPX+TxeuV3xZ6bGRnXz4mQGF6uIHEi1nm4jJMjcOgBwpPvyqTV8SiExCCUYASAT4KHiyg46FwQHwOOBps2Ck0D4OAD4Vwob5aXl8eOcRqMgcnDBVHATjKGHmNVAKibpqmdaOCQz4X13MysWGLMiiXGrFhizMp/90rjgYi+Dzd+dLk+fFpdNe5bk8HYl5ZUB5x7fHxUNFZu73S/45gQ6/8ATMubeKepMAXTQ/TwD+1xXddF8L6CAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADMAAAAzCAYAAAA6oTAqAAAACXBIWXMAAAsSAAALEgHS3X78AAADMElEQVRoge2aPWzaQBiGv1SZoQtkAVSpyQRDhkZqYGnmthKZgCkSOyMbDBVsDJUSiZGBBTZYWCkLUSKFkAH2KGTyQhmZqF6rhy53Nhj/yHbLI1n6dHc53ct9fyYchEKh90R0Sv7iSVGU3+KJD/8K+eUzMRdENBAH30nLfMxejFc59OOhv377fjq8uxeHn3wp5vP5+U9pkOjCVTdLJBIUDAalcbO4JgZCer0eDQYD2wS5IgaHbzabNB6PaT6fU7fbldaYwRUxOPxwOFSffr+vjlWrVWndrrgiplQqUaFQUO3lcknpdJra7ba0bldcyWa4EZ7FYqE+VvFM0YxGo+pjBc+IyWaz6mMFV4vmbDaTxqxguxhkqmQy+Wbs9vZWDXIRO4KexzY3Q+1IpVKaBZDNOY1tYlDRO50OxeNxaQ5jmNMCN4m/ZSBuzNYc1xMAXA2CcHsnJyeqELPu53rXjIPDBRFTEFQsFmkymUjrjGC7GAQ7imIul6OXl5e1HYlEpLUMdAONRoMeHh4sJQXb3QyHr9VqayHM5rm5uZFqSj6fp3q9Lu23C1vF4NoVRdF9xI4Xt8CCmrd5UOmvr6/p8fFREuWoGMZ0OlVdiATbCnA9JgofmlZad0QMOl1W+HhbpNVqqXMIYt7eBERBzGg0siTKcAKAO7DKztsirDjGYrH1DG9vIhAIqGIAYs0xMZlMRtMWgUgmFJ+4nmgnMOxml5eXFA6HJVsEnyjmEFO8rQXmsBcJtlkM3wyfkcTsxAOXYj0ab2uBObYXbzsuplKpaNoicEHmhujJNrkk36/p9W67YNjNyuXy2g14W4S51+vr6xtbC+yBvUiwzWL4ZpBe2bs7b4uwqg+34W2tdobfQ2+/XTAsxqhLoOoz/2cxoxcL6CC0bLO42gFgD+wl2o6LcaIDwBz2Em2zuNoBoNqzOd52XIwTHQBrXUTbLFvF4GVpU3ywbyLhSnrpWgTupFdIgfj+Y5StYvDdlpHvtyDKaHrViyGr7P9B61X2YrzKP/c7gGci+sEPfjw+/vDp7OxKWu0RwkdHmgc5WK1W0uDw7v6LH38ctI8Zr/Jf/BBISgqeh+j5D/vplMQsnfCLAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADcAAAA3CAYAAACo29JGAAAACXBIWXMAAAsSAAALEgHS3X78AAAFCElEQVRoge1aPWxbVRT+XpUhA1LcBYkprhgZcAUSDEBcvZ24UhnapWZDQiIO09sI20MMpAJm3A6IAVSzMfAUZ+rqCCFRCUE8QSVEG0GlICE9dMJ33eNz33vxz0vSF/lIllP73vvud77vnp9bB2ma4rzahXOLbAGuwrYAV1VbgKuqnWtwS94nc1gQJ3UAHQDyPgDQT6Owf9qgnJVWoQRxIqC2AKwAGAJYVV/vCVAA22kU7nuTT8jmlqWwFcSJbPwTALLxy2kUCnOXAFwFcAvAIwAbfLfzG0Gc1LyFS7C5mDNsfZhG4ZY36BgL4mSfLA/JrpPzoHjmBGvPAo5nqwtgjZJrz7qZIE5aABoAmnxfUV/vKsCDaSU9Nbgy2CoykakB+6IaPnTMEmxhsJoYXJlsTWtBnDQVWHnX7O4ZOY/YnQjcSbM1A9i6Atugw0FmG2kUHgWuQnBnyda0RnZ7ZE/OcX4Sf9rYKjKmkg732nNDPXBVYgvjjAmwW2kUdt13S2ZgZdjC//uV/X0A4ADAFRs9R2eO+eZuRdgSGX4H4BXmwpYLItp0+dWmB5oVkOGQwP5hSdfh5+NjFXMN5osVsqeT5VMBVsnwbwDfsGx7FcAyh+yRHD8VMJi0mUPW1LqPAXx/Vm2MCXJiH6VRGJGtHQDXARzyWElQkdgxHlCY3bfwhP4vATwH4AEBr4vngjiBqgz6s9R9UwBrEdhRkCNzh2aYMHmNf49UlpUKagS4wUlX0yjsBXGSsn0RMG8BeJN13wbnPeAhL6+qj5Ntrv+biwVBnAg4azLueQC3i1JBk14SLf8B4L4AU0MeEaho+oaEX36+RcmIl29yLaiq3rHrRbQsowx7dJ7s45ccZ73MoPIsgLc1MOhoqfRbY5P5I4B/veWM8fwdncE0CmXuZXEKpVynjGTdh0GciOe7QZy0CcAzynBAYJs5+1iWdQB8DOAnAG9YYDCpoMNUUDdsTWX08O/yUHbkFzl/l2FbmP0CwK+igCBORAlHoZwyvMvzJR39ds6z21znTwD3pFjOcpYG5yqTh7w2kMG1ea8AlBTlHDaVlD8n46/ximKH5+s+njhpzFhBiUno/xTADwDeUc4ai+IX1CYGlONtAlulNATszxyW6aEZ7WtW759x+hVK+quM5ZaEYTpBorS0Ne+Js9IoDDh3k/sbsW1TQc9V1UGcvA7gDoE+wyHrfD3mv68xcMxtLnfyzGmTZ7/ARD3KYWbffcaMFX0J5aUC+AXpptM+F3DdsLze5UtsSK/1ue6xweg4owxf4j6uZ8UCHpseo/Uu04IPjiVYl3LcZQE9Ss4qMjqwddP+b7i8B+AvRrSZqhnKcJ0ybGUVCabd8bqYJTNwx7JVZHxgV61RM8yO8h6A9/kMb5PGllmBrOfJkM8qbHdgCueeYyHLS7Ma1aDZtTfRh6zwLzHEuw23c2SoE3xuu2PBuX5uaKoKLyTPCbZuru7WzJDcDZs681h12a6gxWSuL0cPVPtzIh2BurobZLGF8TpTnN+axOm5t18TyCnzrrBsMzL8lnL1WM2yXHAZYIvkNDTsliLlaWXozZ/zP0LyboJzo9yE6+q2a2IZeuuU+Qsilff2s84mmagVBSqTa6eSobfWaf48ioWtk/OBObdSQrVVhdHJamOmet5p//ZLBSon51UzpLSrxTP/YZsKVA1WL71ZZeitvfjVXkVtAa6qtgBXVVuAq6qdX3AA/gMQ8KqboTjpAAAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADcAAAA3CAYAAACo29JGAAAACXBIWXMAAAsSAAALEgHS3X78AAAEoklEQVRoge1azU3jQBR+Xu1xJdJB0gE57J0gF4CpAFMBOfq2yc03QgWYChIKsAgdJB2EDkIFXj32e+jJM2PGduwA2k+yMI4z9jfvm/c3CYqioO+KH9+W2Xcn99O4YkGQ5gMiGpuf9IJ9kYSbJg/yWnNBmvPgp8YH/eGySMJV3ad5WQ7EXogoMz7pFhMiOoNqDkfOIsU9Ea2NG9thVyThzjVCkOYzkGsEJzkQ0VLk8yfjrpYI0vy6SMJOFFFFjsm8ElGjxeyBERENieg+SHPqgmAVOcamSMKJcfUAgOT+YKROCPqGggkkOYdcy+fPPAlBmvumO+fq/IGIrrog6Ost2Zk8swNwnIt0n41v2rFXVzNM0v2hCXqRQxDV8rSe15FwkOaR+l7GpA5N0NdyXeIJxDTukTh8WXKrkgIE4kUHxic1cTRyFqm/oeRFW8HXWx666DsvkvDQ2Y4BX8v5ekFf7A8zTDV8vaUhn68AX1keWkLTpjVaHfjKsnFm7kBrT+gDX1kGxsWOUCQhe0s+JO3rllyfsgShCeKgPLfR8z+VLIM0l4r7hCeAScKSjfBpZBmkOZO5xb/PmNB1kOZxk/4J9STLrCoJhgx1O+EaifSCiG6IaBmk+SOk7GxJ2NCHLNcgMULeSJAlk4qQRzK2RBTLWiyScBqk+Qol0QUfQZpvIduNSgS4oLYmBb3IEsQ2WEtl8AsvbNZFijZiaWINnlpajFtXT7UXWaLIPcFakrE2mPUPpQbiGSaJLS4KiC1k39GXLIXA2ub90EaMcIwh1S2+txKrYiLeLYz1OiyPJ+hLls5gDMktLJIVCV6gDJrW9Zq+sjRmuwackg7SPENziNAoWujgjrg3xT3Luj1OX1m2LR4NgohrV+iNTmwZC67Fymty+4E3Rrws6Evu3Ljij50KAUJshNjmJIZ7Iqy5FeS7FMficv+1ybWtmvGiGlOssbmNGBAhY2FnMwNB6XHKOq3EsTYfpa1X9YLihLQE5f7IuNuCY5EbokttlRZCA2clL9qyOGcpe4Wmz7ptLFazLQeXjA18hqbsO9CFXivZ2bxief06cSxyr+V8EMSWyEzeCJSDNuQq2cuH6DuIy6zzS1+hVsvUfVuVKz4aI/3zsuUxnegriIuXE3KSmcw4QLNj4QNpmuzolq02UuTK41nRSxDHi/MPBs4QgNcoQC9QbU9KBMc6tkKOKxUbd0jNhlUN4z69pchPZj9WMtxIcg2SmliMLIfve1BVxaI0rgFfy7XZ6J8j1VqA2A1vT6GVMFGV9hOsu8ExRkiQauGOq3NF+AxxsDW5uXHFH29WgOQkP+QEeFAkIROOQHIKkkP8FTyiWpB2hd4FqsxUfMm1yS3fK23kh9fYQb2F+5/hxeXlx8gn96XyR6zM5F91v8WFPmUpBDPsmi4grSckxExyV35heMlMdQPYgcQ+7YneZKkhG4+Q6QxhIUI7bwEJD/DZDb76AmsZ47ng/GEbNhy3yrt1hV9E9FuVQS9w+zH+f4VVqyoIKz4i1wu4R6MK2Cv1zDsQs1YPH6FKlpeufmAXwBqK0VeZoFNdq8NchtNy3wH/f+P8JUFEfwEiCTGPLbVE4gAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHMAAABsCAYAAABZw42oAAAABHNCSVQICAgIfAhkiAAACb1JREFUeF7tnV9IFVkYwM9Vb1pd++cNs4xYEzQFJZVAkn1YNHrQLWEriqWIdjco24ddSeihpZ4SdhdaJQgfom23NtiI1CA0tijtQpiVsKJgRuWmllbmpfxT3p1vvGc6d5qZc273ztx/34Hh6syZ8+f7zfedc75zzoyNYIgaCdiipiZYESIKUzQeitQ8CXh4SfMg0eu8eLx88HrgEqAwdaHqQWIhqoEi2MDBiKagBgj/60LVAsPCi5Nuhv/Vh2hhMF5gEqDw2N8ZPaB6MOE8gFQfLNTAiol38ySgBggQ2YPVUjktNUwWVrx0XT4uunr22RMTczwzHjSxPARBvm6Ls3mmJye7K4uzT0hJv2cOFrYuTKqNADKh+e5Ay0JHUrHTMSfIxcTkRCUw4p4iY+4JV/na9A3SPe+8QKmWKh0iVtPo3wBTBilpZJXT6awtyUwRzRfjmSSBtr5RMjIyUiNpaL0KKOQoA1XDpG0lwLQ3dz6sX52Wsit7WbJJRcRkRSXQMzROHgyOni4v+KxKumea0U6l7dSDmQAwmzr66zNXOHciTFGRmxcPYPb9N/J7RVEGhQnmlvZsdTWTdnzmSDDrEKZ5gPxJmYF5QLpvSqMjpGlm5fZSOgDmb3ow37x5Q96+fcstz9y5c8m8efO48TCCsQQYmN97YdKOkKGZ5cIEkIODg2TRokVcBq9evSJpaWkIlCupEMEcHR2Vc05J4fdy/YkbYH2j+nbTNNMfQP7EjWoaAVYuZDB7h93kp6Ze8tc3hQRhBkjRe3tIYALI7/68T34sXU2+zFuGMIPDklgC8/Nf2kl12Sy4xq4h8nPrA9LwdT7JSnXI1UDNDA5NS2CCJn77x33yRZaT/NM74gMSYQYHJKRiCUzICID+8Pe/5NevchWNpNVAzQwOUMtgGhUXYSLM4EggilIxTTPRA2T9U2IaTKgK+matBWoqTGurgrkhzCh6BhAmwpxd/yMdhvOZUSSniKgKamZEYBIrJMIUk1NExEKYEYFJrJAxC/PZs2fE7XYbSmnx4sUEjkgJMQuzpqaGyygjI4Ps3buXGy9cIsQ0zNLSUlJWVqbJ4uTJk/J5hBkuj6pGOVpbW4nNZiPwy4P58uVLUlRURJKSkkhJSUkY12q2aDGlmf39/YRqHFR+y5YtMiyt0NTURNra2pRLtbW1CDOcJEBhgumE9lAkgAZfvXqVIEwRaVkYB2Fq7wKLSHcewoxSmDDXCgcN+fn55MmTJ+TFixfKuaysLHL79m00sxZaT+GsWM0EkGfOnFHuPXr0qAyzoaFBOXfo0CGEKSxdiyOyMBMTE31yl3Z/w65jn3MOh0MTJnSKYLMTDG3CyUMUMUOTqakpMjAw4Dd+2F0GWwYhBKvNZL1HMLQJF6gRAxPargsXLvgNs7CwkGzduvUjmB6P70us0tPTP3pYQFu12kyACQ/J8uXLyZ07d+S0wwFqxMC8du0auXLlil/uNXAQsP7VYLWZAJOmC14iMLvhADXiYPozeGeFrjaz0AGamYHt/rMBeq7QAWJ7uKtWrdLVTLUTPhygxizMQDxA6oeEtf2hhBqzMJcsWeLT/kInSf3+BXDI67WZvOkxLaiVlZUkIQGWTpkTIhLm5cuXSV9fn65EwDxu3ryZ8Mzsp44zjTRTXSiA2tjYSLq7u0lVVRVZuXKlOSSlVCMW5qNHj3SFAr1MEZiw2oCG9evXy23m48ePlXPQE/5UzWQLRzteCNMrFdqbDVYHyKw2U+sJQ5gqqYQrTLXXSAvm69ev5XlU1EwNzYTxJi9s3LiR22aeO3dOSebw4cOymT116pRy7uDBg1wzW1dXZ+iZ2rFjB0lOTkaYLDBWM6EDdOPGDV2excXFQm1mT0+PkkZFRYUM8969e8o5WB/EazNv3rxp+FwtWLAAYaolxMKcmJjgKaa8bseoN4tt5of3sFs+OR2ubSb3qZIiYAfIoANkNMakt2VmZnLbzJaWFiWX/fv3y2YWxoQ07Nmzh2tmoc0cGxvTZQrmG9tMA5jBajPZ1Xe7d++WYcLiLRq2b9/Ohck6HrSI5uXlIUyjNrOrq4tr3UCI2GYq72oP7BWlXGn7GQHbTL7AItKdx6/WbAyeb7azs1NJatu2bbKZvXXrlnJu06ZNXDN79uxZw+Lk5uaimTUys9Bmtre36wpx3bp1QuPMS5cuKWlUV1fLMM+fP6+cA48Nb5wJHSB2RZ+6UOAjxg4QpwNkNNaMj4/nwsRxJo4zNc03z+zjONNAM3nCo9d5bSY7jQYr7MDM9vb2KsnDzi+emXW5XIbFgQ8JoJnlmNnnz5/rChFe8i8ynxmMyWl0tIuqFhNP7Wg3GmuuWbOGC1N0xv/69esfbU9gNX5oaIhbG1gkhlNgOjC50vNGQKdBjDgNQFvGx8eV56KgoEBuM1nznZOTw20zUTNFVUtHM43GmPQWWNPD6wBhmzk7PAnpFFgwHO10/wmFD0sv1YN/6InyerOsx0jrGZ0/fz72Zo08QMPDw1zdTk1NRUf7h4+ioqMdnhitdxr4s24W0kCngclOA3TnoTsP3XncBk4gAs5n8oUUs/OZaGbDwMz68y47vc22sMgK9qOIBNhE29HR4fNSJ+gAwf2Qjkh4+vQpgTd+4Yp2r7SCsQ0ehHr8+HER+fvEgTW4R44cUc4dO3aMwO4ufwNMgC9dutTf24TjR4yZhV3Ok5OTwhWjEeGtInFxccp9kAa7Y1okQdhTabfblajT09Pk3Tv4nLN/Qe2o8O9ufuyIgcmvCsZAmFH0DCBMhGm9oz2KZG5aVVAzTROt9QkjTOtlblqOCNM00VqfMMK0Xuam5YgwTROt9QkjTOtlblqOCNM00VqfMMK0Xuam5YgwTROt9QkHAhOWW8KXbesyVzh3Zi9Ltr70mKOPBBiYB6QLU9Lx3nsYrs6DOSV416ZdglmPMMPjqWJgVkklmpYOmKeDNyRzYYJm2ps7H9avTkvZhZoZeqAA88Hg6Onygs8oTNBMQ5hQatBMeVX7RVdPlfRi+tqSzJTQ1ybGS9DWNwqf86ipLM6u92olhQmSkb8wANsR2AD/A0wFaPPdgZaFjqRip2NOjIszdNUfcU+RMfeEq3xt+gYVSKqZcuG0YMI5uucENDRe0tB99sTEHM+MRx0/dDWMkZxtcTbP9ORkt6SRJ6Qq004P/NK2UvnuhxYcCpNqKPtLryFU8x8mFhZooPpQOj60KHowqdYCSBYg/dv8qmAOtC1kocLfrGn1+RqPnobR8yw89hyK2hoJUFjsr/qcUhKeuUSA1kATyUUXopGZ1UqYB12kMBgnMAn4fuBMIy2EFJiAw+puhBlWOAIrzP9qsY8hqeoI4gAAAABJRU5ErkJggg==\"","module.exports = __webpack_public_path__ + \"static/media/OpenLicenseManager.24a09e21.gif\";","module.exports = __webpack_public_path__ + \"static/media/orlando2.85b9f637.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAASCAYAAAHOC9X/AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsIAAA7CARUoSoAAAAJwSURBVChTbVNLbuJAEO3DBGNst9sfYDnRZIZPrjCRWLAa5QIBhpyAA4BgIoQREixYskA5XKVetdt8ZhZP/nTVq1evqlUUBpSmhrIsIZUkhrbbLQ0GA1Je3aMkifkkJRXryIYUxYaKzYZU3ffsUWI4Jk2o3+vKjzjWpFL+AbZut0MpPwEVci0w4hCReOdIFE9pMh6LkCgKSTXzjFBpv9/ThqshQziB8Wgk3IDyWEYYBULhIIUgw8pP6MfTd3p9/U15nlJeBpWULK1Uk3PNfr9Hk8lYAm8YDTcJtNpNarWa0tf7+5TyZi7fKVeJY25HSlTI6Pm5R9Pp9IZNGMMgkF4Na0QnrjsXIPo0246ycshB8/lcmrroK6dmM63np9NJusc/fIOkCkImnggC84UJo+Sg9Xot1sP24/EoTwz8cDhYJmS1YQMDHYIpyzKxod1uWRukNgOijdESpLlbfIsURuUVpo2Ez89PzsaiXWnCGnp+jfyGJ4KvD6sgtAtxyEY57GTiZgsZ/B6GDTJ37LDMnUOWwe46061lF2+xOdCNkZ7PZx7rn8pCwRUpcpBb+m5JnBqpyoE46/GtgTljXn904ZKNMeKk1prXBBDrS/c4AIdWpVWK5E7np5CN+IZEfCnEBgbiAORhZBmrFWUApC8WC1qtVldY0sfHX1mA3W5Hy+VS4M6LoqCXl1/saSBKxTMHbPU1gqBBT3wDRdnbGzUaPkV3cXZ4WqBg5A2cwQy0gFt68QwTLX29A2JlNWJeiQqcIGvC/7Eqj4/faDab0XA4JM3ft+txC/VQe6BarUaex6jzUvoeBaFPmgllhxj/S/wXKX0Bx9NV9g60EN4AAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/map_production.f0b841cc.png\";","module.exports = \"data:image/jpeg;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAYCAYAAAD6S912AAAACXBIWXMAAAsSAAALEgHS3X78AAAAiklEQVQ4jWP8nGPzn4F64CITFQ37yMDA4EAtA8GG8Uw+/IFaBhbwTD58AcSghoGNPJMPL4BxKDVwIc/kww3IAtSMFKoYGP8l17aAmgaCQP+XXNsAahoIAgu+5NoagBjUzCkPGRgYDKgZKfIMDAwHWGA8nsmHGTGUkAEGXbLBAKMGjho4/AxkYGAAACeaHT3gIwTmAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAYCAYAAAD6S912AAAACXBIWXMAAAsSAAALEgHS3X78AAAAiUlEQVQ4jWNkat/zn4F64CITFQ37yMDA4EAtA8GG/a1w/kAtAwv+VjhfADGoYWDj3wrnBTAOpQYu/Fvh3IAsQM1IoYqB8cwdewuoaSAI9DN37A2gpoEgsIC5Y68BiEHNnPKQgYHBgJqRIs/AwHCABcb7W+HMiKGEDDDokg0GGDVw1MDhZyADAwMA5RIdPWXSMCYAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAOMAAABBCAYAAAAjWhOpAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3hpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo5N2M1ZjU5My04NWUwLTRjMDktYTRiYi00OGMyYjlkNDkyMDciIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NTU0NzkwRkUwQTM4MTFFOEIyRDM4MUM5RUNEODBDOTEiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NTU0NzkwRkQwQTM4MTFFOEIyRDM4MUM5RUNEODBDOTEiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKE1hY2ludG9zaCkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo5N2M1ZjU5My04NWUwLTRjMDktYTRiYi00OGMyYjlkNDkyMDciIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6OTdjNWY1OTMtODVlMC00YzA5LWE0YmItNDhjMmI5ZDQ5MjA3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\"","module.exports = __webpack_public_path__ + \"static/media/auburn1.8f221d12.png\";","module.exports = __webpack_public_path__ + \"static/media/orlando1.f0a915d1.png\";","module.exports = __webpack_public_path__ + \"static/media/sanfrancisco1.8a147b94.png\";","module.exports = __webpack_public_path__ + \"static/media/sanfrancisco2.bfeca74d.png\";","module.exports = __webpack_public_path__ + \"static/media/sanfrancisco3.8d6dcb13.png\";","module.exports = __webpack_public_path__ + \"static/media/sanfrancisco4.afa94934.png\";","module.exports = __webpack_public_path__ + \"static/media/sanfrancisco5.6f7c9cb4.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACsAAAAwCAYAAACITIOYAAAABHNCSVQICAgIfAhkiAAAAiVJREFUaEPtWb8vBEEUdpWSBg1xGkpaGqvQaJAIJSqNxD8gcRL/gESjQkkUNBoFGkqndNUJDRpKFd/Hm83uxu7O/pjd3GVe8mXuZt578903c+/mdiodyWwb7pvAKbCULNTnfYx3C8AOsKWbp6LrKH7PaPvl9QDal4TxdGc889AYzzxaZsnGyJSbslVMNAmMCYLzjqOjUzrv0H5prZ/fifHMQ2M88wStjg7iBmiqQe822EBnDehOQcBUyIdw2uUEiixJan8rTTGLyMsqVCNZB7jyOFL6M1mGYPwJOnqkcxHtewrijGceGuOZJ2jchnMAt6SyKZIlsVnpORenMA5Fly4fN5K9B/hJaENAM0KtosmSF/nR6iT77SEXV3cf4Tss/n1o3yI+WNhQLwZeZbCBdiQmh8svKdkZJF4DLoG9FERVyDpeTAP7wIUpshn4pQ5NrWzqGTMEWrIZxIsMbQ9lJ0zJkyHvrYoNlq4MOc2HtjTZ/86W5iWLnkGdfX+PiEl+bssg3h7VIO4gY5W1B5ky9oC3ANhqkPMK2NKVs6BuOqusVdaWLlN7wCprlf1TwNZZUzuhdZXlrcioyBL3MNmUemF5HQyoK4QHnmcPgWXx5mPx+aIZhczHWyMSVU/lj0i2ClDdLglqor0G2JZl5MQLEHXN9UnS6t/sCt4clMVMY95V7gDvX2+HHcCgRnBRLk+YiEJypd1LO+/k6iqUS1GWcQuqK1GXww9hTY9gK2PBUQAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACsAAAAwCAYAAACITIOYAAAABHNCSVQICAgIfAhkiAAABClJREFUaEPtmTuMTVEUhmckovJKJEo3oZEQFFruNCQaj0qicCVKCQqFEK7Eo1AgVEKMhEIUTK1wCZXCELVcKtEwVETwf5O9ZWXlPPY+504huStZueex917fWfvfr5nJidFZR00dle+Rcz2UP5ZfC9etI022bmFiYoXaOCs/VtHWVb07J//aJl5bWDLZlwNcZ4BSlkw3sqawXUW7E7rbBn4WgAb6pQxw2x3ZUPeH5JTJslzYToAExNoH3SADNOoNDSODNe4FsEADn2SpsHTzffku1+pcAOknRKMMH7TclU3WcwpsmS5nFXRKnjNo+GjgDjrgJD1XwXbVYJEubZx3ujktn0nIrC2yOUBn6bkIthMggbWGLm/Kd8q3uXdI5JScMjmWpWcLWzZfFunyiIjOy63+foYsX86hDWX7+q3Vc4SlWx7Jyaq1u6GRIl2uDsCHXZ1XIctPMqHL9MzYYNaYBZYp5b18kWmc+ZIvpWCd7QjQW13BWwH6c10D7n2Rnn+pzDpgmRt3mwofdc1oHWQGOaHyF+SLTT0kxAC8kdlWV+UfyleZeg+AfSvfWNAYH3FcPswI1AlZPuDqPA9ZflHTFvWvyBl43l4C+8c8/abrZeYercZJO4N5vqcYgBtcpesB+ntBY3EzZPcZlFsay3rYlQHOT9pkt8l6fkb12G1Z+6QbpHE7POzqt2g+j4P7SxlsnB1ogIxucoGaSGN9yPI+1xbS+C0nlrU3umFwD8LDfz3vM+sXCSr15XY+jdJgq5ez1O4P0GsdXLxlMBKLJFlLhqVS2fw31DsGINlOtb0qSJf7zUzVfJ4FG0G64au9NOiuuq1eJ0DShreLesBSXWaNYGNjvQDts9PXcy8NeiXu2iwMXY7E7smZ8KusFSwNAwEcINaGujkp/yFfIr8k77gyfBB1U/XeGjbGL9vqFWUqZwm39UcGGxvt6YJR7KXB+9jl05WdXf5y5LBl0sjt8iLkBYGNgezynXJsqkv4GHacWWVgLIOxDP5rGbBGx5Vni65TTrRVc+Mo51mW89ch2Jw/3bIkst1rY6OCZbPE4ZGlHJsBlpMkf+CIRmbZVA8aEo8CthtAyWy0qbgcklF/SOQZh71hJnQb2I5iccqN2YyhOUn07NrNZpi0W2ty3moCGzfpMNijOCz08vy5zG80+DJe2L/QUI7s9uV8YZ3lwtKjtE1sa/wZFXhiz1vZrqgboIvOW0hjUEGcCksMupxfa/4o/u9d3RauF6D9pnpaz8v0XAdLBot0WbtJr4Plq9AQ3UEAa2V6LoOt0iUfjvwqz2UpsBGQjKTouQg2WZcV8irVbFUdNAZ0mZ6fmspToUeSdTlq2NhemZ6r4tXqcqFgq/RcFDNJlwsJa/Xc141fBXnP3My7YRVIyrucAZbSHoOQDPL/Bf4RwgzSGjIG/gsyBxiYChBO/QAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACsAAAArCAYAAADhXXHAAAAABHNCSVQICAgIfAhkiAAAA6JJREFUWEfVWUuoTlEUdicYKI9SBkhk4E64E2b8mMjokhHiekQMhPJKuf+9JS7lNVDk8RNGwkgm+Jm5E0wYiH6Pcku5lAF3wvdpLa32ee19jvPfzqqvc/Y+e6/17bX3WnufczrGFJN56F4DFgKdwExgCjAWGAG+Ah+AV8Ag0ARe5zXZkaPjZPTZCqwFFuTo/wJ9bgGXgOGQ/iFkJ0DxYWCveC7ETlxbev4UcBT44aPMl+wGKBsApjlKf6F8H3gKPAfeAl8A1o8DpgJzgC5gMbBS6q2aIRQOANezCPuQvQAl2xxFXH+svynEsuzocw5gHbAd4Dq3clHqE3WlkeXavA0sM73f4f6IkPQlmNSOpPuB2abBI9yvAWLXchJZEn3gjJ4j3xXoyawB0dPnADtznLUVcYSTyD50PLoH5TNZlgs8342+px0PL3f1xZF11+gWdLpSgIhv181oeNk0jqxhlyyj/prpULZH3YG4Ht6IBv+yhCXLPPoG0PSUGZ2+LgtsZ2eWaW0u8DcPW7LHUD4oihn13D6ZL9stDDpuz5oljuP+kCXL6OcouKdT1gPMoaMlTGs3xDh3Os72sHp2Hwon5CFTx6LRYmnsPsO9bhz7cX9SyXKr1ENJO6Kfth4LMW7FrRjn2OzAw08XyfKYxzVC4RqdKNeynDtJiKpzzqLMLOAK1+53gFdKJ8nuAM5LxV1cV5fFUvTSS/PlnmRIupVg8w7qV8mznSR7FeiRirLzagN2mDtVSOReinNs3m2QrF3INZSflOTZOvT2Gt0+jlmC9k3pM0iynwHdCGbg/lMJZDlznEEV7pI6m2nmpuPhR2kwRLIMKs2v46X8P/lq5DOwKJy5mqcBBtdPaTtCsr9Nx6RTGA3pFHL6fGUWGjItKtGXQvSbrwLLz9ezdqEzmpcCWQbdFJUV+XH8I571WbOcNk3iVOpDuIl2DBAVJn/2C5HImvXNBj2wYoMkjXADbW2K2oQy60Ilkg1C8qwPYbdNHxjWQ1lK+0ieDd3B0gh3wwh3QRXfFJU0lsgOluds4BJuwRo9yPcoG/l5vtgo8dizAR/mOXW5hK133qNAolkZI211xJ662CHveZaEmgBPaipMUTUgNPJd4onn2SJvCi5h5mAOoIikvilQcZF3MBKuAw0g7RTlM4DMdzAqqdTbLQlX5ruBTlFlvsgo4cp86yLhSn1FVMKV+D5rU0wlvnxbwpX5p6CkK/O3xnq5Ev/B4rbKtv5h/ANTDQbuM2UvAAAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACsAAAArCAYAAADhXXHAAAAABHNCSVQICAgIfAhkiAAAA6JJREFUWEfVWU2oT0EU/z8LLJSvFPVYkIW38hbY8TwbxIKsEM9HvhZC8UhZKPkqXwsiH4+wkChFKDx23oYVC7FAeSUeZcFT+P105nWaO/OfmXv/1Ez9ujNzzznzm3PPnJl7b1OtWpkC9TZgOtACTABGAYOBfuAz8BZ4AfQA3cDLskM2lVAcCZ21wFJgagn959C5CpwF+lL0U8gOg+HdwDbxXMo4Lll6/giwD/gWYyyW7AoYOwiMtYz+QPsO8AR4BrwGPgLsHwKMASYBrcBMYL70azO9aHQCl0KEY8iehpF1liHGH/uvCLHQOOY+J7AMWA8wznU5I/1eW/XIMjavA+1K+w3qe4RkLEGfHEnvBSYqgYeoLwGcsewjS6J3rdlz5psTPRmaED19AtBPjk9trouwj+wDy6Nb0T4WGrnC/S3QPWp5eI5tz0XWjtE1UDpfgUis6moInlPChRi2yXLVX1QK/9qj9kRsD6+EwECW0GSZR18BJj0FV2esyxLl9JNlWpsM/M3Dmux+tHeKYa56bp/Ml67Z/0bn8UQSFGe+5WK6Bjzy6HPRcXs2WeIA6rs0Wa5+zoJ7OstygDnULh3ouCCdXbiuSiBMoreBccBPuX7y6DOtXZZ73On4tPuMZ7ejcUhuMnXM8BjRZCkSS1gTpV6ILGWeAmbj2IH6YUOWW6U5lIRWPwky8E0JEXYRXQDl+x6HmG6dHXj4aSVZHvMYIyyM0eFyrWcrlnBZohybsftVrmy3kOxG4KQwu4nr4sCMtUfrebgKUTPGDVQWSWMTyXLBdEhHal71ebgRRElJ590uktWB3Ib240jP+jx8CzemAVz1LFxMMTHqGnYWOrvlRg/JfgDMRjAe9feJZClue9iYqEKUNpqBd2Ksl2S5qEx+HSrtEnxr9OhCpfgL9XlAaNXXG4uL7LsI9JMsdyNTYg7jLuN2jBoZejxl43DZHuDXCM/aROnRQWrUKoQLnq0Ss75VzzfflI3DFwqFmC2bDULpyV50ZTxcyAZl8myIqI7ZKh4u5NnUHSyWaCMIF3awlLNBKlEfYZ6F6bVQ2iqcDagQe+o6BdkNMkJqwrdjOJQmnacujh17np0N2XtCtswWagjHeNZ7no19UyDP0ULWd8oPPN3aCAh8CQjVfVOgbuw7WIhM1fvBdzAOkNXbLQln893APL5svsgYwtl86yLhrL4iGsJZfJ/V6SeLL9+acDb/FAzpbP7WaC9n8R/MtY3+1z+MfwDVDh7uCkqCigAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/QGIS_Add_Layer.ae38d570.png\";","module.exports = __webpack_public_path__ + \"static/media/OpenTEDProject.5ff487d1.gif\";","module.exports = __webpack_public_path__ + \"static/media/OpenTEMProject.528441f2.gif\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAUCAIAAABAqPnNAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAASdEVYdFNvZnR3YXJlAEdyZWVuc2hvdF5VCAUAAACTSURBVEhL7dJRCoAgDIDh7tNJvIL38KBptwmyhTHWfHBayh6Mj0hU+hGXVeVzZy3GqTOzagizjjMiNmTornbyrM3vIP0Yh4yKLLoAaMnKqciiC0CeZd8PnSroeloxxqfIWvimUwW971Yqq2sCA+5WdRPofVqNPp6Wh3dIRxVw9gfyLMSGDN3VTpg12syqMbPEjLsAvn/XGrDqRT8AAAAASUVORK5CYII=\"","module.exports = __webpack_public_path__ + \"static/media/OpenLicenseManagerTEPlus.06a33ecd.gif\";","module.exports = __webpack_public_path__ + \"static/media/OpenLicenseManagerTEProPlus.e62a2844.gif\";","module.exports = __webpack_public_path__ + \"static/media/LicenseTB.d79682f6.gif\";","module.exports = __webpack_public_path__ + \"static/media/LicensePM.2b5f7c76.gif\";","module.exports = __webpack_public_path__ + \"static/media/CheckoutLicenseManagerTE.ba8ea30c.gif\";","module.exports = __webpack_public_path__ + \"static/media/CheckinLicenseManagerTE.ba72485b.gif\";","module.exports = __webpack_public_path__ + \"static/media/CheckoutLicenseManagerTEPlus.16bc4adf.gif\";","module.exports = __webpack_public_path__ + \"static/media/CheckinLicenseManagerTEPlus.eca24d6f.gif\";","module.exports = __webpack_public_path__ + \"static/media/CheckoutLicenseManagerTEProPlus.c6d92aff.gif\";","module.exports = __webpack_public_path__ + \"static/media/CheckinLicenseManagerTEProPlus.82c728d3.gif\";","module.exports = __webpack_public_path__ + \"static/media/CheckoutLicenseManagerTB.47aeac55.gif\";","module.exports = __webpack_public_path__ + \"static/media/CheckinLicenseManagerTB.1022bc62.gif\";","module.exports = __webpack_public_path__ + \"static/media/CheckoutLicenseManagerPM.19b5c8c6.gif\";","module.exports = __webpack_public_path__ + \"static/media/CheckinLicenseManagerPM.78182358.gif\";","module.exports = __webpack_public_path__ + \"static/media/CheckoutLicenseManagerSG.d9194206.gif\";","module.exports = __webpack_public_path__ + \"static/media/CheckinLicenseManagerSG.242acfb5.gif\";","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/LogInTED.556cf9c3.gif\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAPCAYAAADUFP50AAAABHNCSVQICAgIfAhkiAAAAUZJREFUKFPdUj1LxEAQndmgoI1eNuEUYpKz89DC4gpBsPQniPaKiK2dYGVjJYJg4dmeCP4FtfD+g+VdAgeaz1LB7DgJBqP4gWDlwMLsm3k7MzsPoWIPpjuhkbpgaMBnJQ8hQKoId42of1zNZfzNEmkfEdKwHvqbJRrXrDkQ4kaPPPmOGJv2ImWqjpq4B6IthSIRQJ0yCYEEV7xGhKUS0wPvFiPD3gOgbQJIkPCpCCKkldeZC2Ov2CwQ3smov1C0GsmpNgjoysA/q7bz0eciiXgWjVraS/+OmNadRqboRAbecmw4awBqnj9rp+jsu4qhdGYQ6VKGXjMw7HUB0GJ/4z8R81liw13Vw14nGXfdTKNpltvVjzP+bo+GfcCEIVBw+hVRoGgpVIcKqGmG/qAQgG9ZI6OP2GatmXyd/JTMwkOifd7peR5/ARPf5hBBIlfTAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHMAAABsCAYAAABZw42oAAAABHNCSVQICAgIfAhkiAAACThJREFUeF7tnVuITV8cx9ecM5O7wZAhUlIaikJKPFJeNJQhvJAHDzxqiEkRNfN/kyd5oISEhyElFLmWkDy4lJRLxv0exozxX9/VXtva++y919pnztrn7H1+u3bHbOv6+6zf77fW2mutXcPoyowEajJTE6oIM4VpGo5Eak8Cf3VJ6yCp/68Lq8uL/r94CaggQ6GGAZLP1V8CWzyMYmL6Acq//b9u2kEw/QDxd47f+PVDLqaQFMdMAio0/LuP3/iVN1LxaGkYTBVg3oEpgSIRMrlmQPoTSoUJkLj/OABVsKGaKbUPvxJivqura/mAAQOaEKuvr49A9gdRjLi5XE4A7e7ufjhu3LiTDkwVqqqlBRomNRJaCJj5X79+HeEgm2OUgYJakAAH2jlw4MA1DlBoqNRW19QGdWokyFqukS2NjY2HLJSNkixCAq9fv17LNfQEj9qraKnrO/0wpWZCK2s/f/7cVl9fv7WIfCmKBQl8+fKlfcSIEbt9MF1TGwazlkeo+/jx4/aRI0dusVAuSrIICXz69Klj1KhRe3jUHgeopyMUBFP4SsB8//59W0NDQ2sR+VIUCxL48OHDf6NHj4ZmAib8puzdCr8ZBlNoJoe5PQzmjx8/2M+fP7VFHjRoEBs8eLA2HAXQS8CBqWpm/2ECJO8cMW6/tSXgfpdxp01AtZLSB7ACkycqcuZaqy1BnLDaxKo8AMHMUAMgmASTRXaA4pjOOGEzJHcrVSHNtCLW8iRKMMsjdyu5EkwrYi1PogSzPHK3kivBtCLW8iRqBSbNAGUIJqpCc7PJA7WimclXg3KEBAhmhtoBwSSY0dN5GZJPqqpCmpkqXNGFJZgEk8xsJbaBqtTMt2/fsu/fv0fy4KsOGe40XVUJc8sW/erQyZMnsw0bNqSJZXWOMwFz4cKFbNGiRYGw9u/fL54TzApuyxcuXGA1NTUMvzqYfEExmzNnDuP7N9iCBQsquFb/ilY1Zvbp06dMahyq39LSImAFXWfOnGHXrl1z/6ujo4NgVpIEJEyYTvhDkwsafPHiRUYwTaSVYBiC2Y/tCQlyMsqKYGYUJt614pbXzJkz2YsXLxjf1eY+mzp1Krt16xaZWSNVSTiQqpkAefjwYbcEu3btEjAPHDjgPtu2bRvBTJiRcXYqTL5t3xOPb4NjfEeb59nQoUMDYaJThM1OGNpU2gxRKoYmv3//Zi9fvjQGJwNidxm2DOIqlc9UZ48wtKkkqKmACd916tSp2DBnz57NVqxYUQDz71/vIVYTJkwoaCzQ1iCfCZhoJOPHj2d37twRaVcK1FTAvHTpEjt37lys6TVMEKjzq6XymYAp08UsEcxupUBNFcw4g3dV6H4ziw4QP6/I03NFB0jt4U6aNClUM/2T8JUCtSph9mcGyN9IVNtfbqhVCZOfyOHxv+gk+c9fwIR8mM/UvR4Lgrps2TJWW4udkPau1ME8e/Yse/LkSahEYB6XLl3KdGa22HFmlGb6CwWop0+fZg8ePGCbNm1iEydOtEeSp5xKmM+ePQsVCnqZJjCx2kBe8+fPF5MGz58/d5+hJ1ysZqqFkx0vgulIRfZmS9UBsuUzg1oYwfRJpVJh+meNgmB+/fpVvEclzQzQTIw3ddfixYu1PvPYsWNuMjt27BBm9uDBg+6z1tZWrZndt29f5MzU6tWr2bBhwwimCkzVTHSArly5Espz3rx5Rj7z0aNHbhpLliwRMO/du+c+w/ognc+8evVqZLsaPnw4wfRLSIXJz7fVKaZYtxPVmyWf+e8MdnE8Kb8jz87TSjxGgEr1mSZVoA5QRAcoaowpo02ZMkXrM8+fP+/msnHjRmFmMSaU1/r167VmFj6Tn/EayhTmm3xmBMxS+Ux19d26desETCzekteqVau0MNWJhyCiM2bMIJhRPvP+/fta6wYhks90j/aOPAmafGaMrQvkMy1PGuBV1927d91cVq5cKczsjRs33GfNzc1aM3v06NFIKzF9+nQys1FmFj7z+vXroUKcO3eu0Tizs7PTTWPz5s0C5vHjx91nmLHRjTPRAVJX9PkLhTli6gBpOkBRY818Pq+FSeNMGmeKJhbnFRjCk89MwGeqr9Gwwg5m9vHjx27O2PmlM7M3b96M9Jn4kACZWY2ZfffuXagQcci/yfvMUrycpol27SixMIB/oj1qrNnU1KSFafrG//LlywXbE1Qzyz/XpK0Nes70CkwRE83NatuMCJC6ZSNm1SrsqPjXzX779s1NatasWcJnquZ72rRpWp9JmmlKI0Qzo8aYMgrW9CSxoIt8Zj9hlmKiXe4/kUXB0kv/4B89UV1vVp0xCqrWkCFDqDcbNQP05s0bbXMYO3YsTbT/+4YmTbSjxQSdaUCTBlpdig5AvVkzAVZlb5bmZmluVqgHmVkzKxEaisysmQBTZWbjnGUXttkWi6ywH8Xkwiba27dvew51gmYiPtIxuV69esVw4hetaHekVYpt8BDq3r17TeTvCYM1uDt37nSftbe3M+zuinvhBfiYMWPiRosVPhWaiV3O3d3dsSqGwDhVJJfLufGQhrpj2iRB7Kmsq6tzg/b09LDe3l6TqJ4w/omK2AkYREgFTIN6UBAuAYKZoWZAMAlmsntNMiRvq1UhzbQq3mQTJ5jJyttqbgTTqniTTZxgJitvq7kRTKviTTZxgpmsvK3mRjCtijfZxAlmsvK2mhvBtCreZBMvFiZ2T+O0kbaGhobWZItMuYVJwIG5m/9/D7//OHfk6jy8UxJHx/C1ptv5ofP6T96R/BORAH/P2sHXAO9xYOI9HU5I1sIU5xrwrwi01dfXb02kpJSJVgL8GJt2vgsOmgmQ0MxImEgQmilgdnV1tTQ2Nh7S5kIBEpEA3/uyln8M4IQPJvIWXxio8ZUCfwOmBJrnW9KP8Df6zYmUljIJlQBfRdHJl7iscTRSaqXUTBEvCCae4YZ2CqhcQ5dzoE2IwJdl+OMQAksS4EtihMZxkA+5Rp50QAIgYEpf6X73IwiMhAmQKlT5d1AjsFSdqk5WQsIvAKoQPb5SSikMpgTmByvDk3bab2cqTAnUr42er/GEQfFDk1CjGoH96lVXDiood/jhmFdIwvtZpQCf6ReXCpu0sXyNyQ82sCSmgEzDla+62c+5QBOjNC/74sh4DUnjMgT4fzXvVRKZkVWKAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHMAAABsCAYAAABZw42oAAAABHNCSVQICAgIfAhkiAAACptJREFUeF7tnU1MFNkWxy+MCBrGiaFV8GEUxwUPY8yMbojMTt2I8SPRpewkTpzR1cOFC40beSt1yCS6w6Umzyi48SNGH8YNzmyU5wLwGVGMNDEoUZARpv53PJ3Tl6qu756q9tykAl11v/r86n/P/arqMiWhZCxQVjLfRL6I8grTazwxaXwWmHPL2g0SXXeL51aOXA9vAYLpCNUJEodoAhWw4cF4zcEEiM+OUO3AcHjlVmJ8Ng+vlZF44SxA8PjfWSegTjBxHiDNg0MNV01J7WYBEyAg8oOrVOdlwuSwvrKu6+PKgyc/VlRWNs3NzkkT64Yg4utl5WVzM9PTA3uaG3+1sv7EDg7bESapESAX9P4+cuOb6qrmTPXCiKsp2Xm1QHbyo5qYnHrQ+l39divNH5+BkkpzHSKuNPofMDVIS5GHM5lMZ8u6Gq/lSryYLNA3OK6y2WyHpdAuAyhK1EBNmOQrAbOi97enXd/W1bQ11n4dUxUlW68WePLqnRoaHe9u/b7hsJVmhqkz5zudYC4AzJ7+4a51/8gcEJheTR5fPMAcfJG9uHPzWoKJ5pZ6to7KpI7PQgvmLwIzPkB+cmYwf7LSfbTpCNk2s9pfWgdgnvMCc2ZmRk1OTqrZ2VlVXl6uqqurVUVFhZ+6SlwXCzCYP3+GSR2hgs2sZ5iA9+rVKzU9Pa0WLVqkAQLshw8f9Ofly5druBLCWyBWmAD5/PlzrcKamvzeLq6Nj4+r9+/fq1WrVgnQ8CxVrDBfvnypKisrcyBv/G9MPc2+Vw2ZxWr7P5fp6o+NjalPnz6p2traCL7Ol51FbDDRlI6MjKiGhgZt4X/9Z0DdejKWs/bWxmXq33ubtA999uyZqq+vFx8a8l6MDeabN2+0n4TioMhjVwbmVfX0niatUPhUKHjp0qUhv86XnTw2mPCHCPCV5//7zDr+P8/S7T+sUe0/rNa+k+J+2TjCffvYYIoyw4EJkjo2mH585vDwsFq9erX4zCAEWZrYYKIM9GYxrly27K+eq/RmQ9JySR4rTBpnLl68WPtOPjkg48zowcYKE9UFtNevX+dmfGQGKHqIlGPsMKkgmZuND2LRYcb/VaSEoilTTB2/BQRm/DYuWgkCs2imjr8ggRm/jYtWgsAsmqnjL0hgxm/jopVQ8jCx+D04OKgmJib0QQFLbitWrNDrqNjpUAqhJGFif9H9+/dVf3+/wuqNW8BepPXr16vW1la9LymtoeRg9vX1qVu3bunpQwpVVVVq5cqViv4CMA4sBExNTeXiAWRLS4vaunVrKnmWDEzA6+3t1WqksGnTJq04HE4BQB8+fKhwE1AA+IMHD6ZOpSUBEyAvXLiglYawdu1atXPnTq1GrwFKvXbtmhoY+Gt7C7awHDhwwFceXsuKK15JwDx//rzCAjcC1Lh///7A9oJCe3p6dPq0KTT1MGF4aiLh67Zt22YLkvwkfCR8J5TntIEMTfXly5d1PmiiodA0hFTDBKDTp09rOzc1Nam2trZ5Nn/8+LHuEFETzCMAJuBDzWa4efOmTocAmIX8blJApxomNa9Q2rFjx/I6LHYdIiejOzWnZ86cUaOjo1rByD/pIbUwobSzZ89q+9o1rwQC1wEDcaAuDD8AGj4WzTP5WsQ5cuRI3g2Ba7hhEPbt26c2b96caJ6phUnNIFR58uTJPCNzP+rWIeL+Eb3g9vb2vLzopnBqxpNEN7UwoUqo0zQy96NuIAkE78ECJqBSoJsGij5x4kSS2M2rS2phdnR02DZ/pEo7P1qIBDpSuBHMm4M3tSbopJFNJUxsDjt+/Li2pWlg6hR5VaWdOjs7O3Oc4F9JkQIzhtuXGxidFj7TQ4otNOa0qxJXIODxCXfKE7NKmLtNakilMuOGiWEIn1AIeoMUG3rqYZpNH/U+oSAoyWvgvVrezCI9wUz65EEqYRbymZcuXdKrIH4H+t3d3XqSva6uTh09ejR3D/DesfhMr9LwGc+p6eO+z6uPK5SGXzObX59Vjj16KpUJqxTqtdI1dGKwLlloKQxjVSyfwQ/bDWf4HK3Z/MZOx2cBqYVJzSlAoUfLAwABKO0iwGT6li1b5i02w09iQZt2JSS9GXVjm1qYvMNi1/yZQGEIPrODCXSCCEWiSU763GvJwuQdE6dJcMRBM4kOkVMwdyXwZtXNeG7XMWeMG6VYIbXKhIG8ToIDKtY1h4aGdNNLG7uwimL6U4KJGaSgbz9BpwmHwPRxG/MJcnPWxkc2eVEJZhj/SXkITB8UeFPrdRjilr0JE4qGf/USMEaF2gWmF2vZxKHBvt9JAqfiTJh8s5hbFWk9VGC6WcrhOpRz8eJFfTVM00jZ28GkvAtVkXYkoA4CMyBMJKO1SLudAn6zFZh/82u9C+0UEJj6pzGieXmwX2MGiY/BP9SJYUdYdYrP/JuViRuAD/bD+E673qzdnlu7mw5jVunNBpGjkSYqdco4MwHKBFvuO4MuJHOYeH883jBGYcmSJert27d5t5F5Dp+lNxuBOnnP1u+4EwCwumLCPHXqlK5Zc3Oz2r17t7p37566fv26Pnfo0CG1Zs0ade7cOfXixYvcgrjAjAgmH3d63dSFNFA1HyPifyjz7t27uZrt2LFDw3z37p0+B/8ImAQX5xBHYEYEE9nwxWmsdRaaMIevxYZqxDFh8iUzP9UTmH6s5RKXz9m6DVVo07Q5FUfK5EXhJz3wQzuFziGOwIwQJrLy8kge399Dm6bFZyakN2veD7Teib1A2ABmvkmEnlfhe39MmHfu3Mlli5UZ+Ex6Bc2GDRu0z6QnrRERcUSZESsT2fHH/swnoPmTYnwYI+PMhCrTbG5pzZM3r+aDQhwm1id5oGc7C51DHFFmDMqkLHlzCxViZx86SYW2VlIHSMaZMYIJkjXAASh/gRPysZvDNX3m7du3c0Xu2rVL+0x669fGjRu1z7x69WpeHFFmEEo+0vCtmUjmNKEgPjPBPpPzpo3ThcaeAjMlMAEWs0Pwm04vPCSY9K49H+LPRaV3DsnuvCDWizDNo0eP9B7bKMLevXuL+pNYqd4EHYXBSykPgVlCNAWmwFSefw2+hGyV+K8iykw8Iu8VFJjebZX4mAIz8Yi8V1BgerdV4mMKzMQj8l5BgendVomPKTATj8h7BQWmd1slPqbATDwi7xUUmN5tlfiYYWBiSm9hT//wL+tStJ6ZeCIhKshg/mRl89E68KCt68O25VakBdZRYcHsEpghCESYlME8bGU7Yx1/WAceYyv45DRgQpkVvb897fq2rqatsfbrCKslWQWxAGAOjY53t37fQDChyoIwUQ7BXHDlwZPDmUyms2VdTZDyJU2EFugbHFfZbLZjT3Nj12dVEkyUAnWqMqM8fAbMHNDe30dufFNd1ZypXhhh1SQrPxbITn5UE5NTD1q/q99ugCRl6uzsYOIcDjS1+rAU+mNFZWXT3OycGd9PnSRuAAuUlZfNzUxPD1iK/NVKTp0e3vHRqrSDSee4Qkmp+EugBWoAMD6TUMcGf6FA88h1fNxgElQTIMH0WS+JHtACHCj9z5vWnCqdlMnPc3ikRlFlQDIBkhEs/tc8l8vWDYwADEAgpiSOEAs1s3Z1cYMeU/0lW2aBvCZVIJX4vSGKKyHAfwLC4DYS4Ux8AQAAAABJRU5ErkJggg==\"","module.exports = \"data:image/gif;base64,R0lGODlhyADIAPfYAOXw94q62zKGwDGFwDSHwWmm0drp9DeJwjWIwTOHwcXd7ez0+Vyfzfz9/kCPxafL5EiTx2qn0v3+/9np8+Lu9juMwzKGwb7Z632y1/b6/NPl8oC02Pj7/VWby0SRxjaJwv3+/lOay/X5/NLl8fr8/p7G4fD2+02WyUyVyMDa7F2gzujy+ODt9sfe7lCYyo283N/s9fv9/tvq9DmKwzyMxNLk8bTT6EyWydXm8k+XyfT4/DaIwpnD4EaSx8nf7z+OxJG+3bXT6b/Z66PJ45rD4Orz+VabzLDR56vN5UOQxj+OxWOj0PL3++fx+Guo0vn8/evz+cnf7q7P5qHI4keSx0KQxZO/3m6p0+Pv90mUyD6NxHmw1tjo8zuLw6bK5IS22fD2+qLI42im0arN5XKs1EWRxoW32tfo86vO5s3i8N3r9Xux197r9WKiz83h8Pf6/YS32s/j8FeczK/Q51mdzIy73Mje7vT5/IK12TiKwniw1lqezXCr1MLb7I683XOt1eTv9+Pu9k6Xyfn7/ZfC36TJ41KZym2p03Wu1dbn84G12e71+mGiz1uezbrW6kuVyKnM5aDH4mal0Yi527LS6L3Y62Sk0Mzh7+/1+lSay2Wk0EGPxajM5bHR57PS6H6z2PP4+7zX6u30+rjV6pvE4Wem0W+q04O22crg75rE4JzF4Xev1j2NxJXB39bn8qzO5nSt1UqUyFGZyubw98Tc7cvg73+z2FiczGKjz3Gr1GChz3yy163P5pXA3+Ht9ou73Ony+FmdzbvX6rjV6bbU6Ym627zY687i8MPc7ZTA3tzq9Ie42o+93V2fzl+hztTm8sbe7pbB38Hb7J/H4jqLw3au1Z7G4jCFwP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/wtYTVAgRGF0YVhNUDw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDcuMS1jMDAwIDc5LmRhYmFjYmIsIDIwMjEvMDQvMTQtMDA6Mzk6NDQgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6NWJiNTQ5MzctOThkZC00YjU3LTgyMGQtZjVlOWI0ZWZlZjUzIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjBGN0EwMzg0QTZDNzExRUM5QjZBRTc2NzIwREY3RUU4IiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjBGN0EwMzgzQTZDNzExRUM5QjZBRTc2NzIwREY3RUU4IiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCAyMy4wIChNYWNpbnRvc2gpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NWJiNTQ5MzctOThkZC00YjU3LTgyMGQtZjVlOWI0ZWZlZjUzIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjViYjU0OTM3LTk4ZGQtNGI1Ny04MjBkLWY1ZTliNGVmZWY1MyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PgH//v38+/r5+Pf29fTz8vHw7+7t7Ovq6ejn5uXk4+Lh4N/e3dzb2tnY19bV1NPS0dDPzs3My8rJyMfGxcTDwsHAv769vLu6ubi3trW0s7KxsK+urayrqqmop6alpKOioaCfnp2cm5qZmJeWlZSTkpGQj46NjIuKiYiH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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAARCAIAAAC0D9CtAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjEuNWRHWFIAAAEfSURBVDhPbZK9sUVQFIU1oAMd6EAHYolMIFGJDgRCM0KhDmRCHehAaszwPnftd+5xxxc5a+919s8RhG9M03R9iKLIJI+vp6oqlyEDpGkqxY+ap+97MtZ1LcuybVsZYJ7nLMtUdlkW2W5PHMfKgPM87esNqpkH6ro2+bq2bWuaJs9zRCqbel1UU7J5KLrvOwHXgENtA01KuT1JknRdpwB9KuCjalynlQRureCq/+B3Dg8PY1jWE663jA8BeQytA9Ut6wk5SgBybAdFUUhyj+hgJbqUZUgxD6Mfx0GAsG9D52J03o3nlmiecRzvKv+QRz/+qMD23v8DVfPRu4nHf8ABiWr43WwwDAN3a9e/84D/mm6TbjY/+vX4aBiws08Y/gFR45xFxyUTFwAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/TEDLogin.5ed2a687.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQ4AAAAiCAYAAACuqDdcAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAASdEVYdFNvZnR3YXJlAEdyZWVuc2hvdF5VCAUAAAXQSURBVHhe7ZzfS1RNGMff/8cfSDcWpaCmdZcUIoZiRkl0IUFBpN4UIsWCKKkXgiAaCsKGEBpFN0qFFYRe6EW0SncVkraipajP63f2jO0eZ90Z3bO59H3gQ3jOc2ZDOR+feWbG/3JycoQQQlygOAghzqRFHDdu3JC5uTnR0dbWJidOnDDmEkKyH2dxFBcXS11dnRQWFkpeXp66dvfuXVldXfW0IdLb2ytlZWXqHnJqa2vl7NmzUlBQkDAWISQ7cRJHZWWlhEIhefHihfT09MjVq1flypUr8uTJE08ZsZicnJR79+5JdXW13L9/X54/fy79/f3S0NBAeRCSQU6ePGm8bsNBz1qLA1OPBw8eyOfPn2V7e1t+/Pgh4+PjMjExIZ8+ffKUEYulpSWZmpqS0dFRWVhYkM3NTZUPeaDyMI1PCEkvly5dUjOBlpYW4/2DwDN4FmOY7luL48yZM+rFX1tb8/QgsrOzoySysbEhKysr8v37dyWIX79+qevxAXmg8sC0xTQ+ISS9DA0NeW+fOMkDuTqSPWctjtzcXGlsbJRXr155Q8bi9+/fMj8/r6Ry584defz4sbx//15+/vzpZcQClQemLbovQjLE04j6/keeGu4FSOhdVH1u9F3IeJ9khrGxMfVzQNjIw0YawKnHUVRUJA8fPpStrS018Ldv36Svr08uX74s5eXlcvr0aSktLVW9kPb2dpmdnVV5CExb0PMwjUsC5C+JgxwfbOVhKw1gLQ5Iob6+XoaHh/emIYODg1JVVSX5+fn78rGqAnmg8kD+mzdv1H+mpKRkXy4JECtxhGQ6ViB4EZGwKc8bKyGi0xJKmhuV6Uf6mv8zYsGKJDOkkoeLNICVOLBPA5XGs2fPJBKJKBGgAXr9+vUD92ug8sC0BT2P5eVlef36tXR3d0tra6sxnwRASnGEdzWxGwvhvWvhBfVEgjz01CN+HJXnKo64z8l5NL2bkUpqJF0kk4erNICVOD58+KCanzoggrdv38qFCxeM+RpUF52dnaph6g9TPgmAFOKICcFfYfhlEvvaXx0cWRzGayRI/PI4jDTAocQRjUZlZGREzp07Z8zXYJMYqpWvX796T/4JUz4JgAPF4b24hpc/QQpJxji6OFKMQQIhXh46XKQBrMSBxubi4qJaUkVgJWVmZkYuXrxozNegYYrmabx01tfX1VimfBIANuIw/MZXL7SuRPZJIC6H4shKPn78uPuNj0U47F7xWYmjpqZGmpqapKurSzU50eNA0/P27dty6tQp4zNomGK1BUu12OcBWaBKwfZ0jGV6hgSAjTgML27CC51kDIojO4mfnugIpOLQVFRUqK3m2PiFwK7Rmzdv7pMHGqZYbUG1geoEonn58qVcu3YtIY9kgAPF8bd7HBRHpvH3NGyXav04ieP8+fNKHHo5FlKAPFB5YNqCngcaplhtwVIt9nkgIBpsT8fZFm4AyzApxGG7qhK7ZhABxZE1+KWhrx9GHtbiwM7R5ubmhOPzOjBtQc8DUxGstmCp1h9YWYF00DA1jU8CwhOHKf7IxHup98JfgcTQS7IJQXFkBcmkoXGVh7U4cFZlYGBAVRk6UHno8yq4jtUWfU4F6B2mCHyNU7U4km8an2Qf6qX3iYAcP1JJQ+MiD2txoG9x69YttYkLkkDlgQoCoGEaH1++fFErMdg0hrMtOBiHU7U4ko+/52Ean6Qf/ByOGqZxFb7NW0cNnGXa9xnkyNhKQ2MrD6ceBzZ0QR6oPDBtQc8DDVOstuilWgQqCxyIw9kW/IsDcDiSj52kpnHJ8SfW44iP+GkIOY64SkNjIw8ncQBUHpi2oOehr2F5Fcut2K8BOjo69s6kIA/5B21NJ4SkHy0OF2lotDzSJg4T2OeBqQl2mALsFjXlEUIyC2YEpus2JPsjPiAt4iCE/FtQHIQQZygOQogzFAchxBmKgxDiDMVBCHGG4iCEOENxEEKcoTgIIc5QHIQQZygOQogjOfI/hXmIdklOUnEAAAAASUVORK5CYII=\"","module.exports = __webpack_public_path__ + \"static/media/LicenseManager.0bc79159.gif\";","function webpackEmptyContext(req) {\n\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\te.code = 'MODULE_NOT_FOUND';\n\tthrow e;\n}\nwebpackEmptyContext.keys = function() { return []; };\nwebpackEmptyContext.resolve = webpackEmptyContext;\nmodule.exports = webpackEmptyContext;\nwebpackEmptyContext.id = 524;","import React from \"react\";\r\nimport { Button } from \"react-bootstrap\";\r\nimport Glyphicon from \"glyphicons\";\r\nimport \"./LoaderButton.css\";\r\n\r\nexport default ({\r\n isLoading,\r\n text,\r\n loadingText,\r\n className = \"\",\r\n disabled = false,\r\n style,\r\n ...props\r\n}) => (\r\n <Button\r\n id=\"loaderButtonId\"\r\n className={`LoaderButton ${className}`}\r\n disabled={disabled || isLoading}\r\n style={style}\r\n {...props}\r\n >\r\n {isLoading && <span className=\"glyphicon glyphicon-refresh glyphicon-spin\"></span>}\r\n {!isLoading ? text : loadingText}\r\n </Button>\r\n);\r\n","import { Button, IconButton, Menu, MenuItem, MenuList } from \"@material-ui/core\";\r\nimport React, { Component } from \"react\";\r\nimport Avatar from \"react-avatar\";\r\nimport { NavDropdown } from \"react-bootstrap\";\r\nimport { Link } from \"react-router-dom\";\r\nimport LogOut from \"./logOut\";\r\n\r\nclass AccountStatus extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n openAccountMenu: false,\r\n isLoading: false\r\n };\r\n }\r\n\r\n\r\n handleOpenAccountMenu = (event) => {\r\n this.setState({ openAccountMenu: event.currentTarget });\r\n }\r\n\r\n redirection = () => {\r\n if (!this.props.isLoggedIn && this.props.props.location.search !== \"?redirect=/account\") {\r\n if (this.props.props.location.pathname == '/resetPassword') {\r\n return window.location.origin + `/signIn`;\r\n } \r\n else {\r\n return `signIn?redirect=` + encodeURIComponent(`${this.props.props.location.pathname}${this.props.props.location.search\r\n }`);\r\n }\r\n }\r\n else return window.location.origin + \"/store/account\";\r\n };\r\n\r\n handleLogOut = event => {\r\n event.preventDefault();\r\n this.setState({ isLoading: true });\r\n\r\n fetch(process.env.REACT_APP_API_URL + \"logout\", {\r\n method: \"POST\",\r\n credentials: \"include\",\r\n headers: {\r\n \"Content-Type\": \"application/json\"\r\n },\r\n body: JSON.stringify({})\r\n })\r\n .then(res => res.json())\r\n .then(result => {\r\n if (result.Result === \"Success\") {\r\n this.props.userHasAuthenticated(false, undefined);\r\n }\r\n this.setState({ isLoading: false });\r\n })\r\n .catch(error => {\r\n console.error(error);\r\n this.props.handleServerError(true);\r\n });\r\n };\r\n\r\n render() {\r\n return window.location.pathname !== \"/store/signIn\" ? (\r\n <React.Fragment>\r\n {this.props.isLoggedIn ? \r\n <NavDropdown\r\n title={this.props.firstName.toUpperCase().charAt(0) + this.props.lastName.toUpperCase().charAt(0)}\r\n id=\"accountTitle\">\r\n <NavDropdown.Item href={this.redirection()} id=\"accountDetailsBox\" className=\"accountDetailsMenu\">\r\n <Avatar\r\n size=\"65\"\r\n id=\"avatarPicture\"\r\n email={this.props.userName}\r\n name={this.props.firstName + \" \" + this.props.lastName}\r\n className=\"accountDetailsMenuAvatar\"\r\n round={true}\r\n />\r\n <div id=\"accountNameDetailsDivId\" className=\"accountNameDiv\">\r\n <div id=\"accountNameId\" className=\"text-capitalize nameClass\">\r\n {this.props.firstName + \" \" + this.props.lastName}\r\n </div>\r\n\r\n <div id=\"accountDetailsEmailId\" style={{ fontSize: '12px', color: '#767676' }}>{this.props.userName}</div>\r\n </div>\r\n </NavDropdown.Item>\r\n <NavDropdown.Divider id=\"firstDropDownDeviderId\" className=\"acountNameDividerClass\" />\r\n <NavDropdown.Item id=\"changePasswordAccountDropDown\" className=\"dropDownItemClass\" href={window.location.origin + \"/store/account/changePassword\"}>\r\n Change Password\r\n </NavDropdown.Item>\r\n <NavDropdown.Item id=\"privacyPrefrencesAccountDropDown\" className=\"dropDownItemClass\" href={window.location.origin + \"/store/account/privacy\"}>\r\n Privacy Preferences\r\n </NavDropdown.Item>\r\n <NavDropdown.Item id=\"deleteAccountDropDown\" className=\"dropDownItemClass\" href={window.location.origin + \"/store/account/deleteAccount\"}>\r\n Delete Account\r\n </NavDropdown.Item>\r\n <NavDropdown.Item id=\"logOutdccountDropDown\" className=\"dropDownItemClass\" onClick={this.handleLogOut}>\r\n Log Out\r\n </NavDropdown.Item>\r\n </NavDropdown> :\r\n <Link\r\n id=\"signInTopAccountButton\"\r\n to={this.redirection()}\r\n className=\"btn btn-outline-primary text-capitalize\"\r\n >\r\n Login\r\n </Link>\r\n }\r\n\r\n </React.Fragment>\r\n ) : null;\r\n }\r\n}\r\n\r\nexport default AccountStatus;\r\n","import React, { Component } from \"react\";\r\nimport LoaderButton from \"./LoaderButton\";\r\nimport intl from \"react-intl-universal\";\r\n\r\nclass LogOut extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n isLoading: false\r\n };\r\n }\r\n\r\n handleSubmit = event => {\r\n event.preventDefault();\r\n this.setState({ isLoading: true });\r\n\r\n fetch(process.env.REACT_APP_API_URL + \"logout\", {\r\n method: \"POST\",\r\n credentials: \"include\",\r\n headers: {\r\n \"Content-Type\": \"application/json\"\r\n },\r\n body: JSON.stringify({})\r\n })\r\n .then(res => res.json())\r\n .then(result => {\r\n if (result.Result === \"Success\") {\r\n this.props.props.userHasAuthenticated(false, undefined);\r\n }\r\n this.setState({ isLoading: false });\r\n })\r\n .catch(error => {\r\n console.error(error);\r\n this.props.props.handleServerError(true);\r\n });\r\n };\r\n\r\n render() {\r\n return (\r\n <LoaderButton\r\n className=\"accountLinks\"\r\n type=\"button\"\r\n isLoading={this.state.isLoading}\r\n onClick={this.handleSubmit}\r\n text={intl.get(\"Log_Out\")}\r\n loadingText=\"Logging out…\"\r\n />\r\n );\r\n }\r\n}\r\n\r\nexport default LogOut;\r\n","import React, { Component } from \"react\";\r\nimport logo from \"./img/skyline_logo.png\";\r\nimport lightLogo from \"./img/skyline_logo_transparent.png\";\r\nimport intl from \"react-intl-universal\";\r\nimport { Link, NavLink } from \"react-router-dom\";\r\nimport AccountStatus from \"./components/accountStatus\";\r\nimport \"./dashcore/html/css/aos.css\";\r\nimport \"./dashcore/html/css/bootstrap.css\";\r\nimport \"./dashcore/html/css/cookieconsent.min.css\";\r\nimport \"./dashcore/html/css/fontawesome-all.css\";\r\nimport \"./dashcore/html/css/helper.css\";\r\nimport \"./dashcore/html/css/magnific-popup.css\";\r\nimport \"./dashcore/html/css/odometer-theme-minimal.css\";\r\nimport \"./dashcore/html/css/pe-icon-7-stroke.css\";\r\nimport \"./dashcore/html/css/prettify.css\";\r\nimport \"./dashcore/html/css/simplebar.css\";\r\nimport \"./dashcore/html/css/smart_wizard.css\";\r\nimport \"./dashcore/html/css/smart_wizard_theme_arrows.css\";\r\nimport \"./dashcore/html/css/smart_wizard_theme_circles.css\";\r\nimport \"./dashcore/html/css/smart_wizard_theme_dots.css\";\r\nimport \"./dashcore/html/css/demo.css\";\r\nimport \"./dashcore/html/css/swiper.css\";\r\nimport \"./dashcore/html/css/styles.css\";\r\n\r\nclass Header extends Component {\r\n constructor(props) {\r\n super(props);\r\n }\r\n\r\n render() {\r\n const isNavHeader = () => {\r\n return !window.location.pathname.toLowerCase().includes(\"/account\") && window.location.pathname !== \"/\" ? \"navHeader\" : \"\";\r\n }\r\n return (\r\n <nav className={this.props.classNavBarName + \" \" + isNavHeader()}>\r\n <div className=\"container\">\r\n \r\n {!window.location.pathname.toLowerCase().includes(\"/account\") && window.location.pathname !== \"/\" ?\r\n this.props.isSubLoginType ? \r\n <img\r\n className=\"customer-img-responsive\"\r\n src={this.props.customerLogoUrl}\r\n alt=\"logo\"\r\n />\r\n : \r\n <a className=\"navbar-brand\" href=\"https://www.skylinesoft.com\">\r\n <img\r\n className=\"img-responsive\"\r\n src={this.props.navLogo === \"lightLogo\" ? lightLogo : logo}\r\n alt=\"logo\"\r\n />\r\n </a>\r\n : null\r\n }\r\n {this.props.isSubLoginType ? \r\n null \r\n : \r\n <button\r\n className=\"navbar-toggler\"\r\n type=\"button\"\r\n data-toggle=\"collapse\"\r\n data-target=\"#navbarNavAltMarkup\"\r\n aria-controls=\"navbarNavAltMarkup\"\r\n aria-expanded=\"false\"\r\n aria-label=\"Toggle navigation\"\r\n >\r\n <span className=\"navbar-toggler-icon\" />\r\n </button>\r\n }\r\n \r\n {this.props.isSubLoginType ? \r\n null \r\n : \r\n <div className=\"collapse navbar-collapse\" id=\"navbarNavAltMarkup\">\r\n <ul className=\"navbar-nav mr-auto navbarTitles\">\r\n {/* <li className=\"nav-item\">\r\n <NavLink\r\n className=\"nav-link\"\r\n to=\"/atlasUs/Overview\"\r\n // activeClassName=\"active\"\r\n >\r\n {intl.get(\"Nav_Bar_Atlas_Us\")}\r\n </NavLink>\r\n </li>\r\n <li className=\"nav-item\">\r\n <NavLink\r\n className=\"nav-link\"\r\n to=\"/atlasUs/pricing\"\r\n activeClassName=\"active\"\r\n >\r\n {intl.get(\"Nav_Bar_Princing\")}\r\n </NavLink>\r\n </li> */}\r\n </ul>\r\n <AccountStatus\r\n isLoggedIn={this.props.isLoggedIn}\r\n onClick={this.props.onClick}\r\n userHasAuthenticated={this.props.userHasAuthenticated}\r\n handleServerError={this.props.handleServerError}\r\n firstName={this.props.firstName}\r\n lastName={this.props.lastName}\r\n userName={this.props.userName}\r\n props={this.props.props}\r\n />\r\n </div>\r\n }\r\n </div>\r\n </nav>\r\n );\r\n }\r\n}\r\n\r\nexport default Header;\r\n","import React from \"react\";\r\nimport img1 from \"../img/screenshots/auburn1.png\";\r\nimport img2 from \"../img/screenshots/orlando1.png\";\r\nimport img3 from \"../img/screenshots/orlando2.png\";\r\nimport img4 from \"../img/screenshots/sanfrancisco1.png\";\r\nimport img5 from \"../img/screenshots/sanfrancisco2.png\";\r\nimport img6 from \"../img/screenshots/sanfrancisco3.png\";\r\nimport img7 from \"../img/screenshots/sanfrancisco4.png\";\r\nimport img8 from \"../img/screenshots/sanfrancisco5.png\";\r\n\r\nclass DivsPatterns extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n selectedImageUrl: img3,\r\n images: [img1, img2, img3, img4, img5, img6, img7, img8]\r\n };\r\n }\r\n componentDidMount() {\r\n var randomNumber = Math.floor(Math.random() * this.state.images.length);\r\n this.setState({ selectedImageUrl: this.state.images[randomNumber] });\r\n }\r\n\r\n render() {\r\n return (\r\n <main className=\"container-fluid col-md-11\">\r\n <div className=\"row no-gutter\">\r\n <div\r\n className=\"d-none d-md-flex col-md-4 col-lg-6 bg-image\"\r\n style={{\r\n backgroundImage: \"url(\" + this.state.selectedImageUrl + \")\"\r\n }}\r\n />\r\n <div className=\"col-md-8 col-lg-5 ml-5\">\r\n <div className=\"login d-flex align-items-center py-5\">\r\n <div className=\"container\">\r\n <div className=\"row\">\r\n <div className={\"col-md-9 col-lg-8 mx-auto \" + (this.props.className ? this.props.className : \"\")}>\r\n <h3 className=\"login-heading mb-4\">\r\n {this.props.headerText}\r\n </h3>\r\n {this.props.children}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </main>\r\n );\r\n }\r\n}\r\n\r\nexport default DivsPatterns;\r\n","import React, { Component } from \"react\";\r\nimport { Link, withRouter } from \"react-router-dom\";\r\n// import \"./signIn.css\";\r\nimport intl from \"react-intl-universal\";\r\nimport ReCAPTCHA from \"react-google-recaptcha\";\r\nimport LoaderButton from \"./components/LoaderButton\";\r\nimport DivsPattern from \"./components/skylineDesignPattern\";\r\n\r\nclass SignIn extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n email: \"\",\r\n password: \"\",\r\n rememberMe: false,\r\n isLoginFailed: false,\r\n isLoading: false,\r\n errorMessage: intl.get(\"General_Failure\"),\r\n recaptchSucceeded: false,\r\n failureTimes: 0,\r\n afterActivation: false,\r\n isGettingStartedNavigation: false,\r\n passwordInputType: \"password\",\r\n socialesLogin: [],\r\n codeFromIdp: '',\r\n idpParams: '',\r\n showFullImageLoader: false\r\n };\r\n\r\n this._reCaptchaRef = React.createRef();\r\n }\r\n\r\n componentDidMount() {\r\n const urlParams = new URLSearchParams(window.location.search);\r\n const codeFromIdp = urlParams.get('code');\r\n const idpParams = urlParams.get('state');\r\n if(codeFromIdp){\r\n this.props.handleUpdates({showHeader: false})\r\n this.setState({codeFromIdp, idpParams, showFullImageLoader: true}, () =>{\r\n this.getSocialesLogin();\r\n this.handleSubmit();\r\n })\r\n return;\r\n }\r\n\r\n var afterActivationFlag =\r\n window.location.search.match(/[?&]afterActivation[=]1/gi) !== null;\r\n if (afterActivationFlag) this.setState({ afterActivation: true });\r\n\r\n if (window.location.href.match(/gettingStarted/gi) !== null)\r\n this.setState({ isGettingStartedNavigation: true });\r\n\r\n this.getSocialesLogin();\r\n }\r\n\r\n getSocialesLogin = () => {\r\n fetch(\r\n process.env.REACT_APP_API_URL + \"GetSocialesLogin\",\r\n {\r\n method: \"GET\",\r\n credentials: \"include\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n },\r\n }\r\n )\r\n .then((res) => res.json())\r\n .then((res) => {\r\n this.setState({\r\n socialesLogin: res\r\n });\r\n });\r\n }\r\n\r\n handleRecaptchChange = (value) => {\r\n this.setState({ recaptchSucceeded: true });\r\n };\r\n\r\n asyncScriptOnLoad = () => {\r\n this.setState({ callback: \"called!\" });\r\n };\r\n\r\n validateForm() {\r\n if(this.state.codeFromIdp != ''){\r\n return true;\r\n }\r\n\r\n return (\r\n this.state.email.length > 0 &&\r\n this.state.password.length > 0 &&\r\n (this.state.failureTimes < 3 || this.state.recaptchSucceeded)\r\n );\r\n }\r\n\r\n handleSubmit = () => {\r\n if (!this.validateForm()) {\r\n this.setState({ errorMessage: intl.get(\"Mandatory_Fields_Error\") });\r\n return;\r\n }\r\n this.setState({ isLoading: true });\r\n fetch(process.env.REACT_APP_API_URL + \"login\", {\r\n method: \"POST\",\r\n credentials: \"include\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n },\r\n body: JSON.stringify({\r\n Email: this.state.email,\r\n Password: this.state.password,\r\n Remember: this.state.rememberMe,\r\n CodeFromIdp: this.state.codeFromIdp,\r\n State: this.state.idpParams \r\n }),\r\n })\r\n .then((res) => res.json())\r\n .then((result) => {\r\n this.props.handleUpdates({showHeader: true})\r\n this.setState({ showFullImageLoader: false, isLoading: false});\r\n if (\r\n result.Result &&\r\n result.Result.toString().toLowerCase() === \"success\"\r\n ) {\r\n this.setState({ isLoginFailed: false});\r\n this.props.userHasAuthenticated(\r\n true,\r\n result.FirstName,\r\n result.LastName,\r\n result.Username,\r\n result.CustomerId,\r\n (result.SubLoginType == \"EndpointWebGUI\") ? true : false\r\n );\r\n } else if (result.Result.toString().toLowerCase() === \"notactive\") {\r\n this.setState({ isLoginFailed: true, errorMessage: intl.get(\"User_InActivated\")});\r\n } else if (result.Result.toString().toLowerCase() === \"notfound\") {\r\n this.setState({ isLoginFailed: true, errorMessage: intl.get(\"User_NotFound\")});\r\n } else {\r\n this.setState({ isLoginFailed: true, failureTimes: this.state.failureTimes + 1, errorMessage: intl.get(\"Login_Failed\") });\r\n }\r\n })\r\n .catch((error) => {\r\n this.props.handleUpdates({showHeader: true})\r\n this.setState({ showFullImageLoader: false, isLoading: false});\r\n console.error(error);\r\n this.props.handleServerError(true);\r\n });\r\n };\r\n\r\n handleLoginIconClick = (row) =>{\r\n const idpUrl = row.LoginUrl;\r\n var stateObj = {\r\n 'cloudSSOKey': row.Name\r\n }\r\n var stateObjStr = JSON.stringify(stateObj);\r\n var stateObjB64 = btoa(stateObjStr); // Convert to Base64\r\n\r\n const queryParams = new URLSearchParams({\r\n state: stateObjB64, // Pass the stateObj in Base64 as the State parameter\r\n });\r\n\r\n const fullUrl = `${idpUrl}&${queryParams.toString()}`;\r\n window.open(fullUrl, '_self');\r\n }\r\n\r\n render() {\r\n if (this.state.showFullImageLoader) {\r\n return (\r\n <div className=\"cssload-loader\">\r\n <div className=\"cssload-square cssload-square--main\">\r\n <div className=\"cssload-square cssload-square--mini\" />\r\n <div className=\"cssload-square cssload-square--mini\" />\r\n <div className=\"cssload-square cssload-square--mini\" />\r\n <div className=\"cssload-square cssload-square--mini\" />\r\n <div className=\"cssload-square cssload-square--mini\" />\r\n <div className=\"cssload-square cssload-square--mini\" />\r\n <div className=\"cssload-square cssload-square--mini\" />\r\n <div className=\"cssload-square cssload-square--mini\" />\r\n <div className=\"cssload-square cssload-square--mini\" />\r\n <div className=\"cssload-square cssload-square--mini\" />\r\n <div className=\"cssload-square cssload-square--mini\" />\r\n <div className=\"cssload-square cssload-square--mini\" />\r\n <div className=\"cssload-square cssload-square--mini\" />\r\n <div className=\"cssload-square cssload-square--mini\" />\r\n <div className=\"cssload-square cssload-square--mini\" />\r\n <div className=\"cssload-square cssload-square--mini\" />\r\n </div>\r\n </div>\r\n );\r\n // return <div className=\"loader\" />;\r\n }\r\n return (\r\n <DivsPattern headerText={intl.get(\"Sign_In_Welcome\")}>\r\n {this.state.afterActivation !== false ? (\r\n <div className=\"afterActivationSignIn\">\r\n {intl.get(\"After_Activation_Sign_In\")}\r\n </div>\r\n ) : null}\r\n <form id=\"formSignIn\" className=\"form-signin\" onSubmit={(event) =>{\r\n event.preventDefault();\r\n this.setState({codeFromIdp: ''}, ()=>{\r\n this.handleSubmit();\r\n });\r\n }}>\r\n <div id=\"emailDiv\" className=\"form-label-group\">\r\n <span id=\"reauth-email\" className=\"reauth-email\" />\r\n <input\r\n id=\"emailInputField\"\r\n type=\"email\"\r\n onChange={(event) => this.setState({ email: event.target.value })}\r\n className=\"form-control\"\r\n placeholder={intl.get(\"Eamil_Address_Test\")}\r\n value={this.state.email}\r\n autoFocus\r\n required\r\n />\r\n </div>\r\n <div id=\"passwordDiv\" className=\"form-label-group\">\r\n <input\r\n type=\"password\"\r\n id=\"passwordIdField\"\r\n onChange={(event) =>\r\n this.setState({ password: event.target.value })\r\n }\r\n className=\"form-control\"\r\n placeholder={intl.get(\"Password_Test\")}\r\n value={this.state.password}\r\n type={this.state.passwordInputType}\r\n required\r\n />\r\n <a\r\n onClick={(event) => {\r\n this.state.passwordInputType === \"password\"\r\n ? this.setState({ passwordInputType: \"text\" })\r\n : this.setState({ passwordInputType: \"password\" });\r\n }}\r\n id=\"aEyePasswordLinkId\"\r\n >\r\n <i\r\n className={\r\n this.state.passwordInputType === \"password\"\r\n ? \"fa fa-eye-slash fa-flip-horizontal\"\r\n : \"fa fa-eye\"\r\n }\r\n style={{\r\n color: \"gray\",\r\n right: \"16px\",\r\n position: \"absolute\",\r\n top: \"17px\",\r\n }}\r\n aria-hidden=\"true\"\r\n id=\"iEyePassword\"\r\n />\r\n </a>\r\n </div>\r\n <div id=\"rememberDiv\" className=\"custom-control custom-checkbox mb-3\">\r\n <input\r\n type=\"checkbox\"\r\n id=\"rememberMeCheckbox\"\r\n defaultChecked={this.state.rememberMe}\r\n onChange={(event) =>\r\n this.setState({\r\n rememberMe: event.target.checked,\r\n })\r\n }\r\n className=\"custom-control-input\"\r\n id=\"forgotPasswordId\"\r\n />\r\n <label id=\"rememberMeCheckboxLabel\" className=\"custom-control-label\" htmlFor=\"forgotPasswordId\">\r\n {intl.get(\"Remember_Me\")}\r\n </label>\r\n </div>\r\n {this.state.failureTimes > 2 ? (\r\n <ReCAPTCHA\r\n id=\"captchaId\"\r\n className=\"form-label-group\"\r\n style={{ textAlign: \"-webkit-center\" }}\r\n ref={this._reCaptchaRef}\r\n sitekey={\"6LeGzZsUAAAAALreua0d6EHa5KYeao1aaE1QCGup\"}\r\n onChange={this.handleRecaptchChange}\r\n asyncScriptOnLoad={this.asyncScriptOnLoad}\r\n />\r\n ) : null}\r\n <LoaderButton\r\n id=\"logInButtonLoaderButton\"\r\n className=\"btn-lg btn btn-primary btn-block btn-login text-uppercase font-weight-bold mb-2 btn-login\"\r\n type=\"submit\"\r\n isLoading={this.state.isLoading}\r\n text={intl.get(\"Sign_In\")}\r\n loadingText={intl.get(\"Signing_In\")}\r\n />\r\n {this.state.isLoginFailed ? (\r\n <div id=\"divError\">\r\n <span style={{ color: \"red\" }}>{this.state.errorMessage}</span>\r\n </div>\r\n ) : null}\r\n <div id=\"forgotPasswordDiv\" className=\"text-center\">\r\n <Link id=\"forgotPasswordLink\" className=\"small\" to=\"/forgotPassword\">\r\n {intl.get(\"Forgot_Password\")}\r\n </Link>\r\n </div>\r\n {this.state.isGettingStartedNavigation ? (\r\n <div id=\"skipDiv\" className=\"text-center\">\r\n <Link id=\"skipLink\" className=\"\" to={ (window.location.search.match(/[?&]redirect=[^&]+/i) != null ? decodeURIComponent(window.location.search.match(/[?&]redirect=([^&]+)/i)[1]) : \"/gettingStarted\") + window.location.hash }>\r\n {intl.get(\"Skip\")}\r\n </Link>\r\n </div>\r\n ) : null}\r\n <div className=\"icon-list\">\r\n {this.state.socialesLogin.map((row, i)=>{\r\n return(\r\n <img key={i} src={row.LoginIcon} onClick={() => {\r\n this.handleLoginIconClick(row)\r\n }}/>\r\n )\r\n })}\r\n </div>\r\n </form>\r\n </DivsPattern>\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(SignIn);\r\n","import React, { Component } from \"react\";\r\nimport intl from \"react-intl-universal\";\r\n\r\nclass Industry extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n industries: [\r\n \"Agriculture\",\r\n \"Architecture, Construction, Engineering\",\r\n \"Entertainment\",\r\n \"GIS & Geomatics\",\r\n \"Government\",\r\n \"Insurance\",\r\n \"Mining & Minerals\",\r\n \"Real Estate & Development\",\r\n \"Roofing & Solar\",\r\n \"Oil & Gas\",\r\n \"Telecommunications\",\r\n \"Utilities\"\r\n ]\r\n };\r\n }\r\n\r\n selectedchanged = event => {\r\n this.props.industryHasChanged(event.target.value);\r\n };\r\n\r\n render() {\r\n return (\r\n <div className=\"form-group\">\r\n <select\r\n name=\"industries\"\r\n onChange={this.props.onChange}\r\n className=\"form-control round\"\r\n required\r\n >\r\n <option default>{intl.get(\"Select_Industry\")}</option>\r\n {this.state.industries.map(profession => {\r\n return (\r\n <option key={profession} value={profession}>\r\n {profession}\r\n </option>\r\n );\r\n })}\r\n </select>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nexport default Industry;\r\n","import React, { Component } from \"react\";\r\nimport { Jumbotron } from \"react-bootstrap\";\r\nimport intl from \"react-intl-universal\";\r\nimport { Link } from \"react-router-dom\";\r\nimport ReCAPTCHA from \"react-google-recaptcha\";\r\nimport {\r\n FormGroup,\r\n FormControl,\r\n ControlLabel,\r\n HelpBlock,\r\n} from \"react-bootstrap\";\r\nimport LoaderButton from \"./LoaderButton\";\r\nimport \"./signUp.css\";\r\nimport DivsPattern from \"./skylineDesignPattern\";\r\nimport Industry from \"./industry\";\r\n\r\nclass SignUp extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n isLoading: false,\r\n isSignUpFailed: false,\r\n failedMessage: \"\",\r\n firstName: \"\",\r\n lastName: \"\",\r\n companyName: \"\",\r\n email: \"\",\r\n password: \"\",\r\n confirmPassword: \"\",\r\n newUser: false,\r\n showModal: true,\r\n industry: intl.get(\"Select_Industry\"),\r\n recaptchSucceeded: true,\r\n confirmPasswordDisabled:true,\r\n };\r\n\r\n this._reCaptchaRef = React.createRef();\r\n }\r\n\r\n handleRecaptchChange = (value) => {\r\n this.setState({ recaptchSucceeded: true });\r\n };\r\n\r\n asyncScriptOnLoad = () => {\r\n this.setState({ callback: \"called!\" });\r\n };\r\n\r\n validateForm() {\r\n return (\r\n this.state.email.length > 0 &&\r\n this.state.password.length > 0 &&\r\n this.state.confirmPassword.length > 0 &&\r\n this.state.firstName.length > 0 &&\r\n this.state.lastName.length > 0 &&\r\n this.state.companyName.length > 0 &&\r\n this.state.industry !== intl.get(\"Select_Industry\") &&\r\n this.state.recaptchSucceeded\r\n );\r\n }\r\n\r\n industryHasChanged = (event) => {\r\n this.setState({ industry: event.target.value });\r\n };\r\n\r\n handleChange = event => {\r\n this.setState({\r\n [event.target.id]: event.target.value,\r\n });\r\n };\r\n\r\n handlePassword = (event) =>{\r\n var mediumRegex = new RegExp(\"^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#\\$%\\^&\\*])(?=.{8,})\");\r\n if (!mediumRegex.test(event.target.value)){\r\n this.setState({ confirmPasswordDisabled:true, isSignUpFailed:true, [event.target.id]: event.target.value, failedMessage: intl.get(\"Password_Illegal\") });\r\n }\r\n else{\r\n this.setState({isSignUpFailed:false,\r\n [event.target.id]: event.target.value,\r\n confirmPasswordDisabled:false\r\n });\r\n }\r\n \r\n }\r\n\r\n handleSubmit = (event) => {\r\n event.preventDefault();\r\n if (!this.validateForm()) {\r\n this.setState({\r\n failedMessage: intl.get(\"Mandatory_Fields_Error\"),\r\n });\r\n this.setState({ isSignUpFailed: true });\r\n return;\r\n }\r\n\r\n if (!this.validateEmail(this.state.email)){\r\n this.setState({ failedMessage: intl.get(\"Email_Illegal\") , isSignUpFailed: true});\r\n return;\r\n }\r\n\r\n if (this.state.password !== this.state.confirmPassword) {\r\n this.setState({ failedMessage: intl.get(\"Password_Not_Match\") });\r\n this.setState({ isSignUpFailed: true });\r\n return;\r\n }\r\n\r\n this.setState({ isLoading: true });\r\n\r\n fetch(process.env.REACT_APP_API_URL + \"signup\", {\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n },\r\n body: JSON.stringify({\r\n FirstName: this.state.firstName,\r\n LastName: this.state.lastName,\r\n Email: this.state.email,\r\n Password: this.state.password,\r\n Industry: this.state.industry,\r\n CompanyName: this.state.companyName,\r\n }),\r\n })\r\n .then((res) => res.json())\r\n .then((result) => {\r\n if (result.Result.toString().toLowerCase() == \"success\") {\r\n this.setState({ isSignUpFailed: false });\r\n this.setState({ newUser: true });\r\n this.setState({ isLoading: false });\r\n } else {\r\n this.setState({ isSignUpFailed: true });\r\n if (\r\n result.Result &&\r\n result.Result.toString().toLowerCase() === \"validation\"\r\n ) {\r\n switch (result.Validations[0].ValidationCode.toString()) {\r\n case \"FieldEmpty\":\r\n this.setState({ failedMessage: intl.get(\"Field_Empty\") });\r\n break;\r\n case \"EmailIllegal\":\r\n this.setState({ failedMessage: intl.get(\"Email_Illegal\") });\r\n break;\r\n case \"EmailExists\":\r\n this.setState({ failedMessage: intl.get(\"Email_Exists\") });\r\n break;\r\n case \"PasswordIllegal\":\r\n this.setState({ failedMessage: intl.get(\"Password_Illegal\") });\r\n break;\r\n case \"NameIllegal\":\r\n this.setState({ failedMessage: intl.get(\"Name_Illegal\") });\r\n break;\r\n case \"LastNameIllegal\":\r\n this.setState({ failedMessage: intl.get(\"Last_Name_Illegal\") });\r\n break;\r\n default:\r\n this.setState({ failedMessage: intl.get(\"General_Failure\") });\r\n break;\r\n }\r\n } else this.setState({ failedMessage: result.ErrorMessage });\r\n this.setState({ isLoading: false });\r\n }\r\n })\r\n .catch((error) => {\r\n console.error(error);\r\n this.props.handleServerError(true);\r\n });\r\n\r\n //this.setState({ newUser: \"test\" });\r\n //this.setState({ isLoading: false });\r\n };\r\n\r\n validateEmail = (email) =>{\r\n const re = /^(([^<>()[\\]\\\\.,;:\\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,}))$/;\r\n const regex = new RegExp(re);\r\n if(regex.test(String(email).toLowerCase())){\r\n return true;\r\n }\r\n return false;\r\n };\r\n\r\n handleResendSubmit = (event) => {\r\n event.preventDefault();\r\n\r\n this.setState({ isLoading: true });\r\n\r\n fetch(process.env.REACT_APP_API_URL + \"ResendSignupEmail\", {\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n },\r\n body: JSON.stringify({\r\n Email: this.state.email,\r\n }),\r\n })\r\n .then((res) => res.json())\r\n .then((result) => {\r\n if (result.Result == \"Success\") {\r\n } else {\r\n if (result.Result && result.Result === \"Validation\") {\r\n switch (result.Validations[0].ValidationCode.toString()) {\r\n case \"FieldEmpty\":\r\n this.setState({ failedMessage: intl.get(\"Field_Empty\") });\r\n break;\r\n case \"EmailIllegal\":\r\n this.setState({ failedMessage: intl.get(\"Email_Illegal\") });\r\n break;\r\n case \"EmailExists\":\r\n this.setState({ failedMessage: intl.get(\"Email_Exists\") });\r\n break;\r\n case \"PasswordIllegal\":\r\n this.setState({ failedMessage: intl.get(\"Password_Illegal\") });\r\n break;\r\n case \"NameIllegal\":\r\n this.setState({ failedMessage: intl.get(\"Name_Illegal\") });\r\n break;\r\n case \"LastNameIllegal\":\r\n this.setState({ failedMessage: intl.get(\"Last_Name_Illegal\") });\r\n break;\r\n default:\r\n this.setState({ failedMessage: intl.get(\"General_Failure\") });\r\n break;\r\n }\r\n } else if (result.ErrorMessage.toString() !== \"\")\r\n this.setState({ failedMessage: result.ErrorMessage });\r\n }\r\n this.setState({ isLoading: false });\r\n })\r\n .catch((error) => {\r\n console.error(error);\r\n this.props.handleServerError(true);\r\n });\r\n };\r\n\r\n renderForm() {\r\n return (\r\n <DivsPattern>\r\n <form className=\"form-signin\" onSubmit={this.handleSubmit}>\r\n <FormGroup controlId=\"firstName\" className=\"form-label-group\">\r\n <FormControl\r\n autoFocus\r\n value={this.state.firstName}\r\n onChange={this.handleChange}\r\n placeholder={intl.get(\"First_Name\") + \" *\"}\r\n className=\"form-control\"\r\n required\r\n />\r\n </FormGroup>\r\n <FormGroup controlId=\"lastName\" className=\"form-label-group\">\r\n <FormControl\r\n value={this.state.lastName}\r\n onChange={this.handleChange}\r\n placeholder={intl.get(\"Last_Name\") + \" *\"}\r\n className=\"form-control\"\r\n required\r\n />\r\n </FormGroup>\r\n <FormGroup controlId=\"email\" className=\"form-label-group\">\r\n <FormControl\r\n type=\"email\"\r\n value={this.state.email}\r\n placeholder={intl.get(\"Eamil_Address_Test\") + \" *\"}\r\n onChange={this.handleChange}\r\n className=\"form-control\"\r\n required\r\n />\r\n </FormGroup>\r\n <FormGroup controlId=\"password\" className=\"form-label-group\">\r\n <FormControl\r\n value={this.state.password}\r\n onChange={this.handlePassword}\r\n type=\"password\"\r\n placeholder={intl.get(\"Password_Test\") + \" *\"}\r\n className=\"form-control\"\r\n required\r\n />\r\n </FormGroup>\r\n <FormGroup controlId=\"confirmPassword\" className=\"form-label-group\">\r\n <FormControl\r\n value={this.state.confirmPassword}\r\n onChange={this.handleChange}\r\n type=\"password\"\r\n placeholder={intl.get(\"Confirm_Password_Text\") + \" *\"}\r\n className=\"form-control\"\r\n disabled = {this.state.confirmPasswordDisabled}\r\n required\r\n />\r\n </FormGroup>\r\n <FormGroup controlId=\"companyName\" className=\"form-label-group\">\r\n <FormControl\r\n value={this.state.companyName}\r\n onChange={this.handleChange}\r\n placeholder={intl.get(\"Company_Name\") + \" *\"}\r\n className=\"form-control\"\r\n required\r\n />\r\n </FormGroup>\r\n <Industry onChange={this.industryHasChanged} />\r\n <ReCAPTCHA\r\n className=\"form-label-group\"\r\n style={{ textAlign: \"-webkit-center\" }}\r\n ref={this._reCaptchaRef}\r\n sitekey={\"6LeGzZsUAAAAALreua0d6EHa5KYeao1aaE1QCGup\"}\r\n onChange={this.handleRecaptchChange}\r\n asyncScriptOnLoad={this.asyncScriptOnLoad}\r\n />\r\n \r\n <LoaderButton\r\n block\r\n className=\"btn btn-lg btn-primary btn-block btn-login text-uppercase font-weight-bold mb-2\"\r\n // disabled={!this.validateForm()}\r\n type=\"submit\"\r\n isLoading={this.state.isLoading}\r\n text={intl.get(\"Sign_Up\")}\r\n loadingText={intl.get(\"Signing_Out\")}\r\n />\r\n {this.state.isSignUpFailed ? (\r\n <div id=\"divError\">\r\n <span style={{ color: \"red\" }}>{this.state.failedMessage}</span>\r\n </div>\r\n ) : null}\r\n </form>\r\n <p>\r\n {intl.get(\"Sign_Up_Already_Have_An_Account_Question\")}{\" \"}\r\n <Link to=\"/signIn\">{intl.get(\"LogIn_Text\")}</Link>\r\n </p>\r\n </DivsPattern>\r\n );\r\n }\r\n\r\n renderConfirmationForm() {\r\n return (\r\n <DivsPattern headerText={intl.get(\"Sign_Up_Confirmation_Title\")}>\r\n <div className=\"form-label-group\">\r\n <p>\r\n {intl.get(\"Sign_Up_Confirmation_Text\", { email: this.state.email })}\r\n </p>\r\n <br />\r\n <p>{intl.get(\"Sign_Up_Confirmation_Resend_Text\")}</p>\r\n <div className=\"text-center\">\r\n <LoaderButton\r\n className=\"small ResendButton\"\r\n text={intl.get(\"Sign_Up_Confirmation_Resend_Button_Text\")}\r\n href=\"#\"\r\n isLoading={this.state.isLoading}\r\n onClick={this.handleResendSubmit}\r\n loadingText={intl.get(\"Resending_An_Email\")}\r\n />\r\n </div>\r\n </div>\r\n </DivsPattern>\r\n // <Jumbotron bsClass=\"container\">\r\n // <h1>{intl.get(\"Sign_Up_Confirmation_Title\")}</h1>\r\n // <p>\r\n // {intl.get(\"Sign_Up_Confirmation_Text\", { email: this.state.email })}\r\n // </p>\r\n // <br />\r\n // <p>{intl.get(\"Sign_Up_Confirmation_Resend_Text\")}</p>\r\n // <button\r\n // className=\"btn btn-lg btn-primary btn-block btn-signin\"\r\n // type=\"button\"\r\n // onClick={this.handleSubmit}\r\n // >\r\n // {intl.get(\"Sign_Up_Confirmation_Resend_Button_Text\")}\r\n // </button>\r\n // </Jumbotron>\r\n );\r\n }\r\n\r\n render() {\r\n return (\r\n <div>\r\n {!this.state.newUser\r\n ? this.renderForm()\r\n : this.renderConfirmationForm()}\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nexport default SignUp;\r\n","import React, { Component } from 'react';\r\nimport { Link } from 'react-router-dom';\r\nimport SkylineLogo from \"../img/skyline_logo_transparent.png\";\r\n\r\nclass NavSide extends Component {\r\n state = {}\r\n render() {\r\n const activeClass = (route) => {\r\n return window.location.pathname.toLowerCase() + window.location.search.toLowerCase() === route.toLowerCase() ? \"activeli\" : null;\r\n };\r\n\r\n const isDefaultClass = () => {\r\n return !window.location.search.toLowerCase().includes(\"iscloudprocessing=\") && window.location.pathname.toLowerCase().includes(\"account\") ? \"LicensePackagesActiveli\" : \"\";\r\n }\r\n return (\r\n <nav className=\"side-nav sideNav\">\r\n <div className=\"side-wrapper\">\r\n <div className='navSideLogo'>\r\n <img src={SkylineLogo} style={{ width: '180px' }} />\r\n </div>\r\n <div className=\"nav-wrapper\">\r\n <ul className=\"nav flex-column\">\r\n <li className=\"nav-header pt-4\">\r\n <span className='text-uppercase' style={{ fontSize: '12px' }}>Cloud Services</span>\r\n </li>\r\n <li id=\"licensePackagesLiMenuNavSide\" className={\"nav-item \" + activeClass(\"/store/account?isCloudProcessing=false\") + \" \" + isDefaultClass()}>\r\n <a\r\n href=\"account?isCloudProcessing=false\"\r\n id='licensePackagesaMenuNavSide'\r\n className=\"nav-link navSideLink\"\r\n >\r\n <span id='licensePackagesSpanMenuNavSide' className=\"title\">License Packages</span>\r\n </a>\r\n </li>\r\n <li id='cloudProcessingLiMenuNavSide' className={\"nav-item \" + activeClass(\"/store/account?isCloudProcessing=true\")}>\r\n <a\r\n href=\"account?isCloudProcessing=true\"\r\n id=\"cloudProcessingaMenuNavSide\"\r\n className=\"nav-link navSideLink\"\r\n >\r\n <span id='cloudProcessingSpanNavSide' className=\"title\">Cloud Processing</span>\r\n </a>\r\n </li>\r\n </ul>\r\n </div>\r\n <div className='bottomNavSide'>\r\n <ul className=\"nav flex-column\">\r\n <li\r\n id=\"contactSupportliNavSide\" className={\"nav-item \" + activeClass(\"/store/\")}\r\n >\r\n <a id=\"contactSupportaNavSide\" href={\"https://support.skylinesoft.com/hc/en-us/requests/new?tf_subject=SkylineCloud Account&tf_anonymous_requester_email=\" + this.props.email + \"&tf_360015036959=product:skylinecloud\"} onClick={() => { }} className=\"nav-link navSideLink bottomNavSideLink\" target=\"_blank\">\r\n <i id='contactSupportiNavSide' className=\"icon material-icons\" style={{ fontSize: '17px' }}> headset_mic </i>\r\n <span id='contactSupportSpanNavSide' className=\"title\">Contact Support</span>\r\n </a>\r\n </li>\r\n <li\r\n id='KnowledgeBaseliNavSide' className={\"nav-item \" + activeClass(\"/store/\")}\r\n >\r\n <a id='KnowledgeBaseaNavSide' href=\"https://support.skylinesoft.com/hc/en-us\" onClick={() => { }} className=\"nav-link navSideLink bottomNavSideLink\" target=\"_blank\">\r\n <i id='KnowledgeBaseiNavSide' className=\"icon material-icons\" style={{ fontSize: '17px' }}> school </i>\r\n <span id='KnowledgeBaseSpanNavSide' className=\"title\">Knowledge Base</span>\r\n </a>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n </nav>\r\n );\r\n }\r\n}\r\n\r\nexport default NavSide;","import React, { Component } from 'react';\r\nimport { NavDropdown } from 'react-bootstrap';\r\nimport { Link } from 'react-router-dom';\r\nimport Calendar from '../../img/Icon feather-calendar.png';\r\nimport Package from '../../img/Icon feather-package.png';\r\nimport ActiveStatus from '../../img/ActiveStatus.png';\r\nimport ExpiredStatus from '../../img/ExpiredStatus.png';\r\n\r\n\r\n\r\nclass LicensePackages extends Component {\r\n state = {}\r\n\r\n componentDidMount() {\r\n this.handleScrollToPackage();\r\n }\r\n\r\n componentDidUpdate() {\r\n this.handleScrollToPackage();\r\n }\r\n\r\n handleScrollToPackage = () => {\r\n const { pathname } = window.location;\r\n if (pathname) {\r\n let splitPathName = pathname.split('/');\r\n const packageId = splitPathName[splitPathName.length - 2];\r\n const productId = splitPathName[splitPathName.length - 1];\r\n const packageIdElement = document.getElementById(`section${packageId}`);\r\n const productIdElement = document.getElementById(productId);\r\n if (packageIdElement && productIdElement) {\r\n packageIdElement.scrollIntoView();\r\n\r\n // Remove the packageId from the URL without causing a page reload\r\n splitPathName = splitPathName.slice(0, -2);\r\n splitPathName = splitPathName.join('/');\r\n window.history.replaceState({}, document.title, splitPathName);\r\n\r\n \r\n var product = this.props.packagesDataCustom[packageId].find(x => x.Id.toString() === productId)\r\n this.props.toggleDrawer(true, productId, product.packages.protectionType.toLowerCase(), product.noOfLics, true);\r\n }\r\n }\r\n };\r\n\r\n render() {\r\n var count = 0;\r\n return (<div>\r\n <h3 className='hTitleAccount'>License Packages</h3>\r\n {\r\n (this.props.isSubscriptionDataLoading && this.props.isDataLoading) ? (\r\n <div align=\"center\">\r\n <div>Loading...</div>\r\n </div>\r\n ) : (\r\n (this.props.packagesDataCustom.length == 0) ? <div align=\"center\">No data found</div> :\r\n (\r\n this.props.packagesDataCustom.map((row1, packageId) => {\r\n return (\r\n <div id={`section${packageId}`} key={packageId} className=\"licensePackageInAccountClass\">\r\n <div className='licensePackageHeaderBox'>\r\n <div className='StatusSection'>\r\n <img src={Package} className='licensePackageHeaderBoxImages' />\r\n <span>\r\n <div className=\"spaceToHeadlines\">Package ID: </div>\r\n <span id={\"_\" + packageId}> <strong>{packageId}</strong></span>\r\n {\r\n row1[0].evaluation ? <span> (Evaluation)</span>\r\n :\r\n \"\"\r\n }\r\n </span>\r\n </div>\r\n <div className='vlclass'></div>\r\n <div className='StatusSection'>\r\n {row1[0].packages.isActive &&\r\n (new Date(row1[0].packages.expirationeDate) > new Date() ||\r\n row1[0].packages.expirationeDate === \"0001-01-01T00:00:00\")\r\n ? <img src={ActiveStatus} className='licensePackageHeaderBoxImages'></img>\r\n : <img src={ExpiredStatus} className='licensePackageHeaderBoxImages'></img>}\r\n <span>\r\n <div className=\"spaceToHeadlines\">Status:</div>\r\n <strong>\r\n <span className={row1[0].packages.isActive &&\r\n (new Date(row1[0].packages.expirationeDate) > new Date() ||\r\n row1[0].packages.expirationeDate === \"0001-01-01T00:00:00\")\r\n ? \"spaceToHeadlines greenColor\"\r\n : \"spaceToHeadlines redColor\"}>\r\n {row1[0].packages.isActive &&\r\n (new Date(row1[0].packages.expirationeDate) > new Date() ||\r\n row1[0].packages.expirationeDate === \"0001-01-01T00:00:00\")\r\n ? \"Active\"\r\n : \"Not Active\"}\r\n </span>\r\n </strong>\r\n </span>\r\n </div>\r\n <div className='vlclass'></div>\r\n <div className='StatusSection'>\r\n <img src={Calendar} className='licensePackageHeaderBoxImages' />\r\n <span>\r\n <div className=\"spaceToHeadlines\"> Expiration Date:</div>\r\n <span>\r\n <strong className={\r\n new Date(row1[0].packages.expirationeDate) < new Date() &&\r\n row1[0].packages.expirationeDate !== \"0001-01-01T00:00:00\"\r\n ? \"redColor\"\r\n : \"\"\r\n }>\r\n {row1[0].GigaPixel\r\n ? \"-\"\r\n : new Date(row1[0].packages.expirationeDate).toDateString()}\r\n </strong>\r\n </span>\r\n </span>\r\n </div>\r\n {!row1[0].packages.checkoutLicAllowed ? \"\"\r\n :\r\n <React.Fragment>\r\n <div className='vlclass'></div>\r\n <span>\r\n <div className=\"spaceToHeadlines\">\r\n Checkout is Allowed: \r\n </div>\r\n <span><strong>\r\n {\r\n \"Yes (up to \" + row1[0].packages.checkoutLicDays + \" days)\"\r\n }\r\n </strong></span>\r\n </span>\r\n </React.Fragment>}\r\n </div>\r\n <table\r\n className={\r\n this.props.isSubscriptionDataLoading\r\n ? \"tableDisabled tdAlignMiddle tableAccountLicensePackage\"\r\n : \"table tdAlignMiddle tableAccountLicensePackage\"\r\n }\r\n >\r\n <thead>\r\n <tr>\r\n <th scope=\"col\"></th>\r\n <th>\r\n Product Name\r\n </th>\r\n <th>\r\n Access Token\r\n </th>\r\n {row1[0].packages.protectionType.toLowerCase() === \"floating\" ?\r\n <>\r\n <th>Total</th>\r\n <th>Available</th>\r\n <th>Used</th>\r\n </>\r\n :\r\n <th colSpan={3}>{row1[0].packages.protectionType.toLowerCase() === \"usbkey\" ? \"USB Keys\" : row1[0].packages.protectionType.toLowerCase() === \"macaddress\" ? \"Mac Addresses\" : \"Machine Codes\"}</th>\r\n }\r\n <th></th>\r\n </tr>\r\n </thead>\r\n <tbody className='tableAccountLicensePackageTr'>\r\n {this.props.isSubscriptionDataLoading ? (\r\n <tr align=\"center\" className=\"LoadingTable\">\r\n <td colSpan=\"7\">Loading...</td>\r\n </tr>\r\n ) : (\r\n row1.map((row, i) => {\r\n return (\r\n <tr key={i} id={row.Id}>\r\n <td key={count++}>{count}</td>\r\n <td id={\"_\" + packageId + \"_\" + row.products.ProductName.replace(' ', '_')} key={row.products.ProductName}>\r\n {row.products.ProductName}\r\n <br />\r\n {row.products.BaseProduct == \"CloudHosting\" ? (\" (\" + row.cloudSiteName + \") \") : \"\"}\r\n </td>\r\n <td>\r\n {\r\n row.products.BaseProduct == \"PMCloud\" // in case of \"PMCloud\", access token is not relevant\r\n ?\r\n \"-\"\r\n :\r\n row.products.BaseProduct == \"CloudHosting\" // CloudHosting product case\r\n ?\r\n this.props.dictionaryOfSites && this.props.dictionaryOfSites[row.cloudSiteId] && this.props.dictionaryOfSites[row.cloudSiteId].ViewerAccessToken\r\n ?\r\n this.props.dictionaryOfSites[row.cloudSiteId].ViewerAccessToken // returning directly from SGS an updated access token\r\n :\r\n row.cloudAccessToken // if not found in SGS, returning the last known access token which was saved in Cloud DB\r\n :\r\n row.packages.AccessGUID // returning AccessGUID for the rest of the products \r\n }\r\n </td>\r\n {row.packages.protectionType.toLowerCase() === \"floating\" ?\r\n <>\r\n <td>\r\n {this.props.calcTotal(row)}\r\n </td>\r\n <td>\r\n {this.props.calcAvailable(row)}\r\n </td>\r\n <td>\r\n {this.props.calcUsed(row)}\r\n </td>\r\n </>\r\n : \r\n <td colSpan={3}><div className='protectionTypeProductDiv' onClick={() => {this.props.toggleDrawer(true, row.Id, row.packages.protectionType.toLowerCase(), row.noOfLics)}}>{row.protectionTypeCodes.filter(x => x !== \"\").length + ' / ' + row.noOfLics}</div></td>}\r\n <td className='licensePackagesDropDownMenuTd'>\r\n <NavDropdown\r\n id=\"licensePackagesDropDownMenu\">\r\n {row.products.BaseProduct == \"PMCloud\" || row.products.BaseProduct === \"CloudHosting\" ? \"\" :\r\n <NavDropdown.Item id=\"installationInstructionsLinkId\" className=\"dropDownItemProductClass\" href={this.props.addingParamToPass(packageId, row.products.BaseProduct)} target=\"_blank\">\r\n Installation Instructions\r\n </NavDropdown.Item>\r\n }\r\n {\r\n row.products.BaseProduct !== \"PMCloud\" && row.products.BaseProduct !== \"CloudHosting\" &&\r\n row.packages.protectionType.toLowerCase() === \"machinecode\" ?\r\n <NavDropdown.Item id=\"machineCodeDropDownID\" className=\"dropDownItemProductClass\" onClick={() => {this.props.toggleDrawer(true, row.Id, row.packages.protectionType.toLowerCase(), row.noOfLics);}}>\r\n Machine Codes\r\n </NavDropdown.Item> :\r\n row.products.BaseProduct !== \"PMCloud\" && row.products.BaseProduct !== \"CloudHosting\" &&\r\n row.packages.protectionType.toLowerCase() === \"macaddress\" ? \r\n <NavDropdown.Item id=\"macAddressDropDownID\" className=\"dropDownItemProductClass\" onClick={() => {this.props.toggleDrawer(true, row.Id, row.packages.protectionType.toLowerCase(), row.noOfLics);}}>\r\n Mac Addresses\r\n </NavDropdown.Item> : \"\"\r\n }\r\n {\r\n (row.products.BaseProduct == \"PMGigaPixel\" && row.logs.length > 0) ?\r\n <NavDropdown.Item id=\"GPTransactionReportLinkId\" className=\"dropDownItemProductClass\" onClick={() => {\r\n this.props.handleShowLogs(true);\r\n this.props.handlelogsToDisplay(row.logs, row.packages.AccessGUID);\r\n this.props.handlelogsAccessGUID(row.packages.AccessGUID);\r\n }}>\r\n GP Transaction Report\r\n </NavDropdown.Item> : \"\"\r\n }\r\n\r\n {\r\n row.products.BaseProduct !== \"CloudHosting\" ?\r\n <NavDropdown.Item id=\"productKnowledgeBaseLinkId\" className=\"dropDownItemProductClass\" href={(\r\n row.products.BaseProduct === \"TerraExplorerPro\" || row.products.BaseProduct === \"TerraExplorerPlus\" || row.products.BaseProduct === \"TerraExplorerProPlus\" ?\r\n \"https://support.skylinesoft.com/hc/en-us/categories/360002434720-TerraExplorer-Desktop\"\r\n : row.products.BaseProduct === \"PhotoMesh\" || row.products.BaseProduct === \"PMGigaPixel\" ?\r\n \"https://support.skylinesoft.com/hc/en-us/categories/360002453079-PhotoMesh\"\r\n : row.products.BaseProduct === \"SkylineGlobeServer\" ?\r\n \"https://support.skylinesoft.com/hc/en-us/categories/360002453099-SkylineGlobe-Server-\"\r\n : row.products.BaseProduct === \"TerraBuilder\" ?\r\n \"https://support.skylinesoft.com/hc/en-us/categories/4402989250834-TerraBuilder\"\r\n : row.products.BaseProduct === \"PMCloud\" ?\r\n \"https://support.skylinesoft.com/hc/en-us/articles/4699178801308-PhotoMesh-Cloud-Processing\" : \"\")}\r\n target=\"_blank\">\r\n Product Knowledge Base\r\n </NavDropdown.Item> : \"\"\r\n }\r\n {row.products.BaseProduct === \"CloudHosting\" ?\r\n <NavDropdown.Item id=\"hostingManagerLinkId\" className='dropDownItemProductClass' href={\"/sg/\" + row.cloudSiteName + \"/admin\"} target=\"_blank\">\r\n Hosting Manager\r\n </NavDropdown.Item> : \"\"\r\n }\r\n\r\n </NavDropdown>\r\n {/* <button className=''>fff</button> */}\r\n </td>\r\n </tr>\r\n );\r\n })\r\n )}\r\n </tbody>\r\n </table>\r\n </div>\r\n );\r\n }\r\n )\r\n )\r\n )\r\n }\r\n </div>);\r\n }\r\n}\r\n\r\nexport default LicensePackages;","import React, { Component } from 'react';\r\nimport { Link } from 'react-router-dom';\r\nimport * as Common from \"./CommonManager\";\r\n\r\nclass CloudProcessingBox extends Component {\r\n\r\n render() {\r\n return (\r\n <React.Fragment>\r\n <section className=\"cloudProcessingBlock\" style={(this.props.cloudProcessingData.PMAutomationStatus !== null && (this.props.cloudProcessingData.PMAutomationStatus.toLowerCase() == 'initializing' || this.props.cloudProcessingData.PMAutomationStatus.toLowerCase() == 'running')) ? { borderLeft: \"10px solid #0186bc\" } : (this.props.cloudProcessingData.PMAutomationStatus !== null && this.props.cloudProcessingData.PMAutomationStatus.toLowerCase() == 'completed') ? { borderLeft: \"10px solid #1C8D17\" } : (this.props.cloudProcessingData.PMAutomationStatus !== null && (this.props.cloudProcessingData.PMAutomationStatus.toLowerCase() == 'failed' || this.props.cloudProcessingData.PMAutomationStatus.toLowerCase() == 'canceled' )) ? { borderLeft: \"10px solid #FA2323\" } : { borderLeft: \"10px solid white\" }}>\r\n <div style={{marginTop: '10px'}}>\r\n <strong>{this.props.cloudProcessingData.UserIdentifier}</strong>\r\n {this.props.cloudProcessingData.PMAutomationStatus !== null && this.props.cloudProcessingData.PMAutomationStatus.toLowerCase() == 'completed' && (this.props.cloudProcessingData.EndpointID == null || this.props.cloudProcessingData.EndpointID == '') ? \r\n <Link\r\n id=\"viewResultLinkId\"\r\n className=\"LoaderButton btn-primary btn btn-default createNewCloudProcessingButton\"\r\n target={\"_blank\"}\r\n style={{\r\n textTransform: \"none\",\r\n float: 'right',\r\n fontSize: '70%',\r\n width: '122px',\r\n height: '34px',\r\n marginTop: '12px',\r\n padding: '0.5rem 1.22rem'\r\n }}\r\n to={\"/gettingStarted?displayLogin=1&projectId=\" + this.props.cloudProcessingData.Id + \"&projectName=\" + this.props.cloudProcessingData.UserIdentifier}\r\n >\r\n View Result\r\n </Link>\r\n : null}\r\n </div>\r\n <div id=\"projectIdCloudProcessing\">\r\n <span style={{ fontSize: '13px' }}> Project ID: \r\n <span>{this.props.cloudProcessingData.PMAutomationID}\r\n </span>\r\n </span>\r\n </div>\r\n <div className=\"cloudProcessingBlockDetails\">\r\n <span className='' id=\"cloudProcessingBlockDetailsSpanId\" style={{ float: 'left' }}>\r\n {this.props.cloudProcessingData.FilesCount} Photos <span style={{ fontSize: '13px' }}>[{this.props.cloudProcessingData.GPRequestedValue.toFixed(2)} gigapixel]</span>\r\n </span>\r\n <span>\r\n Start Date: \r\n <strong>\r\n <span>{new Date(this.props.cloudProcessingData.CreatedAt).toDateString()}\r\n </span>\r\n </strong>\r\n </span>\r\n <span id=\"cloudProcessingBlockDetailsPackageID\">\r\n Package ID: \r\n <strong>\r\n <span>{this.props.cloudProcessingData.PackageID}\r\n </span>\r\n </strong>\r\n </span>\r\n <span className='' style={{ float: 'right', marginRight: '8px'}}>\r\n <span className='cloudProcessingBlockDetailsSpan'>\r\n {this.props.cloudProcessingData.PMAutomationStatus}\r\n </span>\r\n </span>\r\n </div>\r\n {this.props.cloudProcessingData.OutputParams && Common.isValidNonEmptyJSON(this.props.cloudProcessingData.OutputParams)\r\n ? \r\n <div>\r\n <table \r\n className='tblOutputs'\r\n style={{width: \"70%\", textAlign: \"center\"}}\r\n >\r\n <thead>\r\n <tr>\r\n <th style={{textAlign: \"center\"}}>Name</th>\r\n <th style={{textAlign: \"center\"}}>Value</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {Object.keys(JSON.parse(this.props.cloudProcessingData.OutputParams)).map((key, index) => (\r\n <tr key={index}>\r\n <td>{key}</td>\r\n <td>{JSON.parse(this.props.cloudProcessingData.OutputParams)[key]}</td>\r\n </tr>\r\n ))}\r\n </tbody>\r\n </table>\r\n </div>\r\n : null\r\n }\r\n </section>\r\n </React.Fragment>\r\n )\r\n }\r\n}\r\n\r\nexport default CloudProcessingBox;","export const isValidNonEmptyJSON = (str) => {\r\n try {\r\n const jsonObj = JSON.parse(str);\r\n if (typeof jsonObj === 'object' && Object.keys(jsonObj).length > 0) {\r\n return true;\r\n }\r\n return false;\r\n } catch (e) {\r\n return false;\r\n }\r\n}\r\n","import React, { Component } from 'react';\r\nimport CloudProcessingBox from '../CloudProcessingBox';\r\nimport intl from \"react-intl-universal\";\r\n\r\n\r\nclass CloudProcessing extends Component {\r\n state = {}\r\n render() {\r\n return (\r\n <React.Fragment>\r\n <div>\r\n <h3 className='hTitleAccount'>Cloud Processing</h3>\r\n <div style={{ fontSize: '18px', fontWeight: 'bold', marginBottom: '10px' }}>Cloud Processing Packages:\r\n <i alt={intl.get(\"Refresh_List\")} title={intl.get(\"Refresh_List\")} className={`fa fa-sync ${this.props.spinRefreshIcon ? \"fa-spin\" : \"\"}`} \r\n style={{fontSize:\"24px\",color: \"rgb(2, 134, 187)\", float:\"right\", position: \"relative\", cursor: \"pointer\"}} onClick={(event) => {\r\n event.preventDefault();\r\n this.props.changeSpinRefreshIcon()\r\n this.props.refreshData();\r\n }}></i>\r\n </div>\r\n {(this.props.iscloudProcessingPackagesLoading) ? (\r\n <div align=\"center\">\r\n <div>Loading...</div>\r\n </div>\r\n ) : (this.props.cloudProcessingPackages.length == 0) ?\r\n <div align=\"center\">No data found</div> : (\r\n <table\r\n className={\r\n this.props.iscloudProcessingPackagesLoading\r\n ? \"tableDisabled tdAlignMiddle\"\r\n : \"table tdAlignMiddle\"\r\n }\r\n >\r\n <thead>\r\n\r\n </thead>\r\n <tbody>\r\n {this.props.cloudProcessingPackages.map((row1, j) => {\r\n return (\r\n <tr key={j}>\r\n <td key={row1.packageId}>Package ID: <strong>{row1.packageId}</strong></td>\r\n <td>Endpoint: \r\n <strong>\r\n {row1.products.endpoint_name==undefined ? \"loading...\" : row1.products.endpoint_name ? row1.products.endpoint_name : \"\"}\r\n </strong>\r\n </td>\r\n <td key={row1.products.ProductName} className=\"statusClass\">\r\n Status: <strong>\r\n <span className={row1.packages.isActive &&\r\n (new Date(row1.packages.expirationeDate) > new Date() ||\r\n row1.packages.expirationeDate === \"0001-01-01T00:00:00\")\r\n ? \"spaceToHeadlines greenColor\"\r\n : \"spaceToHeadlines redColor\"}>\r\n {row1.packages.isActive &&\r\n (new Date(row1.packages.expirationeDate) > new Date() ||\r\n row1.packages.expirationeDate === \"0001-01-01T00:00:00\")\r\n ? \"Active\"\r\n : \"Not Active\"}\r\n </span>\r\n </strong>\r\n </td>\r\n <td>Expiration Date: <strong className={\r\n new Date(row1.packages.expirationeDate) < new Date() &&\r\n row1.packages.expirationeDate !== \"0001-01-01T00:00:00\"\r\n ? \"redColor\"\r\n : \"\"\r\n }>\r\n {row1.GigaPixel\r\n ? \"-\"\r\n : new Date(row1.packages.expirationeDate).toDateString()}\r\n </strong></td>\r\n <td>\r\n Available: \r\n <strong className=\"\">\r\n {this.props.calcAvailable(row1)}\r\n </strong>\r\n </td>\r\n <td>\r\n Used: \r\n <strong className=\"\">\r\n {this.props.calcUsed(row1)}\r\n </strong>\r\n </td>\r\n <td id=\"createNewCloudProcessingButtonTdTd\" className=\"createNewCloudProcessingButtonTd\">\r\n <button\r\n id=\"createNewCloudProcessingButtonId\"\r\n className=\"LoaderButton btn-primary btn btn-default createNewCloudProcessingButton\"\r\n style={{\r\n textTransform: \"none\",\r\n }}\r\n onClick={event => {\r\n this.props.props.history.push(\"PMProjects/newPMProject?packageId=\" + row1.packageId);\r\n }}\r\n disabled={row1.packages.isActive == false || new Date(row1.packages.expirationeDate) < new Date()}\r\n >\r\n New Project\r\n </button>\r\n </td>\r\n </tr>\r\n\r\n )\r\n })}\r\n </tbody>\r\n </table>\r\n )}\r\n </div>\r\n\r\n <div id=\"cloudProcessingProjectsDiv\">\r\n <div style={{ fontSize: '18px', fontWeight: 'bold', marginBottom: '10px' }}>Cloud Processing Projects:</div>\r\n {\r\n this.props.isCloudProcessingDataLoading ? (\r\n <div align=\"center\">\r\n <div>Loading...</div>\r\n </div>\r\n ) : (this.props.cloudProcessingData.length == 0) ?\r\n (<div align=\"center\">\r\n <div>No project created yet</div>\r\n </div>) :\r\n this.props.cloudProcessingData.map((row, i) => {\r\n return (\r\n <CloudProcessingBox key={i} cloudProcessingData={row}></CloudProcessingBox>\r\n )\r\n })\r\n }\r\n </div>\r\n </React.Fragment>\r\n );\r\n }\r\n}\r\n\r\nexport default CloudProcessing;","import React, { Component } from 'react';\r\nimport intl from \"react-intl-universal\";\r\nimport { CircularProgress, Drawer } from \"@material-ui/core\";\r\nimport { withRouter } from 'react-router-dom';\r\n\r\nclass ProtectionTypeDrawer extends Component {\r\n constructor(props) {\r\n super(props);\r\n }\r\n\r\n\r\n handleSaveProtectionType = (previousProtectionTypeCodes, addedProtectionTypeCodes, productId, packageId, productName) => {\r\n let protectionTypeCodes = previousProtectionTypeCodes.length > 0 ? previousProtectionTypeCodes + \",\" + addedProtectionTypeCodes : addedProtectionTypeCodes.toString();\r\n fetch(process.env.REACT_APP_API_URL + \"UpdateProtectionType\", {\r\n method: \"POST\",\r\n credentials: \"include\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n },\r\n body: JSON.stringify({\r\n productId: productId,\r\n packageId: packageId,\r\n productName: productName,\r\n protectionTypeCodes: protectionTypeCodes,\r\n }),\r\n })\r\n .then((res) => res.json())\r\n .then((result) => {\r\n if (result.success) {\r\n if (result.data) {\r\n this.props.handleSavedProtectionTypeCodes(result.data, this.props.productName);\r\n }\r\n } else {\r\n this.props.handleErrorSavedProtectionTypeCodes(result.error.message);\r\n }\r\n })\r\n .catch((error) => {\r\n this.props.handleErrorSavedProtectionTypeCodes(error.message);\r\n });\r\n };\r\n\r\n handleSaveClick = () => {\r\n try {\r\n this.props.handleErrorSavedProtectionTypeCodes(\"\");\r\n\r\n const text = this.props.textAreaTexts;\r\n const txtlines = text.split(/[\\n ,;]+/).filter((x) => x.trim() !== '');\r\n\r\n const invalidLines = [];\r\n\r\n for (const line of txtlines) {\r\n if (!(/^[a-zA-Z0-9]+$/).test(line.replace(/-|\\s/g, ''))) {\r\n invalidLines.push(line);\r\n }\r\n }\r\n\r\n if (invalidLines.length > 0) {\r\n // Return an error message with the list of invalid lines\r\n this.props.handleErrorSavedProtectionTypeCodes(`Line ${invalidLines.join(', ')} contain invalid characters.`);\r\n return;\r\n }\r\n\r\n var formattedLines = \"\";\r\n // Split and format the lines\r\n if (this.props.protectionType.toLowerCase() === \"machinecode\") {\r\n formattedLines = txtlines.map((line) => this.formattingMachineKey(line, 4));\r\n }\r\n else if (this.props.protectionType.toLowerCase() === \"macaddress\") {\r\n formattedLines = txtlines.map((line) => this.validateMACAddress(line));\r\n }\r\n\r\n console.log(this.props.errorProtectionTypeMessage);\r\n if (formattedLines.filter(x => x == undefined).length === 0) {\r\n this.handleSaveProtectionType(this.props.protectionTypeState, formattedLines, this.props.productId, this.props.packageId, this.props.productName);\r\n }\r\n }\r\n catch (err) {\r\n this.props.handleErrorSavedProtectionTypeCodes(\"Invalid code format. Codes must only contain letters, numbers, or hyphens.\");\r\n }\r\n }\r\n\r\n formattingMachineKey = (line) => {\r\n // Remove any existing hyphens and whitespace\r\n line = line.replace(/-|\\s/g, ''); // Remove '-' if exists\r\n\r\n if (line.length < 16 || line.length > 36 || line.length % 4 !== 0) {\r\n this.props.handleErrorSavedProtectionTypeCodes(\"Invalid code format. Codes must only contain letters, numbers, or hyphens.\");\r\n return;\r\n }\r\n\r\n const parts = [];\r\n for (let i = 0; i < line.length; i += 4) {\r\n const part = line.substr(i, 4);\r\n parts.push(part);\r\n }\r\n\r\n if (parts.length < 4) {\r\n this.props.handleErrorSavedProtectionTypeCodes('Error: Line must contain at least 4 parts.');\r\n return;\r\n }\r\n\r\n const formattedLine = parts.join('-');\r\n return formattedLine;\r\n }\r\n\r\n validateMACAddress = (macAddress) => {\r\n // Remove any existing colons, hyphens, and whitespace\r\n macAddress = macAddress.replace(/[:-\\s]/g, '');\r\n\r\n\r\n // Regular expression to match a valid MAC address format\r\n const macRegex = /^([0-9A-Fa-f]{2})([0-9A-Fa-f]{2})([0-9A-Fa-f]{2})([0-9A-Fa-f]{2})([0-9A-Fa-f]{2})([0-9A-Fa-f]{2})$/;\r\n\r\n if (!macRegex.test(macAddress)) {\r\n this.props.handleErrorSavedProtectionTypeCodes('Invalid MAC address format. Please provide a valid MAC address.');\r\n return;\r\n }\r\n\r\n const formattedMAC = macAddress.match(/.{1,2}/g).join(':');\r\n return formattedMAC;\r\n\r\n }\r\n\r\n render() {\r\n return (\r\n <Drawer className='protectionTypeDrawer' anchor=\"right\" open={this.props.openDrawer} onClose={() => this.props.toggleDrawer(false, \"\")}>\r\n <div className=\"drawerDivClass\">\r\n <h3 className='hTitleDrawer'>{this.props.protectionType && this.props.protectionType.toLowerCase() === \"machinecode\" ? intl.get(\"MachineCodes_Title\")\r\n : this.props.protectionType && this.props.protectionType.toLowerCase() === \"macaddress\" ? intl.get(\"MacAddresses_Title\")\r\n : intl.get(\"UsbKeys_Title\")}\r\n </h3>\r\n {this.props.isDrawerLoading ? (\r\n <CircularProgress size={60} className='drawerLoadingCircular' />\r\n ) :\r\n <div>\r\n {this.props.readOnlyTextArea && this.props.readOnlyTextArea.length >= 0 ?\r\n <div>\r\n <h5 className=\"subTitleDrawer\">\r\n {this.props.protectionType.toLowerCase() === \"machinecode\" ? intl.get(\"AddedMachineCodes_SubTitle\", { numOfProtectionTypes: this.props.numOfProtectionTypes })\r\n : this.props.protectionType.toLowerCase() === \"macaddress\" ? intl.get(\"AddedMacAddresses_SubTitle\", { numOfProtectionTypes: this.props.numOfProtectionTypes })\r\n : intl.get(\"AddedUSBKeys_SubTitle\", { numOfProtectionTypes: this.props.numOfProtectionTypes })}\r\n </h5>\r\n <div className=\"drawerMachineCodeDiv drawerAddedMachineCodes\">\r\n <textarea\r\n rows=\"5\" // Adjust the number of rows as needed\r\n className=\"draweMachineCodeInput show drawerAddedMachineCodesTextArea\"\r\n readOnly\r\n value={this.props.readOnlyTextArea}\r\n />\r\n </div>\r\n </div> : null}\r\n\r\n {this.props.isTrustedCustomer ?\r\n <>\r\n <h5 className=\"subTitleDrawer\">\r\n {this.props.protectionType && this.props.protectionType.toLowerCase() === \"machinecode\" ? intl.get(\"MachineCodes_SubTitle\") + (this.props.readOnlyTextArea.length <= 0 ? \" (\" + this.props.numOfProtectionTypes + \")\" : \"\")\r\n : this.props.protectionType && this.props.protectionType.toLowerCase() === \"macaddress\" ? intl.get(\"MacAddresses_SubTitle\") + (this.props.readOnlyTextArea.length <= 0 ? \" (\" + this.props.numOfProtectionTypes + \")\" : \"\")\r\n : intl.get(\"USBKeys_SubTitle\") + (this.props.readOnlyTextArea.length <= 0 ? \" (\" + this.props.numOfProtectionTypes + \")\" : \"\")}\r\n </h5>\r\n <span className=\"addListDescription\">\r\n {this.props.protectionType && this.props.protectionType.toLowerCase() === \"machinecode\" ? intl.get(\"MachineCodes_Description\")\r\n : this.props.protectionType && this.props.protectionType.toLowerCase() === \"macaddress\" ? intl.get(\"MacAddress_Description\")\r\n : intl.get(\"USBKeys_Description\")}\r\n </span>\r\n\r\n <div className={`notification ${this.props.showSavedProtectionType ? 'show' : ''}`} style={{ left: '275px', top: '22%' }}>\r\n {intl.get(\"Protection_Codes_Saved\")}\r\n </div>\r\n <div className=\"drawerMachineCodeDiv\">\r\n <textarea\r\n rows=\"5\" // Adjust the number of rows as needed\r\n className={`draweMachineCodeInput`}\r\n value={this.props.textAreaTexts}\r\n onChange={this.props.handleChangeMachineCodeInput}\r\n />\r\n <div className=\"drawerAddMachineCodesListButtons\">\r\n <button className=\"drawerMachineCodesButtons\" onClick={this.props.handleClearClick}>Clear</button>\r\n <button className=\"drawerMachineCodesButtons drawerSaveButton\" onClick={this.handleSaveClick}>Save</button>\r\n </div>\r\n </div>\r\n </>\r\n : null}\r\n {\r\n this.props.errorProtectionTypeMessage !== \"\" ?\r\n <div className=\"errorMessage\">* {this.props.errorProtectionTypeMessage}</div> : null\r\n\r\n }\r\n\r\n {this.props.protectionType && this.props.protectionType.toLowerCase() === \"machinecode\" ?\r\n <div className='mt-5'>\r\n <h5 className=\"subTitleDrawer\">\r\n {intl.get(\"Registration_Instructions\")}\r\n </h5>\r\n <ul>\r\n <li><b>Download Tool:</b> Click the link to download the <a href=\"https://cloud.skylineglobe.com/SGCloud/Downloads/LicenseRegistration.zip\">Skyline License Registration tool.</a></li>\r\n <li><b>Extract and Run:</b> Unzip the exe file and execute 'LicenseRegistration.exe'.</li>\r\n <li><b>Copy Machine Code:</b> On each machine you want to add to the license, run the 'LicenseRegistration.exe' tool, copy the machine code displayed.</li>\r\n {this.props.isTrustedCustomer ?\r\n <>\r\n <li><b>Paste Here:</b> Paste the copied code into the list box on this page.</li>\r\n <li><b>Registration:</b> Save to add the machine code to your license</li>\r\n </>\r\n : <li><b>Submit Collected Machine Codes for Registration:</b> After gathering the machine codes from each device, send an email containing all the collected machine codes to <a href='mailto:licenses@skylinesoft.com'>Licenses@skylinesoft.com</a> to complete the registration process.</li>}\r\n </ul>\r\n </div> :\r\n this.props.protectionType && this.props.protectionType.toLowerCase() === \"macaddress\" ?\r\n <div className='mt-5'>\r\n <h5 className=\"subTitleDrawer\">\r\n {intl.get(\"Registration_Instructions\")}\r\n </h5>\r\n <ul>\r\n <li><b>Download Tool:</b> Click the link to download the <a href=\"https://cloud.skylineglobe.com/SGCloud/Downloads/LicenseRegistrationMac.zip\">Skyline License Registration tool.</a></li>\r\n <li><b>Extract and Run:</b> Unzip the exe file and execute 'LicenseRegistration.exe'.</li>\r\n <li><b>Copy Mac Address:</b> From the 'LicenseRegistration.exe' tool, copy the mac address displayed.</li>\r\n <li><b>Paste Here:</b> Paste the copied code into the list box on this page.</li>\r\n <li><b>Registration:</b> Save to add the mac address to your license</li>\r\n </ul>\r\n </div> :\r\n null}\r\n </div>\r\n }\r\n </div>\r\n\r\n <div className=\"drawerCloseButtton\">\r\n {this.props.toggleDrawerFromURL ?\r\n <button className=\"btn btn-outline-primary\" onClick={() => { this.props.history.goBack(); }}>{intl.get(\"Drawer_Go_To_GettingStarted\")}</button>\r\n : null}\r\n <button className=\"btn-primary ml-4 btn btn-default\" onClick={() => { this.props.toggleDrawer(false, \"\"); }}>{intl.get(\"Drawer_Close_Button\")}</button>\r\n </div>\r\n </Drawer>\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(ProtectionTypeDrawer);","import React, { Component } from \"react\";\r\nimport intl from \"react-intl-universal\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { Modal, Button } from \"react-bootstrap\";\r\nimport \"./account.css\";\r\nimport \"react-table/react-table.css\";\r\nimport NavSide from \"./navSide\";\r\nimport LicensePackages from \"./Account/licensePackages\";\r\nimport CloudProcessing from \"./Account/cloudProcessing\";\r\nimport Draggable from \"react-draggable\";\r\nimport ModalDialog from 'react-bootstrap/ModalDialog';\r\nimport ProtectionTypeDrawer from \"./protectionTypeDrawer\";\r\n\r\nclass DraggableModalDialog extends React.Component {\r\n render() {\r\n return <Draggable handle=\"#header\"><ModalDialog {...this.props} /></Draggable>\r\n }\r\n}\r\n\r\nclass Account extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n subscriptionsData: [],\r\n packagesData: [],\r\n packagesDataCustom: [],\r\n dictionaryOfSites: {},\r\n logsToDisplay: [],\r\n logsAccessGUID: \"\",\r\n isSubscriptionDataLoading: true,\r\n userData: [],\r\n isDataLoading: true,\r\n sort: {\r\n column: null,\r\n direction: \"desc\",\r\n },\r\n checkedItems: new Map(),\r\n autoRenewCheckboxDisabled: false,\r\n autoRenewCheckboxIsChecked: null,\r\n autoRenewCheckboxSubscriptionId: undefined,\r\n show: false,\r\n showLogs : false,\r\n ExpiresInDays: undefined,\r\n ExpiresInSubscription: undefined,\r\n hasSGStatusData: true,\r\n inTrial: undefined,\r\n cloudProcessingData: [],\r\n isCloudProcessingDataLoading: true,\r\n cloudProcessingPackages: [],\r\n iscloudProcessingPackagesLoading: true,\r\n tabsEnterKey: \"packages\",\r\n email: '',\r\n spinRefreshIcon: false,\r\n isDrawerLoading: false,\r\n openDrawer: false,\r\n protectionType: \"floating\",\r\n showSavedProtectionType: false,\r\n textAreaTexts: \"\",\r\n readOnlyTextArea: \"\",\r\n errorProtectionTypeMessage: \"\",\r\n numOfProtectionTypes: \"0\",\r\n activeProductId: \"\",\r\n activePackageId: \"\",\r\n isTrustedCustomer: false,\r\n toggleDrawerFromURL: false\r\n };\r\n\r\n this.handleShow = this.handleShow.bind(this);\r\n this.handleSubmitClose = this.handleSubmitClose.bind(this);\r\n this.handleClose = this.handleClose.bind(this); \r\n\r\n this.getAccountPackagesData();\r\n this.getCloudProcessingStatus();\r\n \r\n // Comment out and add get packages for the new cloud packages. Maybe we'll want to add it again when we'll connect rebilly to the cloud.\r\n //this.getAccountSubscriptionsData();\r\n }\r\n\r\n componentDidMount() {\r\n var accountTabName = window.location.search.toLowerCase().match(\r\n /[?&]isCloudProcessing[=]([^&]+)/i\r\n );\r\n\r\n if (accountTabName !== null && accountTabName[1] === \"true\") {\r\n this.setState({tabsEnterKey: \"cloudProcessing\"});\r\n }\r\n }\r\n \r\n refreshData = () => {\r\n this.getAccountPackagesData();\r\n this.getCloudProcessingStatus();\r\n }\r\n\r\n GetEndpointsFromDB = () => {\r\n \r\n let url = process.env.REACT_APP_LAMBDA_API_MANAGER + \"/getEndpointsFromDB\";\r\n\r\n fetch(url, {\r\n method: \"POST\",\r\n credentials: \"include\",\r\n headers: {\r\n \"Content-Type\": \"text/plain\",\r\n },\r\n body: JSON.stringify({\r\n isLocal: (process.env.REACT_APP_IS_LOCAL == 'true'),\r\n searchText: '',\r\n sortString: '-workflowId',\r\n isSortDescending: false\r\n }),\r\n })\r\n .then((res) => { return res.json()})\r\n .then((result) => {\r\n if(result.ret.returnCode == \"success\"){\r\n // Assuming this code is inside a method of a React component\r\n var cloudProcessingPackages = this.state.cloudProcessingPackages;\r\n var endpointsData = JSON.parse(result.ret.data);\r\n\r\n cloudProcessingPackages.forEach(x => {\r\n x.products.endpoint_name = \"\";\r\n })\r\n // Iterate through each endpoint in endpointsData\r\n endpointsData.forEach(endpoint => {\r\n \r\n // Find the corresponding package in packagesWithEndpoints\r\n const packageIndex = cloudProcessingPackages.findIndex(x => x.products && x.products.endpoint_id === endpoint.endpoint_id);\r\n\r\n // If a package is found\r\n if (packageIndex !== -1) {\r\n // Update the products endpoint_name\r\n cloudProcessingPackages[packageIndex].products.endpoint_name = endpoint.endpoint_name;\r\n }\r\n });\r\n\r\n // Update the state with the modified cloudProcessingPackages\r\n this.setState({ cloudProcessingPackages: cloudProcessingPackages });\r\n }\r\n })\r\n }\r\n\r\n handleTabSelect = (key) => {\r\n if (key.toString().toLowerCase() == 'cloudprocessing') {\r\n window.history.pushState('', 'Skyline Cloud', '/store/account?isCloudProcessing=true');\r\n }\r\n else {\r\n window.history.pushState('', 'Skyline Cloud', '/store/account?isCloudProcessing=false');\r\n }\r\n this.setState({tabsEnterKey: key});\r\n }\r\n\r\n closeLogsDialog = () => {\r\n this.setState({ showLogs: false });\r\n }\r\n\r\n handleClose() {\r\n this.setState({ show: false });\r\n }\r\n\r\n handleSubmitClose() {\r\n this.handleOnChangeAutoRenew(\r\n this.state.autoRenewCheckboxSubscriptionId,\r\n !this.state.checkedItems.get(this.state.autoRenewCheckboxSubscriptionId)\r\n );\r\n }\r\n\r\n handleShow(isChecked, subscriptionId) {\r\n this.setState((prevState) => ({\r\n checkedItems: prevState.checkedItems.set(subscriptionId, !isChecked),\r\n }));\r\n this.setState({ autoRenewCheckboxSubscriptionId: subscriptionId });\r\n this.setState({ show: true });\r\n } \r\n\r\n handleShowLogs = (value) => {\r\n this.setState({ showLogs: value });\r\n }\r\n\r\n handlelogsToDisplay = (value, AccessGUID) => {\r\n this.setState({ logsToDisplay: value, logsAccessGUID: AccessGUID });\r\n }\r\n\r\n handlelogsAccessGUID = (value) => {\r\n this.setState({handlelogsAccessGUID: value });\r\n }\r\n\r\n formatUserStatusData() {\r\n const userDataTemp = this.state.userData;\r\n if (userDataTemp.SiteExpireDate === \"0001-01-01T00:00:00\")\r\n this.setState((prevState) => ({\r\n userData: { ...prevState.userData, SiteExpireDate: \"-\" },\r\n }));\r\n if (userDataTemp.SiteStorageLimitDescp === \"N/A\")\r\n this.setState((prevState) => ({\r\n userData: { ...prevState.userData, SiteStorageLimitDescp: \"-\" },\r\n }));\r\n if (userDataTemp.SiteSessionsLimit == \"-1\")\r\n this.setState((prevState) => ({\r\n userData: { ...prevState.userData, SiteSessionsLimit: \"-\" },\r\n }));\r\n }\r\n\r\n getAccountPackagesData() {\r\n fetch(process.env.REACT_APP_API_URL + \"GetUserPackages\", {\r\n method: \"POST\",\r\n credentials: \"include\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n },\r\n body: JSON.stringify({fetchLogs: true})\r\n })\r\n .then((res) => {\r\n if (res.ok) {\r\n return res;\r\n } else {\r\n throw Error(`status ${res.status}`);\r\n }\r\n })\r\n .then((res) => res.json())\r\n .then((result) => {\r\n if (result.Result.toString().toLowerCase() === \"success\") {\r\n if (result.data != undefined && result.data.length > 0)\r\n this.setState({ email: result.data[0].email });\r\n else this.setState({email: \"\" });\r\n \r\n result.data.forEach((element) => {\r\n this.setState((prevState) => ({\r\n checkedItems: prevState.checkedItems.set(\r\n element.packages.Rebilly_SubscriptionId,\r\n element.packages.isAutoRenew\r\n ),\r\n }));\r\n });\r\n this.setState({ packagesData: result.data });\r\n this.setState({ isSubscriptionDataLoading: false });\r\n this.setState({ dictionaryOfSites: result.dictionaryOfSites });\r\n \r\n var data = result.data;\r\n var packagesDataCustom = this.state.packagesDataCustom;\r\n this.setState({cloudProcessingPackages: []});\r\n for(var i=0; i<data.length; i++){\r\n let found1 = Object.keys(packagesDataCustom).filter(key => data[i].packageId == key)[0]\r\n if(found1)\r\n packagesDataCustom[found1].push(data[i]);\r\n else\r\n packagesDataCustom[data[i].packageId] = [data[i]];\r\n\r\n if (data[i].products.BaseProduct === \"PMCloud\") {\r\n this.setState({cloudProcessingPackages: [...this.state.cloudProcessingPackages, data[i]]});\r\n }\r\n }\r\n //getting\r\n var packagesWithEndpoints = result.data.filter(x => x.products && x.products.endpoint_id !== null && x.products.endpoint_id !== \"\")\r\n if(packagesWithEndpoints.length > 0){\r\n this.GetEndpointsFromDB();\r\n }else{\r\n var cloudProcessingPackages = this.state.cloudProcessingPackages;\r\n cloudProcessingPackages.forEach(x => {\r\n x.products.endpoint_name = \"\";\r\n })\r\n this.setState({cloudProcessingPackages});\r\n }\r\n this.setState({ packagesDataCustom: packagesDataCustom, iscloudProcessingPackagesLoading: false, spinRefreshIcon: false }); \r\n } \r\n else {\r\n this.setState({ isSubscriptionDataLoading: false, spinRefreshIcon: false });\r\n }\r\n })\r\n .catch((error) => {\r\n console.error(error);\r\n this.setState({ isSubscriptionDataLoading: false, spinRefreshIcon: false });\r\n if (error.message.includes(\"401\"))\r\n this.props.userHasAuthenticated(false, undefined);\r\n else this.props.handleServerError(true);\r\n });\r\n }\r\n\r\n getAccountSubscriptionsData() {\r\n fetch(process.env.REACT_APP_API_URL + \"getsubscriptions\", {\r\n method: \"POST\",\r\n credentials: \"include\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n },\r\n })\r\n .then((res) => {\r\n if (res.ok) {\r\n return res;\r\n } else {\r\n throw Error(`status ${res.status}`);\r\n }\r\n })\r\n .then((res) => res.json())\r\n .then((result) => {\r\n if (result.Result.toString().toLowerCase() === \"success\") {\r\n result.Data.forEach((element) => {\r\n this.setState((prevState) => ({\r\n checkedItems: prevState.checkedItems.set(\r\n element.SubscriptionId,\r\n element.packages.isAutoRenew\r\n ),\r\n }));\r\n if (element.ExpirationInDays !== null) {\r\n if (element.InTrial) this.setState({ inTrial: true });\r\n this.setState({ ExpiresInDays: element.ExpirationInDays });\r\n this.setState({ ExpiresInSubscription: element.SubscriptionId });\r\n }\r\n });\r\n console.log(this.state.checkedItems);\r\n this.setState({ subscriptionsData: result.Data });\r\n this.setState({ isSubscriptionDataLoading: false });\r\n } else {\r\n }\r\n })\r\n .catch((error) => {\r\n console.error(error);\r\n if (error.message.includes(\"401\"))\r\n this.props.userHasAuthenticated(false, undefined);\r\n else this.props.handleServerError(true);\r\n });\r\n }\r\n\r\n getCloudProcessingStatus = () => {\r\n fetch(process.env.REACT_APP_API_URL + \"GetCloudProcessingStatus\", {\r\n method: \"POST\",\r\n credentials: \"include\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n },\r\n body: JSON.stringify({})\r\n })\r\n .then((res) => {\r\n if (res.ok) {\r\n return res;\r\n } else {\r\n throw Error(`status ${res.status}`);\r\n }\r\n })\r\n .then((res) => res.json())\r\n .then((result) => {\r\n if (result.Result.toString().toLowerCase() === \"success\") {\r\n this.setState({ cloudProcessingData: result.data });\r\n this.setState({ isCloudProcessingDataLoading: false });\r\n } \r\n else {\r\n this.setState({ isCloudProcessingDataLoading: false });\r\n }\r\n })\r\n .catch((error) => {\r\n console.error(error);\r\n this.setState({ isCloudProcessingDataLoading: false });\r\n if (error.message.includes(\"401\"))\r\n this.props.userHasAuthenticated(false, undefined);\r\n else this.props.handleServerError(true);\r\n });\r\n }\r\n\r\n handleOnChangeAutoRenew = (SubscriptionId, value) => {\r\n this.setState({ autoRenewCheckboxDisabled: true });\r\n fetch(process.env.REACT_APP_API_URL + \"changeAutoRenew\", {\r\n method: \"POST\",\r\n credentials: \"include\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n },\r\n body: JSON.stringify({\r\n subscriptionId: SubscriptionId,\r\n newValue: value,\r\n }),\r\n })\r\n .then((res) => res.json())\r\n .then((result) => {\r\n if (result.Result.toString().toLowerCase() === \"success\") {\r\n this.setState({ autoRenewCheckboxDisabled: false });\r\n this.setState((prevState) => ({\r\n checkedItems: prevState.checkedItems.set(SubscriptionId, value),\r\n }));\r\n this.setState({ show: false });\r\n } else {\r\n }\r\n })\r\n .catch((error) => {\r\n console.error(error);\r\n this.setState({ show: false });\r\n this.props.handleServerError(true);\r\n });\r\n };\r\n\r\n handleUpdateProtectionTypeState = (productId, value) => {\r\n let items = [...this.state.packagesData];\r\n let itemIndex = items.findIndex(x => x.Id === productId);\r\n let item = {...items[itemIndex]};\r\n\r\n item.protectionTypeCodes = value;\r\n items[itemIndex] = item;\r\n this.setState({ packagesData: items });\r\n }\r\n\r\n onSort = (column) => (e) => {\r\n const direction = this.state.sort.column\r\n ? this.state.sort.direction === \"asc\"\r\n ? \"desc\"\r\n : \"asc\"\r\n : \"desc\";\r\n const sortedData = this.state.subscriptionsData.sort((a, b) => {\r\n if (column === \"SubscriptionId\") {\r\n const subA = a.SubscriptionId.toUpperCase(); // ignore upper and lowercase\r\n const subB = b.SubscriptionId.toUpperCase(); // ignore upper and lowercase\r\n if (subA < subB) {\r\n return -1;\r\n }\r\n if (subA > subB) {\r\n return 1;\r\n }\r\n\r\n // names must be equal\r\n return 0;\r\n } else if (column === \"CreatedTime\") {\r\n return new Date(b.CreatedTime) - new Date(a.CreatedTime);\r\n } else {\r\n return;\r\n //return a.contractValue - b.contractValue;\r\n }\r\n });\r\n\r\n if (direction === \"desc\") {\r\n sortedData.reverse();\r\n }\r\n\r\n this.setState({\r\n subscriptionsData: sortedData,\r\n sort: { column, direction },\r\n });\r\n };\r\n\r\n setArrow = (column) => {\r\n let className = \"tableSorter\";\r\n if (this.state.sort.column === column) {\r\n className += this.state.sort.direction === \"asc\" ? \" asc\" : \" desc\";\r\n }\r\n\r\n return className;\r\n };\r\n\r\n bytesToSize = (bytes) => {\r\n var sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB'];\r\n if (bytes == 0) return '0 GB';\r\n var i = parseInt(Math.floor(Math.log(bytes) / Math.log(1024)));\r\n return Math.round(bytes / Math.pow(1024, i), 2) + ' ' + sizes[i];\r\n }\r\n\r\n fetchSiteRemainingStorage = (siteId) => {\r\n\r\n for (var key in this.state.dictionaryOfSites) {\r\n if(siteId == key){\r\n return this.bytesToSize(this.state.dictionaryOfSites[key].SiteStorageRemaining);\r\n }\r\n }\r\n return 0;\r\n }\r\n\r\n fetchSiteUsedStorage = (siteId) => {\r\n for (var key in this.state.dictionaryOfSites) {\r\n if(siteId == key){\r\n return this.bytesToSize(this.state.dictionaryOfSites[key].SiteStorageLimit - this.state.dictionaryOfSites[key].SiteStorageRemaining);\r\n }\r\n }\r\n return 0;\r\n }\r\n\r\n IsJsonString = (jsonString) => {\r\n try {\r\n JSON.parse(jsonString);\r\n } catch (e) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n createHeadersAndDataForCsv = () => {\r\n var rows = [];\r\n //create headers\r\n var tmpHeaders = {\r\n AccessGUID: \"Access Token\",\r\n Time: \"Date\",\r\n Total: \"Total\",\r\n GPLeft: \"Available\",\r\n Gp: \"Used\"\r\n }\r\n rows.push(tmpHeaders);\r\n var arr = this.state.logsToDisplay;\r\n for(var i=0; i<arr.length; i++){\r\n \r\n var tmpObjData = {\r\n AccessGUID: this.state.logsAccessGUID,\r\n Time: this.convert_server_dt_format(arr[i].Time),\r\n Total: this.IsJsonString(arr[i].Message) ?\r\n (parseFloat(JSON.parse(arr[i].Message).GP) && parseFloat(JSON.parse(arr[i].Message).GPLeft)) \r\n ? (parseFloat(JSON.parse(arr[i].Message).GP) + parseFloat(JSON.parse(arr[i].Message).GPLeft))\r\n : parseFloat(JSON.parse(arr[i].Message).GPLeft).toFixed(2)\r\n : \"\",\r\n GPLeft: this.IsJsonString(arr[i].Message) ? parseFloat(JSON.parse(arr[i].Message).GPLeft).toFixed(2) : \"\",\r\n Gp: this.IsJsonString(arr[i].Message) ? parseFloat(JSON.parse(arr[i].Message).GP) ? parseFloat(JSON.parse(arr[i].Message).GP).toFixed(2) : \"-\" : \"\"\r\n }\r\n rows.push(tmpObjData);\r\n }\r\n return rows;\r\n }\r\n\r\n exportToCsv = (filename) => {\r\n var rows = this.createHeadersAndDataForCsv();\r\n var processRow = function (row) {\r\n var finalVal = '';\r\n var j = 0;\r\n Object.keys(row).forEach(key => {\r\n var innerValue = row[key] === null ? '' : row[key].toString();\r\n var result = innerValue.replace(/\"/g, '\"\"');\r\n if (result.search(/(\"|,|\\n)/g) >= 0)\r\n result = '\"' + result + '\"';\r\n if (j > 0)\r\n finalVal += ',';\r\n j++;\r\n finalVal += result;\r\n });\r\n return finalVal + '\\n';\r\n };\r\n\r\n var csvFile = '';\r\n for (var i = 0; i < rows.length; i++) {\r\n csvFile += processRow(rows[i]);\r\n }\r\n\r\n var blob = new Blob([csvFile], { type: 'text/csv;charset=utf-8;' });\r\n if (navigator.msSaveBlob) { // IE 10+\r\n navigator.msSaveBlob(blob, filename);\r\n } else {\r\n var link = document.createElement(\"a\");\r\n if (link.download !== undefined) { // feature detection\r\n // Browsers that support HTML5 download attribute\r\n var url = URL.createObjectURL(blob);\r\n link.setAttribute(\"href\", url);\r\n link.setAttribute(\"download\", filename);\r\n link.style.visibility = 'hidden';\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n }\r\n }\r\n }\r\n\r\n convert_server_dt_format = (dtStr) => {\r\n \r\n var defaultDt = \"01/01/0001 00:00:00z\";\r\n\r\n if(!dtStr || typeof dtStr != \"string\")\r\n return defaultDt;\r\n\r\n if(dtStr.slice(-1).toLowerCase() != 'Z')\r\n dtStr += 'Z';\r\n var dt = new Date(dtStr.replace(/[:](?=\\d{6}\\s*$)/, \".\").trim());\r\n return new Date(dt).toDateString() + \" \" + `${dt.getHours().toString().padStart(2, '0')}:${dt.getMinutes().toString().padStart(2, '0')}`;\r\n }\r\n\r\n addingParamToPass = (packageId, BaseProductName) => {\r\n\r\n var buildParamString = \"\";\r\n switch(BaseProductName) {\r\n case 'CloudHosting':\r\n buildParamString = 'gettingStartedUploads?displayLogin=1&packageId=' + packageId + \"#publishDataSection\";\r\n break;\r\n case 'PMGigaPixel':\r\n buildParamString = 'gettingStartedProducts?displayLogin=1&packageId=' + packageId + \"#\" + \"InstallPhotoMeshSection\";\r\n break;\r\n case 'PhotoMesh':\r\n buildParamString = 'gettingStartedProducts?displayLogin=1&packageId=' + packageId + \"#\" + \"InstallPhotoMeshSection\";\r\n break;\r\n case 'SkylineGlobeServer':\r\n buildParamString = 'gettingStartedProducts?displayLogin=1&packageId=' + packageId + \"#\" + \"InstallSkylineGlobeServerSection\";\r\n break;\r\n case 'TerraBuilder':\r\n buildParamString = 'gettingStartedProducts?displayLogin=1&packageId=' + packageId + \"#\" + \"InstallTerraBuilderSection\";\r\n break;\r\n case 'TerraExplorerPlus':\r\n buildParamString = 'gettingStartedProducts?displayLogin=1&packageId=' + packageId + \"#\" + \"InstallTerraExplorerPlusSection\";\r\n break;\r\n case 'TerraExplorerPro':\r\n buildParamString = 'gettingStartedProducts?displayLogin=1&packageId=' + packageId + \"#\" + \"InstallTerraExplorerProSection\";\r\n break;\r\n default:\r\n break;\r\n }\r\n return buildParamString;\r\n }\r\n\r\n calcTotal = (row) => {\r\n if (row.products.BaseProduct == \"CloudHosting\") {\r\n var totalUsers = 0;\r\n for (var key in this.state.dictionaryOfSites) {\r\n if (row.cloudSiteId == key) {\r\n totalUsers = this.state.dictionaryOfSites[key].SiteSessionsLimit;\r\n }\r\n }\r\n totalUsers += \" Users / \"\r\n return totalUsers + this.bytesToSize(row.amountValue)\r\n }\r\n\r\n if (row.products.BaseProduct == \"PMGigaPixel\" || row.products.BaseProduct == \"PMCloud\") {\r\n return parseFloat(row.GPInitValue.toFixed(2)) + \" GP \";\r\n }\r\n\r\n if (row.products.BaseProduct == \"SkylineGlobeServer\") {\r\n return row.ConcurrentUsers + \" Users\"\r\n } else {\r\n return row.noOfLics + \" Lics\"\r\n }\r\n }\r\n\r\n calcAvailable = (row) => {\r\n if(row.products.BaseProduct == \"CloudHosting\"){\r\n var totalUsersLeft = 0;\r\n for (var key in this.state.dictionaryOfSites) {\r\n if(row.cloudSiteId == key){\r\n totalUsersLeft = this.state.dictionaryOfSites[key].SiteSessionsRemaining;\r\n }\r\n }\r\n totalUsersLeft += \" Users / \"\r\n return totalUsersLeft + this.fetchSiteRemainingStorage(row.cloudSiteId)\r\n }\r\n\r\n if(row.products.BaseProduct == \"PMGigaPixel\" || row.products.BaseProduct == \"PMCloud\"){\r\n return parseFloat(row.amountValue.toFixed(2)) + \" GP \";\r\n }\r\n \r\n if(row.products.BaseProduct == \"SkylineGlobeServer\"){\r\n return \" -- \"\r\n } else {\r\n return (row.noOfLics - row.ammountOfUsersThatUsingThisLic) + \" Lics\"\r\n }\r\n }\r\n\r\n calcUsed = (row) => {\r\n if(row.products.BaseProduct == \"CloudHosting\"){\r\n var totalUsersUsed = 0;\r\n for (var key in this.state.dictionaryOfSites) {\r\n if(row.cloudSiteId == key){\r\n totalUsersUsed = (this.state.dictionaryOfSites[key].SiteSessionsLimit - this.state.dictionaryOfSites[key].SiteSessionsRemaining);\r\n }\r\n }\r\n totalUsersUsed += \" Users / \"\r\n return totalUsersUsed + this.fetchSiteUsedStorage(row.cloudSiteId)\r\n }\r\n\r\n if(row.products.BaseProduct == \"PMGigaPixel\" || row.products.BaseProduct == \"PMCloud\"){\r\n return (parseFloat(row.GPInitValue.toFixed(2)) - parseFloat(row.amountValue.toFixed(2))).toFixed(2) + \" GP \";\r\n }\r\n\r\n if(row.products.BaseProduct == \"SkylineGlobeServer\"){\r\n return \" -- \"\r\n } else {\r\n return (row.ammountOfUsersThatUsingThisLic) + \" Lics\"\r\n }\r\n }\r\n\r\n changeSpinRefreshIcon = () =>{\r\n this.setState({spinRefreshIcon: true});\r\n }\r\n\r\n toggleDrawer = (open, productId, protectionType, numOfLics, fromURL) => {\r\n this.setState({ openDrawer: open });\r\n this.setState({ errorProtectionTypeMessage: \"\" });\r\n this.setState({ isDrawerLoading: true });\r\n this.setState({ toggleDrawerFromURL: !!fromURL });\r\n\r\n if (open) {\r\n this.setState({ protectionType: protectionType });\r\n\r\n fetch(process.env.REACT_APP_API_URL + \"GetProtectionTypeCodesByProductId\", {\r\n method: \"POST\",\r\n credentials: \"include\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n },\r\n body: JSON.stringify({\r\n productId: productId\r\n }),\r\n })\r\n .then((res) => res.json())\r\n .then((result) => {\r\n if (result.success) {\r\n if (result.data) {\r\n this.handleUpdateProtectionTypeState(productId, result.data);\r\n let item = this.state.packagesData[this.state.packagesData.findIndex(x => x.Id == productId)];\r\n if (item != undefined && item.protectionTypeCodes.length > 0) {\r\n item.protectionTypeCodes = item.protectionTypeCodes.filter(x => x !== \"\");\r\n this.setState({ readOnlyTextArea: item.protectionTypeCodes.join('\\n') });\r\n this.setState({ numOfProtectionTypes: item.protectionTypeCodes.length + '/' + numOfLics });\r\n this.setState({ activeProductId: productId });\r\n this.setState({ activePackageId: item.packageId });\r\n this.setState({ isTrustedCustomer: item.packages.TrustedCustomer });\r\n }\r\n }\r\n } else {\r\n let item = this.state.packagesData[this.state.packagesData.findIndex(x => x.Id == productId)];\r\n if (item != undefined && item.protectionTypeCodes.length > 0) {\r\n item.protectionTypeCodes = item.protectionTypeCodes.filter(x => x !== \"\");\r\n this.setState({ readOnlyTextArea: item.protectionTypeCodes.join('\\n') });\r\n this.setState({ numOfProtectionTypes: item.protectionTypeCodes.length + '/' + numOfLics });\r\n this.setState({ activeProductId: productId });\r\n this.setState({ activePackageId: item.packageId });\r\n this.setState({ isTrustedCustomer: item.packages.TrustedCustomer });\r\n }\r\n }\r\n this.setState({ isDrawerLoading: false });\r\n return true;\r\n })\r\n .catch((error) => {\r\n console.error(error);\r\n this.setState({ show: false });\r\n this.setState({ isDrawerLoading: false });\r\n this.props.handleServerError(true);\r\n return true;\r\n });\r\n }\r\n else{\r\n this.setState({ protectionType: \"floating\" });\r\n\r\n this.setState({ showSavedProtectionType: false });\r\n this.setState({ textAreaTexts: \"\" });\r\n this.setState({ readOnlyTextArea: \"\" });\r\n this.setState({ numOfProtectionTypes: \"-\"});\r\n this.setState({ activeProductId: \"\" });\r\n this.setState({ activePackageId: \"\" });\r\n } \r\n\r\n // console.log(this.state.packagesData[this.state.packagesData.findIndex(x => x.Id == productId)]);\r\n // console.log(this.state.readOnlyTextArea);\r\n\r\n }\r\n\r\n handleChangeMachineCodeInput = (event) => {\r\n this.setState({ textAreaTexts: event.target.value });\r\n }\r\n\r\n handleClearClick = () => {\r\n this.setState({ textAreaTexts: \"\"});\r\n this.setState({ errorProtectionTypeMessage: \"\" });\r\n }\r\n\r\n handleSavedProtectionTypeCodes = (res) => {\r\n this.setState({ textAreaTexts: \"\" });\r\n this.setState({ readOnlyTextArea: res.protectionTypeCodes.join('\\n') });\r\n this.setState({ numOfProtectionTypes: res.protectionTypeCodes.length + '/' + res.noOfLics });\r\n\r\n this.handleUpdateProtectionTypeState(this.state.activeProductId, res.protectionTypeCodes);\r\n\r\n this.setState(prevState => ({\r\n packagesDataCustom: prevState.packagesDataCustom.map(innerArray =>\r\n innerArray.map(item =>\r\n item.Id === this.state.activeProductId ? { ...item, protectionTypeCodes: res.protectionTypeCodes } : item\r\n )\r\n )\r\n }));\r\n \r\n\r\n // Show Protection type saved\r\n this.setState({ showSavedProtectionType: true });\r\n setTimeout(() => {\r\n this.setState({ showSavedProtectionType: false });\r\n }, 3000); // Display for 3 seconds\r\n }\r\n\r\n handleErrorSavedProtectionTypeCodes = (errorMessage) => {\r\n this.setState({ errorProtectionTypeMessage: errorMessage });\r\n }\r\n\r\n render() {\r\n return (\r\n <div className=\"container accountContainer accountMainContainer\">\r\n <NavSide email={this.state.email} />\r\n {this.state.ExpiresInDays ? (\r\n <div id=\"divWarning\">\r\n <button\r\n id=\"x\"\r\n onClick={(event) => this.setState({ ExpiresInDays: undefined })}\r\n >\r\n X\r\n </button>\r\n {intl.get(\"Account_Subscription_Expires_In_Days\", {\r\n subscriptionId: this.state.ExpiresInSubscription,\r\n days: this.state.ExpiresInDays,\r\n })}\r\n </div>\r\n ) : null} \r\n {this.state.tabsEnterKey === \"packages\" ?\r\n <LicensePackages\r\n isSubscriptionDataLoading={this.state.isSubscriptionDataLoading}\r\n isDataLoading={this.state.isDataLoading}\r\n packagesDataCustom={this.state.packagesDataCustom}\r\n dictionaryOfSites={this.state.dictionaryOfSites}\r\n handleShowLogs={this.handleShowLogs}\r\n handlelogsToDisplay={this.handlelogsToDisplay}\r\n handlelogsAccessGUID={this.handlelogsAccessGUID}\r\n addingParamToPass={this.addingParamToPass}\r\n calcTotal={this.calcTotal}\r\n calcAvailable={this.calcAvailable}\r\n calcUsed={this.calcUsed}\r\n toggleDrawer={this.toggleDrawer}\r\n props={this.state}\r\n /> :\r\n <CloudProcessing\r\n iscloudProcessingPackagesLoading={this.state.iscloudProcessingPackagesLoading}\r\n cloudProcessingPackages={this.state.cloudProcessingPackages}\r\n isCloudProcessingDataLoading={this.state.isCloudProcessingDataLoading}\r\n cloudProcessingData={this.state.cloudProcessingData}\r\n calcAvailable={this.calcAvailable}\r\n calcUsed={this.calcUsed}\r\n props={this.props}\r\n refreshData={this.refreshData}\r\n changeSpinRefreshIcon={this.changeSpinRefreshIcon}\r\n spinRefreshIcon={this.state.spinRefreshIcon}\r\n />}\r\n \r\n <Modal\r\n show={this.state.show}\r\n onHide={this.handleClose}\r\n size=\"sm\"\r\n animation={false}\r\n aria-labelledby=\"contained-modal-title-vcenter\"\r\n centered=\"true\"\r\n >\r\n <Modal.Header closeButton>\r\n <Modal.Title\r\n className=\"modalTitle\"\r\n id=\"contained-modal-title-vcenter\"\r\n >\r\n {this.state.checkedItems.get(\r\n this.state.autoRenewCheckboxSubscriptionId\r\n )\r\n ? intl.get(\"Account_Turning_Off_Auto_Renew_Title\")\r\n : intl.get(\"Account_Turning_On_Auto_Renew_Title\")}\r\n </Modal.Title>\r\n </Modal.Header>\r\n <Modal.Body>\r\n <p>\r\n {this.state.checkedItems.get(\r\n this.state.autoRenewCheckboxSubscriptionId\r\n )\r\n ? intl.get(\"Account_Turning_Off_Auto_Renew_Description\")\r\n : intl.get(\"Account_Turning_On_Auto_Renew_Description\")}\r\n </p>\r\n </Modal.Body>\r\n <Modal.Footer>\r\n <Button variant=\"secondary\" onClick={this.handleClose}>\r\n Close\r\n </Button>\r\n <Button\r\n className=\"ModalButtonClass\"\r\n variant=\"primary\"\r\n onClick={this.handleSubmitClose}\r\n >\r\n {this.state.checkedItems.get(\r\n this.state.autoRenewCheckboxSubscriptionId\r\n )\r\n ? intl.get(\"Account_Turn_Off_Button\")\r\n : intl.get(\"Account_Turn_On_Button\")}\r\n </Button>\r\n </Modal.Footer>\r\n </Modal>\r\n\r\n <Modal \r\n show={this.state.showLogs} \r\n onHide={this.closeLogsDialog}\r\n animation={false}\r\n aria-labelledby=\"example-modal-sizes-title-lg\"\r\n centered=\"true\"\r\n id=\"logsPopupModal\"\r\n size='lg'\r\n dialogAs={DraggableModalDialog}\r\n >\r\n <Modal.Header id=\"header\">\r\n <button type=\"button\" class=\"close\"><span aria-hidden=\"true\" onClick={this.closeLogsDialog}>×</span><span class=\"sr-only\">Close</span></button>\r\n <Modal.Title className=\"modalTitle\" id=\"example-modal-sizes-title-lg\">Logs</Modal.Title>\r\n </Modal.Header>\r\n <Modal.Body>\r\n <div className=\"modalBodyHeader\">\r\n <span>GigaPixel Transaction</span>\r\n <span className=\"floatRight\"><Link onClick={(e) => { this.exportToCsv(\"reports.csv\"); e.preventDefault();}} to=\"\">Download as CSV</Link></span>\r\n </div>\r\n <table>\r\n <thead>\r\n <tr>\r\n <th>Access Token</th>\r\n <th>Date</th>\r\n <th>Total</th>\r\n <th>Available</th>\r\n <th>Used</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {\r\n this.state.logsToDisplay.map((row, j) => {\r\n return (\r\n <tr key={j}>\r\n <td className=\"row1OfPopupLogs\">{this.state.logsAccessGUID}</td>\r\n <td className=\"row2OfPopupLogs\">\r\n {\r\n this.convert_server_dt_format(row.Time)\r\n }\r\n </td>\r\n <td className=\"row3OfPopupLogs\">\r\n {this.IsJsonString(row.Message) ?\r\n (parseFloat(JSON.parse(row.Message).GP) && parseFloat(JSON.parse(row.Message).GPLeft)) \r\n ? (parseFloat(JSON.parse(row.Message).GP) + parseFloat(JSON.parse(row.Message).GPLeft))\r\n : parseFloat(JSON.parse(row.Message).GPLeft).toFixed(2)\r\n : \"\"}\r\n </td>\r\n <td className=\"row4OfPopupLogs\">{this.IsJsonString(row.Message) ? parseFloat(JSON.parse(row.Message).GPLeft).toFixed(2) : \"\"}</td>\r\n <td className=\"row5OfPopupLogs\">{this.IsJsonString(row.Message) ? parseFloat(JSON.parse(row.Message).GP) ? parseFloat(JSON.parse(row.Message).GP).toFixed(2) : \"-\" : \"\"}</td>\r\n </tr>\r\n );\r\n })\r\n }\r\n </tbody>\r\n </table>\r\n </Modal.Body>\r\n <Modal.Footer>\r\n <Button className=\"ModalButtonClass\" variant=\"primary\" onClick={this.closeLogsDialog}>\r\n Close\r\n </Button>\r\n </Modal.Footer>\r\n </Modal>\r\n <ProtectionTypeDrawer\r\n openDrawer={this.state.openDrawer}\r\n toggleDrawer={this.toggleDrawer}\r\n protectionType={this.state.protectionType}\r\n readOnlyTextArea={this.state.readOnlyTextArea}\r\n numOfProtectionTypes={this.state.numOfProtectionTypes}\r\n showSavedProtectionType={this.state.showSavedProtectionType}\r\n textAreaTexts={this.state.textAreaTexts}\r\n handleChangeMachineCodeInput={this.handleChangeMachineCodeInput}\r\n handleClearClick={this.handleClearClick}\r\n errorProtectionTypeMessage={this.state.errorProtectionTypeMessage}\r\n protectionTypeState={this.state.packagesData !== undefined && this.state.packagesData.length > 0 && this.state.activeProductId != \"\" ? this.state.packagesData[this.state.packagesData.findIndex(x => x.Id === this.state.activeProductId)].protectionTypeCodes.filter(str => str !== \"\") : 0}\r\n productId={this.state.activeProductId}\r\n packageId={this.state.activePackageId}\r\n handleErrorSavedProtectionTypeCodes={this.handleErrorSavedProtectionTypeCodes}\r\n handleSavedProtectionTypeCodes={this.handleSavedProtectionTypeCodes}\r\n isDrawerLoading={this.state.isDrawerLoading}\r\n isTrustedCustomer={this.state.isTrustedCustomer}\r\n toggleDrawerFromURL={this.state.toggleDrawerFromURL}\r\n >\r\n </ProtectionTypeDrawer>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nexport default Account;\r\n","import React from \"react\";\r\nimport \"./NotFound.css\";\r\n\r\nexport default () => (\r\n <div className=\"NotFound\">\r\n <h3>Sorry, page not found!</h3>\r\n </div>\r\n);\r\n","import React from \"react\";\r\nimport { Route, Redirect } from \"react-router-dom\";\r\n\r\nexport default ({ component: C, props: cProps, ...rest }) => {\r\n return (\r\n <Route\r\n {...rest}\r\n render={props =>\r\n cProps.isLoggedIn || (cProps.isSubLoginType && props.match.path === \"/PMProjects/newPMProject\") ? (\r\n <C {...props} {...cProps} />\r\n ) : (\r\n <Redirect\r\n to={`/signIn?redirect=${props.location.pathname}${\r\n props.location.search\r\n }${props.location.hash}`}\r\n />\r\n )\r\n }\r\n />\r\n )\r\n};\r\n","import React from \"react\";\r\nimport { Route, Redirect } from \"react-router-dom\";\r\n\r\nfunction querystring(name, url = window.location.href) {\r\n name = name.replace(/[[]]/g, \"\\\\$&\");\r\n\r\n const regex = new RegExp(\"[?&]\" + name + \"(=([^&#]*)|&|#|$)\", \"i\");\r\n const results = regex.exec(url);\r\n\r\n if (!results) {\r\n return null;\r\n }\r\n if (!results[2]) {\r\n return \"\";\r\n }\r\n\r\n return decodeURIComponent(results[2].replace(/\\+/g, \" \"));\r\n}\r\n\r\nexport default ({ component: C, props: cProps, ...rest }) => {\r\n const redirect = querystring(\"redirect\");\r\n return (\r\n <Route\r\n {...rest}\r\n render={props =>\r\n !cProps.isLoggedIn ? (\r\n <C {...props} {...cProps} />\r\n ) : (\r\n <Redirect\r\n to={\r\n redirect === \"\" || redirect === null\r\n ? \"/\"\r\n : redirect + window.location.hash\r\n }\r\n />\r\n )\r\n }\r\n />\r\n );\r\n};\r\n","import React, { Component } from \"react\";\r\nimport intl from \"react-intl-universal\";\r\nimport LoaderButton from \"./LoaderButton\";\r\nimport DivsPattern from \"./skylineDesignPattern\";\r\n\r\nclass ForgotPassword extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n email: \"\",\r\n isFPForm: true,\r\n isEmailFailed: false,\r\n isLoading: false\r\n };\r\n }\r\n\r\n validateForm() {\r\n return this.state.email.length > 0;\r\n }\r\n\r\n handleSubmit = event => {\r\n event.preventDefault();\r\n this.setState({ isLoading: true });\r\n\r\n fetch(process.env.REACT_APP_API_URL + \"changePasswordRequest\", {\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\"\r\n },\r\n body: JSON.stringify({\r\n Email: this.state.email\r\n })\r\n })\r\n .then(res => res.json())\r\n .then(result => {\r\n if (result.Result.toString().toLowerCase() === \"success\") {\r\n this.setState({ isFPForm: false });\r\n this.setState({ isLoading: false });\r\n } else {\r\n this.setState({ isEmailFailed: true });\r\n this.setState({ isLoading: false });\r\n }\r\n })\r\n .catch(error => {\r\n console.error(error);\r\n this.props.handleServerError(true);\r\n });\r\n };\r\n\r\n renderForgotPasswordForm() {\r\n return (\r\n <DivsPattern headerText={intl.get(\"Forgot_Password_Title\")}>\r\n <form className=\"form-signin\" onSubmit={this.handleSubmit}>\r\n <div className=\"form-label-group\">\r\n <input\r\n type=\"email\"\r\n onChange={event => this.setState({ email: event.target.value })}\r\n className=\"form-control\"\r\n placeholder={intl.get(\"Eamil_Address_Test\")}\r\n value={this.state.email}\r\n autoFocus\r\n required\r\n />\r\n </div>\r\n <LoaderButton\r\n className=\"btn-lg btn btn-primary btn-block btn-login text-uppercase font-weight-bold mb-2 btn-login\"\r\n type=\"submit\"\r\n text={intl.get(\"Send\")}\r\n isLoading={this.state.isLoading}\r\n loadingText={intl.get(\"Sending_An_Email\")}\r\n />\r\n </form>\r\n {this.state.isEmailFailed ? (\r\n <div id=\"divError\">\r\n <span style={{ color: \"red\" }}>\r\n {intl.get(\"Forgot_Password_Failed_To_Send\")}\r\n </span>\r\n </div>\r\n ) : null}\r\n </DivsPattern>\r\n );\r\n }\r\n\r\n renderCheckYourEmail() {\r\n return (\r\n <DivsPattern headerText={intl.get(\"Forgot_Password_Title\")}>\r\n <div className=\"form-label-group\">\r\n <p>\r\n {intl.get(\"Forgot_Password_Email\", { email: this.state.email })}\r\n </p>\r\n <div className=\"text-center\">\r\n <LoaderButton\r\n className=\"small ResendButton\"\r\n text={intl.get(\"Forgot_Password_Resend\")}\r\n href=\"#\"\r\n isLoading={this.state.isLoading}\r\n onClick={this.handleSubmit}\r\n loadingText={intl.get(\"Resending_An_Email\")}\r\n />\r\n </div>\r\n </div>\r\n </DivsPattern>\r\n );\r\n }\r\n\r\n render() {\r\n return this.state.isFPForm\r\n ? this.renderForgotPasswordForm()\r\n : this.renderCheckYourEmail();\r\n }\r\n}\r\n\r\nexport default ForgotPassword;\r\n","import React, { Component } from \"react\";\r\nimport intl from \"react-intl-universal\";\r\nimport DivsPattern from \"./skylineDesignPattern\";\r\n\r\nclass ContactSkyline extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n \r\n };\r\n } \r\n\r\n render() {\r\n return (\r\n <DivsPattern headerText={intl.get(\"Contact_Skyline_Title\")} className=\"contactSkyline\">\r\n <div className=\"form-label-group\">\r\n <p>\r\n {intl.get(\"Contact_Skyline_Content\")}\r\n </p> \r\n </div>\r\n </DivsPattern>\r\n );\r\n }\r\n}\r\n\r\nexport default ContactSkyline;\r\n","import React, { Component } from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\nimport ScrollableAnchor from \"react-scrollable-anchor\";\r\nimport intl from \"react-intl-universal\";\r\nimport { configureAnchors } from \"react-scrollable-anchor\";\r\nimport \"./pricing.css\";\r\n\r\nclass Pricing extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n isLoading: false,\r\n handle_buy_error: false,\r\n handle_buy_error_message: \"\",\r\n extenstion_single_User_checkbox: false,\r\n extension_small_Business_checkbox: false,\r\n extension_Enterprise_checkbox: false,\r\n single_user_packages: [\r\n {\r\n package_id: \"110\",\r\n package_time: intl.get(\"pricing_Yearly\"),\r\n package_price: \"1000\"\r\n },\r\n {\r\n package_id: \"111\",\r\n package_time: intl.get(\"pricing_Monthly\"),\r\n package_price: \"100\"\r\n }\r\n ],\r\n small_business_packages: [\r\n {\r\n package_id: \"113\",\r\n package_time: intl.get(\"pricing_Yearly\"),\r\n package_price: \"5000\"\r\n },\r\n {\r\n package_id: \"115\",\r\n package_time: intl.get(\"pricing_Monthly\"),\r\n package_price: \"500\"\r\n }\r\n ],\r\n enterprise_packages: [\r\n {\r\n package_id: \"117\",\r\n package_time: intl.get(\"pricing_Yearly\"),\r\n package_price: \"25000\"\r\n },\r\n {\r\n package_id: \"119\",\r\n package_time: intl.get(\"pricing_Monthly\"),\r\n package_price: \"2500\"\r\n }\r\n ],\r\n single_user_selected: {\r\n package_price: \"1000\",\r\n package_time: intl.get(\"pricing_Yearly\"),\r\n package_id: \"110\"\r\n },\r\n small_business_selected: {\r\n package_price: \"5000\",\r\n package_time: intl.get(\"pricing_Yearly\"),\r\n package_id: \"113\"\r\n },\r\n enterpriser_selected: {\r\n package_price: \"25000\",\r\n package_time: intl.get(\"pricing_Yearly\"),\r\n package_id: \"117\"\r\n }\r\n };\r\n\r\n configureAnchors({ offset: -200, scrollDuration: 0 });\r\n }\r\n\r\n componentDidMount() {\r\n var regExp = /[?&]checkoutPlanId[=]([^&]+)(&|$)/gi;\r\n var match = regExp.exec(window.location.search);\r\n if (match != null) {\r\n this.fetchBuyNow(match[1]);\r\n }\r\n }\r\n\r\n selectedSingleUserChanged = event => {\r\n this.setSingleUserSelected(\r\n event.target.checked\r\n ? intl.get(\"pricing_Monthly\")\r\n : intl.get(\"pricing_Yearly\"),\r\n this.state.extenstion_single_User_checkbox\r\n );\r\n };\r\n\r\n extenstion_single_User_checkbox_changed = event => {\r\n this.setState({\r\n extenstion_single_User_checkbox: event.target.checked\r\n });\r\n\r\n this.setSingleUserSelected(\r\n this.state.single_user_selected.package_time,\r\n event.target.checked\r\n );\r\n };\r\n\r\n setSingleUserSelected = (package_time, extensionIncluded) => {\r\n var selected_package = {};\r\n if (extensionIncluded) {\r\n if (package_time === intl.get(\"pricing_Yearly\")) {\r\n selected_package.package_id = \"109\";\r\n selected_package.package_time = intl.get(\"pricing_Yearly\");\r\n selected_package.package_price = \"2500\"; // If Yearly and extension included\r\n } else {\r\n selected_package.package_id = \"112\";\r\n selected_package.package_time = intl.get(\"pricing_Monthly\");\r\n selected_package.package_price = \"250\"; // If mothly and extension included\r\n }\r\n } else {\r\n // Extension not included\r\n if (package_time === intl.get(\"pricing_Yearly\")) {\r\n selected_package.package_id = \"110\";\r\n selected_package.package_time = intl.get(\"pricing_Yearly\");\r\n selected_package.package_price = \"1000\"; // If Yearly without extension\r\n } else {\r\n selected_package.package_id = \"111\";\r\n selected_package.package_time = intl.get(\"pricing_Monthly\");\r\n selected_package.package_price = \"100\"; // If mothly without extension\r\n }\r\n }\r\n\r\n this.setState({\r\n single_user_selected: {\r\n package_price: selected_package.package_price,\r\n package_time: selected_package.package_time,\r\n package_id: selected_package.package_id\r\n }\r\n });\r\n };\r\n\r\n selectedSmallBusinessChanged = event => {\r\n this.setSmallBusinessSelected(\r\n event.target.checked\r\n ? intl.get(\"pricing_Monthly\")\r\n : intl.get(\"pricing_Yearly\"),\r\n this.state.extension_small_Business_checkbox\r\n );\r\n };\r\n\r\n extenstion_small_business_checkbox_changed = event => {\r\n this.setState({\r\n extension_small_Business_checkbox: event.target.checked\r\n });\r\n\r\n this.setSmallBusinessSelected(\r\n this.state.small_business_selected.package_time,\r\n event.target.checked\r\n );\r\n };\r\n\r\n setSmallBusinessSelected = (package_time, extensionIncluded) => {\r\n var selected_package = {};\r\n if (extensionIncluded) {\r\n if (package_time === intl.get(\"pricing_Yearly\")) {\r\n selected_package.package_id = \"114\";\r\n selected_package.package_time = intl.get(\"pricing_Yearly\");\r\n selected_package.package_price = \"8000\"; // If Yearly and extension included\r\n } else {\r\n selected_package.package_id = \"116\";\r\n selected_package.package_time = intl.get(\"pricing_Monthly\");\r\n selected_package.package_price = \"800\"; // If mothly and extension included\r\n }\r\n } else {\r\n // Extension not included\r\n if (package_time === intl.get(\"pricing_Yearly\")) {\r\n selected_package.package_id = \"113\";\r\n selected_package.package_time = intl.get(\"pricing_Yearly\");\r\n selected_package.package_price = \"5000\"; // If Yearly without extension\r\n } else {\r\n selected_package.package_id = \"115\";\r\n selected_package.package_time = intl.get(\"pricing_Monthly\");\r\n selected_package.package_price = \"500\"; // If mothly without extension\r\n }\r\n }\r\n\r\n this.setState({\r\n small_business_selected: {\r\n package_price: selected_package.package_price,\r\n package_time: selected_package.package_time,\r\n package_id: selected_package.package_id\r\n }\r\n });\r\n };\r\n\r\n selectedEnterpriseChanged = event => {\r\n this.setEnterpriseSelected(\r\n event.target.checked\r\n ? intl.get(\"pricing_Monthly\")\r\n : intl.get(\"pricing_Yearly\"),\r\n this.state.extension_Enterprise_checkbox\r\n );\r\n };\r\n\r\n extenstion_enterprise_checkbox_changed = event => {\r\n this.setState({\r\n extension_Enterprise_checkbox: event.target.checked\r\n });\r\n\r\n this.setEnterpriseSelected(\r\n this.state.enterpriser_selected.package_time,\r\n event.target.checked\r\n );\r\n };\r\n\r\n setEnterpriseSelected = (package_time, extensionIncluded) => {\r\n var selected_package = {};\r\n if (extensionIncluded) {\r\n if (package_time === intl.get(\"pricing_Yearly\")) {\r\n selected_package.package_id = \"118\";\r\n selected_package.package_time = intl.get(\"pricing_Yearly\");\r\n selected_package.package_price = \"32000\"; // If Yearly and extension included\r\n } else {\r\n selected_package.package_id = \"120\";\r\n selected_package.package_time = intl.get(\"pricing_Monthly\");\r\n selected_package.package_price = \"3200\"; // If mothly and extension included\r\n }\r\n } else {\r\n // Extension not included\r\n if (package_time === intl.get(\"pricing_Yearly\")) {\r\n selected_package.package_id = \"117\";\r\n selected_package.package_time = intl.get(\"pricing_Yearly\");\r\n selected_package.package_price = \"25000\"; // If Yearly without extension\r\n } else {\r\n selected_package.package_id = \"119\";\r\n selected_package.package_time = intl.get(\"pricing_Monthly\");\r\n selected_package.package_price = \"2500\"; // If mothly without extension\r\n }\r\n }\r\n\r\n this.setState({\r\n enterpriser_selected: {\r\n package_price: selected_package.package_price,\r\n package_time: selected_package.package_time,\r\n package_id: selected_package.package_id\r\n }\r\n });\r\n };\r\n\r\n handleBuyNow = (event, planID, isFreeTrialSelected) => {\r\n event.preventDefault();\r\n this.fetchBuyNow(planID, isFreeTrialSelected);\r\n };\r\n\r\n fetchBuyNow = (planID, isFreeTrialSelected) => {\r\n this.setState({ isLoading: true });\r\n\r\n if (this.props.props.isLoggedIn) {\r\n var testFlag = window.location.search.match(/[?&]test[=]1/gi) !== null;\r\n fetch(\r\n process.env.REACT_APP_API_URL +\r\n \"CheckoutPlan?planId=\" +\r\n planID +\r\n (testFlag ? \"&test=1\" : \"\"),\r\n {\r\n method: \"GET\",\r\n credentials: \"include\",\r\n headers: {\r\n \"Content-Type\": \"application/json\"\r\n }\r\n }\r\n )\r\n .then(res => {\r\n if (res.ok) {\r\n return res;\r\n } else {\r\n throw Error(`Request rejected with status ${res.status}`);\r\n }\r\n })\r\n .then(res => res.json())\r\n .then(result => {\r\n if (result.Result.toLowerCase() === \"success\") {\r\n window.location = result.RedirectUrl;\r\n } else {\r\n this.setState({ handle_buy_error: true });\r\n this.setState({ handle_buy_error_message: result.Message });\r\n this.setState({ isLoading: false });\r\n }\r\n })\r\n .catch(error => {\r\n console.error(error);\r\n if (error.message.includes(\"401\"))\r\n window.location =\r\n window.location.origin +\r\n \"/store/signIn/?redirect=\" +\r\n escape(\"/atlasUs/pricing?checkoutPlanId=\" + planID);\r\n else this.props.props.handleServerError(true);\r\n });\r\n } else {\r\n if (isFreeTrialSelected) {\r\n window.location =\r\n window.location.origin +\r\n \"/store/signUp/?redirect=\" +\r\n escape(\"/atlasUs/pricing?checkoutPlanId=\" + planID);\r\n } else {\r\n window.location =\r\n window.location.origin +\r\n \"/store/signIn/?redirect=\" +\r\n escape(\"/atlasUs/pricing?checkoutPlanId=\" + planID);\r\n }\r\n }\r\n };\r\n\r\n render() {\r\n if (this.state.isLoading) {\r\n return (\r\n <div className=\"cssload-loader cssload-pricingLoader\">\r\n <div className=\"cssload-square cssload-square--main\">\r\n <div className=\"cssload-square cssload-square--mini\" />\r\n <div className=\"cssload-square cssload-square--mini\" />\r\n <div className=\"cssload-square cssload-square--mini\" />\r\n <div className=\"cssload-square cssload-square--mini\" />\r\n <div className=\"cssload-square cssload-square--mini\" />\r\n <div className=\"cssload-square cssload-square--mini\" />\r\n <div className=\"cssload-square cssload-square--mini\" />\r\n <div className=\"cssload-square cssload-square--mini\" />\r\n <div className=\"cssload-square cssload-square--mini\" />\r\n <div className=\"cssload-square cssload-square--mini\" />\r\n <div className=\"cssload-square cssload-square--mini\" />\r\n <div className=\"cssload-square cssload-square--mini\" />\r\n <div className=\"cssload-square cssload-square--mini\" />\r\n <div className=\"cssload-square cssload-square--mini\" />\r\n <div className=\"cssload-square cssload-square--mini\" />\r\n <div className=\"cssload-square cssload-square--mini\" />\r\n </div>\r\n </div>\r\n );\r\n // return <div className=\"loader\" />;\r\n }\r\n return (\r\n <div className=\"row no-gutter\">\r\n <ScrollableAnchor id={\"pricingHeader\"}>\r\n <div className=\"container pricingContainer\">\r\n <h3 className=\"pricing_mini_title\">Skyline Atlas US</h3>\r\n {this.state.handle_buy_error ? (\r\n <div id=\"divWarning\" style={{ marginBottom: \"30px\" }}>\r\n <button\r\n id=\"x\"\r\n onClick={event => this.setState({ handle_buy_error: false })}\r\n >\r\n X\r\n </button>\r\n {this.state.handle_buy_error_message}\r\n </div>\r\n ) : null}\r\n <div className=\"row\">\r\n <div className=\"col-md-4 col-sm-6\">\r\n <div className=\"pricingTable\">\r\n <h3 className=\"title\">\r\n {intl.get(\"pricing_plan_Single_User\")}\r\n </h3>\r\n <div className=\"price-value\">\r\n <div className=\"price-value-mount\">\r\n <span className=\"amount\">\r\n <span className=\"currency\">$ {\" \"}</span>\r\n {this.state.single_user_selected.package_price}{\" \"}\r\n </span>\r\n <span style={{ color: \"white\" }}>\r\n {this.state.single_user_selected.package_time ===\r\n intl.get(\"pricing_Yearly\")\r\n ? \" / Year\"\r\n : \" / Month\"}\r\n </span>\r\n </div>\r\n <div>\r\n <label className=\"planPeriodLabelClass\">\r\n {intl.get(\"pricing_Yearly\")}\r\n </label>\r\n <label className=\"switch\">\r\n <input\r\n type=\"checkbox\"\r\n onChange={this.selectedSingleUserChanged}\r\n />\r\n <span className=\"slider round\" />\r\n </label>\r\n <label className=\"planPeriodLabelClass\">\r\n {intl.get(\"pricing_Monthly\")}\r\n </label>\r\n {/* <select\r\n className=\"price-select\"\r\n onChange={this.selectedSingleUserChanged}\r\n >\r\n {this.state.single_user_packages.map(packageGroup => {\r\n return (\r\n <option\r\n className=\"price-option\"\r\n key={packageGroup.package_id}\r\n value={packageGroup.package_price}\r\n >\r\n {packageGroup.package_time}\r\n </option>\r\n );\r\n })}\r\n </select> */}\r\n </div>\r\n <div className=\"minimumMonths\">\r\n <span>\r\n {this.state.single_user_selected.package_id === \"111\" ||\r\n this.state.single_user_selected.package_id === \"112\"\r\n ? \"minimum 3 months\"\r\n : null}\r\n </span>\r\n </div>\r\n </div>\r\n <ul className=\"pricing-content text-left\">\r\n <li className=\"pricing_package_content\">\r\n {intl.get(\"Pricing_Skyline_Atlas_PackageOne_User\")}\r\n </li>\r\n <div className=\"pricingDivSpace\" />\r\n <div className=\"pricing-checkbox custom-checkbox mb-3\">\r\n <input\r\n type=\"checkbox\"\r\n defaultChecked={\r\n this.state.extenstion_single_User_checkbox\r\n }\r\n onChange={event =>\r\n this.extenstion_single_User_checkbox_changed(event)\r\n }\r\n className=\"custom-control-input\"\r\n id=\"extenstion_single_User_checkbox\"\r\n />\r\n <label\r\n className=\"custom-control-label customControlLabel\"\r\n htmlFor=\"extenstion_single_User_checkbox\"\r\n >\r\n <b>{intl.get(\"publishing_extension\")}</b>\r\n </label>\r\n <li className=\"vCheckHidden\">\r\n {intl.get(\"publishing_package_single_user_TEP\")}\r\n </li>\r\n <li className=\"vCheckHidden\">\r\n {intl.get(\r\n \"publishing_paclage_single_user_upload_stotrage\"\r\n )}\r\n </li>\r\n </div>\r\n </ul>\r\n <div>\r\n {/* <a\r\n href=\"#\"\r\n className=\"pricingTable-signup pricingTable-WithFreeTrial\"\r\n >\r\n FREE TRIAL\r\n </a> */}\r\n <button\r\n onClick={event => {\r\n if (this.state.single_user_selected.package_id == \"109\")\r\n this.handleBuyNow(event, \"123\", true);\r\n if (this.state.single_user_selected.package_id == \"110\")\r\n this.handleBuyNow(event, \"122\", true);\r\n if (this.state.single_user_selected.package_id == \"111\")\r\n this.handleBuyNow(event, \"124\", true);\r\n if (this.state.single_user_selected.package_id == \"112\")\r\n this.handleBuyNow(event, \"125\", true);\r\n }}\r\n className=\"pricingTable-signup pricingTable-WithFreeTrial\"\r\n >\r\n Free 7-day trial\r\n </button>\r\n <button\r\n onClick={event => {\r\n this.handleBuyNow(\r\n event,\r\n this.state.single_user_selected.package_id\r\n );\r\n }}\r\n className=\"pricingTable-signup\"\r\n >\r\n {intl.get(\"pricing_Buy_Now\")}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div className=\"col-md-4 col-sm-6\">\r\n <div className=\"pricingTable\">\r\n <h3 className=\"title\">\r\n {intl.get(\"pricing_plan_Small_Buisness\")}\r\n </h3>\r\n <div className=\"price-value\">\r\n <div className=\"price-value-mount\">\r\n <span className=\"amount\">\r\n <span className=\"currency\">$</span>\r\n {this.state.small_business_selected.package_price}\r\n </span>\r\n <span style={{ color: \"white\" }}>\r\n {this.state.small_business_selected.package_time ===\r\n intl.get(\"pricing_Yearly\")\r\n ? \" / Year\"\r\n : \" / Month\"}\r\n </span>\r\n </div>\r\n <div>\r\n <label className=\"planPeriodLabelClass\">\r\n {intl.get(\"pricing_Yearly\")}\r\n </label>\r\n <label className=\"switch\">\r\n <input\r\n type=\"checkbox\"\r\n onChange={this.selectedSmallBusinessChanged}\r\n />\r\n <span className=\"slider round\" />\r\n </label>\r\n <label className=\"planPeriodLabelClass\">\r\n {intl.get(\"pricing_Monthly\")}\r\n </label>\r\n {/* <select\r\n className=\"price-select\"\r\n onChange={this.selectedSmallBusinessChanged}\r\n >\r\n {this.state.small_business_packages.map(\r\n packageGroup => {\r\n return (\r\n <option\r\n className=\"price-option\"\r\n key={packageGroup.package_id}\r\n value={packageGroup.package_price}\r\n >\r\n {packageGroup.package_time}\r\n </option>\r\n );\r\n }\r\n )}\r\n </select> */}\r\n </div>\r\n <div className=\"minimumMonths\">\r\n <span>\r\n {this.state.small_business_selected.package_id ===\r\n \"115\" ||\r\n this.state.small_business_selected.package_id === \"116\"\r\n ? \"minimum 3 months\"\r\n : null}\r\n </span>\r\n </div>\r\n </div>\r\n <ul className=\"pricing-content text-left\">\r\n <li className=\"pricing_package_content\">\r\n {intl.get(\"Pricing_Skyline_Atlas_PackageTwo_User\")}\r\n </li>\r\n <li>{intl.get(\"publishing_package_small_business_TEP\")}</li>\r\n <li>\r\n {intl.get(\r\n \"publishing_package_small_business_upload_storage\"\r\n )}\r\n </li>\r\n <div className=\"pricingDivSpace\" />\r\n <div className=\"pricing-checkbox custom-checkbox mb-3\">\r\n <input\r\n type=\"checkbox\"\r\n defaultChecked={\r\n this.state.extension_small_Business_checkbox\r\n }\r\n onChange={event =>\r\n this.extenstion_small_business_checkbox_changed(event)\r\n }\r\n className=\"custom-control-input\"\r\n id=\"extension_small_Business_checkbox\"\r\n />\r\n <label\r\n className=\"custom-control-label customControlLabel\"\r\n htmlFor=\"extension_small_Business_checkbox\"\r\n >\r\n <b>{intl.get(\"publishing_extension\")}</b>\r\n </label>\r\n <li className=\"vCheckHidden\">\r\n {intl.get(\"publisher_extension_small_business_TEP\")}\r\n </li>\r\n <li className=\"vCheckHidden\">\r\n {intl.get(\r\n \"publisher_extension_small_business_upload_storage\"\r\n )}\r\n </li>\r\n </div>\r\n </ul>\r\n <button\r\n onClick={event => {\r\n this.handleBuyNow(\r\n event,\r\n this.state.small_business_selected.package_id\r\n );\r\n }}\r\n className=\"pricingTable-signup\"\r\n >\r\n {intl.get(\"pricing_Buy_Now\")}\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <div className=\"col-md-4 col-sm-6\">\r\n <div className=\"pricingTable\">\r\n <h3 className=\"title\">\r\n {intl.get(\"pricing_plan_Enterprise\")}\r\n </h3>\r\n <div className=\"price-value\">\r\n <div className=\"price-value-mount\">\r\n <span className=\"amount\">\r\n <span className=\"currency\">$</span>\r\n {this.state.enterpriser_selected.package_price}\r\n </span>\r\n <span style={{ color: \"white\" }}>\r\n {this.state.enterpriser_selected.package_time ===\r\n intl.get(\"pricing_Yearly\")\r\n ? \" / Year\"\r\n : \" / Month\"}\r\n </span>\r\n </div>\r\n <div>\r\n <label className=\"planPeriodLabelClass\">\r\n {intl.get(\"pricing_Yearly\")}\r\n </label>\r\n <label className=\"switch\">\r\n <input\r\n type=\"checkbox\"\r\n onChange={this.selectedEnterpriseChanged}\r\n />\r\n <span className=\"slider round\" />\r\n </label>\r\n <label className=\"planPeriodLabelClass\">\r\n {intl.get(\"pricing_Monthly\")}\r\n </label>\r\n {/* <select\r\n className=\"price-select\"\r\n onChange={this.selectedEnterpriseChanged}\r\n >\r\n {this.state.enterprise_packages.map(packageGroup => {\r\n return (\r\n <option\r\n className=\"price-option\"\r\n key={packageGroup.package_id}\r\n value={packageGroup.package_price}\r\n >\r\n {packageGroup.package_time}\r\n </option>\r\n );\r\n })}\r\n </select> */}\r\n </div>\r\n <div className=\"minimumMonths\">\r\n <span>\r\n {this.state.enterpriser_selected.package_id === \"119\" ||\r\n this.state.enterpriser_selected.package_id === \"120\"\r\n ? \"minimum 3 months\"\r\n : null}\r\n </span>\r\n </div>\r\n </div>\r\n <ul className=\"pricing-content text-left\">\r\n <li className=\"pricing_package_content\">\r\n {intl.get(\"Pricing_Skyline_Atlas_PackageThree_User\")}\r\n </li>\r\n <li>{intl.get(\"publishing_package_enterprise_TEP\")}</li>\r\n <li>\r\n {intl.get(\"publishing_package_enterprise_upload_storage\")}\r\n </li>\r\n <div className=\"pricingDivSpace\" />\r\n <div className=\"pricing-checkbox custom-checkbox mb-3\">\r\n <input\r\n type=\"checkbox\"\r\n defaultChecked={\r\n this.state.extension_Enterprise_checkbox\r\n }\r\n onChange={event =>\r\n this.extenstion_enterprise_checkbox_changed(event)\r\n }\r\n className=\"custom-control-input\"\r\n id=\"extension_Enterprise_checkbox\"\r\n />\r\n <label\r\n className=\"custom-control-label customControlLabel\"\r\n htmlFor=\"extension_Enterprise_checkbox\"\r\n >\r\n <b>{intl.get(\"publishing_extension\")}</b>\r\n </label>\r\n <li className=\"vCheckHidden\">\r\n {intl.get(\"publisher_enterprise_business_TEP\")}\r\n </li>\r\n <li className=\"vCheckHidden\">\r\n {intl.get(\r\n \"publisher_extension_enterprise_upload_storage\"\r\n )}\r\n </li>\r\n </div>\r\n </ul>\r\n <button\r\n onClick={event => {\r\n this.handleBuyNow(\r\n event,\r\n this.state.enterpriser_selected.package_id\r\n );\r\n }}\r\n className=\"pricingTable-signup\"\r\n >\r\n {intl.get(\"pricing_Buy_Now\")}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"FAQ_Pricing\">\r\n <h3>{intl.get(\"FAQ_What_Is_Skyline_US_Title\")}</h3>\r\n <p>{intl.get(\"FAQ_What_Is_Skyline_US_Content\")}</p>\r\n </div>\r\n <div className=\"FAQ_Pricing\">\r\n <h3>\r\n {intl.get(\"FAQ_Can_I_try_out_Skyline_Cloud_for_free_Title\")}\r\n </h3>\r\n <p>\r\n {intl.get(\"FAQ_Can_I_try_out_Skyline_Cloud_for_free_Content\")}\r\n </p>\r\n </div>\r\n <div className=\"FAQ_Pricing\">\r\n <h3>{intl.get(\"FAQ_How_To_Publish_Title\")}</h3>\r\n <p>{intl.get(\"FAQ_How_To_Publish_Content\")}</p>\r\n </div>\r\n <div className=\"FAQ_Pricing\">\r\n <h3>{intl.get(\"FAQ_Which_Package_is_Right_For_Me_Title\")}</h3>\r\n <p>\r\n {intl.get(\"FAQ_Which_Package_is_Right_For_Me_Content\")}\r\n <a href=\"support@skylinesoft.com\">support@skylinesoft.com</a>\r\n {intl.get(\"FAQ_Which_Package_is_Right_For_Me_Content_1\")}\r\n </p>\r\n </div>\r\n <div className=\"FAQ_Pricing\">\r\n <h3>{intl.get(\"FAQ_When_Subscription_End_Title\")}</h3>\r\n <p>{intl.get(\"FAQ_When_Subscription_End_Content\")}</p>\r\n </div>\r\n <div className=\"FAQ_Pricing\">\r\n <h3>{intl.get(\"FAQ_Upgrade_and_Downgrade_Title\")}</h3>\r\n <p>{intl.get(\"FAQ_Upgrade_and_Downgrade_Content\")}</p>\r\n </div>\r\n <div className=\"FAQ_Pricing\">\r\n <h3>{intl.get(\"FAQ_Search_For_Skyline_Atlas_Layers_Title\")}</h3>\r\n <p>{intl.get(\"FAQ_Search_For_Skyline_Atlas_Layers_Content\")}</p>\r\n </div>\r\n <div className=\"FAQ_Pricing\">\r\n <h3>{intl.get(\"FAQ_Which_US_Cities_Included_Title\")}</h3>\r\n <p>{intl.get(\"FAQ_Which_US_Cities_Included_Content\")}</p>\r\n </div>\r\n <div className=\"contact_Us_Pricing\">\r\n <h3>\r\n {intl.get(\"FAQ_Contact_US_Title\")}{\" \"}\r\n <Link\r\n to=\"/contactUs\"\r\n className=\"btn btn-outline-primary text-capitalize\"\r\n >\r\n {\" \"}\r\n {intl.get(\"FAQ_Contact_Us\")}\r\n </Link>\r\n </h3>\r\n </div>\r\n <div className=\"bottom_Spacing\" />\r\n </div>\r\n </ScrollableAnchor>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nexport default Pricing;\r\n","import React, { Component } from \"react\";\r\nimport {\r\n FormGroup,\r\n ControlLabel,\r\n FormControl,\r\n HelpBlock,\r\n Glyphicon,\r\n Jumbotron\r\n} from \"react-bootstrap\";\r\nimport intl from \"react-intl-universal\";\r\nimport LoaderButton from \"./LoaderButton\";\r\nimport DivsPattern from \"./skylineDesignPattern\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\nclass ResetPassword extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n email: \"\",\r\n password: \"\",\r\n confirmPassword: \"\",\r\n isConfirming: false,\r\n confirmed: false,\r\n failedMessage: \"\",\r\n isChangePasswordFailed: false,\r\n confirmedPasswordDisabled:true,\r\n passwordInputType: \"password\",\r\n confirmPasswordInputType: \"password\",\r\n };\r\n }\r\n\r\n validateResetForm() {\r\n var mediumRegex = new RegExp(\"^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#\\$%\\^&\\*])(?=.{8,})\");\r\n return (\r\n this.state.password.length > 0 &&\r\n this.state.password === this.state.confirmPassword &&\r\n mediumRegex.test(this.state.password)\r\n );\r\n }\r\n\r\n handleChange = event => {\r\n var mediumRegex = new RegExp(\"^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#\\$%\\^&\\*])(?=.{8,})\");\r\n if (event.target.id.includes(\"password\")){\r\n if (!mediumRegex.test(event.target.value)){\r\n this.setState({ isChangePasswordFailed: true ,confirmedPasswordDisabled:true});\r\n this.setState({ failedMessage: intl.get(\"Password_Illegal\") });\r\n }\r\n else{\r\n if(this.state.confirmPassword != event.target.value){\r\n this.setState({ isChangePasswordFailed: true, confirmedPasswordDisabled:false });\r\n this.setState({ failedMessage: intl.get(\"Password_Not_Match\") });\r\n }else{\r\n this.setState({ isChangePasswordFailed: false, confirmedPasswordDisabled:false });\r\n this.setState({ failedMessage: \"\" });\r\n }\r\n }\r\n }\r\n\r\n if (event.target.id.includes(\"confirmPassword\")){\r\n if (event.target.value !== this.state.password){\r\n this.setState({ isChangePasswordFailed: true });\r\n this.setState({ failedMessage: intl.get(\"Password_Not_Match\") });\r\n }\r\n else{\r\n if (!mediumRegex.test(event.target.value)){\r\n this.setState({ isChangePasswordFailed: true ,confirmedPasswordDisabled:true});\r\n this.setState({ failedMessage: intl.get(\"Password_Illegal\") });\r\n }\r\n else {\r\n this.setState({ isChangePasswordFailed: false });\r\n this.setState({ failedMessage: \"\" });\r\n }\r\n }\r\n }\r\n if (!event.target.id.includes(\"confirmPassword\") && !event.target.id.includes(\"newPassword\") ){\r\n if (event.target.value.length >= 8){\r\n this.setState({confirmedPasswordDisabled:false});\r\n }\r\n else{\r\n this.setState({confirmedPasswordDisabled:true});\r\n }\r\n }\r\n\r\n this.setState({\r\n [event.target.id]: event.target.value\r\n });\r\n };\r\n\r\n handleConfirmClick = async event => {\r\n event.preventDefault();\r\n const queryString = new URLSearchParams(this.props.location.search);\r\n const queryToken = queryString.get(\"token\");\r\n\r\n this.setState({ isConfirming: true });\r\n\r\n fetch(process.env.REACT_APP_API_URL + \"changePassword\", {\r\n method: \"POST\",\r\n credentials: \"include\",\r\n headers: {\r\n \"Content-Type\": \"application/json\"\r\n },\r\n body: JSON.stringify({\r\n newPassword: this.state.password,\r\n token: queryToken\r\n })\r\n })\r\n .then(res => res.json())\r\n .then(result => {\r\n if (result.Result.toLowerCase() === \"success\") {\r\n this.setState({ confirmed: true });\r\n this.setState({ isConfirming: false });\r\n } else {\r\n this.setState({ confirmed: false });\r\n this.setState({ isConfirming: false });\r\n\r\n if (result.Result === \"Validation\") {\r\n switch (result.Validations[0].ValidationCode.toString()) {\r\n case \"PasswordIllegal\":\r\n this.setState({ failedMessage: intl.get(\"Password_Illegal\") });\r\n break;\r\n default:\r\n this.setState({ failedMessage: intl.get(\"General_Failure\") });\r\n break;\r\n }\r\n } else this.setState({ failedMessage: intl.get(\"General_Failure\") });\r\n }\r\n })\r\n .catch(error => {\r\n console.error(error);\r\n this.setState({ isConfirming: false });\r\n this.props.handleServerError(true);\r\n });\r\n };\r\n\r\n renderConfirmationForm() {\r\n return (\r\n <DivsPattern headerText={intl.get(\"Change_Password_Title\")}>\r\n <form onSubmit={this.handleConfirmClick}>\r\n <FormGroup controlId=\"password\" className=\"form-label-group\">\r\n <FormControl\r\n type={this.state.passwordInputType}\r\n value={this.state.password}\r\n onChange={this.handleChange}\r\n placeholder={intl.get(\"New_Password\")}\r\n className=\"form-control\"\r\n required\r\n />\r\n <a\r\n onClick={(event) => {\r\n this.state.passwordInputType === \"password\"\r\n ? this.setState({ passwordInputType: \"text\" })\r\n : this.setState({ passwordInputType: \"password\" });\r\n }}\r\n >\r\n <i\r\n className={\r\n this.state.passwordInputType === \"password\"\r\n ? \"fa fa-eye-slash fa-flip-horizontal\"\r\n : \"fa fa-eye\"\r\n }\r\n style={{\r\n color: \"gray\",\r\n right: \"16px\",\r\n position: \"absolute\",\r\n top: \"17px\",\r\n }}\r\n aria-hidden=\"true\"\r\n />\r\n </a>\r\n </FormGroup>\r\n <FormGroup controlId=\"confirmPassword\" className=\"form-label-group\">\r\n <FormControl\r\n type={this.state.confirmPasswordInputType}\r\n onChange={this.handleChange}\r\n value={this.state.confirmPassword}\r\n placeholder={intl.get(\"Confirm_Password_Text\")}\r\n className=\"form-control\"\r\n disabled = {this.state.confirmedPasswordDisabled}\r\n required\r\n />\r\n <a\r\n onClick={(event) => {\r\n this.state.confirmPasswordInputType === \"password\"\r\n ? this.setState({ confirmPasswordInputType: \"text\" })\r\n : this.setState({ confirmPasswordInputType: \"password\" });\r\n }}\r\n >\r\n <i\r\n className={\r\n !this.state.confirmedPasswordDisabled ?\r\n this.state.confirmPasswordInputType === \"password\"\r\n ? \"fa fa-eye-slash fa-flip-horizontal\"\r\n : \"fa fa-eye\"\r\n : null\r\n }\r\n style={{\r\n color: \"gray\",\r\n right: \"16px\",\r\n position: \"absolute\",\r\n top: \"17px\",\r\n }}\r\n aria-hidden=\"true\"\r\n />\r\n </a>\r\n </FormGroup>\r\n <LoaderButton\r\n block\r\n type=\"submit\"\r\n className=\"btn btn-lg btn-primary btn-block btn-signin text-center\"\r\n bsSize=\"large\"\r\n text=\"Confirm\"\r\n loadingText=\"Confirm…\"\r\n isLoading={this.state.isConfirming}\r\n disabled={!this.validateResetForm()}\r\n />\r\n {(!this.state.confirmed || this.state.isChangePasswordFailed) ? (\r\n <div id=\"divError\">\r\n <span style={{ color: \"red\", whiteSpace:\"break-spaces\" }}>{this.state.failedMessage}</span>\r\n </div>\r\n ) : null}\r\n </form>\r\n </DivsPattern>\r\n );\r\n }\r\n\r\n renderSuccessMessage() {\r\n return (\r\n <DivsPattern headerText={intl.get(\"Forgot_Password_Title\")}>\r\n <div className=\"form-label-group\">\r\n <p>\r\n {intl.get(\"Forgot_Password_Successfully_Reset\") +\r\n \". \" +\r\n intl.get(\"Forgot_Password_Go_To_Account\")}\r\n </p>\r\n <div className=\"text-center\">\r\n <Link to=\"/signIn\">{intl.get(\"Sign_In\")}</Link>\r\n </div>\r\n </div>\r\n </DivsPattern>\r\n );\r\n }\r\n\r\n render() {\r\n return !this.state.confirmed\r\n ? this.renderConfirmationForm()\r\n : this.renderSuccessMessage();\r\n }\r\n}\r\n\r\nexport default ResetPassword;\r\n","import React, { Component } from \"react\";\r\nimport intl from \"react-intl-universal\";\r\nimport {\r\n FormGroup,\r\n FormControl,\r\n ControlLabel,\r\n HelpBlock\r\n} from \"react-bootstrap\";\r\nimport LoaderButton from \"./LoaderButton\";\r\nimport DivsPattern from \"./skylineDesignPattern\";\r\n\r\nclass ChangePassword extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n currentPassword: \"\",\r\n newPassword: \"\",\r\n confirmNewPassword: \"\",\r\n isChangePasswordFailed: false,\r\n failedMessage: \"\",\r\n isLoading: false,\r\n newPasswordDisabled:true,\r\n confirmedPasswordDisabled:true,\r\n passwordInputType: \"password\",\r\n newPasswordInputType: \"password\",\r\n confirmNewPasswordInputType: \"password\"\r\n };\r\n }\r\n\r\n validateForm() {\r\n var mediumRegex = new RegExp(\"^(((?=.*[a-z])(?=.*[A-Z]))((?=.*[a-z])(?=.*[0-9]))((?=.*[A-Z])(?=.*[0-9])))(?=.{8,})\");\r\n return (\r\n this.state.currentPassword.length > 0 &&\r\n this.state.newPassword.length > 0 && mediumRegex.test(this.state.newPassword) &&\r\n this.state.confirmNewPassword.length > 0 &&\r\n this.state.newPassword === this.state.confirmNewPassword\r\n );\r\n }\r\n\r\nhandleChange = event => {\r\n if (event.target.id.includes(\"newPassword\")){\r\n var mediumRegex = new RegExp(\"^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#\\$%\\^&\\*])(?=.{8,})\");\r\n if (!mediumRegex.test(event.target.value)){\r\n this.setState({ isChangePasswordFailed: true ,confirmedPasswordDisabled:true});\r\n this.setState({ failedMessage: intl.get(\"Password_Illegal\") });\r\n }\r\n else{\r\n this.setState({ isChangePasswordFailed: false, confirmedPasswordDisabled:false });\r\n }\r\n }\r\n if (event.target.id.includes(\"confirmNewPassword\")){\r\n if (event.target.value !== this.state.newPassword){\r\n this.setState({ isChangePasswordFailed: true });\r\n this.setState({ failedMessage: intl.get(\"Password_Not_Match\") });\r\n }\r\n else{\r\n this.setState({ isChangePasswordFailed: false });\r\n }\r\n }\r\n if (!event.target.id.includes(\"confirmNewPassword\") && !event.target.id.includes(\"newPassword\") ){\r\n if (event.target.value.length >= 8){\r\n this.setState({newPasswordDisabled:false});\r\n }\r\n else{\r\n this.setState({newPasswordDisabled:true,confirmedPasswordDisabled:true});\r\n }\r\n\r\n }\r\n \r\n this.setState({\r\n [event.target.id]: event.target.value\r\n });\r\n };\r\n\r\n handleSubmit = event => {\r\n event.preventDefault();\r\n\r\n this.setState({ isLoading: true });\r\n\r\n fetch(process.env.REACT_APP_API_URL + \"ChangePassword\", {\r\n method: \"POST\",\r\n credentials: \"include\",\r\n headers: {\r\n \"Content-Type\": \"application/json\"\r\n },\r\n body: JSON.stringify({\r\n oldPassword: this.state.currentPassword,\r\n newPassword: this.state.newPassword\r\n })\r\n })\r\n .then(res => res.json())\r\n .then(result => {\r\n if (result.Result == \"success\") {\r\n this.setState({ isChangePasswordFailed: false });\r\n this.setState({ isLoading: false });\r\n return this.props.history.push(\"/account\");\r\n } else {\r\n this.setState({ isChangePasswordFailed: true });\r\n if (result.Result === \"Validation\") {\r\n switch (result.Validations[0].ValidationCode.toString()) {\r\n case \"PasswordIllegal\":\r\n this.setState({ failedMessage: intl.get(\"Password_Illegal\") });\r\n break;\r\n default:\r\n this.setState({ failedMessage: intl.get(\"The_password_you_entered_is_incorrect\") });\r\n break;\r\n }\r\n } else this.setState({ failedMessage: intl.get(\"The_password_you_entered_is_incorrect\") });\r\n this.setState({ isLoading: false });\r\n }\r\n })\r\n .catch(error => {\r\n console.error(error);\r\n this.props.handleServerError(true);\r\n });\r\n };\r\n\r\n render() {\r\n return (\r\n <DivsPattern headerText={intl.get(\"Change_Password_Title\")}>\r\n <form className=\"form-signin\" onSubmit={this.handleSubmit}>\r\n <FormGroup controlId=\"currentPassword\" className=\"form-label-group\">\r\n <FormControl\r\n value={this.state.currentPassword}\r\n onChange={this.handleChange}\r\n value={this.state.password}\r\n type={this.state.passwordInputType}\r\n placeholder={intl.get(\"Current_Password\")}\r\n className=\"form-control\"\r\n required\r\n />\r\n <a\r\n onClick={(event) => {\r\n console.log(this.state.passwordInputType);\r\n this.state.passwordInputType === \"password\"\r\n ? this.setState({ passwordInputType: \"text\" })\r\n : this.setState({ passwordInputType: \"password\" });\r\n }\r\n }\r\n >\r\n <i\r\n className={\r\n this.state.passwordInputType === \"password\"\r\n ? \"fa fa-eye-slash fa-flip-horizontal\"\r\n : \"fa fa-eye\"\r\n }\r\n style={{\r\n color: \"gray\",\r\n right: \"16px\",\r\n position: \"absolute\",\r\n top: \"17px\",\r\n }}\r\n aria-hidden=\"true\"\r\n />\r\n </a>\r\n </FormGroup>\r\n <FormGroup controlId=\"newPassword\" className=\"form-label-group\">\r\n <FormControl\r\n value={this.state.newPassword}\r\n onChange={this.handleChange}\r\n type={this.state.newPasswordInputType}\r\n placeholder={intl.get(\"New_Password\")}\r\n className=\"form-control\"\r\n disabled = {this.state.newPasswordDisabled}\r\n required\r\n />\r\n <a\r\n onClick={(event) => {\r\n this.state.newPasswordInputType === \"password\"\r\n ? this.setState({ newPasswordInputType: \"text\" })\r\n : this.setState({ newPasswordInputType: \"password\" });\r\n }}\r\n >\r\n <i\r\n className={\r\n !this.state.newPasswordDisabled ? \r\n this.state.newPasswordInputType === \"password\"\r\n ? \"fa fa-eye-slash fa-flip-horizontal\"\r\n : \"fa fa-eye\"\r\n : null\r\n }\r\n style={{\r\n color: \"gray\",\r\n right: \"16px\",\r\n position: \"absolute\",\r\n top: \"17px\",\r\n }}\r\n aria-hidden=\"true\"\r\n />\r\n </a>\r\n </FormGroup>\r\n <FormGroup\r\n controlId=\"confirmNewPassword\"\r\n className=\"form-label-group\"\r\n >\r\n <FormControl\r\n value={this.state.confirmNewPassword}\r\n onChange={this.handleChange}\r\n type={this.state.confirmNewPasswordInputType}\r\n placeholder={intl.get(\"Confirm_Password_Text\")}\r\n className=\"form-control\"\r\n disabled = {this.state.confirmedPasswordDisabled}\r\n required\r\n />\r\n <a\r\n onClick={(event) => {\r\n this.state.confirmNewPasswordInputType === \"password\"\r\n ? this.setState({ confirmNewPasswordInputType: \"text\" })\r\n : this.setState({ confirmNewPasswordInputType: \"password\" });\r\n }}\r\n >\r\n <i\r\n className={\r\n !this.state.confirmedPasswordDisabled ? \r\n this.state.confirmNewPasswordInputType === \"password\"\r\n ? \"fa fa-eye-slash fa-flip-horizontal\"\r\n : \"fa fa-eye\"\r\n : null\r\n }\r\n style={{\r\n color: \"gray\",\r\n right: \"16px\",\r\n position: \"absolute\",\r\n top: \"17px\",\r\n }}\r\n aria-hidden=\"true\"\r\n />\r\n </a>\r\n </FormGroup>\r\n \r\n <LoaderButton\r\n block\r\n className=\"btn btn-lg btn-primary btn-block btn-login text-uppercase font-weight-bold mb-2\"\r\n disabled={!this.validateForm()}\r\n type=\"submit\"\r\n isLoading={this.state.isLoading}\r\n text={intl.get(\"Change_Password\")}\r\n loadingText={intl.get(\"Changing_Password\")}\r\n />\r\n {this.state.isChangePasswordFailed ? (\r\n <div id=\"divError\">\r\n <span style={{ color: \"red\", whiteSpace:\"break-spaces\"}}>{this.state.failedMessage}</span>\r\n </div>\r\n ) : null}\r\n </form>\r\n </DivsPattern>\r\n );\r\n }\r\n}\r\n\r\nexport default ChangePassword;\r\n","import React, { Component } from \"react\";\r\nimport intl from \"react-intl-universal\";\r\nimport DivsPattern from \"./skylineDesignPattern\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\nclass PurchaseSucceeded extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {};\r\n }\r\n render() {\r\n return (\r\n <DivsPattern headerText={intl.get(\"Purchase_Succeeded_Title\")}>\r\n <div className=\"form-label-group\">\r\n <p>{intl.get(\"Purchase_Succeeded_Text\")}</p>\r\n <p>\r\n {intl.get(\"Purchase_Succeeded_Contact_us\")}\r\n <a href=\"mailto:support@skylineglobe.com\">\r\n {intl.get(\"Email_Contact_Us\")}\r\n </a>\r\n </p>\r\n <div className=\"text-center\">\r\n <Link to=\"/account\">{intl.get(\"Go_To_Account\")}</Link>\r\n </div>\r\n </div>\r\n </DivsPattern>\r\n );\r\n }\r\n}\r\n\r\nexport default PurchaseSucceeded;\r\n","import React from \"react\";\r\nimport \"./NotFound.css\";\r\n\r\nexport default () => (\r\n <div className=\"NotFound\">\r\n <h3>\r\n Sorry, We have an Internal Server Error. Please try again and if it's\r\n still doesn't work, please contact us at:{\" \"}\r\n <a href=\"mailto:support@skylinesoft.com\">support@skylinesoft.com</a>\r\n </h3>\r\n </div>\r\n);\r\n","import React, { Component } from \"react\";\r\nimport intl from \"react-intl-universal\";\r\nimport LoaderButton from \"./LoaderButton\";\r\nimport DivsPattern from \"./skylineDesignPattern\";\r\nimport { FormGroup, FormControl, ControlLabel } from \"react-bootstrap\";\r\n\r\nclass ContactUs extends Component {\r\n state = {\r\n firstName: \"\",\r\n email: \"\",\r\n companyName: \"\",\r\n message: \"\",\r\n isLoading: false,\r\n isCUForm: true\r\n };\r\n\r\n handleChange = event => {\r\n this.setState({\r\n [event.target.id]: event.target.value\r\n });\r\n };\r\n\r\n handleSubmit = event => {\r\n event.preventDefault();\r\n this.setState({ isLoading: true });\r\n console.log(this.state.message);\r\n\r\n fetch(process.env.REACT_APP_API_URL + \"SendContactUs\", {\r\n method: \"POST\",\r\n credentials: \"include\",\r\n headers: {\r\n \"Content-Type\": \"application/json\"\r\n },\r\n body: JSON.stringify({\r\n Email: this.state.email,\r\n FirstName: this.state.firstName,\r\n CompanyName: this.state.companyName,\r\n Message: this.state.message\r\n })\r\n })\r\n .then(res => res.json())\r\n .then(result => {\r\n if (result.Result.toString().toLowerCase() === \"success\") {\r\n this.setState({ isCUForm: false });\r\n }\r\n this.setState({ isLoading: false });\r\n })\r\n .catch(error => {\r\n console.error(error);\r\n this.props.props.handleServerError(true);\r\n });\r\n };\r\n\r\n renderContactUsForm() {\r\n return (\r\n <DivsPattern headerText={intl.get(\"Contact_Us_Title\")}>\r\n <form className=\"form-signin\" onSubmit={this.handleSubmit}>\r\n <FormGroup controlId=\"firstName\" className=\"form-label-group\">\r\n <FormControl\r\n autoFocus\r\n value={this.state.firstName}\r\n onChange={this.handleChange}\r\n placeholder={intl.get(\"First_Name\")}\r\n className=\"form-control\"\r\n required\r\n />\r\n </FormGroup>\r\n <FormGroup controlId=\"email\" className=\"form-label-group\">\r\n <FormControl\r\n type=\"email\"\r\n value={this.state.email}\r\n placeholder={intl.get(\"Eamil_Address_Test\")}\r\n onChange={this.handleChange}\r\n className=\"form-control\"\r\n required\r\n />\r\n </FormGroup>\r\n <FormGroup controlId=\"companyName\" className=\"form-label-group\">\r\n <FormControl\r\n value={this.state.companyName}\r\n onChange={this.handleChange}\r\n placeholder={intl.get(\"Company_Name\")}\r\n className=\"form-control\"\r\n />\r\n </FormGroup>\r\n <FormGroup controlId=\"message\" className=\"form-label-group\">\r\n <textarea\r\n value={this.state.message}\r\n onChange={event => {\r\n this.setState({ message: event.target.value });\r\n }}\r\n rows=\"7\"\r\n placeholder={intl.get(\"Contact_Us_Message_PlaceHolder\")}\r\n className=\"form-control\"\r\n />\r\n </FormGroup>\r\n <LoaderButton\r\n className=\"btn-lg btn btn-primary btn-block btn-login text-uppercase font-weight-bold mb-2 btn-login\"\r\n type=\"submit\"\r\n // disabled={!this.validateForm()}\r\n text={intl.get(\"Send\")}\r\n isLoading={this.state.isLoading}\r\n loadingText={intl.get(\"Sending_An_Email\")}\r\n />\r\n </form>\r\n </DivsPattern>\r\n );\r\n }\r\n\r\n renderThanksForSending() {\r\n return (\r\n <DivsPattern headerText={intl.get(\"Contact_Us_Title\")}>\r\n <div className=\"form-label-group\">\r\n <p>{intl.get(\"Contact_Us_Thanks\")}</p>\r\n </div>\r\n </DivsPattern>\r\n );\r\n }\r\n\r\n render() {\r\n return this.state.isCUForm\r\n ? this.renderContactUsForm()\r\n : this.renderThanksForSending();\r\n }\r\n}\r\n\r\nexport default ContactUs;\r\n","import React, { Component } from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\nimport AOS from \"aos\";\r\nimport HeaderDashBoard from \"../img/marketingPage/Depositphotos_31419439_xl-2015.png\";\r\nimport \"./overview.css\";\r\nimport \"../dashcore/html/css/aos.css\";\r\nimport \"../dashcore/html/css/bootstrap.css\";\r\nimport \"../dashcore/html/css/cookieconsent.min.css\";\r\nimport \"../dashcore/html/css/fontawesome-all.css\";\r\nimport \"../dashcore/html/css/helper.css\";\r\nimport \"../dashcore/html/css/magnific-popup.css\";\r\nimport \"../dashcore/html/css/odometer-theme-minimal.css\";\r\nimport \"../dashcore/html/css/pe-icon-7-stroke.css\";\r\nimport \"../dashcore/html/css/prettify.css\";\r\nimport \"../dashcore/html/css/simplebar.css\";\r\nimport \"../dashcore/html/css/smart_wizard.css\";\r\nimport \"../dashcore/html/css/smart_wizard_theme_arrows.css\";\r\nimport \"../dashcore/html/css/smart_wizard_theme_circles.css\";\r\nimport \"../dashcore/html/css/smart_wizard_theme_dots.css\";\r\nimport \"../dashcore/html/css/demo.css\";\r\nimport \"../dashcore/html/css/swiper.css\";\r\nimport \"../dashcore/html/css/styles.css\";\r\nimport ThreeDModelImg from \"../img/marketingPage/3d-model.png\";\r\nimport StoreImg from \"../img/marketingPage/store.png\";\r\nimport MergeImg from \"../img/marketingPage/merge.png\";\r\nimport SuperiorPrecision from \"../img/marketingPage/computer1.png\";\r\nimport Interoperability from \"../img/marketingPage/computer2.png\";\r\nimport ViewshedAnalysis from \"../img/marketingPage/icon_viewshed.png\";\r\nimport SlopeAnalysis from \"../img/marketingPage/icon_slope.png\";\r\nimport DistanceAnalysis from \"../img/marketingPage/icon_distance.png\";\r\nimport ContourAnalysis from \"../img/marketingPage/icon_contour.png\";\r\nimport FloodAnalysis from \"../img/marketingPage/icon_flood.png\";\r\nimport ShadowAnalysis from \"../img/marketingPage/icon_shadow.png\";\r\nimport VolumeAnalysis from \"../img/marketingPage/icon_volume.png\";\r\nimport ComparisonAnalysis from \"../img/marketingPage/icon_comparison.png\";\r\nimport MapImage from \"../img/marketingPage/map_production.png\";\r\nimport LayersImage from \"../img/marketingPage/layers.png\";\r\nimport PublishingToSecureImage from \"../img/marketingPage/publishing_to_secure.png\";\r\nimport Avatar1 from \"../dashcore/html/img/avatar/1.jpg\";\r\nimport OrangeFlag from \"../img/marketingPage/flag_orange_small.png\";\r\nimport BlueFlag from \"../img/marketingPage/flag_blue_small.png\";\r\n\r\nclass AtlasUs extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = { isTop: true };\r\n AOS.init();\r\n this.props.props.setHeaderClassName(true, this.state.isTop);\r\n }\r\n\r\n componentDidMount() {\r\n window.addEventListener(\"scroll\", this.onScroll, false);\r\n }\r\n\r\n componentWillUnmount() {\r\n this.props.props.setHeaderClassName(false, this.state.isTop);\r\n window.removeEventListener(\"scroll\", this.onScroll, false);\r\n }\r\n\r\n onScroll = () => {\r\n const isTop = window.scrollY < 100;\r\n if (isTop !== this.state.isTop) {\r\n this.setState({ isTop });\r\n this.props.props.setHeaderClassName(true, isTop);\r\n }\r\n };\r\n\r\n state = {};\r\n render() {\r\n return (\r\n <div className=\"overviewDiv\">\r\n <header className=\"header online-payment-header section color-1 alpha-8\">\r\n <div id=\"stripes\">\r\n <span />\r\n <span />\r\n <span />\r\n <span />\r\n <span />\r\n </div>\r\n <div className=\"container overflow-hidden bring-to-front\">\r\n <div className=\"row\">\r\n <div className=\"col-md-6 SLAtlasMainTitle\">\r\n <h1 className=\"color-1 bold\">Skyline Atlas US</h1>\r\n <p className=\"lead col-md-8\" style={{ paddingLeft: \"0px\" }}>\r\n High Resolution 3D Map Data Service for Major US Urban Areas\r\n </p>\r\n <nav className=\"nav mt-5\">\r\n <Link\r\n to=\"/atlasUs/Pricing\"\r\n className=\"nav-link btn btn-rounded btn-success mainTitleTryBtn\"\r\n >\r\n 7-day free trial\r\n </Link>\r\n </nav>\r\n </div>\r\n <div className=\"col-md-6\">\r\n <img\r\n style={{ width: \"80%\", marginTop: \"2.5rem\" }}\r\n src={HeaderDashBoard}\r\n className=\"img-hero img-responsive absolute-md\"\r\n alt=\"\"\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n <br />\r\n <br />\r\n <br />\r\n </header>\r\n <section id=\"features\" className=\"section bg-1 edge top-left\" />\r\n <section id=\"features\" className=\"tableSection section\">\r\n <div className=\"tableSectionDiv container shadow\">\r\n <div className=\"row gap-y mt-5 mb-5 pt-4 pb-4 text-center text-md-center\">\r\n <div className=\"col-md-4 py-4 rounded shadow-hover overviewVl\">\r\n <img src={ThreeDModelImg} />\r\n <h5 className=\"bold\">Stunning Visualizations</h5>\r\n <p className=\"\">\r\n Online access to ready-to-use, high resolution, 2D and 3D\r\n models of major US cities\r\n </p>\r\n </div>\r\n <div className=\"col-md-4 py-4 rounded shadow-hover overviewVl\">\r\n <img src={MergeImg} />\r\n <h5 className=\"bold\">Inform and Empower </h5>\r\n <p className=\"\">\r\n Merge Atlas data with your own proprietary data to provide\r\n powerful location intelligence\r\n </p>\r\n </div>\r\n <div className=\"col-md-4 py-4 rounded shadow-hover\">\r\n <img src={StoreImg} />\r\n <h5 className=\"bold\">Store and Secure</h5>\r\n <p className=\"\">\r\n Store masses of 3D geospatial data for end users in a secure,\r\n access-controlled environment\r\n </p>\r\n </div>\r\n </div>\r\n </div>\r\n <br />\r\n <br />\r\n <br />\r\n </section>\r\n <section className=\"section shape-testimonials edge bg-6 top-left\">\r\n <div className=\"shape-wrapper\">\r\n <svg\r\n className=\"shape h-100\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n xmlnsXlink=\"http://www.w3.org/1999/xlink\"\r\n viewBox=\"0 0 249.28 253.71\"\r\n >\r\n <defs>\r\n <linearGradient\r\n id=\"linear-gradient\"\r\n y1=\"126.86\"\r\n x2=\"249.28\"\r\n y2=\"126.86\"\r\n gradientUnits=\"userSpaceOnUse\"\r\n >\r\n <stop offset=\"0\" stopColor=\"#44D1FF\" />\r\n <stop offset=\"0.23\" stopColor=\"#3FC9F8\" />\r\n <stop offset=\"0.6\" stopColor=\"#2DB3E6\" />\r\n <stop offset=\"1\" stopColor=\"#25A8DE\" />\r\n </linearGradient>\r\n </defs>\r\n <title />\r\n <g id=\"Capa_2\" data-name=\"Capa 2\">\r\n <g id=\"OBJECTS\">\r\n <path\r\n className=\"cls-1\"\r\n d=\"M236.5,78.38a75.26,75.26,0,0,0-7.74-9.67l0,0S182.91,16.47,105.14,2l0,0A83.91,83.91,0,0,0,4.53,69.71C-11.34,147,19.55,209,19.73,209.4a75,75,0,0,0,6,10.77c19.06,28.33,54.33,39.57,86.73,30.43,0,0,52.47-12.9,111.35-71.37h0C251.68,152.56,257.84,110.1,236.5,78.38Z\"\r\n />\r\n </g>\r\n </g>\r\n </svg>\r\n </div>\r\n <div className=\"container bring-to-front\">\r\n <div className=\"row\">\r\n <div className=\"col-lg-6 ml-lg-auto\">\r\n <div className=\"section-heading text-center text-lg-left\">\r\n <h3 className=\"bold textBulletsSections\">\r\n Atlas US Coverage\r\n </h3>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"row align-items-center\">\r\n <a\r\n className=\"col-md-6 order-sm-2 image-background contain mapDotsDiv\"\r\n href=\"https://cloud.skylineglobe.com/SG/terraexplorerweb/terraexplorer.html?catalogid=AtlasCoverageMap-TEW&config=USCoverageMap&site=default\"\r\n target=\"_blank\"\r\n >\r\n <div className=\"user-reviews\" id=\"user-review-nav\">\r\n {/* <div\r\n className=\"review absolute user nav-item active\"\r\n style={{ left: \"calc(5% - 40px)\", top: \"180px\" }}\r\n data-step=\"1\"\r\n >\r\n <div className=\"text\">\r\n <img\r\n src={OrangeFlag}\r\n className=\"img-responsive shadow rounded-circle flagImgMap\"\r\n alt=\"...\"\r\n data-aos=\"zoom-in\"\r\n />\r\n </div>\r\n </div> */}\r\n {/* <div\r\n className=\"review absolute user nav-item active\"\r\n style={{ left: \"calc(10% - 40px)\", top: \"240px\" }}\r\n data-step=\"2\"\r\n >\r\n <div className=\"text\">\r\n <img\r\n src={OrangeFlag}\r\n className=\"img-responsive shadow rounded-circle flagImgMap\"\r\n alt=\"...\"\r\n data-aos=\"zoom-in\"\r\n />\r\n </div>\r\n </div> */}\r\n {/* <div\r\n className=\"review absolute user nav-item\"\r\n style={{ left: \"calc(10% - 40px)\", top: \"250px\" }}\r\n data-step=\"3\"\r\n >\r\n <div className=\"text\">\r\n <img\r\n src={BlueFlag}\r\n className=\"img-responsive shadow rounded-circle flagImgMap\"\r\n alt=\"...\"\r\n data-aos=\"zoom-in\"\r\n />\r\n </div>\r\n </div> */}\r\n {/* <div\r\n className=\"review absolute user nav-item\"\r\n style={{ left: \"calc(100% - 80px)\", top: \"200px\" }}\r\n data-step=\"4\"\r\n >\r\n <div className=\"text\">\r\n <img\r\n src={BlueFlag}\r\n className=\"img-responsive shadow rounded-circle flagImgMap\"\r\n alt=\"...\"\r\n data-aos=\"zoom-in\"\r\n />\r\n </div>\r\n </div> */}\r\n {/* <div\r\n className=\"review absolute user nav-item\"\r\n style={{ left: \"1%\", top: \"45%\" }}\r\n data-step=\"5\"\r\n >\r\n <div className=\"text\">\r\n <img\r\n src={BlueFlag}\r\n className=\"img-responsive shadow rounded-circle flagImgMap\"\r\n alt=\"...\"\r\n data-aos=\"zoom-in\"\r\n />\r\n </div>\r\n </div> */}\r\n {/* <div\r\n className=\"review absolute user nav-item\"\r\n style={{ left: \"27%\", top: \"30%\" }}\r\n data-step=\"6\"\r\n >\r\n <div className=\"text\">\r\n <img\r\n src={BlueFlag}\r\n className=\"img-responsive shadow rounded-circle flagImgMap\"\r\n alt=\"...\"\r\n data-aos=\"zoom-in\"\r\n />\r\n </div>\r\n </div> */}\r\n {/* <div\r\n className=\"review absolute user nav-item\"\r\n style={{ left: \"27%\", top: \"54%\" }}\r\n data-step=\"7\"\r\n >\r\n <div className=\"text\">\r\n <img\r\n src={BlueFlag}\r\n className=\"img-responsive shadow rounded-circle flagImgMap\"\r\n alt=\"...\"\r\n data-aos=\"zoom-in\"\r\n />\r\n </div>\r\n </div> */}\r\n </div>\r\n </a>\r\n <div className=\"col-md-6\">\r\n <div\r\n className=\"swiper-container InProductionClass\"\r\n data-sw-navigation=\"#user-review-nav\"\r\n >\r\n <div className=\"swiper-wrapper\">\r\n <div className=\"swiper-slide\">\r\n <blockquote>\r\n <div className=\"lead\">\r\n <ul className=\"flagUl\">\r\n <li className=\"OrangeFlag\">\r\n <b>Available:</b>\r\n <ul className=\"flagsContents\">\r\n <li>Downtown San Francisco</li>\r\n <li>Los Angeles - San Fernando Valley</li>\r\n </ul>\r\n </li>\r\n <li className=\"BlueFlag\">\r\n <b>In Production:</b>\r\n <ul className=\"flagsContents\">\r\n <li>Los Angeles, California</li>\r\n <li>Denver and Boulder, Colorado</li>\r\n <li>Las Vegas, Nevada</li>\r\n </ul>\r\n </li>\r\n <li className=\"PurpleFlag\">\r\n <b>Coming Soon:</b>\r\n <ul className=\"flagsContents\">\r\n <li>Houston</li>\r\n <li>San Francisco Bay Area</li>\r\n </ul>\r\n </li>\r\n </ul>\r\n </div>\r\n </blockquote>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n <section className=\"section edge\">\r\n <div className=\"shape-wrapper\">\r\n <div className=\"shape shape-background shape-right\" />\r\n <div className=\"shape shape-background top shape-left bg-4 op-1\" />\r\n </div>\r\n <div className=\"container pb-9\">\r\n <div className=\"row gap-y align-items-center py-5\">\r\n <div className=\"col-md-6\">\r\n <figure data-aos=\"fade-right\" data-aos-duration=\"1000\">\r\n <img\r\n src={SuperiorPrecision}\r\n className=\"img-responsive w-80\"\r\n alt=\"\"\r\n />\r\n </figure>\r\n </div>\r\n <div className=\"col-md-6\">\r\n <h2 className=\"bold text-capitalize textBulletsSections\">\r\n Superior Precision\r\n </h2>\r\n <p className=\"regular textBulletsParagraph\">\r\n Online access to ready-to-use, high resolution, 3D models of\r\n major US cities\r\n </p>\r\n <ul className=\"listClass textBulletsUL\">\r\n <li className=\"\">World-class TerraExplorer 3D viewers</li>\r\n <li className=\"\">Support for third-party viewers</li>\r\n <li className=\"\">New cities added monthly</li>\r\n <li className=\"\">Regular data updates</li>\r\n <li className=\"\">Accurate, geo-referenced maps</li>\r\n </ul>\r\n <Link\r\n to=\"/atlasUs/pricing#pricingHeader\"\r\n className=\"btn gradient gradient-43 color-1 btn-rounded btn-outline-1 bw-2 bold mt-4\"\r\n >\r\n 7-day free trial\r\n </Link>\r\n </div>\r\n </div>\r\n <div className=\"row gap-y align-items-center py-5\">\r\n <div className=\"col-md-6 order-md-2\">\r\n <figure data-aos=\"fade-left\" data-aos-duration=\"1000\">\r\n <img\r\n src={Interoperability}\r\n className=\"img-responsive w-80\"\r\n alt=\"\"\r\n />\r\n </figure>\r\n </div>\r\n <div className=\"col-md-6\">\r\n <h2 className=\"bold text-capitalize textBulletsSections\">\r\n Interoperability\r\n </h2>\r\n <p className=\"regular textBulletsParagraph\">\r\n Data is available in a range of formats for compatibility with\r\n a vast number of CAD and 3D solutions\r\n </p>\r\n <ul className=\"listClass textBulletsUL\">\r\n <li className=\"\">Skyline 3DML</li>\r\n <li className=\"\">Cesium 3D Tile</li>\r\n <li className=\"\">Esri i3S</li>\r\n <li className=\"\">True-Orthophotos</li>\r\n </ul>\r\n <Link\r\n to=\"/atlasUs/pricing#pricingHeader\"\r\n className=\"btn gradient gradient-43 color-1 btn-rounded btn-outline-1 bw-2 bold mt-4\"\r\n >\r\n 7-day free trial\r\n </Link>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"container pb-9\">\r\n <div className=\"section-heading mb-6 text-center\">\r\n <h2 className=\"pb-3\">Powerful Analysis</h2>\r\n <h5 className=\"\">\r\n Increase understanding and improve decision making with a wide\r\n range of versatile and configurable analysis tools that provide\r\n precise, actionable data:\r\n </h5>\r\n </div>\r\n <div\r\n align=\"center\"\r\n className=\"row gap-y text-left text-md-left tableSection\"\r\n >\r\n <div className=\"col-md-2 col-xs-3 col-3 px-md-5 ml-9 mb-3 shadow shadow-hover tableSectionDiv analysisFirstCard\">\r\n <img src={ViewshedAnalysis} className=\"img-responsive\" />\r\n <h6 className=\"mt-3\">Viewshed</h6>\r\n </div>\r\n <div className=\"col-md-2 col-xs-3 col-3 px-md-5 ml-4 mb-3 shadow shadow-hover tableSectionDiv\">\r\n <img src={DistanceAnalysis} className=\"img-responsive\" />\r\n <h6 className=\"mt-3\">Distance</h6>\r\n </div>\r\n <div className=\"col-md-2 col-xs-3 col-3 px-md-5 ml-4 mb-3 shadow shadow-hover tableSectionDiv\">\r\n <img src={FloodAnalysis} className=\"img-responsive\" />\r\n <h6 className=\"mt-3\">Flood</h6>\r\n </div>\r\n <div className=\"col-md-2 col-xs-3 col-3 px-md-5 ml-4 mb-3 shadow shadow-hover tableSectionDiv\">\r\n <img src={VolumeAnalysis} className=\"img-responsive\" />\r\n <h6 className=\"mt-3\">Volume</h6>\r\n </div>\r\n <div className=\"col-md-2 col-xs-3 col-3 px-md-5 ml-9 mb-3 shadow shadow-hover tableSectionDiv analysisFirstCard\">\r\n <img src={SlopeAnalysis} className=\"img-responsive\" />\r\n <h6 className=\"mt-3\">Slope</h6>\r\n </div>\r\n <div className=\"col-md-2 col-xs-3 col-3 px-md-5 ml-4 mb-3 shadow shadow-hover tableSectionDiv\">\r\n <img src={ContourAnalysis} className=\"img-responsive\" />\r\n <h6 className=\"mt-3\">Contour</h6>\r\n </div>\r\n <div className=\"col-md-2 col-xs-3 col-3 px-md-5 ml-4 mb-3 shadow shadow-hover tableSectionDiv\">\r\n <img src={ShadowAnalysis} className=\"img-responsive\" />\r\n <h6 className=\"mt-3\">Shadow</h6>\r\n </div>\r\n <div className=\"col-md-2 col-xs-3 col-3 px-md-5 ml-4 mb-3 shadow shadow-hover tableSectionDiv\">\r\n <img src={ComparisonAnalysis} className=\"img-responsive\" />\r\n <h6 className=\"mt-3\">Comparison</h6>\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n <section\r\n id=\"features\"\r\n className=\"section CustomizedSection parallax image-background center-bottom cover overlay gradient gradient-53 alpha-8 color-1\"\r\n >\r\n <div className=\"container overflow-hidden\">\r\n <div className=\"row\">\r\n <div className=\"col-md-10 col-lg-5\">\r\n <span className=\"titleCaption\">Customized Maps</span>\r\n <br />\r\n <br />\r\n <span className=\"paragraphClass\">\r\n Integrate Skyline Atlas data with your own proprietary data to\r\n create immersible, high-resolution 3D maps that promote deeper\r\n understanding\r\n </span>\r\n\r\n <div className=\"row analysisClass\">\r\n <div className=\"col-md-9 col-sm-5 customizeMapDiv\">\r\n <img\r\n // className={className}\r\n src={LayersImage}\r\n // style={{ transitionDelay: leftTransitionDelay }}\r\n />\r\n <p\r\n className=\"paragraphClass customizeMapParagraph\"\r\n // style={{ transitionDelay: leftTransitionDelay }}\r\n >\r\n Add annotations, models & layers to base map\r\n <br />\r\n {/* <Link to=\"/gettingStarted#publishDataSection\" className=\"\">\r\n Learn more >\r\n </Link> */}\r\n </p>\r\n </div>\r\n </div>\r\n <div className=\"row analysisClass\">\r\n <div className=\"col-md-9 col-sm-5 customizeMapDiv\">\r\n <img\r\n // className={className}\r\n src={PublishingToSecureImage}\r\n // style={{ transitionDelay: leftTransitionDelay }}\r\n />\r\n <p\r\n className=\"paragraphClass customizeMapParagraph\"\r\n // style={{ transitionDelay: leftTransitionDelay }}\r\n >\r\n Publishing to secure, access-controlled server\r\n <br />\r\n {/* <Link to=\"/gettingStarted#publishDataSection\" className=\"\">\r\n Learn more >\r\n </Link> */}\r\n </p>\r\n </div>\r\n </div>\r\n\r\n <p className=\"handwritten font-md highlight px-4\">\r\n Try it free\r\n </p>\r\n <nav className=\"nav mt-5\">\r\n <Link\r\n to=\"/atlasUs/pricing#pricingHeader\"\r\n className=\"nav-link mr-3 btn btn-rounded btn-success mainTitleTryBtn\"\r\n >\r\n Try Now{\" \"}\r\n </Link>\r\n </nav>\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n <section className=\"section bg-6 edge send-and-receive\">\r\n <div className=\"container bring-to-front\">\r\n <div className=\"container pb-2\">\r\n <div className=\"section-heading text-center\">\r\n <h2 className=\"pb-3\">Affordable and Scalable</h2>\r\n <h5 className=\"\">\r\n Flexible subscription packages to suit your specific user and\r\n storage needs\r\n </h5>\r\n </div>\r\n </div>\r\n <div className=\"row gap-y\">\r\n <div className=\"col-md-4\">\r\n <div className=\"rounded bg-1 shadow-box image-background contain bottom-background pl-md-9 p-4 pl-6 scale_upClass\">\r\n <p className=\"color-2 mt-3 ml-4\">\r\n Scale up as your business grows\r\n </p>\r\n </div>\r\n </div>\r\n <div className=\"col-md-4\">\r\n <div\r\n className=\"rounded bg-1 shadow-box image-background contain bottom-background pl-md-9 p-4 pl-6 quarterlyClass\"\r\n style={{\r\n backgroundImage: \"url(img / shps / payments / get.svg)\"\r\n }}\r\n >\r\n <p className=\"color-2 mt-3 ml-4\">\r\n Scale up/down quarterly (seasonal business)\r\n </p>\r\n </div>\r\n </div>\r\n <div className=\"col-md-4\">\r\n <div\r\n className=\"rounded bg-1 shadow-box image-background contain bottom-background p-4 pl-6 pl-md-9 subscriptionClass\"\r\n style={{\r\n backgroundImage: \"url(img / shps / payments / get.svg)\"\r\n }}\r\n >\r\n <p className=\"color-2 mt-3 ml-4\">\r\n Subscription plans as low as $100/month\r\n </p>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n <br />\r\n <br />\r\n <br />\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nexport default AtlasUs;\r\n","import { v4 as uuidv4 } from 'uuid';\r\n\r\nexport function copyToClipboard(element) {\r\n\r\n if (!element)\r\n return Promise.reject();\r\n\r\n const textToCopy = element.innerText;\r\n\r\n if (navigator.clipboard && window.isSecureContext) {\r\n\r\n // navigator clipboard api method'\r\n return navigator.clipboard.writeText(textToCopy);\r\n }\r\n else {\r\n\r\n // text area method\r\n let textArea = document.createElement(\"textarea\");\r\n textArea.value = textToCopy;\r\n // make the textarea out of viewport\r\n textArea.style.position = \"fixed\";\r\n textArea.style.left = \"-999999px\";\r\n textArea.style.top = \"-999999px\";\r\n document.body.appendChild(textArea);\r\n textArea.focus();\r\n textArea.select();\r\n return new Promise((res, rej) => {\r\n // here the magic happens\r\n document.execCommand('copy') ? res() : rej();\r\n textArea.remove();\r\n });\r\n }\r\n};\r\n\r\nexport function generateUniqueString(company) {\r\n // Remove leading/trailing spaces from company\r\n company = company.trim();\r\n\r\n // Check if company is empty or not in English\r\n const isEnglishCompany = /^[A-Za-z\\s]*$/.test(company);\r\n if (company === '' || !isEnglishCompany) {\r\n company = uuidv4().replace(/-/g, '').substring(0, 25);\r\n company = company.substring(0, 16);\r\n } else {\r\n // Trim company to maximum 16 characters\r\n company = company.substring(0, 16);\r\n }\r\n\r\n // Generate timestamp in the format yyyymmddThhmmssZ in UTC\r\n const now = new Date();\r\n const year = now.getUTCFullYear();\r\n const month = String(now.getUTCMonth() + 1).padStart(2, '0');\r\n const day = String(now.getUTCDate()).padStart(2, '0');\r\n const hours = String(now.getUTCHours()).padStart(2, '0');\r\n const minutes = String(now.getUTCMinutes()).padStart(2, '0');\r\n const seconds = String(now.getUTCSeconds()).padStart(2, '0');\r\n const timestamp = `${year}${month}${day}T${hours}${minutes}${seconds}Z`;\r\n\r\n // Combine company and timestamp\r\n let result = company + '-' + timestamp;\r\n\r\n // Trim result to maximum 32 characters\r\n result = result.substring(0, 32);\r\n \r\n return result;\r\n}","import React, { Component } from \"react\";\r\nimport { Link, Route, Redirect } from \"react-router-dom\";\r\nimport intl from \"react-intl-universal\";\r\nimport ScrollableAnchor, { goToAnchor } from \"react-scrollable-anchor\";\r\nimport settings_TE4W from \"../img/settings_TE4W.png\";\r\nimport SGSLogin from \"../img/HowTos/SGSLogin.png\";\r\nimport TEDLogin from \"../img/HowTos/TEDLogin.png\";\r\nimport TEW_Login from \"../img/HowTos/TEW_Login.png\";\r\nimport Esri_Add_Data from \"../img/HowTos/Esri_Add_Data.png\";\r\nimport Esri_Online_Add_Layer from \"../img/HowTos/Esri_Online_Add_Layer.png\";\r\nimport Esri_Portal_Manager from \"../img/HowTos/Esri_Portal_Manager.png\";\r\nimport QGIS_Add_Layer from \"../img/HowTos/QGIS_Add_Layer.png\";\r\nimport OpenLicenseManager from \"../img/HowTos/OpenLicenseManager.gif\";\r\nimport LicenseManagerImg from \"../img/HowTos/LicenseManager.gif\";\r\nimport OpenTEDProjct from \"../img/HowTos/OpenTEDProject.gif\";\r\nimport OpenTEMProject from \"../img/HowTos/OpenTEMProject.gif\";\r\nimport TED_Menu from \"../img/HowTos/TED_Menu.png\";\r\nimport signIn from \"../signIn\";\r\nimport * as SLCommon from \"../slCommon\";\r\n\r\nclass FAQ extends Component {\r\n constructor(props) {\r\n super(props);\r\n const hashString = window.location.hash;\r\n\r\n let queryParameters = \"\";\r\n if (window.location.search.match(/[?&]displayLogin[=]1/gi) !== null) {\r\n queryParameters = window.location.search\r\n .replace(/[?&]displaylogin=1[&]?/i, \"\")\r\n .replace(/[&]*$/, \"\")\r\n .replace(/^[?]/, \"\");\r\n if (queryParameters !== \"\") queryParameters = \"?\" + queryParameters;\r\n return (window.location =\r\n \"/store/signIn?redirect=/gettingStarted\" +\r\n escape(queryParameters) +\r\n hashString);\r\n }\r\n\r\n this.state = {\r\n siteName: \"\",\r\n SGSpremiumData: \"premium\",\r\n SGSpremiumDataProjectID: \"SampleProject\",\r\n BaseGlobeProjectID: \"BaseGlobeWeb\",\r\n AtlasILProjectID: \"AtlasILWeb\",\r\n accessToken: \"[Access_Token]\",\r\n SGBaseUrl: \"https://cloud.skylineglobe.com/SG\",\r\n copyText: 'Copy',\r\n copiedText: 'Copied', \r\n packageId: 0,\r\n cloudProjectId: 0, \r\n cloudProject: { },\r\n cloudKmlLayerDesc: \"[Web_Project_ID]\",\r\n cloudFlyLayerDesc: \"[Desktop_Project_ID]\",\r\n origHashToScroll: window.location.hash.replace(/^[#](\\w+)/i, '$1'),\r\n terraExplorerDownloadPath: undefined\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n\r\n // getting data name (SGSpremiumData)\r\n var match = window.location.search.match(/[?&]projectName=([^&]+)/i);\r\n if (match == null)\r\n match = window.location.search.match(/[?&]premiumData=([^&]+)/i);\r\n var sgsPremiumData = match != null ? match[1] : this.state.SGSpremiumData;\r\n\r\n match = window.location.search.match(/[?&]packageid=(\\d+)/i);\r\n var packageId = match != null ? parseInt(match[1]) : 0;\r\n\r\n match = window.location.search.match(/[?&]projectId=(\\d+)/i);\r\n var projectId = match != null ? parseInt(match[1]) : 0;\r\n\r\n this.setState({\r\n SGSpremiumData: sgsPremiumData,\r\n packageId: packageId,\r\n cloudProjectId: projectId\r\n });\r\n\r\n if (this.props.props.isLoggedIn)\r\n this.getUserStatusData(packageId, projectId);\r\n }\r\n\r\n getUserStatusData(packageId, projectId) {\r\n fetch(process.env.REACT_APP_API_URL + \"GetUserDataByPackage\", {\r\n method: \"POST\",\r\n credentials: \"include\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n },\r\n body: JSON.stringify({\r\n packageId: packageId,\r\n projectId: projectId,\r\n }),\r\n })\r\n .then((res) => res.json())\r\n .then((result) => {\r\n if (result.Result.toString().toLowerCase() === \"success\") {\r\n if (result.Site && result.Site.SiteName) {\r\n this.setState({\r\n siteName: result.Site.SiteName\r\n });\r\n }\r\n\r\n if (result.Site && result.Site.ViewerAccessToken) {\r\n this.setState({\r\n accessToken: result.Site.ViewerAccessToken\r\n });\r\n }\r\n\r\n if (result.SGBaseUrl) {\r\n this.setState({\r\n SGBaseUrl: result.SGBaseUrl\r\n });\r\n }\r\n\r\n if (result.SGSpremiumDataProjectID && result.SGSpremiumDataProjectID != \"\" && result.Site && result.Site.SiteName) {\r\n this.setState({\r\n SGSpremiumDataProjectID: result.SGSpremiumDataProjectID == \"AtlasIL\" ? this.state.AtlasILProjectID : this.state.BaseGlobeProjectID\r\n });\r\n }\r\n\r\n if (result.InstallationPaths !== undefined && result.InstallationPaths.TerraExplorerPro !== undefined) {\r\n this.setState({ terraExplorerDownloadPath: result.InstallationPaths.TerraExplorerPro});\r\n }\r\n\r\n if (result.ProjectRun) {\r\n this.setState({\r\n cloudProject: result.ProjectRun,\r\n cloudKmlLayerDesc: result.ProjectRun.CloudKmlLayerDesc,\r\n cloudFlyLayerDesc: result.ProjectRun.CloudFlyLayerDesc\r\n });\r\n } \r\n \r\n // in case of 'EsriSection' a re-scrolling is needed\r\n if (this.state.origHashToScroll == 'EsriSection') {\r\n setTimeout(() => {\r\n goToAnchor(this.state.origHashToScroll, false);\r\n }, 1000);\r\n } \r\n }\r\n })\r\n .catch((error) => {\r\n console.error(error);\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n <main className=\"container-fluid col-md-9 faqMain\">\r\n <div>\r\n <div>\r\n <span style={{ fontSize: \"28px\" }}>\r\n {this.state.cloudProjectId <= 0 ? (\"Getting Started: Streaming \" + this.state.SGSpremiumData + \" Data\") : \"View Project Result\"}\r\n </span>\r\n <br />\r\n <br />\r\n <span>\r\n {this.state.cloudProjectId <= 0 ? <React.Fragment>\r\n Listed below are frequently asked questions about SkylineCloud data streaming options. If you have any additional questions, contact us at\r\n <a href=\"mailto:support@skylinesoft.com\">\r\n support@skylinesoft.com\r\n </a>\r\n .</React.Fragment> : \"Access your project output with any of the following viewers:\"} \r\n </span>\r\n <br />\r\n <br />\r\n <ul className=\"faqContentBullets\">\r\n <li>\r\n <a href=\"#TEFSection\">\r\n {this.state.cloudProjectId <= 0 ? \r\n <React.Fragment>How to access {this.state.SGSpremiumData} data with TerraExplorer Fusion</React.Fragment>\r\n : \"TerraExplorer Fusion\"}\r\n </a>\r\n </li>\r\n <li>\r\n <a href=\"#TerraExplorer_ProSection\">\r\n {this.state.cloudProjectId <= 0 ? \r\n <React.Fragment>How to access {this.state.SGSpremiumData} data with\r\n TerraExplorer for Desktop</React.Fragment>\r\n : \"TerraExplorer for Desktop\"}\r\n </a>\r\n </li>\r\n <li>\r\n <a href=\"#TerraExplorer_MobileSection\">\r\n {this.state.cloudProjectId <= 0 ? \r\n <React.Fragment>How to access {this.state.SGSpremiumData} data with\r\n TerraExplorer for Mobile</React.Fragment>\r\n : \"TerraExplorer for Mobile\"}\r\n </a>\r\n </li>\r\n <li>\r\n <a href=\"#CesiumSection\">\r\n {this.state.cloudProjectId <= 0 ? \r\n <React.Fragment>How to access {this.state.SGSpremiumData} data with a Cesium viewer</React.Fragment>\r\n : \"Cesium viewer\"}\r\n </a>\r\n </li>\r\n {\r\n this.state.SGSpremiumDataProjectID == this.state.AtlasILProjectID\r\n ?\r\n <div>\r\n <li>\r\n <a href=\"#QGISWMSSection\">\r\n {this.state.cloudProjectId <= 0 ?\r\n <React.Fragment>How to access {this.state.SGSpremiumData} 2D data with QGIS</React.Fragment>\r\n : \"QGIS (2D Data)\"}\r\n </a>\r\n </li>\r\n <li>\r\n {this.state.cloudProjectId <= 0 ?\r\n <a href=\"#EsriSection\">\r\n How to access {this.state.SGSpremiumData} 3D data with Esri\r\n viewers\r\n </a> :\r\n <a href={\"https://support.skylinesoft.com/hc/en-us/requests/new?tf_subject=PM%20cloud%20processing&tf_anonymous_requester_email=\" + this.props.props.userName + \"&tf_360015036959=pm_cloud_processing&tf_description=Enter%20description%20here:%20projectId\" + this.state.cloudProjectId} target=\"_blank\">\r\n Esri viewers - contact support\r\n </a>\r\n }\r\n </li>\r\n <li>\r\n {this.state.cloudProjectId <= 0 ?\r\n <a href=\"#EsriWMSSection\">\r\n How to access {this.state.SGSpremiumData} 2D data with Esri\r\n viewers\r\n </a> :\r\n <a href={\"https://support.skylinesoft.com/hc/en-us/requests/new?tf_subject=PM%20cloud%20processing&tf_anonymous_requester_email=\" + this.props.props.userName + \"&tf_360015036959=pm_cloud_processing&tf_description=Enter%20description%20here:%20projectId\" + this.state.cloudProjectId} target=\"_blank\">\r\n Esri viewers - contact support\r\n </a>\r\n }\r\n </li>\r\n </div>\r\n :\r\n \"\"\r\n }\r\n </ul>\r\n </div>\r\n <ScrollableAnchor id={\"TEFSection\"}>\r\n <div className=\"FAQ_Pricing gettingStartedSection\">\r\n <h5 className=\"headersHowTo\">\r\n {this.state.cloudProjectId <= 0 ? \r\n <React.Fragment>How to access {this.state.SGSpremiumData} data with TerraExplorer Fusion</React.Fragment>\r\n : \"TerraExplorer Fusion\"}\r\n </h5>\r\n <span>\r\n TerraExplorer Fusion is a lightweight, multi-platform 3D GIS\r\n web viewer. TerraExplorer Fusion provides powerful analysis\r\n tools that promote an enhanced understanding of the 3D\r\n environment including distance and slope, area, volume,\r\n contour/slope map, viewshed. More about:{\" \"}\r\n <a href=\"https://www.skylinesoft.com/terraexplorer-fusion/\">\r\n TerraExplorer Fusion\r\n </a> \r\n </span>\r\n <br />\r\n <br />\r\n <div>\r\n <b>\r\n Click here to open TerraExplorer Fusion with the{\" \"}\r\n {this.state.SGSpremiumData} project:{\" \"}\r\n </b>\r\n </div>\r\n <a\r\n href={\r\n this.state.SGBaseUrl + \"/TEF/TE.html?project=\" + \r\n (this.state && this.state.siteName !== \"\"\r\n ? this.state.SGBaseUrl + \"/\" +\r\n this.state.siteName +\r\n \"/projects/\" +\r\n (this.state.cloudProjectId > 0 ? this.state.cloudFlyLayerDesc : (this.state.SGSpremiumData + \"Desktop\")) +\r\n \"?token=\" +\r\n this.state.accessToken\r\n : this.state.SGBaseUrl + \"/[CUSTOMER_KEY]/projects/\" +\r\n (this.state.cloudProjectId > 0 ? this.state.cloudFlyLayerDesc : (this.state.SGSpremiumData + \"Desktop\")) +\r\n \"?token=\" +\r\n this.state.accessToken) \r\n }\r\n target=\"_blamk\"\r\n >\r\n \r\n {this.state.SGBaseUrl + \"/TEF/TE.html?project=\"}\r\n {this.state && this.state.siteName !== \"\"\r\n ? this.state.SGBaseUrl + \"/\" +\r\n this.state.siteName +\r\n \"/projects/\" +\r\n (this.state.cloudProjectId > 0 ? this.state.cloudFlyLayerDesc : (this.state.SGSpremiumData + \"Desktop\")) +\r\n \"?token=\" +\r\n this.state.accessToken\r\n : this.state.SGBaseUrl + \"/[CUSTOMER_KEY]/projects/\" +\r\n (this.state.cloudProjectId > 0 ? this.state.cloudFlyLayerDesc : (this.state.SGSpremiumData + \"Desktop\")) +\r\n \"?token=\" +\r\n this.state.accessToken}\r\n \r\n </a>\r\n <a\r\n href={\r\n this.state.SGBaseUrl + \"/TEF/TE.html?project=\" +\r\n (this.state && this.state.siteName !== \"\"\r\n ? this.state.SGBaseUrl + \"/\" +\r\n this.state.siteName +\r\n \"/projects/\" +\r\n (this.state.cloudProjectId > 0 ? this.state.cloudFlyLayerDesc : (this.state.SGSpremiumData + \"Desktop\")) +\r\n \"?token=\" +\r\n this.state.accessToken\r\n : this.state.SGBaseUrl + \"/[CUSTOMER_KEY]/projects/\" +\r\n (this.state.cloudProjectId > 0 ? this.state.cloudFlyLayerDesc : (this.state.SGSpremiumData + \"Desktop\")) +\r\n \"?token=\" +\r\n this.state.accessToken)\r\n }\r\n target=\"_blamk\"\r\n style={{color: '#ffffff', backgroundColor: '#0286bb'}}\r\n className=\"btn btn-primary text-capitalize ml-3\"\r\n >\r\n View\r\n </a>\r\n </div>\r\n </ScrollableAnchor>\r\n <ScrollableAnchor id={\"TerraExplorer_ProSection\"}>\r\n <div className=\"FAQ_Pricing gettingStartedSection\">\r\n <h5 className=\"headersHowTo\">\r\n {this.state.cloudProjectId <= 0 ?\r\n <React.Fragment>How to access {this.state.SGSpremiumData} data with\r\n TerraExplorer for Desktop</React.Fragment>\r\n : \"TerraExplorer for Desktop\"}\r\n </h5>\r\n <span>\r\n TerraExplorer for Desktop is a cutting-edge 3D GIS desktop\r\n viewer and creator that provides powerful tools and a\r\n high-resolution 3D environment in which to view, query, analyze\r\n and present geospatial data. More about:{\" \"}\r\n <a href=\"https://www.skylinesoft.com/terraexplorer-desktop\">\r\n TerraExplorer for Desktop\r\n </a>\r\n </span>\r\n <br />\r\n <br />\r\n <div>\r\n <b>Download and install TerraExplorer for Desktop: </b>\r\n </div>\r\n <ul className=\"FAQ_ul\">\r\n <li>\r\n Click here to download{\" \"}\r\n <a href={this.state.terraExplorerDownloadPath ? this.state.terraExplorerDownloadPath : \"https://cloud.skylineglobe.com/SGCloud/Downloads/TEPro.zip\"}>\r\n TerraExplorer for Desktop\r\n </a>\r\n .\r\n </li>\r\n <li>Extract the files.</li>\r\n <li>\r\n Double-click the <b>setup.exe</b> file and follow the\r\n Installation Wizard to install the application.\r\n </li>\r\n </ul>\r\n <br />\r\n <div>\r\n <b>Open the {this.state.SGSpremiumData} project:</b>\r\n </div>\r\n <ul className=\"FAQ_ul\">\r\n <li>\r\n Start TerraExplorer for Desktop application from the Windows\r\n Start menu or from the desktop shortcut.\r\n </li>\r\n <li>\r\n From the <b>File</b> menu <img src={TED_Menu} />, point to{\" \"}\r\n <b>Open</b> and select <b>Open Project from File.</b>\r\n </li>\r\n <li>\r\n In the <b>Open</b> field, Copy-paste the following URL, and\r\n click <b>OK</b>:\r\n <br />\r\n <b className=\"copyTextForTED\">\r\n {this.state && this.state.siteName !== \"\"\r\n ? this.state.SGBaseUrl + \"/\" +\r\n this.state.siteName +\r\n \"/projects/\" +\r\n (this.state.cloudProjectId > 0 ? this.state.cloudFlyLayerDesc : (this.state.SGSpremiumData + \"Desktop\")) +\r\n \"?token=\" +\r\n this.state.accessToken\r\n : this.state.SGBaseUrl + \"/[CUSTOMER_KEY]/projects/\" +\r\n (this.state.cloudProjectId > 0 ? this.state.cloudFlyLayerDesc : (this.state.SGSpremiumData + \"Desktop\")) +\r\n \"?token=\" +\r\n this.state.accessToken}\r\n </b>\r\n <button className=\"btn btn-outline-primary text-capitalize ml-1 copyToClipboard\" onClick={(event) => {\r\n var currentTarget = event.currentTarget;\r\n SLCommon.copyToClipboard(document.getElementsByClassName(\"copyTextForTED\")[0])\r\n .then(() => { currentTarget.innerText = this.state.copiedText });\r\n }}>{this.state.copyText}</button>\r\n </li>\r\n </ul>\r\n\r\n <span>\r\n <b>** Note:</b> For additional functionality, you can upgrade\r\n your TerraExplorer for Desktop - Viewer to TerraExplorer for\r\n Desktop - Plus. Click{\" \"}\r\n <a target=\"_blank\" href=\"https://support.skylinesoft.com/hc/en-us/articles/4402316782226-TerraExplorer-Family-Comparison-Table\">\r\n here\r\n </a>{\" \"}\r\n for a comparison between Viewer and Plus. To upgrade, contact us\r\n at{\" \"}\r\n <a href=\"mailto:support@skylinesoft.com\">support@skylinesoft.com</a>\r\n .\r\n </span>\r\n <div className={\"text-center mt-4 mb-4\"} style={ this.state.cloudProjectId > 0 ? {display: 'none'} : { } }>\r\n <img\r\n src={OpenTEDProjct}\r\n className=\"text-center howTosImg img-responsive imgStaticHeight\"\r\n />\r\n </div>\r\n </div>\r\n </ScrollableAnchor>\r\n <ScrollableAnchor id={\"TerraExplorer_MobileSection\"}>\r\n <div className=\"FAQ_Pricing gettingStartedSection\">\r\n <h5 className=\"headersHowTo\">\r\n {this.state.cloudProjectId <= 0 ?\r\n <React.Fragment>How to access {this.state.SGSpremiumData} data with\r\n TerraExplorer for Mobile</React.Fragment>\r\n : \"TerraExplorer for Mobile\"}\r\n </h5>\r\n <span>\r\n TerraExplorer for Mobile is a 3D GIS viewer for Android and\r\n Apple iOS devices that enables you to view high-resolution,\r\n stunningly realistic SkylineGlobe 3D content. The TerraExplorer\r\n for mobile app can display most of your spatial databases\r\n including 3D city layers and feature layers, and it provides\r\n powerful tools to query, analyze and present your data on the\r\n go.\r\n </span>\r\n <br />\r\n <br />\r\n <div>\r\n <b>\r\n Download TerraExplorer for Mobile from Google Play or App\r\n Store:\r\n </b>\r\n </div>\r\n <ul className=\"FAQ_ul\">\r\n <li>\r\n Open the app store on your device (Google Play for Android or\r\n App Store for iOS).\r\n </li> \r\n <li>Install the TerraExplorer for Mobile app.</li>\r\n </ul>\r\n <div>\r\n <b>Open the {this.state.SGSpremiumData} project:</b>\r\n </div>\r\n <ul className=\"FAQ_ul\">\r\n <li>\r\n On your mobile device, clck the following URL. <b>OR</b> open\r\n the app and copy-paste this URL to the <b>Project URL</b>{\" \"}\r\n field :\r\n <br />\r\n <a\r\n href={\r\n this.state && this.state.siteName !== \"\"\r\n ? this.state.SGBaseUrl + \"/\" +\r\n this.state.siteName +\r\n \"/terraexplorerweb/terraexplorer.html?catalogid=\" +\r\n (this.state.cloudProjectId > 0 ? this.state.cloudKmlLayerDesc : (this.state.SGSpremiumData + \"Web\")) +\r\n \"&token=\" +\r\n this.state.accessToken +\r\n \"&isMobileApp=1\"\r\n : this.state.SGBaseUrl + \"/[CUSTOMER_KEY]/terraexplorerweb/terraexplorer.html?catalogid=\" +\r\n (this.state.cloudProjectId > 0 ? this.state.cloudKmlLayerDesc : \"[PREMIUM_DATA]Web\") + \r\n \"&token=[TOKEN]&isMobileApp=1\"\r\n }\r\n target=\"_blank\"\r\n >\r\n {this.state && this.state.siteName !== \"\"\r\n ? this.state.SGBaseUrl + \"/\" +\r\n this.state.siteName +\r\n \"/terraexplorerweb/terraexplorer.html?catalogid=\" +\r\n (this.state.cloudProjectId > 0 ? this.state.cloudKmlLayerDesc : (this.state.SGSpremiumData + \"Web\")) +\r\n \"&token=\" +\r\n this.state.accessToken +\r\n \"&isMobileApp=1\"\r\n : this.state.SGBaseUrl + \"/[CUSTOMER_KEY]/terraexplorerweb/terraexplorer.html?catalogid=\" +\r\n (this.state.cloudProjectId > 0 ? this.state.cloudKmlLayerDesc : \"[PREMIUM_DATA]Web\") +\r\n \"&token=[TOKEN]&isMobileApp=1\"}\r\n </a>\r\n </li>\r\n <div className=\"text-center mt-4 mb-4\">\r\n <img\r\n src={OpenTEMProject}\r\n className=\"text-center howTosImg img-responsive imgStaticHeight\"\r\n />\r\n </div>\r\n </ul>\r\n <br />\r\n </div>\r\n </ScrollableAnchor>\r\n <ScrollableAnchor id={\"CesiumSection\"}>\r\n <div className=\"FAQ_Pricing gettingStartedSection\">\r\n <h5 className=\"headersHowTo\" style={{ color: \"\" }}>\r\n {this.state.cloudProjectId <= 0 ?\r\n <React.Fragment>How to access {this.state.SGSpremiumData} data with a Cesium viewer</React.Fragment>\r\n : \"Cesium viewer\"}\r\n </h5>\r\n <div>\r\n <p>\r\n You can access {this.state.SGSpremiumData} data in your Cesium viewer.\r\n </p>\r\n <div>\r\n <b>To access premium data layers with your Cesium viewer:</b>\r\n </div>\r\n <ul className=\"FAQ_ul\">\r\n <li>\r\n In your main Cesium project HTML file, in the head section,\r\n add the following line: <br />\r\n <p className=\"codeScript\">\r\n {\r\n `<script src=\"${this.state.SGBaseUrl}/TerraExplorerWeb/js/SGSProvider/SGSProvider.v2.js\"></script>` \r\n }\r\n </p>\r\n </li>\r\n <li>\r\n Asynchronously initialize the SGSProvider object to connect to the SkylineCloud\r\n using one of the following methods: \r\n <br /><br />\r\n <ul>\r\n <li>\r\n Connect as a guest user only to public layers, e.g.,\r\n <p className=\"codeScript\">\r\n { this.state.siteName ? `SGSProvider.connect(\"${this.state.SGBaseUrl}/${this.state.siteName}\");` : `SGSProvider.connect(\"${this.state.SGBaseUrl}/[CUSTOMER_KEY]\");` }\r\n </p> \r\n </li>\r\n <li>\r\n Connect with a token, e.g.,\r\n <p className=\"codeScript\">\r\n { this.state.siteName ? `SGSProvider.connect(\"${this.state.SGBaseUrl}/${this.state.siteName}/${this.state.accessToken}\");` : `SGSProvider.connect(\"${this.state.SGBaseUrl}/[CUSTOMER_KEY]/[TOKEN]\");` } \r\n </p> \r\n </li>\r\n <li>\r\n Connect with a user and password, e.g.,\r\n <p className=\"codeScript\">\r\n { this.state.siteName ? `SGSProvider.connect(\"${this.state.SGBaseUrl}/${this.state.siteName}\", username, password);` : `SGSProvider.connect(\"${this.state.SGBaseUrl}/[CUSTOMER_KEY]\", username, password);` } \r\n </p> \r\n </li> \r\n </ul>\r\n </li>\r\n <li>\r\n <p>Load layers in either of the following ways:</p>\r\n <ul>\r\n <li><b>Load all Layers in a Project</b> - Load all layers in a specific project. The layerType parameter can be left empty to load all supported layer types in the project, or a specific layer type can be passed to load only layers of that type. More than one layer type can be passed in a single call. The supported layer types are: {this.state.cloudProjectId > 0 ? \" _LayerType.MESH and _LayerType.IMAGERY\" : \" _LayerType.MESH, _LayerType.POINT_CLOUD, _LayerType.IMAGERY, and _LayerType.ELEVATION\"}:\r\n <p className=\"codeScript\">\r\n SGSProvider.loadLayersFromProject(project, layerType);\r\n </p>\r\n The following example loads all mesh and imagery layers in the { this.state.SGSpremiumDataProjectID } project:\r\n <p className=\"codeScript\">\r\n { `SGSProvider.loadLayersFromProject(\"${this.state.cloudProjectId > 0 ? this.state.cloudKmlLayerDesc : this.state.SGSpremiumDataProjectID}\", [_LayerType.MESH, _LayerType.IMAGERY]);` } \r\n </p>\r\n </li> \r\n </ul> \r\n <ul>\r\n <li><b>Load Individual Layers</b> - Load individual layers by ID, alias, or tag. For loading by tag, set the resourceType to _ResourceType.TAG:\r\n <p className=\"codeScript\">\r\n SGSProvider.loadLayers(resourceID, resourceType, layerType);\r\n </p>\r\n <ul>\r\n <li>\r\n This example loads a single layer by ID:\r\n <p className=\"codeScript\">\r\n SGSProvider.loadLayers(\"123456\");\r\n </p>\r\n </li>\r\n <li>\r\n This example loads a single layer by alias:\r\n <p className=\"codeScript\">\r\n SGSProvider.loadLayers(\"SomeAlias\");\r\n </p>\r\n </li>\r\n <li>\r\n This example loads all layers of a specified LayerType that share a common tag. The supported layer types are: {this.state.cloudProjectId > 0 ? \" _LayerType.MESH and _LayerType.IMAGERY\" : \" _LayerType.MESH, _LayerType.POINT_CLOUD, _LayerType.IMAGERY, and _LayerType.ELEVATION\"}. For loading by tag, set the resourceType to _ResourceType.TAG:\r\n <p className=\"codeScript\">\r\n SGSProvider.loadLayers(\"TagName\", _ResourceType.TAG, [_LayerType.MESH]);\r\n </p>\r\n </li>\r\n </ul>\r\n </li> \r\n </ul> \r\n </li> \r\n </ul>\r\n </div> \r\n </div>\r\n </ScrollableAnchor>\r\n {\r\n this.state.SGSpremiumDataProjectID == this.state.AtlasILProjectID\r\n ?\r\n <div>\r\n <ScrollableAnchor id={\"QGISWMSSection\"}>\r\n <div className=\"FAQ_Pricing gettingStartedSection\">\r\n <h5 className=\"headersHowTo\">\r\n {this.state.cloudProjectId <= 0 ?\r\n <React.Fragment>How to access {this.state.SGSpremiumData} 2D data with QGIS</React.Fragment>\r\n : \"QGIS (2D Data)\"}\r\n </h5>\r\n <div>\r\n <p>\r\n You can access {this.state.SGSpremiumData} WMS/WMTS\r\n layers in your QGIS viewer.\r\n </p>\r\n <div>\r\n <b>Create a new WMS/WMTS connection</b>\r\n </div>\r\n <ul className=\"FAQ_ul\">\r\n <li>\r\n From the <b>Layer</b> menu, select{\" \"}\r\n <b>Data Source Manager</b>.\r\n </li>\r\n <li>\r\n In the <b>Navigation</b> pane, select <b>WMS/WMTS</b>.\r\n </li>\r\n <li>\r\n In the <b>Layers</b> tab, click <b>New</b>.\r\n </li>\r\n <li>\r\n In the <b>Create a New WMS/WMTS Connection</b> dialog box, enter the\r\n following:\r\n <ul>\r\n <li>\r\n <b>Name</b> - Enter a name for the connection.\r\n </li>\r\n <li>\r\n <b>WMS URL</b> -{\" \"}\r\n <b className=\"copyTextForEsriPortalURLQGISWMS\">\r\n {this.state && this.state.siteName !== \"\"\r\n ? this.state.SGBaseUrl + \"/\" +\r\n this.state.siteName +\r\n \"/streamer.ashx?token=\" +\r\n this.state.accessToken\r\n : this.state.SGBaseUrl + \"/[CUSTOMER_KEY]/streamer.ashx?token=[Access_Token]\"}\r\n </b>\r\n <button className=\"btn btn-outline-primary text-capitalize ml-1 copyToClipboard\" onClick={(event) => {\r\n var currentTarget = event.currentTarget;\r\n SLCommon.copyToClipboard(document.getElementsByClassName(\"copyTextForEsriPortalURLQGISWMS\")[0])\r\n .then(() => { currentTarget.innerText = this.state.copiedText });\r\n }}>{this.state.copyText}</button>\r\n </li>\r\n <li>\r\n <b>WMTS URL</b> -{\" \"}\r\n <b className=\"copyTextForEsriPortalURLQGISWMTS\">\r\n {this.state && this.state.siteName !== \"\"\r\n ? this.state.SGBaseUrl + \"/\" +\r\n this.state.siteName +\r\n \"/streamer.ashx?token=\" +\r\n this.state.accessToken +\r\n \"&request=GetCapabilities&Version=1.0.0&Service=WMTS\"\r\n : this.state.SGBaseUrl + \"/[CUSTOMER_KEY]/streamer.ashx?token=[Access_Token]&request=GetCapabilities&Version=1.0.0&Service=WMTS\"}\r\n </b>\r\n <button className=\"btn btn-outline-primary text-capitalize ml-1 copyToClipboard\" onClick={(event) => {\r\n var currentTarget = event.currentTarget;\r\n SLCommon.copyToClipboard(document.getElementsByClassName(\"copyTextForEsriPortalURLQGISWMTS\")[0])\r\n .then(() => { currentTarget.innerText = this.state.copiedText });\r\n }}>{this.state.copyText}</button>\r\n </li>\r\n </ul>\r\n </li>\r\n <li>\r\n Click <b>OK</b>.\r\n </li>\r\n </ul>\r\n <ul className=\"FAQ_ul\">\r\n <span style={{ marginLeft: \"-40px\" }}>\r\n <b>Load a layer:</b>\r\n </span>\r\n <li>\r\n In the <b>Data Source Manager</b>, click the <b>Layers</b>{\" \"}\r\n tab, and select the new connection’s name.\r\n </li>\r\n <li>\r\n Click <b>Connect</b>.\r\n </li>\r\n <li>\r\n <b>Select the layer to access</b>.\r\n </li>\r\n <li>\r\n Click <b>Add</b> and <b>Close</b>.\r\n <br />\r\n <img src={QGIS_Add_Layer} />\r\n </li>\r\n </ul>\r\n </div>\r\n <br />\r\n </div>\r\n </ScrollableAnchor>\r\n {this.state.cloudProjectId <= 0 ? <div>\r\n <ScrollableAnchor id={\"EsriSection\"}>\r\n <div className=\"FAQ_Pricing gettingStartedSection\">\r\n <h5 className=\"headersHowTo\">\r\n How to access {this.state.SGSpremiumData} 3D data with Esri\r\n viewers\r\n </h5>\r\n <div>\r\n <p>\r\n You can access SkylineCloud 3DML layers exposed as i3S in your\r\n Esri viewer in ArcGIS Earth, ArcGIS Pro and ArcGIS Online.\r\n <br />\r\n <b>Note: </b>The following Esri versions are supported: ArcGIS\r\n Pro v2.9.0 and above, ArcGIS Earth v1.14, and ArcGIS Online\r\n January 2022 update.\r\n </p>\r\n <b />\r\n </div>\r\n <div>\r\n <b>In ArcGIS Earth:</b>\r\n <br />\r\n </div>\r\n <ul className=\"FAQ_ul\">\r\n <span style={{ marginLeft: \"-40px\" }}>\r\n <b>Connect to SkylineGlobe Server</b>\r\n </span>\r\n <li>\r\n Open the <b>Portal Manager</b>:\r\n <br />\r\n <img src={Esri_Portal_Manager} />\r\n </li>\r\n <li>\r\n {\" \"}\r\n Click <b>Add Portal</b>. The <b>Add Portal</b> dialog box is\r\n displayed.\r\n <br />\r\n </li>\r\n <li>\r\n In the <b>URL </b>copy-paste the following URL, and click{\" \"}\r\n <b>OK</b>:<br /> {\" \"}\r\n <b className=\"copyTextForEsriPortalURL\">\r\n {this.state && this.state.siteName !== \"\"\r\n ? this.state.SGBaseUrl + \"/\" +\r\n this.state.siteName +\r\n \"/\" +\r\n this.state.accessToken +\r\n \"/arcgis\"\r\n : this.state.SGBaseUrl + \"/[CUSTOMER_KEY]/[TOKEN]/arcgis\"}\r\n </b>\r\n <button className=\"btn btn-outline-primary text-capitalize ml-1 copyToClipboard\" onClick={(event) => {\r\n var currentTarget = event.currentTarget;\r\n SLCommon.copyToClipboard(document.getElementsByClassName(\"copyTextForEsriPortalURL\")[0])\r\n .then(() => { currentTarget.innerText = this.state.copiedText });\r\n }}>{this.state.copyText}</button>\r\n </li>\r\n <li>\r\n In the <b>Portal Manager</b>, right-click the{\" \"}\r\n <b>SkylineCloud</b> connection, and select{\" \"}\r\n <b>Set as Active Portal</b>.\r\n </li>\r\n </ul>\r\n <ul className=\"FAQ_ul\">\r\n <span style={{ marginLeft: \"-40px\" }}>\r\n <b>Load a layer</b>\r\n </span>\r\n <li>\r\n {\" \"}\r\n Click <b>Add Data {\" \"}</b>\r\n {\" \"} <img src={Esri_Add_Data} />.\r\n </li>\r\n <li>\r\n Do either of the following:\r\n <ul>\r\n <li>\r\n In the <b>Add Data </b>dialog box, click <b>Portal</b>,\r\n and then in the <b>My Content</b> list, select the layer\r\n you want.\r\n </li>\r\n <li>\r\n In the <b>Add Data </b>dialog box, click{\" \"}\r\n <b>Enter a URL</b>, and then in the <b>URL</b> field\r\n copy-paste the following URL, and click <b>OK</b>:{\" \"}\r\n <b className=\"copyTextForArcGisEarthLayer\">\r\n {this.state && this.state.siteName !== \"\"\r\n ? this.state.SGBaseUrl + \"/\" +\r\n this.state.siteName +\r\n \"/\" +\r\n this.state.accessToken +\r\n \"/arcgis/rest/services/\" +\r\n (this.state.cloudProjectId > 0 && this.state.cloudProject.Cloud3dLayerDesc ? this.state.cloudProject.Cloud3dLayerDesc : \"[LayerName].[LayerID]\") +\r\n \"/SceneServer\"\r\n : this.state.SGBaseUrl + \"/[CUSTOMER_KEY]/[TOKEN]/arcgis/rest/services/\" +\r\n (this.state.cloudProjectId > 0 && this.state.cloudProject.Cloud3dLayerDesc ? this.state.cloudProject.Cloud3dLayerDesc : \"[LayerName].[LayerID]\") +\r\n \"/SceneServer\"}\r\n </b>\r\n <button className=\"btn btn-outline-primary text-capitalize ml-1 copyToClipboard\" onClick={(event) => {\r\n var currentTarget = event.currentTarget;\r\n SLCommon.copyToClipboard(document.getElementsByClassName(\"copyTextForArcGisEarthLayer\")[0])\r\n .then(() => { currentTarget.innerText = this.state.copiedText });\r\n }}>{this.state.copyText}</button>\r\n </li>\r\n </ul>\r\n </li>\r\n <li>\r\n Click <b>Add</b>.\r\n </li>\r\n </ul>\r\n <div>\r\n <b>In ArcGIS Pro:</b>\r\n <br />\r\n </div>\r\n <ul className=\"FAQ_ul\">\r\n <span style={{ marginLeft: \"-40px\" }}>\r\n <b>Create a project</b>\r\n </span>\r\n <li>Create a new project using a Blank template.</li>\r\n <li>\r\n On the <b>Blank Templates</b>, from the <b>New tab</b>, select{\" \"}\r\n <b>Global Scene.</b>\r\n </li>\r\n <li>\r\n Enter a Project name and the project location and click{\" \"}\r\n <b>OK</b>.\r\n </li>\r\n </ul>\r\n <ul className=\"FAQ_ul\">\r\n <span style={{ marginLeft: \"-40px\" }}>\r\n <b>Connect to SkylineGlobe Server</b>\r\n </span>\r\n <li>\r\n Click the <b>Project</b> tab.\r\n </li>\r\n <li>\r\n In the <b>Portals</b> page, click <b>Add Portal</b>.\r\n </li>\r\n <li>\r\n In the URL field enter the following, and click <b>OK</b>:\r\n <br />\r\n <b className=\"copyTextForArcGISProURL\">\r\n {this.state && this.state.siteName !== \"\"\r\n ? this.state.SGBaseUrl + \"/\" +\r\n this.state.siteName +\r\n \"/\" +\r\n this.state.accessToken +\r\n \"/arcgis\"\r\n : this.state.SGBaseUrl + \"/[CUSTOMER_KEY]/[TOKEN]/arcgis\"}\r\n </b>\r\n <button className=\"btn btn-outline-primary text-capitalize ml-1 copyToClipboard\" onClick={(event) => {\r\n var currentTarget = event.currentTarget;\r\n SLCommon.copyToClipboard(document.getElementsByClassName(\"copyTextForArcGISProURL\")[0])\r\n .then(() => { currentTarget.innerText = this.state.copiedText });\r\n }}>{this.state.copyText}</button>\r\n </li>\r\n <li>\r\n In the <b>Portal Manager</b>, right-click the{\" \"}\r\n <b>SkylineCloud</b> connection, and select{\" \"}\r\n <b>Set as Active Portal.</b>\r\n </li>\r\n <li>Click the back arrow to return to the scene.</li>\r\n <br />\r\n <span style={{ marginLeft: \"-40px\" }}>\r\n <b>Load a layer</b>\r\n </span>\r\n <li>\r\n Do either of the following to load the{\" \"}\r\n {this.state.SGSpremiumData} data:\r\n <ul>\r\n <li>\r\n In the <b>Catalog</b> pane, on the <b>Portal</b> tab, in\r\n the <b>My Content section</b>, right-click the layer you\r\n want, and select <b>Add to Current Map</b>.\r\n </li>\r\n <li>\r\n On the <b>Map</b> tab, from the <b>Add Data</b> drop-down\r\n menu, select <b>Data from Path</b>. Then in the{\" \"}\r\n <b>Add Data From Path</b> dialog that opens, copy-paste\r\n the following URL, and click <b>Add</b>:{\" \"}\r\n <b className=\"copyTextForArcGISProLayerURL\">\r\n {this.state && this.state.siteName !== \"\"\r\n ? this.state.SGBaseUrl + \"/\" + this.state.siteName + \"/\" +\r\n this.state.accessToken +\r\n \"/arcgis/rest/services/\" +\r\n (this.state.cloudProjectId > 0 && this.state.cloudProject.Cloud3dLayerDesc ? this.state.cloudProject.Cloud3dLayerDesc : \"[LayerName].[LayerID]\") +\r\n \"/SceneServer\"\r\n : this.state.SGBaseUrl + \"/[CUSTOMER_KEY]/[TOKEN]/arcgis/rest/services/\" +\r\n (this.state.cloudProjectId > 0 && this.state.cloudProject.Cloud3dLayerDesc ? this.state.cloudProject.Cloud3dLayerDesc : \"[LayerName].[LayerID]\") +\r\n \"/SceneServer\"}\r\n </b>\r\n <button className=\"btn btn-outline-primary text-capitalize ml-1 copyToClipboard\" onClick={(event) => {\r\n var currentTarget = event.currentTarget;\r\n SLCommon.copyToClipboard(document.getElementsByClassName(\"copyTextForArcGISProLayerURL\")[0])\r\n .then(() => { currentTarget.innerText = this.state.copiedText });\r\n }}>{this.state.copyText}</button>\r\n </li>\r\n </ul>\r\n </li>\r\n </ul>\r\n <div>\r\n <b>In ArcGIS Online:</b>\r\n <br />\r\n </div>\r\n <ul className=\"FAQ_ul\">\r\n <li>\r\n Open{\" \"}\r\n <a\r\n href=\"https://www.arcgis.com/home/webscene/viewer.html\"\r\n target=\"_blank\"\r\n >\r\n https://www.arcgis.com/home/webscene/viewer.html\r\n </a>\r\n </li>\r\n <li>Sign in with an ArcGIS account.</li>\r\n </ul>\r\n <ul className=\"FAQ_ul\">\r\n <span style={{ marginLeft: \"-40px\" }}>\r\n <b>Load a layer</b>\r\n </span>\r\n <li>\r\n Open the <b>Designer</b> by clicking on <b>Modify scene</b>.\r\n Then, click <b>Add Layers</b>, and then click{\" \"}\r\n <b>Enter layer URL</b>.\r\n <br />\r\n <img src={Esri_Online_Add_Layer} />\r\n </li>\r\n <li>\r\n In the URL field copy-paste the URL below, and click <b>OK</b>.\r\n <br />{\" \"}\r\n <b className=\"copyTextForArcGISOnlineURL\">\r\n {this.state && this.state.siteName !== \"\"\r\n ? this.state.SGBaseUrl + \"/\" + this.state.siteName + \"/\" +\r\n this.state.accessToken +\r\n \"/arcgis/rest/services/\" +\r\n (this.state.cloudProjectId > 0 && this.state.cloudProject.Cloud3dLayerDesc ? this.state.cloudProject.Cloud3dLayerDesc : \"[LayerName].[LayerID]\") +\r\n \"/SceneServer\"\r\n : this.state.SGBaseUrl + \"Default/[TOKEN]/arcgis/rest/services/\" +\r\n (this.state.cloudProjectId > 0 && this.state.cloudProject.Cloud3dLayerDesc ? this.state.cloudProject.Cloud3dLayerDesc : \"[LayerName].[LayerID]\") +\r\n \"/SceneServer\"}\r\n </b>\r\n <button className=\"btn btn-outline-primary text-capitalize ml-1 copyToClipboard\" onClick={(event) => {\r\n var currentTarget = event.currentTarget;\r\n SLCommon.copyToClipboard(document.getElementsByClassName(\"copyTextForArcGISOnlineURL\")[0])\r\n .then(() => { currentTarget.innerText = this.state.copiedText });\r\n }}>{this.state.copyText}</button>\r\n <br />\r\n <b>Note:</b> All SGS layers must be on public HTTPS servers.\r\n </li>\r\n <li>\r\n Click <b>Add</b>.\r\n </li>\r\n </ul>\r\n </div>\r\n </ScrollableAnchor>\r\n <ScrollableAnchor id={\"EsriWMSSection\"}>\r\n <div className=\"FAQ_Pricing gettingStartedSection\">\r\n <h5 className=\"headersHowTo\">\r\n How to access {this.state.SGSpremiumData} 2D data with Esri\r\n viewers\r\n </h5>\r\n <div>\r\n <p>\r\n You can access {this.state.SGSpremiumData} 2D raster layers in\r\n your Esri viewer in ArcGIS Earth, ArcGIS Pro and ArcGIS\r\n Online.\r\n <br />\r\n <b>Note: </b>The following Esri versions are supported: ArcGIS\r\n Pro v2.9.0 and above, ArcGIS Earth v1.14, and ArcGIS Online\r\n January 2022 update.\r\n </p>\r\n <b />\r\n </div>\r\n <div>\r\n <b>In ArcGIS Earth:</b>\r\n <br />\r\n <p>\r\n <b>Load layers</b>\r\n </p>\r\n </div>\r\n <ul className=\"FAQ_ul\">\r\n <li>\r\n Open the <b>Settings</b> dialog, and under the <b>General</b>{\" \"}\r\n tab, set the <b>Spatial Reference</b> to <b>WGS 84</b>.\r\n </li>\r\n <li>\r\n {\" \"}\r\n Click <b>Add Data {\" \"}</b>\r\n {\" \"} <img src={Esri_Add_Data} />\r\n </li>\r\n <li>\r\n In the Add Data dialog box, click <b>Enter a URL</b>, and then\r\n in the Type field, select <b>OGC WMS</b> or <b>OGC WMTS</b>.\r\n </li>\r\n <li>\r\n In the <b>URL</b> field, copy-paste the following URL, select\r\n the required layers, and click <b>OK</b>:\r\n <br />\r\n <b className=\"copyTextForEsriPortalURL2D\">\r\n {this.state && this.state.siteName !== \"\"\r\n ? this.state.SGBaseUrl + \"/\" +\r\n this.state.siteName +\r\n \"/\" +\r\n this.state.accessToken +\r\n \"/arcgis/rest/services/wmsserver\"\r\n : this.state.SGBaseUrl + \"/[CUSTOMER_KEY]/[TOKEN]/arcgis/rest/services/wmsserver\"}\r\n </b>\r\n <button className=\"btn btn-outline-primary text-capitalize ml-1 copyToClipboard\" onClick={(event) => {\r\n var currentTarget = event.currentTarget;\r\n SLCommon.copyToClipboard(document.getElementsByClassName(\"copyTextForEsriPortalURL2D\")[0])\r\n .then(() => { currentTarget.innerText = this.state.copiedText });\r\n }}>{this.state.copyText}</button>\r\n </li>\r\n <li>\r\n Click <b>Add</b>.\r\n </li>\r\n </ul>\r\n <div>\r\n <b>In ArcGIS Pro:</b>\r\n <br />\r\n </div>\r\n <ul className=\"FAQ_ul\">\r\n <span style={{ marginLeft: \"-40px\" }}>\r\n <b>Create a project</b>\r\n </span>\r\n <li>\r\n On the <b>Blank Templates </b>, from the <b>New tab</b>,\r\n select <b>Global Scene.</b>\r\n </li>\r\n <li>\r\n Enter a Project name and the project location and click{\" \"}\r\n <b>OK</b>.\r\n </li>\r\n </ul>\r\n <ul className=\"FAQ_ul\">\r\n <span style={{ marginLeft: \"-40px\" }}>\r\n <b>Load a layer</b>\r\n </span>\r\n <li>\r\n On the <b>Insert</b> tab, click <b>Add Item</b>, and select\r\n either <b>New WMS Server</b> or <b>New WMTS Server</b>.\r\n </li>\r\n <li>\r\n In the <b>URL</b> field enter the following, and click{\" \"}\r\n <b>OK</b>:\r\n <br />\r\n <b>For WMS:</b>\r\n <br />\r\n <b className=\"copyTextForEsriPortalURL2DWMS\">\r\n {this.state && this.state.siteName !== \"\"\r\n ? this.state.SGBaseUrl + \"/\" +\r\n this.state.siteName +\r\n \"/\" +\r\n this.state.accessToken +\r\n \"/arcgis/rest/services/wmsserver\"\r\n : this.state.SGBaseUrl + \"/[CUSTOMER_KEY]/[TOKEN]/arcgis/rest/services/wmsserver\"}\r\n </b>\r\n <button className=\"btn btn-outline-primary text-capitalize ml-1 copyToClipboard\" onClick={(event) => {\r\n var currentTarget = event.currentTarget;\r\n SLCommon.copyToClipboard(document.getElementsByClassName(\"copyTextForEsriPortalURL2DWMS\")[0])\r\n .then(() => { currentTarget.innerText = this.state.copiedText });\r\n }}>{this.state.copyText}</button>\r\n <br />\r\n <b>For WMTS:</b>\r\n <br />\r\n <b className=\"copyTextForEsriPortalURL2DWMTS\">\r\n {this.state && this.state.siteName !== \"\"\r\n ? this.state.SGBaseUrl + \"/\" +\r\n this.state.siteName +\r\n \"/\" +\r\n this.state.accessToken +\r\n \"/arcgis/rest/services/mapserver\"\r\n : this.state.SGBaseUrl + \"/[CUSTOMER_KEY]/[TOKEN]/arcgis/rest/services/mapserver\"}\r\n </b>\r\n <button className=\"btn btn-outline-primary text-capitalize ml-1 copyToClipboard\" onClick={(event) => {\r\n var currentTarget = event.currentTarget;\r\n SLCommon.copyToClipboard(document.getElementsByClassName(\"copyTextForEsriPortalURL2DWMTS\")[0])\r\n .then(() => { currentTarget.innerText = this.state.copiedText });\r\n }}>{this.state.copyText}</button>\r\n </li>\r\n <li>Click OK.</li>\r\n <li>\r\n In the <b>Catalog</b> pane, on the <b>Favorites</b> tab, open\r\n the connection that recently added, right-click the layer you\r\n want, and select <b>Add to Current Map</b>.\r\n </li>\r\n </ul>\r\n <div>\r\n <b>In ArcGIS Online:</b>\r\n <br />\r\n <p>\r\n <b>Connect to SkylineGlobe Server</b>\r\n </p>\r\n </div>\r\n <ul className=\"FAQ_ul\">\r\n <li>\r\n Connect to a base map of spatial reference WGS 84{\" \"}\r\n <a\r\n href=\"https://www.arcgis.com/home/group.html?id=4c790318395940c18a16e8acd721de25#overview\"\r\n target=\"_blank\"\r\n >\r\n https://www.arcgis.com/home/group.html?id=4c790318395940c18a16e8acd721de25#overview\r\n </a>\r\n </li>\r\n <li>\r\n Hover over the thumbnail of the layer you want to add, and\r\n click <b>Open in Map Viewer</b>.\r\n </li>\r\n <li>\r\n Click <b>Open in Map Viewer Classic</b>.\r\n </li>\r\n <li>Log in with an ArcGIS account.</li>\r\n </ul>\r\n <ul className=\"FAQ_ul\">\r\n <span style={{ marginLeft: \"-40px\" }}>\r\n <b>Load a layer</b>\r\n </span>\r\n <li>\r\n Click <b>Add</b>, and select <b>Add Layer from Web</b>. The\r\n Add Layer from Web dialog box is displayed.\r\n </li>\r\n <li>\r\n Select either <b>A WMS OGC Web Service</b> or{\" \"}\r\n <b>A WMTS OGC Web Service</b>.\r\n </li>\r\n <li>\r\n <b>Copy-paste the following URL</b>:\r\n <br />\r\n <b className=\"copyTextForEsriPortalURLOnlineWMTS\">\r\n {this.state && this.state.siteName !== \"\"\r\n ? this.state.SGBaseUrl + \"/\" +\r\n this.state.siteName +\r\n \"/\" +\r\n this.state.accessToken +\r\n \"/arcgis/rest/services/wmsserver\"\r\n : this.state.SGBaseUrl + \"/[CUSTOMER_KEY]/[TOKEN]/arcgis/rest/services/wmsserver\"}\r\n </b>\r\n <button className=\"btn btn-outline-primary text-capitalize ml-1 copyToClipboard\" onClick={(event) => {\r\n var currentTarget = event.currentTarget;\r\n SLCommon.copyToClipboard(document.getElementsByClassName(\"copyTextForEsriPortalURLOnlineWMTS\")[0])\r\n .then(() => { currentTarget.innerText = this.state.copiedText });\r\n }}>{this.state.copyText}</button>\r\n <br />\r\n <b>Note: </b>All SGS layers must be on public HTTPS servers.\r\n </li>\r\n <li>\r\n Click <b>Get Layers.</b>\r\n </li>\r\n <li>\r\n Check all the layers you want to add and click{\" \"}\r\n <b>Add Layer</b>.\r\n </li>\r\n </ul>\r\n </div>\r\n </ScrollableAnchor>\r\n </div> : null}\r\n </div>\r\n :\r\n \"\"\r\n } \r\n <br />\r\n <br />\r\n <br />\r\n </div>\r\n </main>\r\n );\r\n }\r\n}\r\n\r\nexport default FAQ;\r\n","import React, { Component } from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\nimport AOS from \"aos\";\r\nimport HeaderDashBoard from \"../img/marketingPage/Depositphotos_31419439_xl-2015.png\";\r\nimport \"./overview.css\";\r\nimport \"../dashcore/html/css/aos.css\";\r\nimport \"../dashcore/html/css/bootstrap.css\";\r\nimport \"../dashcore/html/css/cookieconsent.min.css\";\r\nimport \"../dashcore/html/css/fontawesome-all.css\";\r\nimport \"../dashcore/html/css/helper.css\";\r\nimport \"../dashcore/html/css/magnific-popup.css\";\r\nimport \"../dashcore/html/css/odometer-theme-minimal.css\";\r\nimport \"../dashcore/html/css/pe-icon-7-stroke.css\";\r\nimport \"../dashcore/html/css/prettify.css\";\r\nimport \"../dashcore/html/css/simplebar.css\";\r\nimport \"../dashcore/html/css/smart_wizard.css\";\r\nimport \"../dashcore/html/css/smart_wizard_theme_arrows.css\";\r\nimport \"../dashcore/html/css/smart_wizard_theme_circles.css\";\r\nimport \"../dashcore/html/css/smart_wizard_theme_dots.css\";\r\nimport \"../dashcore/html/css/demo.css\";\r\nimport \"../dashcore/html/css/swiper.css\";\r\nimport \"../dashcore/html/css/styles.css\";\r\nimport ThreeDModelImg from \"../img/marketingPage/3d-model.png\";\r\nimport StoreImg from \"../img/marketingPage/store.png\";\r\nimport MergeImg from \"../img/marketingPage/merge.png\";\r\nimport SuperiorPrecision from \"../img/marketingPage/computer1.png\";\r\nimport Interoperability from \"../img/marketingPage/computer2.png\";\r\nimport ViewshedAnalysis from \"../img/marketingPage/icon_viewshed.png\";\r\nimport SlopeAnalysis from \"../img/marketingPage/icon_slope.png\";\r\nimport DistanceAnalysis from \"../img/marketingPage/icon_distance.png\";\r\nimport ContourAnalysis from \"../img/marketingPage/icon_contour.png\";\r\nimport FloodAnalysis from \"../img/marketingPage/icon_flood.png\";\r\nimport ShadowAnalysis from \"../img/marketingPage/icon_shadow.png\";\r\nimport VolumeAnalysis from \"../img/marketingPage/icon_volume.png\";\r\nimport ComparisonAnalysis from \"../img/marketingPage/icon_comparison.png\";\r\nimport MapImage from \"../img/marketingPage/map_production.png\";\r\nimport LayersImage from \"../img/marketingPage/layers.png\";\r\nimport PublishingToSecureImage from \"../img/marketingPage/publishing_to_secure.png\";\r\nimport Avatar1 from \"../dashcore/html/img/avatar/1.jpg\";\r\nimport OrangeFlag from \"../img/marketingPage/flag_orange_small.png\";\r\nimport BlueFlag from \"../img/marketingPage/flag_blue_small.png\";\r\n\r\nclass LosAngeles extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = { isTop: true };\r\n AOS.init();\r\n this.props.props.setHeaderClassName(true, this.state.isTop);\r\n }\r\n\r\n componentDidMount() {\r\n window.addEventListener(\"scroll\", this.onScroll, false);\r\n }\r\n\r\n componentWillUnmount() {\r\n this.props.props.setHeaderClassName(false, this.state.isTop);\r\n window.removeEventListener(\"scroll\", this.onScroll, false);\r\n }\r\n\r\n onScroll = () => {\r\n const isTop = window.scrollY < 100;\r\n if (isTop !== this.state.isTop) {\r\n this.setState({ isTop });\r\n this.props.props.setHeaderClassName(true, isTop);\r\n }\r\n };\r\n\r\n state = {};\r\n render() {\r\n return (\r\n <div className=\"overviewDiv\">\r\n <header className=\"header online-payment-header section color-1 alpha-8\">\r\n <div id=\"stripes\">\r\n <span />\r\n <span />\r\n <span />\r\n <span />\r\n <span />\r\n </div>\r\n <div className=\"container overflow-hidden bring-to-front\">\r\n <div className=\"row\">\r\n <div className=\"col-md-6 SLAtlasMainTitle\">\r\n <h1 className=\"color-1 bold\">Skyline Atlas Los Angeles</h1>\r\n <p className=\"lead col-md-8\" style={{ paddingLeft: \"0px\" }}>\r\n High Resolution 3D Map Data Service for Los Angeles metro area\r\n </p>\r\n <nav className=\"nav mt-5\">\r\n <Link\r\n to=\"/atlasUs/Pricing\"\r\n className=\"nav-link btn btn-rounded btn-success mainTitleTryBtn\"\r\n >\r\n 7-day free trial\r\n </Link>\r\n </nav>\r\n </div>\r\n <div className=\"col-md-6\">\r\n <img\r\n style={{ width: \"80%\", marginTop: \"2.5rem\" }}\r\n src={HeaderDashBoard}\r\n className=\"img-hero img-responsive absolute-md\"\r\n alt=\"\"\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n <br />\r\n <br />\r\n <br />\r\n </header>\r\n <section id=\"features\" className=\"section bg-1 edge top-left\" />\r\n <section id=\"features\" className=\"tableSection section\">\r\n <div className=\"tableSectionDiv container shadow\">\r\n <div className=\"row gap-y mt-5 mb-5 pt-4 pb-4 text-center text-md-center\">\r\n <div className=\"col-md-4 py-4 rounded shadow-hover overviewVl\">\r\n <img src={ThreeDModelImg} />\r\n <h5 className=\"bold\">Stunning Visualizations</h5>\r\n <p className=\"\">\r\n Online access to ready-to-use, high resolution, 2D and 3D\r\n models of major US cities\r\n </p>\r\n </div>\r\n <div className=\"col-md-4 py-4 rounded shadow-hover overviewVl\">\r\n <img src={MergeImg} />\r\n <h5 className=\"bold\">Inform and Empower </h5>\r\n <p className=\"\">\r\n Merge Atlas data with your own proprietary data to provide\r\n powerful location intelligence\r\n </p>\r\n </div>\r\n <div className=\"col-md-4 py-4 rounded shadow-hover\">\r\n <img src={StoreImg} />\r\n <h5 className=\"bold\">Store and Secure</h5>\r\n <p className=\"\">\r\n Store masses of 3D geospatial data for end users in a secure,\r\n access-controlled environment\r\n </p>\r\n </div>\r\n </div>\r\n </div>\r\n <br />\r\n <br />\r\n <br />\r\n </section>\r\n\r\n <section className=\"section edge\">\r\n <div className=\"shape-wrapper\">\r\n <div className=\"shape shape-background shape-right\" />\r\n <div className=\"shape shape-background top shape-left bg-4 op-1\" />\r\n </div>\r\n <div className=\"container pb-9\">\r\n <div className=\"row gap-y align-items-center py-5\">\r\n <div className=\"col-md-6\">\r\n <figure data-aos=\"fade-right\" data-aos-duration=\"1000\">\r\n <img\r\n src={SuperiorPrecision}\r\n className=\"img-responsive w-80\"\r\n alt=\"\"\r\n />\r\n </figure>\r\n </div>\r\n <div className=\"col-md-6\">\r\n <h2 className=\"bold text-capitalize textBulletsSections\">\r\n Superior Precision\r\n </h2>\r\n <p className=\"regular textBulletsParagraph\">\r\n Online access to ready-to-use, high resolution, 3D models of\r\n major US cities\r\n </p>\r\n <ul className=\"listClass textBulletsUL\">\r\n <li className=\"\">World-class TerraExplorer 3D viewers</li>\r\n <li className=\"\">Support for third-party viewers</li>\r\n <li className=\"\">New cities added monthly</li>\r\n <li className=\"\">Regular data updates</li>\r\n <li className=\"\">Accurate, geo-referenced maps</li>\r\n </ul>\r\n <Link\r\n to=\"/atlasUs/pricing#pricingHeader\"\r\n className=\"btn gradient gradient-43 color-1 btn-rounded btn-outline-1 bw-2 bold mt-4\"\r\n >\r\n 7-day free trial\r\n </Link>\r\n </div>\r\n </div>\r\n <div className=\"row gap-y align-items-center py-5\">\r\n <div className=\"col-md-6 order-md-2\">\r\n <figure data-aos=\"fade-left\" data-aos-duration=\"1000\">\r\n <img\r\n src={Interoperability}\r\n className=\"img-responsive w-80\"\r\n alt=\"\"\r\n />\r\n </figure>\r\n </div>\r\n <div className=\"col-md-6\">\r\n <h2 className=\"bold text-capitalize textBulletsSections\">\r\n Interoperability\r\n </h2>\r\n <p className=\"regular textBulletsParagraph\">\r\n Data is available in a range of formats for compatibility with\r\n a vast number of CAD and 3D solutions\r\n </p>\r\n <ul className=\"listClass textBulletsUL\">\r\n <li className=\"\">Skyline 3DML</li>\r\n <li className=\"\">Cesium 3D Tile</li>\r\n <li className=\"\">Esri i3S</li>\r\n <li className=\"\">True-Orthophotos</li>\r\n </ul>\r\n <Link\r\n to=\"/atlasUs/pricing#pricingHeader\"\r\n className=\"btn gradient gradient-43 color-1 btn-rounded btn-outline-1 bw-2 bold mt-4\"\r\n >\r\n 7-day free trial\r\n </Link>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"container pb-9\">\r\n <div className=\"section-heading mb-6 text-center\">\r\n <h2 className=\"pb-3\">Powerful Analysis</h2>\r\n <h5 className=\"\">\r\n Increase understanding and improve decision making with a wide\r\n range of versatile and configurable analysis tools that provide\r\n precise, actionable data:\r\n </h5>\r\n </div>\r\n <div\r\n align=\"center\"\r\n className=\"row gap-y text-left text-md-left tableSection\"\r\n >\r\n <div className=\"col-md-2 col-xs-3 col-3 px-md-5 ml-9 mb-3 shadow shadow-hover tableSectionDiv analysisFirstCard\">\r\n <img src={ViewshedAnalysis} className=\"img-responsive\" />\r\n <h6 className=\"mt-3\">Viewshed</h6>\r\n </div>\r\n <div className=\"col-md-2 col-xs-3 col-3 px-md-5 ml-4 mb-3 shadow shadow-hover tableSectionDiv\">\r\n <img src={DistanceAnalysis} className=\"img-responsive\" />\r\n <h6 className=\"mt-3\">Distance</h6>\r\n </div>\r\n <div className=\"col-md-2 col-xs-3 col-3 px-md-5 ml-4 mb-3 shadow shadow-hover tableSectionDiv\">\r\n <img src={FloodAnalysis} className=\"img-responsive\" />\r\n <h6 className=\"mt-3\">Flood</h6>\r\n </div>\r\n <div className=\"col-md-2 col-xs-3 col-3 px-md-5 ml-4 mb-3 shadow shadow-hover tableSectionDiv\">\r\n <img src={VolumeAnalysis} className=\"img-responsive\" />\r\n <h6 className=\"mt-3\">Volume</h6>\r\n </div>\r\n <div className=\"col-md-2 col-xs-3 col-3 px-md-5 ml-9 mb-3 shadow shadow-hover tableSectionDiv analysisFirstCard\">\r\n <img src={SlopeAnalysis} className=\"img-responsive\" />\r\n <h6 className=\"mt-3\">Slope</h6>\r\n </div>\r\n <div className=\"col-md-2 col-xs-3 col-3 px-md-5 ml-4 mb-3 shadow shadow-hover tableSectionDiv\">\r\n <img src={ContourAnalysis} className=\"img-responsive\" />\r\n <h6 className=\"mt-3\">Contour</h6>\r\n </div>\r\n <div className=\"col-md-2 col-xs-3 col-3 px-md-5 ml-4 mb-3 shadow shadow-hover tableSectionDiv\">\r\n <img src={ShadowAnalysis} className=\"img-responsive\" />\r\n <h6 className=\"mt-3\">Shadow</h6>\r\n </div>\r\n <div className=\"col-md-2 col-xs-3 col-3 px-md-5 ml-4 mb-3 shadow shadow-hover tableSectionDiv\">\r\n <img src={ComparisonAnalysis} className=\"img-responsive\" />\r\n <h6 className=\"mt-3\">Comparison</h6>\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n <section\r\n id=\"features\"\r\n className=\"section CustomizedSection parallax image-background center-bottom cover overlay gradient gradient-53 alpha-8 color-1\"\r\n >\r\n <div className=\"container overflow-hidden\">\r\n <div className=\"row\">\r\n <div className=\"col-md-10 col-lg-5\">\r\n <span className=\"titleCaption\">Customized Maps</span>\r\n <br />\r\n <br />\r\n <span className=\"paragraphClass\">\r\n Integrate Skyline Atlas data with your own proprietary data to\r\n create immersible, high-resolution 3D maps that promote deeper\r\n understanding\r\n </span>\r\n\r\n <div className=\"row analysisClass\">\r\n <div className=\"col-md-9 col-sm-5 customizeMapDiv\">\r\n <img\r\n // className={className}\r\n src={LayersImage}\r\n // style={{ transitionDelay: leftTransitionDelay }}\r\n />\r\n <p\r\n className=\"paragraphClass customizeMapParagraph\"\r\n // style={{ transitionDelay: leftTransitionDelay }}\r\n >\r\n Add annotations, models & layers to base map\r\n <br />\r\n {/* <Link to=\"/gettingStarted#publishDataSection\" className=\"\">\r\n Learn more >\r\n </Link> */}\r\n </p>\r\n </div>\r\n </div>\r\n <div className=\"row analysisClass\">\r\n <div className=\"col-md-9 col-sm-5 customizeMapDiv\">\r\n <img\r\n // className={className}\r\n src={PublishingToSecureImage}\r\n // style={{ transitionDelay: leftTransitionDelay }}\r\n />\r\n <p\r\n className=\"paragraphClass customizeMapParagraph\"\r\n // style={{ transitionDelay: leftTransitionDelay }}\r\n >\r\n Publishing to secure, access-controlled server\r\n <br />\r\n {/* <Link to=\"/gettingStarted#publishDataSection\" className=\"\">\r\n Learn more >\r\n </Link> */}\r\n </p>\r\n </div>\r\n </div>\r\n\r\n <p className=\"handwritten font-md highlight px-4\">\r\n Try it free\r\n </p>\r\n <nav className=\"nav mt-5\">\r\n <Link\r\n to=\"/atlasUs/pricing#pricingHeader\"\r\n className=\"nav-link mr-3 btn btn-rounded btn-success mainTitleTryBtn\"\r\n >\r\n Try Now{\" \"}\r\n </Link>\r\n </nav>\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n <section className=\"section bg-6 edge send-and-receive\">\r\n <div className=\"container bring-to-front\">\r\n <div className=\"container pb-2\">\r\n <div className=\"section-heading text-center\">\r\n <h2 className=\"pb-3\">Affordable and Scalable</h2>\r\n <h5 className=\"\">\r\n Flexible subscription packages to suit your specific user and\r\n storage needs\r\n </h5>\r\n </div>\r\n </div>\r\n <div className=\"row gap-y\">\r\n <div className=\"col-md-4\">\r\n <div className=\"rounded bg-1 shadow-box image-background contain bottom-background pl-md-9 p-4 pl-6 scale_upClass\">\r\n <p className=\"color-2 mt-3 ml-4\">\r\n Scale up as your business grows\r\n </p>\r\n </div>\r\n </div>\r\n <div className=\"col-md-4\">\r\n <div\r\n className=\"rounded bg-1 shadow-box image-background contain bottom-background pl-md-9 p-4 pl-6 quarterlyClass\"\r\n style={{\r\n backgroundImage: \"url(img / shps / payments / get.svg)\"\r\n }}\r\n >\r\n <p className=\"color-2 mt-3 ml-4\">\r\n Scale up/down quarterly (seasonal business)\r\n </p>\r\n </div>\r\n </div>\r\n <div className=\"col-md-4\">\r\n <div\r\n className=\"rounded bg-1 shadow-box image-background contain bottom-background p-4 pl-6 pl-md-9 subscriptionClass\"\r\n style={{\r\n backgroundImage: \"url(img / shps / payments / get.svg)\"\r\n }}\r\n >\r\n <p className=\"color-2 mt-3 ml-4\">\r\n Subscription plans as low as $100/month\r\n </p>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n <br />\r\n <br />\r\n <br />\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nexport default LosAngeles;\r\n","import React, { Component } from \"react\";\r\nimport { Link, Route, Redirect } from \"react-router-dom\";\r\nimport intl from \"react-intl-universal\";\r\nimport ScrollableAnchor from \"react-scrollable-anchor\";\r\nimport { goToAnchor } from 'react-scrollable-anchor';\r\nimport OpenLicenseManager from \"../../src/img/HowTos/OpenLicenseManager.gif\";\r\nimport OpenLicenseManagerTEPlus from \"../../src/img/HowTos/OpenLicenseManagerTEPlus.gif\";\r\nimport OpenLicenseManagerTEProPlus from \"../../src/img/HowTos/OpenLicenseManagerTEProPlus.gif\";\r\nimport LicenseTB from \"../../src/img/HowTos/LicenseTB.gif\"\r\nimport LicensePM from \"../../src/img/HowTos/LicensePM.gif\";\r\nimport CheckoutLicenseManagerTE from \"../../src/img/HowTos/CheckoutLicenseManagerTE.gif\";\r\nimport CheckinLicenseManagerTE from \"../../src/img/HowTos/CheckinLicenseManagerTE.gif\";\r\nimport CheckoutLicenseManagerTEPlus from \"../../src/img/HowTos/CheckoutLicenseManagerTEPlus.gif\";\r\nimport CheckinLicenseManagerTEPlus from \"../../src/img/HowTos/CheckinLicenseManagerTEPlus.gif\";\r\nimport CheckoutLicenseManagerTEProPlus from \"../../src/img/HowTos/CheckoutLicenseManagerTEProPlus.gif\";\r\nimport CheckinLicenseManagerTEProPlus from \"../../src/img/HowTos/CheckinLicenseManagerTEProPlus.gif\";\r\nimport CheckoutLicenseManagerTB from \"../../src/img/HowTos/CheckoutLicenseManagerTB.gif\";\r\nimport CheckinLicenseManagerTB from \"../../src/img/HowTos/CheckinLicenseManagerTB.gif\";\r\nimport CheckoutLicenseManagerPM from \"../../src/img/HowTos/CheckoutLicenseManagerPM.gif\";\r\nimport CheckinLicenseManagerPM from \"../../src/img/HowTos/CheckinLicenseManagerPM.gif\";\r\nimport CheckoutLicenseManagerSG from \"../../src/img/HowTos/CheckoutLicenseManagerSG.gif\";\r\nimport CheckinLicenseManagerSG from \"../../src/img/HowTos/CheckinLicenseManagerSG.gif\";\r\nimport TES_Menu from \"../img/HowTos/TES_Menu.png\";\r\nimport * as SLCommon from \"../slCommon\";\r\n\r\nclass GettingStartedProducts extends Component {\r\n constructor(props) {\r\n super(props);\r\n const hashString = window.location.hash;\r\n\r\n var queryParameters = \"\";\r\n if (window.location.search.match(/[?&]displayLogin[=]1/gi) !== null) {\r\n queryParameters = window.location.search\r\n .replace(/[?&]displaylogin=1[&]?/i, \"\")\r\n .replace(/[&]*$/, \"\")\r\n .replace(/^[?]/, \"\");\r\n if (queryParameters !== \"\") queryParameters = \"?\" + queryParameters;\r\n\r\n if (window.location.search.match(/[?&]accessKey[=]([^&]+)/i) === null) { // if diplayLogin is true and there is no token string in the url\r\n return (window.location =\r\n \"/store/signIn?redirect=/gettingStartedProducts\" +\r\n queryParameters +\r\n hashString);\r\n }\r\n }\r\n\r\n this.state = {\r\n packageDetails: [],\r\n siteName: \"\",\r\n packageId: \"\",\r\n SGSpremiumData: \"premium\",\r\n productAccessToken: \"[TOKEN]\",\r\n sgBaseUrl: \"https://cloud.skylineglobe.com\",\r\n origHashToScroll: window.location.hash.replace(/^[#](\\w+)/i, '$1'),\r\n copyText: 'Copy',\r\n copiedText: 'Copied',\r\n downloadPaths: {},\r\n selectedTerraExplorerPro: \"\",\r\n selectedTerraExplorerPlus: \"\",\r\n selectedTerraExplorerProPlus: \"\",\r\n selectedPhotoMesh: \"\",\r\n selectedPMGigaPixel: \"\",\r\n selectedSkylineGlobeServer: \"\",\r\n selectedTerraBuilder: \"\",\r\n terraExplorerProProducts: [],\r\n terraExplorerPlusProducts: [],\r\n terraExplorerProPlusProducts: [],\r\n photoMeshProducts: [],\r\n pmGigaPixelProducts: [],\r\n skylineGlobeServerProducts: [],\r\n terraBuilderProducts: [],\r\n isPMGigapixel: false,\r\n isTrustedCustomer: false,\r\n protectionType: \"floating\",\r\n licenseType: \"annual\",\r\n protectionTypeCodes: {},\r\n isTEProDownloading: false,\r\n isTEPlusDownloading: false,\r\n isTEProPlusDownloading: false,\r\n isPMDownloading: false,\r\n isSGSDownloading: false,\r\n isTBDownloading: false,\r\n expirationDate: \"\",\r\n isExpired: true,\r\n tokenString: \"\"\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n\r\n if (window.location.search.match(/[?&]premiumData=([^&]+)/i) !== null) {\r\n this.setState({\r\n SGSpremiumData: window.location.search.match(\r\n /[?&]premiumData=([^&]+)/i\r\n )[1],\r\n });\r\n }\r\n\r\n var packageIdParam = window.location.search.match(\r\n /[?&]packageid[=]([^&]+)/i\r\n );\r\n\r\n var tokenString = window.location.search.match(\r\n /[?&]accessKey[=]([^&]+)/i\r\n );\r\n\r\n if (packageIdParam !== null) {\r\n this.setState({ packageId: packageIdParam[1] });\r\n }\r\n\r\n this.getUserStatusData(packageIdParam !== null ? packageIdParam[1] : \"\", tokenString !== null ? tokenString[1] : \"\");\r\n\r\n this.setState({ tokenString: tokenString !== null ? tokenString[1] : \"\" });\r\n }\r\n\r\n getAllProducts(tokenString) {\r\n fetch(process.env.REACT_APP_API_URL + \"GetAllFlavoursKits\", {\r\n method: \"POST\",\r\n credentials: \"include\",\r\n headers: {\r\n \"Content-Type\": \"application/json\"\r\n },\r\n body: JSON.stringify({\r\n tokenString: tokenString\r\n })\r\n })\r\n .then((res) => res.json())\r\n .then((result) => {\r\n if (result.Result.toString().toLowerCase() === \"success\") {\r\n result.data.forEach((element => {\r\n switch (element.BaseProduct) {\r\n case \"TerraExplorerPro\":\r\n if (element.IsDefault) {\r\n this.setState({ selectedTerraExplorerPro: element.ProductName });\r\n this.setState(prevState => ({ terraExplorerProProducts: [element, ...prevState.terraExplorerProProducts] }));\r\n }\r\n else \r\n {\r\n if (!element.IsRestricted || this.userHasProductRestricted(element.BaseProduct, element.Id)) {\r\n if(this.userHasProductRestricted(element.BaseProduct, element.Id)){\r\n this.setState({ selectedTerraExplorerPro: element.ProductName });\r\n this.setState(prevState => ({ terraExplorerProProducts: [element, ...prevState.terraExplorerProProducts] }));\r\n }else{\r\n this.setState((prevState) => ({\r\n terraExplorerProProducts: [...prevState.terraExplorerProProducts, element]\r\n }));\r\n }\r\n }\r\n }\r\n break;\r\n case \"TerraExplorerPlus\":\r\n if (element.IsDefault) {\r\n this.setState({ selectedTerraExplorerPlus: element.ProductName });\r\n this.setState(prevState => ({ terraExplorerPlusProducts: [element, ...prevState.terraExplorerPlusProducts] }));\r\n }\r\n else\r\n { \r\n if (!element.IsRestricted || this.userHasProductRestricted(element.BaseProduct, element.Id)) {\r\n if(this.userHasProductRestricted(element.BaseProduct, element.Id)){\r\n this.setState({ selectedTerraExplorerPlus: element.ProductName });\r\n this.setState(prevState => ({ terraExplorerPlusProducts: [element, ...prevState.terraExplorerPlusProducts] }));\r\n }else{\r\n this.setState((prevState) => ({terraExplorerPlusProducts: [...prevState.terraExplorerPlusProducts, element]}));\r\n } \r\n }\r\n }\r\n break;\r\n case \"TerraExplorerProPlus\":\r\n if (element.IsDefault) {\r\n this.setState({ selectedTerraExplorerProPlus: element.ProductName });\r\n this.setState(prevState => ({ terraExplorerProPlusProducts: [element, ...prevState.terraExplorerProPlusProducts] }));\r\n }\r\n else \r\n {\r\n if (!element.IsRestricted || this.userHasProductRestricted(element.BaseProduct, element.Id)) {\r\n if(this.userHasProductRestricted(element.BaseProduct, element.Id)){\r\n this.setState({ selectedTerraExplorerProPlus: element.ProductName });\r\n this.setState(prevState => ({ terraExplorerProPlusProducts: [element, ...prevState.terraExplorerProPlusProducts] }));\r\n }else{\r\n this.setState((prevState) => ({\r\n terraExplorerProPlusProducts: [...prevState.terraExplorerProPlusProducts, element]\r\n }));\r\n }\r\n }\r\n }\r\n break;\r\n case \"PhotoMesh\":\r\n if (element.IsDefault) {\r\n this.setState({ selectedPhotoMesh: element.ProductName });\r\n this.setState(prevState => ({ photoMeshProducts: [element, ...prevState.photoMeshProducts] }));\r\n }\r\n else \r\n {\r\n if (!element.IsRestricted || this.userHasProductRestricted(element.BaseProduct, element.Id)) {\r\n if(this.userHasProductRestricted(element.BaseProduct, element.Id)){\r\n this.setState({ selectedPhotoMesh: element.ProductName });\r\n this.setState(prevState => ({ photoMeshProducts: [element, ...prevState.photoMeshProducts] }));\r\n }else{\r\n this.setState((prevState) => ({\r\n photoMeshProducts: [...prevState.photoMeshProducts, element]\r\n }));\r\n }\r\n }\r\n }\r\n break;\r\n case \"PMGigaPixel\":\r\n if (element.IsDefault) {\r\n this.setState({ selectedPMGigaPixel: element.ProductName });\r\n this.setState(prevState => ({ pmGigaPixelProducts: [element, ...prevState.pmGigaPixelProducts] }));\r\n }\r\n else \r\n {\r\n if (!element.IsRestricted || this.userHasProductRestricted(element.BaseProduct, element.Id)) {\r\n if(this.userHasProductRestricted(element.BaseProduct, element.Id)){\r\n this.setState({ selectedPMGigaPixel: element.ProductName });\r\n this.setState(prevState => ({ pmGigaPixelProducts: [element, ...prevState.pmGigaPixelProducts] }));\r\n }else{\r\n this.setState((prevState) => ({\r\n pmGigaPixelProducts: [...prevState.pmGigaPixelProducts, element]\r\n }));\r\n }\r\n }\r\n }\r\n break;\r\n case \"SkylineGlobeServer\":\r\n if (element.IsDefault) {\r\n this.setState({ selectedSkylineGlobeServer: element.ProductName });\r\n this.setState(prevState => ({ skylineGlobeServerProducts: [element, ...prevState.skylineGlobeServerProducts] }));\r\n }\r\n else \r\n {\r\n if (!element.IsRestricted || this.userHasProductRestricted(element.BaseProduct, element.Id)) {\r\n if(this.userHasProductRestricted(element.BaseProduct, element.Id)){\r\n this.setState({ selectedSkylineGlobeServer: element.ProductName });\r\n this.setState(prevState => ({ skylineGlobeServerProducts: [element, ...prevState.skylineGlobeServerProducts] }));\r\n }else{\r\n this.setState((prevState) => ({\r\n skylineGlobeServerProducts: [...prevState.skylineGlobeServerProducts, element]\r\n }));\r\n }\r\n }\r\n }\r\n break;\r\n case \"TerraBuilder\":\r\n if (element.IsDefault) {\r\n this.setState({ selectedTerraBuilder: element.ProductName });\r\n this.setState(prevState => ({ terraBuilderProducts: [element, ...prevState.terraBuilderProducts] }));\r\n }\r\n else \r\n {\r\n if (!element.IsRestricted || this.userHasProductRestricted(element.BaseProduct, element.Id)) {\r\n if(this.userHasProductRestricted(element.BaseProduct, element.Id)){\r\n this.setState({ selectedTerraBuilder: element.ProductName });\r\n this.setState(prevState => ({ terraBuilderProducts: [element, ...prevState.terraBuilderProducts] }));\r\n }else{\r\n this.setState((prevState) => ({\r\n terraBuilderProducts: [...prevState.terraBuilderProducts, element]\r\n }));\r\n }\r\n }\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n }))\r\n\r\n if (this.state.selectedTerraExplorerPro === \"\" && this.state.terraExplorerProProducts.length > 0) {\r\n console.log(this.state.terraExplorerProProducts[0].ProductName);\r\n this.setState({ selectedTerraExplorerPro: this.state.terraExplorerProProducts[0].ProductName });\r\n }\r\n if (this.state.selectedTerraExplorerPlus === \"\" && this.state.terraExplorerPlusProducts.length > 0) {\r\n this.setState({ selectedTerraExplorerPlus: this.state.terraExplorerPlusProducts[0].ProductName });\r\n }\r\n if (this.state.selectedTerraExplorerProPlus === \"\" && this.state.terraExplorerProPlusProducts.length > 0) {\r\n this.setState({ selectedTerraExplorerProPlus: this.state.terraExplorerProPlusProducts[0].ProductName });\r\n }\r\n if (this.state.selectedPhotoMesh === \"\" && this.state.photoMeshProducts.length > 0) {\r\n this.setState({ selectedPhotoMesh: this.state.photoMeshProducts[0].ProductName });\r\n }\r\n if (this.state.selectedPMGigaPixel === \"\" && this.state.pmGigaPixelProducts.length > 0) {\r\n this.setState({ selectedPMGigaPixel: this.state.pmGigaPixelProducts[0].ProductName });\r\n }\r\n if (this.state.selectedSkylineGlobeServer === \"\" && this.state.skylineGlobeServerProducts.length > 0) {\r\n this.setState({ selectedSkylineGlobeServer: this.state.skylineGlobeServerProducts[0].ProductName });\r\n }\r\n if (this.state.selectedTerraBuilder === \"\" && this.state.terraBuilderProducts.length > 0) {\r\n this.setState({ selectedTerraBuilder: this.state.terraBuilderProducts[0].ProductName });\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n console.error(error);\r\n });\r\n }\r\n\r\n userHasProductRestricted(baseProduct, baseProductId) {\r\n return this.state.packageDetails.some(\r\n (userProduct) => (userProduct.products.BaseProduct === baseProduct) && (userProduct.products.selectedRestrictVersionId != null) && (baseProductId == userProduct.products.selectedRestrictVersionId) \r\n );\r\n }\r\n\r\n getUserStatusData(packageId, tokenString) {\r\n fetch(process.env.REACT_APP_API_URL + \"GetUserDataByPackage\", {\r\n method: \"POST\",\r\n credentials: \"include\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n },\r\n body: JSON.stringify({\r\n packageId: packageId,\r\n tokenString: tokenString\r\n }),\r\n })\r\n .then((res) => res.json())\r\n .then((result) => { \r\n if (result.Result.toString().toLowerCase() === \"success\") {\r\n if (result.PackageDetails !== undefined) {\r\n this.setState({ packageDetails: result.PackageDetails }, () => {\r\n this.getAllProducts(tokenString);\r\n });\r\n }\r\n \r\n if (result.Site && result.Site.SiteName)\r\n this.setState({\r\n siteName: result.Site.SiteName\r\n });\r\n\r\n if (result.PackageAccessToken) {\r\n this.setState({\r\n productAccessToken: result.PackageAccessToken\r\n });\r\n }\r\n\r\n if (result.TrustedCustomer) {\r\n this.setState({ isTrustedCustomer: result.TrustedCustomer });\r\n }\r\n\r\n if (result.ProtectionType) {\r\n this.setState({ protectionType: result.ProtectionType });\r\n }\r\n\r\n if (result.ProtectionTypeCodes) {\r\n this.setState({ protectionTypeCodes: result.ProtectionTypeCodes });\r\n }\r\n\r\n if (result.LicenseType) {\r\n this.setState({ licenseType: result.LicenseType });\r\n }\r\n\r\n if (result.InstallationPaths !== undefined) {\r\n this.setState({ downloadPaths: result.InstallationPaths });\r\n }\r\n\r\n if (result.isPMGigapixel !== undefined) {\r\n this.setState({ isPMGigapixel: true });\r\n }\r\n\r\n if (result.SGBaseUrl) {\r\n this.setState({\r\n sgBaseUrl: result.SGBaseUrl\r\n });\r\n }\r\n\r\n if (result.ExpirationDate !== undefined) {\r\n var today = new Date();\r\n var expirationDateTemp = new Date(result.ExpirationDate);\r\n var createdAtGrace = new Date(result.CreatedAt);\r\n createdAtGrace.setDate(createdAtGrace.getDate() + 30);\r\n\r\n if (expirationDateTemp >= today || createdAtGrace >= today) {\r\n this.setState({ isExpired: false });\r\n }\r\n else {\r\n this.setState({ isExpired: true });\r\n }\r\n this.setState({ expirationDate: result.ExpirationDate });\r\n }\r\n\r\n if (result.CheckoutLicAllowed != undefined) {\r\n this.setState({\r\n checkoutLicAllowed: result.CheckoutLicAllowed,\r\n checkoutLicDays: result.CheckoutLicDays\r\n });\r\n }\r\n\r\n // in case of 'checkoutLicAllowed=true', a re-scrolling is needed\r\n if (result.CheckoutLicAllowed == true) {\r\n setTimeout(() => {\r\n goToAnchor(this.state.origHashToScroll, false);\r\n }, 1000);\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n console.error(error);\r\n });\r\n }\r\n\r\n downloadSelectedKit = (baseProduct, loadingButtonName) => {\r\n var installationKitPath = \"\";\r\n var productVersion = \"\";\r\n switch (baseProduct) {\r\n case \"TerraExplorerPro\":\r\n if (this.state.terraExplorerProProducts.length > 0) {\r\n installationKitPath = this.state.terraExplorerProProducts.find(obj => obj.ProductName == this.state.selectedTerraExplorerPro).InstallationKitURL;\r\n productVersion = this.state.terraExplorerProProducts.find(obj => obj.ProductName == this.state.selectedTerraExplorerPro).ProductVersion;\r\n }\r\n break;\r\n case \"TerraExplorerPlus\":\r\n if (this.state.terraExplorerPlusProducts.length > 0) {\r\n installationKitPath = this.state.terraExplorerPlusProducts.find(obj => obj.ProductName == this.state.selectedTerraExplorerPlus).InstallationKitURL;\r\n productVersion = this.state.terraExplorerPlusProducts.find(obj => obj.ProductName == this.state.selectedTerraExplorerPlus).ProductVersion;\r\n }\r\n break;\r\n case \"TerraExplorerProPlus\":\r\n if (this.state.terraExplorerProPlusProducts.length > 0) {\r\n installationKitPath = this.state.terraExplorerProPlusProducts.find(obj => obj.ProductName == this.state.selectedTerraExplorerProPlus).InstallationKitURL;\r\n productVersion = this.state.terraExplorerProPlusProducts.find(obj => obj.ProductName == this.state.selectedTerraExplorerProPlus).ProductVersion;\r\n }\r\n break;\r\n case \"PhotoMesh\":\r\n if (this.state.photoMeshProducts.length > 0) {\r\n installationKitPath = this.state.photoMeshProducts.find(obj => obj.ProductName == this.state.selectedPhotoMesh).InstallationKitURL;\r\n productVersion = this.state.photoMeshProducts.find(obj => obj.ProductName == this.state.selectedPhotoMesh).ProductVersion;\r\n }\r\n break;\r\n case \"PMGigaPixel\":\r\n if (this.state.pmGigaPixelProducts.length > 0) {\r\n installationKitPath = this.state.pmGigaPixelProducts.find(obj => obj.ProductName == this.state.selectedPMGigaPixel).InstallationKitURL;\r\n productVersion = this.state.pmGigaPixelProducts.find(obj => obj.ProductName == this.state.selectedPMGigaPixel).ProductVersion;\r\n }\r\n break;\r\n case \"SkylineGlobeServer\":\r\n if (this.state.skylineGlobeServerProducts.length > 0) {\r\n installationKitPath = this.state.skylineGlobeServerProducts.find(obj => obj.ProductName == this.state.selectedSkylineGlobeServer).InstallationKitURL;\r\n productVersion = this.state.skylineGlobeServerProducts.find(obj => obj.ProductName == this.state.selectedSkylineGlobeServer).ProductVersion;\r\n }\r\n break;\r\n case \"TerraBuilder\":\r\n if (this.state.terraBuilderProducts.length > 0) {\r\n installationKitPath = this.state.terraBuilderProducts.find(obj => obj.ProductName == this.state.selectedTerraBuilder).InstallationKitURL;\r\n productVersion = this.state.terraBuilderProducts.find(obj => obj.ProductName == this.state.selectedTerraBuilder).ProductVersion;\r\n }\r\n break;\r\n }\r\n\r\n if (this.state.protectionType.toLowerCase() !== \"floating\") {\r\n this.setState({ [loadingButtonName]: true });\r\n\r\n // let downloadLink = document.createElement('a');\r\n // downloadLink.href = process.env.REACT_APP_API_URL + `GetInstallationKitPathForProtectionType?installationKitPath=${installationKitPath}&productName=${baseProduct}&packageId=${this.state.packageId}&productVersion=${productVersion}`;\r\n // downloadLink.download = downloadLink.href.split('/').pop();\r\n // document.body.appendChild(downloadLink);\r\n\r\n // // Remove the download link after a short delay to ensure the browser starts the download\r\n // setTimeout(() => {\r\n // document.body.removeChild(downloadLink); \r\n // // Hide loader spinner after a delay (adjust the delay duration as needed)\r\n // setTimeout(() => {\r\n // this.setState({ [loadingButtonName]: false });\r\n // }, 500); // Example: Hide spinner after 500 milliseconds\r\n // }, 100); // Example: Remove link after 100 milliseconds\r\n\r\n // // Trigger the click event to start the download\r\n // downloadLink.click();\r\n this.handleDowmloadZipFile(installationKitPath, baseProduct, loadingButtonName, productVersion);\r\n }\r\n else {\r\n if (installationKitPath !== \"\") {\r\n let a = document.createElement(\"a\");\r\n document.body.appendChild(a);\r\n a.style = \"display: none\";\r\n a.href = installationKitPath;\r\n a.click();\r\n window.URL.revokeObjectURL(a);\r\n }\r\n //console.log(this.state.terraBuilderProducts.find(obj => obj.ProductName == this.state.selectedTerraBuilder));\r\n }\r\n }\r\n\r\n handleDowmloadZipFile = (installationKitPath, baseProduct, loadingButtonName, productVersion) => {\r\n var filename = '';\r\n this.setState({ [loadingButtonName]: true });\r\n fetch(process.env.REACT_APP_API_URL + `GetInstallationKitPathForProtectionType?installationKitPath=${installationKitPath}&productName=${baseProduct}&packageId=${this.state.packageId}&productVersion=${productVersion}&tokenString=${this.state.tokenString}`, {\r\n method: \"GET\",\r\n credentials: \"include\"\r\n })\r\n .then(res => res.json())\r\n .then((res) => {\r\n\r\n let downloadLink = document.createElement('a');\r\n downloadLink.href = process.env.REACT_APP_API_URL + `DownloadInstallationKit?guid=${res.data.guid}&filename=${res.data.filename}`;\r\n downloadLink.download = downloadLink.href.split('/').pop();\r\n document.body.appendChild(downloadLink);\r\n downloadLink.click();\r\n document.body.removeChild(downloadLink);\r\n\r\n this.setState({ [loadingButtonName]: false });\r\n\r\n })\r\n .catch((error) => {\r\n this.setState({ [loadingButtonName]: false });\r\n console.error(error);\r\n this.props.handleServerError(true);\r\n return true;\r\n });\r\n }\r\n\r\n // toggleDrawer = (open, productName) => {\r\n // this.setState({ openDrawer: open });\r\n // this.setState({ errorProtectionTypeMessage: \"\" });\r\n // this.setState({ activeProductName: productName });\r\n\r\n // if (open) {\r\n // fetch(process.env.REACT_APP_API_URL + \"GetProtectionTypeByPackageAndByProductName\", {\r\n // method: \"POST\",\r\n // credentials: \"include\",\r\n // headers: {\r\n // \"Content-Type\": \"application/json\",\r\n // },\r\n // body: JSON.stringify({\r\n // packageId: this.state.packageId,\r\n // productName: productName\r\n // }),\r\n // })\r\n // .then((res) => res.json())\r\n // .then((result) => {\r\n // if (result.success) {\r\n // if (result.data.protectionTypeCodes.length > 0) {\r\n // // Update protection type to state\r\n // this.setState(prevState => ({\r\n // protectionTypeCodes: {\r\n // ...prevState.protectionTypeCodes,\r\n // [productName]: result.data.protectionTypeCodes\r\n // }\r\n // }));\r\n\r\n // this.setState({ readOnlyTextArea: result.data.protectionTypeCodes.join('\\n') });\r\n // this.setState({ numOfProtectionTypes: result.data.protectionTypeCodes.length + '/' + result.data.noOfLics });\r\n // }\r\n // } else {\r\n // if (result.data.protectionTypeCodes) {\r\n // this.setState({ readOnlyTextArea: result.data.protectionTypeCodes.join('\\n') });\r\n // this.setState({ numOfProtectionTypes: result.data.protectionTypeCodes.length + '/' + result.data.noOfLics });\r\n // }\r\n // }\r\n // return true;\r\n // })\r\n // .catch((error) => {\r\n // console.error(error);\r\n // this.setState({ show: false });\r\n // this.props.handleServerError(true);\r\n // return true;\r\n // });\r\n // }\r\n // else {\r\n // this.setState({ showSavedProtectionType: false });\r\n // this.setState({ textAreaTexts: \"\" });\r\n // this.setState({ readOnlyTextArea: \"\" });\r\n // this.setState({ numOfProtectionTypes: \"-\" });\r\n // }\r\n\r\n // // console.log(this.state.packagesData[this.state.packagesData.findIndex(x => x.Id == productId)]);\r\n // // console.log(this.state.readOnlyTextArea);\r\n\r\n // }\r\n\r\n // handleChangeMachineCodeInput = (event) => {\r\n // this.setState({ textAreaTexts: event.target.value });\r\n // }\r\n\r\n // handleClearClick = () => {\r\n // this.setState({ textAreaTexts: \"\" });\r\n // this.setState({ errorProtectionTypeMessage: \"\" });\r\n // }\r\n\r\n render() {\r\n return (\r\n <main className=\"container-fluid col-md-9 faqMain\">\r\n {(this.state.licenseType.toLowerCase() === \"perpetual\" && !this.state.isExpired) || this.state.licenseType.toLowerCase() === \"annual\" ?\r\n <div>\r\n <div>\r\n <span style={{ fontSize: \"28px\" }}>\r\n Getting Started: Downloading and Activating Skyline Products and\r\n Services\r\n </span>\r\n <br />\r\n <br />\r\n <span>\r\n Listed below are frequently asked questions about SkylineCloud. If\r\n you have any additional questions, contact us at{\" \"}\r\n <a id=\"supportEmailId\" href=\"mailto:support@skylinesoft.com\">support@skylinesoft.com</a>.\r\n </span>\r\n <br />\r\n <br />\r\n <ul className=\"faqContentBullets\">\r\n {this.state.packageDetails.find(x => x.products.BaseProduct === \"TerraExplorerPro\") !== undefined ?\r\n <li>\r\n <a id=\"InstallTerraExplorerProTitleId\" href=\"#InstallTerraExplorerProSection\">\r\n How to download and activate your TerraExplorer Pro\r\n </a>\r\n </li>\r\n : null}\r\n {this.state.packageDetails.find(x => x.products.BaseProduct === \"TerraExplorerPlus\") !== undefined ?\r\n <li>\r\n <a id=\"InstallTerraExplorerPlusTitleId\" href=\"#InstallTerraExplorerPlusSection\">\r\n How to download and activate your TerraExplorer Plus\r\n </a>\r\n </li>\r\n : null}\r\n {this.state.packageDetails.find(x => x.products.BaseProduct === \"PhotoMesh\") !== undefined ||\r\n this.state.packageDetails.find(x => x.products.BaseProduct === \"PMGigaPixel\") !== undefined ?\r\n <li>\r\n <a id=\"InstallPhotoMeshTitleId\" href=\"#InstallPhotoMeshSection\">\r\n How to download and activate your PhotoMesh\r\n </a>\r\n </li>\r\n : null}\r\n {this.state.packageDetails.find(x => x.products.BaseProduct === \"SkylineGlobeServer\") !== undefined ?\r\n <li>\r\n <a id=\"InstallSkylineGlobeServerTitleId\" href=\"#InstallSkylineGlobeServerSection\">\r\n How to download and activate your SkylineGlobe Server\r\n </a>\r\n </li>\r\n : null}\r\n {this.state.packageDetails.find(x => x.products.BaseProduct === \"TerraBuilder\") !== undefined ?\r\n <li>\r\n <a id=\"InstallTerraBuilderTitleId\" href=\"#InstallTerraBuilderSection\">\r\n How to download and activate your TerraBuilder\r\n </a>\r\n </li>\r\n : null}\r\n {this.state.packageDetails.find(x => x.products.BaseProduct === \"TerraExplorerPro\") !== undefined &&\r\n this.state.packageDetails.find(x => x.products.BaseProduct === \"TerraExplorerPlus\") !== undefined &&\r\n this.state.protectionType.toLowerCase() === \"floating\" ?\r\n <li>\r\n <a id=\"InstallTerraExplorerProPlusTitleId\" href=\"#InstallTerraExplorerProPlusSection\">\r\n How to download and activate your TerraExplorer Pro & Plus (dual installation)\r\n </a>\r\n </li>\r\n : null}\r\n </ul>\r\n </div>\r\n {this.state.packageDetails.find(x => x.products.BaseProduct === \"TerraExplorerPro\") !== undefined ?\r\n <ScrollableAnchor id={\"InstallTerraExplorerProSection\"}>\r\n <div className=\"FAQ_Pricing productDiv\">\r\n <div className=\"headersHowToProduct\">\r\n <h5 className=\"headersHowTo\">\r\n How to download and activate your TerraExplorer Pro\r\n </h5>\r\n {this.state.protectionType.toLowerCase() !== \"floating\" &&\r\n (this.state.protectionTypeCodes[\"TerraExplorerPro\"] &&\r\n (this.state.protectionTypeCodes[\"TerraExplorerPro\"].length > 0\r\n && this.state.protectionTypeCodes[\"TerraExplorerPro\"].every(item => item !== '')\r\n && this.state.protectionType.toLowerCase() !== \"usbkey\"\r\n )) ?\r\n <Link className=\"btn btn-outline-primary text-capitalize copyToClipboard\" to={`/account/${this.state.packageId}/${this.state.packageDetails.find(x => x.products.BaseProduct === \"TerraExplorerPro\") !== undefined ? this.state.packageDetails.find(x => x.products.BaseProduct === \"TerraExplorerPro\").Id : 0}`}>{this.state.isTrustedCustomer ? \"Edit \" : \"View \"} {this.state.protectionType.toLowerCase() === \"macaddress\" ? \"Mac Addresses\" : \"Machine Codes\"}</Link>\r\n : null}\r\n </div>\r\n <p>\r\n TerraExplorer Pro is a cutting-edge 3D GIS desktop viewer and\r\n creator that provides powerful tools and a high-resolution 3D\r\n environment in which to view, query, analyze and present\r\n geospatial data. With TerraExplorer Pro you can merge your\r\n proprietary 2D and 3D datasets such as BIM models, vector layers\r\n and more into the base project, upload your project to the\r\n SkylineCloud and share it with your customers.{\" \"}\r\n <a id=\"TerraExplorerProMoreDetailsId\" href=\"https://www.skylinesoft.com/terraexplorer-desktop\">\r\n More about: TerraExplorer for Desktop\r\n </a>\r\n </p>\r\n {this.state.protectionType.toLowerCase() !== \"floating\" &&\r\n (this.state.protectionTypeCodes[\"TerraExplorerPro\"] &&\r\n (this.state.protectionTypeCodes[\"TerraExplorerPro\"].length === 0\r\n || this.state.protectionTypeCodes[\"TerraExplorerPro\"].every(item => item === '')\r\n )) ?\r\n this.state.protectionType.toLowerCase() === \"usbkey\" ?\r\n <div className=\"mb-3 missingProtectionType\"><span className=\"mr-3\"><b>{intl.getHTML(\"ProtectionType_Missing_Usb_Key\")}</b></span>\r\n </div>\r\n :\r\n this.state.isTrustedCustomer ?\r\n <div className=\"mb-3 missingProtectionType\"><span className=\"mr-3\"><b> {this.state.protectionType.toLowerCase() === \"macaddress\" ? intl.get(\"ProtectionType_Missing_MacAddress_Code\") : intl.get(\"ProtectionType_Missing_Machine_Code\")}</b></span>\r\n {/* <button id=\"terraExplorerProAddProtectionType\" className=\"btn btn-outline-primary text-capitalize ml-1 copyToClipboard\" onClick={(event) => {\r\n this.toggleDrawer(true, \"TerraExplorerPro\");\r\n }}>{this.state.protectionType.toLowerCase() === \"macaddress\" ? intl.get(\"ProtectionType_Add_Mac_Address\") : intl.get(\"ProtectionType_Add_Machine_Code\")}</button> */}\r\n <Link className=\"btn btn-outline-primary text-capitalize copyToClipboard\" to={`/account/${this.state.packageId}/${this.state.packageDetails.find(x => x.products.BaseProduct === \"TerraExplorerPro\") !== undefined ? this.state.packageDetails.find(x => x.products.BaseProduct === \"TerraExplorerPro\").Id : 0}`}>{this.state.protectionType.toLowerCase() === \"macaddress\" ? intl.get(\"ProtectionType_Add_Mac_Address\") : intl.get(\"ProtectionType_Add_Machine_Code\")}</Link>\r\n </div>\r\n :\r\n <div className=\"mb-3 missingProtectionType\"><span className=\"mr-3\"><b>{this.state.protectionType.toLowerCase() === \"macaddress\" ? intl.getHTML(\"Missing_MacAddress_Not_Trusted\") : intl.getHTML(\"Missing_MachineCode_Not_Trusted\")}</b></span></div>\r\n :\r\n <div>\r\n <div>\r\n <b>Download and install TerraExplorer Pro</b>\r\n </div>\r\n <ul className=\"FAQ_ul\">\r\n <li>\r\n <div className=\"downloadliDiv\">\r\n <span className=\"downloadSpan\">Download TerraExplorer Pro{\" \"}</span>\r\n <select id=\"terraExplorerProSelectId\" disabled={this.state.isTEProDownloading} className=\"form-control round defaultCombobox\"\r\n onChange={(event) => {\r\n this.setState({\r\n selectedTerraExplorerPro: event.target.value\r\n });\r\n }}>\r\n {this.state.terraExplorerProProducts.map((row, i) => {\r\n return (\r\n <option id={row.ProductName} className=\"\" key={i}>{row.ProductName}</option>\r\n );\r\n })\r\n }\r\n </select>\r\n <button id=\"terraExplorerProDownloadButtonId\" disabled={this.state.isTEProDownloading} className={this.state.isTEProDownloading ? \"btn btn-primary text-capitalize ml-2 downloadButton button-downloading\" : \"btn btn-primary text-capitalize ml-2 downloadButton\"} onClick={(event) => {\r\n this.downloadSelectedKit(\"TerraExplorerPro\", \"isTEProDownloading\");\r\n }}>\r\n {this.state.isTEProDownloading ?\r\n (<div><span className=\"downloadSpinner\"></span>{this.state.protectionType.toLowerCase() !== \"floating\" ? \" Preparing to Download... \" : \" Downloading...\"}</div>) : (<span>{\"Download\"}</span>)\r\n }\r\n </button>\r\n {this.state.isTEProDownloading && this.state.protectionType.toLowerCase() !== \"floating\" ?\r\n <span className=\"downloadSpan ml-2\">* This may take a few minutes</span>\r\n : null }\r\n </div>\r\n </li>\r\n <li>Uninstall any previous TerraExplorer installations.</li>\r\n <li>Extract the zip file you have downloaded.</li>\r\n <li>\r\n Double-click the <b>setup.exe</b> file and follow the\r\n Installation Wizard to install the application.\r\n </li>\r\n </ul>\r\n </div>}\r\n {this.state.protectionType.toLowerCase() === \"floating\" ?\r\n (<div>\r\n <div>\r\n <b>Activate TerraExplorer Pro license</b>\r\n </div>\r\n <ul className=\"FAQ_ul\">\r\n <li>\r\n Open the <b>License Manager</b> from the Windows <b>Start -></b>{\" \"}\r\n menu <img className=\"text-center\" src={TES_Menu} />\r\n </li>\r\n <li>\r\n In the <b>License Manager</b>, click <b>File -></b> {\" \"}\r\n <b>Set Floating License Server...</b>\r\n </li>\r\n <li>\r\n Copy-paste your license URL:{\" \"}\r\n <b className=\"copyTextForTEProLicURL\">\r\n {process.env.REACT_APP_HOST +\r\n \"/sws/\" +\r\n this.state.productAccessToken}\r\n </b>\r\n <button id=\"terraExplorerProCopyTokenId\" className=\"btn btn-outline-primary text-capitalize ml-1 copyToClipboard\" onClick={(event) => {\r\n var currentTarget = event.currentTarget;\r\n SLCommon.copyToClipboard(document.getElementsByClassName(\"copyTextForTEProLicURL\")[0])\r\n .then(() => { currentTarget.innerText = this.state.copiedText });\r\n }}>{this.state.copyText}</button>\r\n </li>\r\n <li>\r\n Open TerraExplorer.\r\n <br />\r\n <br />\r\n <img\r\n src={OpenLicenseManager}\r\n className=\"text-center howTosImg img-responsive imgStaticHeight\"\r\n />\r\n </li>\r\n {\r\n this.state.checkoutLicAllowed\r\n ?\r\n <div>\r\n <br />\r\n <li>\r\n In this package, there is an option to use the product in an offline mode (Check out License) up to {this.state.checkoutLicDays} days:\r\n <ul>\r\n <li>\r\n To check out a license:\r\n <ul>\r\n <li>\r\n Validate that TerraExplorer is not running.\r\n </li>\r\n <li>\r\n Click on the \"Check Out\" button in the License Manager:\r\n <br />\r\n <img\r\n src={CheckoutLicenseManagerTE}\r\n className=\"text-center howTosImg img-responsive imgSmallStaticHeight\"\r\n />\r\n </li>\r\n </ul>\r\n </li>\r\n <br />\r\n <li>\r\n To check in the license back:\r\n <ul>\r\n <li>\r\n Validate that TerraExplorer is not running.\r\n </li>\r\n <li>\r\n Click on the \"Check In\" button in the License Manager:\r\n <br />\r\n <img\r\n src={CheckinLicenseManagerTE}\r\n className=\"text-center howTosImg img-responsive imgSmallStaticHeight\"\r\n />\r\n </li>\r\n </ul>\r\n </li>\r\n </ul>\r\n </li>\r\n </div>\r\n :\r\n \"\"\r\n }\r\n </ul>\r\n <br />\r\n </div>\r\n ) : null}\r\n <div>\r\n <b>Adding Vertical Datum (GTX) Files:</b>\r\n </div>\r\n <ul className=\"\">\r\n <li>\r\n Click{\" \"}\r\n <a href=\"https://www.skylinesoft.com/verticalDatum.html?tez=1\">\r\n here\r\n </a>{\" \"}\r\n for more information.{\" \"}\r\n </li>\r\n </ul>\r\n </div>\r\n </ScrollableAnchor>\r\n : null}\r\n {this.state.packageDetails.find(x => x.products.BaseProduct === \"TerraExplorerPlus\") !== undefined ?\r\n <ScrollableAnchor id={\"InstallTerraExplorerPlusSection\"}>\r\n <div className=\"FAQ_Pricing productDiv\">\r\n <div className=\"headersHowToProduct\">\r\n <h5 className=\"headersHowTo\">\r\n How to download and activate your TerraExplorer Plus\r\n </h5>\r\n {this.state.protectionType.toLowerCase() !== \"floating\" &&\r\n (this.state.protectionTypeCodes[\"TerraExplorerPlus\"] &&\r\n (this.state.protectionTypeCodes[\"TerraExplorerPlus\"].length > 0\r\n && this.state.protectionTypeCodes[\"TerraExplorerPlus\"].every(item => item !== '')\r\n && this.state.protectionType.toLowerCase() !== \"usbkey\"\r\n )) ?\r\n <Link className=\"btn btn-outline-primary text-capitalize copyToClipboard\" to={`/account/${this.state.packageId}/${this.state.packageDetails.find(x => x.products.BaseProduct === \"TerraExplorerPlus\") !== undefined ? this.state.packageDetails.find(x => x.products.BaseProduct === \"TerraExplorerPlus\").Id : 0}`}>{this.state.isTrustedCustomer ? \"Edit \" : \"View \"} {this.state.protectionType.toLowerCase() === \"macaddress\" ? \"Mac Addresses\" : \"Machine Codes\"}</Link>\r\n : null}\r\n </div>\r\n <p>\r\n TerraExplorer Plus is a cutting-edge 3D GIS desktop viewer and\r\n creator that provides powerful tools and a high-resolution 3D\r\n environment in which to view, query, analyze and present\r\n geospatial data. With TerraExplorer Pro you can merge your\r\n proprietary 2D and 3D datasets such as BIM models, vector layers\r\n and more into the base project, upload your project to the\r\n SkylineCloud and share it with your customers.{\" \"}\r\n <a id=\"TerraExplorerPlusMoreDetailsId\" href=\"https://www.skylinesoft.com/terraexplorer-desktop\">\r\n More about: TerraExplorer for Desktop\r\n </a>\r\n </p>\r\n {this.state.protectionType.toLowerCase() !== \"floating\" &&\r\n (this.state.protectionTypeCodes[\"TerraExplorerPlus\"] &&\r\n (this.state.protectionTypeCodes[\"TerraExplorerPlus\"].length === 0\r\n || this.state.protectionTypeCodes[\"TerraExplorerPlus\"].every(item => item === '')\r\n )) ?\r\n this.state.protectionType.toLowerCase() === \"usbkey\" ?\r\n <div className=\"mb-3 missingProtectionType\"><span className=\"mr-3\"><b>{intl.getHTML(\"ProtectionType_Missing_Usb_Key\")}</b></span>\r\n </div>\r\n :\r\n this.state.isTrustedCustomer ?\r\n <div className=\"mb-3 missingProtectionType\"><span className=\"mr-3\"><b>{this.state.protectionType.toLowerCase() === \"macaddress\" ? intl.get(\"ProtectionType_Missing_MacAddress_Code\") : intl.get(\"ProtectionType_Missing_Machine_Code\")} </b></span>\r\n {/* <button id=\"terraExplorerPlusAddProtectionType\" className=\"btn btn-outline-primary text-capitalize ml-1 copyToClipboard\" onClick={(event) => {\r\n this.toggleDrawer(true, \"TerraExplorerPlus\");\r\n }}>{this.state.protectionType.toLowerCase() === \"macaddress\" ? intl.get(\"ProtectionType_Add_Mac_Address\") : intl.get(\"ProtectionType_Add_Machine_Code\")}</button> */}\r\n <Link className=\"btn btn-outline-primary text-capitalize copyToClipboard\" to={`/account/${this.state.packageId}/${this.state.packageDetails.find(x => x.products.BaseProduct === \"TerraExplorerPlus\") !== undefined ? this.state.packageDetails.find(x => x.products.BaseProduct === \"TerraExplorerPlus\").Id : 0}`}>{this.state.protectionType.toLowerCase() === \"macaddress\" ? intl.get(\"ProtectionType_Add_Mac_Address\") : intl.get(\"ProtectionType_Add_Machine_Code\")}</Link>\r\n </div>\r\n :\r\n <div className=\"mb-3 missingProtectionType\"><span className=\"mr-3\"><b>{this.state.protectionType.toLowerCase() === \"macaddress\" ? intl.getHTML(\"Missing_MacAddress_Not_Trusted\") : intl.getHTML(\"Missing_MachineCode_Not_Trusted\")}</b></span></div>\r\n :\r\n <div>\r\n <div>\r\n <b>Download and install TerraExplorer Plus:</b>\r\n </div>\r\n <ul className=\"FAQ_ul\">\r\n <li>\r\n <div className=\"downloadliDiv\">\r\n <span className=\"downloadSpan\">Download TerraExplorer Plus{\" \"}</span>\r\n <select id=\"terraExplorerPlusSelectId\" disabled={this.state.isTEPlusDownloading} className=\"form-control round defaultCombobox\"\r\n onChange={(event) => {\r\n this.setState({\r\n selectedTerraExplorerPlus: event.target.value\r\n });\r\n }}>\r\n {this.state.terraExplorerPlusProducts.map((row, i) => {\r\n return (\r\n <option id={row.ProductName} className=\"\" key={i}>{row.ProductName}</option>\r\n );\r\n })\r\n }\r\n </select>\r\n <button id=\"terraExplorerPlusDownloadButtonId\" disabled={this.state.isTEPlusDownloading} className={this.state.isTEPlusDownloading ? \"btn btn-primary text-capitalize ml-2 downloadButton button-downloading\" : \"btn btn-primary text-capitalize ml-2 downloadButton\"} onClick={(event) => {\r\n this.downloadSelectedKit(\"TerraExplorerPlus\", \"isTEPlusDownloading\");\r\n }}>\r\n {this.state.isTEPlusDownloading ?\r\n (<div><span className=\"downloadSpinner\"></span>{this.state.protectionType.toLowerCase() !== \"floating\" ? \" Preparing to Download... \" : \" Downloading...\"}</div>) : (<span>{\"Download\"}</span>)\r\n }\r\n </button>\r\n {this.state.isTEPlusDownloading && this.state.protectionType.toLowerCase() !== \"floating\" ?\r\n <span className=\"downloadSpan ml-2\">* This may take a few minutes</span>\r\n : null }\r\n </div>\r\n </li>\r\n <li>Uninstall any previous TerraExplorer installations.</li>\r\n <li>Extract the zip file you have downloaded.</li>\r\n <li>\r\n Double-click the <b>setup.exe</b> file, and follow the\r\n Installation Wizard to install the application.\r\n </li>\r\n </ul>\r\n </div>}\r\n {this.state.protectionType.toLowerCase() === \"floating\" ?\r\n <div>\r\n <div>\r\n <b>Activate TerraExplorer Plus license</b>\r\n </div>\r\n <ul className=\"FAQ_ul\">\r\n <li>\r\n Open the <b>License Manager</b> from the Windows <b>Start -></b>{\" \"}\r\n menu <img className=\"text-center\" src={TES_Menu} />\r\n </li>\r\n <li>\r\n In the <b>License Manager</b>, click on <b>File -></b> {\" \"}\r\n <b>Set Floating License Server...</b>\r\n </li>\r\n <li>\r\n Enter your license URL:{\" \"}\r\n <b className=\"copyTextForTEPlusLicURL\">\r\n {process.env.REACT_APP_HOST +\r\n \"/sws/\" +\r\n this.state.productAccessToken}\r\n </b>\r\n <button id=\"terraExplorerPlusCopyTokenId\" className=\"btn btn-outline-primary text-capitalize ml-1 copyToClipboard\" onClick={(event) => {\r\n var currentTarget = event.currentTarget;\r\n SLCommon.copyToClipboard(document.getElementsByClassName(\"copyTextForTEPlusLicURL\")[0])\r\n .then(() => { currentTarget.innerText = this.state.copiedText });\r\n }}>{this.state.copyText}</button>\r\n </li>\r\n <li>\r\n Open TerraExplorer.\r\n <br />\r\n <br />\r\n <img\r\n src={OpenLicenseManagerTEPlus}\r\n className=\"text-center howTosImg img-responsive imgStaticHeight\"\r\n />\r\n </li>\r\n {\r\n this.state.checkoutLicAllowed\r\n ?\r\n <div>\r\n <br />\r\n <li>\r\n In this package, there is an option to use the product in an offline mode (Check out License) up to {this.state.checkoutLicDays} days:\r\n <ul>\r\n <li>\r\n To check out a license:\r\n <ul>\r\n <li>\r\n Validate that TerraExplorer is not running.\r\n </li>\r\n <li>\r\n Click on the \"Check Out\" button in the License Manager:\r\n <br />\r\n <img\r\n src={CheckoutLicenseManagerTEPlus}\r\n className=\"text-center howTosImg img-responsive imgSmallStaticHeight\"\r\n />\r\n </li>\r\n </ul>\r\n </li>\r\n <br />\r\n <li>\r\n To check in the license back:\r\n <ul>\r\n <li>\r\n Validate that TerraExplorer is not running.\r\n </li>\r\n <li>\r\n Click on the \"Check In\" button in the License Manager:\r\n <br />\r\n <img\r\n src={CheckinLicenseManagerTEPlus}\r\n className=\"text-center howTosImg img-responsive imgSmallStaticHeight\"\r\n />\r\n </li>\r\n </ul>\r\n </li>\r\n </ul>\r\n </li>\r\n </div>\r\n :\r\n \"\"\r\n }\r\n </ul>\r\n <br />\r\n </div> : null}\r\n <div>\r\n <b>Adding Vertical Datum (GTX) Files:</b>\r\n </div>\r\n <ul className=\"\">\r\n <li>\r\n Click{\" \"}\r\n <a href=\"https://www.skylinesoft.com/verticalDatum.html?tez=1\">\r\n here\r\n </a>{\" \"}\r\n for more information.{\" \"}\r\n </li>\r\n </ul>\r\n </div>\r\n </ScrollableAnchor>\r\n : null}\r\n {this.state.packageDetails.find(x => x.products.BaseProduct === \"TerraExplorerPro\") !== undefined &&\r\n this.state.packageDetails.find(x => x.products.BaseProduct === \"TerraExplorerPlus\") !== undefined\r\n && this.state.protectionType.toLowerCase() === \"floating\" ?\r\n <ScrollableAnchor id={\"InstallTerraExplorerProPlusSection\"}>\r\n <div className=\"FAQ_Pricing productDiv\">\r\n <div className=\"headersHowToProduct\">\r\n <h5 className=\"headersHowTo\">\r\n How to download and activate your TerraExplorer Pro & Plus (dual installation)\r\n </h5>\r\n </div>\r\n <p>\r\n If your SkylineCloud package contains both TerraExplorer Pro and Plus, you can download the dual TerraExplorer installation and easily switch between the two versions.\r\n </p>\r\n <div>\r\n <div>\r\n <b>Download and install TerraExplorer Pro & Plus</b>\r\n </div>\r\n <ul className=\"FAQ_ul\">\r\n <li>\r\n <div className=\"downloadliDiv\">\r\n <span className=\"downloadSpan\">Download TerraExplorer Pro & Plus{\" \"}</span>\r\n <select id=\"terraExplorerProPlusSelectId\" disabled={this.state.isTEProPlusDownloading} className=\"form-control round defaultCombobox\"\r\n onChange={(event) => {\r\n this.setState({\r\n selectedTerraExplorerProPlus: event.target.value\r\n });\r\n }}>\r\n {this.state.terraExplorerProPlusProducts.map((row, i) => {\r\n return (\r\n <option id={row.ProductName} className=\"\" key={i}>{row.ProductName}</option>\r\n );\r\n })\r\n }\r\n </select>\r\n <button id=\"terraExplorerProPlusDownloadButtonId\" disabled={this.state.isTEProPlusDownloading} className={this.state.isTEProPlusDownloading ? \"btn btn-primary text-capitalize ml-2 downloadButton button-downloading\" : \"btn btn-primary text-capitalize ml-2 downloadButton\"} onClick={(event) => {\r\n this.downloadSelectedKit(\"TerraExplorerProPlus\", \"isTEProPlusDownloading\");\r\n }}>\r\n {this.state.isTEProPlusDownloading ?\r\n (<div><span className=\"downloadSpinner\"></span>{\" Downloading...\"}</div>) : (<span>{\"Download\"}</span>)\r\n }\r\n </button>\r\n </div>\r\n </li>\r\n <li>Uninstall any previous TerraExplorer installations.</li>\r\n <li>Extract the zip file you have downloaded.</li>\r\n <li>\r\n Double-click the <b>setup.exe</b> file and follow the\r\n Installation Wizard to install the application.\r\n </li>\r\n </ul>\r\n <div>\r\n <div>\r\n <b>Activate TerraExplorer Pro & Plus licenses</b>\r\n </div>\r\n <ul className=\"FAQ_ul\">\r\n <li>\r\n Open the <b>License Manager</b> from the Windows <b>Start -></b>{\" \"}\r\n menu <img className=\"text-center\" src={TES_Menu} />\r\n </li>\r\n <li>\r\n In the <b>License Manager</b>, click <b>File -></b> {\" \"}\r\n <b>Set Floating License Server...</b>\r\n </li>\r\n <li>\r\n Copy-paste your license URL:{\" \"}\r\n <b className=\"copyTextForTEProPlusLicURL\">\r\n {process.env.REACT_APP_HOST +\r\n \"/sws/\" +\r\n this.state.productAccessToken}\r\n </b>\r\n <button id=\"terraExplorerProPlusCopyTokenId\" className=\"btn btn-outline-primary text-capitalize ml-1 copyToClipboard\" onClick={(event) => {\r\n var currentTarget = event.currentTarget;\r\n SLCommon.copyToClipboard(document.getElementsByClassName(\"copyTextForTEProPlusLicURL\")[0])\r\n .then(() => { currentTarget.innerText = this.state.copiedText });\r\n }}>{this.state.copyText}</button>\r\n </li>\r\n <li>\r\n There are two shortcuts in the Windows Start menu: one for TerraExplorer Pro and second for TerraExplorer Plus.<br />\r\n Click the one you want to run.\r\n </li>\r\n <li>\r\n Open TerraExplorer.\r\n <br />\r\n <br />\r\n <img\r\n src={OpenLicenseManagerTEProPlus}\r\n className=\"text-center howTosImg img-responsive imgStaticHeight\"\r\n />\r\n </li>\r\n {\r\n this.state.checkoutLicAllowed\r\n ?\r\n <div>\r\n <br />\r\n <li>\r\n In this package, there is an option to use the product in an offline mode (Check out License) up to {this.state.checkoutLicDays} days:\r\n <ul>\r\n <li>\r\n To check out a license:\r\n <ul>\r\n <li>\r\n Validate that TerraExplorer is not running.\r\n </li>\r\n <li>\r\n Click on the \"Check Out\" button in the License Manager:\r\n <br />\r\n <img\r\n src={CheckoutLicenseManagerTEProPlus}\r\n className=\"text-center howTosImg img-responsive imgSmallStaticHeight\"\r\n />\r\n </li>\r\n </ul>\r\n </li>\r\n <br />\r\n <li>\r\n To check in the license back:\r\n <ul>\r\n <li>\r\n Validate that TerraExplorer is not running.\r\n </li>\r\n <li>\r\n Click on the \"Check In\" button in the License Manager:\r\n <br />\r\n <img\r\n src={CheckinLicenseManagerTEProPlus}\r\n className=\"text-center howTosImg img-responsive imgSmallStaticHeight\"\r\n />\r\n </li>\r\n </ul>\r\n </li>\r\n </ul>\r\n </li>\r\n </div>\r\n :\r\n \"\"\r\n }\r\n </ul>\r\n </div>\r\n </div>\r\n <div>\r\n <b>Adding Vertical Datum (GTX) Files:</b>\r\n </div>\r\n <ul className=\"\">\r\n <li>\r\n Click{\" \"}\r\n <a href=\"https://www.skylinesoft.com/verticalDatum.html?tez=1\">\r\n here\r\n </a>{\" \"}\r\n for more information.{\" \"}\r\n </li>\r\n </ul>\r\n </div>\r\n </ScrollableAnchor>\r\n : null}\r\n {this.state.packageDetails.find(x => x.products.BaseProduct === \"PhotoMesh\") !== undefined ||\r\n this.state.packageDetails.find(x => x.products.BaseProduct === \"PMGigaPixel\") !== undefined ?\r\n <ScrollableAnchor id={\"InstallPhotoMeshSection\"}>\r\n <div className=\"FAQ_Pricing productDiv\">\r\n <div className=\"headersHowToProduct\">\r\n <h5 className=\"headersHowTo\">\r\n How to download and activate your PhotoMesh\r\n </h5>\r\n {this.state.protectionType.toLowerCase() !== \"floating\" &&\r\n (this.state.protectionTypeCodes[\"PhotoMesh\"] &&\r\n (this.state.protectionTypeCodes[\"PhotoMesh\"].length > 0\r\n && this.state.protectionTypeCodes[\"PhotoMesh\"].every(item => item !== '')\r\n && this.state.protectionType.toLowerCase() !== \"usbkey\"\r\n )) ?\r\n <Link className=\"btn btn-outline-primary text-capitalize copyToClipboard\" to={`/account/${this.state.packageId}/${this.state.packageDetails.find(x => x.products.BaseProduct === \"PhotoMesh\") !== undefined ? this.state.packageDetails.find(x => x.products.BaseProduct === \"PhotoMesh\").Id : 0}`}>{this.state.isTrustedCustomer ? \"Edit \" : \"View \"} {this.state.protectionType.toLowerCase() === \"macaddress\" ? \"Mac Addresses\" : \"Machine Codes\"}</Link>\r\n : this.state.protectionType.toLowerCase() !== \"floating\" &&\r\n (this.state.protectionTypeCodes[\"PMGigaPixel\"] &&\r\n (this.state.protectionTypeCodes[\"PMGigaPixel\"].length > 0\r\n && this.state.protectionTypeCodes[\"PMGigaPixel\"].every(item => item !== '')\r\n && this.state.protectionType.toLowerCase() !== \"usbkey\"\r\n )) ?\r\n <Link className=\"btn btn-outline-primary text-capitalize copyToClipboard\" to={`/account/${this.state.packageId}/${this.state.packageDetails.find(x => x.products.BaseProduct === \"PMGigaPixel\") !== undefined ? this.state.packageDetails.find(x => x.products.BaseProduct === \"PMGigaPixel\").Id : 0}`}>{this.state.isTrustedCustomer ? \"Edit \" : \"View \"} {this.state.protectionType.toLowerCase() === \"macaddress\" ? \"Mac Addresses\" : \"Machine Codes\"}</Link>\r\n : null}\r\n </div>\r\n <p>\r\n PhotoMesh fully automates the generation of high-resolution,\r\n textured, 3D mesh models from oblique and nadir photographs and\r\n Lidar captured from street view, drones, UAV and airplanes.\r\n PhotoMesh’s breakthrough technology is based on the\r\n highest-performance photogrammetry, computer vision, and\r\n computational geometry algorithms. PhotoMesh results can be\r\n generated in standard 3D model (3DML, 3D Tiles, DAE, OBJ, OSGB,\r\n I3S/SLPK), raster (Orthophoto, DSM, DTM) and point cloud (LAS)\r\n formats. {\" \"}\r\n <a id=\"PhotoMeshMoreDetailsId\" href=\"https://www.skylinesoft.com/photomesh\">Learn more</a>\r\n </p>\r\n {this.state.protectionType.toLowerCase() !== \"floating\" &&\r\n (this.state.protectionTypeCodes[\"PhotoMesh\"] &&\r\n (this.state.protectionTypeCodes[\"PhotoMesh\"].length === 0\r\n || this.state.protectionTypeCodes[\"PhotoMesh\"].every(item => item === '')\r\n )) ||\r\n (this.state.protectionTypeCodes[\"PMGigaPixel\"] &&\r\n (this.state.protectionTypeCodes[\"PMGigaPixel\"].length === 0\r\n || this.state.protectionTypeCodes[\"PMGigaPixel\"].every(item => item === '')\r\n ))\r\n ?\r\n this.state.protectionType.toLowerCase() === \"usbkey\" ?\r\n <div className=\"mb-3 missingProtectionType\"><span className=\"mr-3\"><b>{intl.getHTML(\"ProtectionType_Missing_Usb_Key\")}</b></span>\r\n </div>\r\n :\r\n this.state.isTrustedCustomer ?\r\n (<div className=\"mb-3 missingProtectionType\"><span className=\"mr-3\"><b>{this.state.protectionType.toLowerCase() === \"macaddress\" ? intl.get(\"ProtectionType_Missing_MacAddress_Code\") : intl.get(\"ProtectionType_Missing_Machine_Code\")}</b></span>\r\n <Link className=\"btn btn-outline-primary text-capitalize copyToClipboard\" to={`/account/${this.state.packageId}/${this.state.packageDetails.find(x => x.products.BaseProduct === \"PhotoMesh\") !== undefined ? this.state.packageDetails.find(x => x.products.BaseProduct === \"PhotoMesh\").Id : this.state.packageDetails.find(x => x.products.BaseProduct === \"PMGigaPixel\") !== undefined ? this.state.packageDetails.find(x => x.products.BaseProduct === \"PMGigaPixel\").Id : 0}`}>{this.state.protectionType.toLowerCase() === \"macaddress\" ? intl.get(\"ProtectionType_Add_Mac_Address\") : intl.get(\"ProtectionType_Add_Machine_Code\")}</Link>\r\n </div>) :\r\n <div className=\"mb-3 missingProtectionType\"><span className=\"mr-3\"><b>{this.state.protectionType.toLowerCase() === \"macaddress\" ? intl.getHTML(\"Missing_MacAddress_Not_Trusted\") : intl.getHTML(\"Missing_MachineCode_Not_Trusted\")}</b></span></div>\r\n :\r\n <div>\r\n <div>\r\n <b>Download and install PhotoMesh</b>\r\n </div>\r\n <ul className=\"FAQ_ul\">\r\n <li>\r\n <div className=\"downloadliDiv\">\r\n <span className=\"downloadSpan\">Download PhotoMesh{\" \"}</span>\r\n <select id=\"photoMeshSelectId\" disabled={this.state.isPMDownloading} className=\"form-control round defaultCombobox\"\r\n onChange={(event) => {\r\n if (this.state.isPMGigapixel)\r\n this.setState({ selectedPMGigaPixel: event.target.value });\r\n else this.setState({ selectedPhotoMesh: event.target.value });\r\n }}>\r\n {this.state.isPMGigapixel ? this.state.pmGigaPixelProducts.map((row, i) => {\r\n return (\r\n <option id={row.ProductName} className=\"\" key={i}>{row.ProductName}</option>\r\n );\r\n })\r\n : this.state.photoMeshProducts.map((row, i) => {\r\n return (\r\n <option id={row.ProductName} className=\"\" key={i}>{row.ProductName}</option>\r\n );\r\n })\r\n }\r\n </select>\r\n <button id=\"photoMeshDownloadButtonId\" disabled={this.state.isPMDownloading} className={this.state.isPMDownloading ? \"btn btn-primary text-capitalize ml-2 downloadButton button-downloading\" : \"btn btn-primary text-capitalize ml-2 downloadButton\"} onClick={(event) => {\r\n { this.state.isPMGigapixel ? this.downloadSelectedKit(\"PMGigaPixel\", \"isPMDownloading\") : this.downloadSelectedKit(\"PhotoMesh\", \"isPMDownloading\") }\r\n }}>\r\n {this.state.isPMDownloading ?\r\n (<div><span className=\"downloadSpinner\"></span>{this.state.protectionType.toLowerCase() !== \"floating\" ? \" Preparing to Download... \" : \" Downloading...\"}</div>) : (<span>{\"Download\"}</span>)\r\n }\r\n </button>\r\n {this.state.isPMDownloading && this.state.protectionType.toLowerCase() !== \"floating\" ?\r\n <span className=\"downloadSpan ml-2\">* This may take a few minutes</span>\r\n : null }\r\n </div>\r\n </li>\r\n <li>Uninstall any previous PhotoMesh installations.</li>\r\n <li>Extract the zip file.</li>\r\n <li>\r\n Double-click the <b>PhotoMeshSetup.msi</b> or <b>PhotoMesh.exe</b> file and follow the\r\n Installation Wizard to install.\r\n </li>\r\n </ul>\r\n {this.state.protectionType.toLowerCase() === \"floating\" ?\r\n <div>\r\n <div>\r\n <b>Activate PhotoMesh license:</b>\r\n </div>\r\n <ul className=\"FAQ_ul\">\r\n <li>\r\n Open the License Manager: C:\\Program\r\n Files\\Skyline\\PhotoMesh\\LicenseManager.exe or from the\r\n installed folder.\r\n </li>\r\n <li>\r\n In the <b>License Manager</b>, click on <b>File -></b> {\" \"}\r\n <b>Set Floating License Server...</b>\r\n </li>\r\n <li>\r\n Enter your license URL:{\" \"}\r\n <b className=\"copyTextForPMLicURL\">\r\n {process.env.REACT_APP_HOST +\r\n \"/sws/\" +\r\n this.state.productAccessToken}\r\n </b>\r\n <button id=\"photoMeshCopyTokenId\" className=\"btn btn-outline-primary text-capitalize ml-1 copyToClipboard\" onClick={(event) => {\r\n var currentTarget = event.currentTarget;\r\n SLCommon.copyToClipboard(document.getElementsByClassName(\"copyTextForPMLicURL\")[0])\r\n .then(() => { currentTarget.innerText = this.state.copiedText });\r\n }}>{this.state.copyText}</button>\r\n </li>\r\n <li>\r\n Start PhotoMesh from the windows <b>Start</b> menu or from the\r\n desktop shortcut.\r\n <br />\r\n <br />\r\n <img\r\n src={LicensePM}\r\n className=\"text-center howTosImg img-responsive imgStaticHeight\"\r\n />\r\n </li>\r\n {\r\n this.state.checkoutLicAllowed\r\n ?\r\n <div>\r\n <br />\r\n <li>\r\n In this package, there is an option to use the product in an offline mode (Check out License) up to {this.state.checkoutLicDays} days:\r\n <ul>\r\n <li>\r\n To check out a license:\r\n <ul>\r\n <li>\r\n Validate that PhotoMesh is not running.\r\n </li>\r\n <li>\r\n Click on the \"Check Out\" button in the License Manager:\r\n <br />\r\n <img\r\n src={CheckoutLicenseManagerPM}\r\n className=\"text-center howTosImg img-responsive imgSmallStaticHeight\"\r\n />\r\n </li>\r\n </ul>\r\n </li>\r\n <br />\r\n <li>\r\n To check in the license back:\r\n <ul>\r\n <li>\r\n Validate that PhotoMesh is not running.\r\n </li>\r\n <li>\r\n Click on the \"Check In\" button in the License Manager:\r\n <br />\r\n <img\r\n src={CheckinLicenseManagerPM}\r\n className=\"text-center howTosImg img-responsive imgSmallStaticHeight\"\r\n />\r\n </li>\r\n </ul>\r\n </li>\r\n </ul>\r\n </li>\r\n </div>\r\n :\r\n \"\"\r\n }\r\n </ul>\r\n </div> : null}\r\n </div>}\r\n <div>\r\n <br />\r\n <b>Get to know the PhotoMesh GUI and build an example project:</b>\r\n </div>\r\n <ul className=\"FAQ_ul\">\r\n <li>\r\n On the PhotoMesh Start Page, download one of the ready-to-build example projects, and follow the instructions to get started building.\r\n <br />\r\n <img src={\"\"} className=\"text-center howTosImg img-responsive\" />\r\n </li>\r\n <li>\r\n Explore Skyline's <a id=\"photoMeshKnowledgeBaseLinkId\" href=\"https://support.skylinesoft.com/hc/en-us/categories/360002453079-PhotoMesh\">knowledge base</a> with information about PhotoMesh:\r\n </li>\r\n <ul>\r\n <li>Get to know PhotoMesh through clear and to-the-point <a id=\"photoMeshVideoTutorialsId\" href=\"https://support.skylinesoft.com/hc/en-us/articles/360013938579-PhotoMesh-Video-Tutorials\">video tutorials</a>.</li>\r\n <li>Use our <a id=\"photoMeshQuickStartTutorialId\" href=\"https://support.skylinesoft.com/hc/en-us/sections/360003834779-Tutorials\">quick start tutorials</a> to guide you through the basic PhotoMesh workflow. </li>\r\n <li>Learn about PhotoMesh’s <a id=\"photoMeshLearnMoreProjectTreeId\" href=\"https://support.skylinesoft.com/hc/en-us/articles/360019809839-Project-Tree-and-Item-List\">Project Tree and Item List</a>.</li>\r\n <li>Read our recommendations for <a id=\"photoMeshImageryAndDataCollectionId\" href=\"https://support.skylinesoft.com/hc/en-us/articles/360013116380-Recommendations-for-Imagery-Acquisition-and-Data-Collection\">imagery acquisition and data collection</a>.</li>\r\n </ul>\r\n </ul>\r\n </div>\r\n </ScrollableAnchor>\r\n : null}\r\n {this.state.packageDetails.find(x => x.products.BaseProduct === \"SkylineGlobeServer\") !== undefined ?\r\n <ScrollableAnchor id={\"InstallSkylineGlobeServerSection\"}>\r\n <div className=\"FAQ_Pricing productDiv\">\r\n <div className=\"headersHowToProduct\">\r\n <h5 className=\"headersHowTo\">\r\n How to download and activate your SkylineGlobe Server\r\n </h5>\r\n {this.state.protectionType.toLowerCase() !== \"floating\" &&\r\n (this.state.protectionTypeCodes[\"SkylineGlobeServer\"] &&\r\n (this.state.protectionTypeCodes[\"SkylineGlobeServer\"].length > 0\r\n && this.state.protectionTypeCodes[\"SkylineGlobeServer\"].every(item => item !== '')\r\n && this.state.protectionType.toLowerCase() !== \"usbkey\"\r\n )) ?\r\n <Link className=\"btn btn-outline-primary text-capitalize copyToClipboard\" to={`/account/${this.state.packageId}/${this.state.packageDetails.find(x => x.products.BaseProduct === \"SkylineGlobeServer\") !== undefined ? this.state.packageDetails.find(x => x.products.BaseProduct === \"SkylineGlobeServer\").Id : 0}`}>{this.state.isTrustedCustomer ? \"Edit \" : \"View \"} {this.state.protectionType.toLowerCase() === \"macaddress\" ? \"Mac Addresses\" : \"Machine Codes\"}</Link>\r\n : null}\r\n </div>\r\n <p>\r\n SkylineGlobe Server (SGS) is a private cloud solution that\r\n provides a comprehensive set of web services for publishing,\r\n storing, managing and streaming 3D spatial data. The server’s\r\n built-in complete user access control system allows easy\r\n management of users, groups, and administrative roles\r\n controlling the server-side storage and client-side read/write\r\n permissions.{\" \"}\r\n <a id=\"SkylineGlobeServerMoreDetailsId\" href=\"https://www.skylinesoft.com/skylineglobe-server\">\r\n Learn more\r\n </a>\r\n </p>\r\n {this.state.protectionType.toLowerCase() !== \"floating\" &&\r\n (this.state.protectionTypeCodes[\"SkylineGlobeServer\"] &&\r\n (this.state.protectionTypeCodes[\"SkylineGlobeServer\"].length === 0\r\n || this.state.protectionTypeCodes[\"SkylineGlobeServer\"].every(item => item === '')\r\n )) ?\r\n this.state.protectionType.toLowerCase() === \"usbkey\" ?\r\n <div className=\"mb-3 missingProtectionType\"><span className=\"mr-3\"><b>{intl.getHTML(\"ProtectionType_Missing_Usb_Key\")}</b></span>\r\n </div>\r\n :\r\n this.state.isTrustedCustomer ?\r\n <div className=\"mb-3 missingProtectionType\"><span className=\"mr-3\"><b>{this.state.protectionType.toLowerCase() === \"macaddress\" ? intl.get(\"ProtectionType_Missing_MacAddress_Code\") : intl.get(\"ProtectionType_Missing_Machine_Code\")}</b></span>\r\n <Link className=\"btn btn-outline-primary text-capitalize copyToClipboard\" to={`/account/${this.state.packageId}/${this.state.packageDetails.find(x => x.products.BaseProduct === \"SkylineGlobeServer\") !== undefined ? this.state.packageDetails.find(x => x.products.BaseProduct === \"SkylineGlobeServer\").Id : 0}`}>{this.state.protectionType.toLowerCase() === \"macaddress\" ? intl.get(\"ProtectionType_Add_Mac_Address\") : intl.get(\"ProtectionType_Add_Machine_Code\")}</Link>\r\n </div>\r\n :\r\n <div className=\"mb-3 missingProtectionType\"><span className=\"mr-3\"><b>{this.state.protectionType.toLowerCase() === \"macaddress\" ? intl.getHTML(\"Missing_MacAddress_Not_Trusted\") : intl.getHTML(\"Missing_MachineCode_Not_Trusted\")}</b></span></div>\r\n :\r\n <div>\r\n <div>\r\n <b>Download and install SkylineGlobe Server</b>\r\n </div>\r\n <ul className=\"FAQ_ul\">\r\n <li>\r\n <div className=\"downloadliDiv\">\r\n <span className=\"downloadSpan\">Download SkylineGlobe Server{\" \"}</span>\r\n <select id=\"skylineGlobeServerSelectId\" disabled={this.state.isSGSDownloading} className=\"form-control round defaultCombobox\"\r\n onChange={(event) => {\r\n this.setState({\r\n selectedSkylineGlobeServer: event.target.value\r\n });\r\n }}>\r\n {this.state.skylineGlobeServerProducts.map((row, i) => {\r\n return (\r\n <option id={row.ProductName} className=\"\" key={i}>{row.ProductName}</option>\r\n );\r\n })\r\n }\r\n </select>\r\n <button id=\"skylineGlobeServerDownloadButtonId\" disabled={this.state.isSGSDownloading} className={this.state.isSGSDownloading ? \"btn btn-primary text-capitalize ml-2 downloadButton button-downloading\" : \"btn btn-primary text-capitalize ml-2 downloadButton\"} onClick={(event) => {\r\n this.downloadSelectedKit(\"SkylineGlobeServer\", \"isSGSDownloading\");\r\n }}>\r\n {this.state.isSGSDownloading ?\r\n (<div><span className=\"downloadSpinner\"></span>{this.state.protectionType.toLowerCase() !== \"floating\" ? \" Preparing to Download... \" : \" Downloading...\"}</div>) : (<span>{\"Download\"}</span>)\r\n }\r\n </button>\r\n {this.state.isSGSDownloading && this.state.protectionType.toLowerCase() !== \"floating\" ?\r\n <span className=\"downloadSpan ml-2\">* This may take a few minutes</span>\r\n : null }\r\n </div>\r\n </li>\r\n <li>\r\n Uninstall any previous SkylineGlobe Server installations.\r\n </li>\r\n <li>Extract the zip file.</li>\r\n <li>\r\n Double-click the <b>SkylineGlobeServerSetup.exe</b> file and\r\n follow the Installation Wizard to install.\r\n </li>\r\n </ul>\r\n {this.state.protectionType.toLowerCase() === \"floating\" ?\r\n <div>\r\n <div>\r\n <b>Activate SkylineGlobe Server license</b>\r\n </div>\r\n <ul className=\"FAQ_ul\">\r\n <li>\r\n Open the License Manager:\r\n C:\\inetpub\\wwwroot\\SG\\LicenseManager.exe\r\n </li>\r\n <li>\r\n In the <b>License Manager</b>, click on <b>File -></b> {\" \"}\r\n <b>Set Floating License Server...</b>\r\n </li>\r\n <li>\r\n Enter your license URL:{\" \"}\r\n <b className=\"copyTextForSGSLicURL\">\r\n {process.env.REACT_APP_HOST +\r\n \"/sws/\" +\r\n this.state.productAccessToken}\r\n </b>\r\n <button id=\"skylineGlobeServerCopyTokenId\" className=\"btn btn-outline-primary text-capitalize ml-1 copyToClipboard\" onClick={(event) => {\r\n var currentTarget = event.currentTarget;\r\n SLCommon.copyToClipboard(document.getElementsByClassName(\"copyTextForSGSLicURL\")[0])\r\n .then(() => { currentTarget.innerText = this.state.copiedText });\r\n }}>{this.state.copyText}</button>\r\n </li>\r\n Open SkylineGlobe Server from the Windows <b>Start</b> menu or\r\n from desktop shortcut.\r\n <li>\r\n Start SkylineGlobe Server Manager and log in: the default user name and password after installation are <b>admin</b> and <b>admin</b> (lower-case). After logging in, change your password in the Change default administrator password page that is displayed.\r\n </li>\r\n {\r\n this.state.checkoutLicAllowed\r\n ?\r\n <div>\r\n <li>\r\n In this package, there is an option to use the product in an offline mode (Check out License) up to {this.state.checkoutLicDays} days:\r\n <ul>\r\n <li>\r\n To check out a license:\r\n <ul>\r\n <li>\r\n Click on the \"Check Out\" button in the License Manager:\r\n <br />\r\n <img\r\n src={CheckoutLicenseManagerSG}\r\n className=\"text-center howTosImg img-responsive imgSmallStaticHeight\"\r\n />\r\n </li>\r\n </ul>\r\n </li>\r\n <br />\r\n <li>\r\n To check in the license back:\r\n <ul>\r\n <li>\r\n Click on the \"Check In\" button in the License Manager:\r\n <br />\r\n <img\r\n src={CheckinLicenseManagerSG}\r\n className=\"text-center howTosImg img-responsive imgSmallStaticHeight\"\r\n />\r\n </li>\r\n </ul>\r\n </li>\r\n </ul>\r\n </li>\r\n </div>\r\n :\r\n \"\"\r\n }\r\n </ul>\r\n </div> : null}\r\n </div>}\r\n </div>\r\n </ScrollableAnchor>\r\n : null}\r\n {this.state.packageDetails.find(x => x.products.BaseProduct === \"TerraBuilder\") !== undefined ?\r\n <ScrollableAnchor id={\"InstallTerraBuilderSection\"}>\r\n <div className=\"FAQ_Pricing productDiv\">\r\n <div className=\"headersHowToProduct\">\r\n <h5 className=\"headersHowTo\">\r\n How to download and activate your TerraBuilder\r\n </h5>\r\n {this.state.protectionType.toLowerCase() !== \"floating\" &&\r\n (this.state.protectionTypeCodes[\"TerraBuilder\"] &&\r\n (this.state.protectionTypeCodes[\"TerraBuilder\"].length > 0\r\n && this.state.protectionTypeCodes[\"TerraBuilder\"].every(item => item !== '')\r\n && this.state.protectionType.toLowerCase() !== \"usbkey\"\r\n )) ?\r\n <Link className=\"btn btn-outline-primary text-capitalize copyToClipboard\" to={`/account/${this.state.packageId}/${this.state.packageDetails.find(x => x.products.BaseProduct === \"TerraBuilder\") !== undefined ? this.state.packageDetails.find(x => x.products.BaseProduct === \"TerraBuilder\").Id : 0}`}>{this.state.isTrustedCustomer ? \"Edit \" : \"View \"} {this.state.protectionType.toLowerCase() === \"macaddress\" ? \"Mac Addresses\" : \"Machine Codes\"}</Link>\r\n : null}\r\n </div>\r\n <p>\r\n TerraBuilder is a 3D terrain database creator.\r\n TerraBuilder features professional-grade tools for\r\n manipulating and merging aerial photos, satellite images,\r\n and digital elevation models of different sizes and resolutions.{\" \"}\r\n <a id=\"terraBuilderMoreDetailsId\" href=\"https://www.skylinesoft.com/product-terrabuilder\">\r\n More about: TerraBuilder\r\n </a>\r\n </p>\r\n {this.state.protectionType.toLowerCase() !== \"floating\" &&\r\n (this.state.protectionTypeCodes[\"TerraBuilder\"] &&\r\n (this.state.protectionTypeCodes[\"TerraBuilder\"].length === 0\r\n || this.state.protectionTypeCodes[\"TerraBuilder\"].every(item => item === '')\r\n )) ?\r\n this.state.protectionType.toLowerCase() === \"usbkey\" ?\r\n <div className=\"mb-3 missingProtectionType\"><span className=\"mr-3\"><b>{intl.getHTML(\"ProtectionType_Missing_Usb_Key\")}</b></span>\r\n </div>\r\n :\r\n this.state.isTrustedCustomer ?\r\n (<div className=\"mb-3 missingProtectionType\"><span className=\"mr-3\"><b>{this.state.protectionType.toLowerCase() === \"macaddress\" ? intl.get(\"ProtectionType_Missing_MacAddress_Code\") : intl.get(\"ProtectionType_Missing_Machine_Code\")}</b></span>\r\n <Link className=\"btn btn-outline-primary text-capitalize copyToClipboard\" to={`/account/${this.state.packageId}/${this.state.packageDetails.find(x => x.products.BaseProduct === \"TerraBuilder\") !== undefined ? this.state.packageDetails.find(x => x.products.BaseProduct === \"TerraBuilder\").Id : 0}`}>{this.state.protectionType.toLowerCase() === \"macaddress\" ? intl.get(\"ProtectionType_Add_Mac_Address\") : intl.get(\"ProtectionType_Add_Machine_Code\")}</Link>\r\n </div>)\r\n :\r\n (<div className=\"mb-3 missingProtectionType\"><span className=\"mr-3\"><b>{this.state.protectionType.toLowerCase() === \"macaddress\" ? intl.getHTML(\"Missing_MacAddress_Not_Trusted\") : intl.getHTML(\"Missing_MachineCode_Not_Trusted\")}</b></span></div>)\r\n :\r\n <div>\r\n <div>\r\n <b>Download and install TerraBuilder</b>\r\n </div>\r\n <ul className=\"FAQ_ul\">\r\n <li>\r\n <div className=\"downloadliDiv\">\r\n <span className=\"downloadSpan\">Download TerraBuilder{\" \"}</span>\r\n <select id=\"terraBuilderSelectId\" disabled={this.state.isTBDownloading} className=\"form-control round defaultCombobox\"\r\n onChange={(event) => {\r\n this.setState({\r\n selectedTerraBuilder: event.target.value\r\n });\r\n }}>\r\n {this.state.terraBuilderProducts.map((row, i) => {\r\n return (\r\n <option id={row.ProductName} className=\"\" key={i}>{row.ProductName}</option>\r\n );\r\n })\r\n }\r\n </select>\r\n <button id=\"terraBuilderDownloadButtonId\" disabled={this.state.isTBDownloading} className={this.state.isTBDownloading ? \"btn btn-primary text-capitalize ml-2 downloadButton button-downloading\" : \"btn btn-primary text-capitalize ml-2 downloadButton\"} onClick={(event) => {\r\n this.downloadSelectedKit(\"TerraBuilder\", \"isTBDownloading\");\r\n }}>\r\n {this.state.isTBDownloading ?\r\n (<div><span className=\"downloadSpinner\"></span>{this.state.protectionType.toLowerCase() !== \"floating\" ? \" Preparing to Download... \" : \" Downloading...\"}</div>) : (<span>{\"Download\"}</span>)\r\n }\r\n </button>\r\n {this.state.isTBDownloading && this.state.protectionType.toLowerCase() !== \"floating\" ?\r\n <span className=\"downloadSpan ml-2\">* This may take a few minutes</span>\r\n : null }\r\n </div>\r\n </li>\r\n <li>Uninstall any previous TerraBuilder installations.</li>\r\n <li>Extract the zip file you have downloaded.</li>\r\n <li>\r\n Double-click the <b>TerraBuilderSetup.exe</b> file and follow the\r\n Installation Wizard to install the application.\r\n </li>\r\n </ul>\r\n {this.state.protectionType.toLowerCase() === \"floating\" ?\r\n <div>\r\n <div>\r\n <b>Activate TerraBuilder license</b>\r\n </div>\r\n <ul className=\"FAQ_ul\">\r\n <li>\r\n Open the <b>License Manager</b> from the Windows <b>Start -></b>{\" \"}\r\n menu <img className=\"text-center\" src={TES_Menu} />\r\n </li>\r\n <li>\r\n In the <b>License Manager</b>, click <b>File -></b> {\" \"}\r\n <b>Set Floating License Server...</b>\r\n </li>\r\n <li>\r\n Copy-paste your license URL:{\" \"}\r\n <b className=\"copyTextForTBLicURL\">\r\n {process.env.REACT_APP_HOST +\r\n \"/sws/\" +\r\n this.state.productAccessToken}\r\n </b>\r\n <button id=\"terraBuilderCopyTokenId\" className=\"btn btn-outline-primary text-capitalize ml-1 copyToClipboard\" onClick={(event) => {\r\n var currentTarget = event.currentTarget;\r\n SLCommon.copyToClipboard(document.getElementsByClassName(\"copyTextForTBLicURL\")[0])\r\n .then(() => { currentTarget.innerText = this.state.copiedText });\r\n }}>{this.state.copyText}</button>\r\n </li>\r\n <li>\r\n Open TerraBuilder.\r\n <br />\r\n <br />\r\n <img\r\n src={LicenseTB}\r\n className=\"text-center howTosImg img-responsive imgStaticHeight\"\r\n />\r\n </li>\r\n {\r\n this.state.checkoutLicAllowed\r\n ?\r\n <div>\r\n <br />\r\n <li>\r\n In this package, there is an option to use the product in an offline mode (Check out License) up to {this.state.checkoutLicDays} days:\r\n <ul>\r\n <li>\r\n To check out a license:\r\n <ul>\r\n <li>\r\n Validate that TerraBuilder is not running.\r\n </li>\r\n <li>\r\n Click on the \"Check Out\" button in the License Manager:\r\n <br />\r\n <img\r\n src={CheckoutLicenseManagerTB}\r\n className=\"text-center howTosImg img-responsive imgSmallStaticHeight\"\r\n />\r\n </li>\r\n </ul>\r\n </li>\r\n <br />\r\n <li>\r\n To check in the license back:\r\n <ul>\r\n <li>\r\n Validate that TerraBuilder is not running.\r\n </li>\r\n <li>\r\n Click on the \"Check In\" button in the License Manager:\r\n <br />\r\n <img\r\n src={CheckinLicenseManagerTB}\r\n className=\"text-center howTosImg img-responsive imgSmallStaticHeight\"\r\n />\r\n </li>\r\n </ul>\r\n </li>\r\n </ul>\r\n </li>\r\n </div>\r\n :\r\n \"\"\r\n }\r\n </ul>\r\n </div> : null}\r\n </div>}\r\n </div>\r\n </ScrollableAnchor>\r\n : null}\r\n <br />\r\n <br />\r\n <br />\r\n </div>\r\n : <div>\r\n <span style={{ fontSize: \"28px\" }}>\r\n {intl.get(\"Perpetual_License_Expired\")}\r\n </span>\r\n </div>}\r\n </main>\r\n );\r\n }\r\n}\r\n\r\nexport default GettingStartedProducts;\r\n","import React, { Component } from \"react\";\r\nimport { Link, Route, Redirect } from \"react-router-dom\";\r\nimport intl from \"react-intl-universal\";\r\nimport ScrollableAnchor from \"react-scrollable-anchor\";\r\nimport PublishToSG from \"../img/HowTos/PublishToSG.png\";\r\nimport LogInTED from \"../img/HowTos/LogInTED.gif\";\r\nimport signIn from \"../signIn\";\r\nimport * as SLCommon from \"../slCommon\";\r\n\r\nclass GettingStartedUploads extends Component {\r\n constructor(props) {\r\n super(props);\r\n const hashString = window.location.hash;\r\n\r\n let queryParameters = \"\";\r\n\r\n if (window.location.search.match(/[?&]displayLogin[=]1/gi) !== null) {\r\n queryParameters = window.location.search\r\n .replace(/[?&]displaylogin=1[&]?/i, \"\")\r\n .replace(/[&]*$/, \"\")\r\n .replace(/^[?]/, \"\");\r\n if (queryParameters !== \"\") queryParameters = \"?\" + queryParameters;\r\n return (window.location =\r\n \"/store/signIn?redirect=\" + encodeURIComponent(\"/gettingStartedUploads\" +\r\n queryParameters +\r\n hashString));\r\n }\r\n\r\n this.state = {\r\n siteName: \"\",\r\n SGSpremiumData: \"premium\",\r\n productAccessToken: \"token\",\r\n SGBaseUrl: \"https://cloud.skylineglobe.com/SG\",\r\n copyText: 'Copy',\r\n copiedText: 'Copied', \r\n };\r\n }\r\n\r\n componentDidMount() {\r\n\r\n if (window.location.search.match(/[?&]premiumData=([^&]+)/i) !== null) {\r\n this.setState({\r\n SGSpremiumData: window.location.search.match(\r\n /[?&]premiumData=([^&]+)/i\r\n )[1],\r\n });\r\n }\r\n\r\n var packageIdParam = window.location.search.match(\r\n /[?&]packageid[=]([^&]+)/i\r\n );\r\n\r\n if (this.props.props.isLoggedIn)\r\n this.getUserStatusData(packageIdParam !== null ? packageIdParam[1] : \"\");\r\n }\r\n\r\n getUserStatusData(packageId) {\r\n fetch(process.env.REACT_APP_API_URL + \"GetUserDataByPackage\", {\r\n method: \"POST\",\r\n credentials: \"include\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n },\r\n body: JSON.stringify({\r\n packageId: packageId,\r\n }),\r\n })\r\n .then((res) => res.json())\r\n .then((result) => {\r\n if (result.Result.toString().toLowerCase() === \"success\") {\r\n\r\n if (result.Site && result.Site.SiteName) {\r\n this.setState({\r\n siteName: result.Site.SiteName\r\n });\r\n }\r\n\r\n if (result.PackageAccessToken) {\r\n this.setState({\r\n productAccessToken: result.PackageAccessToken\r\n });\r\n }\r\n\r\n if (result.SGBaseUrl) {\r\n this.setState({\r\n SGBaseUrl: result.SGBaseUrl\r\n });\r\n }\r\n } \r\n })\r\n .catch((error) => {\r\n console.error(error);\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n <main className=\"container-fluid col-md-9 faqMain\">\r\n <div>\r\n <div>\r\n <span style={{ fontSize: \"28px\" }}>\r\n Getting Started: Uploading and Publishing Data to SkylineCloud and\r\n Managing Your Users\r\n </span>\r\n <br />\r\n <br />\r\n <span>\r\n Listed below are frequently asked questions about SkylineCloud. If\r\n you have any additional questions, contact us at{\" \"}\r\n <a href=\"mailto:support@skylinesoft.com\">\r\n support@skylinesoft.com\r\n </a>\r\n .\r\n </span>\r\n <br />\r\n <br />\r\n <ul className=\"faqContentBullets\">\r\n <li>\r\n <a href=\"#publishDataSection\">\r\n How to upload and publish your own data to SkylineGlobe Server\r\n </a>\r\n </li>\r\n <li>\r\n <a href=\"#ManageUsersSection\">\r\n How to manage your SkylineGlobe Server users\r\n </a>\r\n </li>\r\n </ul>\r\n </div>\r\n <ScrollableAnchor id={\"publishDataSection\"}>\r\n <div className=\"FAQ_Pricing\">\r\n <h5 className=\"headersHowTo\">\r\n How to upload and publish your own data to SkylineGlobe Server\r\n </h5>\r\n <p>\r\n You can upload your layers to SkylineGlobe Server (SGS) in\r\n SkylineCloud directly from TerraExplorer Pro. Simply add your\r\n proprietary layers to the SkylineCloud project, and then publish\r\n all your geospatial data to SkylineGlobe Server through a single\r\n publishing operation.{\" \"}\r\n </p>\r\n <div>\r\n <b>Connect to SkylineGlobe Server:</b>\r\n </div>\r\n <ul className=\"FAQ_ul\">\r\n <li>\r\n Click <b>Log in</b> in the top right of the application.\r\n </li>\r\n <li>\r\n In the <b>Server</b> field, copy-paste the following URL:{\" \"}\r\n <b class=\"copyTextForSGSURL\">\r\n {this.state && this.state.siteName !== \"\"\r\n ? this.state.SGBaseUrl + \"/\" + this.state.siteName\r\n : this.state.SGBaseUrl + \"/\" + \"[CUSTOMER_KEY]\"}\r\n </b>\r\n <button className=\"btn btn-outline-primary text-capitalize ml-1 copyToClipboard\" onClick={(event) => {\r\n var currentTarget = event.currentTarget;\r\n SLCommon.copyToClipboard(document.getElementsByClassName(\"copyTextForSGSURL\")[0])\r\n .then(() => { currentTarget.innerText = this.state.copiedText });\r\n }}>{this.state.copyText}</button>\r\n <br />\r\n {!this.state || this.state.siteName === \"\"\r\n ? \"Where CUSTOMER_KEY = Your site name.\"\r\n : \"\"}\r\n </li>\r\n <li>\r\n Type in your <b>User Name</b> and <b>Password</b>.\r\n </li>\r\n <li>\r\n Click <b>Log in</b>.\r\n </li>\r\n <img className=\"text-center howTosImg img-responsive imgStaticHeight\" src={LogInTED} />\r\n </ul>\r\n\r\n <div>\r\n <b>\r\n Publish a project or layer to SkylineGlobe Server in\r\n SkylineCloud:\r\n </b>\r\n </div>\r\n <ul className=\"FAQ_ul\">\r\n <li>\r\n Open TerraExplorer Pro and create your customized project, by\r\n adding your proprietary layers to the Skyline.\r\n <br />\r\n (More about how to load feature layers{\" \"}\r\n <a href=\"https://support.skylinesoft.com/hc/en-us/articles/360014210399-Feature-Layers-Overview\">\r\n click here\r\n </a>\r\n ).\r\n </li>\r\n <li>\r\n {\" \"}\r\n On the <b>Home</b> tab, click <b>Publish to SG</b> button\r\n {\" \"}\r\n <img src={PublishToSG} />\r\n <br></br>\r\n or right click on the item at the menu and <b>Upload to SkylineGlobe</b>. \r\n </li>\r\n <li>\r\n Set the <b>view/edit access</b> (None, Only Me, My Group, or\r\n Everyone) for the project/layers.\r\n </li>\r\n <li>\r\n Click <b>Publish</b>. When publishing is complete, a dialog\r\n box is displayed with the URLs of the Desktop, Mobile, and Web\r\n projects. To open the published web project, copy the link in\r\n the TE Web Project field to your browser.\r\n </li>\r\n </ul>\r\n </div>\r\n </ScrollableAnchor>\r\n <ScrollableAnchor id={\"ManageUsersSection\"}>\r\n <div className=\"FAQ_Pricing\">\r\n <h5 className=\"headersHowTo\">\r\n How to manage your SkylineGlobe Server users\r\n </h5>\r\n <div>\r\n <p>\r\n You can manage your users’ access to your SkylineCloud data,\r\n proprietary layers and cloud storage from SkylineGlobe Server\r\n Manager. You can also create user groups to easily provide\r\n view or edit access to a specific group of users.\r\n </p>\r\n <ul className=\"\">\r\n <li>Add and delete users.</li>\r\n <li>\r\n Modify user roles (permissions), groups, authorization\r\n modes, and passwords.\r\n </li>\r\n <li>Add and delete user groups.</li>\r\n </ul>\r\n </div> \r\n <div>\r\n <b>Open SkylineGlobe Server Manager:</b>\r\n </div>\r\n <ul>\r\n <li>\r\n Open{\" \"}\r\n <a\r\n href={\r\n this.state && this.state.siteName !== \"\"\r\n ? this.state.SGBaseUrl + \"/\" + this.state.siteName\r\n : this.state.SGBaseUrl + \"/\" + \"[CUSTOMER_KEY]\"\r\n }\r\n target=\"_blank\"\r\n >\r\n {this.state && this.state.siteName !== \"\"\r\n ? this.state.SGBaseUrl + \"/\" + this.state.siteName\r\n : this.state.SGBaseUrl + \"/\" + \"[CUSTOMER_KEY]\"}\r\n </a>\r\n </li>\r\n </ul> \r\n <div>\r\n <b>To add a new user:</b>\r\n </div>\r\n <ul className=\"FAQ_ul\">\r\n <li>\r\n {\" \"}\r\n Select <b>Users </b>\r\n from the left menu.\r\n </li>\r\n <li>\r\n Click <b>Add</b>, and then in the User Properties dialog enter\r\n the user information including user name, group (see below for\r\n more information), password, and role:\r\n <ul className=\"\">\r\n <li>\r\n <b>Viewer</b> – Can list, load and edit, from the\r\n client-side, all layers for which the user has valid\r\n view/edit access.\r\n </li>\r\n <li>\r\n <b>Publisher</b> – Viewer permissions + publish layers to\r\n SkylineGlobe Server and manage <b>these</b> layers from\r\n supporting clients, e.g., TerraExplorer Pro.\r\n </li>\r\n <li>\r\n <b>Site Administrator</b> – Publisher permissions + log in\r\n to SGS Manager to perform SGS management and configuration\r\n activities.\r\n </li>\r\n </ul>\r\n </li>\r\n </ul>\r\n <div>\r\n <b>To add a new user group:</b>\r\n </div>\r\n <ul className=\"FAQ_ul\">\r\n <li>\r\n Select <b>Users</b> from the left menu.\r\n </li>\r\n <li>\r\n Click <b>Group Manager</b>. The Groups Manager page is\r\n displayed.\r\n </li>\r\n <li>\r\n Click <b>Add</b>. The Group Properties dialog box is\r\n displayed.\r\n </li>\r\n <li>\r\n Enter the required information including the limit on storage\r\n for this group and its max active sessions, and click{\" \"}\r\n <b>Add. </b>\r\n </li>\r\n </ul>\r\n <div>\r\n <b>To permanently delete a user:</b>\r\n <ul className=\"FAQ_ul\">\r\n <li>\r\n Select <b>Users</b> from the left menu.\r\n </li>\r\n <li>\r\n Select a row with a specific user, and click{\" \"}\r\n <b>Permanently Delete</b>. This will also permanently delete\r\n the user’s layers.\r\n </li>\r\n </ul>\r\n </div>\r\n <div>\r\n For additional information on managing users and layers, click{\" \"}\r\n <a\r\n href={\r\n this.state.SGBaseUrl + \"/\" +\r\n this.state.siteName +\r\n \"/Admin/Help.aspx\"\r\n }\r\n target=\"_blank\"\r\n >\r\n Help\r\n </a>{\" \"}\r\n to open the SkylineGlobe Server User Guide.\r\n </div>\r\n </div>\r\n </ScrollableAnchor>\r\n <br />\r\n <br />\r\n <br />\r\n </div>\r\n </main>\r\n );\r\n }\r\n}\r\n\r\nexport default GettingStartedUploads;\r\n","import React, { Component } from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\nimport ScrollableAnchor from \"react-scrollable-anchor\";\r\nimport intl from \"react-intl-universal\";\r\nimport { configureAnchors } from \"react-scrollable-anchor\";\r\nimport \"../pricing.css\";\r\n\r\nclass Pricing extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n isLoading: false,\r\n isTestPlan: false,\r\n handle_buy_error: false,\r\n handle_buy_error_message: \"\",\r\n single_user_selected: {\r\n package_price: \"1000\",\r\n package_time: intl.get(\"pricing_Yearly\"),\r\n package_id: \"\",\r\n },\r\n small_business_selected: {\r\n package_price: \"3400\",\r\n package_time: intl.get(\"pricing_Yearly\"),\r\n package_id: \"\",\r\n },\r\n };\r\n\r\n configureAnchors({ offset: -200, scrollDuration: 0 });\r\n }\r\n\r\n componentDidMount() {\r\n var regExpPlan = /[?&]checkoutPlanId[=]([^&]+)(&|$)/gi;\r\n var matchPlan = regExpPlan.exec(window.location.search);\r\n var regExpCheckout = /[?&]checkoutPageId[=]([^&]+)(&|$)/gi;\r\n var testFlag = window.location.search.match(/[?&]test[=]1/gi) !== null;\r\n this.setState({ isTestPlan: testFlag });\r\n var matchCheckout = regExpCheckout.exec(window.location.search);\r\n if (matchPlan !== null && matchCheckout !== null) {\r\n this.fetchBuyNow(matchPlan[1], matchCheckout[1]);\r\n }\r\n }\r\n\r\n handleBuyNow = (event, planID, checkoutPageId, isFreeTrialSelected) => {\r\n event.preventDefault();\r\n this.fetchBuyNow(planID, checkoutPageId, isFreeTrialSelected);\r\n };\r\n\r\n fetchBuyNow = (planID, checkoutPageId, isFreeTrialSelected) => {\r\n this.setState({ isLoading: true });\r\n\r\n if (this.props.props.isLoggedIn) {\r\n var testFlag = window.location.search.match(/[?&]test[=]1/gi) !== null;\r\n fetch(\r\n process.env.REACT_APP_API_URL +\r\n \"CheckoutPlan?planId=\" +\r\n planID +\r\n \"&checkoutPageId=\" +\r\n checkoutPageId +\r\n (testFlag ? \"&test=1\" : \"\"),\r\n {\r\n method: \"GET\",\r\n credentials: \"include\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n },\r\n }\r\n )\r\n .then((res) => {\r\n if (res.ok) {\r\n return res;\r\n } else {\r\n throw Error(`Request rejected with status ${res.status}`);\r\n }\r\n })\r\n .then((res) => res.json())\r\n .then((result) => {\r\n if (result.Result.toLowerCase() === \"success\") {\r\n window.location = result.RedirectUrl;\r\n } else {\r\n this.setState({ handle_buy_error: true });\r\n this.setState({ handle_buy_error_message: result.Message });\r\n this.setState({ isLoading: false });\r\n }\r\n })\r\n .catch((error) => {\r\n console.error(error);\r\n if (error.message.includes(\"401\"))\r\n window.location =\r\n window.location.origin +\r\n \"/store/signIn/?redirect=\" +\r\n escape(\r\n \"/uavpackages/pricing?checkoutPlanId=\" +\r\n planID +\r\n \"&checkoutPageId=\" +\r\n checkoutPageId\r\n );\r\n else this.props.props.handleServerError(true);\r\n });\r\n } else {\r\n if (isFreeTrialSelected) {\r\n window.location =\r\n window.location.origin +\r\n \"/store/signUp/?redirect=\" +\r\n escape(\r\n \"/uavpackages/pricing?checkoutPlanId=\" +\r\n planID +\r\n \"&checkoutPageId=\" +\r\n checkoutPageId\r\n );\r\n } else {\r\n window.location =\r\n window.location.origin +\r\n \"/store/signIn/?redirect=\" +\r\n escape(\r\n \"/uavpackages/pricing?checkoutPlanId=\" +\r\n planID +\r\n \"&checkoutPageId=\" +\r\n checkoutPageId\r\n );\r\n }\r\n }\r\n };\r\n\r\n render() {\r\n if (this.state.isLoading) {\r\n return (\r\n <div className=\"cssload-loader cssload-pricingLoader\">\r\n <div className=\"cssload-square cssload-square--main\">\r\n <div className=\"cssload-square cssload-square--mini\" />\r\n <div className=\"cssload-square cssload-square--mini\" />\r\n <div className=\"cssload-square cssload-square--mini\" />\r\n <div className=\"cssload-square cssload-square--mini\" />\r\n <div className=\"cssload-square cssload-square--mini\" />\r\n <div className=\"cssload-square cssload-square--mini\" />\r\n <div className=\"cssload-square cssload-square--mini\" />\r\n <div className=\"cssload-square cssload-square--mini\" />\r\n <div className=\"cssload-square cssload-square--mini\" />\r\n <div className=\"cssload-square cssload-square--mini\" />\r\n <div className=\"cssload-square cssload-square--mini\" />\r\n <div className=\"cssload-square cssload-square--mini\" />\r\n <div className=\"cssload-square cssload-square--mini\" />\r\n <div className=\"cssload-square cssload-square--mini\" />\r\n <div className=\"cssload-square cssload-square--mini\" />\r\n <div className=\"cssload-square cssload-square--mini\" />\r\n </div>\r\n </div>\r\n );\r\n // return <div className=\"loader\" />;\r\n }\r\n return (\r\n <div className=\"row no-gutter\">\r\n <ScrollableAnchor id={\"pricingHeader\"}>\r\n <div className=\"container pricingContainer\">\r\n <h3 className=\"pricing_mini_title\">Skyline Online Store - UAV</h3>\r\n {this.state.handle_buy_error ? (\r\n <div id=\"divWarning\" style={{ marginBottom: \"30px\" }}>\r\n <button\r\n id=\"x\"\r\n onClick={(event) =>\r\n this.setState({ handle_buy_error: false })\r\n }\r\n >\r\n X\r\n </button>\r\n {this.state.handle_buy_error_message}\r\n </div>\r\n ) : null}\r\n <div className=\"row\">\r\n <div className=\"col-md-4 col-sm-6\">\r\n <div className=\"pricingTable\">\r\n <h3 className=\"title\" style={{ height: \"65px\" }}>\r\n PhotoMesh UAV\r\n <br />\r\n </h3>\r\n <div className=\"price-value\">\r\n <div className=\"price-value-mount\">\r\n <span\r\n className=\"amount mt-3\"\r\n style={{ fontSize: \"38px\" }}\r\n >\r\n <span\r\n className=\"\"\r\n style={{\r\n textDecoration: \"line-through\",\r\n left: \"-26px\",\r\n }}\r\n >\r\n $1500\r\n </span>\r\n <span className=\"\" style={{ marginLeft: \"1em\" }}>\r\n ${this.state.single_user_selected.package_price}{\" \"}\r\n </span>\r\n </span>\r\n <span style={{ color: \"white\" }}>\r\n {this.state.single_user_selected.package_time ===\r\n intl.get(\"pricing_Yearly\")\r\n ? \" / Year\"\r\n : \" / Month\"}\r\n </span>\r\n </div>\r\n </div>\r\n <ul className=\"pricing-content text-left\">\r\n <li className=\"pricing_package_content\">PhotoMesh</li>\r\n <ul>\r\n <li className=\"sub_packge_content\">\r\n Outputs: 3DML, Orthophoto, DSM, LAS\r\n </li>\r\n <li className=\"sub_packge_content\">\r\n Up to 10 Gigapixels (500 Photos)\r\n </li>\r\n </ul>\r\n <li className=\"pricing_package_content\">\r\n TerraExplorer Plus\r\n </li>\r\n <li className=\"pricing_package_content\">\r\n Online support materials\r\n </li>\r\n\r\n <div className=\"pricingDivSpace\" />\r\n </ul>\r\n <div>\r\n <button\r\n onClick={(event) => {\r\n if (this.state.isTestPlan)\r\n this.handleBuyNow(\r\n event,\r\n \"test-basicuavtrial-k9vda\",\r\n \"5ea0b37e-ec4d-40c3-aea9-35cdd5a34010\",\r\n true\r\n );\r\n else\r\n this.handleBuyNow(\r\n event,\r\n \"basicuavtrial\",\r\n \"8b856edd-db19-4f17-a780-f7d9714a5b5e\",\r\n true\r\n );\r\n }}\r\n className=\"pricingTable-signup pricingTable-WithFreeTrial\"\r\n >\r\n Free 15-day trial\r\n </button>\r\n <button\r\n onClick={(event) => {\r\n if (this.state.isTestPlan)\r\n this.handleBuyNow(\r\n event,\r\n \"test-basicuav-k9vda\",\r\n \"ba22e09f-db55-4dd2-914f-a619c6079a93\"\r\n );\r\n else\r\n this.handleBuyNow(\r\n event,\r\n \"basicuav\",\r\n \"228a7d3a-867c-408b-8f87-4304d8cefc6a\"\r\n );\r\n }}\r\n className=\"pricingTable-signup\"\r\n >\r\n {intl.get(\"pricing_Buy_Now\")}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"col-md-4 col-sm-6\">\r\n <div className=\"pricingTable\">\r\n <h3 className=\"title\">\r\n PhotoMesh UAV <br /> Plus\r\n </h3>\r\n <div className=\"price-value\">\r\n <div className=\"price-value-mount\">\r\n <span\r\n className=\"amount mt-3\"\r\n style={{ fontSize: \"38px\" }}\r\n >\r\n <span className=\"currency\" style={{ left: \"-26px\" }}>\r\n $ {\" \"}\r\n </span>\r\n 3400\r\n </span>\r\n <span style={{ color: \"white\" }}>\r\n {this.state.single_user_selected.package_time ===\r\n intl.get(\"pricing_Yearly\")\r\n ? \" / Year\"\r\n : \" / Month\"}\r\n </span>\r\n </div>\r\n </div>\r\n <ul className=\"pricing-content text-left\">\r\n <li className=\"pricing_package_content\">PhotoMesh</li>\r\n <ul>\r\n <li className=\"sub_packge_content\">\r\n Outputs: 3DML, OBJ, OSGB, 3D Tiles,\r\n <br />\r\n SLPK, Orthophoto, DSM, DTM, LAS\r\n </li>\r\n <li className=\"sub_packge_content\">Unlimited photos</li>\r\n </ul>\r\n <li className=\"pricing_package_content\">\r\n TerraExplorer Plus\r\n </li>\r\n <li className=\"pricing_package_content\">\r\n Personal support\r\n </li>\r\n\r\n <div className=\"pricingDivSpace\" />\r\n </ul>\r\n <div>\r\n <button\r\n onClick={(event) => {\r\n if (this.state.isTestPlan)\r\n this.handleBuyNow(\r\n event,\r\n \"test-uavplustrial-k9vda\",\r\n \"44112a96-c285-48ac-b0ce-e8114dd78aa9\",\r\n true\r\n );\r\n else\r\n this.handleBuyNow(\r\n event,\r\n \"UAVPlusTrial\",\r\n \"7b0eca7c-066c-463b-8e85-867eddd5b3c3\",\r\n true\r\n );\r\n }}\r\n className=\"pricingTable-signup pricingTable-WithFreeTrial\"\r\n >\r\n Free 15-day trial\r\n </button>\r\n <button\r\n onClick={(event) => {\r\n if (this.state.isTestPlan)\r\n this.handleBuyNow(\r\n event,\r\n \"test-uavplus\",\r\n \"0d24d6cf-a1db-4ac9-a69c-1eb6223c9830\"\r\n );\r\n else\r\n this.handleBuyNow(\r\n event,\r\n \"UAVPlus\",\r\n \"6149b629-35e4-4843-a163-aa4eaa69f010\"\r\n );\r\n }}\r\n className=\"pricingTable-signup\"\r\n >\r\n {intl.get(\"pricing_Buy_Now\")}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"col-md-4 col-sm-6\">\r\n <div className=\"pricingTable\">\r\n <h3 className=\"title\" style={{ height: \"65px\" }}>\r\n Customized Package <br />\r\n </h3>\r\n <div\r\n className=\"price-value\"\r\n style={{ backgroundColor: \"#404040\" }}\r\n >\r\n <div className=\"price-value-mount\">\r\n <span\r\n className=\"amount mt-3\"\r\n style={{ fontSize: \"30px\" }}\r\n >\r\n Package-Dependent\r\n </span>\r\n </div>\r\n </div>\r\n <ul className=\"pricing-content text-left\">\r\n <li className=\"pricing_package_content\">\r\n Additional PhotoMesh fusers\r\n </li>\r\n <li className=\"pricing_package_content\">\r\n Advanced publishing tools\r\n </li>\r\n <li className=\"pricing_package_content\">\r\n Hosting services\r\n </li>\r\n <li className=\"pricing_package_content\">\r\n Web and mobile viewers\r\n </li>\r\n <div style={{ height: \"133px\" }} />\r\n </ul>\r\n <div>\r\n <Link\r\n to=\"/contactUs\"\r\n className=\"pricingTable-signup customizeButton\"\r\n >\r\n CONTACT US\r\n </Link>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"FAQ_Pricing\">\r\n <h3>What is included in each of the packages?</h3>\r\n <p>\r\n PhotoMesh UAV combines a photogrammetry processing (PhotoMesh)\r\n license to create 2D/3D models from your images and a\r\n visualization software (TerraExplorer Plus) license to view,\r\n analyze, and enhance your projects. The PhotoMesh UAV level\r\n incorporates up to 500 photos (assuming a 20MP camera) per\r\n project and will create a 2D file (Orthophoto, in GeoTIFF\r\n format), a Digital Surface Model (DSM), a 3D point cloud (LAS)\r\n and a 3D Mesh (3DML format). For customers that have larger\r\n projects or need other industry standard output formats, we\r\n offer the PhotoMesh UAV Plus package. It includes one PhotoMesh\r\n license which can process unlimited photos per project and a\r\n visualization software (TerraExplorer Plus) license. In addition\r\n to unlimited photos, the Plus level provides a selection of\r\n industry standard output formats such as ESRI I3S and SLPK,\r\n Cesium 3D Tiles, OSGB and OBJ (CAD) files.\r\n </p>\r\n </div>\r\n <div className=\"FAQ_Pricing\">\r\n <h3>How much do the packages cost?</h3>\r\n <p>\r\n The PhotoMesh UAV package costs $1000 per year. We accept all\r\n major credit cards. Please email us at{\" \"}\r\n <a href=\"mailto:photomeshuav@skylinesoft.com\">\r\n photomeshuav@skylinesoft.com\r\n </a>{\" \"}\r\n if you (or your company) require traditional invoicing and\r\n billing before purchasing an eval or license through this store.\r\n If you are a Yuneec UAV customer, we also provide a training\r\n dataset, a Yuneec specific training video and 1 free\r\n consultation. We offer a 15-day evaluation license for free.\r\n Customers must provide a credit card to start their evaluation\r\n license. Unless a customer cancels their subscription, billing\r\n will occur automatically on the 16th day after receipt of the\r\n eval license. The PhotoMesh UAV Plus package costs $3400 per\r\n year. Customers may apply a prorated credit of their PhotoMesh\r\n UAV package to upgrade to the Plus package at anytime during the\r\n 1 year subscription. Upgrades are available upon email request\r\n at{\" \"}\r\n <a href=\"mailto:photomeshuav@skylinesoft.com\">\r\n photomeshuav@skylinesoft.com\r\n </a>{\" \"}\r\n </p>\r\n </div>\r\n <div className=\"FAQ_Pricing\">\r\n <h3>Which package is right for me?</h3>\r\n <p>\r\n Users who only need to view the 3D result in TerraExplorer and\r\n do not have large projects can start with the regular package.\r\n If you need to build larger projects or produce output in\r\n additional formats, select the PhotoMesh UAV Plus package.\r\n </p>\r\n </div>\r\n <div className=\"FAQ_Pricing\">\r\n <h3>What kind of drone is PhotoMesh UAV compatible with?</h3>\r\n <p>\r\n PhotoMesh UAV is designed to work with almost any drone camera\r\n (in photo or video mode). We have tested and guarantee full\r\n operational compatibility with all Yuneec payload options.\r\n </p>\r\n </div>\r\n <div className=\"FAQ_Pricing\">\r\n <h3>Can I try PhotoMesh UAV for free?</h3>\r\n <p>\r\n Yes! We are happy to provide a free 15 day trial of PhotoMesh\r\n UAV. We ask that you reserve your trial with a credit card. We\r\n will notify you via email when the trial period is ending. If\r\n you decide to terminate the package before it expires, your\r\n credit card will not be charged.{\" \"}\r\n </p>\r\n </div>\r\n <div className=\"FAQ_Pricing\">\r\n <h3>What happens when my subscription is over?</h3>\r\n <p>\r\n You will receive notification via email when your subscription\r\n period is ending. If you don’t decide to terminate your package,\r\n it will be automatically renewed to ensure no lapse in services.\r\n You can also turn off the auto-renew option at any time during\r\n your service period and we will automatically terminate your\r\n license when the period is over.{\" \"}\r\n </p>\r\n </div>\r\n <div className=\"FAQ_Pricing\">\r\n <h3>\r\n Can I upgrade or downgrade my package in the middle of a\r\n subscription?\r\n </h3>\r\n <p>\r\n Yes, if your data needs change, you can gladly{\" \"}\r\n <a href=\"mailto:support@skylinesoft.com\">contact us</a> and we\r\n will help you modify your PhotoMesh UAV package accordingly.\r\n </p>\r\n </div>\r\n <div className=\"FAQ_Pricing\">\r\n <h3>Do I need an Internet connection?</h3>\r\n <p>\r\n Generally, yes, you need to be connected to the Internet to run\r\n PhotoMesh and TerraExplorer, since these applications need to\r\n “check in†periodically with the license server. If, however,\r\n you need to work offline, this also can be arranged. To do so,{\" \"}\r\n <a href=\"mailto:support@skylinesoft.com\">contact us</a> after\r\n completing the online purchase, and we will help you with the\r\n setup process.\r\n </p>\r\n </div>\r\n <div className=\"FAQ_Pricing\">\r\n <h3>Can I share my output with others?</h3>\r\n <p>\r\n If you are interested in data hosting and sharing your data with\r\n remote TerraExplorer clients as well as Esri, Cesium, and other\r\n GIS clients,{\" \"}\r\n <a href=\"mailto:suppot@skylinesoft.com\">contact us</a> for\r\n information about advanced packages that include these\r\n capabilities.\r\n </p>\r\n </div>\r\n <div className=\"FAQ_Pricing\">\r\n <h3>What is PhotoMesh?</h3>\r\n <p>\r\n Skyline’s PhotoMesh application fully automates the building of\r\n high-resolution, textured, 3D mesh models from your drone\r\n photos. PhotoMesh’s breakthrough technology is based on the\r\n highest-performance photogrammetry, computer vision, and\r\n computational geometry algorithms. PhotoMesh results can be\r\n generated in standard 3D model (3DML, 3D Tiles, DAE, OBJ, OSGB,\r\n I3S/SLPK), raster (Orthophoto, DSM, DTM) and point cloud (LAS)\r\n formats. The 3DML format can be transformed into powerful\r\n geospatial data that fully supports spatial operations and\r\n attribute queries, by loading it into TerraExplorer and merging\r\n it with classification information.{\" \"}\r\n <a href=\"https://support.skylinesoft.com/hc/en-us/articles/360013640840-Create-a-New-PhotoMesh-Project-and-Add-Photos-to-the-Project\">\r\n Get started with PhotoMesh >\r\n </a>\r\n </p>\r\n </div>\r\n <div className=\"FAQ_Pricing\">\r\n <h3>What is TerraExplorer Plus?</h3>\r\n <p>\r\n TerraExplorer Plus is a powerful GIS tool for merging your mesh\r\n models with unlimited, geo-referenced 3D terrain, Lidar, BIM,\r\n raster and feature layers into a 3D high-resolution, geospatial\r\n environment. TerraExplorer Plus also provides powerful tools and\r\n a high resolution 3D environment in which to view, query,\r\n analyze and present geospatial data plus advanced API\r\n interfaces.{\" \"}\r\n <a href=\"https://support.skylinesoft.com/hc/en-us/articles/360014436079-Quick-Guide\">\r\n Get started with TerraExplorer >\r\n </a>\r\n </p>\r\n </div>\r\n <div className=\"contact_Us_Pricing\">\r\n <h3>\r\n {intl.get(\"FAQ_Contact_US_Title\")}{\" \"}\r\n <Link\r\n to=\"/contactUs\"\r\n className=\"btn btn-outline-primary text-capitalize\"\r\n >\r\n {\" \"}\r\n {intl.get(\"FAQ_Contact_Us\")}\r\n </Link>\r\n </h3>\r\n </div>\r\n <div className=\"bottom_Spacing\" />\r\n </div>\r\n </ScrollableAnchor>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nexport default Pricing;\r\n","import React, { Component } from \"react\";\r\nimport { Modal, Button } from \"react-bootstrap\";\r\n\r\nclass ModalDialog extends Component {\r\n state = {};\r\n render() {\r\n return (\r\n <Modal\r\n id=\"modalDialogId\"\r\n show={this.props.show}\r\n onHide={this.props.handleClose}\r\n size={this.props.modelSizeWindow ? this.props.modelSizeWindow : \"sm\"}\r\n animation={false}\r\n aria-labelledby=\"contained-modal-title-vcenter\"\r\n centered=\"true\"\r\n className={this.props.modalClassName}\r\n >\r\n <Modal.Header className={this.props.modalHeaderClass ? this.props.modalHeaderClass : \"\"}>\r\n <Modal.Title\r\n className=\"modalTitle\"\r\n id=\"contained-modal-title-vcenter\"\r\n >\r\n {this.props.title}\r\n </Modal.Title>\r\n </Modal.Header>\r\n <Modal.Body>\r\n <p>{this.props.message}</p>\r\n </Modal.Body>\r\n <Modal.Footer>\r\n <Button \r\n variant=\"secondary\" \r\n id={this.props.secondaryButtonId}\r\n onClick={this.props.handleClose}\r\n className={\"btn-secondary confirmPrivacyUpdateBtn\"}\r\n >\r\n {this.props.handleButtonClose!== \"\"?this.props.handleButtonClose: \"Close\"}\r\n </Button>\r\n <Button\r\n className={\"ModalButtonClass confirmPrivacyUpdateBtn \" + this.props.className}\r\n variant=\"primary\"\r\n id={this.props.primaryButtonId}\r\n onClick={this.props.handleSubmitClose}\r\n >\r\n {this.props.handleButtonName}\r\n </Button>\r\n </Modal.Footer>\r\n </Modal>\r\n );\r\n }\r\n}\r\n\r\nexport default ModalDialog;\r\n","import React, { Component } from \"react\";\r\nimport intl from \"react-intl-universal\";\r\nimport {\r\n FormGroup,\r\n FormControl,\r\n ControlLabel,\r\n HelpBlock,\r\n Button\r\n} from \"react-bootstrap\";\r\nimport LoaderButton from \"./LoaderButton\";\r\nimport DivsPattern from \"./skylineDesignPattern\";\r\nimport \"./account.css\"\r\nimport ModalDialog from \"./Modal\";\r\n\r\nclass UserPrivacyPreferences extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n currentPassword: \"\",\r\n newPassword: \"\",\r\n confirmNewPassword: \"\",\r\n failedMessage: \"\",\r\n isChecked : true,\r\n radioButtonValue: \"Subscribe\",\r\n showConfirmationModal:false,\r\n commentMessage:\"\",\r\n targetEmail: {\"groups\":[\"Licensing\"]},\r\n isLoading: false,\r\n unsubscribeValue: 0,\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.GetUserPrivacyPreferences();\r\n }\r\n\r\n GetUserPrivacyPreferences = () => {\r\n this.setState({ isLoading: true });\r\n\r\n fetch(process.env.REACT_APP_API_URL + \"GetUserPrivacyPreferences\", {\r\n method: \"POST\",\r\n credentials: \"include\",\r\n headers: {\r\n \"Content-Type\": \"application/json\"\r\n },\r\n body: \"\"\r\n })\r\n .then(res => res.json())\r\n .then(result => { \r\n if (result.Result == \"success\") {\r\n if(result.Unsubscribe == false){\r\n this.setState({ isChecked: true, unsubscribeValue: 0});\r\n } else {\r\n this.setState({ isChecked: false, unsubscribeValue: 1 });\r\n }\r\n } else {\r\n this.setState({ failedMessage: intl.get(\"General_Failure\") });\r\n }\r\n })\r\n .catch(error => {\r\n console.error(error);\r\n this.props.handleServerError(true);\r\n this.setState(\r\n { \r\n failedMessage: intl.get(\"General_Failure\") \r\n }\r\n );\r\n })\r\n .then(()=>{\r\n this.setState({ isLoading: false });\r\n });\r\n }\r\n\r\n validateForm() {\r\n return (\r\n this.state.currentPassword.length > 0 &&\r\n this.state.newPassword.length > 0 &&\r\n this.state.confirmNewPassword.length > 0 &&\r\n this.state.newPassword === this.state.confirmNewPassword\r\n );\r\n }\r\n\r\n handleRadioButtonValue = (value) => {\r\n if (value == \"Subscribe\"){\r\n this.setState(\r\n {\r\n radioButtonValue: value, \r\n isChecked: true,\r\n unsubscribeValue: 0\r\n }\r\n );\r\n }\r\n else{\r\n this.setState(\r\n {\r\n radioButtonValue:value,\r\n isChecked:false,\r\n unsubscribeValue: 1\r\n }\r\n );\r\n }\r\n };\r\n\r\n cancelOnClick = () => {\r\n return false;\r\n }\r\n\r\n handleChange = event => {\r\n this.setState({\r\n [event.target.id]: event.target.value\r\n });\r\n };\r\n\r\n handleConfirmationModalClose = () =>{\r\n this.setState({ showConfirmationModal: false });\r\n }; \r\n\r\n handleDialog =(event) =>{\r\n event.preventDefault();\r\n this.setState({showConfirmationModal:true});\r\n }\r\n\r\n handleSubmit = event => {\r\n event.preventDefault();\r\n\r\n this.setState({ isLoading: true });\r\n\r\n fetch(process.env.REACT_APP_API_URL + \"UpdateUserPrivacyPreferences\", {\r\n method: \"POST\",\r\n credentials: \"include\",\r\n headers: {\r\n \"Content-Type\": \"application/json\"\r\n },\r\n body: JSON.stringify({\r\n preference: this.state.radioButtonValue,\r\n unsubscribeValue: this.state.unsubscribeValue,\r\n comment:this.state.commentMessage,\r\n email: this.props.userName,\r\n targetEmail: this.state.targetEmail\r\n })\r\n })\r\n .then(res => res.json())\r\n .then(result => {\r\n this.setState({ showConfirmationModal: false });\r\n this.setState({ isLoading: false });\r\n if (result.Result == \"success\") {\r\n if (this.state.radioButtonValue !== \"Delete\"){\r\n return this.props.history.push(\"/account\");\r\n }\r\n else{\r\n fetch(process.env.REACT_APP_API_URL + \"logout\", {\r\n method: \"POST\",\r\n credentials: \"include\",\r\n headers: {\r\n \"Content-Type\": \"application/json\"\r\n },\r\n body: JSON.stringify({})\r\n })\r\n .then(res => res.json())\r\n .then(result => {\r\n if (result.Result === \"Success\") {\r\n this.props.userHasAuthenticated(false, undefined);\r\n } else{\r\n this.setState({ failedMessage: 'failed to logout user' });\r\n }\r\n })\r\n }\r\n } else {\r\n this.setState({ failedMessage: result.Message });\r\n }\r\n })\r\n .catch(error => {\r\n console.error(error);\r\n this.props.handleServerError(true);\r\n this.setState(\r\n { \r\n showConfirmationModal: false, \r\n isLoading: false, \r\n failedMessage: intl.get(\"General_Failure\") }\r\n );\r\n });\r\n };\r\n\r\n render() {\r\n return ( \r\n <DivsPattern className={this.state.isLoading ? \"privacyHide\" : \"\"} headerText={intl.get(\"User_Privacy_Preferences_Title\")}>\r\n <form className=\"form-signin\">\r\n <FormGroup controlId=\"DeleteUser\" className=\"form-label-group\">\r\n <input id=\"resubscribeCheck\" className=\"privacyRadio\" name=\"DeleteUser\" type=\"radio\" data-indeterminate=\"false\" value=\"Subscribe\"\r\n onChange={(event) => { this.handleRadioButtonValue(event.target.value) }}\r\n checked={this.state.isChecked == true} onClick={this.cancelOnClick}></input>\r\n <label>{intl.get(\"Resubscribe_to_newsletter_and_marketing_updates\")}</label>\r\n </FormGroup>\r\n <FormGroup controlId=\"DeleteUser\" className=\"form-label-group\">\r\n <input id=\"unsubscribeCheck\" className=\"privacyRadio\" name=\"DeleteUser\" type=\"radio\" data-indeterminate=\"false\" value=\"Unsubscribe\"\r\n onChange={(event) => { this.handleRadioButtonValue(event.target.value) }}\r\n checked={this.state.isChecked == false} onClick={this.cancelOnClick}></input>\r\n <label>{intl.get(\"Unsubscribe_from_newsletter_and_marketing_updates\")}</label>\r\n </FormGroup>\r\n <FormGroup controlId=\"DeleteUser\" className=\"form-label-group\">\r\n <label className=\"privacyDeleteCommentLabel\">Comment:</label>\r\n <textarea className=\"privacyDeleteCommentTextarea\" placeholder=\"(optional)\" value={this.state.commentMessage} onChange={(event) => { this.setState({ commentMessage: event.target.value }); }}>\r\n </textarea>\r\n </FormGroup>\r\n <LoaderButton\r\n block\r\n onClick={this.handleDialog}\r\n className=\"btn btn-lg btn-primary btn-block btn-login text-uppercase font-weight-bold mb-2 privacyUpdateButton\"\r\n type=\"submit\"\r\n isLoading={this.state.isLoading}\r\n text={intl.get(\"User_Privacy_Preferences_Button\")}\r\n loadingText={intl.get(\"Update_Privacy_Loading\")}\r\n />\r\n <ModalDialog\r\n show={this.state.showConfirmationModal}\r\n className={this.state.radioButtonValue == \"Subscribe\" ? \"\" : \"DeleteUser\"}\r\n handleClose={this.handleConfirmationModalClose}\r\n title={intl.get(\"Privacy_Modal_Title\")}\r\n message={this.state.radioButtonValue == \"Subscribe\" ? intl.get(\"Subscribe_Alert\") : intl.get(\"UnSubscribe_Alert\")}\r\n handleSubmitClose={this.handleSubmit}\r\n handleButtonName={intl.get(\"Privacy_Update_Button\")}\r\n primaryButtonId={\"ApproveButtonId\"}\r\n secondaryButtonId={\"declineButtonId\"}\r\n handleButtonClose={intl.get(\"Privacy_Close_Button\")}\r\n modalClassName={\"deleteUserModal\"}\r\n modelSizeWindow=\"lg\"\r\n modalHeaderClass=\"modalHeader\"\r\n />\r\n <span style={{ color: \"red\" }}>{this.state.failedMessage}</span>\r\n </form>\r\n </DivsPattern>\r\n );\r\n }\r\n}\r\n\r\nexport default UserPrivacyPreferences;\r\n","import React, { Component } from \"react\";\r\nimport intl from \"react-intl-universal\";\r\nimport {\r\n FormGroup,\r\n FormControl,\r\n ControlLabel,\r\n HelpBlock,\r\n Button\r\n} from \"react-bootstrap\";\r\nimport LoaderButton from \"./LoaderButton\";\r\nimport DivsPattern from \"./skylineDesignPattern\";\r\nimport \"./account.css\"\r\nimport ModalDialog from \"./Modal\";\r\n\r\nclass DeleteAccount extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n currentPassword: \"\",\r\n newPassword: \"\",\r\n confirmNewPassword: \"\",\r\n failedMessage: \"\",\r\n isChecked : true,\r\n radioButtonValue: \"Delete\",\r\n showConfirmationModal:false,\r\n commentMessage:\"\",\r\n targetEmail: {\"groups\":[\"Licensing\"]},\r\n isLoading: false,\r\n };\r\n }\r\n\r\n validateForm() {\r\n return (\r\n this.state.currentPassword.length > 0 &&\r\n this.state.newPassword.length > 0 &&\r\n this.state.confirmNewPassword.length > 0 &&\r\n this.state.newPassword === this.state.confirmNewPassword\r\n );\r\n }\r\n\r\n handleChange = event => {\r\n this.setState({\r\n [event.target.id]: event.target.value\r\n });\r\n };\r\n\r\n handleConfirmationModalClose = () =>{\r\n this.setState({ showConfirmationModal: false });\r\n }; \r\n\r\n handleDialog =(event) =>{\r\n event.preventDefault();\r\n this.setState({showConfirmationModal:true});\r\n }\r\n\r\n handleSubmit = event => {\r\n event.preventDefault();\r\n\r\n this.setState({ isLoading: true });\r\n\r\n fetch(process.env.REACT_APP_API_URL + \"UpdateUserPrivacyPreferences\", {\r\n method: \"POST\",\r\n credentials: \"include\",\r\n headers: {\r\n \"Content-Type\": \"application/json\"\r\n },\r\n body: JSON.stringify({\r\n preference: this.state.radioButtonValue,\r\n unsubscribeValue: 1,\r\n comment:this.state.commentMessage,\r\n email: this.props.userName,\r\n targetEmail: this.state.targetEmail\r\n })\r\n })\r\n .then(res => res.json())\r\n .then(result => {\r\n this.setState({ showConfirmationModal: false });\r\n this.setState({ isLoading: false });\r\n if (result.Result == \"success\") {\r\n if (this.state.radioButtonValue !== \"Delete\"){\r\n return this.props.history.push(\"/account\");\r\n }\r\n else{\r\n fetch(process.env.REACT_APP_API_URL + \"logout\", {\r\n method: \"POST\",\r\n credentials: \"include\",\r\n headers: {\r\n \"Content-Type\": \"application/json\"\r\n },\r\n body: JSON.stringify({})\r\n })\r\n .then(res => res.json())\r\n .then(result => {\r\n if (result.Result === \"Success\") {\r\n this.props.history.replace(\"/account\");\r\n this.props.userHasAuthenticated(false, undefined);\r\n } else{\r\n this.setState({ failedMessage: 'failed to logout user' });\r\n }\r\n })\r\n }\r\n } else {\r\n this.setState({ failedMessage: result.Message });\r\n }\r\n })\r\n .catch(error => {\r\n console.error(error);\r\n this.props.handleServerError(true);\r\n this.setState(\r\n { \r\n showConfirmationModal: false, \r\n isLoading: false, \r\n failedMessage: intl.get(\"General_Failure\") }\r\n );\r\n });\r\n };\r\n\r\n render() {\r\n return (\r\n <DivsPattern headerText={intl.get(\"Delete_Account_Title\")} className=\"col-lg-11\">\r\n <form className=\"form-signin\">\r\n <label>This action will permanently delete your account. No account information will be recoverable.</label>\r\n <br />\r\n <FormGroup controlId=\"DeleteUser\" className=\"form-label-group\">\r\n <label className=\"privacyDeleteCommentLabel\">Comment:</label>\r\n <textarea className=\"privacyDeleteCommentTextarea\" placeholder = \"(optional)\" value={this.state.commentMessage} onChange={(event) => {this.setState({ commentMessage: event.target.value });}}>\r\n </textarea>\r\n </FormGroup>\r\n <LoaderButton\r\n block\r\n onClick={this.handleDialog}\r\n className=\"btn btn-lg btn-primary btn-block btn-login text-uppercase font-weight-bold mb-2 privacyUpdateButton\"\r\n type=\"submit\"\r\n isLoading={this.state.isLoading}\r\n text={intl.get(\"Delete_Account_Button\")}\r\n loadingText={intl.get(\"Update_Privacy_Loading\")}\r\n />\r\n <ModalDialog\r\n show={this.state.showConfirmationModal}\r\n className={\"DeleteUser\"}\r\n handleClose={this.handleConfirmationModalClose}\r\n title={intl.get(\"Delete_Confirm_Title\") }\r\n message={this.state.radioButtonValue == \"Delete\"? intl.get(\"Delete_Account_Msg_Alert\"):intl.get(\"UnSubscribe_Alert\")}\r\n handleSubmitClose={this.handleSubmit}\r\n handleButtonName={intl.get(\"Privacy_Delete_Button\")}\r\n primaryButtonId={\"deleteAccountButton\"}\r\n secondaryButtonId={\"cancelDeleteAccountButton\"}\r\n handleButtonClose={intl.get(\"Privacy_Cancel_Button\")}\r\n modalClassName={\"deleteUserModal\"}\r\n modelSizeWindow=\"lg\"\r\n modalHeaderClass=\"modalHeader\"\r\n />\r\n <span style={{ color: \"red\" }}>{this.state.failedMessage}</span>\r\n </form>\r\n </DivsPattern>\r\n );\r\n }\r\n}\r\n\r\nexport default DeleteAccount;\r\n","\r\nconst parseJpeg = {\r\n testff() {\r\n console.log(\"ffdf\");\r\n },\r\n \r\n parse(data) {\r\n try {\r\n var offset = 0, length = data.length;\r\n function readUint16() {\r\n var value = (data[offset] << 8) | data[offset + 1];\r\n offset += 2;\r\n return value;\r\n }\r\n function readDataBlock() {\r\n var length = readUint16();\r\n var array = data.subarray(offset, offset + length - 2);\r\n offset += array.length;\r\n return array;\r\n }\r\n function prepareComponents(frame) {\r\n var maxH = 0, maxV = 0;\r\n var component, componentId;\r\n for (componentId in frame.components) {\r\n if (frame.components.hasOwnProperty(componentId)) {\r\n component = frame.components[componentId];\r\n if (maxH < component.h) maxH = component.h;\r\n if (maxV < component.v) maxV = component.v;\r\n }\r\n }\r\n var mcusPerLine = Math.ceil(frame.samplesPerLine / 8 / maxH);\r\n var mcusPerColumn = Math.ceil(frame.scanLines / 8 / maxV);\r\n for (componentId in frame.components) {\r\n if (frame.components.hasOwnProperty(componentId)) {\r\n component = frame.components[componentId];\r\n var blocksPerLine = Math.ceil(Math.ceil(frame.samplesPerLine / 8) * component.h / maxH);\r\n var blocksPerColumn = Math.ceil(Math.ceil(frame.scanLines / 8) * component.v / maxV);\r\n var blocksPerLineForMcu = mcusPerLine * component.h;\r\n var blocksPerColumnForMcu = mcusPerColumn * component.v;\r\n var blocksToAllocate = blocksPerColumnForMcu * blocksPerLineForMcu;\r\n var blocks = [];\r\n \r\n // Each block is a Int32Array of length 64 (4 x 64 = 256 bytes)\r\n requestMemoryAllocation(blocksToAllocate * 256);\r\n \r\n for (var i = 0; i < blocksPerColumnForMcu; i++) {\r\n var row = [];\r\n for (var j = 0; j < blocksPerLineForMcu; j++)\r\n row.push(new Int32Array(64));\r\n blocks.push(row);\r\n }\r\n component.blocksPerLine = blocksPerLine;\r\n component.blocksPerColumn = blocksPerColumn;\r\n component.blocks = blocks;\r\n }\r\n }\r\n frame.maxH = maxH;\r\n frame.maxV = maxV;\r\n frame.mcusPerLine = mcusPerLine;\r\n frame.mcusPerColumn = mcusPerColumn;\r\n }\r\n var jfif = null;\r\n var adobe = null;\r\n var pixels = null;\r\n var frame, resetInterval;\r\n var quantizationTables = [], frames = [];\r\n var huffmanTablesAC = [], huffmanTablesDC = [];\r\n var fileMarker = readUint16();\r\n var malformedDataOffset = -1;\r\n this.comments = [];\r\n if (fileMarker != 0xFFD8) { // SOI (Start of Image)\r\n throw new Error(\"SOI not found\");\r\n }\r\n \r\n fileMarker = readUint16();\r\n while (fileMarker != 0xFFD9 && offset < data.length) { // EOI (End of image)\r\n var i, j, l;\r\n switch(fileMarker) {\r\n case 0xFF00: break;\r\n case 0xFFE0: // APP0 (Application Specific)\r\n case 0xFFE1: // APP1\r\n case 0xFFE2: // APP2\r\n case 0xFFE3: // APP3\r\n case 0xFFE4: // APP4\r\n case 0xFFE5: // APP5\r\n case 0xFFE6: // APP6\r\n case 0xFFE7: // APP7\r\n case 0xFFE8: // APP8\r\n case 0xFFE9: // APP9\r\n case 0xFFEA: // APP10\r\n case 0xFFEB: // APP11\r\n case 0xFFEC: // APP12\r\n case 0xFFED: // APP13\r\n case 0xFFEE: // APP14\r\n case 0xFFEF: // APP15\r\n case 0xFFFE: // COM (Comment)\r\n var appData = readDataBlock();\r\n \r\n //if (fileMarker === 0xFFFE) {\r\n // var comment = String.fromCharCode.apply(null, appData);\r\n // this.comments.push(comment);\r\n //}\r\n \r\n // if (fileMarker === 0xFFE0) {\r\n // if (appData[0] === 0x4A && appData[1] === 0x46 && appData[2] === 0x49 &&\r\n // appData[3] === 0x46 && appData[4] === 0) { // 'JFIF\\x00'\r\n // jfif = {\r\n // version: { major: appData[5], minor: appData[6] },\r\n // densityUnits: appData[7],\r\n // xDensity: (appData[8] << 8) | appData[9],\r\n // yDensity: (appData[10] << 8) | appData[11],\r\n // thumbWidth: appData[12],\r\n // thumbHeight: appData[13],\r\n // thumbData: appData.subarray(14, 14 + 3 * appData[12] * appData[13])\r\n // };\r\n // }\r\n // }\r\n // TODO APP1 - Exif\r\n // if (fileMarker === 0xFFE1) {\r\n // if (appData[0] === 0x45 &&\r\n // appData[1] === 0x78 &&\r\n // appData[2] === 0x69 &&\r\n // appData[3] === 0x66 &&\r\n // appData[4] === 0) { // 'EXIF\\x00'\r\n // this.exifBuffer = appData.subarray(5, appData.length);\r\n // }\r\n // }\r\n \r\n // if (fileMarker === 0xFFEE) {\r\n // if (appData[0] === 0x41 && appData[1] === 0x64 && appData[2] === 0x6F &&\r\n // appData[3] === 0x62 && appData[4] === 0x65 && appData[5] === 0) { // 'Adobe\\x00'\r\n // adobe = {\r\n // version: appData[6],\r\n // flags0: (appData[7] << 8) | appData[8],\r\n // flags1: (appData[9] << 8) | appData[10],\r\n // transformCode: appData[11]\r\n // };\r\n // }\r\n // }\r\n break;\r\n \r\n // case 0xFFDB: // DQT (Define Quantization Tables)\r\n // offset+=readUint16();\r\n // // var quantizationTablesLength = readUint16();\r\n // // var quantizationTablesEnd = quantizationTablesLength + offset - 2;\r\n // // while (offset < quantizationTablesEnd) {\r\n // // var quantizationTableSpec = data[offset++];\r\n // // requestMemoryAllocation(64 * 4);\r\n // // var tableData = new Int32Array(64);\r\n // // if ((quantizationTableSpec >> 4) === 0) { // 8 bit values\r\n // // for (j = 0; j < 64; j++) {\r\n // // var z = dctZigZag[j];\r\n // // tableData[z] = data[offset++];\r\n // // }\r\n // // } else if ((quantizationTableSpec >> 4) === 1) { //16 bit\r\n // // for (j = 0; j < 64; j++) {\r\n // // var z = dctZigZag[j];\r\n // // tableData[z] = readUint16();\r\n // // }\r\n // // } else\r\n // // throw new Error(\"DQT: invalid table spec\");\r\n // // quantizationTables[quantizationTableSpec & 15] = tableData;\r\n // // }\r\n // break;\r\n \r\n case 0xFFC0: // SOF0 (Start of Frame, Baseline DCT)\r\n case 0xFFC1: // SOF1 (Start of Frame, Extended DCT)\r\n case 0xFFC2: // SOF2 (Start of Frame, Progressive DCT)\r\n readUint16(); // skip data length\r\n frame = {};\r\n frame.extended = (fileMarker === 0xFFC1);\r\n frame.progressive = (fileMarker === 0xFFC2);\r\n frame.precision = data[offset++];\r\n frame.scanLines = readUint16();\r\n frame.samplesPerLine = readUint16();\r\n frame.components = {};\r\n frame.componentsOrder = [];\r\n fileMarker = 0xFFD9;\r\n continue;\r\n break;\r\n // var pixelsInFrame = frame.scanLines * frame.samplesPerLine;\r\n // if (pixelsInFrame > maxResolutionInPixels) {\r\n // var exceededAmount = Math.ceil((pixelsInFrame - maxResolutionInPixels) / 1e6);\r\n // throw new Error(`maxResolutionInMP limit exceeded by ${exceededAmount}MP`);\r\n // }\r\n \r\n // var componentsCount = data[offset++], componentId;\r\n // var maxH = 0, maxV = 0;\r\n // for (i = 0; i < componentsCount; i++) {\r\n // componentId = data[offset];\r\n // var h = data[offset + 1] >> 4;\r\n // var v = data[offset + 1] & 15;\r\n // var qId = data[offset + 2];\r\n // frame.componentsOrder.push(componentId);\r\n // frame.components[componentId] = {\r\n // h: h,\r\n // v: v,\r\n // quantizationIdx: qId\r\n // };\r\n // offset += 3;\r\n // }\r\n // prepareComponents(frame);\r\n // frames.push(frame);\r\n \r\n break;\r\n \r\n // case 0xFFC4: // DHT (Define Huffman Tables)\r\n // var huffmanLength = readUint16();\r\n // for (i = 2; i < huffmanLength;) {\r\n // var huffmanTableSpec = data[offset++];\r\n // var codeLengths = new Uint8Array(16);\r\n // var codeLengthSum = 0;\r\n // for (j = 0; j < 16; j++, offset++) {\r\n // codeLengthSum += (codeLengths[j] = data[offset]);\r\n // }\r\n // requestMemoryAllocation(16 + codeLengthSum);\r\n // var huffmanValues = new Uint8Array(codeLengthSum);\r\n // for (j = 0; j < codeLengthSum; j++, offset++)\r\n // huffmanValues[j] = data[offset];\r\n // i += 17 + codeLengthSum;\r\n \r\n // ((huffmanTableSpec >> 4) === 0 ?\r\n // huffmanTablesDC : huffmanTablesAC)[huffmanTableSpec & 15] =\r\n // buildHuffmanTable(codeLengths, huffmanValues);\r\n // }\r\n // break;\r\n \r\n // case 0xFFDD: // DRI (Define Restart Interval)\r\n // readUint16(); // skip data length\r\n // resetInterval = readUint16();\r\n // break;\r\n \r\n // case 0xFFDC: // Number of Lines marker\r\n // readUint16() // skip data length\r\n // readUint16() // Ignore this data since it represents the image height\r\n // break;\r\n \r\n // case 0xFFDA: // SOS (Start of Scan)\r\n // var scanLength = readUint16();\r\n // var selectorsCount = data[offset++];\r\n // var components = [], component;\r\n // for (i = 0; i < selectorsCount; i++) {\r\n // component = frame.components[data[offset++]];\r\n // var tableSpec = data[offset++];\r\n // component.huffmanTableDC = huffmanTablesDC[tableSpec >> 4];\r\n // component.huffmanTableAC = huffmanTablesAC[tableSpec & 15];\r\n // components.push(component);\r\n // }\r\n // var spectralStart = data[offset++];\r\n // var spectralEnd = data[offset++];\r\n // var successiveApproximation = data[offset++];\r\n // var processed = decodeScan(data, offset,\r\n // frame, components, resetInterval,\r\n // spectralStart, spectralEnd,\r\n // successiveApproximation >> 4, successiveApproximation & 15, this.opts);\r\n // offset += processed;\r\n // break;\r\n \r\n case 0xFFFF: // Fill bytes\r\n if (data[offset] !== 0xFF) { // Avoid skipping a valid marker.\r\n offset--;\r\n }\r\n break;\r\n default:\r\n if (data[offset - 3] == 0xFF &&\r\n data[offset - 2] >= 0xC0 && data[offset - 2] <= 0xFE) {\r\n // could be incorrect encoding -- last 0xFF byte of the previous\r\n // block was eaten by the encoder\r\n offset -= 3;\r\n break;\r\n }\r\n else if (fileMarker === 0xE0 || fileMarker == 0xE1) {\r\n // Recover from malformed APP1 markers popular in some phone models.\r\n // See https://github.com/eugeneware/jpeg-js/issues/82\r\n if (malformedDataOffset !== -1) {\r\n throw new Error(`first unknown JPEG marker at offset ${malformedDataOffset.toString(16)}, second unknown JPEG marker ${fileMarker.toString(16)} at offset ${(offset - 1).toString(16)}`);\r\n }\r\n malformedDataOffset = offset - 1;\r\n const nextOffset = readUint16();\r\n if (data[offset + nextOffset - 2] === 0xFF) {\r\n offset += nextOffset - 2;\r\n break;\r\n }\r\n }\r\n else\r\n {\r\n offset+=readUint16();\r\n // const nextOffset = readUint16();\r\n // if (data[offset + nextOffset - 2] === 0xFF) {\r\n // offset += nextOffset - 2;\r\n // break;\r\n // }\r\n }\r\n \r\n //throw new Error(\"unknown JPEG marker \" + fileMarker.toString(16));\r\n }\r\n fileMarker = readUint16();\r\n }\r\n if (frame === undefined){\r\n return undefined;\r\n }\r\n this.width = frame.samplesPerLine;\r\n this.height = frame.scanLines;\r\n this.jfif = jfif;\r\n this.adobe = adobe;\r\n this.components = [];\r\n\r\n return this;\r\n }\r\n catch(err) {\r\n console.log('parseJpeg error ' + err);\r\n }\r\n }\r\n}\r\n\r\nvar totalBytesAllocated = 0;\r\nvar maxMemoryUsageBytes = 0;\r\nfunction requestMemoryAllocation(increaseAmount = 0) {\r\n var totalMemoryImpactBytes = totalBytesAllocated + increaseAmount;\r\n if (totalMemoryImpactBytes > maxMemoryUsageBytes) {\r\n var exceededAmount = Math.ceil((totalMemoryImpactBytes - maxMemoryUsageBytes) / 1024 / 1024);\r\n throw new Error(`maxMemoryUsageInMB limit exceeded by at least ${exceededAmount}MB`);\r\n }\r\n\r\n totalBytesAllocated = totalMemoryImpactBytes;\r\n }\r\n\r\nexport { parseJpeg as default }\r\n","import ifdValue from './ifdValue';\r\nconst parseTiff = {\r\n testff() {\r\n console.log(\"parse Tiff\");\r\n },\r\n\r\n getFirstIFD(data) {\r\n try {\r\n var decoder = {\r\n offset: 0,\r\n data: undefined,\r\n littleEndian: true\r\n };\r\n /* decode header */\r\n decoder.offset = 0;\r\n var byteLength = data.byteLength - decoder.offset;\r\n let dvOffset = decoder.offset;\r\n decoder.data = new DataView(data, dvOffset, byteLength);\r\n decoder.littleEndian = true;\r\n\r\n // Read a 16 bit unsigned integer and move pointer forward by 2 bytes.\r\n ifdValue.getUInt16(decoder);\r\n\r\n //Check byte order\r\n if (decoder.value === 0x4949) {\r\n decoder.littleEndian = true;\r\n }\r\n else if (decoder.value === 0x4d4d) {\r\n decoder.littleEndian = false;\r\n }\r\n else {\r\n throw new Error(`invalid byte order: 0x${decoder.value.toString(16)}`);\r\n }\r\n\r\n ifdValue.getUInt16(decoder);\r\n // Magic number\r\n if (decoder.value !== 42) {\r\n throw new Error('not a TIFF file');\r\n }\r\n\r\n // Offset of the first IFD\r\n var _nextIFD = ifdValue.getUInt32(decoder);\r\n return _nextIFD;\r\n /* End of decode header */\r\n }\r\n catch (e) {\r\n console.log(e);\r\n }\r\n },\r\n\r\n parse(data, options = {}) {\r\n try {\r\n var decoder = {\r\n offset: 0,\r\n data: undefined,\r\n littleEndian: true\r\n };\r\n\r\n var size = {\r\n width: undefined,\r\n height: undefined\r\n }\r\n\r\n decoder.offset = 0;\r\n var byteLength = data.byteLength - decoder.offset;\r\n let dvOffset = decoder.offset;\r\n decoder.data = new DataView(data, dvOffset, byteLength);\r\n\r\n /* decode IFD */\r\n this.seek(decoder, 0);\r\n const numEntries = ifdValue.getUInt16(decoder);\r\n let ifd = {\r\n offset: undefined,\r\n tag: undefined,\r\n type: undefined,\r\n numValues: undefined\r\n }\r\n for (var i = 0; i < numEntries; i++) {\r\n const offset = decoder.offset;\r\n ifd.offset = decoder.offset;\r\n ifd.tag = ifdValue.getUInt16(decoder);\r\n ifd.type = ifdValue.getUInt16(decoder);\r\n ifd.numValues = ifdValue.getUInt32(decoder);\r\n\r\n if (ifd.type < 1 || ifd.type > 12) { // It means that it is unknown type, skip this value\r\n decoder.offset += 4;\r\n return;\r\n }\r\n\r\n const valueByteLength = ifdValue.getByteLength(ifd.type, ifd.numValues);\r\n if (valueByteLength > 4) {\r\n var Uint32 = ifdValue.getUInt32(decoder);\r\n this.seek(decoder, Uint32);\r\n }\r\n\r\n if (ifd.tag === 256 || ifd.tag === 257) { // If tag is width or height\r\n const valueOfTag = ifdValue.readData(decoder, ifd.type, ifd.numValues);\r\n if (ifd.tag === 256) { // Width of tiff\r\n size.width = valueOfTag;\r\n }\r\n if (ifd.tag === 257) {\r\n size.height = valueOfTag;\r\n }\r\n if (size.width !== undefined && size.height !== undefined) {\r\n return size;\r\n }\r\n }\r\n\r\n this.seek(decoder, offset);\r\n decoder.offset += 12;\r\n }\r\n }\r\n catch (e) {\r\n console.log(e);\r\n }\r\n },\r\n seek(decoder, offset) {\r\n decoder.offset = offset;\r\n }\r\n\r\n}\r\n\r\nexport { parseTiff as default }","import React, { Component, useCallback } from 'react';\r\nimport intl from \"react-intl-universal\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { FormGroup, FormControl, ProgressBar } from \"react-bootstrap\";\r\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\r\nimport { Dialog, DialogContent } from \"@material-ui/core\";\r\nimport { useDropzone } from 'react-dropzone';\r\nimport parseJpeg from './parseJpeg';\r\nimport parseTiff from './parseTiff';\r\nimport exifr from 'exifr/dist/full.umd';\r\nimport trashImg from '../../img/Icon feather-trash-2.png';\r\nimport plusIcon from \"../../img/Plus_Icon.png\";\r\nimport * as SLCommon from \"../../slCommon\";\r\n\r\nfunction DragAndDrop(props) {\r\n\r\n const onDrop = useCallback((acceptedFiles) => {\r\n props.handleIsLoading(true);\r\n props.handleErrorMessage(\"\");\r\n //props.ResetState();\r\n getExifTagsData(acceptedFiles, props).then(numOfRejected => {\r\n if (numOfRejected.count > 0 && numOfRejected.reason === intl.get(\"PM_Cloud_PhaseI_No_GP_Available\")) {\r\n props.handleErrorMessage(intl.get(\"PM_Cloud_PhaseI_No_GP_Available\"));\r\n }\r\n else if (numOfRejected.count > 0 && numOfRejected.reason === intl.get(\"PM_New_Project_Duplicate_Files\")) {\r\n props.handleErrorMessage(intl.get(\"PM_New_Project_Duplicate_Files\"));\r\n }\r\n else if (numOfRejected.count > 0 && numOfRejected.count == acceptedFiles.length) {\r\n props.handleErrorMessage(numOfRejected.reason);\r\n }\r\n else if (numOfRejected.count > 0 && numOfRejected.count < acceptedFiles.length) {\r\n props.handleErrorMessage(intl.get(\"PM_New_Project_Some_Files_Ignored\", {numOfRejectedFiles :numOfRejected.count}));\r\n }\r\n props.handleIsLoading(false);\r\n });\r\n }, [])\r\n\r\n const {\r\n acceptedFiles,\r\n fileRejections,\r\n isDragAccept,\r\n getRootProps,\r\n open,\r\n getInputProps\r\n } = useDropzone({\r\n onDrop,\r\n // accept: 'image/jpeg,image/jpg,image/tif,image/tiff',\r\n maxFIles: 10000,\r\n // Disable click and keydown behavior\r\n noClick: true,\r\n noKeyboard: true\r\n });\r\n\r\n const acceptedFileItems = acceptedFiles.map(file => (\r\n <li key={file.path}>\r\n {file.path} - {file.size} bytes\r\n </li>\r\n ));\r\n\r\n const fileRejectionItems = fileRejections.map(({ file, errors }) => (\r\n <li key={file.path}>\r\n {file.path} - {file.size} bytes\r\n <ul>\r\n {errors.map(e => (\r\n <li key={e.code}>{e.message}</li>\r\n ))}\r\n </ul>\r\n </li>\r\n ));\r\n\r\n async function getExifTagsData(files, props) {\r\n var numRejected = {\r\n count: 0,\r\n reason: \"\"\r\n };\r\n var acceptedPhotos = [];\r\n var acceptedPhotosDict = {};\r\n var imagesSize = 0;\r\n var RequiredGP = 0;\r\n await Promise.all(files.map(async (file) => {\r\n try {\r\n if (file.size === 0) {\r\n numRejected.count++;\r\n numRejected.reason = intl.get(\"PM_New_Project_Invalid_Type\");\r\n return;\r\n }\r\n if (props.CheckDuplicateFileNames(file.path)) {\r\n numRejected.count++;\r\n numRejected.reason = intl.get(\"PM_New_Project_Duplicate_Files\");\r\n return;\r\n }\r\n if (file.type !== \"image/jpeg\" && file.type !== \"image/jpg\" && file.type !== \"image/tif\" && file.type !== \"image/tiff\") {\r\n numRejected.count++;\r\n numRejected.reason = intl.get(\"PM_New_Project_Invalid_Type\");\r\n return;\r\n }\r\n if (props.isSubLoginType) {\r\n const base = file.name.substring(0, file.name.lastIndexOf('.'));\r\n // Check if the base name ends with _G or _RE\r\n if(base.toLowerCase().endsWith('_g') || base.toLowerCase().endsWith('_re')) {\r\n numRejected.count++;\r\n numRejected.reason = intl.get(\"PM_New_Project_Invalid_Type\");\r\n return;\r\n }\r\n }\r\n const data = await exifr.parse(file, ['ExifImageHeight', 'ExifImageWidth', 'GPSLongitude', 'GPSLatitude', 'GPSAltitude']);\r\n if (data !== undefined && data.GPSLongitude !== undefined && data.GPSLatitude !== undefined && data.GPSAltitude !== undefined) {\r\n\r\n if ((data.ExifImageHeight === undefined && data.ExifImageWidth === undefined) && (data.ImageHeight === undefined && data.ImageWidth === undefined)) {\r\n var sliceSize = 10 * 1024; // 10KB\r\n var fileSliceLength = sliceSize;\r\n if (file.type === \"image/tif\" || file.type === \"image/tiff\") {\r\n var firstIFDResult = parseTiff.getFirstIFD(await file.slice(0, 8 * 1024).arrayBuffer()); // A TIFF file begins with an 8-byte header \r\n if (firstIFDResult !== undefined) {\r\n var parseTiffResult = undefined;\r\n if (file.size - firstIFDResult > 1023)\r\n parseTiffResult = parseTiff.parse(await file.slice(firstIFDResult, 1 * 1024).arrayBuffer());\r\n else parseTiffResult = parseTiff.parse(await file.slice(firstIFDResult).arrayBuffer());\r\n if (parseTiffResult !== undefined && parseTiffResult.width !== undefined && parseTiffResult.height !== undefined) {\r\n RequiredGP += (parseTiffResult.height * parseTiffResult.width) / 1000000000;\r\n }\r\n else {\r\n numRejected.count++;\r\n numRejected.reason = intl.get(\"PM_New_Project_Invalid_Type\");\r\n return;\r\n }\r\n }\r\n }\r\n else { // Jpeg\r\n var imageHasWidthAndHeight = false;\r\n for (var i = 0; fileSliceLength < 5 * 1024 * 1024; i++, fileSliceLength += sliceSize) { // Run until 5MB\r\n var sliceBytes = await file.slice(0, fileSliceLength).arrayBuffer(); // 10KB\r\n var uIntArray = new Uint8Array(sliceBytes);\r\n var parseJpegResult = parseJpeg.parse(uIntArray);\r\n if (parseJpegResult !== undefined) {\r\n RequiredGP += (parseJpegResult.height * parseJpegResult.width) / 1000000000;\r\n imageHasWidthAndHeight = true;\r\n break;\r\n }\r\n }\r\n if (imageHasWidthAndHeight === false) {\r\n numRejected.count++;\r\n numRejected.reason = intl.get(\"PM_New_Project_Invalid_Type\");\r\n return;\r\n }\r\n }\r\n }\r\n // Check Height and Width of the file\r\n else if (data !== undefined && (data.ExifImageHeight && data.ExifImageWidth)) {\r\n RequiredGP += (data.ExifImageHeight * data.ExifImageWidth) / 1000000000;\r\n }\r\n else if (data !== undefined && (data.ImageHeight && data.ImageWidth)) {\r\n RequiredGP += (data.ImageHeight * data.ImageWidth) / 1000000000;\r\n }\r\n else { // Fail all the files\r\n numRejected.count++;\r\n numRejected.reason = intl.get(\"PM_New_Project_Invalid_Type\");\r\n return;\r\n }\r\n acceptedPhotos.push(file);\r\n acceptedPhotosDict[file.path.toLowerCase()] = file.path.toLowerCase();\r\n imagesSize += file.size;\r\n }\r\n else { // The image has no georeference\r\n numRejected.count++;\r\n numRejected.reason = intl.get(\"PM_New_Project_Error_No_GeoReference\");\r\n }\r\n }\r\n catch (e) {\r\n numRejected.count++;\r\n numRejected.reason = intl.get(\"PM_New_Project_Invalid_Type\");\r\n return;\r\n }\r\n }));\r\n \r\n props.AddAcceptedPhotos(acceptedPhotos, acceptedPhotosDict, imagesSize, RequiredGP);\r\n //console.log(numRejected);\r\n return numRejected;\r\n }\r\n\r\n\r\n return (\r\n <section className=\"\">\r\n <div {...getRootProps({ className: isDragAccept ? 'dropDownClass focusedDropDownClass' : 'dropDownClass ' })}>\r\n <input {...getInputProps()} />\r\n <div style={{ display: 'flex', alignItems: 'center', justifyContent: 'center' }}>\r\n <div>\r\n <img src={plusIcon} onClick={open} style={{ cursor: 'pointer' }} />\r\n </div>\r\n <div style={{ marginLeft: '30px' }}>\r\n {props.acceptedPhotos.length > 0 ? <h1>{intl.get(\"PM_Drop_Down_Add_More_Photos_Title\")}</h1> :\r\n <h1>{intl.get(\"PM_Drop_Down_Title\")}</h1>}\r\n <span>{intl.getHTML(\"PM_Drop_Down_Description\", { GPAmount: props.GPAmount.toFixed(2) })}</span>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <aside>\r\n {/* <h4>Accepted files</h4>\r\n <ul>{acceptedFileItems}</ul>\r\n <h4>Rejected files</h4>\r\n <ul>{fileRejectionItems}</ul> */}\r\n </aside>\r\n </section>\r\n );\r\n}\r\n\r\n\r\nclass newPMProjectPhaseI extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n errorMessgae: \"\",\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n if(this.props.isSubLoginType){\r\n //create custom identifier\r\n this.props.handleProjectName(SLCommon.generateUniqueString(this.props.company));\r\n }\r\n }\r\n\r\n handleErrorMessage = (message) => {\r\n this.setState({ errorMessgae: message });\r\n };\r\n\r\n ResetState = () => {\r\n this.props.RemoveAcceptedPhotos();\r\n this.handleErrorMessage(\"\");\r\n }\r\n\r\n render() {\r\n return (\r\n <React.Fragment>\r\n {this.state.errorMessgae ? (\r\n <div className='divWarningPMCloud'>\r\n {this.state.errorMessgae}\r\n </div>\r\n ) : null}\r\n {this.props.endpoint_id != \"\" ? \r\n null \r\n : \r\n <div style={{marginTop: '80px', display: 'flow-root'}}>\r\n <h4 className=\"moreSpacefromTitleToTable\" style={{float: 'left'}}>{intl.get(\"PM_New_Project_Title\")}</h4>\r\n <a href='https://support.skylinesoft.com/hc/en-us/articles/4699178801308' target='_blank' style={{textDecoration: 'underline', float: 'right'}}>Learn More</a>\r\n </div>\r\n }\r\n <div style={this.props.endpoint_id !== \"\" ? { marginTop: '80px', display: 'flow-root' } : {}}>\r\n {!this.props.isSubLoginType ? \r\n <div>\r\n <p>Identifier:</p>\r\n <FormGroup controlId=\"firstName\" className=\"form-label-group d-flex\">\r\n <FormControl\r\n className=\"form-control addUserFormControl\"\r\n // pattern={\"^[\\\\w\\\\-]{1,32}$\"}\r\n maxLength=\"32\"\r\n value={this.props.projectName}\r\n onChange={(event) => {\r\n if (\r\n event.target.validity.valid ||\r\n event.target.value === \"\"\r\n )\r\n this.props.handleProjectName(event.target.value);\r\n }}\r\n placeholder={intl.get(\"Identifier_Name_Placeholder\")}\r\n required\r\n />\r\n </FormGroup>\r\n </div>\r\n : null}\r\n <div className='newPMProjectPhaseIDranNDropDiv'>\r\n <DragAndDrop ResetState={this.ResetState} CheckDuplicateFileNames={this.props.CheckDuplicateFileNames} AddAcceptedPhotos={this.props.AddAcceptedPhotos} handleErrorMessage={this.handleErrorMessage} GPAmount={this.props.GPAmount} handleIsLoading={this.props.handleIsLoading} acceptedPhotos={this.props.acceptedPhotos} isSubLoginType={this.props.isSubLoginType}/>\r\n <div style={{ fontSize: '13px', marginTop: '20px' }}>\r\n <div style={{ width: '230px', float: 'right' }}>\r\n <div>{intl.get(\"PM_Cloud_PhaseI_Package_Usage\", { numOfGigapixel: this.props.GPAmount.toFixed(2) })}</div>\r\n <ProgressBar className='progressBarPhaseI' now={((this.props.RequiredGP / this.props.GPAmount) * 100)} />\r\n <span>{((this.props.RequiredGP / this.props.GPAmount) * 100).toFixed(2) + '%'}</span>\r\n </div>\r\n </div>\r\n {this.props.imagesSize > 0 ?\r\n <div style={{ marginTop: \"20px\" }}>\r\n <div style={{ fontSize: \"17px\", fontWeight: \"bold\" }}>{intl.get(\"PM_New_Project_Upload_Details\", { photosSize: this.props.acceptedPhotos.length })}</div>\r\n <div style={{ display: 'inline-flex'}}>\r\n <div style={{ fontSize: '13px', float: 'left' }}>{intl.get(\"PM_Cloud_PhaseI_RequiredGP\", {RequiredGP: this.props.RequiredGP.toFixed(2)})}</div>\r\n <div style={{ float: \"left\", marginRight: \"20px\" }} className=\"vl\" />\r\n <div style={{ fontSize: '13px' }}>{this.props.formatBytes(this.props.imagesSize)}</div>\r\n </div>\r\n <div>\r\n <button className=\"RemoveAllButtonClass\"\r\n onClick={event => {\r\n this.ResetState();\r\n }}>\r\n <img src={trashImg} style={{marginBottom: '5px', marginLeft: '-6px'}}></img> Remove All\r\n </button>\r\n </div>\r\n </div>\r\n : null\r\n }\r\n </div>\r\n </div>\r\n <div className={`NextPrevButtonsClass ${this.props.isSubLoginType ? \"NextPrevButtonsWithoutFooter\" : \"\"}`}>\r\n <div className=\"NextButtonDivClass\" style={{ float: \"right\", marginRight: '40px', marginLeft: \"30px\" }}>\r\n <button \r\n className=\"btn-primary btn btn-default NextButtonClass\" \r\n disabled={this.props.projectName == \"\"}\r\n onClick={(event) => {\r\n var resMessage = this.props.checkMovingFromPhaseItoPhaseII();\r\n if (resMessage === \"\")\r\n this.props.setPageNumer(2);\r\n else this.handleErrorMessage(resMessage);\r\n }}\r\n >NEXT</button>\r\n </div>\r\n </div>\r\n\r\n \r\n <Dialog\r\n open={this.props.isLoading}\r\n aria-labelledby=\"form-dialog-title align-center\"\r\n >\r\n <DialogContent>\r\n <CircularProgress size={60}/>\r\n </DialogContent>\r\n </Dialog>\r\n </React.Fragment>\r\n );\r\n }\r\n}\r\n\r\nexport default newPMProjectPhaseI;","import React, { Component } from 'react';\r\nimport intl from \"react-intl-universal\";\r\nimport {DropdownButton, Dropdown} from 'react-bootstrap';\r\nimport ThreeDMapping from \"../../img/PM_Cloud_3D_Mapping.png\";\r\nimport ThreeDMappingSelected from \"../../img/PM_Cloud_3D_Mapping_Selected.png\";\r\nimport TwoDMapping from \"../../img/PM_Cloud_2d_Mapping.png\";\r\nimport TwoDMappingSelected from \"../../img/PM_Cloud_2d_Mapping_Selected.png\";\r\nimport OnlyMe from \"../../img/PM_Cloud_Only_Me.png\";\r\nimport OnlyMeSelected from \"../../img/PM_Cloud_Only_Me_Selected.png\"\r\nimport Everyone from \"../../img/PM_Cloud_Everyone.png\";\r\nimport EveryoneSelected from \"../../img/PM_Cloud_Everyone_Selected.png\";\r\nimport CloseRangeObject from \"../../img/CloseRangeObject.png\";\r\nimport CloseRangeObjectSelected from \"../../img/CloseRangeObject_Selected.png\";\r\nimport WideAreaMapping from \"../../img/WideAreaMapping.png\";\r\nimport WideAreaMappingSelected from \"../../img/WideAreaMapping_Selected.png\";\r\nimport Standard from \"../../img/standard.png\";\r\nimport StandardSelected from \"../../img/standard_selected.png\";\r\nimport RTK_PPK from \"../../img/RTK_PPK.png\";\r\nimport RTK_PPKSelected from \"../../img/RTK_PPK_Selected.png\";\r\nimport * as Common from \"../../slCommon\";\r\n\r\nclass newPMProjectPhaseII extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n errorMessage: \"\",\r\n ThreeDMappingImage: ThreeDMappingSelected,\r\n TwoDMappingImage: TwoDMapping,\r\n OnlyMeImage: OnlyMeSelected,\r\n EveryoneImage: Everyone,\r\n CloseRangeObjectImage: CloseRangeObject,\r\n WideAreaMappingImage: WideAreaMappingSelected,\r\n StandardImage: StandardSelected,\r\n RTK_PPKImage: RTK_PPK\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n //Common.createListenForNativeBackOrForwardBtn(this);\r\n }\r\n\r\n componentWillUnmount() {\r\n //Common.removeListenForNativeBackOrForwardBtn(this);\r\n }\r\n\r\n handleErrorMessage = (message) => {\r\n this.setState({ errorMessgae: message });\r\n };\r\n\r\n render() {\r\n return (\r\n <React.Fragment>\r\n {this.state.errorMessgae ? (\r\n <div className='divWarningPMCloud'>\r\n {this.state.errorMessgae}\r\n </div>\r\n ) : null}\r\n <div style={{ position: 'absolute', paddingBottom: '120px' }}>\r\n <div style={{ float: 'left', paddingRight: '20px' }}>\r\n <div style={{ marginTop: \"40px\" }}>\r\n <h5 className=\"moreSpacefromTitleToTable\">{intl.get(\"PM_Cloud_Define_Input_Title\")}</h5>\r\n <p>{intl.get(\"PM_Cloud_Define_Input_Select_GPS_Accuracy\")}</p>\r\n <div style={{ display: 'inline-flex' }}>\r\n <div style={{ float: 'left' }}>\r\n <img className={this.props.image1ClassName} src={this.state.StandardImage} onClick={(event) => {\r\n this.setState(this.handleErrorMessage(\"\"));\r\n this.props.handleIsGPSAccuracy(false); // GPS Accuracy: Standard\r\n this.setState({ StandardImage: StandardSelected });\r\n this.setState({ RTK_PPKImage: RTK_PPK });\r\n this.props.handlePhaseIIImageClassName(\"image1ClassName\", \"PMCloudImageButtons Selected\");\r\n this.props.handlePhaseIIImageClassName(\"image2ClassName\", \"PMCloudImageButtons\");\r\n }} />\r\n <p className='stepIIText'>Standard</p>\r\n </div>\r\n\r\n <div style={{ float: 'right' }}>\r\n <img className={this.props.image2ClassName} src={this.state.RTK_PPKImage} onClick={(event) => {\r\n this.setState(this.handleErrorMessage(\"\"));\r\n this.props.handleIsGPSAccuracy(true); // GPS Accuracy: RTK/PPK\r\n this.setState({ StandardImage: Standard });\r\n this.setState({ RTK_PPKImage: RTK_PPKSelected });\r\n this.props.handlePhaseIIImageClassName(\"image2ClassName\", \"PMCloudImageButtons Selected\");\r\n this.props.handlePhaseIIImageClassName(\"image1ClassName\", \"PMCloudImageButtons\");\r\n }} />\r\n <p className='stepIIText'>RTK / PPK</p>\r\n </div>\r\n </div>\r\n </div>\r\n <div style={{ marginTop: \"40px\" }}>\r\n <div>\r\n <div style={{ float: 'left' }}>\r\n <p className='stepIIText' style={{fontSize: '1rem'}}>Altitude Method:</p>\r\n </div>\r\n <div style={{ float: 'right' }}>\r\n <select name=\"verticalDatum\" id=\"verticalDatum\" className=\"verticalDatumSelectClass\" onChange={(event) => {this.props.handleAltitudeMethod(event.target.value)}}>\r\n <option value=\"Ellipsoid\">Absolute - Ellipsoid</option>\r\n <option value=\"Geoid\">Absolute - Geoid (MSL)</option>\r\n <option value=\"Relative\">Relative to Terrain</option>\r\n </select>\r\n </div>\r\n </div>\r\n </div>\r\n <div style={{ marginTop: \"8em\" }}>\r\n <p className=\"moreSpacefromTitleToTable\">{intl.get(\"PM_Cloud_Define_Input_Captured_Scene\")}</p>\r\n <div style={{display: 'inline-flex'}}>\r\n <div>\r\n <img className={this.props.image3ClassName} src={this.state.WideAreaMappingImage} onClick={(event) => {\r\n this.setState(this.handleErrorMessage(\"\"));\r\n this.props.handleCapturedSceneIsWideArea(true); // Wide Area Mapping\r\n this.setState({ WideAreaMappingImage: WideAreaMappingSelected });\r\n this.setState({ CloseRangeObjectImage: CloseRangeObject });\r\n this.props.handlePhaseIIImageClassName(\"image3ClassName\", \"PMCloudImageButtons Selected\");\r\n this.props.handlePhaseIIImageClassName(\"image4ClassName\", \"PMCloudImageButtons\");\r\n }} />\r\n <p className='stepIIText'>Wide Area Mapping</p>\r\n </div>\r\n <div>\r\n <img className={this.props.image4ClassName} src={this.state.CloseRangeObjectImage} onClick={(event) => {\r\n this.setState(this.handleErrorMessage(\"\"));\r\n this.props.handleCapturedSceneIsWideArea(false); // Close Range Object\r\n this.setState({ WideAreaMappingImage: WideAreaMapping });\r\n this.setState({ CloseRangeObjectImage: CloseRangeObjectSelected });\r\n this.props.handlePhaseIIImageClassName(\"image4ClassName\", \"PMCloudImageButtons Selected\");\r\n this.props.handlePhaseIIImageClassName(\"image3ClassName\", \"PMCloudImageButtons\");\r\n }} />\r\n <p className='stepIIText'>Close Range Object</p>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div style={{ float: 'right', paddingLeft: '200px' }}>\r\n <div style={{ marginTop: \"40px\" }}>\r\n <h5 className=\"moreSpacefromTitleToTable\">{intl.get(\"PM_CLoud_Select_PhotoMesh_Outputs_Title\")}</h5>\r\n <p>{intl.get(\"PM_Cloud_Select_PhotoMesh_Outputs_Description\")}</p>\r\n <div style={{ display: 'inline-flex' }}>\r\n <div>\r\n <img className={this.props.image1ClassName} src={this.state.ThreeDMappingImage} onClick={(event) => {\r\n this.setState(this.handleErrorMessage(\"\"));\r\n if (this.state.ThreeDMappingImage === ThreeDMappingSelected) {\r\n this.props.handlePhaseIIImageClassName(\"image1ClassName\", \"PMCloudImageButtons\"); // remove selected ThreeDMapping\r\n this.setState({ ThreeDMappingImage: ThreeDMapping });\r\n this.props.handleRemoveSelectedPhotoMeshOutputs(this.props.OutputFormatThreeD);\r\n }\r\n else {\r\n this.props.handlePhaseIIImageClassName(\"image1ClassName\", \"PMCloudImageButtons Selected\") // add selected ThreeDMapping\r\n this.setState({ ThreeDMappingImage: ThreeDMappingSelected });\r\n this.props.handleAddSelectedPhotoMeshOutputs(this.props.OutputFormatThreeD);\r\n }\r\n }} />\r\n <p className='stepIIText'>3D Mapping</p>\r\n </div>\r\n <div>\r\n <img className={this.props.image2ClassName} src={this.state.TwoDMappingImage} onClick={(event) => {\r\n this.setState(this.handleErrorMessage(\"\"));\r\n if (this.state.TwoDMappingImage === TwoDMappingSelected) {\r\n this.props.handlePhaseIIImageClassName(\"image2ClassName\", \"PMCloudImageButtons\");\r\n this.setState({ TwoDMappingImage: TwoDMapping });\r\n this.props.handleRemoveSelectedPhotoMeshOutputs(this.props.OutputFormatTwoD);\r\n }\r\n else {\r\n this.props.handlePhaseIIImageClassName(\"image2ClassName\", \"PMCloudImageButtons Selected\");\r\n this.setState({ TwoDMappingImage: TwoDMappingSelected });\r\n this.props.handleAddSelectedPhotoMeshOutputs(this.props.OutputFormatTwoD);\r\n }\r\n }} />\r\n <p className='stepIIText'>True Orthophoto</p>\r\n </div>\r\n </div>\r\n </div>\r\n <div style={{ marginTop: \"8em\" }}>\r\n <p className=\"moreSpacefromTitleToTable\">{intl.get(\"PM_Cloud_Who_Can_Access_Title\")}</p>\r\n <div style={{ display: 'inline-flex' }}>\r\n <div>\r\n <img className={this.props.image3ClassName} src={this.state.OnlyMeImage} onClick={(event) => {\r\n this.setState(this.handleErrorMessage(\"\"));\r\n this.props.handleIsProjectAccessToEveryone(false);\r\n this.props.handlePhaseIIImageClassName(\"image3ClassName\", \"PMCloudImageButtons Selected\");\r\n this.setState({ OnlyMeImage: OnlyMeSelected });\r\n this.props.handlePhaseIIImageClassName(\"image4ClassName\", \"PMCloudImageButtons\");\r\n this.setState({ EveryoneImage: Everyone });\r\n }} />\r\n <p className='stepIIText'>Only Me</p>\r\n </div>\r\n <div>\r\n <img className={this.props.image4ClassName} src={this.state.EveryoneImage} onClick={(event) => {\r\n this.setState(this.handleErrorMessage(\"\"));\r\n this.props.handleIsProjectAccessToEveryone(true);\r\n this.props.handlePhaseIIImageClassName(\"image4ClassName\", \"PMCloudImageButtons Selected\");\r\n this.setState({ EveryoneImage: EveryoneSelected });\r\n this.props.handlePhaseIIImageClassName(\"image3ClassName\", \"PMCloudImageButtons\");\r\n this.setState({ OnlyMeImage: OnlyMe });\r\n }} />\r\n <p className='stepIIText'>Everyone</p>\r\n </div>\r\n </div>\r\n <p style={{ fontSize: '13px' }}><a href=\"https://support.skylinesoft.com/hc/en-us/articles/4699178801308\" target=\"_blank\">{intl.get(\"PM_Cloud_Who_Can_Access_Description\", { projectName: this.props.projectName, numOfImages: this.props.acceptedPhotos.length })}</a></p>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"NextPrevButtonsClass\">\r\n <div className=\"NextButtonDivClass\" style={{ float: \"right\", marginRight: '40px', marginLeft: \"30px\" }}>\r\n <button className=\"btn-primary btn btn-default NextButtonClass\" onClick={(event) => {\r\n if (this.props.checkMovingFromPhaseIItoPhaseIII())\r\n this.props.setPageNumer(3);\r\n else this.handleErrorMessage(intl.get(\"PM_Cloud_PhaseII_Error_Required_Param_Not_Selected\"));\r\n }}>START\r\n </button>\r\n </div>\r\n <div className=\"NextButtonDivClass\" style={{ float: \"right\" }}>\r\n <button className=\"btn-primary btn btn-default NextButtonClass\" onClick={(event) => {\r\n this.props.setPageNumer(1)\r\n }}>Prev\r\n </button>\r\n </div>\r\n </div>\r\n </React.Fragment>\r\n );\r\n }\r\n}\r\n\r\nexport default newPMProjectPhaseII;","import React, { Component, useEffect } from \"react\";\r\nimport intl from \"react-intl-universal\";\r\nimport { ProgressBar } from \"react-bootstrap\";\r\nimport UploadingImages from \"../../img/upload_icon.gif\";\r\nimport { Dialog, DialogContent, DialogTitle, DialogActions } from \"@material-ui/core\";\r\nimport { error } from \"jquery\";\r\nimport { egg } from \"glyphicons\";\r\n\r\nclass newPMProjectPhaseIII extends Component {\r\n constructor(props) {\r\n super(props);\r\n }\r\n\r\n componentDidMount() {\r\n this.props.startUploading();\r\n window.addEventListener('beforeunload', this.beforeUnloadHandler, true);\r\n }\r\n\r\n componentWillUnmount() {\r\n window.removeEventListener('beforeunload', this.beforeUnloadHandler, true);\r\n }\r\n\r\n componentDidUpdate() {\r\n }\r\n\r\n beforeUnloadHandler(e) {\r\n e.returnValue = 'Data may not be saved';\r\n }\r\n\r\n render() {\r\n return (\r\n <div style={{color: '#141414'}}>\r\n <div className=\"divWarningPMCloud\" style={{backgroundColor: '#0186bc'}}>\r\n <i className=\"fa fa-warning\"></i>\r\n {intl.get(\"PM_Cloud_PhaseIII_Do_Not_Close_Page\")}\r\n </div>\r\n <div style={{ marginTop: \"120px\", textAlign: 'center' }}>\r\n <img className=\"UploadingImages\" src={UploadingImages}></img>\r\n <h4 className=\"moreSpacefromTitleToTable\" style={{ color: '#3185c0', marginTop: '20px', textAlign: 'center' }}>{intl.get(\"PM_Cloud_PhaseIII_Upload_Title\")}</h4>\r\n <h5>{intl.getHTML(\"PM_Cloud_PhaseIII_Upload_Description\", { projectName: this.props.projectName, numOfImages: this.props.acceptedPhotos.length, accountPage: \"\\\\store\\\\account\" })}</h5>\r\n </div>\r\n\r\n <div style={{ marginTop: \"80px\" }}>\r\n <div style={{ width: '100%', display: 'inline-block' }}>\r\n <div style={{ float: 'left' }}>\r\n <h5 style={{ width: '40%' }}>Uploading</h5>\r\n </div>\r\n <div style={{ float: 'right' }}>\r\n <h5 style={{ width: '40%' }}>{this.props.progressState.toFixed(2) + `%`}</h5>\r\n </div>\r\n </div>\r\n <ProgressBar now={this.props.progressState} label={this.props.progressState.toFixed(2) + `%`} />\r\n </div>\r\n <div style={{ marginTop: '70px' }}>\r\n <h5>{intl.get(\"PM_Cloud_PhaseIII_Upload_Description_Steps_Title\")}</h5>\r\n <ol style={{color: '#767676'}}>\r\n <li>{intl.get(\"PM_Cloud_PhaseIII_Upload_Description_Step_1\")}</li>\r\n <li>{intl.get(\"PM_Cloud_PhaseIII_Upload_Description_Step_2\")}</li>\r\n {this.props.isSubLoginType \r\n ? null \r\n : <li>{intl.get(\"PM_Cloud_PhaseIII_Upload_Description_Step_3\")}</li>\r\n }\r\n </ol>\r\n {this.props.isSubLoginType \r\n ? null \r\n : <p style={{color: '#767676'}}>{intl.getHTML(\"PM_Cloud_PhaseIII_Upload_Description_Steps\", {accountPage: '/store/account?isCloudProcessing=true'})}</p>\r\n }\r\n </div>\r\n <div className=\"NextPrevButtonsClass\">\r\n <div className=\"NextButtonDivClass\" style={{ float: \"right\", marginRight: '40px', marginLeft: \"30px\" }}>\r\n <button className=\"abortButton btn btn-default NextButtonClass\" onClick={(event) => {\r\n this.props.handleShowAbortDialog(true);\r\n //this.props.handleAbortUploading();\r\n }}>ABORT\r\n </button>\r\n </div>\r\n </div>\r\n <Dialog\r\n open={this.props.showAbortDialog}\r\n fullWidth\r\n maxWidth={\"sm\"}\r\n aria-labelledby=\"form-dialog-title\"\r\n >\r\n <DialogTitle\r\n id=\"form-dialog-title\"\r\n className=\"PropertySheetDialogTitle\"\r\n >\r\n {intl.get(\"PM_Cloud_PhaseIII_Abort_Dialog_Title\")}\r\n </DialogTitle>\r\n <DialogContent>\r\n <form className=\"mb-4\">\r\n <label className=\"mr-3\">{intl.get(\"PM_Cloud_PhaseIII_Abort_Dialog_Aborting_Question\")}</label>\r\n </form>\r\n </DialogContent>\r\n <DialogActions>\r\n <button\r\n onClick={() => {\r\n this.props.handleShowAbortDialog(false);\r\n }}\r\n className=\"btn btn-secondary btn-login text-capitalize mb-2 pl-4 pr-4 pt-1 pb-1\"\r\n color=\"primary\"\r\n >\r\n No\r\n </button>\r\n <button\r\n onClick={(event) => {\r\n this.props.handleAbortUploading();\r\n }}\r\n className=\"btn btn-primary btn-login text-capitalize mb-2 pl-4 pr-4 pt-1 pb-1\"\r\n type=\"submit\"\r\n autoFocus\r\n text=\"Yes\"\r\n >Yes</button>\r\n </DialogActions>\r\n </Dialog>\r\n </div>\r\n \r\n )\r\n }\r\n}\r\n\r\nexport default newPMProjectPhaseIII;\r\n","import React, { Component } from 'react';\r\nimport intl from \"react-intl-universal\";\r\nimport V_Data_Proccessing from \"../../img/DataProcessing.png\";\r\n\r\nclass newPMProjectPhaseIV extends Component {\r\n constructor(props) {\r\n super(props);\r\n }\r\n\r\n render() {\r\n return (\r\n <React.Fragment>\r\n <div style={{ marginTop: \"80px\" }}>\r\n <img className=\"UploadingImages\" src={V_Data_Proccessing} />\r\n </div>\r\n <div style={{ marginTop: \"40px\", textAlign: 'center', color: '#3185c0', fontFamily: 'Ubuntu, Medium', fontSize: '18px' }}>\r\n <h4 className=\"moreSpacefromTitleToTable\">\r\n {this.props.skipSteps ? \r\n intl.get(\"PM_Cloud_PhaseIV_Skip_Data_Processing_Title\")\r\n :\r\n intl.get(\"PM_Cloud_PhaseIV_Data_Processing_Title\")\r\n }\r\n </h4>\r\n </div>\r\n \r\n <div style={{ marginTop: \"40px\", textAlign: 'center' }}>\r\n {this.props.isSubLoginType ? \r\n <h4 style={{fontSize: '18px', display: 'inline-flex', width: '56%'}}>\r\n {intl.get(\"PM_Cloud_PhaseIV_Data_Processing_Description\")}\r\n </h4> \r\n : \r\n <h4 style={{fontSize: '18px', display: 'inline-flex', width: '63%'}}>\r\n {intl.get(\"PM_Cloud_PhaseIV_Data_Processing_Description\")}{intl.get(\"PM_Cloud_PhaseIV_Data_Processing_Description_Part_2\")}\r\n </h4>\r\n }\r\n {this.props.isSubLoginType ? \r\n \"\" \r\n : \r\n <p style={{marginTop: '40px'}}>{intl.getHTML(\"PM_Cloud_PhaseIV_Uploading_Completed_Successfuly\", {accountPage: \"\\\\store\\\\account?isCloudProcessing=true\"})}</p>}\r\n </div>\r\n </React.Fragment>\r\n );\r\n }\r\n}\r\n\r\nexport default newPMProjectPhaseIV;","import React, { Component } from 'react';\r\nimport intl from \"react-intl-universal\";\r\nimport { FormGroup, FormControl, ProgressBar } from \"react-bootstrap\";\r\nimport * as SLCommon from \"../../slCommon\";\r\n\r\n\r\nclass newPMProjectPhaseEndpoint extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n errorMessage: \"\",\r\n params: [],\r\n queryParams: {},\r\n showParametersHeaders: true,\r\n projectName: \"\"\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n \r\n if(this.props.isSubLoginType){\r\n if(this.props.projectName == \"\"){\r\n //create custom identifier\r\n var customProjectName = SLCommon.generateUniqueString(this.props.company);\r\n this.props.handleProjectName(customProjectName);\r\n this.setState({ projectName: customProjectName});\r\n }else{\r\n this.setState({ projectName: this.props.projectName});\r\n }\r\n }else{\r\n this.setState({ projectName: this.props.projectName});\r\n }\r\n\r\n const searchParams = new URLSearchParams(window.location.search);\r\n const queryParams = {};\r\n for (const [key, value] of searchParams.entries()) {\r\n // Exclude \"packageid\"\r\n if (key !== \"packageId\" && key !== \"cookie\") {\r\n queryParams[key] = value;\r\n }\r\n }\r\n this.setState({ params: this.props.params});\r\n this.setState({ queryParams }, ()=>{\r\n this.updateParamsFromQuery();\r\n });\r\n }\r\n\r\n updateParamsFromQuery = () =>{\r\n var queryParams = this.state.queryParams;\r\n var params = this.props.params;\r\n Object.keys(queryParams).forEach(key => {\r\n let found = false;\r\n Object.keys(params).forEach(paramKey => {\r\n if (paramKey === \"object\") {\r\n return; // Skip checking the \"object\" key\r\n }\r\n const paramArray = params[paramKey];\r\n const index = paramArray.findIndex(obj => obj.name === key);\r\n if (index !== -1) {\r\n paramArray[index].value = queryParams[key];\r\n paramArray[index].disable = true;\r\n found = true;\r\n }\r\n });\r\n if (!found) {\r\n if (!params.string) {\r\n params.string = [];\r\n }\r\n params.string.push({\r\n name: key,\r\n notEditAble: false,\r\n value: queryParams[key],\r\n disable: true,\r\n options: [],\r\n showInUI: true\r\n });\r\n }\r\n });\r\n \r\n this.props.handleUpdates({\r\n params: params\r\n })\r\n this.showParametersHeader(params);\r\n }\r\n\r\n showParametersHeader = (params) =>{\r\n var temp = []\r\n Object.keys(params).map(paramType => {\r\n params[paramType].map((param, index) => {\r\n if(param.showInUI && (!param.disable || param.disable !== true)){\r\n temp.push(param);\r\n }\r\n })\r\n })\r\n \r\n if(temp.length > 0 && \r\n (\r\n (this.props.isSubLoginType && this.state.projectName != \"\") \r\n || \r\n (!this.props.isSubLoginType && !this.props.skipSteps && this.state.projectName != \"\")\r\n ||\r\n (!this.props.isSubLoginType && this.props.skipSteps && this.state.projectName == \"\")\r\n )){\r\n this.setState({ \r\n showParametersHeaders: true\r\n });\r\n }\r\n else{\r\n this.setState({ \r\n showParametersHeaders: false\r\n });\r\n }\r\n }\r\n\r\n handleChange = (e, paramType, paramName) => {\r\n const { value } = e.target;\r\n const updatedParams = { ...this.state.params };\r\n updatedParams[paramType] = this.state.params[paramType].map(param => {\r\n if (param.name === paramName) {\r\n return { ...param, value: value };\r\n }\r\n return param;\r\n });\r\n \r\n this.setState({ params: updatedParams });\r\n this.props.handleUpdates({\r\n params: updatedParams\r\n })\r\n }\r\n\r\n handleErrorMessage = (message) => {\r\n this.setState({ errorMessgae: message });\r\n };\r\n\r\n render() {\r\n const { params } = this.state;\r\n\r\n const renderParamsOfType = (paramType) => {\r\n return params[paramType].map((param, index) => {\r\n if (param.showInUI) {\r\n if (paramType === 'object' && param.options) {\r\n // Render select box if parameter type is object and it has options\r\n return (\r\n <div className=\"form-group\" key={`${paramType}-${param.name}-${index}`}>\r\n <label htmlFor=\"selCollectionType\">{param.name}:</label>\r\n <select\r\n className=\"form-control round\"\r\n id=\"selCollectionType\" \r\n datafield=\"CollectionType\"\r\n value={param.value}\r\n onChange={(e) => this.handleChange(e, paramType, param.name)}\r\n disabled={param.notEditAble}\r\n >\r\n {Object.entries(JSON.parse(param.options)).map(([optionValue, optionLabel]) => (\r\n <option key={optionLabel} value={optionLabel}>\r\n {optionLabel}\r\n </option>\r\n ))}\r\n </select>\r\n </div>\r\n );\r\n } else {\r\n // Render input field for other types of parameters\r\n if(param.disable != undefined && param.disable){\r\n return\r\n }else{\r\n return (\r\n <div className=\"form-label-group\" key={`${paramType}-${param.name}-${index}`}>\r\n <p>{param.name}</p>\r\n <FormGroup controlId=\"firstName\" className=\"form-label-group d-flex\">\r\n <FormControl\r\n className=\"form-control addUserFormControl\"\r\n // pattern={\"^[\\\\w\\\\-]{1,32}$\"}\r\n value={param.value}\r\n onChange={(e) => this.handleChange(e, paramType, param.name)}\r\n placeholder=\"Enter the input data path\"\r\n datafield=\"DataPath\"\r\n required\r\n disabled={param.disable ? param.disable : false}\r\n />\r\n </FormGroup>\r\n </div>\r\n );\r\n }\r\n }\r\n }\r\n return null;\r\n });\r\n }\r\n\r\n\r\n return (\r\n <React.Fragment>\r\n {this.state.errorMessgae ? (\r\n <div className='divWarningPMCloud'>\r\n {this.state.errorMessgae}\r\n </div>\r\n ) : null}\r\n <div className=\"row content\">\r\n <div className='col-sm-8 text-left mainWrapperDiv' style={{ paddingBottom: '120px' }}>\r\n <div>\r\n <br />\r\n <h3>\r\n {this.state.showParametersHeaders ? \"Parameters\" : 'To start the project, click \"Start\".'}\r\n </h3>\r\n <br />\r\n </div>\r\n {this.props.skipSteps && (this.state.projectName == \"\") ? \r\n <div>\r\n <p>Identifier:</p>\r\n <FormGroup controlId=\"firstName\" className=\"form-label-group d-flex\">\r\n <FormControl\r\n className=\"form-control addUserFormControl\"\r\n // pattern={\"^[\\\\w\\\\-]{1,32}$\"}\r\n maxLength=\"32\"\r\n value={this.props.projectName}\r\n onChange={(event) => {\r\n if (\r\n event.target.validity.valid ||\r\n event.target.value === \"\"\r\n )\r\n this.props.handleProjectName(event.target.value);\r\n }}\r\n placeholder={intl.get(\"Identifier_Name_Placeholder\")}\r\n required\r\n />\r\n </FormGroup>\r\n </div>\r\n : null}\r\n {this.state.showParametersHeaders ? \r\n Object.keys(params).map(paramType => (\r\n <React.Fragment key={paramType}>\r\n {renderParamsOfType(paramType)}\r\n </React.Fragment>\r\n )) \r\n : null}\r\n </div>\r\n </div>\r\n <div className={`NextPrevButtonsClass ${this.props.isSubLoginType ? \"NextPrevButtonsWithoutFooter\" : \"\"}`}>\r\n {this.props.skipSteps ? \r\n <div className=\"NextButtonDivClass\" style={{ float: \"right\", marginRight: '40px', marginLeft: \"30px\" }}>\r\n <button \r\n className=\"btn-primary btn btn-default NextButtonClass\"\r\n disabled={this.props.projectName == \"\"}\r\n onClick={(event) => {\r\n this.props.startUploading();\r\n }}\r\n >START\r\n </button>\r\n </div>\r\n :\r\n <div className=\"NextButtonDivClass\" style={{ float: \"right\", marginRight: '40px', marginLeft: \"30px\" }}>\r\n <button \r\n className=\"btn-primary btn btn-default NextButtonClass\" \r\n disabled={this.props.projectName == \"\"}\r\n onClick={(event) => {\r\n if (this.props.checkMovingFromPhaseIItoPhaseIII())\r\n this.props.setPageNumer(3);\r\n else this.handleErrorMessage(intl.get(\"PM_Cloud_PhaseII_Error_Required_Param_Not_Selected\"));\r\n }}\r\n >START\r\n </button>\r\n </div>\r\n }\r\n </div>\r\n </React.Fragment>\r\n );\r\n }\r\n}\r\n\r\nexport default newPMProjectPhaseEndpoint;","import React, { Component } from 'react';\r\nimport intl from \"react-intl-universal\";\r\nimport FailedProcessing from '../../img/FailedProcessing.png';\r\n\r\nclass PMProjectUploadingAborted extends Component {\r\n\r\n render() {\r\n return (\r\n <React.Fragment>\r\n <div style={{ marginTop: \"80px\" }} id=\"fatalError\">\r\n <img className=\"UploadingImages\" src={FailedProcessing} />\r\n <div style={{ marginTop: \"80px\" }}>\r\n <h4>\r\n {intl.get(\"PM_Cloud_Uploading_Aborted\")}\r\n </h4>\r\n <h4>\r\n {intl.getHTML(\"PM_Cloud_Uploading_Aborted_Description\", { startPage: window.location.href })}\r\n </h4>\r\n </div>\r\n </div>\r\n </React.Fragment>\r\n )\r\n }\r\n}\r\n\r\nexport default PMProjectUploadingAborted;\r\n","import React, { Component } from 'react';\r\nimport FailedProcessing from '../../img/FailedProcessing.png';\r\nimport intl from \"react-intl-universal\";\r\n\r\n\r\nclass ErrorMessages extends Component {\r\n render() {\r\n return (\r\n <React.Fragment>\r\n <div style={{ marginTop: \"80px\" }}>\r\n <img className=\"UploadingImages\" src={FailedProcessing} />\r\n <div style={{ marginTop: \"80px\", textAlign: 'center', color: '#141414', fontFamily: 'Ubuntu, Medium', fontSize: '18px' }}>\r\n <h4 className=\"moreSpacefromTitleToTable\">{this.props.errorMessageString}</h4>\r\n </div>\r\n <div style={{ marginTop: \"40px\", textAlign: 'center' }}>\r\n <p style={{marginTop: '40px'}}>\r\n {this.props.isSubLoginType ? \r\n intl.get(\"Please_Contact_Turflogic_Support\")\r\n : \r\n <>\r\n {intl.get(\"PM_Cloud_ErrorMessagesPage_Generic_Error_Message_Description_1\")} <u><a target='_blank' href={'https://support.skylinesoft.com/hc/en-us/requests/new?tf_subject=PM%20cloud%20processing&tf_anonymous_requester_email=' + this.props.userEmail + \"&tf_360015036959=pm_cloud_processing&tf_description=Enter%20description%20here:%0A%0APackage-\" + this.props.packageId + \";%20Userid-\" + this.props.userEmail}>Skyline support team</a></u> {intl.get(\"PM_Cloud_ErrorMessagesPage_Generic_Error_Message_Description_2\")}\r\n </>\r\n }\r\n </p>\r\n </div>\r\n </div>\r\n </React.Fragment>\r\n );\r\n }\r\n}\r\n\r\nexport default ErrorMessages;","import React, { Component } from 'react';\r\nimport intl from \"react-intl-universal\";\r\nimport { Link, MemoryRouter as Router, Route } from \"react-router-dom\";\r\nimport PhaseI from \"./newPMProjectPhaseI\";\r\nimport PhaseII from \"./newPMProjectPhaseII\";\r\nimport PhaseIII from \"./newPMProjectPhaseIII\";\r\nimport PhaseIV from \"./newPMProjectPhaseIV\";\r\nimport PhaseEndpoint from \"./newPMProjectPhaseEndpoint\";\r\nimport UploadAborted from \"./PMProjectUploadingAborted\";\r\nimport ErrorMessages from './ErrorMessages';\r\nimport \"../account.css\";\r\nimport \"./newPMProject.css\";\r\nimport \"react-table/react-table.css\";\r\nimport { Step, StepLabel, Stepper } from '@material-ui/core';\r\nimport LoaderButton from \"../LoaderButton\";\r\nimport { Dialog, DialogContent } from \"@material-ui/core\";\r\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\r\n\r\nvar controller = new AbortController();\r\nvar signal = controller.signal;\r\n\r\nclass NewPMProject extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n isLoading: true,\r\n userEmail: \"\",\r\n packageId: \"\",\r\n phaseNumber: 1,\r\n projectName: \"\",\r\n imagesSize: 0,\r\n acceptedPhotos: [],\r\n acceptedPhotosDictionary: {},\r\n fatalError: \"\",\r\n RequiredGP: 0,\r\n GPAmount: 0,\r\n MinimumNumOfPhotos: 15,\r\n MaximumNumOfPhotos: 20000,\r\n SelectedPodOutputs: \"3D\", // Defaults of Step 2 page\r\n IsProjectAccessToEveryone: false, // Defaults of Step 2 page\r\n isGPSAccuracyRTK_PPK: false, // Defaults of Step 2 page\r\n isCaptureSceneWideArea: true, // Defaults of Step 2 page\r\n OutputFormatThreeD: \"ThreeDMapping\",\r\n OutputFormatTwoD: \"TwoDMapping\",\r\n SelectedVerticalDatum: \"Ellipsoid\",\r\n SelectedAltitudeMethod: \"Absolute\",\r\n progressState: 0,\r\n progressChunk: 0,\r\n isAborted: \"\",\r\n image1ClassName: \"PMCloudImageButtons\",\r\n image2ClassName: \"PMCloudImageButtons\",\r\n image3ClassName: \"PMCloudImageButtons\",\r\n image4ClassName: \"PMCloudImageButtons\",\r\n startProjectCounter: undefined,\r\n stepIndex: 1,\r\n runId: null,\r\n errorMessageString: \"\",\r\n showAbortDialog: false,\r\n endpoint_id: \"\",\r\n params: {},\r\n skipSteps: false,\r\n podName: \"\",\r\n queryParams: {},\r\n company: \"\"\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n\r\n this.props.handleUpdates({\r\n customerLogoUrl: \"\"\r\n })\r\n \r\n var packageIdParam = window.location.search.toLowerCase().match(\r\n /[?&]packageid[=]([^&]+)/i\r\n );\r\n\r\n if (packageIdParam === null) {\r\n this.setState({ fatalError: intl.get(\"PM_New_Project_PackageId_Not_Found\") });\r\n return;\r\n }\r\n \r\n this.getPMCloudData(packageIdParam !== null ? packageIdParam[1] : \"\");\r\n this.setState({packageId: packageIdParam[1]});\r\n\r\n const searchParams = new URLSearchParams(window.location.search);\r\n const queryParams = {};\r\n for (const [key, value] of searchParams.entries()) {\r\n // Exclude \"packageid\"\r\n if (key !== \"packageId\") {\r\n queryParams[key] = value;\r\n }\r\n }\r\n this.setState({ queryParams });\r\n }\r\n\r\n getEndpointParamsById = (endpoint_id) =>{\r\n let url = process.env.REACT_APP_LAMBDA_API_MANAGER + \"/getEndpointById\";\r\n\r\n fetch(url, {\r\n method: \"POST\",\r\n credentials: \"include\",\r\n headers: {\r\n \"Content-Type\": \"text/plain\",\r\n },\r\n body: JSON.stringify({\r\n isLocal: (process.env.REACT_APP_IS_LOCAL == 'true'),\r\n endpoint_id: endpoint_id ? endpoint_id : ''\r\n }),\r\n })\r\n .then((res) => { return res.json()})\r\n .then((result) => {\r\n if(result.ret.returnCode == \"success\"){\r\n result = JSON.parse(result.ret.data);\r\n this.setState(\r\n {\r\n podName: result.length > 0 ? result[0].endpoint_name : \"\",\r\n params: result.length > 0 ? JSON.parse(result[0].params) : \"\"\r\n },()=>{\r\n this.setState({isLoading: false});\r\n if(result.length > 0 && result[0].global_params && result[0].global_params.filter(x=>x.name == \"UPLOAD_FILES_UI\")[0].defaultValue == \"true\"){\r\n this.setState({skipSteps: false});\r\n }else{\r\n this.setState({skipSteps: true});\r\n }\r\n }\r\n );\r\n }\r\n })\r\n }\r\n \r\n setPageNumer = (phaseNumber) => {\r\n this.setState({phaseNumber});\r\n }\r\n\r\n handleProjectName = (projectName) => {\r\n this.setState({ projectName });\r\n }\r\n \r\n handlePhaseIIImageClassName = (stateName, value) => {\r\n this.setState({ [stateName]: value });\r\n }\r\n\r\n handleAddSelectedPhotoMeshOutputs = (value) => {\r\n if (value === this.state.OutputFormatThreeD) {\r\n if (this.state.SelectedPodOutputs === \"\") {\r\n this.setState({ SelectedPodOutputs: \"3D\"}); // It means that only 3d selected now\r\n }\r\n else if (this.state.SelectedPodOutputs === \"2D\") { // it means that now slected both 3d and 2d\r\n this.setState({SelectedPodOutputs: \"3D_2D\"}); // 2d + 3d\r\n }\r\n }\r\n if (value === this.state.OutputFormatTwoD) {\r\n if (this.state.SelectedPodOutputs === \"\") { // If nothing was selected before\r\n this.setState({ SelectedPodOutputs: \"2D\"});\r\n }\r\n else if (this.state.SelectedPodOutputs === \"3D\") { // it means that now slected both 3d and 2d\r\n this.setState({ SelectedPodOutputs: \"3D_2D\"}) // 2d + 3d\r\n }\r\n }\r\n }\r\n\r\n handleRemoveSelectedPhotoMeshOutputs = (value) => {\r\n if (value === this.state.OutputFormatThreeD) {\r\n if (this.state.SelectedPodOutputs === \"3D\") // If only 3D was selected\r\n this.setState({ SelectedPodOutputs: \"\"});\r\n else if (this.state.SelectedPodOutputs === \"3D_2D\") // If both 2D and 3D was selected. and the user wants to remove only 2D\r\n this.setState({ SelectedPodOutputs: \"2D\"});\r\n }\r\n if (value === this.state.OutputFormatTwoD) {\r\n if (this.state.SelectedPodOutputs === \"2D\") // If onlt 2D was selected\r\n this.setState({ SelectedPodOutputs: \"\"});\r\n else if (this.state.SelectedPodOutputs === \"3D_2D\") // If both 2D and 3D was selected. and the user wants to remove only 2D\r\n this.setState({ SelectedPodOutputs: \"3D\"});\r\n }\r\n }\r\n\r\n handleIsProjectAccessToEveryone = (value) => {\r\n this.setState({ IsProjectAccessToEveryone: value});\r\n }\r\n\r\n handleIsGPSAccuracy = (value) => {\r\n this.setState({ isGPSAccuracyRTK_PPK: value });\r\n }\r\n\r\n handleCapturedSceneIsWideArea = (value) => {\r\n this.setState({ isCaptureSceneWideArea: value });\r\n }\r\n \r\n handleAltitudeMethod = (value) => {\r\n if (value == \"Relative\") {\r\n this.setState({ SelectedVerticalDatum: \"Ellipsoid\" });\r\n this.setState({ SelectedAltitudeMethod: \"Relative\" });\r\n }\r\n else if (value === \"Geoid\") {\r\n this.setState({ SelectedVerticalDatum: \"Geoid\" });\r\n this.setState({ SelectedAltitudeMethod: \"Absolute\" });\r\n }\r\n else if (value === \"Ellipsoid\") {\r\n this.setState({ SelectedVerticalDatum: \"Ellipsoid\" });\r\n this.setState({ SelectedAltitudeMethod: \"Absolute\" });\r\n }\r\n \r\n }\r\n\r\n handleIsLoading = (value) => {\r\n this.setState({ isLoading: value});\r\n }\r\n\r\n getImgFromUrl = () =>{\r\n var queryParams = this.state.queryParams;\r\n var imgUrl = \"\"\r\n Object.keys(queryParams).forEach(key => {\r\n if(key == \"customerImg\"){\r\n imgUrl = queryParams[key];\r\n }\r\n })\r\n return imgUrl;\r\n }\r\n\r\n getPMCloudData(packageId) {\r\n fetch(process.env.REACT_APP_API_URL + \"GetPMCloudData\", {\r\n method: \"POST\",\r\n credentials: \"include\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n },\r\n body: JSON.stringify({\r\n packageId: packageId\r\n }),\r\n })\r\n .then((res) => res.json())\r\n .then((result) => {\r\n if (result !== undefined && result.Result !== undefined && result.Result.toString().toLowerCase() === \"success\") { // If succeded\r\n this.setState({ \r\n GPAmount: result.GPAmount,\r\n userEmail: result.Email,\r\n endpoint_id: result.endpoint_id,\r\n company: result.Company\r\n });\r\n if(result.endpoint_id != \"\"){\r\n this.getEndpointParamsById(result.endpoint_id);\r\n this.props.handleUpdates({\r\n customerLogoUrl: this.getImgFromUrl()\r\n })\r\n }else{\r\n this.setState({ isLoading: false });\r\n this.props.handleUpdates({\r\n customerLogoUrl: \"\"\r\n })\r\n }\r\n }\r\n else {\r\n if (result.ErrorMessage !== \"\")\r\n this.setState({ fatalError: result.ErrorMessage, isLoading: false });\r\n }\r\n })\r\n .catch((error) => {\r\n this.setState({ isLoading: false });\r\n this.props.handleServerError(true);\r\n console.error(error);\r\n });\r\n }\r\n\r\n formatBytes(bytes, decimals = 2) {\r\n if (bytes === 0) return '0 Bytes';\r\n\r\n const k = 1024;\r\n const dm = decimals < 0 ? 0 : decimals;\r\n const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\r\n\r\n const i = Math.floor(Math.log(bytes) / Math.log(k));\r\n\r\n return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i];\r\n }\r\n\r\n CheckDuplicateFileNames = (filePath) => {\r\n if (this.state.acceptedPhotosDictionary[filePath.toLowerCase()] !== undefined) {\r\n return true;\r\n\r\n }\r\n return false;\r\n }\r\n\r\n AddAcceptedPhotos = (acceptedPhotos, acceptedPhotosDictionary, imagesSize, RequiredGP) => {\r\n var acceptedPhotosDictionaryTemp = Object.assign(this.state.acceptedPhotosDictionary, acceptedPhotosDictionary);\r\n\r\n this.setState(prevState => ({\r\n acceptedPhotos: this.state.acceptedPhotos.concat(acceptedPhotos),\r\n acceptedPhotosDictionary: acceptedPhotosDictionaryTemp,\r\n imagesSize: this.state.imagesSize + imagesSize,\r\n RequiredGP: this.state.RequiredGP + RequiredGP\r\n }));\r\n\r\n\r\n //console.log(this.state.acceptedPhotosDictionary);\r\n };\r\n\r\n RemoveAcceptedPhotos = () => {\r\n this.setState({ acceptedPhotos: [] });\r\n this.setState({ acceptedPhotosDictionary: {}});\r\n this.setState({imagesSize: 0});\r\n this.setState({RequiredGP: 0});\r\n }\r\n\r\n checkMovingFromPhaseItoPhaseII = () => {\r\n if (this.state.projectName !== \"\" && (this.state.acceptedPhotos === undefined || (this.state.acceptedPhotos !== undefined && this.state.acceptedPhotos.length > this.state.MaximumNumOfPhotos)))\r\n return intl.get(\"PM_New_Project_Maximum_Photos\", {numOfPhotosRequired: this.state.MaximumNumOfPhotos});\r\n if (this.state.acceptedPhotos !== undefined && ((this.state.RequiredGP / this.state.GPAmount) * 100) > 100) {\r\n return intl.get(\"PM_Cloud_PhaseI_No_GP_Available\");\r\n }\r\n if (this.state.projectName === \"\" && this.state.acceptedPhotos !== undefined && this.state.acceptedPhotos.length >= this.state.MinimumNumOfPhotos)\r\n return intl.get(\"PM_New_Project_Project_Name_Is_Missing\");\r\n if (this.state.projectName !== \"\") {\r\n if (this.state.projectName.length > 32) {\r\n return intl.get(\"PM_Cloud_PhaseI_Error_Maximum_Characters\");\r\n }\r\n let pattern = /^[\\w\\-]{1,32}$/;\r\n var match = pattern.exec(this.state.projectName);\r\n if (match == null) {\r\n return intl.get(\"PM_New_Project_Name_Illegal_Characters\");\r\n }\r\n }\r\n if (this.state.projectName !== \"\" && (this.state.acceptedPhotos === undefined || (this.state.acceptedPhotos !== undefined && this.state.acceptedPhotos.length < this.state.MinimumNumOfPhotos)))\r\n return intl.get(\"PM_New_Project_Not_Enough_Photos\", {numOfPhotosRequired: this.state.MinimumNumOfPhotos});\r\n if (this.state.projectName !== \"\" && this.state.acceptedPhotos !== undefined && this.state.acceptedPhotos.length >= this.state.MinimumNumOfPhotos && this.state.acceptedPhotos.length <= this.state.MaximumNumOfPhotos)\r\n return \"\"\r\n return intl.get(\"PM_Cloud_PhaseI_Error_Required_Params\");\r\n }\r\n\r\n checkMovingFromPhaseIItoPhaseIII = () => {\r\n if (this.state.SelectedPodOutputs !== \"\" \r\n && this.state.IsProjectAccessToEveryone !== undefined \r\n && this.state.isGPSAccuracyRTK_PPK !== undefined \r\n && this.state.isCaptureSceneWideArea !== undefined \r\n && this.state.SelectedVerticalDatum \r\n && this.state.SelectedAltitudeMethod){\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n startUploading = () => {\r\n if(this.state.skipSteps){\r\n this.setState({isLoading: true});\r\n }\r\n this.setState({startProjectCounter: undefined});\r\n controller = new AbortController();\r\n signal = controller.signal;\r\n fetch(process.env.REACT_APP_API_URL + \"InitPMProject\", {\r\n method: \"POST\",\r\n credentials: \"include\",\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({\r\n \"packageId\": this.state.packageId,\r\n \"userIdentifier\": this.state.projectName,\r\n \"buildType\": this.state.SelectedPodOutputs,\r\n \"publishPermissions\": this.state.IsProjectAccessToEveryone ? 'all' : 'site',\r\n \"gpsAccuracy\": this.state.isGPSAccuracyRTK_PPK ? 'reliable' : 'standard',\r\n \"capturedScene\": this.state.isCaptureSceneWideArea ? 'wideAreaMapping' : 'closeRangeObject', \r\n \"verticalDatum\": this.state.SelectedVerticalDatum,\r\n \"altitudeMethod\": this.state.SelectedAltitudeMethod,\r\n \"gpRequested\": this.state.RequiredGP,\r\n \"filesCount\": this.state.acceptedPhotos.length,\r\n \"filesTotalSize\": this.state.imagesSize,\r\n \"skipSteps\": this.state.skipSteps\r\n }),\r\n })\r\n .then((res) => res.json())\r\n .then((result) => {\r\n if (result.Result.toLowerCase() === 'success') {\r\n setTimeout(() => {\r\n this.setState({runId: result.Data.runId});\r\n if (this.state.isAborted === \"Aborting\") {\r\n this.setState({isAborted: \"Aborted\", isLoading: false});\r\n return;\r\n }\r\n \r\n this.getPresignedURLs(result.Data.runId, this.state.acceptedPhotos);\r\n }, 0);\r\n }\r\n else if (result.Result.toLowerCase() === \"fail\") {\r\n this.setState({errorMessageString: result.ErrorMessage, isLoading: false});\r\n this.setPageNumer(6);\r\n console.error(result.ErrorMessage);\r\n }\r\n })\r\n .catch(error=> {\r\n console.log(error);\r\n this.setState({\r\n errorMessageString: intl.get('PM_Cloud_ErrorMessagesPage_Generic_Error_Message'),\r\n isLoading: false\r\n });\r\n this.setPageNumer(6);\r\n })\r\n }\r\n\r\n getPresignedURLs = async (runId, files) => {\r\n\r\n var groupSize = 100;\r\n var fileGroups = [];\r\n\r\n this.setState({ startProjectCounter: files.length });\r\n for (let i = 0; i < files.length;) {\r\n fileGroups.push(files.slice(i, i + groupSize));\r\n i = i + groupSize;\r\n }\r\n\r\n if (this.state.progressChunk === 0) {\r\n //var progressChunk = (100 / (files.length + fileGroups.length) < 1) ? (100 / (files.length + fileGroups.length)).toFixed(2) : Math.ceil(100 / (files.length + fileGroups.length))\r\n this.setState({ progressChunk: 100 / (files.length + fileGroups.length) });\r\n }\r\n\r\n if(fileGroups.length == 0){\r\n this.startPMProject(runId);\r\n return;\r\n }\r\n\r\n for (let i = 0; i < fileGroups.length; i++) {\r\n\r\n let tempArray = fileGroups[i];\r\n let arrFilePaths = [];\r\n\r\n for (let j = 0; j < tempArray.length; j++) {\r\n arrFilePaths.push(tempArray[j].path.replace(/^[\\/\\\\]+/, ''));\r\n }\r\n\r\n let inputData = {\r\n runId: runId,\r\n fileNames: arrFilePaths\r\n };\r\n\r\n this.setState({ progressState: parseFloat(this.state.progressState) + parseFloat(this.state.progressChunk) });\r\n\r\n await fetch(process.env.REACT_APP_API_URL + \"GetPreSignedURLs\", {\r\n method: 'POST',\r\n credentials: \"include\",\r\n signal: signal,\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify(inputData)\r\n })\r\n .then(res => res.json())\r\n .then(async (result) => {\r\n if (result.Result.toLowerCase() == 'success') {\r\n await this.uploadFiles(files, result.Data.fileToURL, runId);\r\n }\r\n else if(result.Result.toLowerCase() == 'fail') {\r\n this.setState({errorMessageString: result.ErrorMessage});\r\n this.setPageNumer(6);\r\n }\r\n })\r\n .catch(error => {\r\n console.error(error);\r\n this.setState({errorMessageString: intl.get('PM_Cloud_ErrorMessagesPage_Generic_Error_Message')});\r\n this.setPageNumer(6);\r\n });\r\n\r\n if (this.state.isAborted === \"Aborting\") {\r\n this.setState({ isAborted: \"Aborted\" });\r\n break;\r\n }\r\n }\r\n }\r\n\r\n uploadFiles = async (files, fileToURL, runId) => {\r\n\r\n var arrRequests = [];\r\n for (let i = 0; i < files.length; i++) {\r\n var filePath = files[i].path.replace(/^[\\/\\\\]+/, '');\r\n if (fileToURL[filePath]) {\r\n\r\n const url = fileToURL[filePath];\r\n\r\n arrRequests.push(fetch(url, {\r\n method: 'PUT',\r\n body: files[i],\r\n signal: signal,\r\n })\r\n .then(res => res.text())\r\n .then(data => {\r\n this.setState({ startProjectCounter: this.state.startProjectCounter - 1 });\r\n var newProgressState = parseFloat(this.state.progressState) + parseFloat(this.state.progressChunk);\r\n if (newProgressState >= 99)\r\n this.setState({ progressState: 99 });\r\n else this.setState({ progressState: newProgressState });\r\n\r\n if (this.state.startProjectCounter === 0) { // it means that all the files are uploaded successfully\r\n this.startPMProject(runId);\r\n }\r\n })\r\n .catch((error) => {\r\n if (error.code === 20 || error.name === \"AbortError\")\r\n console.log(error);\r\n else console.error(error);\r\n }));\r\n\r\n if (this.state.isAborted == \"Aborting\") {\r\n this.setState({ isAborted: \"Aborted\" });\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return Promise.all(arrRequests);\r\n }\r\n\r\n startPMProject = (runId) => {\r\n fetch(process.env.REACT_APP_API_URL + \"StartPMProject\", {\r\n method: 'POST',\r\n credentials: \"include\",\r\n signal: signal,\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({\r\n runId,\r\n params: this.state.params,\r\n skipSteps: this.state.skipSteps,\r\n podName: this.state.podName,\r\n identifier: this.state.projectName,\r\n endpoint_id: this.state.endpoint_id\r\n }),\r\n })\r\n .then(res => res.json())\r\n .then((result) => {\r\n this.setState({isLoading: false});\r\n if (result.Result.toLowerCase() == 'success') {\r\n this.setState({ progressState: 100 });\r\n this.setState({ phaseNumber: 4 });\r\n }\r\n else {\r\n if (result.Result.toLowerCase() == 'fail' && result.ErrorMessage !== undefined) {\r\n this.setState({errorMessageString: result.ErrorMessage});\r\n this.setPageNumer(6);\r\n }\r\n else {\r\n this.setState({errorMessageString: intl.get('PM_Cloud_ErrorMessagesPage_Generic_Error_Message')});\r\n this.setPageNumer(6);\r\n }\r\n }\r\n })\r\n .catch(error => {\r\n console.error(error);\r\n this.setState({\r\n errorMessageString: intl.get('PM_Cloud_ErrorMessagesPage_Generic_Error_Message'),\r\n isLoading: false\r\n });\r\n this.setPageNumer(6);\r\n })\r\n }\r\n \r\n handleShowAbortDialog = (value) => {\r\n this.setState({ showAbortDialog: value});\r\n }\r\n\r\n handleAbortUploading = () => {\r\n controller.abort();\r\n fetch(process.env.REACT_APP_API_URL + \"AbortPMProject\", {\r\n method: 'POST',\r\n credentials: \"include\",\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({\r\n runId: this.state.runId,\r\n }),\r\n })\r\n .then(res => res.json())\r\n .then((result) => {\r\n if (result.Result) {\r\n if (result.Result.toLowerCase() == 'success') {\r\n this.setPageNumer(5);\r\n }\r\n else if (result.Result.toLowerCase() == 'fail') {\r\n console.log(result.ErrorMessage);\r\n this.setPageNumer(5);\r\n }\r\n }\r\n })\r\n .catch(error => {\r\n console.error(error);\r\n this.setPageNumer(5);\r\n })\r\n \r\n }\r\n\r\n handleUpdates = (params) => { \r\n this.setState(params);\r\n }\r\n\r\n render() {\r\n return (\r\n <div>\r\n <Router>\r\n {this.state.fatalError ?\r\n <div id=\"fatalError\">\r\n <h3>\r\n {this.state.fatalError}\r\n </h3>\r\n </div>\r\n :\r\n this.state.isLoading ? \r\n <Dialog\r\n open={this.state.isLoading}\r\n aria-labelledby=\"form-dialog-title align-center\"\r\n >\r\n <DialogContent>\r\n <CircularProgress size={60}/>\r\n </DialogContent>\r\n </Dialog>\r\n :\r\n <React.Fragment>\r\n <div className=\"container accountContainer cloudProcessingContainer\">\r\n {\r\n ((this.state.phaseNumber === 1 && this.state.endpoint_id && this.state.skipSteps) \r\n || (this.state.phaseNumber === 2 && this.state.endpoint_id)) ? \r\n <PhaseEndpoint\r\n params={this.state.params}\r\n endpoint_id={this.state.endpoint_id}\r\n startUploading={this.startUploading}\r\n runId={this.state.runId}\r\n startPMProject={this.startPMProject}\r\n handleUpdates={this.handleUpdates}\r\n projectName={this.state.projectName}\r\n skipSteps={this.state.skipSteps}\r\n handleProjectName={this.handleProjectName}\r\n checkMovingFromPhaseIItoPhaseIII={this.checkMovingFromPhaseIItoPhaseIII}\r\n setPageNumer={this.setPageNumer}\r\n isSubLoginType={this.props.isSubLoginType}\r\n company={this.state.company}\r\n />\r\n :\r\n this.state.phaseNumber === 1 ?\r\n <PhaseI \r\n setPageNumer={this.setPageNumer} \r\n projectName={this.state.projectName} \r\n handleProjectName={this.handleProjectName} \r\n acceptedPhotos={this.state.acceptedPhotos} \r\n AddAcceptedPhotos={this.AddAcceptedPhotos} \r\n CheckDuplicateFileNames={this.CheckDuplicateFileNames} \r\n RemoveAcceptedPhotos={this.RemoveAcceptedPhotos} \r\n handleErrorMessage={this.handleErrorMessage} \r\n GPAmount={this.state.GPAmount} \r\n formatBytes={this.formatBytes} \r\n RequiredGP={this.state.RequiredGP} \r\n imagesSize={this.state.imagesSize} \r\n checkMovingFromPhaseItoPhaseII={this.checkMovingFromPhaseItoPhaseII} \r\n MinimumNumOfPhotos={this.state.MinimumNumOfPhotos} \r\n isLoading={this.state.isLoading} \r\n handleIsLoading={this.handleIsLoading}\r\n endpoint_id={this.state.endpoint_id}\r\n isSubLoginType={this.props.isSubLoginType}\r\n company={this.state.company}\r\n />\r\n : (this.state.phaseNumber === 2) ?\r\n <PhaseII \r\n setPageNumer={this.setPageNumer} \r\n projectName={this.state.projectName} \r\n acceptedPhotos={this.state.acceptedPhotos} \r\n handleAddSelectedPhotoMeshOutputs={this.handleAddSelectedPhotoMeshOutputs} \r\n handleRemoveSelectedPhotoMeshOutputs={this.handleRemoveSelectedPhotoMeshOutputs} \r\n SelectedPodOutputs={this.state.SelectedPodOutputs} \r\n handleIsProjectAccessToEveryone={this.handleIsProjectAccessToEveryone} \r\n IsProjectAccessToEveryone={this.state.IsProjectAccessToEveryone} \r\n handleIsGPSAccuracy={this.handleIsGPSAccuracy} \r\n handleCapturedSceneIsWideArea={this.handleCapturedSceneIsWideArea} \r\n OutputFormatThreeD={this.state.OutputFormatThreeD} \r\n OutputFormatTwoD={this.state.OutputFormatTwoD} \r\n SelectedVerticalDatum={this.state.SelectedVerticalDatum} \r\n handleAltitudeMethod={this.handleAltitudeMethod} \r\n handlePhaseIIImageClassName={this.handlePhaseIIImageClassName} \r\n image1ClassName={this.state.image1ClassName} \r\n image2ClassName={this.state.image2ClassName} \r\n image3ClassName={this.state.image3ClassName} \r\n image4ClassName={this.state.image4ClassName} \r\n checkMovingFromPhaseIItoPhaseIII={this.checkMovingFromPhaseIItoPhaseIII}\r\n />\r\n : this.state.phaseNumber === 3 ?\r\n <PhaseIII \r\n setPageNumer={this.setPageNumer} \r\n projectName={this.state.projectName} \r\n acceptedPhotos={this.state.acceptedPhotos} \r\n startUploading={this.startUploading} \r\n progressState={this.state.progressState} \r\n handleShowAbortDialog={this.handleShowAbortDialog} \r\n showAbortDialog={this.state.showAbortDialog} \r\n handleAbortUploading={this.handleAbortUploading}\r\n isSubLoginType={this.props.isSubLoginType}\r\n />\r\n : this.state.phaseNumber === 4 ?\r\n <PhaseIV \r\n setPageNumer={this.setPageNumer}\r\n skipSteps={this.state.skipSteps}\r\n isSubLoginType={this.props.isSubLoginType}\r\n />\r\n : this.state.phaseNumber === 5 ?\r\n <UploadAborted />\r\n : this.state.phaseNumber === 6 ?\r\n <ErrorMessages \r\n errorMessageString={this.state.errorMessageString} \r\n userEmail={this.state.userEmail} \r\n packageId={this.state.packageId}\r\n isSubLoginType={this.props.isSubLoginType}\r\n />\r\n : null}\r\n </div>\r\n </React.Fragment>\r\n }\r\n </Router>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nexport default NewPMProject;","import React, { Component } from \"react\";\r\nimport { Switch, Route, withRouter, Redirect } from \"react-router-dom\";\r\nimport SignIn from \"./signIn\";\r\nimport SignUp from \"./components/signUp\";\r\nimport Account from \"./components/account\";\r\nimport NotFound from \"./containers/NotFound\";\r\nimport AuthenticatedRoute from \"./containers/AuthenticatedRoute\";\r\nimport UnauthenticatedRoute from \"./containers/UnauthenticatedRoute\";\r\nimport ForgotPassword from \"./components/forgotPassword\";\r\nimport ContactSkyline from \"./components/contactSkyline\";\r\nimport Pricing from \"./components/pricing\";\r\nimport ResetPassword from \"./components/resetPassword\";\r\nimport ChangePassword from \"./components/changePassword\";\r\nimport PurchaseSucceeded from \"./components/succefullyPurchased\";\r\nimport InternalServerError from \"./containers/InternalServerError\";\r\nimport ContactUs from \"./components/contactUs\";\r\nimport AtlasUs from \"./components/atlasUs\";\r\nimport GettingStarted from \"./components/gettingStarted\";\r\nimport LosAngeles from \"./components/losAngeles\";\r\nimport GettingStartedProducts from \"./components/gettingStartedProducts\";\r\nimport GettingStartedUploads from \"./components/gettingStartedUploads\";\r\nimport UAVPricing from \"./components/UAVPackage/pricing\";\r\nimport UserPrivacyPreferences from \"./components/updateUserPreferences\";\r\nimport DeleteAccount from \"./components/deleteAccount\";\r\nimport NewPMProject from \"./components/PMAutomation/newPMProject\";\r\n\r\nfunction Menu(props) {\r\n //const isLoggedIn = props.isLoggedIn;\r\n return <Redirect to=\"/account\" props={props} />;\r\n}\r\n\r\nclass MainCore extends Component {\r\n state = {};\r\n\r\n constructor(props) {\r\n super(props);\r\n }\r\n\r\n render() {\r\n const childProps = {\r\n isLoggedIn: (this.props.isSubLoginType) ? false : this.props.isLoggedIn,\r\n userName: this.props.email,\r\n firstName: this.props.firstName,\r\n lastName: this.props.lastName,\r\n customerId: this.props.customerId,\r\n userHasAuthenticated: this.props.userHasAuthenticated,\r\n handleServerError: this.props.handleServerError,\r\n handleUpdates: this.props.handleUpdates,\r\n isSubLoginType: this.props.isSubLoginType,\r\n customerLogoUrl: this.props.customerLogoUrl\r\n };\r\n return (\r\n <Switch>\r\n <Route exact path=\"/\" component={Menu} props={childProps} />\r\n <UnauthenticatedRoute\r\n exact\r\n path=\"/signIn\"\r\n component={SignIn}\r\n props={childProps}\r\n />\r\n <AuthenticatedRoute\r\n exact\r\n path=\"/account/changePassword\"\r\n component={ChangePassword}\r\n props={childProps}\r\n />\r\n <AuthenticatedRoute\r\n exact\r\n path=\"/account/privacy\"\r\n component={UserPrivacyPreferences}\r\n props={childProps}\r\n />\r\n <AuthenticatedRoute\r\n exact\r\n path=\"/account/deleteAccount\"\r\n component={DeleteAccount}\r\n props={childProps}\r\n />\r\n <AuthenticatedRoute\r\n exact\r\n path=\"/account/:packageId?/:productName?\"\r\n component={Account}\r\n props={childProps}\r\n />\r\n <AuthenticatedRoute\r\n exact\r\n path=\"/PMProjects/newPMProject\"\r\n component={NewPMProject}\r\n props={childProps}\r\n />\r\n <Route\r\n exact\r\n path=\"/atlasUs/pricing\"\r\n render={() => <Pricing props={this.props} />}\r\n />\r\n {/* <Route\r\n exact\r\n path=\"/overview\"\r\n render={() => <AtlasUs props={this.props} />}\r\n /> */}\r\n <Route\r\n exact\r\n path=\"/atlasUs/Overview\"\r\n render={() => <AtlasUs props={this.props} />}\r\n />\r\n <Route\r\n exact\r\n path=\"/atlasUs/LosAngeles\"\r\n render={() => <LosAngeles props={this.props} />}\r\n />\r\n <Route\r\n exact\r\n path=\"/gettingStarted\"\r\n render={() => <GettingStarted props={childProps} />}\r\n />\r\n <Route\r\n exact\r\n path=\"/GettingStartedProducts\"\r\n render={() => <GettingStartedProducts props={childProps} />}\r\n />\r\n <Route\r\n exact\r\n path=\"/GettingStartedUploads\"\r\n render={() => <GettingStartedUploads props={childProps} />}\r\n />\r\n <Route\r\n exact\r\n path=\"/forgotPassword\"\r\n component={ForgotPassword}\r\n props={childProps}\r\n />\r\n <Route\r\n exact\r\n path=\"/PurchaseSucceeded\"\r\n render={() => <PurchaseSucceeded props={childProps} />}\r\n />\r\n {!this.props.isSubLoginType ?\r\n <Route\r\n exact\r\n path=\"/resetPassword\"\r\n component={ResetPassword}\r\n props={childProps}\r\n />\r\n : null\r\n }\r\n <Route\r\n exact\r\n path=\"/contactUs\"\r\n render={() => <ContactUs props={childProps} />}\r\n />\r\n <Route\r\n exact\r\n path=\"/UAVPackages/pricing\"\r\n render={() => <UAVPricing props={childProps} />}\r\n />\r\n <Route\r\n exact\r\n component={InternalServerError}\r\n path=\"/internalServerError\"\r\n props={childProps}\r\n />\r\n <Route\r\n exact\r\n path=\"/contactSkyline\"\r\n render={() => <ContactSkyline props={childProps} />} \r\n />\r\n <Route exact component={NotFound} props={childProps} />\r\n </Switch>\r\n );\r\n //<Menu isLoggedIn={this.props.isLoggedIn} />\r\n }\r\n}\r\n\r\nexport default withRouter(MainCore);\r\n","import React, { Component } from \"react\";\r\nimport intl from \"react-intl-universal\";\r\n\r\nconst Footer = () => {\r\n return (\r\n <footer className=\"footer fixed-bottom\">\r\n <div className=\"container text-center\">\r\n <span className=\"navbar-text col-md-12 col-sm-12 col-xs-12\">\r\n © {new Date().getFullYear()} {intl.get(\"StatusBar_Copyright\")} | <a href=\"https://www.skylinesoft.com/privacy-policy\" target=\"_blank\" > Privacy Policy </a> | <a href=\"https://www.skylinesoft.com/technical-support\" target=\"_blank\" > Support </a> | {process.env.REACT_APP_SG_CLOUD_VERSION}\r\n </span>\r\n </div>\r\n </footer>\r\n );\r\n};\r\n\r\nexport default Footer;\r\n","import React, { Component } from \"react\";\r\nimport { withRouter, Route } from \"react-router-dom\";\r\nimport Header from \"./header\";\r\nimport MainCore from \"./core\";\r\nimport Footer from \"./components/footer\";\r\nimport intl from \"react-intl-universal\";\r\nimport \"./mainStyle.css\";\r\nimport \"./app.css\";\r\nimport InternalServerError from \"./containers/InternalServerError\";\r\n\r\n// locale data\r\nconst locales = {\r\n \"en-US\": require(\"./locales/en-US.json\"),\r\n // \"zh-CN\": require(\"./locales/zh-CN.js\")\r\n};\r\n\r\nclass App extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n initLocalizeDone: false,\r\n isLoggedIn: false,\r\n isLoading: true,\r\n firstName: \"\",\r\n lastName: \"\",\r\n email: \"\",\r\n customerId: \"\",\r\n hasServerError: false,\r\n showCookiesBanner: true,\r\n classNavBarName: \"navbar navbar-expand-lg navbar-light\",\r\n navLogo: \"logo\",\r\n isIEorEdge: false,\r\n pathname: \"\",\r\n showHeader: true,\r\n isSubLoginType: false,\r\n customerLogoUrl: \"\"\r\n };\r\n }\r\n componentDidMount() {\r\n this.loadLocales();\r\n this.setState({ pathname: window.location.pathname });\r\n\r\n // Internet Explorer 6-11\r\n const isIE = /*@cc_on!@*/ false || !!document.documentMode;\r\n\r\n // Edge 20+\r\n const isEdge = !isIE && !!window.StyleMedia;\r\n this.setState({ isIEorEdge: isIE || isEdge });\r\n\r\n if (isIE || isEdge) return;\r\n\r\n // checking for a cookie in the url query - then, logging-in using this cookie\r\n var matchCookieInQuery = window.location.search.match(/[?&]cookie[=]([^&#]+)/i);\r\n\r\n if (matchCookieInQuery != null)\r\n this.loginWithCookie(matchCookieInQuery[1]); // logging-in with cookie and then continue with \"checkLogin()\"\r\n else\r\n this.checkLogin(); \r\n }\r\n\r\n loginWithCookie(cookie) {\r\n fetch(process.env.REACT_APP_API_URL + \"LoginWithCookie\", {\r\n method: \"POST\",\r\n credentials: \"include\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n },\r\n body: JSON.stringify({ Cookie: cookie }),\r\n })\r\n .then((res) => res.json())\r\n .then((result) => {\r\n if (result.Result === \"Success\") {\r\n setTimeout(() => {\r\n this.checkLogin();\r\n }); \r\n }\r\n else {\r\n this.setState({ isLoggedIn: false });\r\n }\r\n })\r\n .catch((error) => {\r\n this.setState({ isLoading: false });\r\n this.handleServerError(true);\r\n console.error(error);\r\n });\r\n }\r\n\r\n checkLogin() {\r\n fetch(process.env.REACT_APP_API_URL + \"checklogin\", {\r\n method: \"POST\",\r\n credentials: \"include\",\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n body: JSON.stringify({}),\r\n })\r\n .then((res) => res.json())\r\n .then((result) => {\r\n var isSubLoginType = (result.SubLoginType == \"EndpointWebGUI\") ? true : false;\r\n if (result.Result === \"Success\") {\r\n this.setState({ isLoggedIn: true });\r\n this.setState({ firstName: result.FirstName });\r\n this.setState({ lastName: result.LastName });\r\n this.setState({ email: result.Username });\r\n this.setState({ customerId: result.CustomerId });\r\n this.setState({ isSubLoginType: isSubLoginType });\r\n } \r\n else {\r\n this.setState({ isLoggedIn: false });\r\n }\r\n this.setState({ isLoading: false });\r\n })\r\n .catch((error) => {\r\n this.setState({ isLoading: false });\r\n this.handleServerError(true);\r\n console.error(error);\r\n });\r\n }\r\n\r\n loadLocales() {\r\n // init method will load CLDR locale data according to currentLocale\r\n // react-intl-universal is singleton, so you should init it only once in your app\r\n intl\r\n .init({\r\n currentLocale: \"en-US\", // TODO: determine locale here\r\n locales,\r\n })\r\n .then(() => {\r\n // After loading CLDR locale data, start to render\r\n this.setState({ initLocalizeDone: true });\r\n });\r\n }\r\n\r\n AddcookieConsentToCookies = () => {\r\n localStorage[\"cookiesAgreed\"] = 1;\r\n this.setState({ showCookiesBanner: false });\r\n };\r\n\r\n userHasAuthenticated = (\r\n authenticated,\r\n firstName,\r\n lastName,\r\n username,\r\n customerId,\r\n isSubLoginType\r\n ) => {\r\n this.setState({ isLoggedIn: authenticated });\r\n if (authenticated) {\r\n this.setState({ firstName: firstName });\r\n this.setState({ lastName: lastName });\r\n this.setState({ email: username });\r\n this.setState({ customerId: customerId });\r\n this.setState({ isSubLoginType: isSubLoginType });\r\n } else {\r\n this.setState({ firstName: \"\" });\r\n this.setState({ lastName: \"\" });\r\n this.setState({ email: \"\" });\r\n this.setState({ isSubLoginType: false });\r\n }\r\n };\r\n\r\n handleServerError = (isError) => {\r\n this.setState({ hasServerError: isError });\r\n };\r\n\r\n handleLoginClick = () => {\r\n return <Route to=\"/account\" props={this.state} />;\r\n };\r\n\r\n setHeaderClassName = (isTopFixed, isOnTop) => {\r\n if (isTopFixed) {\r\n if (isOnTop) {\r\n this.setState({\r\n classNavBarName:\r\n \"navFixedHeader navbar navbar-expand-lg navbar-light fixed-top\",\r\n });\r\n this.setState({ navLogo: \"lightLogo\" });\r\n } else {\r\n this.setState({\r\n classNavBarName:\r\n \"navbar navbar-expand-lg navbar-light fixed-top\",\r\n });\r\n this.setState({ navLogo: \"logo\" });\r\n }\r\n } else {\r\n this.setState({\r\n classNavBarName: \"navbar navbar-expand-lg navbar-light\",\r\n });\r\n this.setState({ navLogo: \"logo\" });\r\n }\r\n };\r\n\r\n handleUpdates = (params) => { \r\n this.setState(params);\r\n }\r\n\r\n render() {\r\n if (this.state.isIEorEdge) {\r\n return (\r\n <div className=\"NotFound\">\r\n <h3>\r\n This browser is not supported. Use one of the following browsers\r\n instead: Chrome, FireFox, Opera or Chromium Edge.\r\n </h3>\r\n </div>\r\n );\r\n }\r\n\r\n if (this.state.isLoading) {\r\n return (\r\n <div className=\"cssload-loader\">\r\n <div className=\"cssload-square cssload-square--main\">\r\n <div className=\"cssload-square cssload-square--mini\" />\r\n <div className=\"cssload-square cssload-square--mini\" />\r\n <div className=\"cssload-square cssload-square--mini\" />\r\n <div className=\"cssload-square cssload-square--mini\" />\r\n <div className=\"cssload-square cssload-square--mini\" />\r\n <div className=\"cssload-square cssload-square--mini\" />\r\n <div className=\"cssload-square cssload-square--mini\" />\r\n <div className=\"cssload-square cssload-square--mini\" />\r\n <div className=\"cssload-square cssload-square--mini\" />\r\n <div className=\"cssload-square cssload-square--mini\" />\r\n <div className=\"cssload-square cssload-square--mini\" />\r\n <div className=\"cssload-square cssload-square--mini\" />\r\n <div className=\"cssload-square cssload-square--mini\" />\r\n <div className=\"cssload-square cssload-square--mini\" />\r\n <div className=\"cssload-square cssload-square--mini\" />\r\n <div className=\"cssload-square cssload-square--mini\" />\r\n </div>\r\n </div>\r\n );\r\n // return <div className=\"loader\" />;\r\n }\r\n if (this.state.hasServerError) {\r\n return <InternalServerError />;\r\n }\r\n return (\r\n this.state.initLocalizeDone && (\r\n <div id=\"appMainDivId\">\r\n {this.state.showCookiesBanner &&\r\n localStorage[\"cookiesAgreed\"] === undefined ? (\r\n <div id=\"cookieConsent\">\r\n <div\r\n id=\"closeCookieConsent\"\r\n onClick={(e) => {\r\n this.setState({ showCookiesBanner: false });\r\n }}\r\n >\r\n x\r\n </div>\r\n We use cookies to analyze traffic and provide you with better\r\n content. By continuing to use our site, you agree to the use of\r\n cookie technology.\r\n <a href=\"http://www.skylineglobe.com/SkylineGlobe/corporate/Legal/Terms.aspx\">\r\n Read more\r\n </a>\r\n .\r\n <a\r\n className=\"cookieConsentOK\"\r\n onClick={this.AddcookieConsentToCookies}\r\n >\r\n I agree\r\n </a>\r\n </div>\r\n ) : null}\r\n {this.state.showHeader ? \r\n <Header\r\n classNavBarName={this.state.classNavBarName}\r\n navLogo={this.state.navLogo}\r\n isLoggedIn={this.state.isLoggedIn}\r\n userHasAuthenticated={this.userHasAuthenticated}\r\n handleServerError={this.handleServerError}\r\n onClick={this.handleLoginClick}\r\n firstName={this.state.firstName}\r\n lastName={this.state.lastName}\r\n userName={this.state.email}\r\n pathname={this.state.pathname}\r\n props={this.props}\r\n customerLogoUrl={this.state.customerLogoUrl}\r\n isSubLoginType={this.state.isSubLoginType}\r\n />\r\n : null}\r\n <div className=\"main-body\">\r\n <MainCore\r\n isLoggedIn={this.state.isLoggedIn}\r\n setHeaderClassName={this.setHeaderClassName}\r\n userHasAuthenticated={this.userHasAuthenticated}\r\n firstName={this.state.firstName}\r\n lastName={this.state.lastName}\r\n email={this.state.email}\r\n customerId={this.state.customerId}\r\n handleServerError={this.handleServerError}\r\n handleUpdates={this.handleUpdates}\r\n isSubLoginType={this.state.isSubLoginType}\r\n customerLogoUrl={this.state.customerLogoUrl}\r\n />\r\n </div>\r\n {this.state.isSubLoginType ? \r\n null\r\n : \r\n <Footer />\r\n }\r\n </div>\r\n )\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(App);\r\n","import \"core-js/es6/map\";\r\nimport \"core-js/es6/set\";\r\nimport \"isomorphic-fetch\";\r\nimport \"es6-promise-promise\";\r\nimport \"raf/polyfill\";\r\nimport React from \"react\";\r\nimport ReactDom from \"react-dom\";\r\nimport { BrowserRouter as Router } from \"react-router-dom\";\r\nimport \"./index.css\";\r\nimport App from \"./app\";\r\nimport \"./css/glyphicons.css\";\r\nimport ReactGA from \"react-ga\";\r\nReactGA.initialize(\"UA-137595089-1\");\r\nReactGA.pageview(window.location.pathname + window.location.search);\r\n\r\nReactDom.render(\r\n <Router basename={\"/store\"}>\r\n <App />\r\n </Router>,\r\n document.getElementById(\"root\")\r\n);\r\n"],"sourceRoot":""}