{"version":3,"sources":["Assets/Images/gray-pin.png","Assets/Images/home-icon-circle.png","Assets/Images/blue-pin.png","Assets/Images/orange-pin.png","Assets/Images/orange-home.png","Views/ActiveReports/active-report sync /^/.*$","Views/ActiveReports/active-report/sample-activity-report-aus.pdf","Views/ActiveReports/active-report/sample-activity-report-eur.pdf","Views/ActiveReports/active-report/sample-activity-report-nz.pdf","Views/ActiveReports/active-report/sample-activity-report-uk.pdf","utils/config.js","Views/Authendication/Authendication.js","Views/HelpTextPopup/HelpTextPopup.js","Views/AddMarketcmpopup/AddMarketcmpopup.js","Views/AddMarketcmpopup/AddMarketcmpopupGmap.js","Views/MarketProfile/MarketProfile.js","utils/common.js","Views/MyMarket/MyMarket.js","Views/Home/Home.js","Views/Login/Login.js","Views/MyAccount/MyAccount.js","Views/QuoteMarket/QuoteMarket.js","Views/MyAccount/SubscriptionDetails.js","Views/Requesttrial/Requesttrial.js","Views/BillingHistory/BillingHistory.js","Views/MissingCompetitor/MissingCompetitor.js","Views/MarketDashboard/Card.js","Views/MarketDashboard/MarketDashboard.js","Views/MarketDashboardHeader/MarketDashboardHeader.js","Views/CompetitorStore/CompetitorStore.js","Views/PricingVolatility/PricingVolatility.js","Views/CommonSqFtInfoPopup/CommonSqFtInfoPopup.js","Views/StoreStreetView/ReactStreetview.js","Views/StoreStreetView/StoreStreetView.js","Views/CompetitorOverview/CompOverview.js","Views/CompetitorOverview/CompOverviewGmap.js","Views/AllUnitPrize/AllUnitPrize.js","Views/MarketScore/MarketScore.js","Views/InventoryAvailability/InventoryAvailability.js","Views/MarketSaturation/MarketSaturation.js","Views/CurrentPricing/CurrentPricing.js","Views/MarketInventoryAnalysis/MarketInventoryAnalysis.js","Views/DetailedStoresView/DetailedStoresView.js","Views/MapViews/MapViews.js","Views/MapViews/MapViewsGmap.js","Views/EffectiveRateCal/cells.js","Views/EffectiveRateCal/EffectiveRateCal.js","Views/EffectiveRates/EffectiveRates.js","Views/MarketDashboardViewDetails/ViewDetails.js","Views/ErrorPages/ErrorPage.js","Views/Alert/Alert.js","Views/PdfDownload/MarketDashboardPdf/Card.js","Views/PdfDownload/MarketDashboardPdf/MarketDashboardPdf.js","Views/PdfDownload/InventoryAvailabilityPdf/InventoryAvailabilityPdf.js","Views/PdfDownload/AllUnitPrizePdf/AllUnitPrizePdf.js","Views/PdfDownload/PricingVolatilityPdf/PricingVolatilityPdf.js","Views/PdfDownload/CurrentPricingPdf/CurrentPricingPdf.js","Views/PdfDownload/MarketInventoryAnalysisPdf/MarketInventoryAnalysisPdf.js","Views/PdfDownload/DetailedStoresViewpdf/DetailedStoresViewPdf.js","Views/PdfDownload/CompetitorOverviewPdf/CompOverviewPdf.js","Views/PdfDownload/CompetitorOverviewPdf/CompOverviewGmapPdf.js","Views/PdfDownload/MarketScorePdf/MarketScorePdf.js","Views/PdfDownload/MapViewPdf/MapViewPdf.js","Views/PdfDownload/MapViewPdf/MapViewGmapPdf.js","Views/PdfDownload/EffectiveRatesPdf/EffectiveRatesPdf.js","Views/PdfDownload/PdfDownload.js","Views/AveragePrice/AveragePrice.js","Views/MvpLogin/MvpLogin.js","Views/ActiveReports/ActiveReports.js","Views/CompReports/CompReports.js","Views/ActivityReportPdf/ActivityReportPdf.js","Core/Footer/Footer.js","Core/Header/Header.js","Layouts/DefaultLayout/DefaultLayout.js","Modal/IdleModal.js","Layouts/MarketLayout/MarketLayout.js","Layouts/LoginLayout/LoginLayout.js","Layouts/PdfLayout/PdfLayout.js","Router/RouterLayout.js","Views/DevelopmentListing/developmentListing.js","Router/Router.js","App.js","serviceWorker.js","index.js","Assets/Images/red.png","Assets/Images/table-plus.png","Assets/Images/table-minus.png","Assets/Images/plus.png","Assets/Images/trash.png","Assets/Images/green.png","Assets/Images/duplicate.png","Assets/Images/black-pin.png","Assets/Images/unit-type-images/Alarm.png","Assets/Images/unit-type-images/ClimateControlled.png","Assets/Images/unit-type-images/DoorType.png","Assets/Images/unit-type-images/DriveUp.png","Assets/Images/unit-type-images/Elevator.png","Assets/Images/unit-type-images/HumidityControlled.png","Assets/Images/unit-type-images/OutdoorAccess.png","Assets/Images/unit-type-images/power.png","Assets/Images/down-arrow.png","Assets/Images/reset.png","Assets/Images/edit.png","Assets/Images/unit-type-images/StorageUnit.png","Assets/Images/unit-type-images/apartment.png","Assets/Images/unit-type-images/artstudio.png","Assets/Images/unit-type-images/box.png","Assets/Images/unit-type-images/celltower.png","Assets/Images/unit-type-images/container.png","Assets/Images/unit-type-images/filestorage.png","Assets/Images/unit-type-images/office.png","Assets/Images/unit-type-images/mailbox.png","Assets/Images/unit-type-images/parking.png","Assets/Images/unit-type-images/unit.png","Assets/Images/unit-type-images/warehouse.png","Assets/Images/unit-type-images/winestorage.png","Assets/Images/unit-type-images/workshop.png","Assets/Images/unit-type-images/locker.png","Assets/Images/logo.jpg","Assets/Images/st-logo.png","Assets/Images/btn-arrow.png","Assets/Images/btn-arrow-white.png","Assets/Images/LinkUSLogo.png","Assets/Images/oval1.png","Assets/Images/addnew.png","Assets/Images/excel-download.png","Assets/Images/aus.png","Assets/Images/nz-flag.png","Assets/Images/oval2.png","Assets/Images/oval3.png","Views/ActiveReports/active-report/sample-activity-report-us.pdf","Assets/Images/no-image.jpg","Assets/Images/csv-download.png","Assets/Images/unit-type-images/Covered.png","Assets/Images/unit-type-images/Vehicle.png","Assets/Images/stop_hand.png","Assets/Images/opt-logo.png","Assets/Images/stortrack-logo.png","Assets/Images/email-linkedin.png","Assets/Images/email-fb.png","Assets/Images/email-twitter.png","Assets/Images/phone_icon.png","Assets/Images/uk-country.png","Assets/Images/login-in.png","Assets/Images/signout.png","Assets/Images/flat-triangle.svg","Modal/favicon_new.ico","Modal/favicon_old.ico","Assets/Images/show.png","Assets/Images/unshow.png"],"names":["module","exports","map","webpackContext","req","id","webpackContextResolve","__webpack_require__","o","e","Error","code","keys","Object","resolve","CONFIG","IsMapbox","API_URL","GoogleMapsApiKey","REACT_APP_MAPBOX_TOKEN","STK_URL","OPTZ_URL","STK_SIGNURL","USA_URL","AU_URL","NZ_URL","UK_URL","RegionId","Country_Code","Currency_Symbol","PhoneMaxLength","PhoneMinLength","PhoneRegex","Mail_Support","STK_Homeurl","Mail_Info","MapQuestKey_URL","MapQuestKey","Toll_Free","Sales_Support","Address1","Address2","City","State","PostalCode","Country","MeasurementLabel","MeasurementName","MeasurementShortName","PostalCodevalidation","Website_Text_Footer_Pdf","Website_URL_Footer_Pdf","Phone_Footer_Pdf","Mail_Footer_Pdf","storeNameMaxLimit","MVP_URL","MARKETS_REPORTS_URL","HISTORICAL_REPORTS_URL","ResourcePage","TimeOut_Sec","MatchingCountryCode","Authendication","React","Component","constructor","props","super","this","state","isLoading","curSymb","componentWillMount","setState","componentDidMount","localStorage","clear","data","match","params","authurization","setItem","axios","post","then","res","status","getTokvalues","defaults","headers","common","token","firstName","isPaid","tempNoOfStores","instructionMsg","userType","isManual","createdDate","displayMessage","from","location","pathname","history","push","catch","err","response","StatusCode","myFormRef","reset","sighinerror","Message","render","createElement","className","href","src","stlogo","alt","HelpTextPopup","open","handleClose","bind","handleClickOpen","title","onClick","LiveHelp","aria-label","fontSize","Dialog","aria-labelledby","aria-describedby","DialogTitle","parm","helpTitle","IconButton","CloseIcon","DialogContent","DialogContentText","dangerouslySetInnerHTML","__html","helpContent","circleLine","circleData","layerStyle","type","paint","AddMarketcmpopup","postalCodeValidation","charCode","keyCode","preventDefault","onToggleOpen","isOpen","delayedShowMarker","setTimeout","isMarkerShown","handleMarkerClick","snackHandleclose","event","reason","snackOpen","zipFilterHandleChange","ZipcodeFilter","target","value","filterlookupZipcodeData","zipError","lookupZipcodeData","filter","lookup","toLowerCase","indexOf","length","onShowModal","showModal","cityHandleChange","selectedCityOption","errortext1","coverageType","isSelactCity","isLoading1","UserStoreID","userStoreID","Competitorslist","SearchType","Zone","Radius","Zipcode1","Zipcode2","Zipcode3","CityName","replace","isCoverageZone","getItem","coverageTrackCount","count","removeItem","alert","message","zipHandleChange","selectedZipOption","trackCoverageCount","zipcodeOptionsLength","showComponent","zipcodeOptions","scale","trackCoverageCountRadius","checked","trackedFields","trackedFields1","unTrackedCount","onMarkerClose","showingInfoWindow","getBoundingValues","circle","points","paddingLength","applyToArray","func","array","apply","Math","pointsLong","pointsLat","point","geometry","coordinates","includes","homeLatLng","longitude","latitude","cornersLongLat","min","max","viewport","WebMercatorViewport","width","window","innerWidth","height","innerHeight","fitBounds","padding","top","bottom","left","right","zoom","prevState","transitionDuration","transitionInterpolator","FlyToInterpolator","handleChangePage","page","handleChangePageTrack","pageCount","handleChangePageMTD","pageCountMDT","handleChangeRowsPerPageMTD","10","handleChangeRowsPerPageTrack","handleChangeRowsPerPage","rowsPerPage","onMarkerClick","Number","lngLat","features","ft","layer","selectedMarker","properties","track","isTrack","storeid","storeId","userstid","userStoreId","marker","storeName","lat","lng","address","storeAddress","add","recNum","last","lastIndexOf","s1","substring","s2","selectedPlace","userStr","activeMarker","isTracks","tracked","address1","popupInfoLatlng","handleViewportChange","myMarketData","tooltipOpen","open1","open2","setOpen","StateCountry","activeStep","isDefaultValue","radiusValue","lookupCityData","unzipcodeOptions","marketStoreName","userStorId","trackStorId","storeModal","trackModalData","trackOptions","strOptions","strOptions1","serachTypeval","competitorsData","tabvalue","coordinate","EditStoredata","marketName","addressLine1","addressLine2","city","zipcode","exestineStore","title1","snackMSg","errCard","oldAddress","newAddress","zipCoordinates1","zipCoordinates2","zipCoordinates3","cityCoordinates","searchData","merged","uniqzipcode","coordinates_one","coordinates_one2","StateCountryCount","centerLat","centerLng","zoomValue","trackModal","trackModalClose","ModalClickOpen","handleNext","handleBack","trackhandleClick","upgradeBtn","deleteComp","dummyFn","radiusOnChange","mapRef","createRef","onMapCreated","setOptions","disableDefaultUI","zipcodeClick","zipcodeValue","index","splice","lookupZipcode","lookupCity","selectedCity","label","userstore","stateData","countryData","coverSearchType","searchType","Address","address2","Zipcode","con","stateID","forEach","unshift","countryCode","toString","country","zoneCoverage","charAt","ModalClickOpenCR","lookupZipcode1","onDragEnd","tabhandleChange","newValue","getMapQuestResultCity","zipInput","getMapQuestResultZip","competitor","competitorsList","storeID","isTracked","plus","errortext","Plus","already","result","storenotExist","addressNotFound","errorHandleOpen","addInputData","addMarket","errors","values","btn0","setAttribute","StoreName","Longitude","Latitude","Status","IsExisting","IsConfirm","Website","filterData","removeAttribute","lookupCity1","scalevalue","addCoverage","undefined","btn1","isFirstDisplay","IsMapBox","zipcodevalues","cityvalue","zipcodevalues1","currentStoreDetail","coverage","zoomLevel","radius","Set","competitors","item","zipCode","parseFloat","lon","radiusCal","d2r","PI","rlat","rlng","cos","start","end","i","theta","ey","ex","sin","boundData","closeModal","document","getElementById","click","closeModalAddress","closeModalWebsite","onCountryChange","split","sc_code","trim","countryDetails","showingInfoWindowCity","showingInfoWindowZip","addwebsite","btn3","website","isConfirm","isExisting","stateName","saveCovergae","btn2","trackResponse","userStId","storesid","tra","index1","upgradehandleClick","query","checkZip","timeout","clearTimeout","url","fetch","json","val","resultsCount","searchResults","fields","POSTCODE","shapePoints","exterior","Arr2","Arr3","test","detailss","appendArrays","temp","arguments","n","mergedCoordinates","concatCoord","concat","error","toUpperCase","ADMIN4","CompetitorID","goToMymarket","children","parentMethod","result1","find","get","lookups","statesList","countryList","steps","addMarketData","defaultValues","defaultProps","style","zIndex","align","key","color","Stepper","alternativeLabel","Step","StepLabel","completed","AvForm","onSubmit","model","Label","AvRadioGroup","inline","name","required","AvRadio","customInput","Row","Col","md","AvField","errorMessage","validate","helpMessage","onChange","disabled","selected","pattern","maxLength","onKeyPress","ref","variant","Button","class","DialogActions","autoFocus","marginLeft","FormControlLabel","control","Radio","marginBottom","Slider","defaultValue","valueLabelDisplay","onChangeCommitted","step","marks","fontWeight","lg","textAlign","placeholder","FormGroup","row","zip","Checkbox","isChecked","Select","options","isSearchable","defaultMenuIsOpen","trackedCount","MissingCompetitor","isShowModal","AppBar","position","Tabs","Tab","icon","List","LocationOn","TabContainer","Table","TableHead","TableRow","TableCell","TableBody","slice","compdata","proximity","colSpan","TableFooter","TablePagination","rowsPerPageOptions","onChangePage","onChangeRowsPerPage","ActionsComponent","MyMarketWrapped","MapGL","assign","onViewportChange","mapboxApiAccessToken","mapStyle","onHover","attributionControl","onLoad","mapbox","current","getMap","loadImage","homeIcon","image","addImage","NavigationControl","showCompass","Source","Layer","layout","source","Popup","onClose","trackCount","Link","to","Snackbar","anchorOrigin","vertical","horizontal","maxsnack","autoHideDuration","ContentProps","action","googleMapURL","MyMarket","handleFirstPageButtonClick","handleBackButtonClick","handleNextButtonClick","handleLastPageButtonClick","ceil","classes","theme","tablepaggination","direction","LastPageIcon","FirstPageIcon","KeyboardArrowRight","KeyboardArrowLeft","withStyles","flexShrink","palette","text","secondary","spacing","withTheme","Typography","component","CMap","withScriptjs","withGoogleMap","GoogleMap","onTilesLoaded","setMapFitBounds","defaultZoom","defaultCenter","centerPointDetail","defaultOptions","zoomControl","fullscreenControl","streetViewControl","mapTypeControl","_competitorsData$data","_competitorsData$data2","getbounds","bounds","google","maps","LatLngBounds","loc","LatLng","extend","homeLoc","Fragment","loadingElement","containerElement","mapElement","Marker","orangehome","isMyStore","orangepin","storeStatus","blackpin","bluepin","onMouseOver","InfoWindow","onCloseClick","visible","Circle","center","fillColor","fillOpacity","lat_lng","Polygon","path","strokeColor","strokeOpacity","strokeWeight","MarketProfile","compModal","toggleModal","cancelMissingCompetitor","modal","marPriceProfileData","StrName","focusAfterClose","toggleModalClose","sid","StoreId","console","log","dataLayer","popupName","Modal","backdrop","returnFocusAfterClose","toggle","size","ModalHeader","ModalBody","unitMarketDetail","lastCheckedDate","moment","format","unitLevel","markProfile","spaceType","floor","alarm","Alarm","climateControlled","ClimateControlled","doorType","DoorType","driveUp","DriveUp","elevator","Elevator","humidityControlled","HumidityControlled","outdoorAccess","OutdoorAccess","power","onlinePrice","currencySymbol","isMonthly","onlinePriceLastChanged","regularPrice","regularPriceLastChanged","promo","promoLastChanged","ModalFooter","COMMON","US","AUS","UK","NZ","scrollTo","CustomMyMarket","targetName","isToolTipOpen","myMarketData1","modalMarketStoreId","countlen","ch","delUserStoreId","deleteConfirmModal","editConfirmModal","infoData","snackMsg","downLoadReportModal","downloadStoreID","excelProgress","editMarketName","marketnameeditmodal","isButtonDisabled","sortUpdate","sortUpdateDate","ShowMarketNameSort","ShowAddressSort","sortUpdateComp","sortUpdateAddress","sortUpdateProximity","ShowProxSort","ShowCompSort","addmarketpopup","enableSave","child","handleClickOpenCR","sendTrackApi","refreshHandler","deleteStore","UserStrIdData","delConModal","editConModal","closeConfirmModal","closeEditConfirmModal","editSubAlert","downLoadExcel","submitRabitQueue","editMarketNameModal","cancelmarketEdit","sortFeature","sortPopUp","getName","dataSet","sort","a","b","textA","textB","forceUpdate","strId","marketNameEditSubmit","UserStoreId","MarketName","Notification","requestPermission","origin","Date","s0","getElementsByTagName","async","charset","parentNode","insertBefore","element","removeChild","result2","reportStatus","CallgetStatusReportApi","setInterval","statusReport","componentWillUnmount","clearInterval","id_list","marketDashboard","downLoadExcelPrompt","rep_id","filename","method","responseType","URL","createObjectURL","Blob","link","body","appendChild","popUpData","coordinates1","coordinates2","coordinates3","coordinates4","Breadcrumbs","separator","Paper","xs","opacity","FontAwesomeIcon","faPlus","info","userInfo","billingAddress","faArrowUp","faArrowDown","Tooltip","placement","arrow","category","scope","compsCount","editicon","ActiveReports","isCompStatus","isCompReport","isGreyOut","isActivityReport","isActiveOpen","compRefresh","isFrom","CompReports","isActiveStatus","Dropdown","DropdownToggle","DropdownMenu","DropdownItem","SelectProps","native","addmarket","AddMarketcmpopupGmap","TrackModalPop","trackData","rec_num","centered","Home","phoneKeyPressed","onPhoneChangeML","string","replacedString","valid","exec","phoneErr","phoneFieldBorder","phone","onPhoneChangesML","onPhoneChanges","UserDetail","onPhoneChange","Phone","handleTermsOpen","terms","handleTermsClose","PaymentDetail","emailErr","dialogcnt","stateAbb","total_value","checkItOut","focusValue","checkErr","noofstores","dialogbox2","phoneMaxLength","isFullDiscount","filteredState","showState","modal_toggle","handleChange","formsub_modal_toggle","ValidateCard","handleBlur","checkPayTerms","dialog_typ","modalValid","p_singleMarket","nos","TempNoOfStores","parseInt","multiMarket_price","p_multiMarket","noOfStores","msg","formvalid","cardNumber","SecurityCode","expiry","getPaymonthyear","ExpiryMonth","ExpiryYear","CurrentMonth","getMonth","CurrentYear","getFullYear","substr","handleValidSubmit","formValid","dblclkrest1","dblclkrest2","dblclkrest","UserEmail","Login","RegionID","focus","phoneNumber","countryID","BillingState","validCoupon","sucUser","couponErr","discountTotal","todoTextElem","form","Billing_state","s_code","BillingCountry","stateDetails","BillingCountryCode","regionId","base_total1","TempPlusNoOfStores","priceData","prices","priceInformation","singleMarket","multiMarket","priceList","freetrialhandleClick","CouponApply","CouponCode","couponValid","storeCount","isFixedPrice","discountPercentage","fixedPrice","toFixed","decimalCount","isDiscount","multpleLocationSubmit","fName","lName","company","email","handleClosedb2","resetAllValues","Pricedet","decPricedet","subPrice","dectotVal","dtotal_value","Container","CardDeck","Card","CardBody","CardTitle","CardSubtitle","CardFooter","btnarrow","btnarrowwhite","NumberFormat","price","displayType","thousandSeparator","prefix","el","maxWidth","gutterBottom","sm","FormText","minLength","FirstName","Company","for","PhoneInput","BillingAddress","BillingAddress2","BillingCity","BillingZipCode","Input","cardName","CreditCardInput","cardNumberInputProps","onBlur","cardExpiryInputProps","cardCVCInputProps","fieldClassName","dividers","Divider","classname","c","withMobileDialog","modal1","collapse","collapse1","toggleforgetpwd","togglealert","valueChanged","handleSubmit","secureID","handleforgetSubmit","Username","issuccss","sighinsucess","toggleforgetcancel","Collapse","rel","cl","MyAccount","contactSupport","contactSupportModal","editAccountModel","editCredit","aModel","alertModel","aModel1","isCh","tot","updateSubscripConfirmation","updatePopUp","updatePopUp1","countryCurrency","userPhone","accountModal1","creditToggle","accountModal","handleSelectChange","toggleConfirmation","toggleConfirmationAccount","toggleConfirmationBilling","toggleInfo","formatPhoneNumber","_ref","billingCountry","billingCountryCode","_ref2","updateState","_ref3","JSON","parse","billingCity","billingZipCode","stateCode","toggleEditAccount","regionCode","defaultRegionCode","dialCode","sigOut","remarks","Remarks","saveSubscription","put","updateMenu","billingSubmit","billingState","user","billingEditInfo","billingAddress2","Zip","password","myAccountEdit","backToAccount","snackClr","storeData","pricePerStoreState","subscription","pricePerStore","isReceiveEmailAlerts","infoEditData","totalPrice","checkDigit","ret","storeDetails","userStatus","userManual","accountSubmit","userEditInfo","LastName","login","billingPhone","lastIndex","shift","join","cvv","testData","onlyCountries","lastName","billState","billStateID","typename","readOnly","AvGroup","check","AvInput","defaultChecked","subscriptionType","tempBasicNoOfStores","HubspotForm","region","portalId","formId","alertEditSubModel","QuoteMarket","Open","apiErr","SubscriptionDetails","isPlusChecked","optionsChecked","saveBtn","disablecheckbox","disvalue","upgradeOptions","deleteOptions","deleteOptions1","unUpgradeOptions","userPriceData","tempPlusNoOfStores","fixedTempBasicNoOfStores","UserType","areyouSure","totalValue","couponCode","nextBillingDate","userUserType","infoDataStore","accountModalCLose","accountModalClose","subHandleChange","api_call","saveSubscriptionWithoutCard","cancelSubcription","subscriptionData","saveSubscriptionCard","checkOption","indexd","updateprice","plusCount","basecount","base_total","marketPlusRate","Market_price","infoDatalen","infoDatafilter","infoDataStoreLength","s","inlineData","isDefaultStore","isPlus","storeNo","zoneCoverageLink","adminAllottedPrice","basecountPrice","plusCountPrice","discount","checkboxCheck","_ref4","_ref5","userPrice","userPriceList","p_unLimited","storeDataEdit","subdata","Requesttrial","onReady","loading","BillingHistory","billingHistory","modalPrintInvoice","invoiceDesc","invoiceDate","invoiceTotal","invoiceName","invoiceAddress","invoiceCity","invoiceState","invoiceZipCode","togglePrintInvoice","desc","date","total","stateInv","billingdetail","billing","billingDate","description","subscriptionCost","orderID","colspan","PrintProvider","NoPrint","Print","single","storTLogo","TableBoots","bordered","print","root","margin","closeButton","grey","MuiDialogTitle","disableTypography","MuiDialogContent","MuiDialogActions","toggleModal1","validError","cancelMissingCompetitor1","missingCompetitorSubmit","WebsiteUrl","Header","EmailShare","subject","data-rel","cardSource","beginDrag","searchid","cardTarget","hover","monitor","dragIndex","hoverIndex","findDOMNode","getBoundingClientRect","getClientOffset","moveCard","toggleClose","addmodal","allSpaceTypeChecked","allSpaceTypeCheckedEdit","widthLengthchange","extractMatchchange","LengthWidthMatchchange","editLengthWidthMatchchange","editlengthWidthMatches","editextacttMatches","editwlMatchPredefined","editSpaceTypeChange","editTypeChange","editParkingisSpecifiedSizes","editisSpecifiedSizes","editSpaceChange","unitDetail","spaceTypeChange","spacetype","userStore","unit","unitID","ad_Size","userStoreList","sizeChange","emptyWidth","emptyParking","sizeEditChange","until","wlMatchSpecific","exactMatch","wlMatchPredefined","sizeEditParkingChange","parkingChange","parkingchange","Car","RV","Large","parkingmaxlength","parkingminlength","editParkingsChange","parkingChangeMax","editCar","editRV","editLarge","deleteModal","deleteId","Power","Floor","lengthWidthMatches","editParkUnits","editparkingmaxlength","editparkingminlength","editSearchId","editName","resData","hideSpecifiedtext","WidthPlusMinus","LengthPlusMinus","HeightPlusMinus","spaceTypeLookUp","selectedSpaceTypes","editSpaceTypeLookUp","editSelectedSpaceTypes","handleChange1","spaceTypeCheck","resetEditUnit","editParam","Sid","userStoreUnit","filterDataSet","spaceTypes","checkAllSpacetypeisTrue","isSelected","storageType","searchID","isSpecifiedSizes","sqft","sqftTo","rv","car","otherVehicle","getSpaceType","addtoggleModal","editMarketSubmit","cc","editcountryCode","editSpaceType","editWidth","editSqFtFrom","editSqFtTo","editLength","editHeight","editIsSpecifiedSizes","editOtherVehicle","editWidthPlusMinus","editLengthPlusMinus","editHeightPlusMinus","editClimateControlled","editHumidityControlled","editFloor","editOutdoorAccess","editAlarm","editPower","editDriveUp","editElevator","editCovered","editDoorType","editLengthWidthMatch","editextractMatchchanges","editwidthLengthchanges","editMeasurement","reSize","editsizes","covered","sizes","reSizes","filterArr","d","data1","addMarketSubmit","ad_SizeTypec","Width","SpaceType","SqFtFrom","SqFtTo","nameExit","Name","spaceState","ad_SizeType","unitSize","Length","Height","IsSpecifiedSizes","OtherVehicle","Covered","LengthWidthMatch","extractMatchchanges","widthLengthchanges","Measurement","deleteMarket","delConfirmToggle","toggleYes","toggleNo","closeAddUnit","closeEditUnit","resetEditUnits","extractMatchChange","widthLengthChange","searchId","unitCompData","num","widthplusminus","lengthplusminus","heightplusminus","whichType","avgPrice","priceTrend","myStorePrice","currency","StoreAddress","StoreCity","StoreState","StoreZipcode","isDragging","priceTrends1","connectDragSource","connectDropTarget","partsOfStr","myStorePrice1","myStorePrice2","regionID","addnew","ReactHtmlParser","autohide","faTimes","Arrowup","ArrowDown","StoreSearchId","faArrowRight","myFormupdate","AvCheckboxGroup","storename","flow","DragSource","connect","dragSource","DropTarget","dropTarget","MarketDashboard","setToggle","dropdownOpen","showPriceTrends","priceTrends","priceTrendsAvg","dragCard","cards","userstoreid","removeCard","arr","searchorder","OrderList","handleDownload","stoName","fileName","currentDate","Currency","blob","download","compReportDownload","compReportDownloadCsv","storedata","storeInformation","resultArray","marketDownloadData","downloadInput","pdfLoading","handler","refreshMenu","downLoadReport","priceTrendss","SortId","board","units","storeDashboard","downLoadPDF","pta","usId","accessKey","getDate","getTime","fileNamePdf","FileName","dispatchEvent","MouseEvent","bubbles","cancelable","view","revokeObjectURL","remove","downLoadActivityReportPDF","storeAddress1","storeAddress2","storeCity","storeZipCode","storeState","storeZoneCoverage","caret","ExcelDownload","cursor","data-html2canvas-ignore","PictureAsPdfIcon","CsvDownload","marginRight","card","StoreRadius","DragDropContext","HTML5Backend","MarketDashboardHeader","CompetitorStore","toggleStoreModal","trackedFilterResult","PricingVolatility","apexChartNoData","textMessage","colorCode","series","xaxis","show","labels","axisBorder","axisTicks","yaxis","noData","chart","toolbar","stroke","markers","grid","legend","verticalAlign","fontFamily","marketVolatility","marketStorePrice","unitType","priceOption","dashboardBasicInfo","volatilityGrpahData","isDefaultUnit","isDefaultPrice","showGrpahData","isSelectIdPush","isShowGraph","isYourStore","isRemoveGrapg","isSelectCount","locationInfoData","isdefaultSelected","isNoGraphData","isCompsName","order","orderBy","isNoData","typePDF","sIdPDF","duplicate_filterData","new_filterData","getParams","handleRequestSort","stableSort","getSorting","property","cmp","stabilizedThis","loadDashBoard","CountryCode","inputParam","Competitors","unitVolatilityData","volatility","allVolatilityData","isUnitType","isUnitTypeNotNull","isYourStCount","marketStorePriceSort","initialLoad","priceType","przvoldality","isCompString","tempdata","marketSeries","widthArrayData","dashArrayData","marketNameList","colorsCodeList","markerSize","unique","MarketName2","colorsCode","colorsCode2","datum","isMyMarket","popMyStore","popData","toTop","every","newFilter_tempdata","k","totalChangeCount","dataSeries","x","monthYear","y","originData","dataSeries1","containsNull","noZeroData1","yData","noZeroData","newData","dataItem","userItem","j","reduce","elements","obj","random","enabled","autoScaleYaxis","tools","selection","zoomin","zoomout","pan","events","legendClick","chartContext","seriesIndex","config","toggleSeries","beforeZoom","t","resetPng","zoomed","mouseMove","tooltip","querySelector","Value","endsWith","classList","colors","formatter","w","globals","categoryLabels","mon","dataPointIndex","showForNullSeries","onDatasetHover","highlightDataSeries","dashArray","showForSingleSeries","horizontalAlign","showForZeroSeries","itemMargin","onItemClick","toggleDataSeries","onItemHover","seriesName","opts","offsetX","offsetY","uid","tFData","tData","CData","year","month","totalCount","showGraph","sId","isVal","isSelectStoreId","onlyShowGraph","pop","onUnitChange","onPriceChange","showRemoveId","showRemoveType","faFilePdf","market","myStore","reits","multiOps","singleOps","duplicate","background","Chart","scrollY","EnhancedTableHead","onRequestSort","rowCount","allPrice","premium","hiddens","shows","numeric","disablePadding","sortDirection","TableSortLabel","active","CommonSqFtInfoPopup","ReactStreetview","streetView","initialize","canvas","googleMaps","lthis","streetViewPanoramaOptions","svService","StreetViewService","panoRequest","preference","StreetViewPreference","NEAREST","StreetViewSource","OUTDOOR","findPanorama","getPanorama","panoData","StreetViewStatus","OK","StreetViewPanorama","pano","ReactDOM","componentDidUpdate","clearInstanceListeners","pov","heading","pitch","asyncLoading","globalPath","apiKey","jsonp","StoreStreetView","googleMapsApiKey","onPositionChanged","onPovChanged","CompOverview","unitData","cCode","Authorize","eventData","StoreID","pinPoints","unitTypes","storeImagePath","noImage","meashotName","strImageMap","squareFootage","opened","ownedBy","operatedBy","priceChangesPercent","imagePath","unitsOffered","totalSqFtFlag","sqFtFlag","historicModal","cancelHisData","hisData","onLoadHomeMarker","changeMapView","satelliteView","infoWindowRef","compstorechild","storeImageStreetView","myRef","compOverviewData","activeTab","dropDownValue","sortByOrder","isPdfLoading","centerPoint","compCount","hasMoreData","pageStart","mapData","getParams1","addDefaultSrcMap","getStoreStreeView","tabsChange","tab","number","Intl","currentTarget","textContent","lgt","ltd","loadMapData","compOverview","addDefaultSrc","ev","imageName","require","loadStoreList","historicalModalOpen","loadLazzyData","countCheck","newStoreData","newUnitData","overViewInfo","display","onError","Nav","tabs","NavItem","NavLink","classnames","faList","TabContent","TabPane","tabId","faCheck","faEyeSlash","faStar","strdata","isUserStore","lastVerified","storeURL","untdata","float","lineheight","v","CompOverviewGmap","zCnt","infoWindowContent","Gmaps","content","AllUnitPrize","dataLabels","fill","pricing","comparisons","compitator","gmyStore","gcompitator","compitatorAll","isRemoveGraph","isShowGraph1","isRemoveGraph1","yGroupMax","myStoreID","alwaysMyStoreID","anchorEl","markets1","storePlace","mouseOut","handlePopoverOpen","str","mStr","pricings","m","m1","priceFrom","priceTo","ms","multiSeriesGraph","compid","onlyRemoveGraph","rdata","shwID","idx2Show","Comp","mStore","showStore","store","compitatorname","data_compitator1","y_data_compitator1","y0_data_compitator1","check_Zero","y_min_compitator1","y0_min_compitator1","leastVal_compitator1","data_market1","y_data_market1","y0_data_market1","y_min_market1","y0_min_marke1","leastVal_market1","data_storeName","y_data_storeName","y0_data_storeName","y_min_storeName","y0_min_storeName","leastVal_storeName","yAxisMinValue","allData","custom","dataVal","rotate","hideOverlappingLabels","formData","uniquestore","FData","mData","Proximity","StoreImage","storeImage","Unit1","Unit2","Unit3","Unit4","Unit5","Unit6","Unit7","Unit8","Unit9","Unit10","Unit11","Unit12","IsSelected","Unit13","Unit14","Unit15","Boolean","defaultProps1","defaultProps2","udt","broadestRangeUnit","broadestPriceTo","broadestPriceFrom","narrowestRangeUnit","narrowestPriceTo","narrowestPriceFrom","marginTop","overflow","MarketScore","plotOptions","bar","distributed","categories","grapghCatcheck","graphOpen","MarkScoringData","MarkScoring","MarkStoreInfo","Markets","MarketsDesc","ChartTableData","GraphCompId","defaultWidth","dialogOpen","MarketSCdet","Scorecard","uniquestores","onSelecCatGrapgh","scoringData","drawChart","dialogContentOpen","openActGraph","activeRow","Storedata","scorings","markets","marketDescriptions","barhandleChange","CompId","AvailDataCheck","activityType","actualData","colorsData","maxScore","filterMarkets","fl","score","storageName","totalScore","tickAmount","borderRadius","columnWidth","barHeight","YS_data","ScorecardDet","scoreCard","marketScoreCardDetails","CheckDate","dtCollected","M_TotScore","uniquemscore","marketingActivity","tempData","activityScore","activityScoreTotal","rowcount","dialogClose","ComActivityType","Colors","weakestMarketingArea","weakestMarketingAreaScore","weakestMarketingAreaTotalScroe","strongestMarketingAreaScore","strongestMarketingArea","strongestMarketingAreaTotalScroe","ReactTable","responsive","rowSpan","th_data","sAddress","whiteSpace","dotline","storName","data-html","th_sc_data","mystore_chk","row1","td1","tableminus","tableplus","td2","lahMarkets","tr1data","tr1","td","tr2","rowdata","percentage","myStoreRank","marketScoreValue","marketScore","highestMarketName","highestMarket","lowestMarketActivity","lowestMarket","msd","statdata","labelId","totalPercent","websiteScore","websiteScoreTotal","websiteScorePercent","searchScore","searchScoreTotal","searchScorePercent","paidScore","paidScoreTotal","paidScorePercent","socialMediaScore","socialMediaScoreTotal","socialMediaScorePercent","contactabilityScore","contactabilityScoreTotal","contactabilityScorePercent","dynamdata","removefrommap","addtomap","scroll","InventoryAvailability","inventoryAvailablityList","storeNeverOff","uniqueUnitType","invStore","uniqueSID","invStores","sname","invStoreStatus","stacked","invAvaildashboard","storesWithUnitType","storesWithUnitTypePercent","stackedgraph","fD","u","uData","datavalue","resultedRange","storesNeverOffered","onMarketData","onMarket","offMarketData","offMarket","perc","onMarketPercent","dataSeries2","offMarketPercent","max_dataSeries","max_dataSeries2","max_marketSeries","annotations","borderColor","hideOverflowingLabels","uTypeLen","storesNeverOfferedPercent","rowHeader","headRows","MarketSaturation","CurrentPricing","advertisedRatesHistorySeries","advertisedRatesHistoryOptions","handleFilterChange","selValue","drpDownSelValue","commonapiCall","animations","tickPlacement","datetimeUTC","curve","discrete","followCursor","unitDurations","hisactivemenu","hisactivedur","gridactivedur","CoreMarketView","GridTableValue","CurrentHistory","AllMarketdata","AllCurrentHistory","MarketViewpricingOptions","stId","seId","priceLength","pricecolLength","Tabloading","promo_open","promo_open_id","pdfunique","tenancyArray","storeAdvertising","yearRange","dupliacteColor","DurationsdropDown","AlignGraphTabData","AlignHistoryGraphData","GetGridtableData","GetGraphTableData","onDurAndPriChange","onDurAndDayChange","GetcurrentpricinganalysisHistory","tabtoggle","TableViewGraphs","CurrentActivity","Colorbarcode","priceOptionName","splitpriceVal","priceVal","p1","price1","labelPrice","labelPrice2","Gcolor","dataPremium","dataPremium_labelPrice2","dataPremiumName","allViewGrid","isNaN","inverseOrder","cUp","dropDownData","priceRange1","priceRange2","datePrice","fullName","HistoryGraphView","filter_actualData","xaxis_data","tFMarketName","actualData_nullValChk","nullValChk_bool","condition","timestamp","_ref6","dateList","_ref7","forDat","componentWillReceiveProps","nextProps","lookupData","SearchId","PriceType","Duration","effectiveRateIp","EffectiveTimePeriod","inputData","hostName","currentPricingAnalysisAllMarket","isNotCurrentlyAdvertised","filterByMenu","getMystore","getwithoutMystore","currentPricingAnalysisMarket","currentPricingAnalysis","promohandleOpen","promohandleClose","tDuration","ComponentName","priceConversion","moneySymbol","drpDownValue","po_row","pricingOptions","tdVal","monthlyValues","HclassName","myStorePriceRank","timePeriod","activeTabs","ys_prom_tions","promos","currentPremium","currentValue","ShowMoreText","lines","more","less","expanded","currentWalkInPremium","currentWalkInValue","prom_tions","priceRange","EffectiveRate","MarketInventoryAnalysis","unitInventoryAvailablity","unitLevelInventory","defaultSelected","isModel","isAddedCount","isRemovedCount","date_value","openPopup","SearchID","commonInitLoad","isAdded","dateDetail","yearRange_bool","prev","availableCount","uniqueDataSet","cssClass","showDuplicates","orderNo","totalStores","unitInventory","greenimage","redimages","DetailedStoresView","onSelectAllClick","order1","orderBy1","order2","orderBy2","numSelected","onProximitysort","onStoreSort","createSortHandler","creatProximitysort","CustomDetailedStoresView","isPopUp","detailStoreData","detailViewData","detailStoreDatafilter","handleProximitysort","handleStoreSort","isDesc","detaildata","sortData","competitorName","dtOnlinePriceChanged","dtPriceChanged","dtPromoChanged","rank","regPrice","spaceId","vehicle","regularPriceVat","onlinePriceVat","tempdetailStoreData","sortByStoreData","detailStoreDatafilterLength","localeCompare","downloadExcel","climate","humidity","adPromoDate","adOnlineDate","adWalkinDate","downloadInputMerge","inputArray","curr","STORENAME","ADDRESS","PROXIMITY","FLOOR","FEATURES","unitTypesName","Workbook","border","faFileExcel","Sheet","Column","StorageUnit","apartment","artstudio","box","celltower","container","filestorage","office","mailbox","parking","warehouse","winestorage","workshop","locker","MapViews","sam","Array","StandardOnlinePrice","StandardRegPrice","strName","strID","bca","abc","mapView","unitLevelDatas","PremiumRegPrice","ValueRegPRice","PremiumOnlinePrice","ValueOnlinePRice","reStructuredData","MapViewsGmap","uniqueNames","PureComponent","LinkCell","rowIndex","columnKey","DataCell","CalEffPrice","m2","m3","m4","m5","m6","m7","m8","m9","m10","m11","m12","priceCal","averagePrice","CalAdvPrice","advPriceConversion","advPrice","advertisedPrice","columnTitles","floorType","promotion","effectiveRate","EffectiveRateCal","updateDimensions","gridWidth","dataList","columnOrder","columnOrder1","drpDownSel","collapsedRows","scrollToRow","_handleColumnHide","rowHeightGetter","nHeight","items","newColumnOrder","addEventListener","removeEventListener","effData","rowHeight","headerHeight","rowsCount","maxHeight","columnKeys","header","cell","Cell","fixed","memo","EffectiveRates","effectiveRateData","wrap","each","word","d3","words","reverse","line","lineNumber","attr","dy","tspan","append","node","getComputedTextLength","HisformData","calPrice","price2","caldate","toDate","labeldate","found","some","alternatePriceTag","ViewDetails","analysisSummary","pageNavigate","unitDashboard","CenterPoints","searchName","loadSummary","cutCur","BreadcrumbTab","clp","lowestPrice","cap","chp","highestPrice","splt_clp","splt_val_clp","splt_cap","splt_val_cap","splt_chp","splt_val_chp","lowestPriceStoreName","highestPriceStoreName","ErrorPage","time","pushState","intervalID","tick","UnAuthorized","Alert","handleChangePageMA","pageCountMA","handleChangeRowsPerPageMA","alertModal","isTab","alertTypeValue","alertArray","detailModal","homeData","selectedIds","lengthOfIds","alertIds","manageAlertList","Page","alertPopupValues","helpModal","isActiveValue","viewAlertsList","matchedComp","newDate","alertdeleteModal","alertViewModal","alertDeleteId","alertViewId","selectCheckBox","alertHtmlChange","alertTextChange","openAlertDetails","alertOpenIP","alertID","viewAlertsInformation","deleteModalClose","deleteAlert","deleteIP","manageAlertsLoad","deleteViewClose","deleteViewModal","deleteViewAlert","viewAlertsLoad","alertUpdateClose","alertUpdateModal","alertUpdate","alertUpdateIp","valueChange","checkBoxLength","userStoreAlert","applyRule","detailModalClose","alertSubmit","alertType","dollarValue","percentageValue","unitTypeName","goTo","scrollIntoView","alertIp","alertName","inventoryChange","priceOptionV1","priceOptionV2","unitTypeSel","goTop","alertOpen","competitorslist","fetchAlertPerc","it","rangeFor","storeAlert","alertClose","onChangeValues","fetchUnits","alertRange","fetchAlertFor","alertFor","priceOptionV2Name","priceOptionV1Name","manageAlertIp","pageNav","manageAlertsInfo","isActive","checkMaPg","checkPg","dashboardLocation","dashboardIp","tableGrid","FormControl","RadioGroup","fetchAlertType","course","FormLabel","compName","inventoryChangeName","tabValue","alertOverview","userSearchId","faTrash","allComps","noOfCompetitors","alertsWhen","comps","tableHeadings","MarketDashboardPdf","trproductRows","idx","preIndex","nameCount","Logo","textDecoration","rows","InventoryAvailabilityPdf","orderby","inventoryAvailability","stackedgraphNew","AllUnitPrizePdf","isSelectPoint","isRemLen","isRemoveGraphprev","showPrevStore","pData","paddingTop","PricingVolatilityPdf","isdefaultSelectedprice","pricingVoltality","CurrentPricingPdf","isEffectiveRate","durFilter","CoreMarketViewtab3","CoreMarketViewtab2","ChartTableDatatab3","ChartTableDatatab2","MarketViewpricingOptionstab3","MarketViewpricingOptionstab2","AvailDataChecktab3","AvailDataChecktab2","priceLengthtab3","pricecolLengthtab3","priceLengthtab2","pricecolLengthtab2","storeIdCount","countrycurrency","uniCheck","promoCountReached","needComparePromos","annexureFilters","AlignGraphTabDatatab3","AlignGraphTabDatatab2","GetGraphTableDatatab3","GetGraphTableDatatab2","SecretKey","amidx","sortByMyStoreData","promoCount","annexure","annexureSplit","finalResultSet","tempresult","annexSum","annexureArrObj","annex","id1","id2","id3","id4","id5","id6","id7","GridTableValue1","GridTableValueData","checkIfAnnexureEmptyStat","checkIfAnnexureEmpty","paddingLeft","results","resultFinal","promocountMax","promoIndex","MarketInventoryAnalysisPdf","marketInventoryAnalysis","DetailedStoresViewPdf","CustomDetailedStoresViewPdf","detailedStoreView","CompOverviewPdf","sordOrder","sortId","sortingChange","len","Avatar","paddingRight","preserveDrawingBuffer","CompOverviewGmapPdf","foot","own","operated","MarketScorePdf","openValue","id8","Score","act","marketNameCount","borderRight","MapViewsPdf","MapViewsGmapPdf","centerPoints","EffectiveRatesPdf","GetGraphTableDatatab4","CoreMarketViewtab4","effRateTableValue","rowsDiv","trproductRows1","idx1","promotions","rowspan","PdfDownload","durationFil","durTime","isRemovelen","isDefaultDateRange","widgetId","dataStatus","stateLookup","cityLookup","palettecomparision","showLoader","is_onchange","selectedState","selectedCountry","loadStateValues","datas","UnitType","MarketID","getYaxismin","minVal","getYaxisMax","maxVal","modVal","modVal1","calcMAxVal","diffVal","incRatio","round","maxMinVal","maxCalVal","maxRVal","Hisdata","MaxPrice","record","offsetWidth","tParser","tmin","tmax","arrMax","xScale","domain","range","yScale","svg","defined","selectAll","enter","on","x0","invert","bisectDate","d0","d1","d2","Tooltip_date","Storecount","getSCData","html","exit","rday","getDay","call","tickFormat","ticks","utc","yAxis","tickValues","split_d","cityBasedData","citySelected","citySelection","selCity","selectedCou","cityData","isterritory","graphData","overviewdetails","marketoverview","cityID","cityName","MvpLogin","secureid","AccessUserStoreId","getUserDetail","mvpUserStoreId","activeModalOpen","loadActiveData","cancelActiveReports","updateStatus","comp","ActivityReport","CompReport","activeId","reciepients","isModalCheck","activityData","isEnabled","isFreqAlert","isReportAlert","pdfName","selFrequency","subChoice","daysOut","isDayAlert","activeStatus","dayOfMonth","showDays","frequencyMonth","dayOutMonth","selectedDaysOut","activeReportSubmit","handleFreChange","handleDayChange","daysOutMonth","isFreqLength","frequency","isActivityLength","activity","isInventoryLength","inventoryTrack","israteTrendsLength","rateTrends","Recipient1","Recipient2","Recipient3","Recipient4","Recipient5","preventScroll","radioCheck","days","activityReportSample","findIndex","selectChoice","choice","selChoice","RefreshIcon","modalOpen","isModal","modalClose","compModalOpen","loadCompData","cancelCompReport","compId","compData","compImage","compStatus","compReportSubmit","isCompOpen","compReportSample","freq","selDaysOut","ActivityReportPdf","today","activityReports","inventoryAvailablities","basicInfo","getData","Logo1","Linkedin","Twitter","Facebook","rateActivityReport","marketAvYesterday","marketAvgToday","change","notables","yesterday","day5","day30","day90","day365","Footer","handlePrivacyOpen","privacy","handlePrivacyClose","toggle1","onMouseEnter","onMouseLeave","onMouseEnter2","onMouseLeave2","onMouseEnter3","onMouseLeave3","collapsesignin","collapseforgetpwd","isScrolling","dropdownOpen2","dropdownOpen3","togglesignin","openWin","auscountry","ukcountry","nzcountry","uscountry","logout","Navbar","light","expand","NavbarToggler","navbar","nav","navtoggle","tag","divider","triangle","withRouter","DefaultLayout","IdleTimeOutModal","showNotification","dir","closeNotification","notification","close","Alert_Icon","myInterval","handleLogout","MarketLayout","handleClick","one","two","three","handleDrawerToggle","mobileOpen","leftMenuData","dashNavData","localUserStoreId","userName","localActiveClassSearchName","filterMarketData","userTypeCheck","isMVPUser","reportCompActive","storeIdReq","divRef","refreshHandler1","activeClass","report","tempNoStoreCount","filteredData","resultSet","isCoverage","isMvpUser","userVerify","signOut","addClass","removeClass","StrId","drawer","ListItem","button","ListItemIcon","faUser","ListItemText","inset","primary","myroot","removepadding","faPoll","faMinus","in","unmountOnExit","leftNaV","nested","faPlusSquare","faCaretSquareLeft","faArrowsAlt","dashNav","faColumns","faEnvelopeOpenText","faBell","faSignOutAlt","Hidden","smUp","appBar","Toolbar","menuButton","MenuIcon","implementation","Drawer","anchor","paper","drawerPaper","xsDown","marketlayout","parentMethod1","breakpoints","up","mixins","flexGrow","minHeight","backgroundColor","paddingBottom","boxShadow","LoginLayout","PdfLayout","authGuard","authenticate","verifyUser","DefaultLayoutRoute","rest","Route","matchProps","PdfLayoutRoute","MarketLayoutRoute","Redirect","LoginLayoutRoute","developmentListing","listingData","developListingMap","faMapPin","RouteComp","BrowserRouter","Switch","exact","AveragePrice","App","userLoggedIn","isTimedOut","idleTimer","onAction","_onAction","onActive","_onActive","onIdle","_onIdle","Fav_Icon","IdleTimer","debounce","hostname","navigator","serviceWorker","ready","registration","unregister"],"mappings":"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MAAM,IAGV2jB,6BAA8B,GAE9B1hD,QAAS,CACPq+B,MAAO,CACLziD,GAAI,iBACJ0iD,QAAS,CACPP,MAAM,IAGVI,MAAO,CACLJ,MAAM,GAERD,MAAO,CACLsH,QAAS,CAAElB,SAAS,GACpB4T,WAAY,GACZ9Z,OAAQ,CACND,MAAM,EACN3hC,MAAO,CACLqpC,OAAQ,UACRliD,SAAU,UAIhBi7C,QAAS,CACP4jB,SAAU,CAAC,CACTxd,YAAa,EACbmB,eAAgB,EAChB79B,UAAW,UACXK,YAAa,OACbsB,KAAM,GACL,CACD+6B,YAAa,EACbmB,eAAgB,EAChB79B,UAAW,UACXK,YAAa,OACbsB,KAAM,GACL,CACD+6B,YAAa,EACbmB,eAAgB,EAChB79B,UAAW,UACXK,YAAa,OACbsB,KAAM,GACL,CACD+6B,YAAa,EACbmB,eAAgB,EAChB79B,UAAW,UACXK,YAAa,OACbsB,KAAM,GACL,CACD+6B,YAAa,EACbmB,eAAgB,EAChB79B,UAAW,UACXK,YAAa,OACbsB,KAAM,GACL,CACD+6B,YAAa,EACbmB,eAAgB,EAChB79B,UAAW,UACXK,YAAa,OACbsB,KAAM,GAER,CACE+6B,YAAa,EACbmB,eAAgB,EAChB79B,UAAW,UACXK,YAAa,OACbsB,KAAM,GAER,CACE+6B,YAAa,EACbmB,eAAgB,EAChB79B,UAAW,UACXK,YAAa,OACbsB,KAAM,GACL,CACD+6B,YAAa,EACbmB,eAAgB,EAChB79B,UAAW,UACXK,YAAa,OACbsB,KAAM,GACL,CACD+6B,YAAa,EACbmB,eAAgB,EAChB79B,UAAW,UACXK,YAAa,OACbsB,KAAM,GACL,CACD+6B,YAAa,EACbmB,eAAgB,EAChB79B,UAAW,UACXK,YAAa,OACbsB,KAAM,GACL,CACD+6B,YAAa,EACbmB,eAAgB,EAChB79B,UAAW,UACXK,YAAa,OACbsB,KAAM,GACL,CACD+6B,YAAa,EACbmB,eAAgB,EAChB79B,UAAW,UACXK,YAAa,OACbsB,KAAM,GACL,CACD+6B,YAAa,EACbmB,eAAgB,EAChB79B,UAAW,UACXK,YAAa,OACbsB,KAAM,GAER,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","file":"static/js/main.9116960b.chunk.js","sourcesContent":["module.exports = __webpack_public_path__ + \"static/media/gray-pin.e9bf9bc9.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAACXBIWXMAAAsTAAALEwEAmpwYAAARPWlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNy4xLWMwMDAgNzkuOWNjYzRkZSwgMjAyMi8wMy8xNC0xMToyNjoxOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1sbnM6aWxsdXN0cmF0b3I9Imh0dHA6Ly9ucy5hZG9iZS5jb20vaWxsdXN0cmF0b3IvMS4wLyIgeG1sbnM6cGRmPSJodHRwOi8vbnMuYWRvYmUuY29tL3BkZi8xLjMvIiB4bWxuczp4bXBSaWdodHM9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9yaWdodHMvIiB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIiB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHhtcDpNZXRhZGF0YURhdGU9IjIwMjItMDgtMDlUMTM6NTM6MzMrMDU6MzAiIHhtcDpNb2RpZnlEYXRlPSIyMDIyLTA4LTA5VDEzOjUzOjMzKzA1OjMwIiB4bXA6Q3JlYXRlRGF0ZT0iMjAxOC0wOS0xMVQxMTowMTozOSswNDowMCIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBJbGx1c3RyYXRvciBDUzYgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOmEyYjNiMTAwLWI0NmItOGI0Mi04YTZmLTg0NGFkOGY0NmQ5ZCIgeG1wTU06RG9jdW1lbnRJRD0iYWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjI1ZmMxZTgyLWJmNTEtYzc0NS04ODBhLTgwNDAyY2Y0ZjUwNSIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ1dWlkOjVEMjA4OTI0OTNCRkRCMTE5MTRBODU5MEQzMTUwOEM4IiB4bXBNTTpSZW5kaXRpb25DbGFzcz0icHJvb2Y6cGRmIiBpbGx1c3RyYXRvcjpTdGFydHVwUHJvZmlsZT0iUHJpbnQiIHBkZjpQcm9kdWNlcj0iQWRvYmUgUERGIGxpYnJhcnkgMTAuMDEiIHhtcFJpZ2h0czpNYXJrZWQ9IlRydWUiIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIHRpZmY6SW1hZ2VXaWR0aD0iMTAwMCIgdGlmZjpJbWFnZUxlbmd0aD0iMTA4MCIgdGlmZjpQaG90b21ldHJpY0ludGVycHJldGF0aW9uPSIyIiB0aWZmOlNhbXBsZXNQZXJQaXhlbD0iMyIgdGlmZjpYUmVzb2x1dGlvbj0iNzIvMSIgdGlmZjpZUmVzb2x1dGlvbj0iNzIvMSIgdGlmZjpSZXNvbHV0aW9uVW5pdD0iMiIgZXhpZjpFeGlmVmVyc2lvbj0iMDIzMSIgZXhpZjpDb2xvclNwYWNlPSI2NTUzNSIgZXhpZjpQaXhlbFhEaW1lbnNpb249IjEwMDAiIGV4aWY6UGl4ZWxZRGltZW5zaW9uPSIxMDgwIj4gPGRjOnRpdGxlPiA8cmRmOkFsdD4gPHJkZjpsaSB4bWw6bGFuZz0ieC1kZWZhdWx0Ij5WZWN0b3IgaG9tZSBzeW1ib2wgcGxhY2VkIGluIGJsdWUgY2lyY2xlPC9yZGY6bGk+IDwvcmRmOkFsdD4gPC9kYzp0aXRsZT4gPGRjOmNyZWF0b3I+IDxyZGY6U2VxPiA8cmRmOmxpPlZlY3RvclN0b2NrLmNvbS8yMzkzMjExNjwvcmRmOmxpPiA8L3JkZjpTZXE+IDwvZGM6Y3JlYXRvcj4gPGRjOmRlc2NyaXB0aW9uPiA8cmRmOkFsdD4gPHJkZjpsaSB4bWw6bGFuZz0ieC1kZWZhdWx0Ij5WZWN0b3IgaG9tZSBzeW1ib2wgcGxhY2VkIGluIGJsdWUgY2lyY2xlPC9yZGY6bGk+IDwvcmRmOkFsdD4gPC9kYzpkZXNjcmlwdGlvbj4gPGRjOnJpZ2h0cz4gPHJkZjpBbHQ+IDxyZGY6bGkgeG1sOmxhbmc9IngtZGVmYXVsdCI+QW5kcmV3IFNjaGVyYmFja292PC9yZGY6bGk+IDwvcmRmOkFsdD4gPC9kYzpyaWdodHM+IDxkYzpzdWJqZWN0PiA8cmRmOkJhZz4gPHJkZjpsaT5ob21lPC9yZGY6bGk+IDxyZGY6bGk+c2lnbjwvcmRmOmxpPiA8cmRmOmxpPmljb248L3JkZjpsaT4gPHJkZjpsaT52ZWN0b3I8L3JkZjpsaT4gPHJkZjpsaT5hcnQ8L3JkZjpsaT4gPHJkZjpsaT5iYWNrZ3JvdW5kPC9yZGY6bGk+IDxyZGY6bGk+YmxhY2s8L3JkZjpsaT4gPHJkZjpsaT5ibHVlPC9yZGY6bGk+IDxyZGY6bGk+Y2lyY2xlPC9yZGY6bGk+IDxyZGY6bGk+YnVpbGRpbmc8L3JkZjpsaT4gPHJkZjpsaT5idXNpbmVzczwvcmRmOmxpPiA8cmRmOmxpPmJ1dHRvbjwvcmRmOmxpPiA8cmRmOmxpPmNvbnN0cnVjdGlvbjwvcmRmOmxpPiA8cmRmOmxpPmRlc2lnbjwvcmRmOmxpPiA8cmRmOmxpPmRvb3I8L3JkZjpsaT4gPHJkZjpsaT52ZWN0b3IgaWNvbjwvcmRmOmxpPiA8cmRmOmxpPmVsZW1lbnQ8L3JkZjpsaT4gPHJkZjpsaT5lc3RhdGU8L3JkZjpsaT4gPHJkZjpsaT5mbGF0PC9yZGY6bGk+IDxyZGY6bGk+Z3JhcGhpYzwvcmRmOmxpPiA8cmRmOmxpPmhvbWVwYWdlPC9yZGY6bGk+IDxyZGY6bGk+aG91c2U8L3JkZjpsaT4gPHJkZjpsaT5pbGx1c3RyYXRpb248L3JkZjpsaT4gPHJkZjpsaT5pbWFnZTwvcmRmOmxpPiA8cmRmOmxpPmludGVybmV0PC9yZGY6bGk+IDxyZGY6bGk+aXNvbGF0ZWQ8L3JkZjpsaT4gPHJkZjpsaT5tYWluPC9yZGY6bGk+IDxyZGY6bGk+bWFwPC9yZGY6bGk+IDxyZGY6bGk+bW9kZXJuPC9yZGY6bGk+IDxyZGY6bGk+cGFnZTwvcmRmOmxpPiA8cmRmOmxpPnJlYWw8L3JkZjpsaT4gPHJkZjpsaT5yZXNpZGVudGlhbDwvcmRmOmxpPiA8cmRmOmxpPnNldDwvcmRmOmxpPiA8cmRmOmxpPnNoYXBlPC9yZGY6bGk+IDxyZGY6bGk+c2lsaG91ZXR0ZTwvcmRmOmxpPiA8cmRmOmxpPnNpbXBsZTwvcmRmOmxpPiA8cmRmOmxpPnN0cnVjdHVyZTwvcmRmOmxpPiA8cmRmOmxpPnN5bWJvbDwvcmRmOmxpPiA8cmRmOmxpPndlYjwvcmRmOmxpPiA8cmRmOmxpPndoaXRlPC9yZGY6bGk+IDwvcmRmOkJhZz4gPC9kYzpzdWJqZWN0PiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoyYjI1Y2MxZS1lMzkzLWZhNDItOGUzYi1hZDlhNzA1YWQxNTAiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6OTdDOUMzODc5MEI1RTgxMTlEQUZENEE2ODBENzhEOTQiIHN0UmVmOm9yaWdpbmFsRG9jdW1lbnRJRD0idXVpZDo1RDIwODkyNDkzQkZEQjExOTE0QTg1OTBEMzE1MDhDOCIgc3RSZWY6cmVuZGl0aW9uQ2xhc3M9InByb29mOnBkZiIvPiA8eG1wTU06SGlzdG9yeT4gPHJkZjpTZXE+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJzYXZlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDo4MENBQkE4RUI3QThFNjExOERBOUFDMUFEODgwRjVEQSIgc3RFdnQ6d2hlbj0iMjAxNi0xMS0xMlQxMzowODoyMCswNDowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgSWxsdXN0cmF0b3IgQ1M2IChXaW5kb3dzKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6MmIyNWNjMWUtZTM5My1mYTQyLThlM2ItYWQ5YTcwNWFkMTUwIiBzdEV2dDp3aGVuPSIyMDIyLTA4LTA5VDEzOjUzOjMzKzA1OjMwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgMjMuMyAoV2luZG93cykiIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249ImNvbnZlcnRlZCIgc3RFdnQ6cGFyYW1ldGVycz0iZnJvbSBpbWFnZS9qcGVnIHRvIGltYWdlL3BuZyIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iZGVyaXZlZCIgc3RFdnQ6cGFyYW1ldGVycz0iY29udmVydGVkIGZyb20gaW1hZ2UvanBlZyB0byBpbWFnZS9wbmciLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOmEyYjNiMTAwLWI0NmItOGI0Mi04YTZmLTg0NGFkOGY0NmQ5ZCIgc3RFdnQ6d2hlbj0iMjAyMi0wOC0wOVQxMzo1MzozMyswNTozMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIDIzLjMgKFdpbmRvd3MpIiBzdEV2dDpjaGFuZ2VkPSIvIi8+IDwvcmRmOlNlcT4gPC94bXBNTTpIaXN0b3J5PiA8dGlmZjpCaXRzUGVyU2FtcGxlPiA8cmRmOlNlcT4gPHJkZjpsaT44PC9yZGY6bGk+IDxyZGY6bGk+ODwvcmRmOmxpPiA8cmRmOmxpPjg8L3JkZjpsaT4gPC9yZGY6U2VxPiA8L3RpZmY6Qml0c1BlclNhbXBsZT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4s3btTAAAC1klEQVQ4jZWVzUsUcRjHv7/XcWZndtft5p4UoUNhSZBe6uZ6qTysWGyCEERKBw1BhMJzdQj8K6yTkC1I4rKRphXRKkmn2Luwg1CLy87L0yXHnN1e/MIzPDy/Zz58Hx7mN0xpjSNJqcC5AAD4vjcYBP61MAgHiMKLABhjvMIF/yCELAqpNhkDwiCA73sRA0rrKBK2gw4zcUkI8RoA/S2EEKUOMzGQsJ0TDEilIJWCNgxobdz9FygeShv3tWFAKgkhJdBhWrBsG0rrO6eFHUP1lO0kYVoJwEmlkLCdswD74wuTU5M0MTFBACifz7ftsZ3k+WS6E0h1ngEX4v0fYfcmqVKp0OrqKi0uLtLGxib19fW19HHOK6l0BtLzmv1hEFxGG01PT6Nwu4AnT5+AMY5bt25ia3sLu7u7Lb1hGF7wfW8ASunH7ZzNzs7S+vo63RgZoXq9Tp7nUT6fp6WlJZqZmWk7jVT6GTgXb+IH8/Pz9HJlhUZHR2l/f5+O5LoujY2N0fLyMi0sLLQb+z0AfD8qMMZobm6OyuUyFQoFOjg4oLjq9TqNj49TqVSih48eEmMnlvkDvx4RMJfLUU9PDx0eHhIR0d7eHuWGhyk3nKOdnR0iImo2m9Tb20tDQ0PEOf8dWAfn4m3cejabjRytra1F9WKxGNW7u7vbjfyRCyG24htzHCfKs11dx3k2G+W2bbdsmgv5jivDeBE/aDQaqNVqcF0X36rVqF6tVuG6Lmq1GhqNRgtQa+M5Up0ZcM4/xe2bpkmWZZFS6vgTU4osyyLTNOPLIM75l2Q6A6TSGdhO6ly84TTBwMh2kv2pdAbc85oAaE8qNdUyw39KajUNhs+e1wSElJBKQhsGlDbun9ad0saDE9dXmwt2kAtR/heIC7HRYVlXEnYSSquIwVp+AUICRPB972rg+9fDMBggonMAwBj7yrnYFlK8ElKVGeMIAx++3wTAAAA/AWtRwf9jBHX0AAAAAElFTkSuQmCC\"","module.exports = __webpack_public_path__ + \"static/media/blue-pin.283d2437.png\";","module.exports = __webpack_public_path__ + \"static/media/orange-pin.9e405634.png\";","module.exports = __webpack_public_path__ + \"static/media/orange-home.d09e4a82.png\";","var map = {\n\t\"./sample-activity-report-aus.pdf\": 1338,\n\t\"./sample-activity-report-eur.pdf\": 1339,\n\t\"./sample-activity-report-nz.pdf\": 1340,\n\t\"./sample-activity-report-uk.pdf\": 1341,\n\t\"./sample-activity-report-us.pdf\": 694\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 1337;","module.exports = __webpack_public_path__ + \"static/media/sample-activity-report-aus.6b37274b.pdf\";","module.exports = __webpack_public_path__ + \"static/media/sample-activity-report-eur.a4f7c37f.pdf\";","module.exports = __webpack_public_path__ + \"static/media/sample-activity-report-nz.cafdfbd7.pdf\";","module.exports = __webpack_public_path__ + \"static/media/sample-activity-report-uk.01a8165a.pdf\";","export const CONFIG = {\r\n // For United Kingdom\r\n IsMapbox: false, \r\n API_URL: 'https://apioptimize.stortrack.com/api/',\r\n GoogleMapsApiKey: 'AIzaSyDmD4dBIX3AYtW4iej8okdDNKoto4fiqG4',\r\n REACT_APP_MAPBOX_TOKEN: \"pk.eyJ1IjoiY2xvdWRzdXBwb3J0IiwiYSI6ImNrcDd6MzllZzA1N2IzMW9oNTcwOHh0ajAifQ.C2VDAibO99HHvq7_YluMmw\", \r\n STK_URL: 'https://www.stortrack.co.uk/',\r\n OPTZ_URL: 'https://optimize.stortrack.co.uk/',\r\n STK_SIGNURL: 'https://www.stortrack.co.uk/Signin.html',\r\n USA_URL: 'https://www.stortrack.com/',\r\n AU_URL: 'https://au.stortrack.com/',\r\n NZ_URL:'https://nz.stortrack.com/',\r\n UK_URL: 'https://www.stortrack.co.uk/',\r\n RegionId: 3,\r\n Country_Code:'UK',\r\n Currency_Symbol: '£', \r\n PhoneMaxLength: 20,\r\n PhoneMinLength: 4,\r\n PhoneRegex: /^([^\\s]{3})([^\\s]{4})([^\\s]{4})$/g, \r\n Mail_Support: 'support@stortrack.co.uk',\r\n STK_Homeurl: 'stortrack.co.uk', \r\n Mail_Info: 'info@stortrack.com',\r\n MapQuestKey_URL: 'https://www.mapquestapi.com/search/v2/radius?key=',\r\n MapQuestKey: 'YACBPORLjPNwG22g0A16czmgreWVIaGM',\r\n Toll_Free: '1-800-969-7424', \r\n Sales_Support: '020 3048 3123',\r\n Address1: \"Address Line 1\",\r\n Address2: \"Address Line 2\",\r\n City: \"City\",\r\n State: \"State/Province\",\r\n PostalCode: \"Zip/Postal Code\",\r\n Country: \"Country\",\r\n MeasurementLabel: \"Total Square Feet\",\r\n MeasurementName: \"Square Footage\",\r\n MeasurementShortName: \"sqft\",\r\n PostalCodevalidation :\"Please enter Postal Code without space\",\r\n Website_Text_Footer_Pdf: 'optimize.stortrack.co.uk',\r\n Website_URL_Footer_Pdf: 'https://optimize.stortrack.co.uk/',\r\n Phone_Footer_Pdf: '1-800-969-7424',\r\n Mail_Footer_Pdf: 'info@stortrack.com',\r\n storeNameMaxLimit: 90,\r\n MVP_URL: 'https://explorer.stortrack.co.uk/logins/',\r\nMARKETS_REPORTS_URL: 'https://reports.stortrack.com/market-reports', \r\n HISTORICAL_REPORTS_URL: 'https://reports.stortrack.com/historical-reports',\r\n ResourcePage:'https://www.stortrack.com/news',\r\n TimeOut_Sec: 1800\r\n}\r\nexport const MatchingCountryCode = {\r\n UK_RID : 3,\r\n NZ_RID : 4,\r\n};","import React from 'react';\r\nimport { CONFIG } from '../../utils/config';\r\nimport axios from 'axios';\r\nimport stlogo from './../../Assets/Images/logo.jpg';\r\nimport './Authendication.css'\r\n\r\nexport default class Authendication extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n isLoading: true, curSymb: ''\r\n };\r\n\r\n }\r\n componentWillMount() {\r\n this.setState({ isLoading: true });\r\n }\r\n\r\n\r\n\r\n componentDidMount() {\r\n localStorage.clear();\r\n this.setState({\r\n curSymb: CONFIG.Currency_Symbol\r\n })\r\n // axios.get(CONFIG.API_URL + 'home/region/' + CONFIG.RegionId)\r\n // .then(response => {\r\n // let curSymb = response.data.region.currencySymbol;\r\n // this.setState({\r\n // curSymb\r\n // })\r\n // });\r\n\r\n const data = {\r\n \"SecretKey\": this.props.match.params.authurization,\r\n \"RegionId\" : CONFIG.RegionId\r\n }\r\n localStorage.setItem('SecretKey', this.props.match.params.authurization);\r\n this.setState({ isLoading: true });\r\n axios.post(CONFIG.API_URL + 'account/secretlogin', data)\r\n\r\n .then(res => {\r\n \r\n\r\n if (res.status === 200) {\r\n const getTokvalues = res.data;\r\n\r\n //console.log(getTokvalues);\r\n this.setState({ getTokvalues });\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + getTokvalues.token;\r\n localStorage.setItem('accessKey', getTokvalues.token);\r\n localStorage.setItem('getNames', getTokvalues.firstName);\r\n localStorage.setItem('isPaid', getTokvalues.isPaid);\r\n localStorage.setItem('tempNoStoreCount', getTokvalues.tempNoOfStores);\r\n localStorage.setItem('instructionMsg', getTokvalues.instructionMsg);\r\n localStorage.setItem('userType', getTokvalues.userType);\r\n localStorage.setItem('userStatus', getTokvalues.status);\r\n localStorage.setItem('curSymb', CONFIG.Currency_Symbol);\r\n localStorage.setItem('userManual', getTokvalues.isManual);\r\n localStorage.setItem('userCdate', getTokvalues.createdDate);\r\n localStorage.setItem('displayMessage', getTokvalues.displayMessage);\r\n\r\n if (getTokvalues.isPaid === 0) {\r\n\r\n const { from } = this.props.location.state || { from: { pathname: \"/my-account/\" } };\r\n this.props.history.push(from);\r\n\r\n }\r\n else {\r\n const { from } = this.props.location.state || { from: { pathname: \"/my-market/\" } };\r\n this.props.history.push(from);\r\n\r\n }\r\n\r\n }\r\n\r\n })\r\n .catch(err => {\r\n this.setState({ isLoading: false });\r\n if (err.response.data.StatusCode === 400) {\r\n this.myFormRef && this.myFormRef.reset();\r\n const sighinerror = err.response.data.Message;\r\n this.setState({ sighinerror });\r\n }\r\n\r\n });\r\n\r\n }\r\n render() {\r\n const { isLoading } = this.state;\r\n return (\r\n\r\n
\r\n
\r\n \"StorTrack\"\r\n
\r\n\r\n
Please wait while we sign you in..
\r\n
\r\n\r\n );\r\n }\r\n\r\n\r\n}\r\n\r\n","import React from 'react';\r\nimport Button from '@material-ui/core/Button';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogContentText from '@material-ui/core/DialogContentText';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport CloseIcon from '@material-ui/icons/Close';\r\nimport LiveHelp from '@material-ui/icons/LiveHelp';\r\nimport './HelpTextPopup.css';\r\nclass HelpTextPopup extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n open: false\r\n }\r\n\r\n this.handleClose = this.handleClose.bind(this);\r\n this.handleClickOpen = this.handleClickOpen.bind(this);\r\n }\r\n handleClose() {\r\n this.setState({\r\n open: false\r\n })\r\n }\r\n handleClickOpen() {\r\n this.setState({\r\n open: true\r\n })\r\n }\r\n\r\n\r\n\r\n render() {\r\n const { open } = this.state;\r\n\r\n return (\r\n
\r\n\r\n {/* */}\r\n \r\n {/* */}\r\n \r\n\r\n {this.props.parm.helpTitle} \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n
\r\n );\r\n }\r\n}\r\nexport default HelpTextPopup;","import React, { Component, Fragment } from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport Table from \"@material-ui/core/Table\";\r\nimport TableHead from \"@material-ui/core/TableHead\";\r\nimport TableBody from \"@material-ui/core/TableBody\";\r\nimport TableCell from \"@material-ui/core/TableCell\";\r\nimport TableFooter from \"@material-ui/core/TableFooter\";\r\nimport TablePagination from \"@material-ui/core/TablePagination\";\r\nimport TableRow from \"@material-ui/core/TableRow\";\r\nimport Select from \"react-select\";\r\nimport FormGroup from \"@material-ui/core/FormGroup\";\r\nimport FormControlLabel from \"@material-ui/core/FormControlLabel\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport FirstPageIcon from \"@material-ui/icons/FirstPage\";\r\nimport KeyboardArrowLeft from \"@material-ui/icons/KeyboardArrowLeft\";\r\nimport KeyboardArrowRight from \"@material-ui/icons/KeyboardArrowRight\";\r\nimport List from \"@material-ui/icons/List\";\r\nimport LocationOn from \"@material-ui/icons/LocationOn\";\r\nimport LastPageIcon from \"@material-ui/icons/LastPage\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogContentText from \"@material-ui/core/DialogContentText\";\r\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\nimport Radio from \"@material-ui/core/Radio\";\r\nimport RadioButtonUncheckedIcon from \"@material-ui/icons/RadioButtonUnchecked\";\r\nimport RadioButtonCheckedIcon from \"@material-ui/icons/RadioButtonChecked\";\r\nimport axios from \"axios\";\r\nimport { Row, Col } from \"reactstrap\";\r\nimport { CONFIG, MatchingCountryCode } from \"../../utils/config\";\r\nimport { HashLink as Link } from \"react-router-hash-link\";\r\nimport Stepper from \"@material-ui/core/Stepper\";\r\nimport Step from \"@material-ui/core/Step\";\r\nimport StepLabel from \"@material-ui/core/StepLabel\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport AppBar from \"@material-ui/core/AppBar\";\r\nimport Tabs from \"@material-ui/core/Tabs\";\r\nimport Tab from \"@material-ui/core/Tab\";\r\nimport Checkbox from \"@material-ui/core/Checkbox\";\r\nimport {\r\n AvForm,\r\n AvField,\r\n AvRadioGroup,\r\n AvRadio,\r\n} from \"availity-reactstrap-validation\";\r\nimport { Label } from \"reactstrap\";\r\nimport \"react-dropdown-tree-select/dist/styles.css\";\r\nimport { MissingCompetitor } from \"./../../Views\";\r\nimport \"./AddMarketcmpopup.css\";\r\nimport homeIcon from \"./../../Assets/Images/home-icon-circle.png\";\r\nimport Snackbar from \"@material-ui/core/Snackbar\";\r\nimport { HelpTextPopup } from \"./../HelpTextPopup/index\";\r\nimport Slider from \"@material-ui/core/Slider\";\r\nimport MapGL, {\r\n Layer,\r\n NavigationControl,\r\n Popup,\r\n Source,\r\n Marker,\r\n WebMercatorViewport,\r\n FlyToInterpolator,\r\n} from \"react-map-gl\";\r\nimport \"mapbox-gl/dist/mapbox-gl.css\";\r\n\r\nvar circleLine = {};\r\nvar circleData = [];\r\nconst layerStyle = {\r\n id: \"point\",\r\n type: \"circle\",\r\n paint: {\r\n \"circle-radius\": 5,\r\n \"circle-color\": [\"get\", \"colorCode\"],\r\n },\r\n};\r\n\r\nconst polygonLayer = {\r\n id: \"maine\",\r\n type: \"fill\",\r\n source: \"maine\",\r\n // layout: {\r\n // \"line-join\": \"round\",\r\n // \"line-cap\": \"round\",\r\n // },\r\n // paint: {\r\n // \"line-color\": '#007cbf',\r\n // \"line-width\": 2,\r\n // },\r\n // layout: {},\r\n paint: {\r\n \"fill-color\": \"#0080ff\", // blue color fill\r\n \"fill-opacity\": 0.5,\r\n },\r\n};\r\nexport default class AddMarketcmpopup extends Component {\r\n static defaultProps = {\r\n googleMapURL:\r\n \"https://maps.googleapis.com/maps/api/js?key=\" +\r\n CONFIG.GoogleMapsApiKey +\r\n \"\",\r\n };\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n myMarketData: \"\",\r\n page: 0,\r\n pageCount: 0,\r\n pageCountMDT: 0,\r\n rowsPerPage: 10,\r\n tooltipOpen: false,\r\n isLoading: false,\r\n isLoading1: false,\r\n open: false,\r\n open1: false,\r\n open2: false,\r\n setOpen: false,\r\n isSelactCity: false,\r\n StateCountry: \"\",\r\n activeStep: 0,\r\n isDefaultValue: 1,\r\n radiusValue: 50,\r\n coverageTrackCount: null,\r\n scale: 10,\r\n showComponent: \"radius\",\r\n lookupZipcodeData: [],\r\n filterlookupZipcodeData: [],\r\n lookupCityData: [],\r\n ZipcodeFilter: \"\",\r\n selectedCityOption: \"\",\r\n selectedZipOption: null,\r\n zipcodeOptions: [],\r\n unzipcodeOptions: [],\r\n marketStoreName: \"\",\r\n userStorId: null,\r\n userStoreID: 0,\r\n trackStorId: null,\r\n storeModal: false,\r\n trackModalData: [],\r\n trackOptions: [],\r\n strOptions: [],\r\n strOptions1: [],\r\n trackedFields: [],\r\n trackedFields1: [],\r\n unTrackedCount: [],\r\n serachTypeval: null,\r\n competitorsData: [],\r\n tabvalue: 0,\r\n coordinate: [],\r\n EditStoredata: {},\r\n showModal: false,\r\n marketName: \"\",\r\n addressLine1: \"\",\r\n addressLine2: \"\",\r\n city: \"\",\r\n state: \"\",\r\n zipcode: \"\",\r\n coverageTrackCount: 0,\r\n exestineStore: \"true\",\r\n title: \"Add Market\",\r\n title1: \"Add Address\",\r\n tracked: \"\",\r\n userStr: \"\",\r\n isTracks: \"\",\r\n snackOpen: false,\r\n snackMSg: \"\",\r\n errCard: \"\",\r\n oldAddress: {},\r\n newAddress: {},\r\n isOpen: false,\r\n showingInfoWindow: false,\r\n activeMarker: {},\r\n selectedPlace: {},\r\n coordinate: [],\r\n zipCoordinates1: [],\r\n zipCoordinates2: [],\r\n zipCoordinates3: [],\r\n cityCoordinates: [],\r\n searchData: [],\r\n merged: [],\r\n uniqzipcode: [],\r\n zipError: \"\",\r\n coordinates_one: [],\r\n coordinates_one2: [],\r\n StateCountryCount: 1,\r\n centerLat: 0,\r\n centerLng: 0,\r\n zoomValue: 6,\r\n viewport: {\r\n width: \"100%\",\r\n height: \"100vh\",\r\n longitude: 0,\r\n latitude: 0,\r\n zoom: 10,\r\n },\r\n popupInfoLatlng: {},\r\n homeLatLng: { longitude: 0, latitude: 0 },\r\n recNum: \"\",\r\n };\r\n this.trackModal = this.trackModal.bind(this);\r\n this.trackModalClose = this.trackModalClose.bind(this);\r\n this.ModalClickOpen = this.ModalClickOpen.bind(this);\r\n this.handleClose = this.handleClose.bind(this);\r\n this.handleNext = this.handleNext.bind(this);\r\n this.snackHandleclose = this.snackHandleclose.bind(this);\r\n this.handleBack = this.handleBack.bind(this);\r\n // this.sendTrackFields = this.sendTrackFields.bind(this);\r\n this.trackhandleClick = this.trackhandleClick.bind(this);\r\n //this.trackhandle = this.trackhandle.bind(this);\r\n this.upgradeBtn = this.upgradeBtn.bind(this);\r\n //this.degradeBtn = this.degradeBtn.bind(this);\r\n this.deleteComp = this.deleteComp.bind(this);\r\n //this.raduisChange = this.raduisChange.bind(this);\r\n // this.handleReset = this.handleReset.bind(this);\r\n // this.addMarket = this.addMarket.bind(this);\r\n this.dummyFn = this.dummyFn.bind(this);\r\n\r\n this.onToggleOpen = this.onToggleOpen.bind(this);\r\n this.postalCodeValidation = this.postalCodeValidation.bind(this);\r\n this.radiusOnChange = this.radiusOnChange.bind(this);\r\n this.mapRef = React.createRef();\r\n }\r\n\r\n postalCodeValidation = (e) => {\r\n var code = \"charCode\" in e ? e.charCode : e.keyCode;\r\n if (\r\n !(code == 32) && // space\r\n !(code > 47 && code < 58) && // numeric (0-9)\r\n !(code > 64 && code < 91) && // upper alpha (A-Z)\r\n !(code > 96 && code < 123)\r\n ) {\r\n // lower alpha (a-z)\r\n e.preventDefault();\r\n }\r\n };\r\n onToggleOpen = (isOpen) => {\r\n this.setState({\r\n isOpen: !isOpen,\r\n });\r\n };\r\n\r\n // CMap = withScriptjs(withGoogleMap(props =>\r\n // 0 && this.state.competitorsData.data.centerPointDetail[0].latitude != null) ? this.state.competitorsData.data.centerPointDetail[0].latitude : this.state.competitorsData.data.currentStoreDetail.lat ), lng: parseFloat(this.state.competitorsData.data.centerPointDetail && (this.state.competitorsData.data.centerPointDetail.length > 0 && this.state.competitorsData.data.centerPointDetail[0].longitude != null) ? this.state.competitorsData.data.centerPointDetail[0].longitude : this.state.competitorsData.data.currentStoreDetail.lng) }}\r\n // defaultOptions={{ zoomControl: true, fullscreenControl: false, streetViewControl: false, disableDefaultUI: true, mapTypeControl: false }}\r\n // >\r\n // {props.children}\r\n // \r\n // ));\r\n\r\n delayedShowMarker = () => {\r\n setTimeout(() => {\r\n this.setState({ isMarkerShown: true });\r\n }, 3000);\r\n };\r\n\r\n handleMarkerClick = () => {\r\n this.setState({ isMarkerShown: false });\r\n this.delayedShowMarker();\r\n };\r\n snackHandleclose = (event, reason) => {\r\n if (reason === \"clickaway\") {\r\n return;\r\n }\r\n this.setState({ snackOpen: false });\r\n // const x = document.getElementById('Subid');\r\n // x.focus();\r\n };\r\n zipFilterHandleChange = (e) => {\r\n let ZipcodeFilter = e.target.value;\r\n let zipError = this.state.zipError;\r\n // this.setState({\r\n // ZipcodeFilter: e.target.value\r\n // })\r\n let filterlookupZipcodeData = this.state.lookupZipcodeData;\r\n filterlookupZipcodeData = filterlookupZipcodeData.filter((lookup) => {\r\n let lookupName = lookup.value.toLowerCase();\r\n return lookupName.indexOf(ZipcodeFilter.toLowerCase()) !== -1;\r\n });\r\n this.setState({\r\n filterlookupZipcodeData,\r\n ZipcodeFilter,\r\n zipError:\r\n filterlookupZipcodeData.length === 0\r\n ? \"The given Zip or Postal Code(s) is not available\"\r\n : \"\",\r\n });\r\n };\r\n // zipFilterHandleChange = (e) => {\r\n // this.setState({\r\n // ZipcodeFilter: e.target.value\r\n // })\r\n // //this.props.onChange(event.target.value)\r\n // }\r\n onShowModal = () => {\r\n this.setState({ showModal: true });\r\n };\r\n\r\n onMapCreated(map) {\r\n map.setOptions({\r\n disableDefaultUI: false,\r\n });\r\n }\r\n\r\n zipcodeClick(event, zipcodeValue) {\r\n let zipcodeOptions = this.state.zipcodeOptions;\r\n let unzipcodeOptions = this.state.unzipcodeOptions;\r\n let index;\r\n\r\n if (event.target.checked) {\r\n if (zipcodeOptions.length <= 2) {\r\n zipcodeOptions.push(zipcodeValue);\r\n index = unzipcodeOptions.indexOf(zipcodeValue);\r\n unzipcodeOptions.splice(index, 1);\r\n } else {\r\n this.setState({\r\n snackOpen: true,\r\n snackMSg:\r\n \"You cannot select more than 3 zipcodes! Please remove a selection and try again\",\r\n });\r\n }\r\n } else if (!event.target.checked) {\r\n if (zipcodeOptions.length <= 3) {\r\n index = zipcodeOptions.indexOf(zipcodeValue);\r\n zipcodeOptions.splice(index, 1);\r\n unzipcodeOptions.push(zipcodeValue);\r\n } else {\r\n this.setState({\r\n snackOpen: true,\r\n snackMSg:\r\n \"You cannot select more than 3 zipcodes! Please remove a selection and try again.\",\r\n });\r\n }\r\n }\r\n\r\n this.setState({\r\n zipcodeOptions,\r\n unzipcodeOptions,\r\n errortext1: \"\",\r\n coverageType: \"zipcode\",\r\n });\r\n this.setState({\r\n isLoading1: true,\r\n });\r\n const data = {\r\n UserStoreID: this.state.userStoreID,\r\n Competitorslist: \"\",\r\n SearchType: 2,\r\n Zone: {\r\n Radius: \"\",\r\n Zipcode1:\r\n this.state.zipcodeOptions.length > 1 ||\r\n this.state.zipcodeOptions.length > 2 ||\r\n this.state.zipcodeOptions.length > 3 ||\r\n this.state.zipcodeOptions.length === 1\r\n ? this.state.zipcodeOptions[0]\r\n : \"\",\r\n Zipcode2:\r\n this.state.zipcodeOptions.length > 2 ||\r\n this.state.zipcodeOptions.length === 2\r\n ? this.state.zipcodeOptions[1]\r\n : \"\",\r\n Zipcode3:\r\n this.state.zipcodeOptions.length === 3\r\n ? this.state.zipcodeOptions[2]\r\n : \"\",\r\n CityName: \"\",\r\n },\r\n isCoverageZone: 1,\r\n RegionId: CONFIG.RegionId,\r\n };\r\n let token = localStorage.getItem(\"accessKey\");\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = \"Bearer \" + token;\r\n }\r\n axios\r\n .post(CONFIG.API_URL + \"coverage/competitorbycoverage\", data)\r\n .then((response) => {\r\n let coverageTrackCount = response.data.data.count;\r\n this.setState({\r\n coverageTrackCount,\r\n isLoading1: false,\r\n });\r\n })\r\n .catch((err) => {\r\n this.setState({\r\n isLoading1: false,\r\n });\r\n if (err.response.status === 401) {\r\n localStorage.removeItem(\"accessKey\");\r\n const { from } = this.props.location.state || {\r\n from: { pathname: \"/\" },\r\n };\r\n this.props.history.push(from);\r\n } else {\r\n alert(err.message);\r\n }\r\n });\r\n }\r\n ModalClickOpen(UserStoreID) {\r\n this.lookupZipcode(UserStoreID);\r\n this.lookupCity(UserStoreID);\r\n this.setState({\r\n isLoading1: true,\r\n });\r\n let showComponent = this.state.showComponent;\r\n\r\n let userStoreID = this.state.userStoreID;\r\n userStoreID = UserStoreID;\r\n const selectedCity = {\r\n label: \"\",\r\n value: \"\",\r\n };\r\n this.setState({\r\n open: true,\r\n userStoreID,\r\n title: \"Add Market\",\r\n title1: \"Add Address\",\r\n EditStoredata: {},\r\n isDefaultValue: 1,\r\n isLoading1: true,\r\n });\r\n\r\n if (userStoreID !== 0) {\r\n this.setState({\r\n title: \"Edit Market\",\r\n isLoading1: true,\r\n title1: \"Update Address\",\r\n });\r\n\r\n axios\r\n .post(\r\n CONFIG.API_URL +\r\n \"market/storedetails/\" +\r\n userStoreID +\r\n \"/\" +\r\n CONFIG.RegionId\r\n )\r\n .then((response) => {\r\n let EditStoredata = response.data.userstore;\r\n const isDefaultValue = [];\r\n const stateData = this.state.stateData;\r\n const countryData = this.state.countryData;\r\n let zipcodeOptions = response.data.zipcode;\r\n let coverSearchType = response.data.userstore.searchType;\r\n let oldAddress = this.state.oldAddress;\r\n oldAddress = {\r\n Address: EditStoredata.address,\r\n Address2: EditStoredata.address2,\r\n City: EditStoredata.city,\r\n State: EditStoredata.state,\r\n Zipcode: EditStoredata.zipcode,\r\n };\r\n if (coverSearchType === 1) {\r\n showComponent = \"radius\";\r\n } else if (coverSearchType === 2) {\r\n showComponent = \"zipcode\";\r\n } else if (coverSearchType === 3) {\r\n showComponent = \"city\";\r\n selectedCity.label = zipcodeOptions\r\n ? zipcodeOptions[0] + \", \" + zipcodeOptions[1]\r\n : \"\";\r\n selectedCity.value = zipcodeOptions\r\n ? zipcodeOptions[0] + \",\" + zipcodeOptions[1]\r\n : \"\";\r\n }\r\n stateData\r\n .filter((con) => con.stateID === EditStoredata.state)\r\n .forEach(function (con) {\r\n isDefaultValue.unshift(con.countryCode);\r\n });\r\n //stateData.filter((con) => con.stateID === e.target.value).find(con.countryCode);\r\n countryData\r\n .filter((con) => con.countryCode === isDefaultValue.toString())\r\n .forEach(function (con) {\r\n isDefaultValue.unshift(con.country);\r\n });\r\n isDefaultValue.toString();\r\n\r\n let scale =\r\n EditStoredata.zoneCoverage !== null && coverSearchType === 1\r\n ? EditStoredata.zoneCoverage.indexOf(\"10\") > -1\r\n ? 10\r\n : EditStoredata.zoneCoverage.charAt(0)\r\n : 10;\r\n this.setState({\r\n coverageType:\r\n coverSearchType === 1\r\n ? \"radius\"\r\n : coverSearchType === 2\r\n ? \"zipcode\"\r\n : coverSearchType === 3\r\n ? \"city\"\r\n : \"radius\",\r\n EditStoredata,\r\n oldAddress,\r\n scale,\r\n StateCountry: isDefaultValue[0],\r\n isDefaultValue,\r\n isSelactCity: coverSearchType === 3 ? true : false,\r\n selectedCityOption: coverSearchType === 3 ? selectedCity : [],\r\n showComponent,\r\n zipcodeOptions,\r\n isLoading1: false,\r\n });\r\n this.trackCoverageCount();\r\n })\r\n .catch((err) => {\r\n this.setState({\r\n isLoading1: false,\r\n });\r\n if (err.response.status === 401) {\r\n localStorage.removeItem(\"accessKey\");\r\n const { from } = this.props.location.state || {\r\n from: { pathname: \"/\" },\r\n };\r\n this.props.history.push(from);\r\n } else {\r\n alert(err.message);\r\n }\r\n });\r\n }\r\n }\r\n ModalClickOpenCR(UserStoreID) {\r\n let filterlookupZipcodeData = this.state.filterlookupZipcodeData;\r\n filterlookupZipcodeData = [];\r\n let userStoreID = this.state.userStoreID;\r\n userStoreID = UserStoreID;\r\n this.setState({\r\n isLoading1: true,\r\n filterlookupZipcodeData,\r\n userStoreID,\r\n });\r\n this.lookupZipcode1(UserStoreID);\r\n }\r\n\r\n dummyFn(UserStoreID) {\r\n let userStoreID = UserStoreID;\r\n let zipcodeOptions = [];\r\n let showComponent = this.state.showComponent;\r\n const selectedCity = {\r\n label: \"\",\r\n value: \"\",\r\n };\r\n\r\n this.setState({\r\n userStoreID,\r\n title: \"Add Market\",\r\n title1: \"Add Address\",\r\n EditStoredata: {},\r\n isDefaultValue: 1,\r\n isLoading1: true,\r\n });\r\n if (userStoreID !== 0) {\r\n this.setState({\r\n title: \"Edit Market\",\r\n isLoading1: true,\r\n title1: \"Update Address\",\r\n activeStep: 1,\r\n });\r\n\r\n axios\r\n .post(\r\n CONFIG.API_URL +\r\n \"market/storedetails/\" +\r\n userStoreID +\r\n \"/\" +\r\n CONFIG.RegionId\r\n )\r\n .then((response) => {\r\n let EditStoredata = response.data.userstore;\r\n let oldAddress = this.state.oldAddress;\r\n oldAddress = {\r\n Address: EditStoredata.address,\r\n Address2: EditStoredata.address2,\r\n City: EditStoredata.city,\r\n State: EditStoredata.state,\r\n Zipcode: EditStoredata.zipcode,\r\n };\r\n const isDefaultValue = [];\r\n const stateData = this.state.stateData;\r\n const countryData = this.state.countryData;\r\n zipcodeOptions = response.data.zipcode;\r\n let coverSearchType = response.data.userstore.searchType;\r\n if (coverSearchType === 1) {\r\n showComponent = \"radius\";\r\n } else if (coverSearchType === 2) {\r\n showComponent = \"zipcode\";\r\n } else if (coverSearchType === 3) {\r\n showComponent = \"city\";\r\n if (CONFIG.RegionId === MatchingCountryCode.UK_RID) {\r\n selectedCity.label = zipcodeOptions ? zipcodeOptions[0] : \"\";\r\n selectedCity.value = zipcodeOptions ? zipcodeOptions[0] : \"\";\r\n } else {\r\n selectedCity.label = zipcodeOptions\r\n ? zipcodeOptions[0] + \", \" + zipcodeOptions[1]\r\n : \"\";\r\n selectedCity.value = zipcodeOptions\r\n ? zipcodeOptions[0] + \",\" + zipcodeOptions[1]\r\n : \"\";\r\n }\r\n }\r\n\r\n stateData\r\n .filter((con) => con.stateID === EditStoredata.state)\r\n .forEach(function (con) {\r\n isDefaultValue.unshift(con.countryCode);\r\n });\r\n //stateData.filter((con) => con.stateID === e.target.value).find(con.countryCode);\r\n countryData\r\n .filter((con) => con.countryCode === isDefaultValue.toString())\r\n .forEach(function (con) {\r\n isDefaultValue.unshift(con.country);\r\n });\r\n isDefaultValue.toString();\r\n\r\n let scale =\r\n EditStoredata.zoneCoverage !== null && coverSearchType === 1\r\n ? EditStoredata.zoneCoverage.indexOf(\"10\") > -1\r\n ? 10\r\n : EditStoredata.zoneCoverage.charAt(0)\r\n : 10;\r\n this.setState({\r\n coverageType:\r\n coverSearchType === 1\r\n ? \"radius\"\r\n : coverSearchType === 2\r\n ? \"zipcode\"\r\n : coverSearchType === 3\r\n ? \"city\"\r\n : \"radius\",\r\n EditStoredata,\r\n oldAddress,\r\n StateCountry: isDefaultValue[0],\r\n isSelactCity: coverSearchType === 3 ? true : false,\r\n selectedCityOption: coverSearchType === 3 ? selectedCity : [],\r\n scale,\r\n isDefaultValue,\r\n showComponent,\r\n zipcodeOptions,\r\n open: true,\r\n isLoading1: false,\r\n });\r\n this.trackCoverageCount();\r\n })\r\n .catch((err) => {\r\n this.setState({\r\n isLoading1: false,\r\n });\r\n if (err.response.status === 401) {\r\n localStorage.removeItem(\"accessKey\");\r\n const { from } = this.props.location.state || {\r\n from: { pathname: \"/\" },\r\n };\r\n this.props.history.push(from);\r\n } else {\r\n alert(err.message);\r\n }\r\n });\r\n }\r\n }\r\n\r\n cityHandleChange = (selectedCityOption) => {\r\n this.setState({\r\n selectedCityOption,\r\n errortext1: \"\",\r\n coverageType: \"city\",\r\n isSelactCity: true,\r\n });\r\n this.setState({\r\n isLoading1: true,\r\n });\r\n const data = {\r\n UserStoreID: this.state.userStoreID,\r\n Competitorslist: \"\",\r\n SearchType: 3,\r\n Zone: {\r\n Radius: \"\",\r\n Zipcode1: \"\",\r\n Zipcode2: \"\",\r\n Zipcode3: \"\",\r\n CityName: selectedCityOption.value.replace(\",\", \", \"),\r\n },\r\n isCoverageZone: 1,\r\n RegionId: CONFIG.RegionId,\r\n };\r\n let token = localStorage.getItem(\"accessKey\");\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = \"Bearer \" + token;\r\n }\r\n axios\r\n .post(CONFIG.API_URL + \"coverage/competitorbycoverage\", data)\r\n .then((response) => {\r\n let coverageTrackCount = response.data.data.count;\r\n this.setState({\r\n coverageTrackCount,\r\n isLoading1: false,\r\n });\r\n })\r\n .catch((err) => {\r\n this.setState({\r\n isLoading1: false,\r\n });\r\n if (err.response.status === 401) {\r\n localStorage.removeItem(\"accessKey\");\r\n const { from } = this.props.location.state || {\r\n from: { pathname: \"/\" },\r\n };\r\n this.props.history.push(from);\r\n } else {\r\n alert(err.message);\r\n }\r\n });\r\n };\r\n\r\n zipHandleChange = (selectedZipOption) => {\r\n if (selectedZipOption.length <= 3) {\r\n this.setState({ selectedZipOption, coverageType: \"zipcode\" });\r\n // if (selectedZipOption[0].value != '') {\r\n\r\n // }\r\n this.trackCoverageCount();\r\n } else {\r\n alert(\r\n \"You cannot select more than 3 zipcodes! Please remove a selection and try again.\"\r\n );\r\n }\r\n };\r\n\r\n onDragEnd(e) {}\r\n\r\n tabhandleChange(event, newValue) {\r\n this.setState({ tabvalue: newValue, showingInfoWindow: false }, () => {\r\n if (\r\n this.state.coverageType == \"city\" &&\r\n newValue === 1 &&\r\n CONFIG.RegionId === 1\r\n ) {\r\n var city = this.state.selectedCityOption.value;\r\n this.getMapQuestResultCity(city);\r\n } else {\r\n if (\r\n this.state.coverageType == \"zipcode\" &&\r\n newValue === 1 &&\r\n CONFIG.RegionId === 1\r\n ) {\r\n var zipInput = this.state.zipcodeOptions;\r\n this.getMapQuestResultZip(zipInput);\r\n }\r\n }\r\n });\r\n }\r\n\r\n coverageType = (e) => {\r\n let showComponent = this.state.showComponent;\r\n let zipcodeOptions = this.state.zipcodeOptions;\r\n let selectedCityOption = this.state.selectedCityOption;\r\n let scale = this.state.scale;\r\n let isSelactCity = this.state.isSelactCity;\r\n let zipcodeOptionsLength;\r\n let errortext1;\r\n let ZipcodeFilter = this.state.ZipcodeFilter;\r\n let trackedFields = [];\r\n let trackedFields1 = [];\r\n let unTrackedCount = [];\r\n\r\n if (e.target.value === \"radius\") {\r\n selectedCityOption = [];\r\n zipcodeOptions = [];\r\n errortext1 = \"\";\r\n zipcodeOptionsLength = null;\r\n ZipcodeFilter = \"\";\r\n scale = 10;\r\n this.trackCoverageCountRadius(scale);\r\n } else if (e.target.value === \"zipcode\") {\r\n // this.lookupZipcode();\r\n // this.state.isLoading = true;\r\n selectedCityOption = [];\r\n scale = 10;\r\n errortext1 = \"\";\r\n zipcodeOptionsLength = null;\r\n ZipcodeFilter = \"\";\r\n zipcodeOptions = [];\r\n let filterlookupZipcodeData = this.state.lookupZipcodeData;\r\n filterlookupZipcodeData = filterlookupZipcodeData.filter((lookup) => {\r\n let lookupName = lookup.value.toLowerCase();\r\n return lookupName.indexOf(ZipcodeFilter.toLowerCase()) !== -1;\r\n });\r\n this.setState({\r\n filterlookupZipcodeData,\r\n ZipcodeFilter,\r\n coverageTrackCount: 0,\r\n });\r\n } else if (e.target.value === \"city\") {\r\n // this.lookupCity();\r\n zipcodeOptions = [];\r\n scale = 10;\r\n errortext1 = \"\";\r\n zipcodeOptionsLength = null;\r\n ZipcodeFilter = \"\";\r\n this.setState({\r\n coverageTrackCount: 0,\r\n });\r\n }\r\n\r\n if (e.target.checked) {\r\n showComponent = e.target.value;\r\n }\r\n this.setState({\r\n trackedFields,\r\n trackedFields1,\r\n isSelactCity: false,\r\n unTrackedCount,\r\n showComponent,\r\n ZipcodeFilter,\r\n selectedCityOption,\r\n zipcodeOptions,\r\n scale,\r\n errortext1,\r\n zipcodeOptionsLength,\r\n });\r\n if (e.target.value === \"radius\") {\r\n this.trackCoverageCountRadius(this.state.scale);\r\n }\r\n };\r\n trackCoverageCountRadius(scale) {\r\n this.setState({\r\n isLoading1: true,\r\n });\r\n const data = {\r\n UserStoreID: this.state.userStoreID,\r\n Competitorslist: \"\",\r\n SearchType: 1,\r\n Zone: {\r\n Radius: scale,\r\n Zipcode1: \"\",\r\n Zipcode2: \"\",\r\n Zipcode3: \"\",\r\n CityName: \"\",\r\n },\r\n isCoverageZone: 1,\r\n RegionId: CONFIG.RegionId,\r\n };\r\n let token = localStorage.getItem(\"accessKey\");\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = \"Bearer \" + token;\r\n }\r\n axios\r\n .post(CONFIG.API_URL + \"coverage/competitorbycoverage\", data)\r\n .then((response) => {\r\n let coverageTrackCount = response.data.data.count;\r\n this.setState({\r\n coverageTrackCount,\r\n isLoading1: false,\r\n });\r\n })\r\n .catch((err) => {\r\n this.setState({\r\n isLoading1: false,\r\n });\r\n if (err.response.status === 401) {\r\n localStorage.removeItem(\"accessKey\");\r\n const { from } = this.props.location.state || {\r\n from: { pathname: \"/\" },\r\n };\r\n this.props.history.push(from);\r\n } else {\r\n alert(err.message);\r\n }\r\n });\r\n }\r\n\r\n // raduisChange = (event, value) => {\r\n // this.setState({ value });\r\n // };\r\n trackModal(storeId, marketName) {\r\n this.setState({\r\n marketStoreName: marketName,\r\n });\r\n let token = localStorage.getItem(\"accessKey\");\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = \"Bearer \" + token;\r\n }\r\n axios\r\n .post(\r\n CONFIG.API_URL + \"market/competitors/\" + storeId + \"/\" + CONFIG.RegionId\r\n )\r\n .then((response) => {\r\n // this.state.isLoading=true;\r\n const trackModalData = response.data.competitor.competitorsList;\r\n let strOptions = [];\r\n trackModalData.forEach(function (e) {\r\n strOptions.push(e.storeID + (e.isTracked ? \"|1\" : \"|0\"));\r\n });\r\n this.setState({\r\n trackModalData,\r\n storeModal: true,\r\n strOptions,\r\n });\r\n })\r\n .catch((err) => {\r\n // if (err.response.status === 401) {\r\n // localStorage.removeItem('accessKey');\r\n // const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n // this.props.history.push(from);\r\n // }\r\n // else {\r\n // alert(err.response.data);\r\n // }\r\n });\r\n // this.setState(prevState => ({\r\n // storeModal: !prevState.storeModal\r\n // }));\r\n }\r\n\r\n trackModalClose() {\r\n this.setState({\r\n storeModal: false,\r\n });\r\n }\r\n\r\n onMarkerClose = () => {\r\n this.setState({ showingInfoWindow: false });\r\n };\r\n\r\n upgradeBtn(plus) {\r\n this.setState({\r\n isLoading1: true,\r\n });\r\n let errortext = \"\";\r\n let data = this.state.data;\r\n data.Plus = plus;\r\n data.RegionId = CONFIG.RegionId;\r\n this.setState({\r\n data,\r\n });\r\n axios\r\n .post(CONFIG.API_URL + \"market/add\", data)\r\n .then((response) => {\r\n let userStoreID = response.data.userStoreID;\r\n this.setState({\r\n isLoading1: false,\r\n userStoreID,\r\n });\r\n if (response.status === 200) {\r\n const already = response.data.result\r\n ? response.data.result.indexOf(\"Store name already exists!\")\r\n : -1;\r\n const storenotExist = response.data.result\r\n ? response.data.result.indexOf(\"Store does not exists!\")\r\n : -1;\r\n const addressNotFound = response.data.result\r\n ? response.data.result.indexOf(\"Address not found!\")\r\n : -1;\r\n\r\n if (already > -1) {\r\n errortext =\r\n \"Market with same name is available in your account. Please rename the market name to proceed further!\";\r\n this.setState({\r\n errortext,\r\n });\r\n }\r\n //else if (response.data.result === 'Store does not exists!') {\r\n else if (storenotExist > -1) {\r\n this.errorHandleOpen();\r\n let addInputData = response.data.data;\r\n this.setState({\r\n addInputData,\r\n });\r\n } else if (addressNotFound > -1) {\r\n let addInputData = response.data.data;\r\n this.setState({\r\n addInputData,\r\n open2: true,\r\n });\r\n } else if (userStoreID >= 1 && this.state.serachTypeval !== 1) {\r\n let addInputData = response.data.data;\r\n this.setState({\r\n addInputData,\r\n });\r\n this.lookupZipcode(userStoreID);\r\n this.lookupCity(userStoreID);\r\n this.setState({ activeStep: this.state.activeStep + 1 });\r\n } else if (userStoreID >= 1 && this.state.serachTypeval === 1) {\r\n let addInputData = response.data.data;\r\n this.setState({\r\n addInputData,\r\n });\r\n this.setState({ activeStep: this.state.activeStep + 1 });\r\n this.lookupZipcode(userStoreID);\r\n this.lookupCity(userStoreID);\r\n }\r\n }\r\n })\r\n .catch((err) => {\r\n this.setState({\r\n isLoading1: false,\r\n });\r\n if (err.response.status === 400) {\r\n alert(err.message);\r\n }\r\n\r\n if (err.response.status === 401) {\r\n localStorage.removeItem(\"accessKey\");\r\n const { from } = this.props.location.state || {\r\n from: { pathname: \"/\" },\r\n };\r\n this.props.history.push(from);\r\n } else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }\r\n\r\n addMarket(event, errors, values) {\r\n if (errors.length <= 0) {\r\n this.setState({\r\n isLoading1: true,\r\n });\r\n this.btn0.setAttribute(\"disabled\", \"disabled\");\r\n\r\n // if (this.state.serachTypeval === 1) {\r\n // const data = {\r\n // \"StoreName\": values.marketName,\r\n // \"Address\": values.addressLine1,\r\n // \"Address2\": values.addressLine2,\r\n // \"City\": values.city,\r\n // \"State\": values.state,\r\n // \"Zipcode\": values.zipcode,\r\n // \"UserStoreID\": this.state.userStoreID,\r\n // \"Longitude\": \"\",\r\n // \"Latitude\": \"\",\r\n // \"Status\": 1,\r\n // \"Plus\": this.state.serachTypeval === 2 ? false : this.state.serachTypeval === 4 ? true : false,\r\n // \"IsExisting\": values.exestineStore,\r\n // \"IsConfirm\": false,\r\n // \"Website\": ''\r\n // }\r\n // this.setState({ data, isLoading1: false });\r\n // // this.lookupZipcode();\r\n // // this.setState({ activeStep: this.state.activeStep + 1 });\r\n // }\r\n // else {\r\n this.setState({\r\n isLoading1: true,\r\n });\r\n //this.setState({ activeStep: this.state.activeStep + 1 });\r\n let newAddress = this.state.newAddress;\r\n let oldAddress = this.state.oldAddress;\r\n let errortext = \"\";\r\n newAddress = {\r\n Address: values.addressLine1,\r\n Address2: values.addressLine2,\r\n City: values.city,\r\n State: values.state,\r\n Zipcode: values.zipcode,\r\n };\r\n this.setState({\r\n newAddress,\r\n oldAddress,\r\n });\r\n if (\r\n newAddress.Address === oldAddress.Address &&\r\n newAddress.Address2 === oldAddress.Address2 &&\r\n newAddress.City === oldAddress.City &&\r\n newAddress.State === oldAddress.State &&\r\n newAddress.Zipcode === oldAddress.Zipcode\r\n ) {\r\n } else {\r\n let showComponent = this.state.showComponent;\r\n let selectedCityOption = this.state.selectedCityOption;\r\n let zipcodeOptions = this.state.zipcodeOptions;\r\n let scale = this.state.scale;\r\n showComponent = \"radius\";\r\n zipcodeOptions = [];\r\n selectedCityOption = [];\r\n scale = 10;\r\n this.setState({\r\n showComponent,\r\n selectedCityOption,\r\n zipcodeOptions,\r\n scale,\r\n isSelactCity: false,\r\n });\r\n }\r\n\r\n // if(newAddress != oldAddress){\r\n // let showComponent = this.state.showComponent;\r\n // let selectedCityOption = this.state.selectedCityOption;\r\n // let zipcodeOptions = this.state.zipcodeOptions;\r\n // let scale = this.state.scale;\r\n // showComponent = 'radius';\r\n // zipcodeOptions = [];\r\n // selectedCityOption = [];\r\n // scale = 10;\r\n // this.setState({\r\n // showComponent, selectedCityOption, zipcodeOptions, scale\r\n // });\r\n // }\r\n const data = {\r\n StoreName: values.marketName,\r\n Address: values.addressLine1,\r\n Address2: values.addressLine2,\r\n City: values.city,\r\n State: values.state ? values.state : \"\",\r\n Zipcode: values.zipcode,\r\n UserStoreID: this.state.userStoreID,\r\n Longitude: \"\",\r\n Latitude: \"\",\r\n Status: 1,\r\n Plus:\r\n this.state.serachTypeval === 2\r\n ? false\r\n : this.state.serachTypeval === 4\r\n ? true\r\n : false,\r\n IsExisting: values.exestineStore,\r\n IsConfirm: false,\r\n Website: \"\",\r\n RegionId: CONFIG.RegionId,\r\n };\r\n if (CONFIG.RegionId === 1) {\r\n let filterData = this.state.stateData.filter(\r\n (ft) => ft.stateID === values.state\r\n )[0];\r\n data[\"CountryCode\"] = filterData[\"countryCode\"];\r\n data[\"StateName\"] = filterData[\"state\"];\r\n }\r\n //localStorage.setItem(data);\r\n axios\r\n .post(CONFIG.API_URL + \"market/add\", data)\r\n .then((response) => {\r\n let userStoreID = this.state.userStoreID;\r\n userStoreID = response.data.userStoreID\r\n ? response.data.userStoreID\r\n : this.state.userStoreID;\r\n // if(userStoreID > 0 && userStoreID !== undefined) {\r\n // this.setState({\r\n // userStoreID\r\n // })\r\n\r\n // }\r\n // else if(userStoreID === undefined){\r\n // let userStoreID = this.state.userStoreID\r\n // this.setState({\r\n // userStoreID\r\n // })\r\n // }\r\n this.setState({\r\n isLoading1: false,\r\n userStoreID,\r\n });\r\n if (response.status === 200) {\r\n const already = response.data.result\r\n ? response.data.result.indexOf(\"Store name already exists!\")\r\n : -1;\r\n const storenotExist = response.data.result\r\n ? response.data.result.indexOf(\"Store does not exists!\")\r\n : -1;\r\n const addressNotFound = response.data.result\r\n ? response.data.result.indexOf(\"Address not found!\")\r\n : -1;\r\n\r\n if (already > -1) {\r\n let addInputData = response.data.data;\r\n errortext =\r\n \"Market with same name is available in your account. Please rename the market name to proceed further!\";\r\n this.setState({\r\n errortext,\r\n addInputData,\r\n marketName: values.marketName,\r\n addressLine1: values.addressLine1,\r\n addressLine2: values.addressLine2,\r\n city: values.city,\r\n state: values.state,\r\n zipcode: values.zipcode,\r\n exestineStore: values.exestineStore,\r\n userStoreID: this.state.userStoreID,\r\n oldAddress: newAddress,\r\n });\r\n this.btn0.removeAttribute(\"disabled\");\r\n } else if (storenotExist > -1) {\r\n this.errorHandleOpen();\r\n let addInputData = response.data.data;\r\n this.setState({\r\n errortext: \"\",\r\n addInputData,\r\n marketName: values.marketName,\r\n addressLine1: values.addressLine1,\r\n addressLine2: values.addressLine2,\r\n city: values.city,\r\n state: values.state ? values.state : \"\",\r\n zipcode: values.zipcode,\r\n exestineStore: values.exestineStore,\r\n userStoreID: this.state.userStoreID,\r\n oldAddress: newAddress,\r\n });\r\n this.btn0.removeAttribute(\"disabled\");\r\n } else if (addressNotFound > -1) {\r\n let addInputData = response.data.data;\r\n this.setState({\r\n errortext: \"\",\r\n addInputData,\r\n open2: true,\r\n marketName: values.marketName,\r\n addressLine1: values.addressLine1,\r\n addressLine2: values.addressLine2,\r\n city: values.city,\r\n state: values.state ? values.state : \"\",\r\n zipcode: values.zipcode,\r\n exestineStore: values.exestineStore,\r\n userStoreID: this.state.userStoreID,\r\n oldAddress: newAddress,\r\n });\r\n this.btn0.removeAttribute(\"disabled\");\r\n } else if (userStoreID >= 1 && this.state.serachTypeval !== 1) {\r\n let addInputData = response.data.data;\r\n this.setState({\r\n errortext: \"\",\r\n addInputData,\r\n marketName: values.marketName,\r\n addressLine1: values.addressLine1,\r\n addressLine2: values.addressLine2,\r\n city: values.city,\r\n state: values.state,\r\n zipcode: values.zipcode,\r\n exestineStore: values.exestineStore,\r\n userStoreID: this.state.userStoreID,\r\n oldAddress: newAddress,\r\n });\r\n this.lookupZipcode(this.state.userStoreID);\r\n this.lookupCity(this.state.userStoreID);\r\n if (this.state.showComponent === \"radius\") {\r\n this.trackCoverageCountRadius(this.state.scale);\r\n }\r\n this.setState({ activeStep: this.state.activeStep + 1 });\r\n localStorage.setItem(\"displayMessage\", 1);\r\n } else if (userStoreID >= 1 && this.state.serachTypeval === 1) {\r\n let addInputData = response.data.data;\r\n this.setState({\r\n errortext: \"\",\r\n addInputData,\r\n zipcode: values.zipcode,\r\n marketName: values.marketName,\r\n addressLine1: values.addressLine1,\r\n addressLine2: values.addressLine2,\r\n city: values.city,\r\n state: values.state,\r\n zipcode: values.zipcode,\r\n exestineStore: values.exestineStore,\r\n userStoreID: this.state.userStoreID,\r\n oldAddress: newAddress,\r\n });\r\n\r\n if (this.state.showComponent === \"radius\") {\r\n this.trackCoverageCountRadius(this.state.scale);\r\n }\r\n this.setState({ activeStep: this.state.activeStep + 1 });\r\n localStorage.setItem(\"displayMessage\", 1);\r\n this.lookupZipcode(this.state.userStoreID);\r\n this.lookupCity(this.state.userStoreID);\r\n }\r\n }\r\n })\r\n .catch((err) => {\r\n this.btn0.removeAttribute(\"disabled\");\r\n this.setState({\r\n isLoading1: false,\r\n marketName: values.marketName,\r\n addressLine1: values.addressLine1,\r\n addressLine2: values.addressLine2,\r\n city: values.city,\r\n state: values.state,\r\n zipcode: values.zipcode,\r\n exestineStore: values.exestineStore,\r\n userStoreID: this.state.userStoreID,\r\n });\r\n if (err.response.status === 400) {\r\n alert(err.message);\r\n }\r\n\r\n if (err.response.status === 401) {\r\n localStorage.removeItem(\"accessKey\");\r\n const { from } = this.props.location.state || {\r\n from: { pathname: \"/\" },\r\n };\r\n this.props.history.push(from);\r\n } else {\r\n alert(err.message);\r\n }\r\n });\r\n\r\n //}\r\n }\r\n }\r\n lookupZipcode1(userStoreID) {\r\n this.setState({\r\n isLoading1: true,\r\n });\r\n const data = {\r\n userStoreID: userStoreID,\r\n RegionId: CONFIG.RegionId,\r\n };\r\n let unzipcodeOptions = [];\r\n axios\r\n .post(CONFIG.API_URL + \"coverage/zipcode\", data)\r\n .then((response) => {\r\n let lookupZipcodeData = response.data.zipcode;\r\n lookupZipcodeData.forEach(function (e) {\r\n unzipcodeOptions.push(e.value);\r\n });\r\n\r\n this.setState({\r\n lookupZipcodeData,\r\n filterlookupZipcodeData: lookupZipcodeData,\r\n unzipcodeOptions,\r\n isLoading1: false,\r\n });\r\n this.lookupCity1(userStoreID);\r\n })\r\n .catch((err) => {\r\n this.setState({\r\n isLoading1: false,\r\n });\r\n if (err.response.status === 401) {\r\n localStorage.removeItem(\"accessKey\");\r\n const { from } = this.props.location.state || {\r\n from: { pathname: \"/\" },\r\n };\r\n this.props.history.push(from);\r\n } else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }\r\n lookupCity1(userStoreID) {\r\n this.setState({\r\n isLoading1: true,\r\n });\r\n const data = {\r\n userStoreID: userStoreID,\r\n RegionId: CONFIG.RegionId,\r\n };\r\n axios\r\n .post(CONFIG.API_URL + \"coverage/city\", data)\r\n .then((response) => {\r\n let lookupCityData = response.data.city;\r\n this.setState({\r\n lookupCityData,\r\n isLoading1: false,\r\n });\r\n this.dummyFn(userStoreID);\r\n })\r\n .catch((err) => {\r\n this.setState({\r\n isLoading1: false,\r\n });\r\n if (err.response.status === 401) {\r\n localStorage.removeItem(\"accessKey\");\r\n const { from } = this.props.location.state || {\r\n from: { pathname: \"/\" },\r\n };\r\n this.props.history.push(from);\r\n } else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }\r\n lookupZipcode(userStoreID) {\r\n this.setState({\r\n isLoading1: true,\r\n });\r\n const data = {\r\n userStoreID: userStoreID,\r\n RegionId: CONFIG.RegionId,\r\n };\r\n let unzipcodeOptions = [];\r\n axios\r\n .post(CONFIG.API_URL + \"coverage/zipcode\", data)\r\n .then((response) => {\r\n let lookupZipcodeData = response.data.zipcode;\r\n lookupZipcodeData.forEach(function (e) {\r\n unzipcodeOptions.push(e.value);\r\n });\r\n\r\n this.setState({\r\n lookupZipcodeData,\r\n filterlookupZipcodeData: lookupZipcodeData,\r\n unzipcodeOptions,\r\n isLoading1: false,\r\n });\r\n return true;\r\n })\r\n .catch((err) => {\r\n this.setState({\r\n isLoading1: false,\r\n });\r\n if (err.response.status === 401) {\r\n localStorage.removeItem(\"accessKey\");\r\n const { from } = this.props.location.state || {\r\n from: { pathname: \"/\" },\r\n };\r\n this.props.history.push(from);\r\n } else {\r\n alert(err.response.data);\r\n }\r\n return false;\r\n });\r\n }\r\n lookupCity(userStoreID) {\r\n this.setState({\r\n isLoading1: true,\r\n });\r\n const data = {\r\n userStoreID: userStoreID,\r\n RegionId: CONFIG.RegionId,\r\n };\r\n axios\r\n .post(CONFIG.API_URL + \"coverage/city\", data)\r\n .then((response) => {\r\n let lookupCityData = response.data.city;\r\n this.setState({\r\n lookupCityData,\r\n isLoading1: false,\r\n });\r\n return true;\r\n })\r\n .catch((err) => {\r\n this.setState({\r\n isLoading1: false,\r\n });\r\n if (err.response.status === 401) {\r\n localStorage.removeItem(\"accessKey\");\r\n const { from } = this.props.location.state || {\r\n from: { pathname: \"/\" },\r\n };\r\n this.props.history.push(from);\r\n } else {\r\n alert(err.response.data);\r\n }\r\n });\r\n return false;\r\n }\r\n\r\n radiusOnChange(scalevalue, value) {\r\n let scale = value;\r\n // this.setState({ scale: scalevalue.target.value, coverageType: 'radius' });\r\n this.setState({ scale: scale, coverageType: \"radius\" });\r\n this.setState({\r\n isLoading1: true,\r\n });\r\n const data = {\r\n UserStoreID: this.state.userStoreID,\r\n Competitorslist: \"\",\r\n SearchType: 1,\r\n Zone: {\r\n // \"Radius\": scalevalue.target.value,\r\n Radius: scale,\r\n Zipcode1: \"\",\r\n Zipcode2: \"\",\r\n Zipcode3: \"\",\r\n CityName: \"\",\r\n },\r\n isCoverageZone: 1,\r\n RegionId: CONFIG.RegionId,\r\n };\r\n let token = localStorage.getItem(\"accessKey\");\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = \"Bearer \" + token;\r\n }\r\n axios\r\n .post(CONFIG.API_URL + \"coverage/competitorbycoverage\", data)\r\n .then((response) => {\r\n let coverageTrackCount = response.data.data.count;\r\n this.setState({\r\n coverageTrackCount,\r\n isLoading1: false,\r\n });\r\n })\r\n .catch((err) => {\r\n this.setState({\r\n isLoading1: false,\r\n });\r\n if (err.response.status === 401) {\r\n localStorage.removeItem(\"accessKey\");\r\n const { from } = this.props.location.state || {\r\n from: { pathname: \"/\" },\r\n };\r\n this.props.history.push(from);\r\n } else {\r\n alert(err.message);\r\n }\r\n });\r\n }\r\n\r\n trackCoverageCount() {\r\n this.setState({\r\n isLoading1: true,\r\n });\r\n const data = {\r\n UserStoreID: this.state.userStoreID,\r\n Competitorslist: this.state.trackedFields.toString(),\r\n SearchType:\r\n this.state.coverageType === \"radius\"\r\n ? 1\r\n : this.state.coverageType === \"zipcode\"\r\n ? 2\r\n : this.state.coverageType === \"city\"\r\n ? 3\r\n : \"\",\r\n Zone: {\r\n Radius: this.state.coverageType === \"radius\" ? this.state.scale : null,\r\n Zipcode1:\r\n this.state.coverageType === \"zipcode\" &&\r\n (this.state.zipcodeOptions.length > 1 ||\r\n this.state.zipcodeOptions.length > 2 ||\r\n this.state.zipcodeOptions.length > 3 ||\r\n this.state.zipcodeOptions.length === 1)\r\n ? this.state.zipcodeOptions[0]\r\n : \"\",\r\n Zipcode2:\r\n this.state.coverageType === \"zipcode\" &&\r\n (this.state.zipcodeOptions.length > 2 ||\r\n this.state.zipcodeOptions.length === 2)\r\n ? this.state.zipcodeOptions[1]\r\n : \"\",\r\n Zipcode3:\r\n this.state.coverageType === \"zipcode\" &&\r\n this.state.zipcodeOptions.length === 3\r\n ? this.state.zipcodeOptions[2]\r\n : \"\",\r\n CityName:\r\n this.state.coverageType === \"city\"\r\n ? this.state.selectedCityOption.value.replace(\",\", \", \")\r\n : null,\r\n },\r\n isCoverageZone: 1,\r\n RegionId: CONFIG.RegionId,\r\n };\r\n let token = localStorage.getItem(\"accessKey\");\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = \"Bearer \" + token;\r\n }\r\n axios\r\n .post(CONFIG.API_URL + \"coverage/competitorbycoverage\", data)\r\n .then((response) => {\r\n let coverageTrackCount = response.data.data.count;\r\n this.setState({\r\n coverageTrackCount,\r\n isLoading1: false,\r\n });\r\n })\r\n .catch((err) => {\r\n this.setState({\r\n isLoading1: false,\r\n });\r\n if (err.response.status === 401) {\r\n localStorage.removeItem(\"accessKey\");\r\n const { from } = this.props.location.state || {\r\n from: { pathname: \"/\" },\r\n };\r\n this.props.history.push(from);\r\n } else {\r\n alert(err.message);\r\n }\r\n });\r\n }\r\n\r\n getBoundingValues = (circle, points) => {\r\n \r\n if (points.length) {\r\n const paddingLength = 150;\r\n const applyToArray = (func, array) => func.apply(Math, array);\r\n let pointsLong = [];\r\n let pointsLat = [];\r\n if (circle) {\r\n pointsLong = points.map((point) => point[0]);\r\n pointsLat = points.map((point) => point[1]);\r\n } else {\r\n pointsLong = points.map((point) => point.geometry.coordinates[0]);\r\n pointsLat = points.map((point) => point.geometry.coordinates[1]);\r\n }\r\n if (!pointsLong.includes(this.state.homeLatLng.longitude))\r\n pointsLong.push(this.state.homeLatLng.longitude);\r\n if (!pointsLat.includes(this.state.homeLatLng.latitude))\r\n pointsLat.push(this.state.homeLatLng.latitude);\r\n const cornersLongLat = [\r\n [applyToArray(Math.min, pointsLong), applyToArray(Math.min, pointsLat)],\r\n [applyToArray(Math.max, pointsLong), applyToArray(Math.max, pointsLat)],\r\n ];\r\n const viewport = new WebMercatorViewport({\r\n width: window.innerWidth,\r\n height: window.innerHeight,\r\n }).fitBounds(cornersLongLat, {\r\n padding: {\r\n top: paddingLength,\r\n bottom: paddingLength,\r\n left: paddingLength,\r\n right: paddingLength,\r\n },\r\n });\r\n const { longitude, latitude, zoom } = viewport;\r\n this.setState((prevState) => {\r\n return {\r\n viewport: {\r\n ...prevState.viewport,\r\n latitude: latitude,\r\n longitude: longitude,\r\n zoom: zoom - 2,\r\n transitionDuration: 100,\r\n transitionInterpolator: new FlyToInterpolator(),\r\n },\r\n };\r\n });\r\n }\r\n };\r\n\r\n addCoverage(event, errors, values) {\r\n let zipcodeOptionsLength = this.state.zipcodeOptions\r\n ? this.state.zipcodeOptions.length\r\n : 0;\r\n if (this.state.showComponent === \"radius\" && this.state.scale === 0) {\r\n let errortext1 = \"Please Choose Radius Value\";\r\n this.setState({\r\n errortext1,\r\n });\r\n }\r\n if (this.state.showComponent === \"zipcode\" && zipcodeOptionsLength === 0) {\r\n let errortext1 =\r\n this.state.zipError === \"\" ? \"Please Choose Zip or Postal Code(s)\" : \"\";\r\n this.setState({\r\n errortext1,\r\n });\r\n }\r\n if (\r\n this.state.showComponent === \"city\" &&\r\n this.state.selectedCityOption.value === undefined\r\n ) {\r\n let errortext1 = \"Please Choose City Name\";\r\n this.setState({\r\n errortext1,\r\n });\r\n } else if (\r\n (this.state.showComponent === \"radius\" && this.state.scale > 0) ||\r\n (this.state.showComponent === \"zipcode\" && zipcodeOptionsLength > 0) ||\r\n (this.state.showComponent === \"city\" &&\r\n this.state.selectedCityOption.value !== \"\")\r\n ) {\r\n this.btn1.setAttribute(\"disabled\", \"disabled\");\r\n this.setState({\r\n isLoading1: true,\r\n errortext1: \"\",\r\n });\r\n let scale = this.state.scale;\r\n\r\n const data = {\r\n userStoreID: this.state.userStoreID,\r\n SearchType:\r\n this.state.showComponent === \"radius\"\r\n ? 1\r\n : this.state.showComponent === \"zipcode\"\r\n ? 2\r\n : this.state.showComponent === \"city\"\r\n ? 3\r\n : \"\",\r\n Zone: {\r\n Radius: this.state.showComponent === \"radius\" ? this.state.scale : \"\",\r\n Zipcode1:\r\n this.state.showComponent === \"zipcode\" &&\r\n (this.state.zipcodeOptions.length > 1 ||\r\n this.state.zipcodeOptions.length > 2 ||\r\n this.state.zipcodeOptions.length > 3 ||\r\n this.state.zipcodeOptions.length === 1)\r\n ? this.state.zipcodeOptions[0]\r\n : \"\",\r\n Zipcode2:\r\n this.state.showComponent === \"zipcode\" &&\r\n (this.state.zipcodeOptions.length > 2 ||\r\n this.state.zipcodeOptions.length === 2)\r\n ? this.state.zipcodeOptions[1]\r\n : \"\",\r\n Zipcode3:\r\n this.state.showComponent === \"zipcode\" &&\r\n this.state.zipcodeOptions.length === 3\r\n ? this.state.zipcodeOptions[2]\r\n : \"\",\r\n CityName:\r\n this.state.showComponent === \"city\"\r\n ? this.state.selectedCityOption.value.replace(\",\", \", \")\r\n : \"\",\r\n },\r\n isCoverageZone: 1,\r\n isFirstDisplay: 1,\r\n RegionId: CONFIG.RegionId,\r\n IsMapBox: CONFIG.IsMapbox,\r\n };\r\n let coverageType = this.state.showComponent;\r\n let zipcodevalues = values.zipcodevalues;\r\n let cityvalue = values.cityvalue;\r\n if (coverageType == \"zipcode\") {\r\n let zipcodevalues = this.state.zipcodeOptions[0];\r\n let zipcodevalues1 = this.state.zipcodeOptions[1];\r\n let zipcodevalues2 = this.state.zipcodeOptions[2];\r\n const zoomValue =\r\n coverageType == \"zipcode\" &&\r\n zipcodevalues !== undefined &&\r\n zipcodevalues1 !== undefined &&\r\n zipcodevalues !== undefined\r\n ? 9\r\n : coverageType == \"zipcode\" &&\r\n zipcodevalues !== undefined &&\r\n zipcodevalues1 !== undefined\r\n ? 11\r\n : coverageType == \"zipcode\" && zipcodevalues !== undefined\r\n ? 12\r\n : \"\";\r\n this.setState({ zoomValue: zoomValue });\r\n // if (zipcodevalues !== undefined) {\r\n // this.zip1Polygon(zipcodevalues);\r\n // }\r\n // if (zipcodevalues1 !== undefined) {\r\n // this.zip2Polygon(zipcodevalues1);\r\n // }\r\n // if (zipcodevalues2 !== undefined) {\r\n // this.zip3Polygon(zipcodevalues2);\r\n // }\r\n }\r\n axios\r\n .post(CONFIG.API_URL + \"coverage/searchcompetitors\", data)\r\n .then((response) => {\r\n let competitorsData = response.data;\r\n if (response.data.data.currentStoreDetail.coverage == \"Radius\") {\r\n let zoomLevel = response.data.data.currentStoreDetail.radius;\r\n let zoomValue =\r\n zoomLevel === 1 || zoomLevel === 2\r\n ? 11\r\n : zoomLevel === 3 || zoomLevel === 4\r\n ? 10\r\n : zoomLevel === 5 || zoomLevel === 6\r\n ? 10\r\n : zoomLevel === 7 ||\r\n zoomLevel === 8 ||\r\n zoomLevel === 9 ||\r\n zoomLevel === 10\r\n ? 10\r\n : 6;\r\n this.setState({ zoomValue });\r\n }\r\n let trackedFields = [];\r\n let unTrackedCount = [];\r\n let trackedFields1 = [];\r\n let uniqzipcode = [\r\n ...new Set(\r\n competitorsData.data.competitors.map(\r\n (item) => item.properties.zipCode\r\n )\r\n ),\r\n ];\r\n competitorsData.data.competitors.forEach(function (e) {\r\n trackedFields.push(\r\n e.properties.storeId + (e.properties.isTrack === 1 ? \"|1\" : \"|0\")\r\n );\r\n });\r\n competitorsData.data.competitors\r\n .filter((e) => e.properties.isTrack === 0)\r\n .forEach(function (e) {\r\n unTrackedCount.push(e.properties.storeId);\r\n });\r\n // competitorsData.data.competitors.filter((e) => e.isTrack === 0).forEach(function (e) { trackedFields1.push(e.storeId + '|0') });\r\n competitorsData.data.competitors.forEach(function (e) {\r\n trackedFields1.push(\r\n e.properties.storeId + (e.properties.isTrack === 1 ? \"|1\" : \"|0\")\r\n );\r\n });\r\n \r\n if (unTrackedCount === undefined) {\r\n unTrackedCount = [];\r\n }\r\n if (trackedFields1 === undefined) {\r\n trackedFields1 = [];\r\n }\r\n\r\n if (trackedFields === undefined) {\r\n trackedFields = [];\r\n }\r\n\r\n // let lat = parseFloat(competitorsData.data.centerPointDetail && (competitorsData.data.centerPointDetail.length > 0 && competitorsData.data.centerPointDetail[0].latitude != null) ? competitorsData.data.centerPointDetail[0].latitude : competitorsData.data.currentStoreDetail.lat);\r\n // let lon = parseFloat(competitorsData.data.centerPointDetail && (competitorsData.data.centerPointDetail.length > 0 && competitorsData.data.centerPointDetail[0].longitude != null) ? competitorsData.data.centerPointDetail[0].longitude : competitorsData.data.currentStoreDetail.lng);\r\n let lat = parseFloat(competitorsData.data.currentStoreDetail.lat);\r\n let lon = parseFloat(competitorsData.data.currentStoreDetail.lng);\r\n // let zoomInitial = this.state.showComponent === 'radius' ? (this.state.zoomValue - 1.5) : this.state.showComponent === 'city' ? 7 : this.state.showComponent === 'zipcode' ? (this.state.zoomValue - 1.5) : '';\r\n circleLine = {};\r\n let radiusCal = this.state.scale;\r\n let dir = 1;\r\n let d2r = Math.PI / 180;\r\n let r2d = 180 / Math.PI;\r\n let earthsradius = 3963;\r\n let points = 64;\r\n // find the raidus in lat/lon\r\n let rlat = (radiusCal / earthsradius) * r2d;\r\n let rlng = rlat / Math.cos(lat * d2r);\r\n\r\n circleData = [];\r\n let start = 0,\r\n end = 0;\r\n if (dir === 1) end = points + 1;\r\n else start = points + 1;\r\n\r\n for (let i = start; dir === 1 ? i < end : i > end; i = i + dir) {\r\n let theta = Math.PI * (i / (points / 2));\r\n let ey = lon + rlng * Math.cos(theta);\r\n let ex = lat + rlat * Math.sin(theta);\r\n circleData.push([ey, ex]);\r\n }\r\n circleLine = {\r\n type: \"Feature\",\r\n geometry: {\r\n type: \"LineString\",\r\n coordinates: circleData,\r\n },\r\n };\r\n \r\n let boundData =\r\n response.data.data.currentStoreDetail.coverage == \"Radius\";\r\n this.setState(\r\n (prevState) => ({\r\n isLoading1: false,\r\n competitorsData,\r\n activeStep: this.state.activeStep + 1,\r\n scale,\r\n trackedFields,\r\n trackedFields1,\r\n unTrackedCount,\r\n coverageType,\r\n zipcodevalues,\r\n cityvalue,\r\n uniqzipcode,\r\n viewport: {\r\n ...prevState.viewport,\r\n latitude: lat,\r\n longitude: lon,\r\n // zoom: zoomInitial,\r\n },\r\n homeLatLng: { longitude: lon, latitude: lat },\r\n \r\n }),\r\n () =>\r\n this.getBoundingValues(\r\n boundData,\r\n boundData ? circleData : competitorsData.data.competitors\r\n )\r\n );\r\n\r\n })\r\n .catch((err) => {\r\n this.setState({\r\n isLoading1: false,\r\n });\r\n if (err.response.status === 401) {\r\n localStorage.removeItem(\"accessKey\");\r\n const { from } = this.props.location.state || {\r\n from: { pathname: \"/\" },\r\n };\r\n this.props.history.push(from);\r\n } else {\r\n alert(err.response.data);\r\n }\r\n this.btn1.removeAttribute(\"disabled\");\r\n });\r\n this.setState({\r\n coverageType,\r\n zipcodevalues,\r\n cityvalue,\r\n });\r\n }\r\n }\r\n\r\n closeModal() {\r\n let path = `/my-market/`;\r\n var isElement = document.getElementById(\"r2\");\r\n if (isElement == null) {\r\n document.getElementById(\"r1\").click();\r\n } else {\r\n document.getElementById(\"r1\").click();\r\n document.getElementById(\"r2\").click();\r\n }\r\n\r\n this.setState({\r\n isLoading1: true,\r\n });\r\n let showComponent = this.state.showComponent;\r\n let selectedCityOption = this.state.selectedCityOption;\r\n let zipcodeOptions = this.state.zipcodeOptions;\r\n let scale = this.state.scale;\r\n let unTrackedCount = this.state.unTrackedCount;\r\n let trackedFields = this.state.trackedFields;\r\n let trackedFields1 = this.state.trackedFields1;\r\n let userStoreID = this.state.userStoreID;\r\n let newAddress = this.state.newAddress;\r\n let oldAddress = this.state.oldAddress;\r\n let tabvalue = this.state.tabvalue;\r\n tabvalue = 0;\r\n newAddress = {};\r\n oldAddress = {};\r\n userStoreID = 0;\r\n showComponent = \"radius\";\r\n zipcodeOptions = [];\r\n selectedCityOption = [];\r\n unTrackedCount = [];\r\n trackedFields = [];\r\n trackedFields1 = [];\r\n scale = 10;\r\n this.setState({\r\n tabvalue,\r\n isLoading1: false,\r\n isSelactCity: false,\r\n unTrackedCount,\r\n trackedFields,\r\n trackedFields1,\r\n open: false,\r\n activeStep: 0,\r\n showComponent,\r\n selectedCityOption,\r\n zipcodeOptions,\r\n scale,\r\n errortext: \"\",\r\n errortext1: \"\",\r\n pageCountMDT: 0,\r\n marketName: \"\",\r\n addressLine1: \"\",\r\n addressLine2: \"\",\r\n city: \"\",\r\n state: \"\",\r\n zipcode: \"\",\r\n exestineStore: \"true\",\r\n addInputData: \"\",\r\n StateCountry: \"\",\r\n userStoreID,\r\n coverageTrackCount: 0,\r\n oldAddress,\r\n newAddress,\r\n });\r\n }\r\n closeModalAddress() {\r\n this.setState({ open2: false });\r\n }\r\n closeModalWebsite() {\r\n this.setState({ open1: false });\r\n }\r\n onCountryChange(e) {\r\n // const isDefaultValue = [];\r\n // const stateData = this.state.stateData;\r\n // const countryData = this.state.countryData;\r\n // stateData.filter((con) => con.stateID === e.target.value).forEach(function (con) { isDefaultValue.unshift(con.countryCode) });\r\n // //stateData.filter((con) => con.stateID === e.target.value).find(con.countryCode);\r\n // countryData.filter((con) => con.countryCode === isDefaultValue.toString()).forEach(function (con) { isDefaultValue.unshift(con.country) });\r\n // isDefaultValue.toString();\r\n\r\n // this.setState({ isDefaultValue });\r\n if (e.target.value === \"\") {\r\n this.setState({ StateCountry: \"\" });\r\n } else {\r\n var state = e.target.value.toString().split(\",\");\r\n var sc_code = state.length > 0 ? state[1].trim() : \"\";\r\n const countryData = this.state.countryData;\r\n // State's country code based country details\r\n let countryDetails = countryData.filter(function (data) {\r\n return data.countryCode === sc_code;\r\n });\r\n\r\n //Adding Country name\r\n // fields['country'] = countryDetails[0].countryID;\r\n this.setState({ StateCountry: countryDetails[0].country });\r\n }\r\n }\r\n handleNext() {\r\n this.setState({ activeStep: this.state.activeStep + 1 });\r\n }\r\n\r\n handleBack() {\r\n // let showComponent = this.state.showComponent;\r\n // let selectedCityOption = this.state.selectedCityOption;\r\n // let selectedZipOption = this.state.selectedZipOption;\r\n // let scale = this.state.scale;\r\n // if (this.state.activeStep === 2) {\r\n // showComponent = 'radius';\r\n // selectedZipOption = [];\r\n // selectedCityOption = [];\r\n // scale = this.state.EditStoredata ? this.state.scale : 10;\r\n // }\r\n if (this.state.activeStep === 2) {\r\n this.setState({ pageCountMDT: 0 });\r\n }\r\n this.setState({\r\n activeStep: this.state.activeStep - 1,\r\n // showComponent, selectedCityOption, selectedZipOption, scale,\r\n open1: false,\r\n open2: false,\r\n showingInfoWindow: false,\r\n showingInfoWindowCity: false,\r\n showingInfoWindowZip: false,\r\n coordinates_one: [],\r\n coordinates_one2: [],\r\n tabvalue: 0,\r\n });\r\n }\r\n\r\n handleClose() {\r\n this.setState({\r\n open: false,\r\n EditStoredata: {},\r\n errortext: \"\",\r\n marketName: \"\",\r\n addressLine1: \"\",\r\n addressLine2: \"\",\r\n city: \"\",\r\n state: \"\",\r\n zipcode: \"\",\r\n StateCountry: \"\",\r\n exestineStore: \"true\",\r\n });\r\n }\r\n errorHandleOpen() {\r\n this.setState({ open1: true });\r\n }\r\n\r\n addwebsite(event, errors, values) {\r\n let errortext = \"\";\r\n if (errors.length <= 0) {\r\n this.btn3.setAttribute(\"disabled\", \"disabled\");\r\n let data = this.state.addInputData;\r\n let addInputData = this.state.addInputData;\r\n data.website = values.website;\r\n data.userStoreID = this.state.userStoreID;\r\n data.isConfirm = true;\r\n data.RegionId = CONFIG.RegionId;\r\n let exestineStore = this.state.exestineStore;\r\n exestineStore = data.isExisting;\r\n let EditStoredata = this.state.EditStoredata;\r\n if (EditStoredata === !{}) {\r\n EditStoredata.marketName = data.storeName;\r\n EditStoredata.addressLine1 = data.address;\r\n EditStoredata.addressLine2 = data.address2;\r\n EditStoredata.city = data.city;\r\n EditStoredata.state = data.state;\r\n EditStoredata.zipcode = data.zipcode;\r\n EditStoredata.exestineStore = data.isExisting;\r\n }\r\n this.setState({\r\n data,\r\n isLoading1: true,\r\n EditStoredata,\r\n exestineStore,\r\n });\r\n if (CONFIG.RegionId === 1) {\r\n let filterData = this.state.stateData.filter(\r\n (ft) => ft.stateID === data.state\r\n )[0];\r\n delete data.stateName;\r\n delete data.countryCode;\r\n data[\"CountryCode\"] = filterData[\"countryCode\"];\r\n data[\"StateName\"] = filterData[\"state\"];\r\n }\r\n axios\r\n .post(CONFIG.API_URL + \"market/add\", data)\r\n .then((response) => {\r\n let userStoreID = this.state.userStoreID;\r\n userStoreID = response.data.userStoreID\r\n ? response.data.userStoreID\r\n : this.state.userStoreID;\r\n\r\n this.setState({\r\n isLoading1: false,\r\n userStoreID,\r\n });\r\n // let userStoreID = response.data.userStoreID;\r\n // this.setState({\r\n // isLoading1: false,\r\n // userStoreID\r\n // })\r\n const already = response.data.result\r\n ? response.data.result.indexOf(\"Store name already exists!\")\r\n : -1;\r\n const storenotExist = response.data.result\r\n ? response.data.result.indexOf(\"Store does not exists!\")\r\n : -1;\r\n const addressNotFound = response.data.result\r\n ? response.data.result.indexOf(\"Address not found!\")\r\n : -1;\r\n if (response.status === 200) {\r\n if (already > -1) {\r\n errortext =\r\n \"Market with same name is available in your account. Please rename the market name to proceed further!\";\r\n this.setState({\r\n open1: false,\r\n errortext,\r\n marketName: addInputData.storeName,\r\n addressLine1: addInputData.address,\r\n addressLine2: addInputData.address2,\r\n city: addInputData.city,\r\n state: addInputData.state,\r\n zipcode: addInputData.zipcode,\r\n exestineStore: addInputData.isExisting,\r\n userStoreID: this.state.userStoreID,\r\n });\r\n this.btn0.removeAttribute(\"disabled\");\r\n }\r\n //else if (response.data.result === 'Store does not exists!') {\r\n else if (storenotExist > -1) {\r\n this.errorHandleOpen();\r\n let addInputData = response.data.data;\r\n this.setState({\r\n open1: false,\r\n errortext: \"\",\r\n addInputData,\r\n marketName: addInputData.storeName,\r\n addressLine1: addInputData.address,\r\n addressLine2: addInputData.address2,\r\n city: addInputData.city,\r\n state: addInputData.state,\r\n zipcode: addInputData.zipcode,\r\n exestineStore: addInputData.isExisting,\r\n userStoreID: this.state.userStoreID,\r\n });\r\n this.btn0.removeAttribute(\"disabled\");\r\n } else if (addressNotFound > -1) {\r\n let addInputData = response.data.data;\r\n this.setState({\r\n open1: false,\r\n errortext: \"\",\r\n addInputData,\r\n open2: true,\r\n marketName: addInputData.storeName,\r\n addressLine1: addInputData.address,\r\n addressLine2: addInputData.address2,\r\n city: addInputData.city,\r\n state: addInputData.state,\r\n zipcode: addInputData.zipcode,\r\n exestineStore: addInputData.isExisting,\r\n userStoreID: this.state.userStoreID,\r\n });\r\n this.btn0.removeAttribute(\"disabled\");\r\n } else if (userStoreID >= 1 && this.state.serachTypeval !== 1) {\r\n let addInputData = response.data.data;\r\n this.setState({\r\n open1: false,\r\n errortext: \"\",\r\n addInputData,\r\n marketName: addInputData.storeName,\r\n addressLine1: addInputData.address,\r\n addressLine2: addInputData.address2,\r\n city: addInputData.city,\r\n state: addInputData.state,\r\n zipcode: addInputData.zipcode,\r\n exestineStore: addInputData.isExisting,\r\n userStoreID: this.state.userStoreID,\r\n });\r\n this.lookupZipcode(this.state.userStoreID);\r\n this.lookupCity(this.state.userStoreID);\r\n if (this.state.showComponent === \"radius\") {\r\n this.trackCoverageCountRadius(this.state.scale);\r\n }\r\n this.setState({ activeStep: this.state.activeStep + 1 });\r\n localStorage.setItem(\"displayMessage\", 1);\r\n } else if (userStoreID >= 1 && this.state.serachTypeval === 1) {\r\n let addInputData = response.data.data;\r\n this.setState({\r\n open1: false,\r\n errortext: \"\",\r\n addInputData,\r\n marketName: addInputData.storeName,\r\n addressLine1: addInputData.address,\r\n addressLine2: addInputData.address2,\r\n city: addInputData.city,\r\n state: addInputData.state,\r\n zipcode: addInputData.zipcode,\r\n exestineStore: addInputData.isExisting,\r\n userStoreID: this.state.userStoreID,\r\n });\r\n\r\n if (this.state.showComponent === \"radius\") {\r\n this.trackCoverageCountRadius(this.state.scale);\r\n }\r\n this.setState({\r\n activeStep: this.state.activeStep + 1,\r\n already: \"\",\r\n });\r\n localStorage.setItem(\"displayMessage\", 1);\r\n this.lookupZipcode(this.state.userStoreID);\r\n this.lookupCity(this.state.userStoreID);\r\n }\r\n }\r\n })\r\n .catch((err) => {\r\n this.setState({\r\n isLoading1: false,\r\n });\r\n if (err.response.status === 400) {\r\n alert(err.message);\r\n }\r\n\r\n if (err.response.status === 401) {\r\n localStorage.removeItem(\"accessKey\");\r\n const { from } = this.props.location.state || {\r\n from: { pathname: \"/\" },\r\n };\r\n this.props.history.push(from);\r\n } else {\r\n alert(err.response.data.Message);\r\n }\r\n this.btn0.removeAttribute(\"disabled\");\r\n });\r\n\r\n this.setState({ open1: false });\r\n }\r\n }\r\n\r\n handleChangePage = (event, page) => {\r\n this.setState({ page });\r\n };\r\n\r\n handleChangePageTrack = (event, pageCount) => {\r\n this.setState({ pageCount });\r\n };\r\n\r\n handleChangePageMTD = (event, pageCountMDT) => {\r\n this.setState({ pageCountMDT });\r\n };\r\n\r\n handleChangeRowsPerPageMTD = (event) => {\r\n this.setState({ pageCountMDT: 0, 10: event.target.value });\r\n };\r\n\r\n handleChangeRowsPerPageTrack = (event) => {\r\n this.setState({ pageCount: 0, 10: event.target.value });\r\n };\r\n\r\n handleChangeRowsPerPage = (event) => {\r\n this.setState({ page: 0, rowsPerPage: event.target.value });\r\n };\r\n\r\n saveCovergae() {\r\n this.btn2.setAttribute(\"disabled\", \"disabled\");\r\n this.setState({\r\n isLoading1: true,\r\n });\r\n\r\n const data = {\r\n UserStoreID: this.state.userStoreID,\r\n Competitorslist: this.state.trackedFields.toString(),\r\n SearchType:\r\n this.state.coverageType === \"radius\"\r\n ? 1\r\n : this.state.coverageType === \"zipcode\"\r\n ? 2\r\n : this.state.coverageType === \"city\"\r\n ? 3\r\n : \"\",\r\n Zone: {\r\n Radius: this.state.coverageType === \"radius\" ? this.state.scale : null,\r\n Zipcode1:\r\n this.state.coverageType === \"zipcode\" &&\r\n (this.state.zipcodeOptions.length > 1 ||\r\n this.state.zipcodeOptions.length > 2 ||\r\n this.state.zipcodeOptions.length > 3 ||\r\n this.state.zipcodeOptions.length === 1)\r\n ? this.state.zipcodeOptions[0]\r\n : \"\",\r\n Zipcode2:\r\n this.state.coverageType === \"zipcode\" &&\r\n (this.state.zipcodeOptions.length > 2 ||\r\n this.state.zipcodeOptions.length === 2)\r\n ? this.state.zipcodeOptions[1]\r\n : \"\",\r\n Zipcode3:\r\n this.state.coverageType === \"zipcode\" &&\r\n this.state.zipcodeOptions.length === 3\r\n ? this.state.zipcodeOptions[2]\r\n : \"\",\r\n CityName:\r\n this.state.coverageType === \"city\"\r\n ? this.state.selectedCityOption.value.replace(\",\", \", \")\r\n : null,\r\n },\r\n isCoverageZone: 1,\r\n RegionId: CONFIG.RegionId,\r\n };\r\n let token = localStorage.getItem(\"accessKey\");\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = \"Bearer \" + token;\r\n }\r\n axios\r\n .post(CONFIG.API_URL + \"coverage/trackcompetitor\", data)\r\n .then((response) => {\r\n // this.state.isLoading=true;\r\n const trackResponse = response.data;\r\n this.setState({\r\n isLoading1: true,\r\n });\r\n const data = {\r\n UserStoreID: this.state.userStoreID,\r\n SearchType:\r\n this.state.coverageType === \"radius\"\r\n ? 1\r\n : this.state.coverageType === \"zipcode\"\r\n ? 2\r\n : this.state.coverageType === \"city\"\r\n ? 3\r\n : \"\",\r\n Zone: {\r\n Radius:\r\n this.state.coverageType === \"radius\" ? this.state.scale : null,\r\n Zipcode1:\r\n this.state.coverageType === \"zipcode\" &&\r\n (this.state.zipcodeOptions.length > 1 ||\r\n this.state.zipcodeOptions.length > 2 ||\r\n this.state.zipcodeOptions.length > 3 ||\r\n this.state.zipcodeOptions.length === 1)\r\n ? this.state.zipcodeOptions[0]\r\n : null,\r\n Zipcode2:\r\n this.state.coverageType === \"zipcode\" &&\r\n (this.state.zipcodeOptions.length > 2 ||\r\n this.state.zipcodeOptions.length === 2)\r\n ? this.state.zipcodeOptions[1]\r\n : null,\r\n Zipcode3:\r\n this.state.coverageType === \"zipcode\" &&\r\n this.state.zipcodeOptions.length === 3\r\n ? this.state.zipcodeOptions[2]\r\n : null,\r\n CityName:\r\n this.state.coverageType === \"city\"\r\n ? this.state.selectedCityOption.value.replace(\",\", \", \")\r\n : null,\r\n },\r\n RegionId: CONFIG.RegionId,\r\n };\r\n\r\n if (response.status === 200) {\r\n let token = localStorage.getItem(\"accessKey\");\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = \"Bearer \" + token;\r\n }\r\n axios\r\n .post(CONFIG.API_URL + \"coverage/savecoverage\", data)\r\n .then((response) => {\r\n // this.state.isLoading=true;\r\n const trackResponse = response.data;\r\n // console.log(trackResponse)\r\n if (response.status === 200) {\r\n this.setState({\r\n //storeModal: false,\r\n isLoading1: false,\r\n activeStep: this.state.activeStep + 1,\r\n trackResponse,\r\n });\r\n // let strOptions1 = this.state.strOptions1;\r\n // strOptions1= [];\r\n // let strOptions = this.state.strOptions;\r\n // strOptions= [];\r\n }\r\n })\r\n .catch((err) => {\r\n this.setState({\r\n isLoading1: false,\r\n });\r\n if (err.response.status === 401) {\r\n localStorage.removeItem(\"accessKey\");\r\n const { from } = this.props.location.state || {\r\n from: { pathname: \"/\" },\r\n };\r\n this.props.history.push(from);\r\n } else {\r\n alert(err.message);\r\n }\r\n });\r\n\r\n this.setState({\r\n storeModal: false,\r\n });\r\n // let strOptions1 = this.state.strOptions1;\r\n // strOptions1= [];\r\n // let strOptions = this.state.strOptions;\r\n // strOptions= [];\r\n //this.componentDidMount();\r\n }\r\n })\r\n .catch((err) => {\r\n this.setState({\r\n isLoading1: false,\r\n });\r\n if (err.response.status === 401) {\r\n localStorage.removeItem(\"accessKey\");\r\n const { from } = this.props.location.state || {\r\n from: { pathname: \"/\" },\r\n };\r\n this.props.history.push(from);\r\n } else {\r\n alert(err.message);\r\n }\r\n });\r\n }\r\n\r\n\r\n // sendTrackFields() {\r\n // const data = {\r\n // \"UserStoreID\": this.state.trackStorId,\r\n // \"Competitorslist\": this.state.trackedFields1.toString(),\r\n // \"SearchType\": this.state.coverageType === 'radius' ? 1 : this.state.coverageType === 'zipcode' ? 2 : this.state.coverageType === 'city' ? 3 : '',\r\n // \"Zone\": {\r\n // \"Radius\": this.state.scale ? this.state.scale : 10,\r\n // \"Zipcode1\": this.state.zipcodevalues ? this.state.zipcodevalues[0] : null,\r\n // \"Zipcode2\": this.state.zipcodevalues ? this.state.zipcodevalues[1] : null,\r\n // \"Zipcode3\": this.state.zipcodevalues ? this.state.zipcodevalues[2] : null,\r\n // \"CityName\": this.state.cityvalue ? this.state.cityvalue[0] : null\r\n // },\r\n // \"isCoverageZone\": 1\r\n // }\r\n // let token = localStorage.getItem('accessKey');\r\n // if (token) {\r\n // axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n // }\r\n // axios.post(CONFIG.API_URL + 'coverage/trackcompetitor', data)\r\n // .then(response => {\r\n // // this.state.isLoading=true;\r\n // const trackResponse = response.data;\r\n // this.setState({\r\n // isLoading: true\r\n // })\r\n // if (response.status === 200) {\r\n // this.setState({\r\n // storeModal: false\r\n // })\r\n // // let strOptions1 = this.state.strOptions1;\r\n // // strOptions1= [];\r\n // // let strOptions = this.state.strOptions;\r\n // // strOptions= [];\r\n // this.componentDidMount();\r\n // }\r\n // }).catch((err) => {\r\n // // if (err.response.status === 401) {\r\n // // localStorage.removeItem('accessKey');\r\n // // const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n // // this.props.history.push(from);\r\n // // }\r\n // // else {\r\n // // alert(err.response.data);\r\n // // }\r\n // });\r\n // this.setState({\r\n // isLoading: false\r\n // })\r\n // }\r\n // trackhandle (store,userstore)\r\n // {\r\n // let trackStorId = userstore;\r\n // let trackedFields = this.state.trackedFields;\r\n // let trackedFields1 = this.state.trackedFields1;\r\n // let index;\r\n // let index1;\r\n // if(this.state.track == true)\r\n // {\r\n // index = trackedFields.indexOf(+store + '|0');\r\n // index1 = trackedFields1.indexOf(+store + '|0');\r\n // if (index >= 0) {\r\n // trackedFields.splice(index, 1)\r\n // }\r\n // if (index1 >= 0) {\r\n // trackedFields1.splice(index1, 1)\r\n // }\r\n // //trackOptions.push(+storeID);\r\n // trackedFields.push(+store + '|1');\r\n // trackedFields1.push(+store + '|1');\r\n // }\r\n // else if(this.state.track == false)\r\n // {\r\n // index = trackedFields.indexOf(+store + '|1');\r\n // index1 = trackedFields1.indexOf(+store + '|1');\r\n // if (index >= 0) {\r\n // trackedFields.splice(index, 1)\r\n // }\r\n // if (index1 >= 0) {\r\n // trackedFields1.splice(index1, 1)\r\n // }\r\n // trackedFields.push(+store + '|0');\r\n // trackedFields1.push(+store + '|0');\r\n // }\r\n // this.setState({\r\n // trackedFields, trackStorId, trackedFields1\r\n // })\r\n\r\n // }\r\n\r\n trackhandleClick(event, storeID, userStId) {\r\n let trackStorId = userStId;\r\n let storesid = storeID;\r\n let tra = this.state.isTracks;\r\n if (this.state.selectedPlace === storesid) {\r\n this.setState({ isTracks: tra === 1 ? 0 : 1 });\r\n }\r\n // let trackOptions = this.state.trackOptions;\r\n let trackedFields = this.state.trackedFields;\r\n let trackedFields1 = this.state.trackedFields1;\r\n let index;\r\n let index1;\r\n\r\n if (event.target.checked) {\r\n // this.state.disablecheckbox = true;\r\n index = trackedFields.indexOf(+storeID + \"|0\");\r\n index1 = trackedFields1.indexOf(+storeID + \"|0\");\r\n if (index >= 0) {\r\n trackedFields.splice(index, 1);\r\n }\r\n if (index1 >= 0) {\r\n trackedFields1.splice(index1, 1);\r\n }\r\n //trackOptions.push(+storeID);\r\n trackedFields.push(+storeID + \"|1\");\r\n trackedFields1.push(+storeID + \"|1\");\r\n } else if (!event.target.checked) {\r\n index = trackedFields.indexOf(+storeID + \"|1\");\r\n index1 = trackedFields1.indexOf(+storeID + \"|1\");\r\n if (index >= 0) {\r\n trackedFields.splice(index, 1);\r\n }\r\n if (index1 >= 0) {\r\n trackedFields1.splice(index1, 1);\r\n }\r\n trackedFields.push(+storeID + \"|0\");\r\n trackedFields1.push(+storeID + \"|0\");\r\n }\r\n this.setState({\r\n trackedFields,\r\n trackStorId,\r\n trackedFields1,\r\n });\r\n }\r\n\r\n upgradehandleClick(event, storeID, userStId) {\r\n let userStorId = userStId;\r\n let trackOptions = this.state.trackOptions;\r\n let strOptions = this.state.strOptions;\r\n let strOptions1 = this.state.strOptions1;\r\n let index;\r\n let index1;\r\n\r\n if (event.target.checked) {\r\n // this.state.disablecheckbox = true;\r\n index = strOptions.indexOf(+storeID + \"|0\");\r\n index1 = strOptions1.indexOf(+storeID + \"|0\");\r\n if (index >= 0) {\r\n strOptions.splice(index, 1);\r\n }\r\n if (index1 >= 0) {\r\n strOptions1.splice(index1, 1);\r\n }\r\n trackOptions.push(+storeID);\r\n strOptions.push(+storeID + \"|1\");\r\n strOptions1.push(+storeID + \"|1\");\r\n } else if (!event.target.checked) {\r\n index = strOptions.indexOf(+storeID + \"|1\");\r\n index1 = strOptions1.indexOf(+storeID + \"|1\");\r\n if (index >= 0) {\r\n strOptions.splice(index, 1);\r\n }\r\n if (index1 >= 0) {\r\n strOptions1.splice(index1, 1);\r\n }\r\n strOptions.push(+storeID + \"|0\");\r\n strOptions1.push(+storeID + \"|0\");\r\n }\r\n this.setState({\r\n strOptions,\r\n userStorId,\r\n strOptions1,\r\n });\r\n }\r\n\r\n getMapQuestResultZip(query) {\r\n let lengthCheck = query.length;\r\n let centerLat, centerLng;\r\n let checkZip = 0;\r\n if (this.timeout) clearTimeout(this.timeout);\r\n this.timeout = setTimeout(() => {\r\n query.map((zipCode) => {\r\n const url =\r\n CONFIG.MapQuestKey_URL +\r\n CONFIG.MapQuestKey +\r\n \"&hostedData=mqap.uspostalcodes&origin=\" +\r\n zipCode +\r\n \"&ambiguities=ignore\";\r\n fetch(url)\r\n .then((response) => response.json())\r\n .then((response) => {\r\n let data = [];\r\n let coordinates = [];\r\n let coordinates_one = [];\r\n for (var val = 0; val < response.resultsCount; val++) {\r\n if (\r\n response.searchResults[val].fields.POSTCODE ===\r\n zipCode.toString()\r\n ) {\r\n try {\r\n data = response.searchResults[val].shapePoints.exterior;\r\n let Arr2 = [],\r\n Arr3 = [];\r\n // coordinates = [];\r\n let datas = [];\r\n let test = [];\r\n //let check = response.searchResults[2].shapePoints.exterior;\r\n data.map((detailss) => {\r\n test.push(detailss);\r\n });\r\n for (var i = 0; i < test.length; i++) {\r\n if ((i + 2) % 2 == 0) {\r\n Arr3.push(test[i]);\r\n } else {\r\n Arr2.push(test[i]);\r\n }\r\n }\r\n var merged = [];\r\n for (var i = 0; i < Arr2.length; i++) {\r\n merged.push(appendArrays(Arr2[i], Arr3[i]));\r\n }\r\n // console.log(merged);\r\n function appendArrays() {\r\n var temp = [];\r\n for (var i = 0; i < arguments.length; i++) {\r\n temp.push(arguments[i]);\r\n }\r\n return temp;\r\n }\r\n let position = 0;\r\n merged.map((location) => {\r\n coordinates.push({ lat: location[1], lng: location[0] });\r\n // console.log(\"lat\"- location[1], \"lng\"-location[0] );\r\n // coordinates.push( [parseFloat(location[1]), parseFloat(location[0])] );\r\n // bounds.extend({\"lat\": location[1], \"lng\": location[0]});\r\n });\r\n this.state.coordinates = coordinates;\r\n this.setState({\r\n centerLat: coordinates[0].lat,\r\n centerLng: coordinates[0].lng,\r\n });\r\n coordinates_one.push([coordinates]);\r\n // this.state.coordinates_one = [...coordinates_one]\r\n this.state.coordinates_one = merged;\r\n // console.log(this.state.coordinates_one);\r\n coordinates = [];\r\n // console.log(centerLat, centerLng, \"center lat lng\");\r\n } catch (e) {\r\n for (\r\n var n = 0;\r\n n < response.searchResults[val].shapePoints.length;\r\n n++\r\n ) {\r\n data = response.searchResults[val].shapePoints[n].exterior;\r\n let Arr2 = [],\r\n Arr3 = [];\r\n // coordinates = [];\r\n let datas = [];\r\n let test = [];\r\n //let check = response.searchResults[2].shapePoints.exterior;\r\n data.map((detailss) => {\r\n test.push(detailss);\r\n });\r\n for (var i = 0; i < test.length; i++) {\r\n if ((i + 2) % 2 == 0) {\r\n Arr3.push(test[i]);\r\n } else {\r\n Arr2.push(test[i]);\r\n }\r\n }\r\n var merged = [];\r\n for (var i = 0; i < Arr2.length; i++) {\r\n merged.push(appendArrays(Arr2[i], Arr3[i]));\r\n }\r\n function appendArrays() {\r\n var temp = [];\r\n for (var i = 0; i < arguments.length; i++) {\r\n temp.push(arguments[i]);\r\n }\r\n return temp;\r\n }\r\n let position = 0;\r\n merged.map((location) => {\r\n coordinates.push({ lat: location[1], lng: location[0] });\r\n // coordinates.push( [parseFloat(location[1]), parseFloat(location[0])] );\r\n // bounds.extend({\"lat\": location[1], \"lng\": location[0]});\r\n });\r\n this.state.coordinates = coordinates;\r\n coordinates_one.push([coordinates]);\r\n this.state.coordinates_one = [...coordinates_one];\r\n coordinates = [];\r\n }\r\n }\r\n }\r\n }\r\n var mergedCoordinates = this.state.coordinates_one;\r\n if (checkZip === 0) {\r\n this.setState({ coordinates_one2: mergedCoordinates });\r\n checkZip++;\r\n } else {\r\n var concatCoord =\r\n this.state.coordinates_one2.concat(mergedCoordinates);\r\n this.setState({ coordinates_one2: concatCoord });\r\n }\r\n })\r\n .catch((error) => this.setState({ isLoading: false }));\r\n });\r\n }, 1000);\r\n }\r\n\r\n getMapQuestResultCity(query) {\r\n var citySplit = query.split(\",\");\r\n var city = citySplit[0].toUpperCase();\r\n if (!query) {\r\n return;\r\n }\r\n if (this.timeout) clearTimeout(this.timeout);\r\n this.timeout = setTimeout(() => {\r\n const url =\r\n CONFIG.MapQuestKey_URL +\r\n CONFIG.MapQuestKey +\r\n \"&hostedData=mqap.uspostalcodes&origin=\" +\r\n query +\r\n \"&ambiguities=ignore\";\r\n fetch(url)\r\n .then((response) => response.json())\r\n .then((response) => {\r\n let data = [];\r\n let coordinates = [];\r\n let coordinates_one = [];\r\n for (var val = 0; val < response.resultsCount; val++) {\r\n if (response.searchResults[val].fields.ADMIN4 === city) {\r\n try {\r\n data = response.searchResults[val].shapePoints.exterior;\r\n let Arr2 = [],\r\n Arr3 = [];\r\n // coordinates = [];\r\n let datas = [];\r\n let test = [];\r\n //let check = response.searchResults[2].shapePoints.exterior;\r\n data.map((detailss) => {\r\n test.push(detailss);\r\n });\r\n for (var i = 0; i < test.length; i++) {\r\n if ((i + 2) % 2 == 0) {\r\n Arr3.push(test[i]);\r\n } else {\r\n Arr2.push(test[i]);\r\n }\r\n }\r\n var merged = [];\r\n for (var i = 0; i < Arr2.length; i++) {\r\n merged.push(appendArrays(Arr2[i], Arr3[i]));\r\n }\r\n function appendArrays() {\r\n var temp = [];\r\n for (var i = 0; i < arguments.length; i++) {\r\n temp.push(arguments[i]);\r\n }\r\n return temp;\r\n }\r\n let position = 0;\r\n merged.map((location) => {\r\n coordinates.push({ lat: location[1], lng: location[0] });\r\n // coordinates.push( [parseFloat(location[1]), parseFloat(location[0])] );\r\n // bounds.extend({\"lat\": location[1], \"lng\": location[0]});\r\n });\r\n this.state.coordinates = coordinates;\r\n coordinates_one.push([coordinates]);\r\n this.state.coordinates_one = [...coordinates_one];\r\n coordinates = [];\r\n } catch (e) {\r\n for (\r\n var n = 0;\r\n n < response.searchResults[val].shapePoints.length;\r\n n++\r\n ) {\r\n data = response.searchResults[val].shapePoints[n].exterior;\r\n let Arr2 = [],\r\n Arr3 = [];\r\n // coordinates = [];\r\n let datas = [];\r\n let test = [];\r\n //let check = response.searchResults[2].shapePoints.exterior;\r\n data.map((detailss) => {\r\n test.push(detailss);\r\n });\r\n for (var i = 0; i < test.length; i++) {\r\n if ((i + 2) % 2 == 0) {\r\n Arr3.push(test[i]);\r\n } else {\r\n Arr2.push(test[i]);\r\n }\r\n }\r\n var merged = [];\r\n for (var i = 0; i < Arr2.length; i++) {\r\n merged.push(appendArrays(Arr2[i], Arr3[i]));\r\n }\r\n function appendArrays() {\r\n var temp = [];\r\n for (var i = 0; i < arguments.length; i++) {\r\n temp.push(arguments[i]);\r\n }\r\n return temp;\r\n }\r\n let position = 0;\r\n merged.map((location) => {\r\n coordinates.push({ lat: location[1], lng: location[0] });\r\n // coordinates.push([parseFloat(location[1]), parseFloat(location[0])]);\r\n // bounds.extend({\"lat\": location[1], \"lng\": location[0]});\r\n });\r\n this.state.coordinates = coordinates;\r\n coordinates_one.push([coordinates]);\r\n this.state.coordinates_one = [...coordinates_one];\r\n coordinates = [];\r\n }\r\n }\r\n }\r\n }\r\n var mergedCoordinates = this.state.coordinates_one;\r\n this.setState({ coordinates_one: mergedCoordinates });\r\n })\r\n\r\n .catch((error) => this.setState({ isLoading: false }));\r\n }, 1000);\r\n }\r\n\r\n deleteComp() {\r\n const data = {\r\n UserStoreID: this.state.userStoreId,\r\n CompetitorID: this.state.selectedPlace,\r\n SearchType:\r\n this.state.coverageType === \"radius\"\r\n ? 1\r\n : this.state.coverageType === \"zipcode\"\r\n ? 2\r\n : this.state.coverageType === \"city\"\r\n ? 3\r\n : \"\",\r\n Zone: {\r\n Radius: this.state.coverageType === \"radius\" ? this.state.scale : null,\r\n Zipcode1:\r\n this.state.coverageType === \"zipcode\" &&\r\n (this.state.zipcodeOptions.length > 1 ||\r\n this.state.zipcodeOptions.length > 2 ||\r\n this.state.zipcodeOptions.length > 3 ||\r\n this.state.zipcodeOptions.length === 1)\r\n ? this.state.zipcodeOptions[0]\r\n : \"\",\r\n Zipcode2:\r\n this.state.coverageType === \"zipcode\" &&\r\n (this.state.zipcodeOptions.length > 2 ||\r\n this.state.zipcodeOptions.length === 2)\r\n ? this.state.zipcodeOptions[1]\r\n : \"\",\r\n Zipcode3:\r\n this.state.coverageType === \"zipcode\" &&\r\n this.state.zipcodeOptions.length === 3\r\n ? this.state.zipcodeOptions[2]\r\n : \"\",\r\n CityName:\r\n this.state.coverageType === \"city\"\r\n ? this.state.selectedCityOption.value.replace(\",\", \", \")\r\n : null,\r\n },\r\n isCoverageZone: 1,\r\n RegionId: CONFIG.RegionId,\r\n };\r\n\r\n let token = localStorage.getItem(\"accessKey\");\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = \"Bearer \" + token;\r\n }\r\n\r\n axios\r\n .post(CONFIG.API_URL + \"coverage/hidecompetitor\", data)\r\n .then((response) => {\r\n // this.state.isLoading=true;\r\n const success = response.data;\r\n\r\n if (response.status === 200) {\r\n //alert('Hide ScuessFully');\r\n //this.componentDidMount();\r\n }\r\n })\r\n .catch((err) => {\r\n if (err.response.status === 401) {\r\n localStorage.removeItem(\"accessKey\");\r\n const { from } = this.props.location.state || {\r\n from: { pathname: \"/\" },\r\n };\r\n this.props.history.push(from);\r\n } else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }\r\n\r\n onMarkerClick = (event) => {\r\n \r\n let latitude = Number(event.lngLat[1]);\r\n let longitude = Number(event.lngLat[0]);\r\n let data = event.features.filter((ft) => ft.layer.type === \"circle\")[0];\r\n if (\r\n data &&\r\n data.layer.type === \"circle\" &&\r\n event.target.className === \"overlays\"\r\n ) {\r\n let selectedMarker = data.properties;\r\n let track = selectedMarker.isTrack;\r\n let storeid = selectedMarker.storeId;\r\n let userstid = selectedMarker.userStoreId;\r\n let marker = selectedMarker.storeName;\r\n let lat = selectedMarker.lat;\r\n let lng = selectedMarker.lng;\r\n let address = selectedMarker.storeAddress;\r\n let add = selectedMarker.storeAddress;\r\n let recNum = selectedMarker.recNum;\r\n var last = add.lastIndexOf(\",\");\r\n var s1 = add.substring(0, last);\r\n var s2 = add.substring(last + 1);\r\n this.setState({\r\n selectedPlace: storeid,\r\n userStr: userstid,\r\n activeMarker: marker ? marker : \"\",\r\n lat: lat,\r\n lng: lng,\r\n track: track === 1 ? true : false,\r\n isTracks: track,\r\n tracked: track === 1 ? \"Click to Untrack\" : \"Click to Track\",\r\n address: address ? s1 : \"\",\r\n address1: address ? s2 : \"\",\r\n showingInfoWindow: true,\r\n popupInfoLatlng: { latitude, longitude },\r\n recNum,\r\n });\r\n }\r\n };\r\n\r\n goToMymarket() {\r\n let showComponent = this.state.showComponent;\r\n let selectedCityOption = this.state.selectedCityOption;\r\n let zipcodeOptions = this.state.zipcodeOptions;\r\n let scale = this.state.scale;\r\n let unTrackedCount = this.state.unTrackedCount;\r\n let trackedFields = this.state.trackedFields;\r\n let trackedFields1 = this.state.trackedFields1;\r\n let userStoreID = this.state.userStoreID;\r\n let addInputData = this.state.addInputData;\r\n let newAddress = this.state.newAddress;\r\n let oldAddress = this.state.oldAddress;\r\n let tabvalue = this.state.tabvalue;\r\n tabvalue = 0;\r\n newAddress = {};\r\n oldAddress = {};\r\n userStoreID = 0;\r\n showComponent = \"radius\";\r\n zipcodeOptions = [];\r\n selectedCityOption = [];\r\n scale = 10;\r\n unTrackedCount = [];\r\n trackedFields = [];\r\n trackedFields1 = [];\r\n addInputData = \"\";\r\n this.setState({\r\n open: false,\r\n tabvalue,\r\n isSelactCity: false,\r\n unTrackedCount,\r\n trackedFields,\r\n trackedFields1,\r\n activeStep: 0,\r\n showComponent,\r\n zipcodeOptions,\r\n selectedCityOption,\r\n scale,\r\n errortext: \"\",\r\n errortext1: \"\",\r\n pageCountMDT: 0,\r\n marketName: \"\",\r\n addressLine1: \"\",\r\n addressLine2: \"\",\r\n city: \"\",\r\n state: \"\",\r\n zipcode: \"\",\r\n exestineStore: \"true\",\r\n StateCountry: \"\",\r\n coverageTrackCount: 0,\r\n userStoreID,\r\n addInputData,\r\n newAddress,\r\n oldAddress,\r\n });\r\n\r\n let path = `/my-market/`;\r\n this.props.parm.children === undefined\r\n ? this.props.parentMethod()\r\n : this.props.parm.children.props.history.push(path);\r\n\r\n var isElement = document.getElementById(\"r2\");\r\n if (isElement == null) {\r\n document.getElementById(\"r1\").click();\r\n } else {\r\n document.getElementById(\"r1\").click();\r\n document.getElementById(\"r2\").click();\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n // this.setState({\r\n // isLoading: true\r\n // })\r\n this.delayedShowMarker();\r\n let token = localStorage.getItem(\"accessKey\");\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = \"Bearer \" + token;\r\n }\r\n // axios.post(CONFIG.API_URL + 'Account/reputationstore')\r\n if(this.state.open === true){\r\n axios\r\n .post(CONFIG.API_URL + \"Account/reputationstore/\" + CONFIG.RegionId)\r\n .then((res) => {\r\n const myMarketData = res.data;\r\n let serachTypeval;\r\n if (myMarketData.result1.length > 0) {\r\n serachTypeval = myMarketData.result1.find(function (searchType) {\r\n return searchType;\r\n });\r\n serachTypeval = serachTypeval.searchType;\r\n }\r\n this.setState({\r\n isLoading: false,\r\n myMarketData,\r\n serachTypeval,\r\n });\r\n })\r\n .catch((err) => {\r\n this.setState({ isLoading: false });\r\n if (err.response.status === 401) {\r\n localStorage.removeItem(\"accessKey\");\r\n const { from } = this.props.location.state || {\r\n from: { pathname: \"/\" },\r\n };\r\n this.props.history.push(from);\r\n } else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }\r\n \r\n\r\n // axios.get(CONFIG.API_URL + 'home/lookupdata')\r\n axios\r\n .get(CONFIG.API_URL + \"home/lookupdata/\" + CONFIG.RegionId + \"/\" + 0)\r\n .then((response) => {\r\n let stateData = response.data.lookups.statesList;\r\n let countryData = response.data.lookups.countryList;\r\n //To know how many Countries in statesList data\r\n let StateCountryCount = stateData.filter((data) => {\r\n return data.stateID === \"\";\r\n }).length;\r\n\r\n this.setState({\r\n stateData,\r\n countryData,\r\n StateCountryCount,\r\n });\r\n });\r\n }\r\n \r\n handleViewportChange = (viewport) => {\r\n this.setState({ viewport });\r\n };\r\n render() {\r\n const steps = [\r\n this.state.title1,\r\n \"Choose Coverage Type\",\r\n \"Review Coverage\",\r\n \"Confirm Market\",\r\n ];\r\n const params = {\r\n v: \"3.exp\",\r\n key: \"AIzaSyDaYQZ0es5K-kLgDuZuTqRHKiTDENEMxxQ\",\r\n };\r\n let storeid = this.state.selectedPlace;\r\n const {\r\n ZipcodeFilter,\r\n zipcodeOptions,\r\n isSelactCity,\r\n unzipcodeOptions,\r\n EditStoredata,\r\n selectedCityOption,\r\n selectedZipOption,\r\n trackedFields,\r\n trackedFields1,\r\n unTrackedCount,\r\n addInputData,\r\n errortext,\r\n errortext1,\r\n tabvalue,\r\n filterlookupZipcodeData,\r\n zipError,\r\n lookupZipcodeData,\r\n lookupCityData,\r\n showComponent,\r\n addMarketData,\r\n zipcode,\r\n stateData,\r\n countryData,\r\n rowsPerPage,\r\n page,\r\n pageCount,\r\n pageCountMDT,\r\n myMarketData,\r\n isLoading,\r\n isLoading1,\r\n isDefaultValue,\r\n trackModalData,\r\n strOptions,\r\n selectedPlace,\r\n activeMarker,\r\n showingInfoWindow,\r\n address,\r\n } = this.state;\r\n const {\r\n open,\r\n open1,\r\n open2,\r\n snackOpen,\r\n snackMSg,\r\n activeStep,\r\n radiusValue,\r\n competitorsData,\r\n trackResponse,\r\n homeLatLng,\r\n } = this.state;\r\n const {\r\n coverageTrackCount,\r\n zipCoordinates1,\r\n zipCoordinates2,\r\n zipCoordinates3,\r\n cityCoordinates,\r\n StateCountryCount,\r\n viewport,\r\n popupInfoLatlng,\r\n } = this.state;\r\n const defaultValues = {\r\n coverageType: this.state.showComponent,\r\n exestineStore: this.state.exestineStore\r\n ? this.state.exestineStore.toString()\r\n : EditStoredata && EditStoredata.exestineStore\r\n ? EditStoredata.exestineStore.toString()\r\n : \"true\",\r\n };\r\n const defaultProps = {\r\n helpTitle:\r\n this.state.activeStep && this.state.activeStep === 1\r\n ? \"Let's define your coverage\"\r\n : this.state.activeStep && this.state.activeStep === 2\r\n ? \"Review your coverage area\"\r\n : \"\",\r\n\r\n helpContent:\r\n (this.state.activeStep &&\r\n this.state.activeStep === 1 &&\r\n CONFIG.RegionId == 2) ||\r\n CONFIG.RegionId == 4\r\n ? \"

Sometimes what you consider your competitor area can change, that's fine! Come back to this section any time you want to change the coverage area.

Refer the below help video for more information.

\"\r\n : this.state.activeStep &&\r\n this.state.activeStep === 1 &&\r\n CONFIG.RegionId != (2 || 4)\r\n ? \"

Sometimes what you consider your competitor area can change, that's fine! Come back to this section any time you want to change the coverage area.

Refer the below help video for more information.

\"\r\n : this.state.activeStep && this.state.activeStep === 2\r\n ? \"
Lay of the land

Click on the Map icon to view the stores on a map and see which ones are advertising rates (blue) and which ones are not (black).

I can't find a store

If you find there's a store missing on the list, click the Are there any stores missing? link and fill out the form.

\"\r\n : \"\",\r\n };\r\n // let errMsg = CONFIG.RegionId === 3 ? CONFIG.PostalCodevalidationUK:CONFIG.PostalCodevalidation;\r\n\r\n return (\r\n
\r\n {isLoading ? (\r\n
\r\n
\r\n
\r\n ) : (\r\n \"\"\r\n )}\r\n {isLoading1 ? (\r\n
\r\n
\r\n
\r\n ) : (\r\n \"\"\r\n )}\r\n \r\n \r\n
\r\n {this.state.activeStep === 0 ? (\r\n {this.state.title}\r\n ) : this.state.activeStep === 1 ? (\r\n {this.state.title}\r\n ) : this.state.activeStep === 2 ? (\r\n {this.state.title}\r\n ) : this.state.activeStep === 3 ? (\r\n {this.state.title}\r\n ) : (\r\n \"\"\r\n )}\r\n \r\n \r\n \r\n\r\n \r\n {steps.map((label, index) => (\r\n \r\n index\r\n ? \"MuiStepIcon-completed-cx\"\r\n : \"\"\r\n }\r\n // optional={index+1}\r\n completed={false}\r\n >\r\n {label}\r\n \r\n \r\n ))}\r\n \r\n
\r\n
\r\n\r\n \r\n \r\n
\r\n
\r\n {this.state.activeStep === 0 ? (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n {errortext ? errortext : \"\"}\r\n
\r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n {CONFIG.RegionId === 3 ? (\r\n \"\"\r\n ) : (\r\n \r\n \r\n this.onCountryChange(e)\r\n }\r\n value={\r\n this.state.state\r\n ? this.state.state\r\n : EditStoredata.state\r\n ? EditStoredata.state\r\n : \"\"\r\n }\r\n >\r\n \r\n {stateData\r\n ? stateData.map((state) =>\r\n state.stateID === \"\" &&\r\n StateCountryCount <= 1 ? (\r\n \"\"\r\n ) : (\r\n \r\n {state.state}\r\n \r\n )\r\n )\r\n : \"\"}\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {CONFIG.RegionId === 3 ? (\r\n \"\"\r\n ) : (\r\n \r\n {/* */}\r\n \r\n {this.state.StateCountry}\r\n \r\n {/* {countryData ? countryData.map((country) =>\r\n \r\n\r\n ) : ''} */}\r\n \r\n )}\r\n
\r\n \r\n
\r\n
\r\n {/* */}\r\n\r\n {/* */}\r\n\r\n {\r\n this.btn0 = btn0;\r\n }}\r\n type=\"submit\"\r\n variant=\"contained\"\r\n color=\"primary\"\r\n className=\"next-btn save-t\"\r\n >\r\n Save and Go to Next\r\n \r\n \r\n Go Back\r\n \r\n {/* \r\n Back\r\n */}\r\n\r\n {/* */}\r\n\r\n {/* \r\n \r\n */}\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n Store not found\r\n \r\n \r\n \r\n \r\n \r\n

\r\n This store is not yet part of our database.\r\n Let us know if this store needs to be added\r\n to our system. Our research team will review\r\n your inquiry and add the store to our\r\n database within 72 hours.\r\n

\r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n \r\n {\r\n this.btn3 = btn3;\r\n }}\r\n type=\"submit\"\r\n color=\"primary\"\r\n autoFocus\r\n >\r\n Submit & Continue with this address\r\n \r\n {\r\n this.btn3 = btn3;\r\n }}\r\n onClick={this.closeModalWebsite.bind(this)}\r\n color=\"primary\"\r\n className=\"cancel-web-btn\"\r\n style={{ marginLeft: \"0px\" }}\r\n type=\"button\"\r\n >\r\n Update address\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n Address not found\r\n \r\n \r\n \r\n \r\n

\r\n Please make sure you have entered a valid\r\n address.\r\n

\r\n

\r\n If you believe you have received this message in\r\n error, please contact our support team at{\" \"}\r\n {CONFIG.Mail_Support} or{\" \"}\r\n {CONFIG.RegionId === 3\r\n ? CONFIG.Sales_Support\r\n : CONFIG.Toll_Free}\r\n .\r\n

\r\n \r\n \r\n
\r\n \r\n
\r\n ) : this.state.activeStep === 1 ? (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* \r\n \r\n \r\n \r\n\r\n */}\r\n
\r\n
\r\n Define your coverage type{\" \"}\r\n \r\n
\r\n
\r\n \r\n }\r\n label=\"Radius\"\r\n />\r\n \r\n }\r\n label=\"Zip or Postal Code(s) *\"\r\n />\r\n \r\n }\r\n label=\"City Name *\"\r\n />\r\n
\r\n \r\n \r\n {this.state.showComponent === \"radius\" ? (\r\n
\r\n

Radius based market coverage

\r\n \r\n {CONFIG.RegionId == 2 || CONFIG.RegionId == 4\r\n ? \"How many kilometres would you like to choose as your Radius?\"\r\n : \"How many miles would you like to choose as your Radius?\"}\r\n

\r\n {/* \r\n {(CONFIG.RegionId == 2) ||(CONFIG.RegionId == 4) ?'10 kilometres':'10 miles'}*/}\r\n \r\n
\r\n
\r\n You selected {this.state.scale}{\" \"}\r\n {CONFIG.RegionId == 2 || CONFIG.RegionId == 4\r\n ? \"kilometre\"\r\n : \"mile\"}\r\n {this.state.scale === \"1\" ? \"\" : \"s\"}\r\n
\r\n
\r\n {errortext1 ? errortext1 : \"\"}\r\n
\r\n
\r\n {isLoading1 === false ? (\r\n //

{this.state.coverageTrackCount > 0 ? 'Expect about ' + this.state.coverageTrackCount : 'There are no'} competitor{this.state.coverageTrackCount === 1 || this.state.coverageTrackCount === 0 ? '' : 's'} in this radius.

\r\n

\r\n {this.state.coverageTrackCount > 0 ? (\r\n \r\n There{\" \"}\r\n {this.state.coverageTrackCount === 1\r\n ? \"is\"\r\n : \"are\"}{\" \"}\r\n \r\n \r\n {this.state.coverageTrackCount}\r\n {\" \"}\r\n \r\n competitor\r\n {this.state.coverageTrackCount ===\r\n 1\r\n ? \"\"\r\n : \"s\"}\r\n \r\n {\" \"}\r\n \r\n ) : (\r\n \"There are no competitors\"\r\n )}{\" \"}\r\n within this radius.\r\n

\r\n ) : (\r\n \"\"\r\n )}\r\n
\r\n
\r\n ) : this.state.showComponent === \"zipcode\" ? (\r\n
\r\n \r\n \r\n

\r\n * Zip or Postal Code(s) (25 miles around market center)\r\n

\r\n \r\n
\r\n \r\n \r\n \r\n \r\n

\r\n Zip or Postal Code(s)\r\n

\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n

\r\n Pick up to three Zip or Postal Code(s)\r\n

\r\n \r\n \r\n

\r\n {zipcodeOptions && zipcodeOptions[0]\r\n ? zipcodeOptions[0]\r\n : \"\"}\r\n {zipcodeOptions &&\r\n zipcodeOptions[1] &&\r\n !zipcodeOptions[2]\r\n ? \", \" + zipcodeOptions[1]\r\n : \"\"}\r\n {zipcodeOptions &&\r\n zipcodeOptions[1] &&\r\n zipcodeOptions[2]\r\n ? \", \" + zipcodeOptions[1]\r\n : \"\"}\r\n {zipcodeOptions && zipcodeOptions[2]\r\n ? \", \" + zipcodeOptions[2]\r\n : \"\"}\r\n

\r\n \r\n
\r\n \r\n {filterlookupZipcodeData &&\r\n filterlookupZipcodeData.length > 0 ? (\r\n filterlookupZipcodeData.map((zip) => (\r\n e === zip.value\r\n )\r\n }\r\n name=\"updateCheck\"\r\n value={zip.value}\r\n onClick={(event) =>\r\n this.zipcodeClick(\r\n event,\r\n zip.value\r\n )\r\n }\r\n style={{ fontSize: 12 }}\r\n >\r\n }\r\n label={zip.value}\r\n className=\"col-md-3\"\r\n />\r\n ))\r\n ) : (\r\n // ''\r\n
\r\n {zipError}\r\n
\r\n )}\r\n
\r\n
\r\n {/* {zipcodeOptions && zipcodeOptions.length > 0 && isLoading1 === false ?

{this.state.coverageTrackCount > 0 ? 'Expect about ' + this.state.coverageTrackCount : 'There are no'} competitor{this.state.coverageTrackCount === 1 ? '' : 's'} in this zip code(s).

: ''} */}\r\n {zipcodeOptions &&\r\n zipcodeOptions.length > 0 &&\r\n isLoading1 === false ? (\r\n

\r\n {this.state.coverageTrackCount > 0 ? (\r\n \r\n There{\" \"}\r\n {this.state.coverageTrackCount ===\r\n 1\r\n ? \"is\"\r\n : \"are\"}{\" \"}\r\n \r\n \r\n {\r\n this.state\r\n .coverageTrackCount\r\n }\r\n {\" \"}\r\n \r\n competitor\r\n {this.state\r\n .coverageTrackCount === 1\r\n ? \"\"\r\n : \"s\"}\r\n \r\n {\" \"}\r\n \r\n ) : (\r\n \"There are no competitors\"\r\n )}{\" \"}\r\n in this{\" \"}\r\n {CONFIG.RegionId == \"1\"\r\n ? \"Zip Code(s)\"\r\n : \"Postal Code(s)\"}\r\n .\r\n

\r\n ) : (\r\n \"\"\r\n )}\r\n
\r\n
\r\n {errortext1 ? errortext1 : \"\"}\r\n
\r\n \r\n
\r\n
\r\n ) : this.state.showComponent === \"city\" ? (\r\n
\r\n \r\n \r\n

\r\n * City Name (25 miles around market center)\r\n

\r\n \r\n
\r\n \r\n \r\n

City Name

\r\n\r\n \r\n\r\n
\r\n {errortext1 ? errortext1 : \"\"}\r\n
\r\n \r\n
\r\n
\r\n {/* {this.state.isSelactCity && isLoading1 === false ?

{this.state.coverageTrackCount > 0 ? 'Expect about ' + this.state.coverageTrackCount : 'There are no'} competitor{this.state.coverageTrackCount === 1 ? '' : 's'} in this city.

: ''} */}\r\n {this.state.isSelactCity &&\r\n isLoading1 === false ? (\r\n

\r\n {this.state.coverageTrackCount > 0 ? (\r\n \r\n There{\" \"}\r\n {this.state.coverageTrackCount === 1\r\n ? \"is\"\r\n : \"are\"}{\" \"}\r\n \r\n \r\n {this.state.coverageTrackCount}\r\n {\" \"}\r\n \r\n competitor\r\n {this.state.coverageTrackCount ===\r\n 1\r\n ? \"\"\r\n : \"s\"}\r\n \r\n {\" \"}\r\n \r\n ) : (\r\n \"There are no competitors\"\r\n )}{\" \"}\r\n in this city.\r\n

\r\n ) : (\r\n \"\"\r\n )}\r\n
\r\n
\r\n ) : (\r\n \"\"\r\n )}\r\n \r\n
\r\n
\r\n {\r\n this.btn1 = btn1;\r\n }}\r\n variant=\"contained\"\r\n color=\"primary\"\r\n className=\"next-btn\"\r\n >\r\n Save and Go to Next\r\n \r\n {localStorage.getItem(\"userType\") === \"2\" ? (\r\n \r\n Go Back\r\n \r\n ) : (\r\n \r\n Go Back\r\n \r\n )}\r\n \r\n
\r\n ) : this.state.activeStep === 2 ? (\r\n
\r\n {this.state.showComponent === \"radius\" ? (\r\n
\r\n
\r\n

Radius based market coverage

\r\n

\r\n There{\" \"}\r\n {competitorsData &&\r\n competitorsData.data.currentStoreDetail\r\n .trackedCount >= 2\r\n ? \"are\"\r\n : competitorsData.data.currentStoreDetail\r\n .trackedCount === 0\r\n ? \"are\"\r\n : \"is\"}{\" \"}\r\n {competitorsData &&\r\n competitorsData.data.currentStoreDetail\r\n .trackedCount >= 1\r\n ? competitorsData.data.currentStoreDetail\r\n .trackedCount\r\n : \"no\"}{\" \"}\r\n competitor\r\n {competitorsData &&\r\n competitorsData.data.currentStoreDetail\r\n .trackedCount > 1\r\n ? \"s\"\r\n : \"\"}{\" \"}\r\n within a{\" \"}\r\n {competitorsData\r\n ? competitorsData.data.currentStoreDetail.radius\r\n : \"\"}{\" \"}\r\n {CONFIG.RegionId == 2 || CONFIG.RegionId == 4\r\n ? \"kilometre\"\r\n : \"mile\"}{\" \"}\r\n radius. \r\n

\r\n {/*

There are {competitorsData && competitorsData.data.currentStoreDetail.trackedCount >= 1 ? competitorsData.data.currentStoreDetail.trackedCount - unTrackedCount.length : '0'} store{competitorsData && competitorsData.data.currentStoreDetail.trackedCount > 1 ? 's' : ''} within a {competitorsData ? competitorsData.data.currentStoreDetail.radius : ''} mile radius.

*/}\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n ) : this.state.showComponent === \"zipcode\" ? (\r\n
\r\n
\r\n

Zip or Postal Code(s) based market coverage

\r\n

\r\n There{\" \"}\r\n {competitorsData &&\r\n competitorsData.data.currentStoreDetail\r\n .trackedCount >= 2\r\n ? \"are\"\r\n : competitorsData.data.currentStoreDetail\r\n .trackedCount === 0\r\n ? \"are\"\r\n : \"is\"}{\" \"}\r\n {competitorsData &&\r\n competitorsData.data.currentStoreDetail\r\n .trackedCount >= 1\r\n ? competitorsData.data.currentStoreDetail\r\n .trackedCount\r\n : \"no\"}{\" \"}\r\n competitor\r\n {competitorsData &&\r\n competitorsData.data.currentStoreDetail\r\n .trackedCount > 1\r\n ? \"s\"\r\n : \"\"}{\" \"}\r\n within zip code(s){\" \"}\r\n {/* {competitorsData ? competitorsData.data.currentStoreDetail.zipCodes : ''} */}\r\n {zipcodeOptions && zipcodeOptions[0]\r\n ? zipcodeOptions[0]\r\n : \"\"}\r\n {zipcodeOptions &&\r\n zipcodeOptions[1] &&\r\n !zipcodeOptions[2]\r\n ? \" and \" + zipcodeOptions[1]\r\n : \"\"}\r\n {zipcodeOptions &&\r\n zipcodeOptions[1] &&\r\n zipcodeOptions[2]\r\n ? \", \" + zipcodeOptions[1]\r\n : \"\"}\r\n {zipcodeOptions && zipcodeOptions[2]\r\n ? \" and \" + zipcodeOptions[2]\r\n : \"\"}\r\n . \r\n

\r\n {/*

There are {competitorsData && competitorsData.data.currentStoreDetail.trackedCount >= 1 ? competitorsData.data.currentStoreDetail.trackedCount - unTrackedCount.length : '0'} store{competitorsData && competitorsData.data.currentStoreDetail.trackedCount > 1 ? 's' : ''} within zip code(s) {zipcodeOptions && zipcodeOptions[0] ? zipcodeOptions[0] : ''}{zipcodeOptions && zipcodeOptions[1] && !zipcodeOptions[2] ? ' and ' + zipcodeOptions[1] : ''}{zipcodeOptions && zipcodeOptions[1] && zipcodeOptions[2] ? ', ' + zipcodeOptions[1] : ''}{zipcodeOptions && zipcodeOptions[2] ? ' and ' + zipcodeOptions[2] : ''}.

*/}\r\n
\r\n
\r\n

\r\n \r\n

\r\n
\r\n
\r\n ) : this.state.showComponent === \"city\" ? (\r\n
\r\n
\r\n

City based market coverage

\r\n

\r\n There{\" \"}\r\n {competitorsData &&\r\n competitorsData.data.currentStoreDetail\r\n .trackedCount >= 2\r\n ? \"are\"\r\n : competitorsData.data.currentStoreDetail\r\n .trackedCount === 0\r\n ? \"are\"\r\n : \"is\"}{\" \"}\r\n {competitorsData &&\r\n competitorsData.data.currentStoreDetail\r\n .trackedCount >= 1\r\n ? competitorsData.data.currentStoreDetail\r\n .trackedCount\r\n : \"no\"}{\" \"}\r\n competitor\r\n {competitorsData &&\r\n competitorsData.data.currentStoreDetail\r\n .trackedCount > 1\r\n ? \"s\"\r\n : \"\"}{\" \"}\r\n within the city of{\" \"}\r\n {competitorsData\r\n ? competitorsData.data.currentStoreDetail.city.replace(\r\n \",\",\r\n \", \"\r\n )\r\n : \"\"}\r\n . \r\n

\r\n {/*

There are {competitorsData && competitorsData.data.currentStoreDetail.trackedCount >= 1 ? competitorsData.data.currentStoreDetail.trackedCount - unTrackedCount.length : '0'} store{competitorsData && competitorsData.data.currentStoreDetail.trackedCount > 1 ? 's' : ''} within the city of {competitorsData ? competitorsData.data.currentStoreDetail.city.replace(',', ', ') : ''} city.

*/}\r\n
\r\n
\r\n

\r\n \r\n

\r\n
\r\n
\r\n ) : (\r\n \"\"\r\n )}\r\n\r\n \r\n \r\n } />\r\n } />\r\n \r\n \r\n\r\n {tabvalue === 0 && (\r\n \r\n \r\n \r\n \r\n Market Name\r\n Address\r\n Distance\r\n \r\n Track\r\n \r\n \r\n \r\n \r\n {/* {console.log( competitorsData.data.competitors)} */}\r\n {competitorsData &&\r\n competitorsData.data.competitors.length > 0 ? (\r\n competitorsData.data.competitors\r\n .slice(\r\n pageCountMDT * 10,\r\n pageCountMDT * 10 + 10\r\n )\r\n .map((compdata) => (\r\n \r\n \r\n {compdata.properties.storeName}\r\n \r\n \r\n {compdata.properties.storeAddress}\r\n \r\n \r\n {compdata.properties.proximity\r\n ? compdata.properties.proximity\r\n : \"\"}{\" \"}\r\n {compdata.properties.proximity > 0 &&\r\n (CONFIG.RegionId == 2 ||\r\n CONFIG.RegionId == 4)\r\n ? \" \" + \"km\"\r\n : compdata.properties.proximity > 0 &&\r\n CONFIG.RegionId != (2 || 4)\r\n ? \" \" + \"mi\"\r\n : \"\"}\r\n \r\n \r\n e === (trackData.storeID + '|1'))}\r\n // onClick={event => this.upgradehandleClick(event, trackData.storeID, trackData.userStoreID)} />\r\n className=\"track-check\"\r\n checked={\r\n compdata.properties.storeId +\r\n \"|1\" ===\r\n trackedFields.find(\r\n (e) =>\r\n e ===\r\n compdata.properties.storeId +\r\n \"|1\"\r\n )\r\n }\r\n onClick={(event) =>\r\n this.trackhandleClick(\r\n event,\r\n compdata.properties.storeId,\r\n compdata.properties.userStoreId\r\n )\r\n }\r\n />\r\n \r\n \r\n ))\r\n ) : (\r\n \r\n \r\n Markets not available.\r\n \r\n \r\n )}\r\n \r\n \r\n {/* {this.state.trackedFields1 && this.state.trackedFields1.length > 0 ?\r\n \r\n \r\n \r\n \r\n \r\n : ''} */}\r\n \r\n `Displaying pages ${from}-${to} of total ${count} pages`}\r\n onChangePage={this.handleChangePageMTD}\r\n onChangeRowsPerPage={\r\n this.handleChangeRowsPerPageMTD\r\n }\r\n ActionsComponent={MyMarketWrapped}\r\n />\r\n \r\n \r\n
\r\n
\r\n )}\r\n {tabvalue === 1 && (\r\n \r\n {this.state.showComponent === \"radius\" ? (\r\n
\r\n {\r\n let mapbox = this.mapRef.current.getMap();\r\n mapbox.loadImage(homeIcon, (error, image) => {\r\n if (error) throw error;\r\n mapbox.addImage(\"homeMarker\", image);\r\n });\r\n }}\r\n >\r\n \r\n\r\n {/* {homeLatLng.latitude !== 0 && homeLatLng.longitude !== 0 &&\r\n (\r\n \"icon\"\r\n )} */}\r\n\r\n {/* {homeLatLng.latitude !== 0 && homeLatLng.longitude !== 0 && */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* circle radius */}\r\n \r\n \r\n {this.state.showingInfoWindow && (\r\n this.onMarkerClose()}\r\n {...popupInfoLatlng}\r\n >\r\n
\r\n

{this.state.activeMarker}

\r\n

\r\n {this.state.address},
\r\n {this.state.address1}\r\n

\r\n

\r\n \r\n e ===\r\n this.state.selectedPlace + \"|1\"\r\n )\r\n }\r\n onClick={(event) =>\r\n this.trackhandleClick(\r\n event,\r\n this.state.selectedPlace,\r\n this.state.userStoreID\r\n )\r\n }\r\n />{\" \"}\r\n {this.state.selectedPlace + \"|1\" ===\r\n trackedFields.find(\r\n (e) =>\r\n e ===\r\n this.state.selectedPlace + \"|1\"\r\n )\r\n ? \"Click to Untrack\"\r\n : \"Click to Track\"}\r\n

\r\n {/* /> {this.state.isTracks && this.state.isTracks === 1 ? 'Click to Untrack' : 'Click to Track'}

*/}\r\n
\r\n \r\n )}\r\n \r\n {/* }\r\n containerElement={
}\r\n mapElement={
}\r\n >\r\n \r\n\r\n {competitorsData.data.competitors.map((marker, index) => {\r\n return (\r\n this.onMarkerClick(marker.isTrack, marker.storeId, marker.userStoreId, marker.storeName, marker.lat, marker.lng, marker.storeAddress)}>\r\n {this.state.showingInfoWindow && this.state.selectedPlace === marker.storeId ?\r\n this.onMarkerClose()}\r\n visible={this.state.showingInfoWindow}>\r\n
\r\n

{this.state.activeMarker}

{this.state.address},
{this.state.address1}

\r\n

e === (marker.storeId + '|1'))}\r\n onClick={event => this.trackhandleClick(event, marker.storeId, marker.userStoreId)}\r\n /> {this.state.isTracks && this.state.isTracks === 1 ? 'Click to Untrack' : 'Click to Track'}

\r\n
\r\n \r\n : ''}\r\n \r\n\r\n )\r\n })}\r\n \r\n */}\r\n
\r\n ) : this.state.showComponent === \"zipcode\" ? (\r\n
\r\n {\r\n let mapbox = this.mapRef.current.getMap();\r\n mapbox.loadImage(homeIcon, (error, image) => {\r\n if (error) throw error;\r\n mapbox.addImage(\"homeMarker\", image);\r\n });\r\n }}\r\n >\r\n \r\n {/* {homeLatLng.latitude !== 0 && homeLatLng.longitude !== 0 &&\r\n (\r\n \"icon\"\r\n )} */}\r\n\r\n {/* {homeLatLng.latitude !== 0 && homeLatLng.longitude !== 0 && */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.state.showingInfoWindow && (\r\n this.onMarkerClose()}\r\n >\r\n
\r\n

{this.state.activeMarker}

\r\n

\r\n {this.state.address},
\r\n {this.state.address1}\r\n

\r\n

\r\n \r\n e ===\r\n this.state.selectedPlace + \"|1\"\r\n )\r\n }\r\n onClick={(event) =>\r\n this.trackhandleClick(\r\n event,\r\n this.state.selectedPlace,\r\n this.state.userStoreID\r\n )\r\n }\r\n />{\" \"}\r\n {this.state.selectedPlace + \"|1\" ===\r\n trackedFields.find(\r\n (e) =>\r\n e ===\r\n this.state.selectedPlace + \"|1\"\r\n )\r\n ? \"Click to Untrack\"\r\n : \"Click to Track\"}\r\n

\r\n {/* /> {this.state.isTracks && this.state.isTracks === 1 ? 'Click to Untrack' : 'Click to Track'}

*/}\r\n
\r\n \r\n )}\r\n \r\n {/* }\r\n containerElement={
}\r\n mapElement={
}\r\n >\r\n \r\n {competitorsData.data.competitors.map((marker, index) => {\r\n return (\r\n this.onMarkerClick(marker.isTrack, marker.storeId, marker.userStoreId, marker.storeName, marker.lat, marker.lng, marker.storeAddress)}>\r\n {this.state.showingInfoWindow && this.state.selectedPlace === marker.storeId ?\r\n this.onMarkerClose()}\r\n visible={this.state.showingInfoWindow}>\r\n
\r\n

{this.state.activeMarker}

{this.state.address},
{this.state.address1}

\r\n

e === (marker.storeId + '|1'))}\r\n onClick={event => this.trackhandleClick(event, marker.storeId, marker.userStoreId)}\r\n /> {this.state.isTracks && this.state.isTracks === 1 ? 'Click to Untrack' : 'Click to Track'}

\r\n
\r\n \r\n : ''}\r\n \r\n )\r\n })}\r\n\r\n {this.state.coordinates_one2.map((lat_lng) => {\r\n return (\r\n\r\n )\r\n })}\r\n */}\r\n
\r\n ) : this.state.showComponent === \"city\" ? (\r\n
\r\n {\r\n let mapbox = this.mapRef.current.getMap();\r\n mapbox.loadImage(homeIcon, (error, image) => {\r\n if (error) throw error;\r\n mapbox.addImage(\"homeMarker\", image);\r\n });\r\n }}\r\n >\r\n \r\n {/* {homeLatLng.latitude !== 0 && homeLatLng.longitude !== 0 &&\r\n (\r\n \"icon\"\r\n )} */}\r\n\r\n {/* {homeLatLng.latitude !== 0 && homeLatLng.longitude !== 0 && */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.state.showingInfoWindow && (\r\n this.onMarkerClose()}\r\n >\r\n
\r\n

{this.state.activeMarker}

\r\n

\r\n {this.state.address},
\r\n {this.state.address1}\r\n

\r\n

\r\n \r\n e ===\r\n this.state.selectedPlace + \"|1\"\r\n )\r\n }\r\n onClick={(event) =>\r\n this.trackhandleClick(\r\n event,\r\n this.state.selectedPlace,\r\n this.state.userStoreID\r\n )\r\n }\r\n />{\" \"}\r\n {this.state.selectedPlace + \"|1\" ===\r\n trackedFields.find(\r\n (e) =>\r\n e ===\r\n this.state.selectedPlace + \"|1\"\r\n )\r\n ? \"Click to Untrack\"\r\n : \"Click to Track\"}\r\n

\r\n {/* /> {this.state.isTracks && this.state.isTracks === 1 ? 'Click to Untrack' : 'Click to Track'}

*/}\r\n
\r\n \r\n )} \r\n \r\n {/* }\r\n containerElement={
}\r\n mapElement={
}\r\n >\r\n \r\n {competitorsData.data.competitors.map((marker, index) => {\r\n return (\r\n this.onMarkerClick(marker.isTrack, marker.storeId, marker.userStoreId, marker.storeName, marker.lat, marker.lng, marker.storeAddress)}>\r\n {this.state.showingInfoWindow && this.state.selectedPlace === marker.storeId ?\r\n this.onMarkerClose()}\r\n visible={this.state.showingInfoWindow}>\r\n
\r\n

{this.state.activeMarker}

{this.state.address},
{this.state.address1}

\r\n

e === (marker.storeId + '|1'))}\r\n onClick={event => this.trackhandleClick(event, marker.storeId, marker.userStoreId)}\r\n /> {this.state.isTracks && this.state.isTracks === 1 ? 'Click to Untrack' : 'Click to Track'}

\r\n
\r\n \r\n : ''}\r\n \r\n )\r\n })}\r\n\r\n {this.state.coordinates_one.map((lat_lng) => {\r\n return (\r\n\r\n )\r\n\r\n })}\r\n */}\r\n
\r\n ) : (\r\n \"\"\r\n )}\r\n \r\n \r\n
\r\n
\r\n Your Store\r\n
\r\n
\r\n
\r\n Store with pricing\r\n
\r\n
\r\n
\r\n Store without pricing\r\n
\r\n
\r\n \r\n \r\n )}\r\n {\r\n this.btn2 = btn2;\r\n }}\r\n onClick={this.saveCovergae.bind(this)}\r\n variant=\"contained\"\r\n color=\"primary\"\r\n className=\"next-btn \"\r\n >\r\n Save and Go to Next\r\n \r\n {localStorage.getItem(\"userType\") === \"2\" ? (\r\n \r\n Go Back\r\n \r\n ) : (\r\n \r\n Go Back\r\n \r\n )}\r\n
\r\n ) : this.state.activeStep === 3 &&\r\n this.state.activeStep > steps.length ? (\r\n
\r\n

\r\n Market{\" \"}\r\n {this.state.title === \"Edit Market\" ? \"Updat\" : \"Add\"}ed\r\n Successfully!\r\n

\r\n
\r\n

\r\n You are tracking{\" \"}\r\n {this.state.trackResponse.trackCount > 0\r\n ? this.state.trackResponse.trackCount\r\n : \"no\"}{\" \"}\r\n competitor\r\n {this.state.trackResponse.trackCount > 1\r\n ? \"s\"\r\n : this.state.trackResponse.trackCount === 0\r\n ? \"s\"\r\n : \"\"}{\" \"}\r\n in this Market.{\" \"}\r\n \r\n Go to the Market Dashboard\r\n {\" \"}\r\n or click below to go back to My Markets.\r\n

\r\n {/*

{this.state.trackResponse.trackCount} Store{this.state.trackResponse.trackCount > 1 ? 's' : ''} are tracked in this Market. You can go to the Market Dashboard or go back to My Markets by clicking the button below.

*/}\r\n

\r\n \r\n

\r\n
\r\n
\r\n ) : (\r\n // : this.state.activeStep > steps.length ?\r\n //
\r\n //

Market Added Successfully!

\r\n //

{this.state.trackResponse.trackCount} Store{this.state.trackResponse.trackCount > 1 ? 's' : ''} are tracked in this Market. You can immediately view this Market Dashboard or go back to My Markets screen by clicking the button below

\r\n //

\r\n //
\r\n
\r\n

\r\n Market{\" \"}\r\n {this.state.title === \"Edit Market\" ? \"Updat\" : \"Add\"}ed\r\n Successfully!\r\n

\r\n
\r\n

\r\n You are tracking{\" \"}\r\n {this.state.trackResponse.trackCount > 0\r\n ? this.state.trackResponse.trackCount\r\n : \"no\"}{\" \"}\r\n competitor\r\n {this.state.trackResponse.trackCount > 1\r\n ? \"s\"\r\n : this.state.trackResponse.trackCount === 0\r\n ? \"s\"\r\n : \"\"}{\" \"}\r\n in this Market.{\" \"}\r\n \r\n Go to the Market Dashboard\r\n {\" \"}\r\n or click below to go back to My Markets.\r\n

\r\n {/*

{this.state.trackResponse.trackCount} Store{this.state.trackResponse.trackCount > 1 ? 's' : ''} are tracked in this Market. You can go to the Market Dashboard or go back to My Markets by clicking the button below.

*/}\r\n

\r\n \r\n

\r\n
\r\n
\r\n )}\r\n\r\n {/*
\r\n \r\n Back\r\n \r\n \r\n
*/}\r\n
\r\n
\r\n \r\n \r\n \r\n {snackMSg}}\r\n action={[\r\n \r\n \r\n ,\r\n ]}\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\n// For Pagination\r\nconst actionsStyles = (theme) => ({\r\n tablepaggination: {\r\n flexShrink: 0,\r\n color: theme.palette.text.secondary,\r\n marginLeft: theme.spacing * 2.5,\r\n },\r\n});\r\n\r\nclass MyMarket extends React.Component {\r\n handleFirstPageButtonClick = (event) => {\r\n this.props.onChangePage(event, 0);\r\n };\r\n\r\n handleBackButtonClick = (event) => {\r\n this.props.onChangePage(event, this.props.page - 1);\r\n };\r\n\r\n handleNextButtonClick = (event) => {\r\n this.props.onChangePage(event, this.props.page + 1);\r\n };\r\n\r\n handleLastPageButtonClick = (event) => {\r\n this.props.onChangePage(\r\n event,\r\n Math.max(0, Math.ceil(this.props.count / this.props.rowsPerPage) - 1)\r\n );\r\n };\r\n\r\n render() {\r\n const { classes, count, page, rowsPerPage, theme } = this.props;\r\n\r\n return (\r\n
\r\n \r\n {theme.direction === \"rtl\" ? : }\r\n \r\n \r\n {theme.direction === \"rtl\" ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n = Math.ceil(count / rowsPerPage) - 1}\r\n aria-label=\"Next Page\"\r\n >\r\n {theme.direction === \"rtl\" ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n = Math.ceil(count / rowsPerPage) - 1}\r\n aria-label=\"Last Page\"\r\n >\r\n {theme.direction === \"rtl\" ? : }\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nconst MyMarketWrapped = withStyles(actionsStyles, { withTheme: true })(\r\n MyMarket\r\n);\r\n\r\n//For Tab\r\nfunction TabContainer(props) {\r\n return (\r\n \r\n {props.children}\r\n \r\n );\r\n}\r\n","import React, { Component, Fragment } from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport Table from \"@material-ui/core/Table\";\r\nimport TableHead from \"@material-ui/core/TableHead\";\r\nimport TableBody from \"@material-ui/core/TableBody\";\r\nimport TableCell from \"@material-ui/core/TableCell\";\r\nimport TableFooter from \"@material-ui/core/TableFooter\";\r\nimport TablePagination from \"@material-ui/core/TablePagination\";\r\nimport TableRow from \"@material-ui/core/TableRow\";\r\nimport Select from \"react-select\";\r\nimport FormGroup from \"@material-ui/core/FormGroup\";\r\nimport FormControlLabel from \"@material-ui/core/FormControlLabel\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport FirstPageIcon from \"@material-ui/icons/FirstPage\";\r\nimport KeyboardArrowLeft from \"@material-ui/icons/KeyboardArrowLeft\";\r\nimport KeyboardArrowRight from \"@material-ui/icons/KeyboardArrowRight\";\r\nimport List from \"@material-ui/icons/List\";\r\nimport LocationOn from \"@material-ui/icons/LocationOn\";\r\nimport LastPageIcon from \"@material-ui/icons/LastPage\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogContentText from \"@material-ui/core/DialogContentText\";\r\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\nimport Radio from \"@material-ui/core/Radio\";\r\nimport RadioButtonUncheckedIcon from \"@material-ui/icons/RadioButtonUnchecked\";\r\nimport RadioButtonCheckedIcon from \"@material-ui/icons/RadioButtonChecked\";\r\nimport axios from \"axios\";\r\nimport { Row, Col } from \"reactstrap\";\r\nimport { CONFIG, MatchingCountryCode } from \"../../utils/config\";\r\nimport { HashLink as Link } from \"react-router-hash-link\";\r\nimport Stepper from \"@material-ui/core/Stepper\";\r\nimport Step from \"@material-ui/core/Step\";\r\nimport StepLabel from \"@material-ui/core/StepLabel\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport AppBar from \"@material-ui/core/AppBar\";\r\nimport Tabs from \"@material-ui/core/Tabs\";\r\nimport Tab from \"@material-ui/core/Tab\";\r\nimport Checkbox from \"@material-ui/core/Checkbox\";\r\nimport {\r\n AvForm,\r\n AvField,\r\n AvRadioGroup,\r\n AvRadio,\r\n} from \"availity-reactstrap-validation\";\r\nimport { Label } from \"reactstrap\";\r\nimport \"react-dropdown-tree-select/dist/styles.css\";\r\nimport { MissingCompetitor } from \"./../../Views\";\r\nimport \"./AddMarketcmpopup.css\";\r\nimport graypin from \"./../../Assets/Images/gray-pin.png\";\r\nimport blackpin from \"./../../Assets/Images/black-pin.png\";\r\nimport bluepin from \"./../../Assets/Images/blue-pin.png\";\r\nimport orangepin from \"./../../Assets/Images/orange-pin.png\";\r\nimport orangehome from \"./../../Assets/Images/orange-home.png\";\r\nimport Snackbar from \"@material-ui/core/Snackbar\";\r\n// import { compose, withProps, withStateHandlers } from \"recompose\";\r\n// import { withGoogleMap, GoogleMap, Marker, InfoWindow } from \"react-google-maps\";\r\nimport {\r\n withScriptjs,\r\n withGoogleMap,\r\n GoogleMap,\r\n Marker,\r\n InfoWindow,\r\n Circle,\r\n Polygon,\r\n} from \"react-google-maps\";\r\nimport { HelpTextPopup } from \"./../HelpTextPopup/index\";\r\nimport Slider from \"@material-ui/core/Slider\";\r\nexport default class AddMarketcmpopup extends Component {\r\n static defaultProps = {\r\n googleMapURL:\r\n \"https://maps.googleapis.com/maps/api/js?key=\" +\r\n CONFIG.GoogleMapsApiKey +\r\n \"\",\r\n };\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n myMarketData: \"\",\r\n page: 0,\r\n pageCount: 0,\r\n pageCountMDT: 0,\r\n rowsPerPage: 10,\r\n tooltipOpen: false,\r\n isLoading: false,\r\n isLoading1: false,\r\n open: false,\r\n open1: false,\r\n open2: false,\r\n setOpen: false,\r\n isSelactCity: false,\r\n StateCountry: \"\",\r\n activeStep: 0,\r\n isDefaultValue: 1,\r\n radiusValue: 50,\r\n coverageTrackCount: null,\r\n scale: 10,\r\n showComponent: \"radius\",\r\n lookupZipcodeData: [],\r\n filterlookupZipcodeData: [],\r\n lookupCityData: [],\r\n ZipcodeFilter: \"\",\r\n selectedCityOption: \"\",\r\n selectedZipOption: null,\r\n zipcodeOptions: [],\r\n unzipcodeOptions: [],\r\n marketStoreName: \"\",\r\n userStorId: null,\r\n userStoreID: 0,\r\n trackStorId: null,\r\n storeModal: false,\r\n trackModalData: [],\r\n trackOptions: [],\r\n strOptions: [],\r\n strOptions1: [],\r\n trackedFields: [],\r\n trackedFields1: [],\r\n unTrackedCount: [],\r\n serachTypeval: null,\r\n competitorsData: [],\r\n tabvalue: 0,\r\n coordinate: [],\r\n EditStoredata: {},\r\n showModal: false,\r\n marketName: \"\",\r\n addressLine1: \"\",\r\n addressLine2: \"\",\r\n city: \"\",\r\n state: \"\",\r\n zipcode: \"\",\r\n coverageTrackCount: 0,\r\n exestineStore: \"true\",\r\n title: \"Add Market\",\r\n title1: \"Add Address\",\r\n tracked: \"\",\r\n userStr: \"\",\r\n isTracks: \"\",\r\n snackOpen: false,\r\n snackMSg: \"\",\r\n errCard: \"\",\r\n oldAddress: {},\r\n newAddress: {},\r\n isOpen: false,\r\n showingInfoWindow: false,\r\n activeMarker: {},\r\n selectedPlace: {},\r\n coordinate: [],\r\n zipCoordinates1: [],\r\n zipCoordinates2: [],\r\n zipCoordinates3: [],\r\n cityCoordinates: [],\r\n searchData: [],\r\n merged: [],\r\n uniqzipcode: [],\r\n zipError: \"\",\r\n coordinates_one: [],\r\n coordinates_one2: [],\r\n StateCountryCount: 1,\r\n centerLat: 0,\r\n centerLng: 0,\r\n zoomValue: 6,\r\n };\r\n this.trackModal = this.trackModal.bind(this);\r\n this.trackModalClose = this.trackModalClose.bind(this);\r\n this.ModalClickOpen = this.ModalClickOpen.bind(this);\r\n this.handleClose = this.handleClose.bind(this);\r\n this.handleNext = this.handleNext.bind(this);\r\n this.snackHandleclose = this.snackHandleclose.bind(this);\r\n this.handleBack = this.handleBack.bind(this);\r\n // this.sendTrackFields = this.sendTrackFields.bind(this);\r\n this.trackhandleClick = this.trackhandleClick.bind(this);\r\n //this.trackhandle = this.trackhandle.bind(this);\r\n this.upgradeBtn = this.upgradeBtn.bind(this);\r\n //this.degradeBtn = this.degradeBtn.bind(this);\r\n this.deleteComp = this.deleteComp.bind(this);\r\n //this.raduisChange = this.raduisChange.bind(this);\r\n // this.handleReset = this.handleReset.bind(this);\r\n // this.addMarket = this.addMarket.bind(this);\r\n this.dummyFn = this.dummyFn.bind(this);\r\n\r\n this.onToggleOpen = this.onToggleOpen.bind(this);\r\n this.postalCodeValidation = this.postalCodeValidation.bind(this);\r\n this.radiusOnChange = this.radiusOnChange.bind(this);\r\n this.mapRef = React.createRef();\r\n this.getbounds = true;\r\n }\r\n \r\n postalCodeValidation = (e) => {\r\n var code = \"charCode\" in e ? e.charCode : e.keyCode;\r\n if (\r\n !(code == 32) && // space\r\n !(code > 47 && code < 58) && // numeric (0-9)\r\n !(code > 64 && code < 91) && // upper alpha (A-Z)\r\n !(code > 96 && code < 123)\r\n ) {\r\n // lower alpha (a-z)\r\n e.preventDefault();\r\n }\r\n };\r\n onToggleOpen = (isOpen) => {\r\n this.setState({\r\n isOpen: !isOpen,\r\n });\r\n };\r\n\r\n CMap = withScriptjs(\r\n withGoogleMap((props) => (\r\n 0 &&\r\n this.state.competitorsData.data.centerPointDetail[0].latitude !=\r\n null\r\n ? this.state.competitorsData.data.centerPointDetail[0].latitude\r\n : this.state.competitorsData.data.currentStoreDetail.lat\r\n ),\r\n lng: parseFloat(\r\n this.state.competitorsData.data.centerPointDetail &&\r\n this.state.competitorsData.data.centerPointDetail.length > 0 &&\r\n this.state.competitorsData.data.centerPointDetail[0].longitude !=\r\n null\r\n ? this.state.competitorsData.data.centerPointDetail[0].longitude\r\n : this.state.competitorsData.data.currentStoreDetail.lng\r\n ),\r\n }}\r\n defaultOptions={{\r\n zoomControl: true,\r\n fullscreenControl: false,\r\n streetViewControl: false,\r\n disableDefaultUI: true,\r\n mapTypeControl: false,\r\n }}\r\n >\r\n {props.children}\r\n \r\n ))\r\n );\r\n\r\n delayedShowMarker = () => {\r\n setTimeout(() => {\r\n this.setState({ isMarkerShown: true });\r\n }, 3000);\r\n };\r\n\r\n handleMarkerClick = () => {\r\n this.setState({ isMarkerShown: false });\r\n this.delayedShowMarker();\r\n };\r\n snackHandleclose = (event, reason) => {\r\n if (reason === \"clickaway\") {\r\n return;\r\n }\r\n this.setState({ snackOpen: false });\r\n // const x = document.getElementById('Subid');\r\n // x.focus();\r\n };\r\n zipFilterHandleChange = (e) => {\r\n let ZipcodeFilter = e.target.value;\r\n let zipError = this.state.zipError;\r\n // this.setState({\r\n // ZipcodeFilter: e.target.value\r\n // })\r\n let filterlookupZipcodeData = this.state.lookupZipcodeData;\r\n filterlookupZipcodeData = filterlookupZipcodeData.filter((lookup) => {\r\n let lookupName = lookup.value.toLowerCase();\r\n return lookupName.indexOf(ZipcodeFilter.toLowerCase()) !== -1;\r\n });\r\n this.setState({\r\n filterlookupZipcodeData,\r\n ZipcodeFilter,\r\n zipError:\r\n filterlookupZipcodeData.length === 0\r\n ? \"The given Zip or Postal Code(s) is not available\"\r\n : \"\",\r\n });\r\n };\r\n // zipFilterHandleChange = (e) => {\r\n // this.setState({\r\n // ZipcodeFilter: e.target.value\r\n // })\r\n // //this.props.onChange(event.target.value)\r\n // }\r\n onShowModal = () => {\r\n this.setState({ showModal: true });\r\n };\r\n\r\n onMapCreated(map) {\r\n map.setOptions({\r\n disableDefaultUI: false,\r\n });\r\n }\r\n\r\n zipcodeClick(event, zipcodeValue) {\r\n let zipcodeOptions = this.state.zipcodeOptions;\r\n let unzipcodeOptions = this.state.unzipcodeOptions;\r\n let index;\r\n\r\n if (event.target.checked) {\r\n if (zipcodeOptions.length <= 2) {\r\n zipcodeOptions.push(zipcodeValue);\r\n index = unzipcodeOptions.indexOf(zipcodeValue);\r\n unzipcodeOptions.splice(index, 1);\r\n } else {\r\n this.setState({\r\n snackOpen: true,\r\n snackMSg:\r\n \"You cannot select more than 3 zipcodes! Please remove a selection and try again\",\r\n });\r\n }\r\n } else if (!event.target.checked) {\r\n if (zipcodeOptions.length <= 3) {\r\n index = zipcodeOptions.indexOf(zipcodeValue);\r\n zipcodeOptions.splice(index, 1);\r\n unzipcodeOptions.push(zipcodeValue);\r\n } else {\r\n this.setState({\r\n snackOpen: true,\r\n snackMSg:\r\n \"You cannot select more than 3 zipcodes! Please remove a selection and try again.\",\r\n });\r\n }\r\n }\r\n\r\n this.setState({\r\n zipcodeOptions,\r\n unzipcodeOptions,\r\n errortext1: \"\",\r\n coverageType: \"zipcode\",\r\n });\r\n this.setState({\r\n isLoading1: true,\r\n });\r\n const data = {\r\n UserStoreID: this.state.userStoreID,\r\n Competitorslist: \"\",\r\n SearchType: 2,\r\n Zone: {\r\n Radius: \"\",\r\n Zipcode1:\r\n this.state.zipcodeOptions.length > 1 ||\r\n this.state.zipcodeOptions.length > 2 ||\r\n this.state.zipcodeOptions.length > 3 ||\r\n this.state.zipcodeOptions.length === 1\r\n ? this.state.zipcodeOptions[0]\r\n : \"\",\r\n Zipcode2:\r\n this.state.zipcodeOptions.length > 2 ||\r\n this.state.zipcodeOptions.length === 2\r\n ? this.state.zipcodeOptions[1]\r\n : \"\",\r\n Zipcode3:\r\n this.state.zipcodeOptions.length === 3\r\n ? this.state.zipcodeOptions[2]\r\n : \"\",\r\n CityName: \"\",\r\n },\r\n isCoverageZone: 1,\r\n RegionId: CONFIG.RegionId,\r\n };\r\n let token = localStorage.getItem(\"accessKey\");\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = \"Bearer \" + token;\r\n }\r\n axios\r\n .post(CONFIG.API_URL + \"coverage/competitorbycoverage\", data)\r\n .then((response) => {\r\n let coverageTrackCount = response.data.data.count;\r\n this.setState({\r\n coverageTrackCount,\r\n isLoading1: false,\r\n });\r\n })\r\n .catch((err) => {\r\n this.setState({\r\n isLoading1: false,\r\n });\r\n if (err.response.status === 401) {\r\n localStorage.removeItem(\"accessKey\");\r\n const { from } = this.props.location.state || {\r\n from: { pathname: \"/\" },\r\n };\r\n this.props.history.push(from);\r\n } else {\r\n alert(err.message);\r\n }\r\n });\r\n }\r\n ModalClickOpen(UserStoreID) {\r\n this.lookupZipcode(UserStoreID);\r\n this.lookupCity(UserStoreID);\r\n this.setState({\r\n isLoading1: true,\r\n });\r\n let showComponent = this.state.showComponent;\r\n\r\n let userStoreID = this.state.userStoreID;\r\n userStoreID = UserStoreID;\r\n const selectedCity = {\r\n label: \"\",\r\n value: \"\",\r\n };\r\n this.setState({\r\n open: true,\r\n userStoreID,\r\n title: \"Add Market\",\r\n title1: \"Add Address\",\r\n EditStoredata: {},\r\n isDefaultValue: 1,\r\n isLoading1: true,\r\n });\r\n\r\n if (userStoreID !== 0) {\r\n this.setState({\r\n title: \"Edit Market\",\r\n isLoading1: true,\r\n title1: \"Update Address\",\r\n });\r\n\r\n axios\r\n .post(\r\n CONFIG.API_URL +\r\n \"market/storedetails/\" +\r\n userStoreID +\r\n \"/\" +\r\n CONFIG.RegionId\r\n )\r\n .then((response) => {\r\n let EditStoredata = response.data.userstore;\r\n const isDefaultValue = [];\r\n const stateData = this.state.stateData;\r\n const countryData = this.state.countryData;\r\n let zipcodeOptions = response.data.zipcode;\r\n let coverSearchType = response.data.userstore.searchType;\r\n let oldAddress = this.state.oldAddress;\r\n oldAddress = {\r\n Address: EditStoredata.address,\r\n Address2: EditStoredata.address2,\r\n City: EditStoredata.city,\r\n State: EditStoredata.state,\r\n Zipcode: EditStoredata.zipcode,\r\n };\r\n if (coverSearchType === 1) {\r\n showComponent = \"radius\";\r\n } else if (coverSearchType === 2) {\r\n showComponent = \"zipcode\";\r\n } else if (coverSearchType === 3) {\r\n showComponent = \"city\";\r\n selectedCity.label = zipcodeOptions\r\n ? zipcodeOptions[0] + \", \" + zipcodeOptions[1]\r\n : \"\";\r\n selectedCity.value = zipcodeOptions\r\n ? zipcodeOptions[0] + \",\" + zipcodeOptions[1]\r\n : \"\";\r\n }\r\n stateData\r\n .filter((con) => con.stateID === EditStoredata.state)\r\n .forEach(function (con) {\r\n isDefaultValue.unshift(con.countryCode);\r\n });\r\n //stateData.filter((con) => con.stateID === e.target.value).find(con.countryCode);\r\n countryData\r\n .filter((con) => con.countryCode === isDefaultValue.toString())\r\n .forEach(function (con) {\r\n isDefaultValue.unshift(con.country);\r\n });\r\n isDefaultValue.toString();\r\n\r\n let scale =\r\n EditStoredata.zoneCoverage !== null && coverSearchType === 1\r\n ? EditStoredata.zoneCoverage.indexOf(\"10\") > -1\r\n ? 10\r\n : EditStoredata.zoneCoverage.charAt(0)\r\n : 10;\r\n this.setState({\r\n coverageType:\r\n coverSearchType === 1\r\n ? \"radius\"\r\n : coverSearchType === 2\r\n ? \"zipcode\"\r\n : coverSearchType === 3\r\n ? \"city\"\r\n : \"radius\",\r\n EditStoredata,\r\n oldAddress,\r\n scale,\r\n StateCountry: isDefaultValue[0],\r\n isDefaultValue,\r\n isSelactCity: coverSearchType === 3 ? true : false,\r\n selectedCityOption: coverSearchType === 3 ? selectedCity : [],\r\n showComponent,\r\n zipcodeOptions,\r\n isLoading1: false,\r\n });\r\n this.trackCoverageCount();\r\n })\r\n .catch((err) => {\r\n this.setState({\r\n isLoading1: false,\r\n });\r\n if (err.response.status === 401) {\r\n localStorage.removeItem(\"accessKey\");\r\n const { from } = this.props.location.state || {\r\n from: { pathname: \"/\" },\r\n };\r\n this.props.history.push(from);\r\n } else {\r\n alert(err.message);\r\n }\r\n });\r\n }\r\n }\r\n ModalClickOpenCR(UserStoreID) {\r\n let filterlookupZipcodeData = this.state.filterlookupZipcodeData;\r\n filterlookupZipcodeData = [];\r\n let userStoreID = this.state.userStoreID;\r\n userStoreID = UserStoreID;\r\n this.setState({\r\n isLoading1: true,\r\n filterlookupZipcodeData,\r\n userStoreID,\r\n });\r\n this.lookupZipcode1(UserStoreID);\r\n }\r\n\r\n dummyFn(UserStoreID) {\r\n let userStoreID = UserStoreID;\r\n let zipcodeOptions = [];\r\n let showComponent = this.state.showComponent;\r\n const selectedCity = {\r\n label: \"\",\r\n value: \"\",\r\n };\r\n\r\n this.setState({\r\n userStoreID,\r\n title: \"Add Market\",\r\n title1: \"Add Address\",\r\n EditStoredata: {},\r\n isDefaultValue: 1,\r\n isLoading1: true,\r\n });\r\n if (userStoreID !== 0) {\r\n this.setState({\r\n title: \"Edit Market\",\r\n isLoading1: true,\r\n title1: \"Update Address\",\r\n activeStep: 1,\r\n });\r\n\r\n axios\r\n .post(\r\n CONFIG.API_URL +\r\n \"market/storedetails/\" +\r\n userStoreID +\r\n \"/\" +\r\n CONFIG.RegionId\r\n )\r\n .then((response) => {\r\n let EditStoredata = response.data.userstore;\r\n let oldAddress = this.state.oldAddress;\r\n oldAddress = {\r\n Address: EditStoredata.address,\r\n Address2: EditStoredata.address2,\r\n City: EditStoredata.city,\r\n State: EditStoredata.state,\r\n Zipcode: EditStoredata.zipcode,\r\n };\r\n const isDefaultValue = [];\r\n const stateData = this.state.stateData;\r\n const countryData = this.state.countryData;\r\n zipcodeOptions = response.data.zipcode;\r\n let coverSearchType = response.data.userstore.searchType;\r\n if (coverSearchType === 1) {\r\n showComponent = \"radius\";\r\n } else if (coverSearchType === 2) {\r\n showComponent = \"zipcode\";\r\n } else if (coverSearchType === 3) {\r\n showComponent = \"city\";\r\n if (CONFIG.RegionId === MatchingCountryCode.UK_RID) {\r\n selectedCity.label = zipcodeOptions ? zipcodeOptions[0] : \"\";\r\n selectedCity.value = zipcodeOptions ? zipcodeOptions[0] : \"\";\r\n } else {\r\n selectedCity.label = zipcodeOptions\r\n ? zipcodeOptions[0] + \", \" + zipcodeOptions[1]\r\n : \"\";\r\n selectedCity.value = zipcodeOptions\r\n ? zipcodeOptions[0] + \",\" + zipcodeOptions[1]\r\n : \"\";\r\n }\r\n }\r\n\r\n stateData\r\n .filter((con) => con.stateID === EditStoredata.state)\r\n .forEach(function (con) {\r\n isDefaultValue.unshift(con.countryCode);\r\n });\r\n //stateData.filter((con) => con.stateID === e.target.value).find(con.countryCode);\r\n countryData\r\n .filter((con) => con.countryCode === isDefaultValue.toString())\r\n .forEach(function (con) {\r\n isDefaultValue.unshift(con.country);\r\n });\r\n isDefaultValue.toString();\r\n\r\n let scale =\r\n EditStoredata.zoneCoverage !== null && coverSearchType === 1\r\n ? EditStoredata.zoneCoverage.indexOf(\"10\") > -1\r\n ? 10\r\n : EditStoredata.zoneCoverage.charAt(0)\r\n : 10;\r\n this.setState({\r\n coverageType:\r\n coverSearchType === 1\r\n ? \"radius\"\r\n : coverSearchType === 2\r\n ? \"zipcode\"\r\n : coverSearchType === 3\r\n ? \"city\"\r\n : \"radius\",\r\n EditStoredata,\r\n oldAddress,\r\n StateCountry: isDefaultValue[0],\r\n isSelactCity: coverSearchType === 3 ? true : false,\r\n selectedCityOption: coverSearchType === 3 ? selectedCity : [],\r\n scale,\r\n isDefaultValue,\r\n showComponent,\r\n zipcodeOptions,\r\n open: true,\r\n isLoading1: false,\r\n });\r\n this.trackCoverageCount();\r\n })\r\n .catch((err) => {\r\n this.setState({\r\n isLoading1: false,\r\n });\r\n if (err.response.status === 401) {\r\n localStorage.removeItem(\"accessKey\");\r\n const { from } = this.props.location.state || {\r\n from: { pathname: \"/\" },\r\n };\r\n this.props.history.push(from);\r\n } else {\r\n alert(err.message);\r\n }\r\n });\r\n }\r\n }\r\n\r\n cityHandleChange = (selectedCityOption) => {\r\n this.setState({\r\n selectedCityOption,\r\n errortext1: \"\",\r\n coverageType: \"city\",\r\n isSelactCity: true,\r\n });\r\n this.setState({\r\n isLoading1: true,\r\n });\r\n const data = {\r\n UserStoreID: this.state.userStoreID,\r\n Competitorslist: \"\",\r\n SearchType: 3,\r\n Zone: {\r\n Radius: \"\",\r\n Zipcode1: \"\",\r\n Zipcode2: \"\",\r\n Zipcode3: \"\",\r\n CityName: selectedCityOption.value.replace(\",\", \", \"),\r\n },\r\n isCoverageZone: 1,\r\n RegionId: CONFIG.RegionId,\r\n };\r\n let token = localStorage.getItem(\"accessKey\");\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = \"Bearer \" + token;\r\n }\r\n axios\r\n .post(CONFIG.API_URL + \"coverage/competitorbycoverage\", data)\r\n .then((response) => {\r\n let coverageTrackCount = response.data.data.count;\r\n this.setState({\r\n coverageTrackCount,\r\n isLoading1: false,\r\n });\r\n })\r\n .catch((err) => {\r\n this.setState({\r\n isLoading1: false,\r\n });\r\n if (err.response.status === 401) {\r\n localStorage.removeItem(\"accessKey\");\r\n const { from } = this.props.location.state || {\r\n from: { pathname: \"/\" },\r\n };\r\n this.props.history.push(from);\r\n } else {\r\n alert(err.message);\r\n }\r\n });\r\n };\r\n\r\n zipHandleChange = (selectedZipOption) => {\r\n if (selectedZipOption.length <= 3) {\r\n this.setState({ selectedZipOption, coverageType: \"zipcode\" });\r\n // if (selectedZipOption[0].value != '') {\r\n\r\n // }\r\n this.trackCoverageCount();\r\n } else {\r\n alert(\r\n \"You cannot select more than 3 zipcodes! Please remove a selection and try again.\"\r\n );\r\n }\r\n };\r\n\r\n onDragEnd(e) {}\r\n\r\n tabhandleChange(event, newValue) {\r\n if (newValue === 0) this.getbounds = true;\r\n this.setState({ tabvalue: newValue, showingInfoWindow: false }, () => {\r\n if (\r\n this.state.coverageType == \"city\" &&\r\n newValue === 1 &&\r\n CONFIG.RegionId === 1\r\n ) {\r\n var city = this.state.selectedCityOption.value;\r\n this.getMapQuestResultCity(city);\r\n } else {\r\n if (\r\n this.state.coverageType == \"zipcode\" &&\r\n newValue === 1 &&\r\n CONFIG.RegionId === 1\r\n ) {\r\n var zipInput = this.state.zipcodeOptions;\r\n this.getMapQuestResultZip(zipInput);\r\n }\r\n }\r\n });\r\n }\r\n\r\n coverageType = (e) => {\r\n let showComponent = this.state.showComponent;\r\n let zipcodeOptions = this.state.zipcodeOptions;\r\n let selectedCityOption = this.state.selectedCityOption;\r\n let scale = this.state.scale;\r\n let isSelactCity = this.state.isSelactCity;\r\n let zipcodeOptionsLength;\r\n let errortext1;\r\n let ZipcodeFilter = this.state.ZipcodeFilter;\r\n let trackedFields = [];\r\n let trackedFields1 = [];\r\n let unTrackedCount = [];\r\n\r\n if (e.target.value === \"radius\") {\r\n selectedCityOption = [];\r\n zipcodeOptions = [];\r\n errortext1 = \"\";\r\n zipcodeOptionsLength = null;\r\n ZipcodeFilter = \"\";\r\n scale = 10;\r\n this.trackCoverageCountRadius(scale);\r\n } else if (e.target.value === \"zipcode\") {\r\n // this.lookupZipcode();\r\n // this.state.isLoading = true;\r\n selectedCityOption = [];\r\n scale = 10;\r\n errortext1 = \"\";\r\n zipcodeOptionsLength = null;\r\n ZipcodeFilter = \"\";\r\n zipcodeOptions = [];\r\n let filterlookupZipcodeData = this.state.lookupZipcodeData;\r\n filterlookupZipcodeData = filterlookupZipcodeData.filter((lookup) => {\r\n let lookupName = lookup.value.toLowerCase();\r\n return lookupName.indexOf(ZipcodeFilter.toLowerCase()) !== -1;\r\n });\r\n this.setState({\r\n filterlookupZipcodeData,\r\n ZipcodeFilter,\r\n coverageTrackCount: 0,\r\n });\r\n } else if (e.target.value === \"city\") {\r\n // this.lookupCity();\r\n zipcodeOptions = [];\r\n scale = 10;\r\n errortext1 = \"\";\r\n zipcodeOptionsLength = null;\r\n ZipcodeFilter = \"\";\r\n this.setState({\r\n coverageTrackCount: 0,\r\n });\r\n }\r\n\r\n if (e.target.checked) {\r\n showComponent = e.target.value;\r\n }\r\n this.setState({\r\n trackedFields,\r\n trackedFields1,\r\n isSelactCity: false,\r\n unTrackedCount,\r\n showComponent,\r\n ZipcodeFilter,\r\n selectedCityOption,\r\n zipcodeOptions,\r\n scale,\r\n errortext1,\r\n zipcodeOptionsLength,\r\n });\r\n if (e.target.value === \"radius\") {\r\n this.trackCoverageCountRadius(this.state.scale);\r\n }\r\n };\r\n trackCoverageCountRadius(scale) {\r\n this.setState({\r\n isLoading1: true,\r\n });\r\n const data = {\r\n UserStoreID: this.state.userStoreID,\r\n Competitorslist: \"\",\r\n SearchType: 1,\r\n Zone: {\r\n Radius: scale,\r\n Zipcode1: \"\",\r\n Zipcode2: \"\",\r\n Zipcode3: \"\",\r\n CityName: \"\",\r\n },\r\n isCoverageZone: 1,\r\n RegionId: CONFIG.RegionId,\r\n };\r\n let token = localStorage.getItem(\"accessKey\");\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = \"Bearer \" + token;\r\n }\r\n axios\r\n .post(CONFIG.API_URL + \"coverage/competitorbycoverage\", data)\r\n .then((response) => {\r\n let coverageTrackCount = response.data.data.count;\r\n this.setState({\r\n coverageTrackCount,\r\n isLoading1: false,\r\n });\r\n })\r\n .catch((err) => {\r\n this.setState({\r\n isLoading1: false,\r\n });\r\n if (err.response.status === 401) {\r\n localStorage.removeItem(\"accessKey\");\r\n const { from } = this.props.location.state || {\r\n from: { pathname: \"/\" },\r\n };\r\n this.props.history.push(from);\r\n } else {\r\n alert(err.message);\r\n }\r\n });\r\n }\r\n\r\n // raduisChange = (event, value) => {\r\n // this.setState({ value });\r\n // };\r\n trackModal(storeId, marketName) {\r\n this.setState({\r\n marketStoreName: marketName,\r\n });\r\n let token = localStorage.getItem(\"accessKey\");\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = \"Bearer \" + token;\r\n }\r\n axios\r\n .post(\r\n CONFIG.API_URL + \"market/competitors/\" + storeId + \"/\" + CONFIG.RegionId\r\n )\r\n .then((response) => {\r\n // this.state.isLoading=true;\r\n const trackModalData = response.data.competitor.competitorsList;\r\n let strOptions = [];\r\n trackModalData.forEach(function (e) {\r\n strOptions.push(e.storeID + (e.isTracked ? \"|1\" : \"|0\"));\r\n });\r\n this.setState({\r\n trackModalData,\r\n storeModal: true,\r\n strOptions,\r\n });\r\n })\r\n .catch((err) => {\r\n // if (err.response.status === 401) {\r\n // localStorage.removeItem('accessKey');\r\n // const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n // this.props.history.push(from);\r\n // }\r\n // else {\r\n // alert(err.response.data);\r\n // }\r\n });\r\n // this.setState(prevState => ({\r\n // storeModal: !prevState.storeModal\r\n // }));\r\n }\r\n\r\n trackModalClose() {\r\n this.setState({\r\n storeModal: false,\r\n });\r\n }\r\n\r\n onMarkerClose = () => {\r\n this.setState({ showingInfoWindow: false });\r\n };\r\n\r\n upgradeBtn(plus) {\r\n this.setState({\r\n isLoading1: true,\r\n });\r\n let errortext = \"\";\r\n let data = this.state.data;\r\n data.Plus = plus;\r\n data.RegionId = CONFIG.RegionId;\r\n this.setState({\r\n data,\r\n });\r\n axios\r\n .post(CONFIG.API_URL + \"market/add\", data)\r\n .then((response) => {\r\n let userStoreID = response.data.userStoreID;\r\n this.setState({\r\n isLoading1: false,\r\n userStoreID,\r\n });\r\n if (response.status === 200) {\r\n const already = response.data.result\r\n ? response.data.result.indexOf(\"Store name already exists!\")\r\n : -1;\r\n const storenotExist = response.data.result\r\n ? response.data.result.indexOf(\"Store does not exists!\")\r\n : -1;\r\n const addressNotFound = response.data.result\r\n ? response.data.result.indexOf(\"Address not found!\")\r\n : -1;\r\n\r\n if (already > -1) {\r\n errortext =\r\n \"Market with same name is available in your account. Please rename the market name to proceed further!\";\r\n this.setState({\r\n errortext,\r\n });\r\n }\r\n //else if (response.data.result === 'Store does not exists!') {\r\n else if (storenotExist > -1) {\r\n this.errorHandleOpen();\r\n let addInputData = response.data.data;\r\n this.setState({\r\n addInputData,\r\n });\r\n } else if (addressNotFound > -1) {\r\n let addInputData = response.data.data;\r\n this.setState({\r\n addInputData,\r\n open2: true,\r\n });\r\n } else if (userStoreID >= 1 && this.state.serachTypeval !== 1) {\r\n let addInputData = response.data.data;\r\n this.setState({\r\n addInputData,\r\n });\r\n this.lookupZipcode(userStoreID);\r\n this.lookupCity(userStoreID);\r\n this.setState({ activeStep: this.state.activeStep + 1 });\r\n } else if (userStoreID >= 1 && this.state.serachTypeval === 1) {\r\n let addInputData = response.data.data;\r\n this.setState({\r\n addInputData,\r\n });\r\n this.setState({ activeStep: this.state.activeStep + 1 });\r\n this.lookupZipcode(userStoreID);\r\n this.lookupCity(userStoreID);\r\n }\r\n }\r\n })\r\n .catch((err) => {\r\n this.setState({\r\n isLoading1: false,\r\n });\r\n if (err.response.status === 400) {\r\n alert(err.message);\r\n }\r\n\r\n if (err.response.status === 401) {\r\n localStorage.removeItem(\"accessKey\");\r\n const { from } = this.props.location.state || {\r\n from: { pathname: \"/\" },\r\n };\r\n this.props.history.push(from);\r\n } else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }\r\n\r\n setMapFitBounds = () => {\r\n let { competitorsData } = this.state;\r\n if (\r\n this.getbounds &&\r\n this.state.showComponent !== \"radius\" &&\r\n competitorsData?.data?.competitors?.length\r\n ) {\r\n this.getbounds = false;\r\n let bounds = new window.google.maps.LatLngBounds();\r\n for (let i = 0; i < competitorsData.data.competitors.length; i++) {\r\n let loc = new window.google.maps.LatLng(\r\n competitorsData.data.competitors[i].lat,\r\n competitorsData.data.competitors[i].lng\r\n );\r\n bounds.extend(loc);\r\n }\r\n let homeLoc = new window.google.maps.LatLng(\r\n competitorsData.data.currentStoreDetail.lat,\r\n competitorsData.data.currentStoreDetail.lng\r\n );\r\n bounds.extend(homeLoc);\r\n this.mapRef.current.fitBounds(bounds);\r\n }\r\n };\r\n\r\n addMarket(event, errors, values) {\r\n if (errors.length <= 0) {\r\n this.setState({\r\n isLoading1: true,\r\n });\r\n this.btn0.setAttribute(\"disabled\", \"disabled\");\r\n\r\n // if (this.state.serachTypeval === 1) {\r\n // const data = {\r\n // \"StoreName\": values.marketName,\r\n // \"Address\": values.addressLine1,\r\n // \"Address2\": values.addressLine2,\r\n // \"City\": values.city,\r\n // \"State\": values.state,\r\n // \"Zipcode\": values.zipcode,\r\n // \"UserStoreID\": this.state.userStoreID,\r\n // \"Longitude\": \"\",\r\n // \"Latitude\": \"\",\r\n // \"Status\": 1,\r\n // \"Plus\": this.state.serachTypeval === 2 ? false : this.state.serachTypeval === 4 ? true : false,\r\n // \"IsExisting\": values.exestineStore,\r\n // \"IsConfirm\": false,\r\n // \"Website\": ''\r\n // }\r\n // this.setState({ data, isLoading1: false });\r\n // // this.lookupZipcode();\r\n // // this.setState({ activeStep: this.state.activeStep + 1 });\r\n // }\r\n // else {\r\n this.setState({\r\n isLoading1: true,\r\n });\r\n //this.setState({ activeStep: this.state.activeStep + 1 });\r\n let newAddress = this.state.newAddress;\r\n let oldAddress = this.state.oldAddress;\r\n let errortext = \"\";\r\n newAddress = {\r\n Address: values.addressLine1,\r\n Address2: values.addressLine2,\r\n City: values.city,\r\n State: values.state,\r\n Zipcode: values.zipcode,\r\n };\r\n this.setState({\r\n newAddress,\r\n oldAddress,\r\n });\r\n if (\r\n newAddress.Address === oldAddress.Address &&\r\n newAddress.Address2 === oldAddress.Address2 &&\r\n newAddress.City === oldAddress.City &&\r\n newAddress.State === oldAddress.State &&\r\n newAddress.Zipcode === oldAddress.Zipcode\r\n ) {\r\n } else {\r\n let showComponent = this.state.showComponent;\r\n let selectedCityOption = this.state.selectedCityOption;\r\n let zipcodeOptions = this.state.zipcodeOptions;\r\n let scale = this.state.scale;\r\n showComponent = \"radius\";\r\n zipcodeOptions = [];\r\n selectedCityOption = [];\r\n scale = 10;\r\n this.setState({\r\n showComponent,\r\n selectedCityOption,\r\n zipcodeOptions,\r\n scale,\r\n isSelactCity: false,\r\n });\r\n }\r\n\r\n // if(newAddress != oldAddress){\r\n // let showComponent = this.state.showComponent;\r\n // let selectedCityOption = this.state.selectedCityOption;\r\n // let zipcodeOptions = this.state.zipcodeOptions;\r\n // let scale = this.state.scale;\r\n // showComponent = 'radius';\r\n // zipcodeOptions = [];\r\n // selectedCityOption = [];\r\n // scale = 10;\r\n // this.setState({\r\n // showComponent, selectedCityOption, zipcodeOptions, scale\r\n // });\r\n // }\r\n const data = {\r\n StoreName: values.marketName,\r\n Address: values.addressLine1,\r\n Address2: values.addressLine2,\r\n City: values.city,\r\n State: values.state ? values.state : \"\",\r\n Zipcode: values.zipcode,\r\n UserStoreID: this.state.userStoreID,\r\n Longitude: \"\",\r\n Latitude: \"\",\r\n Status: 1,\r\n Plus:\r\n this.state.serachTypeval === 2\r\n ? false\r\n : this.state.serachTypeval === 4\r\n ? true\r\n : false,\r\n IsExisting: values.exestineStore,\r\n IsConfirm: false,\r\n Website: \"\",\r\n RegionId: CONFIG.RegionId,\r\n };\r\n //localStorage.setItem(data);\r\n axios\r\n .post(CONFIG.API_URL + \"market/add\", data)\r\n .then((response) => {\r\n let userStoreID = this.state.userStoreID;\r\n userStoreID = response.data.userStoreID\r\n ? response.data.userStoreID\r\n : this.state.userStoreID;\r\n // if(userStoreID > 0 && userStoreID !== undefined) {\r\n // this.setState({\r\n // userStoreID\r\n // })\r\n\r\n // }\r\n // else if(userStoreID === undefined){\r\n // let userStoreID = this.state.userStoreID\r\n // this.setState({\r\n // userStoreID\r\n // })\r\n // }\r\n this.setState({\r\n isLoading1: false,\r\n userStoreID,\r\n });\r\n if (response.status === 200) {\r\n const already = response.data.result\r\n ? response.data.result.indexOf(\"Store name already exists!\")\r\n : -1;\r\n const storenotExist = response.data.result\r\n ? response.data.result.indexOf(\"Store does not exists!\")\r\n : -1;\r\n const addressNotFound = response.data.result\r\n ? response.data.result.indexOf(\"Address not found!\")\r\n : -1;\r\n\r\n if (already > -1) {\r\n let addInputData = response.data.data;\r\n errortext =\r\n \"Market with same name is available in your account. Please rename the market name to proceed further!\";\r\n this.setState({\r\n errortext,\r\n addInputData,\r\n marketName: values.marketName,\r\n addressLine1: values.addressLine1,\r\n addressLine2: values.addressLine2,\r\n city: values.city,\r\n state: values.state,\r\n zipcode: values.zipcode,\r\n exestineStore: values.exestineStore,\r\n userStoreID: this.state.userStoreID,\r\n oldAddress: newAddress,\r\n });\r\n this.btn0.removeAttribute(\"disabled\");\r\n } else if (storenotExist > -1) {\r\n this.errorHandleOpen();\r\n let addInputData = response.data.data;\r\n this.setState({\r\n errortext: \"\",\r\n addInputData,\r\n marketName: values.marketName,\r\n addressLine1: values.addressLine1,\r\n addressLine2: values.addressLine2,\r\n city: values.city,\r\n state: values.state ? values.state : \"\",\r\n zipcode: values.zipcode,\r\n exestineStore: values.exestineStore,\r\n userStoreID: this.state.userStoreID,\r\n oldAddress: newAddress,\r\n });\r\n this.btn0.removeAttribute(\"disabled\");\r\n } else if (addressNotFound > -1) {\r\n let addInputData = response.data.data;\r\n this.setState({\r\n errortext: \"\",\r\n addInputData,\r\n open2: true,\r\n marketName: values.marketName,\r\n addressLine1: values.addressLine1,\r\n addressLine2: values.addressLine2,\r\n city: values.city,\r\n state: values.state ? values.state : \"\",\r\n zipcode: values.zipcode,\r\n exestineStore: values.exestineStore,\r\n userStoreID: this.state.userStoreID,\r\n oldAddress: newAddress,\r\n });\r\n this.btn0.removeAttribute(\"disabled\");\r\n } else if (userStoreID >= 1 && this.state.serachTypeval !== 1) {\r\n let addInputData = response.data.data;\r\n this.setState({\r\n errortext: \"\",\r\n addInputData,\r\n marketName: values.marketName,\r\n addressLine1: values.addressLine1,\r\n addressLine2: values.addressLine2,\r\n city: values.city,\r\n state: values.state,\r\n zipcode: values.zipcode,\r\n exestineStore: values.exestineStore,\r\n userStoreID: this.state.userStoreID,\r\n oldAddress: newAddress,\r\n });\r\n this.lookupZipcode(this.state.userStoreID);\r\n this.lookupCity(this.state.userStoreID);\r\n if (this.state.showComponent === \"radius\") {\r\n this.trackCoverageCountRadius(this.state.scale);\r\n }\r\n this.setState({ activeStep: this.state.activeStep + 1 });\r\n localStorage.setItem(\"displayMessage\", 1);\r\n } else if (userStoreID >= 1 && this.state.serachTypeval === 1) {\r\n let addInputData = response.data.data;\r\n this.setState({\r\n errortext: \"\",\r\n addInputData,\r\n zipcode: values.zipcode,\r\n marketName: values.marketName,\r\n addressLine1: values.addressLine1,\r\n addressLine2: values.addressLine2,\r\n city: values.city,\r\n state: values.state,\r\n zipcode: values.zipcode,\r\n exestineStore: values.exestineStore,\r\n userStoreID: this.state.userStoreID,\r\n oldAddress: newAddress,\r\n });\r\n\r\n if (this.state.showComponent === \"radius\") {\r\n this.trackCoverageCountRadius(this.state.scale);\r\n }\r\n this.setState({ activeStep: this.state.activeStep + 1 });\r\n localStorage.setItem(\"displayMessage\", 1);\r\n this.lookupZipcode(this.state.userStoreID);\r\n this.lookupCity(this.state.userStoreID);\r\n }\r\n }\r\n })\r\n .catch((err) => {\r\n this.btn0.removeAttribute(\"disabled\");\r\n this.setState({\r\n isLoading1: false,\r\n marketName: values.marketName,\r\n addressLine1: values.addressLine1,\r\n addressLine2: values.addressLine2,\r\n city: values.city,\r\n state: values.state,\r\n zipcode: values.zipcode,\r\n exestineStore: values.exestineStore,\r\n userStoreID: this.state.userStoreID,\r\n });\r\n if (err.response.status === 400) {\r\n alert(err.message);\r\n }\r\n\r\n if (err.response.status === 401) {\r\n localStorage.removeItem(\"accessKey\");\r\n const { from } = this.props.location.state || {\r\n from: { pathname: \"/\" },\r\n };\r\n this.props.history.push(from);\r\n } else {\r\n alert(err.message);\r\n }\r\n });\r\n\r\n //}\r\n }\r\n }\r\n lookupZipcode1(userStoreID) {\r\n this.setState({\r\n isLoading1: true,\r\n });\r\n const data = {\r\n userStoreID: userStoreID,\r\n RegionId: CONFIG.RegionId,\r\n };\r\n let unzipcodeOptions = [];\r\n axios\r\n .post(CONFIG.API_URL + \"coverage/zipcode\", data)\r\n .then((response) => {\r\n let lookupZipcodeData = response.data.zipcode;\r\n lookupZipcodeData.forEach(function (e) {\r\n unzipcodeOptions.push(e.value);\r\n });\r\n\r\n this.setState({\r\n lookupZipcodeData,\r\n filterlookupZipcodeData: lookupZipcodeData,\r\n unzipcodeOptions,\r\n isLoading1: false,\r\n });\r\n this.lookupCity1(userStoreID);\r\n })\r\n .catch((err) => {\r\n this.setState({\r\n isLoading1: false,\r\n });\r\n if (err.response.status === 401) {\r\n localStorage.removeItem(\"accessKey\");\r\n const { from } = this.props.location.state || {\r\n from: { pathname: \"/\" },\r\n };\r\n this.props.history.push(from);\r\n } else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }\r\n lookupCity1(userStoreID) {\r\n this.setState({\r\n isLoading1: true,\r\n });\r\n const data = {\r\n userStoreID: userStoreID,\r\n RegionId: CONFIG.RegionId,\r\n };\r\n axios\r\n .post(CONFIG.API_URL + \"coverage/city\", data)\r\n .then((response) => {\r\n let lookupCityData = response.data.city;\r\n this.setState({\r\n lookupCityData,\r\n isLoading1: false,\r\n });\r\n this.dummyFn(userStoreID);\r\n })\r\n .catch((err) => {\r\n this.setState({\r\n isLoading1: false,\r\n });\r\n if (err.response.status === 401) {\r\n localStorage.removeItem(\"accessKey\");\r\n const { from } = this.props.location.state || {\r\n from: { pathname: \"/\" },\r\n };\r\n this.props.history.push(from);\r\n } else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }\r\n lookupZipcode(userStoreID) {\r\n this.setState({\r\n isLoading1: true,\r\n });\r\n const data = {\r\n userStoreID: userStoreID,\r\n RegionId: CONFIG.RegionId,\r\n };\r\n let unzipcodeOptions = [];\r\n axios\r\n .post(CONFIG.API_URL + \"coverage/zipcode\", data)\r\n .then((response) => {\r\n let lookupZipcodeData = response.data.zipcode;\r\n lookupZipcodeData.forEach(function (e) {\r\n unzipcodeOptions.push(e.value);\r\n });\r\n\r\n this.setState({\r\n lookupZipcodeData,\r\n filterlookupZipcodeData: lookupZipcodeData,\r\n unzipcodeOptions,\r\n isLoading1: false,\r\n });\r\n return true;\r\n })\r\n .catch((err) => {\r\n this.setState({\r\n isLoading1: false,\r\n });\r\n if (err.response.status === 401) {\r\n localStorage.removeItem(\"accessKey\");\r\n const { from } = this.props.location.state || {\r\n from: { pathname: \"/\" },\r\n };\r\n this.props.history.push(from);\r\n } else {\r\n alert(err.response.data);\r\n }\r\n return false;\r\n });\r\n }\r\n lookupCity(userStoreID) {\r\n this.setState({\r\n isLoading1: true,\r\n });\r\n const data = {\r\n userStoreID: userStoreID,\r\n RegionId: CONFIG.RegionId,\r\n };\r\n axios\r\n .post(CONFIG.API_URL + \"coverage/city\", data)\r\n .then((response) => {\r\n let lookupCityData = response.data.city;\r\n this.setState({\r\n lookupCityData,\r\n isLoading1: false,\r\n });\r\n return true;\r\n })\r\n .catch((err) => {\r\n this.setState({\r\n isLoading1: false,\r\n });\r\n if (err.response.status === 401) {\r\n localStorage.removeItem(\"accessKey\");\r\n const { from } = this.props.location.state || {\r\n from: { pathname: \"/\" },\r\n };\r\n this.props.history.push(from);\r\n } else {\r\n alert(err.response.data);\r\n }\r\n });\r\n return false;\r\n }\r\n\r\n radiusOnChange(scalevalue, value) {\r\n let scale = value;\r\n // this.setState({ scale: scalevalue.target.value, coverageType: 'radius' });\r\n this.setState({ scale: scale, coverageType: \"radius\" });\r\n this.setState({\r\n isLoading1: true,\r\n });\r\n const data = {\r\n UserStoreID: this.state.userStoreID,\r\n Competitorslist: \"\",\r\n SearchType: 1,\r\n Zone: {\r\n // \"Radius\": scalevalue.target.value,\r\n Radius: scale,\r\n Zipcode1: \"\",\r\n Zipcode2: \"\",\r\n Zipcode3: \"\",\r\n CityName: \"\",\r\n },\r\n isCoverageZone: 1,\r\n RegionId: CONFIG.RegionId,\r\n };\r\n let token = localStorage.getItem(\"accessKey\");\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = \"Bearer \" + token;\r\n }\r\n axios\r\n .post(CONFIG.API_URL + \"coverage/competitorbycoverage\", data)\r\n .then((response) => {\r\n let coverageTrackCount = response.data.data.count;\r\n this.setState({\r\n coverageTrackCount,\r\n isLoading1: false,\r\n });\r\n })\r\n .catch((err) => {\r\n this.setState({\r\n isLoading1: false,\r\n });\r\n if (err.response.status === 401) {\r\n localStorage.removeItem(\"accessKey\");\r\n const { from } = this.props.location.state || {\r\n from: { pathname: \"/\" },\r\n };\r\n this.props.history.push(from);\r\n } else {\r\n alert(err.message);\r\n }\r\n });\r\n }\r\n\r\n trackCoverageCount() {\r\n this.setState({\r\n isLoading1: true,\r\n });\r\n const data = {\r\n UserStoreID: this.state.userStoreID,\r\n Competitorslist: this.state.trackedFields.toString(),\r\n SearchType:\r\n this.state.coverageType === \"radius\"\r\n ? 1\r\n : this.state.coverageType === \"zipcode\"\r\n ? 2\r\n : this.state.coverageType === \"city\"\r\n ? 3\r\n : \"\",\r\n Zone: {\r\n Radius: this.state.coverageType === \"radius\" ? this.state.scale : null,\r\n Zipcode1:\r\n this.state.coverageType === \"zipcode\" &&\r\n (this.state.zipcodeOptions.length > 1 ||\r\n this.state.zipcodeOptions.length > 2 ||\r\n this.state.zipcodeOptions.length > 3 ||\r\n this.state.zipcodeOptions.length === 1)\r\n ? this.state.zipcodeOptions[0]\r\n : \"\",\r\n Zipcode2:\r\n this.state.coverageType === \"zipcode\" &&\r\n (this.state.zipcodeOptions.length > 2 ||\r\n this.state.zipcodeOptions.length === 2)\r\n ? this.state.zipcodeOptions[1]\r\n : \"\",\r\n Zipcode3:\r\n this.state.coverageType === \"zipcode\" &&\r\n this.state.zipcodeOptions.length === 3\r\n ? this.state.zipcodeOptions[2]\r\n : \"\",\r\n CityName:\r\n this.state.coverageType === \"city\"\r\n ? this.state.selectedCityOption.value.replace(\",\", \", \")\r\n : null,\r\n },\r\n isCoverageZone: 1,\r\n RegionId: CONFIG.RegionId,\r\n };\r\n let token = localStorage.getItem(\"accessKey\");\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = \"Bearer \" + token;\r\n }\r\n axios\r\n .post(CONFIG.API_URL + \"coverage/competitorbycoverage\", data)\r\n .then((response) => {\r\n let coverageTrackCount = response.data.data.count;\r\n this.setState({\r\n coverageTrackCount,\r\n isLoading1: false,\r\n });\r\n })\r\n .catch((err) => {\r\n this.setState({\r\n isLoading1: false,\r\n });\r\n if (err.response.status === 401) {\r\n localStorage.removeItem(\"accessKey\");\r\n const { from } = this.props.location.state || {\r\n from: { pathname: \"/\" },\r\n };\r\n this.props.history.push(from);\r\n } else {\r\n alert(err.message);\r\n }\r\n });\r\n }\r\n\r\n addCoverage(event, errors, values) {\r\n let zipcodeOptionsLength = this.state.zipcodeOptions\r\n ? this.state.zipcodeOptions.length\r\n : 0;\r\n if (this.state.showComponent === \"radius\" && this.state.scale === 0) {\r\n let errortext1 = \"Please Choose Radius Value\";\r\n this.setState({\r\n errortext1,\r\n });\r\n }\r\n if (this.state.showComponent === \"zipcode\" && zipcodeOptionsLength === 0) {\r\n let errortext1 =\r\n this.state.zipError === \"\" ? \"Please Choose Zip or Postal Code(s)\" : \"\";\r\n this.setState({\r\n errortext1,\r\n });\r\n }\r\n if (\r\n this.state.showComponent === \"city\" &&\r\n this.state.selectedCityOption.value === undefined\r\n ) {\r\n let errortext1 = \"Please Choose City Name\";\r\n this.setState({\r\n errortext1,\r\n });\r\n } else if (\r\n (this.state.showComponent === \"radius\" && this.state.scale > 0) ||\r\n (this.state.showComponent === \"zipcode\" && zipcodeOptionsLength > 0) ||\r\n (this.state.showComponent === \"city\" &&\r\n this.state.selectedCityOption.value !== \"\")\r\n ) {\r\n this.btn1.setAttribute(\"disabled\", \"disabled\");\r\n this.setState({\r\n isLoading1: true,\r\n errortext1: \"\",\r\n });\r\n let scale = this.state.scale;\r\n\r\n const data = {\r\n userStoreID: this.state.userStoreID,\r\n SearchType:\r\n this.state.showComponent === \"radius\"\r\n ? 1\r\n : this.state.showComponent === \"zipcode\"\r\n ? 2\r\n : this.state.showComponent === \"city\"\r\n ? 3\r\n : \"\",\r\n Zone: {\r\n Radius: this.state.showComponent === \"radius\" ? this.state.scale : \"\",\r\n Zipcode1:\r\n this.state.showComponent === \"zipcode\" &&\r\n (this.state.zipcodeOptions.length > 1 ||\r\n this.state.zipcodeOptions.length > 2 ||\r\n this.state.zipcodeOptions.length > 3 ||\r\n this.state.zipcodeOptions.length === 1)\r\n ? this.state.zipcodeOptions[0]\r\n : \"\",\r\n Zipcode2:\r\n this.state.showComponent === \"zipcode\" &&\r\n (this.state.zipcodeOptions.length > 2 ||\r\n this.state.zipcodeOptions.length === 2)\r\n ? this.state.zipcodeOptions[1]\r\n : \"\",\r\n Zipcode3:\r\n this.state.showComponent === \"zipcode\" &&\r\n this.state.zipcodeOptions.length === 3\r\n ? this.state.zipcodeOptions[2]\r\n : \"\",\r\n CityName:\r\n this.state.showComponent === \"city\"\r\n ? this.state.selectedCityOption.value.replace(\",\", \", \")\r\n : \"\",\r\n },\r\n isCoverageZone: 1,\r\n isFirstDisplay: 1,\r\n RegionId: CONFIG.RegionId,\r\n };\r\n let coverageType = this.state.showComponent;\r\n let zipcodevalues = values.zipcodevalues;\r\n let cityvalue = values.cityvalue;\r\n if (coverageType == \"zipcode\") {\r\n let zipcodevalues = this.state.zipcodeOptions[0];\r\n let zipcodevalues1 = this.state.zipcodeOptions[1];\r\n let zipcodevalues2 = this.state.zipcodeOptions[2];\r\n const zoomValue =\r\n coverageType == \"zipcode\" &&\r\n zipcodevalues !== undefined &&\r\n zipcodevalues1 !== undefined &&\r\n zipcodevalues !== undefined\r\n ? 9\r\n : coverageType == \"zipcode\" &&\r\n zipcodevalues !== undefined &&\r\n zipcodevalues1 !== undefined\r\n ? 11\r\n : coverageType == \"zipcode\" && zipcodevalues !== undefined\r\n ? 12\r\n : \"\";\r\n this.setState({ zoomValue: zoomValue });\r\n // if (zipcodevalues !== undefined) {\r\n // this.zip1Polygon(zipcodevalues);\r\n // }\r\n // if (zipcodevalues1 !== undefined) {\r\n // this.zip2Polygon(zipcodevalues1);\r\n // }\r\n // if (zipcodevalues2 !== undefined) {\r\n // this.zip3Polygon(zipcodevalues2);\r\n // }\r\n }\r\n axios\r\n .post(CONFIG.API_URL + \"coverage/searchcompetitors\", data)\r\n .then((response) => {\r\n let competitorsData = response.data;\r\n if (response.data.data.currentStoreDetail.coverage == \"Radius\") {\r\n let zoomLevel = response.data.data.currentStoreDetail.radius;\r\n let zoomValue =\r\n zoomLevel === 1 || zoomLevel === 2\r\n ? 11\r\n : zoomLevel === 3 || zoomLevel === 4\r\n ? 10\r\n : zoomLevel === 5 || zoomLevel === 6\r\n ? 10\r\n : zoomLevel === 7 ||\r\n zoomLevel === 8 ||\r\n zoomLevel === 9 ||\r\n zoomLevel === 10\r\n ? 10\r\n : 6;\r\n this.setState({ zoomValue });\r\n }\r\n let trackedFields = [];\r\n let unTrackedCount = [];\r\n let trackedFields1 = [];\r\n let uniqzipcode = [\r\n ...new Set(\r\n competitorsData.data.competitors.map((item) => item.zipCode)\r\n ),\r\n ];\r\n competitorsData.data.competitors.forEach(function (e) {\r\n trackedFields.push(e.storeId + (e.isTrack === 1 ? \"|1\" : \"|0\"));\r\n });\r\n competitorsData.data.competitors\r\n .filter((e) => e.isTrack === 0)\r\n .forEach(function (e) {\r\n unTrackedCount.push(e.storeId);\r\n });\r\n // competitorsData.data.competitors.filter((e) => e.isTrack === 0).forEach(function (e) { trackedFields1.push(e.storeId + '|0') });\r\n competitorsData.data.competitors.forEach(function (e) {\r\n trackedFields1.push(e.storeId + (e.isTrack === 1 ? \"|1\" : \"|0\"));\r\n });\r\n if (unTrackedCount === undefined) {\r\n unTrackedCount = [];\r\n }\r\n if (trackedFields1 === undefined) {\r\n trackedFields1 = [];\r\n }\r\n\r\n if (trackedFields === undefined) {\r\n trackedFields = [];\r\n }\r\n\r\n this.setState({\r\n isLoading1: false,\r\n competitorsData,\r\n activeStep: this.state.activeStep + 1,\r\n scale,\r\n trackedFields,\r\n trackedFields1,\r\n unTrackedCount,\r\n coverageType,\r\n zipcodevalues,\r\n cityvalue,\r\n uniqzipcode,\r\n });\r\n })\r\n .catch((err) => {\r\n this.setState({\r\n isLoading1: false,\r\n });\r\n if (err.response.status === 401) {\r\n localStorage.removeItem(\"accessKey\");\r\n const { from } = this.props.location.state || {\r\n from: { pathname: \"/\" },\r\n };\r\n this.props.history.push(from);\r\n } else {\r\n alert(err.response.data);\r\n }\r\n this.btn1.removeAttribute(\"disabled\");\r\n });\r\n this.setState({\r\n coverageType,\r\n zipcodevalues,\r\n cityvalue,\r\n });\r\n }\r\n }\r\n\r\n closeModal() {\r\n let path = `/my-market/`;\r\n var isElement = document.getElementById(\"r2\");\r\n if (isElement == null) {\r\n document.getElementById(\"r1\").click();\r\n } else {\r\n document.getElementById(\"r1\").click();\r\n document.getElementById(\"r2\").click();\r\n }\r\n\r\n this.setState({\r\n isLoading1: true,\r\n });\r\n let showComponent = this.state.showComponent;\r\n let selectedCityOption = this.state.selectedCityOption;\r\n let zipcodeOptions = this.state.zipcodeOptions;\r\n let scale = this.state.scale;\r\n let unTrackedCount = this.state.unTrackedCount;\r\n let trackedFields = this.state.trackedFields;\r\n let trackedFields1 = this.state.trackedFields1;\r\n let userStoreID = this.state.userStoreID;\r\n let newAddress = this.state.newAddress;\r\n let oldAddress = this.state.oldAddress;\r\n let tabvalue = this.state.tabvalue;\r\n tabvalue = 0;\r\n newAddress = {};\r\n oldAddress = {};\r\n userStoreID = 0;\r\n showComponent = \"radius\";\r\n zipcodeOptions = [];\r\n selectedCityOption = [];\r\n unTrackedCount = [];\r\n trackedFields = [];\r\n trackedFields1 = [];\r\n scale = 10;\r\n this.setState({\r\n tabvalue,\r\n isLoading1: false,\r\n isSelactCity: false,\r\n unTrackedCount,\r\n trackedFields,\r\n trackedFields1,\r\n open: false,\r\n activeStep: 0,\r\n showComponent,\r\n selectedCityOption,\r\n zipcodeOptions,\r\n scale,\r\n errortext: \"\",\r\n errortext1: \"\",\r\n pageCountMDT: 0,\r\n marketName: \"\",\r\n addressLine1: \"\",\r\n addressLine2: \"\",\r\n city: \"\",\r\n state: \"\",\r\n zipcode: \"\",\r\n exestineStore: \"true\",\r\n addInputData: \"\",\r\n StateCountry: \"\",\r\n userStoreID,\r\n coverageTrackCount: 0,\r\n oldAddress,\r\n newAddress,\r\n });\r\n }\r\n closeModalAddress() {\r\n this.setState({ open2: false });\r\n }\r\n closeModalWebsite() {\r\n this.setState({ open1: false });\r\n }\r\n onCountryChange(e) {\r\n // const isDefaultValue = [];\r\n // const stateData = this.state.stateData;\r\n // const countryData = this.state.countryData;\r\n // stateData.filter((con) => con.stateID === e.target.value).forEach(function (con) { isDefaultValue.unshift(con.countryCode) });\r\n // //stateData.filter((con) => con.stateID === e.target.value).find(con.countryCode);\r\n // countryData.filter((con) => con.countryCode === isDefaultValue.toString()).forEach(function (con) { isDefaultValue.unshift(con.country) });\r\n // isDefaultValue.toString();\r\n\r\n // this.setState({ isDefaultValue });\r\n if (e.target.value === \"\") {\r\n this.setState({ StateCountry: \"\" });\r\n } else {\r\n var state = e.target.value.toString().split(\",\");\r\n var sc_code = state.length > 0 ? state[1].trim() : \"\";\r\n const countryData = this.state.countryData;\r\n // State's country code based country details\r\n let countryDetails = countryData.filter(function (data) {\r\n return data.countryCode === sc_code;\r\n });\r\n\r\n //Adding Country name\r\n // fields['country'] = countryDetails[0].countryID;\r\n this.setState({ StateCountry: countryDetails[0].country });\r\n }\r\n }\r\n handleNext() {\r\n this.setState({ activeStep: this.state.activeStep + 1 });\r\n }\r\n\r\n handleBack() {\r\n // let showComponent = this.state.showComponent;\r\n // let selectedCityOption = this.state.selectedCityOption;\r\n // let selectedZipOption = this.state.selectedZipOption;\r\n // let scale = this.state.scale;\r\n // if (this.state.activeStep === 2) {\r\n // showComponent = 'radius';\r\n // selectedZipOption = [];\r\n // selectedCityOption = [];\r\n // scale = this.state.EditStoredata ? this.state.scale : 10;\r\n // }\r\n if (this.state.activeStep === 2) {\r\n this.setState({ pageCountMDT: 0 });\r\n }\r\n this.setState({\r\n activeStep: this.state.activeStep - 1,\r\n // showComponent, selectedCityOption, selectedZipOption, scale,\r\n open1: false,\r\n open2: false,\r\n showingInfoWindow: false,\r\n showingInfoWindowCity: false,\r\n showingInfoWindowZip: false,\r\n coordinates_one: [],\r\n coordinates_one2: [],\r\n tabvalue: 0,\r\n });\r\n this.getbounds = true;\r\n }\r\n\r\n handleClose() {\r\n this.setState({\r\n open: false,\r\n EditStoredata: {},\r\n errortext: \"\",\r\n marketName: \"\",\r\n addressLine1: \"\",\r\n addressLine2: \"\",\r\n city: \"\",\r\n state: \"\",\r\n zipcode: \"\",\r\n StateCountry: \"\",\r\n exestineStore: \"true\",\r\n });\r\n }\r\n errorHandleOpen() {\r\n this.setState({ open1: true });\r\n }\r\n\r\n addwebsite(event, errors, values) {\r\n let errortext = \"\";\r\n if (errors.length <= 0) {\r\n this.btn3.setAttribute(\"disabled\", \"disabled\");\r\n let data = this.state.addInputData;\r\n let addInputData = this.state.addInputData;\r\n data.website = values.website;\r\n data.userStoreID = this.state.userStoreID;\r\n data.isConfirm = true;\r\n data.RegionId = CONFIG.RegionId;\r\n let exestineStore = this.state.exestineStore;\r\n exestineStore = data.isExisting;\r\n let EditStoredata = this.state.EditStoredata;\r\n if (EditStoredata === !{}) {\r\n EditStoredata.marketName = data.storeName;\r\n EditStoredata.addressLine1 = data.address;\r\n EditStoredata.addressLine2 = data.address2;\r\n EditStoredata.city = data.city;\r\n EditStoredata.state = data.state;\r\n EditStoredata.zipcode = data.zipcode;\r\n EditStoredata.exestineStore = data.isExisting;\r\n }\r\n this.setState({\r\n data,\r\n isLoading1: true,\r\n EditStoredata,\r\n exestineStore,\r\n });\r\n axios\r\n .post(CONFIG.API_URL + \"market/add\", data)\r\n .then((response) => {\r\n let userStoreID = this.state.userStoreID;\r\n userStoreID = response.data.userStoreID\r\n ? response.data.userStoreID\r\n : this.state.userStoreID;\r\n\r\n this.setState({\r\n isLoading1: false,\r\n userStoreID,\r\n });\r\n // let userStoreID = response.data.userStoreID;\r\n // this.setState({\r\n // isLoading1: false,\r\n // userStoreID\r\n // })\r\n const already = response.data.result\r\n ? response.data.result.indexOf(\"Store name already exists!\")\r\n : -1;\r\n const storenotExist = response.data.result\r\n ? response.data.result.indexOf(\"Store does not exists!\")\r\n : -1;\r\n const addressNotFound = response.data.result\r\n ? response.data.result.indexOf(\"Address not found!\")\r\n : -1;\r\n if (response.status === 200) {\r\n if (already > -1) {\r\n errortext =\r\n \"Market with same name is available in your account. Please rename the market name to proceed further!\";\r\n this.setState({\r\n open1: false,\r\n errortext,\r\n marketName: addInputData.storeName,\r\n addressLine1: addInputData.address,\r\n addressLine2: addInputData.address2,\r\n city: addInputData.city,\r\n state: addInputData.state,\r\n zipcode: addInputData.zipcode,\r\n exestineStore: addInputData.isExisting,\r\n userStoreID: this.state.userStoreID,\r\n });\r\n this.btn0.removeAttribute(\"disabled\");\r\n }\r\n //else if (response.data.result === 'Store does not exists!') {\r\n else if (storenotExist > -1) {\r\n this.errorHandleOpen();\r\n let addInputData = response.data.data;\r\n this.setState({\r\n open1: false,\r\n errortext: \"\",\r\n addInputData,\r\n marketName: addInputData.storeName,\r\n addressLine1: addInputData.address,\r\n addressLine2: addInputData.address2,\r\n city: addInputData.city,\r\n state: addInputData.state,\r\n zipcode: addInputData.zipcode,\r\n exestineStore: addInputData.isExisting,\r\n userStoreID: this.state.userStoreID,\r\n });\r\n this.btn0.removeAttribute(\"disabled\");\r\n } else if (addressNotFound > -1) {\r\n let addInputData = response.data.data;\r\n this.setState({\r\n open1: false,\r\n errortext: \"\",\r\n addInputData,\r\n open2: true,\r\n marketName: addInputData.storeName,\r\n addressLine1: addInputData.address,\r\n addressLine2: addInputData.address2,\r\n city: addInputData.city,\r\n state: addInputData.state,\r\n zipcode: addInputData.zipcode,\r\n exestineStore: addInputData.isExisting,\r\n userStoreID: this.state.userStoreID,\r\n });\r\n this.btn0.removeAttribute(\"disabled\");\r\n } else if (userStoreID >= 1 && this.state.serachTypeval !== 1) {\r\n let addInputData = response.data.data;\r\n this.setState({\r\n open1: false,\r\n errortext: \"\",\r\n addInputData,\r\n marketName: addInputData.storeName,\r\n addressLine1: addInputData.address,\r\n addressLine2: addInputData.address2,\r\n city: addInputData.city,\r\n state: addInputData.state,\r\n zipcode: addInputData.zipcode,\r\n exestineStore: addInputData.isExisting,\r\n userStoreID: this.state.userStoreID,\r\n });\r\n this.lookupZipcode(this.state.userStoreID);\r\n this.lookupCity(this.state.userStoreID);\r\n if (this.state.showComponent === \"radius\") {\r\n this.trackCoverageCountRadius(this.state.scale);\r\n }\r\n this.setState({ activeStep: this.state.activeStep + 1 });\r\n localStorage.setItem(\"displayMessage\", 1);\r\n } else if (userStoreID >= 1 && this.state.serachTypeval === 1) {\r\n let addInputData = response.data.data;\r\n this.setState({\r\n open1: false,\r\n errortext: \"\",\r\n addInputData,\r\n marketName: addInputData.storeName,\r\n addressLine1: addInputData.address,\r\n addressLine2: addInputData.address2,\r\n city: addInputData.city,\r\n state: addInputData.state,\r\n zipcode: addInputData.zipcode,\r\n exestineStore: addInputData.isExisting,\r\n userStoreID: this.state.userStoreID,\r\n });\r\n\r\n if (this.state.showComponent === \"radius\") {\r\n this.trackCoverageCountRadius(this.state.scale);\r\n }\r\n this.setState({\r\n activeStep: this.state.activeStep + 1,\r\n already: \"\",\r\n });\r\n localStorage.setItem(\"displayMessage\", 1);\r\n this.lookupZipcode(this.state.userStoreID);\r\n this.lookupCity(this.state.userStoreID);\r\n }\r\n }\r\n })\r\n .catch((err) => {\r\n this.setState({\r\n isLoading1: false,\r\n });\r\n if (err.response.status === 400) {\r\n alert(err.message);\r\n }\r\n\r\n if (err.response.status === 401) {\r\n localStorage.removeItem(\"accessKey\");\r\n const { from } = this.props.location.state || {\r\n from: { pathname: \"/\" },\r\n };\r\n this.props.history.push(from);\r\n } else {\r\n alert(err.response.data.Message);\r\n }\r\n this.btn0.removeAttribute(\"disabled\");\r\n });\r\n\r\n this.setState({ open1: false });\r\n }\r\n }\r\n\r\n handleChangePage = (event, page) => {\r\n this.setState({ page });\r\n };\r\n\r\n handleChangePageTrack = (event, pageCount) => {\r\n this.setState({ pageCount });\r\n };\r\n\r\n handleChangePageMTD = (event, pageCountMDT) => {\r\n this.setState({ pageCountMDT });\r\n };\r\n\r\n handleChangeRowsPerPageMTD = (event) => {\r\n this.setState({ pageCountMDT: 0, 10: event.target.value });\r\n };\r\n\r\n handleChangeRowsPerPageTrack = (event) => {\r\n this.setState({ pageCount: 0, 10: event.target.value });\r\n };\r\n\r\n handleChangeRowsPerPage = (event) => {\r\n this.setState({ page: 0, rowsPerPage: event.target.value });\r\n };\r\n\r\n saveCovergae() {\r\n this.btn2.setAttribute(\"disabled\", \"disabled\");\r\n this.setState({\r\n isLoading1: true,\r\n });\r\n\r\n const data = {\r\n UserStoreID: this.state.userStoreID,\r\n Competitorslist: this.state.trackedFields.toString(),\r\n SearchType:\r\n this.state.coverageType === \"radius\"\r\n ? 1\r\n : this.state.coverageType === \"zipcode\"\r\n ? 2\r\n : this.state.coverageType === \"city\"\r\n ? 3\r\n : \"\",\r\n Zone: {\r\n Radius: this.state.coverageType === \"radius\" ? this.state.scale : null,\r\n Zipcode1:\r\n this.state.coverageType === \"zipcode\" &&\r\n (this.state.zipcodeOptions.length > 1 ||\r\n this.state.zipcodeOptions.length > 2 ||\r\n this.state.zipcodeOptions.length > 3 ||\r\n this.state.zipcodeOptions.length === 1)\r\n ? this.state.zipcodeOptions[0]\r\n : \"\",\r\n Zipcode2:\r\n this.state.coverageType === \"zipcode\" &&\r\n (this.state.zipcodeOptions.length > 2 ||\r\n this.state.zipcodeOptions.length === 2)\r\n ? this.state.zipcodeOptions[1]\r\n : \"\",\r\n Zipcode3:\r\n this.state.coverageType === \"zipcode\" &&\r\n this.state.zipcodeOptions.length === 3\r\n ? this.state.zipcodeOptions[2]\r\n : \"\",\r\n CityName:\r\n this.state.coverageType === \"city\"\r\n ? this.state.selectedCityOption.value.replace(\",\", \", \")\r\n : null,\r\n },\r\n isCoverageZone: 1,\r\n RegionId: CONFIG.RegionId,\r\n };\r\n let token = localStorage.getItem(\"accessKey\");\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = \"Bearer \" + token;\r\n }\r\n axios\r\n .post(CONFIG.API_URL + \"coverage/trackcompetitor\", data)\r\n .then((response) => {\r\n // this.state.isLoading=true;\r\n const trackResponse = response.data;\r\n this.setState({\r\n isLoading1: true,\r\n });\r\n const data = {\r\n UserStoreID: this.state.userStoreID,\r\n SearchType:\r\n this.state.coverageType === \"radius\"\r\n ? 1\r\n : this.state.coverageType === \"zipcode\"\r\n ? 2\r\n : this.state.coverageType === \"city\"\r\n ? 3\r\n : \"\",\r\n Zone: {\r\n Radius:\r\n this.state.coverageType === \"radius\" ? this.state.scale : null,\r\n Zipcode1:\r\n this.state.coverageType === \"zipcode\" &&\r\n (this.state.zipcodeOptions.length > 1 ||\r\n this.state.zipcodeOptions.length > 2 ||\r\n this.state.zipcodeOptions.length > 3 ||\r\n this.state.zipcodeOptions.length === 1)\r\n ? this.state.zipcodeOptions[0]\r\n : null,\r\n Zipcode2:\r\n this.state.coverageType === \"zipcode\" &&\r\n (this.state.zipcodeOptions.length > 2 ||\r\n this.state.zipcodeOptions.length === 2)\r\n ? this.state.zipcodeOptions[1]\r\n : null,\r\n Zipcode3:\r\n this.state.coverageType === \"zipcode\" &&\r\n this.state.zipcodeOptions.length === 3\r\n ? this.state.zipcodeOptions[2]\r\n : null,\r\n CityName:\r\n this.state.coverageType === \"city\"\r\n ? this.state.selectedCityOption.value.replace(\",\", \", \")\r\n : null,\r\n },\r\n RegionId: CONFIG.RegionId,\r\n };\r\n\r\n if (response.status === 200) {\r\n let token = localStorage.getItem(\"accessKey\");\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = \"Bearer \" + token;\r\n }\r\n axios\r\n .post(CONFIG.API_URL + \"coverage/savecoverage\", data)\r\n .then((response) => {\r\n // this.state.isLoading=true;\r\n const trackResponse = response.data;\r\n // console.log(trackResponse)\r\n if (response.status === 200) {\r\n this.setState({\r\n //storeModal: false,\r\n isLoading1: false,\r\n activeStep: this.state.activeStep + 1,\r\n trackResponse,\r\n });\r\n // let strOptions1 = this.state.strOptions1;\r\n // strOptions1= [];\r\n // let strOptions = this.state.strOptions;\r\n // strOptions= [];\r\n }\r\n })\r\n .catch((err) => {\r\n this.setState({\r\n isLoading1: false,\r\n });\r\n if (err.response.status === 401) {\r\n localStorage.removeItem(\"accessKey\");\r\n const { from } = this.props.location.state || {\r\n from: { pathname: \"/\" },\r\n };\r\n this.props.history.push(from);\r\n } else {\r\n alert(err.message);\r\n }\r\n });\r\n\r\n this.setState({\r\n storeModal: false,\r\n });\r\n // let strOptions1 = this.state.strOptions1;\r\n // strOptions1= [];\r\n // let strOptions = this.state.strOptions;\r\n // strOptions= [];\r\n //this.componentDidMount();\r\n }\r\n })\r\n .catch((err) => {\r\n this.setState({\r\n isLoading1: false,\r\n });\r\n if (err.response.status === 401) {\r\n localStorage.removeItem(\"accessKey\");\r\n const { from } = this.props.location.state || {\r\n from: { pathname: \"/\" },\r\n };\r\n this.props.history.push(from);\r\n } else {\r\n alert(err.message);\r\n }\r\n });\r\n }\r\n\r\n // sendTrackFields() {\r\n // const data = {\r\n // \"UserStoreID\": this.state.trackStorId,\r\n // \"Competitorslist\": this.state.trackedFields1.toString(),\r\n // \"SearchType\": this.state.coverageType === 'radius' ? 1 : this.state.coverageType === 'zipcode' ? 2 : this.state.coverageType === 'city' ? 3 : '',\r\n // \"Zone\": {\r\n // \"Radius\": this.state.scale ? this.state.scale : 10,\r\n // \"Zipcode1\": this.state.zipcodevalues ? this.state.zipcodevalues[0] : null,\r\n // \"Zipcode2\": this.state.zipcodevalues ? this.state.zipcodevalues[1] : null,\r\n // \"Zipcode3\": this.state.zipcodevalues ? this.state.zipcodevalues[2] : null,\r\n // \"CityName\": this.state.cityvalue ? this.state.cityvalue[0] : null\r\n // },\r\n // \"isCoverageZone\": 1\r\n // }\r\n // let token = localStorage.getItem('accessKey');\r\n // if (token) {\r\n // axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n // }\r\n // axios.post(CONFIG.API_URL + 'coverage/trackcompetitor', data)\r\n // .then(response => {\r\n // // this.state.isLoading=true;\r\n // const trackResponse = response.data;\r\n // this.setState({\r\n // isLoading: true\r\n // })\r\n // if (response.status === 200) {\r\n // this.setState({\r\n // storeModal: false\r\n // })\r\n // // let strOptions1 = this.state.strOptions1;\r\n // // strOptions1= [];\r\n // // let strOptions = this.state.strOptions;\r\n // // strOptions= [];\r\n // this.componentDidMount();\r\n // }\r\n // }).catch((err) => {\r\n // // if (err.response.status === 401) {\r\n // // localStorage.removeItem('accessKey');\r\n // // const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n // // this.props.history.push(from);\r\n // // }\r\n // // else {\r\n // // alert(err.response.data);\r\n // // }\r\n // });\r\n // this.setState({\r\n // isLoading: false\r\n // })\r\n // }\r\n // trackhandle (store,userstore)\r\n // {\r\n // let trackStorId = userstore;\r\n // let trackedFields = this.state.trackedFields;\r\n // let trackedFields1 = this.state.trackedFields1;\r\n // let index;\r\n // let index1;\r\n // if(this.state.track == true)\r\n // {\r\n // index = trackedFields.indexOf(+store + '|0');\r\n // index1 = trackedFields1.indexOf(+store + '|0');\r\n // if (index >= 0) {\r\n // trackedFields.splice(index, 1)\r\n // }\r\n // if (index1 >= 0) {\r\n // trackedFields1.splice(index1, 1)\r\n // }\r\n // //trackOptions.push(+storeID);\r\n // trackedFields.push(+store + '|1');\r\n // trackedFields1.push(+store + '|1');\r\n // }\r\n // else if(this.state.track == false)\r\n // {\r\n // index = trackedFields.indexOf(+store + '|1');\r\n // index1 = trackedFields1.indexOf(+store + '|1');\r\n // if (index >= 0) {\r\n // trackedFields.splice(index, 1)\r\n // }\r\n // if (index1 >= 0) {\r\n // trackedFields1.splice(index1, 1)\r\n // }\r\n // trackedFields.push(+store + '|0');\r\n // trackedFields1.push(+store + '|0');\r\n // }\r\n // this.setState({\r\n // trackedFields, trackStorId, trackedFields1\r\n // })\r\n\r\n // }\r\n\r\n trackhandleClick(event, storeID, userStId) {\r\n let trackStorId = userStId;\r\n let storesid = storeID;\r\n let tra = this.state.isTracks;\r\n if (this.state.selectedPlace === storesid) {\r\n this.setState({ isTracks: tra === 1 ? 0 : 1 });\r\n }\r\n // let trackOptions = this.state.trackOptions;\r\n let trackedFields = this.state.trackedFields;\r\n let trackedFields1 = this.state.trackedFields1;\r\n let index;\r\n let index1;\r\n\r\n if (event.target.checked) {\r\n // this.state.disablecheckbox = true;\r\n index = trackedFields.indexOf(+storeID + \"|0\");\r\n index1 = trackedFields1.indexOf(+storeID + \"|0\");\r\n if (index >= 0) {\r\n trackedFields.splice(index, 1);\r\n }\r\n if (index1 >= 0) {\r\n trackedFields1.splice(index1, 1);\r\n }\r\n //trackOptions.push(+storeID);\r\n trackedFields.push(+storeID + \"|1\");\r\n trackedFields1.push(+storeID + \"|1\");\r\n } else if (!event.target.checked) {\r\n index = trackedFields.indexOf(+storeID + \"|1\");\r\n index1 = trackedFields1.indexOf(+storeID + \"|1\");\r\n if (index >= 0) {\r\n trackedFields.splice(index, 1);\r\n }\r\n if (index1 >= 0) {\r\n trackedFields1.splice(index1, 1);\r\n }\r\n trackedFields.push(+storeID + \"|0\");\r\n trackedFields1.push(+storeID + \"|0\");\r\n }\r\n this.setState({\r\n trackedFields,\r\n trackStorId,\r\n trackedFields1,\r\n });\r\n }\r\n\r\n upgradehandleClick(event, storeID, userStId) {\r\n let userStorId = userStId;\r\n let trackOptions = this.state.trackOptions;\r\n let strOptions = this.state.strOptions;\r\n let strOptions1 = this.state.strOptions1;\r\n let index;\r\n let index1;\r\n\r\n if (event.target.checked) {\r\n // this.state.disablecheckbox = true;\r\n index = strOptions.indexOf(+storeID + \"|0\");\r\n index1 = strOptions1.indexOf(+storeID + \"|0\");\r\n if (index >= 0) {\r\n strOptions.splice(index, 1);\r\n }\r\n if (index1 >= 0) {\r\n strOptions1.splice(index1, 1);\r\n }\r\n trackOptions.push(+storeID);\r\n strOptions.push(+storeID + \"|1\");\r\n strOptions1.push(+storeID + \"|1\");\r\n } else if (!event.target.checked) {\r\n index = strOptions.indexOf(+storeID + \"|1\");\r\n index1 = strOptions1.indexOf(+storeID + \"|1\");\r\n if (index >= 0) {\r\n strOptions.splice(index, 1);\r\n }\r\n if (index1 >= 0) {\r\n strOptions1.splice(index1, 1);\r\n }\r\n strOptions.push(+storeID + \"|0\");\r\n strOptions1.push(+storeID + \"|0\");\r\n }\r\n this.setState({\r\n strOptions,\r\n userStorId,\r\n strOptions1,\r\n });\r\n }\r\n\r\n getMapQuestResultZip(query) {\r\n let lengthCheck = query.length;\r\n let centerLat, centerLng;\r\n let checkZip = 0;\r\n if (this.timeout) clearTimeout(this.timeout);\r\n this.timeout = setTimeout(() => {\r\n query.map((zipCode) => {\r\n const url =\r\n CONFIG.MapQuestKey_URL +\r\n CONFIG.MapQuestKey +\r\n \"&hostedData=mqap.uspostalcodes&origin=\" +\r\n zipCode +\r\n \"&ambiguities=ignore\";\r\n fetch(url)\r\n .then((response) => response.json())\r\n .then((response) => {\r\n let data = [];\r\n let coordinates = [];\r\n let coordinates_one = [];\r\n for (var val = 0; val < response.resultsCount; val++) {\r\n if (\r\n response.searchResults[val].fields.POSTCODE ===\r\n zipCode.toString()\r\n ) {\r\n try {\r\n data = response.searchResults[val].shapePoints.exterior;\r\n let Arr2 = [],\r\n Arr3 = [];\r\n // coordinates = [];\r\n let datas = [];\r\n let test = [];\r\n //let check = response.searchResults[2].shapePoints.exterior;\r\n data.map((detailss) => {\r\n test.push(detailss);\r\n });\r\n for (var i = 0; i < test.length; i++) {\r\n if ((i + 2) % 2 == 0) {\r\n Arr3.push(test[i]);\r\n } else {\r\n Arr2.push(test[i]);\r\n }\r\n }\r\n var merged = [];\r\n for (var i = 0; i < Arr2.length; i++) {\r\n merged.push(appendArrays(Arr2[i], Arr3[i]));\r\n }\r\n function appendArrays() {\r\n var temp = [];\r\n for (var i = 0; i < arguments.length; i++) {\r\n temp.push(arguments[i]);\r\n }\r\n return temp;\r\n }\r\n let position = 0;\r\n merged.map((location) => {\r\n coordinates.push({ lat: location[1], lng: location[0] });\r\n // bounds.extend({\"lat\": location[1], \"lng\": location[0]});\r\n });\r\n this.state.coordinates = coordinates;\r\n this.setState({\r\n centerLat: coordinates[0].lat,\r\n centerLng: coordinates[0].lng,\r\n });\r\n coordinates_one.push([coordinates]);\r\n this.state.coordinates_one = [...coordinates_one];\r\n coordinates = [];\r\n } catch (e) {\r\n for (\r\n var n = 0;\r\n n < response.searchResults[val].shapePoints.length;\r\n n++\r\n ) {\r\n data = response.searchResults[val].shapePoints[n].exterior;\r\n let Arr2 = [],\r\n Arr3 = [];\r\n // coordinates = [];\r\n let datas = [];\r\n let test = [];\r\n //let check = response.searchResults[2].shapePoints.exterior;\r\n data.map((detailss) => {\r\n test.push(detailss);\r\n });\r\n for (var i = 0; i < test.length; i++) {\r\n if ((i + 2) % 2 == 0) {\r\n Arr3.push(test[i]);\r\n } else {\r\n Arr2.push(test[i]);\r\n }\r\n }\r\n var merged = [];\r\n for (var i = 0; i < Arr2.length; i++) {\r\n merged.push(appendArrays(Arr2[i], Arr3[i]));\r\n }\r\n function appendArrays() {\r\n var temp = [];\r\n for (var i = 0; i < arguments.length; i++) {\r\n temp.push(arguments[i]);\r\n }\r\n return temp;\r\n }\r\n let position = 0;\r\n merged.map((location) => {\r\n coordinates.push({ lat: location[1], lng: location[0] });\r\n // bounds.extend({\"lat\": location[1], \"lng\": location[0]});\r\n });\r\n this.state.coordinates = coordinates;\r\n coordinates_one.push([coordinates]);\r\n this.state.coordinates_one = [...coordinates_one];\r\n coordinates = [];\r\n }\r\n }\r\n }\r\n }\r\n var mergedCoordinates = this.state.coordinates_one;\r\n if (checkZip === 0) {\r\n this.setState({ coordinates_one2: mergedCoordinates });\r\n checkZip++;\r\n } else {\r\n var concatCoord =\r\n this.state.coordinates_one2.concat(mergedCoordinates);\r\n this.setState({ coordinates_one2: concatCoord });\r\n }\r\n })\r\n .catch((error) => this.setState({ isLoading: false }));\r\n });\r\n }, 1000);\r\n }\r\n\r\n getMapQuestResultCity(query) {\r\n var citySplit = query.split(\",\");\r\n var city = citySplit[0].toUpperCase();\r\n if (!query) {\r\n return;\r\n }\r\n if (this.timeout) clearTimeout(this.timeout);\r\n this.timeout = setTimeout(() => {\r\n const url =\r\n CONFIG.MapQuestKey_URL +\r\n CONFIG.MapQuestKey +\r\n \"&hostedData=mqap.uspostalcodes&origin=\" +\r\n query +\r\n \"&ambiguities=ignore\";\r\n fetch(url)\r\n .then((response) => response.json())\r\n .then((response) => {\r\n let data = [];\r\n let coordinates = [];\r\n let coordinates_one = [];\r\n for (var val = 0; val < response.resultsCount; val++) {\r\n if (response.searchResults[val].fields.ADMIN4 === city) {\r\n try {\r\n data = response.searchResults[val].shapePoints.exterior;\r\n let Arr2 = [],\r\n Arr3 = [];\r\n // coordinates = [];\r\n let datas = [];\r\n let test = [];\r\n //let check = response.searchResults[2].shapePoints.exterior;\r\n data.map((detailss) => {\r\n test.push(detailss);\r\n });\r\n for (var i = 0; i < test.length; i++) {\r\n if ((i + 2) % 2 == 0) {\r\n Arr3.push(test[i]);\r\n } else {\r\n Arr2.push(test[i]);\r\n }\r\n }\r\n var merged = [];\r\n for (var i = 0; i < Arr2.length; i++) {\r\n merged.push(appendArrays(Arr2[i], Arr3[i]));\r\n }\r\n function appendArrays() {\r\n var temp = [];\r\n for (var i = 0; i < arguments.length; i++) {\r\n temp.push(arguments[i]);\r\n }\r\n return temp;\r\n }\r\n let position = 0;\r\n merged.map((location) => {\r\n coordinates.push({ lat: location[1], lng: location[0] });\r\n // bounds.extend({\"lat\": location[1], \"lng\": location[0]});\r\n });\r\n this.state.coordinates = coordinates;\r\n coordinates_one.push([coordinates]);\r\n this.state.coordinates_one = [...coordinates_one];\r\n coordinates = [];\r\n } catch (e) {\r\n for (\r\n var n = 0;\r\n n < response.searchResults[val].shapePoints.length;\r\n n++\r\n ) {\r\n data = response.searchResults[val].shapePoints[n].exterior;\r\n let Arr2 = [],\r\n Arr3 = [];\r\n // coordinates = [];\r\n let datas = [];\r\n let test = [];\r\n //let check = response.searchResults[2].shapePoints.exterior;\r\n data.map((detailss) => {\r\n test.push(detailss);\r\n });\r\n for (var i = 0; i < test.length; i++) {\r\n if ((i + 2) % 2 == 0) {\r\n Arr3.push(test[i]);\r\n } else {\r\n Arr2.push(test[i]);\r\n }\r\n }\r\n var merged = [];\r\n for (var i = 0; i < Arr2.length; i++) {\r\n merged.push(appendArrays(Arr2[i], Arr3[i]));\r\n }\r\n function appendArrays() {\r\n var temp = [];\r\n for (var i = 0; i < arguments.length; i++) {\r\n temp.push(arguments[i]);\r\n }\r\n return temp;\r\n }\r\n let position = 0;\r\n merged.map((location) => {\r\n coordinates.push({ lat: location[1], lng: location[0] });\r\n // bounds.extend({\"lat\": location[1], \"lng\": location[0]});\r\n });\r\n this.state.coordinates = coordinates;\r\n coordinates_one.push([coordinates]);\r\n this.state.coordinates_one = [...coordinates_one];\r\n coordinates = [];\r\n }\r\n }\r\n }\r\n }\r\n var mergedCoordinates = this.state.coordinates_one;\r\n this.setState({ coordinates_one: mergedCoordinates });\r\n })\r\n\r\n .catch((error) => this.setState({ isLoading: false }));\r\n }, 1000);\r\n }\r\n\r\n deleteComp() {\r\n const data = {\r\n UserStoreID: this.state.userStoreId,\r\n CompetitorID: this.state.selectedPlace,\r\n SearchType:\r\n this.state.coverageType === \"radius\"\r\n ? 1\r\n : this.state.coverageType === \"zipcode\"\r\n ? 2\r\n : this.state.coverageType === \"city\"\r\n ? 3\r\n : \"\",\r\n Zone: {\r\n Radius: this.state.coverageType === \"radius\" ? this.state.scale : null,\r\n Zipcode1:\r\n this.state.coverageType === \"zipcode\" &&\r\n (this.state.zipcodeOptions.length > 1 ||\r\n this.state.zipcodeOptions.length > 2 ||\r\n this.state.zipcodeOptions.length > 3 ||\r\n this.state.zipcodeOptions.length === 1)\r\n ? this.state.zipcodeOptions[0]\r\n : \"\",\r\n Zipcode2:\r\n this.state.coverageType === \"zipcode\" &&\r\n (this.state.zipcodeOptions.length > 2 ||\r\n this.state.zipcodeOptions.length === 2)\r\n ? this.state.zipcodeOptions[1]\r\n : \"\",\r\n Zipcode3:\r\n this.state.coverageType === \"zipcode\" &&\r\n this.state.zipcodeOptions.length === 3\r\n ? this.state.zipcodeOptions[2]\r\n : \"\",\r\n CityName:\r\n this.state.coverageType === \"city\"\r\n ? this.state.selectedCityOption.value.replace(\",\", \", \")\r\n : null,\r\n },\r\n isCoverageZone: 1,\r\n RegionId: CONFIG.RegionId,\r\n };\r\n\r\n let token = localStorage.getItem(\"accessKey\");\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = \"Bearer \" + token;\r\n }\r\n\r\n axios\r\n .post(CONFIG.API_URL + \"coverage/hidecompetitor\", data)\r\n .then((response) => {\r\n // this.state.isLoading=true;\r\n const success = response.data;\r\n\r\n if (response.status === 200) {\r\n //alert('Hide ScuessFully');\r\n //this.componentDidMount();\r\n }\r\n })\r\n .catch((err) => {\r\n if (err.response.status === 401) {\r\n localStorage.removeItem(\"accessKey\");\r\n const { from } = this.props.location.state || {\r\n from: { pathname: \"/\" },\r\n };\r\n this.props.history.push(from);\r\n } else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }\r\n\r\n onMarkerClick = (track, storeid, userstid, marker, lat, lng, address) => {\r\n var add = address;\r\n var last = add.lastIndexOf(\",\");\r\n var s1 = add.substring(0, last);\r\n var s2 = add.substring(last + 1);\r\n //setTimeout(() => {\r\n this.setState({\r\n selectedPlace: storeid,\r\n userStr: userstid,\r\n activeMarker: marker ? marker : \"\",\r\n lat: lat,\r\n lng: lng,\r\n track: track === 1 ? true : false,\r\n isTracks: track,\r\n tracked: track === 1 ? \"Click to Untrack\" : \"Click to Track\",\r\n address: address ? s1 : \"\",\r\n address1: address ? s2 : \"\",\r\n showingInfoWindow: true,\r\n });\r\n //},500)\r\n };\r\n\r\n goToMymarket() {\r\n let showComponent = this.state.showComponent;\r\n let selectedCityOption = this.state.selectedCityOption;\r\n let zipcodeOptions = this.state.zipcodeOptions;\r\n let scale = this.state.scale;\r\n let unTrackedCount = this.state.unTrackedCount;\r\n let trackedFields = this.state.trackedFields;\r\n let trackedFields1 = this.state.trackedFields1;\r\n let userStoreID = this.state.userStoreID;\r\n let addInputData = this.state.addInputData;\r\n let newAddress = this.state.newAddress;\r\n let oldAddress = this.state.oldAddress;\r\n let tabvalue = this.state.tabvalue;\r\n tabvalue = 0;\r\n newAddress = {};\r\n oldAddress = {};\r\n userStoreID = 0;\r\n showComponent = \"radius\";\r\n zipcodeOptions = [];\r\n selectedCityOption = [];\r\n scale = 10;\r\n unTrackedCount = [];\r\n trackedFields = [];\r\n trackedFields1 = [];\r\n addInputData = \"\";\r\n this.setState({\r\n open: false,\r\n tabvalue,\r\n isSelactCity: false,\r\n unTrackedCount,\r\n trackedFields,\r\n trackedFields1,\r\n activeStep: 0,\r\n showComponent,\r\n zipcodeOptions,\r\n selectedCityOption,\r\n scale,\r\n errortext: \"\",\r\n errortext1: \"\",\r\n pageCountMDT: 0,\r\n marketName: \"\",\r\n addressLine1: \"\",\r\n addressLine2: \"\",\r\n city: \"\",\r\n state: \"\",\r\n zipcode: \"\",\r\n exestineStore: \"true\",\r\n StateCountry: \"\",\r\n coverageTrackCount: 0,\r\n userStoreID,\r\n addInputData,\r\n newAddress,\r\n oldAddress,\r\n });\r\n\r\n let path = `/my-market/`;\r\n this.props.parm.children === undefined\r\n ? this.props.parentMethod()\r\n : this.props.parm.children.props.history.push(path);\r\n\r\n var isElement = document.getElementById(\"r2\");\r\n if (isElement == null) {\r\n document.getElementById(\"r1\").click();\r\n } else {\r\n document.getElementById(\"r1\").click();\r\n document.getElementById(\"r2\").click();\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n // this.setState({\r\n // isLoading: true\r\n // })\r\n this.delayedShowMarker();\r\n let token = localStorage.getItem(\"accessKey\");\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = \"Bearer \" + token;\r\n }\r\n // axios.post(CONFIG.API_URL + 'Account/reputationstore')\r\n axios\r\n .post(CONFIG.API_URL + \"Account/reputationstore/\" + CONFIG.RegionId)\r\n .then((res) => {\r\n const myMarketData = res.data;\r\n let serachTypeval;\r\n if (myMarketData.result1.length > 0) {\r\n serachTypeval = myMarketData.result1.find(function (searchType) {\r\n return searchType;\r\n });\r\n serachTypeval = serachTypeval.searchType;\r\n }\r\n this.setState({\r\n isLoading: false,\r\n myMarketData,\r\n serachTypeval,\r\n });\r\n })\r\n .catch((err) => {\r\n this.setState({ isLoading: false });\r\n if (err.response.status === 401) {\r\n localStorage.removeItem(\"accessKey\");\r\n const { from } = this.props.location.state || {\r\n from: { pathname: \"/\" },\r\n };\r\n this.props.history.push(from);\r\n } else {\r\n alert(err.response.data);\r\n }\r\n });\r\n\r\n // axios.get(CONFIG.API_URL + 'home/lookupdata')\r\n axios\r\n .get(CONFIG.API_URL + \"home/lookupdata/\" + CONFIG.RegionId + \"/\" + 0)\r\n .then((response) => {\r\n let stateData = response.data.lookups.statesList;\r\n let countryData = response.data.lookups.countryList;\r\n //To know how many Countries in statesList data\r\n let StateCountryCount = stateData.filter((data) => {\r\n return data.stateID === \"\";\r\n }).length;\r\n\r\n this.setState({\r\n stateData,\r\n countryData,\r\n StateCountryCount,\r\n });\r\n });\r\n }\r\n\r\n render() {\r\n const steps = [\r\n this.state.title1,\r\n \"Choose Coverage Type\",\r\n \"Review Coverage\",\r\n \"Confirm Market\",\r\n ];\r\n const params = {\r\n v: \"3.exp\",\r\n key: \"AIzaSyDaYQZ0es5K-kLgDuZuTqRHKiTDENEMxxQ\",\r\n };\r\n let storeid = this.state.selectedPlace;\r\n const {\r\n ZipcodeFilter,\r\n zipcodeOptions,\r\n isSelactCity,\r\n unzipcodeOptions,\r\n EditStoredata,\r\n selectedCityOption,\r\n selectedZipOption,\r\n trackedFields,\r\n trackedFields1,\r\n unTrackedCount,\r\n addInputData,\r\n errortext,\r\n errortext1,\r\n tabvalue,\r\n filterlookupZipcodeData,\r\n zipError,\r\n lookupZipcodeData,\r\n lookupCityData,\r\n showComponent,\r\n addMarketData,\r\n zipcode,\r\n stateData,\r\n countryData,\r\n rowsPerPage,\r\n page,\r\n pageCount,\r\n pageCountMDT,\r\n myMarketData,\r\n isLoading,\r\n isLoading1,\r\n isDefaultValue,\r\n trackModalData,\r\n strOptions,\r\n selectedPlace,\r\n activeMarker,\r\n showingInfoWindow,\r\n address,\r\n } = this.state;\r\n const {\r\n open,\r\n open1,\r\n open2,\r\n snackOpen,\r\n snackMSg,\r\n activeStep,\r\n radiusValue,\r\n competitorsData,\r\n trackResponse,\r\n } = this.state;\r\n const {\r\n coverageTrackCount,\r\n zipCoordinates1,\r\n zipCoordinates2,\r\n zipCoordinates3,\r\n cityCoordinates,\r\n StateCountryCount,\r\n } = this.state;\r\n const defaultValues = {\r\n coverageType: this.state.showComponent,\r\n exestineStore: this.state.exestineStore\r\n ? this.state.exestineStore.toString()\r\n : EditStoredata && EditStoredata.exestineStore\r\n ? EditStoredata.exestineStore.toString()\r\n : \"true\",\r\n };\r\n const defaultProps = {\r\n helpTitle:\r\n this.state.activeStep && this.state.activeStep === 1\r\n ? \"Let's define your coverage\"\r\n : this.state.activeStep && this.state.activeStep === 2\r\n ? \"Review your coverage area\"\r\n : \"\",\r\n\r\n helpContent:\r\n (this.state.activeStep &&\r\n this.state.activeStep === 1 &&\r\n CONFIG.RegionId == 2) ||\r\n CONFIG.RegionId == 4\r\n ? \"
  • The coverage for this Market/address is what you consider your immediate competitor area.
  • Select a kilometre radius, a city or specific zip code(s) to set as the coverage area for this Market.
  • The market insights shown throughout the site, including competitor stores, will be based on the coverage area you select here.

Sometimes what you consider your competitor area can change, that's fine! Come back to this section any time you want to change the coverage area.

Refer the below help video for more information.

\"\r\n : this.state.activeStep &&\r\n this.state.activeStep === 1 &&\r\n CONFIG.RegionId != (2 || 4)\r\n ? \"
  • The coverage for this Market/address is what you consider your immediate competitor area.
  • Select a mile radius, a city or specific zip code(s) to set as the coverage area for this Market.
  • The market insights shown throughout the site, including competitor stores, will be based on the coverage area you select here.

Sometimes what you consider your competitor area can change, that's fine! Come back to this section any time you want to change the coverage area.

Refer the below help video for more information.

\"\r\n : this.state.activeStep && this.state.activeStep === 2\r\n ? \"
  • These are the stores found within the coverage area you selected in the previous step.
  • Not your competition? We get it, maybe the guys across the street are no match to the value you bring to your customers. To remove any of stores/competitors from the market insights you see throughout the site, unselect the box under Track next to the store.
Lay of the land

Click on the Map icon to view the stores on a map and see which ones are advertising rates (blue) and which ones are not (black).

I can't find a store

If you find there's a store missing on the list, click the Are there any stores missing? link and fill out the form.

\"\r\n : \"\",\r\n };\r\n // let errMsg = CONFIG.RegionId === 3 ? CONFIG.PostalCodevalidationUK:CONFIG.PostalCodevalidation;\r\n\r\n return (\r\n
\r\n {isLoading ? (\r\n
\r\n
\r\n
\r\n ) : (\r\n \"\"\r\n )}\r\n\r\n {isLoading1 ? (\r\n
\r\n
\r\n
\r\n ) : (\r\n \"\"\r\n )}\r\n \r\n \r\n
\r\n {this.state.activeStep === 0 ? (\r\n {this.state.title}\r\n ) : this.state.activeStep === 1 ? (\r\n {this.state.title}\r\n ) : this.state.activeStep === 2 ? (\r\n {this.state.title}\r\n ) : this.state.activeStep === 3 ? (\r\n {this.state.title}\r\n ) : (\r\n \"\"\r\n )}\r\n \r\n \r\n \r\n\r\n \r\n {steps.map((label, index) => (\r\n \r\n index\r\n ? \"MuiStepIcon-completed-cx\"\r\n : \"\"\r\n }\r\n // optional={index+1}\r\n completed={false}\r\n >\r\n {label}\r\n \r\n \r\n ))}\r\n \r\n
\r\n
\r\n\r\n \r\n \r\n
\r\n
\r\n {this.state.activeStep === 0 ? (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n {errortext ? errortext : \"\"}\r\n
\r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n {CONFIG.RegionId === 3 ? (\r\n \"\"\r\n ) : (\r\n \r\n \r\n this.onCountryChange(e)\r\n }\r\n value={\r\n this.state.state\r\n ? this.state.state\r\n : EditStoredata.state\r\n ? EditStoredata.state\r\n : \"\"\r\n }\r\n >\r\n \r\n {stateData\r\n ? stateData.map((state) =>\r\n state.stateID === \"\" &&\r\n StateCountryCount <= 1 ? (\r\n \"\"\r\n ) : (\r\n \r\n {state.state}\r\n \r\n )\r\n )\r\n : \"\"}\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {CONFIG.RegionId === 3 ? (\r\n \"\"\r\n ) : (\r\n \r\n {/* */}\r\n \r\n {this.state.StateCountry}\r\n \r\n {/* {countryData ? countryData.map((country) =>\r\n \r\n\r\n ) : ''} */}\r\n \r\n )}\r\n
\r\n \r\n
\r\n
\r\n {/* */}\r\n\r\n {/* */}\r\n\r\n {\r\n this.btn0 = btn0;\r\n }}\r\n type=\"submit\"\r\n variant=\"contained\"\r\n color=\"primary\"\r\n className=\"next-btn save-t\"\r\n >\r\n Save and Go to Next\r\n \r\n \r\n Go Back\r\n \r\n {/* \r\n Back\r\n */}\r\n\r\n {/* */}\r\n\r\n {/* \r\n \r\n */}\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n Store not found\r\n \r\n \r\n \r\n \r\n \r\n

\r\n This store is not yet part of our database.\r\n Let us know if this store needs to be added\r\n to our system. Our research team will review\r\n your inquiry and add the store to our\r\n database within 72 hours.\r\n

\r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n \r\n {\r\n this.btn3 = btn3;\r\n }}\r\n type=\"submit\"\r\n color=\"primary\"\r\n autoFocus\r\n >\r\n Submit & Continue with this address\r\n \r\n {\r\n this.btn3 = btn3;\r\n }}\r\n onClick={this.closeModalWebsite.bind(this)}\r\n color=\"primary\"\r\n className=\"cancel-web-btn\"\r\n type=\"button\"\r\n >\r\n Update address\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n Address not found\r\n \r\n \r\n \r\n \r\n

\r\n Please make sure you have entered a valid\r\n address.\r\n

\r\n

\r\n If you believe you have received this message in\r\n error, please contact our support team at{\" \"}\r\n {CONFIG.Mail_Support} or{\" \"}\r\n {CONFIG.RegionId === 3\r\n ? CONFIG.Sales_Support\r\n : CONFIG.Toll_Free}\r\n .\r\n

\r\n \r\n \r\n
\r\n \r\n
\r\n ) : this.state.activeStep === 1 ? (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* \r\n \r\n \r\n \r\n\r\n */}\r\n
\r\n
\r\n Define your coverage type{\" \"}\r\n \r\n
\r\n
\r\n \r\n }\r\n label=\"Radius\"\r\n />\r\n \r\n }\r\n label=\"Zip or Postal Code(s) *\"\r\n />\r\n \r\n }\r\n label=\"City Name *\"\r\n />\r\n
\r\n \r\n \r\n {this.state.showComponent === \"radius\" ? (\r\n
\r\n

Radius based market coverage

\r\n \r\n {CONFIG.RegionId == 2 || CONFIG.RegionId == 4\r\n ? \"How many kilometres would you like to choose as your Radius?\"\r\n : \"How many miles would you like to choose as your Radius?\"}\r\n

\r\n {/* \r\n {(CONFIG.RegionId == 2) ||(CONFIG.RegionId == 4) ?'10 kilometres':'10 miles'}*/}\r\n \r\n
\r\n
\r\n You selected {this.state.scale}{\" \"}\r\n {CONFIG.RegionId == 2 || CONFIG.RegionId == 4\r\n ? \"kilometre\"\r\n : \"mile\"}\r\n {this.state.scale === \"1\" ? \"\" : \"s\"}\r\n
\r\n
\r\n {errortext1 ? errortext1 : \"\"}\r\n
\r\n
\r\n {isLoading1 === false ? (\r\n //

{this.state.coverageTrackCount > 0 ? 'Expect about ' + this.state.coverageTrackCount : 'There are no'} competitor{this.state.coverageTrackCount === 1 || this.state.coverageTrackCount === 0 ? '' : 's'} in this radius.

\r\n

\r\n {this.state.coverageTrackCount > 0 ? (\r\n \r\n There{\" \"}\r\n {this.state.coverageTrackCount === 1\r\n ? \"is\"\r\n : \"are\"}{\" \"}\r\n \r\n \r\n {this.state.coverageTrackCount}\r\n {\" \"}\r\n \r\n competitor\r\n {this.state.coverageTrackCount ===\r\n 1\r\n ? \"\"\r\n : \"s\"}\r\n \r\n {\" \"}\r\n \r\n ) : (\r\n \"There are no competitors\"\r\n )}{\" \"}\r\n within this radius.\r\n

\r\n ) : (\r\n \"\"\r\n )}\r\n
\r\n
\r\n ) : this.state.showComponent === \"zipcode\" ? (\r\n
\r\n \r\n \r\n

\r\n * Zip or Postal Code(s) (25 miles around\r\n market center)\r\n

\r\n \r\n
\r\n \r\n \r\n \r\n \r\n

\r\n Zip or Postal Code(s)\r\n

\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n

\r\n Pick up to three Zip or Postal Code(s)\r\n

\r\n \r\n \r\n

\r\n {zipcodeOptions && zipcodeOptions[0]\r\n ? zipcodeOptions[0]\r\n : \"\"}\r\n {zipcodeOptions &&\r\n zipcodeOptions[1] &&\r\n !zipcodeOptions[2]\r\n ? \", \" + zipcodeOptions[1]\r\n : \"\"}\r\n {zipcodeOptions &&\r\n zipcodeOptions[1] &&\r\n zipcodeOptions[2]\r\n ? \", \" + zipcodeOptions[1]\r\n : \"\"}\r\n {zipcodeOptions && zipcodeOptions[2]\r\n ? \", \" + zipcodeOptions[2]\r\n : \"\"}\r\n

\r\n \r\n
\r\n \r\n {filterlookupZipcodeData &&\r\n filterlookupZipcodeData.length > 0 ? (\r\n filterlookupZipcodeData.map((zip) => (\r\n e === zip.value\r\n )\r\n }\r\n name=\"updateCheck\"\r\n value={zip.value}\r\n onClick={(event) =>\r\n this.zipcodeClick(\r\n event,\r\n zip.value\r\n )\r\n }\r\n style={{ fontSize: 12 }}\r\n >\r\n }\r\n label={zip.value}\r\n className=\"col-md-3\"\r\n />\r\n ))\r\n ) : (\r\n // ''\r\n
\r\n {zipError}\r\n
\r\n )}\r\n
\r\n
\r\n {/* {zipcodeOptions && zipcodeOptions.length > 0 && isLoading1 === false ?

{this.state.coverageTrackCount > 0 ? 'Expect about ' + this.state.coverageTrackCount : 'There are no'} competitor{this.state.coverageTrackCount === 1 ? '' : 's'} in this zip code(s).

: ''} */}\r\n {zipcodeOptions &&\r\n zipcodeOptions.length > 0 &&\r\n isLoading1 === false ? (\r\n

\r\n {this.state.coverageTrackCount > 0 ? (\r\n \r\n There{\" \"}\r\n {this.state.coverageTrackCount ===\r\n 1\r\n ? \"is\"\r\n : \"are\"}{\" \"}\r\n \r\n \r\n {\r\n this.state\r\n .coverageTrackCount\r\n }\r\n {\" \"}\r\n \r\n competitor\r\n {this.state\r\n .coverageTrackCount === 1\r\n ? \"\"\r\n : \"s\"}\r\n \r\n {\" \"}\r\n \r\n ) : (\r\n \"There are no competitors\"\r\n )}{\" \"}\r\n in this{\" \"}\r\n {CONFIG.RegionId == \"1\"\r\n ? \"Zip Code(s)\"\r\n : \"Postal Code(s)\"}\r\n .\r\n

\r\n ) : (\r\n \"\"\r\n )}\r\n
\r\n
\r\n {errortext1 ? errortext1 : \"\"}\r\n
\r\n \r\n
\r\n
\r\n ) : this.state.showComponent === \"city\" ? (\r\n
\r\n \r\n \r\n

\r\n * City Name (25 miles around market\r\n center)\r\n

\r\n \r\n
\r\n \r\n \r\n

City Name

\r\n\r\n \r\n\r\n
\r\n {errortext1 ? errortext1 : \"\"}\r\n
\r\n \r\n
\r\n
\r\n {/* {this.state.isSelactCity && isLoading1 === false ?

{this.state.coverageTrackCount > 0 ? 'Expect about ' + this.state.coverageTrackCount : 'There are no'} competitor{this.state.coverageTrackCount === 1 ? '' : 's'} in this city.

: ''} */}\r\n {this.state.isSelactCity &&\r\n isLoading1 === false ? (\r\n

\r\n {this.state.coverageTrackCount > 0 ? (\r\n \r\n There{\" \"}\r\n {this.state.coverageTrackCount === 1\r\n ? \"is\"\r\n : \"are\"}{\" \"}\r\n \r\n \r\n {this.state.coverageTrackCount}\r\n {\" \"}\r\n \r\n competitor\r\n {this.state.coverageTrackCount ===\r\n 1\r\n ? \"\"\r\n : \"s\"}\r\n \r\n {\" \"}\r\n \r\n ) : (\r\n \"There are no competitors\"\r\n )}{\" \"}\r\n in this city.\r\n

\r\n ) : (\r\n \"\"\r\n )}\r\n
\r\n
\r\n ) : (\r\n \"\"\r\n )}\r\n \r\n
\r\n
\r\n {\r\n this.btn1 = btn1;\r\n }}\r\n variant=\"contained\"\r\n color=\"primary\"\r\n className=\"next-btn\"\r\n >\r\n Save and Go to Next\r\n \r\n {localStorage.getItem(\"userType\") === \"2\" ? (\r\n \r\n Go Back\r\n \r\n ) : (\r\n \r\n Go Back\r\n \r\n )}\r\n \r\n
\r\n ) : this.state.activeStep === 2 ? (\r\n
\r\n {this.state.showComponent === \"radius\" ? (\r\n
\r\n
\r\n

Radius based market coverage

\r\n

\r\n There{\" \"}\r\n {competitorsData &&\r\n competitorsData.data.currentStoreDetail\r\n .trackedCount >= 2\r\n ? \"are\"\r\n : competitorsData.data.currentStoreDetail\r\n .trackedCount === 0\r\n ? \"are\"\r\n : \"is\"}{\" \"}\r\n {competitorsData &&\r\n competitorsData.data.currentStoreDetail\r\n .trackedCount >= 1\r\n ? competitorsData.data.currentStoreDetail\r\n .trackedCount\r\n : \"no\"}{\" \"}\r\n competitor\r\n {competitorsData &&\r\n competitorsData.data.currentStoreDetail\r\n .trackedCount > 1\r\n ? \"s\"\r\n : \"\"}{\" \"}\r\n within a{\" \"}\r\n {competitorsData\r\n ? competitorsData.data.currentStoreDetail.radius\r\n : \"\"}{\" \"}\r\n {CONFIG.RegionId == 2 || CONFIG.RegionId == 4\r\n ? \"kilometre\"\r\n : \"mile\"}{\" \"}\r\n radius. \r\n

\r\n {/*

There are {competitorsData && competitorsData.data.currentStoreDetail.trackedCount >= 1 ? competitorsData.data.currentStoreDetail.trackedCount - unTrackedCount.length : '0'} store{competitorsData && competitorsData.data.currentStoreDetail.trackedCount > 1 ? 's' : ''} within a {competitorsData ? competitorsData.data.currentStoreDetail.radius : ''} mile radius.

*/}\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n ) : this.state.showComponent === \"zipcode\" ? (\r\n
\r\n
\r\n

Zip or Postal Code(s) based market coverage

\r\n

\r\n There{\" \"}\r\n {competitorsData &&\r\n competitorsData.data.currentStoreDetail\r\n .trackedCount >= 2\r\n ? \"are\"\r\n : competitorsData.data.currentStoreDetail\r\n .trackedCount === 0\r\n ? \"are\"\r\n : \"is\"}{\" \"}\r\n {competitorsData &&\r\n competitorsData.data.currentStoreDetail\r\n .trackedCount >= 1\r\n ? competitorsData.data.currentStoreDetail\r\n .trackedCount\r\n : \"no\"}{\" \"}\r\n competitor\r\n {competitorsData &&\r\n competitorsData.data.currentStoreDetail\r\n .trackedCount > 1\r\n ? \"s\"\r\n : \"\"}{\" \"}\r\n within zip code(s){\" \"}\r\n {/* {competitorsData ? competitorsData.data.currentStoreDetail.zipCodes : ''} */}\r\n {zipcodeOptions && zipcodeOptions[0]\r\n ? zipcodeOptions[0]\r\n : \"\"}\r\n {zipcodeOptions &&\r\n zipcodeOptions[1] &&\r\n !zipcodeOptions[2]\r\n ? \" and \" + zipcodeOptions[1]\r\n : \"\"}\r\n {zipcodeOptions &&\r\n zipcodeOptions[1] &&\r\n zipcodeOptions[2]\r\n ? \", \" + zipcodeOptions[1]\r\n : \"\"}\r\n {zipcodeOptions && zipcodeOptions[2]\r\n ? \" and \" + zipcodeOptions[2]\r\n : \"\"}\r\n . \r\n

\r\n {/*

There are {competitorsData && competitorsData.data.currentStoreDetail.trackedCount >= 1 ? competitorsData.data.currentStoreDetail.trackedCount - unTrackedCount.length : '0'} store{competitorsData && competitorsData.data.currentStoreDetail.trackedCount > 1 ? 's' : ''} within zip code(s) {zipcodeOptions && zipcodeOptions[0] ? zipcodeOptions[0] : ''}{zipcodeOptions && zipcodeOptions[1] && !zipcodeOptions[2] ? ' and ' + zipcodeOptions[1] : ''}{zipcodeOptions && zipcodeOptions[1] && zipcodeOptions[2] ? ', ' + zipcodeOptions[1] : ''}{zipcodeOptions && zipcodeOptions[2] ? ' and ' + zipcodeOptions[2] : ''}.

*/}\r\n
\r\n
\r\n

\r\n \r\n

\r\n
\r\n
\r\n ) : this.state.showComponent === \"city\" ? (\r\n
\r\n
\r\n

City based market coverage

\r\n

\r\n There{\" \"}\r\n {competitorsData &&\r\n competitorsData.data.currentStoreDetail\r\n .trackedCount >= 2\r\n ? \"are\"\r\n : competitorsData.data.currentStoreDetail\r\n .trackedCount === 0\r\n ? \"are\"\r\n : \"is\"}{\" \"}\r\n {competitorsData &&\r\n competitorsData.data.currentStoreDetail\r\n .trackedCount >= 1\r\n ? competitorsData.data.currentStoreDetail\r\n .trackedCount\r\n : \"no\"}{\" \"}\r\n competitor\r\n {competitorsData &&\r\n competitorsData.data.currentStoreDetail\r\n .trackedCount > 1\r\n ? \"s\"\r\n : \"\"}{\" \"}\r\n within the city of{\" \"}\r\n {competitorsData\r\n ? competitorsData.data.currentStoreDetail.city.replace(\r\n \",\",\r\n \", \"\r\n )\r\n : \"\"}\r\n . \r\n

\r\n {/*

There are {competitorsData && competitorsData.data.currentStoreDetail.trackedCount >= 1 ? competitorsData.data.currentStoreDetail.trackedCount - unTrackedCount.length : '0'} store{competitorsData && competitorsData.data.currentStoreDetail.trackedCount > 1 ? 's' : ''} within the city of {competitorsData ? competitorsData.data.currentStoreDetail.city.replace(',', ', ') : ''} city.

*/}\r\n
\r\n
\r\n

\r\n \r\n

\r\n
\r\n
\r\n ) : (\r\n \"\"\r\n )}\r\n\r\n \r\n \r\n } />\r\n } />\r\n \r\n \r\n\r\n {tabvalue === 0 && (\r\n \r\n \r\n \r\n \r\n Market Name\r\n Address\r\n Distance\r\n \r\n Track\r\n \r\n \r\n \r\n \r\n {competitorsData &&\r\n competitorsData.data.competitors.length > 0 ? (\r\n competitorsData.data.competitors\r\n .slice(\r\n pageCountMDT * 10,\r\n pageCountMDT * 10 + 10\r\n )\r\n .map((compdata) => (\r\n \r\n \r\n {compdata.storeName}\r\n \r\n \r\n {compdata.storeAddress}\r\n \r\n \r\n {compdata.proximity\r\n ? compdata.proximity\r\n : \"\"}{\" \"}\r\n {compdata.proximity > 0 &&\r\n (CONFIG.RegionId == 2 ||\r\n CONFIG.RegionId == 4)\r\n ? \" \" + \"km\"\r\n : compdata.proximity > 0 &&\r\n CONFIG.RegionId != (2 || 4)\r\n ? \" \" + \"mi\"\r\n : \"\"}\r\n \r\n \r\n e === (trackData.storeID + '|1'))}\r\n // onClick={event => this.upgradehandleClick(event, trackData.storeID, trackData.userStoreID)} />\r\n className=\"track-check\"\r\n checked={\r\n compdata.storeId + \"|1\" ===\r\n trackedFields.find(\r\n (e) =>\r\n e === compdata.storeId + \"|1\"\r\n )\r\n }\r\n onClick={(event) =>\r\n this.trackhandleClick(\r\n event,\r\n compdata.storeId,\r\n compdata.userStoreId\r\n )\r\n }\r\n />\r\n \r\n \r\n ))\r\n ) : (\r\n \r\n \r\n Markets not available.\r\n \r\n \r\n )}\r\n \r\n \r\n {/* {this.state.trackedFields1 && this.state.trackedFields1.length > 0 ?\r\n \r\n \r\n \r\n \r\n \r\n : ''} */}\r\n \r\n `Displaying pages ${from}-${to} of total ${count} pages`}\r\n onChangePage={this.handleChangePageMTD}\r\n onChangeRowsPerPage={\r\n this.handleChangeRowsPerPageMTD\r\n }\r\n ActionsComponent={MyMarketWrapped}\r\n />\r\n \r\n \r\n
\r\n
\r\n )}\r\n {tabvalue === 1 && (\r\n \r\n {this.state.showComponent === \"radius\" ? (\r\n \r\n \r\n }\r\n containerElement={\r\n
\r\n }\r\n mapElement={
}\r\n >\r\n \r\n\r\n {competitorsData.data.competitors.map(\r\n (marker, index) => {\r\n return (\r\n \r\n this.onMarkerClick(\r\n marker.isTrack,\r\n marker.storeId,\r\n marker.userStoreId,\r\n marker.storeName,\r\n marker.lat,\r\n marker.lng,\r\n marker.storeAddress\r\n )\r\n }\r\n >\r\n {this.state.showingInfoWindow &&\r\n this.state.selectedPlace ===\r\n marker.storeId ? (\r\n \r\n this.onMarkerClose()\r\n }\r\n visible={\r\n this.state.showingInfoWindow\r\n }\r\n >\r\n
\r\n

{this.state.activeMarker}

\r\n

\r\n {this.state.address},
\r\n {this.state.address1}\r\n

\r\n

\r\n \r\n e ===\r\n marker.storeId + \"|1\"\r\n )\r\n }\r\n onClick={(event) =>\r\n this.trackhandleClick(\r\n event,\r\n marker.storeId,\r\n marker.userStoreId\r\n )\r\n }\r\n />{\" \"}\r\n {this.state.isTracks &&\r\n this.state.isTracks === 1\r\n ? \"Click to Untrack\"\r\n : \"Click to Track\"}\r\n

\r\n
\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n \r\n );\r\n }\r\n )}\r\n \r\n \r\n \r\n ) : this.state.showComponent === \"zipcode\" ? (\r\n \r\n \r\n }\r\n containerElement={\r\n
\r\n }\r\n mapElement={
}\r\n >\r\n \r\n {competitorsData.data.competitors.map(\r\n (marker, index) => {\r\n return (\r\n \r\n this.onMarkerClick(\r\n marker.isTrack,\r\n marker.storeId,\r\n marker.userStoreId,\r\n marker.storeName,\r\n marker.lat,\r\n marker.lng,\r\n marker.storeAddress\r\n )\r\n }\r\n >\r\n {this.state.showingInfoWindow &&\r\n this.state.selectedPlace ===\r\n marker.storeId ? (\r\n \r\n this.onMarkerClose()\r\n }\r\n visible={\r\n this.state.showingInfoWindow\r\n }\r\n >\r\n
\r\n

{this.state.activeMarker}

\r\n

\r\n {this.state.address},
\r\n {this.state.address1}\r\n

\r\n

\r\n \r\n e ===\r\n marker.storeId + \"|1\"\r\n )\r\n }\r\n onClick={(event) =>\r\n this.trackhandleClick(\r\n event,\r\n marker.storeId,\r\n marker.userStoreId\r\n )\r\n }\r\n />{\" \"}\r\n {this.state.isTracks &&\r\n this.state.isTracks === 1\r\n ? \"Click to Untrack\"\r\n : \"Click to Track\"}\r\n

\r\n
\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n \r\n );\r\n }\r\n )}\r\n\r\n {this.state.coordinates_one2.map((lat_lng) => {\r\n return (\r\n \r\n );\r\n })}\r\n \r\n \r\n ) : this.state.showComponent === \"city\" ? (\r\n \r\n \r\n }\r\n containerElement={\r\n
\r\n }\r\n mapElement={
}\r\n >\r\n \r\n {competitorsData.data.competitors.map(\r\n (marker, index) => {\r\n return (\r\n \r\n this.onMarkerClick(\r\n marker.isTrack,\r\n marker.storeId,\r\n marker.userStoreId,\r\n marker.storeName,\r\n marker.lat,\r\n marker.lng,\r\n marker.storeAddress\r\n )\r\n }\r\n >\r\n {this.state.showingInfoWindow &&\r\n this.state.selectedPlace ===\r\n marker.storeId ? (\r\n \r\n this.onMarkerClose()\r\n }\r\n visible={\r\n this.state.showingInfoWindow\r\n }\r\n >\r\n
\r\n

{this.state.activeMarker}

\r\n

\r\n {this.state.address},
\r\n {this.state.address1}\r\n

\r\n

\r\n \r\n e ===\r\n marker.storeId + \"|1\"\r\n )\r\n }\r\n onClick={(event) =>\r\n this.trackhandleClick(\r\n event,\r\n marker.storeId,\r\n marker.userStoreId\r\n )\r\n }\r\n />{\" \"}\r\n {this.state.isTracks &&\r\n this.state.isTracks === 1\r\n ? \"Click to Untrack\"\r\n : \"Click to Track\"}\r\n

\r\n
\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n \r\n );\r\n }\r\n )}\r\n\r\n {this.state.coordinates_one.map((lat_lng) => {\r\n return (\r\n \r\n );\r\n })}\r\n \r\n \r\n ) : (\r\n \"\"\r\n )}\r\n \r\n \r\n
\r\n
Your\r\n Store\r\n
\r\n
\r\n
Store\r\n with pricing\r\n
\r\n
\r\n
Store\r\n without pricing\r\n
\r\n
\r\n \r\n \r\n )}\r\n {\r\n this.btn2 = btn2;\r\n }}\r\n onClick={this.saveCovergae.bind(this)}\r\n variant=\"contained\"\r\n color=\"primary\"\r\n className=\"next-btn \"\r\n >\r\n Save and Go to Next\r\n \r\n {localStorage.getItem(\"userType\") === \"2\" ? (\r\n \r\n Go Back\r\n \r\n ) : (\r\n \r\n Go Back\r\n \r\n )}\r\n
\r\n ) : this.state.activeStep === 3 &&\r\n this.state.activeStep > steps.length ? (\r\n
\r\n

\r\n Market{\" \"}\r\n {this.state.title === \"Edit Market\" ? \"Updat\" : \"Add\"}ed\r\n Successfully!\r\n

\r\n
\r\n

\r\n You are tracking{\" \"}\r\n {this.state.trackResponse.trackCount > 0\r\n ? this.state.trackResponse.trackCount\r\n : \"no\"}{\" \"}\r\n competitor\r\n {this.state.trackResponse.trackCount > 1\r\n ? \"s\"\r\n : this.state.trackResponse.trackCount === 0\r\n ? \"s\"\r\n : \"\"}{\" \"}\r\n in this Market.{\" \"}\r\n \r\n Go to the Market Dashboard\r\n {\" \"}\r\n or click below to go back to My Markets.\r\n

\r\n {/*

{this.state.trackResponse.trackCount} Store{this.state.trackResponse.trackCount > 1 ? 's' : ''} are tracked in this Market. You can go to the Market Dashboard or go back to My Markets by clicking the button below.

*/}\r\n

\r\n \r\n

\r\n
\r\n
\r\n ) : (\r\n // : this.state.activeStep > steps.length ?\r\n //
\r\n //

Market Added Successfully!

\r\n //

{this.state.trackResponse.trackCount} Store{this.state.trackResponse.trackCount > 1 ? 's' : ''} are tracked in this Market. You can immediately view this Market Dashboard or go back to My Markets screen by clicking the button below

\r\n //

\r\n //
\r\n
\r\n

\r\n Market{\" \"}\r\n {this.state.title === \"Edit Market\" ? \"Updat\" : \"Add\"}ed\r\n Successfully!\r\n

\r\n
\r\n

\r\n You are tracking{\" \"}\r\n {this.state.trackResponse.trackCount > 0\r\n ? this.state.trackResponse.trackCount\r\n : \"no\"}{\" \"}\r\n competitor\r\n {this.state.trackResponse.trackCount > 1\r\n ? \"s\"\r\n : this.state.trackResponse.trackCount === 0\r\n ? \"s\"\r\n : \"\"}{\" \"}\r\n in this Market.{\" \"}\r\n \r\n Go to the Market Dashboard\r\n {\" \"}\r\n or click below to go back to My Markets.\r\n

\r\n {/*

{this.state.trackResponse.trackCount} Store{this.state.trackResponse.trackCount > 1 ? 's' : ''} are tracked in this Market. You can go to the Market Dashboard or go back to My Markets by clicking the button below.

*/}\r\n

\r\n \r\n

\r\n
\r\n
\r\n )}\r\n\r\n {/*
\r\n \r\n Back\r\n \r\n \r\n
*/}\r\n
\r\n
\r\n \r\n \r\n \r\n {snackMSg}}\r\n action={[\r\n \r\n \r\n ,\r\n ]}\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\n// For Pagination\r\nconst actionsStyles = (theme) => ({\r\n tablepaggination: {\r\n flexShrink: 0,\r\n color: theme.palette.text.secondary,\r\n marginLeft: theme.spacing * 2.5,\r\n },\r\n});\r\n\r\nclass MyMarket extends React.Component {\r\n handleFirstPageButtonClick = (event) => {\r\n this.props.onChangePage(event, 0);\r\n };\r\n\r\n handleBackButtonClick = (event) => {\r\n this.props.onChangePage(event, this.props.page - 1);\r\n };\r\n\r\n handleNextButtonClick = (event) => {\r\n this.props.onChangePage(event, this.props.page + 1);\r\n };\r\n\r\n handleLastPageButtonClick = (event) => {\r\n this.props.onChangePage(\r\n event,\r\n Math.max(0, Math.ceil(this.props.count / this.props.rowsPerPage) - 1)\r\n );\r\n };\r\n\r\n render() {\r\n const { classes, count, page, rowsPerPage, theme } = this.props;\r\n\r\n return (\r\n
\r\n \r\n {theme.direction === \"rtl\" ? : }\r\n \r\n \r\n {theme.direction === \"rtl\" ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n = Math.ceil(count / rowsPerPage) - 1}\r\n aria-label=\"Next Page\"\r\n >\r\n {theme.direction === \"rtl\" ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n = Math.ceil(count / rowsPerPage) - 1}\r\n aria-label=\"Last Page\"\r\n >\r\n {theme.direction === \"rtl\" ? : }\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nconst MyMarketWrapped = withStyles(actionsStyles, { withTheme: true })(\r\n MyMarket\r\n);\r\n\r\n//For Tab\r\nfunction TabContainer(props) {\r\n return (\r\n \r\n {props.children}\r\n \r\n );\r\n}\r\n","import React from 'react';\r\nimport './MarketProfile.css'\r\nimport { Col, Row, Modal, ModalHeader, ModalBody,ModalFooter, Button } from 'reactstrap';\r\nimport { Link } from 'react-router-dom';\r\nimport axios from 'axios';\r\nimport { CONFIG } from '../../utils/config';\r\nimport moment from 'moment';\r\nimport { Table } from 'reactstrap';\r\nimport Alarm from './../../Assets/Images/unit-type-images/Alarm.png';\r\nimport ClimateControlled from './../../Assets/Images/unit-type-images/ClimateControlled.png';\r\nimport DoorType from './../../Assets/Images/unit-type-images/DoorType.png';\r\nimport DriveUp from './../../Assets/Images/unit-type-images/DriveUp.png';\r\nimport Elevator from './../../Assets/Images/unit-type-images/Elevator.png';\r\nimport HumidityControlled from './../../Assets/Images/unit-type-images/HumidityControlled.png';\r\nimport OutdoorAccess from './../../Assets/Images/unit-type-images/OutdoorAccess.png';\r\nimport power from './../../Assets/Images/unit-type-images/power.png';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faCheck } from '@fortawesome/free-solid-svg-icons';\r\nimport { faTimes } from '@fortawesome/free-solid-svg-icons';\r\n\r\n\r\nexport default class MarketProfile extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n modal: false,\r\n marPriceProfileData: [],\r\n StrName: '',\r\n isLoading1: false,\r\n focusAfterClose: false\r\n };\r\n this.toggleModal = this.toggleModal.bind(this);\r\n this.toggleModalClose = this.toggleModalClose.bind(this);\r\n }\r\n // toggleModal = () => this.setState(state => (\r\n // { modal: !state.modal })\r\n // )\r\n compModal = (name, id) => {\r\n this.toggleModal(name, id);\r\n } \r\n\r\n toggleModal(name, sid) {\r\n // console.log(name, sid, 'test');\r\n this.setState(state => ({\r\n modal: !state.modal,\r\n StrName: name,\r\n isLoading1: true\r\n }))\r\n const data = {\r\n StoreId: sid,\r\n }\r\n let token = localStorage.getItem('accessKey');\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n }\r\n axios.post(CONFIG.API_URL + 'profile/marketpriceprofile', data)\r\n \r\n .then(response => {\r\n // this.state.isLoading1=true;\r\n const marPriceProfileData = response.data.data\r\n this.setState({\r\n marPriceProfileData, isLoading1: false\r\n })\r\n console.log(marPriceProfileData, 'priceProfile')\r\n }).catch((err) => {\r\n this.setState({ isLoading1: false });\r\n if (err.response.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }\r\n cancelMissingCompetitor = () => this.setState(state => ({ modal: !state.modal }))\r\n\r\n componentDidMount() {\r\n if (typeof window.dataLayer != \"undefined\" && this.props.isShowModal) {\r\n window.dataLayer.push({\r\n \"event\": \"show popup\",\r\n 'eventCategory': 'popup',\r\n 'eventAction': 'show',\r\n 'eventLabel': this.state.popupName,\r\n });\r\n }\r\n\r\n }\r\n toggleModalClose() {\r\n this.setState(state => ({\r\n modal: !state.modal,\r\n marPriceProfileData: []\r\n }))\r\n }\r\n\r\n render() {\r\n const { marPriceProfileData, isLoading1 } = this.state;\r\n return (\r\n
\r\n \r\n Historical Marketing and Pricing Information\r\n \r\n \r\n \r\n

\r\n \r\n
Market Details:
\r\n {isLoading1===false ?\r\n
\r\n {marPriceProfileData.unitMarketDetail ? marPriceProfileData.unitMarketDetail.storeName : 'N/A'},
{marPriceProfileData.unitMarketDetail ? marPriceProfileData.unitMarketDetail.address : 'N/A'}\r\n
: ''}\r\n
\r\n

\r\n \r\n \r\n

Last Checked: {isLoading1===false ?{marPriceProfileData.unitMarketDetail && marPriceProfileData.unitMarketDetail.lastCheckedDate ? moment(marPriceProfileData.unitMarketDetail.lastCheckedDate).format('DD-MMM-YYYY') : 'N/A'} : ''}

\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* {CONFIG.RegionId == 3? :''} */}\r\n \r\n \r\n {/* {CONFIG.RegionId == 3? :''} */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {isLoading1 ?
: ''}\r\n {marPriceProfileData.unitLevel && marPriceProfileData.unitLevel.length != 0 ? marPriceProfileData.unitLevel.map((markProfile) =>\r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* {CONFIG.RegionId ===3?:''} */}\r\n \r\n \r\n {/* {CONFIG.RegionId ===3?:''} */}\r\n \r\n {/* */}\r\n \r\n \r\n \r\n ) :\r\n \r\n {isLoading1===false ? : '' }\r\n \r\n }\r\n \r\n
space TypeSizeFloorFeatures{CONFIG.RegionId === 3 ? \"Advertised Online Weekly Rate\":\"Advertised Online Rate\"}VATLast Changed{CONFIG.RegionId === 3 ? \"Advertised Walk-in Weekly Rate\" : \"Advertised Walk-in Rate\"}VATLast ChangedPromotionLast Changed
{markProfile.spaceType !== null ? markProfile.spaceType : 'N/A'}{markProfile.size !== null ? markProfile.size : ''}{markProfile.floor !== null ? markProfile.floor : 'N/A'}\r\n {markProfile.alarm === 1 ? : ''}\r\n {markProfile.climateControlled === 1 ? : ''}\r\n {markProfile.doorType === 1 ? : ''}\r\n {markProfile.driveUp === 1 ? : ''}\r\n {markProfile.elevator === 1 ? : ''}\r\n {markProfile.humidityControlled === 1 ? : ''}\r\n {markProfile.outdoorAccess === 1 ? : ''}\r\n {markProfile.power === 1 ? : ''}\r\n {markProfile.onlinePrice === 0 || markProfile.onlinePrice == null ? 'N/A':marPriceProfileData.unitMarketDetail.currencySymbol+markProfile.onlinePrice}{(markProfile.isMonthly && markProfile.isMonthly === 1) && (CONFIG.RegionId === 3) ? * :''}{markProfile.onlinePriceVat ==1?:markProfile.onlinePriceVat ==0?:'--'}{moment(markProfile.onlinePriceLastChanged).format('DD-MMM-YYYY')}{markProfile.regularPrice === 0 || markProfile.regularPrice == null ? 'N/A':marPriceProfileData.unitMarketDetail.currencySymbol+markProfile.regularPrice}{(markProfile.isMonthly && markProfile.isMonthly === 1) && (CONFIG.RegionId === 3) ? * :''}{markProfile.regularPriceVat ==1?:markProfile.regularPriceVat ==0?:'--'}{moment(markProfile.regularPriceLastChanged).format('DD-MMM-YYYY')}{markProfile.promo === 0 || markProfile.promo == null || markProfile.promo == \"\" ? 'No specials':marPriceProfileData.unitMarketDetail.currencySymbol+markProfile.promo}{markProfile.promo === 0 || markProfile.promo == null || markProfile.promo == \"\" ? 'No specials':markProfile.promo}{moment(markProfile.promoLastChanged).format('DD-MMM-YYYY')}
No records found
\r\n
\r\n {/* {CONFIG.RegionId == 3 ?\r\n
\r\n Legend:\r\n Price includes VAT\r\n Price excludes VAT \r\n --Unknown if price includes VAT\r\n
\r\n : ''} */}\r\n \r\n
\r\n
\r\n {CONFIG.RegionId === 3 ?\r\n \r\n

* This rate is calculated from an advertised monthly rate

\r\n
\r\n :''}\r\n
\r\n
\r\n );\r\n }\r\n}","export const COMMON = {\r\n priceOption:{\r\n Average: 1, \r\n Premium: 2,\r\n Value: 3\r\n },\r\n priceOptValue1:{\r\n lessThan:1,\r\n moreThan:2\r\n },\r\n priceOptValue2:{\r\n increasesBy:1,\r\n decreasesBy:2\r\n },\r\n StorTrackRegion:{\r\n US:1,\r\n AUS:2,\r\n UK:3,\r\n NZ:4\r\n },\r\n MVPUSER: [4,5,10]\r\n}","import React from 'react';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Table from '@material-ui/core/Table';\r\nimport TableHead from '@material-ui/core/TableHead';\r\nimport TableBody from '@material-ui/core/TableBody';\r\nimport TableCell from '@material-ui/core/TableCell';\r\nimport TableFooter from '@material-ui/core/TableFooter';\r\nimport TablePagination from '@material-ui/core/TablePagination';\r\nimport TableRow from '@material-ui/core/TableRow';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport { HelpTextPopup } from './../HelpTextPopup/index';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport CloseIcon from '@material-ui/icons/Close';\r\nimport Snackbar from '@material-ui/core/Snackbar';\r\nimport FirstPageIcon from '@material-ui/icons/FirstPage';\r\nimport KeyboardArrowLeft from '@material-ui/icons/KeyboardArrowLeft';\r\nimport KeyboardArrowRight from '@material-ui/icons/KeyboardArrowRight';\r\nimport LastPageIcon from '@material-ui/icons/LastPage';\r\nimport Button from '@material-ui/core/Button';\r\nimport Breadcrumbs from '@material-ui/core/Breadcrumbs';\r\nimport axios from 'axios';\r\nimport moment from 'moment';\r\nimport { Label, Dropdown, DropdownToggle, DropdownMenu, DropdownItem, Row, Col, ModalHeader, Modal as TrackModalPop, ModalFooter, ModalBody } from 'reactstrap';\r\nimport Tooltip from '@material-ui/core/Tooltip';\r\nimport { AvForm, AvField } from 'availity-reactstrap-validation';\r\nimport { CONFIG } from '../../utils/config';\r\nimport editicon from './../../Assets/Images/edit.png';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faPlus, faArrowDown, faArrowUp, faCheckCircle, faTimesCircle } from '@fortawesome/free-solid-svg-icons';\r\nimport { faSearch } from '@fortawesome/free-solid-svg-icons';\r\nimport { HashLink as Link } from 'react-router-hash-link';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport 'react-dropdown-tree-select/dist/styles.css'\r\nimport './MyMarket.css';\r\nimport AddMarketcmpopup from '../AddMarketcmpopup/AddMarketcmpopup.js';\r\nimport AddMarketcmpopupGmap from '../AddMarketcmpopup/AddMarketcmpopupGmap.js';\r\nimport {ActiveReports, CompReports} from '../../Views';\r\nimport { MarketProfile } from '../MarketProfile';\r\nimport { COMMON } from '../../utils/common';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nconst actionsStyles = theme => ({\r\n tablepaggination: {\r\n flexShrink: 0,\r\n color: theme.palette.text.secondary,\r\n marginLeft: theme.spacing * 2.5,\r\n },\r\n});\r\n\r\nclass MyMarket extends React.Component {\r\n\r\n handleFirstPageButtonClick = event => {\r\n this.props.onChangePage(event, 0);\r\n };\r\n\r\n handleBackButtonClick = event => {\r\n window.scrollTo(0, 0);\r\n this.props.onChangePage(event, this.props.page - 1);\r\n };\r\n\r\n handleNextButtonClick = event => {\r\n window.scrollTo(0, 0);\r\n this.props.onChangePage(event, this.props.page + 1);\r\n };\r\n\r\n handleLastPageButtonClick = event => {\r\n this.props.onChangePage(\r\n event,\r\n Math.max(0, Math.ceil(this.props.count / this.props.rowsPerPage) - 1),\r\n );\r\n };\r\n\r\n\r\n render() {\r\n const { classes, count, page, rowsPerPage, theme } = this.props;\r\n\r\n return (\r\n
\r\n \r\n {theme.direction === 'rtl' ? : }\r\n \r\n \r\n {theme.direction === 'rtl' ? : }\r\n \r\n = Math.ceil(count / rowsPerPage) - 1}\r\n aria-label=\"Next Page\"\r\n >\r\n {theme.direction === 'rtl' ? : }\r\n \r\n = Math.ceil(count / rowsPerPage) - 1}\r\n aria-label=\"Last Page\"\r\n >\r\n {theme.direction === 'rtl' ? : }\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nconst MyMarketWrapped = withStyles(actionsStyles, { withTheme: true })(\r\n MyMarket,\r\n);\r\n\r\nclass CustomMyMarket extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n myMarketData: '',\r\n myMarketData1: [],\r\n page: 0,\r\n pageCount: 0,\r\n pageCountMDT: 0,\r\n rowsPerPage: 50,\r\n tooltipOpen: false,\r\n isLoading: false,\r\n isLoading1: false,\r\n open: false,\r\n open1: false,\r\n open2: false,\r\n setOpen: false,\r\n activeStep: 0,\r\n isDefaultValue: 1,\r\n radiusValue: 50,\r\n scale: 10,\r\n showComponent: 'radius',\r\n lookupZipcodeData: [],\r\n lookupCityData: [],\r\n selectedCityOption: null,\r\n selectedZipOption: null,\r\n modalMarketStoreId: '',\r\n marketStoreName: '',\r\n userStorId: null,\r\n trackStorId: null,\r\n storeModal: false,\r\n trackModalData: [],\r\n trackOptions: [],\r\n strOptions: [],\r\n strOptions1: [],\r\n trackedFields: [],\r\n trackedFields1: [],\r\n serachTypeval: null,\r\n competitorsData: [],\r\n tabvalue: 0,\r\n showingInfoWindow: false,\r\n activeMarker: {},\r\n selectedPlace: {},\r\n countlen: null,\r\n ch: null,\r\n modal: false,\r\n delUserStoreId: null,\r\n deleteConfirmModal: false,\r\n editConfirmModal: false,\r\n userType: '',\r\n infoData: '',\r\n snackOpen: false,\r\n snackMsg: '',\r\n downLoadReportModal: false,\r\n downloadStoreID: 0,\r\n excelProgress: '',\r\n editMarketName: '',\r\n marketnameeditmodal: false,\r\n isButtonDisabled: false,\r\n sortUpdate: false,\r\n sortUpdateDate: false,\r\n ShowMarketNameSort: false,\r\n ShowAddressSort: false,\r\n sortUpdateComp: true,\r\n sortUpdateAddress: true,\r\n sortUpdateProximity: true,\r\n ShowProxSort: true,\r\n ShowCompSort: false,\r\n data: false,\r\n addmarketpopup:false,\r\n enableSave: false,\r\n };\r\n this.child = React.createRef();\r\n this.toggle = this.toggle.bind(this);\r\n this.trackModal = this.trackModal.bind(this);\r\n this.trackModalClose = this.trackModalClose.bind(this);\r\n this.handleClickOpen = this.handleClickOpen.bind(this);\r\n this.handleClickOpenCR = this.handleClickOpenCR.bind(this);\r\n this.sendTrackApi = this.sendTrackApi.bind(this);\r\n this.upgradehandleClick = this.upgradehandleClick.bind(this);\r\n this.refreshHandler = this.refreshHandler.bind(this);\r\n this.deleteStore = this.deleteStore.bind(this);\r\n this.UserStrIdData = this.UserStrIdData.bind(this);\r\n this.delConModal = this.delConModal.bind(this);\r\n this.editConModal = this.editConModal.bind(this);\r\n this.closeConfirmModal = this.closeConfirmModal.bind(this);\r\n this.closeEditConfirmModal = this.closeEditConfirmModal.bind(this);\r\n this.editSubAlert = this.editSubAlert.bind(this);\r\n this.downLoadExcel = this.downLoadExcel.bind(this);\r\n this.submitRabitQueue = this.submitRabitQueue.bind(this);\r\n this.editMarketNameModal = this.editMarketNameModal.bind(this);\r\n this.cancelmarketEdit = this.cancelmarketEdit.bind(this);\r\n this.sortFeature = this.sortFeature.bind(this);\r\n this.sortPopUp = this.sortPopUp.bind(this);\r\n }\r\n // Below the function for sorting the market name and date\r\n sortFeature(getName){\r\n if(getName === \"marketDateAsc\" || getName === \"marketDateDesc\"){\r\n this.setState({ ShowMarketNameSort: false })\r\n }else if(getName === \"marketNameAsc\" || getName === \"marketNameDesc\"){\r\n this.setState({ ShowMarketNameSort: true })\r\n }\r\n var dataSet = this.state.myMarketData.result1;\r\n dataSet.sort(function (a, b) {\r\n var textA = (getName === \"marketNameAsc\" || getName === \"marketNameDesc\") ? a.storeName.toUpperCase() : (getName === \"marketDateAsc\" || getName === \"marketDateDesc\") ? a.createdDate.toUpperCase() : '';\r\n var textB = (getName === \"marketNameAsc\" || getName === \"marketNameDesc\") ? b.storeName.toUpperCase() : (getName === \"marketDateAsc\" || getName === \"marketDateDesc\") ? b.createdDate.toUpperCase() : '';\r\n if(getName === \"marketNameAsc\" || getName === \"marketDateAsc\"){\r\n return (textA < textB) ? -1 : (textA > textB) ? 1 : 0 ;\r\n }else if (getName === \"marketNameDesc\" || getName === \"marketDateDesc\") {\r\n return (textA > textB) ? -1 : (textA < textB) ? 1 : 0 ;\r\n }\r\n });\r\n this.setState({ sortUpdate: getName === \"marketNameAsc\" ? true : false, sortUpdateDate: getName === \"marketDateAsc\" ? true : false })\r\n // this.setState({ sortUpdate: getName === \"marketNameAsc\" ? true : false, sortUpdateDate: getName === \"marketDateAsc\" ? true : false })\r\n this.state.myMarketData.result1 = dataSet;\r\n this.forceUpdate();\r\n }\r\n\r\n\r\n UserStrIdData(strId) {\r\n\r\n localStorage.removeItem('StId');\r\n localStorage.setItem('StId', strId);\r\n var isElement = document.getElementById('r2');\r\n if (isElement == null) {\r\n document.getElementById('r1').click();\r\n }\r\n else {\r\n document.getElementById('r1').click();\r\n document.getElementById('r2').click();\r\n }\r\n }\r\n\r\n // onMapCreated(map) {\r\n // map.setOptions({\r\n // disableDefaultUI: true\r\n // });\r\n // }\r\n\r\n // firstPolygon()\r\n // {\r\n // let a=0;\r\n // let zipcode = a!=0 ?'': '90001'; \r\n // axios.get('http://www.mapquestapi.com/search/v2/radius?key=L05QPQHwpWvvHBogQnG1X56gjYLvLy01&hostedData=mqap.uspostalcodes&origin='+zipcode+'&ambiguities=ignore')\r\n // .then(response => {\r\n // console.log(response,\"response\");\r\n // let centerpt=response.data.origin.latLng;\r\n // console.log(centerpt);\r\n // debugger\r\n // let data = response.data.searchResults[0].shapePoints.exterior;\r\n // let Arr2 = [],\r\n // Arr3 = [],\r\n // coordinates = [];\r\n // for (var i = 0; i < data.length; i++) {\r\n // if ((i + 2) % 2 == 0) {\r\n // //Arr3.push({ \"lat\": data[i] });\r\n // Arr3.push(data[i]);\r\n // }\r\n // else {\r\n // //Arr2.push({ \"lng\": data[i] });\r\n // Arr2.push(data[i]);\r\n // }\r\n // }\r\n // var merged = [];\r\n // for (i = 0; i < Arr2.length; i++) {\r\n // merged.push(appendArrays(Arr2[i],Arr3[i]));\r\n // }\r\n // function appendArrays() {\r\n // var temp = []\r\n // for (var i = 0; i < arguments.length; i++) {\r\n // temp.push(arguments[i]);\r\n // }\r\n // return temp;\r\n // }//renderCoordinate(merge) {\r\n // coordinates = [];\r\n // let position = 0;\r\n // merged.map((location) => {\r\n\r\n // if (position % 10 === 0) {\r\n // coordinates.push({\"lat\": location[1], \"lng\": location[0]});\r\n // }\r\n // position++\r\n // });\r\n // this.setState({coordinates1:coordinates,centerpt1:centerpt});\r\n // })\r\n // .catch((err) => {\r\n // alert(err);\r\n\r\n // });\r\n\r\n // }\r\n\r\n\r\n\r\n\r\n\r\n refreshHandler() {\r\n this.componentDidMount();\r\n }\r\n deleteStore(id) {\r\n \r\n this.setState({\r\n isButtonDisabled: true,isLoading : true\r\n });\r\n let token = localStorage.getItem('accessKey');\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n }\r\n\r\n axios.post(CONFIG.API_URL + 'market/deletestore/' + id)\r\n\r\n .then(response => {\r\n if (response.status === 200) {\r\n this.componentDidMount();\r\n this.closeConfirmModal();\r\n this.closeEditConfirmModal();\r\n this.forceUpdate();\r\n var isElement = document.getElementById('r2');\r\n if (isElement == null) {\r\n document.getElementById('r1').click();\r\n }\r\n else {\r\n document.getElementById('r1').click();\r\n document.getElementById('r2').click();\r\n }\r\n // alert('your store was deleted successfully');\r\n \r\n this.setState({\r\n isButtonDisabled: false,isLoading : false\r\n });\r\n }\r\n }).catch((err) => {\r\n if (err.response.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else if(err.response.status === 400){\r\n\r\n }\r\n else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }\r\n delConModal(e, id) {\r\n this.state.delUserStoreId = id;\r\n this.state.deleteConfirmModal = true;\r\n }\r\n editConModal(e, id) {\r\n this.state.delUserStoreId = id;\r\n this.state.editConfirmModal = true;\r\n }\r\n closeConfirmModal() {\r\n this.setState({\r\n deleteConfirmModal: false,\r\n // ShowMarketNameSort: false\r\n })\r\n }\r\n closeEditConfirmModal() {\r\n this.setState({\r\n editConfirmModal: false,\r\n // ShowMarketNameSort: false\r\n })\r\n }\r\n editMarketNameModal(e, id, name) {\r\n\r\n this.state.delUserStoreId = id;\r\n this.state.editMarketName = name;\r\n this.state.marketnameeditmodal = true;\r\n //document.getElementById(\"MarketName\").focus();\r\n }\r\n \r\n cancelmarketEdit() {\r\n this.setState({ marketnameeditmodal: false, errortext: \"\" });\r\n }\r\n\r\n marketNameEditSubmit(event, errors, values) {\r\n if (errors.length === 0) {\r\n let token = localStorage.getItem('accessKey');\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n }\r\n let errortext = '';\r\n let data = {\r\n UserStoreId: this.state.delUserStoreId,\r\n MarketName: values.MarketName,\r\n RegionId: CONFIG.RegionId\r\n }\r\n axios.post(CONFIG.API_URL + 'market/edit', data)\r\n .then(response => {\r\n if (response.status === 200) {\r\n const already = response.data.result ? response.data.result.indexOf(\"Store name already exists!\") : -1;\r\n if (already > -1) {\r\n errortext = 'This market name already exists! Please assign a different name.';\r\n this.setState({\r\n errortext\r\n })\r\n } else {\r\n\r\n this.cancelmarketEdit();\r\n this.setState({ ShowMarketNameSort: false })\r\n this.componentDidMount();\r\n var isElement = document.getElementById('r2');\r\n if (isElement == null) {\r\n document.getElementById('r1').click();\r\n }\r\n else {\r\n document.getElementById('r1').click();\r\n document.getElementById('r2').click();\r\n }\r\n }\r\n\r\n }\r\n }).catch((err) => {\r\n if (err.response.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else if (err.response.status === 400) {\r\n this.setState({ errortext : err.response.data.Message });\r\n }\r\n else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }\r\n\r\n }\r\n trackModal(storeId, marketName) {\r\n this.setState({\r\n modalMarketStoreId: storeId,\r\n marketStoreName: marketName\r\n })\r\n let token = localStorage.getItem('accessKey');\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n }\r\n axios.post(CONFIG.API_URL + 'market/competitors/' + storeId + '/' + CONFIG.RegionId)\r\n .then(response => {\r\n // this.state.isLoading=true;\r\n const trackModalData = response.data.competitor.competitorsList;\r\n let strOptions = [];\r\n trackModalData.forEach(function (e) { strOptions.push(e.storeID + (e.isTracked ? '|1' : '|0')) });\r\n if(trackModalData.length > 0){\r\n trackModalData.sort(function (a, b) {\r\n var textA = a.proximity;\r\n var textB = b.proximity;\r\n return (textA < textB) ? -1 : (textA > textB) ? 1 : 0 ;\r\n \r\n });}\r\n //console.log(strOptions);\r\n //console.log(trackModalData, \"trackModalData\");\r\n this.setState({\r\n trackModalData, storeModal: true, strOptions\r\n })\r\n }).catch((err) => {\r\n // if (err.response.status === 401) {\r\n // localStorage.removeItem('accessKey');\r\n // const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n // this.props.history.push(from);\r\n // }\r\n // else {\r\n // alert(err.response.data);\r\n // }\r\n });\r\n // this.setState(prevState => ({\r\n // storeModal: !prevState.storeModal\r\n // }));\r\n }\r\n\r\n // handleReset() {\r\n // setActiveStep(0);\r\n // }\r\n handleClickOpen(e, id) {\r\n this.setState({\r\n editConfirmModal: false,\r\n addmarketpopup:true\r\n })\r\n //console.log(id);\r\n this.child.current.ModalClickOpen(id);\r\n }\r\n handleClickOpenCR(e, id) {\r\n //console.log(id);\r\n this.child.current.ModalClickOpenCR(id);\r\n }\r\n\r\n toggle = targetName => {\r\n if (!this.state[targetName]) {\r\n this.setState({\r\n ...this.state,\r\n [targetName]: {\r\n tooltipOpen: true\r\n }\r\n });\r\n } else {\r\n this.setState({\r\n ...this.state,\r\n [targetName]: {\r\n tooltipOpen: !this.state[targetName].tooltipOpen\r\n }\r\n });\r\n }\r\n };\r\n isToolTipOpen = targetName => {\r\n return this.state[targetName] ? this.state[targetName].tooltipOpen : false;\r\n };\r\n // toggle() {\r\n // this.setState(prevState => ({\r\n // dropdownOpen: !prevState.dropdownOpen\r\n // }));\r\n // }\r\n handleChangePage = (event, page) => {\r\n this.setState({ page });\r\n };\r\n handleChangePageTrack = (event, pageCount) => {\r\n this.setState({ pageCount });\r\n };\r\n handleChangePageMTD = (event, pageCountMDT) => {\r\n this.setState({ pageCountMDT });\r\n };\r\n handleChangeRowsPerPageMTD = event => {\r\n this.setState({ pageCountMDT: 0, 10: event.target.value });\r\n };\r\n handleChangeRowsPerPageTrack = event => {\r\n this.setState({ pageCount: 0, 10: event.target.value });\r\n };\r\n handleChangeRowsPerPage = event => {\r\n this.setState({ page: 0, rowsPerPage: event.target.value });\r\n };\r\n\r\n upgradehandleClick(event, storeID, userStId) {\r\n let userStorId = userStId;\r\n let trackOptions = this.state.trackOptions;\r\n let strOptions = this.state.strOptions;\r\n let strOptions1 = this.state.strOptions1;\r\n let index;\r\n let index1;\r\n\r\n //console.log(event.target.checked)\r\n if (event.target.checked) {\r\n\r\n // this.state.disablecheckbox = true;\r\n index = strOptions.indexOf(+storeID + '|0');\r\n index1 = strOptions1.indexOf(+storeID + '|0');\r\n //console.log(upgradeOptions.indexOf(+storeID))\r\n if (index >= 0) {\r\n strOptions.splice(index, 1)\r\n }\r\n if (index1 >= 0) {\r\n strOptions1.splice(index1, 1)\r\n }\r\n trackOptions.push(+storeID);\r\n strOptions.push(+storeID + '|1');\r\n strOptions1.push(+storeID + '|1');\r\n }\r\n else if (!event.target.checked) {\r\n\r\n index = strOptions.indexOf(+storeID + '|1');\r\n index1 = strOptions1.indexOf(+storeID + '|1');\r\n //console.log(upgradeOptions.indexOf(+storeID))\r\n if (index >= 0) {\r\n strOptions.splice(index, 1)\r\n }\r\n if (index1 >= 0) {\r\n strOptions1.splice(index1, 1)\r\n }\r\n strOptions.push(+storeID + '|0');\r\n strOptions1.push(+storeID + '|0');\r\n }\r\n this.setState({\r\n strOptions, userStorId, strOptions1, enableSave: true,\r\n })\r\n //console.log(strOptions1);\r\n }\r\n\r\n componentDidMount() {\r\n \r\n if (!(\"Notification\" in window)) {\r\n console.log(\"This browser does not support desktop notification\");\r\n } else {\r\n Notification.requestPermission();\r\n }\r\n\r\n if (!localStorage.getItem('accessKey') || ((document.location.origin + '/') === document.location.href)) {\r\n var Tawk_API = Tawk_API || {}, Tawk_LoadStart = new Date();\r\n (function () {\r\n var s1 = document.createElement(\"script\"), s0 = document.getElementsByTagName(\"script\")[0];\r\n s1.async = true;\r\n s1.src = '//js.hs-scripts.com/4297816.js';//'https://embed.tawk.to/5bbe622408387933e5bacf9e/default';\r\n s1.charset = 'UTF-8';\r\n s1.setAttribute('crossorigin', '*');\r\n s0.parentNode.insertBefore(s1, s0);\r\n })();\r\n }\r\n \r\n var element = document.getElementsByTagName(\"iframe\")[1];\r\n if (element !== undefined) {\r\n element.parentNode.removeChild(element)\r\n } this.setState({\r\n isLoading: true,\r\n ShowMarketNameSort: false\r\n })\r\n let token = localStorage.getItem('accessKey');\r\n let instructionMsg = localStorage.getItem('instructionMsg');\r\n let displayMessage = localStorage.getItem('displayMessage');\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n }\r\n // axios.post(CONFIG.API_URL + 'Account/reputationstore')\r\n axios.post(CONFIG.API_URL + 'Account/reputationstore/' + CONFIG.RegionId)\r\n .then(res => {\r\n const myMarketData = res.data;\r\n let countlen = myMarketData.result1.length;\r\n let ch = myMarketData.result2.tempNoOfStores;\r\n let serachTypeval;\r\n let userType = localStorage.getItem('userType');\r\n if (myMarketData.result1.length > 0) {\r\n serachTypeval = myMarketData.result1.find(function (searchType) {\r\n return searchType;\r\n });\r\n serachTypeval = serachTypeval.searchType;\r\n }\r\n\r\n // To identify the Status report of Excel report is progress\r\n let excelProgress = myMarketData.result1.filter(function (data) {\r\n return data.reportStatus === 1;\r\n });\r\n\r\n excelProgress = excelProgress.length > 0 ? excelProgress.length : '';\r\n // End of To identify the Status report of Excel report is progress\r\n\r\n this.setState({\r\n isLoading: false, myMarketData, excelProgress\r\n , serachTypeval, countlen, ch, instructionMsg, userType, displayMessage\r\n });\r\n // console.log(serachTypeval);\r\n })\r\n .catch((err) => {\r\n this.setState({ isLoading: false });\r\n if (err.response.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else {\r\n alert(err.response.data);\r\n }\r\n });\r\n // axios.post(CONFIG.API_URL + 'Account/getuserinfo')\r\n axios.post(CONFIG.API_URL + 'Account/getuserinfo/' + CONFIG.RegionId)\r\n .then(response => {\r\n let infoData = response.data;\r\n this.setState({ infoData });\r\n })\r\n .catch((err) => {\r\n this.setState({ isLoading: false });\r\n if (err.response.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else {\r\n alert(err.response.data);\r\n }\r\n });\r\n\r\n // To Call ExcelReport status Api\r\n this.CallgetStatusReportApi = setInterval(\r\n () =>\r\n this.statusReport(),\r\n 30000\r\n );\r\n }\r\n\r\n //To call the Function\r\n componentWillUnmount() {\r\n clearInterval(this.CallgetStatusReportApi);\r\n }\r\n\r\n // To Get Status of ExcelReport\r\n statusReport() {\r\n if (this.state.excelProgress) {\r\n let token = localStorage.getItem('accessKey');\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n }\r\n // axios.post(CONFIG.API_URL + 'Account/reputationstore')\r\n\r\n axios.post(CONFIG.API_URL + 'Account/reputationstore/' + CONFIG.RegionId)\r\n .then(res => {\r\n const myMarketData = res.data;\r\n let countlen = myMarketData.result1.length;\r\n let ch = myMarketData.result2.tempNoOfStores;\r\n let serachTypeval;\r\n let userType = localStorage.getItem('userType');\r\n if (myMarketData.result1.length > 0) {\r\n serachTypeval = myMarketData.result1.find(function (searchType) {\r\n return searchType;\r\n });\r\n serachTypeval = serachTypeval.searchType;\r\n }\r\n\r\n // To identify the Status report of Excel report is progress\r\n let excelProgress = myMarketData.result1.filter(function (data) {\r\n return data.reportStatus === 1;\r\n });\r\n\r\n excelProgress = excelProgress.length > 0 ? excelProgress.length : '';\r\n // End of To identify the Status report of Excel report is progress\r\n\r\n this.setState({\r\n isLoading: false, myMarketData, excelProgress\r\n , serachTypeval, countlen, ch, userType\r\n });\r\n // console.log(serachTypeval);\r\n })\r\n .catch((err) => {\r\n this.setState({ isLoading: false });\r\n if (err.response.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }\r\n\r\n // DONT FORGET TO IMPLEMENT\r\n\r\n // // To identify the Status report of Excel report is progress\r\n // let excelProgress = myMarketData.result1.filter(function(data){\r\n // return data.reportStatus === 1;\r\n // });\r\n\r\n // excelProgress = excelProgress.length > 0 ? excelProgress.length : '';\r\n // // End of To identify the Status report of Excel report is progress\r\n\r\n }\r\n\r\n // Get Status Report Excel\r\n\r\n trackModalClose() {\r\n this.setState({\r\n storeModal: false,\r\n pageCount: 0,\r\n enableSave: false,\r\n })\r\n }\r\n\r\n sendTrackApi() {\r\n const data = {\r\n userStoreID: this.state.userStorId,\r\n id_list: this.state.strOptions1.toString(),\r\n RegionId: CONFIG.RegionId\r\n }\r\n let token = localStorage.getItem('accessKey');\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n }\r\n axios.post(CONFIG.API_URL + 'market/track', data)\r\n .then(response => {\r\n // this.state.isLoading=true;\r\n const trackResponse = response.data;\r\n if (response.status === 200) {\r\n this.setState({\r\n storeModal: false,\r\n pageCount: 0,\r\n enableSave: false,\r\n })\r\n // let strOptions1 = this.state.strOptions1;\r\n // strOptions1= [];\r\n // let strOptions = this.state.strOptions;\r\n // strOptions= [];\r\n this.componentDidMount();\r\n }\r\n //console.log(trackResponse)\r\n }).catch((err) => {\r\n // if (err.response.status === 401) {\r\n // localStorage.removeItem('accessKey');\r\n // const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n // this.props.history.push(from);\r\n // }\r\n // else {\r\n // alert(err.response.data);\r\n // }\r\n });\r\n }\r\n marketDashboard() {\r\n this.setState(prevState => ({\r\n modal: !prevState.modal\r\n }));\r\n //alert(\"Before you can view your competitors pricing and promotions, you must define the geographical coverage zone for this market\")\r\n }\r\n\r\n editSubAlert() {\r\n this.setState({ snackOpen: true, snackMsg: 'Please add billing details before edit the subscription' })\r\n }\r\n snackHandleclose = (event, reason) => {\r\n if (reason === 'clickaway') {\r\n return;\r\n }\r\n this.setState({ snackOpen: false });\r\n };\r\n\r\n downLoadExcelPrompt(id) {\r\n this.state.downloadStoreID = id;\r\n this.state.downLoadReportModal = true;\r\n }\r\n\r\n // Call RabitQueue\r\n submitRabitQueue(storeId) {\r\n //this.setState({ isLoading: true, downLoadReportModal: false });\r\n axios.post(CONFIG.API_URL + 'market/reportqueue/' + storeId)\r\n .then((response) => {\r\n if (response.data === 'success') {\r\n this.setState({ snackOpen: true, snackMsg: 'Your Competitor Report is being generated. This might take a couple minutes. When the report is ready it will download automatically when you click the report icon again.' }, () => { this.componentDidMount() });\r\n }\r\n }).catch((err) => {\r\n this.setState({ isLoading: false });\r\n if (err.response.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else {\r\n this.setState({ snackOpen: true, snackMsg: \"Report generation is in progress, please try after sometime.\" });\r\n }\r\n });\r\n }\r\n\r\n //Excel file Download\r\n downLoadExcel(rep_id, filename) {\r\n this.setState({ isLoading: true, downLoadReportModal: false });\r\n axios({\r\n url: CONFIG.API_URL + 'market/downloadreport/' + rep_id + '/' + CONFIG.RegionId,\r\n method: 'GET',\r\n responseType: 'blob', // important\r\n }).then((response) => {\r\n //console.log(response);\r\n const url = window.URL.createObjectURL(new Blob([response.data]));\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.setAttribute('download', filename.replace(\"
\",\"\") + \".xlsx\");\r\n document.body.appendChild(link);\r\n link.click();\r\n this.setState({ isLoading: false });\r\n }).catch((err) => {\r\n this.setState({ isLoading: false });\r\n if (err.response.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else {\r\n this.setState({ snackOpen: true, snackMsg: \"Report generation is in progress, please try after sometime.\" });\r\n }\r\n });\r\n }\r\n\r\n // Activity and Comp report change\r\n // compAndActivityReportChange = (e, type) => {\r\n // let data = this.state.myMarketData.result1;\r\n // if (e.target.checked) {\r\n // data.forEach(d => {\r\n // if(type == 'ACTIVITY_REPORT' && d.userStoreID == e.target.value){\r\n // d.isActivityReport = 1\r\n // } else if(type == 'COMP_REPORT' && d.userStoreID == e.target.value){\r\n // d.isCompReport = 1\r\n // }\r\n // })\r\n // this.state.myMarketData.result1 = data;\r\n // } else if (!e.target.checked) {\r\n // data.forEach(d => {\r\n // if(type == 'ACTIVITY_REPORT' && d.userStoreID == e.target.value){\r\n // d.isActivityReport = 0\r\n // } else if(type == 'COMP_REPORT' && d.userStoreID == e.target.value){\r\n // d.isCompReport = 0\r\n // }\r\n // })\r\n // this.state.myMarketData.result1 = data;\r\n // }\r\n // let reportStatus = data && data.filter((x) => x.userStoreID == e.target.value);\r\n // reportStatus = reportStatus[0];\r\n // let finalData = {\r\n // storeId: e.target.value,\r\n // isActivityReport: reportStatus.isActivityReport == null || reportStatus.isActivityReport == 0 ? 0 : 1,\r\n // isCompReport: reportStatus.isCompReport == null || reportStatus.isCompReport == 0 ? 0 : 1\r\n // }\r\n // this.updateActiveComp(finalData);\r\n // // this.forceUpdate();\r\n // }\r\n\r\n // //update activity comp report \r\n // updateActiveComp(values){\r\n // let data = {\r\n // UserStoreId: values.storeId, \r\n // ActivityReport: values.isActivityReport, \r\n // CompReport: values.isCompReport,\r\n // }\r\n // let token = localStorage.getItem('accessKey');\r\n // if (token) {\r\n // axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n // }\r\n // axios.post(CONFIG.API_URL + 'market/updateactivitycompreport', data)\r\n // .then(response => {\r\n // this.forceUpdate();\r\n // }).catch((err) => {\r\n // if (err.response.status === 401) {\r\n // localStorage.removeItem('accessKey');\r\n // const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n // this.props.history.push(from);\r\n // }\r\n // else {\r\n // alert(err.response.data);\r\n // }\r\n // });\r\n // }\r\n\r\n // Sorting competitor and address in modal popup\r\n sortPopUp(getName){\r\n if(getName === \"compeAsc\" || getName === \"compDesc\"){\r\n this.setState({ ShowCompSort: true, ShowAddressSort: false, ShowProxSort: false });\r\n }else if(getName === \"addressAsc\" || getName === \"addressDesc\"){\r\n this.setState({ ShowAddressSort: true, ShowProxSort: false, ShowCompSort: false });\r\n }else if(getName === \"proximityAsc\" || getName === \"proximityDesc\"){\r\n this.setState({ ShowAddressSort: false, ShowProxSort: true, ShowCompSort: false });\r\n }\r\n var popUpData = this.state.trackModalData; \r\n popUpData.sort(function (a, b) {\r\n var textA = (getName === \"addressAsc\" || getName === \"addressDesc\") ? a.storeAddress.toUpperCase() : (getName === \"compAsc\" || getName === \"compDesc\") ? a.storeName.toUpperCase() : (getName === \"proximityAsc\" || getName === \"proximityDesc\") ? a.proximity : '';\r\n var textB = (getName === \"addressAsc\" || getName === \"addressDesc\") ? b.storeAddress.toUpperCase() : (getName === \"compAsc\" || getName === \"compDesc\") ? b.storeName.toUpperCase() : (getName === \"proximityAsc\" || getName === \"proximityDesc\") ? b.proximity : '';\r\n if(getName === \"addressAsc\" || getName === \"compAsc\" || getName === \"proximityAsc\"){\r\n return (textA < textB) ? -1 : (textA > textB) ? 1 : 0 ;\r\n }else if (getName === \"addressDesc\" || getName === \"compDesc\" || getName === \"proximityDesc\") {\r\n return (textA > textB) ? -1 : (textA < textB) ? 1 : 0 ;\r\n }\r\n });\r\n this.setState({ sortUpdateAddress: getName === \"addressAsc\" ? true : false, sortUpdateComp: getName === \"compAsc\" ? true : false, sortUpdateProximity: getName === \"proximityAsc\" ? true : false });\r\n this.state.trackModalData = popUpData;\r\n this.forceUpdate();\r\n }\r\n\r\n render() {\r\n document.title = 'StorTrack: Self-storage market pricing data';\r\n const { selectedCityOption, selectedZipOption, trackedFields, addInputData, errortext, tabvalue, lookupZipcodeData, lookupCityData, showComponent, addMarketData, stateData, countryData, rowsPerPage, page, pageCount, pageCountMDT, myMarketData, isLoading, isLoading1, isDefaultValue, trackModalData, strOptions, selectedPlace, activeMarker, showingInfoWindow, address, sortUpdate, sortUpdateDate, ShowMarketNameSort, sortUpdateProximity, ShowProxSort, ShowCompSort } = this.state;\r\n const { open, open1, open2, activeStep, radiusValue, competitorsData, userType, marketnameeditmodal, editMarketName } = this.state;\r\n const { coordinates1, coordinates2, coordinates3, coordinates4, countlen, displayMessage, ch, instructionMsg, infoData, snackMsg, snackOpen, sortUpdateAddress, sortUpdateComp, ShowAddressSort, enableSave } = this.state;\r\n const defaultProps = {\r\n helpTitle: this.state.storeModal === true ? 'Stores in the Market' : 'My Markets',\r\n helpContent: this.state.storeModal === true ? '

These are the stores found within the coverage area you selected.

Not your competition? We get it, maybe the guys across the street are no match to the value you bring to your customers. To remove any of stores/competitors from the market insights you see throughout the site, unselect the box under Track next to the store and click Save.

' : \"

This page shows all the Markets you have set up, if any. If you haven't yet (what are you waiting for?!), click on the +Add Market icon and follow the steps to set up your first Market.

Date Added

The date the Market you set up this Market

Market Name

Click on any Market name to view that Market's detailed insights

Address

The address for this Market

Coverage

This is the coverage/competitor area you selected for this Market. Click on this to change the coverage at any time

Stores

To view all the competing stores for this Market, click on this

Go to Dashboard

Click on the icon to go to the detailed Market insights

Download Competitor Report

Click on the icon to download an Excel spreadsheet with a detailed report comparing your store's rates against the rates of the competitor stores in this market. You will see the rates for all your unit types and how they compare against the market average and matching units at competitor stores.

Edit Market Info

Edit the address for this Market or delete it (however, keep in mind making changes to the address for a Market can result in additional fees to your subscription - contact us for additional information)

\"\r\n }\r\n\r\n //'HideCompetitor'\r\n\r\n return (\r\n
\r\n
\r\n {isLoading ?
: ''}\r\n\r\n {isLoading1 ?
: ''}\r\n {/* \r\n
\r\n

Market name

\r\n

1811, Adrin, CA, 2000

\r\n

Coverage: 5 Mile Radius

\r\n
\r\n
*/}\r\n \r\n \r\n \r\n \r\n\r\n
\r\n {/* {localStorage.getItem('accessKey') && localStorage.getItem('userType') === 2 ? \r\n \r\n : ''} */}\r\n \r\n
\r\n {countlen > 0 || displayMessage == 1 ?\r\n \r\n

My Markets {countlen > 0 || this.state.ch > 0 ? You have set up {myMarketData.result1.length} out of {this.state.ch} markets. : ''} {countlen == ch ? Please upgrade your subscription to add more markets. : ''}

\r\n\r\n \r\n {countlen >= 0 && countlen !== ch ?\r\n\r\n countlen == 0 ? '' :\r\n \r\n :\r\n countlen > 0 && countlen == ch && infoData && infoData.info.userInfo.billingAddress != null && localStorage.getItem('userManual') !== '1' ? Update Subscription : localStorage.getItem('userManual') !== '1' ? Update Subscription : ''}\r\n \r\n
\r\n :\r\n \r\n \r\n

My Markets

\r\n \r\n \r\n Let's get started! Set up your first market by clicking +Add Market below. \r\n \r\n \r\n {this.state.ch > 1 && displayMessage !== null && countlen >= 1 ? You have set up {myMarketData.result1.length} out of {this.state.ch} markets : ''}\r\n \r\n
\r\n }\r\n {/* */}\r\n\r\n {/* */}\r\n {/* \r\n \r\n \r\n */}\r\n
\r\n \r\n \r\n \r\n \r\n this.sortFeature('marketDateDesc') : ()=> this.sortFeature('marketDateAsc') }>Date Added {sortUpdateDate ? : }\r\n this.sortFeature('marketNameDesc') : ()=> this.sortFeature('marketNameAsc') }>Market Name {sortUpdate ? : }\r\n {/* this.sortFeature('marketNameDesc') : ()=> this.sortFeature('marketNameAsc') }>Market Name {ShowMarketNameSort ? {sortUpdate ? : } : ''} */}\r\n Address\r\n Coverage\r\n Stores\r\n \r\n ACTIVITY REPORTS\r\n \r\n \r\n COMPETITOR REPORTS\r\n \r\n {/* Go To Dashboard\r\n Download Comp Report */}\r\n Edit Market Info\r\n \r\n \r\n \r\n {countlen > 0 ? myMarketData.result1.slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage).map((category) =>\r\n \r\n \r\n {/* {moment(category.createdDate).format('L')} */}\r\n {moment(category.createdDate).format('DD-MMM-YYYY')}\r\n \r\n {category.zoneCoverage !== null && category.zoneCoverage ? this.UserStrIdData(category.userStoreID)} to={{ pathname: `/market-dashboard/${category.userStoreID}` }}>{category.storeName} : {category.storeName}}\r\n \r\n this.handleClickOpenCR(e, category.userStoreID)}>{category.zoneCoverage !== null && category.zoneCoverage ? category.zoneCoverage.replace(/,/g, ', ') : 'Define Coverage'}\r\n {category.zoneCoverage !== null && category.zoneCoverage ?\r\n this.trackModal(category.userStoreID, category.storeName)}>{category.compsCount}\"\"\r\n :\r\n N/A\r\n }\r\n \r\n {category.zoneCoverage !== null && category.zoneCoverage ?\r\n \r\n this.componentDidMount()} isFrom=\"MY_MARKET\" />\r\n :\r\n

Set up

\r\n }\r\n {/* {category.isActivityReport == 1 ? : } */}\r\n {/* this.compAndActivityReportChange(e, 'ACTIVITY_REPORT')}\r\n value={category.userStoreID}\r\n name={} \r\n />\r\n }\r\n /> */}\r\n {/* {category.zoneCoverage !== null && category.zoneCoverage ? this.UserStrIdData(category.userStoreID)} to={{ pathname: `/market-dashboard/${category.userStoreID}` }} className=\"go-to-dash\"> : } */}\r\n
\r\n \r\n {category.zoneCoverage !== null && category.zoneCoverage ?\r\n \r\n this.componentDidMount()} isFrom=\"MY_MARKET\" />\r\n {/* {category.competitorStoreID != null && category.competitorStoreID != 0 ?\r\n this.componentDidMount()} isFrom=\"MY_MARKET\" />\r\n : '-'} */}\r\n :\r\n

Set up

\r\n }\r\n {/* {category.isCompReport == 1 ? : } */}\r\n {/* this.compAndActivityReportChange(e, 'COMP_REPORT')}\r\n value={category.userStoreID}\r\n name={} \r\n />\r\n }\r\n /> */}\r\n {/* {category.zoneCoverage !== null && category.zoneCoverage ? this.UserStrIdData(category.userStoreID)} to={{ pathname: `/market-dashboard/${category.userStoreID}` }} className=\"go-to-dash\"> : } */}\r\n
\r\n {/* */}\r\n {/* \r\n {\r\n // Checking Competitor Available (category.competitorStoreID) and Competitor belongs to \"US\"(category.displayReport)\r\n category.competitorStoreID !== null && category.competitorStoreID !== 0 && category.compsCount !== null && category.compsCount > 0\r\n ?\r\n category.zoneCoverage === null // Request to download CompReport if category.zoneCoverage is available\r\n ?\r\n \r\n :\r\n category.reportStatus === null || category.reportStatus === 0 // Request to download CompReport\r\n ?\r\n this.submitRabitQueue(category.userStoreID)} className=\"chk-aval-xcel\">\r\n :\r\n category.reportStatus === 1 // Compreport in progress\r\n ?\r\n \r\n :\r\n category.reportStatus === 3 // Able to download Compreport\r\n ?\r\n this.downLoadExcel(category.reportID, category.address.replace(\"
\",\"\"))} className=\"available-xcel\">
\r\n :\r\n category.reportStatus === 4 // Unable to Download Compreport\r\n ?\r\n \r\n :\r\n category.reportStatus === 5 // Un Available price\r\n ?\r\n \r\n :\r\n ''\r\n :\r\n ''}\r\n
*/}\r\n {/* onClick={()=>this.downLoadExcel(category.userStoreID)} */}\r\n \r\n\r\n this.toggle(`btn-${category.userStoreID}`)}>\r\n \r\n ...\r\n \r\n {userType === \"2\" ? '' :\r\n \r\n this.editMarketNameModal(e, category.userStoreID, category.storeName)}>Edit Market Name\r\n this.editConModal(e, category.userStoreID)}>Edit Address\r\n this.delConModal(e, category.userStoreID)}>Delete \r\n {/* this.deleteStore(e, category.userStoreID)}>Delete */}\r\n \r\n }\r\n \r\n \r\n
\r\n ) :\r\n \r\n To view a market's detailed insights, first click +Add Market to enter the market's address.\r\n \r\n \r\n \r\n \r\n }\r\n\r\n
\r\n {countlen > 0 ?\r\n \r\n \r\n \r\n \r\n : ''}\r\n
\r\n
\r\n
\r\n {CONFIG.IsMapbox ?\r\n \r\n :\r\n }\r\n\r\n
\r\n\r\n\r\n {/* \r\n \r\n
\r\n \r\n \r\n \r\n\r\n \r\n Address Not Fount\r\n \r\n \r\n Duis mollis, est non commodo luctus, nisi erat porttitor ligula.\r\n \r\n\r\n
\r\n */}\r\n
\r\n {/* Modal for track untrack stores */}\r\n
\r\n this.trackModal(this.state.modalMarketStoreId, this.state.marketStoreName)} className=\"my-markets-popup\">\r\n {this.state.marketStoreName} \r\n \r\n \r\n \r\n \r\n this.sortPopUp('compDesc') : ()=> this.sortPopUp('compAsc') }>Competitor Name {sortUpdateComp ? : }\r\n this.sortPopUp('addressDesc') : ()=> this.sortPopUp('addressAsc') }>Address {sortUpdateAddress ? : }\r\n this.sortPopUp('proximityDesc') : ()=> this.sortPopUp('proximityAsc') }>Proximity {sortUpdateProximity ? : }\r\n {/* Competitor Name\r\n Address */}\r\n Track\r\n \r\n \r\n \r\n {trackModalData ? trackModalData.slice(pageCount * 10, pageCount * 10 + 10).map((trackData) =>\r\n \r\n {trackData.storeName}\r\n {trackData.storeAddress}\r\n {trackData.proximity == null ? \"--\" : trackData.proximity == 0 ? \"\" : trackData.proximity + ((CONFIG.RegionId == 2) || (CONFIG.RegionId == 4) ? \" km\" : \" mi\")} \r\n \r\n e === (trackData.storeID + '|1'))}\r\n onClick={event => this.upgradehandleClick(event, trackData.storeID, trackData.userStoreID)} />\r\n \r\n \r\n ) : ''}\r\n {trackModalData.length == 0 ?\r\n \r\n There are no competitors available in this market\r\n \r\n : ''}\r\n \r\n {trackModalData.length !== 0 ?\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n : ''}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n Are you sure you want to delete this market?\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Changing the address for this market may result in additional fees to your subscription. Click Continue to edit the address.\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Your competitor report is being processed and will be automatically downloaded when ready.\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n\r\n \r\n Before you can view your competitors pricing and promotions, you must define the geographical coverage zone for this market. \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n \r\n \r\n Update Market Name\r\n \r\n \r\n \r\n \r\n \r\n
{errortext ? errortext : ''}
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n {snackMsg}}\r\n action={[\r\n \r\n \r\n \r\n ]}\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\nCustomMyMarket.propTypes = {\r\n // classes: PropTypes.object.isRequired,\r\n};\r\n\r\nexport default CustomMyMarket;","import React from 'react';\r\n//import { Link } from 'react-router-dom';\r\nimport { HashLink as Link } from 'react-router-hash-link';\r\nimport {\r\n Container, Col, Row, Button, Label, Input, FormText,\r\n CardDeck, Card, CardTitle, CardSubtitle, CardFooter, CardBody\r\n} from 'reactstrap';\r\nimport { AvForm, AvField } from 'availity-reactstrap-validation';\r\nimport './Home.css';\r\nimport freeoval from './../../Assets/Images/oval1.png';\r\nimport singleimg from './../../Assets/Images/oval2.png';\r\nimport multiimg from './../../Assets/Images/oval3.png';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Stepper from '@material-ui/core/Stepper';\r\nimport Step from '@material-ui/core/Step';\r\nimport StepLabel from '@material-ui/core/StepLabel';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport FormGroup from '@material-ui/core/FormGroup';\r\nimport withMobileDialog from '@material-ui/core/withMobileDialog';\r\nimport Divider from '@material-ui/core/Divider';\r\nimport CreditCardInput from 'react-credit-card-input';\r\nimport Snackbar from '@material-ui/core/Snackbar';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport CloseIcon from '@material-ui/icons/Close';\r\nimport NumberFormat from 'react-number-format';\r\nimport axios from 'axios';\r\nimport { CONFIG, MatchingCountryCode } from '../../utils/config';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport { COMMON } from '../../utils/common';\r\nimport PhoneInput from 'react-phone-number-input/input';\r\nimport 'react-phone-number-input/style.css'\r\nimport btnarrow from './../../Assets/Images/btn-arrow.png'\r\nimport btnarrowwhite from './../../Assets/Images/btn-arrow-white.png'\r\n\r\nfunction getSteps() {\r\n return ['Create Your Account', 'Billing Address', 'Payment Details', 'You are Confirmed!'];\r\n}\r\n\r\nclass Home extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n modal: false,\r\n snackOpen: false,\r\n activeStep: 0,\r\n UserDetail: {},\r\n PaymentDetail: {},\r\n errCard: '',\r\n phoneErr: '',\r\n emailErr: '',\r\n dialogcnt: '',\r\n StateCountry: '',\r\n stateAbb: '',\r\n stateData: [],\r\n phoneFieldBorder: '0',\r\n countryData: [],\r\n total_value: null,\r\n checkItOut: false,\r\n terms: false,\r\n focusValue: '',\r\n isLoading1: false,\r\n checkErr: '',\r\n snackMSg: '',\r\n phoneFieldBorder: '0',\r\n curSymb: CONFIG.Currency_Symbol,\r\n phone: '',\r\n noofstores: '',\r\n dialogbox2: false,\r\n phoneMaxLength: CONFIG.PhoneMaxLength,\r\n StateCountryCount: 1,\r\n isFullDiscount: false,\r\n filteredState: [],\r\n showState: true,\r\n };\r\n // this.emailInput = React.createRef();\r\n this.modal_toggle = this.modal_toggle.bind(this);\r\n this.handleChange = this.handleChange.bind(this);\r\n this.snackHandleclose = this.snackHandleclose.bind(this);\r\n this.formsub_modal_toggle = this.formsub_modal_toggle.bind(this);\r\n this.ValidateCard = this.ValidateCard.bind(this);\r\n this.handleBlur = this.handleBlur.bind(this);\r\n this.postalCodeValidation = this.postalCodeValidation.bind(this);\r\n }\r\n\r\n phoneKeyPressed = (event) => {\r\n this.setState({ keyCode: event.keyCode });\r\n }\r\n\r\n\r\n onPhoneChangeML = (event) => {\r\n var string = event.target.value;\r\n var replacedString = event.target.value;\r\n // var replacedString = event.target.value.replace(/-/g, \"\").replace(\"(\", \"\").replace(\")\", \"\");\r\n var numericRegex = /^[ 0-9*()+-]*$/;// /^([0-9]*)$/;\r\n var valid = numericRegex.exec(replacedString);\r\n var keyCode = this.state.keyCode;\r\n let phoneErr = '';// 'Phone is invalid';\r\n let phoneFieldBorder = '0';// '1';\r\n\r\n if (valid) {\r\n string = replacedString;\r\n // var regex = CONFIG.PhoneRegex;\r\n // var match = regex.exec(string);\r\n // if (match) {\r\n // match.shift();\r\n // match[0] = \"(\" + match[0] + \")\";\r\n // string = match.join(\"-\");\r\n phoneErr = '';\r\n phoneFieldBorder = '0';\r\n // }\r\n } else {\r\n if (keyCode !== 8 && keyCode !== 46) {\r\n string = this.state.phone;\r\n }\r\n }\r\n\r\n if (string === \"\") {\r\n phoneErr = 'Phone is required';\r\n phoneFieldBorder = '1';\r\n }\r\n this.setState({ phone: string, phoneErr, phoneFieldBorder, keyCode: '' });\r\n }\r\n onPhoneChangesML = (event) => {\r\n var string = event;\r\n let phoneErr = '';// 'Phone is invalid';\r\n let phoneFieldBorder = '0';// '1';\r\n if (string === \"\" || string === undefined) {\r\n phoneErr = 'Phone is required';\r\n phoneFieldBorder = '1';\r\n }\r\n this.setState({ phone: string, phoneErr, phoneFieldBorder, keyCode: '' });\r\n }\r\n onPhoneChanges = (value) => {\r\n let UserDetail = this.state.UserDetail;\r\n var string = value;\r\n let phoneErr = '';// 'Phone is invalid';\r\n let phoneFieldBorder = '0';// '1';\r\n if (string === \"\" || string === undefined) {\r\n phoneErr = 'Phone is required';\r\n phoneFieldBorder = '1';\r\n }\r\n UserDetail['Phone'] = string;\r\n this.setState({ UserDetail, phoneErr, phoneFieldBorder, keyCode: '' });\r\n }\r\n\r\n onPhoneChange = (event) => {\r\n let UserDetail = this.state.UserDetail;\r\n var string = event.target.value;\r\n var replacedString = string;// event.target.value.replace(/-/g, \"\").replace(\"(\", \"\").replace(\")\", \"\");\r\n var numericRegex = /^[ 0-9*()+-]*$/;///^([0-9]*)$/;\r\n var valid = numericRegex.exec(replacedString);\r\n var keyCode = this.state.keyCode;\r\n let phoneErr = '';// 'Phone is invalid';\r\n let phoneFieldBorder = '0';// '1';\r\n\r\n if (valid) {\r\n string = replacedString;\r\n // var regex = CONFIG.PhoneRegex;\r\n // var match = regex.exec(string);\r\n // if (match) {\r\n // match.shift();\r\n // match[0] = \"(\" + match[0] + \")\";\r\n // string = match.join(\"-\");\r\n phoneErr = '';\r\n phoneFieldBorder = '0';\r\n // }\r\n } else {\r\n if (keyCode !== 8 && keyCode !== 46) {\r\n string = this.state.UserDetail.Phone;\r\n }\r\n }\r\n\r\n if (string === \"\") {\r\n phoneErr = 'Phone is required';\r\n phoneFieldBorder = '1';\r\n }\r\n UserDetail['Phone'] = string;\r\n this.setState({ UserDetail, phoneErr, phoneFieldBorder, keyCode: '' });\r\n }\r\n\r\n //Payment Checkbox\r\n checkPayTerms() {\r\n this.setState({ checkItOut: !this.state.checkItOut });\r\n }\r\n\r\n //Snack Close\r\n snackHandleclose = (event, reason) => {\r\n if (reason === 'clickaway') {\r\n return;\r\n }\r\n this.setState({ snackOpen: false });\r\n };\r\n\r\n // Terms and Conditions Dialog\r\n handleTermsOpen = () => {\r\n this.setState({\r\n terms: true,\r\n });\r\n };\r\n\r\n handleTermsClose = () => {\r\n this.setState({ terms: false });\r\n };\r\n\r\n //Stepper Dialog \r\n modal_toggle(dialog_typ) {\r\n let total_value = this.state.total_value;\r\n let modalValid = true;\r\n let UserDetail = this.state.UserDetail;\r\n if (dialog_typ === '1') {\r\n total_value = this.state.p_singleMarket[0].regularPrice;\r\n }\r\n else if (dialog_typ === '0') {\r\n modalValid = true;\r\n }\r\n else {\r\n\r\n let nos = UserDetail.TempNoOfStores ? parseInt(UserDetail.TempNoOfStores) : '';\r\n if (nos !== '' && nos > 0) {\r\n if (nos > 99) {\r\n dialog_typ = '4';\r\n }\r\n else {\r\n let multiMarket_price = this.state.p_multiMarket.filter(function (data) {\r\n return nos <= data.noOfStores && data.userType === 1\r\n });\r\n total_value = multiMarket_price[0].regularPrice * nos;\r\n modalValid = true;\r\n this.setState({ multiMarket_price });\r\n }\r\n\r\n }\r\n else {\r\n modalValid = false;\r\n let msg = nos === 0 ?\r\n 'Please Enter Valid Market Count' : 'Please Enter Your Market Count';\r\n this.setState({ snackOpen: true, snackMSg: msg });\r\n }\r\n }\r\n\r\n if (modalValid) {\r\n if (dialog_typ === '4') {\r\n this.setState(\r\n prevState => ({\r\n dialogbox2: !prevState.dialogbox2, dialogcnt: dialog_typ, total_value, UserDetail\r\n }));\r\n } else {\r\n this.setState(\r\n prevState => ({\r\n modal: !prevState.modal, dialogcnt: dialog_typ, total_value, UserDetail\r\n }));\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n //while form submit in multimarket home card\r\n formsub_modal_toggle(e) {\r\n e.preventDefault();\r\n let total_value = this.state.total_value;\r\n let modalValid = true;\r\n let UserDetail = this.state.UserDetail;\r\n let dialog_typ = '2';\r\n let nos = UserDetail.TempNoOfStores ? parseInt(UserDetail.TempNoOfStores) : '';\r\n if (nos !== '' && nos > 0) {\r\n if (nos > 99) {\r\n dialog_typ = '4';\r\n }\r\n else {\r\n let multiMarket_price = this.state.p_multiMarket.filter(function (data) {\r\n return nos <= data.noOfStores && data.userType === 1\r\n });\r\n total_value = multiMarket_price[0].regularPrice * nos;\r\n modalValid = true;\r\n this.setState({ multiMarket_price });\r\n }\r\n\r\n }\r\n else {\r\n modalValid = false;\r\n let msg = nos === 0 ?\r\n 'Please Enter Valid Market Count' : 'Please Enter Your Market Count';\r\n this.setState({ snackOpen: true, snackMSg: msg });\r\n }\r\n\r\n if (modalValid) {\r\n if (dialog_typ === '4') {\r\n this.setState(\r\n prevState => ({\r\n dialogbox2: !prevState.dialogbox2, dialogcnt: dialog_typ, total_value, UserDetail\r\n }));\r\n } else {\r\n this.setState(\r\n prevState => ({\r\n modal: !prevState.modal, dialogcnt: dialog_typ, total_value, UserDetail\r\n }));\r\n }\r\n }\r\n }\r\n\r\n handleBlur() {\r\n this.ValidateCard();\r\n }\r\n\r\n ValidateCard() {\r\n let formvalid = false;\r\n if (!this.state.PaymentDetail.cardNumber || !this.state.PaymentDetail.SecurityCode || !this.state.PaymentDetail.expiry) {\r\n this.setState({ errCard: \"Please enter missing card details\" })\r\n }\r\n else if (this.state.PaymentDetail.expiry) {\r\n //Expiry date check for Card\r\n var getPaymonthyear = this.state.PaymentDetail.expiry.toString().split('/');\r\n let ExpiryMonth = getPaymonthyear.length > 0 ? parseInt(getPaymonthyear[0].trim()) : '';\r\n let ExpiryYear = getPaymonthyear.length > 1 ? getPaymonthyear[1].trim() : '';\r\n var CurrentMonth = new Date().getMonth() + 1;\r\n var CurrentYear = new Date().getFullYear().toString().substr(-2);\r\n if (CurrentYear > ExpiryYear) {\r\n this.setState({ errCard: 'Please enter valid expiry year' });\r\n formvalid = false;\r\n }\r\n else {\r\n if (CurrentYear === ExpiryYear) {\r\n if (CurrentMonth > ExpiryMonth || ExpiryMonth > 12) {\r\n this.setState({ errCard: 'Please enter valid expiry month' });\r\n formvalid = false;\r\n } else {\r\n if (this.state.PaymentDetail.SecurityCode) {\r\n if (this.state.PaymentDetail.SecurityCode.length === 3 || this.state.PaymentDetail.SecurityCode.length === 4) {\r\n this.setState({ errCard: '' });\r\n formvalid = true;\r\n } else {\r\n this.setState({ errCard: 'Please enter valid CVV' });\r\n formvalid = false;\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n if (ExpiryMonth > 12) {\r\n this.setState({ errCard: 'Please enter valid expiry month' });\r\n }\r\n else {\r\n if (this.state.PaymentDetail.SecurityCode) {\r\n if (this.state.PaymentDetail.SecurityCode.length === 3 || this.state.PaymentDetail.SecurityCode.length === 4) {\r\n this.setState({ errCard: '' });\r\n formvalid = true;\r\n } else {\r\n this.setState({ errCard: 'Please enter valid CVV' });\r\n formvalid = false;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return formvalid;\r\n }\r\n\r\n handleValidSubmit(event, errors, values) {\r\n\r\n let formValid = true;\r\n if (this.state.activeStep === 2) {\r\n\r\n //credit card validation\r\n formValid = this.state.isFullDiscount ? true : this.ValidateCard();\r\n\r\n let checkErr = '';\r\n if (this.state.checkItOut === false) {\r\n formValid = false;\r\n checkErr = 'Please accept terms and conditions';\r\n }\r\n this.setState({ checkErr });\r\n }\r\n //Phone number validation starts\r\n let phoneErr = '';\r\n let phoneFieldBorder = '0';\r\n if (this.state.UserDetail.Phone === undefined || this.state.UserDetail.Phone === \"\") {\r\n phoneErr = 'Phone is required';\r\n phoneFieldBorder = '1';\r\n formValid = false;\r\n } else if (this.state.UserDetail.Phone.length < CONFIG.PhoneMinLength) {\r\n //this.state.UserDetail.Phone.length != CONFIG.PhoneMaxLength) {\r\n phoneErr = 'Phone is invalid';\r\n phoneFieldBorder = '1';\r\n formValid = false;\r\n }\r\n this.setState({ phoneErr, phoneFieldBorder });\r\n //Phone number validation end\r\n\r\n //next stepper\r\n if (errors.length === 0) {\r\n // Based on radio button validation\r\n if (this.state.activeStep === 0) {\r\n if (this.state.dialogcnt === '2') {\r\n\r\n // TempNoofMarket Field Validation\r\n if (this.state.UserDetail.TempNoOfStores === undefined || this.state.UserDetail.TempNoOfStores === \"\") {\r\n formValid = false;\r\n this.setState({ snackOpen: true, snackMSg: 'Please Enter Market Count' });\r\n }\r\n else if (parseInt(this.state.UserDetail.TempNoOfStores) === 0) {\r\n formValid = false;\r\n this.setState({ snackOpen: true, snackMSg: 'Please Enter Valid Market Count' });\r\n }\r\n }\r\n }\r\n if (formValid) {\r\n this.setState({ isLoading1: true });\r\n //for next and pay button double click restrict\r\n if (this.state.activeStep === 0) {\r\n this.setState({ dblclkrest1: true });\r\n } else if (this.state.activeStep === 1) {\r\n this.setState({ dblclkrest2: true });\r\n } else if (this.state.activeStep === 2) {\r\n this.setState({ dblclkrest: true });\r\n }\r\n\r\n //For account create restriction\r\n if (this.state.activeStep !== 2) {\r\n if (this.state.activeStep === 0) {\r\n const data = {\r\n UserEmail: this.state.UserDetail.Login,\r\n RegionID: CONFIG.RegionId\r\n };\r\n axios.post(CONFIG.API_URL + 'Home/signinvalidation', data)\r\n .then(response => {\r\n let Err = '';\r\n if (response.data.message === 'No data') {\r\n this.setState(prevState => ({ activeStep: prevState.activeStep + 1, errCard: '', phoneErr: '', emailErr: '', checkErr: '' }));\r\n } else {\r\n this.setState({ emailErr: 'Email Address already exists', dblclkrest1: false, focusValue: 'focused' });\r\n const x = document.getElementById('focused');\r\n x.focus();\r\n }\r\n });\r\n }\r\n else {\r\n this.setState(prevState => ({ activeStep: prevState.activeStep + 1, errCard: '', phoneErr: '', emailErr: '', checkErr: '' }));\r\n }\r\n setTimeout(\r\n function () {\r\n this.setState({ isLoading1: false });\r\n }\r\n .bind(this), 1000\r\n );\r\n\r\n }\r\n else {\r\n\r\n let UserDetail = this.state.UserDetail;\r\n let PaymentDetail = this.state.PaymentDetail;\r\n let phoneNumber = UserDetail.Phone;\r\n /* Temp No of Stores */\r\n let countryDetails = this.state.countryData.filter(function (data) {\r\n return data.countryCode === UserDetail['BillingCountry']\r\n });\r\n UserDetail['BillingCountry'] = countryDetails[0].countryID;\r\n if (this.state.dialogcnt === '1') {\r\n UserDetail['TempNoOfStores'] = 1;\r\n }\r\n\r\n UserDetail['TempNoOfStores'] = parseInt(UserDetail['TempNoOfStores']);\r\n /* End of Temp No of Stores */\r\n\r\n /* Temp Basic No of Stores */\r\n UserDetail['TempBasicNoOfStores'] = UserDetail['TempNoOfStores'];\r\n /* End of Temp Basic No of Stores */\r\n\r\n /* Temp Plus No of Stores */\r\n UserDetail['TempPlusNoOfStores'] = 0;\r\n /* End of Temp Plus No of Stores */\r\n\r\n UserDetail['BillingPhone'] = phoneNumber.replace(/[^\\d]/g, '');\r\n UserDetail['Phone'] = phoneNumber.replace(/[^\\d]/g, '');\r\n UserDetail['BillingAddress2'] = UserDetail['BillingAddress2'] ? UserDetail['BillingAddress2'] : '';\r\n UserDetail['UserType'] = 1;\r\n UserDetail['Status'] = 1;\r\n UserDetail[\"IsReceiveEmailAlerts\"] = true;\r\n UserDetail[\"PromoID\"] = 0;\r\n UserDetail[\"LastName\"] = '';\r\n UserDetail[\"BillingState\"] = this.state.UserDetail.BillingState ? this.state.UserDetail.BillingState : '';\r\n var getPaymonthyear = this.state.isFullDiscount ? '' : PaymentDetail.expiry.toString().split('/');\r\n PaymentDetail['ExpiryMonth'] = this.state.isFullDiscount ? '' : getPaymonthyear.length > 0 ? parseInt(getPaymonthyear[0].trim()) : '';\r\n PaymentDetail['ExpiryYear'] = this.state.isFullDiscount ? '' : getPaymonthyear.length > 1 ? parseInt('20'.concat(getPaymonthyear[1].trim())) : '';\r\n UserDetail['CouponCode'] = this.state.validCoupon ? UserDetail['CouponCode'] : '';\r\n PaymentDetail['CardType'] = this.state.isFullDiscount ? '' : 'visa';\r\n PaymentDetail['IsDefault'] = true;\r\n\r\n const data = {\r\n UserDetail,\r\n PaymentDetail,\r\n \"RegionID\": CONFIG.RegionId\r\n };\r\n //console.log(data); \r\n\r\n axios.post(CONFIG.API_URL + 'subscription/add', data) //'http://52.37.198.165:1213/api/subscription/add\r\n .then(response => {\r\n this.setState(prevState => ({ activeStep: prevState.activeStep + 1, errCard: '', phoneErr: '', sucUser: response.data, checkItOut: false, isLoading1: false, checkErr: '' }));\r\n })\r\n .catch(err => {\r\n\r\n if (err.response.data.Message !== 'Payment Failed') {\r\n if (err.response.data.Message == 'User with this email address already exists.') {\r\n this.setState({ snackOpen: true, snackMSg: err.response.data.Message, errCard: '', dblclkrest: false, checkErr: '' });\r\n }\r\n else {\r\n this.setState({ errCard: err.response.data.Message, dblclkrest: false, checkErr: '' });\r\n }\r\n }\r\n else {\r\n this.setState({ snackOpen: true, snackMSg: 'Payment Failed', dblclkrest: false, errCard: '', checkErr: '' });\r\n }\r\n this.setState({ isLoading1: false });\r\n });\r\n }\r\n }\r\n }\r\n }\r\n\r\n closeModal() {\r\n this.setState({ modal: false, activeStep: 0, UserDetail: {}, PaymentDetail: {}, errCard: '', couponErr: '', emailErr: '', total_value: null, checkItOut: false, validCoupon: '', discountTotal: '', dblclkrest1: false, dblclkrest2: false, dblclkrest: false, checkErr: '', phoneErr: '', phoneFieldBorder: '', phone: '' });\r\n this.todoTextElem.form[0].value = '';\r\n }\r\n\r\n handleBack() {\r\n this.setState({ phoneErr: '', phoneFieldBorder: '', phone: '' });\r\n if (this.state.activeStep === 3 || this.state.activeStep === 0) {\r\n this.setState({ modal: false, activeStep: 0, UserDetail: {}, PaymentDetail: {}, errCard: '', checkErr: '', phoneErr: '', couponErr: '', emailErr: '', phoneFieldBorder: '0', total_value: null, checkItOut: false, validCoupon: '', discountTotal: '', dblclkrest1: false, dblclkrest2: false, dblclkrest: false });\r\n if (this.state.activeStep === 3) {\r\n\r\n let token = this.state.sucUser ? this.state.sucUser.token : ''; console.log(this.state.sucUser);\r\n if (token) {\r\n //console.log(this.state.sucUser);\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n localStorage.setItem('accessKey', token);\r\n localStorage.setItem('getNames', this.state.sucUser.firstName);\r\n localStorage.setItem('isPaid', this.state.sucUser.isPaid);\r\n localStorage.setItem('tempNoStoreCount', this.state.sucUser.tempNoOfStores);\r\n localStorage.setItem('instructionMsg', this.state.sucUser.instructionMsg);\r\n localStorage.setItem('userType', this.state.sucUser.userType);\r\n localStorage.setItem('userStatus', this.state.sucUser.status);\r\n localStorage.setItem('userCdate', this.state.createdDate);\r\n if (this.state.sucUser.isPaid === 0) {\r\n const { from } = this.props.location.state || { from: { pathname: \"/my-account/\" } };\r\n this.props.history.push(from);\r\n }\r\n else {\r\n const { from } = this.props.location.state || { from: { pathname: \"/my-market/\" } };\r\n this.props.history.push(from);\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n if (this.state.activeStep === 1) {\r\n let UserDetail = this.state.UserDetail;\r\n UserDetail['CouponCode'] = '';\r\n this.setState({ validCoupon: '', discountTotal: '', UserDetail });\r\n }\r\n this.setState({ activeStep: this.state.activeStep - 1, errCard: '', checkErr: '', couponErr: '', emailErr: '', phoneFieldBorder: '0', dblclkrest1: false, dblclkrest2: false, dblclkrest: false });\r\n }\r\n this.todoTextElem.form[0].value = '';\r\n }\r\n\r\n handleChange(e) {\r\n\r\n let fields = this.state.activeStep === 2 ? this.state.PaymentDetail : this.state.UserDetail;\r\n\r\n let inputValid = true;\r\n\r\n\r\n\r\n if (e.target.name === 'Login') {\r\n this.setState({ focusValue: '', emailErr: '' });\r\n }\r\n\r\n //Check for No of stores below 100\r\n if (e.target.name === 'TempNoOfStores') {\r\n e.target.value = e.target.value.replace(/[^\\w\\s]/gi, \"\");\r\n if (e.target.value.length > 3) {\r\n e.target.value = e.target.value.substring(0, Math.min(e.target.value.length, 3));\r\n }\r\n\r\n // if (this.state.modal === true) {\r\n // if (e.target.value.length > 2) {\r\n // inputValid = false;\r\n // this.setState({ snackOpen: true, snackMSg: 'Your Market Count Should be Below 100' });\r\n // }\r\n // }\r\n // else {\r\n // //For market count restrict below 1000\r\n // if (e.target.name === 'TempNoOfStores') {\r\n // if (e.target.value.length > 3) {\r\n // e.target.value = e.target.value.substring(0, Math.min(e.target.value.length, 3));\r\n // }\r\n // }\r\n // }\r\n }\r\n\r\n if (inputValid === true) {\r\n\r\n fields[e.target.name] = e.target.value;\r\n if (e.target.name === \"cardNumber\" || e.target.name === \"SecurityCode\" || e.target.name === \"expiry\") {\r\n this.setState({ fields, errCard: '' });\r\n } else {\r\n this.setState({\r\n fields\r\n });\r\n }\r\n\r\n }\r\n if (this.state.UserDetail.BillingState !== undefined && this.state.UserDetail.BillingState !== '' && e.target.name === 'BillingState') {\r\n //spliting the country code from state id\r\n var Billing_state = e.target.value.toString().split(',');\r\n var sc_code = Billing_state.length > 0 ? Billing_state[1].trim() : '';\r\n var s_code = Billing_state.length > 0 ? Billing_state[0].trim() : '';\r\n\r\n // State's country code based country details\r\n let countryDetails = this.state.countryData.filter(function (data) {\r\n return data.countryCode === sc_code\r\n });\r\n\r\n //Adding Country name\r\n fields['BillingCountry'] = countryDetails[0].countryCode;\r\n this.setState({ fields, stateAbb: s_code === \"England\" ? '' : s_code });\r\n }\r\n // Country based state;\r\n if (this.state.UserDetail.BillingCountry !== undefined && this.state.UserDetail.BillingCountry !== '' && e.target.name === 'BillingCountry') {\r\n //spliting the country code from state id\r\n var sc_code = e.target.value;\r\n\r\n let countryDetails = this.state.countryData.filter(function (data) {\r\n return data.countryCode === sc_code\r\n });\r\n // State's country code based country details\r\n let stateDetails = this.state.stateData.filter(function (data) {\r\n return data.countryCode === sc_code\r\n });\r\n //Adding Country name\r\n fields['BillingCountry'] = stateDetails.length > 0 ? countryDetails[0].countryCode : '';\r\n fields['BillingState'] = '';\r\n fields['BillingCountryCode'] = countryDetails[0] !== undefined && countryDetails.length > 0 ? countryDetails[0].countryCode : '';\r\n this.state.UserDetail.BillingState = '';\r\n\r\n this.state.UserDetail.BillingCountryCode = countryDetails[0] !== undefined && countryDetails.length > 0 ? countryDetails[0].countryCode === \"England\" ? \"GB\" : countryDetails[0].countryCode : '';\r\n this.setState({ fields, stateAbb: sc_code === \"England\" ? '' : sc_code, filteredState: stateDetails, showState: countryDetails[0].regionId === COMMON.StorTrackRegion.UK ? false : true });\r\n }\r\n //Multi Market Store Based on TempNoOfStores Calculation\r\n let nos = 0;\r\n if (this.state.dialogcnt === '2' && e.target.name === 'TempNoOfStores') {\r\n\r\n nos = this.state.UserDetail.TempNoOfStores && this.state.UserDetail.TempNoOfStores !== '0' ? parseInt(this.state.UserDetail.TempNoOfStores) : 0;\r\n let multiMarket_price = this.state.p_multiMarket.filter(function (data) {\r\n return nos <= data.noOfStores && data.userType === 1\r\n });\r\n\r\n let base_total1 = multiMarket_price[0].regularPrice * nos;\r\n if (this.state.UserDetail.TempPlusNoOfStores !== undefined && this.state.UserDetail.TempPlusNoOfStores !== '') {\r\n base_total1 = base_total1 + (this.state.UserDetail.TempPlusNoOfStores * 20);\r\n }\r\n\r\n this.setState({ total_value: base_total1, multiMarket_price });\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n localStorage.clear();\r\n if (!localStorage.getItem('accessKey') || ((document.location.origin + '/') === document.location.href)) {\r\n var Tawk_API = Tawk_API || {}, Tawk_LoadStart = new Date();\r\n (function () {\r\n var s1 = document.createElement(\"script\"), s0 = document.getElementsByTagName(\"script\")[0];\r\n s1.async = true;\r\n s1.src = '//js.hs-scripts.com/4297816.js';//'https://embed.tawk.to/5bbe622408387933e5bacf9e/default';\r\n s1.charset = 'UTF-8';\r\n s1.setAttribute('crossorigin', '*');\r\n s0.parentNode.insertBefore(s1, s0);\r\n })();\r\n }\r\n this.setState({\r\n curSymb: CONFIG.Currency_Symbol\r\n })\r\n //Region\r\n // axios.get(CONFIG.API_URL + 'home/region')\r\n // .then(response => {\r\n // let curSymb = response.data.region.currencySymbol;\r\n // this.setState({\r\n // curSymb\r\n // })\r\n // })\r\n // .catch(err => {\r\n // this.setState({ isLoading1: false });\r\n // });\r\n\r\n //Price Lisiting\r\n // axios.get(CONFIG.API_URL + 'Home/getprice')\r\n axios.get(CONFIG.API_URL + 'Home/getprice/' + CONFIG.RegionId)\r\n .then(response => {\r\n let priceData = response.data.prices.priceInformation;\r\n\r\n let singleMarket = priceData.filter(function (data) {\r\n return data.name === \"Single market\"\r\n });\r\n\r\n let multiMarket = priceData.filter(function (data) {\r\n return data.name === \"Multi-Market\"\r\n });\r\n\r\n this.setState({\r\n singleMarket, multiMarket\r\n });\r\n })\r\n .catch(err => {\r\n this.setState({ isLoading1: false });\r\n });\r\n\r\n //Price Calculation Lisiting \r\n // axios.get(CONFIG.API_URL + 'Home/getpricecalculation')\r\n axios.get(CONFIG.API_URL + 'Home/getpricecalculation/' + CONFIG.RegionId)\r\n .then(response => {\r\n let priceData = response.data.prices.priceList;\r\n\r\n let p_singleMarket = priceData.filter(function (data) {\r\n return data.userType === 1 && data.noOfStores === 1\r\n });\r\n\r\n let p_multiMarket = priceData.filter(function (data) {\r\n return data.userType === 1\r\n })\r\n\r\n this.setState({\r\n p_singleMarket, p_multiMarket\r\n });\r\n })\r\n .catch(err => {\r\n this.setState({ isLoading1: false });\r\n });\r\n\r\n //State and Country\r\n // axios.get(CONFIG.API_URL + 'home/lookupdata')\r\n axios.get(CONFIG.API_URL + 'home/lookupdata/' + CONFIG.RegionId + '/' + 1)\r\n .then(response => {\r\n let stateData = response.data.lookups.statesList;\r\n let countryData = response.data.lookups.countryList;\r\n //To know how many Countries in statesList data\r\n // let StateCountryCount = stateData.filter(data => {\r\n // return data.stateID === '';\r\n // }).length;\r\n\r\n this.setState({\r\n stateData, countryData\r\n });\r\n })\r\n .catch(err => {\r\n this.setState({ isLoading1: false });\r\n });\r\n\r\n }\r\n\r\n freetrialhandleClick() {\r\n this.props.history.push({ pathname: \"/requesttrial\" });\r\n }\r\n\r\n CouponApply() {\r\n\r\n let CouponCode = this.state.UserDetail.CouponCode;\r\n let couponValid = true;\r\n let validCoupon = this.state.validCoupon ? this.state.validCoupon : '';\r\n let userType = this.state.dialogcnt === '1' ? 1 : this.state.dialogcnt === '2' ? 1 : 4;\r\n let storeCount = this.state.dialogcnt === '1' ? 1 : this.state.dialogcnt === '2' ? this.state.UserDetail.TempNoOfStores : 999;\r\n if (CouponCode === undefined || CouponCode === '') {\r\n couponValid = false;\r\n this.setState({ couponErr: 'PromoCode is required', validCoupon: '', discountTotal: '' });\r\n }\r\n\r\n if (couponValid) {\r\n const data = {\r\n CouponCode: CouponCode,\r\n 'UserType': userType,\r\n 'StoreCount': storeCount,\r\n 'RegionID': CONFIG.RegionId\r\n };\r\n axios.post(CONFIG.API_URL + 'subscription/couponcode', data)\r\n .then(response => {\r\n let discountTotal = response.data.isFixedPrice == 0 ? this.state.total_value - ((this.state.total_value / 100) * response.data.discountPercentage) : response.data.fixedPrice && response.data.fixedPrice != null ? response.data.fixedPrice * response.data.storeCount : 'N/A';\r\n // let discountTotal = this.state.total_value - ((this.state.total_value / 100) * response.data.discountPercentage);\r\n discountTotal = discountTotal.toFixed(2);\r\n let decimalCount = discountTotal.toString().split('.');\r\n discountTotal = !decimalCount[1] ? discountTotal + '.00' : decimalCount[1].length === 1 ? discountTotal + '0' : discountTotal;\r\n let isDiscount = discountTotal === \"0.00\" ? true : false;\r\n // //Decimal Number Conversion \r\n // let checkDigit = discountTotal.toString().split('.');\r\n // let ret = \"\";\r\n // let i = 0;\r\n // if (discountTotal.toString().indexOf(\".\") == -1) {\r\n // discountTotal = discountTotal;\r\n // } else {\r\n // if (checkDigit == '00') {\r\n // discountTotal = checkDigit.trim();\r\n // }\r\n // else {\r\n // if (checkDigit.length == 2) {\r\n // ret += checkDigit[0] + \".\";\r\n // for (i = 0; i < checkDigit.length; i++) {\r\n // if (i >= checkDigit[1].length)\r\n // ret += '0';\r\n // else\r\n // ret += checkDigit[1][i];\r\n // }\r\n // }\r\n // else if (checkDigit.length == 1) {\r\n // ret += checkDigit[0] + \".\";\r\n // for (i = 0; i < checkDigit.length; i++) {\r\n // ret += '0'\r\n // }\r\n // }\r\n // ret = ret.toString();\r\n // discountTotal = ret;\r\n // }\r\n // }\r\n\r\n this.setState({ isFullDiscount: isDiscount, discountTotal, couponErr: '', validCoupon: CouponCode });\r\n })\r\n .catch(err => {\r\n console.log(err)\r\n if (err.response.data.Message === \"The coupon code you've entered has already expired!\") {\r\n this.setState({ couponErr: 'Expired PromoCode', validCoupon: '', discountTotal: '' });\r\n }\r\n else {\r\n this.setState({ couponErr: 'Invalid Promo Code', validCoupon: '', discountTotal: '' });\r\n }\r\n });\r\n }\r\n\r\n\r\n }\r\n\r\n multpleLocationSubmit(event, errors, values) {\r\n let formValid = true;\r\n\r\n //Phone number validation starts\r\n let phoneErr = '';\r\n let phoneFieldBorder = '0';\r\n if (this.state.phone === \"\") {\r\n\r\n phoneErr = 'Phone is required';\r\n phoneFieldBorder = '1';\r\n formValid = false;\r\n } else if (this.state.phone.length < CONFIG.PhoneMinLength) {\r\n //(this.state.phone.length != CONFIG.PhoneMaxLength) {\r\n phoneErr = 'Phone is invalid';\r\n phoneFieldBorder = '1';\r\n formValid = false;\r\n }\r\n let noofstores = values.noofstores;\r\n\r\n this.setState({ phoneErr, phoneFieldBorder, noofstores });\r\n\r\n //Phone number validation end\r\n\r\n\r\n if (errors.length > 0) {\r\n formValid = false;\r\n }\r\n if (formValid) {\r\n if (errors.length > 0) {\r\n console.log(errors);\r\n }\r\n else {\r\n let data = {\r\n \"fName\": values.fName.trim(),\r\n \"lName\": values.lName.trim(),\r\n \"company\": values.company.trim(),\r\n \"phone\": this.state.phone.replace(/[^\\d]/g, ''),\r\n \"email\": values.email.trim(),\r\n \"noofstores\": values.noofstores ? values.noofstores : this.state.noofstores,\r\n \"RegionID\": CONFIG.RegionId\r\n }\r\n this.setState({ isLoading: true });\r\n axios.post(CONFIG.API_URL + 'subscription/getquote', data)\r\n .then(res => {\r\n\r\n this.myFormRef && this.myFormRef.reset();\r\n let msg = \"Thank you for submitting your request. We will contact you shortly regarding your 100+ subscription request.\";\r\n if (this.state.modal === true) {\r\n this.setState(prevState => ({ dialogbox2: !prevState.dialogbox2, snackOpen: true, dialogcnt: '2', snackMSg: msg, phoneErr: '', phoneFieldBorder: '', phone: '' }));\r\n }\r\n else {\r\n this.setState(prevState => ({ dialogbox2: !prevState.dialogbox2, snackOpen: true, snackMSg: msg, phoneErr: '', phoneFieldBorder: '', phone: '' }));\r\n }\r\n\r\n this.todoTextElem.form[0].value = '';\r\n // this.modal_toggle('5');\r\n //this.setState( prevState =>({ modal :!prevState.modal}));\r\n // alert(res.data);\r\n })\r\n .catch(err => {\r\n // this.myFormRef && this.myFormRef.reset();\r\n // alert(err.response.data.Message);\r\n let msg = err.response.data.Message;\r\n this.setState({ snackOpen: true, snackMSg: msg });\r\n });\r\n }\r\n }\r\n\r\n }\r\n\r\n handleClosedb2() {\r\n if (this.state.modal === true) {\r\n this.setState({ dialogbox2: false, phoneErr: '', phoneFieldBorder: '', phone: '', dialogcnt: '2' });\r\n }\r\n else {\r\n this.setState({ dialogbox2: false, phoneErr: '', phoneFieldBorder: '', phone: '' });\r\n }\r\n }\r\n\r\n resetAllValues() {\r\n this.myFormRef && this.myFormRef.reset();\r\n this.setState({ phoneErr: '', phoneFieldBorder: '', phone: '' });\r\n }\r\n postalCodeValidation = (e) => {\r\n var code = ('charCode' in e) ? e.charCode : e.keyCode;\r\n if (!(code == 32) && // space\r\n !(code > 47 && code < 58) && // numeric (0-9)\r\n !(code > 64 && code < 91) && // upper alpha (A-Z)\r\n !(code > 96 && code < 123)) { // lower alpha (a-z)\r\n e.preventDefault();\r\n }\r\n }\r\n render() {\r\n document.title = 'StorTrack: Self-storage market pricing data';\r\n const steps = getSteps();\r\n const { isFullDiscount, dialogcnt, isLoading1, stateData, StateCountryCount, singleMarket, multiMarket, p_singleMarket, multiMarket_price, p_multiMarket, total_value, snackMSg, snackOpen, stateAbb, curSymb, countryData, filteredState, showState } = this.state;\r\n const price_title = dialogcnt === '1' ? p_singleMarket[0].regularPrice : multiMarket_price !== undefined ? this.state.UserDetail.TempNoOfStores ? multiMarket_price[0].regularPrice : 0 : 0;\r\n const marketName = dialogcnt === '1' ? 'Single Market' : 'Multi Market';\r\n\r\n //for decimal values restriction\r\n /* for market price*/\r\n var Pricedet = this.state.dialogcnt === '1' ? p_singleMarket[0].regularPrice : this.state.dialogcnt === '2' ? multiMarket_price[0].regularPrice : '';\r\n var decPricedet = Pricedet.toString().split('.');\r\n let subPrice = !decPricedet[1] ? Pricedet + '.00' : decPricedet[1].length === 1 ? Pricedet + '0' : Pricedet;\r\n\r\n /* for total value */\r\n var dectotVal = total_value && total_value !== null ? total_value.toString().split('.') : '';\r\n let dtotal_value = !dectotVal[1] ? total_value + '.00' : dectotVal[1].length === 1 ? total_value + '0' : total_value;\r\n\r\n return (\r\n
\r\n {isLoading1 ?
: ''}\r\n
\r\n \r\n

\r\n Whether you are a single market operator, a multi-market
operator or a developer/investor, we have the right solution for you.\r\n

\r\n
\r\n Sign up for the most powerful market analysis tool in self-storage\r\n
\r\n \r\n \r\n\r\n \r\n {CONFIG.RegionId !== COMMON.StorTrackRegion.UK ?\r\n \r\n
\r\n \r\n\r\n \r\n
\r\n

7-Day Free Trial

\r\n
\r\n
Get market insights for free
\r\n
\r\n \r\n

7-day access to a market with a 10-mile radius. Explore all pricing, inventory, and market data without obligation. Dive into valuable insights and make informed decisions with ease.

\r\n
\r\n
\r\n \r\n\r\n \r\n \r\n
\r\n : ''}\r\n \r\n
\r\n \r\n \r\n
\r\n

Single Market

\r\n
{singleMarket ? : curSymb + '0'}/month
\r\n
\r\n
For single-store operators
\r\n {/*
\r\n
\r\n {singleMarket ? : curSymb + '0'}\r\n
\r\n
\r\n per month\r\n
\r\n
*/}\r\n
\r\n \r\n

Full access to all Optimize features and functions tailored to your market. Stay ahead with up-to-date competitive data on pricing and inventory. Enjoy hassle-free monthly billing with easy cancellation.

\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n

Multiple Markets

\r\n
As low as {multiMarket ? : curSymb + '0'} per market/month
\r\n
\r\n
For multi-store operators
\r\n {/*
\r\n
\r\n as low as {multiMarket ? : curSymb + '0'}\r\n
\r\n
\r\n per market/per month\r\n
\r\n
*/}\r\n
\r\n \r\n

Perfect for operators managing multiple markets. Enjoy access to all features and functions per market. Stay ahead with real-time competitive data on pricing and inventory. Monthly billing with hassle-free cancellation.

\r\n
\r\n
\r\n I have this.todoTextElem = el} type=\"number\" maxLength=\"3\" name=\"TempNoOfStores\" values={this.state.UserDetail.TempNoOfStores || null} onChange={this.handleChange} className=\"count-type\" /> markets\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n {dialogcnt === '0' ?\r\n
\r\n

Request a Free Trial

\r\n \r\n \r\n \r\n
\r\n :\r\n
\r\n Set-up Your Optimize Account\r\n \r\n \r\n \r\n \r\n {steps.map((label, index) => (\r\n \r\n index ? 'MuiStepIcon-completed-cx' : ''}\r\n completed={false}\r\n >{label}\r\n \r\n ))}\r\n \r\n
\r\n }\r\n
\r\n \r\n {dialogcnt === '0' ?\r\n
\r\n Get 7 days of access to StorTrack OPTIMIZE for one market.\r\n Upgrade to a single or multiple market subscription at any time.\r\n Please note, if at the end of your trial you decide not to continue with a paid subscription, you could lose any saved searches. \r\n Click here to complete a request form, and upon approval we will activate your free trial access. No credit card required. \r\n \r\n \r\n \r\n \r\n \r\n
\r\n :\r\n this.state.activeStep === steps.length ? (\r\n
\r\n All steps completed\r\n \r\n
\r\n ) : (\r\n
\r\n {this.state.activeStep === 0 ?\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n Your StorTrack Optimize Subscription {/*is {} */}\r\n \r\n \r\n
\r\n {dialogcnt === '2' ?\r\n \r\n Quote for market(s), {this.state.UserDetail.TempNoOfStores ? : curSymb + '0'} monthly/market\r\n \r\n :\r\n ''\r\n }\r\n
\r\n
\r\n \r\n Monthly Subscription total: {total_value !== null ? : curSymb + '0'}\r\n \r\n \r\n Total due today: {total_value !== null ? : curSymb + '0'}\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n Here's what you will get, everything you need to Optimize your pricing and performance!\r\n \r\n \r\n Define your competitive territory using {(CONFIG.RegionId == 2) || (CONFIG.RegionId == 4) ? 'kilometre' : 'miles'} radius, postal codes or city name\r\n \r\n \r\n Direct like-for-like market pricing comparison charts and graphs at the unit type level\r\n \r\n \r\n Up-to-date pricing across the whole competitive market\r\n \r\n \r\n Inventory change analysis - see when units are taken off market\r\n \r\n \r\n Historical pricing and inventory graphs for in-depth analysis\r\n \r\n {CONFIG.RegionId === 1 ? \r\n Also includes the new Marketing Score analysis - see how your competitors are marketing themselves\r\n : ''}\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n Enter Account Details\r\n \r\n \r\n \r\n \r\n { this.nameInput = input; }}\r\n />\r\n {this.state.emailErr}\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n Enter Company and Contact Details\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n {/* \r\n \r\n {this.state.phoneErr}\r\n */}\r\n \r\n \r\n \r\n {this.state.phoneErr}\r\n \r\n \r\n \r\n\r\n \r\n \r\n
\r\n \r\n \r\n Go Back\r\n \r\n {this.state.UserDetail.TempNoOfStores > 99 ?\r\n \r\n :\r\n \r\n }\r\n\r\n \r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n :\r\n this.state.activeStep === 1 ?\r\n
\r\n \r\n \r\n \r\n \r\n \r\n Company and Contact Details\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.state.UserDetail.Company ?\r\n \r\n \r\n \r\n \r\n : ''}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Add Billing Address\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* {CONFIG.RegionId === MatchingCountryCode.UK_RID ? '':\r\n \r\n \r\n \r\n \r\n {stateData ? stateData.map((state) =>\r\n state.stateID === '' && StateCountryCount <= 1 ? '' :\r\n \r\n ) : ''}\r\n \r\n \r\n } */}\r\n \r\n \r\n \r\n \r\n {countryData && countryData.length > 0 ? countryData.map((state) => {\r\n if (state.country !== \"Scotland\" && state.country !== \"Wales\" && state.country !== \"Northern Ireland\")\r\n return (\r\n //state.stateID !== '' ? \r\n \r\n // :''\r\n )\r\n }) : ''}\r\n \r\n \r\n {filteredState && filteredState.length > 0 && showState ?\r\n \r\n \r\n \r\n \r\n {filteredState ? filteredState.filter(state => state.stateID !== '').map((state) => {\r\n return (\r\n //state.stateID !== '' ? \r\n \r\n // :''\r\n )\r\n }) : ''}\r\n \r\n \r\n : ''}\r\n 0 && showState === true ? 6 : 12} className={CONFIG.RegionId === MatchingCountryCode.UK_RID ? \"postal-code-uk left-padding-a-m\" : \"left-padding-a-m\"}>\r\n \r\n \r\n \r\n {/* {CONFIG.RegionId === MatchingCountryCode.UK_RID ? '':\r\n \r\n \r\n \r\n \r\n } */}\r\n\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n Your Subscription Details\r\n \r\n\r\n \r\n {dialogcnt === '1' ? '1' : this.state.UserDetail.TempNoOfStores} market(s) at monthly\r\n \r\n\r\n \r\n Monthly Subscription total: {total_value !== null ? : curSymb + '0'}\r\n \r\n\r\n \r\n \r\n Promo code:\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n {this.state.couponErr}\r\n
\r\n \r\n Total due today: {total_value !== null ? : ''} {this.state.discountTotal !== '' && this.state.discountTotal !== undefined ? : ''}\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n\r\n \r\n Go Back\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
:\r\n this.state.activeStep === 2 ?\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n Billing Address\r\n \r\n \r\n {this.state.UserDetail.BillingAddress || ''},\r\n \r\n {this.state.UserDetail.BillingAddress2 !== undefined && this.state.UserDetail.BillingAddress2 !== '' ?\r\n \r\n {this.state.UserDetail.BillingAddress2 + ',' || ''}\r\n \r\n : ''}\r\n \r\n {this.state.UserDetail.BillingCity || ''}{stateAbb ? ', ' + stateAbb : ''} {this.state.UserDetail.BillingZipCode || ''}\r\n \r\n
\r\n
\r\n \r\n Add Payment Details\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.state.errCard}\r\n \r\n \r\n
\r\n {/* I Agree to StorTrack's Terms} name=\"checkItOut\" onClick={this.checkPayTerms.bind(this)} validate={{\r\n required: { value: true, errorMessage: 'Field is required' }\r\n }} value={this.state.checkItOut} /> */}\r\n \r\n }\r\n label={I Agree to StorTrack's Terms}\r\n />\r\n {this.state.checkItOut === false ? this.state.checkErr : ''}\r\n
\r\n
\r\n
\r\n \r\n \r\n Terms of Service\r\n \r\n \r\n \r\n \r\n \r\n Effective and Last Updated: April 1, 2024\r\n\r\n This website is owned and operated by Aggregate Intelligence, Inc. (the producer of the StorTrack services) referred hereto as ‘StorTrack’. This webpage contains the Terms of Service governing your access to and use of StorTrack (the “Site”). When used in this Agreement, \"Service\" means those premium content areas of the Site which you may have been authorized to access. \r\n By submitting your completed Registration Form, and using any part of the service, you are representing that you are 18 years old or older, and that you agree to be bound by all of the terms in this Subscription Agreement. You may print and keep a copy of this Agreement. Aggregate Intelligence, Inc. may change the terms in this Subscription Agreement. When the terms are changed, we will notify you by e-mail and/or online postings. The changes will also appear in this document, which you can access at any time by selecting \"Terms of Service\" in the footer section of the site’s home page. After notification that a change in this Subscription Agreement has been posted, you agree to be bound by all of the changes.\r\n The “Effective Date” of this Agreement is the date that the person placing the order accepts the Terms by clicking ‘Accept Terms of Subscription’ during the subscription account set-up process on the Site.\r\n If you are entering into this Agreement on behalf of a company or other legal entity, you represent that you have the authority to bind such entity to this Agreement in which case the term “Client” shall refer to such entity. If you do not have such authority, or if you do not agree to the terms of this Agreement, do not accept this Agreement or use the Services. If you receive free access or a trial account for evaluation you are deemed a “Client” under this Agreement and are subject to its terms\r\n You may not use or access the Services if you are a direct competitor of StorTrack or if you are accessing or using the Services for the benefit of a direct competitor of StorTrack.\r\n \r\n PRIVACY OF INFORMATION\r\n \r\n By clicking the \"I Accept\" button, you also are agreeing that Aggregate Intelligence, Inc. may use information you provide as part of the subscription process and usage information, and provide aggregate statistical information about subscribers to advertisers, potential advertisers, and content licensors. Aggregate Intelligence, Inc. also may use the information to inform you about other products and services, unless you notify Aggregate Intelligence, Inc. that you do not wish to receive this information. Aggregate Intelligence, Inc. also may deliver additional messages about the Service to you by e-mail.\r\n As a general policy, Aggregate Intelligence, Inc. does not disclose to third parties any specific personal identifying information about you, such as your name, address, phone number, or e-mail address (\"Personal Identifying Information\"). Aggregate Intelligence, Inc. will not disclose any of your Personal Identifying Information to a third party without first notifying you and giving you an opportunity to elect not to have your Personal Identifying Information disclosed. Also, please consult our Privacy Policy .\r\n \r\n ENTERPRISE CUSTOMERS\r\n \r\n If Aggregate Intelligence, Inc. and you or your employer have manually signed a paper version of a contract governing your use of the Service, or if you or your employer subscribe to the Service pursuant to an Enterprise Subscription Agreement, the terms in that manually signed, paper document or Enterprise Subscription Agreement are not amended by, and supersede, terms in this Subscription Agreement.\r\n \r\n FEES AND PAYMENTS\r\n \r\n You can always find the current Subscription Fees and charges posted with the product information. Your subscription will continue for the term specified and will renew automatically until terminated by Aggregate Intelligence, Inc. or until you notify Aggregate Intelligence, Inc. by electronic mail of your decision to terminate your subscription or cancel the subscription from the “My Account” section after Signing In. Your default payment method will be charged for the total amount for any subscription package selected during the Checkout process. All fees and charges are non-refundable.\r\n All fees and charges incurred in connection with your username and/or password will be billed to the default payment method you designate during the registration process for the Service or the electronic information service, which provides you access to the Service. If there are any annual, or similar periodic fees for your Service subscription, these fees will be billed automatically to your default payment method at the start of the period, and at the start of each renewal period, unless you terminate your subscription before the relevant period begins. If there is a problem charging your selected payment method, we may charge any other valid payment method associated with your account. You are responsible for maintaining the confidentiality of your account and password and for restricting access to your account, and you agree to accept responsibility for all activities that occur under your account or password. If you want to update your payment method, or if you believe someone has accessed the Service using your user name or password without your authorization, you must contact Aggregate Intelligence, Inc. Customer Service at the telephone numbers posted on the website or fill out the form available on the “Contact Us” page. You may also update your payment method from the “My Account” section after Signing In. You also are responsible for any fees or charges incurred to access the Service through an Internet access provider or other third-party service. YOU, AND NOT AGGREGATE INTELLIGENCE, INC., ARE RESPONSIBLE FOR PAYING ANY AMOUNTS BILLED TO YOUR PAYMENT METHOD BY A THIRD PARTY, WHICH WERE NOT AUTHORIZED BY YOU.\r\n If Aggregate Intelligence, Inc. and you or your employer has manually signed a paper version of a contract governing your use of the Service, or if you or your employer subscribe to the Service pursuant to an Enterprise Subscription Agreement, some or all of these \"Fees and Payments\" terms may not apply to you. Please contact your employer for details.\r\n \r\n COPYRIGHT AND LIMITATIONS ON USE\r\n \r\n The content available as part of the Service, other than content accessible through the Product area, is defined as \"Licensed Information\". The Licensed Information is the property of Aggregate Intelligence, Inc. or its licensors and is protected by copyright and other intellectual property laws. Licensed Information received through the Service may be displayed, reformatted and printed for your personal, non-commercial use only. You agree not to reproduce, transmit, distribute, display, sell, location, archive or publish any Licensed Information to anyone, including but not limited to others in the same company or organization, without the express prior consent of Aggregate Intelligence, Inc. with these two exceptions:\r\n 1) You may, on an occasional and irregular basis, disseminate an insubstantial portion of content retrieved from the Service, for a non-commercial purpose, without charge, and in non-electronic form, to a limited number of individuals, provided you include all copyright and other proprietary notices with such portion of the content in the same form in which the notices appear in the Service, and the phrase \"Used with permission from Aggregate Intelligence, Inc. \" To request consent for other matters, please send an e-mail to support@stortrack.com\r\n 2) Except where indicated otherwise you may e-mail your Service search results to a single e-mail address and a single individual within your company or organization The content accessible through hyperlinks within company capsules in the database is not made available to you through any contractual arrangement between Aggregate Intelligence, Inc. and third parties, but instead is made available from publicly available sources on the World Wide Web. FOR THIS REASON, AGGREGATE INTELLIGENCE, INC. DOES NOT GRANT YOU ANY RIGHT OR LICENSE WHATSOEVER WITH RESPECT TO CONTENT ACCESSIBLE THROUGH THE GUIDE. You are solely responsible for determining the extent to which the content accessible through the application may be used or distributed. Aggregate Intelligence, Inc. reserves the right to monitor the Subscriber's use of all premium content, services, and tools to ensure the Subscriber's compliance with the Terms and Conditions. If it is determined that the Subscriber is not in compliance with these Terms and Conditions, Aggregate Intelligence, Inc. reserves the right to take such action as is deemed necessary, including, but not limited to, suspension or termination of the Subscriber's account. The Subscriber acknowledges that such monitoring of use may include determining whether or not the Service is accessed under the account from IP addresses, monitoring the log files to determine if any computer programs are being run in order to access data from the site, as well as noting excessive use from Subscription accounts. Only one individual may access the Service at the same time using the same user name or password, unless agreed otherwise by Aggregate Intelligence, Inc.\r\n Aggregate Intelligence, Inc. and its content licensors do not give investment advice, or advocate the purchase or sale of any security or investment.\r\n \r\n DISCLAIMER OF WARRANTIES AND LIABILITY\r\n \r\n DUE TO THE NUMBER OF SOURCES FROM WHICH CONTENT ON THE SERVICE IS OBTAINED, AND THE INHERENT HAZARDS OF ELECTRONIC DISTRIBUTION, THERE MAY BE DELAYS, OMISSIONS OR INACCURACIES IN SUCH CONTENT AND THE SERVICE. AGGREGATE INTELLIGENCE, INC. AND ITS AFFILIATES, AGENTS AND LICENSORS CANNOT AND DO NOT WARRANT THE ACCURACY, COMPLETENESS, CURRENTNESS, NONINFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE OF THE CONTENT AVAILABLE THROUGH THE SERVICE OR THE SERVICE ITSELF. AGGREGATE INTELLIGENCE, INC. AND ITS AFFILIATES, AGENTS OR LICENSORS SHALL NOT BE LIABLE TO YOU OR ANYONE ELSE FOR ANY LOSS OR DAMAGE, OTHER THAN DEATH OR PERSONAL INJURY RESULTING DIRECTLY FROM USE OF THE SERVICE, CAUSED IN WHOLE OR PART BY CONTINGENCIES BEYOND THEIR CONTROL OR NEGLIGENCE IN PROCURING, COMPILING, INTERPRETING, REPORTING OR DELIVERING THE SERVICE AND ANY CONTENT THROUGH THE SERVICE. IN NO EVENT WILL AGGREGATE INTELLIGENCE, INC., ITS AFFILIATES, AGENTS OR LICENSORS BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DECISION MADE OR ACTION TAKEN BY YOU IN RELIANCE ON SUCH CONTENT. AGGREGATE INTELLIGENCE, INC. AND ITS AFFILIATES, AGENTS AND LICENSORS SHALL NOT BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DAMAGES OTHER THAN DIRECT DAMAGES (INCLUDING, WITHOUT LIMITATION, CONSEQUENTIAL, SPECIAL, INCIDENTAL, INDIRECT, OR SIMILAR DAMAGES) EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. YOU AGREE THAT THE LIABILITY OF AGGREGATE INTELLIGENCE, INC., ITS AFFILIATES, AGENTS AND LICENSORS, IF ANY, ARISING OUT OF ANY KIND OF LEGAL CLAIM (WHETHER IN CONTRACT, TORT OR OTHERWISE) IN ANY WAY CONNECTED WITH THE SERVICE OR THE CONTENT IN THE SERVICE SHALL NOT EXCEED THE AMOUNT YOU PAID TO AGGREGATE INTELLIGENCE, INC. FOR THE USE OF THE SERVICE IN THE 12 MONTHS IMMEDIATELY PRECEDING THE EVENT GIVING RISE TO SUCH CLAIM.\r\n \r\n ADDITIONAL LEGAL TERMS AND CONDITIONS\r\n \r\n You are responsible for all statements made and acts or omissions that occur while your password is being used. You may not use the Service for any unlawful purpose. Aggregate Intelligence, Inc. may refuse to grant you a user name that impersonates someone else, is protected by trademark or other proprietary right law, or is vulgar or otherwise offensive, as determined by Aggregate Intelligence, Inc.\r\n Aggregate Intelligence, Inc. may discontinue or change the Service, certain Licensed Information, or certain content within the Service or its availability to you, at any time, and you may always terminate your subscription at any time. This Agreement is personal to you, and you may not assign your rights or obligations to anyone. If any provision in this Agreement is invalid or unenforceable under applicable law, the remaining provisions will continue in full force and effect. This Agreement, your rights and obligations, and all actions contemplated by this Agreement shall be governed by the laws of the State of Michigan USA, as if the Agreement was a contract wholly entered into and wholly performed within the State of Michigan. This Agreement will not be governed by the United Nations Convention on Contracts for the International Sale of Goods.\r\n \r\n {/* \r\n
\r\n I Agree to StorTrack Terms} defaultChecked={ this.state.checkItOut } name=\"checkItOut\" onClick={this.checkPayTerms.bind(this)} validate={{\r\n required: { value: true, errorMessage: 'Field is Required' }\r\n }} value={this.state.PaymentDetail.checkItOut}/>\r\n
\r\n
\r\n
*/}\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n Your Subscription Details\r\n \r\n\r\n \r\n {dialogcnt === '1' ? '1' : this.state.UserDetail.TempNoOfStores} market(s) at monthly\r\n \r\n\r\n \r\n Monthly Subscription total: {total_value !== null ? : ''}\r\n \r\n\r\n \r\n Promo code: {this.state.validCoupon ? {this.state.validCoupon} : '----'}\r\n \r\n\r\n \r\n Total due today: {total_value !== null ? : ''} {this.state.discountTotal !== '' && this.state.discountTotal !== undefined ? : ''}\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n\r\n \r\n Go Back\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n :\r\n this.state.activeStep === 3 ?\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n Thank you for subscribing!\r\n \r\n \r\n You are now signed up to an Optimize subscription\r\n \r\n \r\n Click below to access your account and begin setting up your
\r\n market(s). Once set up, you'll have access to StorTrack's
\r\n powerful, fast and smart decision support system.\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n Questions? Contact us at {CONFIG.Toll_Free} {CONFIG.RegionId === 3 ? \"UK Direct tel:\" + CONFIG.Sales_Support : ''} or\r\n \r\n \r\n {CONFIG.Mail_Support}\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n :\r\n ''}\r\n
)}\r\n
\r\n
\r\n\r\n {/* more than 100 market */}\r\n \r\n \r\n
\r\n

Quote for StorTrack Optimize

\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n

You have requested pricing for 100 or more markets. To complete this request, please fill out and submit the form below or call us at {CONFIG.Toll_Free} {CONFIG.RegionId === 3 ? \"UK Direct tel:\" + CONFIG.Sales_Support : ''} for assistance. We will contact you soon to discuss your specific needs.

\r\n (this.myFormRef = c)}>\r\n \r\n \r\n \r\n \r\n \r\n {this.state.phoneErr}\r\n \r\n \r\n \r\n {/* */}\r\n Reset\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n {snackMSg}}\r\n action={[\r\n \r\n \r\n \r\n ]}\r\n />\r\n\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withMobileDialog()(Home); ","import React from 'react';\r\nimport { AvForm, AvField } from 'availity-reactstrap-validation';\r\nimport { HashLink as Link } from 'react-router-hash-link';\r\nimport { CONFIG } from '../../utils/config';\r\nimport axios from 'axios';\r\nimport { Button, Modal, ModalHeader, ModalBody, Collapse, CardBody, Card } from 'reactstrap';\r\nimport './Login.css';\r\n\r\nexport default class Login extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n sighinerror: '', modal: false, modal1: false, collapse: false, collapse1: true,curSymb:''\r\n };\r\n this.toggleforgetpwd = this.toggleforgetpwd.bind(this);\r\n this.togglealert = this.togglealert.bind(this);\r\n }\r\n\r\n valueChanged() {\r\n console.log('hi');\r\n this.setState({ sighinerror: '' });\r\n }\r\n componentDidMount() { \r\n localStorage.clear();\r\n window.scrollTo(0, 0);\r\n this.setState({\r\n curSymb: CONFIG.Currency_Symbol\r\n })\r\n\r\n //Region\r\n // axios.get(CONFIG.API_URL + 'home/region')\r\n // .then(response => {\r\n // let curSymb = response.data.region.currencySymbol;\r\n // this.setState({\r\n // curSymb\r\n // })\r\n // });\r\n \r\n }\r\n handleSubmit(event, errors, values) {\r\n // console.log(values);\r\n this.setState({ sighinerror: '' });\r\n if (errors.length > 0) {\r\n\r\n console.log(errors);\r\n }\r\n else {\r\n this.setState({ isLoading: true });\r\n axios.post(CONFIG.API_URL + 'account/securelogin', values)\r\n\r\n .then(res => {\r\n\r\n if (res.status === 200) {\r\n const getTokvalues = res.data;\r\n this.myFormRef && this.myFormRef.reset();\r\n //console.log(getTokvalues);\r\n this.setState({ getTokvalues });\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + getTokvalues.token;\r\n localStorage.setItem('SecretKey', getTokvalues.secureID);\r\n localStorage.setItem('accessKey', getTokvalues.token);\r\n localStorage.setItem('getNames', getTokvalues.firstName);\r\n localStorage.setItem('isPaid', getTokvalues.isPaid);\r\n localStorage.setItem('tempNoStoreCount', getTokvalues.tempNoOfStores);\r\n localStorage.setItem('instructionMsg', getTokvalues.instructionMsg);\r\n localStorage.setItem('userType', getTokvalues.userType);\r\n localStorage.setItem('userStatus', getTokvalues.status);\r\n localStorage.setItem('curSymb', CONFIG.Currency_Symbol);\r\n localStorage.setItem('userManual', getTokvalues.isManual);\r\n localStorage.setItem('userCdate', getTokvalues.createdDate);\r\n localStorage.setItem('displayMessage', getTokvalues.displayMessage);\r\n\r\n if (getTokvalues.isPaid === 0) {\r\n console.log(window.location.pathname);\r\n console.log(window.location.href);\r\n const { from } = this.props.location.state || { from: { pathname: \"/my-account/\" } };\r\n // this.props.history.push(from);\r\n // window.location.reload('http://localhost:3000/my-account/')\r\n window.top.location.href = CONFIG.OPTZ_URL+\"my-market/\";\r\n }\r\n else {\r\n const { from } = this.props.location.state || { from: { pathname: \"/my-market/\" } };\r\n // this.props.history.push(from);\r\n window.top.location.href = CONFIG.OPTZ_URL+\"my-market/\";\r\n }\r\n\r\n }\r\n\r\n })\r\n .catch(err => {\r\n this.setState({ isLoading: false });\r\n if (err.response.data.StatusCode === 400) {\r\n this.myFormRef && this.myFormRef.reset();\r\n const sighinerror = err.response.data.Message;\r\n this.setState({ sighinerror });\r\n }\r\n\r\n });\r\n\r\n }\r\n this.setState({ errors, values });\r\n\r\n }\r\n\r\n handleforgetSubmit(event, errors, values) {\r\n // const sighinsucess ='';\r\n if (errors.length > 0) {\r\n\r\n console.log(errors);\r\n }\r\n else {\r\n this.setState({ isLoading: true });\r\n const data = {\r\n Username: values.Username,\r\n \"RegionId\": CONFIG.RegionId\r\n }\r\n axios.post(CONFIG.API_URL + 'account/ForgotPassword', data)\r\n .then(res => {\r\n\r\n const issuccss = res.data;\r\n this.setState({ isLoading: false });\r\n if (issuccss === \"success\") {\r\n this.setState({ sighinsucess: [\"The password reset link has been sent to your email.\"] });\r\n this.togglealert();\r\n this.form && this.form.reset();\r\n this.setState({collapse1: true, collapse: false });\r\n }\r\n\r\n })\r\n .catch((err) => {\r\n this.setState({ isLoading: false });\r\n this.form && this.form.reset();\r\n const sighinsucess = err.response.data;\r\n this.setState({ sighinsucess });\r\n\r\n });\r\n\r\n }\r\n\r\n }\r\n togglealert() {\r\n this.setState(prevState => ({\r\n modal1: !prevState.modal1\r\n }));\r\n }\r\n toggleforgetpwd() {\r\n\r\n this.form && this.form.reset();\r\n const sighinsucess = '';\r\n this.setState({ sighinsucess });\r\n\r\n this.setState({collapse1: false, collapse: true });\r\n }\r\n toggleforgetcancel() {\r\n //this.setState(state => ({ modal: !state.modal }));\r\n this.setState({collapse1: true, collapse: false });\r\n }\r\n resetAllValues() {\r\n\r\n this.myFormRef && this.myFormRef.reset();\r\n this.setState({ sighinerror: '' });\r\n\r\n }\r\n render() {\r\n const { sighinerror, sighinsucess } = this.state;\r\n return (\r\n\r\n
\r\n
\r\n \r\n \r\n
Optimize SignIn
\r\n
\r\n (this.myFormRef = c)}>\r\n \r\n \r\n {sighinerror}\r\n
\r\n\r\n \r\n Reset\r\n Forgot Password?\r\n
\r\n \r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n

Forgot Password

\r\n

Provide your email address and we will send you a link to update your password.

\r\n
\r\n (this.form = cl)} >\r\n \r\n {sighinsucess}\r\n
\r\n \r\n \r\n Cancel\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n {sighinsucess}\r\n\r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\n","import React from 'react';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport { AvForm, AvField, AvGroup, AvInput } from 'availity-reactstrap-validation';\r\nimport { Row, Col, Button, Label, FormGroup, Modal, ModalHeader, ModalFooter, ModalBody, FormText } from 'reactstrap';\r\nimport { Link } from 'react-router-dom';\r\nimport './MyAccount.css';\r\n//import CreditCardInput from 'react-credit-card-input';\r\nimport axios from 'axios';\r\nimport { CONFIG, MatchingCountryCode } from '../../utils/config';\r\n//import { MissingCompetitor} from '../MissingCompetitor';\r\nimport CreditCardInput from 'react-credit-card-input';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport Snackbar from '@material-ui/core/Snackbar';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport CloseIcon from '@material-ui/icons/Close';\r\nimport { COMMON } from '../../utils/common';\r\nimport PhoneInput from 'react-phone-number-input/input';\r\nimport 'react-phone-number-input/style.css';\r\nimport HubspotForm from 'react-hubspot-form';\r\n\r\nexport default class MyAccount extends React.Component {\r\n\r\n constructor() {\r\n super();\r\n this.state = {\r\n open: false,\r\n editAccountModel: false,\r\n editCredit: false,\r\n focusAfterClose: true,\r\n aModel: false,\r\n alertModel: false,\r\n aModel1: false,\r\n cardName: '',\r\n cardNumber: null,\r\n expiry: null,\r\n SecurityCode: null,\r\n focusAfterClose: true,\r\n isCh: false,\r\n tot: '',\r\n updateSubscripConfirmation: false,\r\n updatePopUp: false,\r\n updatePopUp1: false,\r\n countryCurrency: '',\r\n isLoading: false,\r\n snackOpen: false,\r\n snackMsg: '',\r\n errCard: '',\r\n phoneFieldBorder: '0',\r\n phoneErr: '',\r\n phone: '',\r\n userPhone: '',\r\n curSymb: CONFIG.Currency_Symbol,\r\n phoneMaxLength: CONFIG.PhoneMaxLength,\r\n StateCountryCount: 1,\r\n countryData: [],\r\n filteredState: [],\r\n showState: true,\r\n contactSupportModal: false\r\n };\r\n this.accountModal1 = this.accountModal1.bind(this);\r\n this.handleChange = this.handleChange.bind(this);\r\n this.creditToggle = this.creditToggle.bind(this);\r\n this.accountModal = this.accountModal.bind(this);\r\n this.handleSelectChange = this.handleSelectChange.bind(this);\r\n this.toggleConfirmation = this.toggleConfirmation.bind(this);\r\n this.toggleConfirmationAccount = this.toggleConfirmationAccount.bind(this);\r\n this.toggleConfirmationBilling = this.toggleConfirmationBilling.bind(this);\r\n this.toggle = this.toggle.bind(this);\r\n this.toggleInfo = this.toggleInfo.bind(this);\r\n this.editSubAlert = this.editSubAlert.bind(this);\r\n //this.saveSubscription = this.saveSubscription.bind(this);\r\n this.ValidateCard = this.ValidateCard.bind(this);\r\n this.postalCodeValidation = this.postalCodeValidation.bind(this);\r\n this.formatPhoneNumber = this.formatPhoneNumber.bind(this);\r\n }\r\n postalCodeValidation = (e) => {\r\n var code = ('charCode' in e) ? e.charCode : e.keyCode;\r\n if (!(code == 32) && // space\r\n !(code > 47 && code < 58) && // numeric (0-9)\r\n !(code > 64 && code < 91) && // upper alpha (A-Z)\r\n !(code > 96 && code < 123)) { // lower alpha (a-z)\r\n e.preventDefault();\r\n }\r\n }\r\n editSubAlert() {\r\n // this.setState(prevState => ({ alertEditSubModel: !prevState.alertEditSubModel }));\r\n this.setState({ snackOpen: true, snackMsg: 'Please add billing details before edit the subscription' })\r\n }\r\n\r\n snackHandleclose = (event, reason) => {\r\n if (reason === 'clickaway') {\r\n return;\r\n }\r\n this.setState({ snackOpen: false });\r\n };\r\n\r\n accountModal1() {\r\n\r\n this.setState(({ aModel1 }) => ({ aModel1: !aModel1 }));\r\n }\r\n\r\n handleChange(e) {\r\n if ((e.target.value !== '' && e.target.value !== undefined) && e.target.name === 'billingCountry') {\r\n //spliting the country code from state id\r\n var sc_code = e.target.value;\r\n let countryDetails = this.state.countryData.filter(function (data) {\r\n return data.countryCode === sc_code\r\n });\r\n // State's country code based country details\r\n let stateDetails = this.state.stateData.filter(function (data) {\r\n return data.countryCode === sc_code\r\n });\r\n this.state.infoData.info.userInfo.billingCountry = stateDetails.length > 0 ? countryDetails[0].countryID : '';\r\n // this.state.infoData.info.userInfo.billingState = '';\r\n this.state.infoData.info.userInfo.billingCountryCode = countryDetails !== undefined && countryDetails.length > 0 ? countryDetails[0].countryCode : '';\r\n this.setState({ filteredState: stateDetails, showState: countryDetails[0].regionId === COMMON.StorTrackRegion.UK ? false : true });\r\n } else {\r\n if (e.target.name === 'billingCountry') {\r\n this.state.infoData.info.userInfo.billingCountry = '';\r\n this.state.filteredState = [];\r\n }\r\n }\r\n this.setState({ [e.target.name]: e.target.value, errCard: '' }, () => { this.ValidateCard() });\r\n }\r\n\r\n toggle() {\r\n this.setState(({ open }) => ({ open: !open }));\r\n }\r\n\r\n toggleInfo() {\r\n this.setState({ alertModel: false });\r\n }\r\n\r\n toggleConfirmation() {\r\n this.setState(prevState => ({\r\n updateSubscripConfirmation: !prevState.updateSubscripConfirmation\r\n }));\r\n }\r\n\r\n toggleConfirmationBilling() {\r\n this.setState(prevState => ({\r\n updatePopUp: !prevState.updatePopUp\r\n }));\r\n }\r\n\r\n toggleConfirmationAccount() {\r\n this.setState(prevState => ({\r\n updatePopUp1: !prevState.updatePopUp1\r\n }));\r\n }\r\n\r\n accountModal() {\r\n this.setState(prevState => ({\r\n aModel: !prevState.aModel\r\n }));\r\n this.updateState();\r\n }\r\n\r\n handleSelectChange({ target: { value } }) {\r\n this.setState({ focusAfterClose: JSON.parse(value) });\r\n }\r\n\r\n onPhoneChanges = (value)=>{\r\n var string = value;\r\n let phoneErr = '';// 'Phone is invalid';\r\n let phoneFieldBorder = '0';// '1';\r\n\r\n\r\n if (string === \"\") {\r\n phoneErr = 'Phone is required';\r\n phoneFieldBorder = '1';\r\n }\r\n this.setState({ phone: string, phoneErr, phoneFieldBorder, keyCode: '' }); \r\n}\r\n\r\n onPhoneChange = (event) => {\r\n var string = event.target.value;\r\n var replacedString = event.target.value;\r\n //var replacedString = event.target.value.replace(/-/g, \"\").replace(\"(\", \"\").replace(\")\", \"\");\r\n var numericRegex = /^[ 0-9*()+-]*$/;// /^([0-9]*)$/;\r\n var valid = numericRegex.exec(replacedString);\r\n var keyCode = this.state.keyCode;\r\n let phoneErr = '';// 'Phone is invalid';\r\n let phoneFieldBorder = '0';// '1';\r\n\r\n if (valid) {\r\n string = replacedString;\r\n // var regex = CONFIG.PhoneRegex;\r\n // var match = regex.exec(string);\r\n // if (match) {\r\n // match.shift();\r\n // match[0] = \"(\" + match[0] + \")\";\r\n // string = match.join(\"-\");\r\n phoneErr = '';\r\n phoneFieldBorder = '0';\r\n // }\r\n } else {\r\n if (keyCode !== 8 && keyCode !== 46) {\r\n string = this.state.phone;\r\n }\r\n }\r\n\r\n if (string === \"\") {\r\n phoneErr = 'Phone is required';\r\n phoneFieldBorder = '1';\r\n }\r\n this.setState({ phone: string, phoneErr, phoneFieldBorder, keyCode: '' });\r\n }\r\n\r\n phoneKeyPressed = (event) => {\r\n this.setState({ keyCode: event.keyCode });\r\n }\r\n\r\n creditToggle() {\r\n if (!this.state.infoData && !this.state.infoData.info.userInfo.billingAddress || !this.state.infoData && !this.state.infoData.info.userInfo.billingCity || !this.state.infoData && !this.state.infoData.info.userInfo.billingZipCode) {\r\n this.setState({ snackOpen: true, snackMsg: 'Please provide the billing details' })\r\n }\r\n else {\r\n this.setState(prevState => ({\r\n editCredit: !prevState.editCredit, errCard: '', cardName: '', cardNumber: '', expiry: '', SecurityCode: ''\r\n }));\r\n }\r\n\r\n }\r\n updateState() {\r\n const { infoData, stateData } = this.state;\r\n if (infoData && infoData.info !== undefined && stateData && stateData.length > 0) {\r\n if (infoData.info.userInfo.stateCode !== '' && infoData.info.userInfo.stateCode !== undefined && stateData.length > 0) {\r\n let stateDetails = infoData && infoData.info.userInfo.stateCode && infoData.info.userInfo.stateCode !== '' && stateData.length > 0 ? stateData.filter(function (data) {\r\n return data.countryCode === infoData.info.userInfo.stateCode.split(' ')[1]\r\n }) : [];\r\n this.setState({ filteredState: stateDetails });\r\n }\r\n }\r\n }\r\n toggleEditAccount() {\r\n this.setState({ phone: this.state.userPhone, phoneErr: '', phoneFieldBorder: '', regionCode: this.state.defaultRegionCode, dialCode: this.state.defaultRegionCode });\r\n\r\n this.setState(prevState => ({\r\n editAccountModel: !prevState.editAccountModel\r\n }));\r\n }\r\n\r\n sigOut(event, errors, values) {\r\n let token = localStorage.getItem('accessKey');\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n }\r\n const remarks = { \"Remarks\": values.Remarks, \"RegionId\": CONFIG.RegionId }\r\n axios.post(CONFIG.API_URL + 'account/cancelsubscription', remarks)\r\n .then(response => {\r\n if (response.status == 'success') {\r\n\r\n localStorage.removeItem('accessKey');\r\n // this.state.isNavigationBlocked = true;\r\n this.props.history.push({\r\n pathname: `/`\r\n });\r\n }\r\n })\r\n .catch((err) => {\r\n this.setState({\r\n isLoading: false\r\n })\r\n if (err.response.StatusCode === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else {\r\n alert(err.response.data);\r\n }\r\n });\r\n localStorage.removeItem('accessKey');\r\n // this.state.isNavigationBlocked = true;\r\n this.props.history.push({\r\n pathname: `/`\r\n });\r\n }\r\n\r\n saveSubscription(event, errors, values) {\r\n let formvalid = false;\r\n\r\n formvalid = this.ValidateCard();\r\n if (formvalid && values.cardName !== '') {\r\n this.setState({ isLoading1: true, errCard: \"\" })\r\n\r\n //const subscriptionData = this.state.storeData.info.userInfo;\r\n var getPaymonthyear = this.state.expiry.toString().split('/');\r\n\r\n const data = {\r\n \"CardType\": \"visa\",\r\n \"CardNumber\": this.state.cardNumber,\r\n \"ExpiryMonth\": getPaymonthyear.length > 0 ? parseInt(getPaymonthyear[0].trim()) : null,\r\n \"ExpiryYear\": getPaymonthyear.length > 0 ? parseInt('20'.concat(getPaymonthyear[1].trim())) : null,\r\n \"Token\": '',\r\n \"CardName\": this.state.cardName !== '' ? this.state.cardName : values.cardName,\r\n \"SecurityCode\": this.state.SecurityCode,\r\n \"IsDefault\": true,\r\n \"RegionId\": CONFIG.RegionId\r\n }\r\n this.setState({\r\n curSymb: CONFIG.Currency_Symbol\r\n })\r\n // axios.get(CONFIG.API_URL + 'home/region')\r\n // .then(response => {\r\n // let curSymb = response.data.region.currencySymbol;\r\n // this.setState({\r\n // curSymb\r\n // })\r\n // });\r\n\r\n let token = localStorage.getItem('accessKey');\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n }\r\n\r\n axios.put(CONFIG.API_URL + 'Valut/ChangeCard', data)\r\n .then(res => {\r\n const getTokvalues = res.data;\r\n this.setState({ getTokvalues });\r\n if (getTokvalues !== \"Success\") {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + getTokvalues.token;\r\n\r\n localStorage.setItem('accessKey', getTokvalues.token);\r\n localStorage.setItem('getNames', getTokvalues.firstName);\r\n localStorage.setItem('isPaid', getTokvalues.isPaid);\r\n localStorage.setItem('tempNoStoreCount', getTokvalues.tempNoOfStores);\r\n localStorage.setItem('instructionMsg', getTokvalues.instructionMsg);\r\n localStorage.setItem('userType', getTokvalues.userType);\r\n localStorage.setItem('userStatus', getTokvalues.status);\r\n localStorage.setItem('curSymb', CONFIG.Currency_Symbol);\r\n localStorage.setItem('userManual', getTokvalues.isManual);\r\n }\r\n if (res.status === 200) {\r\n this.setState({ isLoading1: false, editCredit: false, snackOpen: true, snackMsg: 'Updated succesfully' });\r\n this.updateMenu();\r\n }\r\n // this.state.editaccountmodal = false;\r\n window.scrollTo(0, 0);\r\n this.componentDidMount();\r\n // this.setState({ isLoading: false, updateSubscripConfirmation: true });\r\n // window.location.reload();\r\n })\r\n .catch((err) => {\r\n this.setState({\r\n isLoading1: false\r\n })\r\n if (err.response.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else if (err.response.status === 400) {\r\n let message = err.response.data.Message;\r\n this.setState({ snackOpen: true, snackMsg: message });\r\n }\r\n else {\r\n this.setState({ isLoading1: false, snackOpen: true, snackMsg: \"error\" });\r\n }\r\n });\r\n }\r\n }\r\n\r\n ValidateCard() {\r\n let formvalid = false;\r\n if (!this.state.cardNumber || !this.state.SecurityCode || !this.state.expiry) {\r\n this.setState({ errCard: \"Please enter missing card details\" })\r\n }\r\n else if (this.state.expiry) {\r\n //Expiry date check for Card\r\n var getPaymonthyear = this.state.expiry.toString().split('/');\r\n let ExpiryMonth = getPaymonthyear.length > 0 ? parseInt(getPaymonthyear[0].trim()) : '';\r\n let ExpiryYear = getPaymonthyear.length > 1 ? getPaymonthyear[1].trim() : '';\r\n var CurrentMonth = new Date().getMonth() + 1;\r\n var CurrentYear = new Date().getFullYear().toString().substr(-2);\r\n if (CurrentYear > ExpiryYear) {\r\n this.setState({ errCard: 'Please enter valid expiry year' });\r\n }\r\n else {\r\n if (CurrentYear === ExpiryYear) {\r\n if (CurrentMonth > ExpiryMonth || ExpiryMonth > 12) {\r\n this.setState({ errCard: 'Please enter valid expiry month' });\r\n } else {\r\n if (this.state.SecurityCode) {\r\n if (this.state.SecurityCode.length === 3 || this.state.SecurityCode.length === 4) {\r\n this.setState({ errCard: '' });\r\n formvalid = true;\r\n } else {\r\n this.setState({ errCard: 'Please enter valid CVV' });\r\n }\r\n }\r\n }\r\n } else {\r\n if (ExpiryMonth > 12) {\r\n this.setState({ errCard: 'Please enter valid expiry month' });\r\n } else {\r\n if (this.state.SecurityCode) {\r\n if (this.state.SecurityCode.length === 3 || this.state.SecurityCode.length === 4) {\r\n this.setState({ errCard: '' });\r\n formvalid = true;\r\n } else {\r\n this.setState({ errCard: 'Please enter valid CVV' });\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n }\r\n return formvalid;\r\n }\r\n\r\n billingSubmit(event, errors, values) {\r\n console.log(values.billingState);\r\n if (errors.length > 0) {\r\n }\r\n else {\r\n this.setState({ isLoading: true });\r\n let city = this.state.stateData;\r\n // let selState = values.billingState !=='' ? values.billingState : '';\r\n var billingState = city.filter(function (user) {\r\n return user.stateID == values.billingState\r\n });\r\n let billingEditInfo = this.state.infoData.info.userInfo;\r\n billingEditInfo.billingAddress = values.Address1 ? values.Address1 : null;\r\n billingEditInfo.billingAddress2 = values.Address2 ? values.Address2 : null;\r\n billingEditInfo.billingCity = values.City ? values.City : null;\r\n // billingEditInfo.billingState = values.billingState ? values.billingState : null;\r\n billingEditInfo.billingState = billingState.length > 0 ? billingState[0].stateID : null;//CONFIG.Region_Id === Regions.UK ? selState : billingState[0].stateID ? billingState[0].stateID : null;\r\n billingEditInfo.billingZipCode = values.Zip ? values.Zip : null;\r\n billingEditInfo.billingCountry = this.state.infoData.info.userInfo.billingCountry;\r\n billingEditInfo.billingCountryCode = this.state.infoData.info.userInfo.billingCountryCode === 'England' ? 'GB' : this.state.infoData.info.userInfo.billingCountryCode;\r\n billingEditInfo.password = null;\r\n billingEditInfo.RegionId = CONFIG.RegionId;\r\n let token = localStorage.getItem('accessKey');\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n }\r\n axios.put(CONFIG.API_URL + 'Account/updateaccount', billingEditInfo)\r\n .then(response => {\r\n if (response.status === 200) {\r\n // alert('Updated successfully');\r\n this.setState({ isLoading: false, snackOpen: true, snackMsg: 'Billing details updated successfully' }, () => {\r\n this.myAccountEdit();\r\n });\r\n let billingEditInfo = this.state.infoData.info.userInfo;\r\n billingEditInfo.billingState = values.billingState;\r\n // // this.state.aModel = false;\r\n // // this.componentDidMount();\r\n // let billingEditInfo = this.state.infoData.info.userInfo;\r\n // billingEditInfo.billingState = values.billingState ? values.billingState : '';\r\n // this.state.aModel = false;\r\n // this.setState({ isLoading: false, snackOpen: true, snackMsg: 'Billing details updated successfully' });\r\n // this.componentDidMount();\r\n setTimeout(() => {\r\n this.backToAccount();\r\n }, 1500);\r\n }\r\n })\r\n // .catch((err) => {\r\n // this.setState({\r\n // isLoading: false\r\n // })\r\n // if (err.response.status === 401) {\r\n // localStorage.removeItem('accessKey');\r\n // const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n // this.props.history.push(from);\r\n // }\r\n // else {\r\n // this.setState({ snackOpen: true, snackMsg: err.response.data });\r\n // }\r\n // });\r\n .catch((err) => {\r\n this.setState({\r\n isLoading: false\r\n })\r\n if (err.response.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/page_expired\" } };\r\n this.props.history.push(from);\r\n }\r\n else if (err.response.status === 400) {\r\n let message = err.response.data.Message;\r\n this.setState({ snackOpen: true, snackMsg: message, snackClr: 'snack-error' });\r\n }\r\n else {\r\n this.setState({ isLoading: false, snackOpen: true, snackMsg: \"error\", snackClr: 'snack-error' });\r\n }\r\n });\r\n }\r\n }\r\n backToAccount() {\r\n this.setState({ snackOpen: false, isLoading: false, editAccountModel: false, aModel: false });\r\n const { from } = this.props.location.state || { from: { pathname: \"/my-account/\" } };\r\n this.props.history.push(from);\r\n this.componentDidMount();\r\n }\r\n myAccountEdit() {\r\n this.setState({\r\n isLoading: true\r\n });\r\n let token = localStorage.getItem('accessKey');\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n }\r\n // axios.post(CONFIG.API_URL + 'Account/getuserinfo')\r\n axios.post(CONFIG.API_URL + 'Account/getuserinfo/' + CONFIG.RegionId)\r\n .then(response => {\r\n\r\n let storeData = response.data;\r\n let infoData = response.data;\r\n let pricePerStoreState = response.data.info.subscription != null ? response.data.info.subscription.pricePerStore : 0;\r\n if (response.data.info.subscription) {\r\n if (pricePerStoreState != null) {\r\n this.setState({\r\n pricePerStoreState\r\n })\r\n } else {\r\n this.setState({\r\n pricePerStoreState: 0\r\n })\r\n }\r\n }\r\n infoData.info.userInfo.phone = this.formatPhoneNumber(infoData.info.userInfo.phone.replace(/[^\\d]/g, ''));\r\n let phone = infoData ? infoData.info.userInfo.phone : '';\r\n if (localStorage.getItem('getNames') != infoData.info.userInfo.firstName) {\r\n localStorage.setItem('getNames', infoData.info.userInfo.firstName);\r\n document.getElementById('r1').click();\r\n }\r\n\r\n let isCh = false;\r\n let checBox = infoData.info.userInfo.isReceiveEmailAlerts.toString();\r\n if (checBox === \"true\") {\r\n isCh = true;\r\n this.setState({ isCh })\r\n } else {\r\n isCh = false;\r\n this.setState({ isCh })\r\n }\r\n let infoEditData = response.data.info.userInfo;\r\n\r\n let tot = response.data.info.subscription ? response.data.info.subscription.totalPrice : '';\r\n //Decimal Number Conversion \r\n if (tot != '') {\r\n let checkDigit = tot.toString().split('.');\r\n let ret = \"\";\r\n let i = 0;\r\n if (tot.toString().indexOf(\".\") == -1) {\r\n tot = tot;\r\n } else {\r\n if (checkDigit == '00') {\r\n tot = checkDigit.trim();\r\n }\r\n else {\r\n if (checkDigit.length == 2) {\r\n ret += checkDigit[0] + \".\";\r\n for (i = 0; i < checkDigit.length; i++) {\r\n if (i >= checkDigit[1].length)\r\n ret += '0';\r\n else\r\n ret += checkDigit[1][i];\r\n }\r\n }\r\n else if (checkDigit.length == 1) {\r\n ret += checkDigit[0] + \".\";\r\n for (i = 0; i < checkDigit.length; i++) {\r\n ret += '0'\r\n }\r\n }\r\n ret = ret.toString();\r\n tot = ret;\r\n }\r\n }\r\n }\r\n\r\n this.setState({\r\n isLoading: false,\r\n infoData,\r\n infoEditData, storeData, phone, tot, userPhone: phone\r\n }, () => {\r\n this.updateState();\r\n })\r\n\r\n if (this.state.storeData.info.storeDetails.length > 0) {\r\n const data1 = {\r\n \"UserStoreID\": this.state.storeData.info.storeDetails[0].userStoreID,\r\n \"RegionId\": CONFIG.RegionId\r\n }\r\n\r\n // axios.post(CONFIG.API_URL + 'dashboard/dashboardlocation/', data1)\r\n // .then(res => {\r\n // let countryCurrency = res.data.data.countryCurrency;\r\n // this.setState({ countryCurrency });\r\n\r\n // })\r\n // .catch((err) => {\r\n // this.setState({ isLoading: false });\r\n // if (err.response.status === 401) {\r\n // localStorage.removeItem('accessKey');\r\n // const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n // this.props.history.push(from);\r\n // }\r\n // else {\r\n // alert(err.response.data);\r\n // }\r\n // });\r\n\r\n }\r\n })\r\n .catch((err) => {\r\n\r\n this.setState({\r\n isLoading: false\r\n })\r\n if (err.response.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else {\r\n alert(err.response.data);\r\n }\r\n });\r\n\r\n // axios.get(CONFIG.API_URL + 'home/lookupdata')\r\n axios.get(CONFIG.API_URL + 'home/lookupdata/' + CONFIG.RegionId + '/' + 1)\r\n .then(response => {\r\n\r\n let stateData = response.data.lookups.statesList;\r\n //To know how many Countries in statesList data\r\n // let StateCountryCount = stateData.filter(data => {\r\n // return data.stateID === '';\r\n // }).length;\r\n let countryData = response.data.lookups.countryList;\r\n this.setState({\r\n stateData, countryData\r\n }, () => {\r\n this.updateState();\r\n })\r\n console.log(stateData)\r\n })\r\n .catch((err) => {\r\n this.setState({\r\n isLoading: false\r\n })\r\n if (err.response.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }\r\n\r\n componentDidMount() {\r\n\r\n this.myAccountEdit();\r\n\r\n let userType = localStorage.getItem('userType');\r\n let userStatus = localStorage.getItem('userStatus');\r\n // let countryCurrency = localStorage.getItem('curSymb');\r\n let countryCurrency = CONFIG.Currency_Symbol;\r\n let userManual = localStorage.getItem('userManual');\r\n let isPaid = localStorage.getItem('isPaid');\r\n this.setState({\r\n userType, userStatus, countryCurrency, userManual, isPaid\r\n });\r\n\r\n if (userType === \"1\" && userStatus === \"2\" || userType === \"2\" && userStatus === \"2\" || userType == \"2\" && isPaid == \"0\") {\r\n this.setState({\r\n alertModel: true\r\n });\r\n }\r\n }\r\n updateMenu() {\r\n\r\n localStorage.setItem('IsUpdatePaid', \"1\");\r\n var isElement = document.getElementById('r2');\r\n if (isElement == null) {\r\n document.getElementById('r1').click();\r\n }\r\n else {\r\n document.getElementById('r1').click();\r\n document.getElementById('r2').click();\r\n }\r\n }\r\n\r\n accountSubmit(event, errors, values) {\r\n let formValid = true;\r\n //Phone number validation\r\n let phoneErr = '';\r\n let phoneFieldBorder = '0';\r\n if (this.state.phone === \"\") {\r\n phoneErr = 'Phone is required';\r\n phoneFieldBorder = '1';\r\n formValid = false;\r\n } else if (this.state.phone.length < CONFIG.PhoneMinLength) {\r\n phoneErr = 'Phone is invalid';\r\n phoneFieldBorder = '1';\r\n formValid = false;\r\n }\r\n this.setState({ phoneErr, phoneFieldBorder });\r\n if (errors.length > 0) {\r\n formValid = false;\r\n }\r\n if (formValid) {\r\n let phoneNumber = this.state.phone;\r\n let userEditInfo = this.state.infoData.info.userInfo;\r\n userEditInfo.FirstName = values.fName;\r\n userEditInfo.LastName = '';\r\n userEditInfo.login = values.email;\r\n userEditInfo.company = values.company;\r\n userEditInfo.phone = phoneNumber.replace(/[^\\d]/g, '');\r\n userEditInfo.billingPhone = phoneNumber.replace(/[^\\d]/g, '');\r\n userEditInfo.password = values.password;\r\n userEditInfo.billingState = CONFIG.RegionId === COMMON.StorTrackRegion.UK ? '' : userEditInfo.stateCode;\r\n userEditInfo.isReceiveEmailAlerts = values.isReceiveEmailAlerts;\r\n userEditInfo.RegionId = CONFIG.RegionId;\r\n let token = localStorage.getItem('accessKey');\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n }\r\n axios.put(CONFIG.API_URL + 'Account/updateaccount', userEditInfo)\r\n .then(res => {\r\n const { from } = this.props.location.state || { from: { pathname: \"/my-account/\" } };\r\n this.props.history.push(from);\r\n this.state.editAccountModel = false;\r\n axios.put(CONFIG.API_URL + 'Account/updateaccount', userEditInfo)\r\n .then(res => {\r\n if (res.status === 200) {\r\n //alert('Updated successfully'); \r\n window.scrollTo(0, 0);\r\n this.setState({ isLoading: false, snackOpen: true, snackMsg: 'Updated succesfully' });\r\n this.componentDidMount();\r\n }\r\n })\r\n // if (err.response.status === 401) {\r\n // localStorage.removeItem('accessKey');\r\n // const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n // this.props.history.push(from);\r\n // }\r\n // else {\r\n // alert(err.response.data);\r\n // }\r\n });\r\n // this.myAccountEdit();\r\n }\r\n }\r\n //format phone numbers\r\n formatPhoneNumber(phone) {\r\n if (CONFIG.RegionId !== MatchingCountryCode.UK_RID) {\r\n CONFIG.PhoneRegex.lastIndex = 0;\r\n var match = null;\r\n match = CONFIG.PhoneRegex.exec(phone);\r\n if (match) {\r\n match.shift();\r\n match[0] = \"(\" + match[0] + \")\";\r\n phone = match.join(\"-\");\r\n }\r\n }\r\n return phone;\r\n }\r\n\r\n contactSupport = () =>{\r\n this.setState(state => ({ contactSupportModal: !state.contactSupportModal }));\r\n }\r\n\r\n render() {\r\n document.title = 'StorTrack: Self-storage market pricing data';\r\n //const marketPrice = storeData && storeData.info.userInfo.tempBasicNoOfStores ? storeData.info.userInfo.tempBasicNoOfStores === 1 ? p_singleMarket : : 0; \r\n const { isLoading, isLoading1, cardNumber,\r\n expiry, snackMsg, snackOpen, StateCountryCount,\r\n cvv, infoData, userManual, stateData, isCh, storeData, pricePerStoreState, testData, tot, countryCurrency, userType, userStatus, isPaid, regionCode, onlyCountries, countryData, filteredState, showState } = this.state;\r\n let lName = infoData && infoData.info.userInfo.lastName ? infoData.info.userInfo.lastName : '';\r\n let billState = infoData && infoData.info.userInfo.billingState ? filteredState.filter((data) => { return data.state === infoData.info.userInfo.billingState }).map(data => data.state) : '';//infoData && infoData.info.userInfo.billingState : '';\r\n let billStateID = infoData && infoData.info.userInfo.billingState ? filteredState.filter((data) => { return data.state === infoData.info.userInfo.billingState }).map(data => data.stateID) : '';//infoData && infoData.info.userInfo.billingState : '';\r\n billStateID = billStateID.length > 0 ? billStateID : filteredState.filter((data) => { return data.stateID === infoData.info.userInfo.billingState }).map(data => data.stateID);\r\n let billingCountry = infoData && infoData.info.userInfo.billingCountry != null ? countryData.filter((data) => { return data.countryID === infoData.info.userInfo.billingCountry }).map(data => data.countryCode) : '';\r\n return (\r\n
\r\n
\r\n {isLoading ?
: ''}\r\n {isLoading1 ?
: ''}\r\n \r\n \r\n \r\n My Account\r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n
My Account
\r\n \r\n \r\n Account Details\r\n \r\n
\r\n

Full Name

\r\n

{infoData && infoData.info.userInfo.firstName ? infoData.info.userInfo.firstName + ' ' + lName : isLoading === false ? 'N/A' : ''}

\r\n
\r\n
\r\n

Company

\r\n

{infoData && infoData.info.userInfo.company ? infoData.info.userInfo.company : isLoading === false ? 'N/A' : ''}

\r\n
\r\n
\r\n

Phone Number

\r\n

{infoData && infoData.info.userInfo.phone ? infoData.info.userInfo.phone : isLoading === false ? 'N/A' : ''}

\r\n
\r\n
\r\n

Email Address

\r\n

{infoData && infoData.info.userInfo.login ? infoData.info.userInfo.login : isLoading === false ? 'N/A' : ''}

\r\n
\r\n
\r\n

Password

\r\n \r\n
\r\n
\r\n Edit Account\r\n \r\n Account Details\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.state.phoneErr}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* \r\n }\r\n label={Receive Email Alerts}\r\n /> */}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n Subscription Details\r\n \r\n
\r\n

Subscription Type

\r\n

{infoData && infoData.info.userInfo.subscriptionType ? infoData.info.userInfo.subscriptionType : isLoading === false ? 'N/A' : ''}

\r\n
\r\n
\r\n

\r\n {infoData && infoData.info.userInfo.subscriptionType != '7-days Free Trial' ?\r\n \r\n : ''}\r\n

\r\n
\r\n
\r\n {infoData && infoData.info.userInfo.subscriptionType != '7-days Free Trial' ?\r\n

\r\n Monthly Total: \r\n {/* */}\r\n

: ''}\r\n
\r\n {userManual == 1 ? '' :\r\n
\r\n {userStatus === '2' ? '' :\r\n
\r\n {infoData && infoData.info.userInfo.billingAddress != null ?\r\n \r\n Edit Subscription\r\n \r\n :\r\n \r\n Edit Subscription\r\n \r\n }\r\n
\r\n }\r\n
\r\n {infoData && infoData.info.userInfo.subscriptionType != '7-days Free Trial' ?\r\n \r\n Update credit card details\r\n : ''}\r\n {/* {userStatus == 2 ? '' : \r\n
\r\n \r\n Cancel Subscription\r\n \r\n
\r\n } */}\r\n
\r\n
}\r\n <>\r\n
\r\n

Need more help? \r\n this.contactSupport()}\r\n style={{ color: \"#41a3f6\" }}\r\n >\r\n Contact Support\r\n \r\n

\r\n
\r\n \r\n Contact Support \r\n this.contactSupport()}>\r\n \r\n \r\n \r\n \r\n

\r\n Submit questions or concerns about your account\r\n or subscription to the support team.\r\n

\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n

Are you sure you need to exist?

\r\n
\r\n {/* */}\r\n \r\n
\r\n Cancel\r\n \r\n
\r\n
\r\n {/* \r\n Confirm\r\n */}\r\n
\r\n
\r\n
\r\n \r\n Account Details\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.state.errCard}\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n \r\n Confirmation\r\n \r\n Your subscription has been updated successfully.\r\n \r\n\r\n \r\n
\r\n {/*
\r\n \r\n Confirmation\r\n \r\n Updated successfully.\r\n \r\n \r\n Ok\r\n \r\n \r\n
\r\n
\r\n \r\n Confirmation\r\n \r\n Updated successfully.\r\n \r\n \r\n Ok\r\n \r\n \r\n
*/}\r\n \r\n Billing Details\r\n \r\n
\r\n

{CONFIG.Address1}

\r\n

{infoData && infoData.info.userInfo.billingAddress ? infoData.info.userInfo.billingAddress : isLoading === false ? 'N/A' : ''}

\r\n
\r\n
\r\n

{CONFIG.Address2}

\r\n

{infoData && infoData.info.userInfo.billingAddress2 ? infoData.info.userInfo.billingAddress2 : ''}

\r\n
\r\n
\r\n

{CONFIG.City}

\r\n

{infoData && infoData.info.userInfo.billingCity ? infoData.info.userInfo.billingCity : isLoading === false ? 'N/A' : ''}

\r\n
\r\n {/* {CONFIG.RegionId === MatchingCountryCode.UK_RID ? '' :\r\n
\r\n

{CONFIG.State}

\r\n {infoData && infoData.info.userInfo.subscriptionType != '7-days Free Trial' ?\r\n

{infoData && infoData.info.userInfo.stateCode != null ? infoData.info.userInfo.stateCode.length > 3 ? billState : billState : ''}

\r\n :

{infoData && infoData.info.userInfo.stateCode ? billState : isLoading === false ? 'N/A' : ''}

}\r\n
\r\n }\r\n \r\n */}\r\n {infoData && infoData.info.userInfo.stateCode != null ?\r\n
\r\n

{CONFIG.State}

\r\n {infoData && infoData.info.userInfo.subscriptionType != '7-days Free Trial' ?\r\n

{infoData && infoData.info.userInfo.stateCode != null ? infoData.info.userInfo.stateCode.length > 3 ? billState : billState : ''}

\r\n :

{infoData && infoData.info.userInfo.stateCode ? billState : isLoading === false ? 'N/A' : ''}

}\r\n
: ''}\r\n
\r\n

{CONFIG.PostalCode}

\r\n

{infoData && infoData.info.userInfo.billingZipCode ? infoData.info.userInfo.billingZipCode : isLoading === false ? 'N/A' : ''}

\r\n
\r\n
\r\n \r\n\r\n Edit\r\n\r\n \r\n {userManual == 1 || userType == 2 && isPaid == 0 || userType == 2 ? '' :\r\n \r\n See billing history\r\n }\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n Billing Details\r\n \r\n \r\n {/*
Billing Details
*/}\r\n {/* \r\n \r\n */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* */}\r\n \r\n \r\n {countryData && countryData.length > 0 ? countryData.map((state) => {\r\n if (state.country !== \"Scotland\" && state.country !== \"Wales\" && state.country !== \"Northern Ireland\")\r\n return (\r\n //state.stateID !== '' ? \r\n \r\n // :''\r\n )\r\n }) : ''}\r\n \r\n \r\n \r\n \r\n {filteredState && filteredState.length > 0 && showState ?\r\n \r\n \r\n \r\n \r\n {filteredState ? filteredState.filter(state => state.stateID !== '').map((state) => {\r\n return (\r\n //state.stateID !== '' ? \r\n \r\n // :''\r\n )\r\n }) : ''}\r\n \r\n \r\n : ''}\r\n 0 && showState === true ? 6 : 12} className={CONFIG.RegionId === MatchingCountryCode.UK_RID ? \"postal-code-uk left-padding-a-m\" : \"left-padding-a-m\"}>\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n {/* Below the modal for status information */}\r\n
\r\n \r\n \r\n \r\n {userType === \"1\" && userStatus === \"2\" ? 'Your Subscription has been cancelled, Please update your credit card details to activate your subscription.' : ''}\r\n {userType === \"2\" && userStatus === \"2\" || userType == \"2\" && isPaid == \"0\" ? 'Your Trial period has been expired, Please upgrade your subscription by edit subscription.' : ''}\r\n \r\n \r\n \r\n\r\n \r\n Please add billing details before edit the subscription\r\n \r\n \r\n \r\n {snackMsg}}\r\n action={[\r\n \r\n \r\n \r\n ]}\r\n />\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\n","import React from 'react';\r\nimport './QuoteMarket.css';\r\nimport { HashLink as Link } from 'react-router-hash-link';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport { AvForm, AvField } from 'availity-reactstrap-validation';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport CloseIcon from '@material-ui/icons/Close';\r\nimport { Label, FormText, Button } from 'reactstrap';\r\nimport FormGroup from '@material-ui/core/FormGroup';\r\nimport axios from 'axios';\r\nimport { CONFIG } from '../../utils/config';\r\nimport Snackbar from '@material-ui/core/Snackbar';\r\nimport PhoneInput from 'react-phone-number-input/input';\r\nimport 'react-phone-number-input/style.css'\r\n\r\nexport default class QuoteMarket extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n Open: false,\r\n phoneErr: '',\r\n emailErr: '',\r\n isLoading1: false,\r\n phone: '',\r\n apiErr: '',\r\n phoneMaxLength:CONFIG.PhoneMaxLength\r\n };\r\n this.handleClickOpen = this.handleClickOpen.bind(this);\r\n this.handleClose = this.handleClose.bind(this);\r\n this.ModalClickOpen = this.ModalClickOpen.bind(this);\r\n\r\n }\r\n ModalClickOpen() {\r\n this.handleClickOpen();\r\n }\r\n phoneKeyPressed = (event) => {\r\n this.setState({ keyCode: event.keyCode });\r\n}\r\nsnackHandleclose = (event, reason) => {\r\n if (reason === 'clickaway') {\r\n return;\r\n }\r\n this.setState({ snackOpen: false });\r\n};\r\nonPhoneChangeML = (event) => {\r\n var string = event.target.value;\r\n var replacedString = event.target.value; //event.target.value.replace(/-/g, \"\").replace(\"(\", \"\").replace(\")\", \"\");\r\n var numericRegex = /^[ 0-9*()+-]*$/;///^([0-9]*)$/;\r\n var valid = numericRegex.exec(replacedString);\r\n var keyCode = this.state.keyCode;\r\n let phoneErr = '';// 'Phone is invalid';\r\n let phoneFieldBorder = '0';// '1';\r\n\r\n if (valid) {\r\n string = replacedString;\r\n // var regex = CONFIG.PhoneRegex;\r\n // var match = regex.exec(string);\r\n // if (match) {\r\n // match.shift();\r\n // match[0] = \"(\" + match[0] + \")\";\r\n // string = match.join(\"-\");\r\n phoneErr = '';\r\n phoneFieldBorder = '0';\r\n // }\r\n } else {\r\n if (keyCode !== 8 && keyCode !== 46) {\r\n string = this.state.phone;\r\n }\r\n }\r\n\r\n if (string === \"\") {\r\n phoneErr = 'Phone is required';\r\n phoneFieldBorder = '1';\r\n }\r\n this.setState({ phone: string, phoneErr, phoneFieldBorder, keyCode: '' });\r\n}\r\nonPhoneChangesML = (event) => {\r\n var string = event;\r\n let phoneErr = '';// 'Phone is invalid';\r\n let phoneFieldBorder = '0';// '1';\r\n if (string === \"\" || string === undefined) {\r\n phoneErr = 'Phone is required';\r\n phoneFieldBorder = '1';\r\n }\r\n this.setState({ phone: string, phoneErr, phoneFieldBorder, keyCode: '' });\r\n}\r\n multpleLocationSubmit(event, errors, values) {\r\n let formValid = true;\r\n\r\n\r\n //Phone number validation starts\r\n let phoneErr = '';\r\n let phoneFieldBorder = '0';\r\n if (this.state.phone === \"\") {\r\n\r\n phoneErr = 'Phone is required';\r\n phoneFieldBorder = '1';\r\n formValid = false;\r\n } else if (this.state.phone.length < CONFIG.PhoneMinLength) {\r\n phoneErr = 'Phone is invalid';\r\n phoneFieldBorder = '1';\r\n formValid = false;\r\n }\r\n let noofstores = this.props.parm;\r\n\r\n this.setState({ phoneErr, phoneFieldBorder, noofstores, apiErr: '' });\r\n\r\n //Phone number validation end\r\n\r\n\r\n if (errors.length > 0) {\r\n formValid = false;\r\n }\r\n if (formValid) {\r\n if (errors.length > 0) {\r\n console.log(errors);\r\n }\r\n else {\r\n let data = {\r\n \"fName\": values.fName.trim(),\r\n \"lName\": values.lName.trim(),\r\n \"company\": values.company.trim(),\r\n \"phone\": this.state.phone.replace(/[^\\d]/g, ''),\r\n \"email\": values.email.trim(),\r\n \"noofstores\": this.props.parm,\r\n \"RegionID\":CONFIG.RegionId\r\n }\r\n this.setState({ isLoading1: true });\r\n axios.post(CONFIG.API_URL + 'subscription/getquote', data)\r\n .then(res => {\r\n\r\n this.myFormRef && this.myFormRef.reset();\r\n this.setState({ phoneErr: '', phoneFieldBorder: '', phone: '', apiErr:'' });\r\n let msg = \"Thank you for submitting your request. We will contact you shortly regarding your 100+ subscription request.\";\r\n this.setState({Open:false, isLoading1: false});\r\n this.setState({ snackOpen: true, snackMSg: msg });\r\n this.props.parentMethod()\r\n \r\n \r\n })\r\n .catch(err => {\r\n \r\n let msg = err.response.data.Message;\r\n this.setState({ isLoading1: false, apiErr: msg });\r\n // this.props.parentMethod()\r\n });\r\n }\r\n }\r\n\r\n }\r\n resetAllValues() {\r\n this.myFormRef && this.myFormRef.reset();\r\n this.setState({ phoneErr: '', phoneFieldBorder: '', phone: '', apiErr: '' });\r\n }\r\n handleClickOpen() {\r\n this.setState({\r\n Open: true\r\n })\r\n }\r\n\r\n handleClose() {\r\n this.setState({\r\n Open: false, phoneErr: '', phoneFieldBorder: '', phone: '', apiErr: ''\r\n })\r\n this.props.parentMethod()\r\n }\r\n\r\n\r\n\r\n render() {\r\n const { Open, isLoading1, snackMSg, snackOpen } = this.state;\r\n\r\n return (\r\n
\r\n {isLoading1 ?
: ''}\r\n \r\n \r\n
\r\n

Quote for StorTrack Optimize

\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n

You have requested pricing for 100 or more markets. To complete this request, please fill out and submit the form below or call us at {CONFIG.Toll_Free} {CONFIG.RegionId === 3 ? \"UK Direct tel:\" +CONFIG.Sales_Support : ''} for assistance. We will contact you soon to discuss your specific needs.

\r\n\r\n (this.myFormRef = c)}>\r\n\r\n \r\n \r\n \r\n \r\n \r\n {this.state.phoneErr}\r\n \r\n {/* */}\r\n {this.state.apiErr}\r\n \r\n {/* */}\r\n Reset\r\n \r\n \r\n \r\n\r\n
\r\n
\r\n\r\n \r\n {snackMSg}}\r\n action={[\r\n \r\n \r\n \r\n ]}\r\n />\r\n
\r\n );\r\n }\r\n}\r\n","import React from 'react';\r\nimport Table from '@material-ui/core/Table';\r\nimport TableBody from '@material-ui/core/TableBody';\r\nimport TableCell from '@material-ui/core/TableCell';\r\nimport TableHead from '@material-ui/core/TableHead';\r\nimport TableRow from '@material-ui/core/TableRow';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport { Link } from 'react-router-dom';\r\nimport { AvForm, AvField, AvGroup, AvInput } from 'availity-reactstrap-validation';\r\nimport axios from 'axios';\r\nimport { CONFIG } from '../../utils/config';\r\nimport CreditCardInput from 'react-credit-card-input';\r\nimport Snackbar from '@material-ui/core/Snackbar';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport CloseIcon from '@material-ui/icons/Close';\r\nimport { Container, Label, Row, Col, Form, Input, Button, CustomInput, Modal, ModalBody, ModalFooter, ModalHeader, FormText } from 'reactstrap';\r\nimport './MyAccount.css';\r\nimport { QuoteMarket } from '../QuoteMarket';\r\nimport moment from 'moment';\r\nexport default class SubscriptionDetails extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n open: false,\r\n aModel: false,\r\n aModel1: false,\r\n cardName: '',\r\n cardNumber: null,\r\n expiry: null,\r\n cvv: null,\r\n focusAfterClose: true,\r\n isChecked: false,\r\n isPlusChecked: false,\r\n selected: [],\r\n optionsChecked: [],\r\n saveBtn: true,\r\n disablecheckbox: false,\r\n disvalue: null,\r\n upgradeOptions: [],\r\n deleteOptions: [],\r\n deleteOptions1: [],\r\n unUpgradeOptions: [],\r\n userPriceData: [],\r\n tempPlusNoOfStores: null,\r\n tempBasicNoOfStores: null,\r\n fixedTempBasicNoOfStores: null,\r\n UserType: 0,\r\n areyouSure: true,\r\n totalValue: 0,\r\n isLoading: false,\r\n updateSubscripConfirmation: false,\r\n countryCurrency: '',\r\n isLoading: false,\r\n snackOpen: false,\r\n snackMSg: '',\r\n errCard: '',\r\n couponCode: '',\r\n nextBillingDate: '',\r\n userStatus: null,\r\n userUserType: null,\r\n curSymb: CONFIG.Currency_Symbol,\r\n infoData: [],\r\n infoDataStore: []\r\n \r\n };\r\n this.child = React.createRef();\r\n this.accountModal = this.accountModal.bind(this);\r\n this.accountModalCLose = this.accountModalClose.bind(this);\r\n this.toggle = this.toggle.bind(this);\r\n this.handleSelectChange = this.handleSelectChange.bind(this);\r\n this.handleChange = this.handleChange.bind(this);\r\n this.subHandleChange = this.subHandleChange.bind(this);\r\n this.toggleConfirmation = this.toggleConfirmation.bind(this);\r\n this.snackHandleclose = this.snackHandleclose.bind(this);\r\n this.api_call = this.api_call.bind(this);\r\n this.formsub_modal_toggle = this.formsub_modal_toggle.bind(this);\r\n this.ValidateCard = this.ValidateCard.bind(this);\r\n this.saveSubscriptionWithoutCard = this.saveSubscriptionWithoutCard.bind(this);\r\n this.updateMenu = this.updateMenu.bind(this);\r\n this.handleClickOpen = this.handleClickOpen.bind(this);\r\n this.refreshHandler = this.refreshHandler.bind(this);\r\n }\r\n sigOut() {\r\n this.setState({\r\n aModel1: false\r\n })\r\n localStorage.removeItem('accessKey');\r\n localStorage.removeItem('tempNoStoreCount');\r\n localStorage.removeItem('isPaid');\r\n localStorage.removeItem('getNames');\r\n localStorage.removeItem('instructionMsg');\r\n localStorage.removeItem('StId');\r\n localStorage.removeItem('userType');\r\n localStorage.removeItem('userStatus');\r\n localStorage.removeItem('locSearchName');\r\n localStorage.removeItem('userManual');\r\n localStorage.removeItem('refreshMenu');\r\n localStorage.removeItem('IsUpdatePaid');\r\n localStorage.removeItem('displayMessage');\r\n // this.state.isNavigationBlocked = true;\r\n this.props.history.push({\r\n pathname: `/`\r\n });\r\n\r\n }\r\n cancelSubcription(event, errors, values) {\r\n \r\n this.setState({\r\n isLoading1: true\r\n })\r\n let token = localStorage.getItem('accessKey');\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n }\r\n const remarks = { \"Remarks\": values.Remarks, \"RegionId\": CONFIG.RegionId }\r\n axios.post(CONFIG.API_URL + 'account/cancelsubscription', remarks)\r\n .then(response => {\r\n if (response.status == 200) {\r\n if (response.data == 'success') {\r\n\r\n this.setState({\r\n isLoading1: false, aModel: false, aModel1: true\r\n })\r\n }\r\n }\r\n })\r\n .catch((err) => {\r\n this.setState({\r\n isLoading1: false\r\n })\r\n if (err.response.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else {\r\n alert(err.response.data);\r\n }\r\n });\r\n\r\n }\r\n snackHandleclose = (event, reason) => {\r\n if (reason === 'clickaway') {\r\n return;\r\n }\r\n this.setState({ snackOpen: false });\r\n // const x = document.getElementById('Subid');\r\n // x.focus();\r\n };\r\n toggleConfirmation() {\r\n this.setState(prevState => ({\r\n updateSubscripConfirmation: !prevState.updateSubscripConfirmation,\r\n saveBtn: true\r\n }));\r\n this.updateMenu();\r\n const { from } = this.props.location.state || { from: { pathname: \"/subscription-details/\" } };\r\n this.props.history.push(from);\r\n\r\n }\r\n updateMenu() {\r\n\r\n localStorage.setItem('IsUpdatePaid', \"1\");\r\n var isElement = document.getElementById('r2');\r\n if (isElement == null) {\r\n document.getElementById('r1').click();\r\n }\r\n else {\r\n document.getElementById('r1').click();\r\n document.getElementById('r2').click();\r\n }\r\n }\r\n areyouSure() {\r\n if (this.state.userStatus !== 1 || this.state.userUserType === 2 || localStorage.getItem('isPaid') === '0') {\r\n this.setState({\r\n areyouSure: false\r\n })\r\n }\r\n else if (this.state.userStatus === 1 && this.state.userUserType !== 2 && this.state.fixedTempBasicNoOfStores < parseInt(this.state.tempBasicNoOfStores)) {\r\n this.setState({\r\n areyouSure: false\r\n })\r\n }\r\n else if (this.state.userStatus === 1 && this.state.userUserType !== 2 && this.state.fixedTempBasicNoOfStores >= parseInt(this.state.tempBasicNoOfStores) && localStorage.getItem('isPaid') !== '0') {\r\n this.setState({\r\n isLoading1: true\r\n })\r\n\r\n const subscriptionData = this.state.storeData.info.userInfo;\r\n // var getPaymonthyear = this.state.expiry.toString().split('/');\r\n const data = {\r\n \"UserType\": this.state.userUserType,\r\n \"TempNoOfStores\": subscriptionData.tempNoOfStores,\r\n \"TempBasicNoOfStores\": this.state.tempBasicNoOfStores,\r\n // \"TempPlusNoOfStores\": this.state.tempPlusNoOfStores,\r\n // \"UpgradeStoreIDs\": this.state.upgradeOptions.toString(),\r\n \"DeleteStoreIDs\": this.state.deleteOptions1.toString(),\r\n \"RegionId\": CONFIG.RegionId,\r\n PaymentDetail: {\r\n \"CardType\": \"\",\r\n \"CardNumber\": \"\",\r\n \"ExpiryMonth\": \"\",\r\n \"ExpiryYear\": \"\",\r\n \"CardName\": \"\",\r\n \"SecurityCode\": \"\",\r\n \"IsDefault\": true\r\n }\r\n }\r\n\r\n let token = localStorage.getItem('accessKey');\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n }\r\n axios.put(CONFIG.API_URL + 'account/downgradesubscription', data)\r\n .then(res => {\r\n if (res.status == 200) {\r\n const getTokvalues = res.data.data;\r\n this.setState({ getTokvalues });\r\n if (res.data.message) {\r\n localStorage.setItem('tempNoStoreCount', getTokvalues.tempNoOfStores);\r\n } else {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + getTokvalues.token;\r\n localStorage.setItem('accessKey', getTokvalues.token);\r\n localStorage.setItem('getNames', getTokvalues.firstName);\r\n localStorage.setItem('isPaid', getTokvalues.isPaid);\r\n localStorage.setItem('tempNoStoreCount', getTokvalues.tempNoOfStores);\r\n localStorage.setItem('instructionMsg', getTokvalues.instructionMsg);\r\n localStorage.setItem('userType', getTokvalues.userType);\r\n localStorage.setItem('userStatus', getTokvalues.status);\r\n // localStorage.setItem('curSymb', this.state.curSymb);\r\n localStorage.setItem('curSymb', CONFIG.Currency_Symbol);\r\n localStorage.setItem('userManual', getTokvalues.isManual);\r\n localStorage.setItem('displayMessage', getTokvalues.displayMessage);\r\n }\r\n window.scrollTo(0, 0);\r\n this.componentDidMount();\r\n this.setState({\r\n isLoading1: false, updateSubscripConfirmation: true,\r\n open: false\r\n });\r\n }\r\n // const infoData = res.data;\r\n // this.state.editaccountmodal = false;\r\n // window.scrollTo(0, 0);\r\n // this.componentDidMount();\r\n // this.setState({\r\n // isLoading1: false, updateSubscripConfirmation: true,\r\n // open: false\r\n // });\r\n // window.location.reload();\r\n })\r\n .catch(err => {\r\n if (err.response.status == 400) {\r\n if (err.response.data.Message == \"Card not found\" || err.response.data.Message == \"Card Expired\")\r\n this.setState({\r\n areyouSure: false, isLoading1: false, errCard: \"Please update your card details\"\r\n })\r\n }\r\n else if (err.response.data.Message !== 'Payment Failed') {\r\n this.setState({ errCard: err.response.data.Message, isLoading1: false });\r\n }\r\n else {\r\n this.setState({ snackOpen: true, snackMSg: 'Payment Failed', errCard: '' });\r\n }\r\n this.setState({ isLoading1: false });\r\n });\r\n\r\n }\r\n else {\r\n this.saveSubscriptionWithoutCard();\r\n }\r\n\r\n }\r\n saveSubscriptionCard() {\r\n\r\n\r\n }\r\n saveSubscriptionWithoutCard() {\r\n this.setState({\r\n isLoading1: true\r\n })\r\n const subscriptionData = this.state.storeData.info.userInfo;\r\n const data = {\r\n \"UserType\": this.state.userUserType,\r\n \"TempNoOfStores\": subscriptionData.tempNoOfStores,\r\n \"TempBasicNoOfStores\": this.state.tempBasicNoOfStores,\r\n // \"TempPlusNoOfStores\": this.state.tempPlusNoOfStores,\r\n // \"UpgradeStoreIDs\": this.state.upgradeOptions.toString(),\r\n \"DeleteStoreIDs\": this.state.deleteOptions1.toString(),\r\n \"RegionId\": CONFIG.RegionId,\r\n PaymentDetail: {\r\n \"CardType\": \"\",\r\n \"CardNumber\": \"\",\r\n \"ExpiryMonth\": \"\",\r\n \"ExpiryYear\": \"\",\r\n \"CardName\": \"\",\r\n \"SecurityCode\": \"\",\r\n \"IsDefault\": true\r\n }\r\n }\r\n let token = localStorage.getItem('accessKey');\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n }\r\n axios.put(CONFIG.API_URL + 'account/updatesubscription', data)\r\n .then(res => {\r\n // const infoData = res.data;\r\n // this.state.editaccountmodal = false;\r\n window.scrollTo(0, 0);\r\n this.componentDidMount();\r\n this.setState({\r\n isLoading1: false, updateSubscripConfirmation: true,\r\n open: false\r\n });\r\n // window.location.reload();\r\n })\r\n .catch(err => {\r\n if (err.response.data.Message !== 'Payment Failed') {\r\n this.setState({ errCard: err.response.data.Message, isLoading1: false });\r\n }\r\n else {\r\n this.setState({ snackOpen: true, snackMSg: 'Payment Failed', errCard: '' });\r\n }\r\n this.setState({ isLoading1: false });\r\n });\r\n }\r\n upgradehandleClick(event, userStoreID, checkOption) {\r\n\r\n\r\n // let userStoreID = userStoreID\r\n // const isPlusCheckeddata = this.state.infoData.isPlus;\r\n const subscriptionData = this.state.subscriptionData\r\n //const subscriptionData = this.state.subscriptionData;\r\n\r\n const upgradeOptions = this.state.upgradeOptions\r\n const unUpgradeOptions = this.state.unUpgradeOptions;\r\n const deleteOptions = this.state.deleteOptions\r\n const deleteOptions1 = this.state.deleteOptions1\r\n let index\r\n let indexd\r\n let tempPlusNoOfStores = parseInt(subscriptionData.tempPlusNoOfStores);\r\n let tempBasicNoOfStores = parseInt(subscriptionData.tempBasicNoOfStores);\r\n\r\n if (subscriptionData.tempBasicNoOfStores > 99) {\r\n\r\n // this.setState({ snackOpen: true, snackMSg: 'Your Market Count Should be Below 100.' });\r\n this.handleClickOpen();\r\n\r\n }\r\n // else if(subscriptionData.tempBasicNoOfStores === NaN) {\r\n // this.setState({ snackOpen: true, snackMSg: 'Please enter Market count.' });\r\n // }\r\n else if (subscriptionData.tempBasicNoOfStores < 0) {\r\n this.setState({ snackOpen: true, snackMSg: 'Cannot proceed with ' + this.state.countryCurrency + '0 cost. Please enter location count.' });\r\n\r\n }\r\n else if (subscriptionData.tempBasicNoOfStores === 1) {\r\n if (event.target.checked && checkOption === 'delete') {\r\n\r\n this.state.disablecheckbox = true;\r\n deleteOptions.push(+userStoreID)\r\n deleteOptions1.push(+userStoreID)\r\n\r\n\r\n\r\n index = deleteOptions.indexOf(+userStoreID)\r\n let index1 = upgradeOptions.indexOf(+userStoreID)\r\n if (index1 >= 0) {\r\n upgradeOptions.splice(index1, 1)\r\n tempPlusNoOfStores = tempPlusNoOfStores - 1;\r\n }\r\n else {\r\n if (this.state.infoData.length === deleteOptions.length) {\r\n tempBasicNoOfStores = 0\r\n }\r\n else if (tempBasicNoOfStores < this.state.infoData.length) {\r\n tempBasicNoOfStores = this.state.infoData.length - deleteOptions.length;\r\n }\r\n else {\r\n tempBasicNoOfStores = tempBasicNoOfStores - 1;\r\n }\r\n }\r\n\r\n // this.setState({ tempBasicNoOfStores: 1 });\r\n\r\n }\r\n else if (!event.target.checked && checkOption === 'delete') {\r\n\r\n index = deleteOptions.indexOf(+userStoreID)\r\n indexd = deleteOptions1.indexOf(+userStoreID)\r\n deleteOptions.splice(index, 1)\r\n if (userStoreID > 0) {\r\n deleteOptions1.splice(indexd, 1)\r\n }\r\n let index1 = upgradeOptions.indexOf(+userStoreID)\r\n if (index1 === undefined || index1 >= 0) {\r\n upgradeOptions.push(+userStoreID)\r\n tempPlusNoOfStores = tempPlusNoOfStores + 1;\r\n }\r\n else {\r\n if (this.state.infoData.length === deleteOptions.length) {\r\n tempBasicNoOfStores = 0\r\n }\r\n else if (tempBasicNoOfStores < this.state.infoData.length) {\r\n tempBasicNoOfStores = this.state.infoData.length - deleteOptions.length;\r\n }\r\n else {\r\n tempBasicNoOfStores = tempBasicNoOfStores + 1;\r\n }\r\n }\r\n }\r\n\r\n }\r\n else if (subscriptionData.tempBasicNoOfStores === 99) {\r\n if (event.target.checked && checkOption === 'delete') {\r\n this.state.disablecheckbox = true;\r\n deleteOptions.push(+userStoreID)\r\n if (userStoreID > 0) {\r\n deleteOptions1.push(+userStoreID)\r\n }\r\n\r\n\r\n index = deleteOptions.indexOf(+userStoreID)\r\n let index1 = upgradeOptions.indexOf(+userStoreID)\r\n if (index1 >= 0) {\r\n upgradeOptions.splice(index1, 1)\r\n tempPlusNoOfStores = tempPlusNoOfStores - 1;\r\n }\r\n else {\r\n tempBasicNoOfStores = tempBasicNoOfStores - 1;\r\n }\r\n\r\n }\r\n else if (!event.target.checked && checkOption === 'delete') {\r\n // this.setState({ snackOpen: true, snackMSg: 'Your Market Count Should be Below 100.' });\r\n this.handleClickOpen();\r\n\r\n }\r\n\r\n }\r\n else if (subscriptionData.tempBasicNoOfStores > 1 || subscriptionData.tempBasicNoOfStores < 99) {\r\n\r\n // if (event.target.checked && checkOption === 'upgrade') {\r\n // this.state.disablecheckbox = true;\r\n // upgradeOptions.push(+userStoreID)\r\n // tempPlusNoOfStores = tempPlusNoOfStores + 1;\r\n // tempBasicNoOfStores = tempBasicNoOfStores - 1;\r\n // }\r\n // else if (!event.target.checked && checkOption === 'upgrade') {\r\n // index = upgradeOptions.indexOf(+userStoreID)\r\n // upgradeOptions.splice(index, 1)\r\n // unUpgradeOptions.push(+userStoreID)\r\n // tempPlusNoOfStores = tempPlusNoOfStores - 1;\r\n // tempBasicNoOfStores = tempBasicNoOfStores + 1;\r\n // }\r\n if (event.target.checked && checkOption === 'delete') {\r\n this.state.disablecheckbox = true;\r\n deleteOptions.push(+userStoreID)\r\n if (userStoreID > 0) {\r\n deleteOptions1.push(+userStoreID)\r\n }\r\n\r\n\r\n index = deleteOptions.indexOf(+userStoreID)\r\n let index1 = upgradeOptions.indexOf(+userStoreID)\r\n if (index1 >= 0) {\r\n upgradeOptions.splice(index1, 1)\r\n tempPlusNoOfStores = tempPlusNoOfStores - 1;\r\n }\r\n else {\r\n if (this.state.infoData.length === deleteOptions.length) {\r\n tempBasicNoOfStores = 0\r\n }\r\n else if (tempBasicNoOfStores < this.state.infoData.length) {\r\n tempBasicNoOfStores = this.state.infoData.length - deleteOptions.length;\r\n }\r\n else {\r\n tempBasicNoOfStores = tempBasicNoOfStores - 1;\r\n }\r\n }\r\n }\r\n else if (!event.target.checked && checkOption === 'delete') {\r\n\r\n index = deleteOptions.indexOf(+userStoreID)\r\n indexd = deleteOptions1.indexOf(+userStoreID)\r\n deleteOptions.splice(index, 1)\r\n if (userStoreID > 0) {\r\n\r\n deleteOptions1.splice(indexd, 1)\r\n\r\n }\r\n let index1 = upgradeOptions.indexOf(+userStoreID)\r\n if (index1 === undefined || index1 >= 0) {\r\n upgradeOptions.push(+userStoreID)\r\n tempPlusNoOfStores = tempPlusNoOfStores + 1;\r\n }\r\n else {\r\n if (this.state.infoData.length === deleteOptions.length) {\r\n tempBasicNoOfStores = 0\r\n }\r\n else if (tempBasicNoOfStores < this.state.infoData.length) {\r\n tempBasicNoOfStores = this.state.infoData.length - deleteOptions.length;\r\n }\r\n else {\r\n tempBasicNoOfStores = tempBasicNoOfStores + 1;\r\n }\r\n\r\n }\r\n }\r\n\r\n }\r\n subscriptionData.tempPlusNoOfStores = tempPlusNoOfStores;\r\n subscriptionData.tempBasicNoOfStores = tempBasicNoOfStores;\r\n this.updateprice();\r\n this.setState({ upgradeOptions, unUpgradeOptions, tempPlusNoOfStores, tempBasicNoOfStores, subscriptionData, deleteOptions, deleteOptions1, isPlusChecked: !this.state.isPlusChecked });\r\n let saveBtn = this.state.saveBtn\r\n if (this.state.fixedTempBasicNoOfStores === tempBasicNoOfStores && this.state.userUserType !== 2 && this.state.userStatus === 1) {\r\n saveBtn = true\r\n } else {\r\n saveBtn = false\r\n }\r\n this.setState({\r\n saveBtn\r\n })\r\n }\r\n updateprice() {\r\n const subscriptionData = this.state.subscriptionData\r\n let nos = subscriptionData.tempBasicNoOfStores ? parseInt(subscriptionData.tempBasicNoOfStores) : 0;\r\n let plusCount = subscriptionData.tempPlusNoOfStores ? parseInt(subscriptionData.tempPlusNoOfStores) : 0;\r\n let basecount = subscriptionData.tempBasicNoOfStores ? parseInt(subscriptionData.tempBasicNoOfStores) : 0;\r\n let base_total = 0;\r\n let totalValue = this.state.totalValue;\r\n let marketPlusRate = 0;\r\n let Market_price = 0;\r\n if (nos === 0) {\r\n Market_price = 0;\r\n }\r\n else if (nos === 1) {\r\n Market_price = this.state.p_singleMarket.filter(function (data) {\r\n return nos === data.noOfStores && data.userType === 1\r\n\r\n });\r\n marketPlusRate = Market_price[0].regularPrice + 20;\r\n let basecountPrice = Market_price[0].regularPrice * basecount;\r\n let plusCountPrice = marketPlusRate * plusCount;\r\n base_total = plusCountPrice + basecountPrice;\r\n base_total = base_total - ((base_total / 100) * Market_price[0].discountPercentage);\r\n }\r\n else {\r\n Market_price = this.state.p_multiMarket.filter(function (data) {\r\n return nos <= data.noOfStores && data.userType === 1\r\n\r\n });\r\n marketPlusRate = Market_price[0].regularPrice + 20;\r\n let basecountPrice = Market_price[0].regularPrice * basecount;\r\n let plusCountPrice = marketPlusRate * plusCount;\r\n base_total = plusCountPrice + basecountPrice;\r\n base_total = base_total - ((base_total / 100) * Market_price[0].discountPercentage);\r\n }\r\n this.setState({ Market_price, totalValue: base_total, marketPlusRate })\r\n }\r\n\r\n saveSubscription(event, errors, values) {\r\n\r\n let formvalid = false;\r\n formvalid = this.ValidateCard();\r\n\r\n if (formvalid && values.cardName !== '') {\r\n this.setState({ errCard: '' });\r\n this.setState({\r\n isLoading1: true\r\n })\r\n const subscriptionData = this.state.storeData.info.userInfo;\r\n var getPaymonthyear = this.state.expiry.toString().split('/');\r\n const data = {\r\n \"UserType\": this.state.userUserType,\r\n \"TempNoOfStores\": subscriptionData.tempNoOfStores,\r\n \"TempBasicNoOfStores\": this.state.tempBasicNoOfStores,\r\n // \"TempPlusNoOfStores\": this.state.tempPlusNoOfStores,\r\n // \"UpgradeStoreIDs\": this.state.upgradeOptions.toString(),\r\n \"DeleteStoreIDs\": this.state.deleteOptions1.toString(),\r\n \"RegionId\": CONFIG.RegionId,\r\n PaymentDetail: {\r\n \"CardType\": \"visa\",\r\n \"CardNumber\": this.state.cardNumber,\r\n \"ExpiryMonth\": getPaymonthyear.length > 0 ? parseInt(getPaymonthyear[0].trim()) : null,\r\n \"ExpiryYear\": getPaymonthyear.length > 0 ? parseInt('20'.concat(getPaymonthyear[1].trim())) : null,\r\n \"CardName\": this.state.cardName,\r\n \"SecurityCode\": this.state.cvv,\r\n \"IsDefault\": true\r\n }\r\n\r\n\r\n }\r\n this.setState({\r\n curSymb: CONFIG.Currency_Symbol\r\n })\r\n // axios.get(CONFIG.API_URL + 'home/region')\r\n // .then(response => {\r\n // let curSymb = response.data.region.currencySymbol;\r\n // this.setState({\r\n // curSymb\r\n // })\r\n // });\r\n\r\n let token = localStorage.getItem('accessKey');\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n }\r\n axios.put(CONFIG.API_URL + 'account/updatesubscription', data)\r\n .then(res => {\r\n const getTokvalues = res.data.data;\r\n this.setState({ getTokvalues });\r\n if (res.data.message) {\r\n localStorage.setItem('tempNoStoreCount', getTokvalues.tempNoOfStores);\r\n } else {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + getTokvalues.token;\r\n localStorage.setItem('accessKey', getTokvalues.token);\r\n localStorage.setItem('getNames', getTokvalues.firstName);\r\n localStorage.setItem('isPaid', getTokvalues.isPaid);\r\n localStorage.setItem('tempNoStoreCount', getTokvalues.tempNoOfStores);\r\n localStorage.setItem('instructionMsg', getTokvalues.instructionMsg);\r\n localStorage.setItem('userType', getTokvalues.userType);\r\n localStorage.setItem('userStatus', getTokvalues.status);\r\n // localStorage.setItem('curSymb', this.state.curSymb);\r\n localStorage.setItem('curSymb', CONFIG.Currency_Symbol);\r\n localStorage.setItem('userManual', getTokvalues.isManual);\r\n localStorage.setItem('displayMessage', getTokvalues.displayMessage);\r\n }\r\n // const infoData = res.data;\r\n // this.state.editaccountmodal = false;\r\n window.scrollTo(0, 0);\r\n this.componentDidMount();\r\n this.setState({\r\n isLoading1: false, updateSubscripConfirmation: true,\r\n open: false\r\n });\r\n // window.location.reload();\r\n })\r\n .catch(err => {\r\n if (err.response.data.Message !== 'Payment Failed') {\r\n this.setState({ errCard: err.response.data.Message, isLoading1: false });\r\n }\r\n else {\r\n this.setState({ snackOpen: true, snackMSg: 'Payment Failed', errCard: '' });\r\n }\r\n this.setState({ isLoading1: false });\r\n });\r\n }\r\n }\r\n\r\n\r\n ValidateCard() {\r\n let formvalid = false;\r\n if (!this.state.cardNumber || !this.state.cvv || !this.state.expiry) {\r\n this.setState({ errCard: \"Please enter missing card details\" })\r\n }\r\n else if (this.state.expiry) {\r\n //Expiry date check for Card\r\n var getPaymonthyear = this.state.expiry.toString().split('/');\r\n let ExpiryMonth = getPaymonthyear.length > 0 ? parseInt(getPaymonthyear[0].trim()) : '';\r\n let ExpiryYear = getPaymonthyear.length > 1 ? getPaymonthyear[1].trim() : '';\r\n var CurrentMonth = new Date().getMonth() + 1;\r\n var CurrentYear = new Date().getFullYear().toString().substr(-2);\r\n if (CurrentYear > ExpiryYear) {\r\n this.setState({ errCard: 'Please enter valid expiry year' });\r\n }\r\n else {\r\n if (CurrentYear === ExpiryYear) {\r\n if (CurrentMonth > ExpiryMonth || ExpiryMonth > 12) {\r\n this.setState({ errCard: 'Please enter valid expiry month' });\r\n } else {\r\n if (this.state.cvv) {\r\n if (this.state.cvv.length === 3 || this.state.cvv.length === 4) {\r\n this.setState({ errCard: '' });\r\n formvalid = true;\r\n } else {\r\n this.setState({ errCard: 'Please enter valid CVV' });\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n if (ExpiryMonth > 12) {\r\n this.setState({ errCard: 'Please enter valid expiry month' });\r\n } else {\r\n if (this.state.cvv) {\r\n if (this.state.cvv.length === 3 || this.state.cvv.length === 4) {\r\n this.setState({ errCard: '' });\r\n formvalid = true;\r\n } else {\r\n this.setState({ errCard: 'Please enter valid CVV' });\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n }\r\n return formvalid;\r\n }\r\n\r\n\r\n handleChange(e) {\r\n if (e.target.name != \"cardName\") {\r\n this.setState({ [e.target.name]: e.target.value, errCard: '' }, () => { this.ValidateCard() });\r\n } else {\r\n this.setState({ [e.target.name]: e.target.value });\r\n }\r\n }\r\n subHandleChange(e) {\r\n let deleteOptions1 = this.state.deleteOptions1;\r\n deleteOptions1 = []\r\n let deleteOptions = this.state.deleteOptions;\r\n deleteOptions = []\r\n this.setState({\r\n deleteOptions1, deleteOptions\r\n })\r\n\r\n if (parseInt(e.target.value) > 99) {\r\n // this.setState({ snackOpen: true, snackMSg: 'Your Market Count Should be Below 100.' });\r\n let infoData = this.state.infoData;\r\n let infoDataStore = this.state.infoDataStore;\r\n let infoDatalen = e.target.value.length === 3 ? 99 : parseInt(e.target.value);\r\n this.setState({\r\n infoDatalen\r\n })\r\n var infoDatafilter = [];\r\n if (this.state.infoDataStoreLength <= infoDatalen) {\r\n for (var s = 0; s < infoDatalen; s++) {\r\n var inlineData = {\r\n address: s <= infoData.length - 1 ? infoData[s].address : 'Not yet entered',\r\n isDefaultStore: s <= infoData.length - 1 ? infoData[s].isDefaultStore : 'Not yet entered',\r\n isPlus: s <= infoData.length - 1 ? infoData[s].isPlus : 'Not yet entered',\r\n storeName: s <= infoData.length - 1 ? infoData[s].storeName : 'Not yet entered',\r\n storeNo: s <= infoData.length - 1 ? infoData[s].storeNo : - + s,\r\n userStoreID: s <= infoData.length - 1 ? infoData[s].userStoreID : - + s,\r\n zoneCoverage: s <= infoData.length - 1 ? infoData[s].zoneCoverage : 'Not yet entered',\r\n zoneCoverageLink: s <= infoData.length - 1 ? infoData[s].zoneCoverageLink : 'Not yet entered'\r\n\r\n\r\n }\r\n infoDatafilter.push(inlineData);\r\n }\r\n this.setState({ infoData: infoDatafilter });\r\n }\r\n\r\n let tempBasicNoOfStores = this.state.tempBasicNoOfStores;\r\n tempBasicNoOfStores = e.target.value === \"\" ? 0 : parseInt(e.target.value);\r\n const subscriptionData = this.state.subscriptionData;\r\n subscriptionData[e.target.name] = e.target.value === \"\" ? 0 : parseInt(e.target.value);\r\n if (e.target.value.length > 3) {\r\n e.target.value = e.target.value.substring(0, Math.min(e.target.value.length, 3));\r\n\r\n\r\n }\r\n this.setState({\r\n tempBasicNoOfStores,\r\n [e.target.name]: e.target.value, subscriptionData\r\n })\r\n this.handleClickOpen();\r\n }\r\n else if (parseInt(e.target.value) === 0) {\r\n this.setState({ snackOpen: true, snackMSg: 'Your Market Count Should be Above 0.' });\r\n\r\n }\r\n else {\r\n let infoData = this.state.infoData;\r\n let infoDataStore = this.state.infoDataStore;\r\n let infoDatalen = e.target.value === \"\" ? 0 : parseInt(e.target.value)\r\n this.setState({\r\n infoDatalen\r\n })\r\n var infoDatafilter = [];\r\n if (this.state.infoDataStoreLength <= infoDatalen) {\r\n for (var s = 0; s < infoDatalen; s++) {\r\n var inlineData = {\r\n address: s <= infoData.length - 1 ? infoData[s].address : 'Not yet entered',\r\n isDefaultStore: s <= infoData.length - 1 ? infoData[s].isDefaultStore : 'Not yet entered',\r\n isPlus: s <= infoData.length - 1 ? infoData[s].isPlus : 'Not yet entered',\r\n storeName: s <= infoData.length - 1 ? infoData[s].storeName : 'Not yet entered',\r\n storeNo: s <= infoData.length - 1 ? infoData[s].storeNo : - + s,\r\n userStoreID: s <= infoData.length - 1 ? infoData[s].userStoreID : - + s,\r\n zoneCoverage: s <= infoData.length - 1 ? infoData[s].zoneCoverage : 'Not yet entered',\r\n zoneCoverageLink: s <= infoData.length - 1 ? infoData[s].zoneCoverageLink : 'Not yet entered'\r\n\r\n\r\n }\r\n infoDatafilter.push(inlineData);\r\n }\r\n this.setState({ infoData: infoDatafilter });\r\n }\r\n else {\r\n this.setState({\r\n infoData: infoDataStore\r\n })\r\n }\r\n const subscriptionData = this.state.subscriptionData;\r\n subscriptionData[e.target.name] = e.target.value === \"\" ? 0 : parseInt(e.target.value);\r\n let nos = subscriptionData.tempBasicNoOfStores ? parseInt(subscriptionData.tempBasicNoOfStores) : 0;\r\n\r\n if (nos > 99) {\r\n // this.setState({ snackOpen: true, snackMSg: 'Your Market Count Should be Below 100.' });\r\n let tempBasicNoOfStores = this.state.tempBasicNoOfStores;\r\n tempBasicNoOfStores = e.target.value === \"\" ? 0 : parseInt(e.target.value);\r\n this.setState({\r\n tempBasicNoOfStores\r\n })\r\n this.handleClickOpen();\r\n\r\n }\r\n else if (nos < 0) {\r\n this.setState({ snackOpen: true, snackMSg: 'Cannot proceed with ' + this.state.countryCurrency + '0 cost. Please enter location count.' });\r\n\r\n }\r\n // else if (nos === 0) {\r\n // this.setState({ snackOpen: true, snackMSg: 'Minimum Market Count is 1' });\r\n\r\n // }\r\n // else if (nos === 100) {\r\n // this.setState({ snackOpen: true, snackMSg: 'Your Market Count Should be Below 100.' });\r\n\r\n // }\r\n\r\n else if (nos > 1 || nos < 99) {\r\n\r\n let tempBasicNoOfStores = this.state.tempBasicNoOfStores;\r\n tempBasicNoOfStores = e.target.value === \"\" ? 0 : parseInt(e.target.value);\r\n this.setState({\r\n tempBasicNoOfStores\r\n })\r\n let saveBtn = this.state.saveBtn\r\n if (this.state.fixedTempBasicNoOfStores === tempBasicNoOfStores && this.state.userUserType !== 2 && this.state.userStatus === 1) {\r\n saveBtn = true\r\n } else {\r\n saveBtn = false\r\n }\r\n\r\n this.setState({\r\n saveBtn\r\n })\r\n\r\n\r\n this.setState({ [e.target.name]: e.target.value, subscriptionData });\r\n nos = (subscriptionData.tempBasicNoOfStores ? parseInt(subscriptionData.tempBasicNoOfStores) : 0) + (subscriptionData.tempPlusNoOfStores ? parseInt(subscriptionData.tempPlusNoOfStores) : 0);\r\n let plusCount = subscriptionData.tempPlusNoOfStores ? parseInt(subscriptionData.tempPlusNoOfStores) : 0;\r\n let basecount = subscriptionData.tempBasicNoOfStores ? parseInt(subscriptionData.tempBasicNoOfStores) : 0;\r\n let base_total = 0;\r\n let totalValue = this.state.totalValue;\r\n let marketPlusRate = 0;\r\n let Market_price = 0;\r\n if (nos === 0) {\r\n Market_price = 0;\r\n }\r\n else if (nos === 1) {\r\n Market_price = this.state.p_singleMarket.filter(function (data) {\r\n return nos === data.noOfStores && data.userType === 1\r\n\r\n });\r\n marketPlusRate = Market_price[0].adminAllottedPrice > 0 ? Market_price[0].adminAllottedPrice * basecount : Market_price[0].isFixedPrice ? Market_price[0].price * basecount : Market_price[0].regularPrice * basecount + Market_price[0].plus;\r\n let basecountPrice = Market_price[0].adminAllottedPrice > 0 ? Market_price[0].adminAllottedPrice * basecount : Market_price[0].isFixedPrice ? Market_price[0].price * basecount : Market_price[0].regularPrice * basecount;\r\n let plusCountPrice = marketPlusRate * plusCount;\r\n let discount = Market_price[0].discountPercentage;\r\n base_total = plusCountPrice + basecountPrice;\r\n base_total = base_total - ((base_total / 100) * discount);\r\n }\r\n else {\r\n Market_price = this.state.p_multiMarket.filter(function (data) {\r\n return nos <= data.noOfStores && data.userType === 1\r\n\r\n });\r\n marketPlusRate = Market_price[0].adminAllottedPrice > 0 ? Market_price[0].adminAllottedPrice * basecount : Market_price[0].isFixedPrice ? Market_price[0].price * basecount : Market_price[0].regularPrice * basecount + Market_price[0].plus;\r\n let basecountPrice = Market_price[0].adminAllottedPrice > 0 ? Market_price[0].adminAllottedPrice * basecount : Market_price[0].isFixedPrice ? Market_price[0].price * basecount : Market_price[0].regularPrice * basecount;\r\n let plusCountPrice = marketPlusRate * plusCount;\r\n let discount = Market_price[0].discountPercentage;\r\n base_total = plusCountPrice + basecountPrice;\r\n base_total = base_total - ((base_total / 100) * discount);\r\n\r\n }\r\n\r\n\r\n\r\n\r\n this.setState({ Market_price, totalValue: base_total, marketPlusRate });\r\n }\r\n\r\n }\r\n\r\n\r\n\r\n }\r\n\r\n checkboxCheck(event) {\r\n let totalValue = 0\r\n if (this.state.isChecked) {\r\n totalValue = 0\r\n }\r\n else {\r\n totalValue = 1000\r\n }\r\n\r\n\r\n this.setState({ isChecked: !this.state.isChecked, totalValue })\r\n }\r\n accountModal() {\r\n\r\n this.setState(({ aModel }) => ({ aModel: !aModel }));\r\n }\r\n accountModalClose() {\r\n\r\n this.setState(({ aModel1 }) => ({ aModel1: !aModel1 }));\r\n }\r\n toggle() {\r\n\r\n const subscriptionData = this.state.subscriptionData;\r\n let nos = subscriptionData.tempBasicNoOfStores ? parseInt(subscriptionData.tempBasicNoOfStores) : 0;\r\n // if (this.state.fixedTempBasicNoOfStores === nos && this.state.deleteOptions1.length === 0) {\r\n // this.setState({ snackOpen: true, snackMSg: 'Your Market same' });\r\n // }\r\n if (nos > 99) {\r\n // this.setState({ snackOpen: true, snackMSg: 'Your Market Count Should be Below 100.' });\r\n this.handleClickOpen();\r\n\r\n }\r\n else if (nos < (this.state.unUpgradeOptions.length - this.state.deleteOptions1.length)) {\r\n this.setState({ snackOpen: true, snackMSg: 'Please select the market(s) from the list which you wish to delete from your account.' });\r\n\r\n }\r\n else if (nos < 1) {\r\n this.setState({ snackOpen: true, snackMSg: 'Cannot proceed with ' + this.state.countryCurrency + '0 cost. Please enter location count.' });\r\n\r\n }\r\n else if (nos > 1 || nos < 99) {\r\n this.setState(({ open }) => ({ open: !open, errCard: '', areyouSure: true, cardName: '', cardNumber: '', expiry: '', cvv: '' }));\r\n }\r\n // if(parseInt(this.state.tempBasicNoOfStores) === this.state.unUpgradeOptions.length && parseInt(this.state.tempPlusNoOfStores) === this.state.upgradeOptions.length) {\r\n\r\n // }\r\n // else {\r\n // alert('Please check your stores')\r\n // }\r\n\r\n // this.setState(({ open }) => ({ open: !open }));\r\n\r\n }\r\n formsub_modal_toggle(e) {\r\n e.preventDefault();\r\n const subscriptionData = this.state.subscriptionData;\r\n let nos = subscriptionData.tempBasicNoOfStores ? parseInt(subscriptionData.tempBasicNoOfStores) : 0;\r\n if (this.state.fixedTempBasicNoOfStores === nos && this.state.deleteOptions1.length === 0) {\r\n this.setState({ snackOpen: true, snackMSg: 'No Changes are done. Please update your subscription.' });\r\n }\r\n else if (nos > 99) {\r\n this.handleClickOpen();\r\n // this.setState({ snackOpen: true, snackMSg: 'Your Market Count Should be Below 100.' });\r\n\r\n }\r\n else if (nos === 0) {\r\n this.setState({ snackOpen: true, snackMSg: 'Cannot proceed with ' + this.state.countryCurrency + '0 cost. Please enter location count..' });\r\n\r\n }\r\n else if (nos < (this.state.unUpgradeOptions.length - this.state.deleteOptions1.length)) {\r\n this.setState({ snackOpen: true, snackMSg: 'Please select the market(s) from the list which you wish to delete from your account.' });\r\n\r\n }\r\n else if (nos < 1) {\r\n this.setState({ snackOpen: true, snackMSg: 'Cannot proceed with ' + this.state.countryCurrency + '0 cost. Please enter location count.' });\r\n\r\n }\r\n else if (nos > 1 || nos < 99) {\r\n this.setState(({ open }) => ({ open: !open, errCard: '', areyouSure: true, cardName: '', cardNumber: '', expiry: '', cvv: '' }));\r\n }\r\n }\r\n\r\n handleSelectChange({ target: { value } }) {\r\n this.setState({ focusAfterClose: JSON.parse(value) });\r\n }\r\n\r\n componentDidMount() {\r\n let countryCurrency = CONFIG.Currency_Symbol;\r\n this.setState({\r\n isLoading: true, countryCurrency\r\n })\r\n let token = localStorage.getItem('accessKey');\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n }\r\n\r\n // axios.post(CONFIG.API_URL + 'account/userpricedetails')\r\n axios.post(CONFIG.API_URL + 'account/userpricedetails/' + CONFIG.RegionId)\r\n .then(response => {\r\n // let userPriceData = response.data.userPrice.userPriceList;\r\n\r\n let priceData = response.data.userPrice.userPriceList;\r\n // console.log(priceData);\r\n\r\n let p_singleMarket = priceData.filter(function (data) {\r\n return data.userType === 1 && data.noOfStores === 1\r\n });\r\n\r\n let p_multiMarket = priceData.filter(function (data) {\r\n return data.userType === 1 && data.noOfStores !== 1\r\n });\r\n\r\n let p_unLimited = priceData.filter(function (data) {\r\n return data.userType === 4\r\n });\r\n\r\n this.setState({\r\n p_singleMarket, p_multiMarket, p_unLimited\r\n }, () => { this.api_call() });\r\n\r\n })\r\n .catch((err) => {\r\n this.setState({\r\n isLoading: false\r\n })\r\n if (err.response.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }\r\n\r\n api_call() {\r\n // axios.post(CONFIG.API_URL + 'Account/getuserinfo')\r\n axios.post(CONFIG.API_URL + 'Account/getuserinfo/' + CONFIG.RegionId)\r\n .then(response => {\r\n let storeData = response.data;\r\n let storeDataEdit = response.data.info.userInfo;\r\n let subscriptionData = response.data.info.userInfo;\r\n const subdata = response.data.info.subscription;\r\n const infoData = response.data.info.storeDetails;\r\n const infoDataStoreLength = infoData.length;\r\n const infoDataStore = response.data.info.storeDetails;\r\n let infoEditData = response.data.info.storeDetails;\r\n const tempPlusNoOfStores = subscriptionData.tempPlusNoOfStores;\r\n const tempBasicNoOfStores = subscriptionData.tempBasicNoOfStores;\r\n const fixedTempBasicNoOfStores = subscriptionData.tempBasicNoOfStores;\r\n let UserType = response.data.info.userInfo.userType;\r\n let couponCode = response.data.info.userInfo.couponCode;\r\n let nextBillingDate = response.data.info.subscription != null ? response.data.info.subscription.nextBillingDate : '';\r\n //let isChecked = UserType === 4 ? true : false;\r\n let upgradeOptions = [];\r\n let unUpgradeOptions = [];\r\n let totalValue = subdata && subdata.totalPrice != '' ? subdata.totalPrice : '';\r\n let deleteOptions = [];\r\n let userStatus = response.data.info.userInfo.status;\r\n let userUserType = response.data.info.userInfo.userType;\r\n let saveBtn = this.state.saveBtn;\r\n if (userUserType === 2 || userStatus !== 1 || localStorage.getItem('isPaid') === '0') {\r\n saveBtn = false\r\n }\r\n // if (isPaid === 0) {\r\n // saveBtn = false\r\n // }\r\n\r\n\r\n var infoDatafilter = [];\r\n for (var s = 0; s < tempBasicNoOfStores; s++) {\r\n var inlineData = {\r\n address: s <= infoData.length - 1 ? infoData[s].address : 'Not yet entered',\r\n isDefaultStore: s <= infoData.length - 1 ? infoData[s].isDefaultStore : 'Not yet entered',\r\n isPlus: s <= infoData.length - 1 ? infoData[s].isPlus : 'Not yet entered',\r\n storeName: s <= infoData.length - 1 ? infoData[s].storeName : 'Not yet entered',\r\n storeNo: s <= infoData.length - 1 ? infoData[s].storeNo : - + s,\r\n userStoreID: s <= infoData.length - 1 ? infoData[s].userStoreID : - + s,\r\n zoneCoverage: s <= infoData.length - 1 ? infoData[s].zoneCoverage : 'Not yet entered',\r\n zoneCoverageLink: s <= infoData.length - 1 ? infoData[s].zoneCoverageLink : 'Not yet entered'\r\n\r\n\r\n }\r\n infoDatafilter.push(inlineData);\r\n }\r\n this.setState({\r\n infoData: infoDatafilter, infoDatafilter\r\n })\r\n\r\n infoData.filter((e) => e.isPlus === true).forEach(function (e) { upgradeOptions.push(e.userStoreID) });\r\n infoData.filter((e) => e.isPlus === false).forEach(function (e) { unUpgradeOptions.push(e.userStoreID) });\r\n if (unUpgradeOptions === undefined) {\r\n unUpgradeOptions = [];\r\n }\r\n if (upgradeOptions === undefined) {\r\n upgradeOptions = [];\r\n }\r\n // console.log(infoDatafilter);\r\n let base_total = 0;\r\n let marketPlusRate = 0;\r\n let Market_price = 0;\r\n let plusCount = subscriptionData ? parseInt(tempPlusNoOfStores) : 0;\r\n let basecount = subscriptionData ? parseInt(tempBasicNoOfStores) : 0;\r\n\r\n if (this.state.p_singleMarket || this.state.p_multiMarket || this.state.p_unLimited) {\r\n if (tempBasicNoOfStores === 0) {\r\n Market_price = 0;\r\n }\r\n else if (tempBasicNoOfStores === 1) {\r\n Market_price = this.state.p_singleMarket.filter(function (data) {\r\n return tempBasicNoOfStores === data.noOfStores && data.userType === 1\r\n\r\n });\r\n marketPlusRate = Market_price[0].adminAllottedPrice > 0 ? Market_price[0].adminAllottedPrice * basecount : Market_price[0].isFixedPrice ? Market_price[0].price * basecount : Market_price[0].regularPrice * basecount + Market_price[0].plus;\r\n let basecountPrice = Market_price[0].adminAllottedPrice > 0 ? Market_price[0].adminAllottedPrice * basecount : Market_price[0].isFixedPrice ? Market_price[0].price * basecount : Market_price[0].regularPrice * basecount;\r\n let plusCountPrice = marketPlusRate * plusCount;\r\n let discount = Market_price[0].discountPercentage;\r\n base_total = plusCountPrice + basecountPrice;\r\n base_total = base_total - ((base_total / 100) * discount);\r\n }\r\n else {\r\n Market_price = this.state.p_multiMarket.filter(function (data) {\r\n return tempBasicNoOfStores <= data.noOfStores && data.userType === 1\r\n\r\n });\r\n marketPlusRate = Market_price[0].adminAllottedPrice > 0 ? Market_price[0].adminAllottedPrice * basecount : Market_price[0].isFixedPrice ? Market_price[0].price * basecount : Market_price[0].regularPrice * basecount + Market_price[0].plus;\r\n let basecountPrice = Market_price[0].adminAllottedPrice > 0 ? Market_price[0].adminAllottedPrice * basecount : Market_price[0].isFixedPrice ? Market_price[0].price * basecount : Market_price[0].regularPrice * basecount;\r\n let plusCountPrice = marketPlusRate * plusCount;\r\n let discount = Market_price[0].discountPercentage;\r\n base_total = plusCountPrice + basecountPrice;\r\n base_total = base_total - ((base_total / 100) * discount);\r\n\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n this.setState({\r\n Market_price, totalValue: base_total, marketPlusRate, userStatus, userUserType, saveBtn,\r\n isLoading: false,\r\n\r\n fixedTempBasicNoOfStores,\r\n infoDataStoreLength,\r\n infoDataStore,\r\n couponCode,\r\n nextBillingDate,\r\n // totalValue,\r\n infoEditData, deleteOptions, upgradeOptions, unUpgradeOptions, storeData, storeDataEdit, tempPlusNoOfStores, tempBasicNoOfStores, UserType, subscriptionData\r\n })\r\n // console.log(totalValue);\r\n if (this.state.storeData.info.storeDetails.length > 0) {\r\n const data1 = {\r\n \"UserStoreID\": this.state.storeData.info.storeDetails[0].userStoreID,\r\n \"RegionId\": CONFIG.RegionId\r\n }\r\n\r\n // axios.post(CONFIG.API_URL + 'dashboard/dashboardlocation/', data1)\r\n // .then(res => {\r\n // let countryCurrency = res.data.data.countryCurrency;\r\n // this.setState({ countryCurrency });\r\n\r\n // })\r\n // .catch((err) => {\r\n // this.setState({ isLoading: false });\r\n // if (err.response.status === 401) {\r\n // localStorage.removeItem('accessKey');\r\n // const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n // this.props.history.push(from);\r\n // }\r\n // else {\r\n // alert(err.response.data);\r\n // }\r\n // });\r\n }\r\n })\r\n\r\n .catch((err) => {\r\n\r\n this.setState({\r\n isLoading: false\r\n })\r\n\r\n if (err.response.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }\r\n handleClickOpen() {\r\n this.child.current.ModalClickOpen();\r\n }\r\n refreshHandler() {\r\n this.componentDidMount();\r\n }\r\n reset() {\r\n this.setState({\r\n isLoading: true\r\n })\r\n\r\n //window.location.reload();\r\n this.componentDidMount();\r\n this.setState({\r\n isLoading: false\r\n })\r\n window.scrollTo(0, 0);\r\n const { from } = this.props.location.state || { from: { pathname: \"/my-account/\" } };\r\n this.props.history.push(from);\r\n }\r\n\r\n\r\n\r\n render() {\r\n document.title = 'StorTrack: My Account';\r\n const hidden = this.state.checked ? '' : 'hidden';\r\n const { isLoading, isLoading1, saveBtn, couponCode, userStatus, userUserType, nextBillingDate, snackMSg, snackOpen, disablecheckbox, upgradeOptions, unUpgradeOptions, totalValue, subscriptionData, deleteOptions, userPriceData, tempPlusNoOfStores, tempBasicNoOfStores, UserType } = this.state;\r\n\r\n const { infoData, cardNumber,\r\n expiry, storeData, countryCurrency,\r\n cvv } = this.state;\r\n\r\n return (\r\n\r\n
\r\n
\r\n \r\n {isLoading ?
: ''}\r\n {isLoading1 ?
: ''}\r\n\r\n \r\n \r\n \r\n My Account\r\n \r\n \r\n \r\n
\r\n\r\n \r\n
\r\n My Account
\r\n
Subscription Details
\r\n\r\n
\r\n \r\n \r\n \r\n Your current subscription\r\n

{storeData && storeData.info.userInfo.subscriptionType ? storeData.info.userInfo.subscriptionType : isLoading === false ? 'N/A' : ''}

\r\n {/*

Stortrack Online, Multi-Market

*/}\r\n {storeData && storeData.info.userInfo.subscriptionType != '7-days Free Trial' ?\r\n

\r\n Monthly Total:\r\n {couponCode ?

Coupon Applied : {couponCode}
: ''}\r\n

: ''}\r\n \r\n \r\n
\r\n
\r\n \r\n market{this.state.tempBasicNoOfStores > 1 ? '(s)' : ''} at /month {this.state.tempBasicNoOfStores > 1 ? \"ea.\" : \"\"}\r\n\r\n
\r\n
\r\n \r\n
\r\n

\r\n Currently subscribed markets are shown below

\r\n\r\n
\r\n \r\n \r\n \r\n \r\n Market Name\r\n Address\r\n {/* Here comment the code for as per new requirement */}\r\n {/* Upgrade */}\r\n Delete\r\n \r\n \r\n \r\n {/* infoData.info.storeDetails.storeName address */}\r\n {infoData && infoData.length > 0 ? infoData.map((n, index) => {\r\n return (\r\n \r\n \r\n {index + 1\r\n // n.storeNo.split(' ').slice(1).map((str) =>\r\n // str)\r\n }\r\n \r\n {n.storeName}\r\n {n.address}\r\n {/* \r\n e === n.userStoreID) || this.state.isChecked}\r\n checked={n.userStoreID === upgradeOptions.find((e) => e === n.userStoreID)} name=\"updateCheck\" onClick={event => this.upgradehandleClick(event, n.userStoreID, 'upgrade')} />\r\n */}\r\n \r\n {/* {n.userStoreID} */}\r\n {/* {n.userStoreID === 0 ? '' : */}\r\n e === n.userStoreID)}\r\n //onClick={event => this.deletehandleClick(event, n.userStoreID)}\r\n onClick={event => this.upgradehandleClick(event, n.userStoreID, 'delete')}\r\n />\r\n {/* } */}\r\n \r\n \r\n );\r\n }) :\r\n \r\n \r\n {isLoading === false ? 'No Market Found' : ''}\r\n\r\n \r\n \r\n }\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n {/* {infoData && infoData.length >= 1 ? */}\r\n
\r\n {this.state.userStatus == 1 ?\r\n \r\n Cancel Subscription\r\n \r\n : ''}\r\n
\r\n {/* : ''} */}\r\n\r\n
\r\n {/* {this.state.fixedTempBasicNoOfStores + '-' + this.state.tempBasicNoOfStores + '-' + this.state.deleteOptions1.length} */}\r\n {this.state.saveBtn == true && this.state.deleteOptions1.length === 0 ? '' :\r\n \r\n }\r\n {/* {this.state.userUserType + '-' + this.state.userStatus + this.state.saveBtn} */}\r\n {/* {\r\n this.state.userUserType === 2 || this.state.userStatus !== 1 ? \r\n :\r\n'' \r\n } */}\r\n {/* {infoData && infoData.length >= 1 ? */}\r\n \r\n {/* : ''} */}\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n

We are sorry to see you leave StorTrack Optimize.

\r\n

We appreciate your feedback. Please let us know in a few words your reason(s) for cancelling your subscription, and any feedback that can make StorTrack Optimize better.

\r\n
\r\n {/* */}\r\n \r\n
\r\n Cancel\r\n \r\n
\r\n
\r\n {/* \r\n Confirm\r\n */}\r\n
\r\n
\r\n
\r\n \r\n

Your subscription has been cancelled. You will receive an email confirmation soon.

\r\n

Thank you for using StorTrack Optimize.

\r\n

We are constantly improving StorTrack Optimize - Please check back with us again. We welcome you back at any time. If you have any questions regarding the cancellation of your subscription please contact us at {CONFIG.Toll_Free} {CONFIG.RegionId === 3 ? \"UK Direct tel:\" + CONFIG.Sales_Support : ''}.

\r\n
\r\n\r\n
\r\n {/* Cancel */}\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n\r\n {this.state.areyouSure ?\r\n
\r\n Confirm the following updates to your subscription\r\n
\r\n
StorTrack Optimize, Multi-Market\r\n

{this.state.tempBasicNoOfStores} market(s) at /month {this.state.tempBasicNoOfStores > 1 ? \"ea.\" : \"\"}

\r\n
\r\n

\r\n Your New Monthly Total: {countryCurrency}{this.state.totalValue ? this.state.totalValue.toFixed(2) : 0}\r\n {/* {storeData && storeData.Subscription ? storeData.Subscription.TotalPrice : 'N/A'} */}\r\n

\r\n\r\n {/* {nextBillingDate ?

Your card will not be charged now. We will charge your credit card the new rate when your monthly subscription is due on {moment(nextBillingDate).format('DD-MMM-YYYY').replace(\"--\", \"-\")}.

: ''} */}\r\n {nextBillingDate ?

Your card will not be charged now. We will charge your credit card the new rate when your monthly subscription is due on {nextBillingDate}.

: ''}\r\n\r\n {this.state.errCard}\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n :\r\n
\r\n Payment Details\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.state.errCard}\r\n \r\n\r\n
\r\n
\r\n\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n }\r\n\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n Your subscription has been updated successfully.\r\n \r\n \r\n this.updateMenu()} className=\"btn-save btn btn-secondary\">Go to My Markets\r\n \r\n \r\n
\r\n {snackMSg}}\r\n action={[\r\n \r\n \r\n \r\n ]}\r\n />\r\n
\r\n );\r\n }\r\n}\r\n","import React from 'react';\r\nimport HubspotForm from 'react-hubspot-form';\r\nimport './Requesttrial.css'\r\n//import { Link } from 'react-router-dom';\r\nimport { Container, Col, Row } from 'reactstrap';\r\n// import axios from 'axios';\r\nimport './Requesttrial.css';\r\n\r\nexport default class Requesttrial extends React.Component {\r\n \r\n render() {\r\n\r\n return (\r\n
\r\n \r\n\r\n
\r\n

Thank you for your interest in our FREE 7-day trial

\r\n \r\n \r\n\r\n\r\n
\r\n

The StorTrack free 7-day trial is based on approval. Please fill in the form below and one of our representatives will contact you to set-up your FREE 7-day access. This will give you access, free of charge, to all functionality of a Basic subscription for one market.

\r\n
\r\n \r\n \r\n
Your Information
\r\n console.log('Submit!')}\r\n onReady={(form) => console.log('Form ready!')}\r\n loading={
Loading...
}\r\n />\r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}","import React from 'react';\r\nimport Table from '@material-ui/core/Table';\r\nimport TableBody from '@material-ui/core/TableBody';\r\nimport TableCell from '@material-ui/core/TableCell';\r\nimport TableHead from '@material-ui/core/TableHead';\r\nimport TableRow from '@material-ui/core/TableRow';\r\nimport { Row, Col, Button, Modal, ModalHeader, ModalBody, ModalFooter, Table as TableBoots } from 'reactstrap';\r\nimport storTLogo from '../../Assets/Images/logo.jpg';\r\nimport axios from 'axios';\r\nimport moment from 'moment';\r\nimport PrintProvider, { Print, NoPrint } from 'react-easy-print';\r\nimport './BillingHistory.css';\r\nimport { CONFIG } from '../../utils/config';\r\nimport Paper from '@material-ui/core/Paper';\r\nexport default class BillingHistory extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n billingHistory: '',\r\n modalPrintInvoice: false,\r\n invoiceDesc: '',\r\n invoiceDate: '',\r\n invoiceTotal: '',\r\n invoiceName: '',\r\n invoiceAddress: '',\r\n invoiceCity: '',\r\n invoiceState: '',\r\n invoiceZipCode: '',\r\n isLoading: false\r\n };\r\n this.togglePrintInvoice = this.togglePrintInvoice.bind(this);\r\n }\r\n\r\n togglePrintInvoice(desc, date, total, name, address, city, stateInv, zipcode) {\r\n if (desc !== undefined && date !== undefined && total !== undefined && name !== undefined && address !== undefined && city !== undefined && stateInv !== undefined && zipcode !== undefined) {\r\n this.setState(prevState => ({\r\n modalPrintInvoice: !prevState.modalPrintInvoice,\r\n invoiceDesc: desc,\r\n invoiceDate: date,\r\n invoiceTotal: total,\r\n invoiceName: name,\r\n invoiceAddress: address,\r\n invoiceCity: city,\r\n invoiceState: stateInv,\r\n invoiceZipCode: zipcode\r\n }));\r\n }\r\n else {\r\n this.setState(prevState => ({\r\n modalPrintInvoice: !prevState.modalPrintInvoice\r\n }));\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n this.setState({\r\n isLoading: true\r\n })\r\n let token = localStorage.getItem('accessKey');\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n }\r\n axios.post(CONFIG.API_URL + 'Account/billinghistory/' + CONFIG.RegionId)\r\n .then(response => {\r\n // this.state.isLoading=true;\r\n const billingHistory = response.data.billingdetail.billing;\r\n this.setState({\r\n billingHistory, isLoading: false\r\n })\r\n }).catch((err) => {\r\n this.setState({\r\n isLoading: false\r\n })\r\n if (err.response.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else {\r\n alert(err.response.data);\r\n }\r\n });\r\n\r\n\r\n }\r\n render() {\r\n const { billingHistory, isLoading } = this.state;\r\n return (\r\n\r\n
\r\n {isLoading ?
: ''}\r\n \r\n
Billing History
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n Billing Date\r\n Subscription Type\r\n Description\r\n Subscription Cost\r\n Print Invoice\r\n \r\n \r\n \r\n {billingHistory.length > 0 ? billingHistory.map(data => {\r\n return (\r\n \r\n {moment(data.billingDate).format('DD-MMM-YYYY')}\r\n {data.subscriptionType}\r\n {data.description}\r\n {data.subscriptionCost}\r\n {/* Below the code use only for development purpose */}\r\n {data.name}\r\n {data.billingAddress}\r\n {data.billingCity}\r\n {data.billingState}\r\n {data.billingZipCode}\r\n \r\n this.togglePrintInvoice(data.description, data.billingDate, data.subscriptionCost, data.name, data.billingAddress, data.billingCity, data.billingState, data.billingZipCode)}>Print Invoice\r\n \r\n \r\n );\r\n }) : \r\n \r\n }\r\n \r\n
{isLoading===false ? 'No records found':''}
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \"Logo\r\n \r\n \r\n \r\n \r\n \r\n

26400 Lahser Rd. Suite 210

\r\n

Southfield, MI 48033

\r\n

T: {CONFIG.Toll_Free} {CONFIG.RegionId === 3 ? \"UK Direct tel:\" +CONFIG.Sales_Support : ''}

\r\n \r\n \r\n

Invoice

\r\n

{moment(this.state.invoiceDate).format('DD-MMM-YYYY')}

\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n

Bill to:

\r\n

{this.state.invoiceName}

\r\n

\r\n {this.state.invoiceAddress},\r\n

\r\n

{this.state.invoiceCity}{this.state.invoiceState ? ', '+this.state.invoiceState:''} {this.state.invoiceZipCode}

\r\n \r\n \r\n \r\n \r\n

Description:

\r\n

{this.state.invoiceDesc}

\r\n

Type of Payment:

\r\n

Automatic renewal

\r\n \r\n \r\n

Total:

\r\n

{this.state.invoiceTotal}

\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}","import React from 'react';\r\nimport './MissingCompetitor.css'\r\nimport { Col, Row, Modal, ModalHeader, ModalBody, Button, FormText, Label } from 'reactstrap';\r\nimport { HashLink as Link } from 'react-router-hash-link';\r\nimport { AvForm, AvField } from 'availity-reactstrap-validation';\r\nimport NumberFormat from 'react-number-format';\r\nimport EmailShare from 'react-email-share-link'\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport MuiDialogTitle from '@material-ui/core/DialogTitle';\r\nimport MuiDialogContent from '@material-ui/core/DialogContent';\r\nimport MuiDialogActions from '@material-ui/core/DialogActions';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport CloseIcon from '@material-ui/icons/Close';\r\nimport Snackbar from '@material-ui/core/Snackbar';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport axios from 'axios';\r\nimport { CONFIG ,MatchingCountryCode} from '../../utils/config';\r\nimport PhoneInput from 'react-phone-number-input/input';\r\nimport 'react-phone-number-input/style.css'\r\n\r\nconst styles = theme => ({\r\n root: {\r\n margin: 0,\r\n padding: theme.spacing(2),\r\n },\r\n closeButton: {\r\n position: 'absolute',\r\n right: theme.spacing(1),\r\n top: theme.spacing(1),\r\n color: theme.palette.grey[500],\r\n },\r\n});\r\n\r\nconst DialogTitle = withStyles(styles)(props => {\r\n const { children, classes, onClose } = props;\r\n return (\r\n \r\n {children}\r\n {onClose ? (\r\n \r\n \r\n \r\n ) : null}\r\n \r\n );\r\n});\r\n\r\nconst DialogContent = withStyles(theme => ({\r\n root: {\r\n padding: theme.spacing(2),\r\n },\r\n}))(MuiDialogContent);\r\n\r\nconst DialogActions = withStyles(theme => ({\r\n root: {\r\n margin: 0,\r\n padding: theme.spacing(1),\r\n },\r\n}))(MuiDialogActions);\r\n\r\nexport default class MissingCompetitor extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n modal: false,\r\n modal1: false,\r\n phoneFieldBorder: '0',\r\n phoneErr: '',\r\n phone: '',\r\n snackMSg: '',\r\n snackOpen: false,\r\n validError: '',\r\n phoneMaxLength: CONFIG.PhoneMaxLength,\r\n StateCountryCount: 1,\r\n \r\n };\r\n this.missingCompetitorSubmit = this.missingCompetitorSubmit.bind(this);\r\n this.snackHandleclose = this.snackHandleclose.bind(this);\r\n this.postalCodeValidation = this.postalCodeValidation.bind(this);\r\n\r\n }\r\n\r\n snackHandleclose = (event, reason) => {\r\n if (reason === 'clickaway') {\r\n return;\r\n }\r\n this.setState({ snackOpen: false });\r\n };\r\n\r\n toggleModal = () => {\r\n // axios.get(CONFIG.API_URL + 'home/lookupdata')\r\n axios.get(CONFIG.API_URL + 'home/lookupdata/' + CONFIG.RegionId +'/'+ 0)\r\n .then(response => {\r\n\r\n let stateData = response.data.lookups.statesList;\r\n //To know how many Countries in statesList data\r\n let StateCountryCount = stateData.filter(data => {\r\n return data.stateID === '';\r\n }).length;\r\n this.setState({\r\n stateData, StateCountryCount\r\n })\r\n // console.log(stateData,\"hiiii\");\r\n })\r\n .catch((err) => {\r\n this.setState({\r\n isLoading: false\r\n })\r\n\r\n });\r\n this.setState(state => ({ modal: !state.modal }))\r\n }\r\n\r\n toggleModal1 = () => {\r\n // axios.get(CONFIG.API_URL + 'home/lookupdata')\r\n axios.get(CONFIG.API_URL + 'home/lookupdata/' + CONFIG.RegionId+'/'+ 0)\r\n .then(response => {\r\n\r\n let stateData = response.data.lookups.statesList;\r\n //To know how many Countries in statesList data\r\n let StateCountryCount = stateData.filter(data => {\r\n return data.stateID === '';\r\n }).length;\r\n this.setState({\r\n stateData, StateCountryCount\r\n })\r\n // console.log(stateData,\"hiiii\");\r\n })\r\n .catch((err) => {\r\n this.setState({\r\n isLoading: false\r\n })\r\n\r\n });\r\n this.setState(state => ({ modal1: !state.modal1 }))\r\n }\r\n\r\n cancelMissingCompetitor = () => this.setState(state => ({ modal: !state.modal, phoneErr: '', phoneFieldBorder: '', phone: '', validError: '' }))\r\n\r\n cancelMissingCompetitor1 = () => this.setState(state => ({ modal1: !state.modal1, phoneErr: '', phoneFieldBorder: '', phone: '', validError: '' }))\r\n\r\n componentDidMount() {\r\n if (typeof window.dataLayer != \"undefined\" && this.props.isShowModal) {\r\n window.dataLayer.push({\r\n \"event\": \"show popup\",\r\n 'eventCategory': 'popup',\r\n 'eventAction': 'show',\r\n 'eventLabel': this.state.popupName,\r\n });\r\n }\r\n }\r\n\r\n onPhoneChange = (event) => {\r\n let validError = '';\r\n this.setState({ validError });\r\n var string = event.target.value;\r\n var replacedString = event.target.value;\r\n // var replacedString = event.target.value.replace(/-/g, \"\").replace(\"(\", \"\").replace(\")\", \"\");\r\n var numericRegex = /^[ 0-9*()+-]*$/;// /^([0-9]*)$/;\r\n var valid = numericRegex.exec(replacedString);\r\n var keyCode = this.state.keyCode;\r\n let phoneErr = '';// 'Phone is invalid';\r\n let phoneFieldBorder = '0';// '1';\r\n\r\n if (valid) {\r\n string = replacedString;\r\n // var regex = CONFIG.PhoneRegex;\r\n // var match = regex.exec(string);\r\n // if (match) {\r\n // match.shift();\r\n // match[0] = \"(\" + match[0] + \")\";\r\n // string = match.join(\"-\");\r\n phoneErr = '';\r\n phoneFieldBorder = '0';\r\n // }\r\n } else {\r\n if (keyCode !== 8 && keyCode !== 46) {\r\n string = this.state.phone;\r\n }\r\n }\r\n\r\n if (string === \"\") {\r\n phoneErr = '';\r\n phoneFieldBorder = '0';\r\n }\r\n this.setState({ phone: string, phoneErr, phoneFieldBorder, keyCode: '' });\r\n }\r\n\r\n onPhoneChanges = (event) => {\r\n let validError = '';\r\n this.setState({ validError });\r\n var string = event;\r\n let phoneErr = '';// 'Phone is invalid';\r\n let phoneFieldBorder = '0';// '1';\r\n\r\n\r\n if (string === \"\" || string === undefined) {\r\n phoneErr = '';\r\n phoneFieldBorder = '0';\r\n }\r\n this.setState({ phone: string, phoneErr, phoneFieldBorder, keyCode: '' });\r\n }\r\n\r\n phoneKeyPressed = (event) => {\r\n this.setState({ keyCode: event.keyCode });\r\n }\r\n\r\n missingCompetitorSubmit(event, errors, values) {\r\n let validError = '';\r\n this.setState({ validError });\r\n values.Phone = this.state.phone;\r\n values['RegionId'] = CONFIG.RegionId;\r\n //Phone number validation starts\r\n let phoneErr = '';\r\n let status = values.status;\r\n let phoneFieldBorder = '0';\r\n\r\n this.setState({ phoneErr, phoneFieldBorder });\r\n //Phone number validation end\r\n if (values.WebsiteUrl !== \"\" || values.MarketName !== \"\" || values.Address !== \"\") {\r\n var regexp = /^(?:http(s)?:\\/\\/)?[\\w.-]+(?:\\.[\\w\\.-]+)+[\\w\\-\\._~:/?#[\\]@!\\$&'\\(\\)\\*\\+,;=.]+$/;\r\n var zipcodeValid = /(^[a-zA-Z0-9]+$)/; \r\n \r\n if (this.state.phone !== \"\" && this.state.phone.length < CONFIG.PhoneMinLength) {\r\n\r\n // phoneErr = 'Phone is invalid';\r\n // phoneFieldBorder = '1';\r\n // formValid = false;\r\n //alert('Phone is invalid');\r\n let validError = 'Phone is invalid';\r\n this.setState({ validError });\r\n } else if (values.WebsiteUrl !== \"\" && !regexp.test(values.WebsiteUrl)) {\r\n let validError = 'Website URL is invalid';\r\n this.setState({ validError });\r\n } else if (values.Zipcode !== \"\" && !zipcodeValid.test(values.Zipcode)){\r\n\r\n }\r\n else {\r\n this.setState({ isLoading: true });\r\n let token = localStorage.getItem('accessKey');\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n }\r\n axios.post(CONFIG.API_URL + 'Market/missingcompetitor', values)\r\n .then(res => {\r\n if (res.status === 200) {\r\n this.myFormRef && this.myFormRef.reset();\r\n let msg = \"Sucessfully submitted your request.\";\r\n if (status === 1) {\r\n this.setState(state => ({ modal1: !state.modal1, phone: '' }))\r\n } else {\r\n this.setState(state => ({ modal: !state.modal, phone: '' }))\r\n }\r\n this.setState({ snackOpen: true, snackMSg: msg });\r\n // this.setState({ modal: false });\r\n }\r\n })\r\n .catch((err) => {\r\n this.setState({\r\n isLoading: false\r\n })\r\n if (err.response.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }\r\n }\r\n else {\r\n // this.setState({ snackOpen: true, snackMSg: \"Please enter Location Name or Address or Website URL.\" });\r\n // alert(\"Please enter Location Name or Address or Website URL.\");\r\n let validError = 'Please enter Market Name or Address or Website URL.';\r\n this.setState({ validError });\r\n }\r\n }\r\n postalCodeValidation = (e) => {\r\n var code = ('charCode' in e) ? e.charCode : e.keyCode;\r\n if (!(code == 32) && // space\r\n !(code > 47 && code < 58) && // numeric (0-9)\r\n !(code > 64 && code < 91) && // upper alpha (A-Z)\r\n !(code > 96 && code < 123)) { // lower alpha (a-z)\r\n e.preventDefault();\r\n }\r\n \r\n }\r\n render() {\r\n const { stateData, snackMSg, snackOpen, StateCountryCount } = this.state;\r\n return (\r\n
\r\n Notify us of Missing Stores\r\n Are there any stores missing?\r\n {snackMSg}}\r\n action={[\r\n \r\n \r\n \r\n ]}\r\n />\r\n \r\n Missing Competitor\r\n \r\n \r\n \r\n \r\n \r\n

Identify Missing Stores

\r\n

No problem, just list the name, address and website, if possible and we'll work on getting them into our database as quickly as possible.

\r\n \r\n \r\n {this.state.validError ? this.state.validError : this.state.phoneErr}\r\n (this.myFormRef = c)} className=\"enter-acc-details\">\r\n {/* */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {CONFIG.RegionId === MatchingCountryCode.UK_RID ? '':\r\n \r\n \r\n \r\n {stateData ? stateData.map((state) =>\r\n state.stateID === '' && StateCountryCount <= 1 ? '' : \r\n \r\n ) : ''}\r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* {this.state.phoneErr} */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
StorTrack Research Team is on it!
\r\n

Not sure how we missed this one, but we will find it and add it as soon as we can! If we have any trouble, we will be in contact with you. Check back shortly to see this store added!

\r\n

If you have any questions or comments let us know.

\r\n
\r\n \r\n \r\n\r\n
\r\n
\r\n \r\n \r\n {link => (\r\n {CONFIG.Mail_Support}\r\n )}\r\n \r\n {/* viprocess@validationinstitute.com */}\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n \r\n Missing Competitor\r\n \r\n

Identify Missing Stores

\r\n

No problem, just list the name, address and website, if possible and we'll work on getting them into our database as quickly as possible.

\r\n \r\n \r\n {this.state.validError ? this.state.validError : this.state.phoneErr}\r\n (this.myFormRef = c)} className=\"enter-acc-details\">\r\n {/* */}\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n {CONFIG.RegionId === MatchingCountryCode.UK_RID ? '':\r\n \r\n \r\n \r\n {stateData ? stateData.map((state) =>\r\n state.stateID === '' && StateCountryCount <= 1 ? '' :\r\n \r\n ) : ''}\r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* {this.state.phoneErr} */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
StorTrack Research Team is on it!
\r\n

Not sure how we missed this one, but we will find it and add it as soon as we can! If we have any trouble, we will be in contact with you. Check back shortly to see this store added!

\r\n

If you have any questions or comments let us know.

\r\n
\r\n \r\n \r\n\r\n
\r\n
\r\n \r\n \r\n {link => (\r\n {CONFIG.Mail_Support}\r\n )}\r\n \r\n {/* viprocess@validationinstitute.com */}\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n
\r\n );\r\n }\r\n}","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { findDOMNode } from 'react-dom';\r\nimport { DragSource, DropTarget, } from 'react-dnd';\r\nimport flow from 'lodash/flow';\r\n// import { Link } from \"react-router-dom\";\r\nimport { HashLink as Link } from 'react-router-hash-link';\r\nimport { Col, Row, Modal, ModalHeader, ModalBody, Button, Tooltip } from 'reactstrap';\r\nimport { AvForm, AvField, AvCheckboxGroup } from 'availity-reactstrap-validation';\r\nimport { faPlus } from '@fortawesome/free-solid-svg-icons';\r\nimport { faTimes } from '@fortawesome/free-solid-svg-icons';\r\nimport { faArrowRight } from '@fortawesome/free-solid-svg-icons';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport ArrowDown from './../../Assets/Images/red.png';\r\nimport Arrowup from './../../Assets/Images/green.png';\r\nimport addnew from './../../Assets/Images/addnew.png';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport Radio from '@material-ui/core/Radio';\r\nimport ReactHtmlParser from 'react-html-parser';\r\nimport Table from '@material-ui/core/Table';\r\nimport TableHead from '@material-ui/core/TableHead';\r\nimport TableBody from '@material-ui/core/TableBody';\r\nimport TableCell from '@material-ui/core/TableCell';\r\nimport TableFooter from '@material-ui/core/TableFooter';\r\nimport TablePagination from '@material-ui/core/TablePagination';\r\nimport TableRow from '@material-ui/core/TableRow';\r\nimport Snackbar from '@material-ui/core/Snackbar';\r\nimport CloseIcon from '@material-ui/icons/Close';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport FirstPageIcon from '@material-ui/icons/FirstPage';\r\nimport KeyboardArrowLeft from '@material-ui/icons/KeyboardArrowLeft';\r\nimport KeyboardArrowRight from '@material-ui/icons/KeyboardArrowRight';\r\nimport LastPageIcon from '@material-ui/icons/LastPage';\r\nimport editicon from './../../Assets/Images/edit.png';\r\n\r\nimport { CONFIG } from '../../utils/config';\r\nimport axios from 'axios';\r\nconst actionsStyles = theme => ({\r\n tablepaggination: {\r\n flexShrink: 0,\r\n color: theme.palette.text.secondary,\r\n marginLeft: theme.spacing * 2.5,\r\n },\r\n});\r\n\r\nclass MyMarket extends React.Component {\r\n\r\n handleFirstPageButtonClick = event => {\r\n this.props.onChangePage(event, 0);\r\n };\r\n\r\n handleBackButtonClick = event => {\r\n this.props.onChangePage(event, this.props.page - 1);\r\n };\r\n\r\n handleNextButtonClick = event => {\r\n this.props.onChangePage(event, this.props.page + 1);\r\n };\r\n\r\n handleLastPageButtonClick = event => {\r\n this.props.onChangePage(\r\n event,\r\n Math.max(0, Math.ceil(this.props.count / this.props.rowsPerPage) - 1),\r\n );\r\n };\r\n\r\n render() {\r\n const { classes, count, page, rowsPerPage, theme } = this.props;\r\n\r\n return (\r\n
\r\n \r\n {theme.direction === 'rtl' ? : }\r\n \r\n \r\n {theme.direction === 'rtl' ? : }\r\n \r\n = Math.ceil(count / rowsPerPage) - 1}\r\n aria-label=\"Next Page\"\r\n >\r\n {theme.direction === 'rtl' ? : }\r\n \r\n = Math.ceil(count / rowsPerPage) - 1}\r\n aria-label=\"Last Page\"\r\n >\r\n {theme.direction === 'rtl' ? : }\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nconst MyMarketWrapped = withStyles(actionsStyles, { withTheme: true })(\r\n MyMarket,\r\n);\r\n\r\nconst cardSource = {\r\n beginDrag(props) {\r\n return {\r\n id: props.searchid,\r\n index: props.index,\r\n }\r\n },\r\n};\r\n\r\nconst cardTarget = {\r\n hover(props, monitor, component) {\r\n const dragIndex = monitor.getItem().index\r\n const hoverIndex = props.index\r\n\r\n // Don't replace items with themselves\r\n if (dragIndex === hoverIndex) {\r\n return;\r\n }\r\n\r\n // Determine rectangle on screen\r\n const hoverBoundingRect = (findDOMNode(\r\n component,\r\n )).getBoundingClientRect();\r\n\r\n // Get vertical middle\r\n // const hoverMiddleY = (hoverBoundingRect.bottom - hoverBoundingRect.top) / 2;\r\n\r\n // Determine mouse position\r\n const clientOffset = monitor.getClientOffset();\r\n\r\n // Get pixels to the top\r\n //const hoverClientY = (clientOffset).y - hoverBoundingRect.top;\r\n\r\n // Only perform the move when the mouse has crossed half of the items height\r\n // When dragging downwards, only move when the cursor is below 50%\r\n // When dragging upwards, only move when the cursor is above 50%\r\n // Dragging downwards\r\n // if (dragIndex < hoverIndex && hoverClientY < hoverMiddleY) {\r\n // return;\r\n // }\r\n\r\n //should not drag first div.\r\n if (dragIndex === 0 || hoverIndex === 0) { return; }\r\n\r\n // Dragging upwards\r\n // if (dragIndex > hoverIndex && hoverClientY > hoverMiddleY) {\r\n // return;\r\n // }\r\n\r\n // Time to actually perform the action\r\n props.moveCard(dragIndex, hoverIndex);\r\n\r\n // Note: we're mutating the monitor item here!\r\n // Generally it's better to avoid mutations,\r\n // but it's good here for the sake of performance\r\n // to avoid expensive index searches.\r\n monitor.getItem().index = hoverIndex;\r\n },\r\n}\r\n\r\nclass Card extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n isLoading: false,\r\n modal: false,\r\n addmodal: false,\r\n deleteModal: false,\r\n deleteId: '',\r\n spacetype: 'Unit',\r\n ClimateControlled: '-1',\r\n Alarm: '-1',\r\n DoorType: '-1',\r\n DriveUp: '-1',\r\n Elevator: '-1',\r\n Power: '-1',\r\n OutdoorAccess: '-1',\r\n HumidityControlled: '-1',\r\n Floor: '-1',\r\n ad_Size: 'predefined',\r\n userStore: [],\r\n userStoreList: [],\r\n countryCode: '',\r\n parkingminlength: '',\r\n parkingmaxlength: '',\r\n lengthWidthMatches: '',\r\n Car: '',\r\n RV: '',\r\n Large: '',\r\n unitDetail: [],\r\n editisSpecifiedSizes: '',\r\n editSpaceChange: '',\r\n editParkUnits: '',\r\n editParkingisSpecifiedSizes: '',\r\n editparkingmaxlength: '',\r\n editparkingminlength: '',\r\n editCar: '',\r\n editRV: '',\r\n editLarge: '',\r\n emptyParking: '',\r\n emptyWidth: '',\r\n editlengthWidthMatches: 0,\r\n extractMatchchange: 0,\r\n LengthWidthMatchchange: 0,\r\n widthLengthchange: 0,\r\n editextacttMatches: 0,\r\n editwlMatchPredefined: 0,\r\n editSearchId: '',\r\n editName: '',\r\n trackModalData: '',\r\n storeModal: false,\r\n pageCountMDT: 0,\r\n pageCount: 0,\r\n resData: '',\r\n snackOpen: false,\r\n snackMSg: '',\r\n hideSpecifiedtext: '',\r\n WidthPlusMinus: '',\r\n LengthPlusMinus: '',\r\n HeightPlusMinus: '',\r\n tooltipOpen: false,\r\n spaceTypeLookUp: [],\r\n selectedSpaceTypes: '',\r\n editSpaceTypeLookUp: [],\r\n editSelectedSpaceTypes: '',\r\n allSpaceTypeChecked: false,\r\n allSpaceTypeCheckedEdit: false,\r\n\r\n // storeid:props.location.storeid\r\n };\r\n this.trackModal = this.trackModal.bind(this);\r\n this.trackModalClose = this.trackModalClose.bind(this);\r\n this.snackHandleclose = this.snackHandleclose.bind(this);\r\n this.toggleModal = this.toggleModal.bind(this);\r\n this.handleChange = this.handleChange.bind(this);\r\n this.handleChange1 = this.handleChange1.bind(this);\r\n this.spaceTypeCheck = this.spaceTypeCheck.bind(this);\r\n }\r\n\r\n static propTypes = {\r\n connectDragSource: PropTypes.func.isRequired,\r\n connectDropTarget: PropTypes.func.isRequired,\r\n index: PropTypes.number.isRequired,\r\n isDragging: PropTypes.bool.isRequired,\r\n id: PropTypes.any.isRequired,\r\n name: PropTypes.string.isRequired,\r\n avgPrice: PropTypes.any.isRequired,\r\n priceTrend: PropTypes.any.isRequired,\r\n myStorePrice: PropTypes.any.isRequired,\r\n moveCard: PropTypes.func.isRequired,\r\n currency: PropTypes.any.isRequired,\r\n countryCode: PropTypes.any.isRequired,\r\n storeid: PropTypes.any.isRequired,\r\n StoreName: PropTypes.any.isRequired,\r\n StoreAddress: PropTypes.any.isRequired,\r\n StoreCity: PropTypes.any.isRequired,\r\n StoreState: PropTypes.any.isRequired,\r\n StoreZipcode: PropTypes.any.isRequired,\r\n StoreRadius: PropTypes.any.isRequired,\r\n noOfStores: PropTypes.any.isRequired,\r\n storeCount: PropTypes.any.isRequired,\r\n priceTrends1: PropTypes.any.isRequired,\r\n\r\n }\r\n\r\n snackHandleclose = (event, reason) => {\r\n if (reason === 'clickaway') {\r\n return;\r\n }\r\n this.setState({ snackOpen: false });\r\n };\r\n resetEditUnit(id) {\r\n\r\n //this.myFormupdate && this.myFormupdate.reset();\r\n let unitDetail = this.state.unitDetail;\r\n unitDetail = [];\r\n this.setState({\r\n unitDetail\r\n })\r\n this.toggleModal(id);\r\n\r\n }\r\n toggle() {\r\n this.setState({\r\n tooltipOpen: !this.state.tooltipOpen\r\n });\r\n }\r\n\r\n toggleModal(id) {\r\n this.state.isLoading = true;\r\n this.setState({\r\n isLoading: true\r\n })\r\n this.setState(state => ({ modal: true }))\r\n const editParam = id.split(\"/\");\r\n let Sid = editParam[0];\r\n let countryCode = editParam[1];\r\n let token = localStorage.getItem('accessKey');\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n }\r\n\r\n this.state.countryCode = countryCode;\r\n this.setState({ countryCode: this.state.countryCode });\r\n this.userStoreUnit();\r\n\r\n axios.post(CONFIG.API_URL + 'market/unitdetail/' + Sid + '/' + CONFIG.RegionId)\r\n .then(res => {\r\n let dataSpaceTypeResult = res.data.spaceTypes;\r\n let filterDataSet = dataSpaceTypeResult.filter(find => (find.countryCode === this.props.countryCode) && (find.regionId === CONFIG.RegionId));\r\n let checkAllSpacetypeisTrue = filterDataSet && filterDataSet.length > 1 && filterDataSet.find(data => (data.isSelected === 0) && (data.storageType !== \"Parking\")) ? true : false;\r\n this.setState(checkAllSpacetypeisTrue === false ? {allSpaceTypeCheckedEdit: true, editSpaceTypeLookUp: filterDataSet} : {allSpaceTypeCheckedEdit: false, editSpaceTypeLookUp: filterDataSet});\r\n let resData = res.data.competitor;\r\n let unitDetail = res.data.competitor;\r\n let editSearchId = unitDetail.searchID;\r\n let editlengthWidthMatches = unitDetail.wlMatchSpecific === true ? 1 : 0;\r\n let editextacttMatches = unitDetail.exactMatch === true ? 1 : 0;\r\n let editwlMatchPredefined = unitDetail.wlMatchPredefined === true ? 1 : 0;\r\n let editName = unitDetail.name;\r\n let editisSpecifiedSizes = '';\r\n let editSpaceChange = '';\r\n let editParkUnits = '';\r\n let editParkingisSpecifiedSizes = '';\r\n let editparkingminlength = '';\r\n let editparkingmaxlength = '';\r\n let hideSpecifiedtext = '';\r\n //console.log(this.state.editlengthWidthMatches);\r\n if (unitDetail.isSpecifiedSizes === true) {\r\n editisSpecifiedSizes = 'editSpecific';\r\n hideSpecifiedtext = 2;\r\n }\r\n else if (unitDetail.sqft > 0 || unitDetail.sqftTo > 0) {\r\n editisSpecifiedSizes = 'editSquareFootage';\r\n hideSpecifiedtext = 3;\r\n }\r\n else {\r\n editisSpecifiedSizes = 'editPredefined';\r\n hideSpecifiedtext = 1;\r\n }\r\n if (unitDetail.spaceType === 'Unit') {\r\n editSpaceChange = \"Unit\";\r\n\r\n\r\n }\r\n else {\r\n editSpaceChange = \"Parking\";\r\n\r\n\r\n if (unitDetail.rv === 1) {\r\n editParkUnits = \"2\";\r\n\r\n } else if (unitDetail.car === 1) {\r\n editParkUnits = \"1\";\r\n\r\n } else if (unitDetail.otherVehicle === 1) {\r\n editParkUnits = \"3\";\r\n\r\n } else {\r\n editParkUnits = \"-1\";\r\n\r\n }\r\n if (unitDetail.car === 1 || unitDetail.otherVehicle === 1 || unitDetail.rv === 1 || unitDetail.isSpecifiedSizes === false) {\r\n editParkingisSpecifiedSizes = 'editParkingPredefined';\r\n editparkingminlength = '';\r\n editparkingmaxlength = '';\r\n }\r\n else {\r\n editParkingisSpecifiedSizes = 'editParkingSpecific';\r\n editparkingminlength = unitDetail.parkingminlength;\r\n editparkingmaxlength = unitDetail.parkingmaxlength;\r\n }\r\n }\r\n this.setState({ unitDetail, resData, editSearchId, editName, editlengthWidthMatches, editextacttMatches, editwlMatchPredefined, editisSpecifiedSizes, editSpaceChange, editParkUnits, editParkingisSpecifiedSizes, editparkingminlength, editparkingmaxlength, hideSpecifiedtext, isLoading: false });\r\n\r\n })\r\n .catch((err) => {\r\n // console.log(err)\r\n this.setState({ isLoading: false });\r\n if (err.res.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else {\r\n alert(err.res.data);\r\n this.setState({ isLoading: false });\r\n }\r\n });\r\n this.state.isLoading = false;\r\n }\r\n // below the function add for get space types\r\n getSpaceType() {\r\n this.setState({\r\n isLoading: true\r\n })\r\n let token = localStorage.getItem('accessKey');\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n }\r\n let data = {\r\n \"RegionId\": CONFIG.RegionId,\r\n \"countryCode\": this.props.countryCode\r\n }\r\n axios.post(CONFIG.API_URL + 'dashboard/lookupspacetypes/', data)\r\n .then(res => {\r\n let dataResult = res.data.data;\r\n // let filterDataSet = dataResult.filter(find => find.countryCode === this.props.countryCode);\r\n let filterDataSet = dataResult.filter(find => (find.countryCode === this.props.countryCode) && (find.regionId === CONFIG.RegionId));\r\n this.setState({ spaceTypeLookUp: filterDataSet, isLoading: false });\r\n })\r\n .catch((err) => {\r\n // console.log(err)\r\n this.setState({ isLoading: false });\r\n if (err.res.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else {\r\n alert(err.res.data);\r\n }\r\n });\r\n }\r\n\r\n /*Add Unit Type*/\r\n addtoggleModal(countryCode) {\r\n\r\n //countryCode = countryCode;\r\n this.setState({ isLoading: true })\r\n this.state.countryCode = countryCode;\r\n this.setState({ countryCode: this.state.countryCode });\r\n this.userStoreUnit();\r\n this.setState({ isLoading: false });\r\n this.getSpaceType();\r\n this.setState(state => ({ addmodal: !state.addmodal }))\r\n this.state.ad_Size = 'predefined';\r\n let spacetype = \"Unit\";\r\n let fields = \"\";\r\n let LengthPlusMinus = '';\r\n let HeightPlusMinus = '';\r\n let WidthPlusMinus = '';\r\n this.setState({ ad_Size: this.state.ad_Size, spacetype, fields, LengthPlusMinus, HeightPlusMinus, WidthPlusMinus , allSpaceTypeChecked: false });\r\n\r\n }\r\n userStoreUnit() {\r\n let countryCode = this.state.countryCode;\r\n let token = localStorage.getItem('accessKey');\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n }\r\n axios.post(CONFIG.API_URL + 'market/lookupdataunit/' + countryCode + '/' + CONFIG.RegionId)\r\n .then(res => {\r\n this.setState({ isLoading: false });\r\n let userStore = res.data.userstore;\r\n let userStoreList = res.data.userstore;\r\n this.setState({ userStore })\r\n this.setState({ userStoreList })\r\n //console.log(res);\r\n })\r\n .catch((err) => {\r\n this.setState({ isLoading: false });\r\n if (err.res.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else {\r\n alert(err.response.data);\r\n }\r\n });\r\n\r\n }\r\n\r\n toggleClose = () => this.setState(state => ({ addmodal: false, allSpaceTypeChecked: false, allSpaceTypeCheckedEdit: false, widthLengthchange: 0, extractMatchchange: 0, LengthWidthMatchchange: 0 }))\r\n\r\n\r\n editMarketSubmit(event, errors, values) {\r\n\r\n if (errors.length > 0) {\r\n\r\n console.log(errors);\r\n }\r\n else {\r\n var cc = false;\r\n if (values.editcountryCode === \"US\" || values.editcountryCode === \"CA\" || CONFIG.RegionId === 3) {\r\n cc = true;\r\n }\r\n if (values.editSpaceType === \"Unit\" && this.state.editisSpecifiedSizes === \"editSpecific\" && values.editWidth === \"\" && cc === false) {\r\n this.setState({ snackOpen: true, snackMSg: \"Please enter the specific size.\" });\r\n }\r\n else if (values.editSpaceType === \"Unit\" && this.state.editisSpecifiedSizes === \"editSpecific\" && values.editWidth === \"\" && cc === true) {\r\n this.setState({ snackOpen: true, snackMSg: \"Please enter the specific size.\" });\r\n }\r\n else if (values.editSpaceType === \"Unit\" && this.state.editisSpecifiedSizes !== \"editSpecific\" && this.state.editisSpecifiedSizes !== \"editPredefined\" && values.editSqFtFrom === \"\" && values.editSqFtTo === \"\" && cc === true) {\r\n this.setState({ snackOpen: true, snackMSg: \"Please enter desired Sq.Ft range.\" });\r\n }\r\n else if (values.editSpaceType === \"Unit\" && this.state.editisSpecifiedSizes !== \"editSpecific\" && this.state.editisSpecifiedSizes !== \"editPredefined\" && parseFloat(values.editSqFtFrom) > parseFloat(values.editSqFtTo) && cc === true) {\r\n this.setState({ snackOpen: true, snackMSg: \"'From' value cannot be greater than or equal to 'To' value! Please re-enter Sq.Ft range.\" });\r\n }\r\n else if (this.state.editisSpecifiedSizes === \"editSquareFootage\" && values.editSpaceType === \"Unit\" && values.editSqFtTo === \"\" && values.editSqFtFrom === \"\" && cc === false) {\r\n this.setState({ snackOpen: true, snackMSg: \"Please enter desired m² range\" });\r\n }\r\n else if (this.state.editisSpecifiedSizes === \"editSquareFootage\" && values.editSpaceType === \"Unit\" && values.editSqFtTo == \"0\" && values.editSqFtFrom == \"0\" && cc === true) {\r\n this.setState({ snackOpen: true, snackMSg: \"Please enter 'To' Sq.Ft value.\" });\r\n }\r\n else if (this.state.editisSpecifiedSizes === \"editSquareFootage\" && values.editSpaceType === \"Unit\" && values.editSqFtFrom == \"\" && cc === true) {\r\n this.setState({ snackOpen: true, snackMSg: \"Please enter 'From' Sq.Ft value.\" });\r\n }\r\n else if (this.state.editisSpecifiedSizes === \"editSquareFootage\" && values.editSpaceType === \"Unit\" && values.editSqFtTo == \"\" && cc === true) {\r\n this.setState({ snackOpen: true, snackMSg: \"Please enter 'To' Sq.Ft value.\" });\r\n }\r\n else if (this.state.editisSpecifiedSizes === \"editSquareFootage\" && values.editSpaceType === \"Unit\" && values.editSqFtTo == \"0\" && values.editSqFtFrom == \"0\" && cc === false) {\r\n this.setState({ snackOpen: true, snackMSg: \"Please enter 'To' m² value.\" });\r\n }\r\n else if (this.state.editisSpecifiedSizes === \"editSquareFootage\" && values.editSpaceType === \"Unit\" && values.editSqFtFrom === \"\" && cc === false) {\r\n this.setState({ snackOpen: true, snackMSg: \"Please enter 'From' m² value.\" });\r\n\r\n }\r\n else if (this.state.editisSpecifiedSizes === \"editSquareFootage\" && values.editSpaceType === \"Unit\" && values.editSqFtTo === \"\" && cc === false) {\r\n this.setState({ snackOpen: true, snackMSg: \"Please enter 'To' m² value.\" });\r\n\r\n }\r\n else if (this.state.editisSpecifiedSizes === \"editSquareFootage\" && values.editSpaceType === \"Unit\" && parseFloat(values.editSqFtFrom) < 0 && cc === false) {\r\n this.setState({ snackOpen: true, snackMSg: \"Please enter valid 'From' m² value.\" });\r\n }\r\n else if (this.state.editisSpecifiedSizes === \"editSquareFootage\" && values.editSpaceType === \"Unit\" && parseFloat(values.editSqFtFrom) > parseFloat(values.editSqFtTo) && cc === false) {\r\n this.setState({ snackOpen: true, snackMSg: \"'From' value cannot be greater than or equal to 'To' value! Please re-enter m² range.\" });\r\n }\r\n else if (values.editSpaceType === \"Parking\" && this.state.editParkingisSpecifiedSizes === \"editParkingSpecific\" && values.editparkingmaxlength === '' && values.editparkingminlength === '' && cc === false) {\r\n this.setState({ snackOpen: true, snackMSg: \"Please enter desired m² range\" });\r\n }\r\n else if (values.editSpaceType === \"Parking\" && this.state.editParkingisSpecifiedSizes === \"editParkingSpecific\" && values.editparkingmaxlength === '' && cc === false) {\r\n this.setState({ snackOpen: true, snackMSg: \"Please enter 'To' m² range\" });\r\n }\r\n else if (values.editSpaceType === \"Parking\" && this.state.editParkingisSpecifiedSizes === \"editParkingSpecific\" && values.editparkingminlength === '' && cc === false) {\r\n this.setState({ snackOpen: true, snackMSg: \"Please enter 'From' m² range\" });\r\n }\r\n else if (values.editSpaceType === \"Parking\" && values.editparkingmaxlength === '' && values.editparkingminlength === '' && this.state.editParkingisSpecifiedSizes === \"editParkingSpecific\" && cc === true) {\r\n this.setState({ snackOpen: true, snackMSg: \"Please enter desired Sq.Ft range.\" });\r\n }\r\n else if (values.editSpaceType === \"Parking\" && values.editparkingminlength === '' && this.state.editParkingisSpecifiedSizes === \"editParkingSpecific\" && cc === true) {\r\n this.setState({ snackOpen: true, snackMSg: \"Please enter 'From' Sq.Ft range.\" });\r\n }\r\n else if (values.editSpaceType === \"Parking\" && values.editparkingmaxlength === '' && this.state.editParkingisSpecifiedSizes === \"editParkingSpecific\" && cc === true) {\r\n this.setState({ snackOpen: true, snackMSg: \"Please enter 'To' Sq.Ft range.\" });\r\n }\r\n else if (values.editSpaceType === \"Parking\" && this.state.editParkingisSpecifiedSizes === \"editParkingSpecific\" && values.editparkingmaxlength == '0' && values.editparkingminlength == '0' && cc === false) {\r\n this.setState({ snackOpen: true, snackMSg: \"Please enter 'To' m² range\" });\r\n }\r\n // else if ( values.editSpaceType === \"Parking\" && values.editparkingmaxlength < 0 && values.editparkingminlength < 0 && this.state.editParkingisSpecifiedSizes === \"editParkingSpecific\" && cc === true) {\r\n // this.setState({ snackOpen: true, snackMSg: \"Please enter Valid Sq.Ft range.\" });\r\n // }\r\n else if (values.editSpaceType === \"Parking\" && values.editparkingmaxlength == '0' && values.editparkingminlength == '0' && this.state.editParkingisSpecifiedSizes === \"editParkingSpecific\" && cc === true) {\r\n this.setState({ snackOpen: true, snackMSg: \"Please enter 'To' Sq.Ft range.\" });\r\n }\r\n else if (values.editSpaceType === \"Parking\" && this.state.editParkingisSpecifiedSizes === \"editParkingSpecific\" && parseFloat(values.editparkingminlength) < 0 && cc === false) {\r\n this.setState({ snackOpen: true, snackMSg: \"Please enter valid 'From' m² range\" });\r\n }\r\n else if (values.editSpaceType === \"Parking\" && this.state.editParkingisSpecifiedSizes === \"editParkingSpecific\" && parseFloat(values.editparkingminlength) > parseFloat(values.editparkingmaxlength) && cc === false) {\r\n this.setState({ snackOpen: true, snackMSg: \"'From' value cannot be greater than or equal to 'To' value! Please re-enter m² range.\" });\r\n }\r\n else if (values.editSpaceType === \"Parking\" && parseFloat(values.editparkingminlength) < 0 && this.state.editParkingisSpecifiedSizes === \"editParkingSpecific\" && cc === true) {\r\n this.setState({ snackOpen: true, snackMSg: \"Please enter valid 'From' Sq.Ft range.\" });\r\n }\r\n else if (values.editSpaceType === \"Parking\" && parseFloat(values.editparkingminlength) > parseFloat(values.editparkingmaxlength) && this.state.editParkingisSpecifiedSizes === \"editParkingSpecific\" && cc === true) {\r\n this.setState({ snackOpen: true, snackMSg: \"'From' value cannot be greater than or equal to 'To' value! Please re-enter Sq.Ft range.\" });\r\n }\r\n else {\r\n // console.log(values);\r\n //let editad_SizeType = this.state.ad_Size;\r\n //let editunitSize = values.sizes;\r\n let editWidth = '';\r\n let editLength = '';\r\n let editHeight = '';\r\n let editIsSpecifiedSizes = '';\r\n let editCar = '';\r\n let editRV = '';\r\n let editOtherVehicle = '';\r\n let editWidthPlusMinus = '';\r\n let editLengthPlusMinus = '';\r\n let editHeightPlusMinus = '';\r\n let editSqFtFrom = '';\r\n let editSqFtTo = '';\r\n let editClimateControlled = '';\r\n let editHumidityControlled = '';\r\n let editFloor = '';\r\n let editOutdoorAccess = '';\r\n let editAlarm = '';\r\n let editPower = '';\r\n let editDriveUp = '';\r\n let editElevator = '';\r\n let editCovered = '';\r\n let editDoorType = '';\r\n let editLengthWidthMatch = '';\r\n let editextractMatchchanges = '';\r\n let editwidthLengthchanges = '';\r\n let editparkingminlength = '';\r\n let editparkingmaxlength = '';\r\n let editMeasurement = '';\r\n\r\n if (values.editcountryCode === \"US\" || values.editcountryCode === \"CA\" || CONFIG.RegionId === 3 || values.editcountryCode === \"AU\" || values.editcountryCode === \"NZ\") {\r\n\r\n if (this.state.editSpaceChange === 'Unit') {\r\n editCar = -1;\r\n editRV = -1;\r\n editOtherVehicle = -1;\r\n editClimateControlled = values.editClimateControlled ? values.editClimateControlled : this.state.unitDetail.climateControlled;\r\n editHumidityControlled = values.editHumidityControlled ? values.editHumidityControlled : this.state.unitDetail.humidityControlled;\r\n editFloor = values.editFloor ? values.editFloor : this.state.unitDetail.floor;\r\n editOutdoorAccess = values.editOutdoorAccess ? values.editOutdoorAccess : this.state.unitDetail.outdoorAccess;\r\n editAlarm = values.editAlarm ? values.editAlarm : this.state.unitDetail.alarm;\r\n editPower = values.editPower ? values.editPower : this.state.unitDetail.power;\r\n editDriveUp = values.editDriveUp ? values.editDriveUp : this.state.unitDetail.driveUp;\r\n editElevator = values.editElevator ? values.editElevator : this.state.unitDetail.elevator;\r\n editCovered = -1;\r\n editDoorType = values.editDoorType ? values.editDoorType : this.state.unitDetail.doorType;\r\n editparkingminlength = -1;\r\n editparkingmaxlength = -1;\r\n // editMeasurement = \"Square Feet\"\r\n editMeasurement = values.editcountryCode === \"AU\" || values.editcountryCode === \"NZ\" ? \"Meters\" : \"Square Feet\";\r\n if (this.state.editisSpecifiedSizes === \"editPredefined\") {\r\n let editsizes = values.editsizes ? values.editsizes : this.state.unitDetail.width + 'x' + this.state.unitDetail.length;\r\n // console.log(editsizes)\r\n const reSize = editsizes.split('x');\r\n editWidth = reSize[0] ? reSize[0] : -1;\r\n editLength = reSize[1] ? reSize[1] : -1; \r\n editHeight = -1;\r\n editWidthPlusMinus = -1;\r\n editLengthPlusMinus = -1;\r\n editHeightPlusMinus = -1;\r\n editSqFtFrom = 0;\r\n editSqFtTo = 0;\r\n editIsSpecifiedSizes = 0;\r\n editLengthWidthMatch = 0;\r\n editextractMatchchanges = this.state.editextacttMatches === 1 ? 1 : 0;\r\n editwidthLengthchanges = this.state.editwlMatchPredefined === 1 ? 1 : 0;\r\n // console.log(editwidthLengthchanges)\r\n }\r\n else if (this.state.editisSpecifiedSizes === \"editSpecific\") {\r\n\r\n editWidth = values.editWidth ? values.editWidth : -1;\r\n editLength = values.editLength ? values.editLength : -1;\r\n editHeight = values.editHeight ? values.editHeight : -1;\r\n editWidthPlusMinus = values.editWidthPlusMinus ? values.editWidthPlusMinus : 0;\r\n editLengthPlusMinus = values.editLengthPlusMinus ? values.editLengthPlusMinus : 0;\r\n editHeightPlusMinus = values.editHeightPlusMinus ? values.editHeightPlusMinus : 0;\r\n editSqFtFrom = 0;\r\n editSqFtTo = 0;\r\n editIsSpecifiedSizes = 1;\r\n editLengthWidthMatch = this.state.editlengthWidthMatches ? this.state.editlengthWidthMatches : 0;\r\n editextractMatchchanges = 0;\r\n editwidthLengthchanges = 0;\r\n }\r\n else {\r\n editWidth = '';\r\n editLength = '';\r\n editHeight = -1;\r\n editWidthPlusMinus = -1;\r\n editLengthPlusMinus = -1;\r\n editHeightPlusMinus = -1;\r\n editSqFtFrom = values.editSqFtFrom ? values.editSqFtFrom : 0;\r\n editSqFtTo = values.editSqFtTo ? values.editSqFtTo : 0;\r\n editIsSpecifiedSizes = 0;\r\n editLengthWidthMatch = 0;\r\n editextractMatchchanges = 0;\r\n editwidthLengthchanges = 0;\r\n }\r\n\r\n }\r\n else {\r\n\r\n editWidth = '';\r\n editLength = '';\r\n editHeight = -1;\r\n editWidthPlusMinus = -1;\r\n editLengthPlusMinus = -1;\r\n editHeightPlusMinus = -1;\r\n editSqFtFrom = 0;\r\n editSqFtTo = 0;\r\n editClimateControlled = -1;\r\n editHumidityControlled = -1;\r\n editFloor = -1;\r\n editOutdoorAccess = -1;\r\n editAlarm = -1;\r\n editDriveUp = -1;\r\n editDoorType = -1;\r\n editPower = -1;\r\n editElevator = -1;\r\n editLengthWidthMatch = 0;\r\n editextractMatchchanges = 0;\r\n editwidthLengthchanges = 0;\r\n // editMeasurement = \"Square Feet\"\r\n editMeasurement = values.editcountryCode === \"AU\" || values.editcountryCode === \"NZ\" ? \"Meters\" : \"Square Feet\";\r\n\r\n if (this.state.editParkingisSpecifiedSizes === \"editParkingPredefined\") {\r\n\r\n editparkingminlength = -1;\r\n editparkingmaxlength = -1;\r\n editIsSpecifiedSizes = 0;\r\n editCovered = values.editCovered ? parseInt(values.editCovered) : parseInt(this.state.unitDetail.covered);\r\n editCar = values.sizes === \"1\" ? 1 : -1;\r\n editRV = values.sizes === \"2\" ? 1 : -1;\r\n editOtherVehicle = values.sizes === \"3\" ? 1 : -1;\r\n editparkingminlength = values.editparkingminlength ? values.editparkingminlength : '-1';\r\n editparkingmaxlength = values.editparkingmaxlength ? values.editparkingmaxlength : '-1';\r\n }\r\n else {\r\n\r\n editIsSpecifiedSizes = 1;\r\n editCar = -1;\r\n editRV = -1;\r\n editOtherVehicle = -1;\r\n editparkingminlength = values.editparkingminlength ? values.editparkingminlength : '-1';\r\n editparkingmaxlength = values.editparkingmaxlength ? values.editparkingmaxlength : '-1';\r\n editCovered = values.editCovered ? parseInt(values.editCovered) : parseInt(this.state.unitDetail.covered);\r\n\r\n }\r\n }\r\n }\r\n else {\r\n if (this.state.editSpaceChange === 'Unit') {\r\n editHeight = -1;\r\n editWidthPlusMinus = -1;\r\n editLengthPlusMinus = -1;\r\n editHeightPlusMinus = -1;\r\n editLengthWidthMatch = 0;\r\n editwidthLengthchanges = 0;\r\n editparkingminlength = '-1';\r\n editparkingmaxlength = '-1';\r\n editCovered = -1;\r\n editPower = parseInt(values.editPower) != -1 ? parseInt(values.editPower) : -1;\r\n editElevator = parseInt(values.editElevator) != -1 ? parseInt(values.editElevator) : -1;\r\n editClimateControlled = -1;\r\n editHumidityControlled = -1;\r\n //editFloor = -1;\r\n editFloor = values.editFloor ? values.editFloor : this.state.unitDetail.floor;\r\n editOutdoorAccess = -1;\r\n editAlarm = -1;\r\n editDriveUp = -1;\r\n editDoorType = -1;\r\n //editMeasurement = \"Square Meter\";\r\n editMeasurement = CONFIG.RegionId === 3 ? \"Square Feet\" : \"Square Meter\";\r\n editCar = -1;\r\n editRV = -1;\r\n editOtherVehicle = -1;\r\n if (this.state.editisSpecifiedSizes === \"editPredefined\") {\r\n let editsizes = values.editsizes ? values.editsizes : this.state.unitDetail.width + 'x' + this.state.unitDetail.length;\r\n const reSizes = editsizes.split('x'); \r\n editWidth = reSizes[0] ? reSizes[0] : -1;\r\n editLength = reSizes[1] ? reSizes[1] : -1; \r\n editextractMatchchanges = this.state.editextacttMatches;\r\n editIsSpecifiedSizes = 0;\r\n editSqFtFrom = 0;\r\n editSqFtTo = 0;\r\n\r\n }\r\n else {\r\n\r\n editWidth = '';\r\n editLength = '';\r\n editextractMatchchanges = 0;\r\n editSqFtFrom = values.editSqFtFrom ? values.editSqFtFrom : 0;\r\n editSqFtTo = values.editSqFtTo ? values.editSqFtTo : 0;\r\n editIsSpecifiedSizes = 0;\r\n }\r\n }\r\n else {\r\n editWidth = '';\r\n editLength = '';\r\n editextractMatchchanges = 0;\r\n editHeight = -1;\r\n editWidthPlusMinus = -1;\r\n editLengthPlusMinus = -1;\r\n editHeightPlusMinus = -1;\r\n editLengthWidthMatch = 0;\r\n editwidthLengthchanges = 0;\r\n editCovered = values.editCovered ? parseInt(values.editCovered) : parseInt(this.state.unitDetail.covered);\r\n editClimateControlled = -1;\r\n editHumidityControlled = -1;\r\n editFloor = -1;\r\n editOutdoorAccess = -1;\r\n editAlarm = -1;\r\n editDriveUp = -1;\r\n editDoorType = -1;\r\n editPower = -1;\r\n editElevator = -1;\r\n // editMeasurement = \"Square Meter\";\r\n editMeasurement = CONFIG.RegionId === 3 ? \"Square Feet\" : \"Square Meter\";\r\n editSqFtFrom = 0;\r\n editSqFtTo = 0;\r\n if (this.state.editParkingisSpecifiedSizes === \"editParkingPredefined\") {\r\n\r\n editWidth = '';\r\n editLength = '';\r\n editIsSpecifiedSizes = 0;\r\n editCar = values.sizes === \"1\" ? 1 : -1;\r\n editRV = values.sizes === \"2\" ? 1 : -1;\r\n editOtherVehicle = values.sizes === \"3\" ? 1 : -1;\r\n editparkingminlength = values.editparkingminlength ? values.editparkingminlength : '-1';\r\n editparkingmaxlength = values.editparkingmaxlength ? values.editparkingmaxlength : '-1';\r\n }\r\n else {\r\n editWidth = '';\r\n editLength = '';\r\n editparkingminlength = values.editparkingminlength ? values.editparkingminlength : '-1';\r\n editparkingmaxlength = values.editparkingmaxlength ? values.editparkingmaxlength : '-1';\r\n editIsSpecifiedSizes = 1;\r\n editCar = -1;\r\n editRV = -1;\r\n editOtherVehicle = -1;\r\n }\r\n }\r\n }\r\n if(this.state.editSelectedSpaceTypes === \"\"){\r\n let filterArr = [];\r\n let sendFinalDataSpaceType = this.state.editSpaceTypeLookUp;\r\n let selectedTrueOnly = sendFinalDataSpaceType.filter(data => data.isSelected === 1);\r\n selectedTrueOnly.forEach(d => {\r\n filterArr.push(d.spaceType)\r\n })\r\n this.setState({ editSelectedSpaceTypes: filterArr.toString() });\r\n }\r\n const data1 = {\r\n \"searchID\": this.state.editSearchId,\r\n \"Name\": values.editName ? values.editName : this.state.unitDetail.name,\r\n \"SpaceType\": this.state.editSpaceChange,\r\n \"Width\": editWidth ? editWidth : '',\r\n \"Length\": editLength ? editLength : '',\r\n \"Height\": editHeight,\r\n \"WidthPlusMinus\": editWidthPlusMinus,\r\n \"LengthPlusMinus\": editLengthPlusMinus,\r\n \"HeightPlusMinus\": editHeightPlusMinus,\r\n \"Alarm\": editAlarm != -1 ? editAlarm : -1,\r\n \"Power\": parseInt(editPower) != -1 ? editPower : -1,\r\n \"Covered\": editCovered,\r\n \"DriveUp\": editDriveUp,\r\n \"Elevator\": parseInt(editElevator) != -1 ? editElevator : -1,\r\n \"Car\": parseInt(editCar),\r\n \"RV\": parseInt(editRV),\r\n \"OtherVehicle\": parseInt(editOtherVehicle),\r\n \"DoorType\": parseInt(editDoorType),\r\n \"ExactMatch\": parseInt(editextractMatchchanges),\r\n \"WLMatchPredefined\": parseInt(editwidthLengthchanges),\r\n \"WLMatchSpecific\": parseInt(editLengthWidthMatch),\r\n \"SqFtFrom\": editSqFtFrom,\r\n \"sqFTTo\": editSqFtTo,\r\n \"IsSpecifiedSizes\": parseInt(editIsSpecifiedSizes),\r\n \"ClimateControlled\": editClimateControlled,\r\n \"HumidityControlled\": editHumidityControlled,\r\n \"Floor\": editFloor,\r\n \"OutdoorAccess\": editOutdoorAccess,\r\n \"parkingminlength\": editparkingminlength,\r\n \"parkingmaxlength\": editparkingmaxlength,\r\n \"measurement\": editMeasurement,\r\n \"RegionId\": CONFIG.RegionId,\r\n \"SelectedSpaceType\": this.state.editSelectedSpaceTypes\r\n }\r\n\r\n\r\n\r\n let token = localStorage.getItem('accessKey');\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n }\r\n\r\n axios.post(CONFIG.API_URL + 'market/updateunit/', data1)\r\n .then(res => {\r\n\r\n this.setState(state => ({ modal: false }));\r\n var isElement = document.getElementById('r2');\r\n if (isElement == null) {\r\n document.getElementById('r1').click();\r\n }\r\n else {\r\n document.getElementById('r1').click();\r\n document.getElementById('r2').click();\r\n }\r\n this.props.parentMethod();\r\n this.setState({ isLoading: false });\r\n this.setState({ snackOpen: true, snackMSg: \"Unit type updated successfully\", unitDetail: [] });\r\n })\r\n .catch((err) => {\r\n this.setState({ isLoading: false });\r\n if (err.response.data.StatusCode === 400) {\r\n this.setState({ snackOpen: true, snackMSg: \"Unit Type Name already exists\" });\r\n }\r\n else if (err.res.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else {\r\n\r\n this.setState({ snackOpen: true, snackMSg: err.res.data });\r\n }\r\n });\r\n }\r\n\r\n }\r\n }\r\n\r\n addMarketSubmit(event, errors, values) {\r\n\r\n if (errors.length > 0) {\r\n\r\n console.log(errors);\r\n }\r\n else {\r\n\r\n var cc = false;\r\n if (values.countryCode === \"US\" || values.countryCode === \"CA\" || CONFIG.RegionId === 3) {\r\n cc = true;\r\n }\r\n let ad_SizeTypec = this.state.ad_Size;\r\n if (cc === true && (ad_SizeTypec === 'Specific' && values.Width === '' && values.SpaceType === 'Unit')) {\r\n this.setState({ snackOpen: true, snackMSg: \"Please enter specific size.\" });\r\n }\r\n else if (cc === false && (ad_SizeTypec === 'Specific' && values.Width === '' && values.SpaceType === 'Unit')) {\r\n this.setState({ snackOpen: true, snackMSg: \"Please enter specific size.\" });\r\n }\r\n else if (cc === false && (ad_SizeTypec === 'Measurement' && !values.SqFtFrom && !values.SqFtTo && values.SpaceType === 'Unit')) {\r\n this.setState({ snackOpen: true, snackMSg: \"Please enter desired m² range.\" });\r\n }\r\n else if (cc === false && (ad_SizeTypec === 'Measurement' && !values.SqFtFrom && values.SpaceType === 'Unit')) {\r\n this.setState({ snackOpen: true, snackMSg: \"Please enter 'From' m² value.\" });\r\n }\r\n else if (cc === false && (ad_SizeTypec === 'Measurement' && !values.SqFtTo && values.SpaceType === 'Unit')) {\r\n this.setState({ snackOpen: true, snackMSg: \"Please enter 'To' m² value.\" });\r\n }\r\n else if (cc === false && (ad_SizeTypec === 'Measurement' && values.SqFtFrom === '0' && values.SqFtTo === '0' && values.SpaceType === 'Unit')) {\r\n this.setState({ snackOpen: true, snackMSg: \"Please enter 'To' m² value.\" });\r\n }\r\n else if (cc === false && (ad_SizeTypec === 'Measurement' && parseFloat(values.SqFtFrom) < 0 && values.SpaceType === 'Unit')) {\r\n this.setState({ snackOpen: true, snackMSg: \"Please enter valid 'From' m² value.\" });\r\n }\r\n else if (cc === false && (ad_SizeTypec === 'Measurement' && parseFloat(values.SqFtFrom) > parseFloat(values.SqFtTo) && values.SpaceType === 'Unit')) {\r\n this.setState({ snackOpen: true, snackMSg: \"From' value cannot be greater than or equal to 'To' value! Please re-enter m² range.\" });\r\n }\r\n else if (cc === true && (ad_SizeTypec === 'Measurement' && values.SqFtFrom === '' && values.SqFtTo === '' && values.SpaceType === 'Unit')) {\r\n this.setState({ snackOpen: true, snackMSg: \"Please enter desired Sq.Ft range.\" });\r\n }\r\n else if (cc === true && (ad_SizeTypec === 'Measurement' && values.SqFtFrom === '' && values.SpaceType === 'Unit')) {\r\n this.setState({ snackOpen: true, snackMSg: \"Please enter 'From' Sq.Ft value.\" });\r\n }\r\n else if (cc === true && (ad_SizeTypec === 'Measurement' && values.SqFtTo === '' && values.SpaceType === 'Unit')) {\r\n this.setState({ snackOpen: true, snackMSg: \"Please enter 'To' Sq.Ft value.\" });\r\n }\r\n else if (cc === true && (ad_SizeTypec === 'Measurement' && values.SqFtFrom === '0' && values.SqFtTo === '0' && values.SpaceType === 'Unit')) {\r\n this.setState({ snackOpen: true, snackMSg: \"Please enter 'To' Sq.Ft value.\" });\r\n }\r\n else if (cc === true && (ad_SizeTypec === 'Measurement' && parseFloat(values.SqFtFrom) < 0 && values.SpaceType === 'Unit')) {\r\n this.setState({ snackOpen: true, snackMSg: \"Please enter valid 'From' Sq.Ft value.\" });\r\n }\r\n else if (cc === true && (ad_SizeTypec === 'Measurement' && parseFloat(values.SqFtFrom) > parseFloat(values.SqFtTo) && values.SpaceType === 'Unit')) {\r\n this.setState({ snackOpen: true, snackMSg: \"'From' value cannot be greater than or equal to 'To' value! Please re-enter Sq.Ft range.\" });\r\n }\r\n else if (cc === true && (ad_SizeTypec === 'Measurement' && values.parkingminlength === '' && values.SpaceType === 'Parking')) {\r\n this.setState({ snackOpen: true, snackMSg: \"Sq. Ft value must be greater than Zero or Enter a valid value in +/- besides it.\" });\r\n }\r\n else if (cc === true && (ad_SizeTypec === 'Specific' && values.parkingminlength === '' && values.parkingmaxlength === '' && values.SpaceType === 'Parking')) {\r\n this.setState({ snackOpen: true, snackMSg: \"Please enter desired Sq.Ft range.\" });\r\n }\r\n else if (cc === true && (ad_SizeTypec === 'Specific' && values.parkingminlength === '' && values.SpaceType === 'Parking')) {\r\n this.setState({ snackOpen: true, snackMSg: \"Please enter 'From' Sq.Ft range.\" });\r\n }\r\n else if (cc === true && (ad_SizeTypec === 'Specific' && values.parkingmaxlength === '' && values.SpaceType === 'Parking')) {\r\n this.setState({ snackOpen: true, snackMSg: \"Please enter 'To' Sq.Ft range.\" });\r\n }\r\n else if (cc === false && (ad_SizeTypec === 'Specific' && values.parkingminlength === '' && values.parkingmaxlength === '' && values.SpaceType === 'Parking')) {\r\n this.setState({ snackOpen: true, snackMSg: \"Please enter desired m² range.\" });\r\n }\r\n else if (cc === false && (ad_SizeTypec === 'Specific' && values.parkingminlength === '' && values.SpaceType === 'Parking')) {\r\n this.setState({ snackOpen: true, snackMSg: \"Please enter 'From' m² range.\" });\r\n }\r\n else if (cc === false && (ad_SizeTypec === 'Specific' && values.parkingmaxlength === '' && values.SpaceType === 'Parking')) {\r\n this.setState({ snackOpen: true, snackMSg: \"Please enter 'To' m² range.\" });\r\n }\r\n else if (cc === true && (ad_SizeTypec === 'Specific' && values.parkingminlength === '0' && values.parkingmaxlength === '0' && values.SpaceType === 'Parking')) {\r\n this.setState({ snackOpen: true, snackMSg: \"Please enter 'To' Sq.Ft range.\" });\r\n }\r\n else if (cc === false && (ad_SizeTypec === 'Specific' && values.parkingminlength === '0' && values.parkingmaxlength === '0' && values.SpaceType === 'Parking')) {\r\n this.setState({ snackOpen: true, snackMSg: \"Please enter 'To' m² range.\" });\r\n }\r\n else if (cc === true && (ad_SizeTypec === 'Specific' && parseFloat(values.parkingminlength) < 0 && values.SpaceType === 'Parking')) {\r\n this.setState({ snackOpen: true, snackMSg: \"Please enter valid 'From' Sq.Ft range.\" });\r\n }\r\n else if (cc === true && (ad_SizeTypec === 'Specific' && parseFloat(values.parkingminlength) > parseFloat(values.parkingmaxlength) && values.SpaceType === 'Parking')) {\r\n this.setState({ snackOpen: true, snackMSg: \"'From' value cannot be greater than or equal to 'To' value! Please re-enter Sq.Ft range.\" });\r\n }\r\n else if (cc === false && (ad_SizeTypec === 'Specific' && parseFloat(values.parkingminlength) < 0 && values.SpaceType === 'Parking')) {\r\n this.setState({ snackOpen: true, snackMSg: \"Please enter valid 'From' m² range.\" });\r\n }\r\n else if (cc === false && (ad_SizeTypec === 'Specific' && parseFloat(values.parkingminlength) > parseFloat(values.parkingmaxlength) && values.SpaceType === 'Parking')) {\r\n this.setState({ snackOpen: true, snackMSg: \"'From' value cannot be greater than or equal to 'To' value! Please re-enter m² range.\" });\r\n }\r\n\r\n else {\r\n let nameExit = values.Name;\r\n let Sid = values.StoreId;\r\n localStorage.setItem('StId', values.StoreId);\r\n let token = localStorage.getItem('accessKey');\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n }\r\n axios.post(CONFIG.API_URL + 'market/unitnamevalidation/' + nameExit + '/' + Sid)\r\n .then(res => {\r\n if (res.data.message === \"Success\") {\r\n\r\n this.setState({ snackOpen: true, snackMSg: \"Unit Type Name already exists\" });\r\n }\r\n else {\r\n\r\n\r\n let spaceState = values.SpaceType;\r\n //let Name =values.Name\r\n let ad_SizeType = this.state.ad_Size;\r\n let unitSize = values.sizes;\r\n let Width = '';\r\n let Length = '';\r\n let Height = '';\r\n let IsSpecifiedSizes = '';\r\n let Car = '';\r\n let RV = '';\r\n let OtherVehicle = '';\r\n let WidthPlusMinus = '';\r\n let LengthPlusMinus = '';\r\n let HeightPlusMinus = '';\r\n let SqFtFrom = '';\r\n let SqFtTo = '';\r\n let ClimateControlled = '';\r\n let HumidityControlled = '';\r\n let Floor = '';\r\n let OutdoorAccess = '';\r\n let Alarm = '';\r\n let Power = '';\r\n let DriveUp = '';\r\n let Elevator = '';\r\n let Covered = '';\r\n let DoorType = '';\r\n let LengthWidthMatch = '';\r\n let extractMatchchanges = '';\r\n let widthLengthchanges = '';\r\n let parkingminlength = '';\r\n let parkingmaxlength = '';\r\n let Measurement = '';\r\n if (values.countryCode === 'US' || values.countryCode === 'CA' || CONFIG.RegionId === 3 || values.countryCode === 'AU' || values.countryCode === 'NZ') {\r\n if (spaceState === 'Unit') {\r\n Car = -1;\r\n RV = -1;\r\n OtherVehicle = -1;\r\n ClimateControlled = values.ClimateControlled ? parseInt(values.ClimateControlled) : -1;\r\n HumidityControlled = values.HumidityControlled ? parseInt(values.HumidityControlled) : -1;\r\n Floor = values.Floor ? parseInt(values.Floor) : -1;\r\n OutdoorAccess = values.OutdoorAccess ? parseInt(values.OutdoorAccess) : -1;\r\n Alarm = values.Alarm ? parseInt(values.Alarm) : -1;\r\n Power = values.Power ? parseInt(values.Power) : -1;\r\n DriveUp = values.DriveUp ? parseInt(values.DriveUp) : -1;\r\n Elevator = values.Elevator ? parseInt(values.Elevator) : -1;\r\n Covered = -1;\r\n DoorType = values.DoorType ? parseInt(values.DoorType) : -1;\r\n parkingminlength = -1;\r\n parkingmaxlength = -1;\r\n // Measurement = \"Square Feet\"\r\n Measurement = values.countryCode === \"AU\" || values.countryCode === \"NZ\" ? \"Meters\" : \"Square Feet\";\r\n if (ad_SizeType === 'predefined') {\r\n const reSize = unitSize.split('x');\r\n Width = reSize[0] ? reSize[0] : -1;\r\n Length = reSize[1] ? reSize[1] : -1;\r\n Height = -1;\r\n WidthPlusMinus = -1;\r\n LengthPlusMinus = -1;\r\n HeightPlusMinus = -1;\r\n SqFtFrom = 0;\r\n SqFtTo = 0;\r\n IsSpecifiedSizes = 0;\r\n LengthWidthMatch = 0;\r\n extractMatchchanges = this.state.extractMatchchange;\r\n widthLengthchanges = this.state.widthLengthchange;\r\n\r\n }\r\n else if (ad_SizeType === 'Specific') {\r\n Width = values.Width ? values.Width : -1;\r\n Length = values.Length ? values.Length : -1;\r\n Height = values.Height ? values.Height : -1;\r\n WidthPlusMinus = values.WidthPlusMinus ? values.WidthPlusMinus : 0;\r\n LengthPlusMinus = values.LengthPlusMinus ? values.LengthPlusMinus : 0;\r\n HeightPlusMinus = values.HeightPlusMinus ? values.HeightPlusMinus : 0;\r\n SqFtFrom = 0;\r\n SqFtTo = 0;\r\n IsSpecifiedSizes = 1;\r\n LengthWidthMatch = this.state.LengthWidthMatchchange ? this.state.LengthWidthMatchchange : 0;\r\n extractMatchchanges = 0;\r\n widthLengthchanges = 0;\r\n }\r\n else {\r\n Width = '';\r\n Length = '';\r\n Height = -1;\r\n WidthPlusMinus = -1;\r\n LengthPlusMinus = -1;\r\n HeightPlusMinus = -1;\r\n SqFtFrom = values.SqFtFrom ? values.SqFtFrom : 0;\r\n SqFtTo = values.SqFtTo ? values.SqFtTo : 0;\r\n IsSpecifiedSizes = 0;\r\n LengthWidthMatch = 0;\r\n extractMatchchanges = 0;\r\n widthLengthchanges = 0;\r\n }\r\n\r\n }\r\n else {\r\n Width = '';\r\n Length = '';\r\n Height = -1;\r\n WidthPlusMinus = -1;\r\n LengthPlusMinus = -1;\r\n HeightPlusMinus = -1;\r\n SqFtFrom = 0;\r\n SqFtTo = 0;\r\n ClimateControlled = -1;\r\n HumidityControlled = -1;\r\n Floor = -1;\r\n OutdoorAccess = -1;\r\n Alarm = -1;\r\n DriveUp = -1;\r\n DoorType = -1;\r\n Power = -1;\r\n Elevator = -1;\r\n LengthWidthMatch = 0;\r\n extractMatchchanges = 0;\r\n widthLengthchanges = 0;\r\n // Measurement = \"Square Feet\"\r\n Measurement = values.countryCode === \"AU\" || values.countryCode === \"NZ\" ? \"Meters\" : \"Square Feet\";\r\n\r\n if (ad_SizeType === 'predefined') {\r\n\r\n parkingminlength = -1;\r\n parkingmaxlength = -1;\r\n IsSpecifiedSizes = 0;\r\n Covered = values.Covered ? parseInt(values.Covered) : -1;\r\n Car = this.state.Car === 1 ? this.state.Car : -1;\r\n RV = this.state.RV === 1 ? this.state.RV : -1;\r\n OtherVehicle = this.state.Large ? this.state.Large : -1;\r\n parkingminlength = values.parkingminlength ? values.parkingminlength : '-1';\r\n parkingmaxlength = values.parkingmaxlength ? values.parkingmaxlength : '-1';\r\n }\r\n else {\r\n\r\n IsSpecifiedSizes = 1;\r\n Car = 0;\r\n RV = 0;\r\n OtherVehicle = 0;\r\n parkingminlength = values.parkingminlength ? values.parkingminlength : '-1';\r\n parkingmaxlength = values.parkingmaxlength ? values.parkingmaxlength : '-1';\r\n Covered = values.Covered ? parseInt(values.Covered) : -1;\r\n\r\n }\r\n }\r\n }\r\n else {\r\n\r\n if (spaceState === 'Unit') {\r\n Height = -1;\r\n WidthPlusMinus = -1;\r\n LengthPlusMinus = -1;\r\n HeightPlusMinus = -1;\r\n LengthWidthMatch = 0;\r\n widthLengthchanges = 0;\r\n parkingminlength = '-1';\r\n parkingmaxlength = '-1';\r\n Covered = -1;\r\n Power = values.Power ? parseInt(values.Power) : -1;\r\n Elevator = values.Elevator ? parseInt(values.Elevator) : -1;\r\n ClimateControlled = -1;\r\n HumidityControlled = -1;\r\n //Floor = -1;\r\n Floor = values.Floor ? parseInt(values.Floor) : -1;\r\n OutdoorAccess = -1;\r\n Alarm = -1;\r\n DriveUp = -1;\r\n DoorType = -1;\r\n // Measurement = \"Square Meter\";\r\n Measurement = CONFIG.RegionId === 3 ? \"Square Feet\" : \"Square Meter\";\r\n Car = -1;\r\n RV = -1;\r\n OtherVehicle = -1;\r\n if (ad_SizeType === 'predefined') {\r\n const reSize = unitSize.split('x'); \r\n Width = reSize[0] ? reSize[0] : -1;\r\n Length = reSize[1] ? reSize[1] : -1;\r\n extractMatchchanges = this.state.extractMatchchange;\r\n IsSpecifiedSizes = 0;\r\n SqFtFrom = '';\r\n SqFtTo = '';\r\n }\r\n else {\r\n\r\n Width = '';\r\n Length = '';\r\n extractMatchchanges = 0;\r\n SqFtFrom = values.SqFtFrom ? values.SqFtFrom : '';\r\n SqFtTo = values.SqFtTo ? values.SqFtTo : '';\r\n IsSpecifiedSizes = 0;\r\n }\r\n }\r\n else {\r\n Width = '';\r\n Length = '';\r\n extractMatchchanges = 0;\r\n Height = -1;\r\n WidthPlusMinus = -1;\r\n LengthPlusMinus = -1;\r\n HeightPlusMinus = -1;\r\n LengthWidthMatch = 0;\r\n widthLengthchanges = 0;\r\n Covered = values.Covered ? parseInt(values.Covered) : -1;\r\n ClimateControlled = -1;\r\n HumidityControlled = -1;\r\n Floor = -1;\r\n OutdoorAccess = -1;\r\n Alarm = -1;\r\n DriveUp = -1;\r\n DoorType = -1;\r\n Power = -1;\r\n Elevator = -1;\r\n // Measurement = \"Square Meter\";\r\n Measurement = CONFIG.RegionId === 3 ? \"Square Feet\" : \"Square Meter\";\r\n SqFtFrom = '';\r\n SqFtTo = '';\r\n if (ad_SizeType === 'predefined') {\r\n\r\n Width = '';\r\n Length = '';\r\n IsSpecifiedSizes = 0;\r\n Car = this.state.Car === 1 ? this.state.Car : -1;\r\n RV = this.state.RV === 1 ? this.state.RV : -1;\r\n OtherVehicle = this.state.Large ? this.state.Large : -1;\r\n parkingminlength = values.parkingminlength ? values.parkingminlength : '-1';\r\n parkingmaxlength = values.parkingmaxlength ? values.parkingmaxlength : '-1';\r\n }\r\n else {\r\n Width = '';\r\n Length = '';\r\n parkingminlength = values.parkingminlength ? values.parkingminlength : '-1';\r\n parkingmaxlength = values.parkingmaxlength ? values.parkingmaxlength : '-1';\r\n IsSpecifiedSizes = 1;\r\n Car = -1;\r\n RV = -1;\r\n OtherVehicle = -1;\r\n }\r\n }\r\n }\r\n if(this.state.selectedSpaceTypes === \"\"){\r\n let filterArr = [];\r\n let sendFinalDataSpaceType = this.state.spaceTypeLookUp;\r\n let selectedTrueOnly = sendFinalDataSpaceType.filter(data => data.isSelected === 1);\r\n selectedTrueOnly.forEach(d => {\r\n filterArr.push(d.spaceType)\r\n })\r\n this.setState({ selectedSpaceTypes: filterArr.toString() });\r\n }\r\n const data = {\r\n \"StoreId\": parseInt(values.StoreId),\r\n \"Name\": values.Name,\r\n \"SpaceType\": spaceState,\r\n \"Width\": Width ? Width : 0,\r\n \"Length\": Length ? Length : 0,\r\n \"Height\": Height,\r\n \"WidthPlusMinus\": WidthPlusMinus,\r\n \"LengthPlusMinus\": LengthPlusMinus,\r\n \"HeightPlusMinus\": HeightPlusMinus,\r\n \"ClimateControlled\": parseInt(ClimateControlled),\r\n \"HumidityControlled\": parseInt(HumidityControlled),\r\n \"Floor\": parseInt(Floor),\r\n \"OutdoorAccess\": parseInt(OutdoorAccess),\r\n \"Alarm\": parseInt(Alarm),\r\n \"Power\": parseInt(Power),\r\n \"DriveUp\": parseInt(DriveUp),\r\n \"Elevator\": parseInt(Elevator),\r\n \"Covered\": parseInt(Covered),\r\n \"Car\": Car,\r\n \"RV\": RV,\r\n \"OtherVehicle\": OtherVehicle,\r\n \"DoorType\": parseInt(DoorType),\r\n \"SqFtFrom\": SqFtFrom ? SqFtFrom : 0,\r\n \"SqFtTo\": SqFtTo ? SqFtTo : 0,\r\n \"IsSpecifiedSizes\": IsSpecifiedSizes,\r\n \"parkingminlength\": parkingminlength,\r\n \"parkingmaxlength\": parkingmaxlength,\r\n \"ExactMatch\": extractMatchchanges,\r\n \"WLMatchPredefined\": widthLengthchanges,\r\n \"WLMatchSpecific\": LengthWidthMatch,\r\n \"Measurement\": Measurement,\r\n \"SearchStatus\": 1,\r\n \"RegionId\": CONFIG.RegionId,\r\n \"SelectedSpaceType\": this.state.selectedSpaceTypes\r\n }\r\n\r\n axios.post(CONFIG.API_URL + 'market/addunit/', data)\r\n .then(res => {\r\n\r\n\r\n this.setState(state => ({ addmodal: !state.addmodal }));\r\n var isElement = document.getElementById('r2');\r\n if (isElement == null) {\r\n document.getElementById('r1').click();\r\n }\r\n else {\r\n document.getElementById('r1').click();\r\n document.getElementById('r2').click();\r\n }\r\n this.props.parentMethod();\r\n this.setState({ isLoading: false });\r\n this.setState({ snackOpen: true, snackMSg: \"Unit type added successfully\", widthLengthchange: 0, extractMatchchange: 0, LengthWidthMatchchange: 0 });\r\n // console.log(res);\r\n })\r\n .catch((err) => {\r\n\r\n this.setState({ isLoading: false });\r\n if (err.res.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else {\r\n this.setState({ snackOpen: true, snackMSg: err.res.data });\r\n }\r\n });\r\n }\r\n })\r\n .catch((err) => {\r\n\r\n if (err.res.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else {\r\n this.setState({ snackOpen: true, snackMSg: err.res.data });\r\n }\r\n });\r\n }\r\n }\r\n // this.setState({ errors, values });\r\n\r\n }\r\n\r\n deleteMarket(searchid) {\r\n this.state.deleteId = searchid;\r\n this.delConfirmToggle()\r\n // this.toggleYes()\r\n }\r\n delConfirmToggle() {\r\n this.setState(prevState => ({\r\n deleteModal: !prevState.deleteModal\r\n }));\r\n }\r\n toggleYes() {\r\n let deleteId = this.state.deleteId;\r\n this.setState({ isLoading: true })\r\n let token = localStorage.getItem('accessKey');\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n }\r\n axios.post(CONFIG.API_URL + 'market/deleteunit/' + deleteId + '/' + CONFIG.RegionId)\r\n .then(res => {\r\n this.setState(state => ({ deleteModal: !state.deleteModal }));\r\n var isElement = document.getElementById('r2');\r\n if (isElement == null) {\r\n document.getElementById('r1').click();\r\n }\r\n else {\r\n document.getElementById('r1').click();\r\n document.getElementById('r2').click();\r\n }\r\n this.props.parentMethod();\r\n\r\n this.setState({ isLoading: false });\r\n this.setState({ snackOpen: true, snackMSg: \"Unit Type Deleted Successfully\" });\r\n })\r\n .catch((err) => {\r\n this.setState({ isLoading: false });\r\n if (err.res.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else {\r\n this.setState({ snackOpen: true, snackMSg: err.res.data });\r\n }\r\n });\r\n }\r\n editLengthWidthMatchchange = (event) => {\r\n\r\n let editlengthWidthMatches = this.state.editlengthWidthMatches;\r\n if (event.target.checked) {\r\n editlengthWidthMatches = 1\r\n }\r\n else {\r\n editlengthWidthMatches = 0\r\n }\r\n //alert(editlengthWidthMatches);\r\n this.setState({\r\n editlengthWidthMatches\r\n })\r\n\r\n }\r\n editextacttMatches = (event) => {\r\n\r\n let editextacttMatches = this.state.editextacttMatches;\r\n if (event.target.checked) {\r\n editextacttMatches = 1\r\n }\r\n else {\r\n editextacttMatches = 0\r\n }\r\n\r\n this.setState({\r\n editextacttMatches\r\n })\r\n\r\n }\r\n editwlMatchPredefined = (event) => {\r\n\r\n let editwlMatchPredefined = this.state.editwlMatchPredefined;\r\n if (event.target.checked) {\r\n editwlMatchPredefined = 1\r\n }\r\n else {\r\n editwlMatchPredefined = 0\r\n }\r\n\r\n this.setState({\r\n editwlMatchPredefined\r\n })\r\n\r\n }\r\n toggleNo() {\r\n this.setState(state => ({ deleteModal: !state.deleteModal }));\r\n }\r\n editSpaceTypeChange = (event) => {\r\n let editTypeChange = event.target.value;\r\n let editParkingisSpecifiedSizes = this.state.editParkingisSpecifiedSizes;\r\n let editisSpecifiedSizes = this.state.editisSpecifiedSizes;\r\n let editSpaceChange = '';\r\n if (editTypeChange === 'Unit') {\r\n editSpaceChange = \"Unit\";\r\n if (this.state.unitDetail.spaceType === 'Unit') {\r\n editisSpecifiedSizes = this.state.editisSpecifiedSizes;\r\n }\r\n else {\r\n editisSpecifiedSizes = \"editPredefined\";\r\n }\r\n\r\n } else {\r\n editSpaceChange = \"Parking\";\r\n if (this.state.unitDetail.spaceType === 'Unit') {\r\n editParkingisSpecifiedSizes = \"editParkingPredefined\";\r\n } else {\r\n editParkingisSpecifiedSizes = this.state.editParkingisSpecifiedSizes;\r\n }\r\n }\r\n this.setState({ editSpaceChange, editParkingisSpecifiedSizes, editisSpecifiedSizes });\r\n }\r\n spaceTypeChange = (event) => {\r\n\r\n //let spacetype = this.state.spacetype;\r\n this.state.spacetype = event.target.value;\r\n //let ParkingAdd;\r\n this.setState({ spacetype: this.state.spacetype });\r\n this.state.userStore = [{ unit: \"-1\", unitID: \"-- --\" }, { unit: \"Car\", unitID: \"Car\" },\r\n { unit: \"RV\", unitID: \"RV\" }, { unit: \"Large\", unitID: \"Large\" }]\r\n if (this.state.spacetype == 'Parking') {\r\n this.setState({ userStore: this.state.userStore });\r\n // ParkingAdd = true;\r\n this.state.ad_Size = 'predefined';\r\n\r\n }\r\n else {\r\n // ParkingAdd = false;\r\n this.state.ad_Size = 'predefined';\r\n\r\n this.setState({ userStore: this.state.userStoreList });\r\n //this.userStoreUnit();\r\n }\r\n // this.setState({ parkingAdd })\r\n\r\n };\r\n\r\n sizeChange = (event) => {\r\n\r\n this.state.ad_Size = event.target.value;\r\n\r\n this.setState({ ad_Size: this.state.ad_Size });\r\n if (this.state.ad_Size === 'predefined') {\r\n this.state.ad_Size = 'predefined';\r\n //this.refs.firstName.value = '';\r\n let emptyWidth = '';\r\n\r\n this.setState({ emptyWidth: '', LengthWidthMatchchange: 0 });\r\n\r\n }\r\n else if (this.state.ad_Size === 'Specific') {\r\n this.state.ad_Size = 'Specific';\r\n\r\n\r\n this.setState({\r\n extractMatchchange: 0,\r\n widthLengthchange: 0, emptyParking: \"-1\"\r\n })\r\n //this.state.emptyParking = '--';\r\n // this.setState({emptyParking: this.state.emptyParking });\r\n\r\n }\r\n else {\r\n this.state.ad_Size = 'Measurement';\r\n this.setState({\r\n extractMatchchange: 0,\r\n widthLengthchange: 0, LengthWidthMatchchange: 0\r\n })\r\n\r\n }\r\n\r\n };\r\n sizeEditChange = (event) => {\r\n let until = this.state.unitDetail.width;\r\n until = '';\r\n // this.state.editisSpecifiedSizes = event.target.value;\r\n let editisSpecifiedSizes = event.target.value;\r\n let editextacttMatches = this.state.editextacttMatches;\r\n let editwlMatchPredefined = this.state.editwlMatchPredefined;\r\n let editlengthWidthMatches = this.state.editlengthWidthMatches;\r\n if (editisSpecifiedSizes === \"editSpecific\") {\r\n\r\n editisSpecifiedSizes = \"editSpecific\"; editextacttMatches = 0; editwlMatchPredefined = 0;\r\n editlengthWidthMatches = this.state.unitDetail.wlMatchSpecific === true ? 1 : 0;\r\n } else if (editisSpecifiedSizes === \"editPredefined\") {\r\n editisSpecifiedSizes = \"editPredefined\"; editlengthWidthMatches = 0;\r\n editextacttMatches = this.state.unitDetail.exactMatch === true ? 1 : 0;\r\n editwlMatchPredefined = this.state.unitDetail.wlMatchPredefined === true ? 1 : 0;\r\n } else {\r\n editisSpecifiedSizes = \"editSquareFootage\";\r\n editextacttMatches = 0; editwlMatchPredefined = 0; editlengthWidthMatches = 0;\r\n }\r\n this.setState({ editisSpecifiedSizes, until, editextacttMatches, editwlMatchPredefined, editlengthWidthMatches });\r\n //alert(this.state.unitDetail.isSpecifiedSizes);\r\n }\r\n sizeEditParkingChange = (event) => {\r\n let editParkingisSpecifiedSizess = event.target.value;\r\n let editParkingisSpecifiedSizes = '';\r\n if (editParkingisSpecifiedSizess === \"editParkingPredefined\") {\r\n editParkingisSpecifiedSizes = \"editParkingPredefined\";\r\n }\r\n else {\r\n editParkingisSpecifiedSizes = \"editParkingSpecific\";\r\n\r\n }\r\n this.setState({ editParkingisSpecifiedSizes });\r\n }\r\n LengthWidthMatchchange = (event) => {\r\n\r\n if (!event.target.checked) {\r\n this.setState({\r\n LengthWidthMatchchange: 0\r\n\r\n })\r\n }\r\n else {\r\n this.setState({ LengthWidthMatchchange: 1 })\r\n }\r\n\r\n\r\n }\r\n parkingChange = (event) => {\r\n let parkingchange = event.target.value;\r\n if (parkingchange === 'Car') {\r\n // this.state.parkingmaxlength = '18';\r\n // this.state.parkingminlength = '0';\r\n this.state.Car = 1;\r\n this.state.RV = '';\r\n this.state.Large = '';\r\n }\r\n else if (parkingchange === 'RV') {\r\n // this.state.parkingmaxlength = '1000';\r\n // this.state.parkingminlength = '18';\r\n this.state.RV = 1;\r\n this.state.Large = '';\r\n this.state.Car = '';\r\n }\r\n else if (parkingchange === 'Large') {\r\n // this.state.parkingmaxlength = '1000';\r\n // this.state.parkingminlength = '30';\r\n this.state.RV = '';\r\n this.state.Large = 1;\r\n this.state.Car = '';\r\n }\r\n else {\r\n this.state.parkingmaxlength = '';\r\n this.state.parkingminlength = '';\r\n }\r\n // this.setState({ parkingmaxlength: this.state.parkingmaxlength });\r\n // this.setState({ parkingminlength: this.state.parkingminlength });\r\n\r\n }\r\n editParkingsChange = (event) => {\r\n let parkingChangeMax = event.target.value;\r\n let editCar = '';\r\n let editRV = '';\r\n let editLarge = '';\r\n if (parkingChangeMax === '1') {\r\n // this.state.editparkingmaxlength = '18';\r\n // this.state.editparkingminlength = '0';\r\n editCar = 1;\r\n\r\n }\r\n else if (parkingChangeMax === '2') {\r\n // this.state.editparkingmaxlength = '1000';\r\n // this.state.editparkingminlength = '18';\r\n editRV = 1;\r\n }\r\n else if (parkingChangeMax === '3') {\r\n // this.state.editparkingmaxlength = '1000';\r\n // this.state.editparkingminlength = '30';\r\n editLarge = 1;\r\n }\r\n else {\r\n // this.state.editparkingmaxlength = '';\r\n // this.state.editparkingminlength = '';\r\n }\r\n this.setState({ editCar, editRV, editLarge });\r\n // this.setState({ editparkingminlength: this.state.editparkingminlength });\r\n }\r\n resetAllValues() {\r\n\r\n // this.setState({ checkItOut: false });\r\n // ReactDOM.findDOMNode(this.myFormRef.form).value = \"\";\r\n this.myFormRef && this.myFormRef.reset();\r\n // this.setState(state => ({ widthLengthchange: 0, extractMatchchange: 0, LengthWidthMatchchange: 0 }))\r\n }\r\n closeAddUnit() {\r\n this.setState(state => ({ addmodal: !state.addmodal, widthLengthchange: 0, extractMatchchange: 0, LengthWidthMatchchange: 0 }))\r\n\r\n }\r\n closeEditUnit() {\r\n this.setState(state => ({ modal: false, unitDetail: [] }))\r\n\r\n }\r\n\r\n resetEditUnits(id) {\r\n\r\n this.toggleModal(id);\r\n // const editParam = id.split(\"/\");\r\n // let Sid = editParam[0];\r\n // let countryCode = editParam[1];\r\n // let token = localStorage.getItem('accessKey');\r\n // if (token) {\r\n // axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n // }\r\n\r\n // this.state.countryCode = countryCode;\r\n // this.setState({ countryCode: this.state.countryCode });\r\n // this.userStoreUnit();\r\n // axios.post(CONFIG.API_URL + 'market/unitdetail/' + Sid)\r\n // .then(res => {\r\n // let resData = res.data.competitor;\r\n // let unitDetail = res.data.competitor;\r\n // // let unitDetail = this.state.unitDetail;\r\n // let editSearchId = unitDetail.searchID;\r\n // let editlengthWidthMatches = unitDetail.wlMatchSpecific === true ? 1 : 0;\r\n // let editextacttMatches = unitDetail.exactMatch === true ? 1 : 0;\r\n // let editwlMatchPredefined = unitDetail.wlMatchPredefined === true ? 1 : 0;\r\n // let editName = unitDetail.name ;\r\n // let editisSpecifiedSizes = '';\r\n // let editParkUnits = '';\r\n // let editParkingisSpecifiedSizes = '';\r\n // let editparkingminlength = '';\r\n // let editparkingmaxlength = '';\r\n // if (unitDetail.isSpecifiedSizes === true) {\r\n // editisSpecifiedSizes= 'editSpecific' ;\r\n // }\r\n // else if (unitDetail.sqft > 0) {\r\n // editisSpecifiedSizes= 'editSquareFootage' ;\r\n\r\n // }\r\n // else {\r\n // editisSpecifiedSizes= 'editPredefined' ;\r\n\r\n // }\r\n // let editSpaceChange = '';\r\n // if (unitDetail.spaceType === 'Unit') {\r\n // editSpaceChange = \"Unit\";\r\n\r\n\r\n // }\r\n // else {\r\n // editSpaceChange = \"Parking\";\r\n // if (unitDetail.rv === 1) {\r\n // editParkUnits = \"2\";\r\n\r\n // } else if (unitDetail.car === 1) {\r\n // editParkUnits = \"1\";\r\n\r\n // } else if (unitDetail.otherVehicle === 1) {\r\n // editParkUnits = \"3\";\r\n\r\n // } else {\r\n // editParkUnits = \"-1\";\r\n\r\n // }\r\n // if (unitDetail.car === 1 || unitDetail.otherVehicle === 1 || unitDetail.rv === 1) {\r\n // editParkingisSpecifiedSizes= 'editParkingPredefined' ;\r\n // editparkingminlength='' ;\r\n // editparkingmaxlength= '' ;\r\n // }\r\n // else {\r\n // editParkingisSpecifiedSizes= 'editParkingSpecific';\r\n // editparkingminlength= unitDetail.parkingminlength ;\r\n // editparkingmaxlength= unitDetail.parkingmaxlength ;\r\n // }\r\n // }\r\n\r\n // this.setState({ unitDetail,resData,editSearchId ,editName,editlengthWidthMatches,editextacttMatches,editwlMatchPredefined,editisSpecifiedSizes,editSpaceChange,editParkUnits,editParkingisSpecifiedSizes,editparkingminlength,editparkingmaxlength })\r\n\r\n // })\r\n // .catch((err) => {\r\n // // console.log(err)\r\n\r\n // if (err.res.status === 401) {\r\n // localStorage.removeItem('accessKey');\r\n // const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n // this.props.history.push(from);\r\n // }\r\n // else {\r\n // alert(err.res.data);\r\n // }\r\n // });\r\n\r\n }\r\n extractMatchChange(event) {\r\n\r\n //let extractMatchchange = event.target.value;\r\n if (!event.target.checked) {\r\n this.setState({ extractMatchchange: 0 });\r\n }\r\n else {\r\n this.setState({ extractMatchchange: 1 });\r\n }\r\n }\r\n widthLengthChange(event) {\r\n //let widthLengthchange = event.target.value;\r\n if (!event.target.checked) {\r\n this.setState({ widthLengthchange: 0 });\r\n }\r\n else {\r\n this.setState({ widthLengthchange: 1 });\r\n }\r\n\r\n\r\n }\r\n trackModal(storeId, searchId) {\r\n const data = {\r\n \"UserStoreId\": storeId,\r\n \"SearchId\": searchId,\r\n \"RegionId\": CONFIG.RegionId\r\n }\r\n\r\n axios.post(CONFIG.API_URL + 'unit/competitorslist', data)\r\n .then(response => {\r\n\r\n // this.state.isLoading=true;\r\n const trackModalData = response.data.competitor.unitCompData;\r\n\r\n this.setState({ trackModalData, storeModal: true, })\r\n }).catch((err) => {\r\n // if (err.response.status === 401) {\r\n // localStorage.removeItem('accessKey');\r\n // const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n // this.props.history.push(from);\r\n // }\r\n // else {\r\n // alert(err.response.data);\r\n // }\r\n });\r\n }\r\n trackModalClose() {\r\n this.setState({\r\n storeModal: false,\r\n pageCount: 0\r\n })\r\n }\r\n snackHandleclose = (event, reason) => {\r\n if (reason === 'clickaway') {\r\n return;\r\n }\r\n this.setState({ snackOpen: false });\r\n };\r\n\r\n handleChangePageTrack = (event, pageCount) => {\r\n this.setState({ pageCount });\r\n };\r\n handleChangeRowsPerPageTrack = event => {\r\n this.setState({ pageCount: 0, 10: event.target.value });\r\n };\r\n handleChange(e) {\r\n\r\n let fields = this.state;\r\n // let num = e.target.value.replace(/[^\\w\\s]/gi, \"\");\r\n let num = e.target.value;\r\n fields[e.target.name] = num;\r\n this.setState({ fields });\r\n }\r\n handleChange1(e) {\r\n \r\n let unitDetail = this.state.unitDetail;\r\n // let num = e.target.value.replace(/[^\\w\\s]/gi, \"\");\r\n let num = e.target.value;\r\n\r\n if (e.target.name === \"editWidthPlusMinus\") {\r\n unitDetail.widthplusminus = num;\r\n }\r\n else if (e.target.name === \"editLengthPlusMinus\") {\r\n unitDetail.lengthplusminus = num;\r\n }\r\n else {\r\n unitDetail.heightplusminus = num;\r\n }\r\n\r\n this.setState({ unitDetail });\r\n }\r\n spaceTypeCheck(e, whichType) {\r\n let data = whichType === \"editSpaceTypes\" || whichType === \"selectAllTypesEdit\" ? this.state.editSpaceTypeLookUp : this.state.spaceTypeLookUp;\r\n if(whichType === \"selectAllTypes\" || whichType === \"selectAllTypesEdit\"){\r\n if (e.target.checked) {\r\n data.forEach(d => {\r\n d.isSelected = 1\r\n })\r\n this.setState(whichType === \"selectAllTypesEdit\" ? { editSpaceTypeLookUp: data, allSpaceTypeCheckedEdit : true } : { spaceTypeLookUp: data, allSpaceTypeChecked : true });\r\n }\r\n else if (!e.target.checked) {\r\n this.setState({allSpaceTypeChecked : false})\r\n data.forEach(d => {\r\n d.isSelected = 0\r\n })\r\n this.setState(whichType === \"selectAllTypesEdit\" ? { editSpaceTypeLookUp: data, allSpaceTypeCheckedEdit : false } : { spaceTypeLookUp: data, allSpaceTypeChecked : false });\r\n }\r\n }else{\r\n if (e.target.checked) {\r\n data.forEach(d => {\r\n if (d.spaceType === e.target.value)\r\n d.isSelected = 1\r\n })\r\n this.setState(whichType === \"editSpaceTypes\" ? { editSpaceTypeLookUp: data } : { spaceTypeLookUp: data });\r\n } else if (!e.target.checked) {\r\n data.forEach(d => {\r\n if (d.spaceType === e.target.value)\r\n d.isSelected = 0\r\n })\r\n this.setState(whichType === \"editSpaceTypes\" ? { editSpaceTypeLookUp: data, allSpaceTypeCheckedEdit : false } : { spaceTypeLookUp: data, allSpaceTypeChecked : false });\r\n }\r\n }\r\n let filterArr = [];\r\n let sendFinalDataSpaceType = whichType === \"editSpaceTypes\" || whichType === \"selectAllTypesEdit\" ? this.state.editSpaceTypeLookUp : this.state.spaceTypeLookUp;\r\n let selectedTrueOnly = sendFinalDataSpaceType.filter(data => data.isSelected === 1);\r\n selectedTrueOnly.forEach(d => {\r\n filterArr.push(d.spaceType)\r\n })\r\n this.setState(whichType === \"editSpaceTypes\" || whichType === \"selectAllTypesEdit\" ? { editSelectedSpaceTypes: filterArr.toString() } : { selectedSpaceTypes: filterArr.toString() });\r\n }\r\n render() {\r\n\r\n const {\r\n name, index, avgPrice, priceTrend, myStorePrice, id, currency, storeid, StoreName, StoreAddress, StoreCity, StoreState, StoreZipcode,\r\n isDragging, countryCode, priceTrends1,\r\n connectDragSource, storeCount,\r\n connectDropTarget,\r\n } = this.props;\r\n const { spacetype, hideSpecifiedtext, ad_Size, userStore, unitDetail, editisSpecifiedSizes, trackModalData, pageCount, snackMSg, snackOpen, spaceTypeLookUp, isLoading, editSpaceTypeLookUp } = this.state;\r\n // const opacity = isDragging ? 0 : 1;\r\n\r\n const partsOfStr = myStorePrice.split('-');\r\n let myStorePrice1 = partsOfStr[0];\r\n let myStorePrice2 = '';\r\n if (partsOfStr[1] === undefined) {\r\n myStorePrice2 = '';\r\n } else {\r\n myStorePrice2 = partsOfStr[1].trim();\r\n }\r\n var regionID = CONFIG.RegionId;\r\n // const style = spacetype == 'Parking'?{display : 'none'} : {};\r\n\r\n //console.log(userStore);\r\n //console.log(unitDetail, 'unitDetail')\r\n return (\r\n connectDragSource &&\r\n connectDropTarget &&\r\n connectDragSource(\r\n connectDropTarget(\r\n
\r\n {isLoading ?
: ''}\r\n
\r\n {index === 0 ?
\"Add
Add New\r\n
\r\n \r\n \r\n Unsaved Unit Type\r\n
{StoreName} | {StoreAddress + ', ' + StoreCity}{StoreState ? ', ' + StoreState : ''} {StoreZipcode}
\r\n {/*
{\"Coverage: \"}{StoreRadius}
*/}\r\n \r\n \r\n \r\n \r\n \r\n\r\n (this.myFormRef = c)}>\r\n

Basic Details

\r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {spacetype !== 'Parking' ?\r\n
\r\n
\r\n

Select Space Types

\r\n
\r\n this.spaceTypeCheck(e, 'selectAllTypes')} value=\"-1\" name=\"addSpaceTypeAll\" className=\"move-ch-top track-check-gl\" />\r\n
\r\n
\r\n \r\n \r\n {spaceTypeLookUp ? spaceTypeLookUp.map(data => {\r\n if (data.storageType !== \"Parking\") {\r\n return (\r\n this.spaceTypeCheck(e, 'spaceTypes')} value={data.spaceType} name=\"addSpaceType\" className=\"move-ch-top track-check-gl\" />\r\n );\r\n }\r\n }) : ''}\r\n \r\n \r\n
\r\n : ''} \r\n

Size

\r\n\r\n\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n {userStore ? userStore.map(n => {\r\n return (\r\n \r\n );\r\n }) : ''}\r\n \r\n \r\n {spacetype !== 'Parking' ?\r\n \r\n \r\n
\r\n {countryCode === \"US\" || countryCode === \"CA\" || countryCode === 'AU' || countryCode === 'NZ' ?
: ''}\r\n
\r\n \r\n : ''}\r\n
\r\n {(countryCode === 'US') || (countryCode === 'CA') || (countryCode === 'AU') || (countryCode === 'NZ') ?\r\n \r\n {(countryCode === 'US') || (countryCode === 'CA') || (countryCode === 'AU') || (countryCode === 'NZ') || (spacetype === 'Parking') ?\r\n \r\n \r\n \r\n : ''}\r\n {spacetype === 'Parking' ?\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n : ''}\r\n\r\n {regionID != 3 && spacetype !== 'Parking' ?\r\n\r\n \r\n \r\n\r\n \r\n
(+/-)\r\n
\r\n \r\n \r\n
(+/-)\r\n
\r\n \r\n \r\n
(+/-)\r\n
\r\n \r\n
\r\n \r\n : ''}\r\n {/* {((countryCode === 'US') || (countryCode === 'CA')) && spacetype !== 'Parking' ? */}\r\n {regionID != 3 && spacetype !== 'Parking' ?\r\n \r\n \r\n \r\n : ''}\r\n\r\n
\r\n : ''}\r\n {spacetype !== 'Parking' ?\r\n \r\n {countryCode === \"US\" || countryCode === \"CA\" || regionID === 3 ?\r\n \r\n \r\n \r\n : \r\n \r\n \r\n }\r\n\r\n \r\n \r\n \r\n to\r\n \r\n \r\n \r\n \r\n\r\n {countryCode === 'US' || countryCode === 'CA' ? '' : regionID === 3 ? : (countryCode === 'AU' || countryCode === 'NZ') ? : }\r\n \r\n : ''}\r\n {spacetype !== 'Parking' ?\r\n
\r\n

Unit Features

\r\n {countryCode === \"US\" || countryCode === \"CA\" || regionID === 3 || countryCode === \"AU\" || countryCode === \"NZ\" ?\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n : ''}\r\n\r\n {countryCode === \"DE\" || countryCode === \"AT\" || countryCode === \"CH\" ?\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n : ''}\r\n
\r\n : ''}\r\n {spacetype === 'Parking' ?\r\n
\r\n

Unit Features

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n : ''}\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n\r\n\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n
:
\r\n
\r\n
{name.length > 15 ? name.slice(0, 15) + '..' : name.slice(0, 15)}\r\n \"\" \r\n
\r\n \r\n {name}\r\n \r\n \r\n
\r\n
\r\n {storeCount === 'No' ?

Offered by N/A

:\r\n

Offered by this.trackModal(storeid, id)}>{storeCount > 1 ? storeCount + ' stores' : storeCount + ' store'}

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

{CONFIG.RegionId === 3 ? \"Avg. Weekly Market Price\" : \"Avg. Market Price\"}

\r\n
\r\n {avgPrice === \"N/A\" ? \"N/A\" : currency + avgPrice}{priceTrend === null ? '' : parseFloat(priceTrend) >= 0 ? \"arrow-up\" : \"arrow-down\"}{priceTrend === null ? N/A : priceTrend >= 0 ? {priceTrend.toFixed(2) + \"%\"} : {priceTrend.toFixed(2) + \"%\"}}{priceTrends1 === \"1\" ? 'Last 5 days' : priceTrends1 === \"2\" ? 'Last 30 days' : priceTrends1 === \"3\" ? 'Last 90 days' : priceTrends1 === \"4\" ? 'Last 6 Months' : 'Last 12 Months'}\r\n
\r\n
\r\n
\r\n
\r\n

{CONFIG.RegionId === 3 ? \"Your Weekly Price\" : \"Your Price\" }

\r\n
{myStorePrice1 === \"0\" ? \"N/A\" : currency + myStorePrice1}{myStorePrice2 === \"\" ? \"\" : \" - \" + myStorePrice2}
\r\n
\r\n
\r\n {/* \r\n \r\n */}\r\n
View Details
\r\n {/*
View Details
*/}\r\n \r\n \r\n {unitDetail.name === undefined ? \"Update \" + '' : \"Update \" + unitDetail.name}\r\n
{StoreName} | {StoreAddress + ', ' + StoreCity}{StoreState ? ', ' + StoreState : ''} {StoreZipcode}
\r\n {/*
{\"Coverage: \"}{StoreRadius}
*/}\r\n \r\n \r\n \r\n \r\n \r\n\r\n (this.myFormupdate = c)} className=\"basic-details\">\r\n

Basic Details

\r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.state.editSpaceChange !== \"Parking\" ?\r\n
\r\n
\r\n

Select Space Types

\r\n
\r\n this.spaceTypeCheck(e, 'selectAllTypesEdit')} value=\"-1\" name=\"addSpaceTypeAllEdit\" className=\"move-ch-top track-check-gl\" />\r\n
\r\n
\r\n \r\n \r\n {editSpaceTypeLookUp ? editSpaceTypeLookUp.map(data => {\r\n if (data.storageType !== \"Parking\") {\r\n return (\r\n this.spaceTypeCheck(e, 'editSpaceTypes')} value={data.spaceType} name=\"addSpaceType\" className=\"move-ch-top track-check-gl\" />\r\n );\r\n }\r\n }) : ''}\r\n \r\n \r\n
\r\n : ''}\r\n

Size

\r\n\r\n {this.state.editSpaceChange !== \"Parking\" ?\r\n
\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n {userStore ? userStore.map(n => {\r\n return (\r\n \r\n );\r\n }) : ''}\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {(countryCode === 'US') || (countryCode === 'CA') || (countryCode === 'AU') || (countryCode === 'NZ') ?\r\n
\r\n : ''}\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n {(countryCode === 'US') || (countryCode === 'CA') || (countryCode === 'AU') || (countryCode === 'NZ') ?\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
0 && hideSpecifiedtext === 2) ? unitDetail.width : ''} name=\"editWidth\" type=\"number\" disabled={editisSpecifiedSizes === 'editPredefined' || editisSpecifiedSizes === 'editSquareFootage'} />
(+/- 0 && unitDetail.isSpecifiedSizes != 0) ? unitDetail.widthplusminus : ''} name=\"editWidthPlusMinus\" type=\"number\" disabled={editisSpecifiedSizes === 'editPredefined' || editisSpecifiedSizes === 'editSquareFootage'} onChange={this.handleChange1} />)\r\n
\r\n \r\n \r\n
0 && hideSpecifiedtext === 2) ? unitDetail.length : ''} name=\"editLength\" type=\"number\" disabled={editisSpecifiedSizes === 'editPredefined' || editisSpecifiedSizes === 'editSquareFootage'} />
(+/- 0 && unitDetail.isSpecifiedSizes != 0) ? unitDetail.lengthplusminus : ''} name=\"editLengthPlusMinus\" type=\"number\" disabled={editisSpecifiedSizes === 'editPredefined' || editisSpecifiedSizes === 'editSquareFootage'} onChange={this.handleChange1} />)\r\n
\r\n \r\n \r\n
0) ? unitDetail.height : ''} name=\"editHeight\" type=\"number\" disabled={editisSpecifiedSizes === 'editPredefined' || editisSpecifiedSizes === 'editSquareFootage'} />
(+/- 0) ? unitDetail.heightplusminus : ''} name=\"editHeightPlusMinus\" type=\"number\" disabled={editisSpecifiedSizes === 'editPredefined' || editisSpecifiedSizes === 'editSquareFootage'} onChange={this.handleChange1} />)\r\n
\r\n \r\n
\r\n \r\n {/* {countryCode === 'AU' || countryCode === 'NZ' ?'' : */}\r\n \r\n \r\n \r\n {/* } */}\r\n\r\n
\r\n : ''}\r\n\r\n {/* {countryCode === 'AU' || countryCode === 'NZ' ?'' : */}\r\n \r\n {(countryCode === 'US') || (countryCode === 'CA') || (regionID === 3) ?\r\n \r\n \r\n \r\n : \r\n \r\n }\r\n \r\n 0 ? unitDetail.sqft.toString() : ''} name=\"editSqFtFrom\" type=\"number\" disabled={editisSpecifiedSizes === 'editPredefined' || editisSpecifiedSizes === 'editSpecific'} />\r\n to\r\n \r\n 0 ? unitDetail.sqftTo : ''} name=\"editSqFtTo\" type=\"number\" disabled={editisSpecifiedSizes === 'editPredefined' || editisSpecifiedSizes === 'editSpecific'} />\r\n \r\n {countryCode === 'US' || countryCode === 'CA' && spacetype === 'Unit' ? '' : regionID === 3 && spacetype === 'Unit' ? : (countryCode === 'AU' || countryCode === 'NZ') && (spacetype === 'Unit') ? : }\r\n \r\n {/* } */}\r\n\r\n

Unit Features

\r\n {(countryCode === 'US') || (countryCode === 'CA') || (regionID === 3) || (countryCode === 'AU') || (countryCode === 'NZ') ?\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n : ''}\r\n \r\n {(countryCode === 'US') || (countryCode === 'CA') || (regionID === 3) || (countryCode === 'AU') || (countryCode === 'NZ') ?\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n : ''}\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {(countryCode === 'US') || (countryCode === 'CA') || (regionID === 3) || (countryCode === 'AU') || (countryCode === 'NZ') ?\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n : ''}\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n {(countryCode === 'US') || (countryCode === 'CA') || (regionID === 3) || (countryCode === 'AU') || (countryCode === 'NZ') ?\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n : \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n
\r\n : ''}\r\n {this.state.editSpaceChange !== \"Unit\" ?\r\n
\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
0 ? this.state.editparkingminlength.toString() : ''} type=\"number\" disabled={this.state.editParkingisSpecifiedSizes === \"editParkingPredefined\"} />
0 ? this.state.editparkingmaxlength : ''} disabled={this.state.editParkingisSpecifiedSizes === \"editParkingPredefined\"} />\r\n
\r\n \r\n
\r\n \r\n
\r\n

Unit Features

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n : ''}\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n\r\n\r\n\r\n
\r\n\r\n
\r\n\r\n \r\n Are you sure you want to delete?\r\n \r\n \r\n \r\n \r\n\r\n \r\n
\r\n this.trackModal()} \r\n className=\"store-mainpopup\"\r\n backdrop=\"static\">\r\n {StoreName}\r\n \r\n \r\n \r\n \r\n COMPETITOR NAME\r\n ADDRESS\r\n\r\n \r\n \r\n \r\n {trackModalData ? trackModalData.slice(pageCount * 10, pageCount * 10 + 10).map((trackData) =>\r\n \r\n {trackData.storename}\r\n {trackData.address}\r\n\r\n \r\n ) :\r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n }\r\n {snackMSg}}\r\n action={[\r\n \r\n \r\n \r\n ]}\r\n />\r\n
),\r\n )\r\n );\r\n }\r\n}\r\n\r\nexport default flow(\r\n DragSource(\r\n 'card',\r\n cardSource,\r\n (connect, monitor) => ({\r\n connectDragSource: connect.dragSource(),\r\n isDragging: monitor.isDragging(),\r\n }),\r\n ),\r\n DropTarget('card', cardTarget, (connect) => ({\r\n connectDropTarget: connect.dropTarget(),\r\n }))\r\n)(Card);","import React, { Component } from \"react\";\r\nimport {\r\n Col,\r\n Row,\r\n Button,\r\n Modal as TrackModalPop,\r\n ModalFooter,\r\n ModalBody,\r\n Dropdown,\r\n DropdownToggle,\r\n DropdownMenu,\r\n DropdownItem,\r\n} from \"reactstrap\";\r\nimport HTML5Backend from \"react-dnd-html5-backend\";\r\nimport { DragDropContext } from \"react-dnd\";\r\nimport Snackbar from \"@material-ui/core/Snackbar\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\n//import {MarketDashboardHeader} from './../MarketDashboardHeader/index';\r\nimport { AvForm, AvField } from \"availity-reactstrap-validation\";\r\nimport Breadcrumbs from \"@material-ui/core/Breadcrumbs\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport { HashLink as Link } from \"react-router-hash-link\";\r\nimport \"./MarketDashboard.css\";\r\nimport Card from \"./Card\";\r\nimport { CONFIG } from \"../../utils/config\";\r\nimport axios from \"axios\";\r\nimport { HelpTextPopup } from \"./../HelpTextPopup/index\";\r\n// import exportFromJSON from 'export-from-json';\r\nimport moment from \"moment\";\r\nimport { faFileExcel } from \"@fortawesome/free-solid-svg-icons\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\n// const exportType = 'xls';\r\nimport Workbook from \"react-excel-workbook\";\r\nimport { faFilePdf } from \"@fortawesome/free-solid-svg-icons\";\r\nimport PictureAsPdfIcon from \"@material-ui/icons/PictureAsPdf\";\r\nimport ExcelDownload from \"../../Assets/Images/excel-download.png\";\r\nimport CsvDownload from \"../../Assets/Images/csv-download.png\"\r\n\r\nclass MarketDashboard extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n storeid: props.match.params.storeid,\r\n cards: [],\r\n storedata: [],\r\n isLoading: false,\r\n storeInformation: [],\r\n countryCode: \"\",\r\n storeAddress: \"\",\r\n priceTrends: 2,\r\n priceTrendsAvg: \"\",\r\n currentDate: new Date(),\r\n resultArray: [],\r\n fileName: \"\",\r\n marketDownloadData: [],\r\n downloadInput: [],\r\n pdfLoading: true,\r\n snackOpen: false,\r\n snackMsg: \"\",\r\n snackClr: \"\",\r\n modal: false,\r\n myMarketData: [],\r\n excelProgress: false,\r\n dropdownOpen: false,\r\n };\r\n this.handler = this.handler.bind(this);\r\n this.refreshMenu = this.refreshMenu.bind(this);\r\n this.submitRabitQueue = this.submitRabitQueue.bind(this);\r\n this.downLoadReport = this.downLoadReport.bind(this);\r\n localStorage.setItem(\"StId\", props.match.params.storeid);\r\n }\r\n //download file excel format\r\n // downloadExcel() {\r\n // let token = localStorage.getItem(\"accessKey\");\r\n // if (token) {\r\n // axios.defaults.headers.common[\"Authorization\"] = \"Bearer \" + token;\r\n // }\r\n // const marketIp = {\r\n // UserStoreID: parseInt(this.state.storeid),\r\n // RegionId: CONFIG.RegionId,\r\n // };\r\n // axios\r\n // .post(CONFIG.API_URL + \"market/downloadalldata\", marketIp)\r\n // .then((res) => {\r\n // let marketDownloadData = res.data.unitdata;\r\n // this.setState({ marketDownloadData }, () => {\r\n // this.download();\r\n // });\r\n // })\r\n // .catch((err) => {\r\n // if (err.response.status === 401) {\r\n // localStorage.removeItem(\"accessKey\");\r\n // const { from } = this.props.location.state || {\r\n // from: { pathname: \"/\" },\r\n // };\r\n // this.props.history.push(from);\r\n // } else if (err.response.status === 403) {\r\n // const { from } = this.props.location.state || {\r\n // from: { pathname: \"/UnauthorizedAccess\" },\r\n // };\r\n // this.props.history.push(from);\r\n // } else {\r\n // alert(err.response.data);\r\n // }\r\n // });\r\n // }\r\n // download() {\r\n // let date = this.state.currentDate;\r\n // var day = date.getDate();\r\n // var month = date.getMonth();\r\n // var year = date.getFullYear();\r\n // let fileName,\r\n // vehicle,\r\n // covered,\r\n // advertisedOnlineRate,\r\n // dtAdvertisedOnlineRateChanged,\r\n // advertisedWalkInRate,\r\n // promo,\r\n // dtPromoChanged,\r\n // alarm,\r\n // climate,\r\n // doorType,\r\n // driveUp,\r\n // elevator,\r\n // storename,\r\n // searchName,\r\n // state,\r\n // size,\r\n // storeAddress,\r\n // humidity,\r\n // outdoorAccess,\r\n // power,\r\n // adPromoDate,\r\n // adOnlineDate,\r\n // adWalkinDate, proximity;\r\n // let resultArray = [];\r\n // let inputArray = [];\r\n // let downloadInputMerge = [];\r\n // let units = (CONFIG.RegionId == 2) || (CONFIG.RegionId == 4) ? ' ' + 'km' : ' ' + 'mi';\r\n // var currency = this.state.storeAddress.countryCurrency;\r\n // let downloadInput = [];\r\n // inputArray = this.state.marketDownloadData;\r\n // inputArray.map((data) => {\r\n // searchName = data.searchName ? data.searchName : \"N/A\";\r\n // storename = data.competitorName ? data.competitorName : \"N/A\";\r\n // storeAddress = data.address ? data.address : \"N/A\";\r\n // state = data.state ? data.state : \"N/A\";\r\n // size = data.size ? data.size.toString() : \"N/A\";\r\n // climate = data.climateControlled === 1 ? \"ClimateControlled, \" : \"\";\r\n // humidity = data.humidityControlled === 1 ? \"HumidityControlled, \" : \"\";\r\n // outdoorAccess = data.outdoorAccess === 1 ? \"OutdoorAccess, \" : \"\";\r\n // alarm = data.alarm === 1 ? \"Alarm, \" : \"\";\r\n // power = data.power === 1 ? \"Power, \" : \"\";\r\n // covered = data.covered === 1 ? \"Covered, \" : \"\";\r\n // vehicle = data.vehicle === 1 ? \"Vehicle, \" : \"\";\r\n // driveUp = data.driveUp === 1 ? \"DriveUp, \" : \"\";\r\n // doorType =\r\n // data.doorType > 0\r\n // ? data.doorType === 1\r\n // ? \"Roll-Up Door, \"\r\n // : data.doorType === 2\r\n // ? \"Swing Door, \"\r\n // : data.doorType === 3\r\n // ? \"Double Door, \"\r\n // : data.doorType === 4\r\n // ? \"Chain-Link Door, \"\r\n // : data.doorType === 5\r\n // ? \"Other Door, \"\r\n // : \"\"\r\n // : \"\";\r\n // elevator = data.elevator === 1 ? \"Elevator, \" : \"\";\r\n // //advertisedWalkInRate = data.advertisedWalkInRate ? currency + data.advertisedWalkInRate : 'N/A';\r\n // advertisedWalkInRate =\r\n // data.advertisedWalkInRate &&\r\n // data.advertisedWalkInRate != 0 &&\r\n // data.advertisedWalkInRate != null\r\n // ? data.isMonthly === 1\r\n // ? currency + data.advertisedWalkInRate + \"*\"\r\n // : currency + data.advertisedWalkInRate\r\n // : \"N/A\";\r\n // adWalkinDate = data.dtAdvertisedWalkInRateChanged\r\n // ? moment(data.dtAdvertisedWalkInRateChanged).format(\"DD-MMM-YYYY\")\r\n // : \"N/A\";\r\n // //advertisedOnlineRate = data.advertisedOnlineRate ? currency + data.advertisedOnlineRate : 'N/A';\r\n // advertisedOnlineRate =\r\n // data.advertisedOnlineRate &&\r\n // data.advertisedOnlineRate != 0 &&\r\n // data.advertisedOnlineRate != null\r\n // ? data.isMonthly === 1\r\n // ? currency + data.advertisedOnlineRate + \"*\"\r\n // : currency + data.advertisedOnlineRate\r\n // : \"N/A\";\r\n // dtAdvertisedOnlineRateChanged = data.dtAdvertisedOnlineRateChanged\r\n // ? moment(data.dtAdvertisedOnlineRateChanged).format(\"DD-MMM-YYYY\")\r\n // : \"N/A\";\r\n // promo = data.promo ? data.promo : \"N/A\";\r\n // dtPromoChanged = data.dtPromoChanged\r\n // ? moment(data.dtPromoChanged).format(\"DD-MMM-YYYY\")\r\n // : \"N/A\";\r\n // let str =\r\n // alarm +\r\n // climate +\r\n // doorType +\r\n // driveUp +\r\n // elevator +\r\n // humidity +\r\n // vehicle +\r\n // outdoorAccess +\r\n // power +\r\n // covered;\r\n // var features = str.replace(/,\\s*$/, \"\");\r\n // proximity = data.proximity && data.proximity !== 'empty' ? data.proximity.toFixed(2) + units : '';\r\n // downloadInputMerge.push({\r\n // SEARCHNAME: searchName,\r\n // STORENAME: storename,\r\n // ADDRESS: storeAddress,\r\n // PROXIMITY: proximity,\r\n // STATE: state,\r\n // SIZE: size,\r\n // FLOOR: data.floor ? data.floor : \"N/A\",\r\n // FEATURES: features, //alarm + climate + doorType + driveUp + elevator + humidity + outdoorAccess + power,\r\n // \"ADVERTISED WALK-IN RATE\": advertisedWalkInRate, //data.regPrice && data.regPrice != 0 ? (data.isMonthly === 1 ? currency + data.regPrice + '*' : currency + data.regPrice) : 'N/A',\r\n // \"WALK-IN RATE LAST CHANGED\": adWalkinDate,\r\n // \"ADVERTISED ONLINE RATE\": advertisedOnlineRate, //data.onlinePrice && data.onlinePrice != 0 ? (data.isMonthly === 1 ? currency + data.onlinePrice + '*' : currency + data.onlinePrice) : 'N/A',\r\n // \"ONLINE RATE LAST CHANGED\": dtAdvertisedOnlineRateChanged, //adOnlineDate,\r\n // \"ADVERTISED PROMOTION\": promo,\r\n // \"PROMOTION LAST CHANGED\": dtPromoChanged,\r\n // });\r\n // });\r\n // var merge = [\r\n // {\r\n // SEARCHNAME: \"* This rate is calculated from an advertised monthly rate\",\r\n // },\r\n // ];\r\n // downloadInput =\r\n // CONFIG.RegionId === 3\r\n // ? downloadInputMerge.concat(merge)\r\n // : downloadInputMerge;\r\n // var stoName =\r\n // this.state.storeAddress.storeName &&\r\n // this.state.storeAddress.storeName !== \"\" &&\r\n // this.state.storeAddress.storeName !== undefined &&\r\n // this.state.storeAddress.storeName !== null\r\n // ? this.state.storeAddress.storeName\r\n // : \"Your Store\";\r\n // fileName =\r\n // stoName + \"_\" + moment(this.state.currentDate).format(\"DD-MMM-YYYY\");\r\n // //var result = exportFromJSON({ data, fileName, exportType, formateDate: 'yyyy/mm/dd' });\r\n // this.setState({ downloadInput, fileName });\r\n // }\r\n\r\n //Ignored\r\n // downloadExcel(){\r\n // let data = '';\r\n // let date = this.state.currentDate;\r\n // var day = date.getDate();\r\n // var month = date.getMonth();\r\n // var year = date.getFullYear();\r\n // let fileName;\r\n // let resultArray = [];\r\n // let inputArray = [];\r\n // var currency = this.state.storeAddress.countryCurrency;\r\n // inputArray = this.state.cards;\r\n // inputArray.map(data =>{\r\n // if(data != 'Add New')\r\n // {\r\n // let priceTrend = data.priceTrend ? data.priceTrend.toString() : 'N/A';\r\n // let name = data.name.toString();\r\n // resultArray.push({\r\n // \"Name\": name,\r\n // \"Offered by\": data.storeCount > 1 ? data.storeCount + ' stores' : data.storeCount != 0 ? data.storeCount + ' store' : 'N/A',\r\n // \"Avg. Market Price\": data.avgPrice != \"N/A\" && data.avgPrice != 0 ? currency + data.avgPrice : 'N/A',\r\n // \"Your Price\": data.myStorePrice != 'N/A' && data.myStorePrice != 0 ? currency + data.myStorePrice : 'N/A',\r\n // \"Price Trends\": priceTrend,\r\n // \"Show Price Trend for\": this.state.priceTrends === 1 ? 'Last 5 days' : this.state.priceTrends === 2 ? 'Last 30 days' : this.state.priceTrends === 3 ? 'Last 90 days' : this.state.priceTrends === 4 ? 'Last 6 Months' : 'Last 12 Months'\r\n // })\r\n // }\r\n // })\r\n // data = resultArray;\r\n // fileName = this.state.storeAddress.storeName? this.state.storeAddress.storeName+'_'+ moment(this.state.currentDate).format(\"DD-MMM-YYYY\") : '';\r\n // //var result = exportFromJSON({ data, fileName, exportType });\r\n // this.setState({resultArray, fileName});\r\n // }\r\n\r\n setToggle = () => {\r\n this.setState((prevState) => ({\r\n dropdownOpen: !prevState.dropdownOpen,\r\n }));\r\n };\r\n\r\n refreshMenu() {\r\n localStorage.setItem(\"refreshMenu\", \"show-menu\");\r\n var isElement = document.getElementById(\"r2\");\r\n if (isElement == null) {\r\n document.getElementById(\"r1\").click();\r\n } else {\r\n document.getElementById(\"r1\").click();\r\n document.getElementById(\"r2\").click();\r\n }\r\n }\r\nasync componentDidMount(priceTrendss) {\r\n this.setState({\r\n isLoading: true,\r\n marketDownloadData: [],\r\n });\r\n const userstoreid = this.state.storeid;\r\n let priceTrends1 = \"\";\r\n if (priceTrendss) {\r\n priceTrends1 = priceTrendss;\r\n } else {\r\n priceTrends1 = this.state.priceTrends;\r\n }\r\n let token = localStorage.getItem(\"accessKey\");\r\n // console.log(token);\r\n\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = \"Bearer \" + token;\r\n }\r\n\r\n if (userstoreid) {\r\n let data = {\r\n UserStoreId: userstoreid,\r\n SortId: priceTrends1,\r\n RegionId: CONFIG.RegionId,\r\n };\r\n // axios.post(CONFIG.API_URL + 'market/dashboard/' + userstoreid + '/' + priceTrends1)\r\n const response = await axios.post(CONFIG.API_URL + \"market/dashboard/\", data)\r\n if(response.status === 200){\r\n this.state.countryCode = response.data.board.storeInformation.countryCode;\r\n this.state.storeInformation =\r\n response.data.board.storeInformation.countryCurrency;\r\n this.state.cards = response.data.board.units;\r\n const storedata = response.data.board.storeInformation;\r\n this.state.cards.unshift(\"Add New\");\r\n\r\n // this.setState({ isLoading: false, storedata }, () => {\r\n // this.downloadExcel();\r\n // });\r\n this.setState({ isLoading: false, storedata });\r\n /*\r\n }\r\n else\r\n {\r\n alert(\"No store units available\");\r\n const { from } = this.props.location.state || { from: { pathname: \"/my-market/\" } };\r\n this.props.history.push(from);\r\n }*/\r\n }else{\r\n this.setState({ isLoading: false });\r\n if (response.status === 401) {\r\n localStorage.removeItem(\"accessKey\");\r\n const { from } = this.props.location.state || {\r\n from: { pathname: \"/\" },\r\n };\r\n this.props.history.push(from);\r\n } else if (response.status === 403) {\r\n const { from } = this.props.location.state || {\r\n from: { pathname: \"/UnauthorizedAccess\" },\r\n };\r\n this.props.history.push(from);\r\n } else {\r\n alert(response.data);\r\n }\r\n }\r\n \r\n } else {\r\n alert(\"User store id is empty\");\r\n }\r\n\r\n\r\n const data1 = {\r\n UserStoreID: parseInt(this.state.storeid),\r\n RegionId: CONFIG.RegionId,\r\n };\r\n axios\r\n .post(CONFIG.API_URL + \"dashboard/dashboardlocation/\", data1)\r\n .then((res) => {\r\n let storeAddress = res.data.data.storeDashboard;\r\n // To identify the Status report of Excel report is progress\r\n let excelProgress = storeAddress.reportStatus == 1 ? true : false;\r\n // End of To identify the Status report of Excel report is progress\r\n\r\n // this.setState({ storeAddress, excelProgress }, () => {\r\n // this.downloadExcel();\r\n // });\r\n this.setState({ storeAddress, excelProgress });\r\n })\r\n .catch((err) => {\r\n this.setState({ isLoading: false });\r\n if (err.response.status === 401) {\r\n localStorage.removeItem(\"accessKey\");\r\n const { from } = this.props.location.state || {\r\n from: { pathname: \"/\" },\r\n };\r\n this.props.history.push(from);\r\n } else if (err.response.status === 403) {\r\n const { from } = this.props.location.state || {\r\n from: { pathname: \"/UnauthorizedAccess\" },\r\n };\r\n this.props.history.push(from);\r\n } else {\r\n alert(err.response.data);\r\n }\r\n });\r\n\r\n\r\n // To Call ExcelReport status Api\r\n this.CallgetStatusReportApi = setInterval(() => this.statusReport(), 30000);\r\n }\r\n\r\n\r\n\r\n //To call the Function\r\n componentWillUnmount() {\r\n clearInterval(this.CallgetStatusReportApi);\r\n }\r\n\r\n // To Get Status of ExcelReport\r\n statusReport() {\r\n if (this.state.excelProgress) {\r\n let token = localStorage.getItem(\"accessKey\");\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = \"Bearer \" + token;\r\n }\r\n const data = {\r\n UserStoreID: parseInt(this.state.storeid),\r\n RegionId: CONFIG.RegionId,\r\n };\r\n axios\r\n .post(CONFIG.API_URL + \"dashboard/dashboardlocation/\", data)\r\n .then((res) => {\r\n let storeAddress = res.data.data.storeDashboard;\r\n // To identify the Status report of Excel report is progress\r\n let excelProgress = storeAddress.reportStatus == 1 ? true : false;\r\n // End of To identify the Status report of Excel report is progress\r\n\r\n this.setState({ storeAddress, excelProgress });\r\n })\r\n .catch((err) => {\r\n this.setState({ isLoading: false });\r\n if (err.response.status === 401) {\r\n localStorage.removeItem(\"accessKey\");\r\n const { from } = this.props.location.state || {\r\n from: { pathname: \"/\" },\r\n };\r\n this.props.history.push(from);\r\n } else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }\r\n }\r\n\r\n showPriceTrends = (event) => {\r\n let priceTrends = event.target.value;\r\n\r\n this.setState(\r\n { priceTrendsAvg: priceTrends, priceTrends: priceTrends },\r\n () => {\r\n this.componentDidMount(priceTrends);\r\n }\r\n );\r\n };\r\n\r\n moveCard = (dragIndex, hoverIndex) => {\r\n const dragCard = this.state.cards[dragIndex];\r\n this.state.cards.splice(dragIndex, 1);\r\n this.state.cards.splice(hoverIndex, 0, dragCard);\r\n\r\n this.setState({ cards: this.state.cards });\r\n const userstoreid = this.state.storeid;\r\n let removeCard = this.state.cards;\r\n removeCard.shift();\r\n this.state.cards.unshift(\"Add New\");\r\n let reorderid = removeCard;\r\n let arr = [];\r\n\r\n reorderid.forEach(function (e) {\r\n arr.push(e.searchid);\r\n });\r\n\r\n let searchorder = arr.toString();\r\n let token = localStorage.getItem(\"accessKey\");\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = \"Bearer \" + token;\r\n }\r\n let data = {\r\n UserStoreId: userstoreid,\r\n OrderList: searchorder,\r\n RegionId: CONFIG.RegionId,\r\n };\r\n // axios.post(CONFIG.API_URL + 'Market/unitorder/' + userstoreid + '/' + searchorder)\r\n axios\r\n .post(CONFIG.API_URL + \"Market/unitorder/\", data)\r\n .then((res) => {\r\n // console.log(res)\r\n })\r\n .catch((err) => {\r\n this.setState({ isLoading: false });\r\n if (err.response.status === 401) {\r\n localStorage.removeItem(\"accessKey\");\r\n const { from } = this.props.location.state || {\r\n from: { pathname: \"/\" },\r\n };\r\n this.props.history.push(from);\r\n } else {\r\n // alert(err.response.data);\r\n }\r\n });\r\n };\r\n handler() {\r\n this.componentDidMount();\r\n }\r\n downLoadPDF() {\r\n this.setState({\r\n // isLoading: true,\r\n pdfLoading: false,\r\n });\r\n var currentDate = moment(new Date()).format(\"DD-MMM-YYYY\");\r\n let pta = this.state.priceTrendsAvg ? this.state.priceTrendsAvg : 2;\r\n let usId = this.props.match.params.storeid;\r\n let accessKey = localStorage.getItem(\"SecretKey\");\r\n //let accessKey = '3f2b471776bc41cf863720bfc8cf9cb9';\r\n var timestamp =\r\n new Date().getDate() +\r\n \"\" +\r\n new Date().getMonth() +\r\n \"\" +\r\n new Date().getFullYear() +\r\n \"\" +\r\n new Date().getTime();\r\n //construct filename for pdf report.\r\n var fileName = usId + \"MarketDashboard\" + \"_\" + timestamp + \".pdf\";\r\n var stoName =\r\n this.state.storeAddress.storeName &&\r\n this.state.storeAddress.storeName !== null &&\r\n this.state.storeAddress.storeName !== \"\" &&\r\n this.state.storeAddress.storeName !== undefined\r\n ? this.state.storeAddress.storeName\r\n : \"Your Store\";\r\n var fileNamePdf =\r\n stoName + \"_\" + \"MarketDashboard\" + \"_\" + currentDate + \".pdf\";\r\n this.setState({\r\n snackClr: \"snack-info\",\r\n snackOpen: true,\r\n snackMsg:\r\n \"Your download is being processed. The \" +\r\n fileNamePdf +\r\n \" file will download automatically to your browser when ready and Please do not close or reload the pages until download completes. We recommend you check your Downloads folder if you don’t see it in your browser.\",\r\n });\r\n let ComponentName = 1;\r\n const Input = {\r\n RegionID: CONFIG.RegionId,\r\n URL:\r\n CONFIG.OPTZ_URL +\r\n \"render-pdf/\" +\r\n accessKey +\r\n \"/\" +\r\n ComponentName +\r\n \"/0/\" +\r\n usId +\r\n \"/\" +\r\n pta +\r\n \"/\",\r\n FileName: fileName,\r\n };\r\n // axios.post(CONFIG.API_URL + 'dashboard/generatepdfbypage', Input)\r\n axios({\r\n url: CONFIG.API_URL + \"dashboard/generatepdfbypage\",\r\n method: \"post\",\r\n responseType: \"blob\",\r\n data: Input,\r\n })\r\n .then((response) => {\r\n const blob = new Blob([response.data], { type: 'application/octet-stream' }); \r\n const link = document.createElement('a');\r\n link.href = window.URL.createObjectURL(blob); \r\n link.download = fileNamePdf;\r\n link.dispatchEvent(\r\n new MouseEvent('click', { \r\n bubbles: true, \r\n cancelable: true, \r\n view: window \r\n })\r\n ); \r\n setTimeout(() => {\r\n // For Firefox it is necessary to delay revoking the ObjectURL\r\n window.URL.revokeObjectURL(link.href);\r\n link.remove();\r\n }, 3000); \r\n this.setState({isLoading: false }); \r\n })\r\n .catch((err) => {\r\n this.setState({ isLoading: false });\r\n });\r\n }\r\n\r\n // TO Download Activity Report PDF\r\n downLoadActivityReportPDF() {\r\n this.setState({\r\n // isLoading: true,\r\n pdfLoading: false,\r\n });\r\n var currentDate = moment(new Date()).format(\"DD-MMM-YYYY\");\r\n let usId = this.props.match.params.storeid;\r\n let accessKey = localStorage.getItem(\"SecretKey\");\r\n //let accessKey = '3f2b471776bc41cf863720bfc8cf9cb9';\r\n var timestamp =\r\n new Date().getDate() +\r\n \"\" +\r\n new Date().getMonth() +\r\n \"\" +\r\n new Date().getFullYear() +\r\n \"\" +\r\n new Date().getTime();\r\n //construct filename for pdf report.\r\n var fileName = usId + \"ActivityReport\" + \"_\" + timestamp + \".pdf\";\r\n var stoName =\r\n this.state.storeAddress.storeName &&\r\n this.state.storeAddress.storeName !== null &&\r\n this.state.storeAddress.storeName !== \"\" &&\r\n this.state.storeAddress.storeName !== undefined\r\n ? this.state.storeAddress.storeName\r\n : \"Your Store\";\r\n var fileNamePdf =\r\n stoName + \"_\" + \"ActivityReport\" + \"_\" + currentDate + \".pdf\";\r\n this.setState({\r\n snackClr: \"snack-info\",\r\n snackOpen: true,\r\n snackMsg:\r\n \"Your download is being processed. The \" +\r\n fileNamePdf +\r\n \" file will download automatically to your browser when ready and Please do not close or reload the pages until download completes. We recommend you check your Downloads folder if you don’t see it in your browser.\",\r\n });\r\n const Input = {\r\n RegionID: CONFIG.RegionId,\r\n URL: CONFIG.OPTZ_URL + \"render-activity-pdf/\" + accessKey + \"/\" + usId,\r\n FileName: fileName,\r\n };\r\n // axios.post(CONFIG.API_URL + 'dashboard/generatepdfbypage', Input)\r\n axios({\r\n url: CONFIG.API_URL + \"dashboard/generatepdfbypage\",\r\n method: \"post\",\r\n responseType: \"blob\",\r\n data: Input,\r\n })\r\n .then((response) => {\r\n \r\n const blob = new Blob([response.data], { type: 'application/octet-stream' }); \r\n const link = document.createElement('a');\r\n link.href = window.URL.createObjectURL(blob); \r\n link.download = fileNamePdf;\r\n link.dispatchEvent(\r\n new MouseEvent('click', { \r\n bubbles: true, \r\n cancelable: true, \r\n view: window \r\n })\r\n ); \r\n setTimeout(() => {\r\n // For Firefox it is necessary to delay revoking the ObjectURL\r\n window.URL.revokeObjectURL(link.href);\r\n link.remove();\r\n }, 3000); \r\n this.setState({isLoading: false }); \r\n })\r\n .catch((err) => {\r\n this.setState({ isLoading: false });\r\n });\r\n }\r\n\r\n snackHandleclose = (event, reason) => {\r\n if (reason === \"clickaway\") {\r\n return;\r\n }\r\n this.setState({ snackOpen: false });\r\n };\r\n\r\n marketDashboard() {\r\n this.setState((prevState) => ({\r\n modal: !prevState.modal,\r\n }));\r\n }\r\n // Call RabitQueue\r\n submitRabitQueue(storeId) {\r\n this.setState({ isLoading: true, downLoadReportModal: false });\r\n axios\r\n .post(CONFIG.API_URL + \"market/reportqueue/\" + storeId)\r\n .then((response) => {\r\n if (response.data === \"success\") {\r\n this.setState(\r\n {\r\n snackOpen: true,\r\n snackMsg:\r\n \"Your Competitor Report is being generated. This might take a couple minutes. When the report is ready it will download automatically when you click the report icon again.\",\r\n },\r\n () => {\r\n this.componentDidMount();\r\n }\r\n );\r\n }\r\n })\r\n .catch((err) => {\r\n this.setState({ isLoading: false });\r\n if (err.response.status === 401) {\r\n localStorage.removeItem(\"accessKey\");\r\n const { from } = this.props.location.state || {\r\n from: { pathname: \"/\" },\r\n };\r\n this.props.history.push(from);\r\n } else {\r\n this.setState({\r\n snackOpen: true,\r\n snackMsg:\r\n \"Report generation is in progress, please try after sometime.\",\r\n });\r\n }\r\n });\r\n }\r\n\r\n //Excel report Download\r\n downLoadReport(rep_id, filename) {\r\n this.setState({ isLoading: true, downLoadReportModal: false });\r\n axios({\r\n url:\r\n CONFIG.API_URL +\r\n \"market/downloadreport/\" +\r\n rep_id +\r\n \"/\" +\r\n CONFIG.RegionId,\r\n method: \"GET\",\r\n responseType: \"blob\",\r\n })\r\n .then((response) => {\r\n const blob = new Blob([response.data], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });\r\n const link = document.createElement('a');\r\n link.href = window.URL.createObjectURL(blob);\r\n link.download = filename.replace(\"
\", \"\") + \".xlsx\"; \r\n link.click(); \r\n this.setState({ isLoading: false });\r\n \r\n // const url = window.URL.createObjectURL(new Blob([response.data]));\r\n // const link = document.createElement(\"a\");\r\n // link.href = url;\r\n // link.setAttribute(\"download\", filename.replace(\"
\", \"\") + \".xlsx\");\r\n // document.body.appendChild(link);\r\n // link.click();\r\n // this.setState({ isLoading: false });\r\n })\r\n .catch((err) => {\r\n this.setState({ isLoading: false });\r\n if (err.response.status === 401) {\r\n localStorage.removeItem(\"accessKey\");\r\n const { from } = this.props.location.state || {\r\n from: { pathname: \"/\" },\r\n };\r\n this.props.history.push(from);\r\n } else {\r\n this.setState({\r\n snackOpen: true,\r\n snackMsg:\r\n \"Report generation is in progress, please try after sometime.\",\r\n });\r\n }\r\n });\r\n }\r\n\r\n handleDownload = (stoName) => {\r\n var fileName =\r\n stoName + \"_\" + moment(this.state.currentDate).format(\"DD-MMM-YYYY\");\r\n this.setState({\r\n snackClr: \"snack-info\",\r\n snackOpen: true,\r\n snackMsg:\r\n \"Your download is being processed. The \" +\r\n fileName +\r\n \" file will download automatically to your browser when ready and Please do not close or reload the pages until download completes. We recommend you check your Downloads folder if you don’t see it in your browser.\",\r\n });\r\n\r\n let token = localStorage.getItem(\"accessKey\");\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = \"Bearer \" + token;\r\n }\r\n let Input = {\r\n UserStoreId: this.state.storeid,\r\n RegionId: CONFIG.RegionId,\r\n Currency: this.state.storeAddress.countryCurrency,\r\n };\r\n axios({\r\n url: CONFIG.API_URL + \"market/downloadsearchdata\",\r\n method: \"post\",\r\n responseType: \"blob\",\r\n data: Input,\r\n })\r\n .then((response) => {\r\n const blob = new Blob([response.data], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });\r\n const link = document.createElement('a');\r\n link.href = window.URL.createObjectURL(blob);\r\n link.download = fileName.replace(\"
\", \"\") + \".xlsx\"; \r\n link.click(); \r\n this.setState({ isLoading: false }); \r\n })\r\n .catch((err) => {\r\n this.setState({ isLoading: false });\r\n if (err.response.status === 401) {\r\n localStorage.removeItem(\"accessKey\");\r\n const { from } = this.props.location.state || {\r\n from: { pathname: \"/\" },\r\n };\r\n this.props.history.push(from);\r\n } else {\r\n this.setState({\r\n snackOpen: true,\r\n snackMsg:\r\n \"Report generation is in progress, please try after sometime.\",\r\n });\r\n }\r\n });\r\n };\r\n\r\n compReportDownload = (stoName) => {\r\n var fileName = stoName;\r\n this.setState({\r\n snackClr: \"snack-info\",\r\n snackOpen: true,\r\n snackMsg:\r\n \"Your download is being processed. The \" +\r\n fileName +\r\n \" file will download automatically to your browser when ready and Please do not close or reload the pages until download completes. We recommend you check your Downloads folder if you don’t see it in your browser.\",\r\n });\r\n\r\n let token = localStorage.getItem(\"accessKey\");\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = \"Bearer \" + token;\r\n }\r\n\r\n axios({\r\n url: CONFIG.API_URL + \"market/reportqueue/\" + this.state.storeid,\r\n method: \"post\",\r\n responseType: \"blob\",\r\n })\r\n .then((response) => {\r\n \r\n const blob = new Blob([response.data], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });\r\n const link = document.createElement('a');\r\n link.href = window.URL.createObjectURL(blob);\r\n link.download = fileName.replace(\"
\", \"\") + \".xlsx\"; \r\n link.click(); \r\n this.setState({ isLoading: false }); \r\n })\r\n .catch((err) => {\r\n this.setState({ isLoading: false });\r\n if (err.response.status === 401) {\r\n localStorage.removeItem(\"accessKey\");\r\n const { from } = this.props.location.state || {\r\n from: { pathname: \"/\" },\r\n };\r\n this.props.history.push(from);\r\n } else {\r\n this.setState({\r\n snackOpen: true,\r\n snackMsg:\r\n \"Report generation is in progress, please try after sometime.\",\r\n });\r\n }\r\n });\r\n };\r\n\r\n compReportDownloadCsv = (stoName) => {\r\n var fileName = stoName;\r\n this.setState({\r\n snackClr: \"snack-info\",\r\n snackOpen: true,\r\n snackMsg:\r\n \"Your download is being processed. The \" +\r\n fileName +\r\n \" file will download automatically to your browser when ready and Please do not close or reload the pages until download completes. We recommend you check your Downloads folder if you don’t see it in your browser.\",\r\n });\r\n\r\n let token = localStorage.getItem(\"accessKey\");\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = \"Bearer \" + token;\r\n }\r\n\r\n axios({\r\n url: CONFIG.API_URL + \"market/rawdataqueue/\" + this.state.storeid,\r\n method: \"post\",\r\n responseType: \"blob\",\r\n })\r\n .then((response) => {\r\n const blob = new Blob([response.data], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });\r\n const link = document.createElement('a');\r\n link.href = window.URL.createObjectURL(blob);\r\n link.download = fileName.replace(\"
\", \"\") + \".csv\"; \r\n link.click(); \r\n this.setState({ isLoading: false }); \r\n })\r\n .catch((err) => {\r\n this.setState({ isLoading: false });\r\n if (err.response.status === 401) {\r\n localStorage.removeItem(\"accessKey\");\r\n const { from } = this.props.location.state || {\r\n from: { pathname: \"/\" },\r\n };\r\n this.props.history.push(from);\r\n } else {\r\n this.setState({\r\n snackOpen: true,\r\n snackMsg:\r\n \"Report generation is in progress, please try after sometime.\",\r\n });\r\n }\r\n });\r\n };\r\n\r\n render() {\r\n const {\r\n cards,\r\n storeInformation,\r\n pdfLoading,\r\n isLoading,\r\n countryCode,\r\n storeid,\r\n storedata,\r\n storeAddress,\r\n priceTrendsAvg,\r\n snackOpen,\r\n snackMsg,\r\n myMarketData,\r\n } = this.state;\r\n const defaultProps = {\r\n helpTitle: \"Market Overview\",\r\n helpContent:\r\n \"

By default, this dashboard shows 12 of the most common unit types. Each 'box' gives you a quick snapshot of the rates for this Market. Below is a breakdown of what's in each snapshot:

Offered by x stores

This is the number of stores advertising this unit type in this Market

\" +\r\n `${\r\n CONFIG.RegionId === 3\r\n ? \"
Average Market Weekly Price
\"\r\n : \"
Average Market Price
\"\r\n }` +\r\n \"

This is the market average rate for this unit type. The average rates shown here are calculated using the \" +\r\n `${\r\n CONFIG.RegionId === 3\r\n ? \"Advertised Online Weekly rates\"\r\n : \"Advertised Online rates\"\r\n }` +\r\n \"

Trend

The upward/downward arrow shows the direction of the trend for this unit type's rates over the period selected (5 days, 30 days, 90 days)

\" +\r\n `${\r\n CONFIG.RegionId === 3\r\n ? \"
Your Weekly Price
\"\r\n : \"
Your Price
\"\r\n }` +\r\n \"

If you have set up your store as your Market, your store's rate(s) will appear here for the unit type. If we have not found a rate for your store, it will be shown as 'N/A'

View Details

To view the detailed pricing insights for the unit type, click on View Details

+Add New

You are not limited to the 12 unit types you see here. Click +Add New to configure your own unit size and features

Edit

Click the pencil icon to make any changes to the features for that unit type

Delete

Click the x to delete this unit type from the dashboard

*Your store prices are included in the calculations.

Refer the below help video for more information.

\",\r\n };\r\n // console.log(storeAddress, 'checkstoreaddres')\r\n return (\r\n
\r\n
\r\n \r\n \r\n {localStorage.getItem(\"isMVP_User\") === \"false\" ? \r\n this.refreshMenu()}\r\n color=\"inherit\"\r\n >\r\n My Market\r\n \r\n : \r\n Explorer Dashboard\r\n // Explorer Dashboard\r\n }\r\n\r\n \r\n \r\n Market Dashboard\r\n \r\n \r\n {/* */}\r\n {/* 1 ? false : true}\r\n className={\r\n cards.length > 1\r\n ? \"mb-2 apply-btn download-pdf \"\r\n : \"mb-2 download-pdf-disabled\"\r\n }\r\n onClick={this.downLoadPDF.bind(this)}\r\n >\r\n \r\n PDF Download\r\n */}\r\n
\r\n
\r\n \r\n \r\n

\r\n Market Dashboard \r\n

\r\n \r\n {isLoading === false || pdfLoading === false ? (\r\n \r\n
\r\n {storeAddress.storeName &&\r\n storeAddress.storeName !== null &&\r\n storeAddress.storeName !== \"\"\r\n ? storeAddress.storeName\r\n : isLoading === false\r\n ? \"Your Store\"\r\n : \"\"}\r\n
\r\n

\r\n {storeAddress.storeAddress1 &&\r\n storeAddress.storeAddress1 !== null &&\r\n storeAddress.storeAddress1 !== \"\" &&\r\n storeAddress.storeAddress1 !== undefined\r\n ? storeAddress.storeAddress1 + \",\"\r\n : isLoading === false\r\n ? \"\"\r\n : \"\"}{\" \"}\r\n {storeAddress.storeAddress2\r\n ? storeAddress.storeAddress2 + \",\"\r\n : \"\"}{\" \"}\r\n {storeAddress.storeCity\r\n ? storeAddress.storeCity + \", \"\r\n : storeAddress.searchType === 1 &&\r\n (storeAddress.storeCity === \"\" ||\r\n storeAddress.storeCity === null) &&\r\n (storeAddress.storeZipCode === \"\" ||\r\n storeAddress.storeZipCode === null)\r\n ? storeAddress.latitude +\r\n \", \" +\r\n storeAddress.longitude +\r\n \", \"\r\n : isLoading === false\r\n ? \"\"\r\n : \"\"}\r\n {storeAddress.storeState\r\n ? storeAddress.storeState + \"\"\r\n : isLoading === false\r\n ? \"\"\r\n : \"\"}{\" \"}\r\n {storeAddress.storeZipCode\r\n ? storeAddress.storeZipCode + \"\"\r\n : isLoading === false\r\n ? \"\"\r\n : \"\"}\r\n

\r\n \r\n \r\n {storeAddress.storeZoneCoverage\r\n ? storeAddress.storeZoneCoverage\r\n : isLoading === false\r\n ? \"N/A\"\r\n : \"\"}\r\n \r\n \r\n ) : (\r\n \"\"\r\n )}\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {/* \r\n */}\r\n \r\n \r\n
\r\n
\r\n \r\n Download Reports\r\n \r\n \r\n this.handleDownload(\r\n storeAddress.storeName.replace(\"
\", \"\")\r\n )\r\n }\r\n >\r\n \"\" Dashboard Data\r\n \r\n 1 ? false : true}\r\n onClick={this.downLoadPDF.bind(this)}\r\n >\r\n \r\n {\" \"}\r\n \r\n \r\n \r\n \r\n Dashboard View\r\n \r\n {\r\n // storeAddress.competitorStoreID !== null &&\r\n // storeAddress.competitorStoreID !== 0 &&\r\n storeAddress.compsCount !== null &&\r\n storeAddress.compsCount > 0 ? (\r\n <>\r\n \r\n this.compReportDownload(\r\n storeAddress.storeName.replace(\"
\", \"\")\r\n )\r\n }\r\n >\r\n \"\" Competitor Report - Excel\r\n \r\n \r\n this.compReportDownloadCsv(\r\n storeAddress.storeName.replace(\"
\", \"\")\r\n )\r\n }\r\n >\r\n \"\" Competitor Report - CSV\r\n \r\n \r\n ) : (\r\n \"\"\r\n )\r\n }\r\n \r\n \r\n {\" \"}\r\n \r\n \r\n \r\n {\" \"}\r\n Market Activity Report\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n {/* {this.state.storeAddress.compsCount >0 && this.state.marketDownloadData.length > 0 ? */}\r\n\r\n {/* 0 &&\r\n this.state.marketDownloadData.length > 0 ? (\r\n \r\n \r\n Download All Data\r\n \r\n ) : (\r\n \r\n \r\n Download All Data\r\n \r\n )\r\n }\r\n > */}\r\n {/* \r\n \r\n \r\n */}\r\n {/* Already commented */}\r\n {/* \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n */}\r\n\r\n {/* */}\r\n {/* {\r\n // Checking Competitor Available (category.competitorStoreID) and Competitor belongs to \"US\"(category.displayReport)\r\n storeAddress.competitorStoreID !== null &&\r\n storeAddress.competitorStoreID !== 0 &&\r\n storeAddress.compsCount !== null &&\r\n storeAddress.compsCount > 0 ? (\r\n storeAddress.zoneCoverage === null ? ( // Request to download CompReport if category.zoneCoverage is available\r\n \r\n \r\n Download Comp Report\r\n ) : storeAddress.reportStatus === null ||\r\n storeAddress.reportStatus === 0 ? ( // Request to download CompReport\r\n \r\n this.submitRabitQueue(this.state.storeid)}\r\n >\r\n \r\n Download Comp Report\r\n ) : storeAddress.reportStatus === 1 ? ( // Compreport in progress\r\n \r\n \r\n Download Comp Report\r\n ) : storeAddress.reportStatus === 3 ? ( // Able to download Compreport\r\n \r\n this.downLoadReport(\r\n storeAddress.reportID,\r\n storeAddress.storeName.replace(\"
\", \"\")\r\n )\r\n }\r\n >\r\n \r\n Download Comp Report\r\n ) : storeAddress.reportStatus === 4 ? ( // Unable to Download Compreport\r\n \r\n \r\n Download Comp Report\r\n ) : storeAddress.reportStatus === 5 ? ( // Un Available price\r\n \r\n \r\n Download Comp Report\r\n ) : (\r\n \"\"\r\n )\r\n ) : (\r\n \"\"\r\n )\r\n } */}\r\n {/* */}\r\n
\r\n \r\n
\r\n
\r\n {/* */}\r\n\r\n
\r\n {isLoading ? (\r\n
\r\n
\r\n
\r\n ) : (\r\n \"\"\r\n )}\r\n \r\n
\r\n \r\n {cards.map((card, i) => (\r\n
\r\n \r\n
\r\n ))}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n Before you can view your competitors pricing and promotions, you\r\n must define the geographical coverage zone for this market.{\" \"}\r\n \r\n \r\n \r\n Close\r\n \r\n \r\n \r\n
\r\n \r\n \r\n ,\r\n ]}\r\n message={{snackMsg}}\r\n />\r\n
\r\n );\r\n }\r\n}\r\nexport default DragDropContext(HTML5Backend)(MarketDashboard);\r\n","import React from 'react';\r\nimport './MarketDashboardHeader.css'\r\nimport axios from 'axios';\r\nimport { CONFIG } from '../../utils/config';\r\nimport { Col, Row, Input } from 'reactstrap';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\n\r\nexport default class MarketDashboardHeader extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n \r\n }\r\n \r\n componentDidMount() {\r\n \r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n \r\n \r\n

Market Dashboard

\r\n \r\n \r\n
{this.props.StoreName}
\r\n

{this.props.StoreAddress}, {this.props.StoreCity}, {this.props.StoreState} {this.props.StoreZipcode}

\r\n {this.props.StoreRadius}\r\n \r\n {/* \r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n */}\r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n","import React, { Component } from 'react';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Table from '@material-ui/core/Table';\r\nimport TableBody from '@material-ui/core/TableBody';\r\nimport TableCell from '@material-ui/core/TableCell';\r\nimport TableHead from '@material-ui/core/TableHead';\r\nimport TableRow from '@material-ui/core/TableRow';\r\nimport TablePagination from '@material-ui/core/TablePagination';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport FirstPageIcon from '@material-ui/icons/FirstPage';\r\nimport KeyboardArrowLeft from '@material-ui/icons/KeyboardArrowLeft';\r\nimport KeyboardArrowRight from '@material-ui/icons/KeyboardArrowRight';\r\nimport LastPageIcon from '@material-ui/icons/LastPage';\r\nimport TableFooter from '@material-ui/core/TableFooter';\r\nimport { Modal, ModalHeader, ModalBody } from 'reactstrap';\r\nimport { CONFIG } from '../../utils/config';\r\nimport axios from 'axios';\r\n\r\nconst actionsStyles = theme => ({\r\n tablepaggination: {\r\n flexShrink: 0,\r\n color: theme.palette.text.secondary,\r\n marginLeft: theme.spacing * 2.5,\r\n },\r\n});\r\n\r\nclass MyMarket extends React.Component {\r\n\r\n handleFirstPageButtonClick = event => {\r\n this.props.onChangePage(event, 0);\r\n };\r\n\r\n handleBackButtonClick = event => {\r\n this.props.onChangePage(event, this.props.page - 1);\r\n };\r\n\r\n handleNextButtonClick = event => {\r\n this.props.onChangePage(event, this.props.page + 1);\r\n };\r\n\r\n handleLastPageButtonClick = event => {\r\n this.props.onChangePage(\r\n event,\r\n Math.max(0, Math.ceil(this.props.count / this.props.rowsPerPage) - 1),\r\n );\r\n };\r\n\r\n render() {\r\n const { classes, count, page, rowsPerPage, theme } = this.props;\r\n\r\n return (\r\n
\r\n \r\n {theme.direction === 'rtl' ? : }\r\n \r\n \r\n {theme.direction === 'rtl' ? : }\r\n \r\n = Math.ceil(count / rowsPerPage) - 1}\r\n aria-label=\"Next Page\"\r\n >\r\n {theme.direction === 'rtl' ? : }\r\n \r\n = Math.ceil(count / rowsPerPage) - 1}\r\n aria-label=\"Last Page\"\r\n >\r\n {theme.direction === 'rtl' ? : }\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nconst MyMarketWrapped = withStyles(actionsStyles, { withTheme: true })(\r\n MyMarket,\r\n);\r\n\r\nexport default class CompetitorStore extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n pageCount: 0,\r\n trackModalData: '',\r\n modal: false,\r\n storeAddress: ''\r\n }\r\n\r\n this.toggleStoreModal = this.toggleStoreModal.bind(this);\r\n this.trackModal = this.trackModal.bind(this);\r\n }\r\n\r\n toggleStoreModal(storeAddress, storeId) {\r\n this.setState(state => ({\r\n modal: !state.modal,\r\n storeAddress: storeAddress,\r\n }))\r\n\r\n axios.post(CONFIG.API_URL + 'market/competitors/' + storeId + '/' + CONFIG.RegionId)\r\n .then(response => {\r\n const trackModalData = response.data.competitor.competitorsList;\r\n var trackedFilterResult = trackModalData.filter((result) => result.isTracked === true);\r\n this.setState({ trackModalData: trackedFilterResult });\r\n }).catch((err) => {\r\n if (err.response.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }\r\n\r\n trackModal() {\r\n this.setState(state => ({\r\n modal: !state.modal,\r\n pageCount: 0\r\n }));\r\n }\r\n\r\n handleChangePageTrack = (event, pageCount) => {\r\n this.setState({ pageCount });\r\n };\r\n\r\n handleChangeRowsPerPageTrack = event => {\r\n this.setState({ pageCount: 0, 10: event.target.value });\r\n };\r\n\r\n render() {\r\n const { trackModalData, pageCount, storeAddress } = this.state;\r\n\r\n return (\r\n
\r\n this.trackModal()} \r\n className=\"store-mainpopup\"\r\n backdrop=\"static\">\r\n {storeAddress.storeName}\r\n \r\n \r\n \r\n \r\n COMPETITOR NAME\r\n ADDRESS\r\n \r\n \r\n \r\n {trackModalData ? trackModalData.slice(pageCount * 10, pageCount * 10 + 10).map((trackData) =>\r\n \r\n {trackData.storeName}\r\n {trackData.storeAddress}\r\n \r\n ) :\r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}","import React from \"react\";\r\nimport \"./PricingVolatility.css\";\r\nimport { CONFIG, MatchingCountryCode } from \"../../utils/config\";\r\nimport axios from \"axios\";\r\nimport { HelpTextPopup } from \"./../HelpTextPopup/index\";\r\nimport Table from \"@material-ui/core/Table\";\r\nimport TableBody from \"@material-ui/core/TableBody\";\r\nimport TableCell from \"@material-ui/core/TableCell\";\r\nimport TableHead from \"@material-ui/core/TableHead\";\r\nimport TableRow from \"@material-ui/core/TableRow\";\r\nimport Snackbar from \"@material-ui/core/Snackbar\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\nimport { AvForm, AvField } from \"availity-reactstrap-validation\";\r\nimport Breadcrumbs from \"@material-ui/core/Breadcrumbs\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\n\r\nimport duplicate from \"../../Assets/Images/duplicate.png\"\r\nimport Chart from \"react-apexcharts\";\r\nimport { Link } from \"react-router-dom\";\r\nimport {\r\n Row,\r\n Col,\r\n Button,\r\n Modal,\r\n ModalHeader,\r\n ModalBody,\r\n ModalFooter,\r\n Table as TableBoots,\r\n} from \"reactstrap\";\r\nimport shows from \"./../../Assets/Images/show.png\";\r\nimport hiddens from \"./../../Assets/Images/unshow.png\";\r\nimport downarrows from \"./../../Assets/Images/down-arrow.png\";\r\nimport { CompetitorStore } from \"../CompetitorStore\";\r\nimport TableSortLabel from \"@material-ui/core/TableSortLabel\";\r\nimport { faFilePdf } from \"@fortawesome/free-solid-svg-icons\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport moment from \"moment\";\r\nimport { map } from \"d3\";\r\nimport resetPng from '../../Assets/Images/reset.png';\r\n\r\nexport default class PricingVolatility extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.child = React.createRef();\r\n\r\n this.state = {\r\n options: {\r\n chart: {\r\n id: 'apexchart-price-volatility',\r\n toolbar: {\r\n show: false\r\n }\r\n },\r\n stroke: {\r\n width: 3,\r\n },\r\n markers: {\r\n size: 4,\r\n },\r\n grid: { show: false },\r\n legend: {\r\n show: false,\r\n },\r\n yaxis: {\r\n show: false,\r\n },\r\n xaxis: {\r\n show: false,\r\n labels: {\r\n show: false,\r\n },\r\n axisBorder: {\r\n show: false\r\n },\r\n axisTicks: {\r\n show: false\r\n }\r\n },\r\n noData: {\r\n text: \"Please wait for the data to be loaded. The data volume is high and this might take a minute for loading the data.\",\r\n verticalAlign: 'top',\r\n style: {\r\n color: \"#5b95f6\",\r\n fontSize: '13px',\r\n fontFamily: \"Helvetica\"\r\n }\r\n },\r\n },\r\n series: [],\r\n\r\n snackOpen: false,\r\n snackMSg: \"\",\r\n marketVolatility: \"\",\r\n marketStorePrice: \"\",\r\n isLoading: false,\r\n pdfLoading: false,\r\n unitType: \"\",\r\n priceOption: \"\",\r\n dashboardBasicInfo: \"\",\r\n volatilityGrpahData: \"\",\r\n isDefaultUnit: \"\",\r\n isDefaultPrice: \"All\",\r\n showGrpahData: \"\",\r\n isSelectIdPush: [],\r\n isShowGraph: [],\r\n isYourStore: [],\r\n isRemoveGrapg: [],\r\n isSelectCount: [],\r\n locationInfoData: [],\r\n isdefaultSelected: 1,\r\n isNoGraphData: false,\r\n isCompsName: [],\r\n order: \"asc\",\r\n orderBy: \"storeName\",\r\n isNoData: false,\r\n typePDF: \"\",\r\n sIdPDF: \"\",\r\n snackClr: \"\",\r\n duplicate_filterData: false,\r\n filterData:[],\r\n new_filterData:[]\r\n };\r\n this.getParams = this.getParams.bind(this);\r\n this.handleRequestSort = this.handleRequestSort.bind(this);\r\n this.stableSort = this.stableSort.bind(this);\r\n this.getSorting = this.getSorting.bind(this);\r\n this.desc = this.desc.bind(this);\r\n }\r\n\r\n getParams(storeAddress) {\r\n let storeId = parseInt(this.props.match.params.userstoreid);\r\n this.child.current.toggleStoreModal(storeAddress, storeId);\r\n }\r\n\r\n //Table Sorting\r\n handleRequestSort(event, property) {\r\n const { order, orderBy } = this.state;\r\n const isDesc = orderBy === property && order === \"desc\";\r\n let sort = isDesc ? \"asc\" : \"desc\";\r\n this.setState({ order: sort, orderBy: property });\r\n }\r\n\r\n //Table Sorting order\r\n desc(a, b, orderBy) {\r\n if (b[orderBy] < a[orderBy]) {\r\n return -1;\r\n }\r\n if (b[orderBy] > a[orderBy]) {\r\n return 1;\r\n }\r\n return 0;\r\n }\r\n\r\n //Table Sorting the selected Column\r\n stableSort(array, cmp) {\r\n const stabilizedThis = array.map((el, index) => [el, index]);\r\n stabilizedThis.sort((a, b) => {\r\n const order = cmp(a[0], b[0]);\r\n if (order !== 0) return order;\r\n return a[1] - b[1];\r\n });\r\n return stabilizedThis.map((el) => el[0]);\r\n }\r\n\r\n //Table Sorting Order Request\r\n getSorting(order, orderBy) {\r\n return order === \"desc\"\r\n ? (a, b) => this.desc(a, b, orderBy)\r\n : (a, b) => -this.desc(a, b, orderBy);\r\n }\r\n\r\n loadDashBoard() {\r\n let token = localStorage.getItem(\"accessKey\");\r\n const data = {\r\n UserStoreID: parseInt(this.props.match.params.userstoreid),\r\n RegionId: CONFIG.RegionId,\r\n };\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = \"Bearer \" + token;\r\n }\r\n axios\r\n .post(CONFIG.API_URL + \"dashboard/dashboardlocation\", data)\r\n .then((response) => {\r\n const locationInfoData = response.data.data.storeDashboard;\r\n var countrycode = response.data.data.storeDashboard.countryCode;\r\n var data1 = {\r\n CountryCode: countrycode,\r\n RegionId: CONFIG.RegionId,\r\n };\r\n axios\r\n .post(CONFIG.API_URL + \"dashboard/lookupunit\", data1)\r\n .then((response) => {\r\n let unitType = response.data.prices;\r\n this.state.isDefaultUnit = unitType[0].unitType;\r\n this.setState({\r\n unitType,\r\n });\r\n });\r\n this.setState({\r\n locationInfoData: locationInfoData,\r\n });\r\n const inputParam = {\r\n UserStoreID: parseInt(this.props.match.params.userstoreid),\r\n RegionId: CONFIG.RegionId,\r\n Competitors: \"\",\r\n };\r\n this.PricingVolatility(inputParam);\r\n })\r\n .catch((err) => {\r\n if (err.response.status === 401) {\r\n localStorage.removeItem(\"accessKey\");\r\n const { from } = this.props.location.state || {\r\n from: { pathname: \"/\" },\r\n };\r\n this.props.history.push(from);\r\n } else if (err.response.status === 403) {\r\n const { from } = this.props.location.state || {\r\n from: { pathname: \"/UnauthorizedAccess\" },\r\n };\r\n this.props.history.push(from);\r\n } else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }\r\n\r\n componentDidMount() {\r\n\r\n this.setState({\r\n isLoading: true,\r\n });\r\n\r\n this.loadDashBoard();\r\n\r\n axios.post(CONFIG.API_URL + \"dashboard/priceoptions\").then((response) => {\r\n let priceOption = response.data.price;\r\n this.setState({\r\n priceOption,\r\n });\r\n });\r\n }\r\n PricingVolatility(inputParam) {\r\n let isShowGraph = [];\r\n let isRemoveGrapg = [];\r\n let isCompsName = [];\r\n let isYourStore = [];\r\n let token = localStorage.getItem(\"accessKey\");\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = \"Bearer \" + token;\r\n }\r\n axios\r\n .post(CONFIG.API_URL + \"dashboard/priceoverviewvolatility\", inputParam)\r\n .then((response) => {\r\n const dashboardBasicInfo = response.data.data.dashboardBasicInfo;\r\n const volatilityGrpahData = response.data.data.volatilityGrpahData;\r\n const marketVolatility = response.data.data.unitVolatilityData;\r\n // Below I have using the filter function to finding the null values of all unit types. If any case all the units return the null values we have define the one boolean value to the state for showing the \"No data found\" in the pricing volatality grid.\r\n var checkNull = marketVolatility.filter(\r\n (filterData) => filterData.volatility !== null\r\n );\r\n if (checkNull.length === 0) {\r\n this.setState({ isNoData: true });\r\n }\r\n // End of the filter function code.\r\n const marketStorePrice = response.data.data.allVolatilityData;\r\n const isUnitType = marketVolatility.filter((e) => e.volatility === 0);\r\n\r\n const isUnitTypeNotNull = marketVolatility.filter((e) => e.volatility);\r\n const isYourStCount = marketStorePrice.filter((e) => e.isMyStore);\r\n // const isUnitTypeNull = marketVolatility.filter((e => e.volatility===null));\r\n let marketStorePriceSort = [];\r\n marketStorePrice\r\n .filter((e) => e.isMyStore === true)\r\n .forEach(function (e) {\r\n isYourStore.push(e);\r\n });\r\n marketStorePrice\r\n .filter((e) => e.isMyStore === false)\r\n .forEach(function (e) {\r\n marketStorePriceSort.push(e);\r\n });\r\n marketStorePrice\r\n .filter((e) => e.isSelected === 1 && e.isMyStore != 1)\r\n .forEach(function (e) {\r\n isCompsName.push(e.storeName);\r\n });\r\n marketStorePrice\r\n .filter((e) => e.isSelected === 1)\r\n .forEach(function (e) {\r\n isShowGraph.push(e.storeId);\r\n });\r\n marketStorePrice\r\n .filter((e) => e.isSelected === 0)\r\n .forEach(function (e) {\r\n isRemoveGrapg.push(e.storeId);\r\n });\r\n if (isShowGraph === undefined) {\r\n isShowGraph = [];\r\n }\r\n if (isRemoveGrapg === undefined) {\r\n isRemoveGrapg = [];\r\n }\r\n if (isYourStore === undefined) {\r\n isYourStore = [];\r\n }\r\n this.setState({\r\n marketVolatility,\r\n isYourStCount,\r\n isUnitType,\r\n isYourStore,\r\n isUnitTypeNotNull,\r\n volatilityGrpahData,\r\n isCompsName,\r\n marketStorePrice: marketStorePriceSort,\r\n dashboardBasicInfo,\r\n isShowGraph,\r\n isRemoveGrapg,\r\n isLoading: false,\r\n });\r\n\r\n if (this.state.volatilityGrpahData.length > 0) {\r\n this.setState({\r\n isNoGraphData: false,\r\n });\r\n this.initialLoad(\r\n volatilityGrpahData.filter(\r\n (a) =>\r\n a.unitType == this.state.isDefaultUnit &&\r\n a.priceType == this.state.isDefaultPrice\r\n )\r\n );\r\n } else {\r\n this.setState({\r\n isNoGraphData: true,\r\n });\r\n this.apexChartNoData({\r\n textMessage: \"No Data Found\",\r\n colorCode: \"#F60000\"\r\n });\r\n }\r\n })\r\n .catch((err) => {\r\n this.setState({\r\n isLoading: false,\r\n });\r\n if (err.response.status === 401) {\r\n localStorage.removeItem(\"accessKey\");\r\n const { from } = this.props.location.state || {\r\n from: { pathname: \"/\" },\r\n };\r\n this.props.history.push(from);\r\n } else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }\r\n\r\n apexChartNoData = ({ textMessage, colorCode }) => {\r\n this.setState({\r\n series: [],\r\n options: {\r\n xaxis: {\r\n show: false,\r\n labels: {\r\n show: false\r\n },\r\n axisBorder: {\r\n show: false\r\n },\r\n axisTicks: {\r\n show: false\r\n }\r\n },\r\n yaxis: {\r\n show: false\r\n },\r\n noData: {\r\n text: textMessage,\r\n style: { color: colorCode }\r\n }\r\n }\r\n });\r\n }\r\n\r\n initialLoad(res) {\r\n\r\n const { isCompsName } = this.state;\r\n var data = res;\r\n var przvoldality = res.filter((a) => a.volatility !== null);\r\n let isCompString = typeof (isCompsName) !== 'object' ? isCompsName : isCompsName.toString();\r\n this.setState({new_filterData : [], series:[]});\r\n var tempdata = [];\r\n let marketSeries = [];\r\n let colorsData = [];\r\n let widthArrayData = [];\r\n let dashArrayData = [];\r\n let marketNameList = [];\r\n let colorsCodeList = [];\r\n let markerSize = [];\r\n let unique = [...new Set(data.map((item) => item.storeId))];\r\n let MarketName = [\"Your Store\", \"Market Average\", isCompString];\r\n let MarketName2 = [\"Market Average\", isCompString];\r\n let colorsCode = ['#F15D47', '#1B2C42', '#41A3F6'];\r\n let colorsCode2 = ['#1B2C42', '#41A3F6'];\r\n for (var i = 0; i < unique.length; i++) {\r\n var datum = {\r\n name: unique[i],\r\n count: i,\r\n isMyMarket: this.popMyStore(data, unique[i]),\r\n values: this.popData(data, unique[i]),\r\n };\r\n tempdata.push(datum);\r\n }\r\n const toTop = (key, value) => (a, b) => (b[key] === value) - (a[key] === value);\r\n tempdata.sort(toTop('isMyMarket', 1));\r\n tempdata.every(val => {\r\n marketNameList = val.isMyMarket === 1 ? MarketName : MarketName2;\r\n colorsCodeList = val.isMyMarket === 1 ? colorsCode : colorsCode2;\r\n })\r\n\r\n \r\n let newFilter_tempdata=[];\r\n for (var k = 0; k < tempdata.length; k++) {\r\n let noValues = tempdata[k].values.every(item => item.totalChangeCount === '' || item.totalChangeCount === undefined);\r\n if (!noValues) {\r\n let dataSeries = tempdata[k].values.map(val => { return { x: val.monthYear, y: val.totalChangeCount, originData: val.totalChangeCount }; });\r\n let dataSeries1 = tempdata[k].values.map(val => { return { x: val.monthYear, y: val.totalChangeCount !== null && val.totalChangeCount !== \"0.00\" ? val.totalChangeCount : 0, originData: val.totalChangeCount !== null && val.totalChangeCount !== \"0.00\" ? val.totalChangeCount : 0 }; });\r\n newFilter_tempdata.push({name :marketNameList[k] , data: dataSeries1, color:colorsCodeList[k]})\r\n let containsNull = dataSeries.every(val => val.y !== null);\r\n if (tempdata[k].isMyMarket === 1) {\r\n if (!containsNull) {\r\n let noZeroData1 = dataSeries.map(yData => { return { x: yData.x, y: yData.y === null ? 0 : yData.y, originData: yData.originData }; });\r\n marketSeries.push({ name: (marketNameList[k] + \" data\"), data: noZeroData1, color: colorsCodeList[k] });\r\n let noZeroData = dataSeries.map(yData => { return { x: yData.x, y: yData.y === 0 ? null : yData.y, originData: yData.originData }; });\r\n marketSeries.push({ name: marketNameList[k], data: noZeroData, color: colorsCodeList[k] });\r\n markerSize.push(0, 10);\r\n widthArrayData.push(1, 3);\r\n dashArrayData.push(6, 0);\r\n } else {\r\n marketSeries.push({ name: marketNameList[k], data: dataSeries, color: colorsCodeList[k] });\r\n markerSize.push(10);\r\n widthArrayData.push(3);\r\n dashArrayData.push(0);\r\n }\r\n } else {\r\n if (!containsNull) {\r\n let noZeroData1 = dataSeries.map(yData => { return { x: yData.x, y: yData.y === null ? 0 : yData.y, originData: yData.originData }; });\r\n marketSeries.push({ name: (marketNameList[k] + \" data\"), data: noZeroData1, color: colorsCodeList[k] });\r\n let noZeroData = dataSeries.map(yData => { return { x: yData.x, y: yData.y === 0 ? null : yData.y, originData: yData.originData }; });\r\n marketSeries.push({ name: marketNameList[k], data: noZeroData, color: colorsCodeList[k] });\r\n markerSize.push(0, 10);\r\n widthArrayData.push(1, 3);\r\n dashArrayData.push(6, 0);\r\n } else {\r\n marketSeries.push({ name: marketNameList[k], data: dataSeries, color: colorsCodeList[k] });\r\n markerSize.push(10);\r\n widthArrayData.push(3);\r\n dashArrayData.push(0);\r\n }\r\n }\r\n \r\n }\r\n }\r\n //Duplicate Data\r\n let newData = [];\r\n if(przvoldality.length > 0){\r\n newFilter_tempdata.map(dataItem => dataItem.data.forEach(i => {\r\n if(i.y !== \"\" && i.y !== undefined){\r\n newFilter_tempdata.map(userItem => userItem.data.forEach(j => {\r\n if(j.y !== \"\" && j.y !== undefined){\r\n if((dataItem.name !== userItem.name) && (dataItem.color !== userItem.color)){\r\n if((i.y === j.y) && (i.x === j.x)){\r\n newData.push({name:dataItem.name ,color:dataItem.color});\r\n let new_filterData = newData.reduce((elements , obj , index)=>{ \r\n let existingData = elements.find(element => \r\n element.name === obj.name && element.color === obj.color\r\n );\r\n if(!existingData){\r\n elements.push(obj);\r\n }\r\n return elements;\r\n }, []);\r\n this.setState({new_filterData : new_filterData}); \r\n }\r\n }\r\n }\r\n }))\r\n }\r\n })) \r\n }else{\r\n this.setState({new_filterData :[]});\r\n }\r\n \r\n \r\n if (marketSeries.length > 0 && przvoldality.length > 0) {\r\n this.setState({\r\n options: {\r\n chart: {\r\n id: `apexchart-price-volatility${Math.random()}`,\r\n zoom: {\r\n enabled: true,\r\n type: \"x\",\r\n autoScaleYaxis: true,\r\n },\r\n toolbar: {\r\n show: true,\r\n tools: {\r\n download: false,\r\n selection: true,\r\n zoom: false,\r\n zoomin:false,\r\n zoomout:false,\r\n pan:false,\r\n reset: false,\r\n },\r\n },\r\n events: {\r\n legendClick: function (chartContext, seriesIndex, config) {\r\n let marketName = config.config.series[seriesIndex].name + ' data';\r\n if (config.config.series[seriesIndex - 1] !== undefined && config.config.series[seriesIndex - 1].name === marketName) chartContext.toggleSeries(marketName);\r\n },\r\n beforeZoom: function(chartContext, { xaxis,yaxis }) {\r\n if(yaxis !== undefined || xaxis.min > 0) return chartContext.t.reset =`\"Reset`;\r\n },\r\n zoomed: function(chartContext, { xaxis, yaxis }) {\r\n if(yaxis === undefined || xaxis.min <= 0 || xaxis === null ) return chartContext.toolbar.t.reset = false;\r\n },\r\n mouseMove: function(event, chartContext, config) {\r\n var tooltip = chartContext.el.querySelector('.apexcharts-tooltip');\r\n let Value = tooltip !== null && tooltip.style.top ? parseInt(tooltip.style.top) : 0;\r\n var series = config.config.series.filter(item => item.data.length !== 0 && !item.name.endsWith('data'));\r\n if (series.length == 1 && Value > 70) {\r\n chartContext.el.classList.add('new_tooltip_name1')\r\n }else if(series.length == 2 && Value > 37){\r\n chartContext.el.classList.add('new_tooltip_name2')\r\n }else if(series.length == 3 && Value > 3){\r\n chartContext.el.classList.add('new_tooltip_name3')\r\n }else{\r\n chartContext.el.classList.remove('new_tooltip_name1')\r\n chartContext.el.classList.remove('new_tooltip_name2')\r\n chartContext.el.classList.remove('new_tooltip_name3')\r\n }\r\n \r\n }\r\n }\r\n },\r\n grid: {\r\n show: false,\r\n row: {\r\n colors: ['#FFFFFF']\r\n },\r\n padding: {\r\n left: 20,\r\n right: 40 // Also you may want to increase this (based on the length of your labels)\r\n },\r\n \r\n },\r\n tooltip: {\r\n x: {\r\n show: true,\r\n formatter: function (value, { w }) {\r\n if (typeof (w) === \"object\") {\r\n const date = new Date(\"1/\" + w.globals.categoryLabels[value - 1]);\r\n let mon = moment(date, \"MM-DD-YYYY\").format('MMMM YYYY');\r\n return `Volatality Percentage on ${mon}`;\r\n }\r\n },\r\n },\r\n y: {\r\n formatter: function (value, { series, seriesIndex, dataPointIndex, w }) {\r\n if (!(w.config.series[seriesIndex].name).endsWith('data')) return typeof (w.config.series[seriesIndex].data[dataPointIndex]) === \"object\" ? w.config.series[seriesIndex].data[dataPointIndex].originData !== null ? Number(w.config.series[seriesIndex].data[dataPointIndex].originData).toFixed(2) + \"%\" : \"N/A\" : '';\r\n },\r\n },\r\n enabled: true,\r\n showForNullSeries: false,\r\n onDatasetHover: {\r\n highlightDataSeries: false,\r\n },\r\n style: {\r\n fontSize: '11px',\r\n fontFamily: \"Roboto, Helvetica, Arial , sans-serif\"\r\n },\r\n },\r\n stroke: {\r\n width: widthArrayData,\r\n dashArray: dashArrayData,\r\n },\r\n markers: {\r\n size: 4,\r\n },\r\n yaxis: {\r\n labels: {\r\n formatter: function (value) {\r\n let val = value === null || value === undefined ? \"N/A\" : value.toFixed(0) + \"%\";\r\n return val;\r\n },\r\n style: {\r\n colors: '#8C9AA6',\r\n fontSize: '10px'\r\n },\r\n },\r\n },\r\n legend: {\r\n show: true,\r\n showForSingleSeries: true,\r\n position: 'bottom',\r\n horizontalAlign: 'center',\r\n fontSize: '11px',\r\n fontWeight: 500,\r\n showForNullSeries: true,\r\n showForZeroSeries: true,\r\n itemMargin: {\r\n horizontal: 10,\r\n vertical: 20,\r\n },\r\n onItemClick: {\r\n toggleDataSeries: true\r\n },\r\n onItemHover: {\r\n highlightDataSeries: true\r\n },\r\n formatter: function (seriesName, opts) {\r\n if (!seriesName.endsWith('data')) return seriesName;\r\n return '';\r\n },\r\n markers: {\r\n width: markerSize,\r\n height: markerSize,\r\n }\r\n },\r\n xaxis: {\r\n title: {\r\n text: \"--- No Data Available\",\r\n offsetX: 400,\r\n offsetY: 20,\r\n style: {\r\n fontSize: '11px',\r\n fontWeight: 400,\r\n },\r\n },\r\n tooltip: { enabled: false },\r\n labels: {\r\n formatter: function (value) {\r\n let val = value === undefined || typeof (value) !== \"string\" ? '' : value;\r\n return val;\r\n },\r\n show: true,\r\n style: {\r\n colors: '#8C9AA6',\r\n fontSize: '10px'\r\n },\r\n },\r\n axisBorder: {\r\n show: true\r\n },\r\n axisTicks: {\r\n show: true\r\n }\r\n },\r\n noData: {\r\n text: 'Please enable any one of the below legend to view the graph.',\r\n style: {\r\n color: \"#5b95f6\",\r\n }\r\n },\r\n },\r\n series: marketSeries,\r\n isNoGraphData: false\r\n })\r\n } else {\r\n this.setState({isNoGraphData: true})\r\n this.apexChartNoData({\r\n textMessage: \"No Data Found\",\r\n colorCode: \"#F60000\"\r\n });\r\n }\r\n }\r\n\r\n popData(data, uid) {\r\n var tFData = data.filter((a) => a.storeId == uid);\r\n var tData = [];\r\n\r\n for (var i = 0; i < tFData.length; i++) {\r\n var CData = {\r\n date: new Date(tFData[i].year, tFData[i].month - 1, 1),\r\n volatility: tFData[i].volatility,\r\n month: tFData[i].month,\r\n isMyMarket: tFData[i].isMyMarket,\r\n totalChangeCount: tFData[i].totalChangeCount,\r\n totalCount: tFData[i].totalCount,\r\n monthYear: tFData[i].monthYear,\r\n };\r\n tData.push(CData);\r\n }\r\n\r\n return tData;\r\n }\r\n\r\n popMyStore(data, uid) {\r\n var tFData = data.filter((a) => a.storeId == uid && a.isMyMarket == 1);\r\n return tFData.length > 0 ? 1 : 0;\r\n }\r\n\r\n showGraph(sId, type, name) {\r\n this.state.sIdPDF = sId;\r\n this.state.typePDF = type;\r\n this.setState({\r\n isLoading: true,\r\n });\r\n\r\n const isShowGraph = this.state.isShowGraph;\r\n const isCount = this.state.isYourStCount;\r\n var isVal = 2;\r\n if (isCount.length === 0) {\r\n isVal = 1;\r\n } else {\r\n isVal = 2;\r\n }\r\n if (isShowGraph.length <= isVal) {\r\n var isSelectStoreId = [];\r\n var id;\r\n // var isShowData = this.state.marketStorePrice;\r\n //var isShowG = isShowData.filter(a => a.isSelected == \"1\");\r\n // for (const item of isShowG) {\r\n // var id = item.storeId;\r\n // }\r\n // const isShowGraph = this.state.isShowGraph\r\n const isRemoveGrapg = this.state.isRemoveGrapg;\r\n let index;\r\n if (isShowGraph.length <= isVal) {\r\n if (type === 1) {\r\n this.state.isCompsName = name;\r\n id = sId;\r\n id = 0;\r\n isSelectStoreId.push(id);\r\n index = isShowGraph.indexOf(+sId);\r\n isShowGraph.splice(index, 1);\r\n isRemoveGrapg.push(+sId);\r\n const inputParam = {\r\n UserStoreID: parseInt(this.props.match.params.userstoreid),\r\n Competitors: isSelectStoreId.toString(),\r\n RegionId: CONFIG.RegionId,\r\n };\r\n\r\n this.onlyShowGraph(inputParam);\r\n }\r\n }\r\n if (isShowGraph.length < isVal) {\r\n this.state.isCompsName = [];\r\n if (type === 0) {\r\n this.state.isCompsName = name;\r\n if (id == undefined) {\r\n id = 0;\r\n }\r\n isSelectStoreId.push(id);\r\n isSelectStoreId = isSelectStoreId.concat(sId);\r\n index = isRemoveGrapg.indexOf(+sId);\r\n isRemoveGrapg.splice(index, 1);\r\n isShowGraph.push(+sId);\r\n const inputParam = {\r\n UserStoreID: parseInt(this.props.match.params.userstoreid),\r\n Competitors: isSelectStoreId.toString(),\r\n RegionId: CONFIG.RegionId,\r\n };\r\n this.onlyShowGraph(inputParam);\r\n }\r\n } else {\r\n this.setState({\r\n isLoading: false,\r\n });\r\n this.state.isSelectCount.pop();\r\n this.setState({\r\n snackOpen: true,\r\n snackMSg:\r\n \"Please remove any of the selected markets to add new ones.\",\r\n });\r\n }\r\n this.setState({\r\n isRemoveGrapg,\r\n isShowGraph,\r\n });\r\n }\r\n }\r\n\r\n //SnackBar Close\r\n snackHandleclose = (event, reason) => {\r\n if (reason === \"clickaway\") {\r\n return;\r\n }\r\n this.setState({ snackOpen: false });\r\n };\r\n\r\n onlyShowGraph(inputParam) {\r\n let token = localStorage.getItem(\"accessKey\");\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = \"Bearer \" + token;\r\n }\r\n axios\r\n .post(\r\n CONFIG.API_URL + \"dashboard/priceoverviewvolatilitygraph\",\r\n inputParam\r\n )\r\n .then((response) => {\r\n const showGrpahData = response.data.data;\r\n this.state.volatilityGrpahData = response.data.data;\r\n this.setState({\r\n showGrpahData,\r\n isLoading: false,\r\n });\r\n if (this.state.showGrpahData.length > 0) {\r\n this.initialLoad(\r\n showGrpahData.filter(\r\n (a) =>\r\n a.unitType == this.state.isDefaultUnit &&\r\n a.priceType == this.state.isDefaultPrice\r\n )\r\n );\r\n }\r\n })\r\n .catch((err) => {\r\n this.setState({\r\n isLoading: false,\r\n });\r\n if (err.response.status === 401) {\r\n localStorage.removeItem(\"accessKey\");\r\n const { from } = this.props.location.state || {\r\n from: { pathname: \"/\" },\r\n };\r\n this.props.history.push(from);\r\n } else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }\r\n\r\n onUnitChange(e) {\r\n this.state.isDefaultUnit = e.target.value;\r\n var res = \"\";\r\n res = this.state.volatilityGrpahData.filter(\r\n (a) =>\r\n a.unitType == this.state.isDefaultUnit &&\r\n a.priceType == this.state.isDefaultPrice\r\n );\r\n this.setState({ series: [] }, () => {\r\n this.apexChartNoData({\r\n textMessage: \"Please wait for the data to be loaded. The data volume is high and this might take a minute for loading the data.\",\r\n colorCode: \"#5b95f6\"\r\n });\r\n this.initialLoad(res);\r\n });\r\n // this.initialLoad(res);\r\n }\r\n onPriceChange(e) {\r\n this.state.isDefaultPrice = e.target.value;\r\n var res = \"\";\r\n res = this.state.volatilityGrpahData.filter(\r\n (a) =>\r\n a.unitType == this.state.isDefaultUnit &&\r\n a.priceType == this.state.isDefaultPrice\r\n );\r\n this.setState({ series: [] }, () => {\r\n this.apexChartNoData({\r\n textMessage: \"Please wait for the data to be loaded. The data volume is high and this might take a minute for loading the data.\",\r\n colorCode: \"#5b95f6\"\r\n });\r\n this.initialLoad(res);\r\n });\r\n // this.initialLoad(res);\r\n }\r\n downLoadPDF() {\r\n this.setState({\r\n // isLoading: true,\r\n pdfLoading: false,\r\n });\r\n var currentDate = moment(new Date()).format(\"DD-MMM-YYYY\");\r\n let accessKey = localStorage.getItem(\"SecretKey\");\r\n let ComponentName = 3;\r\n let usId = parseInt(this.props.match.params.userstoreid);\r\n let pta = \"1\";\r\n let searchId = \"1\";\r\n let unitType = this.state.unitType.filter(\r\n (d) => d.unitType == this.state.isDefaultUnit\r\n );\r\n unitType = unitType[0].id;\r\n let priceType = this.state.isDefaultPrice;\r\n let orderBy = this.state.orderBy;\r\n let order = this.state.order;\r\n let showRemoveId = this.state.sIdPDF;\r\n let showRemoveType = this.state.typePDF;\r\n\r\n var timestamp =\r\n new Date().getDate() +\r\n \"\" +\r\n new Date().getMonth() +\r\n \"\" +\r\n new Date().getFullYear() +\r\n \"\" +\r\n new Date().getTime();\r\n //construct filename for pdf report.\r\n var fileName = usId + \"PricingVoltality\" + \"_\" + timestamp + \".pdf\";\r\n var stoName =\r\n this.state.locationInfoData &&\r\n this.state.locationInfoData.storeName &&\r\n this.state.locationInfoData.storeName !== null &&\r\n this.state.locationInfoData.storeName !== \"\" &&\r\n this.state.locationInfoData.storeName !== undefined\r\n ? this.state.locationInfoData.storeName\r\n : \"Your Store\";\r\n var fileNamePdf =\r\n stoName + \"_\" + \"PricingVoltality\" + \"_\" + currentDate + \".pdf\";\r\n this.setState({\r\n snackClr: \"snack-info\",\r\n snackOpen: true,\r\n snackMSg:\r\n \"Your download is being processed. The \" +\r\n fileNamePdf +\r\n \" file will download automatically to your browser when ready and Please do not close or reload the pages until download completes. We recommend you check your Downloads folder if you don’t see it in your browser.\",\r\n });\r\n const Input = {\r\n RegionID: CONFIG.RegionId,\r\n URL:\r\n CONFIG.OPTZ_URL +\r\n \"render-pdf/\" +\r\n accessKey +\r\n \"/\" +\r\n ComponentName +\r\n \"/0/\" +\r\n usId +\r\n \"/\" +\r\n pta +\r\n \"/\" +\r\n searchId +\r\n \"/\" +\r\n unitType +\r\n \"/\" +\r\n priceType +\r\n \"/\" +\r\n orderBy +\r\n \"/\" +\r\n order +\r\n \"/\" +\r\n showRemoveId +\r\n \"/\" +\r\n showRemoveType +\r\n \"/\",\r\n FileName: fileName,\r\n };\r\n // axios.post(CONFIG.API_URL + 'dashboard/generatepdfbypage', Input)\r\n axios({\r\n url: CONFIG.API_URL + \"dashboard/generatepdfbypage\",\r\n method: \"post\",\r\n responseType: \"blob\",\r\n data: Input,\r\n })\r\n .then((response) => {\r\n const blob = new Blob([response.data], { type: 'application/octet-stream' });\r\n const link = document.createElement('a');\r\n link.href = window.URL.createObjectURL(blob);\r\n link.download = fileNamePdf;\r\n link.dispatchEvent(\r\n new MouseEvent('click', {\r\n bubbles: true,\r\n cancelable: true,\r\n view: window\r\n })\r\n );\r\n setTimeout(() => {\r\n // For Firefox it is necessary to delay revoking the ObjectURL\r\n window.URL.revokeObjectURL(link.href);\r\n link.remove();\r\n }, 3000);\r\n this.setState({ isLoading: false });\r\n })\r\n .catch((err) => {\r\n this.setState({ isLoading: false });\r\n });\r\n }\r\n render() {\r\n const {\r\n marketVolatility,\r\n isYourStore,\r\n isUnitType,\r\n order,\r\n orderBy,\r\n isUnitTypeNotNull,\r\n marketStorePrice,\r\n isCompsName,\r\n isNoGraphData,\r\n locationInfoData,\r\n isRemoveGrapg,\r\n isShowGraph,\r\n dashboardBasicInfo,\r\n isLoading,\r\n pdfLoading,\r\n unitType,\r\n priceOption,\r\n isNoData,\r\n duplicate_filterData,\r\n filterData,\r\n new_filterData\r\n } = this.state;\r\n const defaultProps = {\r\n helpTitle: \"Price Volatility\",\r\n helpContent:\r\n \"
How aggressive is this store/competitor?
  • Pricing volatility is a major indicator of how aggressive or passive a store or Market is with their pricing.
  • A store which frequently raises and/or lowers their rates, will typically have a higher pricing volatility.
  • Here you are shown the pricing volatility for this Market, Your Store (if available), the REITs in this Market, Multi-store operators and Single-store operators over the last 12 months.
  • Pricing Volatility is calculated by taking the number of times a pricing change occurred over the last 12 months for each store type.
  • *Your store prices are included in the calculations.

    Refer the below help video for more information.

\",\r\n };\r\n const defaultProps1 = {\r\n helpTitle: \"Last 12 Months\",\r\n helpContent:\r\n \"
How aggressive is this store/competitor?

Pricing volatility is a major indicator of how aggressive or passive a store or Market is with their pricing. A store which frequently raises and/or lowers their rates, will typically have a higher pricing volatility. Here you are shown the average monthly pricing volatility for Your Store (if available), against the Market average and any of the stores/competitors you select for comparison*, for the unit type and price type selected from the drop down menu.

Pricing Volatility is calculated by taking the number of times a pricing change occurred each month over the last 12 months.

*See Pricing Volatility by Store & Price Option to select a store you want to view on this graph

*Your store prices are included in the calculations.

\",\r\n };\r\n const defaultProps2 = {\r\n helpTitle: \"Market Pricing Volatility Over Last 12 Months\",\r\n helpContent:\r\n \"

This shows the pricing volatility over the last 12 months for each of the 11 common unit types (across the entire Market). This helps you understand which unit types in the Market are priced more aggressively.

*Your store prices are included in the calculations.

\",\r\n };\r\n const defaultProps3 = {\r\n helpTitle: \"Pricing Volatility by Store & Price Option\",\r\n helpContent:\r\n \"

This shows you all the stores in this Market along with their overall pricing volatility across all the unit types they advertise for the last 12 months. For comparison, we also show you the pricing volatility of the Premium unit rates vs. their Value unit rates.

Click on the link "Show on graph" to view this store's pricing volatility graph above over the last 12 months.

*Your store prices are included in the calculations.

\",\r\n };\r\n\r\n return (\r\n
\r\n \r\n\r\n\r\n {localStorage.getItem(\"isMVP_User\") === \"false\" ? (\r\n \r\n My Markets\r\n \r\n ) :\r\n \"\"\r\n }\r\n\r\n Go to Market Dashboard\r\n \r\n Price Volatility\r\n \r\n \r\n \r\n \r\n PDF Download\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n

\r\n Price Volatility \r\n

\r\n {isLoading ? (\r\n \"\"\r\n ) : locationInfoData.compsCount === 0 ||\r\n locationInfoData.compsCount === null ? (\r\n
\r\n

Analyzing N/A

\r\n
\r\n ) : (\r\n
\r\n

\r\n Analyzing{\" \"}\r\n this.getParams(locationInfoData)}\r\n to=\"#\"\r\n >\r\n {locationInfoData\r\n ? parseInt(locationInfoData.compsCount) > 1\r\n ? locationInfoData.compsCount + \" stores\"\r\n : locationInfoData.compsCount + \" store\"\r\n : \"N/A\"}\r\n \r\n

\r\n
\r\n )}\r\n \r\n \r\n {isLoading === false || pdfLoading === false ? (\r\n \r\n

\r\n {locationInfoData &&\r\n locationInfoData.storeName &&\r\n locationInfoData.storeName !== null &&\r\n locationInfoData.storeName !== \"\"\r\n ? locationInfoData.storeName\r\n : \"Your Store\"}\r\n

\r\n 24\r\n ? \"pd-btm-35\"\r\n : \"pd-btm-20\"\r\n : \"pd-btm-20\"\r\n }\r\n >\r\n

\r\n {locationInfoData &&\r\n locationInfoData.storeAddress1 &&\r\n locationInfoData.storeAddress1 !== null &&\r\n locationInfoData.storeAddress1 !== \"\"\r\n ? locationInfoData.storeAddress1 + \",\"\r\n : \"\"}{\" \"}\r\n {locationInfoData.storeAddress2\r\n ? locationInfoData.storeAddress2 + \", \"\r\n : \"\"}{\" \"}\r\n {locationInfoData && locationInfoData.storeCity\r\n ? locationInfoData.storeCity + \", \"\r\n : locationInfoData.searchType === 1 &&\r\n (locationInfoData.storeCity === \"\" ||\r\n locationInfoData.storeCity === null) &&\r\n (locationInfoData.storeZipCode === \"\" ||\r\n locationInfoData.storeZipCode === null)\r\n ? locationInfoData.latitude +\r\n \", \" +\r\n locationInfoData.longitude +\r\n \", \"\r\n : \"\"}\r\n {locationInfoData.storeState\r\n ? locationInfoData.storeState\r\n : \"\"}{\" \"}\r\n {locationInfoData\r\n ? locationInfoData.storeZipCode\r\n : \"N/A\"}\r\n

\r\n
\r\n
\r\n

\r\n Coverage:{\" \"}\r\n {locationInfoData\r\n ? locationInfoData.storeZoneCoverage\r\n : \"N/A\"}\r\n

\r\n
\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\" \"}\r\n
Market
\r\n
\r\n {dashboardBasicInfo.market != null\r\n ? dashboardBasicInfo.market + \"%\"\r\n : isLoading === false\r\n ? \"N/A\"\r\n : \"\"}\r\n
\r\n {dashboardBasicInfo.market != null &&\r\n dashboardBasicInfo.market ? (\r\n
Last 12 months
\r\n ) : (\r\n \"\"\r\n )}\r\n \r\n \r\n
\r\n
Your Store
\r\n
\r\n {dashboardBasicInfo.myStore != null\r\n ? dashboardBasicInfo.myStore + \"%\"\r\n : isLoading === false\r\n ? \"N/A\"\r\n : \"\"}\r\n
\r\n
\r\n \r\n {locationInfoData.countryCode == \"US\" ? (\r\n \r\n
\r\n
REIT's
\r\n
\r\n {dashboardBasicInfo.reits != null\r\n ? dashboardBasicInfo.reits + \"%\"\r\n : isLoading === false\r\n ? \"N/A\"\r\n : \"\"}\r\n
\r\n
\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n \r\n
\r\n
Multi-Ops
\r\n
\r\n {dashboardBasicInfo.multiOps != null\r\n ? dashboardBasicInfo.multiOps + \"%\"\r\n : isLoading === false\r\n ? \"N/A\"\r\n : \"\"}\r\n
\r\n
\r\n \r\n \r\n
\r\n
Single-Ops
\r\n
\r\n {dashboardBasicInfo.singleOps != null\r\n ? dashboardBasicInfo.singleOps + \"%\"\r\n : isLoading === false\r\n ? \"N/A\"\r\n : \"\"}\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n {/*
Download Pdf
*/}\r\n
\r\n
\r\n

\r\n Last 12 months \r\n

\r\n\r\n \r\n this.onUnitChange(e)}\r\n >\r\n {/* */}\r\n {unitType\r\n ? unitType.map((unit) => (\r\n \r\n {unit.unitType}\r\n \r\n ))\r\n : \"\"}\r\n \r\n this.onPriceChange(e)}\r\n >\r\n {/* */}\r\n {priceOption\r\n ? priceOption.map((price) => (\r\n \r\n {price.name}\r\n \r\n ))\r\n : \"\"}\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {\r\n new_filterData.length > 0 ?
\r\n \r\n
\r\n {\r\n new_filterData.map((item)=>{\r\n return(\r\n <>\r\n
\r\n {item.name}\r\n \r\n )\r\n })\r\n }\r\n has same value in the series. Please hover your mouse to see detailed information. \r\n
: \"\"\r\n } \r\n\r\n
\r\n
\r\n
\r\n {isNoGraphData ?\r\n \r\n : }\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n {isLoading ? (\r\n
\r\n
\r\n
\r\n ) : (\r\n \"\"\r\n )}\r\n \r\n
\r\n Current Market Volatility(last 12 months){\" \"}\r\n {\" \"}\r\n
\r\n
\r\n
\r\n
\r\n {marketVolatility.length > 0 ? (\r\n \r\n \r\n \r\n {marketVolatility.length > 0\r\n ? marketVolatility.map((data) => {\r\n return {data.unitType};\r\n })\r\n : \"\"}\r\n \r\n \r\n \r\n \r\n {(isUnitType.length === 0 || isUnitType.length > 0) &&\r\n isNoData === false ? (\r\n marketVolatility.map((data) => {\r\n return (\r\n \r\n {data.volatility === null\r\n ? \"N/A\"\r\n : data.volatility + \"%\"}\r\n \r\n );\r\n })\r\n ) : isNoData === true ? (\r\n \"\"\r\n ) : (\r\n \r\n {isLoading === false ? \"No Data Found\" : \"\"}\r\n \r\n )}\r\n {/* Below I write code for showing \"No data FOund\" if all the units have return the null values */}\r\n {isNoData === true ? (\r\n \r\n {isLoading === false ? \"No Data Found\" : \"\"}\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n {/* Above I write code for showing \"No data FOund\" if all the units have return the null values */}\r\n \r\n \r\n
\r\n ) : (\r\n

\r\n {isLoading === false ? \"No Data Found\" : \"\"}\r\n

\r\n )}\r\n
\r\n
\r\n \r\n
\r\n
\r\n {isLoading ? (\r\n
\r\n
\r\n
\r\n ) : (\r\n \"\"\r\n )}\r\n \r\n
\r\n Current Market Volatility by Store & Price Option(last 12\r\n months) \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n {isYourStore.length > 0\r\n ? isYourStore.map((data) => {\r\n return (\r\n \r\n {/* {data.storeName}
{data.address}, {data.city}, {data.state}, {data.zipCode}
*/}\r\n {data.storeName === \"Your Store\" ? (\r\n \r\n {data.storeName === null\r\n ? \"N/A\"\r\n : data.storeName}{\" \"}\r\n
\r\n {data.address != null ? data.address : \"\"}{\" \"}\r\n {data.city != null\r\n ? \", \" + data.city\r\n : \"\"}{\" \"}\r\n {CONFIG.RegionId ===\r\n MatchingCountryCode.UK_RID\r\n ? \"\"\r\n : data.state != null\r\n ? \", \" + data.state\r\n : \"\"}{\" \"}\r\n {data.zipCode != null ? data.zipCode : \"\"}\r\n
\r\n
\r\n ) : (\r\n \r\n {data.storeName === null\r\n ? \"N/A\"\r\n : data.storeName}{\" \"}\r\n
\r\n {data.address != null ? data.address : \"\"}{\" \"}\r\n {data.city != null\r\n ? \", \" + data.city\r\n : \"\"}{\" \"}\r\n {data.state != null &&\r\n CONFIG.RegionId !==\r\n MatchingCountryCode.UK_RID\r\n ? \", \" + data.state\r\n : \"\"}{\" \"}\r\n {data.zipCode != null ? data.zipCode : \"\"}\r\n
\r\n
\r\n )}\r\n {data.storeName === \"Your Store\" ? (\r\n \r\n {data.allPrice === null\r\n ? \"N/A\"\r\n : data.allPrice + \"%\"}\r\n \r\n ) : (\r\n \r\n {data.allPrice === null\r\n ? \"N/A\"\r\n : data.allPrice + \"%\"}\r\n \r\n )}\r\n {data.storeName === \"Your Store\" ? (\r\n \r\n {data.premium === null\r\n ? \"N/A\"\r\n : data.premium + \"%\"}\r\n \r\n ) : (\r\n \r\n {data.premium === null\r\n ? \"N/A\"\r\n : data.premium + \"%\"}\r\n \r\n )}\r\n {data.storeName === \"Your Store\" ? (\r\n \r\n {data.value === null\r\n ? \"N/A\"\r\n : data.value + \"%\"}\r\n \r\n ) : (\r\n \r\n {data.value === null\r\n ? \"N/A\"\r\n : data.value + \"%\"}\r\n \r\n )}\r\n {data.storeName === \"Your Store\" ? (\r\n \r\n {data.storeId ===\r\n isShowGraph.find(\r\n (e) => e === data.storeId\r\n ) &&\r\n data.isMyStore != 1 &&\r\n data.allPrice != null ? (\r\n \r\n this.showGraph(\r\n data.storeId,\r\n 1,\r\n data.storeName\r\n )\r\n }\r\n className=\"hides-graph\"\r\n >\r\n \r\n Remove from graph\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n {data.storeId ===\r\n isRemoveGrapg.find(\r\n (e) => e === data.storeId\r\n ) &&\r\n data.isMyStore != 1 &&\r\n data.allPrice != null ? (\r\n \r\n this.showGraph(\r\n data.storeId,\r\n 0,\r\n data.storeName\r\n )\r\n }\r\n className=\"shows-graph\"\r\n >\r\n \r\n Show on graph\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n \r\n ) : (\r\n \r\n {data.storeId ===\r\n isShowGraph.find(\r\n (e) => e === data.storeId\r\n ) &&\r\n data.isMyStore != 1 &&\r\n data.allPrice != null ? (\r\n \r\n this.showGraph(\r\n data.storeId,\r\n 1,\r\n data.storeName\r\n )\r\n }\r\n className=\"hides-graph\"\r\n >\r\n \r\n Remove from graph\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n {data.storeId ===\r\n isRemoveGrapg.find(\r\n (e) => e === data.storeId\r\n ) &&\r\n data.isMyStore != 1 &&\r\n data.allPrice != null ? (\r\n \r\n this.showGraph(\r\n data.storeId,\r\n 0,\r\n data.storeName\r\n )\r\n }\r\n className=\"shows-graph\"\r\n >\r\n \r\n Show on graph\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n \r\n )}\r\n
\r\n );\r\n })\r\n : \"\"}\r\n {marketStorePrice.length > 0 ? (\r\n this.stableSort(\r\n marketStorePrice,\r\n this.getSorting(order, orderBy)\r\n ).map((data) => {\r\n return (\r\n \r\n {/* {data.storeName}
{data.address}, {data.city}, {data.state}, {data.zipCode}
*/}\r\n {data.storeName === \"Your Store\" ? (\r\n \r\n {data.storeName === null\r\n ? \"N/A\"\r\n : data.storeName}{\" \"}\r\n
\r\n {data.address != null ? data.address : \"\"}{\" \"}\r\n {data.city != null ? \", \" + data.city : \"\"}{\" \"}\r\n {CONFIG.RegionId ===\r\n MatchingCountryCode.UK_RID\r\n ? \"\"\r\n : data.state != null\r\n ? \", \" + data.state\r\n : \"\"}{\" \"}\r\n {data.zipCode != null ? data.zipCode : \"\"}\r\n
\r\n
\r\n ) : (\r\n \r\n {data.storeName === null\r\n ? \"N/A\"\r\n : data.storeName}{\" \"}\r\n
\r\n {data.address != null ? data.address : \"\"}{\" \"}\r\n {data.city != null ? \", \" + data.city : \"\"}{\" \"}\r\n {data.state != null &&\r\n CONFIG.RegionId !==\r\n MatchingCountryCode.UK_RID\r\n ? \", \" + data.state\r\n : \"\"}{\" \"}\r\n {data.zipCode != null ? data.zipCode : \"\"}\r\n
\r\n
\r\n )}\r\n {data.storeName === \"Your Store\" ? (\r\n \r\n {data.allPrice === null\r\n ? \"N/A\"\r\n : data.allPrice + \"%\"}\r\n \r\n ) : (\r\n \r\n {data.allPrice === null\r\n ? \"N/A\"\r\n : data.allPrice + \"%\"}\r\n \r\n )}\r\n {data.storeName === \"Your Store\" ? (\r\n \r\n {data.premium === null\r\n ? \"N/A\"\r\n : data.premium + \"%\"}\r\n \r\n ) : (\r\n \r\n {data.premium === null\r\n ? \"N/A\"\r\n : data.premium + \"%\"}\r\n \r\n )}\r\n {data.storeName === \"Your Store\" ? (\r\n \r\n {data.value === null\r\n ? \"N/A\"\r\n : data.value + \"%\"}\r\n \r\n ) : (\r\n \r\n {data.value === null\r\n ? \"N/A\"\r\n : data.value + \"%\"}\r\n \r\n )}\r\n {data.storeName === \"Your Store\" ? (\r\n \r\n {data.storeId ===\r\n isShowGraph.find(\r\n (e) => e === data.storeId\r\n ) &&\r\n data.isMyStore != 1 &&\r\n data.allPrice != null ? (\r\n \r\n this.showGraph(\r\n data.storeId,\r\n 1,\r\n data.storeName\r\n )\r\n }\r\n className=\"hides-graph\"\r\n >\r\n \r\n Remove from graph\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n {data.storeId ===\r\n isRemoveGrapg.find(\r\n (e) => e === data.storeId\r\n ) &&\r\n data.isMyStore != 1 &&\r\n data.allPrice != null ? (\r\n \r\n this.showGraph(\r\n data.storeId,\r\n 0,\r\n data.storeName\r\n )\r\n }\r\n className=\"shows-graph\"\r\n >\r\n \r\n Show on graph\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n \r\n ) : (\r\n \r\n {data.storeId ===\r\n isShowGraph.find(\r\n (e) => e === data.storeId\r\n ) &&\r\n data.isMyStore != 1 &&\r\n data.allPrice != null ? (\r\n \r\n this.showGraph(\r\n data.storeId,\r\n 1,\r\n data.storeName\r\n )\r\n }\r\n className=\"hides-graph\"\r\n >\r\n \r\n Remove from graph\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n {data.storeId ===\r\n isRemoveGrapg.find(\r\n (e) => e === data.storeId\r\n ) &&\r\n data.isMyStore != 1 &&\r\n data.allPrice != null ? (\r\n \r\n this.showGraph(\r\n data.storeId,\r\n 0,\r\n data.storeName\r\n )\r\n }\r\n className=\"shows-graph\"\r\n >\r\n \r\n Show on graph\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n \r\n )}\r\n
\r\n );\r\n })\r\n ) : marketStorePrice.length <= 0 &&\r\n isYourStore.length <= 0 ? (\r\n \r\n \r\n {isLoading === false ? \"No Data Found\" : \"\"}\r\n \r\n \r\n ) : marketStorePrice.length <= 0 ? (\r\n \r\n \r\n {isLoading === false\r\n ? \"No Competitor Data Found\"\r\n : \"\"}\r\n \r\n \r\n ) : (\r\n \"\"\r\n )}\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n {this.state.snackMSg}}\r\n action={[\r\n \r\n \r\n ,\r\n ]}\r\n />\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\n//Listing and Sorting Table's Head\r\nfunction EnhancedTableHead(props) {\r\n const { order, orderBy, onRequestSort } = props;\r\n const createSortHandler = (property) => (event) => {\r\n onRequestSort(event, property);\r\n };\r\n const headRows = [\r\n {\r\n id: \"storeName\",\r\n numeric: false,\r\n disablePadding: true,\r\n label: \"STORE NAME\",\r\n },\r\n {\r\n id: \"allPrice\",\r\n numeric: true,\r\n disablePadding: false,\r\n label: \"ALL PRICE VOLATILITY\",\r\n },\r\n {\r\n id: \"premium\",\r\n numeric: true,\r\n disablePadding: false,\r\n label: \"PREMIUM PRICE VOLATILITY\",\r\n },\r\n {\r\n id: \"value\",\r\n numeric: true,\r\n disablePadding: false,\r\n label: \"VALUE PRICE VOLATILITY\",\r\n },\r\n {\r\n id: \"moreoptions\",\r\n numeric: true,\r\n disablePadding: false,\r\n label: \"MORE OPTIONS\",\r\n },\r\n ];\r\n\r\n return (\r\n \r\n \r\n {headRows.map((row) => (\r\n \r\n \r\n {row.label}\r\n \r\n \r\n ))}\r\n \r\n \r\n );\r\n}\r\n","import React from 'react';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport CloseIcon from '@material-ui/icons/Close';\r\nimport InfoRoundedIcon from '@material-ui/icons/InfoRounded';\r\nimport './CommonSqFtInfoPopup.css';\r\nclass CommonSqFtInfoPopup extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n infoModal: false\r\n }\r\n\r\n this.handleToggleDialog = this.handleToggleDialog.bind(this);\r\n }\r\n\r\n handleToggleDialog() {\r\n this.setState({\r\n infoModal: !this.state.infoModal\r\n })\r\n }\r\n\r\n\r\n render() {\r\n const { infoModal } = this.state;\r\n\r\n return (\r\n \r\n\r\n {this.props.infoFrom == 'ALL_STORES_LIST' ?\r\n

Learn about how Rentable Square Footage is calculated.

\r\n :\r\n this.props.infoFrom == 'AM_POP_TSFT' || this.props.infoFrom == 'AM_POP_RSFT' ?\r\n \r\n :\r\n ''\r\n }\r\n \r\n {/* */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.props.infoFrom == 'ALL_STORES_LIST' || this.props.infoFrom == 'AM_POP_RSFT' ?\r\n
\r\n

How is Rentable Square Feet (RSF) calculated for each property?

\r\n
    \r\n
  • RSF is 95% of TSF if the property has 1 floor
  • \r\n
  • RSF is 85% of TSF if the property has 2 floors
  • \r\n
  • RSF is 75% of TSF if the property has 3 or more floors
  • \r\n
  • RSF is 95% of TSF if the property has an unknown number of floors
  • \r\n
\r\n
: ''}\r\n {this.props.infoFrom == 'AM_POP_TSFT' ?\r\n
\r\n

Total Square Feet Values are obtained from public sources, including city and county property records. When this information is unavailable, StorTrack uses mapping tools or internal models to estimate the size of the property.

\r\n
: ''}\r\n {this.props.infoFrom == 'AM_POP_TSFT' || this.props.infoFrom == 'AM_POP_RSFT' ?\r\n
\r\n

Property Square Footage is available in the All Stores List page.

\r\n
: ''}\r\n
\r\n \r\n
\r\n );\r\n }\r\n}\r\nexport default CommonSqFtInfoPopup;","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport asyncLoading from 'react-async-loader';\r\n\r\nclass ReactStreetview extends React.Component {\r\n\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.streetView = null;\r\n\t\tthis.state = {\r\n\t\t\tisNoData: false\r\n\t\t}\r\n\t}\r\n\r\n\tinitialize(canvas) {\r\n\t\tif (this.props.googleMaps && this.streetView == null) {\r\n\t\tvar lthis = this;\r\n\r\n\t\tvar location = {\r\n\t\t\tlat: this.props.streetViewPanoramaOptions.position.lat,\r\n\t\t\tlng: this.props.streetViewPanoramaOptions.position.lng\r\n\t\t}\r\n\t\tvar svService = new lthis.props.googleMaps.StreetViewService();\r\n\t\tvar panoRequest = {\r\n\t\t\tlocation: location,\r\n\t\t\tpreference: lthis.props.googleMaps.StreetViewPreference.NEAREST,\r\n\t\t\tradius: 50,\r\n\t\t\tsource: lthis.props.googleMaps.StreetViewSource.OUTDOOR\r\n\t\t};\r\n\r\n\t\tvar findPanorama = function (radius) {\r\n\t\t\tpanoRequest.radius = radius;\r\n\t\t\tsvService.getPanorama(panoRequest, function (panoData, status) {\r\n\t\t\t\tif (status === lthis.props.googleMaps.StreetViewStatus.OK) {\r\n\t\t\t\t\tlthis.streetView = new lthis.props.googleMaps.StreetViewPanorama(\r\n\t\t\t\t\t\tcanvas,\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tpano: panoData.location.pano,\r\n\t\t\t\t\t\t});\r\n\t\t\t\t} else {\r\n\t\t\t\t\t//Handle other statuses here\r\n\t\t\t\t\tif (radius > 200) {\r\n\t\t\t\t\t\tlthis.setState({ isNoData: true });\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tfindPanorama(radius + 5);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t};\r\n\r\n\t\tfindPanorama(50);\r\n\t\tthis.streetView=lthis.streetView;\r\n\t}\r\n}\r\n\r\n\tcomponentDidMount() {\r\n\t\tthis.initialize(ReactDOM.findDOMNode(this));\r\n\t}\r\n\r\n\tcomponentDidUpdate() {\r\n\t\tthis.initialize(ReactDOM.findDOMNode(this));\r\n\t}\r\n\tcomponentWillUnmount() {\r\n\t\tif (this.streetView) {\r\n\t\t\tthis.props.googleMaps.event.clearInstanceListeners(this.streetView);\r\n\t\t}\r\n\t}\r\n\r\n\trender() {\r\n\t\treturn (\r\n\t\t\t\r\n\t\t\t\t

{this.state.isNoData ? \"Street View is not available\" : \"Loading data...\"}

\r\n\t\t\t
\r\n\t\t);\r\n\t}\r\n}\r\n\r\nReactStreetview.propTypes = {\r\n\tapiKey: PropTypes.string.isRequired,\r\n\tstreetViewPanoramaOptions: PropTypes.object.isRequired,\r\n\tonPositionChanged: PropTypes.func,\r\n\tonPovChanged: PropTypes.func\r\n};\r\n\r\nReactStreetview.defaultProps = {\r\n\tstreetViewPanoramaOptions: {\r\n\t\tposition: { lat: 30.41881800, lng: -87.20564000 },\r\n\t\tpov: { heading: 0, pitch: 0 },\r\n\t\tzoom: 1\r\n\t}\r\n};\r\n\r\nfunction mapScriptsToProps(props) {\r\n\tconst googleMapsApiKey = props.apiKey;\r\n\treturn {\r\n\t\tgoogleMaps: {\r\n\t\t\tglobalPath: 'google.maps',\r\n\t\t\turl: 'https://maps.googleapis.com/maps/api/js?key=' + googleMapsApiKey + '&callback=initialize',\r\n\t\t\tjsonp: true\r\n\t\t}\r\n\t};\r\n}\r\n\r\nexport default asyncLoading(mapScriptsToProps)(ReactStreetview);\r\n","import React from 'react';\r\nimport { Modal, ModalBody, ModalHeader } from 'reactstrap';\r\nimport { CONFIG } from '../../utils/config';\r\nimport ReactStreetview from './ReactStreetview.js';\r\n\r\nclass StoreStreetView extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n modal: false,\r\n latitude: '',\r\n longitude: '',\r\n storeName:'',\r\n googleMapsApiKey: CONFIG.GoogleMapsApiKey\r\n }\r\n\r\n this.toggleStoreModal = this.toggleStoreModal.bind(this);\r\n this.trackModal = this.trackModal.bind(this);\r\n }\r\n\r\n toggleStoreModal(lat, lon,name) {\r\n this.setState(state => ({\r\n modal: !state.modal,\r\n latitude: lat,\r\n longitude: lon,\r\n storeName:name\r\n }))\r\n }\r\n\r\n trackModal() {\r\n this.setState(state => ({\r\n modal: !state.modal,\r\n }));\r\n }\r\n\r\n render() {\r\n const { latitude, longitude, googleMapsApiKey ,storeName} = this.state;\r\n const streetViewPanoramaOptions = {\r\n position: { lat: +latitude, lng: +longitude },\r\n pov: { heading: 100, pitch: 0 },\r\n zoom: 1\r\n }\r\n return (\r\n
\r\n this.trackModal()} \r\n className=\"store-mainpopup\"\r\n backdrop=\"static\">\r\n {storeName}
This is the street view from Google Maps.
\r\n \r\n this.setState({ position: position })}\r\n onPovChanged={pov => this.setState({ pov: pov })}\r\n />\r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\nexport default StoreStreetView;","import React from 'react';\r\nimport ReactDOM from \"react-dom\";\r\nimport { Row, Col, Dropdown, DropdownToggle, DropdownMenu, DropdownItem, Button, TabContent, TabPane, Nav, NavItem, NavLink, Modal, ModalHeader, ModalBody } from 'reactstrap';\r\nimport classnames from 'classnames';\r\nimport { Link } from 'react-router-dom';\r\nimport { Table } from 'reactstrap';\r\nimport { HelpTextPopup } from './../HelpTextPopup/index';\r\nimport CommonSqFtInfoPopup from '../CommonSqFtInfoPopup/CommonSqFtInfoPopup';\r\nimport Snackbar from '@material-ui/core/Snackbar';\r\nimport CloseIcon from '@material-ui/icons/Close';\r\nimport IconButton from '@material-ui/core/IconButton';\r\n// import Table from '@material-ui/core/Table';\r\n// import TableBody from '@material-ui/core/TableBody';\r\n// import TableCell from '@material-ui/core/TableCell';\r\n// import TableRow from '@material-ui/core/TableRow';\r\nimport Breadcrumbs from '@material-ui/core/Breadcrumbs';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faList, faEyeSlash } from '@fortawesome/free-solid-svg-icons';\r\nimport { faStar } from '@fortawesome/free-solid-svg-icons';\r\nimport { faCheck } from '@fortawesome/free-solid-svg-icons';\r\nimport { faTimes } from '@fortawesome/free-solid-svg-icons';\r\nimport ListItemAvatar from '@material-ui/core/ListItemAvatar';\r\nimport Avatar from '@material-ui/core/Avatar';\r\nimport './CompOverview.css';\r\nimport axios from 'axios';\r\nimport { CONFIG } from '../../utils/config';\r\nimport { MissingCompetitor } from '../MissingCompetitor';\r\nimport { MarketProfile } from '../MarketProfile';\r\nimport { CompetitorStore } from '../CompetitorStore';\r\nimport noImage from './../../Assets/Images/no-image.jpg';\r\nimport NumberFormat from 'react-number-format';\r\nimport LocationOn from '@material-ui/icons/LocationOn';\r\nimport { StoreStreetView } from '../StoreStreetView';\r\nimport homeIcon from './../../Assets/Images/home-icon-circle.png';\r\nimport { faFilePdf } from '@fortawesome/free-solid-svg-icons';\r\nimport moment from 'moment';\r\nimport TableHead from '@material-ui/core/TableHead';\r\nimport TableBody from '@material-ui/core/TableBody';\r\nimport TableCell from '@material-ui/core/TableCell';\r\nimport TableRow from '@material-ui/core/TableRow';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport InfiniteScroll from 'react-infinite-scroller';\r\nimport MapGL, { Layer, NavigationControl, Popup, Source, Marker, WebMercatorViewport, FlyToInterpolator } from \"react-map-gl\";\r\nimport \"mapbox-gl/dist/mapbox-gl.css\";\r\n\r\nconst params = { v: '3.exp', key: CONFIG.GoogleMapsApiKey };\r\n\r\nconst layerStyle = {\r\n id: \"point\",\r\n type: \"circle\",\r\n paint: {\r\n \"circle-radius\": 5,\r\n \"circle-color\": [\"get\", \"colorCode\"],\r\n },\r\n};\r\n\r\nexport class InfoWindowEx extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.onInfoWindowOpen = this.onInfoWindowOpen.bind(this);\r\n if (!this.containerElement) {\r\n this.containerElement = document.createElement(`div`);\r\n }\r\n }\r\n\r\n onInfoWindowOpen() {\r\n ReactDOM.render(\r\n React.Children.only(this.props.children),\r\n this.containerElement\r\n );\r\n this.infoWindowRef.current.infowindow.setContent(this.containerElement);\r\n }\r\n}\r\n\r\nexport default class CompOverview extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.MarketProfile = React.createRef();\r\n this.infoWindowRef = React.createRef();\r\n this.toggle = this.toggle.bind(this);\r\n this.handleClickOpen = this.handleClickOpen.bind(this);\r\n //this.tabsChange = this.toggle.bind(this);\r\n this.child = React.createRef();\r\n this.compstorechild = React.createRef();\r\n this.storeImageStreetView = React.createRef();\r\n this.myRef = React.createRef()\r\n this.state = {\r\n dropdownOpen: false,\r\n showingInfoWindow: false,\r\n compOverviewData: [],\r\n storeData: [],\r\n activeMarker: {},\r\n locationInfoData: [],\r\n isLoading: false,\r\n activeTab: '1',\r\n dropDownValue: \"Sort by\",\r\n sortByOrder: '1',\r\n isPdfLoading: false,\r\n centerPoint: [],\r\n snackOpen: false,\r\n snackMSg: '',\r\n snackClr: '',\r\n zoomValue: 6,\r\n hisData: false,\r\n compCount: 0,\r\n hasMoreData: false,\r\n pageStart: 1,\r\n mapData: [],\r\n unitData: [],\r\n viewport: {\r\n width: \"100%\",\r\n height: \"100vh\",\r\n longitude: 0,\r\n latitude: 0,\r\n zoom: 10,\r\n },\r\n popupInfoLatlng: {},\r\n totalSqFtFlag: false,\r\n homeLatLng: { longitude: 0, latitude: 0 },\r\n satelliteView: 0\r\n };\r\n\r\n this.mapRef = React.createRef();\r\n this.getParams = this.getParams.bind(this);\r\n this.getParams1 = this.getParams1.bind(this);\r\n this.addDefaultSrcMap = this.addDefaultSrcMap.bind(this);\r\n }\r\n\r\n getParams(name, sid) {\r\n this.child.current.toggleModal(name, sid);\r\n }\r\n\r\n getStoreStreeView(lat, lon, name) {\r\n this.storeImageStreetView.current.toggleStoreModal(lat, lon, name);\r\n }\r\n\r\n onMapCreated(map) {\r\n map.setOptions({\r\n disableDefaultUI: true,\r\n mapTypeControl: true\r\n // defaultOptions={ zoomControl: true,fullscreenControl: false,streetViewControl: false, disableDefaultUI: false, mapTypeControl: true, }}\r\n });\r\n }\r\n\r\n tabsChange(tab) {\r\n if (this.state.activeTab !== tab) {\r\n this.setState({\r\n activeTab: tab\r\n });\r\n }\r\n }\r\n\r\n NumberFormat(number) {\r\n return new Intl.NumberFormat().format(number);\r\n }\r\n\r\n onMarkerClick = (event) => {\r\n let unitData = this.state.unitData;\r\n let cCode = this.state.locationInfoData.countryCode;\r\n let Authorize = localStorage.getItem('accessKey');//this.props.Authorize;\r\n let latitude = Number(event.lngLat[1]);\r\n let longitude = Number(event.lngLat[0]);\r\n let eventData = event.features.filter(ft => ft.layer.type === \"circle\")[0];\r\n if (Authorize) {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + Authorize;\r\n }\r\n if (eventData && eventData.layer.type === \"circle\") {\r\n let selectedMarker = eventData.properties;\r\n let storeId = selectedMarker.storeID;\r\n const data = {\r\n UserStoreId: parseInt(this.props.match.params.userstoreid),\r\n RegionId: CONFIG.RegionId,\r\n StoreID: storeId\r\n }\r\n axios.post(CONFIG.API_URL + 'dashboard/compsoverviewdatapointdetails', data)\r\n .then(response => {\r\n if (response.data.data !== null) {\r\n const pinPoints = response.data.data;\r\n let unitTypes = [];\r\n unitData.map(unit => {\r\n if (unit.storeID === storeId && unit.value === 1) {\r\n unitTypes.push(unit.unitType);\r\n }\r\n })\r\n var units = unitTypes.join(\", \");\r\n var address = pinPoints.storeAddress != null ? pinPoints.storeAddress : '';\r\n var last = address != '' ? address.lastIndexOf(\",\") : 0;\r\n var s1 = address != '' ? address.substring(0, last) : '';\r\n var s2 = address != '' ? address.substring(last + 1) : '';\r\n var image = pinPoints.storeImagePath != null && pinPoints.storeImagePath != '' ? pinPoints.storeImagePath : noImage;\r\n let meashotName = (cCode === \"DE\" || cCode === \"AT\" || cCode === \"CH\") ? \"sqm\" : CONFIG.MeasurementShortName;\r\n this.setState({\r\n storeId: storeId,\r\n strImageMap: image,\r\n activeMarker: pinPoints.storeName,\r\n storeName: pinPoints.storeName,\r\n lat: pinPoints.latitude,\r\n lng: pinPoints.longitude,\r\n address: address != null ? s1 : '',\r\n address1: address != null ? s2 : '',\r\n //squareFootage: pinPoints.squareFootage === \"0\" ? \"N/A\" : this.NumberFormat(pinPoints.squareFootage) + \" \" + CONFIG.MeasurementShortName,\r\n squareFootage: pinPoints.squareFootage === \"0\" ? \"N/A\" : this.NumberFormat(pinPoints.squareFootage) + \" \" + meashotName,\r\n opened: pinPoints.opened === \"0\" ? \"N/A\" : pinPoints.opened,\r\n ownedBy: pinPoints.ownedBy,\r\n operatedBy: pinPoints.operatedBy,\r\n priceChangesPercent: pinPoints.priceChangesPercent == null ? \"N/A\" : pinPoints.priceChangesPercent + \"% (Last 30 days)\",\r\n imagePath: image,\r\n unitsOffered: unitTypes.length > 0 ? units : 'N/A',\r\n showingInfoWindow: true,\r\n popupInfoLatlng: { latitude, longitude },\r\n totalSqFtFlag: pinPoints.sqFtFlag !== 2 ? false : true\r\n });\r\n }\r\n })\r\n .catch(err => {\r\n if (err.response.status === 400) {\r\n if (err.response.data.Message === \"Authentication failed\") {\r\n const { from } = this.props.location.state || { from: { pathname: \"/UnauthorizedAccess\" } };\r\n this.props.history.push(from);\r\n }\r\n }\r\n else {\r\n }\r\n });\r\n }\r\n };\r\n\r\n toggle() {\r\n this.setState(prevState => ({\r\n dropdownOpen: !prevState.dropdownOpen\r\n }));\r\n }\r\n\r\n onMarkerClose = () => {\r\n this.setState({ showingInfoWindow: false });\r\n }\r\n\r\n handleClickOpen(e, name) {\r\n let sortByOrder = name === \"Proximity\" ? 1 : name === \"Store Name\" ? 2 : name === \"Total Square Footage\" ? 3 : name === \"Year Built\" ? 4 : '';\r\n if (name === \"Proximity\") {//descending order--to Address origin of Market\r\n this.setState(storeData => {\r\n this.state.storeData.sort((a, b) => (a.proximity - b.proximity))\r\n });\r\n } else if (name === \"Year Built\") {//descending order--most recent first\r\n this.setState(storeData => {\r\n this.state.storeData.sort((a, b) => (b.opened - a.opened))\r\n });\r\n } else if (name === \"Total Square Footage\") {//descending order--high to low\r\n this.setState(storeData => {\r\n this.state.storeData.sort((a, b) => (b.squareFootage - a.squareFootage))\r\n });\r\n } else if (name === \"Store Name\") {//ascending order\r\n this.setState(storeData => {\r\n this.state.storeData.sort((a, b) => a.storeName !== b.storeName ? a.storeName < b.storeName ? -1 : 1 : 0);\r\n });\r\n }\r\n this.setState({\r\n dropDownValue: e.currentTarget.textContent, sortByOrder: sortByOrder\r\n })\r\n }\r\n\r\n loadDashBoard() {\r\n let token = localStorage.getItem('accessKey');\r\n const data = {\r\n \"UserStoreID\": parseInt(this.props.match.params.userstoreid),\r\n \"RegionId\": CONFIG.RegionId\r\n }\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n }\r\n axios.post(CONFIG.API_URL + 'dashboard/dashboardlocation', data)\r\n .then(response => {\r\n // let zoomValue;\r\n const locationInfoData = response.data.data.storeDashboard;\r\n // const centerPoint = response.data.data.centerPointDetail;\r\n // if (locationInfoData.searchType === 3) {\r\n // zoomValue = 10;\r\n // } else if (locationInfoData.searchType === 2) {\r\n // let zCnt = locationInfoData.storeZoneCoverage != \"\" && locationInfoData.storeZoneCoverage != null ? (locationInfoData.storeZoneCoverage.split(\",\").length - 1) : 1;\r\n // zoomValue = (zCnt > 1) ? 9 : (zCnt > 0) ? 10 : 12;\r\n // } else if (locationInfoData.searchType === 1) {\r\n // let storeZoneCoverage = locationInfoData.storeZoneCoverage.split(' ');\r\n // zoomValue = (storeZoneCoverage[0] === '1' || storeZoneCoverage[0] === '2' || storeZoneCoverage[0] === '3') ? 13 : (storeZoneCoverage[0] === '4' || storeZoneCoverage[0] === '5' || storeZoneCoverage[0] === '6') ? 12 : (storeZoneCoverage[0] === '6' || storeZoneCoverage[0] === '7') ? 11 : (storeZoneCoverage[0] === '8' || storeZoneCoverage[0] === '9' || storeZoneCoverage[0] === '10') ? 10 : 6;\r\n // }\r\n // let lgt = (centerPoint && (centerPoint.length > 0 && centerPoint[0].longitude != null) ? parseFloat(centerPoint[0].longitude) : parseFloat(locationInfoData.longitude));\r\n // let ltd = (centerPoint && (centerPoint.length > 0 && centerPoint[0].latitude != null) ? parseFloat(centerPoint[0].latitude) : parseFloat(locationInfoData.latitude));\r\n let lgt = parseFloat(locationInfoData.longitude);\r\n let ltd = parseFloat(locationInfoData.latitude);\r\n this.setState(prevState => ({\r\n locationInfoData: locationInfoData,\r\n viewport: {\r\n ...prevState.viewport,\r\n longitude: lgt,\r\n latitude: ltd,\r\n // zoom: zoomValue\r\n },\r\n homeLatLng: { longitude: lgt, latitude: ltd }\r\n }), () => this.loadMapData());\r\n }).catch((err) => {\r\n if (err.response.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else if (err.response.status === 403) {\r\n const { from } = this.props.location.state || { from: { pathname: \"/UnauthorizedAccess\" } };\r\n this.props.history.push(from);\r\n }\r\n else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }\r\n\r\n getBoundingValues = (points) => {\r\n if (points.length) {\r\n const paddingLength = window.innerHeight / 3;\r\n const applyToArray = (func, array) => func.apply(Math, array);\r\n const pointsLong = points.map((point) => point.geometry.coordinates[0]);\r\n const pointsLat = points.map((point) => point.geometry.coordinates[1]);\r\n if (!pointsLong.includes(this.state.homeLatLng.longitude)) pointsLong.push(this.state.homeLatLng.longitude);\r\n if (!pointsLat.includes(this.state.homeLatLng.latitude)) pointsLat.push(this.state.homeLatLng.latitude);\r\n const cornersLongLat = [\r\n [applyToArray(Math.min, pointsLong), applyToArray(Math.min, pointsLat)],\r\n [applyToArray(Math.max, pointsLong), applyToArray(Math.max, pointsLat)],\r\n ];\r\n const viewport = new WebMercatorViewport({\r\n width: window.innerWidth,\r\n height: window.innerHeight,\r\n }).fitBounds(cornersLongLat, {\r\n padding: { top: paddingLength, bottom: paddingLength, left: paddingLength, right: paddingLength },\r\n });\r\n const { longitude, latitude, zoom } = viewport;\r\n this.setState(prevState => {\r\n return {\r\n viewport: {\r\n ...prevState.viewport,\r\n latitude: latitude,\r\n longitude: longitude,\r\n zoom: zoom,\r\n transitionDuration: 100,\r\n transitionInterpolator: new FlyToInterpolator(),\r\n }\r\n }\r\n });\r\n }\r\n };\r\n\r\n compOverview() {\r\n const data = {\r\n \"UserStoreID\": parseInt(this.props.match.params.userstoreid),\r\n \"RegionId\": CONFIG.RegionId\r\n }\r\n let token = localStorage.getItem('accessKey');\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n }\r\n axios.post(CONFIG.API_URL + 'dashboard/compsoverviewdata', data)\r\n .then(res => {\r\n const compOverviewData = res.data.data;\r\n const storeData = compOverviewData.storeData;\r\n this.setState({ compOverviewData: compOverviewData, storeData: storeData, isLoading: false });\r\n })\r\n .catch((err) => {\r\n this.setState({ isLoading: false });\r\n if (err.response.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else if (err.response.status === 403) {\r\n const { from } = this.props.location.state || { from: { pathname: \"/UnauthorizedAccess\" } };\r\n this.props.history.push(from);\r\n }\r\n else if (err.response.status === 400) {\r\n alert(err.response.data.Message);\r\n }\r\n else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }\r\n\r\n addDefaultSrc(ev) {\r\n if (ev.target.src != null) {\r\n var imageName = require('./../../Assets/Images/no-image.jpg');\r\n ev.target.src = imageName;\r\n ev.target.className = \"noimages Unit-Store-Img\";\r\n }\r\n }\r\n\r\n addDefaultSrcMap(ev) {\r\n if (ev.target.src != null) {\r\n var imageName = require('./../../Assets/Images/no-image.jpg');\r\n ev.target.src = imageName;\r\n this.setState({ imagePath: noImage });\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n // this.setState({ isLoading: true });\r\n this.loadDashBoard();\r\n //this.compOverview();\r\n this.loadStoreList();\r\n }\r\n\r\n getParams1(storeAddress) {\r\n let storeId = parseInt(this.props.match.params.userstoreid);\r\n this.compstorechild.current.toggleStoreModal(storeAddress, storeId);\r\n }\r\n downLoadPDF() {\r\n this.setState({\r\n // isLoading: true,\r\n isPdfLoading: false\r\n });\r\n var currentDate = moment(new Date()).format(\"DD-MMM-YYYY\");\r\n let pta = this.state.sortByOrder;\r\n let usId = parseInt(this.props.match.params.userstoreid);\r\n let accessKey = localStorage.getItem('SecretKey');\r\n var timestamp = new Date().getDate() + \"\" + new Date().getMonth() + \"\" + new Date().getFullYear() + \"\" + new Date().getTime();\r\n //construct filename for pdf report.\r\n var fileName = usId + \"CompOverView\" + \"_\" + timestamp + \".pdf\";\r\n var stoName = this.state.locationInfoData && this.state.locationInfoData.storeName !== null && this.state.locationInfoData.storeName !== '' && this.state.locationInfoData.storeName !== undefined ? this.state.locationInfoData.storeName : 'Your Store';\r\n var fileNamePdf = stoName + '_' + \"Competitor-Overview\" + '_' + currentDate + \".pdf\";\r\n this.setState({ snackClr: 'snack-info', snackOpen: true, snackMSg: 'Your download is being processed. The ' + fileNamePdf + ' file will download automatically to your browser when ready and Please do not close or reload the pages until download completes. We recommend you check your Downloads folder if you don’t see it in your browser.' });\r\n let ComponentName = 2;\r\n const Input = {\r\n \"RegionID\": CONFIG.RegionId,\r\n \"URL\": CONFIG.OPTZ_URL + \"render-pdf/\" + accessKey + '/' + ComponentName + '/0/' + usId + '/' + pta + \"/\",\r\n \"FileName\": fileName,\r\n }\r\n // axios.post(CONFIG.API_URL + 'dashboard/generatepdfbypage', Input)\r\n axios(\r\n {\r\n url: CONFIG.API_URL + 'dashboard/generatepdfbypage',\r\n method: 'post',\r\n responseType: 'blob',\r\n data: Input\r\n })\r\n .then(response => {\r\n const blob = new Blob([response.data], { type: 'application/octet-stream' });\r\n const link = document.createElement('a');\r\n link.href = window.URL.createObjectURL(blob);\r\n link.download = fileNamePdf;\r\n link.dispatchEvent(\r\n new MouseEvent('click', {\r\n bubbles: true,\r\n cancelable: true,\r\n view: window\r\n })\r\n );\r\n setTimeout(() => {\r\n // For Firefox it is necessary to delay revoking the ObjectURL\r\n window.URL.revokeObjectURL(link.href);\r\n link.remove();\r\n }, 3000);\r\n this.setState({ isLoading: false });\r\n })\r\n .catch((err) => {\r\n this.setState({ isLoading: false });\r\n })\r\n }\r\n snackHandleclose = (event, reason) => {\r\n if (reason === 'clickaway') {\r\n return;\r\n }\r\n this.setState({ snackOpen: false });\r\n };\r\n\r\n historicModal = (name, id) => {\r\n this.child.current.compModal(name, id);\r\n }\r\n\r\n //historical data modal popup\r\n historicalModalOpen() {\r\n this.setState(state => ({ hisData: !state.hisData }));\r\n }\r\n // close historicall modal \r\n cancelHisData = () => this.setState(state => ({ hisData: !state.hisData }))\r\n\r\n //loading all storelist using lazyload\r\n loadLazzyData() {\r\n let page = this.state.pageStart;\r\n let countCheck = (this.state.compCount / 10).toString();\r\n let pageCount = this.state.compCount / 10;\r\n let storeCount = countCheck.indexOf('.') != -1 ? parseInt(pageCount) + 1 : pageCount;\r\n if (page <= storeCount) {\r\n let Authorize = localStorage.getItem('accessKey');//this.props.Authorize;\r\n if (Authorize) {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + Authorize;\r\n }\r\n const data = {\r\n \"UserStoreID\": parseInt(this.props.match.params.userstoreid),\r\n \"RegionId\": CONFIG.RegionId,\r\n \"PageNo\": page\r\n }\r\n\r\n axios.post(CONFIG.API_URL + 'dashboard/compsoverviewdata', data)\r\n .then(response => {\r\n let prevStoreData = [...this.state.storeData];\r\n let newStoreData = prevStoreData.concat(response.data.data.storeData);\r\n let prevUnitData = [...this.state.unitData];\r\n let newUnitData = prevUnitData.concat(response.data.data.unitData);\r\n this.setState({ storeData: newStoreData, unitData: newUnitData, pageStart: page + 1 }, () => {\r\n this.loadLazzyData();\r\n });\r\n })\r\n .catch(err => {\r\n if (err.response.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else if (err.response.status === 403) {\r\n const { from } = this.props.location.state || { from: { pathname: \"/UnauthorizedAccess\" } };\r\n this.props.history.push(from);\r\n }\r\n else if (err.response.status === 400) {\r\n alert(err.response.data.Message);\r\n }\r\n else {\r\n alert(err.response.data);\r\n }\r\n });\r\n } else {\r\n this.setState({ hasMoreData: false });\r\n }\r\n }\r\n\r\n //All Store List\r\n loadStoreList() {\r\n this.setState({ isLoading: true });\r\n const data = {\r\n \"UserStoreID\": parseInt(this.props.match.params.userstoreid),\r\n \"RegionId\": CONFIG.RegionId,\r\n \"PageNo\": this.state.pageStart\r\n }\r\n let Authorize = localStorage.getItem('accessKey');//this.props.Authorize;\r\n if (Authorize) {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + Authorize;\r\n }\r\n\r\n axios.post(CONFIG.API_URL + 'dashboard/compsoverviewdata', data)\r\n .then(response => {\r\n let compOverviewData = response.data.data;\r\n let unitData = response.data.data.unitData;\r\n let storeData = response.data.data.storeData;\r\n let compCount = response.data.data.overViewInfo.compsCount;\r\n this.setState({ unitData, compOverviewData, storeData, isLoading: false, compCount, hasMoreData: true, pageStart: 2 }, () => {\r\n this.loadLazzyData();\r\n });\r\n })\r\n .catch(err => {\r\n this.setState({ isLoading: false });\r\n if (err.response.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else if (err.response.status === 403) {\r\n const { from } = this.props.location.state || { from: { pathname: \"/UnauthorizedAccess\" } };\r\n this.props.history.push(from);\r\n }\r\n else if (err.response.status === 400) {\r\n alert(err.response.data.Message);\r\n }\r\n else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }\r\n\r\n //load map pinpoints\r\n loadMapData() {\r\n const data = {\r\n \"UserStoreID\": parseInt(this.props.match.params.userstoreid),\r\n \"RegionId\": CONFIG.RegionId,\r\n \"IsMapBox\": CONFIG.IsMapbox,\r\n }\r\n let token = localStorage.getItem('accessKey');\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n }\r\n axios.post(CONFIG.API_URL + 'dashboard/compsoverviewdatapoint', data)\r\n .then(res => {\r\n const mapData = res.data.data;\r\n this.setState({ mapData }, () => this.getBoundingValues(mapData));\r\n })\r\n .catch((err) => {\r\n this.setState({ isLoading: false });\r\n if (err.response.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else if (err.response.status === 403) {\r\n const { from } = this.props.location.state || { from: { pathname: \"/UnauthorizedAccess\" } };\r\n this.props.history.push(from);\r\n }\r\n else if (err.response.status === 400) {\r\n alert(err.response.data.Message);\r\n }\r\n else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }\r\n\r\n handleViewportChange = (viewport) => {\r\n this.setState({ viewport });\r\n }\r\n\r\n onLoadHomeMarker = () => {\r\n setTimeout(() => {\r\n let mapbox = this.mapRef.current.getMap();\r\n mapbox.loadImage(homeIcon, (error, image) => {\r\n if (image) mapbox.addImage('homeMarker', image)\r\n else if (error) throw error;\r\n });\r\n }, 500);\r\n }\r\n\r\n changeMapView = (type) => {\r\n this.setState({ satelliteView: type }, () => this.onLoadHomeMarker());\r\n }\r\n\r\n render() {\r\n document.title = 'StorTrack: Self-storage market pricing data';\r\n const { locationInfoData, isLoading, strImageMap, pageCount, sortByOrder, isPdfLoading, snackOpen, snackMSg } = this.state;\r\n const { compOverviewData, storeData, hisData, hasMoreData, mapData, unitData, viewport, popupInfoLatlng, totalSqFtFlag, homeLatLng, satelliteView } = this.state;\r\n // const infoWindowContent = '' + '
' + this.state.storeName + '

' + this.state.address + ',
' + this.state.address1 + '

' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '
' + ((this.state.locationInfoData.countryCode === \"DE\" || this.state.locationInfoData.countryCode === \"AT\" || this.state.locationInfoData.countryCode === \"CH\") ? \"Total Square Metre\" : CONFIG.MeasurementLabel) + '' + this.state.squareFootage + '
Opened' + this.state.opened + '
Owned by' + this.state.ownedBy + '
Operated by' + this.state.operatedBy + '
Price Volatility' + this.state.priceChangesPercent + '
Units Offered' + this.state.unitsOffered + '
';\r\n const defaultProps = {\r\n helpTitle: \"Competitor Overview\",\r\n helpContent: \"

Learn more about the stores in this Market. What are they advertising? Are they pricing aggressively? How big is their facility? etc.

Store Types

At the top of the page you will find a breakdown of the types of stores in this Market

Real Estate Investment Trust (REIT) Stores

Any stores operated by the following companies:

  • Public Storage
  • Extra Space
  • LifeStorage
  • Cubesmart
  • National Storage Affiliates
  • Global Self Storage
Multi Store Operators (Multi-Ops)

Companies operating more than 2 stores

Single Store Operators (Single-Ops)

Companies (typically independent operators) managing a single store

Competitor Overview
  • This grid below shows each store in this Market. Each store 'snapshot' shows the store name, address and proximity to your store. Further, it includes the building's square footage (derived from public sources or in some instances from calculations made by StorTrack's data science team).
  • You will also find ownership and management information and store age.
How aggressive is this store/competitor?
  • Pricing volatility is a major indicator of how aggressive or passive a store or Market is with their pricing. A store which frequently raises or lowers their rates, will typically have a higher pricing volatility. Here you can view the pricing volatility for a store over the last 30 days.
  • Pricing Volatility is calculated by taking the number of times a pricing change occurred over the last 30 days for that store.
Unit Availability
  • For each store we show 11 of the most common unit types. This is meant to give you a quick snapshot of the unit types each store in this Market is advertising.
  • The green checkmark means this unit type is currently advertised by this store
  • The red x means this store has not advertised this unit type in the last 12 months
  • The grey icon means this store has advertised this unit type in the last 12 months, but it is not currently advertising it
Street View

Hover over the store's image to view a Google Map snapshot of this facility

Map View of Stores

Click on the map pin point icon on the upper right corner to view a map of all the stores in your Market

Refer the below help video for more information.

\"\r\n }\r\n\r\n return (\r\n
\r\n \r\n {isLoading ?
: ''}\r\n
\"No
\r\n \r\n\r\n\r\n {localStorage.getItem('isMVP_User') === \"false\" ? My Markets : \"\"}\r\n\r\n Go to Market Dashboard\r\n\r\n Competitor Overview\r\n \r\n\r\n {/* Download Pdf */}\r\n \r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n

Competitor Overview

\r\n \r\n {isLoading && (locationInfoData.compsCount === 0 || locationInfoData.compsCount === null) ? '' : locationInfoData.compsCount === 0 || locationInfoData.compsCount === null ?

Analyzing N/A

:\r\n

Analyzing this.getParams1(locationInfoData)}>{locationInfoData ? parseInt(locationInfoData.compsCount) > 1 ? locationInfoData.compsCount + ' stores' : locationInfoData.compsCount + ' store' : 'N/A'}

\r\n }\r\n \r\n {isPdfLoading === false || isLoading === false ?\r\n \r\n

{locationInfoData && locationInfoData.storeName && locationInfoData.storeName !== null && locationInfoData.storeName !== undefined ? locationInfoData.storeName : 'Your Store'}

\r\n
24 ? \"pd-btm-35\" : \"pd-btm-20\" : \"pd-btm-20\"}>

{locationInfoData && locationInfoData.storeAddress1 && locationInfoData.storeAddress1 !== null && locationInfoData.storeAddress1 !== '' ? locationInfoData.storeAddress1 + ',' : ''} {locationInfoData.storeAddress2 ? locationInfoData.storeAddress2 + ', ' : ''} {locationInfoData && locationInfoData.storeCity ? locationInfoData.storeCity + ', ' : locationInfoData.searchType === 1 && (locationInfoData.storeCity === '' || locationInfoData.storeCity === null) && (locationInfoData.storeZipCode === '' || locationInfoData.storeZipCode === null) ? locationInfoData.latitude + ', ' + locationInfoData.longitude + ', ' : ''}{locationInfoData.storeState ? locationInfoData.storeState : ''} {locationInfoData ? locationInfoData.storeZipCode : 'N/A'}

\r\n

Coverage: {locationInfoData ? locationInfoData.storeZoneCoverage : 'N/A'}

\r\n : ''}\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n

No. of Stores

\r\n
{compOverviewData.overViewInfo ? compOverviewData.overViewInfo.compsCount : isLoading === false ? 'N/A' : ''}
\r\n \r\n {locationInfoData.countryCode == \"US\" ?\r\n \r\n

No. of REIT's

\r\n
{compOverviewData.overViewInfo ? compOverviewData.overViewInfo.reits : isLoading === false ? 'N/A' : ''}
\r\n \r\n : ''}\r\n \r\n

No. of Multi-Ops

\r\n
{compOverviewData.overViewInfo ? compOverviewData.overViewInfo.multiOps : isLoading === false ? 'N/A' : ''}
\r\n \r\n \r\n

No. of Single-Ops

\r\n
{compOverviewData.overViewInfo ? compOverviewData.overViewInfo.singleOps : isLoading === false ? 'N/A' : ''}
\r\n \r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n {this.state.activeTab !== \"1\" ? '' :\r\n \r\n \r\n {this.state.dropDownValue}\r\n \r\n \r\n this.handleClickOpen(e, \"Store Name\")}>Store Name\r\n this.handleClickOpen(e, \"Year Built\")}>Year Built\r\n this.handleClickOpen(e, \"Total Square Footage\")}>{(this.state.locationInfoData.countryCode === \"DE\" || this.state.locationInfoData.countryCode === \"AT\" || this.state.locationInfoData.countryCode === \"CH\") ? \"Total Square Metre\" : CONFIG.MeasurementLabel.toLowerCase() == 'total square feet' ? 'Total Square Footage' : CONFIG.MeasurementLabel}\r\n this.handleClickOpen(e, \"Proximity\")}>Proximity\r\n \r\n \r\n }\r\n \r\n \r\n
\r\n

{(this.state.locationInfoData.countryCode === \"DE\" || this.state.locationInfoData.countryCode === \"AT\" || this.state.locationInfoData.countryCode === \"CH\") ? \"Total Square Metre\" : CONFIG.MeasurementLabel} values displayed here are obtained from public sources, including city and county property records. When this information is unavailable, StorTrack uses mapping tools or internal models to estimate the size of the property - such properties have an asterisk (*) next to their {(this.state.locationInfoData.countryCode === \"DE\" || this.state.locationInfoData.countryCode === \"AT\" || this.state.locationInfoData.countryCode === \"CH\") ? \"Total Square Metre\" : CONFIG.MeasurementLabel} value.

\r\n
\r\n {/*

* The {CONFIG.MeasurementLabel} values are obtained from publicly available sources. In instances where this information is unavailable, our team has used different methods to calculate the size of the property.

*/}\r\n \r\n
\r\n {/* List view grid */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Pricing available for this unit type Pricing not available for this unit type Pricing previously available, but not currently advertised Your Store
\r\n \r\n {/* this.loadLazzyData()} hasMore={hasMoreData} useWindow={false} > */}\r\n
\r\n \r\n \r\n \r\n {compOverviewData && storeData.length != 0 ? storeData.map((strdata) =>\r\n \r\n \r\n \r\n ) :\r\n \r\n \r\n \r\n }\r\n \r\n
\r\n \r\n {/* \r\n \r\n \r\n this.getStoreStreeView(strdata.latitude, strdata.longitude, strdata.storeName)} title=\"click here to view street view\">\r\n \r\n {strdata.StoreImage != '' ? \"No : ''}\r\n \r\n \r\n \r\n \r\n \r\n

{strdata.isUserStore == 1 ? : ''} this.getParams(strdata.storeName, strdata.storeID)}>{strdata.storeName} {strdata.proximity != 0 ? {strdata.proximity} {(CONFIG.RegionId == 2) || (CONFIG.RegionId == 4) ? 'kilometre' : 'mile'}{strdata.proximity <= 1 ? '' : 's'} : ''}

\r\n

{strdata.storeAddress}

\r\n \r\n \r\n \r\n
{strdata.squareFootage == \"0\" ? \"N/A\" : this.NumberFormat(strdata.squareFootage) + \" \" + CONFIG.MeasurementShortName}
\r\n
{strdata.opened == \"0\" ? \"N/A\" : strdata.opened}
\r\n \r\n {strdata.ownedBy}
\r\n
{strdata.operatedBy}
\r\n \r\n \r\n \r\n */}\r\n \r\n \r\n \r\n {/* */}\r\n

{strdata.isUserStore == 1 ? : ''} this.getParams(strdata.storeName, strdata.storeID)}*/>{strdata.storeName} {strdata.proximity != 0 ? {strdata.proximity} mile{strdata.proximity <= 1 ? '' : 's'} : ''}

\r\n

{strdata.storeAddress}

\r\n \r\n \r\n
{strdata.squareFootage == \"0\" ? \"N/A\" : this.NumberFormat(strdata.squareFootage) + \" \" + ((this.state.locationInfoData.countryCode === \"DE\" || this.state.locationInfoData.countryCode === \"AT\" || this.state.locationInfoData.countryCode === \"CH\") ? \"sqm\" : CONFIG.MeasurementShortName)}{(strdata.sqFtFlag == 2 && strdata.squareFootage !== \"0\") ? * : ''}
\r\n
{strdata.opened == \"0\" ? \"N/A\" : strdata.opened}
\r\n \r\n {strdata.ownedBy}
\r\n
{strdata.operatedBy}
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
{strdata.priceChangesPercent != null ? {strdata.priceChangesPercent}% : N/A}
\r\n

Last 30 days

\r\n
\r\n
\r\n
\r\n
\r\n {/*
{strdata.priceChangesPercent != null ? {strdata.priceChangesPercent}% : N/A}
\r\n

Last 30 days

*/}\r\n
{strdata.priceChangesPercent !== null ? {strdata.priceChangesPercent}% : N/A}
\r\n

Last 30 days

\r\n
\r\n {strdata.lastVerified && strdata.lastVerified !== null ? {moment(strdata.lastVerified).format('DD-MMM-YYYY')} : N/A}\r\n
\r\n
\r\n
\r\n \r\n {/* {strdata && strdata.storeURL && strdata.storeURL != \"\" ? */}\r\n {/*
See historical data
*/}\r\n
{ this.historicModal(strdata.storeName, strdata.storeID) }} className=\"street-view_see-web\">See historical data
\r\n {strdata && strdata.storeURL && strdata.storeURL != \"\" ?\r\n \r\n : ''}\r\n
\r\n \r\n \r\n {/* \r\n {compOverviewData.unitData ? compOverviewData.unitData.map((untdata) =>\r\n strdata.storeID === untdata.storeID ?\r\n \r\n : ''\r\n ) : ''}\r\n */}\r\n \r\n {unitData.length > 0 && unitData.filter(untdata => untdata.storeID == strdata.storeID).map(untdata => {\r\n return (\r\n \r\n );\r\n })}\r\n \r\n \r\n
\r\n

{untdata.unitType}

\r\n

{untdata.value === 1 ? : untdata.value === -1 ? : }

\r\n
\r\n

{untdata.unitType}

\r\n

{untdata.value === 1 ? : untdata.value === -1 ? : }

\r\n
\r\n
{isLoading === false ? 'There are no competitors available in this market' : ''}
\r\n {/*
*/}\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n {/* {homeLatLng.latitude !== 0 && homeLatLng.longitude !== 0 &&\r\n (\r\n \"icon\"\r\n )} */}\r\n\r\n {/* {homeLatLng.latitude !== 0 && homeLatLng.longitude !== 0 && */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {this.state.showingInfoWindow && this.state.activeMarker !== '' ?\r\n this.onMarkerClose()}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n
\r\n {this.state.storeName} \r\n

{this.state.address}
{this.state.address1}

\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n {/* */}\r\n {/* {console.log(this.state.squareFootage)} */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
{((this.state.locationInfoData.countryCode === \"DE\" || this.state.locationInfoData.countryCode === \"AT\" || this.state.locationInfoData.countryCode === \"CH\") ? \"Total Square Metre\" : CONFIG.MeasurementLabel)} {this.state.squareFootage}{totalSqFtFlag && this.state.squareFootage !== \"N/A\" ? * : \"\"}{this.state.squareFootage && this.state.squareFootage.replace(/(<([^>]+)>)/gi, \"\")}
Opened{this.state.opened}
Owned by{this.state.ownedBy}
Operated by{this.state.operatedBy}
Price Volatility {this.state.priceChangesPercent}
Units Offered {this.state.unitsOffered}
\r\n \r\n : ''}\r\n \r\n
\r\n \r\n \r\n \r\n
Your Store
\r\n
Competitor
\r\n
\r\n \r\n
\r\n
\r\n
\r\n {/* \r\n \r\n \r\n \r\n {compOverviewData ? storeData.map((strdata) =>\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n

{strdata.storeName} {strdata.proximity} miles

\r\n

{strdata.storeAddress}

\r\n \r\n \r\n \r\n \r\n

Total square feet {strdata.squareFootage}.

\r\n

Opened {strdata.opened}

\r\n
\r\n \r\n

Owned by {strdata.ownedBy}

\r\n

Operated by {strdata.operatedBy}

\r\n
\r\n \r\n

Price Volitality {strdata.priceChangesPercent} %

\r\n

Last 30 days

\r\n
\r\n \r\n \r\n {compOverviewData.unitData ? compOverviewData.unitData.map((untdata) =>\r\n strdata.storeID === untdata.competitorID ? \r\n \r\n

{untdata.units}

\r\n

{untdata.value === 1 ? : }

\r\n
\r\n :''\r\n ) : ''}\r\n
\r\n \r\n
\r\n \r\n \r\n ) : ''} \r\n \r\n \r\n \r\n
*/}\r\n {/* Map view grid */}\r\n {/* \r\n \r\n \r\n {compOverviewData ? storeData.map((map) =>\r\n this.onMarkerClick(map.storeID,map.storeName,map.storeAddress,map.squareFootage,map.opened,map.ownedBy,map.operatedBy,map.latitude,map.longitude,map.priceChangesPercent)}\r\n />\r\n ) : ''} \r\n {this.state.showingInfoWindow && this.state.activeMarker !='' ?\r\n \r\n : ''}\r\n \r\n \r\n */}\r\n \r\n
\r\n \r\n Historical Marketing and Pricing Information\r\n \r\n \r\n Market Details:\r\n Lat Checked:\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n SPACE TYPE\r\n SIZE\r\n FLOOR\r\n FEATURES\r\n {CONFIG.RegionId === 3 ? \"ADVERTISED ONLINE WEEKLY RATE\" : \"ADVERTISED ONLINE RATE\"}\r\n LAST CHANGED\r\n {CONFIG.RegionId === 3 ? \"ADVERTISED WALK-IN WEEKLY RATE\" : \"ADVERTISED WALK-IN RATE\"}\r\n LAST CHANGED\r\n PROMOTION\r\n LAST CHANGED\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n ]}\r\n message={{snackMSg}}\r\n\r\n />\r\n
\r\n );\r\n }\r\n}","import React from 'react';\r\nimport ReactDOM from \"react-dom\";\r\nimport { Row, Col, Dropdown, DropdownToggle, DropdownMenu, DropdownItem, Button, ButtonGroup, ButtonToolbar, TabContent, TabPane, Nav, NavItem, NavLink, Modal, ModalHeader, ModalBody, Tooltip } from 'reactstrap';\r\nimport classnames from 'classnames';\r\nimport { Link } from 'react-router-dom';\r\nimport { Table } from 'reactstrap';\r\nimport { HelpTextPopup } from '../HelpTextPopup/index';\r\nimport CommonSqFtInfoPopup from '../CommonSqFtInfoPopup/CommonSqFtInfoPopup';\r\nimport Snackbar from '@material-ui/core/Snackbar';\r\nimport CloseIcon from '@material-ui/icons/Close';\r\nimport IconButton from '@material-ui/core/IconButton';\r\n// import Table from '@material-ui/core/Table';\r\n// import TableBody from '@material-ui/core/TableBody';\r\n// import TableCell from '@material-ui/core/TableCell';\r\n// import TableRow from '@material-ui/core/TableRow';\r\nimport Breadcrumbs from '@material-ui/core/Breadcrumbs';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faList, faEye, faEyeSlash } from '@fortawesome/free-solid-svg-icons';\r\nimport { faMapPin, faStar } from '@fortawesome/free-solid-svg-icons';\r\nimport { faCheck } from '@fortawesome/free-solid-svg-icons';\r\nimport { faTimes } from '@fortawesome/free-solid-svg-icons';\r\nimport ListItemAvatar from '@material-ui/core/ListItemAvatar';\r\nimport bluepin from './../../Assets/Images/blue-pin.png';\r\nimport Avatar from '@material-ui/core/Avatar';\r\nimport './CompOverview.css';\r\nimport { Gmaps, Marker, InfoWindow } from 'react-gmaps';\r\nimport axios from 'axios';\r\nimport { CONFIG } from '../../utils/config';\r\nimport { MissingCompetitor } from '../MissingCompetitor';\r\nimport { MarketProfile } from '../MarketProfile';\r\nimport { CompetitorStore } from '../CompetitorStore';\r\nimport noImage from './../../Assets/Images/no-image.jpg';\r\nimport orangepin from './../../Assets/Images/orange-pin.png';\r\nimport NumberFormat from 'react-number-format';\r\nimport LocationOn from '@material-ui/icons/LocationOn';\r\nimport { StoreStreetView } from '../StoreStreetView';\r\nimport orangehome from './../../Assets/Images/orange-home.png';\r\nimport { config } from '@fortawesome/fontawesome-svg-core';\r\nimport { faFilePdf } from '@fortawesome/free-solid-svg-icons';\r\nimport moment from 'moment';\r\nimport TableHead from '@material-ui/core/TableHead';\r\nimport TableBody from '@material-ui/core/TableBody';\r\nimport TableCell from '@material-ui/core/TableCell';\r\nimport TableRow from '@material-ui/core/TableRow';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport InfiniteScroll from 'react-infinite-scroller';\r\n\r\nconst params = { v: '3.exp', key: CONFIG.GoogleMapsApiKey };\r\n\r\nexport class InfoWindowEx extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.onInfoWindowOpen = this.onInfoWindowOpen.bind(this);\r\n if (!this.containerElement) {\r\n this.containerElement = document.createElement(`div`);\r\n }\r\n }\r\n\r\n onInfoWindowOpen() {\r\n ReactDOM.render(\r\n React.Children.only(this.props.children),\r\n this.containerElement\r\n );\r\n this.infoWindowRef.current.infowindow.setContent(this.containerElement);\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default class CompOverviewGmap extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.MarketProfile = React.createRef();\r\n this.infoWindowRef = React.createRef();\r\n this.toggle = this.toggle.bind(this);\r\n this.handleClickOpen = this.handleClickOpen.bind(this);\r\n //this.tabsChange = this.toggle.bind(this);\r\n this.child = React.createRef();\r\n this.compstorechild = React.createRef();\r\n this.storeImageStreetView = React.createRef();\r\n this.myRef = React.createRef()\r\n this.state = {\r\n dropdownOpen: false,\r\n showingInfoWindow: false,\r\n compOverviewData: [],\r\n storeData: [],\r\n activeMarker: {},\r\n locationInfoData: [],\r\n isLoading: false,\r\n activeTab: '1',\r\n dropDownValue: \"Sort by\",\r\n sortByOrder: '1',\r\n isPdfLoading: false,\r\n centerPoint: [],\r\n snackOpen: false,\r\n snackMSg: '',\r\n snackClr: '',\r\n zoomValue: 6,\r\n hisData: false,\r\n compCount: 0,\r\n hasMoreData: false,\r\n pageStart: 1,\r\n mapData: [],\r\n unitData: []\r\n };\r\n\r\n this.getParams = this.getParams.bind(this);\r\n this.getParams1 = this.getParams1.bind(this);\r\n this.addDefaultSrcMap = this.addDefaultSrcMap.bind(this);\r\n this.mapRef = React.createRef();\r\n }\r\n\r\n getParams(name, sid) {\r\n this.child.current.toggleModal(name, sid);\r\n }\r\n\r\n getStoreStreeView(lat, lon, name) {\r\n this.storeImageStreetView.current.toggleStoreModal(lat, lon, name);\r\n }\r\n\r\n onMapCreated = (map) => {\r\n this.mapRef.current = map;\r\n map.setOptions({\r\n disableDefaultUI: true,\r\n mapTypeControl: true\r\n // defaultOptions={ zoomControl: true,fullscreenControl: false,streetViewControl: false, disableDefaultUI: false, mapTypeControl: true, }}\r\n });\r\n }\r\n\r\n tabsChange = (tab) => {\r\n if (this.state.activeTab !== tab) {\r\n this.setState({\r\n activeTab: tab\r\n }, () => {\r\n if (Number(this.state.activeTab) === 2 && this.state.mapData.length) this.setMapFitBounds(this.state.mapData);\r\n });\r\n }\r\n }\r\n\r\n NumberFormat(number) {\r\n return new Intl.NumberFormat().format(number);\r\n }\r\n\r\n // onMarkerClick = (storeId, name, address, foot, open, own, operated, lat, lng, price, image) => {\r\n // ;\r\n // let sam = [];\r\n // this.state.compOverviewData.unitData.map(test => {\r\n // if (test.storeID === storeId && test.value === 1) {\r\n // sam.push(test.unitType)\r\n // }\r\n // })\r\n // var units = sam.join(\", \");\r\n // var add = address;\r\n // var last = add.lastIndexOf(\",\");\r\n // var s1 = add.substring(0, last);\r\n // var s2 = add.substring(last + 1);\r\n // this.setState({ strImageMap: image }, () => {\r\n // this.setState({\r\n // storeId: storeId,\r\n // activeMarker: name,\r\n // storeName: name,\r\n // lat: lat,\r\n // lng: lng,\r\n // address: address ? s1 : '',\r\n // address1: address ? s2 : '',\r\n // squareFootage: foot === \"0\" ? \"N/A\" : this.NumberFormat(foot) + \" \" + CONFIG.MeasurementShortName,\r\n // opened: open === \"0\" ? \"N/A\" : open,\r\n // ownedBy: own,\r\n // operatedBy: operated,\r\n // priceChangesPercent: price == null ? \"N/A\" : price + \"% (Last 30 days)\",\r\n // imagePath: image,\r\n // unitsOffered: units != '' ? units : 'N/A',\r\n // showingInfoWindow: true,\r\n // });\r\n // });\r\n // };\r\n\r\n // open infowindow details\r\n onMarkerClick = (storeId) => {\r\n let unitData = this.state.unitData;\r\n let cCode = this.state.locationInfoData.countryCode;\r\n let Authorize = localStorage.getItem('accessKey');//this.props.Authorize;\r\n if (Authorize) {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + Authorize;\r\n }\r\n const data = {\r\n UserStoreId: parseInt(this.props.match.params.userstoreid),\r\n RegionId: CONFIG.RegionId,\r\n StoreID: storeId\r\n }\r\n axios.post(CONFIG.API_URL + 'dashboard/compsoverviewdatapointdetails', data)\r\n .then(response => {\r\n const pinPoints = response.data.data;\r\n let unitTypes = [];\r\n unitData.map(unit => {\r\n if (unit.storeID === storeId && unit.value === 1) {\r\n unitTypes.push(unit.unitType);\r\n }\r\n })\r\n var units = unitTypes.join(\", \");\r\n var address = pinPoints.storeAddress != null ? pinPoints.storeAddress : '';\r\n var last = address != '' ? address.lastIndexOf(\",\") : 0;\r\n var s1 = address != '' ? address.substring(0, last) : '';\r\n var s2 = address != '' ? address.substring(last + 1) : '';\r\n var image = pinPoints.storeImagePath != null && pinPoints.storeImagePath != '' ? pinPoints.storeImagePath : noImage;\r\n let meashotName = (cCode === \"DE\" || cCode === \"AT\" || cCode === \"CH\") ? \"sqm\" : CONFIG.MeasurementShortName;\r\n this.setState({\r\n storeId: storeId,\r\n strImageMap: image,\r\n activeMarker: pinPoints.storeName,\r\n storeName: pinPoints.storeName,\r\n lat: pinPoints.latitude,\r\n lng: pinPoints.longitude,\r\n address: address != null ? s1 : '',\r\n address1: address != null ? s2 : '',\r\n //squareFootage: pinPoints.squareFootage === \"0\" ? \"N/A\" : this.NumberFormat(pinPoints.squareFootage) + \" \" + CONFIG.MeasurementShortName,\r\n squareFootage: pinPoints.squareFootage === \"0\" ? \"N/A\" : this.NumberFormat(pinPoints.squareFootage) + \" \" + meashotName + \"\" + (pinPoints.sqFtFlag !== 2 ? \"\" : \"*\"),\r\n opened: pinPoints.opened === \"0\" ? \"N/A\" : pinPoints.opened,\r\n ownedBy: pinPoints.ownedBy,\r\n operatedBy: pinPoints.operatedBy,\r\n priceChangesPercent: pinPoints.priceChangesPercent == null ? \"N/A\" : pinPoints.priceChangesPercent + \"% (Last 30 days)\",\r\n imagePath: image,\r\n unitsOffered: unitTypes.length > 0 ? units : 'N/A',\r\n showingInfoWindow: true,\r\n });\r\n console.log(pinPoints.countryCode);\r\n })\r\n .catch(err => {\r\n if (err.response.status === 400) {\r\n if (err.response.data.Message === \"Authentication failed\") {\r\n const { from } = this.props.location.state || { from: { pathname: \"/UnauthorizedAccess\" } };\r\n this.props.history.push(from);\r\n }\r\n }\r\n else {\r\n }\r\n });\r\n\r\n };\r\n\r\n toggle() {\r\n this.setState(prevState => ({\r\n dropdownOpen: !prevState.dropdownOpen\r\n }));\r\n }\r\n\r\n onMarkerClose = () => {\r\n this.setState({ showingInfoWindow: false });\r\n }\r\n\r\n handleClickOpen(e, name) {\r\n let sortByOrder = name === \"Proximity\" ? 1 : name === \"Store Name\" ? 2 : name === \"Total Square Footage\" ? 3 : name === \"Year Built\" ? 4 : '';\r\n if (name === \"Proximity\") {//descending order--to Address origin of Market\r\n this.setState(storeData => {\r\n this.state.storeData.sort((a, b) => (a.proximity - b.proximity))\r\n });\r\n } else if (name === \"Year Built\") {//descending order--most recent first\r\n this.setState(storeData => {\r\n this.state.storeData.sort((a, b) => (b.opened - a.opened))\r\n });\r\n } else if (name === \"Total Square Footage\") {//descending order--high to low\r\n this.setState(storeData => {\r\n this.state.storeData.sort((a, b) => (b.squareFootage - a.squareFootage))\r\n });\r\n } else if (name === \"Store Name\") {//ascending order\r\n this.setState(storeData => {\r\n this.state.storeData.sort((a, b) => a.storeName !== b.storeName ? a.storeName < b.storeName ? -1 : 1 : 0);\r\n });\r\n }\r\n this.setState({\r\n dropDownValue: e.currentTarget.textContent, sortByOrder: sortByOrder\r\n })\r\n }\r\n\r\n loadDashBoard() {\r\n let token = localStorage.getItem('accessKey');\r\n const data = {\r\n \"UserStoreID\": parseInt(this.props.match.params.userstoreid),\r\n \"RegionId\": CONFIG.RegionId\r\n }\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n }\r\n axios.post(CONFIG.API_URL + 'dashboard/dashboardlocation', data)\r\n .then(response => {\r\n let zoomValue;\r\n const locationInfoData = response.data.data.storeDashboard;\r\n const centerPoint = response.data.data.centerPointDetail;\r\n if (locationInfoData.searchType === 3) {\r\n zoomValue = 10;\r\n } else if (locationInfoData.searchType === 2) {\r\n let zCnt = locationInfoData.storeZoneCoverage != \"\" && locationInfoData.storeZoneCoverage != null ? (locationInfoData.storeZoneCoverage.split(\",\").length - 1) : 1;\r\n zoomValue = (zCnt > 1) ? 9 : (zCnt > 0) ? 10 : 12;\r\n } else if (locationInfoData.searchType === 1) {\r\n let storeZoneCoverage = locationInfoData.storeZoneCoverage.split(' ');\r\n zoomValue = (storeZoneCoverage[0] === '1' || storeZoneCoverage[0] === '2' || storeZoneCoverage[0] === '3') ? 13 : (storeZoneCoverage[0] === '4' || storeZoneCoverage[0] === '5' || storeZoneCoverage[0] === '6') ? 12 : (storeZoneCoverage[0] === '6' || storeZoneCoverage[0] === '7') ? 11 : (storeZoneCoverage[0] === '8' || storeZoneCoverage[0] === '9' || storeZoneCoverage[0] === '10') ? 10 : 6;\r\n }\r\n this.setState({\r\n locationInfoData: locationInfoData, zoomValue, centerPoint\r\n })\r\n }).catch((err) => {\r\n if (err.response.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else if (err.response.status === 403) {\r\n const { from } = this.props.location.state || { from: { pathname: \"/UnauthorizedAccess\" } };\r\n this.props.history.push(from);\r\n }\r\n else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }\r\n\r\n compOverview() {\r\n const data = {\r\n \"UserStoreID\": parseInt(this.props.match.params.userstoreid),\r\n \"RegionId\": CONFIG.RegionId\r\n }\r\n let token = localStorage.getItem('accessKey');\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n }\r\n axios.post(CONFIG.API_URL + 'dashboard/compsoverviewdata', data)\r\n .then(res => {\r\n const compOverviewData = res.data.data;\r\n const storeData = compOverviewData.storeData;\r\n this.setState({ compOverviewData: compOverviewData, storeData: storeData, isLoading: false });\r\n })\r\n .catch((err) => {\r\n this.setState({ isLoading: false });\r\n if (err.response.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else if (err.response.status === 403) {\r\n const { from } = this.props.location.state || { from: { pathname: \"/UnauthorizedAccess\" } };\r\n this.props.history.push(from);\r\n }\r\n else if (err.response.status === 400) {\r\n alert(err.response.data.Message);\r\n }\r\n else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }\r\n\r\n addDefaultSrc(ev) {\r\n if (ev.target.src != null) {\r\n var imageName = require('./../../Assets/Images/no-image.jpg');\r\n ev.target.src = imageName;\r\n ev.target.className = \"noimages Unit-Store-Img\";\r\n }\r\n }\r\n\r\n addDefaultSrcMap(ev) {\r\n if (ev.target.src != null) {\r\n var imageName = require('./../../Assets/Images/no-image.jpg');\r\n ev.target.src = imageName;\r\n this.setState({ imagePath: noImage });\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n // this.setState({ isLoading: true });\r\n this.loadDashBoard();\r\n //this.compOverview();\r\n this.loadStoreList();\r\n this.loadMapData();\r\n }\r\n\r\n getParams1(storeAddress) {\r\n let storeId = parseInt(this.props.match.params.userstoreid);\r\n this.compstorechild.current.toggleStoreModal(storeAddress, storeId);\r\n }\r\n downLoadPDF() {\r\n this.setState({\r\n // isLoading: true,\r\n isPdfLoading: false\r\n });\r\n var currentDate = moment(new Date()).format(\"DD-MMM-YYYY\");\r\n let pta = this.state.sortByOrder;\r\n let usId = parseInt(this.props.match.params.userstoreid);\r\n let accessKey = localStorage.getItem('SecretKey');\r\n var timestamp = new Date().getDate() + \"\" + new Date().getMonth() + \"\" + new Date().getFullYear() + \"\" + new Date().getTime();\r\n //construct filename for pdf report.\r\n var fileName = usId + \"CompOverView\" + \"_\" + timestamp + \".pdf\";\r\n var stoName = this.state.locationInfoData && this.state.locationInfoData.storeName !== null && this.state.locationInfoData.storeName !== '' && this.state.locationInfoData.storeName !== undefined ? this.state.locationInfoData.storeName : 'Your Store';\r\n var fileNamePdf = stoName + '_' + \"Competitor-Overview\" + '_' + currentDate + \".pdf\";\r\n this.setState({ snackClr: 'snack-info', snackOpen: true, snackMSg: 'Your download is being processed. The ' + fileNamePdf + ' file will download automatically to your browser when ready and Please do not close or reload the pages until download completes. We recommend you check your Downloads folder if you don’t see it in your browser.' });\r\n let ComponentName = 2;\r\n const Input = {\r\n \"RegionID\": CONFIG.RegionId,\r\n \"URL\": CONFIG.OPTZ_URL + \"render-pdf/\" + accessKey + '/' + ComponentName + '/0/' + usId + '/' + pta + \"/\",\r\n \"FileName\": fileName,\r\n }\r\n // axios.post(CONFIG.API_URL + 'dashboard/generatepdfbypage', Input)\r\n axios(\r\n {\r\n url: CONFIG.API_URL + 'dashboard/generatepdfbypage',\r\n method: 'post',\r\n responseType: 'blob',\r\n data: Input\r\n })\r\n .then(response => {\r\n const blob = new Blob([response.data], { type: 'application/octet-stream' });\r\n const link = document.createElement('a');\r\n link.href = window.URL.createObjectURL(blob);\r\n link.download = fileNamePdf;\r\n link.dispatchEvent(\r\n new MouseEvent('click', {\r\n bubbles: true,\r\n cancelable: true,\r\n view: window\r\n })\r\n );\r\n setTimeout(() => {\r\n // For Firefox it is necessary to delay revoking the ObjectURL\r\n window.URL.revokeObjectURL(link.href);\r\n link.remove();\r\n }, 3000);\r\n this.setState({ isLoading: false });\r\n })\r\n .catch((err) => {\r\n this.setState({ isLoading: false });\r\n })\r\n }\r\n snackHandleclose = (event, reason) => {\r\n if (reason === 'clickaway') {\r\n return;\r\n }\r\n this.setState({ snackOpen: false });\r\n };\r\n\r\n historicModal = (name, id) => {\r\n this.child.current.compModal(name, id);\r\n }\r\n\r\n //historical data modal popup\r\n historicalModalOpen() {\r\n this.setState(state => ({ hisData: !state.hisData }));\r\n }\r\n // close historicall modal \r\n cancelHisData = () => this.setState(state => ({ hisData: !state.hisData }))\r\n\r\n //loading all storelist using lazyload\r\n loadLazzyData() {\r\n let page = this.state.pageStart;\r\n let countCheck = (this.state.compCount / 10).toString();\r\n let pageCount = this.state.compCount / 10;\r\n let storeCount = countCheck.indexOf('.') != -1 ? parseInt(pageCount) + 1 : pageCount;\r\n if (page <= storeCount) {\r\n let Authorize = localStorage.getItem('accessKey');//this.props.Authorize;\r\n if (Authorize) {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + Authorize;\r\n }\r\n const data = {\r\n \"UserStoreID\": parseInt(this.props.match.params.userstoreid),\r\n \"RegionId\": CONFIG.RegionId,\r\n \"PageNo\": page\r\n }\r\n\r\n axios.post(CONFIG.API_URL + 'dashboard/compsoverviewdata', data)\r\n .then(response => {\r\n let prevStoreData = [...this.state.storeData];\r\n let newStoreData = prevStoreData.concat(response.data.data.storeData);\r\n let prevUnitData = [...this.state.unitData];\r\n let newUnitData = prevUnitData.concat(response.data.data.unitData);\r\n this.setState({ storeData: newStoreData, unitData: newUnitData, pageStart: page + 1 }, () => {\r\n this.loadLazzyData();\r\n });\r\n })\r\n .catch(err => {\r\n if (err.response.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else if (err.response.status === 403) {\r\n const { from } = this.props.location.state || { from: { pathname: \"/UnauthorizedAccess\" } };\r\n this.props.history.push(from);\r\n }\r\n else if (err.response.status === 400) {\r\n alert(err.response.data.Message);\r\n }\r\n else {\r\n alert(err.response.data);\r\n }\r\n });\r\n } else {\r\n this.setState({ hasMoreData: false });\r\n }\r\n }\r\n\r\n //All Store List\r\n loadStoreList() {\r\n this.setState({ isLoading: true });\r\n const data = {\r\n \"UserStoreID\": parseInt(this.props.match.params.userstoreid),\r\n \"RegionId\": CONFIG.RegionId,\r\n \"PageNo\": this.state.pageStart\r\n }\r\n let Authorize = localStorage.getItem('accessKey');//this.props.Authorize;\r\n if (Authorize) {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + Authorize;\r\n }\r\n\r\n axios.post(CONFIG.API_URL + 'dashboard/compsoverviewdata', data)\r\n .then(response => {\r\n let compOverviewData = response.data.data;\r\n let unitData = response.data.data.unitData;\r\n let storeData = response.data.data.storeData;\r\n let compCount = response.data.data.overViewInfo.compsCount;\r\n this.setState({ unitData, compOverviewData, storeData, isLoading: false, compCount, hasMoreData: true, pageStart: 2 }, () => {\r\n this.loadLazzyData();\r\n });\r\n })\r\n .catch(err => {\r\n this.setState({ isLoading: false });\r\n if (err.response.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else if (err.response.status === 403) {\r\n const { from } = this.props.location.state || { from: { pathname: \"/UnauthorizedAccess\" } };\r\n this.props.history.push(from);\r\n }\r\n else if (err.response.status === 400) {\r\n alert(err.response.data.Message);\r\n }\r\n else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }\r\n\r\n setMapFitBounds = (mapData) => {\r\n let bounds = new window.google.maps.LatLngBounds();\r\n for (let i = 0; i < mapData.length; i++) {\r\n let loc = new window.google.maps.LatLng(mapData[i].latitude, mapData[i].longitude);\r\n bounds.extend(loc);\r\n }\r\n let homeLoc = new window.google.maps.LatLng(this.state.locationInfoData.latitude, this.state.locationInfoData.longitude);\r\n bounds.extend(homeLoc);\r\n this.mapRef.current.fitBounds(bounds);\r\n }\r\n\r\n //load map pinpoints\r\n loadMapData() {\r\n const data = {\r\n \"UserStoreID\": parseInt(this.props.match.params.userstoreid),\r\n \"RegionId\": CONFIG.RegionId,\r\n \"IsMapBox\": CONFIG.IsMapbox,\r\n }\r\n let token = localStorage.getItem('accessKey');\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n }\r\n axios.post(CONFIG.API_URL + 'dashboard/compsoverviewdatapoint', data)\r\n .then(res => {\r\n const mapData = res.data.data;\r\n this.setState({ mapData });\r\n // this.setState({ compOverviewData: compOverviewData, storeData: storeData, isLoading: false });\r\n })\r\n .catch((err) => {\r\n this.setState({ isLoading: false });\r\n if (err.response.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else if (err.response.status === 403) {\r\n const { from } = this.props.location.state || { from: { pathname: \"/UnauthorizedAccess\" } };\r\n this.props.history.push(from);\r\n }\r\n else if (err.response.status === 400) {\r\n alert(err.response.data.Message);\r\n }\r\n else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }\r\n\r\n render() {\r\n document.title = 'StorTrack: Self-storage market pricing data';\r\n const { locationInfoData, isLoading, strImageMap, pageCount, sortByOrder, isPdfLoading, snackOpen, snackMSg } = this.state;\r\n const { compOverviewData, storeData, centerPoint, zoomValue, hisData, hasMoreData, mapData, unitData } = this.state;\r\n const infoWindowContent = '' + '
' + this.state.storeName + '

' + this.state.address + ',
' + this.state.address1 + '

' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '
' + ((this.state.locationInfoData.countryCode === \"DE\" || this.state.locationInfoData.countryCode === \"AT\" || this.state.locationInfoData.countryCode === \"CH\") ? \"Total Square Metre\" : CONFIG.MeasurementLabel) + '' + this.state.squareFootage + '
Opened' + this.state.opened + '
Owned by' + this.state.ownedBy + '
Operated by' + this.state.operatedBy + '
Price Volatility' + this.state.priceChangesPercent + '
Units Offered' + this.state.unitsOffered + '
';\r\n const defaultProps = {\r\n helpTitle: \"Competitor Overview\",\r\n helpContent: \"

Learn more about the stores in this Market. What are they advertising? Are they pricing aggressively? How big is their facility? etc.

Store Types

At the top of the page you will find a breakdown of the types of stores in this Market

Real Estate Investment Trust (REIT) Stores

Any stores operated by the following companies:

  • Public Storage
  • Extra Space
  • LifeStorage
  • Cubesmart
  • National Storage Affiliates
  • Global Self Storage
Multi Store Operators (Multi-Ops)

Companies operating more than 2 stores

Single Store Operators (Single-Ops)

Companies (typically independent operators) managing a single store

Competitor Overview
  • This grid below shows each store in this Market. Each store 'snapshot' shows the store name, address and proximity to your store. Further, it includes the building's square footage (derived from public sources or in some instances from calculations made by StorTrack's data science team).
  • You will also find ownership and management information and store age.
How aggressive is this store/competitor?
  • Pricing volatility is a major indicator of how aggressive or passive a store or Market is with their pricing. A store which frequently raises or lowers their rates, will typically have a higher pricing volatility. Here you can view the pricing volatility for a store over the last 30 days.
  • Pricing Volatility is calculated by taking the number of times a pricing change occurred over the last 30 days for that store.
Unit Availability
  • For each store we show 11 of the most common unit types. This is meant to give you a quick snapshot of the unit types each store in this Market is advertising.
  • The green checkmark means this unit type is currently advertised by this store
  • The red x means this store has not advertised this unit type in the last 12 months
  • The grey icon means this store has advertised this unit type in the last 12 months, but it is not currently advertising it
Street View

Hover over the store's image to view a Google Map snapshot of this facility

Map View of Stores

Click on the map pin point icon on the upper right corner to view a map of all the stores in your Market

Refer the below help video for more information.

\"\r\n }\r\n\r\n return (\r\n
\r\n \r\n {isLoading ?
: ''}\r\n
\"No
\r\n \r\n\r\n\r\n {localStorage.getItem('isMVP_User') === \"false\" ? My Markets : \"\"}\r\n\r\n Go to Market Dashboard\r\n\r\n Competitor Overview\r\n \r\n\r\n {/* Download Pdf */}\r\n \r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n

Competitor Overview

\r\n \r\n {isLoading && (locationInfoData.compsCount === 0 || locationInfoData.compsCount === null) ? '' : locationInfoData.compsCount === 0 || locationInfoData.compsCount === null ?

Analyzing N/A

:\r\n

Analyzing this.getParams1(locationInfoData)}>{locationInfoData ? parseInt(locationInfoData.compsCount) > 1 ? locationInfoData.compsCount + ' stores' : locationInfoData.compsCount + ' store' : 'N/A'}

\r\n }\r\n \r\n {isPdfLoading === false || isLoading === false ?\r\n \r\n

{locationInfoData && locationInfoData.storeName && locationInfoData.storeName !== null && locationInfoData.storeName !== undefined ? locationInfoData.storeName : 'Your Store'}

\r\n
24 ? \"pd-btm-35\" : \"pd-btm-20\" : \"pd-btm-20\"}>

{locationInfoData && locationInfoData.storeAddress1 && locationInfoData.storeAddress1 !== null && locationInfoData.storeAddress1 !== '' ? locationInfoData.storeAddress1 + ',' : ''} {locationInfoData.storeAddress2 ? locationInfoData.storeAddress2 + ', ' : ''} {locationInfoData && locationInfoData.storeCity ? locationInfoData.storeCity + ', ' : locationInfoData.searchType === 1 && (locationInfoData.storeCity === '' || locationInfoData.storeCity === null) && (locationInfoData.storeZipCode === '' || locationInfoData.storeZipCode === null) ? locationInfoData.latitude + ', ' + locationInfoData.longitude + ', ' : ''}{locationInfoData.storeState ? locationInfoData.storeState : ''} {locationInfoData ? locationInfoData.storeZipCode : 'N/A'}

\r\n

Coverage: {locationInfoData ? locationInfoData.storeZoneCoverage : 'N/A'}

\r\n : ''}\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n

No. of Stores

\r\n
{compOverviewData.overViewInfo ? compOverviewData.overViewInfo.compsCount : isLoading === false ? 'N/A' : ''}
\r\n \r\n {locationInfoData.countryCode == \"US\" ?\r\n \r\n

No. of REIT's

\r\n
{compOverviewData.overViewInfo ? compOverviewData.overViewInfo.reits : isLoading === false ? 'N/A' : ''}
\r\n \r\n : ''}\r\n \r\n

No. of Multi-Ops

\r\n
{compOverviewData.overViewInfo ? compOverviewData.overViewInfo.multiOps : isLoading === false ? 'N/A' : ''}
\r\n \r\n \r\n

No. of Single-Ops

\r\n
{compOverviewData.overViewInfo ? compOverviewData.overViewInfo.singleOps : isLoading === false ? 'N/A' : ''}
\r\n \r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n {this.state.activeTab !== \"1\" ? '' :\r\n \r\n \r\n {this.state.dropDownValue}\r\n \r\n \r\n this.handleClickOpen(e, \"Store Name\")}>Store Name\r\n this.handleClickOpen(e, \"Year Built\")}>Year Built\r\n this.handleClickOpen(e, \"Total Square Footage\")}>{(this.state.locationInfoData.countryCode === \"DE\" || this.state.locationInfoData.countryCode === \"AT\" || this.state.locationInfoData.countryCode === \"CH\") ? \"Total Square Metre\" : CONFIG.MeasurementLabel.toLowerCase() == 'total square feet' ? 'Total Square Footage' : CONFIG.MeasurementLabel}\r\n this.handleClickOpen(e, \"Proximity\")}>Proximity\r\n \r\n \r\n }\r\n \r\n \r\n
\r\n

{(this.state.locationInfoData.countryCode === \"DE\" || this.state.locationInfoData.countryCode === \"AT\" || this.state.locationInfoData.countryCode === \"CH\") ? \"Total Square Metre\" : CONFIG.MeasurementLabel} values displayed here are obtained from public sources, including city and county property records. When this information is unavailable, StorTrack uses mapping tools or internal models to estimate the size of the property - such properties have an asterisk (*) next to their {(this.state.locationInfoData.countryCode === \"DE\" || this.state.locationInfoData.countryCode === \"AT\" || this.state.locationInfoData.countryCode === \"CH\") ? \"Total Square Metre\" : CONFIG.MeasurementLabel} value.

\r\n
\r\n {/*

* The {CONFIG.MeasurementLabel} values are obtained from publicly available sources. In instances where this information is unavailable, our team has used different methods to calculate the size of the property.

*/}\r\n \r\n
\r\n {/* List view grid */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Pricing available for this unit type Pricing not available for this unit type Pricing previously available, but not currently advertised Your Store
\r\n \r\n {/* this.loadLazzyData()} hasMore={hasMoreData} useWindow={false} > */}\r\n
\r\n \r\n \r\n \r\n {compOverviewData && storeData.length != 0 ? storeData.map((strdata) =>\r\n \r\n \r\n \r\n ) :\r\n \r\n \r\n \r\n }\r\n \r\n
\r\n \r\n {/* \r\n \r\n \r\n this.getStoreStreeView(strdata.latitude, strdata.longitude, strdata.storeName)} title=\"click here to view street view\">\r\n \r\n {strdata.StoreImage != '' ? \"No : ''}\r\n \r\n \r\n \r\n \r\n \r\n

{strdata.isUserStore == 1 ? : ''} this.getParams(strdata.storeName, strdata.storeID)}>{strdata.storeName} {strdata.proximity != 0 ? {strdata.proximity} {(CONFIG.RegionId == 2) || (CONFIG.RegionId == 4) ? 'kilometre' : 'mile'}{strdata.proximity <= 1 ? '' : 's'} : ''}

\r\n

{strdata.storeAddress}

\r\n \r\n \r\n \r\n
{strdata.squareFootage == \"0\" ? \"N/A\" : this.NumberFormat(strdata.squareFootage) + \" \" + CONFIG.MeasurementShortName}
\r\n
{strdata.opened == \"0\" ? \"N/A\" : strdata.opened}
\r\n \r\n {strdata.ownedBy}
\r\n
{strdata.operatedBy}
\r\n \r\n \r\n \r\n */}\r\n \r\n \r\n \r\n {/* */}\r\n

{strdata.isUserStore == 1 ? : ''} this.getParams(strdata.storeName, strdata.storeID)}*/>{strdata.storeName} {strdata.proximity != 0 ? {strdata.proximity} mile{strdata.proximity <= 1 ? '' : 's'} : ''}

\r\n

{strdata.storeAddress}

\r\n \r\n \r\n
{strdata.squareFootage == \"0\" ? \"N/A\" : this.NumberFormat(strdata.squareFootage) + \" \" + ((this.state.locationInfoData.countryCode === \"DE\" || this.state.locationInfoData.countryCode === \"AT\" || this.state.locationInfoData.countryCode === \"CH\") ? \"sqm\" : CONFIG.MeasurementShortName)}{(strdata.sqFtFlag == 2 && strdata.squareFootage !== \"0\") ? * : ''}
\r\n
{strdata.opened == \"0\" ? \"N/A\" : strdata.opened}
\r\n \r\n {strdata.ownedBy}
\r\n
{strdata.operatedBy}
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
{strdata.priceChangesPercent != null ? {strdata.priceChangesPercent}% : N/A}
\r\n

Last 30 days

\r\n
\r\n
\r\n
\r\n
\r\n {/*
{strdata.priceChangesPercent != null ? {strdata.priceChangesPercent}% : N/A}
\r\n

Last 30 days

*/}\r\n
{strdata.priceChangesPercent !== null ? {strdata.priceChangesPercent}% : N/A}
\r\n

Last 30 days

\r\n
\r\n {strdata.lastVerified && strdata.lastVerified !== null ? {moment(strdata.lastVerified).format('DD-MMM-YYYY')} : N/A}\r\n
\r\n
\r\n
\r\n \r\n {/* {strdata && strdata.storeURL && strdata.storeURL != \"\" ? */}\r\n {/*
See historical data
*/}\r\n
{ this.historicModal(strdata.storeName, strdata.storeID) }} className=\"street-view_see-web\">See historical data
\r\n {strdata && strdata.storeURL && strdata.storeURL != \"\" ?\r\n \r\n : ''}\r\n
\r\n \r\n \r\n {/* \r\n {compOverviewData.unitData ? compOverviewData.unitData.map((untdata) =>\r\n strdata.storeID === untdata.storeID ?\r\n \r\n : ''\r\n ) : ''}\r\n */}\r\n \r\n {unitData.length > 0 && unitData.filter(untdata => untdata.storeID == strdata.storeID).map(untdata => {\r\n return (\r\n \r\n );\r\n })}\r\n \r\n \r\n
\r\n

{untdata.unitType}

\r\n

{untdata.value === 1 ? : untdata.value === -1 ? : }

\r\n
\r\n

{untdata.unitType}

\r\n

{untdata.value === 1 ? : untdata.value === -1 ? : }

\r\n
\r\n
{isLoading === false ? 'There are no competitors available in this market' : ''}
\r\n {/*
*/}\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n 0 && centerPoint[0].latitude != null) ? centerPoint[0].latitude : locationInfoData.latitude}\r\n lng={centerPoint && (centerPoint.length > 0 && centerPoint[0].longitude != null) ? centerPoint[0].longitude : locationInfoData.longitude}\r\n // lat={30.009415}\r\n //lng={-90.15429}\r\n zoom={zoomValue}\r\n params={params}\r\n zoomControl={true}\r\n mapTypeControl={true}\r\n onMapCreated={this.onMapCreated}>\r\n \r\n {/* {compOverviewData ? storeData.map((map) => */}\r\n {mapData && mapData.length > 0 ? mapData.map((map) =>\r\n this.onMarkerClick(map.storeID, map.storeName, map.storeAddress, map.squareFootage, map.opened, map.ownedBy, map.operatedBy, map.latitude, map.longitude, map.priceChangesPercent, map.storeImagePath)}\r\n onClick={() => this.onMarkerClick(map.storeID)}\r\n />\r\n ) : ''}\r\n {this.state.showingInfoWindow && this.state.activeMarker != '' ?\r\n this.onMarkerClose()}\r\n />\r\n : ''}\r\n \r\n \r\n \r\n \r\n
Your Store
\r\n
Competitor
\r\n
\r\n \r\n
\r\n
\r\n
\r\n {/* \r\n \r\n \r\n \r\n {compOverviewData ? storeData.map((strdata) =>\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n

{strdata.storeName} {strdata.proximity} miles

\r\n

{strdata.storeAddress}

\r\n \r\n \r\n \r\n \r\n

Total square feet {strdata.squareFootage}.

\r\n

Opened {strdata.opened}

\r\n
\r\n \r\n

Owned by {strdata.ownedBy}

\r\n

Operated by {strdata.operatedBy}

\r\n
\r\n \r\n

Price Volitality {strdata.priceChangesPercent} %

\r\n

Last 30 days

\r\n
\r\n \r\n \r\n {compOverviewData.unitData ? compOverviewData.unitData.map((untdata) =>\r\n strdata.storeID === untdata.competitorID ? \r\n \r\n

{untdata.units}

\r\n

{untdata.value === 1 ? : }

\r\n
\r\n :''\r\n ) : ''}\r\n
\r\n \r\n
\r\n \r\n \r\n ) : ''} \r\n \r\n \r\n \r\n
*/}\r\n {/* Map view grid */}\r\n {/* \r\n \r\n \r\n {compOverviewData ? storeData.map((map) =>\r\n this.onMarkerClick(map.storeID,map.storeName,map.storeAddress,map.squareFootage,map.opened,map.ownedBy,map.operatedBy,map.latitude,map.longitude,map.priceChangesPercent)}\r\n />\r\n ) : ''} \r\n {this.state.showingInfoWindow && this.state.activeMarker !='' ?\r\n \r\n : ''}\r\n \r\n \r\n */}\r\n \r\n
\r\n \r\n Historical Marketing and Pricing Information\r\n \r\n \r\n Market Details:\r\n Lat Checked:\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n SPACE TYPE\r\n SIZE\r\n FLOOR\r\n FEATURES\r\n {CONFIG.RegionId === 3 ? \"ADVERTISED ONLINE WEEKLY RATE\" : \"ADVERTISED ONLINE RATE\"}\r\n LAST CHANGED\r\n {CONFIG.RegionId === 3 ? \"ADVERTISED WALK-IN WEEKLY RATE\" : \"ADVERTISED WALK-IN RATE\"}\r\n LAST CHANGED\r\n PROMOTION\r\n LAST CHANGED\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n ]}\r\n message={{snackMSg}}\r\n\r\n />\r\n
\r\n );\r\n }\r\n}","import React, { Component } from \"react\";\r\nimport \"./AllUnitPrize.css\";\r\nimport Table from \"@material-ui/core/Table\";\r\nimport TableBody from \"@material-ui/core/TableBody\";\r\nimport TableCell from \"@material-ui/core/TableCell\";\r\nimport TableHead from \"@material-ui/core/TableHead\";\r\nimport TableRow from \"@material-ui/core/TableRow\";\r\nimport Breadcrumbs from \"@material-ui/core/Breadcrumbs\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport { HelpTextPopup } from \"./../HelpTextPopup/index\";\r\nimport { faFilePdf } from \"@fortawesome/free-solid-svg-icons\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport Paper from \"@material-ui/core/Paper\";\r\nimport {\r\n Col,\r\n Row,\r\n Dropdown,\r\n DropdownToggle,\r\n DropdownMenu,\r\n DropdownItem,\r\n Button,\r\n} from \"reactstrap\";\r\nimport { HashLink as Link } from \"react-router-hash-link\";\r\nimport shows from \"./../../Assets/Images/show.png\";\r\nimport hiddens from \"./../../Assets/Images/unshow.png\";\r\nimport { CONFIG } from \"../../utils/config\";\r\nimport axios from \"axios\";\r\nimport Snackbar from \"@material-ui/core/Snackbar\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\nimport { CompetitorStore } from \"../CompetitorStore\";\r\nimport Popover from \"@material-ui/core/Popover\";\r\nimport { StoreStreetView } from \"../StoreStreetView\";\r\nimport moment from \"moment\";\r\nimport Chart from \"react-apexcharts\"\r\n\r\nexport default class AllUnitPrize extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.child = React.createRef();\r\n this.storeImageStreetView = React.createRef();\r\n\r\n this.state = {\r\n options: {\r\n chart: {\r\n type: 'rangeBar',\r\n toolbar: {\r\n tools: {\r\n download: false,\r\n }\r\n }\r\n },\r\n dataLabels: {\r\n enabled: false\r\n },\r\n grid: {\r\n show: false, \r\n },\r\n fill: {\r\n type: \"solid\",\r\n opacity: 0.6\r\n },\r\n stroke: {\r\n width: 2\r\n },\r\n yaxis: {\r\n show: false,\r\n },\r\n xaxis: {\r\n show: false,\r\n labels: {\r\n show: false,\r\n },\r\n axisBorder: {\r\n show: false\r\n },\r\n axisTicks: {\r\n show: false\r\n }\r\n },\r\n noData: {\r\n text: \"Please wait for the data to be loaded. The data volume is high and this might take a minute for loading the data.\",\r\n verticalAlign: 'top',\r\n style: {\r\n color: \"#5b95f6\",\r\n fontSize: '13px',\r\n fontFamily: \"Helvetica\"\r\n }\r\n },\r\n },\r\n series: [\r\n {\r\n name: \"Your Store\",\r\n data: []\r\n },\r\n {\r\n name: \"Market Average\",\r\n data: []\r\n }, {\r\n name: '',\r\n data: []\r\n }\r\n ],\r\n pricing: \"\",\r\n comparisons: \"\",\r\n storeAddress: \"\",\r\n market: \"\",\r\n myStore: \"\",\r\n compitator: \"\",\r\n gmyStore: \"\",\r\n gcompitator: \"\",\r\n compitatorAll: \"\",\r\n dropdownOpen: false,\r\n isShowGraph: [],\r\n isRemoveGraph: [],\r\n isShowGraph1: [],\r\n isRemoveGraph1: [],\r\n isSelectStoreId: [],\r\n isLoading: false,\r\n yGroupMax: \"\",\r\n myStoreID: \"\",\r\n alwaysMyStoreID: \"\",\r\n snackOpen: false,\r\n snackMSg: \"\",\r\n dropDownValue: \"Sort by\",\r\n anchorEl: null,\r\n markets1: \"\",\r\n sIdPDF: \"\",\r\n typePDF: \"\",\r\n storePlace: \"\",\r\n snackClr: \"\",\r\n isNoGraphData: false,\r\n };\r\n this.toggle = this.toggle.bind(this);\r\n this.handleClickOpen = this.handleClickOpen.bind(this);\r\n this.getParams = this.getParams.bind(this);\r\n this.mouseOut = this.mouseOut.bind(this);\r\n this.handlePopoverOpen = this.handlePopoverOpen.bind(this);\r\n }\r\n\r\n handlePopoverOpen(e, str) {\r\n this.setState({\r\n anchorEl: e.currentTarget,\r\n mStr: str,\r\n });\r\n }\r\n\r\n mouseOut(str) {\r\n if (this.state.mStr == str) {\r\n this.setState({ anchorEl: null });\r\n }\r\n }\r\n\r\n getParams(storeAddress) {\r\n let storeId = parseInt(this.props.match.params.userstoreid);\r\n this.child.current.toggleStoreModal(storeAddress, storeId);\r\n }\r\n\r\n addDefaultSrc(ev) {\r\n if (ev.target.src != null) {\r\n var imageName = require(\"./../../Assets/Images/no-image.jpg\");\r\n ev.target.src = imageName;\r\n ev.target.className = \"noimages Unit-Store-Img cus-h-w-set\";\r\n }\r\n }\r\n\r\n getStoreStreeView(lat, lon, name) {\r\n this.storeImageStreetView.current.toggleStoreModal(lat, lon, name);\r\n }\r\n\r\n componentDidMount() {\r\n this.setState({\r\n isLoading: true,\r\n });\r\n let isShowGraph = [];\r\n let isRemoveGraph = [];\r\n let isShowGraph1 = [];\r\n let isRemoveGraph1 = [];\r\n let token = localStorage.getItem(\"accessKey\");\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = \"Bearer \" + token;\r\n }\r\n\r\n const data = {\r\n UserStoreID: parseInt(this.props.match.params.userstoreid),\r\n RegionId: CONFIG.RegionId,\r\n };\r\n\r\n axios\r\n .post(CONFIG.API_URL + \"dashboard/pricingcomparision\", data)\r\n .then((res) => {\r\n let pricing = res.data.data.pricings;\r\n let comparisons = res.data.data.comparisons;\r\n this.setState({ pricing });\r\n this.setState({ comparisons });\r\n\r\n var market = comparisons.filter(function (m) {\r\n return m.storeID == 0;\r\n });\r\n\r\n var markets1 = market.filter(function (m1) {\r\n return m1.storeID == 0 && m1.priceFrom > 0 && m1.priceTo > 0;\r\n });\r\n\r\n this.setState({ market });\r\n\r\n var myStore = comparisons.filter(function (ms) {\r\n return ms.storeID > 0 && ms.isMyStore == 1;\r\n });\r\n var compitator = comparisons.filter(function (c) {\r\n return c.storeID > 0 && c.isMyStore != 1;\r\n });\r\n\r\n var compitatorAll = comparisons.filter(function (c) {\r\n return c.storeID > 0 && c.isMyStore != 1;\r\n });\r\n let alwaysMyStoreID = myStore.length > 0 ? myStore[0].storeID : 0;\r\n let myStoreID = myStore.length > 0 ? myStore[0].storeID : 0;\r\n myStore\r\n .filter((e) => e.isSelected === false)\r\n .forEach(function (e) {\r\n isShowGraph1.push(e.storeID);\r\n });\r\n myStore\r\n .filter((e) => e.isSelected === true)\r\n .forEach(function (e) {\r\n isRemoveGraph1.push(e.storeID);\r\n });\r\n compitatorAll\r\n .filter((e) => e.isSelected === false)\r\n .forEach(function (e) {\r\n isShowGraph1.push(e.storeID);\r\n });\r\n compitatorAll\r\n .filter((e) => e.isSelected === true)\r\n .forEach(function (e) {\r\n isRemoveGraph1.push(e.storeID);\r\n });\r\n var gmyStore = myStore.filter(function (ms) {\r\n return ms.isSelected === true;\r\n });\r\n var gcompitator = compitator.filter(function (ms) {\r\n return ms.isSelected === true;\r\n });\r\n this.setState({\r\n myStore,\r\n gmyStore: myStore,\r\n gcompitator,\r\n gcompitator: gcompitator,\r\n alwaysMyStoreID,\r\n myStoreID,\r\n });\r\n\r\n this.setState({ compitatorAll });\r\n\r\n isShowGraph = [...new Set(isShowGraph1.map((item) => item))];\r\n isRemoveGraph = [...new Set(isRemoveGraph1.map((item) => item))];\r\n\r\n if (isShowGraph === undefined) {\r\n isShowGraph = [];\r\n }\r\n if (isRemoveGraph === undefined) {\r\n isRemoveGraph = [];\r\n }\r\n\r\n\r\n this.setState({\r\n isShowGraph,\r\n isRemoveGraph,\r\n isShowGraph1,\r\n isRemoveGraph1,\r\n });\r\n const data1 = {\r\n UserStoreID: parseInt(this.props.match.params.userstoreid),\r\n RegionId: CONFIG.RegionId,\r\n };\r\n axios\r\n .post(CONFIG.API_URL + \"dashboard/dashboardlocation/\", data1)\r\n .then((res) => {\r\n let storeAddress = res.data.data.storeDashboard;\r\n this.setState({ storeAddress });\r\n if (\r\n market.length > 0 ||\r\n gmyStore.length > 0 ||\r\n gcompitator.length > 0\r\n ) {\r\n if (gmyStore.length > 0) {\r\n this.multiSeriesGraph(gmyStore, gcompitator);\r\n } else {\r\n let compid = [...new Set(gcompitator.map((item) => item.storeID))];\r\n if (compid.length > 1) {\r\n gmyStore = gcompitator.filter(function (m) {\r\n return m.storeID === compid[0];\r\n });\r\n gcompitator = gcompitator.filter(function (m) {\r\n return m.storeID === compid[1];\r\n });\r\n }\r\n this.multiSeriesGraph(gmyStore, gcompitator);\r\n }\r\n }\r\n })\r\n .catch((err) => {\r\n this.setState({ isLoading: false });\r\n if (err.response.status === 401) {\r\n localStorage.removeItem(\"accessKey\");\r\n const { from } = this.props.location.state || {\r\n from: { pathname: \"/\" },\r\n };\r\n this.props.history.push(from);\r\n } else if (err.response.status === 403) {\r\n const { from } = this.props.location.state || {\r\n from: { pathname: \"/UnauthorizedAccess\" },\r\n };\r\n this.props.history.push(from);\r\n } else {\r\n alert(err.response.data);\r\n }\r\n });\r\n this.setState({ isLoading: false });\r\n })\r\n .catch((err) => {\r\n if (err.response.status === 403) {\r\n const { from } = this.props.location.state || {\r\n from: { pathname: \"/UnauthorizedAccess\" },\r\n };\r\n this.props.history.push(from);\r\n } else {\r\n this.setState({ isLoading: false });\r\n this.setState({ snackOpen: true, snackMSg: err });\r\n }\r\n });\r\n }\r\n\r\n\r\n showGraph(sId, type) {\r\n this.state.sIdPDF = sId;\r\n this.state.typePDF = type;\r\n const isShowGraph = this.state.isShowGraph;\r\n const isRemoveGraph = this.state.isRemoveGraph;\r\n let index;\r\n //Remove Graph\r\n if (type === 1) {\r\n if (sId === this.state.myStoreID) {\r\n this.setState({ myStoreID: 0 });\r\n }\r\n if (isRemoveGraph.length <= 2) {\r\n index = isRemoveGraph.indexOf(+sId);\r\n isRemoveGraph.splice(index, 1);\r\n isShowGraph.push(+sId);\r\n\r\n this.onlyRemoveGraph(sId);\r\n }\r\n } else {\r\n // show graph\r\n if (0 === this.state.myStoreID) {\r\n this.setState({ myStoreID: sId });\r\n }\r\n if (isRemoveGraph.length < 2) {\r\n index = isShowGraph.indexOf(+sId);\r\n isShowGraph.splice(index, 1);\r\n isRemoveGraph.push(+sId);\r\n this.onlyShowGraph(sId);\r\n } else {\r\n let msg =\r\n \"You can only display a maximum of two stores on the chart. Please deselect a store before selecting another store to view.\";\r\n this.setState({ snackOpen: true, snackMSg: msg });\r\n }\r\n }\r\n\r\n this.setState({ isShowGraph, isRemoveGraph });\r\n\r\n const rdata = {\r\n UserStoreID: parseInt(this.props.match.params.userstoreid),\r\n RegionId: CONFIG.RegionId,\r\n Competitors: isRemoveGraph.join(\",\"),\r\n };\r\n axios\r\n .post(CONFIG.API_URL + \"dashboard/updatepricingcomparision\", rdata)\r\n .then((res) => { })\r\n .catch((err) => {\r\n if (err.response.status === 403) {\r\n const { from } = this.props.location.state || {\r\n from: { pathname: \"/UnauthorizedAccess\" },\r\n };\r\n this.props.history.push(from);\r\n } else {\r\n this.setState({ isLoading: false });\r\n this.setState({ snackOpen: true, snackMSg: err });\r\n }\r\n });\r\n }\r\n\r\n onlyRemoveGraph(sId) {\r\n this.setState({ isLoading: true });\r\n var shwID = this.state.isRemoveGraph.filter(function (m) {\r\n return m != sId;\r\n });\r\n let idx2Show = 0;\r\n idx2Show = shwID.length > 0 ? shwID[0] : 0;\r\n var Comp = [];\r\n if (shwID > 0) {\r\n Comp = this.state.comparisons.filter(function (m) {\r\n return m.storeID === idx2Show;\r\n });\r\n }\r\n if (sId === this.state.myStoreID) {\r\n this.setState({ gmyStore: [], storePlace: \"store\" });\r\n this.multiSeriesGraph([], Comp);\r\n } else {\r\n this.setState({ gcompitator: [], storePlace: \"comp\" });\r\n var mStore = Comp.filter(function (m) {\r\n return m.isMyStore === true;\r\n });\r\n if (mStore.length > 0) this.multiSeriesGraph(mStore, []);\r\n else this.multiSeriesGraph([], Comp);\r\n }\r\n\r\n this.setState({ isLoading: false });\r\n }\r\n\r\n onlyShowGraph(sId) {\r\n this.setState({ isLoading: true });\r\n var shwID = this.state.isRemoveGraph.filter(function (m) {\r\n return m != sId;\r\n });\r\n\r\n let idx2Show = 0;\r\n idx2Show = shwID.length > 0 ? shwID[0] : 0;\r\n var Comp = [];\r\n if (shwID > 0) {\r\n Comp = this.state.comparisons.filter(function (m) {\r\n return m.storeID === idx2Show;\r\n });\r\n }\r\n\r\n var showStore = this.state.comparisons.filter(function (m) {\r\n return m.storeID == sId;\r\n });\r\n\r\n var mStore = showStore.filter(function (m) {\r\n return m.isMyStore === true;\r\n });\r\n\r\n if (mStore.length > 0) {\r\n showStore = [];\r\n } else {\r\n mStore = Comp.filter(function (m) {\r\n return m.isMyStore === true;\r\n });\r\n if (mStore.length > 0) {\r\n Comp = [];\r\n }\r\n }\r\n\r\n\r\n if (this.state.myStoreID === sId) {\r\n // show store in my store place\r\n if (showStore.length > 0) this.multiSeriesGraph(mStore, showStore);\r\n else this.multiSeriesGraph(mStore, Comp);\r\n this.setState({ gmyStore: mStore, storePlace: \"sc\" });\r\n } else {\r\n // Show store in competitor place\r\n this.setState({ gcompitator: showStore, storePlace: \"cs\" });\r\n if (mStore.length > 0)this.multiSeriesGraph(mStore, []);\r\n if (mStore.length > 0 && showStore.length > 0)\r\n this.multiSeriesGraph(mStore, showStore);\r\n else if (mStore.length > 0 && Comp.length > 0)\r\n this.multiSeriesGraph(mStore, Comp);\r\n else {\r\n if (showStore.length > 0 && Comp.length > 0)\r\n this.multiSeriesGraph(showStore, Comp);\r\n else if (showStore.length > 0) this.multiSeriesGraph([], showStore);\r\n else if (Comp.length > 0) this.multiSeriesGraph([], Comp);\r\n }\r\n //this.multiSeriesGraph(this.state.gmyStore, showStore);\r\n }\r\n\r\n this.setState({ isLoading: false });\r\n }\r\n\r\n multiSeriesGraph(store, compitator) {\r\n let market = this.state.market;\r\n let storeName = \"\";\r\n let compitatorname = compitator.length > 0 ? compitator[0].storeName : \"\";\r\n if (store.length === 0) {\r\n storeName = \"\";\r\n } else {\r\n if (store[0].storeID === this.state.alwaysMyStoreID) {\r\n storeName = \" Your Store\";\r\n } else {\r\n storeName = store[0].storeName;\r\n }\r\n }\r\n let data_compitator1 = [];\r\n let y_data_compitator1 = [];\r\n let y0_data_compitator1 = [];\r\n let countryCurrency = this.state.storeAddress;\r\n let check_Zero = compitator.concat(market,store).map(item => item.priceFrom && item.priceTo).filter(item => item !== 0 && item !== null && item !== '' && item !== undefined ? true : false );\r\n for (var i = 0; i < compitator.length; i++) {\r\n y_data_compitator1.push(compitator[i].priceFrom);\r\n y0_data_compitator1.push(compitator[i].priceTo);\r\n if (compitator[i].priceFrom === 0 && compitator[i].priceTo === 0) {\r\n data_compitator1.push({ x: compitator[i].unitType, y: [compitator[i].priceFrom, compitator[i].priceTo], address: compitator[i].address });\r\n } else if (compitator[i].priceFrom === compitator[i].priceTo) {\r\n data_compitator1.push({ x: compitator[i].unitType, y: [compitator[i].priceFrom, compitator[i].priceTo], address: compitator[i].address });\r\n } else {\r\n data_compitator1.push({ x: compitator[i].unitType, y: [compitator[i].priceFrom, compitator[i].priceTo], address: compitator[i].address });\r\n }\r\n }\r\n\r\n var y_min_compitator1 = Math.min.apply(Math, y_data_compitator1.filter(Number));\r\n var y0_min_compitator1 = Math.min.apply(Math, y0_data_compitator1.filter(Number));\r\n\r\n let leastVal_compitator1;\r\n if (y_min_compitator1 < y0_min_compitator1) {\r\n leastVal_compitator1 = y_min_compitator1\r\n } else {\r\n leastVal_compitator1 = y0_min_compitator1\r\n }\r\n let data_market1 = [];\r\n let y_data_market1 = [];\r\n let y0_data_market1 = [];\r\n\r\n for (var i = 0; i < market.length; i++) {\r\n y_data_market1.push(market[i].priceFrom)\r\n y0_data_market1.push(market[i].priceTo)\r\n if (market[i].priceFrom === 0 && market[i].priceTo === 0) {\r\n data_market1.push({ x: market[i].unitType, y: [market[i].priceFrom, market[i].priceTo], address: market[i].address });\r\n } else if (market[i].priceFrom === market[i].priceTo) {\r\n data_market1.push({ x: market[i].unitType, y: [market[i].priceFrom, market[i].priceTo], address: market[i].address });\r\n } else {\r\n data_market1.push({ x: market[i].unitType, y: [market[i].priceFrom, market[i].priceTo], address: market[i].address });\r\n }\r\n }\r\n var y_min_market1 = Math.min.apply(Math, y_data_market1.filter(Number));\r\n var y0_min_marke1 = Math.min.apply(Math, y0_data_market1.filter(Number));\r\n\r\n let leastVal_market1;\r\n if (y_min_market1 < y0_min_marke1) {\r\n leastVal_market1 = y_min_market1\r\n } else {\r\n leastVal_market1 = y0_min_marke1\r\n }\r\n let data_storeName = [];\r\n let y_data_storeName = [];\r\n let y0_data_storeName = [];\r\n\r\n for (var i = 0; i < store.length; i++) {\r\n y_data_storeName.push(store[i].priceFrom)\r\n y0_data_storeName.push(store[i].priceTo)\r\n if (store[i].priceFrom === 0 && store[i].priceTo === 0) {\r\n data_storeName.push({ x: store[i].unitType, y: [store[i].priceFrom, store[i].priceTo], address: store[i].address });\r\n } else if (store[i].priceFrom === store[i].priceTo) {\r\n data_storeName.push({ name: storeName, x: store[i].unitType, y: [store[i].priceFrom, store[i].priceTo], address: store[i].address });\r\n } else {\r\n data_storeName.push({ x: store[i].unitType, y: [store[i].priceFrom, store[i].priceTo], address: store[i].address });\r\n }\r\n }\r\n\r\n var y_min_storeName = Math.min.apply(Math, y_data_storeName.filter(Number));\r\n var y0_min_storeName = Math.min.apply(Math, y0_data_storeName.filter(Number));\r\n\r\n let leastVal_storeName;\r\n if (y_min_storeName < y0_min_storeName) {\r\n leastVal_storeName = y_min_storeName\r\n } else {\r\n leastVal_storeName = y0_min_storeName\r\n }\r\n let yAxisMinValue = Math.min(leastVal_storeName, leastVal_market1, leastVal_compitator1);\r\n let allData = [{ name: compitatorname, data: data_compitator1 }, { name: \"Market Average\", data: data_market1 }, { name: storeName , data: data_storeName }];\r\n \r\n if (check_Zero.length > 0) {\r\n this.setState({\r\n isNoGraphData: false,\r\n });\r\n this.setState({\r\n options: {\r\n chart: {\r\n toolbar: {\r\n show: true,\r\n tools: {\r\n download: false,\r\n selection: false,\r\n zoom: false,\r\n zoomin:false,\r\n zoomout:false,\r\n pan:false,\r\n reset: true,\r\n },\r\n },\r\n },\r\n tooltip: {\r\n enabled: true,\r\n showForNullSeries: false,\r\n custom: undefined,\r\n y: {\r\n formatter: function (val, opts) {\r\n if (typeof (opts) === \"object\") {\r\n let add = opts.w.config.series[opts.seriesIndex].data[opts.dataPointIndex].address !== null ? opts.w.config.series[opts.seriesIndex].data[opts.dataPointIndex].address : \"\";\r\n let dataVal = opts.w.config.series[opts.seriesIndex].data[opts.dataPointIndex].y[0] !== opts.w.config.series[opts.seriesIndex].data[opts.dataPointIndex].y[1] ? `${countryCurrency.countryCurrency}${opts.w.config.series[opts.seriesIndex].data[opts.dataPointIndex].y[0]} - ${opts.w.config.series[opts.seriesIndex].data[opts.dataPointIndex].y[1]}` : `${countryCurrency.countryCurrency}${opts.w.config.series[opts.seriesIndex].data[opts.dataPointIndex].y[0]}`\r\n let aUP = opts.w.config.series[opts.seriesIndex].name == \"Market Average\" ? `${opts.w.config.series[opts.seriesIndex].name}
Price Range: ${dataVal}`:`${opts.w.config.series[opts.seriesIndex].name}
${add}
Price Range: ${dataVal}`\r\n return aUP;\r\n }\r\n },\r\n title: {\r\n formatter: function (val) {\r\n if (val) return \"\";\r\n }\r\n }\r\n },\r\n marker: {\r\n show: true,\r\n },\r\n onDatasetHover: {\r\n highlightDataSeries: false,\r\n },\r\n style: {\r\n fontSize: '11px',\r\n fontFamily: \"Roboto, Helvetica, Arial , sans-serif\"\r\n },\r\n },\r\n legend: {\r\n position: 'bottom',\r\n showForSingleSeries: true,\r\n horizontalAlign: 'center',\r\n fontSize: '11px',\r\n fontWeight: 500,\r\n showForNullSeries: false,\r\n showForZeroSeries: true,\r\n itemMargin: {\r\n horizontal: 10,\r\n vertical: 20,\r\n },\r\n onItemClick: {\r\n toggleDataSeries: true\r\n },\r\n onItemHover: {\r\n highlightDataSeries: true\r\n },\r\n formatter: function (seriesName, opts) {\r\n if (seriesName) return seriesName.charAt(0).toUpperCase() + seriesName.slice(1);;\r\n }\r\n },\r\n yaxis: {\r\n min: yAxisMinValue,\r\n max: function(max){return max+5},\r\n labels: {\r\n formatter: function (value) {\r\n let val = value === null || value === undefined ? '' : countryCurrency.countryCurrency + value.toFixed(0);\r\n return val;\r\n },\r\n style: {\r\n colors: '#8C9AA6',\r\n fontSize: '10px'\r\n },\r\n },\r\n },\r\n xaxis: {\r\n show: true,\r\n labels: {\r\n show: true,\r\n rotate: 0,\r\n hideOverlappingLabels: false,\r\n trim: true,\r\n formatter: function (value) {\r\n let val = value === undefined || typeof (value) !== \"string\" ? '' : value;\r\n return val;\r\n },\r\n style: {\r\n fontSize: '10px'\r\n }\r\n },\r\n axisBorder: {\r\n show: true\r\n },\r\n axisTicks: {\r\n show: true\r\n }\r\n },\r\n noData: {\r\n text: 'Please enable any one of the below legend to view the graph.',\r\n style: {\r\n color: \"#5b95f6\",\r\n }\r\n },\r\n },\r\n series: allData\r\n })\r\n } else {\r\n this.setState({\r\n isNoGraphData: true,\r\n });\r\n \r\n }\r\n }\r\n\r\n formData(data) {\r\n let unique = [...new Set(data.map((item) => item.unitType))];\r\n let uniquestore = [...new Set(data.map((item) => item.storeID))];\r\n let storeAddress = this.state.storeAddress;\r\n\r\n var FData = [];\r\n for (var t = 0; t < uniquestore.length; t++) {\r\n var tFData = data.filter((a) => a.storeID == uniquestore[t]);\r\n switch (unique.length) {\r\n case 12: {\r\n var mData = {\r\n StoreID: uniquestore[t],\r\n Address: tFData[0].address,\r\n StoreName: tFData[0].storeName,\r\n Proximity: tFData[0].proximity.toFixed(2),\r\n StoreImage: tFData[0].storeImage,\r\n Unit1:\r\n tFData[0].priceTo === 0 && tFData[0].priceFrom === 0\r\n ? \"N/A\"\r\n : tFData[0].priceTo === tFData[0].priceFrom\r\n ? storeAddress.countryCurrency + tFData[0].priceTo\r\n : storeAddress.countryCurrency +\r\n tFData[0].priceFrom +\r\n \" - \" +\r\n tFData[0].priceTo,\r\n Unit2:\r\n tFData[1].priceTo === 0 && tFData[1].priceFrom === 0\r\n ? \"N/A\"\r\n : tFData[1].priceTo === tFData[1].priceFrom\r\n ? storeAddress.countryCurrency + tFData[1].priceTo\r\n : storeAddress.countryCurrency +\r\n tFData[1].priceFrom +\r\n \" - \" +\r\n tFData[1].priceTo,\r\n Unit3:\r\n tFData[2].priceTo === 0 && tFData[2].priceFrom === 0\r\n ? \"N/A\"\r\n : tFData[2].priceTo === tFData[2].priceFrom\r\n ? storeAddress.countryCurrency + tFData[2].priceTo\r\n : storeAddress.countryCurrency +\r\n tFData[2].priceFrom +\r\n \" - \" +\r\n tFData[2].priceTo,\r\n Unit4:\r\n tFData[3].priceTo === 0 && tFData[3].priceFrom === 0\r\n ? \"N/A\"\r\n : tFData[3].priceTo === tFData[3].priceFrom\r\n ? storeAddress.countryCurrency + tFData[3].priceTo\r\n : storeAddress.countryCurrency +\r\n tFData[3].priceFrom +\r\n \" - \" +\r\n tFData[3].priceTo,\r\n Unit5:\r\n tFData[4].priceTo === 0 && tFData[4].priceFrom === 0\r\n ? \"N/A\"\r\n : tFData[4].priceTo === tFData[4].priceFrom\r\n ? storeAddress.countryCurrency + tFData[4].priceTo\r\n : storeAddress.countryCurrency +\r\n tFData[4].priceFrom +\r\n \" - \" +\r\n tFData[4].priceTo,\r\n Unit6:\r\n tFData[5].priceTo === 0 && tFData[5].priceFrom === 0\r\n ? \"N/A\"\r\n : tFData[5].priceTo === tFData[5].priceFrom\r\n ? storeAddress.countryCurrency + tFData[5].priceTo\r\n : storeAddress.countryCurrency +\r\n tFData[5].priceFrom +\r\n \" - \" +\r\n tFData[5].priceTo,\r\n Unit7:\r\n tFData[6].priceTo === 0 && tFData[6].priceFrom === 0\r\n ? \"N/A\"\r\n : tFData[6].priceTo === tFData[6].priceFrom\r\n ? storeAddress.countryCurrency + tFData[6].priceTo\r\n : storeAddress.countryCurrency +\r\n tFData[6].priceFrom +\r\n \" - \" +\r\n tFData[6].priceTo,\r\n Unit8:\r\n tFData[7].priceTo === 0 && tFData[7].priceFrom === 0\r\n ? \"N/A\"\r\n : tFData[7].priceTo === tFData[7].priceFrom\r\n ? storeAddress.countryCurrency + tFData[7].priceTo\r\n : storeAddress.countryCurrency +\r\n tFData[7].priceFrom +\r\n \" - \" +\r\n tFData[7].priceTo,\r\n Unit9:\r\n tFData[8].priceTo === 0 && tFData[8].priceFrom === 0\r\n ? \"N/A\"\r\n : tFData[8].priceTo === tFData[8].priceFrom\r\n ? storeAddress.countryCurrency + tFData[8].priceTo\r\n : storeAddress.countryCurrency +\r\n tFData[8].priceFrom +\r\n \" - \" +\r\n tFData[8].priceTo,\r\n Unit10:\r\n tFData[9].priceTo === 0 && tFData[9].priceFrom === 0\r\n ? \"N/A\"\r\n : tFData[9].priceTo === tFData[9].priceFrom\r\n ? storeAddress.countryCurrency + tFData[9].priceTo\r\n : storeAddress.countryCurrency +\r\n tFData[9].priceFrom +\r\n \" - \" +\r\n tFData[9].priceTo,\r\n Unit11:\r\n tFData[10].priceTo === 0 && tFData[10].priceFrom === 0\r\n ? \"N/A\"\r\n : tFData[10].priceTo === tFData[10].priceFrom\r\n ? storeAddress.countryCurrency + tFData[10].priceTo\r\n : storeAddress.countryCurrency +\r\n tFData[10].priceFrom +\r\n \" - \" +\r\n tFData[10].priceTo,\r\n Unit12:\r\n tFData[11].priceTo === 0 && tFData[11].priceFrom === 0\r\n ? \"N/A\"\r\n : tFData[11].priceTo === tFData[11].priceFrom\r\n ? storeAddress.countryCurrency + tFData[11].priceTo\r\n : storeAddress.countryCurrency +\r\n tFData[11].priceFrom +\r\n \" - \" +\r\n tFData[11].priceTo,\r\n\r\n IsSelected: tFData[0].isSelected,\r\n Latitude: tFData[0].latitude,\r\n Longitude: tFData[0].longitude,\r\n };\r\n FData.push(mData);\r\n break;\r\n }\r\n case 10: {\r\n var mData = {\r\n StoreID: uniquestore[t],\r\n StoreName: tFData[0].storeName,\r\n Address: tFData[0].address,\r\n Proximity: tFData[0].proximity.toFixed(2),\r\n StoreImage: tFData[0].storeImage,\r\n Unit1:\r\n tFData[0].priceTo === 0 && tFData[0].priceFrom === 0\r\n ? \"N/A\"\r\n : tFData[0].priceTo === tFData[0].priceFrom\r\n ? storeAddress.countryCurrency + tFData[0].priceTo\r\n : storeAddress.countryCurrency +\r\n tFData[0].priceFrom +\r\n \" - \" +\r\n tFData[0].priceTo,\r\n Unit2:\r\n tFData[1].priceTo === 0 && tFData[1].priceFrom === 0\r\n ? \"N/A\"\r\n : tFData[1].priceTo === tFData[1].priceFrom\r\n ? storeAddress.countryCurrency + tFData[1].priceTo\r\n : storeAddress.countryCurrency +\r\n tFData[1].priceFrom +\r\n \" - \" +\r\n tFData[1].priceTo,\r\n Unit3:\r\n tFData[2].priceTo === 0 && tFData[2].priceFrom === 0\r\n ? \"N/A\"\r\n : tFData[2].priceTo === tFData[2].priceFrom\r\n ? storeAddress.countryCurrency + tFData[2].priceTo\r\n : storeAddress.countryCurrency +\r\n tFData[2].priceFrom +\r\n \" - \" +\r\n tFData[2].priceTo,\r\n Unit4:\r\n tFData[3].priceTo === 0 && tFData[3].priceFrom === 0\r\n ? \"N/A\"\r\n : tFData[3].priceTo === tFData[3].priceFrom\r\n ? storeAddress.countryCurrency + tFData[3].priceTo\r\n : storeAddress.countryCurrency +\r\n tFData[3].priceFrom +\r\n \" - \" +\r\n tFData[3].priceTo,\r\n Unit5:\r\n tFData[4].priceTo === 0 && tFData[4].priceFrom === 0\r\n ? \"N/A\"\r\n : tFData[4].priceTo === tFData[4].priceFrom\r\n ? storeAddress.countryCurrency + tFData[4].priceTo\r\n : storeAddress.countryCurrency +\r\n tFData[4].priceFrom +\r\n \" - \" +\r\n tFData[4].priceTo,\r\n Unit6:\r\n tFData[5].priceTo === 0 && tFData[5].priceFrom === 0\r\n ? \"N/A\"\r\n : tFData[5].priceTo === tFData[5].priceFrom\r\n ? storeAddress.countryCurrency + tFData[5].priceTo\r\n : storeAddress.countryCurrency +\r\n tFData[5].priceFrom +\r\n \" - \" +\r\n tFData[5].priceTo,\r\n Unit7:\r\n tFData[6].priceTo === 0 && tFData[6].priceFrom === 0\r\n ? \"N/A\"\r\n : tFData[6].priceTo === tFData[6].priceFrom\r\n ? storeAddress.countryCurrency + tFData[6].priceTo\r\n : storeAddress.countryCurrency +\r\n tFData[6].priceFrom +\r\n \" - \" +\r\n tFData[6].priceTo,\r\n Unit8:\r\n tFData[7].priceTo === 0 && tFData[7].priceFrom === 0\r\n ? \"N/A\"\r\n : tFData[7].priceTo === tFData[7].priceFrom\r\n ? storeAddress.countryCurrency + tFData[7].priceTo\r\n : storeAddress.countryCurrency +\r\n tFData[7].priceFrom +\r\n \" - \" +\r\n tFData[7].priceTo,\r\n Unit9:\r\n tFData[8].priceTo === 0 && tFData[8].priceFrom === 0\r\n ? \"N/A\"\r\n : tFData[8].priceTo === tFData[8].priceFrom\r\n ? storeAddress.countryCurrency + tFData[8].priceTo\r\n : storeAddress.countryCurrency +\r\n tFData[8].priceFrom +\r\n \" - \" +\r\n tFData[8].priceTo,\r\n Unit10:\r\n tFData[9].priceTo === 0 && tFData[9].priceFrom === 0\r\n ? \"N/A\"\r\n : tFData[9].priceTo === tFData[9].priceFrom\r\n ? storeAddress.countryCurrency + tFData[9].priceTo\r\n : storeAddress.countryCurrency +\r\n tFData[9].priceFrom +\r\n \" - \" +\r\n tFData[9].priceTo,\r\n // Unit11: tFData[10].priceTo === 0 && tFData[10].priceFrom === 0 ? 'N/A' : tFData[10].priceTo === tFData[10].priceFrom ? storeAddress.countryCurrency + tFData[10].priceTo : storeAddress.countryCurrency + tFData[10].priceFrom + \" - \" + tFData[10].priceTo,\r\n // Unit12: tFData[11].priceTo === 0 && tFData[11].priceFrom === 0 ? 'N/A' : tFData[11].priceTo === tFData[11].priceFrom ? storeAddress.countryCurrency + tFData[11].priceTo : storeAddress.countryCurrency + tFData[11].priceFrom + \" - \" + tFData[11].priceTo,\r\n // Unit13: tFData[12].priceTo === 0 && tFData[12].priceFrom === 0 ? 'N/A' : tFData[12].priceTo === tFData[12].priceFrom ? storeAddress.countryCurrency + tFData[12].priceTo : storeAddress.countryCurrency + tFData[12].priceFrom + \" - \" + tFData[12].priceTo,\r\n IsSelected: tFData[0].isSelected,\r\n Latitude: tFData[0].latitude,\r\n Longitude: tFData[0].longitude,\r\n };\r\n FData.push(mData);\r\n break;\r\n }\r\n case 14: {\r\n var mData = {\r\n StoreID: uniquestore[t],\r\n StoreName: tFData[0].storeName,\r\n Address: tFData[0].address,\r\n Proximity: tFData[0].proximity.toFixed(2),\r\n StoreImage: tFData[0].storeImage,\r\n Unit1:\r\n tFData[0].priceTo === 0 && tFData[0].priceFrom === 0\r\n ? \"N/A\"\r\n : tFData[0].priceTo === tFData[0].priceFrom\r\n ? storeAddress.countryCurrency + tFData[0].priceTo\r\n : storeAddress.countryCurrency +\r\n tFData[0].priceFrom +\r\n \" - \" +\r\n tFData[0].priceTo,\r\n Unit2:\r\n tFData[1].priceTo === 0 && tFData[1].priceFrom === 0\r\n ? \"N/A\"\r\n : tFData[1].priceTo === tFData[1].priceFrom\r\n ? storeAddress.countryCurrency + tFData[1].priceTo\r\n : storeAddress.countryCurrency +\r\n tFData[1].priceFrom +\r\n \" - \" +\r\n tFData[1].priceTo,\r\n Unit3:\r\n tFData[2].priceTo === 0 && tFData[2].priceFrom === 0\r\n ? \"N/A\"\r\n : tFData[2].priceTo === tFData[2].priceFrom\r\n ? storeAddress.countryCurrency + tFData[2].priceTo\r\n : storeAddress.countryCurrency +\r\n tFData[2].priceFrom +\r\n \" - \" +\r\n tFData[2].priceTo,\r\n Unit4:\r\n tFData[3].priceTo === 0 && tFData[3].priceFrom === 0\r\n ? \"N/A\"\r\n : tFData[3].priceTo === tFData[3].priceFrom\r\n ? storeAddress.countryCurrency + tFData[3].priceTo\r\n : storeAddress.countryCurrency +\r\n tFData[3].priceFrom +\r\n \" - \" +\r\n tFData[3].priceTo,\r\n Unit5:\r\n tFData[4].priceTo === 0 && tFData[4].priceFrom === 0\r\n ? \"N/A\"\r\n : tFData[4].priceTo === tFData[4].priceFrom\r\n ? storeAddress.countryCurrency + tFData[4].priceTo\r\n : storeAddress.countryCurrency +\r\n tFData[4].priceFrom +\r\n \" - \" +\r\n tFData[4].priceTo,\r\n Unit6:\r\n tFData[5].priceTo === 0 && tFData[5].priceFrom === 0\r\n ? \"N/A\"\r\n : tFData[5].priceTo === tFData[5].priceFrom\r\n ? storeAddress.countryCurrency + tFData[5].priceTo\r\n : storeAddress.countryCurrency +\r\n tFData[5].priceFrom +\r\n \" - \" +\r\n tFData[5].priceTo,\r\n Unit7:\r\n tFData[6].priceTo === 0 && tFData[6].priceFrom === 0\r\n ? \"N/A\"\r\n : tFData[6].priceTo === tFData[6].priceFrom\r\n ? storeAddress.countryCurrency + tFData[6].priceTo\r\n : storeAddress.countryCurrency +\r\n tFData[6].priceFrom +\r\n \" - \" +\r\n tFData[6].priceTo,\r\n Unit8:\r\n tFData[7].priceTo === 0 && tFData[7].priceFrom === 0\r\n ? \"N/A\"\r\n : tFData[7].priceTo === tFData[7].priceFrom\r\n ? storeAddress.countryCurrency + tFData[7].priceTo\r\n : storeAddress.countryCurrency +\r\n tFData[7].priceFrom +\r\n \" - \" +\r\n tFData[7].priceTo,\r\n Unit9:\r\n tFData[8].priceTo === 0 && tFData[8].priceFrom === 0\r\n ? \"N/A\"\r\n : tFData[8].priceTo === tFData[8].priceFrom\r\n ? storeAddress.countryCurrency + tFData[8].priceTo\r\n : storeAddress.countryCurrency +\r\n tFData[8].priceFrom +\r\n \" - \" +\r\n tFData[8].priceTo,\r\n Unit10:\r\n tFData[9].priceTo === 0 && tFData[9].priceFrom === 0\r\n ? \"N/A\"\r\n : tFData[9].priceTo === tFData[9].priceFrom\r\n ? storeAddress.countryCurrency + tFData[9].priceTo\r\n : storeAddress.countryCurrency +\r\n tFData[9].priceFrom +\r\n \" - \" +\r\n tFData[9].priceTo,\r\n Unit11:\r\n tFData[10].priceTo === 0 && tFData[10].priceFrom === 0\r\n ? \"N/A\"\r\n : tFData[10].priceTo === tFData[10].priceFrom\r\n ? storeAddress.countryCurrency + tFData[10].priceTo\r\n : storeAddress.countryCurrency +\r\n tFData[10].priceFrom +\r\n \" - \" +\r\n tFData[10].priceTo,\r\n Unit12:\r\n tFData[11].priceTo === 0 && tFData[11].priceFrom === 0\r\n ? \"N/A\"\r\n : tFData[11].priceTo === tFData[11].priceFrom\r\n ? storeAddress.countryCurrency + tFData[11].priceTo\r\n : storeAddress.countryCurrency +\r\n tFData[11].priceFrom +\r\n \" - \" +\r\n tFData[11].priceTo,\r\n Unit13:\r\n tFData[12].priceTo === 0 && tFData[12].priceFrom === 0\r\n ? \"N/A\"\r\n : tFData[12].priceTo === tFData[12].priceFrom\r\n ? storeAddress.countryCurrency + tFData[12].priceTo\r\n : storeAddress.countryCurrency +\r\n tFData[12].priceFrom +\r\n \" - \" +\r\n tFData[12].priceTo,\r\n Unit14:\r\n tFData[13].priceTo === 0 && tFData[13].priceFrom === 0\r\n ? \"N/A\"\r\n : tFData[13].priceTo === tFData[13].priceFrom\r\n ? storeAddress.countryCurrency + tFData[13].priceTo\r\n : storeAddress.countryCurrency +\r\n tFData[13].priceFrom +\r\n \" - \" +\r\n tFData[13].priceTo,\r\n IsSelected: tFData[0].isSelected,\r\n Latitude: tFData[0].latitude,\r\n Longitude: tFData[0].longitude,\r\n };\r\n FData.push(mData);\r\n break;\r\n }\r\n default: {\r\n var mData = {\r\n StoreID: uniquestore[t],\r\n StoreName: tFData[0].storeName,\r\n Address: tFData[0].address,\r\n Proximity: tFData[0].proximity.toFixed(2),\r\n StoreImage: tFData[0].storeImage,\r\n Unit1:\r\n tFData[0].priceTo === 0 && tFData[0].priceFrom === 0\r\n ? \"N/A\"\r\n : tFData[0].priceTo === tFData[0].priceFrom\r\n ? storeAddress.countryCurrency + tFData[0].priceTo\r\n : storeAddress.countryCurrency +\r\n tFData[0].priceFrom +\r\n \" - \" +\r\n tFData[0].priceTo,\r\n Unit2:\r\n tFData[1].priceTo === 0 && tFData[1].priceFrom === 0\r\n ? \"N/A\"\r\n : tFData[1].priceTo === tFData[1].priceFrom\r\n ? storeAddress.countryCurrency + tFData[1].priceTo\r\n : storeAddress.countryCurrency +\r\n tFData[1].priceFrom +\r\n \" - \" +\r\n tFData[1].priceTo,\r\n Unit3:\r\n tFData[2].priceTo === 0 && tFData[2].priceFrom === 0\r\n ? \"N/A\"\r\n : tFData[2].priceTo === tFData[2].priceFrom\r\n ? storeAddress.countryCurrency + tFData[2].priceTo\r\n : storeAddress.countryCurrency +\r\n tFData[2].priceFrom +\r\n \" - \" +\r\n tFData[2].priceTo,\r\n Unit4:\r\n tFData[3].priceTo === 0 && tFData[3].priceFrom === 0\r\n ? \"N/A\"\r\n : tFData[3].priceTo === tFData[3].priceFrom\r\n ? storeAddress.countryCurrency + tFData[3].priceTo\r\n : storeAddress.countryCurrency +\r\n tFData[3].priceFrom +\r\n \" - \" +\r\n tFData[3].priceTo,\r\n Unit5:\r\n tFData[4].priceTo === 0 && tFData[4].priceFrom === 0\r\n ? \"N/A\"\r\n : tFData[4].priceTo === tFData[4].priceFrom\r\n ? storeAddress.countryCurrency + tFData[4].priceTo\r\n : storeAddress.countryCurrency +\r\n tFData[4].priceFrom +\r\n \" - \" +\r\n tFData[4].priceTo,\r\n Unit6:\r\n tFData[5].priceTo === 0 && tFData[5].priceFrom === 0\r\n ? \"N/A\"\r\n : tFData[5].priceTo === tFData[5].priceFrom\r\n ? storeAddress.countryCurrency + tFData[5].priceTo\r\n : storeAddress.countryCurrency +\r\n tFData[5].priceFrom +\r\n \" - \" +\r\n tFData[5].priceTo,\r\n Unit7:\r\n tFData[6].priceTo === 0 && tFData[6].priceFrom === 0\r\n ? \"N/A\"\r\n : tFData[6].priceTo === tFData[6].priceFrom\r\n ? storeAddress.countryCurrency + tFData[6].priceTo\r\n : storeAddress.countryCurrency +\r\n tFData[6].priceFrom +\r\n \" - \" +\r\n tFData[6].priceTo,\r\n Unit8:\r\n tFData[7].priceTo === 0 && tFData[7].priceFrom === 0\r\n ? \"N/A\"\r\n : tFData[7].priceTo === tFData[7].priceFrom\r\n ? storeAddress.countryCurrency + tFData[7].priceTo\r\n : storeAddress.countryCurrency +\r\n tFData[7].priceFrom +\r\n \" - \" +\r\n tFData[7].priceTo,\r\n Unit9:\r\n tFData[8].priceTo === 0 && tFData[8].priceFrom === 0\r\n ? \"N/A\"\r\n : tFData[8].priceTo === tFData[8].priceFrom\r\n ? storeAddress.countryCurrency + tFData[8].priceTo\r\n : storeAddress.countryCurrency +\r\n tFData[8].priceFrom +\r\n \" - \" +\r\n tFData[8].priceTo,\r\n Unit10:\r\n tFData[9].priceTo === 0 && tFData[9].priceFrom === 0\r\n ? \"N/A\"\r\n : tFData[9].priceTo === tFData[9].priceFrom\r\n ? storeAddress.countryCurrency + tFData[9].priceTo\r\n : storeAddress.countryCurrency +\r\n tFData[9].priceFrom +\r\n \" - \" +\r\n tFData[9].priceTo,\r\n Unit11:\r\n tFData[10].priceTo === 0 && tFData[10].priceFrom === 0\r\n ? \"N/A\"\r\n : tFData[10].priceTo === tFData[10].priceFrom\r\n ? storeAddress.countryCurrency + tFData[10].priceTo\r\n : storeAddress.countryCurrency +\r\n tFData[10].priceFrom +\r\n \" - \" +\r\n tFData[10].priceTo,\r\n Unit12:\r\n tFData[11].priceTo === 0 && tFData[11].priceFrom === 0\r\n ? \"N/A\"\r\n : tFData[11].priceTo === tFData[11].priceFrom\r\n ? storeAddress.countryCurrency + tFData[11].priceTo\r\n : storeAddress.countryCurrency +\r\n tFData[11].priceFrom +\r\n \" - \" +\r\n tFData[11].priceTo,\r\n Unit13:\r\n tFData[12].priceTo === 0 && tFData[12].priceFrom === 0\r\n ? \"N/A\"\r\n : tFData[12].priceTo === tFData[12].priceFrom\r\n ? storeAddress.countryCurrency + tFData[12].priceTo\r\n : storeAddress.countryCurrency +\r\n tFData[12].priceFrom +\r\n \" - \" +\r\n tFData[12].priceTo,\r\n Unit14:\r\n tFData[13].priceTo === 0 && tFData[13].priceFrom === 0\r\n ? \"N/A\"\r\n : tFData[13].priceTo === tFData[13].priceFrom\r\n ? storeAddress.countryCurrency + tFData[13].priceTo\r\n : storeAddress.countryCurrency +\r\n tFData[13].priceFrom +\r\n \" - \" +\r\n tFData[13].priceTo,\r\n Unit15:\r\n tFData[14].priceTo === 0 && tFData[14].priceFrom === 0\r\n ? \"N/A\"\r\n : tFData[14].priceTo === tFData[14].priceFrom\r\n ? storeAddress.countryCurrency + tFData[14].priceTo\r\n : storeAddress.countryCurrency +\r\n tFData[14].priceFrom +\r\n \" - \" +\r\n tFData[14].priceTo,\r\n IsSelected: tFData[0].isSelected,\r\n Latitude: tFData[0].latitude,\r\n Longitude: tFData[0].longitude,\r\n };\r\n FData.push(mData);\r\n }\r\n }\r\n }\r\n return FData;\r\n }\r\n\r\n toggle() {\r\n this.setState((prevState) => ({\r\n dropdownOpen: !prevState.dropdownOpen,\r\n }));\r\n }\r\n\r\n handleClickOpen(e, name) {\r\n let dropDownValue = \"\";\r\n if (name === \"Proximity\") {\r\n //descending order--to Address origin of Market\r\n dropDownValue = \"Proximity\";\r\n this.setState((compitatorAll) => {\r\n this.state.compitatorAll.sort((a, b) => a.proximity - b.proximity);\r\n });\r\n } else if (name === \"Store Name\") {\r\n //ascending order\r\n dropDownValue = \"Store Name\";\r\n this.setState((compitatorAll) => {\r\n this.state.compitatorAll.sort((a, b) =>\r\n a.storeName !== b.storeName ? (a.storeName < b.storeName ? -1 : 1) : 0\r\n );\r\n });\r\n }\r\n this.setState({ dropDownValue });\r\n }\r\n\r\n //Snack Close\r\n snackHandleclose = (event, reason) => {\r\n if (reason === \"clickaway\") {\r\n return;\r\n }\r\n this.setState({ snackOpen: false });\r\n };\r\n downLoadPDF() {\r\n // this.setState({ isLoading: true });\r\n var currentDate = moment(new Date()).format(\"DD-MMM-YYYY\");\r\n let pta = this.state.isRemoveGraph.length;\r\n let usId = parseInt(this.props.match.params.userstoreid);\r\n let accessKey = localStorage.getItem(\"SecretKey\");\r\n\r\n let orderBy =\r\n this.state.dropDownValue == \"Sort by\"\r\n ? 1\r\n : this.state.dropDownValue == \"Store Name\"\r\n ? 2\r\n : 3;\r\n let order = \"asc\";\r\n let searchId = this.state.storePlace ? this.state.storePlace : 1;\r\n let unitType = \"1\";\r\n let priceType =\r\n this.state.isRemoveGraph.length > 1 ? this.state.isRemoveGraph : 1;\r\n let showRemoveId = this.state.sIdPDF;\r\n let showRemoveType = this.state.typePDF;\r\n\r\n //let accessKey = '3f2b471776bc41cf863720bfc8cf9cb9';\r\n var timestamp =\r\n new Date().getDate() +\r\n \"\" +\r\n new Date().getMonth() +\r\n \"\" +\r\n new Date().getFullYear() +\r\n \"\" +\r\n new Date().getTime();\r\n //construct filename for pdf report.\r\n var fileName = usId + \"AllUnitPrice\" + \"_\" + timestamp + \".pdf\";\r\n var stoName =\r\n this.state.storeAddress.storeName &&\r\n this.state.storeAddress.storeName !== null &&\r\n this.state.storeAddress.storeName !== \"\" &&\r\n this.state.storeAddress.storeName !== undefined\r\n ? this.state.storeAddress.storeName\r\n : \"Your Store\";\r\n var fileNamePdf =\r\n stoName + \"_\" + \"AllUnitPrice\" + \"_\" + currentDate + \".pdf\";\r\n this.setState({\r\n snackClr: \"snack-info\",\r\n snackOpen: true,\r\n snackMSg:\r\n \"Your download is being processed. The \" +\r\n fileNamePdf +\r\n \" file will download automatically to your browser when ready and Please do not close or reload the pages until download completes. We recommend you check your Downloads folder if you don’t see it in your browser.\",\r\n });\r\n let ComponentName = 6;\r\n const Input = {\r\n RegionID: CONFIG.RegionId,\r\n URL:\r\n CONFIG.OPTZ_URL +\r\n \"render-pdf/\" +\r\n accessKey +\r\n \"/\" +\r\n ComponentName +\r\n \"/0/\" +\r\n usId +\r\n \"/\" +\r\n pta +\r\n \"/\" +\r\n searchId +\r\n \"/\" +\r\n unitType +\r\n \"/\" +\r\n priceType +\r\n \"/\" +\r\n orderBy +\r\n \"/\" +\r\n order +\r\n \"/\" +\r\n showRemoveId +\r\n \"/\" +\r\n showRemoveType +\r\n \"/\",\r\n FileName: fileName,\r\n };\r\n // axios.post(CONFIG.API_URL + 'dashboard/generatepdfbypage', Input)\r\n axios({\r\n url: CONFIG.API_URL + \"dashboard/generatepdfbypage\",\r\n method: \"post\",\r\n responseType: \"blob\",\r\n data: Input,\r\n })\r\n .then((response) => {\r\n const blob = new Blob([response.data], { type: 'application/octet-stream' });\r\n const link = document.createElement('a');\r\n link.href = window.URL.createObjectURL(blob);\r\n link.download = fileNamePdf;\r\n link.dispatchEvent(\r\n new MouseEvent('click', {\r\n bubbles: true,\r\n cancelable: true,\r\n view: window\r\n })\r\n );\r\n setTimeout(() => {\r\n // For Firefox it is necessary to delay revoking the ObjectURL\r\n window.URL.revokeObjectURL(link.href);\r\n link.remove();\r\n }, 3000);\r\n this.setState({ isLoading: false });\r\n })\r\n .catch((err) => {\r\n this.setState({ isLoading: false });\r\n });\r\n }\r\n render() {\r\n const open = Boolean(this.state.anchorEl);\r\n const {\r\n pricing,\r\n isLoading,\r\n storeAddress,\r\n isShowGraph,\r\n yGroupMax,\r\n isRemoveGraph,\r\n markets1,\r\n comparisons,\r\n compitatorAll,\r\n myStore,\r\n market,\r\n snackMSg,\r\n snackOpen,\r\n isNoGraphData\r\n } = this.state;\r\n const defaultProps = {\r\n helpTitle: \"All Units Pricing\",\r\n helpContent:\r\n \"

On this page we provide a side-by-side analysis of the \" +\r\n `${CONFIG.RegionId === 3 ? \"weekly\" : \"\"}` +\r\n \" rates for the most common unit types.

Broadest Range

This is the unit type with the largest range of current \" +\r\n `${CONFIG.RegionId === 3 ? \"weekly\" : \"\"}` +\r\n \" rates (this includes both Regular/Walk-in and Online/Promotional rates)

Narrowest Range

This is the unit type with the lowest range of current \" +\r\n `${CONFIG.RegionId === 3 ? \"weekly\" : \"\"}` +\r\n \" rates (this includes both Regular/Walk-in and Online/Promotional rates)

*Your store prices are included in the calculations.

\",\r\n };\r\n const defaultProps1 = {\r\n helpTitle: \"All Units Pricing Ranges\",\r\n helpContent:\r\n \"

This graph is showing a side-by-side analysis of the \" +\r\n `${CONFIG.RegionId === 3 ? \"weekly\" : \"\"}` +\r\n \" rates for the most common unit types.

The Market Average (in black) shows the range of current \" +\r\n `${CONFIG.RegionId === 3 ? \"weekly\" : \"\"}` +\r\n \" rates for this unit type. Hover over the range to view the specific rates.

If Your Store is advertising rates for this unit type, your rates will be shown here (in orange). Hover over the range to view the specific rates.

Compare the \" +\r\n `${CONFIG.RegionId === 3 ? \"weekly\" : \"\"}` +\r\n \" rate range for any store/competitor in this Market*

*See 'All Stores' below to select stores/competitors to compare to on this graph

*Your store prices are included in the calculations.

\",\r\n };\r\n const defaultProps2 = {\r\n helpTitle: \"All Stores\",\r\n helpContent:\r\n \"
  • This shows all the stores in this Market and their current \" +\r\n `${CONFIG.RegionId === 3 ? \"weekly\" : \"\"}` +\r\n \" price ranges for each of the most common unit types.
  • Click on any to show/remove on the graph above for comparison.

*Your store prices are included in the calculations.

\",\r\n };\r\n var storeName = \"\";\r\n {\r\n storeName = storeAddress ? storeAddress.storeName : \"\";\r\n }\r\n var count = 0;\r\n var initvalue = \"\";\r\n const rowsitem = [];\r\n var tData = [];\r\n var pData = [];\r\n var udt = 0;\r\n\r\n if (compitatorAll.length > 0) {\r\n tData = this.formData(compitatorAll);\r\n pData = compitatorAll.filter((a) => a.priceFrom > 0 || a.priceTo > 0);\r\n let unique = [...new Set(compitatorAll.map((item) => item.unitType))];\r\n udt = unique.length;\r\n }\r\n\r\n return (\r\n
\r\n {isLoading ? (\r\n
\r\n
\r\n
\r\n ) : (\r\n \"\"\r\n )}\r\n \r\n\r\n {localStorage.getItem(\"isMVP_User\") === \"false\" ? (\r\n \r\n My Markets\r\n \r\n ) :\r\n \"\"}\r\n\r\n\r\n Go to Market Dashboard\r\n\r\n\r\n \r\n All Units Pricing\r\n \r\n \r\n 0 || myStore.length > 0)\r\n ? false\r\n : true\r\n }\r\n className={\r\n tData.length > 0 || myStore.length > 0\r\n ? \"apply-btn download-pdf \"\r\n : \"download-pdf-disabled\"\r\n }\r\n onClick={this.downLoadPDF.bind(this)}\r\n >\r\n \r\n PDF Download\r\n \r\n\r\n
\r\n {/* {storeAddress && pricing ? */}\r\n \r\n \r\n \r\n \r\n \r\n

\r\n All Units Pricing \r\n

\r\n \r\n {isLoading ? (\r\n \"\"\r\n ) : storeAddress.compsCount === 0 ||\r\n storeAddress.compsCount === null ? (\r\n
\r\n

Analyzing N/A

\r\n
\r\n ) : (\r\n
\r\n

\r\n Analyzing{\" \"}\r\n this.getParams(storeAddress)}\r\n to=\"#\"\r\n >\r\n {storeAddress.compsCount\r\n ? parseInt(storeAddress.compsCount) > 1\r\n ? storeAddress.compsCount + \" stores\"\r\n : storeAddress.compsCount + \" store\"\r\n : \"N/A\"}\r\n \r\n

\r\n
\r\n )}\r\n \r\n {isLoading ? (\r\n \"\"\r\n ) : (\r\n \r\n

\r\n {storeAddress.storeName &&\r\n storeAddress.storeName !== null &&\r\n storeAddress.storeName !== \"\" &&\r\n storeAddress.storeName !== undefined\r\n ? storeAddress.storeName\r\n : \"Your Store\"}\r\n

\r\n 24\r\n ? \"pd-btm-35\"\r\n : \"pd-btm-20\"\r\n : \"pd-btm-20\"\r\n }\r\n >\r\n

\r\n {storeAddress.storeAddress1 &&\r\n storeAddress.storeAddress1 !== \"\" &&\r\n storeAddress.storeAddress1 !== null &&\r\n storeAddress.storeAddress1 !== undefined\r\n ? storeAddress.storeAddress1 + \", \"\r\n : \"\"}{\" \"}\r\n {storeAddress.storeAddress2\r\n ? storeAddress.storeAddress2 + \", \"\r\n : \"\"}{\" \"}\r\n {storeAddress && storeAddress.storeCity\r\n ? storeAddress.storeCity + \", \"\r\n : storeAddress.searchType === 1 &&\r\n (storeAddress.storeCity === null ||\r\n storeAddress.storeCity === \"\") &&\r\n (storeAddress.storeZipCode === null ||\r\n storeAddress.storeZipCode === \"\")\r\n ? storeAddress.latitude +\r\n \", \" +\r\n storeAddress.longitude +\r\n \", \"\r\n : \"\"}\r\n {storeAddress.storeState ? storeAddress.storeState : \"\"}{\" \"}\r\n {storeAddress.storeZipCode}\r\n

\r\n
\r\n
\r\n

\r\n {\"Coverage: \" + storeAddress.storeZoneCoverage}\r\n

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

Broadest Range

\r\n {isLoading ? (\r\n \"\"\r\n ) : (\r\n \r\n
\r\n
\r\n {pricing.broadestRangeUnit\r\n ? pricing.broadestRangeUnit\r\n : \"N/A\"}\r\n
\r\n
\r\n
\r\n
\r\n {CONFIG.RegionId === 3\r\n ? \"Current Weekly Price Range\"\r\n : \"Current Price Range\"}\r\n
\r\n
\r\n
\r\n )}\r\n \r\n \r\n

\r\n {isLoading ? (\r\n \"\"\r\n ) : pricing.broadestPriceTo === null ? (\r\n \"\"\r\n ) : pricing.broadestPriceTo ===\r\n pricing.broadestPriceFrom ? (\r\n \r\n {\" \"}\r\n {storeAddress.countryCurrency +\r\n pricing.broadestPriceTo}\r\n

\r\n ) : (\r\n storeAddress.countryCurrency +\r\n pricing.broadestPriceFrom +\r\n \"-\" +\r\n pricing.broadestPriceTo\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n

Narrowest Range

\r\n {isLoading ? (\r\n \"\"\r\n ) : (\r\n \r\n
\r\n
\r\n {pricing.narrowestRangeUnit\r\n ? pricing.narrowestRangeUnit\r\n : \"N/A\"}\r\n
\r\n
\r\n
\r\n
\r\n {CONFIG.RegionId === 3\r\n ? \"Current Weekly Price Range\"\r\n : \"Current Price Range\"}\r\n
\r\n
\r\n
\r\n )}\r\n \r\n \r\n

\r\n {isLoading ? (\r\n \"\"\r\n ) : pricing.narrowestPriceTo === null ? (\r\n \"\"\r\n ) : pricing.narrowestPriceTo ===\r\n pricing.narrowestPriceFrom ? (\r\n \r\n {\" \"}\r\n {storeAddress.countryCurrency +\r\n pricing.narrowestPriceTo}{\" \"}\r\n

\r\n ) : (\r\n storeAddress.countryCurrency +\r\n pricing.narrowestPriceFrom +\r\n \"-\" +\r\n pricing.narrowestPriceTo\r\n )}{\" \"}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* : ''} */}\r\n
\r\n
\r\n

\r\n All Units Pricing Ranges \r\n

\r\n
\r\n
\r\n \r\n {/* {markets1.length > 0 || myStore.length > 0 || pData.length > 0 ? ( */}\r\n {isNoGraphData ? (
No Data Available
) :\r\n }\r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n

\r\n All Stores \r\n

\r\n\r\n {markets1.length > 0 ||\r\n myStore.length > 0 ||\r\n tData.length > 0 ? (\r\n
\r\n \r\n \r\n {this.state.dropDownValue}\r\n \r\n \r\n this.handleClickOpen(e, \"Store Name\")}\r\n >\r\n Store Name\r\n \r\n this.handleClickOpen(e, \"Proximity\")}\r\n >\r\n Proximity\r\n \r\n \r\n \r\n
\r\n ) : (\r\n \"\"\r\n )}\r\n
\r\n
\r\n\r\n
\r\n \r\n {markets1.length > 0 ||\r\n myStore.length > 0 ||\r\n tData.length > 0 ? (\r\n \r\n \r\n \r\n \r\n {market.length > 0\r\n ? market.map((data) => {\r\n return (\r\n \r\n {data.unitType}\r\n \r\n );\r\n })\r\n : \"\"}\r\n \r\n More Option\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\"Market Range \"}\r\n \r\n {market.length > 0\r\n ? market.map((data) => {\r\n return (\r\n \r\n {data.priceTo === 0 && data.priceFrom === 0 ? \"N/A\" : data.priceTo === data.priceFrom\r\n ? storeAddress.countryCurrency +\r\n data.priceFrom\r\n : storeAddress.countryCurrency +\r\n data.priceFrom +\r\n \"-\" +\r\n data.priceTo}\r\n \r\n );\r\n })\r\n : \"\"}\r\n \r\n \r\n {myStore.length > 0 ? (\r\n \r\n \r\n {\"Your Store \"}\r\n \r\n {myStore.length > 0\r\n ? myStore.map((data) => {\r\n return (\r\n \r\n {data.priceTo === 0 &&\r\n data.priceFrom === 0\r\n ? \"N/A\"\r\n : data.priceTo === data.priceFrom\r\n ? storeAddress.countryCurrency +\r\n data.priceFrom\r\n : storeAddress.countryCurrency +\r\n data.priceFrom +\r\n \"-\" +\r\n data.priceTo}\r\n \r\n );\r\n })\r\n : \"\"}\r\n
\r\n {myStore.length > 0 ? (\r\n \r\n {myStore[0].storeID ===\r\n isShowGraph.find(\r\n (e) => e === myStore[0].storeID\r\n ) ? (\r\n \r\n this.showGraph(myStore[0].storeID, 0, 0)\r\n }\r\n className=\"red-clr hides-graph font-weight-normal\"\r\n >\r\n \r\n Show on graph\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n {myStore[0].storeID ===\r\n isRemoveGraph.find(\r\n (e) => e === myStore[0].storeID\r\n ) ? (\r\n \r\n this.showGraph(myStore[0].storeID, 1, 1)\r\n }\r\n className=\"blue-clr shows-graph font-weight-normal\"\r\n >\r\n \r\n Remove from graph\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n
\r\n
\r\n ) : (\r\n \"\"\r\n )}\r\n {tData.length > 0\r\n ? tData.map((data) => {\r\n switch (udt) {\r\n case 12: {\r\n return (\r\n \r\n \r\n
\r\n {data.StoreImage != \"\" ? (\r\n
\r\n \r\n this.getStoreStreeView(\r\n data.Latitude,\r\n data.Longitude,\r\n data.StoreName\r\n )\r\n }\r\n title=\"click here to view street view\"\r\n >\r\n \r\n \r\n
\r\n ) : (\r\n \"\"\r\n )}\r\n
\r\n
\r\n {data.StoreName}\r\n
\r\n
\r\n {data.Proximity + \" \"}\r\n {CONFIG.RegionId == 2 ||\r\n CONFIG.RegionId == 4\r\n ? \"kilometre\"\r\n : \"mile\"}\r\n {data.Proximity <= 1 ? \"\" : \"s\"}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {data.Address}\r\n
\r\n
\r\n \r\n {data.Unit1}\r\n \r\n \r\n {data.Unit2}\r\n \r\n \r\n {data.Unit3}\r\n \r\n \r\n {data.Unit4}\r\n \r\n \r\n {data.Unit5}\r\n \r\n \r\n {data.Unit6}\r\n \r\n \r\n {data.Unit7}\r\n \r\n \r\n {data.Unit8}\r\n \r\n \r\n {data.Unit9}\r\n \r\n \r\n {data.Unit10}\r\n \r\n \r\n {data.Unit11}\r\n \r\n \r\n {data.Unit12}\r\n \r\n \r\n {data.StoreID ===\r\n isShowGraph.find(\r\n (e) => e === data.StoreID\r\n ) ? (\r\n \r\n this.showGraph(data.StoreID, 0)\r\n }\r\n className=\"red-clr hides-graph\"\r\n >\r\n \r\n Show on Graph\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n {data.StoreID ===\r\n isRemoveGraph.find(\r\n (e) => e === data.StoreID\r\n ) ? (\r\n \r\n this.showGraph(data.StoreID, 1)\r\n }\r\n className=\"blue-clr shows-graph\"\r\n >\r\n \r\n Remove From Graph\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n \r\n
\r\n );\r\n break;\r\n }\r\n case 10: {\r\n return (\r\n \r\n \r\n
\r\n {data.StoreImage != \"\" ? (\r\n
\r\n \r\n this.getStoreStreeView(\r\n data.Latitude,\r\n data.Longitude,\r\n data.StoreName\r\n )\r\n }\r\n title=\"click here to view street view\"\r\n >\r\n \r\n \r\n
\r\n ) : (\r\n \"\"\r\n )}\r\n
\r\n
\r\n {data.StoreName}\r\n
\r\n
\r\n {data.Proximity + \" \"}\r\n {CONFIG.RegionId == 2 ||\r\n CONFIG.RegionId == 4\r\n ? \"kilometre\"\r\n : \"mile\"}\r\n {data.Proximity <= 1 ? \"\" : \"s\"}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {data.Address}\r\n
\r\n
\r\n \r\n {data.Unit1}\r\n \r\n \r\n {data.Unit2}\r\n \r\n \r\n {data.Unit3}\r\n \r\n \r\n {data.Unit4}\r\n \r\n \r\n {data.Unit5}\r\n \r\n \r\n {data.Unit6}\r\n \r\n \r\n {data.Unit7}\r\n \r\n \r\n {data.Unit8}\r\n \r\n \r\n {data.Unit9}\r\n \r\n \r\n {data.Unit10}\r\n \r\n {/* {data.Unit11}\r\n {data.Unit12}\r\n {data.Unit13} */}\r\n \r\n {data.StoreID ===\r\n isShowGraph.find(\r\n (e) => e === data.StoreID\r\n ) ? (\r\n \r\n this.showGraph(data.StoreID, 0)\r\n }\r\n className=\"red-clr hides-graph\"\r\n >\r\n \r\n Show on Graph\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n {data.StoreID ===\r\n isRemoveGraph.find(\r\n (e) => e === data.StoreID\r\n ) ? (\r\n \r\n this.showGraph(data.StoreID, 1)\r\n }\r\n className=\"blue-clr shows-graph\"\r\n >\r\n \r\n Remove From Graph\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n \r\n
\r\n );\r\n break;\r\n }\r\n case 14: {\r\n return (\r\n \r\n \r\n
\r\n {data.StoreImage != \"\" ? (\r\n
\r\n \r\n this.getStoreStreeView(\r\n data.Latitude,\r\n data.Longitude,\r\n data.StoreName\r\n )\r\n }\r\n title=\"click here to view street view\"\r\n >\r\n \r\n \r\n
\r\n ) : (\r\n \"\"\r\n )}\r\n
\r\n
\r\n {data.StoreName}\r\n
\r\n
\r\n {data.Proximity + \" \"}\r\n {CONFIG.RegionId == 2 ||\r\n CONFIG.RegionId == 4\r\n ? \"kilometre\"\r\n : \"mile\"}\r\n {data.Proximity <= 1 ? \"\" : \"s\"}{\" \"}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {data.Address}\r\n
\r\n
\r\n \r\n {data.Unit1}\r\n \r\n \r\n {data.Unit2}\r\n \r\n \r\n {data.Unit3}\r\n \r\n \r\n {data.Unit4}\r\n \r\n \r\n {data.Unit5}\r\n \r\n \r\n {data.Unit6}\r\n \r\n \r\n {data.Unit7}\r\n \r\n \r\n {data.Unit8}\r\n \r\n \r\n {data.Unit9}\r\n \r\n \r\n {data.Unit10}\r\n \r\n \r\n {data.Unit11}\r\n \r\n \r\n {data.Unit12}\r\n \r\n \r\n {data.Unit13}\r\n \r\n \r\n {data.Unit14}\r\n \r\n \r\n {data.StoreID ===\r\n isShowGraph.find(\r\n (e) => e === data.StoreID\r\n ) ? (\r\n \r\n this.showGraph(data.StoreID, 0)\r\n }\r\n className=\"red-clr hides-graph\"\r\n >\r\n \r\n Show on Graph\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n {data.StoreID ===\r\n isRemoveGraph.find(\r\n (e) => e === data.StoreID\r\n ) ? (\r\n \r\n this.showGraph(data.StoreID, 1)\r\n }\r\n className=\"blue-clr shows-graph\"\r\n >\r\n \r\n Remove From Graph\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n \r\n
\r\n );\r\n break;\r\n }\r\n default: {\r\n return (\r\n \r\n \r\n
\r\n {data.StoreImage != \"\" ? (\r\n
\r\n \r\n this.getStoreStreeView(\r\n data.Latitude,\r\n data.Longitude,\r\n data.StoreName\r\n )\r\n }\r\n title=\"click here to view street view test\"\r\n >\r\n \r\n \r\n
\r\n ) : (\r\n \"\"\r\n )}\r\n
\r\n
\r\n {data.StoreName}\r\n
\r\n
\r\n {data.Proximity + \" \"}\r\n {CONFIG.RegionId == 2 ||\r\n CONFIG.RegionId == 4\r\n ? \"kilometre\"\r\n : \"mile\"}\r\n {data.Proximity <= 1 ? \"\" : \"s\"}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {data.Address}\r\n
\r\n
\r\n \r\n {data.Unit1}\r\n \r\n \r\n {data.Unit2}\r\n \r\n \r\n {data.Unit3}\r\n \r\n \r\n {data.Unit4}\r\n \r\n \r\n {data.Unit5}\r\n \r\n \r\n {data.Unit6}\r\n \r\n \r\n {data.Unit7}\r\n \r\n \r\n {data.Unit8}\r\n \r\n \r\n {data.Unit9}\r\n \r\n \r\n {data.Unit10}\r\n \r\n \r\n {data.Unit11}\r\n \r\n \r\n {data.Unit12}\r\n \r\n \r\n {data.Unit13}\r\n \r\n \r\n {data.Unit14}\r\n \r\n \r\n {data.Unit15}\r\n \r\n \r\n {data.StoreID ===\r\n isShowGraph.find(\r\n (e) => e === data.StoreID\r\n ) ? (\r\n \r\n this.showGraph(data.StoreID, 0)\r\n }\r\n className=\"red-clr hides-graph\"\r\n >\r\n \r\n Show on Graph\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n {data.StoreID ===\r\n isRemoveGraph.find(\r\n (e) => e === data.StoreID\r\n ) ? (\r\n \r\n this.showGraph(data.StoreID, 1)\r\n }\r\n className=\"blue-clr shows-graph\"\r\n >\r\n \r\n Remove From Graph\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n \r\n
\r\n );\r\n break;\r\n }\r\n }\r\n })\r\n : \"\"}\r\n
\r\n \r\n ) : (\r\n
\r\n {isLoading === false ? \"No Data Available\" : \"\"}\r\n
\r\n )}\r\n
\r\n
\r\n
\r\n \r\n
\r\n {snackMSg}}\r\n action={[\r\n \r\n \r\n ,\r\n ]}\r\n />\r\n
\r\n );\r\n }\r\n}\r\n","import React, { Component } from 'react';\r\nimport './MarketScore.css';\r\nimport Chart from \"react-apexcharts\";\r\nimport { Row, Col, Button, Modal, ModalHeader, ModalBody } from 'reactstrap';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Breadcrumbs from '@material-ui/core/Breadcrumbs';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport { HelpTextPopup } from './../HelpTextPopup/index';\r\nimport { Table as ReactTable } from 'reactstrap';\r\nimport Table from '@material-ui/core/Table';\r\nimport TableHead from '@material-ui/core/TableHead';\r\nimport TableBody from '@material-ui/core/TableBody';\r\nimport TableCell from '@material-ui/core/TableCell';\r\nimport TableRow from '@material-ui/core/TableRow';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport Snackbar from '@material-ui/core/Snackbar';\r\nimport TableFooter from '@material-ui/core/TableFooter';\r\nimport TablePagination from '@material-ui/core/TablePagination';\r\nimport FirstPageIcon from '@material-ui/icons/FirstPage';\r\nimport KeyboardArrowLeft from '@material-ui/icons/KeyboardArrowLeft';\r\nimport KeyboardArrowRight from '@material-ui/icons/KeyboardArrowRight';\r\nimport LastPageIcon from '@material-ui/icons/LastPage';\r\nimport TableSortLabel from '@material-ui/core/TableSortLabel';\r\nimport CloseIcon from '@material-ui/icons/Close';\r\nimport * as d3 from \"d3\";\r\nimport axios from 'axios';\r\nimport { CONFIG } from '../../utils/config';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { Link } from 'react-router-dom';\r\nimport addtomap from './../../Assets/Images/plus.png';\r\nimport removefrommap from './../../Assets/Images/trash.png';\r\nimport tableplus from './../../Assets/Images/table-plus.png';\r\nimport tableminus from './../../Assets/Images/table-minus.png';\r\nimport Tooltip from '@material-ui/core/Tooltip';\r\nimport { CompetitorStore } from '../CompetitorStore';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport moment from 'moment';\r\nimport { faFilePdf } from '@fortawesome/free-solid-svg-icons';\r\n\r\nconst actionsStyles = theme => ({\r\n tablepaggination: {\r\n flexShrink: 0,\r\n color: theme.palette.text.secondary,\r\n marginLeft: theme.spacing * 2.5,\r\n },\r\n});\r\n\r\nclass MyMarket extends React.Component {\r\n\r\n handleFirstPageButtonClick = event => {\r\n this.props.onChangePage(event, 0);\r\n };\r\n\r\n handleBackButtonClick = event => {\r\n this.props.onChangePage(event, this.props.page - 1);\r\n };\r\n\r\n handleNextButtonClick = event => {\r\n this.props.onChangePage(event, this.props.page + 1);\r\n };\r\n\r\n handleLastPageButtonClick = event => {\r\n this.props.onChangePage(\r\n event,\r\n Math.max(0, Math.ceil(this.props.count / this.props.rowsPerPage) - 1),\r\n );\r\n };\r\n\r\n\r\n render() {\r\n const { classes, count, page, rowsPerPage, theme } = this.props;\r\n\r\n return (\r\n
\r\n \r\n {theme.direction === 'rtl' ? : }\r\n \r\n \r\n {theme.direction === 'rtl' ? : }\r\n \r\n = Math.ceil(count / rowsPerPage) - 1}\r\n aria-label=\"Next Page\"\r\n >\r\n {theme.direction === 'rtl' ? : }\r\n \r\n = Math.ceil(count / rowsPerPage) - 1}\r\n aria-label=\"Last Page\"\r\n >\r\n {theme.direction === 'rtl' ? : }\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nconst MyMarketWrapped = withStyles(actionsStyles, { withTheme: true })(\r\n MyMarket,\r\n);\r\n\r\nexport default class MarketScore extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.compstorechild = React.createRef();\r\n\r\n this.state = {\r\n options: {\r\n chart: {\r\n id: 'apexchart-example',\r\n toolbar: {\r\n show: false\r\n }\r\n },\r\n legend: {\r\n show: false,\r\n },\r\n plotOptions: {\r\n bar: {\r\n distributed: true\r\n }\r\n },\r\n xaxis: {\r\n categories: [],\r\n show: false\r\n },\r\n yaxis: {\r\n show: false,\r\n\r\n },\r\n noData: {\r\n text: \"Please wait for the data to be loaded. The data volume is high and this might take a minute for loading the data.\",\r\n verticalAlign: 'top',\r\n style: {\r\n color: \"#5b95f6\",\r\n fontSize: '13px',\r\n fontFamily: \"Helvetica\"\r\n }\r\n },\r\n },\r\n series: [{\r\n name: '',\r\n data: []\r\n }],\r\n isLoading1: true,\r\n order: 'asc',\r\n orderBy: 'storeName',\r\n snackOpen: false,\r\n snackMSg: '',\r\n grapghCatcheck: 'Total',\r\n graphOpen: 'Total',\r\n MarkScoringData: [],\r\n MarkScoring: [],\r\n MarkStoreInfo: {},\r\n Markets: [],\r\n MarketsDesc: {},\r\n ChartTableData: {},\r\n GraphCompId: {},\r\n locationInfoData: {},\r\n pageCount: 0,\r\n trackModalData: '',\r\n storeModal: false,\r\n defaultWidth: 0,\r\n dialogOpen: false,\r\n MarketSCdet: {},\r\n Scorecard: [],\r\n uniquestores: [],\r\n snackClr: ''\r\n };\r\n this.handleRequestSort = this.handleRequestSort.bind(this);\r\n this.stableSort = this.stableSort.bind(this);\r\n this.getSorting = this.getSorting.bind(this);\r\n this.desc = this.desc.bind(this);\r\n this.onSelecCatGrapgh = this.onSelecCatGrapgh.bind(this);\r\n this.scoringData = this.scoringData.bind(this);\r\n this.drawChart = this.drawChart.bind(this);\r\n this.getParams = this.getParams.bind(this);\r\n this.dialogContentOpen = this.dialogContentOpen.bind(this);\r\n }\r\n\r\n getParams(storeAddress) {\r\n let storeId = parseInt(this.props.match.params.storeid);\r\n this.compstorechild.current.toggleStoreModal(storeAddress, storeId);\r\n }\r\n\r\n //Table Sorting \r\n handleRequestSort(event, property) {\r\n const { order, orderBy } = this.state;\r\n const isDesc = orderBy === property && order === 'desc';\r\n let sort = isDesc ? 'asc' : 'desc';\r\n this.setState({ order: sort, orderBy: property });\r\n }\r\n\r\n //Table Sorting order\r\n desc(a, b, orderBy) {\r\n if (b[orderBy] < a[orderBy]) {\r\n return -1;\r\n }\r\n if (b[orderBy] > a[orderBy]) {\r\n return 1;\r\n }\r\n return 0;\r\n }\r\n\r\n //Table Sorting the selected Column\r\n stableSort(array, cmp) {\r\n const stabilizedThis = array.map((el, index) => [el, index]);\r\n stabilizedThis.sort((a, b) => {\r\n const order = cmp(a[0], b[0]);\r\n if (order !== 0) return order;\r\n return a[1] - b[1];\r\n });\r\n return stabilizedThis.map(el => el[0]);\r\n }\r\n\r\n //Table Sorting Order Request\r\n getSorting(order, orderBy) {\r\n return order === 'desc' ? (a, b) => this.desc(a, b, orderBy) : (a, b) => -this.desc(a, b, orderBy);\r\n }\r\n\r\n //To open Particular Category's Graph \r\n onSelecCatGrapgh(openActGraph) {\r\n let activeRow = this.state.grapghCatcheck === openActGraph ? '' : openActGraph;\r\n activeRow === '' ?\r\n this.setState({ grapghCatcheck: activeRow, graphOpen: activeRow })\r\n :\r\n this.setState({ grapghCatcheck: activeRow, graphOpen: activeRow }, () => {\r\n this.drawChart();\r\n });\r\n }\r\n downLoadPDF() {\r\n // this.setState({ isLoading1: true });\r\n var currentDate = moment(new Date()).format(\"DD-MMM-YYYY\");\r\n let graphOpen = this.state.graphOpen === \"Total\" ? '1' : this.state.graphOpen === \"Website\" ? '2' : this.state.graphOpen === \"Search\" ? '3' : this.state.graphOpen === \"Paid Search\" ? '4' : this.state.graphOpen === \"Social Media\" ? '5' : this.state.graphOpen === \"Contactability\" ? '6' : '';\r\n let pta = this.state.order;\r\n let searchId = this.state.orderBy;\r\n let unitType = this.state.uniquestores ? this.state.uniquestores : '';\r\n let usId = parseInt(this.props.match.params.storeid);\r\n let accessKey = localStorage.getItem('SecretKey');\r\n var timestamp = new Date().getDate() + \"\" + new Date().getMonth() + \"\" + new Date().getFullYear() + \"\" + new Date().getTime();\r\n //construct filename for pdf report.\r\n var fileName = usId + \"MarketScoreCard\" + \"_\" + timestamp + \".pdf\";\r\n var stoName = this.state.locationInfoData && this.state.locationInfoData.storeName && this.state.locationInfoData.storeName !== null && this.state.locationInfoData.storeName !== '' && this.state.locationInfoData.storeName !== undefined ? this.state.locationInfoData.storeName : 'Your Store';\r\n var fileNamePdf = stoName + '_' + \"MarketScoreCard\" + '_' + currentDate + \".pdf\";\r\n this.setState({ snackClr: 'snack-info', snackOpen: true, snackMSg: 'Your download is being processed. The ' + fileNamePdf + ' file will download automatically to your browser when ready and Please do not close or reload the pages until download completes. We recommend you check your Downloads folder if you don’t see it in your browser.' });\r\n let ComponentName = 5;\r\n const Input = {\r\n \"RegionID\": CONFIG.RegionId,\r\n \"URL\": CONFIG.OPTZ_URL + \"render-pdf/\" + accessKey + '/' + ComponentName + '/0/' + usId + '/' + pta + \"/\" + searchId + \"/\" + graphOpen + \"/\" + unitType,\r\n \"FileName\": fileName,\r\n }\r\n // axios.post(CONFIG.API_URL + 'dashboard/generatepdfbypage', Input)\r\n axios(\r\n {\r\n url: CONFIG.API_URL + 'dashboard/generatepdfbypage',\r\n method: 'post',\r\n responseType: 'blob',\r\n data: Input\r\n })\r\n .then(response => {\r\n const blob = new Blob([response.data], { type: 'application/octet-stream' });\r\n const link = document.createElement('a');\r\n link.href = window.URL.createObjectURL(blob);\r\n link.download = fileNamePdf;\r\n link.dispatchEvent(\r\n new MouseEvent('click', {\r\n bubbles: true,\r\n cancelable: true,\r\n view: window\r\n })\r\n );\r\n setTimeout(() => {\r\n // For Firefox it is necessary to delay revoking the ObjectURL\r\n window.URL.revokeObjectURL(link.href);\r\n link.remove();\r\n }, 3000);\r\n this.setState({ isLoading: false });\r\n })\r\n .catch((err) => {\r\n this.setState({ isLoading1: false });\r\n })\r\n }\r\n\r\n componentDidMount() {\r\n let token = localStorage.getItem('accessKey');\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n }\r\n\r\n // For Current Store Info\r\n const data = {\r\n \"UserStoreID\": parseInt(this.props.match.params.storeid),\r\n \"RegionId\": CONFIG.RegionId\r\n };\r\n axios.post(CONFIG.API_URL + 'dashboard/dashboardlocation', data)\r\n .then(response => {\r\n const locationInfoData = response.data.data.storeDashboard;\r\n this.setState({ locationInfoData });\r\n }).catch((err) => {\r\n if (err.response.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else if (err.response.status === 403) {\r\n const { from } = this.props.location.state || { from: { pathname: \"/UnauthorizedAccess\" } };\r\n this.props.history.push(from);\r\n }\r\n else {\r\n alert(err.response.data);\r\n }\r\n });\r\n\r\n //For Graph and Table Content\r\n const Storedata = {\r\n \"UserStoreID\": parseInt(this.props.match.params.storeid),\r\n \"RegionId\": CONFIG.RegionId\r\n };\r\n axios.post(CONFIG.API_URL + 'Dashboard/marketscoring', Storedata)\r\n .then(res => {\r\n let MarkScoring = res.data.data.scorings;\r\n let MarkStoreInfo = res.data.data.storeInformation;\r\n let Markets = res.data.data.markets;\r\n let MarketsDesc = res.data.data.marketDescriptions;\r\n this.setState({ MarkScoring, MarkStoreInfo, Markets, MarketsDesc });\r\n this.scoringData();\r\n })\r\n .catch(err => {\r\n if (err.response.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else if (err.response.status === 403) {\r\n const { from } = this.props.location.state || { from: { pathname: \"/UnauthorizedAccess\" } };\r\n this.props.history.push(from);\r\n }\r\n else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }\r\n\r\n snackHandleclose = (event, reason) => {\r\n if (reason === 'clickaway') {\r\n return;\r\n }\r\n this.setState({ snackOpen: false });\r\n };\r\n\r\n barhandleChange(CompId) {\r\n //loader \r\n this.setState({ isLoading1: true });\r\n\r\n //getting the ids of to show or hide the graph data\r\n let GraphshowData = this.state.MarkScoring.filter(function (data) {\r\n return data.isSelected === true && data.storeId !== CompId;\r\n });\r\n\r\n if (GraphshowData.length > 7) {\r\n this.setState({ isLoading1: false, snackOpen: true, snackMSg: 'You can view up to 8 markets only, please remove any of the selected markets to add new ones.' });\r\n }\r\n else {\r\n\r\n //to change the selected value which clicked on table\r\n let uniquestore = [...new Set(this.state.MarkScoring.filter(function (data) {\r\n return data.isSelected === true ? data.storeId !== CompId : data.storeId === CompId\r\n }).map(item => item.storeId))].join(', ');\r\n //forloop\r\n let uniquestores = [...new Set(this.state.MarkScoring.filter(function (data) {\r\n return data.isSelected === true ? data.storeId !== CompId : data.storeId === CompId\r\n }).map(item => item.storeId))].join('/');\r\n\r\n //If User Remove all Markets, then uniquestore should be 0\r\n uniquestore = uniquestore === '' ? 0 : uniquestore;\r\n uniquestores = uniquestores === '' ? 0 : uniquestores;\r\n this.setState({ uniquestores });\r\n\r\n for (var i = 0; i < this.state.MarkScoring.length; i++) {\r\n if (this.state.MarkScoring[i].storeId === CompId) {\r\n this.state.MarkScoring[i].isSelected = this.state.MarkScoring[i].isSelected === true ? false : true;\r\n }\r\n }\r\n let MarkScoring = this.state.MarkScoring;\r\n\r\n let token = localStorage.getItem('accessKey');\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n }\r\n const data = {\r\n \"UserStoreID\": parseInt(this.props.match.params.storeid),\r\n \"Competitors\": uniquestore,\r\n \"RegionId\": CONFIG.RegionId\r\n };\r\n axios.post(CONFIG.API_URL + 'Dashboard/marketscoringgraph', data)\r\n .then(res => {\r\n this.setState({ Markets: [], MarkScoringData: [], ChartTableData: {} });\r\n let Markets = res.data.data.markets;\r\n this.setState({ Markets, MarkScoring });\r\n this.scoringData();\r\n })\r\n .catch(err => {\r\n if (err.response.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }\r\n }\r\n\r\n //To Assign the data for particular bar and tables\r\n scoringData() {\r\n const { MarkScoring, MarkStoreInfo, Markets, MarketsDesc } = this.state;\r\n /* Spliting the data in the order of StoreID In Scoring Tabl */\r\n let MarkScoringData = this.state.MarkScoringData;\r\n MarkScoringData.push({\r\n 'statdata': MarkScoring.filter(function (data) {\r\n return data.storeId < 1 || data.isMyMarket === 1;\r\n }), 'dynamdata': MarkScoring.filter(function (data) {\r\n return data.storeId > 0 && data.isMyMarket !== 1;\r\n })\r\n });\r\n /* End of Spliting the data in the order of StoreID In Scoring Table */\r\n\r\n //Checking for data availability\r\n let AvailDataCheck = [];\r\n AvailDataCheck = Markets.filter(function (data) {\r\n return data.storeId > 0;\r\n });\r\n\r\n\r\n let ChartTableData = this.state.ChartTableData;\r\n if (Markets.length > 0 && AvailDataCheck.length > 0) {\r\n\r\n /* Spliting the data in the order of activityType */\r\n ChartTableData['lahMarkets'] = [];\r\n\r\n //For Total data\r\n ChartTableData['lahMarkets'].push({\r\n 'tr1': Markets.filter(function (data) {\r\n return data.storeId < 1 && data.activityType === 'Total';\r\n }), 'tr2': Markets.filter(function (data) {\r\n return data.isMyStore === true && data.activityType === 'Total';\r\n })\r\n });\r\n\r\n //For Website data\r\n ChartTableData['lahMarkets'].push({\r\n 'tr1': Markets.filter(function (data) {\r\n return data.storeId < 1 && data.activityType === 'Website';\r\n }), 'tr2': Markets.filter(function (data) {\r\n return data.isMyStore === true && data.activityType === 'Website';\r\n })\r\n });\r\n\r\n //For Website data\r\n ChartTableData['lahMarkets'].push({\r\n 'tr1': Markets.filter(function (data) {\r\n return data.storeId < 1 && data.activityType === 'Search';\r\n }), 'tr2': Markets.filter(function (data) {\r\n return data.isMyStore === true && data.activityType === 'Search';\r\n })\r\n });\r\n\r\n //For Paid Search data\r\n ChartTableData['lahMarkets'].push({\r\n 'tr1': Markets.filter(function (data) {\r\n return data.storeId < 1 && data.activityType === 'Paid Search';\r\n }), 'tr2': Markets.filter(function (data) {\r\n return data.isMyStore === true && data.activityType === 'Paid Search';\r\n })\r\n });\r\n\r\n //For Social Media data\r\n ChartTableData['lahMarkets'].push({\r\n 'tr1': Markets.filter(function (data) {\r\n return data.storeId < 1 && data.activityType === 'Social Media';\r\n }), 'tr2': Markets.filter(function (data) {\r\n return data.isMyStore === true && data.activityType === 'Social Media';\r\n })\r\n });\r\n\r\n //For Contactability data\r\n ChartTableData['lahMarkets'].push({\r\n 'tr1': Markets.filter(function (data) {\r\n return data.storeId < 1 && data.activityType === 'Contactability';\r\n }), 'tr2': Markets.filter(function (data) {\r\n return data.isMyStore === true && data.activityType === 'Contactability';\r\n })\r\n });\r\n\r\n /* end of Spliting the data in the order of activityType */\r\n\r\n /* Barchart table's Head data */\r\n ChartTableData['TableHead'] = Markets.filter(function (data) {\r\n return data.storeId > 0 && data.activityType === 'Total' || data.storeId < -2 && data.activityType === 'Total';\r\n });\r\n /* end of Barchart table's Head data */\r\n\r\n /* Barchart table's body data */\r\n ChartTableData['TableBody'] = [];\r\n\r\n //For Total data\r\n ChartTableData['TableBody'].push({\r\n 'td1': 'Total', 'td2': Markets.filter(function (data) {\r\n return data.storeId > 0 && data.activityType === 'Total' || data.storeId < -2 && data.activityType === 'Total';\r\n })\r\n });\r\n\r\n //For Website data\r\n ChartTableData['TableBody'].push({\r\n 'td1': 'Website', 'td2': Markets.filter(function (data) {\r\n return data.storeId > 0 && data.activityType === 'Website' || data.storeId < -2 && data.activityType === 'Website';\r\n })\r\n });\r\n\r\n //For Search data\r\n ChartTableData['TableBody'].push({\r\n 'td1': 'Search', 'td2': Markets.filter(function (data) {\r\n return data.storeId > 0 && data.activityType === 'Search' || data.storeId < -2 && data.activityType === 'Search';\r\n })\r\n });\r\n\r\n //For Paid Search data\r\n ChartTableData['TableBody'].push({\r\n 'td1': 'Paid Search', 'td2': Markets.filter(function (data) {\r\n return data.storeId > 0 && data.activityType === 'Paid Search' || data.storeId < -2 && data.activityType === 'Paid Search';\r\n })\r\n });\r\n\r\n //For Social Media data\r\n ChartTableData['TableBody'].push({\r\n 'td1': 'Social Media', 'td2': Markets.filter(function (data) {\r\n return data.storeId > 0 && data.activityType === 'Social Media' || data.storeId < -2 && data.activityType === 'Social Media';\r\n })\r\n });\r\n\r\n //For Contactability data\r\n ChartTableData['TableBody'].push({\r\n 'td1': 'Contactability', 'td2': Markets.filter(function (data) {\r\n return data.storeId > 0 && data.activityType === 'Contactability' || data.storeId < -2 && data.activityType === 'Contactability';\r\n })\r\n });\r\n\r\n /* end of Barchart table's body data */\r\n }\r\n this.setState({ MarkScoringData, MarkStoreInfo, MarketsDesc, Markets, ChartTableData, isLoading1: false });\r\n this.drawChart();\r\n }\r\n\r\n //Formatted in as per competitor\r\n // formData(data) {\r\n // let uniquestore = [...new Set(data.map(item => item.storeId))];\r\n // let CurrentActivity = this.state.grapghCatcheck;\r\n // let Colorbarcode = ['#f69e4f', '#1b2c42', '#5b95f6', '#f96a5d', '#3ea7a1', '#83ce83', '#fac05f', '#959595'];\r\n // var FData = [];\r\n\r\n // for (var t = 0; t < uniquestore.length; t++) {\r\n // var tFData = data.filter(a => a.storeId == uniquestore[t] && a.activityType === CurrentActivity);\r\n // var mData = {};\r\n // if (tFData) {\r\n // mData = {\r\n // StoreID: uniquestore[t],\r\n // StoreName: tFData[0].storeName,\r\n // Score: tFData[0].score,\r\n // act: tFData[0].activityType,\r\n // Gcolor: Colorbarcode[t],\r\n // IsSelected: tFData[0].isSelected\r\n // }\r\n // }\r\n // FData.push(mData);\r\n // }\r\n // return FData;\r\n // }\r\n\r\n //Bar Chart\r\n drawChart() {\r\n let { Markets, grapghCatcheck } = this.state;\r\n let actualData = [];\r\n let colorsData = [];\r\n let storeName = [];\r\n let maxScore = 0;\r\n let colorsCode = ['#f69e4f', '#1b2c42', '#5b95f6', '#f96a5d', '#3ea7a1', '#83ce83', '#fac05f', '#959595'];\r\n let filterMarkets = Markets.filter(fl => fl.storeId > 0 || fl.storeId < -2);\r\n let uniquestore = [...new Set(filterMarkets.map(item => item.storeId))];\r\n for (var t = 0; t < uniquestore.length; t++) {\r\n var tFData = filterMarkets.filter(a => a.storeId === uniquestore[t] && a.activityType === grapghCatcheck);\r\n let noValues = tFData.every(item => item.score === null || item.score === '' || item.score === undefined);\r\n if (!noValues) {\r\n let dataSeries = tFData[0].score;\r\n let storageName = tFData[0].storeName;\r\n maxScore = tFData[0].totalScore;\r\n actualData.push(dataSeries);\r\n storeName.push(storageName);\r\n colorsData.push(colorsCode[t]);\r\n }\r\n }\r\n\r\n const options = {\r\n colors: colorsData,\r\n chart: {\r\n \r\n id: `apexchart-example${Math.random()}`, //when the state updates randam id has to change to render the changes\r\n toolbar: {\r\n show: false\r\n },\r\n },\r\n tooltip: {\r\n enabled: true,\r\n showForNullSeries: false,\r\n x: {\r\n formatter: function (value) {\r\n let val = value === undefined || typeof (value) !== \"string\" ? '' : value;\r\n return val;\r\n }\r\n },\r\n onDatasetHover: {\r\n highlightDataSeries: false,\r\n },\r\n style: {\r\n fontSize: '11px',\r\n fontFamily: \"Roboto, Helvetica, Arial , sans-serif\"\r\n },\r\n },\r\n yaxis: {\r\n \r\n min: 0,\r\n max: maxScore,\r\n tickAmount: 5,\r\n labels: {\r\n formatter: function (value) {\r\n return value === 0 ? \"\" : `${value.toFixed(0)}/${maxScore ? maxScore : 0}`;\r\n },\r\n style: {\r\n colors: '#140000',\r\n fontSize: '10px'\r\n },\r\n },\r\n },\r\n plotOptions: {\r\n bar: {\r\n distributed: true,\r\n borderRadius: 5,\r\n dataLabels: {\r\n position: 'top',\r\n },\r\n columnWidth: '25%',\r\n barHeight: '50%',\r\n },\r\n },\r\n dataLabels: {\r\n enabled: true,\r\n offsetY: -20,\r\n style: {\r\n fontSize: '10px',\r\n colors: [\"#304758\"]\r\n },\r\n formatter: function (val, opts) {\r\n return val === 0 ? '' : val;\r\n },\r\n },\r\n grid: { show: false },\r\n xaxis: {\r\n categories: storeName,\r\n labels: {\r\n show: true,\r\n rotate: 0,\r\n hideOverlappingLabels: false,\r\n trim: true,\r\n formatter: function (value) {\r\n let val = value === undefined || typeof (value) !== \"string\" ? '' : value.toUpperCase();\r\n return val;\r\n },\r\n style: {\r\n colors: '#8C9AA6',\r\n fontSize: '10px'\r\n },\r\n }\r\n },\r\n legend: {\r\n show: false,\r\n }\r\n }\r\n\r\n const series = [{\r\n name: '',\r\n data: actualData\r\n }]\r\n\r\n if (actualData.length > 0) {\r\n this.setState({ options, series })\r\n } else {\r\n this.setState({\r\n options: {\r\n chart: {\r\n id: 'apexchart-example'\r\n },\r\n noData: {\r\n text: \"No Data Available.\",\r\n align: 'center',\r\n verticalAlign: 'top',\r\n offsetX: 0,\r\n offsetY: 0,\r\n style: {\r\n color: \"#F60000\",\r\n fontSize: '20px',\r\n fontFamily: \"Helvetica\"\r\n }\r\n },\r\n yaxis: { show: false },\r\n grid: { show: false },\r\n xaxis: {\r\n labels: {\r\n show: false\r\n },\r\n }\r\n },\r\n series: []\r\n })\r\n }\r\n }\r\n\r\n // Text Wrap For Graph X-axis label\r\n /* Score Card Dialog box functions */\r\n dialogContentOpen(id, YS_data) {\r\n this.setState({\r\n isLoading1: true\r\n })\r\n let token = localStorage.getItem('accessKey');\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n }\r\n const data = {\r\n \"StoreId\": parseInt(id),\r\n \"RegionId\": CONFIG.RegionId\r\n };\r\n axios.post(CONFIG.API_URL + 'dashboard/marketscorecard', data)\r\n .then(res => {\r\n //let Scorecard = res.data.scoreCard.marketScoreCardDetails;\r\n let ScorecardDet = res.data.scoreCard.marketScoreCardDetails;\r\n let MarketSCdet = this.state.MarketSCdet;\r\n\r\n if (ScorecardDet.length > 0) {\r\n //to get Market Details\r\n MarketSCdet.id = [...new Set(ScorecardDet.map(item => item.storeId))];\r\n MarketSCdet.StoreName = YS_data === 'YourStore' ? ['Your Store'] : [...new Set(ScorecardDet.map(item => item.storeName))];\r\n MarketSCdet.StoreAddress = [...new Set(ScorecardDet.map(item => item.address))];\r\n MarketSCdet.CheckDate = [...new Set(ScorecardDet.map(item => item.dtCollected))];\r\n MarketSCdet.M_TotScore = [...new Set(ScorecardDet.map(item => item.totalScore))];\r\n\r\n\r\n //For Market Score Card For Map Details \r\n let uniquemscore = [...new Set(ScorecardDet.map(item => item.marketingActivity))];\r\n var Scorecard = [];\r\n for (var t = 0; t < uniquemscore.length; t++) {\r\n var tempData = ScorecardDet.filter(a => a.marketingActivity == uniquemscore[t]);\r\n for (var s = 0; s < tempData.length; s++) {\r\n var inlineData = {\r\n storeId: tempData[s].storeId,\r\n storeName: tempData[s].storeName,\r\n address: tempData[s].address,\r\n marketingActivity: s === 0 ? tempData[s].marketingActivity : 'empty',\r\n name: tempData[s].name,\r\n score: tempData[s].score,\r\n activityScore: tempData[s].activityScore,\r\n activityScoreTotal: tempData[s].activityScoreTotal,\r\n totalScore: tempData[s].totalScore,\r\n dtCollected: tempData[s].dtCollected,\r\n id: tempData[s].id,\r\n rowcount: s === 0 ? tempData.length : 0,\r\n color: t % 2 ? 'odd-m-score' : 'even-m-score'\r\n }\r\n Scorecard.push(inlineData);\r\n }\r\n }\r\n this.setState({ dialogOpen: true, Scorecard, MarketSCdet, isLoading1: false });\r\n }\r\n else {\r\n this.setState({ MarketSCdet, isLoading1: false, snackOpen: true, snackMSg: 'Score Card is not available in this market.' });\r\n }\r\n })\r\n .catch(err => {\r\n this.setState({ isLoading1: false });\r\n if (err.response.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }\r\n\r\n dialogClose() {\r\n this.setState({ dialogOpen: false, MarketSCdet: {}, Scorecard: [] });\r\n }\r\n /* End of Score Card Dialog box functions */\r\n\r\n handleChangePageTrack = (event, pageCount) => {\r\n this.setState({ pageCount });\r\n };\r\n\r\n handleChangeRowsPerPageTrack = event => {\r\n this.setState({ pageCount: 0, 10: event.target.value });\r\n };\r\n\r\n render() {\r\n const { order, orderBy, grapghCatcheck, graphOpen, MarkScoringData, MarkStoreInfo, ChartTableData, MarketsDesc, snackOpen, snackMSg,\r\n locationInfoData, isLoading1, trackModalData, pageCount, Markets, MarketSCdet, Scorecard } = this.state;\r\n let ComActivityType = ['Total', 'Website', 'Search', 'Paid Search', 'Social Media', 'Contactability'];\r\n let Colors = ['mystorebarclr', 'barclr1', 'barclr2', 'barclr3', 'barclr4', 'barclr5', 'barclr6', 'barclr7'];\r\n const defaultProps = {\r\n helpTitle: Marketing Scorecard - an explanation,\r\n helpContent: \"

The StorTrack Marketing Scorecard is a devised scoring mechanism for judging the activity and effectiveness of a Store's local marketing, so as to enable us to create a methodology for comparison and competitive insight.

The Scorecard is created by monitoring 5 different areas of a Store's marketing activities: it's website, it's organic presence on search engines, it's paid placement in search engines, the social media presence of the Store and finally how easy the Store makes it for potential new tenants to contact it. In each of these five categories, StorTrack has created a weighted scoring process that then rolls up to a category score. The category scores are what you see on the Marketing Scorecard page and the method by which we compare Stores side-by-side.

The Scoring Process is detailed in the attached PDF. Please click the link to download the full Scoring methodology. Click here

For any further information on StorTrack's Marketing Scorecard please contact Support directly.

*Your store scoring is included in the calculations.

Refer the below help video for more information.

\"\r\n }\r\n return (\r\n
\r\n {isLoading1 ?
: ''}\r\n \r\n\r\n {localStorage.getItem('isMVP_User') === \"false\" ? My Markets : \"\"}\r\n\r\n Go to Market Dashboard\r\n\r\n Marketing Scorecard \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n

Marketing Scorecard

\r\n \r\n {isLoading1 && (locationInfoData.compsCount === 0 || locationInfoData.compsCount === null) ? '' : locationInfoData.compsCount === 0 || locationInfoData.compsCount === null ?

Analyzing N/A

:\r\n

Analyzing this.getParams(locationInfoData)}>{locationInfoData !== null && locationInfoData.compsCount ? parseInt(locationInfoData.compsCount) > 1 ? locationInfoData.compsCount + ' stores' : locationInfoData.compsCount + ' store' : 'N/A'}

\r\n }\r\n \r\n {isLoading1 && locationInfoData.length === 0 ? '' :\r\n \r\n

{locationInfoData !== null && locationInfoData.storeName ? locationInfoData.storeName : 'Your Store'}

\r\n
24 ? \"pd-btm-35\" : \"pd-btm-20\" : \"pd-btm-20\"}>

{locationInfoData !== null && locationInfoData.storeAddress1 ? locationInfoData.storeAddress1.trim() + ', ' : ''}{locationInfoData !== null && locationInfoData.storeAddress2 ? locationInfoData.storeAddress2 + ', ' : ''}{locationInfoData !== null && locationInfoData.storeCity ? locationInfoData.storeCity + ', ' : locationInfoData.searchType === 1 && (locationInfoData.storeCity === null || locationInfoData.storeCity === '') && (locationInfoData.storeZipCode === null || locationInfoData.storeZipCode === '') ? locationInfoData.latitude + ', ' + locationInfoData.longitude + ', ' : ''}{locationInfoData !== null && locationInfoData.storeState ? locationInfoData.storeState : ''} {locationInfoData !== null && locationInfoData.storeZipCode ? locationInfoData.storeZipCode : ''}

\r\n

Coverage: {locationInfoData !== null && locationInfoData.storeZoneCoverage ? locationInfoData.storeZoneCoverage : '0 mile radius'}

\r\n \r\n }\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
Current Weakest Marketing Area
\r\n {MarkStoreInfo.weakestMarketingArea ?
{MarkStoreInfo.weakestMarketingArea}
: ''}\r\n
{MarkStoreInfo.weakestMarketingAreaScore >= 0 && MarkStoreInfo.weakestMarketingAreaScore !== null ? MarkStoreInfo.weakestMarketingAreaScore + '/' + MarkStoreInfo.weakestMarketingAreaTotalScroe : isLoading1 === false ? 'N/A' : ''} {MarkStoreInfo.strongestMarketingAreaScore ? (Average) : ''}
\r\n \r\n \r\n
Current Strongest Marketing Area
\r\n {MarkStoreInfo.strongestMarketingArea ?
{MarkStoreInfo.strongestMarketingArea}
: ''}\r\n
{MarkStoreInfo.strongestMarketingAreaScore >= 0 && MarkStoreInfo.strongestMarketingAreaScore !== null ? MarkStoreInfo.strongestMarketingAreaScore + '/' + MarkStoreInfo.strongestMarketingAreaTotalScroe : isLoading1 === false ? 'N/A' : ''} {MarkStoreInfo.strongestMarketingAreaScore ? (Average) : ''}
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n {/* Download Pdf */}\r\n
\r\n \r\n \r\n \r\n
\r\n

Marketing Activity Analysis Go to All Market View to Add/Remove Stores

\r\n
\r\n \r\n {Markets && Markets.length > 0 ?\r\n \r\n \r\n
\r\n \r\n \r\n {ChartTableData.TableHead && ChartTableData.TableHead.length > 0 ?\r\n \r\n \r\n Marketing Activity\r\n {ChartTableData.TableHead.map((th_data, index) => {\r\n let sAddress = th_data.address ? ', \\n' + th_data.address : '';\r\n const text =
{th_data.storeName + sAddress}
\r\n let dotline;\r\n let storName;\r\n if (ChartTableData.TableHead.length > 5) {\r\n dotline = th_data.storeName.length > 18 ? '..' : '';\r\n storName = th_data.storeName.substring(0, 18) + dotline;\r\n }\r\n else if (ChartTableData.TableHead.length === 4 || ChartTableData.TableHead.length === 5) {\r\n dotline = th_data.storeName.length > 40 ? '..' : '';\r\n storName = th_data.storeName.substring(0, 40) + dotline;\r\n }\r\n else {\r\n storName = th_data.storeName;\r\n }\r\n return (\r\n {storName}\r\n );\r\n })}\r\n \r\n \r\n {ChartTableData.TableHead.map((th_sc_data, index) => {\r\n var mystore_chk = th_sc_data.isMyStore === true ? 'YourStore' : '';\r\n return (\r\n this.dialogContentOpen(th_sc_data.storeId, mystore_chk)}>see scorecard\r\n );\r\n })}\r\n \r\n
\r\n :\r\n \r\n Marketing Activity\r\n \r\n }\r\n \r\n \r\n {ChartTableData.TableBody && ChartTableData.TableBody.length > 0 ? ChartTableData.TableBody.map((row1, index) => {\r\n return (\r\n \r\n \r\n \r\n {row1.td1}\r\n {grapghCatcheck === row1.td1 ?\r\n \r\n :\r\n \r\n }\r\n \r\n {row1.td2.map((row) => {\r\n return (\r\n \r\n {row.score + '/' + row.totalScore}\r\n \r\n );\r\n })}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n })\r\n :\r\n \r\n N/A\r\n {/* */}\r\n \r\n }\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n Market Low\r\n Market Average\r\n Market High\r\n \r\n \r\n \r\n {ChartTableData.lahMarkets && ChartTableData.lahMarkets.length > 0 ? ChartTableData.lahMarkets.map((tr1data, index) => {\r\n return (\r\n \r\n \r\n {tr1data.tr1.map((td, index) => {\r\n if (td.storeId !== -3) {\r\n return (\r\n \r\n {td.storeName === \"Market Low\" ?\r\n {td.score + '/' + td.totalScore}\r\n :\r\n td.storeName === \"Market Average\" ?\r\n {td.score + '/' + td.totalScore}\r\n :\r\n td.storeName === \"Market High\" ?\r\n {td.score + '/' + td.totalScore}\r\n :\r\n N/A\r\n }\r\n \r\n );\r\n }\r\n })}\r\n \r\n\r\n {tr1data.tr2.length > 0 ? tr1data.tr2.map((rowdata, index) => {\r\n let percentage = Number(((rowdata.score / rowdata.totalScore) * 100).toFixed(2));\r\n return (\r\n \r\n \r\n
\r\n Your Score\r\n {rowdata.score >= 0 ? rowdata.score + '/' + rowdata.totalScore : 'N/A'}\r\n {rowdata.score >= 0 ? {percentage}% : ''}\r\n {rowdata.myStoreRank ?
{rowdata.myStoreRank}
: ''}\r\n
\r\n \r\n \r\n );\r\n })\r\n :\r\n \r\n \r\n
\r\n Your Score\r\n N/A\r\n
\r\n \r\n \r\n }\r\n
\r\n );\r\n })\r\n :\r\n \r\n N/A\r\n \r\n }\r\n \r\n
\r\n
\r\n \r\n
\r\n :\r\n \r\n {isLoading1 === false ? 'There are no competitors available in this market.' : ''}\r\n \r\n\r\n }\r\n
\r\n {Markets && Markets.length > 0 ?\r\n \r\n \r\n \r\n \r\n \r\n This market is considered\r\n {MarketsDesc.marketScoreValue ? MarketsDesc.marketScoreValue : ''}\r\n {MarketsDesc ? MarketsDesc.marketScore : ''}\r\n \r\n \r\n \r\n \r\n The most competitive Store is\r\n {MarketsDesc.highestMarketName ? MarketsDesc.highestMarketName : ''}\r\n {MarketsDesc ? MarketsDesc.highestMarket : ''}\r\n \r\n \r\n \r\n \r\n The lowest Marketing Activity area is\r\n {MarketsDesc.lowestMarketActivity ? MarketsDesc.lowestMarketActivity : ''}\r\n {MarketsDesc.lowestMarket ? MarketsDesc.lowestMarket : 'There are no competitors available in this market.'}\r\n \r\n \r\n \r\n \r\n \r\n :\r\n ''}\r\n \r\n \r\n
\r\n

All Market View Go to Core Market View

\r\n
\r\n \r\n \r\n \r\n\r\n {MarkScoringData ?\r\n MarkScoringData.map((msd, index) => {\r\n return (\r\n \r\n \r\n {msd.statdata.map((row1, index) => {\r\n const labelId = index;\r\n return (\r\n \r\n \r\n {row1.storeName}\r\n \r\n {row1.score !== null ? row1.score + '/' + row1.totalScore + '(' + row1.totalPercent + '%)' : 'N/A'}\r\n {row1.websiteScore !== null ? row1.websiteScore + '/' + row1.websiteScoreTotal + '(' + row1.websiteScorePercent + '%)' : 'N/A'}\r\n {row1.searchScore !== null ? row1.searchScore + '/' + row1.searchScoreTotal + '(' + row1.searchScorePercent + '%)' : 'N/A'}\r\n {row1.paidScore !== null ? row1.paidScore + '/' + row1.paidScoreTotal + '(' + row1.paidScorePercent + '%)' : 'N/A'}\r\n {row1.socialMediaScore !== null ? row1.socialMediaScore + '/' + row1.socialMediaScoreTotal + '(' + row1.socialMediaScorePercent + '%)' : 'N/A'}\r\n {row1.contactabilityScore !== null ? row1.contactabilityScore + '/' + row1.contactabilityScoreTotal + '(' + row1.contactabilityScorePercent + '%)' : 'N/A'}\r\n {row1.isMyMarket === 1 ? this.dialogContentOpen(row1.storeId, 'YourStore')}>See Full Scorecard : ''}\r\n \r\n \r\n )\r\n })}\r\n \r\n \r\n {this.stableSort(msd.dynamdata, this.getSorting(order, orderBy)).map((row, index) => {\r\n const labelId = index;\r\n return (\r\n 0 ? '' : \"disabled_color\"}>\r\n \r\n {row.storeName}\r\n {row.address}\r\n \r\n {row.score !== null ? row.score + '/' + row.totalScore + '(' + row.totalPercent + '%)' : 'N/A'}\r\n {row.websiteScore !== null ? row.websiteScore + '/' + row.websiteScoreTotal + '(' + row.websiteScorePercent + '%)' : 'N/A'}\r\n {row.searchScore !== null ? row.searchScore + '/' + row.searchScoreTotal + '(' + row.searchScorePercent + '%)' : 'N/A'}\r\n {row.paidScore !== null ? row.paidScore + '/' + row.paidScoreTotal + '(' + row.paidScorePercent + '%)' : 'N/A'}\r\n {row.socialMediaScore !== null ? row.socialMediaScore + '/' + row.socialMediaScoreTotal + '(' + row.socialMediaScorePercent + '%)' : 'N/A'}\r\n {row.contactabilityScore !== null ? row.contactabilityScore + '/' + row.contactabilityScoreTotal + '(' + row.contactabilityScorePercent + '%)' : 'N/A'}\r\n this.dialogContentOpen(row.storeId, '')}>See Full Scorecard\r\n \r\n {row.storeId > 0 ?\r\n
\r\n {row.score !== null ? row.isSelected === true ?\r\n \r\n :\r\n \r\n : ''}\r\n
\r\n : ''}\r\n
\r\n
\r\n );\r\n })}\r\n
\r\n
\r\n );\r\n })\r\n :\r\n \r\n \r\n {isLoading1 === false ? 'There are no competitors available in this market.' : ''}\r\n \r\n \r\n }\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n ]}\r\n message={{snackMSg}}\r\n\r\n />\r\n
\r\n \r\n \r\n Marketing Activity Scorecard\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n

\r\n \r\n
Store Details:
\r\n {isLoading1 === false ?\r\n
\r\n {MarketSCdet.StoreName ? MarketSCdet.StoreName.length > 0 ? MarketSCdet.StoreName[0] + ',' : 'N/A' : 'N/A'}
{MarketSCdet.StoreAddress ? MarketSCdet.StoreAddress.length > 0 ? MarketSCdet.StoreAddress[0] : '' : ''}\r\n
: ''}\r\n
\r\n

\r\n \r\n \r\n

Last Checked: {isLoading1 === false ? {MarketSCdet.CheckDate ? MarketSCdet.CheckDate.length > 0 ? moment(MarketSCdet.CheckDate[0]).format('DD-MMM-YYYY') : 'N/A' : 'N/A'} : ''}

\r\n

Total Score: {isLoading1 === false ? {MarketSCdet.M_TotScore ? MarketSCdet.M_TotScore.length > 0 ? MarketSCdet.M_TotScore + '/100' : 'N/A' : 'N/A'} : ''}

\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n MARKETING ACTIVITY\r\n CATEGORY\r\n SCORE\r\n TOTAL\r\n \r\n \r\n \r\n {Scorecard.length > 0 ? Scorecard.map((data, index) => {\r\n return (\r\n \r\n {data.marketingActivity !== 'empty' ?\r\n 0 ? data.rowcount : 0} className={data.rowcount > 0 ? 'border-right-cell font-16-td' : 'font-16-td'}>{data.marketingActivity}\r\n : ''}\r\n {data.name}\r\n {data.score}\r\n {data.marketingActivity !== 'empty' ?\r\n 0 ? data.rowcount : 0} className={data.rowcount > 0 ? 'border-left-cell font-20-td' : 'font-20-td'}>{data.activityScore + '/' + data.activityScoreTotal}\r\n : ''}\r\n \r\n );\r\n })\r\n :\r\n \r\n {isLoading1 === false ? 'No data Available' : ''}\r\n \r\n }\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\n\r\n//Listing and Sorting Table's Head\r\nfunction EnhancedTableHead(props) {\r\n const { order, orderBy, onRequestSort } = props;\r\n const createSortHandler = property => event => {\r\n onRequestSort(event, property);\r\n };\r\n const headRows = [\r\n { id: 'storeName', numeric: false, disablePadding: true, label: 'Name' },\r\n { id: 'score', numeric: true, disablePadding: false, label: 'Total Score' },\r\n { id: 'websiteScore', numeric: true, disablePadding: false, label: 'Website' },\r\n { id: 'searchScore', numeric: true, disablePadding: false, label: 'Search' },\r\n { id: 'paidScore', numeric: true, disablePadding: false, label: 'Paid Search' },\r\n { id: 'socialMediaScore', numeric: true, disablePadding: false, label: 'Social Media' },\r\n { id: 'contactabilityScore', numeric: true, disablePadding: false, label: 'Contact' },\r\n { id: 'scorecard', numeric: true, disablePadding: false, label: 'Scorecard' },\r\n { id: 'moreoptions', numeric: true, disablePadding: false, label: 'More Options' }\r\n ];\r\n\r\n return (\r\n \r\n \r\n {headRows.map(row => (\r\n \r\n \r\n {row.label}\r\n \r\n \r\n ))}\r\n \r\n \r\n );\r\n} ","import React, { Component } from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport \"./InventoryAvailability.css\";\r\nimport { HelpTextPopup } from \"./../HelpTextPopup/index\";\r\nimport Table from \"@material-ui/core/Table\";\r\nimport TableBody from \"@material-ui/core/TableBody\";\r\nimport TableCell from \"@material-ui/core/TableCell\";\r\nimport TableHead from \"@material-ui/core/TableHead\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { faCheck } from \"@fortawesome/free-solid-svg-icons\";\r\nimport { faFilePdf } from \"@fortawesome/free-solid-svg-icons\";\r\nimport { faTimes } from \"@fortawesome/free-solid-svg-icons\";\r\nimport TableRow from \"@material-ui/core/TableRow\";\r\nimport Breadcrumbs from \"@material-ui/core/Breadcrumbs\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport TableFooter from \"@material-ui/core/TableFooter\";\r\nimport { Table as ReactTable } from \"reactstrap\";\r\nimport TableSortLabel from \"@material-ui/core/TableSortLabel\";\r\nimport Paper from \"@material-ui/core/Paper\";\r\nimport TablePagination from \"@material-ui/core/TablePagination\";\r\nimport Snackbar from \"@material-ui/core/Snackbar\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport FirstPageIcon from \"@material-ui/icons/FirstPage\";\r\nimport KeyboardArrowLeft from \"@material-ui/icons/KeyboardArrowLeft\";\r\nimport KeyboardArrowRight from \"@material-ui/icons/KeyboardArrowRight\";\r\nimport LastPageIcon from \"@material-ui/icons/LastPage\";\r\nimport Chart from \"react-apexcharts\";\r\n\r\n\r\nimport {\r\n Col,\r\n Row,\r\n Modal,\r\n ModalHeader,\r\n ModalBody,\r\n ModalFooter,\r\n Button,\r\n} from \"reactstrap\";\r\nimport { HashLink as Link } from \"react-router-hash-link\";\r\nimport { CONFIG } from \"../../utils/config\";\r\nimport axios from \"axios\";\r\nimport downarrows from \"./../../Assets/Images/down-arrow.png\";\r\nimport moment from \"moment\";\r\nconst actionsStyles = (theme) => ({\r\n tablepaggination: {\r\n flexShrink: 0,\r\n color: theme.palette.text.secondary,\r\n marginLeft: theme.spacing * 2.5,\r\n },\r\n});\r\n\r\nclass MyMarket extends React.Component {\r\n handleFirstPageButtonClick = (event) => {\r\n this.props.onChangePage(event, 0);\r\n };\r\n\r\n handleBackButtonClick = (event) => {\r\n this.props.onChangePage(event, this.props.page - 1);\r\n };\r\n\r\n handleNextButtonClick = (event) => {\r\n this.props.onChangePage(event, this.props.page + 1);\r\n };\r\n\r\n handleLastPageButtonClick = (event) => {\r\n this.props.onChangePage(\r\n event,\r\n Math.max(0, Math.ceil(this.props.count / this.props.rowsPerPage) - 1)\r\n );\r\n };\r\n\r\n render() {\r\n const { classes, count, page, rowsPerPage, theme } = this.props;\r\n\r\n return (\r\n
\r\n \r\n {theme.direction === \"rtl\" ? : }\r\n \r\n \r\n {theme.direction === \"rtl\" ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n = Math.ceil(count / rowsPerPage) - 1}\r\n aria-label=\"Next Page\"\r\n >\r\n {theme.direction === \"rtl\" ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n = Math.ceil(count / rowsPerPage) - 1}\r\n aria-label=\"Last Page\"\r\n >\r\n {theme.direction === \"rtl\" ? : }\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nconst MyMarketWrapped = withStyles(actionsStyles, { withTheme: true })(\r\n MyMarket\r\n);\r\n\r\nexport default class InventoryAvailability extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n overViewInfo: \"\",\r\n inventoryAvailablityList: [],\r\n storeAddress: \"\",\r\n isLoading: false,\r\n pdfLoading: true,\r\n modal: false,\r\n trackModalData: \"\",\r\n pageCount: 0,\r\n pageCountMDT: 0,\r\n max: 0,\r\n defaultWidth: 0,\r\n storeNeverOff: [],\r\n order: \"asc\",\r\n orderBy: \"storeName\",\r\n uniqueUnitType: [],\r\n invStore: [],\r\n uniqueSID: [],\r\n invStores: [],\r\n sname: [],\r\n address: [],\r\n invStoreStatus: false,\r\n snackOpen: false,\r\n snackMSg: \"\",\r\n snackClr: \"\",\r\n options: {\r\n chart: {\r\n id: 'apexchart-inventory-availablity',\r\n stacked: true,\r\n toolbar: {\r\n show: false\r\n }\r\n },\r\n grid: {\r\n show: false\r\n },\r\n plotOptions: {\r\n bar: {\r\n dataLabels: {\r\n position: 'top',\r\n },\r\n columnWidth: '10%',\r\n barHeight: '50%',\r\n },\r\n },\r\n yaxis: {\r\n show: false,\r\n },\r\n xaxis: {\r\n show: false,\r\n labels: {\r\n show: false,\r\n },\r\n axisBorder: {\r\n show: false\r\n },\r\n axisTicks: {\r\n show: false\r\n }\r\n },\r\n noData: {\r\n text: \"Please wait for the data to be loaded. The data volume is high and this might take a minute for loading the data.\",\r\n verticalAlign: 'top',\r\n style: {\r\n color: \"#5b95f6\",\r\n fontSize: '13px',\r\n fontFamily: \"Helvetica\"\r\n }\r\n },\r\n },\r\n series: [{\r\n name: '',\r\n data: [],\r\n }],\r\n };\r\n\r\n this.toggle = this.toggle.bind(this);\r\n this.handleChangePage = this.handleChangePage.bind(this);\r\n this.handleChangeRowsPerPage = this.handleChangeRowsPerPage.bind(this);\r\n this.handleRequestSort = this.handleRequestSort.bind(this);\r\n this.stableSort = this.stableSort.bind(this);\r\n this.getSorting = this.getSorting.bind(this);\r\n this.desc = this.desc.bind(this);\r\n }\r\n\r\n handleChangePage = (event, page) => {\r\n this.setState({ page });\r\n };\r\n handleChangeRowsPerPage = (event) => {\r\n this.setState({ page: 0, rowsPerPage: event.target.value });\r\n };\r\n\r\n toggle() {\r\n let storeId = parseInt(this.props.match.params.userstoreid);\r\n axios\r\n .post(\r\n CONFIG.API_URL + \"market/competitors/\" + storeId + \"/\" + CONFIG.RegionId\r\n )\r\n .then((response) => {\r\n // this.state.isLoading=true;\r\n const trackModalData = response.data.competitor.competitorsList;\r\n var trackedFilterResult = trackModalData.filter(\r\n (result) => result.isTracked === true\r\n );\r\n // let strOptions = [];\r\n // trackModalData.forEach(function (e) { strOptions.push(e.storeID + (e.isTracked ? '|1' : '|0')) });\r\n this.setState({\r\n trackModalData: trackedFilterResult,\r\n });\r\n this.setState((prevState) => ({\r\n modal: !prevState.modal,\r\n }));\r\n })\r\n .catch((err) => {\r\n // if (err.response.status === 401) {\r\n // localStorage.removeItem('accessKey');\r\n // const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n // this.props.history.push(from);\r\n // }\r\n // else {\r\n // alert(err.response.data);\r\n // }\r\n });\r\n }\r\n componentDidMount() {\r\n this.setState({\r\n isLoading: true,\r\n });\r\n let token = localStorage.getItem(\"accessKey\");\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = \"Bearer \" + token;\r\n }\r\n\r\n const data = {\r\n UserStoreID: parseInt(this.props.match.params.userstoreid),\r\n RegionId: CONFIG.RegionId,\r\n };\r\n axios\r\n .post(CONFIG.API_URL + \"dashboard/dashboardlocation/\", data)\r\n .then((res) => {\r\n const storeAddress = res.data.data.storeDashboard;\r\n this.setState({ storeAddress : storeAddress});\r\n })\r\n .catch((err) => {\r\n this.setState({ isLoading: false });\r\n if (err.response.status === 401) {\r\n localStorage.removeItem(\"accessKey\");\r\n const { from } = this.props.location.state || {\r\n from: { pathname: \"/\" },\r\n };\r\n this.props.history.push(from);\r\n } else if (err.response.status === 403) {\r\n const { from } = this.props.location.state || {\r\n from: { pathname: \"/UnauthorizedAccess\" },\r\n };\r\n this.props.history.push(from);\r\n } else {\r\n alert(err.response.data);\r\n }\r\n });\r\n\r\n axios\r\n .post(CONFIG.API_URL + \"dashboard/inventoryavailablity\", data)\r\n .then((res) => {\r\n let overViewInfo = res.data.data.invAvaildashboard;\r\n let inventoryAvailablityList = res.data.data.inventoryAvailablityList;\r\n var storeNeverOff = inventoryAvailablityList.filter(function (m1) {\r\n return m1.storesWithUnitType > 0 && m1.storesWithUnitTypePercent > 0;\r\n });\r\n this.setState({ overViewInfo, storeNeverOff });\r\n this.setState({ inventoryAvailablityList });\r\n this.stackedgraph(inventoryAvailablityList);\r\n this.setState({ isLoading: false });\r\n })\r\n .catch((err) => {\r\n this.setState({ isLoading: false });\r\n if (err.response.status === 401) {\r\n localStorage.removeItem(\"accessKey\");\r\n const { from } = this.props.location.state || {\r\n from: { pathname: \"/\" },\r\n };\r\n this.props.history.push(from);\r\n } else if (err.response.status === 403) {\r\n const { from } = this.props.location.state || {\r\n from: { pathname: \"/UnauthorizedAccess\" },\r\n };\r\n this.props.history.push(from);\r\n } else {\r\n alert(err.response.data);\r\n }\r\n });\r\n axios\r\n .post(CONFIG.API_URL + \"dashboard/inventorybystore\", data)\r\n .then((res) => {\r\n let invStore = res.data.data;\r\n let uniqueSID = [...new Set(invStore.map((item) => item.storeID))];\r\n let uniqueUnitType = [\r\n ...new Set(invStore.map((item) => item.unitType)),\r\n ];\r\n var invStores = [];\r\n\r\n for (let i = 0; i < uniqueSID.length; i++) {\r\n var fD = invStore.filter((item) => item.storeID == uniqueSID[i]);\r\n let sname = [...new Set(fD.map((item) => item.storeName))];\r\n let address = [...new Set(fD.map((item) => item.storeAddress))];\r\n var key = \"storeName\";\r\n var obj = {};\r\n obj[\"storeName\"] = sname[0];\r\n obj[\"storeAddress\"] = address[0];\r\n obj[\"storeID\"] = fD[0].storeID;\r\n for (let u = 0; u < uniqueUnitType.length; u++) {\r\n var uData = fD.filter((item) => item.unitType == uniqueUnitType[u]);\r\n obj[uniqueUnitType[u]] = uData[0].value;\r\n }\r\n invStores.push(obj);\r\n }\r\n\r\n this.setState({\r\n uniqueUnitType,\r\n invStore,\r\n uniqueSID,\r\n invStoreStatus: true,\r\n invStores,\r\n isLoading: false,\r\n });\r\n })\r\n .catch((err) => {\r\n this.setState({ isLoading: false });\r\n if (err.response.status === 401) {\r\n localStorage.removeItem(\"accessKey\");\r\n const { from } = this.props.location.state || {\r\n from: { pathname: \"/\" },\r\n };\r\n this.props.history.push(from);\r\n } else if (err.response.status === 403) {\r\n const { from } = this.props.location.state || {\r\n from: { pathname: \"/UnauthorizedAccess\" },\r\n };\r\n this.props.history.push(from);\r\n } else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }\r\n\r\n stackedgraph(datavalue) {\r\n let { inventoryAvailablityList } = this.state;\r\n let marketSeries = [];\r\n var resultedRange = this.state.inventoryAvailablityList.map(\r\n (data) => data.storesWithUnitType + data.storesNeverOffered\r\n );\r\n\r\n let onMarketData = [\r\n ...new Set(\r\n this.state.inventoryAvailablityList\r\n .filter(function (obj) {\r\n return obj.onMarket > 0;\r\n })\r\n .map((item) => item.onMarket)\r\n ),\r\n ];\r\n let offMarketData = [\r\n ...new Set(\r\n this.state.inventoryAvailablityList\r\n .filter(function (obj) {\r\n return obj.offMarket > 0;\r\n })\r\n .map((item) => item.offMarket)\r\n ),\r\n ];\r\n\r\n var max = resultedRange.reduce(function (a, b) {\r\n return Math.max(a, b);\r\n });\r\n max = onMarketData.length > 0 || offMarketData.length > 0 ? max : 0;\r\n this.setState({ max });\r\n let dataSeries = inventoryAvailablityList.map(val => { return { x: val.unitType, y: val.onMarket, perc: val.onMarketPercent }; });\r\n let dataSeries2 = inventoryAvailablityList.map(val => { return { x: val.unitType, y: val.offMarket, perc: val.offMarketPercent }; });\r\n marketSeries.push({ name: 'On Market', data: dataSeries }, { name: 'Off Market', data: dataSeries2 });\r\n \r\n// YAXIS VALUES AS DYNAMIC\r\n let max_dataSeries = Math.max.apply(null, dataSeries.map(item => item.y));\r\n let max_dataSeries2 = Math.max.apply(null, dataSeries2.map(item => item.y));\r\n\r\n let max_marketSeries = 0\r\n if(max_dataSeries > max_dataSeries2){\r\n max_marketSeries = max_dataSeries\r\n }else{\r\n max_marketSeries = max_dataSeries2\r\n }\r\n\r\n if (marketSeries.length > 0 && max !== 0) {\r\n this.setState({\r\n options: {\r\n chart: {\r\n id: `apexchart-inventory-availablity${Math.random()}`,\r\n toolbar: {\r\n show: true,\r\n tools: {\r\n download: false,\r\n selection: false,\r\n zoom: false,\r\n zoomin:false,\r\n zoomout:false,\r\n pan:false,\r\n reset: true,\r\n },\r\n },\r\n },\r\n tooltip: {\r\n y: {\r\n formatter: function (value, opts) {\r\n if (typeof (opts) === \"object\") {\r\n let iAF = `${opts.series[opts.seriesIndex][opts.dataPointIndex]} Stores (${opts.w.config.series[opts.seriesIndex].data[opts.dataPointIndex].perc})% currently have
this inventory ${opts.w.config.series[opts.seriesIndex].name}`;\r\n return iAF;\r\n }\r\n },\r\n title: {\r\n formatter: function (val) {\r\n if (val) return '';\r\n }\r\n }\r\n },\r\n marker: {\r\n show: false,\r\n },\r\n enabled: true,\r\n showForNullSeries: false,\r\n onDatasetHover: {\r\n highlightDataSeries: false,\r\n },\r\n style: {\r\n fontSize: '11px',\r\n fontFamily: \"Roboto, Helvetica, Arial , sans-serif\"\r\n },\r\n },\r\n dataLabels: {\r\n enabled: true,\r\n offsetY: 4,\r\n style: {\r\n fontSize: '12px',\r\n colors: [\"#304758\"]\r\n },\r\n formatter: function (val, opts) {\r\n return val === 0 ? '' : val;\r\n },\r\n },\r\n annotations: {\r\n yaxis: [\r\n {\r\n y: max_marketSeries*2,\r\n borderColor: '#68E497',\r\n }\r\n ]\r\n },\r\n plotOptions: {\r\n bar: {\r\n // borderRadius: 0,\r\n dataLabels: {\r\n position: 'center',\r\n hideOverflowingLabels: false,\r\n },\r\n columnWidth: '25%',\r\n barHeight: '50%',\r\n },\r\n },\r\n grid: {\r\n show: false\r\n },\r\n yaxis: {\r\n max: max_marketSeries*2,\r\n labels: {\r\n formatter: function (value) {\r\n let val = value === null || value === undefined ? \"N/A\" : value.toFixed(0);\r\n return val;\r\n },\r\n style: {\r\n colors: '#8C9AA6',\r\n fontSize: '10px'\r\n },\r\n },\r\n },\r\n legend: {\r\n position: 'bottom',\r\n horizontalAlign: 'center',\r\n fontSize: '11px',\r\n fontWeight: 500,\r\n showForNullSeries: false,\r\n showForZeroSeries: true,\r\n markers: {\r\n radius: 13,\r\n },\r\n itemMargin: {\r\n horizontal: 10,\r\n vertical: 20,\r\n },\r\n onItemClick: {\r\n toggleDataSeries: true\r\n },\r\n onItemHover: {\r\n highlightDataSeries: true\r\n },\r\n },\r\n xaxis: {\r\n show: true,\r\n labels: {\r\n formatter: function (value) {\r\n let val = value === undefined || typeof (value) !== \"string\" ? '' : value;\r\n return val;\r\n },\r\n show: true,\r\n hideOverlappingLabels: false,\r\n trim: true,\r\n rotate: 0,\r\n style: {\r\n colors: '#010101',\r\n fontSize: '10px'\r\n },\r\n \r\n },\r\n axisBorder: {\r\n show: true\r\n },\r\n axisTicks: {\r\n show: true\r\n }\r\n },\r\n noData: {\r\n text: 'Please enable any one of the below legend to view the graph.',\r\n style: {\r\n color: \"#5b95f6\",\r\n }\r\n },\r\n },\r\n series: marketSeries\r\n })\r\n } else {\r\n this.setState({\r\n options: {\r\n chart: {\r\n toolbar: {\r\n show: false\r\n }\r\n },\r\n noData: {\r\n text: \"No Records Found.\",\r\n align: 'center',\r\n verticalAlign: 'top',\r\n offsetX: 0,\r\n offsetY: 0,\r\n style: {\r\n color: \"#F60000\",\r\n fontSize: '13px',\r\n fontFamily: \"Helvetica\"\r\n }\r\n },\r\n yaxis: { show: false },\r\n xaxis: {\r\n show: false,\r\n labels: {\r\n show: false\r\n },\r\n axisBorder: {\r\n show: false\r\n },\r\n axisTicks: {\r\n show: false\r\n },\r\n categories: []\r\n },\r\n },\r\n series: []\r\n })\r\n }\r\n }\r\n\r\n handleChangePageTrack = (event, pageCount) => {\r\n this.setState({ pageCount });\r\n };\r\n handleChangeRowsPerPageTrack = (event) => {\r\n this.setState({ pageCount: 0, 10: event.target.value });\r\n };\r\n\r\n //Table Sorting\r\n handleRequestSort(event, property) {\r\n const { order, orderBy } = this.state;\r\n const isDesc = orderBy === property && order === \"desc\";\r\n let sort = isDesc ? \"asc\" : \"desc\";\r\n this.setState({ order: sort, orderBy: property });\r\n }\r\n\r\n //Table Sorting order\r\n desc(a, b, orderBy) {\r\n if (orderBy == \"storeName\") {\r\n if (b[orderBy].toLowerCase() < a[orderBy].toLowerCase()) {\r\n return -1;\r\n }\r\n if (b[orderBy].toLowerCase() > a[orderBy].toLowerCase()) {\r\n return 1;\r\n }\r\n return 0;\r\n } else {\r\n if (b[orderBy] < a[orderBy]) {\r\n return -1;\r\n }\r\n if (b[orderBy] > a[orderBy]) {\r\n return 1;\r\n }\r\n return 0;\r\n }\r\n }\r\n\r\n //Table Sorting the selected Column\r\n stableSort(array, cmp) {\r\n const stabilizedThis = array.map((el, index) => [el, index]);\r\n stabilizedThis.sort((a, b) => {\r\n const order = cmp(a[0], b[0]);\r\n if (order !== 0) return order;\r\n return a[1] - b[1];\r\n });\r\n return stabilizedThis.map((el) => el[0]);\r\n }\r\n\r\n //Table Sorting Order Request\r\n getSorting(order, orderBy) {\r\n return order === \"desc\"\r\n ? (a, b) => this.desc(a, b, orderBy)\r\n : (a, b) => -this.desc(a, b, orderBy);\r\n }\r\n downLoadPDF() {\r\n this.setState({\r\n // isLoading: true,\r\n pdfLoading: false,\r\n });\r\n var currentDate = moment(new Date()).format(\"DD-MMM-YYYY\");\r\n let pta = \"1\";\r\n let usId = parseInt(this.props.match.params.userstoreid);\r\n let accessKey = localStorage.getItem(\"SecretKey\");\r\n let orderBy =\r\n this.state.orderBy == \"storeName\"\r\n ? \"storeName\"\r\n : this.state.uniqueUnitType.indexOf(this.state.orderBy);\r\n // let orderBy = this.state.orderBy;\r\n let order = this.state.order;\r\n let searchId = \"1\";\r\n let unitType = \"1\";\r\n let priceType = \"1\";\r\n //let accessKey = '3f2b471776bc41cf863720bfc8cf9cb9';\r\n var timestamp =\r\n new Date().getDate() +\r\n \"\" +\r\n new Date().getMonth() +\r\n \"\" +\r\n new Date().getFullYear() +\r\n \"\" +\r\n new Date().getTime();\r\n //construct filename for pdf report.\r\n var fileName = usId + \"InventoryAvailability\" + \"_\" + timestamp + \".pdf\";\r\n var stoName =\r\n this.state.storeAddress &&\r\n this.state.storeAddress.storeName &&\r\n this.state.storeAddress.storeName !== null &&\r\n this.state.storeAddress.storeName !== \"\" &&\r\n this.state.storeAddress.storeName !== undefined\r\n ? this.state.storeAddress.storeName\r\n : \"Your Store\";\r\n var fileNamePdf =\r\n stoName + \"_\" + \"InventoryAvailability\" + \"_\" + currentDate + \".pdf\";\r\n this.setState({\r\n snackClr: \"snack-info\",\r\n snackOpen: true,\r\n snackMSg:\r\n \"Your download is being processed. The \" +\r\n fileNamePdf +\r\n \" file will download automatically to your browser when ready and Please do not close or reload the pages until download completes. We recommend you check your Downloads folder if you don’t see it in your browser.\",\r\n });\r\n let ComponentName = 4;\r\n const Input = {\r\n RegionID: CONFIG.RegionId,\r\n URL:\r\n CONFIG.OPTZ_URL +\r\n \"render-pdf/\" +\r\n accessKey +\r\n \"/\" +\r\n ComponentName +\r\n \"/0/\" +\r\n usId +\r\n \"/\" +\r\n pta +\r\n \"/\" +\r\n searchId +\r\n \"/\" +\r\n unitType +\r\n \"/\" +\r\n priceType +\r\n \"/\" +\r\n orderBy +\r\n \"/\" +\r\n order +\r\n \"/\",\r\n FileName: fileName,\r\n };\r\n // axios.post(CONFIG.API_URL + 'dashboard/generatepdfbypage', Input)\r\n axios({\r\n url: CONFIG.API_URL + \"dashboard/generatepdfbypage\",\r\n method: \"post\",\r\n responseType: \"blob\",\r\n data: Input,\r\n })\r\n .then((response) => {\r\n const blob = new Blob([response.data], { type: 'application/octet-stream' });\r\n const link = document.createElement('a');\r\n link.href = window.URL.createObjectURL(blob);\r\n link.download = fileNamePdf;\r\n link.dispatchEvent(\r\n new MouseEvent('click', {\r\n bubbles: true,\r\n cancelable: true,\r\n view: window\r\n })\r\n );\r\n setTimeout(() => {\r\n // For Firefox it is necessary to delay revoking the ObjectURL\r\n window.URL.revokeObjectURL(link.href);\r\n link.remove();\r\n }, 3000);\r\n this.setState({ isLoading: false });\r\n })\r\n .catch((err) => {\r\n this.setState({ isLoading: false });\r\n });\r\n }\r\n snackHandleclose = (event, reason) => {\r\n if (reason === \"clickaway\") {\r\n return;\r\n }\r\n this.setState({ snackOpen: false });\r\n };\r\n render() {\r\n const {\r\n overViewInfo,\r\n inventoryAvailablityList,\r\n storeNeverOff,\r\n page,\r\n pageCount,\r\n pageCountMDT,\r\n storeAddress,\r\n isLoading,\r\n pdfLoading,\r\n trackModalData,\r\n max,\r\n order,\r\n orderBy,\r\n uniqueUnitType,\r\n invStore,\r\n uniqueSID,\r\n invStores,\r\n snackOpen,\r\n snackMSg,\r\n } = this.state;\r\n const defaultProps = {\r\n helpTitle: \"Inventory Availability\",\r\n helpContent:\r\n \"

Inventory Availability refers to the number of stores in the Market offering a particular unit type. When a store takes a unit off their website, their inventory availability for that unit type goes down. If a store adds a unit type to their website, their inventory availability goes up.

Here you can see the current Inventory Availability across the entire Market, as well as a breakdown of current Inventory Availability by store type - Your Store, REITs, Multi-store and Single-store operators.

Inventory Availability for the Market

The aggregate number of On-Market/Stores Offering any unit type in this Market

Inventory Availability for Your Store

How many Unit Types Your Store has offered in the past vs. how many of them are currently being offered (or are 'On-Market'). For example, let's say Your Store has offered/advertised 8 different Unit Types but currently has only 6 of them on-market (and by definition 2 are off-market), then 'Your Store' Inventory Availability is 75%, i.e. 6÷8)

Inventory Availability for REITs, Mid-Ops, Single-Ops

This is the same calculation as explained in 'Your Store' above, but calculated for each store group (REIT, Multi and Single operators). For example, if there are 3 REITs in the Market and two are offering 6 of 8 unit types and one of them is offering 5 of 8 unit types, then the aggregate Inventory Availability for REITs is (((6÷8)+(6÷8)+(5÷8))/3) x 100 = 70.8%

*Your store inventory is included in the calculations.

Refer the below help video for more information.

\",\r\n };\r\n const defaultProps1 = {\r\n helpTitle: \"Inventory Supply\",\r\n helpContent:\r\n \"

Inventory Availability refers to the number of stores in the Market offering a particular unit type. When a store takes a unit off their website, the inventory availability for that unit type goes down. If a store adds a unit type to their website, the inventory availability for that unit type goes up. Here you will see a breakdown of the number of stores offering vs. the number of stores which have never offered each of the most common unit types.

*Your store inventory is included in the calculations.

\",\r\n };\r\n const defaultProps2 = {\r\n helpTitle: \"Inventory Availability by Unit Type\",\r\n helpContent:\r\n \"

This graph is a deeper analysis of the Inventory Supply you see above. It further analyzes for each unit type, how many out of all the stores in the Market which have advertised this unit type at some point, the number of stores currently offering/advertising this unit type vs. the number of stores (which have advertised it in the past) are currently not offering this unit type.

*Your store inventory is included in the calculations.

\",\r\n };\r\n const defaultProps3 = {\r\n helpTitle: \"Inventory Status\",\r\n helpContent:\r\n \"

This table is a continuation of the Inventory Supply graph you see above. It shows, for each unit type, how many out of all the stores in the Market which have advertised this unit type at some point, the number of stores currently offering/advertising this unit type vs. the number of stores (which have advertised it in the past) are currently not offering this unit type.

*Your store inventory is included in the calculations.

\",\r\n };\r\n let uTypeLen = uniqueUnitType.length;\r\n return (\r\n
\r\n {isLoading ? (\r\n
\r\n
\r\n
\r\n ) : (\r\n \"\"\r\n )}\r\n \r\n\r\n\r\n {localStorage.getItem(\"isMVP_User\") === \"false\" ? (\r\n \r\n My Markets\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n\r\n Go to Market Dashboard\r\n\r\n \r\n Inventory Availability\r\n \r\n \r\n 0 ? false : true}\r\n className={\r\n invStores.length > 0\r\n ? \"apply-btn download-pdf \"\r\n : \"download-pdf-disabled\"\r\n }\r\n onClick={this.downLoadPDF.bind(this)}\r\n >\r\n \r\n PDF Download\r\n \r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n

\r\n Inventory Availability \r\n

\r\n {isLoading ? (\r\n \"\"\r\n ) : storeAddress.compsCount === 0 ||\r\n storeAddress.compsCount === null ? (\r\n
\r\n

Analyzing N/A

\r\n
\r\n ) : (\r\n
\r\n

\r\n Analyzing{\" \"}\r\n this.toggle()}>\r\n {storeAddress.compsCount\r\n ? parseInt(storeAddress.compsCount) > 1\r\n ? storeAddress.compsCount + \" stores\"\r\n : storeAddress.compsCount + \" store\"\r\n : \"N/A\"}\r\n \r\n

\r\n
\r\n )}\r\n \r\n {isLoading === false || pdfLoading === false ? (\r\n \r\n

\r\n {storeAddress.storeName\r\n ? storeAddress.storeName\r\n : isLoading === false\r\n ? \"Your Store\"\r\n : \"\"}\r\n

\r\n 24\r\n ? \"pd-btm-35\"\r\n : \"pd-btm-20\"\r\n : \"pd-btm-20\"\r\n }\r\n >\r\n

\r\n {storeAddress.storeAddress1 &&\r\n storeAddress.storeAddress1 !== null &&\r\n storeAddress.storeAddress1 !== \"\"\r\n ? storeAddress.storeAddress1 + \", \"\r\n : \"\"}{\" \"}\r\n {storeAddress.storeAddress2\r\n ? storeAddress.storeAddress2 + \", \"\r\n : \"\"}{\" \"}\r\n {storeAddress && storeAddress.storeCity\r\n ? storeAddress.storeCity + \", \"\r\n : storeAddress.searchType === 1 &&\r\n (storeAddress.storeCity === null ||\r\n storeAddress.storeCity === \"\") &&\r\n (storeAddress.storeZipCode === null ||\r\n storeAddress.storeZipCode === \"\")\r\n ? storeAddress.latitude +\r\n \", \" +\r\n storeAddress.longitude +\r\n \", \"\r\n : \"\"}\r\n {storeAddress.storeState ? storeAddress.storeState : \"\"}{\" \"}\r\n {storeAddress.storeZipCode}\r\n

\r\n
\r\n
\r\n

\r\n {\"Coverage: \" + storeAddress.storeZoneCoverage}\r\n

\r\n
\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
Market
\r\n
\r\n {overViewInfo.market\r\n ? overViewInfo.market + \"%\"\r\n : isLoading === false\r\n ? \"N/A\"\r\n : \"\"}\r\n
\r\n
Current
\r\n
\r\n \r\n \r\n
\r\n
Your Store
\r\n
\r\n {overViewInfo.myStore\r\n ? overViewInfo.myStore + \"%\"\r\n : isLoading === false\r\n ? \"N/A\"\r\n : \"\"}\r\n
\r\n
\r\n \r\n {storeAddress.countryCode == \"US\" ? (\r\n \r\n
\r\n
REIT's
\r\n
\r\n {overViewInfo.reits\r\n ? overViewInfo.reits + \"%\"\r\n : isLoading === false\r\n ? \"N/A\"\r\n : \"\"}\r\n
\r\n
\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n \r\n
\r\n
Multi-Ops
\r\n
\r\n {overViewInfo.multiOps\r\n ? overViewInfo.multiOps + \"%\"\r\n : isLoading === false\r\n ? \"N/A\"\r\n : \"\"}\r\n
\r\n
\r\n \r\n \r\n
\r\n
Single-Ops
\r\n
\r\n {overViewInfo.singleOps\r\n ? overViewInfo.singleOps + \"%\"\r\n : isLoading === false\r\n ? \"N/A\"\r\n : \"\"}\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n\r\n \r\n
\r\n \r\n
\r\n Inventory Supply \r\n
\r\n\r\n
\r\n
\r\n \r\n {storeNeverOff.length > 0 ? (\r\n \r\n \r\n \r\n \r\n {inventoryAvailablityList.length > 0\r\n ? inventoryAvailablityList.map((data) => {\r\n return (\r\n \r\n {data.unitType}\r\n \r\n );\r\n })\r\n : \"\"}\r\n \r\n \r\n {inventoryAvailablityList.length > 0 ? (\r\n \r\n \r\n \r\n {\"Stores With this Unit Type \"}\r\n \r\n {inventoryAvailablityList.length > 0\r\n ? inventoryAvailablityList.map((data) => {\r\n return (\r\n \r\n {data.storesWithUnitType}\r\n \r\n ({data.storesWithUnitTypePercent}%)\r\n \r\n \r\n );\r\n })\r\n : \"\"}\r\n \r\n \r\n {\"Stores Never Offered \"}\r\n {inventoryAvailablityList.length > 0\r\n ? inventoryAvailablityList.map((data) => {\r\n return (\r\n \r\n {data.storesNeverOffered}\r\n \r\n ({data.storesNeverOfferedPercent}%)\r\n \r\n \r\n );\r\n })\r\n : \"\"}\r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n {isLoading === false ? \"No Records Found\" : \"\"}\r\n \r\n \r\n \r\n )}\r\n \r\n ) : (\r\n
\r\n {isLoading === false ? \"No Data Available\" : \"\"}\r\n
\r\n )}\r\n
\r\n
\r\n \r\n
\r\n
\r\n

\r\n Inventory Availability by Unit Type{\" \"}\r\n \r\n

\r\n\r\n
\r\n
\r\n {\r\n // max === 0 ? (\r\n //
\r\n // {\" \"}\r\n // {isLoading === false ? \"No Data Available\" : \"\"}\r\n //
\r\n // ) : \r\n (\r\n <>\r\n \r\n \r\n
\r\n \r\n )}\r\n
\r\n
\r\n
\r\n \r\n
Inventory Status
\r\n\r\n
\r\n
\r\n \r\n {storeNeverOff.length > 0 ? (\r\n \r\n \r\n \r\n \r\n {inventoryAvailablityList.length > 0\r\n ? inventoryAvailablityList.map((data) => {\r\n return {data.unitType};\r\n })\r\n : \"\"}\r\n \r\n \r\n {inventoryAvailablityList.length > 0 ? (\r\n \r\n \r\n {\"Off Market \"}\r\n {inventoryAvailablityList.length > 0\r\n ? inventoryAvailablityList.map((data) => {\r\n return (\r\n \r\n \r\n {data.offMarket}\r\n \r\n \r\n ({data.offMarketPercent}%)\r\n \r\n \r\n );\r\n })\r\n : \"\"}\r\n \r\n \r\n {\"On Market \"}\r\n {inventoryAvailablityList.length > 0\r\n ? inventoryAvailablityList.map((data) => {\r\n return (\r\n \r\n {data.onMarket}\r\n \r\n ({data.onMarketPercent}%)\r\n \r\n \r\n );\r\n })\r\n : \"\"}\r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n {isLoading === false ? \"No Records Found\" : \"\"}\r\n \r\n \r\n \r\n )}\r\n \r\n ) : (\r\n
\r\n {isLoading === false ? \"No Data Available\" : \"\"}\r\n
\r\n )}\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
Inventory by Store
\r\n {invStores.length > 0 ? (\r\n
\r\n \r\n {\" \"}\r\n Currently Advertising this Unit Type\r\n \r\n \r\n {\" \"}\r\n Not\r\n Currently Advertising this Unit Type\r\n \r\n {/* Never offered in this unit type */}\r\n
\r\n ) : (\r\n \"\"\r\n )}\r\n
\r\n\r\n
\r\n \r\n \r\n {invStores && invStores.length > 0 ? (\r\n \r\n {invStores.length > 0 ? (\r\n this.stableSort(\r\n invStores,\r\n this.getSorting(order, orderBy)\r\n ).map((row, i) => {\r\n return (\r\n \r\n \r\n {\" \"}\r\n
\r\n {row.storeName}\r\n
{\" \"}\r\n {row.storeAddress}\r\n \r\n\r\n {Object.values(row)\r\n .splice(3, uTypeLen)\r\n .map((val) => (\r\n \r\n {\" \"}\r\n {val == 1 ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n ))}\r\n \r\n );\r\n })\r\n ) : (\r\n \r\n {isLoading === false ? \"\" : \"N/A\"}\r\n \r\n )}\r\n \r\n ) : (\r\n \r\n \r\n \r\n {isLoading === false && this.state.invStoreStatus ? (\r\n \"No Data Available\"\r\n ) : (\r\n
\r\n
\r\n
\r\n )}\r\n \r\n \r\n \r\n )}\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n {storeAddress.storeName}\r\n \r\n \r\n \r\n \r\n \r\n COMPETITOR NAME\r\n ADDRESS\r\n \r\n \r\n \r\n {trackModalData ? (\r\n trackModalData\r\n .slice(pageCount * 10, pageCount * 10 + 10)\r\n .map((trackData) => (\r\n \r\n {trackData.storeName}\r\n {trackData.storeAddress}\r\n \r\n ))\r\n ) : (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n ,\r\n ]}\r\n message={{snackMSg}}\r\n />\r\n
\r\n );\r\n }\r\n}\r\nInventoryAvailability.propTypes = {\r\n // classes: PropTypes.object.isRequired,\r\n};\r\n\r\n//Listing and Sorting Table's Head\r\nfunction EnhancedTableHead(props) {\r\n const { order, orderBy, onRequestSort, rowHeader } = props;\r\n const createSortHandler = (property) => (event) => {\r\n onRequestSort(event, property);\r\n };\r\n\r\n let headRows =\r\n rowHeader.length > 0\r\n ? rowHeader.map((item, i) => {\r\n return {\r\n // id: item.replace(/\\s/g, ''),\r\n id: item,\r\n numeric: false,\r\n disablePadding: false,\r\n label: item,\r\n };\r\n })\r\n : [];\r\n\r\n if (rowHeader.length > 0) {\r\n headRows.unshift({\r\n id: \"storeName\",\r\n numeric: false,\r\n disablePadding: true,\r\n label: \"storeName\",\r\n });\r\n }\r\n\r\n return (\r\n \r\n \r\n {headRows.map((row) => (\r\n \r\n \r\n {row.label}\r\n \r\n \r\n ))}\r\n \r\n \r\n );\r\n}\r\n","import React, { Component } from 'react';\r\nimport ReactDOM from \"react-dom\";\r\nimport './MarketSaturation.css';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport * as d3 from \"d3\";\r\nimport { Col, Row } from 'reactstrap';\r\nimport { HashLink as Link } from 'react-router-hash-link';\r\nimport { CONFIG } from '../../utils/config';\r\nimport axios from 'axios';\r\n\r\nexport default class MarketSaturation extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n storeAddress: '',\r\n }\r\n this.datavalue = [\r\n {\r\n \"salesperson\": \"Bob\",\r\n \"sales\": 60,\r\n\r\n },\r\n {\r\n \"salesperson\": \"Robin\",\r\n \"sales\": 12,\r\n }\r\n ];\r\n }\r\n componentDidMount() {\r\n this.setState({\r\n isLoading: true\r\n })\r\n //this.barChart(this.data);\r\n let token = localStorage.getItem('accessKey');\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n }\r\n const data1 = {\r\n \"UserStoreID\": 117241,\r\n \"RegionId\": CONFIG.RegionId\r\n }\r\n axios.post(CONFIG.API_URL + 'dashboard/dashboardlocation/', data1)\r\n .then(res => {\r\n let storeAddress = res.data.data.storeDashboard;\r\n this.setState({ storeAddress });\r\n //console.log(storeAddress);\r\n\r\n })\r\n .catch((err) => {\r\n\r\n this.setState({ isLoading: false });\r\n if (err.response.status === 403) {\r\n const { from } = this.props.location.state || { from: { pathname: \"/UnauthorizedAccess\" } };\r\n this.props.history.push(from);\r\n }\r\n // if (err.response.status === 401) {\r\n // localStorage.removeItem('accessKey');\r\n // const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n // this.props.history.push(from);\r\n // }\r\n // else {\r\n // alert(err.response.data);\r\n // }\r\n });\r\n }\r\n\r\n render() {\r\n const { storeAddress } = this.state;\r\n return (\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n

Inventory Availability

\r\n

Analyzing 5 Stores

\r\n \r\n \r\n

Market Name

\r\n

{storeAddress.storeAddress1 + \",\" + storeAddress.storeCity}{storeAddress.storeState + ',' + storeAddress.storeZipCode}

\r\n

{\"Coverage: \" + storeAddress.storeZoneCoverage}

\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n\r\n\r\n
\r\n );\r\n }\r\n}","import React, { Component } from \"react\";\r\nimport \"./CurrentPricing.css\";\r\nimport {\r\n Row,\r\n Col,\r\n Button,\r\n Nav,\r\n NavItem,\r\n NavLink,\r\n Dropdown,\r\n DropdownToggle,\r\n DropdownMenu,\r\n DropdownItem,\r\n} from \"reactstrap\";\r\nimport { AvForm, AvField } from \"availity-reactstrap-validation\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport { Table as ReactTable } from \"reactstrap\";\r\nimport TableHead from \"@material-ui/core/TableHead\";\r\nimport TableCell from \"@material-ui/core/TableCell\";\r\nimport TableRow from \"@material-ui/core/TableRow\";\r\nimport TableSortLabel from \"@material-ui/core/TableSortLabel\";\r\nimport Snackbar from \"@material-ui/core/Snackbar\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\nimport { HelpTextPopup } from \"./../HelpTextPopup/index\";\r\nimport axios from \"axios\";\r\nimport { CONFIG } from \"../../utils/config\";\r\nimport addtomap from \"./../../Assets/Images/plus.png\";\r\nimport removefrommap from \"./../../Assets/Images/trash.png\";\r\nimport tableplus from \"./../../Assets/Images/table-plus.png\";\r\nimport tableminus from \"./../../Assets/Images/table-minus.png\";\r\nimport Tooltip from \"@material-ui/core/Tooltip\";\r\nimport ShowMoreText from \"react-show-more-text\";\r\nimport { faFilePdf } from \"@fortawesome/free-solid-svg-icons\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport moment from \"moment\";\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport FirstPageIcon from \"@material-ui/icons/FirstPage\";\r\nimport KeyboardArrowLeft from \"@material-ui/icons/KeyboardArrowLeft\";\r\nimport KeyboardArrowRight from \"@material-ui/icons/KeyboardArrowRight\";\r\nimport LastPageIcon from \"@material-ui/icons/LastPage\";\r\nimport Chart from \"react-apexcharts\";\r\nimport duplicate from '../../Assets/Images/duplicate.png';\r\nimport resetPng from '../../Assets/Images/reset.png';\r\n\r\nexport default class CurrentPricing extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n\r\n advertisedRatesHistoryOptions: {\r\n chart: {\r\n id: 'average-price-history-chart',\r\n type: \"area\",\r\n // stacked: true,\r\n toolbar: {\r\n show: false,\r\n },\r\n animations: {\r\n enabled: false,\r\n },\r\n },\r\n xaxis: {\r\n tickPlacement: 'on',\r\n tickAmount: 8,\r\n labels: {\r\n show: false,\r\n datetimeUTC: false,\r\n\r\n style: {\r\n colors: '#8C9AA6',\r\n fontSize: '12px'\r\n },\r\n },\r\n axisBorder: {\r\n show: false\r\n },\r\n axisTicks: {\r\n show: false\r\n },\r\n categories : []\r\n },\r\n yaxis: {\r\n show: false,\r\n style: {\r\n colors: '#8C9AA6',\r\n fontSize: '12px'\r\n },\r\n },\r\n noData: {\r\n text: \"Please wait for the data to be loaded. The data volume is high and this might take a minute for loading the data.\",\r\n verticalAlign: 'top',\r\n style: {\r\n color: \"#5b95f6\",\r\n fontSize: '13px',\r\n fontFamily: \"Helvetica\"\r\n }\r\n },\r\n stroke: {\r\n curve: \"smooth\",\r\n width: 2,\r\n },\r\n tooltip: {\r\n onDatasetHover: {\r\n highlightDataSeries: true,\r\n },\r\n style: {\r\n fontSize: '11px',\r\n fontFamily: \"Roboto, Helvetica, Arial , sans-serif\"\r\n },\r\n },\r\n legend: {\r\n position: 'bottom',\r\n horizontalAlign: 'center',\r\n fontSize: '11px',\r\n fontWeight: 500,\r\n showForSingleSeries: true,\r\n showForNullSeries: false,\r\n showForZeroSeries: false,\r\n itemMargin: {\r\n horizontal: 10,\r\n vertical: 20,\r\n }\r\n },\r\n dataLabels: {\r\n enabled: false\r\n },\r\n grid: {\r\n show: false\r\n },\r\n },\r\n advertisedRatesHistorySeries: [],\r\n\r\n options: {\r\n chart: {\r\n id: 'CurrentPricing',\r\n toolbar: {\r\n show: false\r\n }\r\n },\r\n yaxis: {\r\n show: false\r\n },\r\n xaxis: {\r\n tooltip: { enabled: false },\r\n categories: [],\r\n labels: {\r\n show: false,\r\n style: {\r\n colors: '#8C9AA6',\r\n fontSize: '12px'\r\n },\r\n }\r\n },\r\n markers: {\r\n discrete: [{\r\n seriesIndex: 1,\r\n dataPointIndex: 0,\r\n fillColor: \"#F69E4F\",\r\n strokeColor: \"#FFF\",\r\n size: 6\r\n }, {\r\n seriesIndex: 1,\r\n dataPointIndex: 1,\r\n fillColor: \"#1B2C42\",\r\n strokeColor: \"#FFF\",\r\n size: 6\r\n }, {\r\n seriesIndex: 1,\r\n dataPointIndex: 2,\r\n fillColor: \"#5C95F6\",\r\n strokeColor: \"#FFF\",\r\n size: 6\r\n }, {\r\n seriesIndex: 1,\r\n dataPointIndex: 3,\r\n fillColor: \"#F3695D\",\r\n strokeColor: \"#FFF\",\r\n size: 6\r\n }, {\r\n seriesIndex: 1,\r\n dataPointIndex: 4,\r\n fillColor: \"#3FA7A1\",\r\n strokeColor: \"#FFF\",\r\n size: 6\r\n }, {\r\n seriesIndex: 1,\r\n dataPointIndex: 5,\r\n fillColor: \"#83CE83\",\r\n strokeColor: \"#FFF\",\r\n size: 6\r\n },\r\n {\r\n seriesIndex: 1,\r\n dataPointIndex: 6,\r\n fillColor: \"#FAC05F\",\r\n strokeColor: \"#FFF\",\r\n size: 6\r\n },\r\n {\r\n seriesIndex: 1,\r\n dataPointIndex: 7,\r\n fillColor: \"#959595\",\r\n strokeColor: \"#FFF\",\r\n size: 6\r\n }, {\r\n seriesIndex: 0,\r\n dataPointIndex: 0,\r\n fillColor: \"#F69E4F\",\r\n strokeColor: \"#FFF\",\r\n size: 6\r\n }, {\r\n seriesIndex: 0,\r\n dataPointIndex: 1,\r\n fillColor: \"#1B2C42\",\r\n strokeColor: \"#FFF\",\r\n size: 6\r\n }, {\r\n seriesIndex: 0,\r\n dataPointIndex: 2,\r\n fillColor: \"#5C95F6\",\r\n strokeColor: \"#FFF\",\r\n size: 6\r\n }, {\r\n seriesIndex: 0,\r\n dataPointIndex: 3,\r\n fillColor: \"#F3695D\",\r\n strokeColor: \"#FFF\",\r\n size: 6\r\n }, {\r\n seriesIndex: 0,\r\n dataPointIndex: 4,\r\n fillColor: \"#3FA7A1\",\r\n strokeColor: \"#FFF\",\r\n size: 6\r\n }, {\r\n seriesIndex: 0,\r\n dataPointIndex: 5,\r\n fillColor: \"#83CE83\",\r\n strokeColor: \"#FFF\",\r\n size: 6\r\n },\r\n {\r\n seriesIndex: 0,\r\n dataPointIndex: 6,\r\n fillColor: \"#FAC05F\",\r\n strokeColor: \"#FFF\",\r\n size: 6\r\n },\r\n {\r\n seriesIndex: 0,\r\n dataPointIndex: 7,\r\n fillColor: \"#959595\",\r\n strokeColor: \"#FFF\",\r\n size: 6\r\n },\r\n ]\r\n },\r\n tooltip: {\r\n enabled: true,\r\n followCursor: false,\r\n onDatasetHover: {\r\n highlightDataSeries: false,\r\n },\r\n },\r\n noData: {\r\n text: \"Please wait for the data to be loaded. The data volume is high and this might take a minute for loading the data.\",\r\n verticalAlign: 'top',\r\n style: {\r\n color: \"#5b95f6\",\r\n fontSize: '13px',\r\n fontFamily: \"Helvetica\"\r\n }\r\n },\r\n },\r\n series: [{\r\n name: 'STORE NAME',\r\n data: []\r\n }],\r\n\r\n activeTab: 1,\r\n isLoading1: false,\r\n order: \"asc\",\r\n orderBy: \"storeName\",\r\n snackOpen: false,\r\n snackMSg: \"\",\r\n unitDurations: [],\r\n hisactivemenu: \"1\",\r\n hisactivedur: \"2\",\r\n gridactivedur: 1,\r\n uniquestore: \"\",\r\n grapghCatcheck: \"Premium\",\r\n graphOpen: \"Premium\",\r\n // SinglelahMarkets: {},\r\n CoreMarketView: [],\r\n ChartTableData: [],\r\n GridTableValue: {},\r\n CurrentHistory: [],\r\n AllMarketdata: [],\r\n AllCurrentHistory: [],\r\n MarketViewpricingOptions: [],\r\n isLoading: false,\r\n AvailDataCheck: 0,\r\n stId: this.props.storeId,\r\n seId: this.props.searchId,\r\n defaultWidth: 0,\r\n priceLength: 0,\r\n pricecolLength: 0,\r\n Tabloading: false,\r\n promo_open: false,\r\n promo_open_id: 0,\r\n uniquestores: [],\r\n pdfunique: 0,\r\n snackClr: \"\",\r\n pageCount: 0,\r\n dropdownOpen: false,\r\n drpDownSelValue: 12,\r\n tenancyArray: [3, 6, 9, 12],\r\n storeAdvertising: [],\r\n yearRange : 2,\r\n duplicate_filterData : false,\r\n filterData : [],\r\n dupliacteColor:[],\r\n\r\n };\r\n this.handleRequestSort = this.handleRequestSort.bind(this);\r\n this.stableSort = this.stableSort.bind(this);\r\n this.getSorting = this.getSorting.bind(this);\r\n this.desc = this.desc.bind(this);\r\n this.onSelecCatGrapgh = this.onSelecCatGrapgh.bind(this);\r\n this.DurationsdropDown = this.DurationsdropDown.bind(this);\r\n this.AlignGraphTabData = this.AlignGraphTabData.bind(this);\r\n this.AlignHistoryGraphData = this.AlignHistoryGraphData.bind(this);\r\n //this.GetSummaryMarketData = this.GetSummaryMarketData.bind(this);\r\n this.GetGridtableData = this.GetGridtableData.bind(this);\r\n this.GetGraphTableData = this.GetGraphTableData.bind(this);\r\n this.onDurAndPriChange = this.onDurAndPriChange.bind(this);\r\n this.onDurAndDayChange = this.onDurAndDayChange.bind(this)\r\n localStorage.setItem(\"StId\", this.props.storeId);\r\n this.toggle = this.toggle.bind(this);\r\n }\r\n\r\n //Duration and Price Type Change\r\n onDurAndPriChange(e) {\r\n const { name, value } = e.target;\r\n let fields = this.state;\r\n fields[name] = value;\r\n if (name === \"gridactivedur\") {\r\n this.setState({ fields, isLoading1: true , filterData:[] }, () =>\r\n this.GetGridtableData()\r\n );\r\n } else {\r\n this.setState({ fields, isLoading1: true, advertisedRatesHistorySeries: [] , filterData : []}, () => {\r\n this.AlignHistoryGraphData()\r\n this.apexChartNoData({\r\n textMessage: \"Please wait for the data to be loaded. The data volume is high and this might take a minute for loading the data.\",\r\n colorCode: \"#5b95f6\"\r\n });\r\n }\r\n );\r\n }\r\n }\r\n\r\nonDurAndDayChange(e) {\r\n const { name, value } = e.target;\r\n let fields = this.state;\r\n fields[name] = value;\r\n this.setState({ fields, isLoading: true, advertisedRatesHistorySeries: [], yearRange : value , filterData : []}, () => {\r\n this.GetcurrentpricinganalysisHistory()\r\n this.apexChartNoData({\r\n textMessage: \"Please wait for the data to be loaded. The data volume is high and this might take a minute for loading the data.\",\r\n colorCode: \"#5b95f6\"\r\n });\r\n }\r\n );\r\n}\r\n //Tabs\r\n tabtoggle(tab) {\r\n if (this.state.activeTab !== tab) {\r\n this.setState(\r\n {\r\n activeTab: tab,\r\n Tabloading: false,\r\n filterData:[],\r\n advertisedRatesHistorySeries:[]\r\n // Tabloading: tab === 4 ? false : true,\r\n },\r\n () => {\r\n this.commonapiCall();\r\n this.apexChartNoData({\r\n textMessage: \"Please wait for the data to be loaded. The data volume is high and this might take a minute for loading the data.\",\r\n colorCode: \"#5b95f6\"\r\n });\r\n }\r\n );\r\n }\r\n }\r\n\r\n //Table Sorting\r\n handleRequestSort(event, property) {\r\n const { order, orderBy } = this.state;\r\n const isDesc = orderBy === property && order === \"desc\";\r\n let sort = isDesc ? \"asc\" : \"desc\";\r\n this.setState({ order: sort, orderBy: property });\r\n }\r\n\r\n //Table Sorting order\r\n desc(a, b, orderBy) {\r\n if (b[orderBy] < a[orderBy]) {\r\n return -1;\r\n }\r\n if (b[orderBy] > a[orderBy]) {\r\n return 1;\r\n }\r\n return 0;\r\n }\r\n\r\n //Table Sorting the selected Column\r\n stableSort(array, cmp) {\r\n const stabilizedThis = array.map((el, index) => [el, index]);\r\n stabilizedThis.sort((a, b) => {\r\n const order = cmp(a[0], b[0]);\r\n if (order !== 0) return order;\r\n return a[1] - b[1];\r\n });\r\n return stabilizedThis.map((el) => el[0]);\r\n }\r\n\r\n //Table Sorting Order Request\r\n getSorting(order, orderBy) {\r\n return order === \"desc\"\r\n ? (a, b) => this.desc(a, b, orderBy)\r\n : (a, b) => -this.desc(a, b, orderBy);\r\n }\r\n\r\n //To open Particular Category's Graph\r\n onSelecCatGrapgh(openActGraph) {\r\n let activeRow =\r\n this.state.grapghCatcheck === openActGraph ? \"\" : openActGraph;\r\n activeRow === \"\"\r\n ? this.setState({ grapghCatcheck: activeRow, graphOpen: activeRow })\r\n : this.setState(\r\n { grapghCatcheck: activeRow, graphOpen: activeRow },\r\n () => {\r\n this.TableViewGraphs();\r\n }\r\n );\r\n }\r\n\r\n //Grid Actions\r\n barhandleChange(CompId) {\r\n //loader\r\n this.setState({ isLoading: true, pdfunique: 1 });\r\n\r\n if (this.state.GridTableValue.dynamdata) {\r\n //getting the ids of to show or hide the graph data\r\n let GraphshowData = this.state.GridTableValue.dynamdata.filter(function (\r\n data\r\n ) {\r\n return data.isSelected === true && data.storeID !== CompId;\r\n });\r\n\r\n if (GraphshowData.length > 6) {\r\n this.setState({\r\n isLoading: false,\r\n snackOpen: true,\r\n snackMSg:\r\n \"You can view up to 8 markets only, please remove any of the selected markets to add new ones.\",\r\n });\r\n } else {\r\n //to change the selected value which clicked on table\r\n \r\n let uniquestore = [\r\n ...new Set(\r\n this.state.GridTableValue.dynamdata\r\n .filter(function (data) {\r\n return data.isSelected === true\r\n ? data.storeID !== CompId\r\n : data.storeID === CompId;\r\n })\r\n .map((item) => item.storeID)\r\n ),\r\n ].join(\", \");\r\n\r\n let uniquestores = [\r\n ...new Set(\r\n this.state.GridTableValue.dynamdata\r\n .filter(function (data) {\r\n return data.isSelected === true\r\n ? data.storeID !== CompId\r\n : data.storeID === CompId;\r\n })\r\n .map((item) => item.storeID)\r\n ),\r\n ].join(\"/\");\r\n\r\n for (var i = 0; i < this.state.GridTableValue.dynamdata.length; i++) {\r\n if (this.state.GridTableValue.dynamdata[i].storeID === CompId) {\r\n this.state.GridTableValue.dynamdata[i].isSelected =\r\n this.state.GridTableValue.dynamdata[i].isSelected === true\r\n ? false\r\n : true;\r\n }\r\n }\r\n let GridTableValue = this.state.GridTableValue;\r\n\r\n //If User Remove all Markets, then uniquestore should be 0\r\n uniquestore = uniquestore === \"\" ? 0 : uniquestore;\r\n uniquestores = uniquestores === \"\" ? 0 : uniquestores;\r\n this.setState({ uniquestores });\r\n this.setState({ GridTableValue, uniquestore }, () => {\r\n this.GetGraphTableData();\r\n this.GetcurrentpricinganalysisHistory();\r\n });\r\n }\r\n }\r\n }\r\n\r\n //SnackBar Close\r\n snackHandleclose = (event, reason) => {\r\n if (reason === \"clickaway\") {\r\n return;\r\n }\r\n this.setState({ snackOpen: false });\r\n };\r\n\r\n //Formatted in as per competitor\r\n formData(data) {\r\n let uniquestore = [...new Set(data.map((item) => item.storeID))];\r\n let CurrentActivity = this.state.grapghCatcheck;\r\n let Colorbarcode = [\r\n \"#f69e4f\",\r\n \"#85411b\",\r\n \"#5b95f6\",\r\n \"#f96a5d\",\r\n \"#3ea7a1\",\r\n \"#83ce83\",\r\n \"#fac05f\",\r\n \"#959595\",\r\n ];\r\n var FData = [];\r\n\r\n for (var t = 0; t < uniquestore.length; t++) {\r\n var tFData = data.filter(\r\n (a) =>\r\n a.storeID == uniquestore[t] && a.priceOptionName === CurrentActivity\r\n );\r\n var mData = {};\r\n if (tFData.length > 0) {\r\n let splitpriceVal = tFData[0].price.split(\"-\");\r\n let priceVal = splitpriceVal[1]\r\n ? parseInt(splitpriceVal[0])\r\n : splitpriceVal[0] !== \"0\"\r\n ? parseInt(splitpriceVal[0])\r\n : 0;\r\n let p1 =\r\n CurrentActivity === \"Price Range\"\r\n ? splitpriceVal[1]\r\n ? parseInt(splitpriceVal[1])\r\n : parseInt(splitpriceVal[0])\r\n : 0;\r\n\r\n mData = {\r\n StoreID: uniquestore[t],\r\n StoreName: tFData[0].storeName,\r\n price: parseInt(priceVal),\r\n priceOptionName: tFData[0].priceOptionName,\r\n price1: p1,\r\n labelPrice: splitpriceVal[0] === \"0\" ? \"N/A\" : splitpriceVal[0],\r\n labelPrice2:\r\n splitpriceVal[1] !== \"0\" && splitpriceVal[1]\r\n ? splitpriceVal[1]\r\n : splitpriceVal[0] === \"0\"\r\n ? \"N/A\"\r\n : splitpriceVal[0],\r\n Gcolor: Colorbarcode[t],\r\n IsSelected: tFData[0].isSelected,\r\n isMonthly: tFData[0].isMonthly,\r\n };\r\n }\r\n\r\n FData.push(mData);\r\n\r\n }\r\n return FData;\r\n\r\n }\r\n\r\n \r\n //Graph for Table\r\n TableViewGraphs() {\r\n \r\n let { CoreMarketView, grapghCatcheck, ChartTableData } = this.state;\r\n let dataPremium = [];\r\n let dataPremium_labelPrice2 = [];\r\n let dataPremiumName = [];\r\n let colorsCode = ['rgba(0, 0, 0, 0.25)'];\r\n var currency = this.props.currency ? this.props.currency : \"\";\r\n this.setState({series:[]});\r\n let filterMarkets = CoreMarketView.filter(fl => fl.storeID > 0);\r\n let uniquestore = [...new Set(filterMarkets.map((item) => item.storeID))];\r\n for (var t = 0; t < uniquestore.length; t++) {\r\n let tFData = filterMarkets.filter((a) => a.storeID == uniquestore[t] && a.priceOptionName === grapghCatcheck);\r\n let noValues = tFData.every(item => item.price === null || item.price === '' || item.price === undefined);\r\n if (!noValues) {\r\n let splitpriceVal = tFData[0].price.split(\"-\");\r\n let labelPrice = splitpriceVal[0] === \"0\" ? \"N/A\" : splitpriceVal[0];\r\n let labelPrice2 = splitpriceVal[1] !== \"0\" && splitpriceVal[1] ? splitpriceVal[1] : splitpriceVal[0] === \"0\" ? \"N/A\" : splitpriceVal[0];\r\n let storeName = tFData[0].storeName ? tFData[0].storeName : null;\r\n dataPremium.push(isNaN(labelPrice) ? null : labelPrice);\r\n dataPremium_labelPrice2.push(isNaN(labelPrice2) ? null : labelPrice2);\r\n dataPremiumName.push(storeName);\r\n }\r\n }\r\n let allViewGrid;\r\n if(grapghCatcheck == \"Price Range\"){\r\n allViewGrid = [{ name: \"\", data: dataPremium }, { name: \"\", data: dataPremium_labelPrice2 }];\r\n }else{\r\n allViewGrid = [{ name: \"\", data: dataPremium }];\r\n }\r\n \r\n if (dataPremium.length > 0) {\r\n this.setState({\r\n options: {\r\n chart: {\r\n id: `CurrentPricing${Math.random()}`,\r\n events: {\r\n beforeZoom: function(chartContext, { xaxis,yaxis }) {\r\n if(yaxis !== undefined || xaxis.min > 0) return chartContext.t.reset =`\"Reset`;\r\n },\r\n zoomed: function(chartContext, { xaxis, yaxis }) {\r\n if(yaxis === undefined || xaxis.min <= 0) return chartContext.toolbar.t.reset = false;\r\n }\r\n },\r\n toolbar: {\r\n show: true,\r\n tools: {\r\n download: false,\r\n selection: true,\r\n zoom: false,\r\n zoomin:false,\r\n zoomout:false,\r\n pan:false,\r\n reset:false,\r\n },\r\n }\r\n },\r\n stroke: {\r\n width: 2,\r\n curve: 'straight'\r\n },\r\n colors: colorsCode,\r\n legend: { show: false },\r\n grid : {\r\n show : false,\r\n padding: {\r\n right: ChartTableData.TableHead.length == 2 ? 0 : 50,\r\n left: 60\r\n }, \r\n },\r\n markers: {\r\n discrete: [{\r\n seriesIndex: 1,\r\n dataPointIndex: 0,\r\n fillColor: \"#F69E4F\",\r\n strokeColor: \"#FFF\",\r\n size: 6\r\n }, {\r\n seriesIndex: 1,\r\n dataPointIndex: 1,\r\n fillColor: \"#1B2C42\",\r\n strokeColor: \"#FFF\",\r\n size: 6\r\n }, {\r\n seriesIndex: 1,\r\n dataPointIndex: 2,\r\n fillColor: \"#5C95F6\",\r\n strokeColor: \"#FFF\",\r\n size: 6\r\n }, {\r\n seriesIndex: 1,\r\n dataPointIndex: 3,\r\n fillColor: \"#F3695D\",\r\n strokeColor: \"#FFF\",\r\n size: 6\r\n }, {\r\n seriesIndex: 1,\r\n dataPointIndex: 4,\r\n fillColor: \"#3FA7A1\",\r\n strokeColor: \"#FFF\",\r\n size: 6\r\n }, {\r\n seriesIndex: 1,\r\n dataPointIndex: 5,\r\n fillColor: \"#83CE83\",\r\n strokeColor: \"#FFF\",\r\n size: 6\r\n },\r\n {\r\n seriesIndex: 1,\r\n dataPointIndex: 6,\r\n fillColor: \"#FAC05F\",\r\n strokeColor: \"#FFF\",\r\n size: 6\r\n },\r\n {\r\n seriesIndex: 1,\r\n dataPointIndex: 7,\r\n fillColor: \"#959595\",\r\n strokeColor: \"#FFF\",\r\n size: 6\r\n }, {\r\n seriesIndex: 0,\r\n dataPointIndex: 0,\r\n fillColor: \"#F69E4F\",\r\n strokeColor: \"#FFF\",\r\n size: 6\r\n }, {\r\n seriesIndex: 0,\r\n dataPointIndex: 1,\r\n fillColor: \"#1B2C42\",\r\n strokeColor: \"#FFF\",\r\n size: 6\r\n }, {\r\n seriesIndex: 0,\r\n dataPointIndex: 2,\r\n fillColor: \"#5C95F6\",\r\n strokeColor: \"#FFF\",\r\n size: 6\r\n }, {\r\n seriesIndex: 0,\r\n dataPointIndex: 3,\r\n fillColor: \"#F3695D\",\r\n strokeColor: \"#FFF\",\r\n size: 6\r\n }, {\r\n seriesIndex: 0,\r\n dataPointIndex: 4,\r\n fillColor: \"#3FA7A1\",\r\n strokeColor: \"#FFF\",\r\n size: 6\r\n }, {\r\n seriesIndex: 0,\r\n dataPointIndex: 5,\r\n fillColor: \"#83CE83\",\r\n strokeColor: \"#FFF\",\r\n size: 6\r\n },\r\n {\r\n seriesIndex: 0,\r\n dataPointIndex: 6,\r\n fillColor: \"#FAC05F\",\r\n strokeColor: \"#FFF\",\r\n size: 6\r\n },\r\n {\r\n seriesIndex: 0,\r\n dataPointIndex: 7,\r\n fillColor: \"#959595\",\r\n strokeColor: \"#FFF\",\r\n size: 6\r\n },\r\n ]\r\n },\r\n tooltip: {\r\n custom: undefined,\r\n marker : {show : false},\r\n inverseOrder: true,\r\n x: {\r\n show: false,\r\n },\r\n y: {\r\n formatter: function (val, opts) {\r\n if (typeof (opts) === \"object\") {\r\n let store = dataPremiumName.length > 0 ? dataPremiumName[opts.dataPointIndex] : '';\r\n let cUp = opts.w.config.series[opts.seriesIndex].data[opts.dataPointIndex] !== null ? currency + opts.w.config.series[opts.seriesIndex].data[opts.dataPointIndex] : 'N/A';\r\n if (!(opts.seriesIndex && opts.w.config.series[0].data[opts.dataPointIndex] === opts.w.config.series[1].data[opts.dataPointIndex])) {\r\n let add = `${store} : ${cUp}`\r\n return add;\r\n } \r\n }\r\n },\r\n title: {\r\n formatter: function (val) {\r\n if (val) return \"\";\r\n }\r\n }\r\n },\r\n enabled: true,\r\n showForNullSeries: false,\r\n onDatasetHover: {\r\n highlightDataSeries: false,\r\n },\r\n style: {\r\n fontSize: '11px',\r\n fontFamily: \"Roboto, Helvetica, Arial , sans-serif\"\r\n },\r\n },\r\n yaxis: {\r\n labels: {\r\n formatter: function (value) {\r\n return value === null ? \"N/A\" : currency + value.toFixed(2);\r\n },\r\n style: {\r\n colors: '#8C9AA6',\r\n fontSize: '10px'\r\n },\r\n },\r\n },\r\n xaxis: {\r\n categories: dataPremiumName,\r\n tooltip: {\r\n enabled: false,\r\n },\r\n labels: {\r\n formatter: function (value) {\r\n let val = value === undefined || typeof (value) !== \"string\" ? '' : value.toUpperCase();\r\n return ChartTableData.TableHead.length === 2 && val.length > 16 ? val.substring(0, 16) + \"...\" : val ;\r\n },\r\n style: {\r\n fontSize: '10px',\r\n },\r\n hideOverlappingLabels: false,\r\n trim: ChartTableData.TableHead.length === 2 ? false : true,\r\n show: true,\r\n rotate: 0,\r\n },\r\n },\r\n noData: {\r\n text: 'Please enable any one of the below legend to view the graph.',\r\n style: {\r\n color: \"#5b95f6\",\r\n }\r\n },\r\n },\r\n series: allViewGrid\r\n })\r\n } else {\r\n this.setState({\r\n options: {\r\n chart: {\r\n toolbar: {\r\n show: false\r\n }\r\n },\r\n noData: {\r\n text: \"No Records Found.\",\r\n align: 'center',\r\n verticalAlign: 'top',\r\n offsetX: 0,\r\n offsetY: 0,\r\n style: {\r\n color: \"#F60000\",\r\n fontSize: '13px',\r\n fontFamily: \"Helvetica\"\r\n }\r\n },\r\n yaxis: { show: false },\r\n xaxis: {\r\n labels: {\r\n show: false\r\n },\r\n categories: []\r\n },\r\n },\r\n series: []\r\n })\r\n }\r\n }\r\n\r\n\r\n dropDownData(tFData) {\r\n var { hisactivemenu } = this.state;\r\n let dataSeries1 = [];\r\n let dataSeries2 = [];\r\n let CurrentActivity = hisactivemenu === \"2\" ? \"Price Range\" : \"\";\r\n let priceRange1, priceRange2, datePrice;\r\n let noValues = tFData.every(item => item.price === null || item.price === '' || item.price === undefined);\r\n if (!noValues) {\r\n if (CurrentActivity === \"Price Range\") {\r\n dataSeries1 = tFData.map(val => {\r\n let splitpriceVal = val.price.split(\"-\");\r\n priceRange1 = parseInt(splitpriceVal[0]);\r\n priceRange2 = splitpriceVal[1] ? parseInt(splitpriceVal[1]) : parseInt(splitpriceVal[0]);\r\n datePrice = moment(val.datePrice, 'YYYY-MM-DD').format('DD-MMM-YYYY');\r\n return { '0': { x: datePrice, y: priceRange1 === 0 ? null : priceRange1, fullName: val.price }, '1': { x: datePrice, y: priceRange2 === 0 ? null : priceRange2, fullName: val.price } };\r\n });\r\n } else {\r\n dataSeries2 = tFData.map(val => {\r\n priceRange1 = val.price;\r\n priceRange2 = 0;\r\n datePrice = moment(val.datePrice, 'YYYY-MM-DD').format('DD-MMM-YYYY');\r\n return { x: datePrice, y: priceRange1 === '0' ? null : priceRange1, fullName: val.price };\r\n })\r\n }\r\n return [dataSeries1, dataSeries2];\r\n }\r\n }\r\n apexChartNoData = ({ textMessage, colorCode }) => {\r\n this.setState({\r\n advertisedRatesHistorySeries: [],\r\n filterData:[],\r\n advertisedRatesHistoryOptions: {\r\n chart: {\r\n toolbar: {\r\n show: false\r\n }\r\n },\r\n xaxis: {\r\n labels: {\r\n show: false\r\n },\r\n axisBorder: {\r\n show: false\r\n },\r\n axisTicks: {\r\n show: false\r\n }\r\n },\r\n yaxis: {\r\n show: false\r\n },\r\n noData: {\r\n text: textMessage,\r\n style: { color: colorCode }\r\n }\r\n }\r\n });\r\n }\r\n\r\n //Graph for History\r\n HistoryGraphView() {\r\n var { CurrentHistory, hisactivemenu, yearRange , filterData } = this.state;\r\n let actualData = [];\r\n let filter_actualData = [];\r\n let markerSize = [];\r\n let xaxis_data = [];\r\n var currency = this.props.currency ? this.props.currency : \"\";\r\n let colors = ['#f69e4f', '#1b2c42', '#85411b', '#5b95f6', '#f96a5d', '#3ea7a1', '#83ce83', '#fac05f', '#959595'];\r\n this.setState({filterData:[], advertisedRatesHistorySeries:[]});\r\n if (CurrentHistory.length > 0) {\r\n let unique = [...new Set(CurrentHistory.map((item) => item.storeID))];\r\n let CurrentActivity = hisactivemenu == \"2\" ? \"Price Range\" : \"\";\r\n for (var i = 0; i < unique.length; i++) {\r\n var tFData = CurrentHistory.filter((a) => a.storeID === unique[i]);\r\n var tFMarketName = CurrentHistory.find((a) => a.storeID === unique[i]);\r\n let dataSeries = this.dropDownData(tFData);\r\n \r\n if (dataSeries[0].length > 0) {\r\n\r\n actualData.push({ name: tFMarketName[\"storeName\"]+[i+1], data: dataSeries[0].map(val => { return val[0] }), color: colors[i] }, { name: tFMarketName[\"storeName\"]+[i+1] + \" data\", data: dataSeries[0].map(val => { return val[1] }), color: colors[i] });\r\n filter_actualData.push({name: tFMarketName[\"storeName\"], data: dataSeries[0].map(val => { return val[0] }), color: colors[i]} , { name: tFMarketName[\"storeName\"] , data: dataSeries[0].map(val => { return val[1] }), color: colors[i] });\r\n markerSize.push(10, 0);\r\n } else {\r\n actualData.push({ name: tFMarketName[\"storeName\"], data: dataSeries[1], color: colors[i] });\r\n filter_actualData.push({name: tFMarketName[\"storeName\"], data: dataSeries[1], color: colors[i]});\r\n markerSize.push(10);\r\n }\r\n }\r\n\r\n xaxis_data = actualData.map(item => item.data.map(i => i.x));\r\n \r\n let newData = [];\r\n filter_actualData.map(dataItem => dataItem.data.forEach(i => {\r\n if(i.y !== null ){\r\n filter_actualData.map(userItem => userItem.data.forEach(j => {\r\n if(j.y !== null){\r\n if((dataItem.name !== userItem.name) && (dataItem.color !== userItem.color)){\r\n if(( (i.y === j.y) && (i.x === j.x) ) || ( (i.x === j.x) && (i.fullName === j.fullName)) ){\r\n newData.push({name:dataItem.name ,color:dataItem.color});\r\n let filterData = newData.reduce((elements, obj, index) => {\r\n let existingData = elements.find(element =>\r\n element.name === obj.name && element.color === obj.color\r\n );\r\n if (!existingData) {\r\n elements.push(obj);\r\n }\r\n return elements;\r\n }, []);\r\n this.setState({filterData:filterData});\r\n }\r\n }\r\n }\r\n }))\r\n }\r\n }));\r\n\r\n let actualData_nullValChk = actualData.map(i=>i.data);\r\n let nullValChk_bool =[]\r\n for(let i=0 ; ii.y)\r\n if(nullValChk_data.every(item=>item === null)){\r\n nullValChk_bool.push(true)\r\n }else{\r\n nullValChk_bool.push(false)\r\n }\r\n }\r\n\r\n let condition = false;\r\n if(nullValChk_bool.every(item => item == true)){\r\n condition = true\r\n }else{\r\n condition = false\r\n }\r\n\r\n if ( condition == false) {\r\n this.setState({\r\n advertisedRatesHistorySeries: actualData,\r\n advertisedRatesHistoryOptions: {\r\n chart: {\r\n toolbar: {\r\n show: true,\r\n tools: {\r\n download: false,\r\n selection: true,\r\n zoom: false,\r\n zoomin:false,\r\n zoomout:false,\r\n pan:false,\r\n reset:false,\r\n },\r\n },\r\n events: {\r\n legendClick: function (chartContext, seriesIndex, config) {\r\n if (CurrentActivity === \"Price Range\") {\r\n let marketName = config.config.series[seriesIndex].name + ' data';\r\n if (config.config.series[seriesIndex + 1].name === marketName) chartContext.toggleSeries(marketName);\r\n }\r\n },\r\n beforeZoom: function(chartContext, { xaxis,yaxis }) {\r\n if(yaxis !== undefined || xaxis.min > 0) return chartContext.t.reset =`\"Reset`;\r\n },\r\n zoomed: function(chartContext, { xaxis, yaxis }) {\r\n if(yaxis === undefined || xaxis.min <= 0) return chartContext.toolbar.t.reset = false;\r\n },\r\n mouseMove: function(event, chartContext, config) {\r\n var tooltip = chartContext.el.querySelector('.apexcharts-tooltip');\r\n let Value = tooltip !== null && tooltip.style.top ? parseInt(tooltip.style.top) : 0;\r\n var series = config.config.series.filter(item => item.data.length !== 0);\r\n if(CurrentActivity === \"Price Range\"){\r\n if ((series.length == 1 || series.length == 2) && Value > 218) {\r\n chartContext.el.classList.add('new_tooltip_height1')\r\n }else if((series.length == 3 || series.length == 4) && Value > 185){\r\n chartContext.el.classList.add('new_tooltip_height2')\r\n }else if((series.length == 5 || series.length == 6) && Value > 150){\r\n chartContext.el.classList.add('new_tooltip_height3')\r\n }else if((series.length == 7 || series.length == 8) && Value > 117){\r\n chartContext.el.classList.add('new_tooltip_height4')\r\n }else if((series.length == 9 || series.length == 10) && Value > 83){\r\n chartContext.el.classList.add('new_tooltip_height5')\r\n }else if((series.length == 11 || series.length == 12) && Value > 50){\r\n chartContext.el.classList.add('new_tooltip_height6')\r\n }else if((series.length == 13 || series.length == 14) && Value > 0){\r\n chartContext.el.classList.add('new_tooltip_height7')\r\n }else if((series.length == 15 || series.length == 16)&& Value > 0){\r\n chartContext.el.classList.add('new_tooltip_height8')\r\n }else{\r\n chartContext.el.classList.remove('new_tooltip_height1')\r\n chartContext.el.classList.remove('new_tooltip_height2')\r\n chartContext.el.classList.remove('new_tooltip_height3')\r\n chartContext.el.classList.remove('new_tooltip_height4')\r\n chartContext.el.classList.remove('new_tooltip_height5')\r\n chartContext.el.classList.remove('new_tooltip_height6')\r\n chartContext.el.classList.remove('new_tooltip_height7')\r\n chartContext.el.classList.remove('new_tooltip_height8')\r\n }\r\n }else{\r\n if (series.length == 1 && Value > 218) {\r\n chartContext.el.classList.add('new_tooltip_height1')\r\n }else if(series.length == 2 && Value > 185){\r\n chartContext.el.classList.add('new_tooltip_height2')\r\n }else if(series.length == 3 && Value > 150){\r\n chartContext.el.classList.add('new_tooltip_height3')\r\n }else if(series.length == 4 && Value > 117){\r\n chartContext.el.classList.add('new_tooltip_height4')\r\n }else if(series.length == 5 && Value > 83){\r\n chartContext.el.classList.add('new_tooltip_height5')\r\n }else if(series.length == 6 && Value > 50){\r\n chartContext.el.classList.add('new_tooltip_height6')\r\n }else if((series.length == 7 || series.length == 8) && Value > 0){\r\n chartContext.el.classList.add('new_tooltip_height7')\r\n }else if(series.length > 8 && Value > 0){\r\n chartContext.el.classList.add('new_tooltip_height8')\r\n }\r\n else{\r\n chartContext.el.classList.remove('new_tooltip_height1')\r\n chartContext.el.classList.remove('new_tooltip_height2')\r\n chartContext.el.classList.remove('new_tooltip_height3')\r\n chartContext.el.classList.remove('new_tooltip_height4')\r\n chartContext.el.classList.remove('new_tooltip_height5')\r\n chartContext.el.classList.remove('new_tooltip_height6')\r\n chartContext.el.classList.remove('new_tooltip_height7')\r\n chartContext.el.classList.remove('new_tooltip_height8')\r\n }\r\n }\r\n \r\n }\r\n },\r\n },\r\n yaxis: {\r\n labels: {\r\n formatter: function (value) {\r\n return value === null ? \"N/A\" : currency + value.toFixed(2);\r\n },\r\n style: {\r\n colors: '#8C9AA6',\r\n fontSize: '10px'\r\n },\r\n },\r\n },\r\n xaxis: {\r\n tooltip: {\r\n enabled: false\r\n },\r\n categories:xaxis_data,\r\n \r\n labels: {\r\n show: true,\r\n rotate: 0,\r\n \r\n formatter: function(value, timestamp, opts) {\r\n let val = value === undefined || typeof (value) !== \"string\" ? '' : parseInt(yearRange) < 4 ? moment(new Date(value)).format('DD-MMM-YYYY'):moment(new Date(value)).format('MMM-YYYY'); \r\n return val;\r\n },\r\n\r\n style: {\r\n fontSize: '10px',\r\n },\r\n },\r\n tickPlacement: 'on',\r\n tickAmount: yearRange == 1 ? 4 : yearRange == 2 ? 4 : yearRange == 3 ? 12 : yearRange == 4 ? 5 : 9, \r\n\r\n axisBorder: {\r\n show: true\r\n },\r\n axisTicks: {\r\n show: true\r\n }\r\n },\r\n legend: {\r\n position: 'bottom',\r\n horizontalAlign: 'center',\r\n fontSize: '11px',\r\n fontWeight: 500,\r\n showForNullSeries: false,\r\n showForZeroSeries: true,\r\n showForSingleSeries: true,\r\n formatter: (seriesName, opts) => {\r\n if (seriesName.endsWith('data')) return '';\r\n else return CurrentActivity === \"Price Range\" ? seriesName.substring(0, seriesName.length - 1) :seriesName;\r\n },\r\n markers: {\r\n width: markerSize,\r\n height: markerSize,\r\n },\r\n itemMargin: {\r\n horizontal: 10,\r\n vertical: 20,\r\n },\r\n onItemClick: {\r\n toggleDataSeries: true\r\n },\r\n onItemHover: {\r\n highlightDataSeries: true\r\n },\r\n },\r\n grid: {\r\n show: false,\r\n row: {\r\n colors: ['#FFFFFF']\r\n },\r\n padding: {\r\n left: 20,\r\n right: 40 // Also you may want to increase this (based on the length of your labels)\r\n },\r\n \r\n },\r\n tooltip: {\r\n enabled: true,\r\n showForNullSeries: false,\r\n onDatasetHover: {\r\n highlightDataSeries: false,\r\n },\r\n style: {\r\n fontSize: '10px',\r\n fontFamily: \"Roboto, Helvetica, Arial , sans-serif\"\r\n },\r\n x: {\r\n show: true,\r\n format: 'dd MMM yyyy',\r\n formatter: function (val, { series, seriesIndex, dataPointIndex, w }) {\r\n let dateList = w.config.series.filter(item => item.data.length !== 0)[0]\r\n let valueDate = moment(new Date(dateList.data[dataPointIndex].x)).format('DD-MMM-YYYY');\r\n \r\n return valueDate;\r\n \r\n }\r\n },\r\n\r\n y: {\r\n title: {\r\n formatter: (seriesName) => CurrentActivity === \"Price Range\" ? seriesName.substring(0, seriesName.length - 1) :seriesName,\r\n },\r\n formatter: function (val, { series, seriesIndex, dataPointIndex, w }) {\r\n if (CurrentActivity === \"Price Range\") {\r\n let marketName = w.config.series[seriesIndex].name;\r\n let forDat = typeof (w.config.series[seriesIndex].data[dataPointIndex]) === \"object\" ? w.config.series[seriesIndex].data[dataPointIndex].fullName !== \"0\" ? currency + w.config.series[seriesIndex].data[dataPointIndex].fullName : \" N/A\" : '';\r\n if (!marketName.endsWith('data')) return \": \" + forDat;\r\n } else return val === null ? ': N/A' : \": \" + currency + val;\r\n },\r\n },\r\n marker: {\r\n show: true,\r\n },\r\n },\r\n noData: {\r\n text: 'Please enable any one of the below legend to view the graph.',\r\n style: {\r\n color: \"#5b95f6\",\r\n }\r\n },\r\n },\r\n })\r\n }\r\n else {\r\n this.setState({\r\n advertisedRatesHistorySeries: [],\r\n filterData:[],\r\n advertisedRatesHistoryOptions: {\r\n chart: {\r\n toolbar: {\r\n show: false\r\n }\r\n },\r\n xaxis: {\r\n labels: {\r\n show: false\r\n },\r\n axisBorder: {\r\n show: false\r\n },\r\n axisTicks: {\r\n show: false\r\n }\r\n },\r\n yaxis: {\r\n show: false\r\n },\r\n noData: {\r\n text: \"No Records Found\",\r\n style:{ color: \"#F60000\" }\r\n }\r\n }\r\n });\r\n }\r\n } else {\r\n this.setState({\r\n advertisedRatesHistorySeries: [],\r\n filterData:[],\r\n advertisedRatesHistoryOptions: {\r\n xaxis: {\r\n labels: {\r\n show: false\r\n },\r\n axisBorder: {\r\n show: false\r\n },\r\n axisTicks: {\r\n show: false\r\n }\r\n },\r\n yaxis: {\r\n show: false\r\n },\r\n noData: {\r\n text: \"No Records Found\",\r\n style:{ color: \"#F60000\" }\r\n }\r\n }\r\n });\r\n }\r\n \r\n }\r\n\r\n componentDidMount() {\r\n this.setState(\r\n {\r\n isLoading: true,\r\n hisactivedur: \"2\",\r\n hisactivemenu: \"1\",\r\n uniquestore: \"\",\r\n uniquestores: [],\r\n pdfunique: 0,\r\n },\r\n () => {\r\n this.commonapiCall();\r\n }\r\n );\r\n }\r\n\r\n commonapiCall() {\r\n this.DurationsdropDown();\r\n this.GetGraphTableData();\r\n // this.TableViewGraphs();\r\n //this.GetSummaryMarketData();\r\n this.GetGridtableData();\r\n this.GetcurrentpricinganalysisHistory();\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (nextProps.searchId !== this.state.seId) {\r\n this.setState(\r\n {\r\n hisactivedur: \"2\",\r\n seId: nextProps.searchId,\r\n stId: nextProps.storeId,\r\n },\r\n () => {\r\n this.componentDidMount();\r\n }\r\n );\r\n }\r\n }\r\n\r\n //Duration For DropDown\r\n DurationsdropDown() {\r\n\r\n let token = localStorage.getItem(\"accessKey\");\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = \"Bearer \" + token;\r\n }\r\n axios\r\n .get(CONFIG.API_URL + \"unit/unitdurations\")\r\n .then((response) => {\r\n let unitDurations = response.data.data.lookupData;\r\n this.setState({\r\n unitDurations,\r\n });\r\n })\r\n .catch((err) => {\r\n if (err.response.status === 401) {\r\n localStorage.removeItem(\"accessKey\");\r\n const { from } = this.props.location.state || {\r\n from: { pathname: \"/\" },\r\n };\r\n this.props.history.push(from);\r\n } else {\r\n alert(err.response.data);\r\n }\r\n });\r\n\r\n\r\n }\r\n\r\n // Grid Table data\r\n GetGridtableData() {\r\n let token = localStorage.getItem(\"accessKey\");\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = \"Bearer \" + token;\r\n }\r\n let data = {\r\n UserStoreID: this.state.stId,\r\n SearchId: this.state.seId,\r\n PriceType: 1,//this.state.activeTab,\r\n Competitors: this.state.uniquestore,\r\n Duration: parseInt(this.state.gridactivedur),\r\n RegionId: CONFIG.RegionId,\r\n };\r\n let effectiveRateIp = {\r\n UserStoreID: this.state.stId,\r\n SearchId: this.state.seId,\r\n EffectiveTimePeriod: this.state.drpDownSelValue,\r\n Competitors: this.state.uniquestore,\r\n Duration: parseInt(this.state.gridactivedur),\r\n RegionId: CONFIG.RegionId,\r\n };\r\n let inputData = this.state.activeTab === 4 ? effectiveRateIp : data;\r\n let hostName =\r\n this.state.activeTab === 4\r\n ? \"effectiverateallmarketview\"\r\n : \"currentpricinganalysisallmarketviews\";\r\n axios\r\n .post(CONFIG.API_URL + \"dashboard/\" + hostName, inputData)\r\n .then((res) => {\r\n let GridTableValue = this.state.GridTableValue;\r\n let AllMarketdata = res.data.current.currentPricingAnalysisAllMarket;\r\n let storeAdvertising = AllMarketdata.filter(x => x.isNotCurrentlyAdvertised === true)[0];\r\n //To get Only Your Store on All Market View\r\n GridTableValue[\"statdata\"] = AllMarketdata.filter(function (data) {\r\n return data.isMyStore === 1;\r\n });\r\n //To get Stores Expect Your Store on All Market View\r\n GridTableValue[\"dynamdata\"] = AllMarketdata.filter(function (data) {\r\n return data.isMyStore !== 1;\r\n });\r\n this.setState({ GridTableValue, AllMarketdata, isLoading1: false, storeAdvertising });\r\n })\r\n .catch((err) => {\r\n if (err.response.status === 401) {\r\n localStorage.removeItem(\"accessKey\");\r\n const { from } = this.props.location.state || {\r\n from: { pathname: \"/\" },\r\n };\r\n this.props.history.push(from);\r\n } else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }\r\n\r\n //History Graph\r\n GetcurrentpricinganalysisHistory() {\r\n let token = localStorage.getItem(\"accessKey\");\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = \"Bearer \" + token;\r\n }\r\n\r\n this.setState({\r\n AllCurrentHistory: [],\r\n isLoading: true,\r\n });\r\n\r\n let data = {\r\n UserStoreID: this.state.stId,\r\n SearchId: this.state.seId,\r\n PriceType: this.state.activeTab,\r\n Competitors: this.state.uniquestore,\r\n Duration: parseInt(this.state.hisactivedur),\r\n RegionId: CONFIG.RegionId,\r\n };\r\n let effectiveRateIp = {\r\n UserStoreID: this.state.stId,\r\n SearchId: this.state.seId,\r\n EffectiveTimePeriod: this.state.drpDownSelValue,\r\n Competitors: this.state.uniquestore,\r\n Duration: parseInt(this.state.hisactivedur),\r\n RegionId: CONFIG.RegionId,\r\n };\r\n let inputData = this.state.activeTab === 4 ? effectiveRateIp : data;\r\n let hostName =\r\n this.state.activeTab === 4\r\n ? \"effectiveratehistories\"\r\n : \"currentpricinganalysisHistories\";\r\n\r\n axios\r\n .post(CONFIG.API_URL + \"dashboard/\" + hostName, inputData)\r\n .then((response) => {\r\n let AllCurrentHistory = response.data.current;\r\n this.setState({ AllCurrentHistory }, () => {\r\n this.AlignHistoryGraphData();\r\n });\r\n })\r\n .catch((err) => {\r\n if (err.response.status === 401) {\r\n localStorage.removeItem(\"accessKey\");\r\n const { from } = this.props.location.state || {\r\n from: { pathname: \"/\" },\r\n };\r\n this.props.history.push(from);\r\n } else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }\r\n\r\n // Data Format HistoryGraph View\r\n AlignHistoryGraphData() {\r\n const { AllCurrentHistory, hisactivemenu } = this.state;\r\n\r\n //Based Dropdown above the History graph\r\n let CurrentActivity =\r\n hisactivemenu === \"1\"\r\n ? \"Premium\"\r\n : hisactivemenu === \"2\"\r\n ? \"Price Range\"\r\n : \"Value\";\r\n // Get Current priceOptionName\r\n let filterByMenu = AllCurrentHistory.filter(\r\n (a) => a.priceOptionName === CurrentActivity\r\n );\r\n\r\n //Spliting mystore and Non-mystore data to order\r\n let getMystore = filterByMenu.filter((a) => a.isMyMarket === 1);\r\n let getwithoutMystore = filterByMenu.filter((a) => a.isMyMarket === 0);\r\n\r\n let CurrentHistory = getMystore.concat(getwithoutMystore);\r\n \r\n setTimeout(\r\n function () {\r\n this.setState(\r\n { CurrentHistory, isLoading: false, isLoading1: false, advertisedRatesHistorySeries:[]},\r\n () => {\r\n this.HistoryGraphView();\r\n }\r\n );\r\n }.bind(this),\r\n 3000\r\n );\r\n }\r\n\r\n //Graph Table data\r\n GetGraphTableData() {\r\n let token = localStorage.getItem(\"accessKey\");\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = \"Bearer \" + token;\r\n }\r\n let data = {\r\n UserStoreID: this.state.stId,\r\n SearchId: this.state.seId,\r\n PriceType: this.state.activeTab,\r\n Competitors: this.state.uniquestore,\r\n RegionId: CONFIG.RegionId,\r\n };\r\n let effectiveRateIp = {\r\n UserStoreID: this.state.stId,\r\n SearchId: this.state.seId,\r\n EffectiveTimePeriod: this.state.drpDownSelValue,\r\n Competitors: this.state.uniquestore,\r\n // Duration: parseInt(this.state.gridactivedur),\r\n RegionId: CONFIG.RegionId,\r\n };\r\n let inputData = this.state.activeTab === 4 ? effectiveRateIp : data;\r\n let hostName =\r\n this.state.activeTab === 4\r\n ? \"effectiveratemarketview\"\r\n : \"currentpricinganalysiscoremarketview\";\r\n axios\r\n .post(CONFIG.API_URL + \"dashboard/\" + hostName, inputData)\r\n .then((res) => {\r\n let CoreMarketView = res.data.current.currentPricingAnalysisMarket;\r\n let MarketViewpricingOptions = res.data.current.currentPricingAnalysis;\r\n\r\n\r\n this.setState(\r\n {\r\n CoreMarketView,\r\n MarketViewpricingOptions,\r\n isLoading1: false,\r\n Tabloading: false,\r\n },\r\n () => {\r\n // if (this.state.activeTab !== 4) {\r\n this.AlignGraphTabData();\r\n // }\r\n }\r\n );\r\n })\r\n .catch((err) => {\r\n this.setState({ isLoading1: false, Tabloading: false });\r\n if (err.response.status === 401) {\r\n localStorage.removeItem(\"accessKey\");\r\n const { from } = this.props.location.state || {\r\n from: { pathname: \"/\" },\r\n };\r\n this.props.history.push(from);\r\n } else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }\r\n\r\n // Data Format table View\r\n AlignGraphTabData() {\r\n const { CoreMarketView } = this.state;\r\n\r\n let ChartTableData = this.state.ChartTableData;\r\n\r\n //Checking for data availability\r\n let AvailDataCheck = [];\r\n\r\n AvailDataCheck = CoreMarketView.filter(function (data) {\r\n return data.storeID > 0 && data.price != 0;\r\n });\r\n\r\n //For table Row Height controll\r\n let priceLength = this.state.priceLength;\r\n let pricecolLength = this.state.pricecolLength;\r\n\r\n /* Spliting the data in the order of activityType */\r\n ChartTableData[\"lahMarkets\"] = [];\r\n if (AvailDataCheck.length > 0) {\r\n if (this.state.activeTab === 3) {\r\n /* Barchart table's Head data */\r\n ChartTableData[\"TableHead\"] = CoreMarketView.filter(function (data) {\r\n return data.storeID > 0;\r\n });\r\n /* end of Barchart table's Head data */\r\n\r\n /* Barchart table's body data */\r\n ChartTableData[\"TableBody\"] = [];\r\n\r\n //For Premium data\r\n ChartTableData[\"TableBody\"].push({\r\n td1: \"Promotions\",\r\n td2: CoreMarketView.filter(function (data) {\r\n return data.storeID > 0;\r\n }),\r\n });\r\n /* End of Barchart table's body data */\r\n } else {\r\n //For table Row Height controll\r\n\r\n //}), d => (d.price + (d.alternatePriceTag ? '(' + d.alternatePriceTag + ')' : '')).length);\r\n\r\n pricecolLength = CoreMarketView.filter(function (data) {\r\n return data.storeID > 0 && data.priceOptionName === \"Price Range\";\r\n }).length;\r\n // End of For table Row Height controll\r\n\r\n //For Premium data\r\n ChartTableData[\"lahMarkets\"].push({\r\n tr1: CoreMarketView.filter(function (data) {\r\n return data.storeID < 1 && data.priceOptionName === \"Premium\";\r\n }),\r\n tr2: CoreMarketView.filter(function (data) {\r\n return (\r\n data.isMyStore === true && data.priceOptionName === \"Premium\"\r\n );\r\n }),\r\n });\r\n\r\n //For Price Range data\r\n ChartTableData[\"lahMarkets\"].push({\r\n tr1: CoreMarketView.filter(function (data) {\r\n return data.storeID < 1 && data.priceOptionName === \"Price Range\";\r\n }),\r\n tr2: CoreMarketView.filter(function (data) {\r\n return (\r\n data.isMyStore === true && data.priceOptionName === \"Price Range\"\r\n );\r\n }),\r\n });\r\n\r\n //For Value data\r\n ChartTableData[\"lahMarkets\"].push({\r\n tr1: CoreMarketView.filter(function (data) {\r\n return data.storeID < 1 && data.priceOptionName === \"Value\";\r\n }),\r\n tr2: CoreMarketView.filter(function (data) {\r\n return data.isMyStore === true && data.priceOptionName === \"Value\";\r\n }),\r\n });\r\n\r\n /* end of Spliting the data in the order of activityType */\r\n\r\n /* Barchart table's Head data */\r\n ChartTableData[\"TableHead\"] = CoreMarketView.filter(function (data) {\r\n return data.storeID > 0 && data.priceOptionName === \"Premium\";\r\n });\r\n /* end of Barchart table's Head data */\r\n\r\n /* Barchart table's body data */\r\n ChartTableData[\"TableBody\"] = [];\r\n\r\n //For Premium data\r\n ChartTableData[\"TableBody\"].push({\r\n td1: \"Premium\",\r\n td2: CoreMarketView.filter(function (data) {\r\n return data.storeID > 0 && data.priceOptionName === \"Premium\";\r\n }),\r\n });\r\n\r\n //For Price Range data\r\n ChartTableData[\"TableBody\"].push({\r\n td1: \"Price Range\",\r\n td2: CoreMarketView.filter(function (data) {\r\n return data.storeID > 0 && data.priceOptionName === \"Price Range\";\r\n }),\r\n });\r\n\r\n //For Value data\r\n ChartTableData[\"TableBody\"].push({\r\n td1: \"Value\",\r\n td2: CoreMarketView.filter(function (data) {\r\n return data.storeID > 0 && data.priceOptionName === \"Value\";\r\n }),\r\n });\r\n }\r\n }\r\n if (\r\n this.state.graphOpen === \"\" ||\r\n this.state.activeTab === 3 ||\r\n AvailDataCheck.length === 0\r\n ) {\r\n \r\n this.setState({\r\n ChartTableData,\r\n AvailDataCheck: AvailDataCheck.length,\r\n pricecolLength,\r\n priceLength,\r\n });\r\n } else {\r\n this.setState(\r\n {\r\n ChartTableData,\r\n AvailDataCheck: AvailDataCheck.length,\r\n pricecolLength,\r\n priceLength,\r\n \r\n });\r\n this.TableViewGraphs();\r\n }\r\n }\r\n\r\n //Promotions Pop Up\r\n promohandleOpen(id) {\r\n this.setState({\r\n promo_open: true,\r\n promo_open_id: id,\r\n });\r\n }\r\n\r\n promohandleClose() {\r\n this.setState({\r\n promo_open: false,\r\n promo_open_id: 0,\r\n });\r\n // this.setState(prevState => ({\r\n // promo_open: !prevState.promo_open, modalPromos: []\r\n // }));\r\n }\r\n //End OF PRomotions Pop Up\r\n downLoadPDF() {\r\n // this.setState({ isLoading: true });\r\n var currentDate = moment(new Date()).format(\"DD-MMM-YYYY\");\r\n let pta = this.state.gridactivedur;\r\n let usId = this.props.storeId;\r\n let searchId = this.props.searchId;\r\n let accessKey = localStorage.getItem(\"SecretKey\");\r\n let priceType = this.state.hisactivedur;\r\n let unitType = this.state.hisactivemenu;\r\n let orderBy = this.state.orderBy;\r\n let order = this.state.order;\r\n let unitTypes =\r\n this.state.uniquestores && this.state.pdfunique == 1\r\n ? this.state.uniquestores\r\n : this.state.pdfunique != 1\r\n ? \"no\"\r\n : \"\";\r\n let grapghCatcheck =\r\n this.state.grapghCatcheck == \"Premium\"\r\n ? 1\r\n : this.state.grapghCatcheck == \"Value\"\r\n ? 3\r\n : this.state.grapghCatcheck == \"Price Range\"\r\n ? 2\r\n : 4;\r\n let tDuration = this.state.drpDownSelValue;\r\n // let activeTab = this.state.activeTab;\r\n //let accessKey = '3f2b471776bc41cf863720bfc8cf9cb9';\r\n var timestamp =\r\n new Date().getDate() +\r\n \"\" +\r\n new Date().getMonth() +\r\n \"\" +\r\n new Date().getFullYear() +\r\n \"\" +\r\n new Date().getTime();\r\n //construct filename for pdf report.\r\n var fileName = usId + \"CurrentPricing\" + \"_\" + timestamp + \".pdf\";\r\n var stoName =\r\n this.props.storeDetails &&\r\n this.props.storeDetails.storeName &&\r\n this.props.storeDetails.storeName !== null &&\r\n this.props.storeDetails.storeName !== \"\" &&\r\n this.props.storeDetails.storeName !== undefined\r\n ? this.props.storeDetails.storeName\r\n : \"Your Store\";\r\n var fileHeading =\r\n this.state.activeTab === 4 ? \"CurrentEffectiveRate\" : \"CurrentPricing\";\r\n var fileNamePdf = stoName + \"_\" + fileHeading + \"_\" + currentDate + \".pdf\";\r\n this.setState({\r\n snackClr: \"snack-info\",\r\n snackOpen: true,\r\n snackMSg:\r\n \"Your download is being processed. The \" +\r\n fileNamePdf +\r\n \" file will download automatically to your browser when ready and Please do not close or reload the pages until download completes. We recommend you check your Downloads folder if you don’t see it in your browser.\",\r\n });\r\n let ComponentName = this.state.activeTab === 4 ? 13 : 8;\r\n const Input = {\r\n RegionID: CONFIG.RegionId,\r\n URL:\r\n CONFIG.OPTZ_URL +\r\n \"render-pdf/\" +\r\n accessKey +\r\n \"/\" +\r\n ComponentName +\r\n \"/\" +\r\n tDuration +\r\n \"/\" +\r\n usId +\r\n \"/\" +\r\n pta +\r\n \"/\" +\r\n searchId +\r\n \"/\" +\r\n unitType +\r\n \"/\" +\r\n priceType +\r\n \"/\" +\r\n orderBy +\r\n \"/\" +\r\n order +\r\n \"/\" +\r\n grapghCatcheck +\r\n \"/\" +\r\n unitTypes,\r\n FileName: fileName,\r\n };\r\n axios({\r\n url: CONFIG.API_URL + \"dashboard/generatepdfbypage\",\r\n method: \"post\",\r\n responseType: \"blob\",\r\n data: Input,\r\n })\r\n .then((response) => {\r\n const blob = new Blob([response.data], { type: 'application/octet-stream' });\r\n const link = document.createElement('a');\r\n link.href = window.URL.createObjectURL(blob);\r\n link.download = fileNamePdf;\r\n link.dispatchEvent(\r\n new MouseEvent('click', {\r\n bubbles: true,\r\n cancelable: true,\r\n view: window\r\n })\r\n );\r\n setTimeout(() => {\r\n // For Firefox it is necessary to delay revoking the ObjectURL\r\n window.URL.revokeObjectURL(link.href);\r\n link.remove();\r\n }, 3000);\r\n this.setState({ isLoading: false });\r\n })\r\n .catch((err) => {\r\n this.setState({ isLoading: false });\r\n });\r\n }\r\n\r\n //pagination next page\r\n handleChangePage = (event, pageCount) => {\r\n this.setState({ pageCount });\r\n };\r\n\r\n //change next set of page in a row\r\n handleChangeRowsPerPage = (event) => {\r\n this.setState({ pageCount: 0, 10: event.target.value });\r\n };\r\n\r\n //open/close dropdown\r\n toggle() {\r\n this.setState((prevState) => ({\r\n dropdownOpen: !prevState.dropdownOpen,\r\n }));\r\n }\r\n\r\n //handlechange for duration\r\n handleFilterChange = (e, selValue) => {\r\n this.setState(\r\n {\r\n drpDownSelValue: selValue,\r\n },\r\n () => this.commonapiCall()\r\n );\r\n };\r\n\r\n //price conversion\r\n priceConversion(tot) {\r\n if (tot !== \"\" && tot !== null) {\r\n let checkDigit = tot.toString().split(\".\");\r\n let ret = \"\";\r\n let i = 0;\r\n if (tot.toString().indexOf(\".\") == -1) {\r\n tot = tot;\r\n } else {\r\n if (checkDigit == \"00\") {\r\n tot = checkDigit.trim();\r\n } else {\r\n if (checkDigit.length === 2) {\r\n ret += checkDigit[0] + \".\";\r\n for (i = 0; i < checkDigit.length; i++) {\r\n if (i >= checkDigit[1].length) ret += \"0\";\r\n else ret += checkDigit[1][i];\r\n }\r\n } else if (checkDigit.length === 1) {\r\n ret += checkDigit[0] + \".\";\r\n for (i = 0; i < checkDigit.length; i++) {\r\n ret += \"0\";\r\n }\r\n }\r\n ret = ret.toString();\r\n tot = ret;\r\n }\r\n }\r\n }\r\n return tot;\r\n }\r\n\r\n render() {\r\n const {\r\n activeTab,\r\n promo_open,\r\n isLoading,\r\n pricecolLength,\r\n order,\r\n orderBy,\r\n grapghCatcheck,\r\n graphOpen,\r\n ChartTableData,\r\n /*SinglelahMarkets,*/ GridTableValue,\r\n unitDurations,\r\n MarketViewpricingOptions,\r\n snackOpen,\r\n snackMSg,\r\n AvailDataCheck,\r\n pageCount,\r\n dropdownOpen,\r\n drpDownSelValue,\r\n tenancyArray,\r\n storeAdvertising,\r\n dupliacteColor,\r\n duplicate_filterData,\r\n filterData,\r\n } = this.state;\r\n let ComActivityType = [\"Premium\", \"Price Range\", \"Value\"];\r\n let Colors = [\r\n \"mystorebarclr\",\r\n \"barclr1\",\r\n \"barclr2\",\r\n \"barclr3\",\r\n \"barclr4\",\r\n \"barclr5\",\r\n \"barclr6\",\r\n \"barclr7\",\r\n ];\r\n let moneySymbol = this.props.currency ? this.props.currency : \"\";\r\n var hlpcnt;\r\n if (activeTab === 1) {\r\n hlpcnt =\r\n \"
\" +\r\n `${CONFIG.RegionId === 3\r\n ? \"Current Advertised Weekly Rates\"\r\n : \"Current Advertised Rates\"\r\n }` +\r\n \"

In this section, the graph enables you to compare rates like-for-like, against your top competitors*. The rates shown on the graph are based on the Online Advertised Rate on the store's website.

The Number of Pricing Options shows you if the selected store* offers more than one price type for this unit type.

  • The highest price advertised by a store is shown as the Premium rate.
  • The lowest price advertised by a store is shown as the Value rate.
  • Any other rates in between are shown as a range
  • If there is only one price for a unit, it is shown as both the Premium and Value rate

Market Low, Market Average and Market High

These rates are based on the online rates advertised by the competitor stores* and the price type chosen (Premium or Value).

*See the All Market View section below to learn how you can change the competitors you can compare against on this graph.

*Your store prices are included in the calculations.

\";\r\n } else if (activeTab === 3) {\r\n hlpcnt =\r\n \"
Promotions

These are unit-specific promotions advertised by the store for the above unit type.

\";\r\n } else {\r\n hlpcnt =\r\n \"
\" +\r\n `${CONFIG.RegionId === 3\r\n ? \"Advertised Walk-in Weekly Rates\"\r\n : \"Advertised Walk-in Rates\"\r\n }` +\r\n \"

These are the walk-in (or 'Standard') rates offered by the store for this unit type.

\";\r\n }\r\n const defaultProps = {\r\n helpTitle: \"Core Market View\",\r\n helpContent:\r\n hlpcnt +\r\n \"

Refer the below help video for more information.

\",\r\n };\r\n const defaultProps1 = {\r\n helpTitle: \"Historical Pricing Analysis\",\r\n helpContent:\r\n \"

View historical rates for this unit type over the last 5 days, 30 days, 90 days, 6 months or 1 year, choose the time range from the drop down menu. You can also view rates by pricing type - Premium, Value or both. See the All Market View section below to learn how you can change the competitors you can compare against on this graph. These rates are based on the \" +\r\n `${CONFIG.RegionId === 3\r\n ? \"Advertised Online Weekly Rate.\"\r\n : \"Advertised Online Rate.\"\r\n }` +\r\n \"

*Your store prices are included in the calculations.

Refer the below help video for more information.

\",\r\n };\r\n const defaultProps2 = {\r\n helpTitle: \"All Market View\",\r\n helpContent:\r\n \"
  • These are all the stores in this Market offering this unit type.
  • Select up to a total of 8 competitor stores listed below to compare against in the Current Pricing analysis section or Historical pricing view. You can remove any stores from the graph at any time.

*Your store prices are included in the calculations.

\",\r\n };\r\n\r\n return (\r\n
\r\n {isLoading ? (\r\n
\r\n
\r\n
\r\n ) : (\r\n \"\"\r\n )}\r\n {this.state.isLoading1 ? (\r\n
\r\n
\r\n
\r\n ) : (\r\n \"\"\r\n )}\r\n {this.state.Tabloading ? (\r\n
\r\n
\r\n
\r\n ) : (\r\n \"\"\r\n )}\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n Core Market View \r\n \r\n Go to All Market View to Add/Remove Stores{\" \"}\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n PDF Download\r\n \r\n {activeTab === 4 ? (\r\n
\r\n
Tenancy Length
\r\n \r\n \r\n {drpDownSelValue === 0\r\n ? \"-Select-\"\r\n : drpDownSelValue + \" months\"}\r\n \r\n \r\n {tenancyArray &&\r\n tenancyArray.map((drpDownValue) => {\r\n return (\r\n \r\n this.handleFilterChange(e, drpDownValue)\r\n }\r\n >\r\n {drpDownValue + \" months\"}\r\n \r\n );\r\n })}\r\n \r\n \r\n
\r\n ) : (\r\n \"\"\r\n )}\r\n \r\n\r\n \r\n \r\n \r\n {AvailDataCheck > 0 ? (\r\n \r\n \r\n
\r\n \r\n \r\n {ChartTableData.TableHead &&\r\n ChartTableData.TableHead.length > 0 ? (\r\n \r\n Store Name\r\n {ChartTableData.TableHead.map((th_data, index) => {\r\n let sAddress = th_data.address\r\n ? \", \\n\" + th_data.address\r\n : \"\";\r\n const text = (\r\n
\r\n {th_data.storeName + sAddress}\r\n
\r\n );\r\n let dotline;\r\n let storName;\r\n if (ChartTableData.TableHead.length > 5) {\r\n dotline =\r\n th_data.storeName.length > 18 ? \"..\" : \"\";\r\n storName =\r\n th_data.storeName.substring(0, 18) + dotline;\r\n } else if (\r\n ChartTableData.TableHead.length === 4 ||\r\n ChartTableData.TableHead.length === 5\r\n ) {\r\n dotline =\r\n th_data.storeName.length > 40 ? \"..\" : \"\";\r\n storName =\r\n th_data.storeName.substring(0, 40) + dotline;\r\n } else {\r\n storName = th_data.storeName;\r\n }\r\n\r\n return (\r\n \r\n \r\n {storName}\r\n \r\n \r\n );\r\n })}\r\n \r\n ) : (\r\n \r\n Store Name\r\n \r\n )}\r\n \r\n \r\n {MarketViewpricingOptions &&\r\n MarketViewpricingOptions.length > 0 ? (\r\n \r\n \r\n \r\n No.of Pricing Options\r\n \r\n \r\n {MarketViewpricingOptions.map((po_row) => {\r\n return (\r\n \r\n {po_row.pricingOptions}\r\n \r\n );\r\n })}\r\n \r\n ) : (\r\n \r\n \r\n \r\n No.of Pricing Options\r\n \r\n \r\n \r\n )}\r\n {\r\n this.state.Tabloading ? (\r\n \"\"\r\n ) :\r\n ChartTableData.TableBody &&\r\n ChartTableData.TableBody.length > 0 ? (\r\n ChartTableData.TableBody.map((row1, index) => {\r\n return (\r\n \r\n \r\n \r\n \r\n {row1.td1}\r\n \r\n {(activeTab === 1 || activeTab === 4) ? (\r\n grapghCatcheck === row1.td1 ? (\r\n \r\n this.onSelecCatGrapgh(row1.td1)\r\n }\r\n size=\"sm\"\r\n >\r\n \"\"\r\n \r\n ) : (\r\n \r\n this.onSelecCatGrapgh(row1.td1)\r\n }\r\n size=\"sm\"\r\n >\r\n \"\"\r\n \r\n )\r\n ) : (\r\n \"\"\r\n )}\r\n \r\n {row1.td2.map((row) => {\r\n // let alterLabel = row.alternatePriceTag ? '('+row.alternatePriceTag+')':'' ;\r\n var tdVal =\r\n row.price !== null && row.price !== \"0\"\r\n ? moneySymbol + row.price\r\n : \"N/A\";\r\n var monthlyValues =\r\n row.isMonthly &&\r\n row.isMonthly === 1 &&\r\n CONFIG.RegionId === 3\r\n ? \"*\"\r\n : \"\";\r\n if (activeTab === 3) {\r\n tdVal =\r\n row.promo &&\r\n row.promo !== null &&\r\n row.promo !== \"0\"\r\n ? row.promo.split(\"*~*\").join(\"
\")\r\n : \"No specials\";\r\n }\r\n return (\r\n \r\n \r\n \r\n );\r\n })}\r\n \r\n {/* (O) - Online Price(R) - Regular Price */}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n })\r\n ) : (\r\n 0\r\n \r\n {isLoading === false\r\n ? \"There are no competitors available in this market.\"\r\n : \"\"}\r\n \r\n \r\n )}\r\n \r\n
\r\n
\r\n \r\n {activeTab !== 3 ? (\r\n \r\n
\r\n \r\n \r\n \r\n Market Low\r\n Market Average\r\n Market High\r\n \r\n \r\n \r\n {this.state.Tabloading ? (\r\n \"\"\r\n ) : ChartTableData.lahMarkets &&\r\n ChartTableData.lahMarkets.length > 0 ? (\r\n ChartTableData.lahMarkets.map((tr1data, index) => {\r\n return (\r\n \r\n \r\n {tr1data.tr1.map((td, index) => {\r\n let HclassName =\r\n (activeTab === 1 || activeTab === 4) ? \"\" : \"other_price\";\r\n if (\r\n td.priceOptionName === \"Price Range\"\r\n ) {\r\n // width lesser than 1367\r\n if (\r\n window.innerWidth < 1367 &&\r\n pricecolLength > 7 &&\r\n this.state.priceLength > 11\r\n ) {\r\n HclassName = \"set-height\";\r\n } else if (\r\n window.innerWidth < 1367 &&\r\n pricecolLength > 6 &&\r\n this.state.priceLength > 14\r\n ) {\r\n HclassName = \"set-height\";\r\n }\r\n\r\n // width equal to 1367\r\n if (\r\n window.innerWidth === 1367 &&\r\n pricecolLength > 7 &&\r\n this.state.priceLength > 12\r\n ) {\r\n HclassName = \"set-height\";\r\n } else if (\r\n window.innerWidth === 1367 &&\r\n pricecolLength > 6 &&\r\n this.state.priceLength > 14\r\n ) {\r\n HclassName = \"set-height\";\r\n }\r\n\r\n // width greater than 1367\r\n if (\r\n window.innerWidth > 1367 &&\r\n pricecolLength > 7 &&\r\n this.state.priceLength > 15\r\n ) {\r\n HclassName = \"set-height\";\r\n } else if (\r\n window.innerWidth > 1367 &&\r\n window.innerWidth < 1438 &&\r\n pricecolLength > 6 &&\r\n this.state.priceLength > 14\r\n ) {\r\n HclassName = \"set-height\";\r\n }\r\n }\r\n return (\r\n \r\n {td.storeName === \"MarketLow\" ? (\r\n \r\n {td.priceOptionName ===\r\n \"Price Range\"\r\n ? \" - \"\r\n : td.price\r\n ? moneySymbol + td.price\r\n : \"N/A\"}\r\n \r\n ) : td.storeName === \"MarketAvg\" ? (\r\n \r\n {td.priceOptionName ===\r\n \"Price Range\"\r\n ? \" - \"\r\n : td.price\r\n ? moneySymbol + td.price\r\n : \"N/A\"}\r\n \r\n ) : td.storeName === \"MarketHigh\" ? (\r\n \r\n {td.priceOptionName ===\r\n \"Price Range\"\r\n ? \" - \"\r\n : td.price\r\n ? moneySymbol + td.price\r\n : \"N/A\"}\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n \r\n );\r\n })}\r\n \r\n\r\n {tr1data.tr2.length > 0 &&\r\n (activeTab === 1 || activeTab === 4) ? (\r\n tr1data.tr2.map((rowdata, index) => {\r\n const priceRangeFormatRegex = /^\\d+(\\.\\d{1,2})?-\\d+(\\.\\d{1,2})?$/;\r\n return (\r\n \r\n \r\n \r\n \r\n {CONFIG.RegionId === 3\r\n ? \"Your Weekly Price\"\r\n : \"Your Price\"}\r\n \r\n \r\n {rowdata.price &&\r\n rowdata.price !== \"0\"\r\n ? priceRangeFormatRegex.test(rowdata?.price) ? moneySymbol + rowdata?.price : moneySymbol + this.priceConversion(rowdata?.price) \r\n : \"N/A\"}\r\n \r\n {rowdata.myStorePriceRank ? (\r\n
\r\n {rowdata.myStorePriceRank}\r\n
\r\n ) : (\r\n \"\"\r\n )}\r\n
\r\n \r\n \r\n );\r\n })\r\n ) : (\r\n \r\n \r\n \r\n \r\n {CONFIG.RegionId === 3\r\n ? \"Your Weekly Price\"\r\n : \"Your Price\"}\r\n \r\n \r\n N/A\r\n \r\n
\r\n \r\n \r\n )}\r\n \r\n );\r\n })\r\n ) : (\r\n \r\n \r\n N/A\r\n \r\n \r\n )}\r\n \r\n \r\n
\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n \r\n ) : (\r\n \r\n {/* {isLoading === false ? 'There are no competitors available in this market.' : ''} */}\r\n \r\n {GridTableValue.dynamdata || GridTableValue.statdata\r\n ? MarketViewpricingOptions.length === 1\r\n ? \"You have to select at least one competitor to show data here.\"\r\n : \"There are no competitors available in this market.\"\r\n : \"\"}\r\n \r\n \r\n )}\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n {activeTab === 4\r\n ? \"Current Effective Rates History\"\r\n : \"Current Advertised Rates History\"}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n {unitDurations && unitDurations.length > 0 ? (\r\n unitDurations.map((unit) => (\r\n \r\n ))\r\n ) : (\r\n \r\n )}\r\n \r\n\r\n \r\n \r\n
\r\n {\r\n filterData.length > 0 ?
\r\n \r\n
\r\n {\r\n filterData.map((item)=>{\r\n return(\r\n <>\r\n
\r\n {item.name}\r\n \r\n )\r\n })\r\n }\r\n \r\n \r\n has same value in the series. Please hover your mouse to see detailed information. \r\n
\r\n
: \"\"\r\n\r\n }\r\n \r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n All Market View \r\n {/* {activeTab === 4 ? (\r\n \"\"\r\n ) : ( */}\r\n \r\n \r\n {unitDurations && unitDurations.length > 0 ? (\r\n unitDurations.map((unit) => (\r\n \r\n ))\r\n ) : (\r\n \r\n )}\r\n \r\n \r\n {/* )} */}\r\n \r\n Go to Core Market View{\" \"}\r\n \r\n\r\n
\r\n \r\n \r\n {CONFIG.RegionId === 3 ? (\r\n
\r\n {storeAdvertising ? \r\n * This store is not currently advertising a rate for this unit.\r\n

: ''}\r\n\r\n \r\n * This rate is calculated from an advertised monthly\r\n rate\r\n

\r\n
\r\n ) : (<>\r\n {storeAdvertising ? \r\n * This store is not currently advertising a rate for this unit.\r\n

: ''}\r\n \r\n )}\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n {GridTableValue.dynamdata || GridTableValue.statdata ? (\r\n \r\n {GridTableValue.statdata ? (\r\n GridTableValue.statdata.map((row, index) => {\r\n const labelId = index;\r\n // let alterLabel = row.alternatePrice ? '('+row.alternatePrice+')':''\r\n let ys_prom_tions =\r\n row.promos && row.promos !== null\r\n ? row.promos.replace(/~/g, \"
\")\r\n : \"No specials\";\r\n return (\r\n \r\n \r\n \r\n {row.storeName}\r\n \r\n \r\n {row.storeAddress}\r\n \r\n \r\n \r\n {row.currentPremium !== null &&\r\n row.currentPremium !== 0\r\n ? moneySymbol + row.currentPremium\r\n : \"N/A\"}\r\n {row.isMonthly &&\r\n row.isMonthly === 1 &&\r\n CONFIG.RegionId === 3 ? (\r\n *\r\n ) : (\r\n \"\"\r\n )}\r\n {row.currentPremium !== 0 && row.currentPremium !== null &&\r\n row.isNotCurrentlyAdvertised === true ?\r\n * : ''}\r\n \r\n \r\n {row.currentValue !== null &&\r\n row.currentValue !== 0\r\n ? moneySymbol + row.currentValue\r\n : \"N/A\"}\r\n {row.isMonthly &&\r\n row.isMonthly === 1 &&\r\n CONFIG.RegionId === 3 ? (\r\n *\r\n ) : (\r\n \"\"\r\n )}\r\n {row.currentValue !== 0 && row.currentValue !== null &&\r\n row.isNotCurrentlyAdvertised === true ?\r\n * : ''}\r\n \r\n \r\n {row.premium !== null && row.premium !== 0\r\n ? moneySymbol + row.premium\r\n : \"N/A\"}\r\n {row.isMonthly &&\r\n row.isMonthly === 1 &&\r\n CONFIG.RegionId === 3 ? (\r\n *\r\n ) : (\r\n \"\"\r\n )}\r\n {row.premium !== 0 && row.premium !== null &&\r\n row.isNotCurrentlyAdvertised === true ?\r\n * : ''}\r\n \r\n \r\n {row.value !== null && row.value !== 0\r\n ? moneySymbol + row.value\r\n : \"N/A\"}\r\n {row.isMonthly &&\r\n row.isMonthly === 1 &&\r\n CONFIG.RegionId === 3 ? (\r\n *\r\n ) : (\r\n \"\"\r\n )}\r\n {row.value !== 0 && row.value !== null &&\r\n row.isNotCurrentlyAdvertised === true ?\r\n * : ''}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {activeTab !== 4 ? \r\n {row.currentWalkInPremium !== null &&\r\n row.currentWalkInPremium !== 0\r\n ? moneySymbol + row.currentWalkInPremium\r\n : \"N/A\"}\r\n {row.isMonthly &&\r\n row.isMonthly === 1 &&\r\n CONFIG.RegionId === 3 ? (\r\n *\r\n ) : (\r\n \"\"\r\n )}\r\n {row.currentWalkInPremium !== 0 && row.currentWalkInPremium !== null &&\r\n row.isNotCurrentlyAdvertised === true ?\r\n * : ''}\r\n : ''}\r\n {activeTab !== 4 ? \r\n {row.currentWalkInValue !== null &&\r\n row.currentWalkInValue !== 0\r\n ? moneySymbol + row.currentWalkInValue\r\n : \"N/A\"}\r\n {row.isMonthly &&\r\n row.isMonthly === 1 &&\r\n CONFIG.RegionId === 3 ? (\r\n *\r\n ) : (\r\n \"\"\r\n )}\r\n {row.currentWalkInValue !== 0 && row.currentWalkInValue !== null &&\r\n row.isNotCurrentlyAdvertised === true ?\r\n * : ''}\r\n : ''}\r\n \r\n \r\n );\r\n })\r\n ) : (\r\n \r\n N/A\r\n \r\n )}\r\n {GridTableValue.dynamdata ? (\r\n this.stableSort(\r\n GridTableValue.dynamdata,\r\n this.getSorting(order, orderBy)\r\n ).map((row1, index) => {\r\n const labelId = index;\r\n //let alterLabel = row1.alternatePrice ? '('+row1.alternatePrice+')':''\r\n let prom_tions =\r\n row1.promos && row1.promos !== null\r\n ? row1.promos.replace(/~/g, \"
\")\r\n : \"No specials\";\r\n return (\r\n \r\n \r\n \r\n {row1.storeName}\r\n \r\n \r\n {row1.storeAddress}\r\n \r\n \r\n \r\n {row1.currentPremium !== null &&\r\n row1.currentPremium !== 0\r\n ? moneySymbol + row1.currentPremium\r\n : \"N/A\"}\r\n {row1.isMonthly &&\r\n row1.isMonthly === 1 &&\r\n CONFIG.RegionId === 3 ? (\r\n *\r\n ) : (\r\n \"\"\r\n )}\r\n {row1.currentPremium !== 0 && row1.currentPremium !== null &&\r\n row1.isNotCurrentlyAdvertised === true ?\r\n * : ''}\r\n \r\n \r\n {row1.currentValue !== null &&\r\n row1.currentValue !== 0\r\n ? moneySymbol + row1.currentValue\r\n : \"N/A\"}\r\n {row1.isMonthly &&\r\n row1.isMonthly === 1 &&\r\n CONFIG.RegionId === 3 ? (\r\n *\r\n ) : (\r\n \"\"\r\n )}\r\n {row1.currentValue !== 0 && row1.currentValue !== null &&\r\n row1.isNotCurrentlyAdvertised === true ?\r\n * : ''}\r\n \r\n \r\n {row1.premium !== null && row1.premium !== 0\r\n ? moneySymbol + row1.premium\r\n : \"N/A\"}\r\n {row1.isMonthly &&\r\n row1.isMonthly === 1 &&\r\n CONFIG.RegionId === 3 ? (\r\n *\r\n ) : (\r\n \"\"\r\n )}\r\n {row1.premium !== 0 && row1.premium !== null &&\r\n row1.isNotCurrentlyAdvertised === true ?\r\n * : ''}\r\n \r\n \r\n {row1.value !== null && row1.value !== 0\r\n ? moneySymbol + row1.value\r\n : \"N/A\"}\r\n {row1.isMonthly &&\r\n row1.isMonthly === 1 &&\r\n CONFIG.RegionId === 3 ? (\r\n *\r\n ) : (\r\n \"\"\r\n )}\r\n {row1.value !== 0 && row1.value !== null &&\r\n row1.isNotCurrentlyAdvertised === true ?\r\n * : ''}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {activeTab !== 4 ? \r\n {row1.currentWalkInPremium !== null &&\r\n row1.currentWalkInPremium !== 0\r\n ? moneySymbol + row1.currentWalkInPremium\r\n : \"N/A\"}\r\n {row1.isMonthly &&\r\n row1.isMonthly === 1 &&\r\n CONFIG.RegionId === 3 ? (\r\n *\r\n ) : (\r\n \"\"\r\n )}\r\n {row1.currentWalkInPremium !== 0 && row1.currentWalkInPremium !== null &&\r\n row1.isNotCurrentlyAdvertised === true ?\r\n * : ''}\r\n : ''}\r\n {activeTab !== 4 ? \r\n {row1.currentWalkInValue !== null &&\r\n row1.currentWalkInValue !== 0\r\n ? moneySymbol + row1.currentWalkInValue\r\n : \"N/A\"}\r\n {row1.isMonthly &&\r\n row1.isMonthly === 1 &&\r\n CONFIG.RegionId === 3 ? (\r\n *\r\n ) : (\r\n \"\"\r\n )}\r\n {row1.currentWalkInValue !== 0 && row1.currentWalkInValue !== null &&\r\n row1.isNotCurrentlyAdvertised === true ?\r\n * : ''}\r\n : ''}\r\n \r\n {row1.premium !== null &&\r\n row1.priceRange !== null &&\r\n row1.value !== null ? (\r\n row1.isSelected === true ? (\r\n \r\n \r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n \"expand\"\r\n \r\n \r\n )\r\n ) : (\r\n \"\"\r\n )}\r\n \r\n \r\n );\r\n })\r\n ) : (\r\n \r\n N/A\r\n \r\n )}\r\n \r\n ) : (\r\n \r\n \r\n \r\n {isLoading === false\r\n ? \"There are no competitors available in this market.\"\r\n : \"\"}\r\n \r\n \r\n \r\n )}\r\n \r\n
\r\n
\r\n {snackMSg}}\r\n action={[\r\n \r\n \r\n ,\r\n ]}\r\n />\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\n//Listing and Sorting Table's Head\r\nfunction EnhancedTableHead(props) {\r\n const { order, orderBy, onRequestSort, activeTabs } = props;\r\n const createSortHandler = (property) => (event) => {\r\n onRequestSort(event, property);\r\n };\r\n\r\n const headRows = [\r\n { id: \"storeName\", numeric: false, disablePadding: true, label: \"Name\" },\r\n {\r\n id: \"currentPremium\",\r\n numeric: true,\r\n disablePadding: false,\r\n label: \"Current Premium\",\r\n },\r\n {\r\n id: \"currentValue\",\r\n numeric: true,\r\n disablePadding: false,\r\n label: \"Current Value\",\r\n },\r\n {\r\n id: \"premium\",\r\n numeric: true,\r\n disablePadding: false,\r\n label: \"Highest Premium Price Offered\",\r\n },\r\n //{ id: 'priceRange', numeric: true, disablePadding: false, label: 'Standard' },\r\n {\r\n id: \"value\",\r\n numeric: true,\r\n disablePadding: false,\r\n label: \"Lowest Value Price Offered\",\r\n },\r\n { id: \"promos\", numeric: true, disablePadding: false, label: \"Promotion\" },\r\n {\r\n id: \"currentWalkInPremium\",\r\n numeric: true,\r\n disablePadding: false,\r\n label: \"Current Walk-in Premium\",\r\n },\r\n {\r\n id: \"currentWalkInValue\",\r\n numeric: true,\r\n disablePadding: false,\r\n label: \"Current Walk-in Value\",\r\n },\r\n {\r\n id: \"moreoptions\",\r\n numeric: true,\r\n disablePadding: false,\r\n label: \"More Options\",\r\n },\r\n ];\r\n\r\n return (\r\n \r\n \r\n {headRows.map((row) => {\r\n if (activeTabs === 4 ? (row.id !== 'currentWalkInValue' && row.id !== 'currentWalkInPremium') : true) {\r\n return (\r\n \r\n \r\n {row.label}\r\n \r\n \r\n )\r\n }\r\n })}\r\n \r\n \r\n );\r\n}\r\n\r\n// For Pagination\r\nconst actionsStyles = (theme) => ({\r\n tablepaggination: {\r\n flexShrink: 0,\r\n color: theme.palette.text.secondary,\r\n marginLeft: theme.spacing * 2.5,\r\n },\r\n});\r\n\r\nclass EffectiveRate extends React.Component {\r\n handleFirstPageButtonClick = (event) => {\r\n this.props.onChangePage(event, 0);\r\n };\r\n\r\n handleBackButtonClick = (event) => {\r\n this.props.onChangePage(event, this.props.page - 1);\r\n };\r\n\r\n handleNextButtonClick = (event) => {\r\n this.props.onChangePage(event, this.props.page + 1);\r\n };\r\n\r\n handleLastPageButtonClick = (event) => {\r\n this.props.onChangePage(\r\n event,\r\n Math.max(0, Math.ceil(this.props.count / this.props.rowsPerPage) - 1)\r\n );\r\n };\r\n\r\n render() {\r\n const { classes, count, page, rowsPerPage, theme } = this.props;\r\n\r\n return (\r\n
\r\n \r\n {theme.direction === \"rtl\" ? : }\r\n \r\n \r\n {theme.direction === \"rtl\" ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n = Math.ceil(count / rowsPerPage) - 1}\r\n aria-label=\"Next Page\"\r\n >\r\n {theme.direction === \"rtl\" ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n = Math.ceil(count / rowsPerPage) - 1}\r\n aria-label=\"Last Page\"\r\n >\r\n {theme.direction === \"rtl\" ? : }\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nconst EffectiveRateWrapped = withStyles(actionsStyles, { withTheme: true })(\r\n EffectiveRate\r\n);\r\n","import React from \"react\";\r\nimport \"./MarketInventoryAnalysis.css\";\r\nimport Chart from \"react-apexcharts\";\r\nimport * as d3 from \"d3\";\r\nimport { CONFIG } from \"../../utils/config\";\r\nimport Snackbar from \"@material-ui/core/Snackbar\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\nimport axios from \"axios\";\r\nimport { AvForm, AvField } from \"availity-reactstrap-validation\";\r\nimport moment from \"moment\";\r\nimport { MarketProfile } from \"../MarketProfile\";\r\nimport { Link } from \"react-router-dom\";\r\nimport {\r\n Row,\r\n Col,\r\n Button,\r\n Modal,\r\n ModalHeader,\r\n ModalBody,\r\n ModalFooter,\r\n Table as TableBoots,\r\n} from \"reactstrap\";\r\nimport greenimage from \"./../../Assets/Images/green.png\";\r\nimport redimages from \"./../../Assets/Images/red.png\";\r\nimport downarrows from \"./../../Assets/Images/down-arrow.png\";\r\nimport { HelpTextPopup } from \"./../HelpTextPopup/index\";\r\nimport { faFilePdf } from \"@fortawesome/free-solid-svg-icons\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport resetPng from '../../Assets/Images/reset.png';\r\n\r\nexport default class MarketInventoryAnalysis extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.child = React.createRef();\r\n this.state = {\r\n options: {\r\n chart: {\r\n id: 'apexchart-example',\r\n toolbar: {\r\n show: false\r\n }\r\n },\r\n\r\n xaxis: {\r\n show: false,\r\n labels: {\r\n show: false,\r\n },\r\n axisBorder: {\r\n show: false\r\n },\r\n axisTicks: {\r\n show: false\r\n }\r\n },\r\n grid: { show: false },\r\n yaxis: { show: false },\r\n noData: {\r\n text: \"Please wait for the data to be loaded. The data volume is high and this might take a minute for loading the data.\",\r\n verticalAlign: 'top',\r\n style: {\r\n color: \"#5b95f6\",\r\n fontSize: '13px',\r\n fontFamily: \"Helvetica\"\r\n }\r\n },\r\n },\r\n series: [{\r\n name: 'Store offered this Unit Type on',\r\n data: []\r\n }],\r\n unitInventoryAvailablity: \"\",\r\n isLoading: false,\r\n unitDurations: \"\",\r\n unitLevelInventory: \"\",\r\n isDefaultUnit: \"3\",\r\n storeId: \"\",\r\n defaultSelected: 3,\r\n isModel: false,\r\n date: \"\",\r\n searchId: \"\",\r\n isAddedCount: \"\",\r\n isRemovedCount: \"\",\r\n isNoGraphData: false,\r\n snackOpen: false,\r\n snackMSg: \"\",\r\n snackClr: \"\",\r\n date_value:[],\r\n yearRange : 3\r\n };\r\n\r\n // this.props;\r\n this.state.storeId = this.props.storeId;\r\n this.state.searchId = this.props.searchId;\r\n this.openPopup = this.openPopup.bind(this);\r\n this.getParams = this.getParams.bind(this);\r\n }\r\n\r\n getParams(name, sid) {\r\n this.child.current.toggleModal(name, sid);\r\n }\r\n\r\n componentDidMount() {\r\n this.setState({\r\n isLoading: true,\r\n defaultSelected: 3,\r\n isDefaultUnit: \"3\",\r\n });\r\n axios.get(CONFIG.API_URL + \"unit/unitdurations\").then((response) => {\r\n let unitDurations = response.data.data.lookupData;\r\n\r\n this.setState({\r\n unitDurations,\r\n });\r\n });\r\n localStorage.setItem(\"StId\", this.state.storeId);\r\n const inputParam = {\r\n UserStoreID: this.state.storeId,\r\n SearchID: this.state.searchId,\r\n Duration: this.state.isDefaultUnit,\r\n RegionID: CONFIG.RegionId,\r\n };\r\n let token = localStorage.getItem(\"accessKey\");\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = \"Bearer \" + token;\r\n }\r\n this.commonInitLoad(inputParam);\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n // this.myFormRef && this.myFormRef.reset();\r\n\r\n if (nextProps.searchId != this.props.searchId) {\r\n this.setState(\r\n {\r\n isLoading: true,\r\n defaultSelected: \"\",\r\n searchId: nextProps.searchId,\r\n storeId: nextProps.storeId,\r\n },\r\n () => {\r\n this.componentDidMount();\r\n }\r\n );\r\n // window.location.reload();\r\n // const { from } = { from: { pathname: \"/market-dashboard/${nextProps.storeId}/view-details/${nextProps.searchId}/${nextProps.storeCount}\" } };\r\n // this.props.history.push(from);\r\n }\r\n }\r\n\r\n commonInitLoad(inputParam) {\r\n this.setState({\r\n isLoading: true,\r\n });\r\n\r\n axios\r\n .post(CONFIG.API_URL + \"unit/unitdatahistoryinventory\", inputParam)\r\n .then((response) => {\r\n const unitLevelInventory = response.data.data.unitLevelInventory;\r\n const unitInventoryAvailablity =\r\n response.data.data.unitInventoryAvailablity;\r\n const isAddedCount = unitInventoryAvailablity.filter(\r\n (e) => e.isAdded === 1\r\n );\r\n const isRemovedCount = unitInventoryAvailablity.filter(\r\n (e) => e.isAdded === 0\r\n );\r\n // unitInventoryAvailablity.filter((e) => e.isAdded === 1).forEach(function (e) { isAddedCount.push(e.isAdded) });\r\n // unitInventoryAvailablity.filter((e) => e.isAdded === 0).forEach(function (e) { isRemovedCount.push(e.isAdded) });\r\n const date = response.data.data.datePrice.dateDetail;\r\n\r\n this.setState({\r\n unitInventoryAvailablity,\r\n unitLevelInventory,\r\n date,\r\n isAddedCount,\r\n isRemovedCount,\r\n isLoading: false,\r\n });\r\n if (this.state.unitLevelInventory.length > 0) {\r\n this.setState({\r\n isNoGraphData: false,\r\n });\r\n this.initialLoad(unitLevelInventory);\r\n } else {\r\n this.setState({\r\n isNoGraphData: true,\r\n });\r\n }\r\n })\r\n .catch((err) => {\r\n this.setState({\r\n isLoading: false,\r\n });\r\n if (err.response.status === 401) {\r\n localStorage.removeItem(\"accessKey\");\r\n const { from } = this.props.location.state || {\r\n from: { pathname: \"/\" },\r\n };\r\n this.props.history.push(from);\r\n } else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }\r\n\r\n initialLoad(res) {\r\n var data = res;\r\n let yearRange_bool;\r\n const {yearRange} = this.state\r\n \r\n if(this.state.yearRange < 4){\r\n yearRange_bool = true\r\n }else{\r\n yearRange_bool = false\r\n }\r\n\r\n \r\n\r\n \r\n const {date_value} = this.state;\r\n \r\n this.setState(prev => { return { ...prev , date_value } });\r\n let dataSeries = data.map(val => { return { x: val.datePrice, y: isNaN(val.availableCount) ? null : val.availableCount }; });\r\n let uniqueDataSet = [...new Set(data.map(val => { return isNaN(val.availableCount) ? null : val.availableCount }))];\r\n let marketSeries = [({ name: 'Store offered this Unit Type', data: dataSeries })];\r\n\r\n if (marketSeries.length > 0) {\r\n this.setState({\r\n isNoGraphData: false,\r\n options: {\r\n chart: {\r\n events:{\r\n beforeZoom: function(chartContext, { xaxis,yaxis }) {\r\n if(yaxis !== undefined || xaxis.min > 0) return chartContext.t.reset =`\"Reset`;\r\n },\r\n zoomed: function(chartContext, { xaxis, yaxis }) {\r\n if(yaxis === undefined || xaxis.min <= 0) return chartContext.toolbar.t.reset = false;\r\n },\r\n },\r\n toolbar: {\r\n show: true,\r\n tools: {\r\n download: false,\r\n selection: true,\r\n zoom: false,\r\n zoomin:false,\r\n zoomout:false,\r\n pan:false,\r\n reset:false,\r\n },\r\n },\r\n },\r\n stroke: {\r\n width: 2,\r\n },\r\n colors: [\"#1D1E1F\"],\r\n yaxis: {\r\n title: {\r\n text: \"Number of Stores offering this Unit Type\"\r\n },\r\n min:0,\r\n tickAmount: uniqueDataSet.length === 1 || uniqueDataSet.length === 2 ? 1 : 2,\r\n \r\n labels: {\r\n formatter: function (value) {\r\n return value === null ? \"N/A\" : value.toFixed(0);\r\n },\r\n style: {\r\n colors: '#8C9AA6',\r\n fontSize: '10px'\r\n },\r\n },\r\n style: {\r\n color: undefined,\r\n fontSize: '10px',\r\n fontFamily: 'Arial',\r\n fontWeight: 500,\r\n cssClass: 'apexcharts-yaxis-title',\r\n },\r\n },\r\n tooltip: {\r\n enabled: true,\r\n showForNullSeries: false,\r\n onDatasetHover: {\r\n highlightDataSeries: false,\r\n },\r\n style: {\r\n fontSize: '11px',\r\n fontFamily: \"Roboto, Helvetica, Arial , sans-serif\"\r\n },\r\n x: {\r\n show: true,\r\n formatter: function (value, opts) {\r\n if (typeof (opts) === \"object\") {\r\n let dtd = moment(opts.w.config.series[opts.seriesIndex].data[opts.dataPointIndex].x, \"YYYY-MM-DD\").format('DD-MMM-YYYY');\r\n return dtd;\r\n }\r\n },\r\n },\r\n y: {\r\n formatter: function (value, opts) {\r\n if (typeof (opts) === \"object\") {\r\n let iAF = `${opts.series[opts.seriesIndex][opts.dataPointIndex]} Stores offered this Unit Type`;\r\n return iAF;\r\n }\r\n },\r\n title: {\r\n formatter: function (val) {\r\n if (val) return null;\r\n }\r\n }\r\n },\r\n },\r\n xaxis: {\r\n show: true,\r\n type: \"datetime\",\r\n tooltip: { enabled: false },\r\n labels: {\r\n formatter: function(value, timestamp, opts) {\r\n \r\n let val = value === undefined || typeof (value) !== \"string\" ? '' : yearRange_bool ? moment(new Date(value)).format('DD-MMM-YYYY') : moment(new Date(value)).format('MMM-YYYY');\r\n return val;\r\n },\r\n showDuplicates: false,\r\n show: true,\r\n rotate: 0,\r\n style: {\r\n colors: '#8C9AA6',\r\n fontSize: '10px'\r\n },\r\n },\r\n axisBorder: {\r\n show: true\r\n },\r\n axisTicks: {\r\n show: true\r\n },\r\n tickAmount: yearRange == 1 ? 4 : yearRange == 2 ? 4 : yearRange == 3 ? 12 : yearRange == 4 ? 5 : 9, \r\n },\r\n noData: {\r\n text: 'Please enable any one of the below legend to view the graph.',\r\n style: {\r\n color: \"#5b95f6\",\r\n }\r\n },\r\n },\r\n series: marketSeries\r\n });\r\n var tempdata = [];\r\n var datum = {\r\n name: \"Graph\",\r\n values: this.popData(data),\r\n };\r\n tempdata.push(datum);\r\n } else {\r\n this.setState({\r\n isNoGraphData: true,\r\n options: {\r\n chart: {\r\n toolbar: {\r\n show: false\r\n }\r\n },\r\n noData: {\r\n text: \"No Records Found.\",\r\n align: 'center',\r\n verticalAlign: 'top',\r\n offsetX: 0,\r\n offsetY: 0,\r\n style: {\r\n color: \"#F60000\",\r\n fontSize: '13px',\r\n fontFamily: \"Helvetica\"\r\n }\r\n },\r\n yaxis: { show: false },\r\n xaxis: {\r\n show: false,\r\n labels: {\r\n show: false\r\n },\r\n axisBorder: {\r\n show: false\r\n },\r\n axisTicks: {\r\n show: false\r\n },\r\n categories: []\r\n },\r\n },\r\n series: []\r\n })\r\n }\r\n }\r\n\r\n popData(data) {\r\n var tFData = data;\r\n var tData = [];\r\n for (var i = 0; i < tFData.length; i++) {\r\n var CData = {\r\n date: new Date(\r\n new Date().getFullYear(),\r\n new Date().getMonth(),\r\n tFData[i].orderNo\r\n ),\r\n totalStores: tFData[i].totalStores,\r\n availableCount: tFData[i].availableCount,\r\n datePrice: new Date(tFData[i].datePrice),\r\n orderNo: tFData[i].orderNo,\r\n };\r\n tData.push(CData);\r\n }\r\n return tData;\r\n }\r\n\r\n unitInventory(e) {\r\n this.state.isDefaultUnit = e.target.value;\r\n this.setState({yearRange : e.target.value});\r\n const inputParam = {\r\n UserStoreID: this.state.storeId,\r\n SearchID: this.state.searchId,\r\n Duration: this.state.isDefaultUnit,\r\n };\r\n\r\n let token = localStorage.getItem(\"accessKey\");\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = \"Bearer \" + token;\r\n }\r\n this.commonInitLoad(inputParam);\r\n // this.initialLoad(res);\r\n }\r\n openPopup() {\r\n this.setState((prevState) => ({\r\n isModel: !prevState.isModel,\r\n }));\r\n }\r\n downLoadPDF() {\r\n // this.setState({ isLoading: true });\r\n var currentDate = moment(new Date()).format(\"DD-MMM-YYYY\");\r\n let pta = this.state.isDefaultUnit;\r\n let usId = this.props.storeId;\r\n let searchId = this.props.searchId;\r\n let accessKey = localStorage.getItem(\"SecretKey\");\r\n //let accessKey = '3f2b471776bc41cf863720bfc8cf9cb9';\r\n var timestamp =\r\n new Date().getDate() +\r\n \"\" +\r\n new Date().getMonth() +\r\n \"\" +\r\n new Date().getFullYear() +\r\n \"\" +\r\n new Date().getTime();\r\n //construct filename for pdf report.\r\n var fileName = usId + \"MarketInventoryAnalysis\" + \"_\" + timestamp + \".pdf\";\r\n var stoName =\r\n this.props.storeDetails &&\r\n this.props.storeDetails.storeName &&\r\n this.props.storeDetails.storeName !== \"\" &&\r\n this.props.storeDetails.storeName !== undefined &&\r\n this.props.storeDetails.storeName !== null\r\n ? this.props.storeDetails.storeName\r\n : \"Your Store\";\r\n var fileNamePdf =\r\n stoName + \"_\" + \"MarketInventoryAnalysis\" + \"_\" + currentDate + \".pdf\";\r\n this.setState({\r\n snackClr: \"snack-info\",\r\n snackOpen: true,\r\n snackMSg:\r\n \"Your download is being processed. The \" +\r\n fileNamePdf +\r\n \" file will download automatically to your browser when ready and Please do not close or reload the pages until download completes. We recommend you check your Downloads folder if you don’t see it in your browser.\",\r\n });\r\n let ComponentName = 9;\r\n const Input = {\r\n RegionID: CONFIG.RegionId,\r\n URL:\r\n CONFIG.OPTZ_URL +\r\n \"render-pdf/\" +\r\n accessKey +\r\n \"/\" +\r\n ComponentName +\r\n \"/0/\" +\r\n usId +\r\n \"/\" +\r\n pta +\r\n \"/\" +\r\n searchId +\r\n \"/\",\r\n FileName: fileName,\r\n };\r\n // axios.post(CONFIG.API_URL + 'dashboard/generatepdfbypage', Input)\r\n axios({\r\n url: CONFIG.API_URL + \"dashboard/generatepdfbypage\",\r\n method: \"post\",\r\n responseType: \"blob\",\r\n data: Input,\r\n })\r\n .then((response) => {\r\n const blob = new Blob([response.data], { type: 'application/octet-stream' });\r\n const link = document.createElement('a');\r\n link.href = window.URL.createObjectURL(blob);\r\n link.download = fileNamePdf;\r\n link.dispatchEvent(\r\n new MouseEvent('click', {\r\n bubbles: true,\r\n cancelable: true,\r\n view: window\r\n })\r\n );\r\n setTimeout(() => {\r\n // For Firefox it is necessary to delay revoking the ObjectURL\r\n window.URL.revokeObjectURL(link.href);\r\n link.remove();\r\n }, 3000);\r\n this.setState({ isLoading: false });\r\n })\r\n .catch((err) => {\r\n this.setState({ isLoading: false });\r\n });\r\n }\r\n snackHandleclose = (event, reason) => {\r\n if (reason === \"clickaway\") {\r\n return;\r\n }\r\n this.setState({ snackOpen: false });\r\n };\r\n render() {\r\n const {\r\n isLoading,\r\n unitDurations,\r\n date,\r\n isRemovedCount,\r\n isNoGraphData,\r\n isAddedCount,\r\n unitInventoryAvailablity,\r\n snackOpen,\r\n snackMSg,\r\n } = this.state;\r\n\r\n const defaultProps = {\r\n helpTitle: \"Historical Inventory Analytics\",\r\n helpContent:\r\n \"

In Optimize, we define inventory as the number of stores in this Market which advertise a particular unit type. On this graph you will see the number of stores over time (5 days, 30 days, 90 days, 6 months or 1 year) which have advertised this unit type.

Below the graph, under Added in Last 24 Hours, you will see the stores in this Market which have either added this unit type to their website or removed it from their website in the last 24 hours.

Refer the below help video for more information.

\",\r\n };\r\n return (\r\n
\r\n
\r\n

\r\n History \r\n (this.myFormRef = c)}\r\n className=\"days-count\"\r\n >\r\n this.unitInventory(e)}\r\n >\r\n {unitDurations\r\n ? unitDurations.map((unit) => (\r\n \r\n {unit.timePeriod}\r\n \r\n ))\r\n : \"\"}\r\n \r\n \r\n

\r\n \r\n \r\n PDF Download\r\n \r\n
\r\n\r\n {isNoGraphData ? (\r\n
\r\n No data available for this graph!\r\n
\r\n ) : (\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n )}\r\n
\r\n \r\n
\r\n {/*
ADDED ON DATE: {moment(date).format('L')}
*/}\r\n
Added in last 24 hours
\r\n
\r\n \r\n {isAddedCount.length > 0 ? (\r\n isAddedCount.map((unit) =>\r\n unit.isAdded == 1 ? (\r\n
\r\n
\r\n \r\n \r\n this.getParams(unit.storeName, unit.storeID)\r\n }\r\n >\r\n \"\"\r\n {unit.storeName}\r\n \r\n
{unit.address}
\r\n
\r\n
\r\n ) : (\r\n \"\"\r\n )\r\n )\r\n ) : (\r\n
\r\n {isLoading === false\r\n ? \"No Stores have Added this Unit Type\"\r\n : \"\"}\r\n
\r\n )}\r\n
\r\n
\r\n
\r\n\r\n
\r\n {/*
WITHDRAWN ON DATE: {moment(date).format('L')}
*/}\r\n
Removed in last 24 hours
\r\n
\r\n \r\n {isRemovedCount.length > 0 ? (\r\n isRemovedCount.map((unit) =>\r\n unit.isAdded == 0 ? (\r\n
\r\n
\r\n \r\n \r\n this.getParams(unit.storeName, unit.storeID)\r\n }\r\n >\r\n \"\"\r\n {unit.storeName}\r\n \r\n
{unit.address}
\r\n
\r\n
\r\n ) : (\r\n \"\"\r\n )\r\n )\r\n ) : (\r\n
\r\n {isLoading === false\r\n ? \"No Stores have Removed this Unit Type\"\r\n : \"\"}\r\n
\r\n )}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {isLoading ? (\r\n
\r\n
\r\n
\r\n ) : (\r\n \"\"\r\n )}\r\n
\r\n \r\n \r\n ,\r\n ]}\r\n message={{snackMSg}}\r\n />\r\n
\r\n );\r\n }\r\n}\r\n","import React from \"react\";\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport Table from \"@material-ui/core/Table\";\r\nimport TableHead from \"@material-ui/core/TableHead\";\r\nimport TableBody from \"@material-ui/core/TableBody\";\r\nimport TableCell from \"@material-ui/core/TableCell\";\r\nimport TableFooter from \"@material-ui/core/TableFooter\";\r\nimport Snackbar from \"@material-ui/core/Snackbar\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\nimport TablePagination from \"@material-ui/core/TablePagination\";\r\nimport TableRow from \"@material-ui/core/TableRow\";\r\nimport Paper from \"@material-ui/core/Paper\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport FirstPageIcon from \"@material-ui/icons/FirstPage\";\r\nimport KeyboardArrowLeft from \"@material-ui/icons/KeyboardArrowLeft\";\r\nimport KeyboardArrowRight from \"@material-ui/icons/KeyboardArrowRight\";\r\nimport LastPageIcon from \"@material-ui/icons/LastPage\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport Breadcrumbs from \"@material-ui/core/Breadcrumbs\";\r\nimport { HelpTextPopup } from \"./../HelpTextPopup/index\";\r\nimport axios from \"axios\";\r\nimport { CONFIG } from \"../../utils/config\";\r\nimport PropTypes from \"prop-types\";\r\nimport TableSortLabel from \"@material-ui/core/TableSortLabel\";\r\nimport moment from \"moment\";\r\nimport { faCheck, faFileExcel } from \"@fortawesome/free-solid-svg-icons\";\r\nimport { faTimes } from \"@fortawesome/free-solid-svg-icons\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport Alarm from \"./../../Assets/Images/unit-type-images/Alarm.png\";\r\nimport ClimateControlled from \"./../../Assets/Images/unit-type-images/ClimateControlled.png\";\r\nimport StorageUnit from \"./../../Assets/Images/unit-type-images/StorageUnit.png\";\r\nimport apartment from \"./../../Assets/Images/unit-type-images/apartment.png\";\r\nimport artstudio from \"./../../Assets/Images/unit-type-images/artstudio.png\";\r\nimport box from \"./../../Assets/Images/unit-type-images/box.png\";\r\nimport celltower from \"./../../Assets/Images/unit-type-images/celltower.png\";\r\nimport container from \"./../../Assets/Images/unit-type-images/container.png\";\r\nimport filestorage from \"./../../Assets/Images/unit-type-images/filestorage.png\";\r\nimport office from \"./../../Assets/Images/unit-type-images/office.png\";\r\nimport mailbox from \"./../../Assets/Images/unit-type-images/mailbox.png\";\r\nimport parking from \"./../../Assets/Images/unit-type-images/parking.png\";\r\nimport unit from \"./../../Assets/Images/unit-type-images/unit.png\";\r\nimport warehouse from \"./../../Assets/Images/unit-type-images/warehouse.png\";\r\nimport winestorage from \"./../../Assets/Images/unit-type-images/winestorage.png\";\r\nimport workshop from \"./../../Assets/Images/unit-type-images/workshop.png\";\r\nimport DoorType from \"./../../Assets/Images/unit-type-images/DoorType.png\";\r\nimport DriveUp from \"./../../Assets/Images/unit-type-images/DriveUp.png\";\r\nimport Elevator from \"./../../Assets/Images/unit-type-images/Elevator.png\";\r\nimport HumidityControlled from \"./../../Assets/Images/unit-type-images/HumidityControlled.png\";\r\nimport OutdoorAccess from \"./../../Assets/Images/unit-type-images/OutdoorAccess.png\";\r\nimport power from \"./../../Assets/Images/unit-type-images/power.png\";\r\nimport covered from \"./../../Assets/Images/unit-type-images/Covered.png\";\r\nimport vehicle from \"./../../Assets/Images/unit-type-images/Vehicle.png\";\r\nimport locker from \"./../../Assets/Images/unit-type-images/locker.png\";\r\nimport { MarketProfile } from \"../MarketProfile\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { faMapPin, faStar } from \"@fortawesome/free-solid-svg-icons\";\r\nimport \"./DetailedStoresView.css\";\r\nimport exportFromJSON from \"export-from-json\";\r\nimport { Row, Col } from \"reactstrap\";\r\nimport Workbook from \"react-excel-workbook\";\r\nimport { faFilePdf } from \"@fortawesome/free-solid-svg-icons\";\r\n//import exportFromJSON from 'export-from-json'\r\n//const exportType = 'xls';\r\nconst exportType = \"xls\";\r\nconst actionsStyles = (theme) => ({\r\n tablepaggination: {\r\n flexShrink: 0,\r\n color: theme.palette.text.secondary,\r\n marginLeft: theme.spacing * 2.5,\r\n },\r\n});\r\n\r\nclass DetailedStoresView extends React.Component {\r\n handleFirstPageButtonClick = (event) => {\r\n this.props.onChangePage(event, 0);\r\n };\r\n\r\n handleBackButtonClick = (event) => {\r\n this.props.onChangePage(event, this.props.page - 1);\r\n };\r\n\r\n handleNextButtonClick = (event) => {\r\n this.props.onChangePage(event, this.props.page + 1);\r\n };\r\n\r\n handleLastPageButtonClick = (event) => {\r\n this.props.onChangePage(\r\n event,\r\n Math.max(0, Math.ceil(this.props.count / this.props.rowsPerPage) - 1)\r\n );\r\n };\r\n\r\n render() {\r\n const { classes, count, page, rowsPerPage, theme } = this.props;\r\n\r\n return (\r\n
\r\n \r\n {theme.direction === \"rtl\" ? : }\r\n \r\n \r\n {theme.direction === \"rtl\" ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n = Math.ceil(count / rowsPerPage) - 1}\r\n aria-label=\"Next Page\"\r\n >\r\n {theme.direction === \"rtl\" ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n = Math.ceil(count / rowsPerPage) - 1}\r\n aria-label=\"Last Page\"\r\n >\r\n {theme.direction === \"rtl\" ? : }\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nconst DetailedStoresViewWrapped = withStyles(actionsStyles, {\r\n withTheme: true,\r\n})(DetailedStoresView);\r\n\r\nlet headRows = [];\r\nif (CONFIG.RegionId === 3) {\r\n headRows = [\r\n {\r\n id: \"storeName\",\r\n numeric: false,\r\n disablePadding: false,\r\n label: \"Store Name / Address\",\r\n },\r\n {\r\n id: \"proximity\",\r\n numeric: true,\r\n disablePadding: false,\r\n label: \"Proximity\",\r\n },\r\n { id: \"size\", numeric: true, disablePadding: false, label: \"Unit Size\" },\r\n { id: \"floor\", numeric: false, disablePadding: false, label: \"Floor\" },\r\n { id: \"features\", numeric: true, disablePadding: false, label: \"Features\" },\r\n {\r\n id: \"onlinePrice\",\r\n numeric: true,\r\n disablePadding: false,\r\n label: \"Advertised Online Rate\",\r\n },\r\n // { id: 'onlinePriceVat', numeric: true, disablePadding: false, label: 'VAT' },\r\n {\r\n id: \"dtOnlinePriceChanged\",\r\n numeric: true,\r\n disablePadding: false,\r\n label: \"Last Changed\",\r\n },\r\n {\r\n id: \"regPrice\",\r\n numeric: true,\r\n disablePadding: false,\r\n label: \"Advertised Walk-in Rate\",\r\n },\r\n // { id: 'regularPriceVat', numeric: true, disablePadding: false, label: 'VAT' },\r\n {\r\n id: \"dtPriceChanged\",\r\n numeric: true,\r\n disablePadding: false,\r\n label: \"Last Changed\",\r\n },\r\n {\r\n id: \"promo\",\r\n numeric: false,\r\n disablePadding: false,\r\n label: \"Advertised Promotion\",\r\n },\r\n {\r\n id: \"dtPromoChanged\",\r\n numeric: true,\r\n disablePadding: false,\r\n label: \"Last Changed\",\r\n },\r\n ];\r\n} else {\r\n headRows = [\r\n {\r\n id: \"storeName\",\r\n numeric: false,\r\n disablePadding: false,\r\n label: \"Store Name / Address\",\r\n },\r\n {\r\n id: \"proximity\",\r\n numeric: true,\r\n disablePadding: false,\r\n label: \"Proximity\",\r\n },\r\n { id: \"size\", numeric: true, disablePadding: false, label: \"Unit Size\" },\r\n { id: \"floor\", numeric: false, disablePadding: false, label: \"Floor\" },\r\n { id: \"features\", numeric: true, disablePadding: false, label: \"Features\" },\r\n {\r\n id: \"onlinePrice\",\r\n numeric: true,\r\n disablePadding: false,\r\n label: \"Advertised Online Rate\",\r\n },\r\n {\r\n id: \"dtOnlinePriceChanged\",\r\n numeric: true,\r\n disablePadding: false,\r\n label: \"Last Changed\",\r\n },\r\n {\r\n id: \"regPrice\",\r\n numeric: true,\r\n disablePadding: false,\r\n label: \"Advertised Walk-in Rate\",\r\n },\r\n {\r\n id: \"dtPriceChanged\",\r\n numeric: true,\r\n disablePadding: false,\r\n label: \"Last Changed\",\r\n },\r\n {\r\n id: \"promo\",\r\n numeric: false,\r\n disablePadding: false,\r\n label: \"Advertised Promotion\",\r\n },\r\n {\r\n id: \"dtPromoChanged\",\r\n numeric: true,\r\n disablePadding: false,\r\n label: \"Last Changed\",\r\n },\r\n ];\r\n}\r\nfunction EnhancedTableHead(props) {\r\n const {\r\n onSelectAllClick,\r\n order,\r\n orderBy,\r\n order1,\r\n orderBy1,\r\n order2,\r\n orderBy2,\r\n numSelected,\r\n rowCount,\r\n onRequestSort,\r\n onProximitysort,\r\n onStoreSort,\r\n } = props;\r\n const createSortHandler = (property) => (event) => {\r\n onRequestSort(event, property);\r\n };\r\n const creatProximitysort = (property) => (event) => {\r\n onProximitysort(event, property);\r\n };\r\n const creatstoreSort = (property) => (event) => {\r\n onStoreSort(event, property);\r\n };\r\n return (\r\n \r\n \r\n {/* \r\n 0 && numSelected < rowCount}\r\n checked={numSelected === rowCount}\r\n onChange={onSelectAllClick}\r\n inputProps={{ 'aria-label': 'Select all desserts' }}\r\n />\r\n */}\r\n {headRows.map((row) => (\r\n \r\n \r\n {row.label}\r\n \r\n \r\n ))}\r\n \r\n \r\n );\r\n}\r\n\r\nEnhancedTableHead.propTypes = {\r\n numSelected: PropTypes.number.isRequired,\r\n onRequestSort: PropTypes.func.isRequired,\r\n onProximitysort: PropTypes.func.isRequired,\r\n onStoreSort: PropTypes.func.isRequired,\r\n onSelectAllClick: PropTypes.func.isRequired,\r\n order: PropTypes.string.isRequired,\r\n orderBy: PropTypes.string.isRequired,\r\n order1: PropTypes.string.isRequired,\r\n orderBy1: PropTypes.string.isRequired,\r\n order2: PropTypes.string.isRequired,\r\n orderBy2: PropTypes.string.isRequired,\r\n rowCount: PropTypes.number.isRequired,\r\n};\r\nclass CustomDetailedStoresView extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n page: 0,\r\n pageCount: 0,\r\n rowsPerPage: 10,\r\n detailStoreData: [],\r\n detailViewData: [],\r\n detailStoreDatafilter: [],\r\n order: \"asc\",\r\n orderBy: \"name\",\r\n order1: \"asc\",\r\n order2: \"desc\",\r\n orderBy1: \"proximity\",\r\n // orderBy2: 'asc',\r\n orderBy2: \"storeName\",\r\n isLoading: false,\r\n isPopUp: false,\r\n currentDate: new Date(),\r\n storeAddress: [],\r\n downloadInput: [],\r\n fileName: \"\",\r\n snackOpen: false,\r\n snackMSg: \"\",\r\n snackClr: \"\",\r\n };\r\n this.stableSort = this.stableSort.bind(this);\r\n this.getSorting = this.getSorting.bind(this);\r\n this.desc = this.desc.bind(this);\r\n this.handleRequestSort = this.handleRequestSort.bind(this);\r\n this.handleProximitysort = this.handleProximitysort.bind(this);\r\n this.handleStoreSort = this.handleStoreSort.bind(this);\r\n // this.getParams = this.getParams.bind(this);\r\n this.child = React.createRef();\r\n }\r\n getParams = (name, sid) => {\r\n this.state.isPopUp = true;\r\n if (name && sid) {\r\n this.child.current.toggleModal(name, sid);\r\n }\r\n };\r\n componentWillReceiveProps(nextProps) {\r\n if (this.state.isPopUp === false) {\r\n if (nextProps.searchId != this.props.searchId) {\r\n this.setState(\r\n {\r\n isLoading: true,\r\n searchId: nextProps.searchId,\r\n storeId: nextProps.storeId,\r\n },\r\n () => {\r\n this.componentDidMount();\r\n }\r\n );\r\n }\r\n } else {\r\n this.setState({\r\n isPopUp: false,\r\n });\r\n }\r\n }\r\n desc(a, b, orderBy) {\r\n if (b[orderBy] < a[orderBy]) {\r\n return -1;\r\n }\r\n if (b[orderBy] > a[orderBy]) {\r\n return 1;\r\n }\r\n return 0;\r\n }\r\n\r\n stableSort(array, cmp) {\r\n const stabilizedThis = array.map((el, index) => [el, index]);\r\n stabilizedThis.sort((a, b) => {\r\n const order = cmp(a[0], b[0]);\r\n if (order !== 0) return order;\r\n return a[1] - b[1];\r\n });\r\n return stabilizedThis.map((el) => el[0]);\r\n }\r\n\r\n getSorting(order, orderBy) {\r\n return order === \"desc\"\r\n ? (a, b) => this.desc(a, b, orderBy)\r\n : (a, b) => -this.desc(a, b, orderBy);\r\n }\r\n handleChangePage = (event, page) => {\r\n this.setState({ page });\r\n };\r\n\r\n handleChangeRowsPerPage = (event) => {\r\n this.setState({ page: 0, rowsPerPage: event.target.value });\r\n };\r\n handleRequestSort(event, property) {\r\n const { order, orderBy } = this.state;\r\n const isDesc = orderBy === property && order === \"desc\";\r\n this.setState({ isLoading: true });\r\n const detaildata = {\r\n UserStoreID: this.props.storeId,\r\n SearchID: this.props.searchId,\r\n RegionID: CONFIG.RegionId,\r\n };\r\n\r\n axios\r\n .post(CONFIG.API_URL + \"unit/unitlevelgridview\", detaildata)\r\n .then((res) => {\r\n let detailStoreData = res.data.data;\r\n var sortData = detailStoreData.sort((a, b) => b.storeId - a.storeId);\r\n\r\n let uniquestore = [...new Set(sortData.map((item) => item.storeId))];\r\n var FData = [];\r\n for (var t = 0; t < uniquestore.length; t++) {\r\n var tempData = sortData.filter((a) => a.storeId == uniquestore[t]);\r\n for (var s = 0; s < tempData.length; s++) {\r\n var inlineData = {\r\n rowcount: 1,\r\n competitorName: tempData[s].competitorName,\r\n address: tempData[s].address,\r\n alarm: tempData[s].alarm,\r\n climateControlled: tempData[s].climateControlled,\r\n covered: tempData[s].covered,\r\n doorType: tempData[s].doorType,\r\n driveUp: tempData[s].driveUp,\r\n dtOnlinePriceChanged: tempData[s].dtOnlinePriceChanged,\r\n dtPriceChanged: tempData[s].dtPriceChanged,\r\n dtPromoChanged: tempData[s].dtPromoChanged,\r\n elevator: tempData[s].elevator,\r\n floor: tempData[s].floor,\r\n humidityControlled: tempData[s].humidityControlled,\r\n isUserStore: tempData[s].isUserStore,\r\n lastCheckedDate: tempData[s].lastCheckedDate,\r\n latitude: tempData[s].latitude,\r\n longitude: tempData[s].longitude,\r\n onlinePrice: tempData[s].onlinePrice,\r\n onlinePriceLastChanged: tempData[s].onlinePriceLastChanged,\r\n outdoorAccess: tempData[s].outdoorAccess,\r\n power: tempData[s].power,\r\n promo: tempData[s].promo,\r\n promoLastChanged: tempData[s].promoLastChanged,\r\n proximity: tempData[s].proximity,\r\n rank: tempData[s].rank,\r\n regPrice: tempData[s].regPrice,\r\n regularPrice: tempData[s].regularPrice,\r\n regularPriceLastChanged: tempData[s].regularPriceLastChanged,\r\n size: tempData[s].size,\r\n spaceId: tempData[s].spaceId,\r\n spaceType: tempData[s].spaceType,\r\n spacetype: tempData[s].spacetype,\r\n state: tempData[s].state,\r\n storeId: tempData[s].storeId,\r\n storeName: tempData[s].storeName,\r\n vehicle: tempData[s].vehicle,\r\n regularPriceVat: tempData[s].regularPriceVat,\r\n onlinePriceVat: tempData[s].onlinePriceVat,\r\n isMonthly: tempData[s].isMonthly,\r\n };\r\n\r\n FData.push(inlineData);\r\n }\r\n }\r\n this.setState({\r\n detailStoreData: FData,\r\n detailViewData: sortData,\r\n isLoading: false,\r\n order: isDesc ? \"asc\" : \"desc\",\r\n orderBy: property,\r\n order1: \"\",\r\n orderBy1: \"\",\r\n order2: \"\",\r\n orderBy2: \"\",\r\n });\r\n })\r\n .catch((err) => {\r\n this.setState({ isLoading: false });\r\n if (err.response.status === 401) {\r\n localStorage.removeItem(\"accessKey\");\r\n const { from } = this.props.location.state || {\r\n from: { pathname: \"/\" },\r\n };\r\n this.props.history.push(from);\r\n } else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }\r\n handleProximitysort(event, property) {\r\n this.setState({ isLoading: true });\r\n const { order1, orderBy1 } = this.state;\r\n const isDesc = orderBy1 === property && order1 === \"desc\";\r\n const detaildata = {\r\n UserStoreID: this.props.storeId,\r\n SearchID: this.props.searchId,\r\n RegionID: CONFIG.RegionId,\r\n };\r\n\r\n axios\r\n .post(CONFIG.API_URL + \"unit/unitlevelgridview\", detaildata)\r\n .then((res) => {\r\n //let detailStoreData = [];\r\n let tempdetailStoreData = res.data.data;\r\n // var sortData = tempdetailStoreData.sort((a, b) => (b.proximity - a.proximity));\r\n if (order1 === \"desc\") {\r\n var sortByStoreData = tempdetailStoreData.sort(\r\n (a, b) => a.proximity - b.proximity\r\n );\r\n } else {\r\n var sortByStoreData = tempdetailStoreData.sort(\r\n (a, b) => b.proximity - a.proximity\r\n );\r\n }\r\n // let term = order;\r\n // let option = orderBy;\r\n // var sortByStoreData = tempdetailStoreData.sort((a, b) => {\r\n // return (option == 'asc' ? (a[term] >= b[term] ? -1 : 1) :\r\n // (a[term] <= b[term] ? -1 : 1))\r\n // });\r\n\r\n let uniquestore = [\r\n ...new Set(sortByStoreData.map((item) => item.storeId)),\r\n ];\r\n var detailStoreDatafilter = [];\r\n var detailStoreDatafilterLength = 0;\r\n\r\n for (var t = 0; t < uniquestore.length; t++) {\r\n var tempData = sortByStoreData.filter(\r\n (a) => a.storeId == uniquestore[t]\r\n );\r\n for (var s = 0; s < tempData.length; s++) {\r\n var inlineData = {\r\n competitorName: tempData[s].competitorName,\r\n address: s === 0 ? tempData[s].address : \"\",\r\n alarm: tempData[s].alarm,\r\n climateControlled: tempData[s].climateControlled,\r\n covered: tempData[s].covered,\r\n doorType: tempData[s].doorType,\r\n driveUp: tempData[s].driveUp,\r\n dtOnlinePriceChanged: tempData[s].dtOnlinePriceChanged,\r\n dtPriceChanged: tempData[s].dtPriceChanged,\r\n dtPromoChanged: tempData[s].dtPromoChanged,\r\n elevator: tempData[s].elevator,\r\n floor: tempData[s].floor,\r\n humidityControlled: tempData[s].humidityControlled,\r\n isUserStore: tempData[s].isUserStore,\r\n lastCheckedDate: tempData[s].lastCheckedDate,\r\n latitude: tempData[s].latitude,\r\n longitude: tempData[s].longitude,\r\n onlinePrice: tempData[s].onlinePrice,\r\n onlinePriceLastChanged: tempData[s].onlinePriceLastChanged,\r\n outdoorAccess: tempData[s].outdoorAccess,\r\n power: tempData[s].power,\r\n promo: tempData[s].promo,\r\n promoLastChanged: tempData[s].promoLastChanged,\r\n proximity: s === 0 ? tempData[s].proximity : \"empty\",\r\n rank: tempData[s].rank,\r\n regPrice: tempData[s].regPrice,\r\n regularPrice: tempData[s].regularPrice,\r\n regularPriceLastChanged: tempData[s].regularPriceLastChanged,\r\n size: tempData[s].size,\r\n spaceId: tempData[s].spaceId,\r\n spaceType: tempData[s].spaceType,\r\n spacetype: tempData[s].spacetype,\r\n state: tempData[s].state,\r\n storeId: tempData[s].storeId,\r\n storeName: s === 0 ? tempData[s].storeName : \"\",\r\n vehicle: tempData[s].vehicle,\r\n rowcount: s === 0 ? tempData.length : 0,\r\n regularPriceVat: tempData[s].regularPriceVat,\r\n onlinePriceVat: tempData[s].onlinePriceVat,\r\n isMonthly: tempData[s].isMonthly,\r\n };\r\n\r\n detailStoreDatafilter.push(inlineData);\r\n }\r\n }\r\n this.setState({\r\n detailStoreDatafilter,\r\n detailViewData: sortByStoreData,\r\n detailStoreData: [],\r\n tempdetailStoreData,\r\n isLoading: false,\r\n order1: isDesc ? \"asc\" : \"desc\",\r\n orderBy1: property,\r\n order: \"\",\r\n orderBy: \"\",\r\n order2: \"\",\r\n orderBy2: \"\",\r\n detailStoreDatafilterLength: uniquestore.length,\r\n });\r\n })\r\n .catch((err) => {\r\n this.setState({ isLoading: false });\r\n if (err.response.status === 401) {\r\n localStorage.removeItem(\"accessKey\");\r\n const { from } = this.props.location.state || {\r\n from: { pathname: \"/\" },\r\n };\r\n this.props.history.push(from);\r\n } else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }\r\n handleStoreSort(event, property) {\r\n this.setState({ isLoading: true });\r\n const { order2, orderBy2 } = this.state;\r\n const isDesc = orderBy2 === property && order2 === \"desc\";\r\n const detaildata = {\r\n UserStoreID: this.props.storeId,\r\n SearchID: this.props.searchId,\r\n RegionID: CONFIG.RegionId,\r\n };\r\n\r\n axios\r\n .post(CONFIG.API_URL + \"unit/unitlevelgridview\", detaildata)\r\n .then((res) => {\r\n let tempdetailStoreData = res.data.data;\r\n if (order2 === \"desc\") {\r\n var sortByStoreData = tempdetailStoreData.sort((a, b) =>\r\n a.storeName.localeCompare(b.storeName)\r\n );\r\n } else {\r\n var sortByStoreData = tempdetailStoreData.sort((a, b) =>\r\n b.storeName.localeCompare(a.storeName)\r\n );\r\n }\r\n let uniquestore = [\r\n ...new Set(sortByStoreData.map((item) => item.storeId)),\r\n ];\r\n var detailStoreDatafilter = [];\r\n var detailStoreDatafilterLength = 0;\r\n\r\n for (var t = 0; t < uniquestore.length; t++) {\r\n var tempData = sortByStoreData.filter(\r\n (a) => a.storeId == uniquestore[t]\r\n );\r\n for (var s = 0; s < tempData.length; s++) {\r\n var inlineData = {\r\n competitorName: tempData[s].competitorName,\r\n address: s === 0 ? tempData[s].address : \"\",\r\n alarm: tempData[s].alarm,\r\n climateControlled: tempData[s].climateControlled,\r\n covered: tempData[s].covered,\r\n doorType: tempData[s].doorType,\r\n driveUp: tempData[s].driveUp,\r\n dtOnlinePriceChanged: tempData[s].dtOnlinePriceChanged,\r\n dtPriceChanged: tempData[s].dtPriceChanged,\r\n dtPromoChanged: tempData[s].dtPromoChanged,\r\n elevator: tempData[s].elevator,\r\n floor: tempData[s].floor,\r\n humidityControlled: tempData[s].humidityControlled,\r\n isUserStore: tempData[s].isUserStore,\r\n lastCheckedDate: tempData[s].lastCheckedDate,\r\n latitude: tempData[s].latitude,\r\n longitude: tempData[s].longitude,\r\n onlinePrice: tempData[s].onlinePrice,\r\n onlinePriceLastChanged: tempData[s].onlinePriceLastChanged,\r\n outdoorAccess: tempData[s].outdoorAccess,\r\n power: tempData[s].power,\r\n promo: tempData[s].promo,\r\n promoLastChanged: tempData[s].promoLastChanged,\r\n proximity: s === 0 ? tempData[s].proximity : \"empty\",\r\n rank: tempData[s].rank,\r\n regPrice: tempData[s].regPrice,\r\n regularPrice: tempData[s].regularPrice,\r\n regularPriceLastChanged: tempData[s].regularPriceLastChanged,\r\n size: tempData[s].size,\r\n spaceId: tempData[s].spaceId,\r\n spaceType: tempData[s].spaceType,\r\n spacetype: tempData[s].spacetype,\r\n state: tempData[s].state,\r\n storeId: tempData[s].storeId,\r\n storeName: s === 0 ? tempData[s].storeName : \"\",\r\n vehicle: tempData[s].vehicle,\r\n rowcount: s === 0 ? tempData.length : 0,\r\n regularPriceVat: tempData[s].regularPriceVat,\r\n onlinePriceVat: tempData[s].onlinePriceVat,\r\n isMonthly: tempData[s].isMonthly,\r\n };\r\n\r\n detailStoreDatafilter.push(inlineData);\r\n }\r\n }\r\n this.setState(\r\n {\r\n detailStoreDatafilter,\r\n detailViewData: sortByStoreData,\r\n detailStoreData: [],\r\n tempdetailStoreData,\r\n isLoading: false,\r\n order2: isDesc ? \"asc\" : \"desc\",\r\n orderBy2: property,\r\n order: \"\",\r\n orderBy: \"\",\r\n order1: \"\",\r\n orderBy1: \"\",\r\n detailStoreDatafilterLength: uniquestore.length,\r\n },\r\n () => {\r\n this.downloadExcel();\r\n }\r\n );\r\n })\r\n .catch((err) => {\r\n this.setState({ isLoading: false });\r\n if (err.response.status === 401) {\r\n localStorage.removeItem(\"accessKey\");\r\n const { from } = this.props.location.state || {\r\n from: { pathname: \"/\" },\r\n };\r\n this.props.history.push(from);\r\n } else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }\r\n\r\n componentDidMount() {\r\n // this.setState({ isLoading: true });\r\n // const detaildata = {\r\n // \"UserStoreID\":this.props.storeId,\r\n // \"SearchID\": this.props.searchId\r\n // }\r\n\r\n // axios.post(CONFIG.API_URL + 'unit/unitlevelgridview', detaildata)\r\n // .then(res => {\r\n // let detailStoreData = res.data.data.unitLevelDatas;\r\n // var sortData = detailStoreData.sort((a, b) => (b.storeId - a.storeId));\r\n\r\n // let uniquestore = [...new Set(sortData.map(item => item.storeId))];\r\n // var FData = [];\r\n // for (var t = 0; t < uniquestore.length; t++) {\r\n // var tempData = sortData.filter(a => a.storeId == uniquestore[t]);\r\n // for (var s = 0; s < tempData.length; s++) {\r\n // var inlineData = {\r\n // rowcount: 1,\r\n // competitorName: tempData[s].competitorName,\r\n // address: tempData[s].address,\r\n // alarm: tempData[s].alarm,\r\n // climateControlled: tempData[s].climateControlled,\r\n // covered: tempData[s].covered,\r\n // doorType: tempData[s].doorType,\r\n // driveUp: tempData[s].driveUp,\r\n // dtOnlinePriceChanged: tempData[s].dtOnlinePriceChanged,\r\n // dtPriceChanged: tempData[s].dtPriceChanged,\r\n // dtPromoChanged: tempData[s].dtPromoChanged,\r\n // elevator: tempData[s].elevator,\r\n // floor: tempData[s].floor,\r\n // humidityControlled: tempData[s].humidityControlled,\r\n // isUserStore: tempData[s].isUserStore,\r\n // lastCheckedDate: tempData[s].lastCheckedDate,\r\n // latitude: tempData[s].latitude,\r\n // longitude: tempData[s].longitude,\r\n // onlinePrice: tempData[s].onlinePrice,\r\n // onlinePriceLastChanged: tempData[s].onlinePriceLastChanged,\r\n // outdoorAccess: tempData[s].outdoorAccess,\r\n // power: tempData[s].power,\r\n // promo: tempData[s].promo,\r\n // promoLastChanged: tempData[s].promoLastChanged,\r\n // proximity: tempData[s].proximity,\r\n // rank: tempData[s].rank,\r\n // regPrice: tempData[s].regPrice,\r\n // regularPrice: tempData[s].regularPrice,\r\n // regularPriceLastChanged: tempData[s].regularPriceLastChanged,\r\n // size: tempData[s].size,\r\n // spaceId: tempData[s].spaceId,\r\n // spaceType: tempData[s].spaceType,\r\n // spacetype: tempData[s].spacetype,\r\n // state: tempData[s].state,\r\n // storeId: tempData[s].storeId,\r\n // storeName: tempData[s].storeName,\r\n // vehicle: tempData[s].vehicle\r\n // }\r\n\r\n // FData.push(inlineData);\r\n // }\r\n // }\r\n // this.setState({ detailStoreData: FData, isLoading: false });\r\n // })\r\n // .catch((err) => {\r\n // this.setState({ isLoading: false });\r\n // if (err.response.status === 401) {\r\n // localStorage.removeItem('accessKey');\r\n // const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n // this.props.history.push(from);\r\n // }\r\n // else {\r\n // alert(err.response.data);\r\n // }\r\n // });\r\n this.setState({ isLoading: true });\r\n // const { order2, orderBy2 } = this.state;\r\n // const property = 'storeName';\r\n // const isDesc = orderBy2 === property && order2 === 'desc';\r\n // localStorage.setItem('StId', this.props.storeId);\r\n // const detaildata = {\r\n // \"UserStoreID\": this.props.storeId,\r\n // \"SearchID\": this.props.searchId\r\n // }\r\n\r\n // axios.post(CONFIG.API_URL + 'unit/unitlevelgridview', detaildata)\r\n // .then(res => {\r\n // let tempdetailStoreData = res.data.data.unitLevelDatas;\r\n // if (order2 === 'desc') {\r\n // var sortByStoreData = tempdetailStoreData.sort((a, b) => a.storeName.localeCompare(b.storeName));\r\n // }\r\n // else {\r\n // var sortByStoreData = tempdetailStoreData.sort((a, b) => b.storeName.localeCompare(a.storeName));\r\n // }\r\n // let uniquestore = [...new Set(sortByStoreData.map(item => item.storeId))];\r\n // var detailStoreDatafilter = [];\r\n // var detailStoreDatafilterLength = 0;\r\n\r\n // for (var t = 0; t < uniquestore.length; t++) {\r\n // var tempData = sortByStoreData.filter(a => a.storeId == uniquestore[t]);\r\n // for (var s = 0; s < tempData.length; s++) {\r\n // var inlineData = {\r\n // competitorName: tempData[s].competitorName,\r\n // address: s === 0 ? tempData[s].address : '',\r\n // alarm: tempData[s].alarm,\r\n // climateControlled: tempData[s].climateControlled,\r\n // covered: tempData[s].covered,\r\n // doorType: tempData[s].doorType,\r\n // driveUp: tempData[s].driveUp,\r\n // dtOnlinePriceChanged: tempData[s].dtOnlinePriceChanged,\r\n // dtPriceChanged: tempData[s].dtPriceChanged,\r\n // dtPromoChanged: tempData[s].dtPromoChanged,\r\n // elevator: tempData[s].elevator,\r\n // floor: tempData[s].floor,\r\n // humidityControlled: tempData[s].humidityControlled,\r\n // isUserStore: tempData[s].isUserStore,\r\n // lastCheckedDate: tempData[s].lastCheckedDate,\r\n // latitude: tempData[s].latitude,\r\n // longitude: tempData[s].longitude,\r\n // onlinePrice: tempData[s].onlinePrice,\r\n // onlinePriceLastChanged: tempData[s].onlinePriceLastChanged,\r\n // outdoorAccess: tempData[s].outdoorAccess,\r\n // power: tempData[s].power,\r\n // promo: tempData[s].promo,\r\n // promoLastChanged: tempData[s].promoLastChanged,\r\n // proximity: s === 0 ? tempData[s].proximity : 'empty',\r\n // rank: tempData[s].rank,\r\n // regPrice: tempData[s].regPrice,\r\n // regularPrice: tempData[s].regularPrice,\r\n // regularPriceLastChanged: tempData[s].regularPriceLastChanged,\r\n // size: tempData[s].size,\r\n // spaceId: tempData[s].spaceId,\r\n // spaceType: tempData[s].spaceType,\r\n // spacetype: tempData[s].spacetype,\r\n // state: tempData[s].state,\r\n // storeId: tempData[s].storeId,\r\n // storeName: s === 0 ? tempData[s].storeName : '',\r\n // vehicle: tempData[s].vehicle,\r\n // rowcount: s === 0 ? tempData.length : 0,\r\n\r\n // }\r\n\r\n // detailStoreDatafilter.push(inlineData);\r\n // }\r\n // }\r\n // this.setState({\r\n // detailStoreDatafilter, detailStoreData: [], tempdetailStoreData, isLoading: false,\r\n // order2: isDesc ? 'asc' : 'desc', orderBy2: property,\r\n // order: '', orderBy: '', order1: '', orderBy1: '',\r\n // detailStoreDatafilterLength: uniquestore.length\r\n // })\r\n\r\n // })\r\n // .catch((err) => {\r\n // this.setState({ isLoading: false });\r\n // if (err.response.status === 401) {\r\n // localStorage.removeItem('accessKey');\r\n // const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n // this.props.history.push(from);\r\n // }\r\n // else {\r\n // alert(err.response.data);\r\n // }\r\n // });\r\n let token = localStorage.getItem(\"accessKey\");\r\n\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = \"Bearer \" + token;\r\n }\r\n const data1 = {\r\n UserStoreID: this.props.storeId,\r\n RegionId: CONFIG.RegionId,\r\n };\r\n axios\r\n .post(CONFIG.API_URL + \"dashboard/dashboardlocation/\", data1)\r\n .then((res) => {\r\n let storeAddress = res.data.data.storeDashboard;\r\n this.setState({ storeAddress });\r\n })\r\n .catch((err) => {\r\n this.setState({ isLoading: false });\r\n if (err.response.status === 401) {\r\n localStorage.removeItem(\"accessKey\");\r\n const { from } = this.props.location.state || {\r\n from: { pathname: \"/\" },\r\n };\r\n this.props.history.push(from);\r\n } else if (err.response.status === 403) {\r\n const { from } = this.props.location.state || {\r\n from: { pathname: \"/UnauthorizedAccess\" },\r\n };\r\n this.props.history.push(from);\r\n } else {\r\n alert(err.response.data);\r\n }\r\n });\r\n\r\n const { order1, orderBy1 } = this.state;\r\n const property = \"proximity\";\r\n const isDesc = orderBy1 === property && order1 === \"asc\";\r\n const detaildata = {\r\n UserStoreID: this.props.storeId,\r\n SearchID: this.props.searchId,\r\n RegionID: CONFIG.RegionId,\r\n };\r\n\r\n axios\r\n .post(CONFIG.API_URL + \"unit/unitlevelgridview\", detaildata)\r\n .then((res) => {\r\n let tempdetailStoreData = res.data.data;\r\n // var sortData = tempdetailStoreData.sort((a, b) => (b.proximity - a.proximity));\r\n if (order1 === \"asc\") {\r\n var sortByStoreData = tempdetailStoreData.sort(\r\n (a, b) => a.proximity - b.proximity\r\n );\r\n } else {\r\n var sortByStoreData = tempdetailStoreData.sort(\r\n (a, b) => b.proximity - a.proximity\r\n );\r\n }\r\n // let term = order;\r\n // let option = orderBy;\r\n // var sortByStoreData = tempdetailStoreData.sort((a, b) => {\r\n // return (option == 'asc' ? (a[term] >= b[term] ? -1 : 1) :\r\n // (a[term] <= b[term] ? -1 : 1))\r\n // });\r\n\r\n let uniquestore = [\r\n ...new Set(sortByStoreData.map((item) => item.storeId)),\r\n ];\r\n var detailStoreDatafilter = [];\r\n var detailStoreDatafilterLength = 0;\r\n\r\n for (var t = 0; t < uniquestore.length; t++) {\r\n var tempData = sortByStoreData.filter(\r\n (a) => a.storeId == uniquestore[t]\r\n );\r\n for (var s = 0; s < tempData.length; s++) {\r\n var inlineData = {\r\n competitorName: tempData[s].competitorName,\r\n address: s === 0 ? tempData[s].address : \"\",\r\n alarm: tempData[s].alarm,\r\n climateControlled: tempData[s].climateControlled,\r\n covered: tempData[s].covered,\r\n doorType: tempData[s].doorType,\r\n driveUp: tempData[s].driveUp,\r\n dtOnlinePriceChanged: tempData[s].dtOnlinePriceChanged,\r\n dtPriceChanged: tempData[s].dtPriceChanged,\r\n dtPromoChanged: tempData[s].dtPromoChanged,\r\n elevator: tempData[s].elevator,\r\n floor: tempData[s].floor,\r\n humidityControlled: tempData[s].humidityControlled,\r\n isUserStore: tempData[s].isUserStore,\r\n lastCheckedDate: tempData[s].lastCheckedDate,\r\n latitude: tempData[s].latitude,\r\n longitude: tempData[s].longitude,\r\n onlinePrice: tempData[s].onlinePrice,\r\n onlinePriceLastChanged: tempData[s].onlinePriceLastChanged,\r\n outdoorAccess: tempData[s].outdoorAccess,\r\n power: tempData[s].power,\r\n promo: tempData[s].promo,\r\n promoLastChanged: tempData[s].promoLastChanged,\r\n proximity: s === 0 ? tempData[s].proximity : \"empty\",\r\n rank: tempData[s].rank,\r\n regPrice: tempData[s].regPrice,\r\n regularPrice: tempData[s].regularPrice,\r\n regularPriceLastChanged: tempData[s].regularPriceLastChanged,\r\n size: tempData[s].size,\r\n spaceId: tempData[s].spaceId,\r\n spaceType: tempData[s].spaceType,\r\n spacetype: tempData[s].spacetype,\r\n state: tempData[s].state,\r\n storeId: tempData[s].storeId,\r\n storeName: s === 0 ? tempData[s].storeName : \"\",\r\n vehicle: tempData[s].vehicle,\r\n rowcount: s === 0 ? tempData.length : 0,\r\n regularPriceVat: tempData[s].regularPriceVat,\r\n onlinePriceVat: tempData[s].onlinePriceVat,\r\n isMonthly: tempData[s].isMonthly,\r\n };\r\n\r\n detailStoreDatafilter.push(inlineData);\r\n }\r\n }\r\n this.setState(\r\n {\r\n detailStoreDatafilter,\r\n detailViewData: sortByStoreData,\r\n detailStoreData: [],\r\n tempdetailStoreData,\r\n isLoading: false,\r\n order1: isDesc ? \"asc\" : \"desc\",\r\n orderBy1: property,\r\n order: \"\",\r\n orderBy: \"\",\r\n order2: \"\",\r\n orderBy2: \"\",\r\n detailStoreDatafilterLength: uniquestore.length,\r\n },\r\n () => {\r\n this.downloadExcel();\r\n }\r\n );\r\n })\r\n .catch((err) => {\r\n this.setState({ isLoading: false });\r\n if (err.response.status === 401) {\r\n localStorage.removeItem(\"accessKey\");\r\n const { from } = this.props.location.state || {\r\n from: { pathname: \"/\" },\r\n };\r\n this.props.history.push(from);\r\n } else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }\r\n\r\n downloadExcel() {\r\n let data = \"\";\r\n let date = this.state.currentDate;\r\n var day = date.getDate();\r\n var month = date.getMonth();\r\n var year = date.getFullYear();\r\n let size,\r\n fileName,\r\n covered,\r\n vehicle,\r\n alarm,\r\n climate,\r\n doorType,\r\n driveUp,\r\n elevator,\r\n storename,\r\n storeAddress,\r\n humidity,\r\n outdoorAccess,\r\n proximity,\r\n power,\r\n adPromoDate,\r\n adOnlineDate,\r\n adWalkinDate;\r\n let downloadInput = [];\r\n let downloadInputMerge = [];\r\n let inputArray = [];\r\n // let currency = CONFIG.RegionId === 3 ?'£': CONFIG.Currency_Symbol;\r\n let currency = this.props.curr;\r\n let units =\r\n CONFIG.RegionId == 2 || CONFIG.RegionId == 4 ? \" \" + \"km\" : \" \" + \"mi\";\r\n inputArray =\r\n this.state.detailViewData && this.state.detailViewData.length > 0\r\n ? this.state.detailViewData\r\n : this.state.detailViewData;\r\n inputArray.map((data) => {\r\n storename = data.storeName ? data.storeName : \"N/A\";\r\n storeAddress = data.address ? data.address : \"N/A\";\r\n size = data.size ? data.size.toString() : \"N/A\";\r\n alarm = data.alarm === 1 ? \"Alarm, \" : \"\";\r\n climate = data.climateControlled === 1 ? \"ClimateControlled, \" : \"\";\r\n covered = data.covered === 1 ? \"Covered, \" : \"\";\r\n doorType =\r\n data.doorType > 0\r\n ? data.doorType === 1\r\n ? \"Roll-Up Door, \"\r\n : data.doorType === 2\r\n ? \"Swing Door, \"\r\n : data.doorType === 3\r\n ? \"Double Door, \"\r\n : data.doorType === 4\r\n ? \"Chain-Link Door, \"\r\n : data.doorType === 5\r\n ? \"Other Door, \"\r\n : \"\"\r\n : \"\";\r\n driveUp = data.driveUp === 1 ? \"DriveUp, \" : \"\";\r\n elevator = data.elevator === 1 ? \"Elevator, \" : \"\";\r\n vehicle = data.vehicle === 1 ? \"Vehicle, \" : \"\";\r\n humidity = data.humidityControlled === 1 ? \"HumidityControlled, \" : \"\";\r\n outdoorAccess = data.outdoorAccess === 1 ? \"OutdoorAccess, \" : \"\";\r\n power = data.power === 1 ? \"Power, \" : \"\";\r\n adOnlineDate = data.dtOnlinePriceChanged\r\n ? moment(data.dtOnlinePriceChanged).format(\"DD-MMM-YYYY\")\r\n : \"N/A\";\r\n adWalkinDate = data.dtPriceChanged\r\n ? moment(data.dtPriceChanged).format(\"DD-MMM-YYYY\")\r\n : \"N/A\";\r\n adPromoDate = data.dtPromoChanged\r\n ? moment(data.dtPromoChanged).format(\"DD-MMM-YYYY\")\r\n : \"N/A\";\r\n proximity =\r\n data.proximity !== \"empty\" ? data.proximity.toFixed(2) + units : \"\";\r\n let str =\r\n alarm +\r\n climate +\r\n vehicle +\r\n doorType +\r\n driveUp +\r\n elevator +\r\n humidity +\r\n outdoorAccess +\r\n power +\r\n covered;\r\n var features = str.replace(/,\\s*$/, \"\");\r\n downloadInputMerge.push({\r\n STORENAME: storename,\r\n ADDRESS: storeAddress,\r\n PROXIMITY: proximity,\r\n \"UNIT SIZE\": size,\r\n FLOOR: data.floor ? data.floor : \"N/A\",\r\n FEATURES: features, //alarm + climate + doorType + driveUp + elevator + humidity + outdoorAccess + power,\r\n \"ADVERTISED ONLINE RATE\": data.onlinePrice && data.onlinePrice != 0 && data.onlinePrice != null\r\n ? data.isMonthly === 1\r\n ? currency + data.onlinePrice + \"*\"\r\n : currency + data.onlinePrice\r\n : \"N/A\",\r\n \"ADVERTISED ONLINE WEEKLY RATE\":\r\n data.onlinePrice && data.onlinePrice != 0 && data.onlinePrice != null\r\n ? data.isMonthly === 1\r\n ? currency + data.onlinePrice + \"*\"\r\n : currency + data.onlinePrice\r\n : \"N/A\",\r\n \"ONLINE RATE LAST CHANGED\": adOnlineDate,\r\n \"ADVERTISED WALK-IN RATE\":\r\n data.regPrice && data.regPrice != 0 && data.regPrice != null\r\n ? data.isMonthly === 1\r\n ? currency + data.regPrice + \"*\"\r\n : currency + data.regPrice\r\n : \"N/A\",\r\n \"ADVERTISED WALK-IN WEEKLY RATE\":\r\n data.regPrice && data.regPrice != 0 && data.regPrice != null\r\n ? data.isMonthly === 1\r\n ? currency + data.regPrice + \"*\"\r\n : currency + data.regPrice\r\n : \"N/A\",\r\n \"WALK-IN RATE LAST CHANGED\": adWalkinDate,\r\n \"ADVERTISED PROMOTION\": data.promo ? data.promo : \"N/A\",\r\n \"PROMOTION LAST CHANGED\": adPromoDate,\r\n });\r\n });\r\n var merge = [\r\n {\r\n STORENAME: \"* This rate is calculated from an advertised monthly rate\",\r\n },\r\n ];\r\n downloadInput =\r\n CONFIG.RegionId === 3\r\n ? downloadInputMerge.concat(merge)\r\n : downloadInputMerge;\r\n var stoName =\r\n this.state.storeAddress.storeName &&\r\n this.state.storeAddress.storeName !== null &&\r\n this.state.storeAddress.storeName !== \"\" &&\r\n this.state.storeAddress.storeName !== undefined\r\n ? this.state.storeAddress.storeName\r\n : \"Your Store\";\r\n fileName =\r\n stoName +\r\n \"_\" +\r\n this.props.unitTypesName +\r\n \"_\" +\r\n moment(this.state.currentDate).format(\"DD-MMM-YYYY\");\r\n //var result = exportFromJSON({ data, fileName, exportType, formateDate: 'yyyy/mm/dd' });\r\n this.setState({ downloadInput, fileName });\r\n }\r\n downLoadPDF() {\r\n // this.setState({ isLoading: true });\r\n var currentDate = moment(new Date()).format(\"DD-MMM-YYYY\");\r\n let pta = \"1\";\r\n let usId = this.props.storeId ? this.props.storeId : \"0\";\r\n let searchId = this.props.searchId ? this.props.searchId : \"0\";\r\n let accessKey = localStorage.getItem(\"SecretKey\");\r\n let unitType = this.state.order ? this.state.order : \"0\";\r\n let priceType = this.state.orderBy ? this.state.orderBy : \"0\";\r\n let orderBy = this.state.order1 ? this.state.order1 : \"0\";\r\n let order = this.state.order2 ? this.state.order2 : \"0\";\r\n let isShowGraph = this.state.orderBy1 ? this.state.orderBy1 : \"0\";\r\n let isRemoveGraph = this.state.orderBy2 ? this.state.orderBy2 : \"0\";\r\n\r\n //let accessKey = '3f2b471776bc41cf863720bfc8cf9cb9';\r\n var timestamp =\r\n new Date().getDate() +\r\n \"\" +\r\n new Date().getMonth() +\r\n \"\" +\r\n new Date().getFullYear() +\r\n \"\" +\r\n new Date().getTime();\r\n //construct filename for pdf report.\r\n var fileName = usId + \"DetailedStoreView\" + \"_\" + timestamp + \".pdf\";\r\n var stoName =\r\n this.state.storeAddress.storeName &&\r\n this.state.storeAddress.storeName !== null &&\r\n this.state.storeAddress.storeName !== \"\" &&\r\n this.state.storeAddress.storeName !== undefined\r\n ? this.state.storeAddress.storeName\r\n : \"Your Store\";\r\n var fileNamePdf =\r\n stoName + \"_\" + \"DetailedStoreView\" + \"_\" + currentDate + \".pdf\";\r\n this.setState({\r\n snackClr: \"snack-info\",\r\n snackOpen: true,\r\n snackMSg:\r\n \"Your download is being processed. The \" +\r\n fileNamePdf +\r\n \" file will download automatically to your browser when ready and Please do not close or reload the pages until download completes. We recommend you check your Downloads folder if you don’t see it in your browser.\",\r\n });\r\n let ComponentName = 10;\r\n const Input = {\r\n RegionID: CONFIG.RegionId,\r\n URL:\r\n CONFIG.OPTZ_URL +\r\n \"render-pdf/\" +\r\n accessKey +\r\n \"/\" +\r\n ComponentName +\r\n \"/0/\" +\r\n usId +\r\n \"/\" +\r\n pta +\r\n \"/\" +\r\n searchId +\r\n \"/\" +\r\n unitType +\r\n \"/\" +\r\n priceType +\r\n \"/\" +\r\n orderBy +\r\n \"/\" +\r\n order +\r\n \"/\" +\r\n isShowGraph +\r\n \"/\" +\r\n isRemoveGraph +\r\n \"/\",\r\n FileName: fileName,\r\n };\r\n // axios.post(CONFIG.API_URL + 'dashboard/generatepdfbypage', Input)\r\n axios({\r\n url: CONFIG.API_URL + \"dashboard/generatepdfbypage\",\r\n method: \"post\",\r\n responseType: \"blob\",\r\n data: Input,\r\n })\r\n .then((response) => {\r\n const blob = new Blob([response.data], { type: 'application/octet-stream' }); \r\n const link = document.createElement('a');\r\n link.href = window.URL.createObjectURL(blob); \r\n link.download = fileNamePdf;\r\n link.dispatchEvent(\r\n new MouseEvent('click', { \r\n bubbles: true, \r\n cancelable: true, \r\n view: window \r\n })\r\n ); \r\n setTimeout(() => {\r\n // For Firefox it is necessary to delay revoking the ObjectURL\r\n window.URL.revokeObjectURL(link.href);\r\n link.remove();\r\n }, 3000); \r\n this.setState({isLoading: false }); \r\n })\r\n .catch((err) => {\r\n this.setState({ isLoading: false });\r\n });\r\n }\r\n snackHandleclose = (event, reason) => {\r\n if (reason === \"clickaway\") {\r\n return;\r\n }\r\n this.setState({ snackOpen: false });\r\n };\r\n render() {\r\n document.title = \"StorTrack: Self-storage market pricing data\";\r\n const {\r\n detailStoreData,\r\n detailViewData,\r\n isLoading,\r\n detailStoreDatafilter,\r\n detailStoreDatafilterLength,\r\n rowsPerPage,\r\n page,\r\n pageCount,\r\n order,\r\n orderBy,\r\n order1,\r\n orderBy1,\r\n order2,\r\n orderBy2,\r\n snackOpen,\r\n snackMSg,\r\n } = this.state;\r\n //'HideCompetitor'\r\n const defaultProps = {\r\n helpTitle: \"Detailed View of Stores\",\r\n helpContent:\r\n \"

This is a spreadsheet style view of the stores advertising this unit currently. It shows the store, the proximity to your address, the unit size, the floor in which the unit is located (Ground or Upper floor) and any features advertised for this unit type by the store. Additionally, the rates (both Advertised Online Rate and Advertised Walk-in Rate), unit-specific promotions and the last time these were changed on the store's website.

*Your store prices are included in the calculations.

Refer the below help video for more information.

\",\r\n };\r\n return (\r\n
\r\n \r\n \r\n \r\n
\r\n Detailed view of Stores \r\n
\r\n \r\n \r\n
\r\n {/* */}\r\n 0 ? (\r\n \r\n \r\n Download Prices\r\n \r\n ) : (\r\n \r\n \r\n Download Prices\r\n \r\n )\r\n }\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 0 ||\r\n detailStoreDatafilter.length > 0)\r\n ? false\r\n : true\r\n }\r\n className={\r\n detailStoreData.length > 0 || detailStoreDatafilter.length > 0\r\n ? \"mt-0 mb-2 mr-2 apply-btn download-pdf \"\r\n : \"mt-0 mb-2 mr-2 apply-btn download-pdf-disabled\"\r\n }\r\n onClick={this.downLoadPDF.bind(this)}\r\n >\r\n \r\n PDF Download\r\n \r\n
\r\n {CONFIG.RegionId === 3 ? (\r\n

\r\n * This rate is calculated from an advertised monthly rate\r\n

\r\n ) : (\r\n \"\"\r\n )}\r\n \r\n
\r\n {/*
*/}\r\n {/*
Detailed view of Stores
\r\n \r\n
*/}\r\n {/* {CONFIG.RegionId === 3 ?\r\n

* This rate is calculated from an advertised monthly rate

\r\n :''} */}\r\n
\r\n {/* You have setup {detailStoreData && detailStoreData.length > 0 ? detailStoreData.length : '0'}. */}\r\n
\r\n {isLoading ? (\r\n
\r\n
\r\n
\r\n ) : (\r\n \"\"\r\n )}\r\n \r\n \r\n \r\n {/* \r\n \r\n storeName\r\n \r\n \r\n */}\r\n \r\n {detailStoreData && detailStoreData.length > 0 ? (\r\n this.stableSort(\r\n detailStoreData,\r\n this.getSorting(order, orderBy)\r\n ).map((category, index) => (\r\n \r\n \r\n \r\n this.getParams(category.storeName, category.storeId)\r\n }\r\n className=\"storename\"\r\n >\r\n {category.storeName}\r\n \r\n
\r\n \r\n {category.address}\r\n \r\n
\r\n \r\n {category.proximity.toFixed(2)}{\" \"}\r\n {CONFIG.RegionId == 2 || CONFIG.RegionId == 4\r\n ? \" \" + \"km\"\r\n : \" \" + \"mi\"}\r\n \r\n \r\n {category.size}\r\n {category.spaceType.toLowerCase().replace(\" \", \"\") ===\r\n \"storageunit\" ? (\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n {category.spaceType.toLowerCase().replace(\" \", \"\") ===\r\n \"apartment\" ? (\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n {category.spaceType.toLowerCase().replace(\" \", \"\") ===\r\n \"artstudio\" ? (\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n {category.spaceType.toLowerCase().replace(\" \", \"\") ===\r\n \"box\" ? (\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n {category.spaceType.toLowerCase().replace(\" \", \"\") ===\r\n \"celltower\" ? (\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n {category.spaceType.toLowerCase().replace(\" \", \"\") ===\r\n \"container\" ? (\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n {category.spaceType.toLowerCase().replace(\" \", \"\") ===\r\n \"filestorage\" ? (\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n {category.spaceType.toLowerCase().replace(\" \", \"\") ===\r\n \"office\" ? (\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n {category.spaceType.toLowerCase().replace(\" \", \"\") ===\r\n \"mailbox\" ? (\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n {category.spaceType.toLowerCase().replace(\" \", \"\") ===\r\n \"parking\" ? (\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n {category.spaceType.toLowerCase().replace(\" \", \"\") ===\r\n \"unit\" ? (\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n {category.spaceType.toLowerCase().replace(\" \", \"\") ===\r\n \"warehouse\" ? (\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n {category.spaceType.toLowerCase().replace(\" \", \"\") ===\r\n \"winestorage\" ? (\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n {category.spaceType.toLowerCase().replace(\" \", \"\") ===\r\n \"workshop\" ? (\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n {category.spaceType.toLowerCase().replace(\" \", \"\") ===\r\n \"locker\" ? (\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n \r\n {category.floor}\r\n \r\n {category.alarm === 1 ? (\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n {category.climateControlled === 1 ? (\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n {category.doorType > 0 ? (\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n {category.driveUp === 1 ? (\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n {category.elevator === 1 ? (\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n {category.humidityControlled === 1 ? (\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n {category.outdoorAccess === 1 ? (\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n {category.power === 1 ? (\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n \r\n \r\n {category.onlinePrice >= 1 && this.props.curr ? (\r\n {this.props.curr + category.onlinePrice}\r\n ) : (\r\n \"N/A\"\r\n )}\r\n {category.isMonthly &&\r\n category.isMonthly === 1 &&\r\n CONFIG.RegionId === 3 ? (\r\n *\r\n ) : (\r\n \"\"\r\n )}\r\n \r\n {/* {CONFIG.RegionId ===3?{category.onlinePriceVat ==1?:category.onlinePriceVat ==0?:'--'}:''} */}\r\n \r\n {moment(category.dtOnlinePriceChanged).format(\r\n \"DD-MMM-YYYY\"\r\n )}\r\n \r\n \r\n {category.regPrice >= 1 && this.props.curr ? (\r\n {this.props.curr + category.regPrice}\r\n ) : (\r\n \"N/A\"\r\n )}\r\n {category.isMonthly &&\r\n category.isMonthly === 1 &&\r\n CONFIG.RegionId === 3 ? (\r\n *\r\n ) : (\r\n \"\"\r\n )}\r\n \r\n {/* {CONFIG.RegionId ===3?{category.regularPriceVat ==1?:category.regularPriceVat ==0?:'--'}:''} */}\r\n \r\n {moment(category.dtPriceChanged).format(\"DD-MMM-YYYY\")}\r\n \r\n {category.promo}\r\n \r\n {moment(category.dtPromoChanged).format(\"DD-MMM-YYYY\")}\r\n \r\n \r\n ))\r\n ) : detailStoreDatafilter &&\r\n detailStoreDatafilter.length > 0 ? (\r\n detailStoreDatafilter.map((category, index) => (\r\n 0\r\n ? \"table-body gropup-data border-tr\"\r\n : \"no-border\"\r\n }\r\n >\r\n {category.storeName !== \"\" ? (\r\n 0 ? category.rowcount : 0\r\n }\r\n >\r\n \r\n this.getParams(\r\n category.storeName,\r\n category.storeId\r\n )\r\n }\r\n className=\"storename\"\r\n >\r\n {category.storeName}\r\n \r\n
\r\n \r\n {category.address}\r\n \r\n \r\n ) : (\r\n \"\"\r\n )}\r\n {category.proximity !== \"empty\" ? (\r\n 0 ? category.rowcount : 0\r\n }\r\n className={\r\n category.rowcount > 0 ? \"border-right-cell\" : \"\"\r\n }\r\n >\r\n {category.proximity.toFixed(2)}\r\n {CONFIG.RegionId == 2 || CONFIG.RegionId == 4\r\n ? \" \" + \"km\"\r\n : \" \" + \"mi\"}\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n \r\n {category.size}\r\n {category.spaceType.toLowerCase().replace(\" \", \"\") ===\r\n \"storageunit\" ? (\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n {category.spaceType.toLowerCase().replace(\" \", \"\") ===\r\n \"apartment\" ? (\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n {category.spaceType.toLowerCase().replace(\" \", \"\") ===\r\n \"artstudio\" ? (\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n {category.spaceType.toLowerCase().replace(\" \", \"\") ===\r\n \"box\" ? (\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n {category.spaceType.toLowerCase().replace(\" \", \"\") ===\r\n \"celltower\" ? (\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n {category.spaceType.toLowerCase().replace(\" \", \"\") ===\r\n \"container\" ? (\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n {category.spaceType.toLowerCase().replace(\" \", \"\") ===\r\n \"filestorage\" ? (\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n {category.spaceType.toLowerCase().replace(\" \", \"\") ===\r\n \"office\" ? (\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n {category.spaceType.toLowerCase().replace(\" \", \"\") ===\r\n \"mailbox\" ? (\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n {category.spaceType.toLowerCase().replace(\" \", \"\") ===\r\n \"parking\" ? (\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n {category.spaceType.toLowerCase().replace(\" \", \"\") ===\r\n \"unit\" ? (\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n {category.spaceType.toLowerCase().replace(\" \", \"\") ===\r\n \"warehouse\" ? (\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n {category.spaceType.toLowerCase().replace(\" \", \"\") ===\r\n \"winestorage\" ? (\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n {category.spaceType.toLowerCase().replace(\" \", \"\") ===\r\n \"workshop\" ? (\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n {category.spaceType.toLowerCase().replace(\" \", \"\") ===\r\n \"locker\" ? (\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n \r\n {category.floor}\r\n \r\n {category.covered === 1 ? (\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n {category.vehicle === 1 ? (\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n {category.alarm === 1 ? (\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n {category.climateControlled === 1 ? (\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n {category.doorType > 0 ? (\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n {category.driveUp === 1 ? (\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n {category.elevator === 1 ? (\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n {category.humidityControlled === 1 ? (\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n {category.outdoorAccess === 1 ? (\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n {category.power === 1 ? (\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n \r\n \r\n {category.onlinePrice >= 1 && this.props.curr ? (\r\n {this.props.curr + category.onlinePrice}\r\n ) : (\r\n \"N/A\"\r\n )}\r\n {category.isMonthly &&\r\n category.isMonthly === 1 &&\r\n CONFIG.RegionId === 3 ? (\r\n *\r\n ) : (\r\n \"\"\r\n )}\r\n \r\n {/* {CONFIG.RegionId ===3?{category.onlinePriceVat ==1?:category.onlinePriceVat ==0?:'--'}:''} */}\r\n \r\n {moment(category.dtOnlinePriceChanged).format(\r\n \"DD-MMM-YYYY\"\r\n )}\r\n \r\n \r\n {category.regPrice >= 1 && this.props.curr ? (\r\n {this.props.curr + category.regPrice}\r\n ) : (\r\n \"N/A\"\r\n )}\r\n {category.isMonthly &&\r\n category.isMonthly === 1 &&\r\n CONFIG.RegionId === 3 ? (\r\n *\r\n ) : (\r\n \"\"\r\n )}\r\n \r\n {/* {CONFIG.RegionId ===3?{category.regularPriceVat ==1?:category.regularPriceVat ==0?:'--'}:''} */}\r\n \r\n {moment(category.dtPriceChanged).format(\"DD-MMM-YYYY\")}\r\n \r\n {category.promo}\r\n \r\n {moment(category.dtPromoChanged).format(\"DD-MMM-YYYY\")}\r\n \r\n \r\n ))\r\n ) : (\r\n \r\n \r\n {isLoading === false ? \"No data Available.\" : \"\"}\r\n \r\n \r\n )}\r\n
\r\n {/* {\r\n detailStoreData && detailStoreData.length > 0 ?\r\n \r\n \r\n \r\n \r\n \r\n :''} */}\r\n
\r\n
\r\n {/* {CONFIG.RegionId ===3?\r\n
\r\n \r\n Legend:\r\n Price includes VAT\r\n Price excludes VAT \r\n --Unknown if price includes VAT\r\n \r\n
\r\n :\"\"\r\n } */}\r\n
\r\n \r\n \r\n ,\r\n ]}\r\n message={{snackMSg}}\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\nCustomDetailedStoresView.propTypes = {\r\n // classes: PropTypes.object.isRequired,\r\n};\r\n\r\nexport default CustomDetailedStoresView;\r\n","import React, { Fragment } from \"react\";\r\nimport { Row, Col, Button } from \"reactstrap\";\r\nimport './MapView.css';\r\nimport Snackbar from \"@material-ui/core/Snackbar\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport axios from \"axios\";\r\nimport { MarketProfile } from \"../MarketProfile\";\r\nimport { CONFIG } from \"../../utils/config\";\r\nimport homeIcon from \"./../../Assets/Images/home-icon-circle.png\";\r\nimport { HelpTextPopup } from \"./../HelpTextPopup/index\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { faFilePdf } from \"@fortawesome/free-solid-svg-icons\";\r\nimport moment from \"moment\";\r\nimport MapGL, { Layer, NavigationControl, Popup, Source, Marker, WebMercatorViewport, FlyToInterpolator } from \"react-map-gl\";\r\nimport \"mapbox-gl/dist/mapbox-gl.css\";\r\n\r\nconst layerStyle = {\r\n id: \"point\",\r\n type: \"circle\",\r\n paint: {\r\n \"circle-radius\": 5,\r\n \"circle-color\": [\"get\", \"colorCode\"],\r\n },\r\n};\r\n\r\nexport default class MapViews extends React.Component {\r\n static defaultProps = {\r\n googleMapURL:\r\n \"https://maps.googleapis.com/maps/api/js?key=\" +\r\n CONFIG.GoogleMapsApiKey +\r\n \"\",\r\n };\r\n constructor(props) {\r\n super(props);\r\n this.child = React.createRef();\r\n this.state = {\r\n mapData: [],\r\n FData: [],\r\n showingInfoWindow: false,\r\n storeId: \"\",\r\n searchId: \"\",\r\n test: \"\",\r\n storeName: \"\",\r\n storeid: 0,\r\n isLoading: false,\r\n snackOpen: false,\r\n snackMSg: \"\",\r\n snackClr: \"\",\r\n zoomValue: 6,\r\n // viewport: {\r\n // longitude: -97.86589,\r\n // latitude: 37.70959,\r\n // zoom: 3,\r\n // },\r\n viewport: {\r\n // width:\"100%\",\r\n // height:\"100vh\",\r\n longitude: parseFloat(props.location.longitude),\r\n latitude: parseFloat(props.location.latitude),\r\n zoom: 10,\r\n },\r\n popupInfoLatlng: {},\r\n satelliteView: 0\r\n };\r\n this.getParams = this.getParams.bind(this);\r\n this.mapRef = React.createRef();\r\n }\r\n\r\n getParams() {\r\n let strName = this.state.storeName;\r\n let strID = this.state.storeid;\r\n if (strName && strID) {\r\n this.child.current.toggleModal(strName, strID);\r\n }\r\n }\r\n\r\n onMarkerClick = (event) => {\r\n let sam = [],\r\n uniqsize = [];\r\n let latitude = Number(event.lngLat[1]);\r\n let longitude = Number(event.lngLat[0]);\r\n let data = event.features.filter(ft => ft.layer.type === \"circle\")[0];\r\n if (data && data.layer.type === \"circle\") {\r\n let price = \"\";\r\n let selectedMarker = this.state.mapData.filter(ft => ft.properties.storeId === data.properties.StoreID)[0].properties;\r\n let name = selectedMarker.storeName;\r\n let address = selectedMarker.address;\r\n let id = selectedMarker.storeId;\r\n let lat = selectedMarker.latitude;\r\n let lng = selectedMarker.longitude;\r\n let size = selectedMarker.size;\r\n this.state.mapData.map((test) => {\r\n if (test.properties.storeId === id) {\r\n sam.push(test.properties.size);\r\n }\r\n });\r\n const uniqueNames = Array.from(new Set(sam));\r\n var units = uniqueNames.join(\", \");\r\n var add = address;\r\n var last = add.lastIndexOf(\",\");\r\n var s1 = add.substring(0, last);\r\n var s2 = add.substring(last + 1);\r\n var storedata = this.state.FData;\r\n var tFData = storedata.filter(ft => ft.properties.StoreID == id)[0].properties;\r\n var StandardOnlinePrice = tFData.StandardOnlinePrice;\r\n var StandardRegPrice = tFData.StandardRegPrice;\r\n this.setState({\r\n storeName: name,\r\n lat: lat,\r\n lng: lng,\r\n address: address ? s1 : \"\",\r\n address1: address ? s2 : \"\",\r\n regPrice:\r\n StandardRegPrice != this.props.curr + 0 ? StandardRegPrice : \"N/A\",\r\n onlinePrice:\r\n StandardOnlinePrice != this.props.curr + 0\r\n ? StandardOnlinePrice\r\n : \"N/A\",\r\n size: size ? units : \"N/A\",\r\n storeid: id,\r\n showingInfoWindow: true,\r\n popupInfoLatlng: { latitude, longitude }\r\n });\r\n }\r\n };\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (nextProps.bca != this.props.bca) {\r\n this.state.mapData = [];\r\n this.setState(\r\n {\r\n isLoading: true,\r\n showingInfoWindow: false,\r\n bca: nextProps.bca,\r\n abc: nextProps.abc,\r\n },\r\n () => {\r\n this.componentDidMount();\r\n }\r\n );\r\n }\r\n }\r\n\r\n mapView() {\r\n // const data=\r\n // {\r\n // \"UserStoreID\":129229,\r\n // \"SearchID\":965256\r\n // }\r\n localStorage.setItem(\"StId\", this.props.abc);\r\n const data = {\r\n UserStoreID: this.props.abc,\r\n SearchID: this.props.bca,\r\n RegionID: CONFIG.RegionId,\r\n IsMapBox: CONFIG.IsMapbox,\r\n };\r\n let token = localStorage.getItem(\"accessKey\");\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = \"Bearer \" + token;\r\n }\r\n\r\n axios\r\n .post(CONFIG.API_URL + \"unit/unitlevelmapview\", data)\r\n .then((res) => {\r\n let mapData = res.data.data.unitLevelDatas;\r\n let uniquestore = [...new Set(mapData.map((item) => item.properties.storeId))];\r\n var FData = [];\r\n for (var t = 0; t < uniquestore.length; t++) {\r\n var tFData = mapData.filter((a) => a.properties.storeId == uniquestore[t]);\r\n var mData = {\r\n StoreID: uniquestore[t],\r\n StoreAddress: tFData[0].properties.address,\r\n colorCode: tFData[0].properties.colorCode,\r\n PremiumRegPrice: Math.max.apply(\r\n Math,\r\n tFData.map(function (o) {\r\n return o.properties.regPrice;\r\n })\r\n ),\r\n // StandardRegPrice:(Math.max.apply(Math, tFData.map(function(o) { return o.regPrice; }))+'-'+Math.min.apply(Math, tFData.map(function(o) { return o.regPrice; }))),\r\n StandardRegPrice:\r\n Math.max.apply(\r\n Math,\r\n tFData.map(function (o) {\r\n return o.properties.regPrice;\r\n })\r\n ) ===\r\n Math.min.apply(\r\n Math,\r\n tFData.map(function (o) {\r\n return o.properties.regPrice;\r\n })\r\n )\r\n ? this.props.curr +\r\n Math.min.apply(\r\n Math,\r\n tFData.map(function (o) {\r\n return o.properties.regPrice;\r\n })\r\n )\r\n : this.props.curr +\r\n (Math.min.apply(\r\n Math,\r\n tFData.map(function (o) {\r\n return o.properties.regPrice;\r\n })\r\n ) +\r\n \" - \" +\r\n Math.max.apply(\r\n Math,\r\n tFData.map(function (o) {\r\n return o.properties.regPrice;\r\n })\r\n )),\r\n //old\r\n // StandardRegPrice : Math.max.apply(Math, tFData.map(function(o) { return o.regPrice; })) === Math.min.apply(Math, tFData.map(function(o) { return o.regPrice; })) ? this.props.curr + Math.min.apply(Math, tFData.map(function(o) { return o.regPrice; })) : this.props.curr + (Math.max.apply(Math, tFData.map(function(o) { return o.regPrice; }))+'-'+ this.props.curr + Math.min.apply(Math, tFData.map(function(o) { return o.regPrice; }))),\r\n ValueRegPRice: Math.min.apply(\r\n Math,\r\n tFData.map(function (o) {\r\n return o.properties.regPrice;\r\n })\r\n ),\r\n PremiumOnlinePrice: Math.max.apply(\r\n Math,\r\n tFData.map(function (o) {\r\n return o.properties.onlinePrice;\r\n })\r\n ),\r\n // StandardOnlinePrice:(Math.max.apply(Math, tFData.map(function(o) { return o.onlinePrice; }))+'-'+Math.min.apply(Math, tFData.map(function(o) { return o.onlinePrice; }))),\r\n StandardOnlinePrice:\r\n Math.max.apply(\r\n Math,\r\n tFData.map(function (o) {\r\n return o.properties.onlinePrice;\r\n })\r\n ) ===\r\n Math.min.apply(\r\n Math,\r\n tFData.map(function (o) {\r\n return o.properties.onlinePrice;\r\n })\r\n )\r\n ? this.props.curr +\r\n Math.min.apply(\r\n Math,\r\n tFData.map(function (o) {\r\n return o.properties.onlinePrice;\r\n })\r\n )\r\n : this.props.curr +\r\n (Math.min.apply(\r\n Math,\r\n tFData.map(function (o) {\r\n return o.properties.onlinePrice;\r\n })\r\n ) +\r\n \" - \" +\r\n Math.max.apply(\r\n Math,\r\n tFData.map(function (o) {\r\n return o.properties.onlinePrice;\r\n })\r\n )),\r\n //old\r\n // StandardOnlinePrice: Math.max.apply(Math, tFData.map(function(o) { return o.onlinePrice; })) === Math.min.apply(Math, tFData.map(function(o) { return o.onlinePrice; })) ? this.props.curr+ Math.min.apply(Math, tFData.map(function(o) { return o.onlinePrice; })) : this.props.curr +(Math.max.apply(Math, tFData.map(function(o) { return o.onlinePrice; }))+'-'+this.props.curr + Math.min.apply(Math, tFData.map(function(o) { return o.onlinePrice; }))),\r\n ValueOnlinePRice: Math.min.apply(\r\n Math,\r\n tFData.map(function (o) {\r\n return o.properties.onlinePrice;\r\n })\r\n ),\r\n };\r\n let reStructuredData = { ...tFData[0], properties: mData }\r\n FData.push(reStructuredData);\r\n }\r\n this.setState({ mapData, FData, isLoading: false }, () => this.getBoundingValues(mapData));\r\n })\r\n\r\n .catch((err) => {\r\n this.setState({ isLoading: false });\r\n if (err.response.status === 401) {\r\n localStorage.removeItem(\"accessKey\");\r\n const { from } = this.props.location.state || {\r\n from: { pathname: \"/\" },\r\n };\r\n this.props.history.push(from);\r\n } else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }\r\n\r\n getBoundingValues = (points) => {\r\n if (points.length) {\r\n const paddingLength = window.innerHeight / 3;\r\n const applyToArray = (func, array) => func.apply(Math, array);\r\n const pointsLong = points.map((point) => point.geometry.coordinates[0]);\r\n const pointsLat = points.map((point) => point.geometry.coordinates[1]);\r\n if (!pointsLong.includes(Number(this.props.location.longitude))) pointsLong.push(Number(this.props.location.longitude));\r\n if (!pointsLat.includes(Number(this.props.location.latitude))) pointsLat.push(Number(this.props.location.latitude));\r\n const cornersLongLat = [\r\n [applyToArray(Math.min, pointsLong), applyToArray(Math.min, pointsLat)],\r\n [applyToArray(Math.max, pointsLong), applyToArray(Math.max, pointsLat)],\r\n ];\r\n const viewport = new WebMercatorViewport({\r\n width: window.innerWidth,\r\n height: window.innerHeight,\r\n }).fitBounds(cornersLongLat, {\r\n padding: { top: paddingLength, bottom: paddingLength, left: paddingLength, right: paddingLength },\r\n });\r\n const { longitude, latitude, zoom } = viewport;\r\n this.setState(prevState => {\r\n return {\r\n viewport: {\r\n ...prevState.viewport,\r\n latitude: latitude,\r\n longitude: longitude,\r\n zoom: zoom,\r\n transitionDuration: 100,\r\n transitionInterpolator: new FlyToInterpolator(),\r\n }\r\n }\r\n });\r\n }\r\n };\r\n\r\n onMarkerClose = () => {\r\n this.setState({ showingInfoWindow: false });\r\n };\r\n\r\n componentDidMount() {\r\n // let zoomValue;\r\n // if (this.props.location.searchType === 3) {\r\n // zoomValue = 8;\r\n // } else if (this.props.location.searchType === 2) {\r\n // let zCnt =\r\n // this.props.location.storeZoneCoverage != \"\" &&\r\n // this.props.location.storeZoneCoverage != null\r\n // ? this.props.location.storeZoneCoverage.split(\",\").length - 1\r\n // : 1;\r\n // zoomValue = zCnt > 1 ? 9 : zCnt > 0 ? 10 : 11;\r\n // } else if (this.props.location.searchType === 1) {\r\n // let storeZoneCoverage = this.props.location.storeZoneCoverage.split(\" \");\r\n // zoomValue =\r\n // storeZoneCoverage[0] === \"1\" ||\r\n // storeZoneCoverage[0] === \"2\" ||\r\n // storeZoneCoverage[0] === \"3\"\r\n // ? 13\r\n // : storeZoneCoverage[0] === \"4\" ||\r\n // storeZoneCoverage[0] === \"5\" ||\r\n // storeZoneCoverage[0] === \"6\"\r\n // ? 12\r\n // : storeZoneCoverage[0] === \"6\" || storeZoneCoverage[0] === \"7\"\r\n // ? 11\r\n // : storeZoneCoverage[0] === \"8\" ||\r\n // storeZoneCoverage[0] === \"9\" ||\r\n // storeZoneCoverage[0] === \"10\"\r\n // ? 10\r\n // : 6;\r\n // }\r\n // this.setState(prevState => ({\r\n // isLoading: true,\r\n // viewport: {\r\n // ...prevState.viewport,\r\n // zoom: 10\r\n // }\r\n // }));\r\n this.mapView();\r\n }\r\n downLoadPDF() {\r\n // this.setState({ isLoading: true });\r\n var currentDate = moment(new Date()).format(\"DD-MMM-YYYY\");\r\n let usId = parseInt(this.props.abc);\r\n let pta = parseInt(this.props.bca);\r\n let lat = this.props.location.latitude;\r\n let lng = this.props.location.longitude;\r\n let accessKey = localStorage.getItem(\"SecretKey\");\r\n var timestamp =\r\n new Date().getDate() +\r\n \"\" +\r\n new Date().getMonth() +\r\n \"\" +\r\n new Date().getFullYear() +\r\n \"\" +\r\n new Date().getTime();\r\n //construct filename for pdf report.\r\n var fileName = usId + \"MapView\" + \"_\" + timestamp + \".pdf\";\r\n var stoName =\r\n this.props.storeDetails &&\r\n this.props.storeDetails.storeName &&\r\n this.props.storeDetails.storeName !== null &&\r\n this.props.storeDetails.storeName !== \"\" &&\r\n this.props.storeDetails.storeName !== undefined\r\n ? this.props.storeDetails.storeName\r\n : \"Your Store\";\r\n var fileNamePdf = stoName + \"_\" + \"MapView\" + \"_\" + currentDate + \".pdf\";\r\n this.setState({\r\n snackClr: \"snack-info\",\r\n snackOpen: true,\r\n snackMSg:\r\n \"Your download is being processed. The \" +\r\n fileNamePdf +\r\n \" file will download automatically to your browser when ready and Please do not close or reload the pages until download completes. We recommend you check your Downloads folder if you don’t see it in your browser.\",\r\n });\r\n let ComponentName = 11;\r\n const Input = {\r\n RegionID: CONFIG.RegionId,\r\n URL:\r\n CONFIG.OPTZ_URL +\r\n \"render-pdf/\" +\r\n accessKey +\r\n \"/\" +\r\n ComponentName +\r\n \"/0/\" +\r\n usId +\r\n \"/\" +\r\n pta +\r\n \"/\" +\r\n lat +\r\n \"/\" +\r\n lng +\r\n \"/\",\r\n FileName: fileName,\r\n };\r\n // axios.post(CONFIG.API_URL + 'dashboard/generatepdfbypage', Input)\r\n axios({\r\n url: CONFIG.API_URL + \"dashboard/generatepdfbypage\",\r\n method: \"post\",\r\n responseType: \"blob\",\r\n data: Input,\r\n })\r\n .then((response) => {\r\n const blob = new Blob([response.data], { type: 'application/octet-stream' });\r\n const link = document.createElement('a');\r\n link.href = window.URL.createObjectURL(blob);\r\n link.download = fileNamePdf;\r\n link.dispatchEvent(\r\n new MouseEvent('click', {\r\n bubbles: true,\r\n cancelable: true,\r\n view: window\r\n })\r\n );\r\n setTimeout(() => {\r\n // For Firefox it is necessary to delay revoking the ObjectURL\r\n window.URL.revokeObjectURL(link.href);\r\n link.remove();\r\n }, 3000);\r\n this.setState({ isLoading: false });\r\n })\r\n .catch((err) => {\r\n this.setState({ isLoading: false });\r\n });\r\n }\r\n snackHandleclose = (event, reason) => {\r\n if (reason === \"clickaway\") {\r\n return;\r\n }\r\n this.setState({ snackOpen: false });\r\n };\r\n handleViewportChange = (viewport) => {\r\n this.setState({ viewport });\r\n }\r\n\r\n onLoadHomeMarker = () => {\r\n setTimeout(() => {\r\n let mapbox = this.mapRef.current.getMap();\r\n mapbox.loadImage(homeIcon, (error, image) => {\r\n if (image) mapbox.addImage('homeMarker', image)\r\n else if (error) throw error;\r\n });\r\n }, 500);\r\n }\r\n\r\n changeMapView = (type) => {\r\n this.setState({ satelliteView: type }, () => this.onLoadHomeMarker());\r\n }\r\n render() {\r\n const {\r\n mapData,\r\n isLoading,\r\n snackOpen,\r\n snackMSg,\r\n viewport,\r\n popupInfoLatlng,\r\n satelliteView\r\n } = this.state;\r\n const defaultProps = {\r\n helpTitle: \"Map View\",\r\n helpContent:\r\n \"

The stores advertising this unit are shown on a map. The stores identified in blue are the stores currently advertising rates online, those in black are stores in this Market which currently do not advertised online. Hover over any of the store pinpoints to view some details on that store.

*Your store prices are included in the calculations.

\",\r\n };\r\n return (\r\n
\r\n {isLoading ? (\r\n
\r\n
\r\n
\r\n ) : (\r\n \"\"\r\n )}\r\n \r\n {/* {isLoading ?
: ''} */}\r\n
\r\n \r\n
\r\n \r\n \r\n PDF Download\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n {/* \r\n \"icon\"\r\n */}\r\n {/* {this.props.location.longitude && this.props.location.latitude && */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.state.showingInfoWindow &&\r\n ( this.onMarkerClose()}\r\n {...popupInfoLatlng}\r\n className=\"mapbox-custom-popup\"\r\n >\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n {this.state.storeName}\r\n \r\n \r\n

\r\n {this.state.address},
\r\n {this.state.address1}\r\n

\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n Walk-in Rate:\r\n {this.state.regPrice}
Online Rate:{this.state.onlinePrice}
Unit Type:\r\n {this.state.size}\r\n
\r\n
\r\n )}\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
Your Store\r\n
\r\n
\r\n
Competitor\r\n
\r\n
\r\n
Rate Data Unavailable\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n ,\r\n ]}\r\n message={{snackMSg}}\r\n />\r\n
\r\n );\r\n }\r\n}\r\n","import React, { Component, Fragment } from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport { Row, Col, Button } from \"reactstrap\";\r\n//import './MapViews.css';\r\n//import { Gmaps, Marker, InfoWindow } from 'react-gmaps';\r\nimport Snackbar from \"@material-ui/core/Snackbar\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport axios from \"axios\";\r\nimport { MarketProfile } from \"../MarketProfile\";\r\nimport { CONFIG } from \"../../utils/config\";\r\nimport orangepin from \"./../../Assets/Images/orange-pin.png\";\r\nimport blackpin from \"./../../Assets/Images/black-pin.png\";\r\nimport bluepin from \"./../../Assets/Images/blue-pin.png\";\r\nimport orangehome from \"./../../Assets/Images/orange-home.png\";\r\nimport { HelpTextPopup } from \"./../HelpTextPopup/index\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { faFilePdf } from \"@fortawesome/free-solid-svg-icons\";\r\nimport {\r\n withScriptjs,\r\n withGoogleMap,\r\n GoogleMap,\r\n Marker,\r\n InfoWindow,\r\n} from \"react-google-maps\";\r\nimport moment from \"moment\";\r\n//const params = { v: '3.exp', key: 'AIzaSyDaYQZ0es5K-kLgDuZuTqRHKiTDENEMxxQ' };\r\n\r\nexport default class MapViewsGmap extends React.Component {\r\n static defaultProps = {\r\n googleMapURL:\r\n \"https://maps.googleapis.com/maps/api/js?key=\" +\r\n CONFIG.GoogleMapsApiKey +\r\n \"\",\r\n };\r\n constructor(props) {\r\n super(props);\r\n this.child = React.createRef();\r\n this.state = {\r\n mapData: [],\r\n showingInfoWindow: false,\r\n storeId: \"\",\r\n searchId: \"\",\r\n test: \"\",\r\n storeName: \"\",\r\n storeid: 0,\r\n isLoading: false,\r\n snackOpen: false,\r\n snackMSg: \"\",\r\n snackClr: \"\",\r\n zoomValue: 6,\r\n };\r\n this.getParams = this.getParams.bind(this);\r\n this.mapRef = React.createRef();\r\n }\r\n CMap = withScriptjs(\r\n withGoogleMap((props) => (\r\n 0 &&\r\n this.props.centerPoint[0].latitude != null\r\n ? this.props.centerPoint[0].latitude\r\n : this.props.location.latitude\r\n ),\r\n lng: parseFloat(\r\n this.props.centerPoint &&\r\n this.props.centerPoint.length > 0 &&\r\n this.props.centerPoint[0].longitude != null\r\n ? this.props.centerPoint[0].longitude\r\n : this.props.location.longitude\r\n ),\r\n }}\r\n defaultOptions={{\r\n zoomControl: true,\r\n fullscreenControl: false,\r\n streetViewControl: false,\r\n disableDefaultUI: false,\r\n mapTypeControl: true,\r\n }}\r\n >\r\n {props.children}\r\n \r\n ))\r\n );\r\n\r\n getParams() {\r\n let strName = this.state.storeName;\r\n let strID = this.state.storeid;\r\n if (strName && strID) {\r\n this.child.current.toggleModal(strName, strID);\r\n }\r\n }\r\n\r\n onMarkerClick = (name, address, id, lat, lng, size) => {\r\n let sam = [],\r\n uniqsize = [];\r\n this.state.mapData.map((test) => {\r\n if (test.storeId === id) {\r\n sam.push(test.size);\r\n }\r\n });\r\n const uniqueNames = Array.from(new Set(sam));\r\n console.log(uniqueNames, \"uniqsize\");\r\n var units = uniqueNames.join(\", \");\r\n var add = address;\r\n var last = add.lastIndexOf(\",\");\r\n var s1 = add.substring(0, last);\r\n var s2 = add.substring(last + 1);\r\n var storedata = this.state.FData;\r\n var tFData = storedata.filter((a) => a.StoreID == id);\r\n var StandardOnlinePrice = tFData[0].StandardOnlinePrice;\r\n var StandardRegPrice = tFData[0].StandardRegPrice;\r\n //setTimeout(() => {\r\n this.setState({\r\n storeName: name,\r\n lat: lat,\r\n lng: lng,\r\n address: address ? s1 : \"\",\r\n address1: address ? s2 : \"\",\r\n regPrice:\r\n StandardRegPrice != this.props.curr + 0 ? StandardRegPrice : \"N/A\",\r\n onlinePrice:\r\n StandardOnlinePrice != this.props.curr + 0\r\n ? StandardOnlinePrice\r\n : \"N/A\",\r\n size: size ? units : \"N/A\",\r\n storeid: id,\r\n showingInfoWindow: true,\r\n });\r\n // },500)\r\n };\r\n componentWillReceiveProps(nextProps) {\r\n if (nextProps.bca != this.props.bca) {\r\n this.state.mapData = [];\r\n this.setState(\r\n {\r\n isLoading: true,\r\n showingInfoWindow: false,\r\n bca: nextProps.bca,\r\n abc: nextProps.abc,\r\n },\r\n () => {\r\n this.componentDidMount();\r\n }\r\n );\r\n }\r\n }\r\n\r\n setMapFitBounds = (mapData) => {\r\n let bounds = new window.google.maps.LatLngBounds();\r\n for (let i = 0; i < mapData.length; i++) {\r\n let loc = new window.google.maps.LatLng(mapData[i].latitude, mapData[i].longitude);\r\n bounds.extend(loc);\r\n }\r\n let homeLoc = new window.google.maps.LatLng(this.props.location.latitude, this.props.location.longitude);\r\n bounds.extend(homeLoc);\r\n this.mapRef.current.fitBounds(bounds);\r\n }\r\n\r\n mapView() {\r\n // const data=\r\n // {\r\n // \"UserStoreID\":129229,\r\n // \"SearchID\":965256\r\n // }\r\n localStorage.setItem(\"StId\", this.props.abc);\r\n const data = {\r\n UserStoreID: this.props.abc,\r\n SearchID: this.props.bca,\r\n RegionID: CONFIG.RegionId,\r\n IsMapBox: CONFIG.IsMapbox\r\n };\r\n let token = localStorage.getItem(\"accessKey\");\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = \"Bearer \" + token;\r\n }\r\n\r\n axios\r\n .post(CONFIG.API_URL + \"unit/unitlevelmapview\", data)\r\n .then((res) => {\r\n let mapData = res.data.data.unitLevelDatas;\r\n if (mapData.length) this.setMapFitBounds(mapData);\r\n let uniquestore = [...new Set(mapData.map((item) => item.storeId))];\r\n var FData = [];\r\n for (var t = 0; t < uniquestore.length; t++) {\r\n var tFData = mapData.filter((a) => a.storeId == uniquestore[t]);\r\n var mData = {\r\n StoreID: uniquestore[t],\r\n StoreAddress: tFData[0].address,\r\n PremiumRegPrice: Math.max.apply(\r\n Math,\r\n tFData.map(function (o) {\r\n return o.regPrice;\r\n })\r\n ),\r\n // StandardRegPrice:(Math.max.apply(Math, tFData.map(function(o) { return o.regPrice; }))+'-'+Math.min.apply(Math, tFData.map(function(o) { return o.regPrice; }))),\r\n StandardRegPrice:\r\n Math.max.apply(\r\n Math,\r\n tFData.map(function (o) {\r\n return o.regPrice;\r\n })\r\n ) ===\r\n Math.min.apply(\r\n Math,\r\n tFData.map(function (o) {\r\n return o.regPrice;\r\n })\r\n )\r\n ? this.props.curr +\r\n Math.min.apply(\r\n Math,\r\n tFData.map(function (o) {\r\n return o.regPrice;\r\n })\r\n )\r\n : this.props.curr +\r\n (Math.min.apply(\r\n Math,\r\n tFData.map(function (o) {\r\n return o.regPrice;\r\n })\r\n ) +\r\n \" - \" +\r\n Math.max.apply(\r\n Math,\r\n tFData.map(function (o) {\r\n return o.regPrice;\r\n })\r\n )),\r\n //old\r\n // StandardRegPrice : Math.max.apply(Math, tFData.map(function(o) { return o.regPrice; })) === Math.min.apply(Math, tFData.map(function(o) { return o.regPrice; })) ? this.props.curr + Math.min.apply(Math, tFData.map(function(o) { return o.regPrice; })) : this.props.curr + (Math.max.apply(Math, tFData.map(function(o) { return o.regPrice; }))+'-'+ this.props.curr + Math.min.apply(Math, tFData.map(function(o) { return o.regPrice; }))),\r\n ValueRegPRice: Math.min.apply(\r\n Math,\r\n tFData.map(function (o) {\r\n return o.regPrice;\r\n })\r\n ),\r\n PremiumOnlinePrice: Math.max.apply(\r\n Math,\r\n tFData.map(function (o) {\r\n return o.onlinePrice;\r\n })\r\n ),\r\n // StandardOnlinePrice:(Math.max.apply(Math, tFData.map(function(o) { return o.onlinePrice; }))+'-'+Math.min.apply(Math, tFData.map(function(o) { return o.onlinePrice; }))),\r\n StandardOnlinePrice:\r\n Math.max.apply(\r\n Math,\r\n tFData.map(function (o) {\r\n return o.onlinePrice;\r\n })\r\n ) ===\r\n Math.min.apply(\r\n Math,\r\n tFData.map(function (o) {\r\n return o.onlinePrice;\r\n })\r\n )\r\n ? this.props.curr +\r\n Math.min.apply(\r\n Math,\r\n tFData.map(function (o) {\r\n return o.onlinePrice;\r\n })\r\n )\r\n : this.props.curr +\r\n (Math.min.apply(\r\n Math,\r\n tFData.map(function (o) {\r\n return o.onlinePrice;\r\n })\r\n ) +\r\n \" - \" +\r\n Math.max.apply(\r\n Math,\r\n tFData.map(function (o) {\r\n return o.onlinePrice;\r\n })\r\n )),\r\n //old\r\n // StandardOnlinePrice: Math.max.apply(Math, tFData.map(function(o) { return o.onlinePrice; })) === Math.min.apply(Math, tFData.map(function(o) { return o.onlinePrice; })) ? this.props.curr+ Math.min.apply(Math, tFData.map(function(o) { return o.onlinePrice; })) : this.props.curr +(Math.max.apply(Math, tFData.map(function(o) { return o.onlinePrice; }))+'-'+this.props.curr + Math.min.apply(Math, tFData.map(function(o) { return o.onlinePrice; }))),\r\n ValueOnlinePRice: Math.min.apply(\r\n Math,\r\n tFData.map(function (o) {\r\n return o.onlinePrice;\r\n })\r\n ),\r\n };\r\n FData.push(mData);\r\n }\r\n //let lat= mapData != '' ? mapData[0].latitude:0;\r\n //let lng= mapData != '' ? mapData[0].longitude:0;\r\n this.setState({ mapData, FData, isLoading: false });\r\n })\r\n\r\n .catch((err) => {\r\n this.setState({ isLoading: false });\r\n if (err.response.status === 401) {\r\n localStorage.removeItem(\"accessKey\");\r\n const { from } = this.props.location.state || {\r\n from: { pathname: \"/\" },\r\n };\r\n this.props.history.push(from);\r\n } else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }\r\n\r\n onMarkerClose = () => {\r\n this.setState({ showingInfoWindow: false });\r\n };\r\n\r\n componentDidMount() {\r\n let zoomValue;\r\n if (this.props.location.searchType === 3) {\r\n zoomValue = 10;\r\n } else if (this.props.location.searchType === 2) {\r\n let zCnt =\r\n this.props.location.storeZoneCoverage != \"\" &&\r\n this.props.location.storeZoneCoverage != null\r\n ? this.props.location.storeZoneCoverage.split(\",\").length - 1\r\n : 1;\r\n zoomValue = zCnt > 1 ? 9 : zCnt > 0 ? 10 : 12;\r\n } else if (this.props.location.searchType === 1) {\r\n let storeZoneCoverage = this.props.location.storeZoneCoverage.split(\" \");\r\n zoomValue =\r\n storeZoneCoverage[0] === \"1\" ||\r\n storeZoneCoverage[0] === \"2\" ||\r\n storeZoneCoverage[0] === \"3\"\r\n ? 13\r\n : storeZoneCoverage[0] === \"4\" ||\r\n storeZoneCoverage[0] === \"5\" ||\r\n storeZoneCoverage[0] === \"6\"\r\n ? 12\r\n : storeZoneCoverage[0] === \"6\" || storeZoneCoverage[0] === \"7\"\r\n ? 11\r\n : storeZoneCoverage[0] === \"8\" ||\r\n storeZoneCoverage[0] === \"9\" ||\r\n storeZoneCoverage[0] === \"10\"\r\n ? 10\r\n : 6;\r\n }\r\n this.setState({ isLoading: true, zoomValue });\r\n this.mapView();\r\n }\r\n downLoadPDF() {\r\n // this.setState({ isLoading: true });\r\n var currentDate = moment(new Date()).format(\"DD-MMM-YYYY\");\r\n let usId = parseInt(this.props.abc);\r\n let pta = parseInt(this.props.bca);\r\n let lat = this.props.location.latitude;\r\n let lng = this.props.location.longitude;\r\n let accessKey = localStorage.getItem(\"SecretKey\");\r\n var timestamp =\r\n new Date().getDate() +\r\n \"\" +\r\n new Date().getMonth() +\r\n \"\" +\r\n new Date().getFullYear() +\r\n \"\" +\r\n new Date().getTime();\r\n //construct filename for pdf report.\r\n var fileName = usId + \"MapView\" + \"_\" + timestamp + \".pdf\";\r\n var stoName =\r\n this.props.storeDetails &&\r\n this.props.storeDetails.storeName &&\r\n this.props.storeDetails.storeName !== null &&\r\n this.props.storeDetails.storeName !== \"\" &&\r\n this.props.storeDetails.storeName !== undefined\r\n ? this.props.storeDetails.storeName\r\n : \"Your Store\";\r\n var fileNamePdf = stoName + \"_\" + \"MapView\" + \"_\" + currentDate + \".pdf\";\r\n this.setState({\r\n snackClr: \"snack-info\",\r\n snackOpen: true,\r\n snackMSg:\r\n \"Your download is being processed. The \" +\r\n fileNamePdf +\r\n \" file will download automatically to your browser when ready and Please do not close or reload the pages until download completes. We recommend you check your Downloads folder if you don’t see it in your browser.\",\r\n });\r\n let ComponentName = 11;\r\n const Input = {\r\n RegionID: CONFIG.RegionId,\r\n URL:\r\n CONFIG.OPTZ_URL +\r\n \"render-pdf/\" +\r\n accessKey +\r\n \"/\" +\r\n ComponentName +\r\n \"/0/\" +\r\n usId +\r\n \"/\" +\r\n pta +\r\n \"/\" +\r\n lat +\r\n \"/\" +\r\n lng +\r\n \"/\",\r\n FileName: fileName,\r\n };\r\n // axios.post(CONFIG.API_URL + 'dashboard/generatepdfbypage', Input)\r\n axios({\r\n url: CONFIG.API_URL + \"dashboard/generatepdfbypage\",\r\n method: \"post\",\r\n responseType: \"blob\",\r\n data: Input,\r\n })\r\n .then((response) => {\r\n const blob = new Blob([response.data], { type: 'application/octet-stream' });\r\n const link = document.createElement('a');\r\n link.href = window.URL.createObjectURL(blob);\r\n link.download = fileNamePdf;\r\n link.dispatchEvent(\r\n new MouseEvent('click', {\r\n bubbles: true,\r\n cancelable: true,\r\n view: window\r\n })\r\n );\r\n setTimeout(() => {\r\n // For Firefox it is necessary to delay revoking the ObjectURL\r\n window.URL.revokeObjectURL(link.href);\r\n link.remove();\r\n }, 3000);\r\n this.setState({ isLoading: false });\r\n })\r\n .catch((err) => {\r\n this.setState({ isLoading: false });\r\n });\r\n }\r\n snackHandleclose = (event, reason) => {\r\n if (reason === \"clickaway\") {\r\n return;\r\n }\r\n this.setState({ snackOpen: false });\r\n };\r\n render() {\r\n const {\r\n mapData,\r\n locationInfoData,\r\n FData,\r\n isLoading,\r\n snackOpen,\r\n snackMSg,\r\n } = this.state;\r\n const defaultProps = {\r\n helpTitle: \"Map View\",\r\n helpContent:\r\n \"

The stores advertising this unit are shown on a map. The stores identified in blue are the stores currently advertising rates online, those in black are stores in this Market which currently do not advertised online. Hover over any of the store pinpoints to view some details on that store.

*Your store prices are included in the calculations.

\",\r\n };\r\n return (\r\n
\r\n {isLoading ? (\r\n
\r\n
\r\n
\r\n ) : (\r\n \"\"\r\n )}\r\n \r\n {/* {isLoading ?
: ''} */}\r\n
\r\n \r\n
\r\n \r\n \r\n PDF Download\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n }\r\n containerElement={
}\r\n mapElement={
}\r\n >\r\n \r\n {mapData\r\n ? mapData.map((marker) => {\r\n return (\r\n \r\n this.onMarkerClick(\r\n marker.storeName,\r\n marker.address,\r\n marker.storeId,\r\n marker.latitude,\r\n marker.longitude,\r\n marker.size\r\n )\r\n }\r\n >\r\n {this.state.showingInfoWindow &&\r\n this.state.storeid === marker.storeId ? (\r\n this.onMarkerClose()}\r\n visible={this.state.showingInfoWindow}\r\n >\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n {this.state.storeName}\r\n \r\n \r\n

\r\n {this.state.address},
\r\n {this.state.address1}\r\n

\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n Walk-in Rate:\r\n {this.state.regPrice}
Online Rate:{this.state.onlinePrice}
Unit Type:\r\n {this.state.size}\r\n
\r\n
\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n \r\n );\r\n })\r\n : \"\"}\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
Your Store\r\n
\r\n
\r\n
Competitor\r\n
\r\n
\r\n
Rate Data Unavailable\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n ,\r\n ]}\r\n message={{snackMSg}}\r\n />\r\n
\r\n );\r\n }\r\n}","import { DataCell } from \"fixed-data-table-2\";\r\nimport React from \"react\";\r\nimport { CONFIG } from \"../../utils/config\";\r\nimport ReactTooltip from \"react-tooltip\";\r\n\r\nclass CollapseCell extends React.PureComponent {\r\n render() {\r\n const {\r\n data,\r\n rowIndex,\r\n columnKey,\r\n collapsedRows,\r\n callback,\r\n ...props\r\n } = this.props;\r\n return (\r\n \r\n callback(rowIndex)}>\r\n {collapsedRows.has(rowIndex) ? \"\\u25BC\" : \"\\u25BA\"}\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nclass TextCell extends React.PureComponent {\r\n render() {\r\n const { data, rowIndex, columnKey, ...props } = this.props;\r\n return (\r\n {data.getObjectAt(rowIndex)[columnKey]}\r\n );\r\n }\r\n}\r\n\r\nclass LinkCell extends React.PureComponent {\r\n priceConversion(tot) {\r\n if (tot !== \"\") {\r\n let checkDigit = tot.toString().split(\".\");\r\n let ret = \"\";\r\n let i = 0;\r\n if (tot.toString().indexOf(\".\") == -1) {\r\n tot = tot;\r\n } else {\r\n if (checkDigit == \"00\") {\r\n tot = checkDigit.trim();\r\n } else {\r\n if (checkDigit.length === 2) {\r\n ret += checkDigit[0] + \".\";\r\n for (i = 0; i < checkDigit.length; i++) {\r\n if (i >= checkDigit[1].length) ret += \"0\";\r\n else ret += checkDigit[1][i];\r\n }\r\n } else if (checkDigit.length === 1) {\r\n ret += checkDigit[0] + \".\";\r\n for (i = 0; i < checkDigit.length; i++) {\r\n ret += \"0\";\r\n }\r\n }\r\n ret = ret.toString();\r\n tot = ret;\r\n }\r\n }\r\n }\r\n return tot;\r\n }\r\n render() {\r\n const { data, rowIndex, columnKey, ...props } = this.props;\r\n let price =\r\n data[rowIndex][columnKey] !== \"\" && data[rowIndex][columnKey] !== null\r\n ? parseFloat(data[rowIndex][columnKey]).toFixed(2) === \"0.00\"\r\n ? \"free\"\r\n : this.props.currency + this.priceConversion(data[rowIndex][columnKey])\r\n : \"\";\r\n return {price};\r\n }\r\n}\r\n\r\nclass CalEffPrice extends React.PureComponent {\r\n //price conversion\r\n priceConversion(tot) {\r\n if (tot !== \"\") {\r\n let checkDigit = tot.toString().split(\".\");\r\n let ret = \"\";\r\n let i = 0;\r\n if (tot.toString().indexOf(\".\") == -1) {\r\n tot = tot;\r\n } else {\r\n if (checkDigit == \"00\") {\r\n tot = checkDigit.trim();\r\n } else {\r\n if (checkDigit.length === 2) {\r\n ret += checkDigit[0] + \".\";\r\n for (i = 0; i < checkDigit.length; i++) {\r\n if (i >= checkDigit[1].length) ret += \"0\";\r\n else ret += checkDigit[1][i];\r\n }\r\n } else if (checkDigit.length === 1) {\r\n ret += checkDigit[0] + \".\";\r\n for (i = 0; i < checkDigit.length; i++) {\r\n ret += \"0\";\r\n }\r\n }\r\n ret = ret.toString();\r\n tot = ret;\r\n }\r\n }\r\n }\r\n return tot;\r\n }\r\n render() {\r\n const { data, rowIndex, drpDownSelValue, ...props } = this.props;\r\n let m1 =\r\n parseFloat(data[rowIndex].m1).toFixed(2) !== \"0.00\"\r\n ? parseFloat(data[rowIndex].m1)\r\n : 0;\r\n let m2 =\r\n parseFloat(data[rowIndex].m2).toFixed(2) !== \"0.00\"\r\n ? parseFloat(data[rowIndex].m2)\r\n : 0;\r\n let m3 =\r\n parseFloat(data[rowIndex].m3).toFixed(2) !== \"0.00\"\r\n ? parseFloat(data[rowIndex].m3)\r\n : 0;\r\n let m4 =\r\n parseFloat(data[rowIndex].m4).toFixed(2) !== \"0.00\"\r\n ? parseFloat(data[rowIndex].m4)\r\n : 0;\r\n let m5 =\r\n parseFloat(data[rowIndex].m5).toFixed(2) !== \"0.00\"\r\n ? parseFloat(data[rowIndex].m5)\r\n : 0;\r\n let m6 =\r\n parseFloat(data[rowIndex].m6).toFixed(2) !== \"0.00\"\r\n ? parseFloat(data[rowIndex].m6)\r\n : 0;\r\n let m7 =\r\n parseFloat(data[rowIndex].m7).toFixed(2) !== \"0.00\"\r\n ? parseFloat(data[rowIndex].m7)\r\n : 0;\r\n let m8 =\r\n parseFloat(data[rowIndex].m8).toFixed(2) !== \"0.00\"\r\n ? parseFloat(data[rowIndex].m8)\r\n : 0;\r\n let m9 =\r\n parseFloat(data[rowIndex].m9).toFixed(2) !== \"0.00\"\r\n ? parseFloat(data[rowIndex].m9)\r\n : 0;\r\n let m10 =\r\n parseFloat(data[rowIndex].m10).toFixed(2) !== \"0.00\"\r\n ? parseFloat(data[rowIndex].m10)\r\n : 0;\r\n let m11 =\r\n parseFloat(data[rowIndex].m11).toFixed(2) !== \"0.00\"\r\n ? parseFloat(data[rowIndex].m11)\r\n : 0;\r\n let m12 =\r\n parseFloat(data[rowIndex].m12).toFixed(2) !== \"0.00\"\r\n ? parseFloat(data[rowIndex].m12)\r\n : 0;\r\n let avgM3 = (m1 + m2 + m3) / 3;\r\n let avgM6 = (m1 + m2 + m3 + m4 + m5 + m6) / 6;\r\n let avgM9 = (m1 + m2 + m3 + m4 + m5 + m6 + m7 + m8 + m9) / 9;\r\n let avgM12 =\r\n (m1 + m2 + m3 + m4 + m5 + m6 + m7 + m8 + m9 + m10 + m11 + m12) / 12;\r\n let priceCal =\r\n drpDownSelValue === 3\r\n ? avgM3\r\n : drpDownSelValue === 6\r\n ? avgM6\r\n : drpDownSelValue === 9\r\n ? avgM9\r\n : avgM12;\r\n let averagePrice =\r\n parseFloat(priceCal).toFixed(2) === \"0.00\"\r\n ? priceCal\r\n : this.priceConversion(priceCal);\r\n return (\r\n \r\n {averagePrice !== \"\" && averagePrice !== null\r\n ? parseFloat(averagePrice).toFixed(2) === \"0.00\"\r\n ? \"free\"\r\n : this.props.currency + averagePrice\r\n : \"\"}\r\n \r\n );\r\n }\r\n}\r\n\r\nclass CalAdvPrice extends React.PureComponent {\r\n //price conversion\r\n advPriceConversion(tot) {\r\n if (tot !== \"\") {\r\n let checkDigit = tot.toString().split(\".\");\r\n let ret = \"\";\r\n let i = 0;\r\n if (tot.toString().indexOf(\".\") == -1) {\r\n tot = tot;\r\n } else {\r\n if (checkDigit == \"00\") {\r\n tot = checkDigit.trim();\r\n } else {\r\n if (checkDigit.length === 2) {\r\n ret += checkDigit[0] + \".\";\r\n for (i = 0; i < checkDigit.length; i++) {\r\n if (i >= checkDigit[1].length) ret += \"0\";\r\n else ret += checkDigit[1][i];\r\n }\r\n } else if (checkDigit.length === 1) {\r\n ret += checkDigit[0] + \".\";\r\n for (i = 0; i < checkDigit.length; i++) {\r\n ret += \"0\";\r\n }\r\n }\r\n ret = ret.toString();\r\n tot = ret;\r\n }\r\n }\r\n }\r\n return tot;\r\n }\r\n render() {\r\n const { data, rowIndex, ...props } = this.props;\r\n let advPrice = data[rowIndex].advertisedPrice;\r\n let advertisedPrice = advPrice !== \"\" && advPrice !== null\r\n ? parseFloat(advPrice).toFixed(2) === \"0.00\"\r\n ? \"0.00\"\r\n : this.props.currency + this.advPriceConversion(advPrice)\r\n : \"\";\r\n return (\r\n \r\n {advertisedPrice}\r\n \r\n );\r\n }\r\n}\r\n\r\nclass PendingCell extends React.PureComponent {\r\n render() {\r\n const { data, rowIndex, columnKey, dataVersion, ...props } = this.props;\r\n const rowObject = data.getObjectAt(rowIndex);\r\n return (\r\n \r\n {rowObject ? rowObject[columnKey] : \"pending\"}\r\n \r\n );\r\n }\r\n}\r\nconst PagedCell = ({ data, ...props }) => {\r\n const dataVersion = data.getDataVersion();\r\n return (\r\n \r\n );\r\n};\r\n\r\nclass RemovableHeaderCell extends React.PureComponent {\r\n render() {\r\n const {\r\n data,\r\n rowIndex,\r\n columnKey,\r\n callback,\r\n children,\r\n ...props\r\n } = this.props;\r\n return {children};\r\n }\r\n}\r\n\r\nclass TooltipCell extends React.PureComponent {\r\n render() {\r\n const { data, rowIndex, columnKey, ...props } = this.props;\r\n const value =\r\n data[rowIndex][columnKey] !== null && data[rowIndex][columnKey] !== \"\"\r\n ? data[rowIndex][columnKey].replace(/~/g, \"
\")\r\n : \"No Special\";\r\n return (\r\n {\r\n ReactTooltip.show();\r\n }}\r\n onMouseLeave={() => {\r\n ReactTooltip.hide();\r\n }}\r\n >\r\n
{value}
\r\n \r\n );\r\n }\r\n}\r\n\r\nexport {\r\n CollapseCell,\r\n LinkCell,\r\n PagedCell,\r\n RemovableHeaderCell,\r\n TextCell,\r\n TooltipCell,\r\n CalEffPrice,\r\n CalAdvPrice\r\n};\r\n","import { LinkCell, CalEffPrice, CalAdvPrice} from \"./cells\";\r\nimport { Table, Column, DataCell, Cell } from \"fixed-data-table-2\";\r\nimport React from \"react\";\r\nimport \"./EffectiveRateCal.css\";\r\nimport \"fixed-data-table-2/dist/fixed-data-table.css\";\r\nimport { CONFIG } from \"../../utils/config\";\r\nlet columnTitles = {\r\n storeName: \"Store Name\",\r\n priceOptionName: \"Price Option \",\r\n floorType: \"Floor\",\r\n advertisedPrice: \"Advertised Price\",\r\n promotion: \"Promotion\",\r\n m1: \"1st month\",\r\n m2: \"2nd month\",\r\n m3: \"3rd month\",\r\n m4: \"4th month\",\r\n m5: \"5th month\",\r\n m6: \"6th month\",\r\n m7: \"7th month\",\r\n m8: \"8th month\",\r\n m9: \"9th month\",\r\n m10: \"10th month\",\r\n m11: \"11th month\",\r\n m12: \"12th month\",\r\n effectiveRate: \"Effective Rate\",\r\n};\r\n\r\n\r\nclass EffectiveRateCal extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n dataList: [],\r\n columnOrder: Object.keys(columnTitles),\r\n columnOrder1: Object.keys(columnTitles),\r\n drpDownSel: this.props.drpDownSel,\r\n collapsedRows: new Set(),\r\n scrollToRow: null,\r\n gridWidth: window.innerWidth - 290,\r\n currency:this.props.currency,\r\n };\r\n this._handleColumnHide = this._handleColumnHide.bind(this);\r\n this.rowHeightGetter = this.rowHeightGetter.bind(this);\r\n }\r\n\r\n rowHeightGetter(index) {\r\n var nHeight = 50,\r\n oRow = this.state.dataList[index];\r\n nHeight += (oRow.items.length - 1) * 15;\r\n\r\n return nHeight;\r\n }\r\n\r\n _handleColumnHide(columnKey) {\r\n let newColumnOrder = this.state.columnOrder1.filter((x) => {\r\n return columnKey === 3\r\n ? x !== \"m4\" &&\r\n x !== \"m5\" &&\r\n x !== \"m6\" &&\r\n x !== \"m7\" &&\r\n x !== \"m8\" &&\r\n x !== \"m9\" &&\r\n x !== \"m10\" &&\r\n x !== \"m11\" &&\r\n x !== \"m12\"\r\n : columnKey === 6\r\n ? x !== \"m7\" &&\r\n x !== \"m8\" &&\r\n x !== \"m9\" &&\r\n x !== \"m10\" &&\r\n x !== \"m11\" &&\r\n x !== \"m12\"\r\n : columnKey === 9\r\n ? x !== \"m10\" && x !== \"m11\" && x !== \"m12\"\r\n : x;\r\n });\r\n this.setState({\r\n columnOrder: newColumnOrder,drpDownSel: columnKey,\r\n });\r\n }\r\n\r\n\r\n //price conversion\r\n priceConversion(tot) {\r\n if (tot !== \"\") {\r\n let checkDigit = tot.toString().split(\".\");\r\n let ret = \"\";\r\n let i = 0;\r\n if (tot.toString().indexOf(\".\") == -1) {\r\n tot = tot;\r\n } else {\r\n if (checkDigit == \"00\") {\r\n tot = checkDigit.trim();\r\n } else {\r\n if (checkDigit.length === 2) {\r\n ret += checkDigit[0] + \".\";\r\n for (i = 0; i < checkDigit.length; i++) {\r\n if (i >= checkDigit[1].length) ret += \"0\";\r\n else ret += checkDigit[1][i];\r\n }\r\n } else if (checkDigit.length === 1) {\r\n ret += checkDigit[0] + \".\";\r\n for (i = 0; i < checkDigit.length; i++) {\r\n ret += \"0\";\r\n }\r\n }\r\n ret = ret.toString();\r\n tot = ret;\r\n }\r\n }\r\n }\r\n return tot;\r\n }\r\n\r\n updateDimensions = () => {\r\n this.setState({ gridWidth: window.innerWidth - 290});\r\n };\r\n componentDidMount() {\r\n window.addEventListener('resize', this.updateDimensions);\r\n }\r\n componentWillUnmount() {\r\n window.removeEventListener('resize', this.updateDimensions);\r\n }\r\n\r\n render() {\r\n var { drpDownSel, gridWidth, currency } = this.state;\r\n let dataList =\r\n this.props.effData && this.props.effData.length > 0\r\n ? this.props.effData\r\n : [];\r\n return (\r\n gridWidth !== null ? \r\n
\r\n {\r\n // if (dataList[rowIndex].address || dataList[rowIndex].promotion) {\r\n // let cmprValue =\r\n // dataList[rowIndex].address.length >\r\n // dataList[rowIndex].promotion.length\r\n // ? dataList[rowIndex].address.length * 3\r\n // : dataList[rowIndex].promotion.length * 3;\r\n\r\n // return Math.max(66, cmprValue);\r\n // }\r\n // }}\r\n width={gridWidth}\r\n maxHeight={500}\r\n {...this.props}\r\n >\r\n {dataList &&\r\n dataList.length > 0 &&\r\n this.state.columnOrder.map(function (columnKeys, i) {\r\n return (\r\n \r\n ) : columnKeys === \"advertisedPrice\" ? ( \r\n \r\n ) : columnKeys === \"promotion\" ? (\r\n ({ rowIndex, columnKey, ...props }) => {\r\n let ys_prom_tions =\r\n dataList[rowIndex][columnKey] &&\r\n dataList[rowIndex][columnKey] !== null\r\n ? dataList[rowIndex][columnKey].replace(\r\n /~/g,\r\n \"
\"\r\n )\r\n : \"No specials\";\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n ) : columnKeys === \"effectiveRate\" ? (\r\n \r\n ) : (\r\n ({ rowIndex, columnKey, ...props }) => {\r\n return (\r\n columnKey === \"storeName\" ? dataList[rowIndex].storeName !== '' ?\r\n \r\n
{dataList[rowIndex].storeName}
\r\n

\r\n {dataList[rowIndex].address}\r\n

\r\n
: \r\n \r\n : \r\n { dataList[rowIndex][columnKey]}\r\n \r\n \r\n );\r\n }\r\n )\r\n }\r\n fixed={i < 5}\r\n width={\r\n columnKeys === \"storeName\"\r\n ? 220\r\n : columnKeys === \"promotion\"\r\n ? 200\r\n : drpDownSel === 9 && window.innerWidth > 1700 ? 140 : drpDownSel === 6 && (window.innerWidth > 1600 && window.innerWidth < 1700) ? 130 : drpDownSel === 3 && window.innerWidth > 1700 ? 200 : drpDownSel === 6 && window.innerWidth > 1700 ? 170 : drpDownSel === 3 && window.innerWidth > 1600 ? 180 : (drpDownSel === 3 || drpDownSel === 6) && window.innerWidth > 1200 && (drpDownSel === 3 || drpDownSel === 6) && window.innerWidth <= 1600 ? 120 : 93\r\n }\r\n />\r\n );\r\n })}\r\n \r\n
\r\n : ''\r\n );\r\n }\r\n}\r\n\r\nexport default React.memo(EffectiveRateCal);\r\n","import React, { Component } from \"react\";\r\nimport \"./EffectiveRates.css\";\r\nimport {\r\n Row,\r\n Col,\r\n Button,\r\n Dropdown,\r\n DropdownToggle,\r\n DropdownMenu,\r\n DropdownItem,\r\n} from \"reactstrap\";\r\nimport TableHead from \"@material-ui/core/TableHead\";\r\nimport TableCell from \"@material-ui/core/TableCell\";\r\nimport TableRow from \"@material-ui/core/TableRow\";\r\nimport TableSortLabel from \"@material-ui/core/TableSortLabel\";\r\nimport Snackbar from \"@material-ui/core/Snackbar\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\nimport { HelpTextPopup } from \"./../HelpTextPopup/index\";\r\nimport * as d3 from \"d3\";\r\nimport axios from \"axios\";\r\nimport { CONFIG } from \"../../utils/config\";\r\nimport { faFilePdf, faFileExcel } from \"@fortawesome/free-solid-svg-icons\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport moment from \"moment\";\r\nimport Table from \"@material-ui/core/Table\";\r\nimport TablePagination from \"@material-ui/core/TablePagination\";\r\nimport { TableBody } from \"@material-ui/core\";\r\nimport TableFooter from \"@material-ui/core/TableFooter\";\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport FirstPageIcon from \"@material-ui/icons/FirstPage\";\r\nimport KeyboardArrowLeft from \"@material-ui/icons/KeyboardArrowLeft\";\r\nimport KeyboardArrowRight from \"@material-ui/icons/KeyboardArrowRight\";\r\nimport LastPageIcon from \"@material-ui/icons/LastPage\";\r\nimport { EffectiveRateCal } from \"../EffectiveRateCal\";\r\nclass EffectiveRates extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n activeTab: 4,\r\n isLoading1: false,\r\n order: \"asc\",\r\n orderBy: \"storeName\",\r\n snackOpen: false,\r\n snackMSg: \"\",\r\n unitDurations: [],\r\n hisactivemenu: \"1\",\r\n hisactivedur: \"2\",\r\n gridactivedur: 1,\r\n uniquestore: \"\",\r\n grapghCatcheck: \"Premium\",\r\n graphOpen: \"Premium\",\r\n // SinglelahMarkets: {},\r\n CoreMarketView: [],\r\n ChartTableData: [],\r\n GridTableValue: {},\r\n CurrentHistory: [],\r\n AllMarketdata: [],\r\n AllCurrentHistory: [],\r\n MarketViewpricingOptions: [],\r\n isLoading: false,\r\n AvailDataCheck: 0,\r\n stId: this.props.storeId,\r\n seId: this.props.searchId,\r\n defaultWidth: 0,\r\n priceLength: 0,\r\n pricecolLength: 0,\r\n Tabloading: false,\r\n promo_open: false,\r\n promo_open_id: 0,\r\n uniquestores: [],\r\n pdfunique: 0,\r\n snackClr: \"\",\r\n pageCount: 0,\r\n effectiveRateData: [],\r\n dropdownOpen: false,\r\n drpDownSelValue: 12,\r\n tenancyArray: [3, 6, 9, 12],\r\n moneySymbol:this.props.currency !== undefined ? this.props.currency: this.props.currency,\r\n };\r\n this.handleRequestSort = this.handleRequestSort.bind(this);\r\n this.stableSort = this.stableSort.bind(this);\r\n this.getSorting = this.getSorting.bind(this);\r\n this.desc = this.desc.bind(this);\r\n this.onSelecCatGrapgh = this.onSelecCatGrapgh.bind(this);\r\n this.DurationsdropDown = this.DurationsdropDown.bind(this);\r\n this.AlignGraphTabData = this.AlignGraphTabData.bind(this);\r\n this.AlignHistoryGraphData = this.AlignHistoryGraphData.bind(this);\r\n //this.GetSummaryMarketData = this.GetSummaryMarketData.bind(this);\r\n this.GetGridtableData = this.GetGridtableData.bind(this);\r\n this.GetGraphTableData = this.GetGraphTableData.bind(this);\r\n this.onDurAndPriChange = this.onDurAndPriChange.bind(this);\r\n localStorage.setItem(\"StId\", this.props.storeId);\r\n this.toggle = this.toggle.bind(this);\r\n this.child = React.createRef();\r\n }\r\n\r\n //Duration and Price Type Change\r\n onDurAndPriChange(e) {\r\n const { name, value } = e.target;\r\n let fields = this.state;\r\n fields[name] = value;\r\n if (name === \"gridactivedur\") {\r\n this.setState({ fields, isLoading1: true }, () =>\r\n this.GetGridtableData()\r\n );\r\n } else if (name === \"hisactivedur\") {\r\n this.setState({ fields, isLoading: true });\r\n } else {\r\n this.setState({ fields, isLoading1: true }, () =>\r\n this.AlignHistoryGraphData()\r\n );\r\n }\r\n }\r\n\r\n //Tabs\r\n tabtoggle(tab) {\r\n if (this.state.activeTab !== tab) {\r\n this.setState(\r\n {\r\n activeTab: tab,\r\n Tabloading: true,\r\n // Tabloading: tab === 4 ? false : true,\r\n },\r\n () => {\r\n // if (tab !== 4) {\r\n this.GetGraphTableData();\r\n // }\r\n }\r\n );\r\n }\r\n }\r\n\r\n //Table Sorting\r\n handleRequestSort(event, property) {\r\n const { order, orderBy } = this.state;\r\n const isDesc = orderBy === property && order === \"desc\";\r\n let sort = isDesc ? \"asc\" : \"desc\";\r\n this.setState({ order: sort, orderBy: property });\r\n }\r\n\r\n //Table Sorting order\r\n desc(a, b, orderBy) {\r\n if (b[orderBy] < a[orderBy]) {\r\n return -1;\r\n }\r\n if (b[orderBy] > a[orderBy]) {\r\n return 1;\r\n }\r\n return 0;\r\n }\r\n\r\n //Table Sorting the selected Column\r\n stableSort(array, cmp) {\r\n const stabilizedThis = array.map((el, index) => [el, index]);\r\n stabilizedThis.sort((a, b) => {\r\n const order = cmp(a[0], b[0]);\r\n if (order !== 0) return order;\r\n return a[1] - b[1];\r\n });\r\n return stabilizedThis.map((el) => el[0]);\r\n }\r\n\r\n //Table Sorting Order Request\r\n getSorting(order, orderBy) {\r\n return order === \"desc\"\r\n ? (a, b) => this.desc(a, b, orderBy)\r\n : (a, b) => -this.desc(a, b, orderBy);\r\n }\r\n\r\n //To open Particular Category's Graph\r\n onSelecCatGrapgh(openActGraph) {\r\n let activeRow =\r\n this.state.grapghCatcheck === openActGraph ? \"\" : openActGraph;\r\n activeRow === \"\"\r\n ? this.setState({ grapghCatcheck: activeRow, graphOpen: activeRow })\r\n : this.setState(\r\n { grapghCatcheck: activeRow, graphOpen: activeRow },\r\n () => {\r\n // this.TableViewGraphs();\r\n }\r\n );\r\n }\r\n\r\n //Grid Actions\r\n barhandleChange(CompId) {\r\n //loader\r\n this.setState({ isLoading: true, pdfunique: 1 });\r\n if (this.state.GridTableValue.dynamdata) {\r\n //getting the ids of to show or hide the graph data\r\n let GraphshowData = this.state.GridTableValue.dynamdata.filter(function (\r\n data\r\n ) {\r\n return data.isSelected === true && data.storeID !== CompId;\r\n });\r\n\r\n if (GraphshowData.length > 6) {\r\n this.setState({\r\n isLoading: false,\r\n snackOpen: true,\r\n snackMSg:\r\n \"You can view up to 8 markets only, please remove any of the selected markets to add new ones.\",\r\n });\r\n } else {\r\n //to change the selected value which clicked on table\r\n let uniquestore = [\r\n ...new Set(\r\n this.state.GridTableValue.dynamdata\r\n .filter(function (data) {\r\n return data.isSelected === true\r\n ? data.storeID !== CompId\r\n : data.storeID === CompId;\r\n })\r\n .map((item) => item.storeID)\r\n ),\r\n ].join(\", \");\r\n\r\n let uniquestores = [\r\n ...new Set(\r\n this.state.GridTableValue.dynamdata\r\n .filter(function (data) {\r\n return data.isSelected === true\r\n ? data.storeID !== CompId\r\n : data.storeID === CompId;\r\n })\r\n .map((item) => item.storeID)\r\n ),\r\n ].join(\"/\");\r\n\r\n for (var i = 0; i < this.state.GridTableValue.dynamdata.length; i++) {\r\n if (this.state.GridTableValue.dynamdata[i].storeID === CompId) {\r\n this.state.GridTableValue.dynamdata[i].isSelected =\r\n this.state.GridTableValue.dynamdata[i].isSelected === true\r\n ? false\r\n : true;\r\n }\r\n }\r\n let GridTableValue = this.state.GridTableValue;\r\n\r\n //If User Remove all Markets, then uniquestore should be 0\r\n uniquestore = uniquestore === \"\" ? 0 : uniquestore;\r\n uniquestores = uniquestores === \"\" ? 0 : uniquestores;\r\n this.setState({ uniquestores });\r\n\r\n //console.log(GridTableValue);\r\n this.setState({ GridTableValue, uniquestore }, () => {\r\n this.GetGraphTableData();\r\n // this.GetcurrentpricinganalysisHistory();\r\n });\r\n }\r\n }\r\n }\r\n\r\n //SnackBar Close\r\n snackHandleclose = (event, reason) => {\r\n if (reason === \"clickaway\") {\r\n return;\r\n }\r\n this.setState({ snackOpen: false });\r\n };\r\n\r\n //Formatted in as per competitor\r\n formData(data) {\r\n let uniquestore = [...new Set(data.map((item) => item.storeID))];\r\n let CurrentActivity = this.state.grapghCatcheck;\r\n let Colorbarcode = [\r\n \"#f69e4f\",\r\n \"#85411b\",\r\n \"#5b95f6\",\r\n \"#f96a5d\",\r\n \"#3ea7a1\",\r\n \"#83ce83\",\r\n \"#fac05f\",\r\n \"#959595\",\r\n ];\r\n var FData = [];\r\n for (var t = 0; t < uniquestore.length; t++) {\r\n var tFData = data.filter(\r\n (a) =>\r\n a.storeID == uniquestore[t] && a.priceOptionName === CurrentActivity\r\n );\r\n var mData = {};\r\n if (tFData.length > 0) {\r\n let splitpriceVal = tFData[0].price.split(\"-\");\r\n let priceVal = splitpriceVal[1]\r\n ? parseInt(splitpriceVal[0])\r\n : splitpriceVal[0] !== \"0\"\r\n ? parseInt(splitpriceVal[0])\r\n : 0;\r\n let p1 =\r\n CurrentActivity === \"Price Range\"\r\n ? splitpriceVal[1]\r\n ? parseInt(splitpriceVal[1])\r\n : parseInt(splitpriceVal[0])\r\n : 0;\r\n\r\n mData = {\r\n StoreID: uniquestore[t],\r\n StoreName: tFData[0].storeName,\r\n price: parseInt(priceVal),\r\n priceOptionName: tFData[0].priceOptionName,\r\n price1: p1,\r\n labelPrice: splitpriceVal[0] === \"0\" ? \"N/A\" : splitpriceVal[0],\r\n labelPrice2:\r\n splitpriceVal[1] !== \"0\" && splitpriceVal[1]\r\n ? splitpriceVal[1]\r\n : splitpriceVal[0] === \"0\"\r\n ? \"N/A\"\r\n : splitpriceVal[0],\r\n Gcolor: Colorbarcode[t],\r\n IsSelected: tFData[0].isSelected,\r\n isMonthly: tFData[0].isMonthly,\r\n };\r\n }\r\n\r\n FData.push(mData);\r\n }\r\n return FData;\r\n }\r\n\r\n // Text Wrap For Graph X-axis label\r\n wrap(text, width) {\r\n text.each(function () {\r\n var text = d3.select(this),\r\n words = text.text().split(/\\s+/).reverse(),\r\n word,\r\n line = [],\r\n lineNumber = 0,\r\n lineHeight = 1.1, // ems\r\n y = text.attr(\"y\"),\r\n dy = parseFloat(text.attr(\"dy\")),\r\n tspan = text\r\n .text(null)\r\n .append(\"tspan\")\r\n .attr(\"x\", 0)\r\n .attr(\"y\", y)\r\n .attr(\"dy\", dy + \"em\");\r\n while ((word = words.pop())) {\r\n line.push(word);\r\n tspan.text(line.join(\" \"));\r\n if (tspan.node().getComputedTextLength() > width) {\r\n line.pop();\r\n tspan.text(line.join(\" \"));\r\n line = [word];\r\n tspan = text\r\n .append(\"tspan\")\r\n .attr(\"x\", 0)\r\n .attr(\"y\", y)\r\n .attr(\"dy\", `${++lineNumber * lineHeight + dy}em`)\r\n .text(word);\r\n }\r\n }\r\n });\r\n }\r\n\r\n //Formatted in as per competitor\r\n HisformData(data, uid) {\r\n var tFData = data.filter((a) => a.storeID === uid);\r\n var tData = [];\r\n let CurrentActivity = this.state.hisactivemenu === \"2\" ? \"Price Range\" : \"\";\r\n for (var i = 0; i < tFData.length; i++) {\r\n // for price range calculation\r\n let calPrice, price2;\r\n if (CurrentActivity === \"Price Range\") {\r\n let splitpriceVal = tFData[i].price.split(\"-\");\r\n //calPrice = splitpriceVal[1] ? (parseInt(splitpriceVal[1]) + parseInt(splitpriceVal[0])) / 2 : parseInt(tFData[i].price);\r\n calPrice = parseInt(splitpriceVal[0]);\r\n price2 = splitpriceVal[1]\r\n ? parseInt(splitpriceVal[1])\r\n : parseInt(splitpriceVal[0]);\r\n } else {\r\n calPrice = tFData[i].price;\r\n price2 = 0;\r\n }\r\n // for display label date\r\n let caldate;\r\n // if(this.state.hisactivedur === '2' || this.state.hisactivedur === '3'){\r\n // caldate = moment(tFData[i].datePrice.substring(8)).format('DD/MM/YY');\r\n // }\r\n // else if(this.state.hisactivedur === '1'){\r\n // caldate = moment(tFData[i].datePrice.substring(4)).format('DD/MM/YY');\r\n // }\r\n // else{\r\n // caldate = tFData[i].datePrice;\r\n // }\r\n caldate = moment(tFData[i].datePrice).toDate();\r\n var CData = {\r\n date: moment(tFData[i].datePrice).toDate(),\r\n StoreName: tFData[i].storeName,\r\n price: parseInt(calPrice),\r\n price2: parseInt(price2),\r\n storeID: tFData[i].storeID,\r\n labeldate: caldate,\r\n labelPrice: tFData[i].price === \"0\" ? \"N/A\" : tFData[i].price,\r\n orderNo: tFData[i].orderNo,\r\n priceOptionName: tFData[i].priceOptionName,\r\n };\r\n tData.push(CData);\r\n }\r\n return tData;\r\n }\r\n\r\n componentDidMount() {\r\n this.setState(\r\n {\r\n isLoading: true,\r\n hisactivedur: \"2\",\r\n hisactivemenu: \"1\",\r\n uniquestore: \"\",\r\n uniquestores: [],\r\n pdfunique: 0,\r\n },\r\n () => {\r\n this.commonapiCall();\r\n }\r\n );\r\n console.log(\"santhosh\");\r\n //console.log(window.innerWidth, 'innerWidth');\\\r\n }\r\n\r\n commonapiCall() {\r\n this.DurationsdropDown();\r\n this.GetGraphTableData();\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (nextProps.searchId !== this.state.seId) {\r\n this.setState(\r\n {\r\n hisactivedur: \"2\",\r\n seId: nextProps.searchId,\r\n stId: nextProps.storeId,\r\n },\r\n () => {\r\n this.componentDidMount();\r\n }\r\n );\r\n }\r\n }\r\n\r\n //Duration For DropDown\r\n DurationsdropDown() {\r\n this.setState({isLoading1: true});\r\n let token = localStorage.getItem(\"accessKey\");\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = \"Bearer \" + token;\r\n }\r\n axios\r\n .get(CONFIG.API_URL + \"unit/unitdurations\")\r\n .then((response) => {\r\n let unitDurations = response.data.data.lookupData;\r\n this.setState({\r\n unitDurations,isLoading1: false, isLoading: false\r\n });\r\n })\r\n .catch((err) => {\r\n this.setState({isLoading1: false, isLoading: false});\r\n if (err.response.status === 401) {\r\n localStorage.removeItem(\"accessKey\");\r\n const { from } = this.props.location.state || {\r\n from: { pathname: \"/\" },\r\n };\r\n this.props.history.push(from);\r\n } else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }\r\n\r\n // Grid Table data\r\n GetGridtableData() {\r\n let token = localStorage.getItem(\"accessKey\");\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = \"Bearer \" + token;\r\n }\r\n let data = {\r\n UserStoreID: this.state.stId,\r\n SearchId: this.state.seId,\r\n PriceType: this.state.activeTab,\r\n Competitors: this.state.uniquestore,\r\n Duration: parseInt(this.state.gridactivedur),\r\n RegionId: CONFIG.RegionId,\r\n };\r\n axios\r\n .post(\r\n CONFIG.API_URL + \"dashboard/currentpricinganalysisallmarketviews\",\r\n data\r\n )\r\n .then((res) => {\r\n let GridTableValue = this.state.GridTableValue;\r\n let AllMarketdata = res.data.current.currentPricingAnalysisAllMarket;\r\n //To get Only Your Store on All Market View\r\n GridTableValue[\"statdata\"] = AllMarketdata.filter(function (data) {\r\n return data.isMyStore === 1;\r\n });\r\n //To get Stores Expect Your Store on All Market View\r\n GridTableValue[\"dynamdata\"] = AllMarketdata.filter(function (data) {\r\n return data.isMyStore !== 1;\r\n });\r\n this.setState({ GridTableValue, AllMarketdata, isLoading1: false });\r\n })\r\n .catch((err) => {\r\n if (err.response.status === 401) {\r\n localStorage.removeItem(\"accessKey\");\r\n const { from } = this.props.location.state || {\r\n from: { pathname: \"/\" },\r\n };\r\n this.props.history.push(from);\r\n } else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }\r\n\r\n //History Graph\r\n GetcurrentpricinganalysisHistory() {\r\n let token = localStorage.getItem(\"accessKey\");\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = \"Bearer \" + token;\r\n }\r\n\r\n this.setState({\r\n AllCurrentHistory: [],\r\n isLoading: true,\r\n });\r\n\r\n let data = {\r\n UserStoreID: this.state.stId,\r\n SearchId: this.state.seId,\r\n PriceType: this.state.activeTab,\r\n Competitors: this.state.uniquestore,\r\n Duration: parseInt(this.state.hisactivedur),\r\n RegionId: CONFIG.RegionId,\r\n };\r\n\r\n axios\r\n .post(CONFIG.API_URL + \"dashboard/currentpricinganalysisHistories\", data)\r\n .then((response) => {\r\n let AllCurrentHistory = response.data.current;\r\n this.setState({ AllCurrentHistory }, () => {\r\n this.AlignHistoryGraphData();\r\n });\r\n })\r\n .catch((err) => {\r\n if (err.response.status === 401) {\r\n localStorage.removeItem(\"accessKey\");\r\n const { from } = this.props.location.state || {\r\n from: { pathname: \"/\" },\r\n };\r\n this.props.history.push(from);\r\n } else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }\r\n\r\n // Data Format HistoryGraph View\r\n AlignHistoryGraphData() {\r\n const { AllCurrentHistory, hisactivemenu } = this.state;\r\n\r\n //Based Dropdown above the History graph\r\n let CurrentActivity =\r\n hisactivemenu === \"1\"\r\n ? \"Premium\"\r\n : hisactivemenu === \"2\"\r\n ? \"Price Range\"\r\n : \"Value\";\r\n // Get Current priceOptionName\r\n let filterByMenu = AllCurrentHistory.filter(\r\n (a) => a.priceOptionName === CurrentActivity\r\n );\r\n\r\n //Spliting mystore and Non-mystore data to order\r\n let getMystore = filterByMenu.filter((a) => a.isMyMarket === 1);\r\n let getwithoutMystore = filterByMenu.filter((a) => a.isMyMarket === 0);\r\n\r\n let CurrentHistory = getMystore.concat(getwithoutMystore);\r\n //console.log(CurrentHistory, 'CurrentHistory');\r\n setTimeout(\r\n function () {\r\n this.setState(\r\n { CurrentHistory, isLoading: false, isLoading1: false },\r\n () => {\r\n // this.HistoryGraphView();\r\n }\r\n );\r\n }.bind(this),\r\n 3000\r\n );\r\n }\r\n\r\n //Graph Table data\r\n GetGraphTableData() {\r\n this.setState({isLoading1: true, isLoading: true, Tabloading: true});\r\n let token = localStorage.getItem(\"accessKey\");\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = \"Bearer \" + token;\r\n }\r\n let data = {\r\n UserStoreID: this.state.stId,\r\n SearchId: this.state.seId,\r\n PriceType: this.state.activeTab,\r\n Duration: parseInt(this.state.gridactivedur),\r\n Competitors: this.state.uniquestore,\r\n RegionId: CONFIG.RegionId,\r\n }; \r\n axios\r\n .post(\r\n CONFIG.API_URL + \"dashboard/currentpricinganalysiscoremarketview\",\r\n data\r\n )\r\n .then((res) => {\r\n let CoreMarketView = res.data.current.currentPricingAnalysisMarket;\r\n let MarketViewpricingOptions = res.data.current.currentPricingAnalysis;\r\n let effectiveRateData = [];\r\n CoreMarketView.map((x) => {\r\n const found = effectiveRateData.some(el => el.storeID === x.storeID);\r\n \r\n return(\r\n effectiveRateData.push({storeID: x.storeID,\r\n address: found ? '' : x.address,\r\n storeName: found ? '' : x.storeName,\r\n priceOptionName: x.priceOptionName,\r\n price: x.price,\r\n isMyStore: x.isMyStore,\r\n alternatePriceTag: x.alternatePriceTag,\r\n proximity: x.proximity,\r\n myStorePriceRank: x.myStorePriceRank,\r\n promo: x.promo,\r\n isMonthly: x.isMonthly,\r\n floorType: x.floorType,\r\n advertisedPrice: x.advertisedPrice,\r\n promotion: x.promotion,\r\n m1: x.m1,\r\n m2: x.m2,\r\n m3: x.m3,\r\n m4: x.m4,\r\n m5: x.m5,\r\n m6: x.m6,\r\n m7: x.m7,\r\n m8: x.m8,\r\n m9: x.m9,\r\n m10: x.m10,\r\n m11: x.m11,\r\n m12: x.m12,})\r\n )\r\n })\r\n this.setState({\r\n CoreMarketView,\r\n MarketViewpricingOptions,\r\n effectiveRateData: effectiveRateData,\r\n isLoading1: false, isLoading: false,\r\n Tabloading: false,\r\n });\r\n })\r\n .catch((err) => {\r\n this.setState({isLoading1: false, isLoading: false, Tabloading: false});\r\n if (err.response.status === 401) {\r\n localStorage.removeItem(\"accessKey\");\r\n const { from } = this.props.location.state || {\r\n from: { pathname: \"/\" },\r\n };\r\n this.props.history.push(from);\r\n } else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }\r\n\r\n // Data Format table View\r\n AlignGraphTabData() {\r\n const { CoreMarketView } = this.state;\r\n\r\n let ChartTableData = this.state.ChartTableData;\r\n\r\n //Checking for data availability\r\n let AvailDataCheck = [];\r\n\r\n AvailDataCheck = CoreMarketView.filter(function (data) {\r\n return data.storeID > 0 && data.price != 0;\r\n });\r\n\r\n //For table Row Height controll\r\n let priceLength = this.state.priceLength;\r\n let pricecolLength = this.state.pricecolLength;\r\n\r\n /* Spliting the data in the order of activityType */\r\n ChartTableData[\"lahMarkets\"] = [];\r\n if (AvailDataCheck.length > 0) {\r\n if (this.state.activeTab === 3) {\r\n /* Barchart table's Head data */\r\n ChartTableData[\"TableHead\"] = CoreMarketView.filter(function (data) {\r\n return data.storeID > 0;\r\n });\r\n /* end of Barchart table's Head data */\r\n\r\n /* Barchart table's body data */\r\n ChartTableData[\"TableBody\"] = [];\r\n\r\n //For Premium data\r\n ChartTableData[\"TableBody\"].push({\r\n td1: \"Promotions\",\r\n td2: CoreMarketView.filter(function (data) {\r\n return data.storeID > 0;\r\n }),\r\n });\r\n /* End of Barchart table's body data */\r\n } else {\r\n //For table Row Height controll\r\n priceLength = d3.max(\r\n AvailDataCheck.filter(function (data) {\r\n return data.storeID > 0 && data.priceOptionName === \"Price Range\";\r\n }),\r\n (d) => d.price.length\r\n );\r\n //}), d => (d.price + (d.alternatePriceTag ? '(' + d.alternatePriceTag + ')' : '')).length);\r\n\r\n pricecolLength = CoreMarketView.filter(function (data) {\r\n return data.storeID > 0 && data.priceOptionName === \"Price Range\";\r\n }).length;\r\n // End of For table Row Height controll\r\n\r\n //For Premium data\r\n ChartTableData[\"lahMarkets\"].push({\r\n tr1: CoreMarketView.filter(function (data) {\r\n return data.storeID < 1 && data.priceOptionName === \"Premium\";\r\n }),\r\n tr2: CoreMarketView.filter(function (data) {\r\n return (\r\n data.isMyStore === true && data.priceOptionName === \"Premium\"\r\n );\r\n }),\r\n });\r\n\r\n //For Price Range data\r\n ChartTableData[\"lahMarkets\"].push({\r\n tr1: CoreMarketView.filter(function (data) {\r\n return data.storeID < 1 && data.priceOptionName === \"Price Range\";\r\n }),\r\n tr2: CoreMarketView.filter(function (data) {\r\n return (\r\n data.isMyStore === true && data.priceOptionName === \"Price Range\"\r\n );\r\n }),\r\n });\r\n\r\n //For Value data\r\n ChartTableData[\"lahMarkets\"].push({\r\n tr1: CoreMarketView.filter(function (data) {\r\n return data.storeID < 1 && data.priceOptionName === \"Value\";\r\n }),\r\n tr2: CoreMarketView.filter(function (data) {\r\n return data.isMyStore === true && data.priceOptionName === \"Value\";\r\n }),\r\n });\r\n\r\n /* end of Spliting the data in the order of activityType */\r\n\r\n /* Barchart table's Head data */\r\n ChartTableData[\"TableHead\"] = CoreMarketView.filter(function (data) {\r\n return data.storeID > 0 && data.priceOptionName === \"Premium\";\r\n });\r\n /* end of Barchart table's Head data */\r\n\r\n /* Barchart table's body data */\r\n ChartTableData[\"TableBody\"] = [];\r\n\r\n //For Premium data\r\n ChartTableData[\"TableBody\"].push({\r\n td1: \"Premium\",\r\n td2: CoreMarketView.filter(function (data) {\r\n return data.storeID > 0 && data.priceOptionName === \"Premium\";\r\n }),\r\n });\r\n\r\n //For Price Range data\r\n ChartTableData[\"TableBody\"].push({\r\n td1: \"Price Range\",\r\n td2: CoreMarketView.filter(function (data) {\r\n return data.storeID > 0 && data.priceOptionName === \"Price Range\";\r\n }),\r\n });\r\n\r\n //For Value data\r\n ChartTableData[\"TableBody\"].push({\r\n td1: \"Value\",\r\n td2: CoreMarketView.filter(function (data) {\r\n return data.storeID > 0 && data.priceOptionName === \"Value\";\r\n }),\r\n });\r\n }\r\n }\r\n if (\r\n this.state.graphOpen === \"\" ||\r\n this.state.activeTab === 3 ||\r\n AvailDataCheck.length === 0\r\n ) {\r\n this.setState({\r\n ChartTableData,\r\n AvailDataCheck: AvailDataCheck.length,\r\n pricecolLength,\r\n priceLength,\r\n });\r\n } else {\r\n this.setState(\r\n {\r\n ChartTableData,\r\n AvailDataCheck: AvailDataCheck.length,\r\n pricecolLength,\r\n priceLength,\r\n },\r\n () => {\r\n // this.TableViewGraphs();\r\n }\r\n );\r\n }\r\n\r\n /* end of Barchart table's body data */\r\n }\r\n\r\n //Promotions Pop Up\r\n promohandleOpen(id) {\r\n this.setState({\r\n promo_open: true,\r\n promo_open_id: id,\r\n });\r\n }\r\n\r\n promohandleClose() {\r\n this.setState({\r\n promo_open: false,\r\n promo_open_id: 0,\r\n });\r\n }\r\n //End OF PRomotions Pop Up\r\n downLoadPDF() {\r\n // this.setState({ isLoading: true });\r\n var currentDate = moment(new Date()).format(\"DD-MMM-YYYY\");\r\n let pta = this.state.gridactivedur;\r\n let usId = this.props.storeId;\r\n let searchId = this.props.searchId;\r\n let accessKey = localStorage.getItem(\"SecretKey\");\r\n let priceType = this.state.hisactivedur;\r\n let unitType = this.state.hisactivemenu;\r\n let orderBy = this.state.orderBy;\r\n let order = this.state.order;\r\n let unitTypes =\r\n this.state.uniquestores && this.state.pdfunique == 1\r\n ? this.state.uniquestores\r\n : this.state.pdfunique != 1\r\n ? \"no\"\r\n : \"\";\r\n let grapghCatcheck =\r\n this.state.grapghCatcheck == \"Premium\"\r\n ? 1\r\n : this.state.grapghCatcheck == \"Value\"\r\n ? 3\r\n : this.state.grapghCatcheck == \"Price Range\"\r\n ? 2\r\n : 4;\r\n let tDuration = this.state.drpDownSelValue;\r\n // let activeTab = this.state.activeTab;\r\n //let accessKey = '3f2b471776bc41cf863720bfc8cf9cb9';\r\n var timestamp =\r\n new Date().getDate() +\r\n \"\" +\r\n new Date().getMonth() +\r\n \"\" +\r\n new Date().getFullYear() +\r\n \"\" +\r\n new Date().getTime();\r\n //construct filename for pdf report.\r\n var fileName = usId + \"EffectiveRate\" + \"_\" + timestamp + \".pdf\";\r\n var stoName =\r\n this.props.storeDetails &&\r\n this.props.storeDetails.storeName &&\r\n this.props.storeDetails.storeName !== null &&\r\n this.props.storeDetails.storeName !== \"\" &&\r\n this.props.storeDetails.storeName !== undefined\r\n ? this.props.storeDetails.storeName\r\n : \"Your Store\";\r\n var fileNamePdf =\r\n stoName + \"_\" + \"EffectiveRates\" + \"_\" + currentDate + \".pdf\";\r\n this.setState({\r\n snackClr: \"snack-info\",\r\n snackOpen: true,\r\n snackMSg:\r\n \"Your download is being processed. The \" +\r\n fileNamePdf +\r\n \" file will download automatically to your browser when ready and Please do not close or reload the pages until download completes. We recommend you check your Downloads folder if you don’t see it in your browser.\",\r\n });\r\n let ComponentName = 12;\r\n const Input = {\r\n RegionID: CONFIG.RegionId,\r\n URL:\r\n CONFIG.OPTZ_URL +\r\n \"render-pdf/\" +\r\n accessKey +\r\n \"/\" +\r\n ComponentName +\r\n \"/\" +\r\n tDuration +\r\n \"/\" +\r\n usId +\r\n \"/\" +\r\n pta +\r\n \"/\" +\r\n searchId +\r\n \"/\" +\r\n unitType +\r\n \"/\" +\r\n priceType +\r\n \"/\" +\r\n orderBy +\r\n \"/\" +\r\n order +\r\n \"/\" +\r\n grapghCatcheck +\r\n \"/\" +\r\n unitTypes,\r\n FileName: fileName,\r\n };\r\n // axios.post(CONFIG.API_URL + 'dashboard/generatepdfbypage', Input)\r\n axios({\r\n url: CONFIG.API_URL + \"dashboard/generatepdfbypage\",\r\n method: \"post\",\r\n responseType: \"blob\",\r\n data: Input,\r\n })\r\n .then((response) => {\r\n const blob = new Blob([response.data], { type: 'application/octet-stream' }); \r\n const link = document.createElement('a');\r\n link.href = window.URL.createObjectURL(blob); \r\n link.download = fileNamePdf;\r\n link.dispatchEvent(\r\n new MouseEvent('click', { \r\n bubbles: true, \r\n cancelable: true, \r\n view: window \r\n })\r\n ); \r\n setTimeout(() => {\r\n // For Firefox it is necessary to delay revoking the ObjectURL\r\n window.URL.revokeObjectURL(link.href);\r\n link.remove();\r\n }, 3000); \r\n this.setState({isLoading: false }); \r\n })\r\n .catch((err) => {\r\n this.setState({ isLoading: false });\r\n });\r\n }\r\n\r\n //download excel for effective rate\r\n downLoadExcel = ()=> {\r\n this.setState({isLoading: true})\r\n var currentDate = moment(new Date()).format(\"DD-MMM-YYYY\");\r\n var stoName =\r\n this.props.storeDetails &&\r\n this.props.storeDetails.storeName &&\r\n this.props.storeDetails.storeName !== null &&\r\n this.props.storeDetails.storeName !== \"\" &&\r\n this.props.storeDetails.storeName !== undefined\r\n ? this.props.storeDetails.storeName\r\n : \"Your Store\";\r\n var fileNamePdf =\r\n stoName + \"_\" + \"EffectiveRates_\" + currentDate + \".xlsx\";\r\n \r\n const Input={\r\n UserStoreID: this.state.stId,\r\n SearchId: this.state.seId,\r\n PriceType: this.state.activeTab,\r\n Competitors: this.state.uniquestore,\r\n Currency: this.state.moneySymbol,\r\n RegionId: CONFIG.RegionId,\r\n EffectiveTimePeriod: this.state.drpDownSelValue\r\n }\r\n let token = localStorage.getItem(\"accessKey\");\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = \"Bearer \" + token;\r\n }\r\n axios({\r\n url: CONFIG.API_URL + \"dashboard/downloadeffectiverate\",\r\n method: \"post\",\r\n responseType: \"blob\",\r\n data: Input,\r\n })\r\n .then((response) => {\r\n const blob = new Blob([response.data], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });\r\n const link = document.createElement('a');\r\n link.href = window.URL.createObjectURL(blob);\r\n link.download = fileNamePdf; \r\n link.click(); \r\n this.setState({ isLoading: false }); \r\n })\r\n .catch((err) => {\r\n this.setState({ isLoading: false });\r\n });\r\n }\r\n\r\n //pagination next page\r\n handleChangePage = (event, pageCount) => {\r\n this.setState({ pageCount });\r\n };\r\n\r\n //change next set of page in a row\r\n handleChangeRowsPerPage = (event) => {\r\n this.setState({ pageCount: 0, 10: event.target.value });\r\n };\r\n\r\n //open/close dropdown\r\n toggle() {\r\n this.setState((prevState) => ({\r\n dropdownOpen: !prevState.dropdownOpen,\r\n }));\r\n }\r\n\r\n //handlechange for duration\r\n handleFilterChange = (e, selValue) => {\r\n this.setState(\r\n {\r\n drpDownSelValue: selValue,\r\n },\r\n () => this.child.current._handleColumnHide(selValue)\r\n );\r\n };\r\n\r\n //price conversion\r\n priceConversion(tot) {\r\n if (tot !== \"\") {\r\n let checkDigit = tot.toString().split(\".\");\r\n let ret = \"\";\r\n let i = 0;\r\n if (tot.toString().indexOf(\".\") == -1) {\r\n tot = tot;\r\n } else {\r\n if (checkDigit == \"00\") {\r\n tot = checkDigit.trim();\r\n } else {\r\n if (checkDigit.length === 2) {\r\n ret += checkDigit[0] + \".\";\r\n for (i = 0; i < checkDigit.length; i++) {\r\n if (i >= checkDigit[1].length) ret += \"0\";\r\n else ret += checkDigit[1][i];\r\n }\r\n } else if (checkDigit.length === 1) {\r\n ret += checkDigit[0] + \".\";\r\n for (i = 0; i < checkDigit.length; i++) {\r\n ret += \"0\";\r\n }\r\n }\r\n ret = ret.toString();\r\n tot = ret;\r\n }\r\n }\r\n }\r\n return tot;\r\n }\r\n\r\n render() {\r\n const {\r\n activeTab,\r\n promo_open,\r\n isLoading,\r\n pricecolLength,\r\n order,\r\n orderBy,\r\n grapghCatcheck,\r\n graphOpen,\r\n ChartTableData,\r\n /*SinglelahMarkets,*/ GridTableValue,\r\n unitDurations,\r\n MarketViewpricingOptions,\r\n snackOpen,\r\n snackMSg,\r\n AvailDataCheck,\r\n effectiveRateData,\r\n pageCount,\r\n dropdownOpen,\r\n drpDownSelValue,\r\n tenancyArray,\r\n moneySymbol\r\n } = this.state;\r\n let ComActivityType = [\"Premium\", \"Price Range\", \"Value\"];\r\n let Colors = [\r\n \"mystorebarclr\",\r\n \"barclr1\",\r\n \"barclr2\",\r\n \"barclr3\",\r\n \"barclr4\",\r\n \"barclr5\",\r\n \"barclr6\",\r\n \"barclr7\",\r\n ];\r\n // let moneySymbol = this.props.currency ? this.props.currency : \"\";\r\n var hlpcnt;\r\n if (activeTab === 1) {\r\n hlpcnt =\r\n \"
\" +\r\n `${\r\n CONFIG.RegionId === 3\r\n ? \"Current Advertised Weekly Rates\"\r\n : \"Current Advertised Rates\"\r\n }` +\r\n \"

In this section, the graph enables you to compare rates like-for-like, against your top competitors*. The rates shown on the graph are based on the Online Advertised Rate on the store's website.

The Number of Pricing Options shows you if the selected store* offers more than one price type for this unit type.

  • The highest price advertised by a store is shown as the Premium rate.
  • The lowest price advertised by a store is shown as the Value rate.
  • Any other rates in between are shown as a range
  • If there is only one price for a unit, it is shown as both the Premium and Value rate

Market Low, Market Average and Market High

These rates are based on the online rates advertised by the competitor stores* and the price type chosen (Premium or Value).

*See the All Market View section below to learn how you can change the competitors you can compare against on this graph.

*Your store prices are included in the calculations.

\";\r\n } else if (activeTab === 3) {\r\n hlpcnt =\r\n \"
Promotions

These are unit-specific promotions advertised by the store for the above unit type.

\";\r\n } else {\r\n hlpcnt =\r\n \"
\" +\r\n `${\r\n CONFIG.RegionId === 3\r\n ? \"Advertised Walk-in Weekly Rates\"\r\n : \"Advertised Walk-in Rates\"\r\n }` +\r\n \"

These are the walk-in (or 'Standard') rates offered by the store for this unit type.

\";\r\n }\r\n const defaultProps = {\r\n helpTitle: \"Core Market View\",\r\n helpContent:\r\n hlpcnt +\r\n \"

Refer the below help video for more information.

\",\r\n };\r\n return (\r\n
\r\n {isLoading ? (\r\n
\r\n
\r\n
\r\n ) : (\r\n \"\"\r\n )}\r\n {this.state.isLoading1 ? (\r\n
\r\n
\r\n
\r\n ) : (\r\n \"\"\r\n )}\r\n {this.state.Tabloading ? (\r\n
\r\n
\r\n
\r\n ) : (\r\n \"\"\r\n )}\r\n
\r\n \r\n \r\n
\r\n The Effective Rate is the price the consumer pays after factoring in the promotion. The calculation is performed over a specific tenancy length, which can be selected on the right.\r\n
\r\n \r\n \r\n PDF Download\r\n \r\n \r\n \r\n Excel Download\r\n \r\n {effectiveRateData && effectiveRateData.length > 0 ?
\r\n
Tenancy Length
\r\n \r\n \r\n {drpDownSelValue === 0\r\n ? \"-Select-\"\r\n : drpDownSelValue + \" months\"}\r\n \r\n \r\n {tenancyArray &&\r\n tenancyArray.map((drpDownValue) => {\r\n return (\r\n \r\n this.handleFilterChange(e, drpDownValue)\r\n }\r\n >\r\n {drpDownValue + \" months\"}\r\n \r\n );\r\n })}\r\n \r\n \r\n
\r\n : ''}\r\n
\r\n {snackMSg}}\r\n action={[\r\n \r\n \r\n ,\r\n ]}\r\n />\r\n
\r\n {effectiveRateData && effectiveRateData.length > 0 ? (\r\n \r\n ) : !this.state.Tabloading ? (\r\n

No data available

\r\n ) : ''}\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default React.memo(EffectiveRates);\r\n//Listing and Sorting Table's Head\r\nfunction EnhancedTableHead(props) {\r\n const { order, orderBy, onRequestSort } = props;\r\n const createSortHandler = (property) => (event) => {\r\n onRequestSort(event, property);\r\n };\r\n\r\n const headRows = [\r\n { id: \"storeName\", numeric: false, disablePadding: true, label: \"Name\" },\r\n {\r\n id: \"currentPremium\",\r\n numeric: true,\r\n disablePadding: false,\r\n label: \"Current Premium\",\r\n },\r\n {\r\n id: \"currentValue\",\r\n numeric: true,\r\n disablePadding: false,\r\n label: \"Current Value\",\r\n },\r\n {\r\n id: \"premium\",\r\n numeric: true,\r\n disablePadding: false,\r\n label: \"Highest Premium Price Offered\",\r\n },\r\n //{ id: 'priceRange', numeric: true, disablePadding: false, label: 'Standard' },\r\n {\r\n id: \"value\",\r\n numeric: true,\r\n disablePadding: false,\r\n label: \"Lowest Value Price Offered\",\r\n },\r\n { id: \"promos\", numeric: true, disablePadding: false, label: \"Promotion\" },\r\n {\r\n id: \"currentWalkInPremium\",\r\n numeric: true,\r\n disablePadding: false,\r\n label: \"Current Walk-in Premium\",\r\n },\r\n {\r\n id: \"currentWalkInValue\",\r\n numeric: true,\r\n disablePadding: false,\r\n label: \"Current Walk-in Value\",\r\n },\r\n {\r\n id: \"moreoptions\",\r\n numeric: true,\r\n disablePadding: false,\r\n label: \"More Options\",\r\n },\r\n ];\r\n\r\n return (\r\n \r\n \r\n {headRows.map((row) => (\r\n \r\n \r\n {row.label}\r\n \r\n \r\n ))}\r\n \r\n \r\n );\r\n}\r\n\r\n// For Pagination\r\nconst actionsStyles = (theme) => ({\r\n tablepaggination: {\r\n flexShrink: 0,\r\n color: theme.palette.text.secondary,\r\n marginLeft: theme.spacing * 2.5,\r\n },\r\n});\r\n\r\nclass EffectiveRate extends React.Component {\r\n handleFirstPageButtonClick = (event) => {\r\n this.props.onChangePage(event, 0);\r\n };\r\n\r\n handleBackButtonClick = (event) => {\r\n this.props.onChangePage(event, this.props.page - 1);\r\n };\r\n\r\n handleNextButtonClick = (event) => {\r\n this.props.onChangePage(event, this.props.page + 1);\r\n };\r\n\r\n handleLastPageButtonClick = (event) => {\r\n this.props.onChangePage(\r\n event,\r\n Math.max(0, Math.ceil(this.props.count / this.props.rowsPerPage) - 1)\r\n );\r\n };\r\n\r\n render() {\r\n const { classes, count, page, rowsPerPage, theme } = this.props;\r\n\r\n return (\r\n
\r\n \r\n {theme.direction === \"rtl\" ? : }\r\n \r\n \r\n {theme.direction === \"rtl\" ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n = Math.ceil(count / rowsPerPage) - 1}\r\n aria-label=\"Next Page\"\r\n >\r\n {theme.direction === \"rtl\" ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n = Math.ceil(count / rowsPerPage) - 1}\r\n aria-label=\"Last Page\"\r\n >\r\n {theme.direction === \"rtl\" ? : }\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nconst EffectiveRateWrapped = withStyles(actionsStyles, { withTheme: true })(\r\n EffectiveRate\r\n);\r\n","import React from 'react';\r\nimport { Link } from 'react-router-dom';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faArrowAltCircleDown } from '@fortawesome/free-solid-svg-icons';\r\nimport { TabContent, TabPane, Nav, NavItem, NavLink, Row, Col, Modal, ModalHeader, ModalBody, Button } from 'reactstrap';\r\nimport axios from 'axios';\r\nimport {HelpTextPopup} from './../HelpTextPopup/index';\r\nimport { CONFIG } from '../../utils/config';\r\nimport classnames from 'classnames';\r\nimport { CurrentPricing } from './../CurrentPricing';\r\nimport { MarketInventoryAnalysis } from './../MarketInventoryAnalysis';\r\nimport { DetailedStoresView } from './../DetailedStoresView';\r\nimport redimage from './../../Assets/Images/red.png';\r\nimport { MapViews, MapViewsGmap } from '../MapViews';\r\nimport Table from '@material-ui/core/Table';\r\nimport TableHead from '@material-ui/core/TableHead';\r\nimport TableBody from '@material-ui/core/TableBody';\r\nimport TableCell from '@material-ui/core/TableCell';\r\nimport TableFooter from '@material-ui/core/TableFooter';\r\nimport TablePagination from '@material-ui/core/TablePagination';\r\nimport TableRow from '@material-ui/core/TableRow';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport FirstPageIcon from '@material-ui/icons/FirstPage';\r\nimport KeyboardArrowLeft from '@material-ui/icons/KeyboardArrowLeft';\r\nimport KeyboardArrowRight from '@material-ui/icons/KeyboardArrowRight';\r\nimport LastPageIcon from '@material-ui/icons/LastPage';\r\nimport Breadcrumbs from '@material-ui/core/Breadcrumbs';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport { EffectiveRates } from '../EffectiveRates';\r\n\r\n\r\nconst actionsStyles = theme => ({\r\n tablepaggination: {\r\n flexShrink: 0,\r\n color: theme.palette.text.secondary,\r\n marginLeft: theme.spacing * 2.5,\r\n },\r\n});\r\n\r\nclass MyMarket extends React.Component {\r\n\r\n handleFirstPageButtonClick = event => {\r\n this.props.onChangePage(event, 0);\r\n };\r\n\r\n handleBackButtonClick = event => {\r\n this.props.onChangePage(event, this.props.page - 1);\r\n };\r\n\r\n handleNextButtonClick = event => {\r\n this.props.onChangePage(event, this.props.page + 1);\r\n };\r\n\r\n handleLastPageButtonClick = event => {\r\n this.props.onChangePage(\r\n event,\r\n Math.max(0, Math.ceil(this.props.count / this.props.rowsPerPage) - 1),\r\n );\r\n };\r\n\r\n\r\n render() {\r\n const { classes, count, page, rowsPerPage, theme } = this.props;\r\n \r\n return (\r\n
\r\n \r\n {theme.direction === 'rtl' ? : }\r\n \r\n \r\n {theme.direction === 'rtl' ? : }\r\n \r\n = Math.ceil(count / rowsPerPage) - 1}\r\n aria-label=\"Next Page\"\r\n >\r\n {theme.direction === 'rtl' ? : }\r\n \r\n = Math.ceil(count / rowsPerPage) - 1}\r\n aria-label=\"Last Page\"\r\n >\r\n {theme.direction === 'rtl' ? : }\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nconst MyMarketWrapped = withStyles(actionsStyles, { withTheme: true })(\r\n MyMarket,\r\n);\r\n\r\nexport default class ViewDetails extends React.Component {\r\n constructor() {\r\n super();\r\n this.toggle = this.toggle.bind(this);\r\n this.state = {\r\n activeTab: '1',\r\n locationInfoData: [],\r\n analysisSummary: [],\r\n trackModalData: '',\r\n storeModal: false,\r\n pageCount: 0,\r\n storeCount: 0,\r\n isLoading: false,\r\n pageNavigate:'',\r\n centerPoint:[]\r\n };\r\n this.trackModal = this.trackModal.bind(this);\r\n this.trackModalClose = this.trackModalClose.bind(this);\r\n this.refreshMenu = this.refreshMenu.bind(this);\r\n }\r\n\r\n refreshMenu() {\r\n localStorage.setItem('refreshMenu', \"show-menu\");\r\n var isElement = document.getElementById('r2');\r\n if (isElement == null) {\r\n document.getElementById('r1').click();\r\n }\r\n else {\r\n document.getElementById('r1').click();\r\n document.getElementById('r2').click();\r\n }\r\n }\r\n\r\n toggle(tab) {\r\n if (this.state.activeTab !== tab) {\r\n this.setState({\r\n activeTab: tab\r\n });\r\n }\r\n\r\n }\r\n loadDashBoard() {\r\n let token = localStorage.getItem('accessKey');\r\n const data = {\r\n \"UserStoreID\": parseInt(this.props.match.params.storeid),\r\n \"SearchID\": parseInt(this.props.match.params.searchid),\r\n \"RegionID\":CONFIG.RegionId\r\n }\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n }\r\n axios.post(CONFIG.API_URL + 'unit/dashboardSearchlocation', data)\r\n .then(response => { \r\n // this.state.isLoading=true;\r\n const locationInfoData = response.data.data.unitDashboard;\r\n const centerPoint = response.data.data.CenterPoints;\r\n localStorage.setItem('locSearchName', locationInfoData.searchName);\r\n this.setState({\r\n locationInfoData: locationInfoData, storeCount : locationInfoData.compsCount\r\n })\r\n }).catch((err) => {\r\n if (err.response.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else if (err.response.status === 403) {\r\n const { from } = this.props.location.state || { from: { pathname: \"/UnauthorizedAccess\" } };\r\n this.props.history.push(from);\r\n }\r\n else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }\r\n\r\n loadSummary() {\r\n let token = localStorage.getItem('accessKey');\r\n const data = {\r\n \"UserStoreID\": this.props.match.params.storeid,\r\n \"SearchId\": this.props.match.params.searchid,\r\n \"RegionId\" : CONFIG.RegionId\r\n }\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n }\r\n axios.post(CONFIG.API_URL + 'dashboard/currentpricinganalysissummary', data)\r\n .then(response => {\r\n var isElement = document.getElementById('r2');\r\n if (isElement == null) {\r\n document.getElementById('r1').click();\r\n }\r\n else {\r\n document.getElementById('r1').click();\r\n document.getElementById('r2').click();\r\n }\r\n // this.state.isLoading=true;\r\n const analysisSummary = response.data.current;\r\n this.setState({\r\n analysisSummary: analysisSummary,\r\n isLoading: false,\r\n })\r\n }).catch((err) => {\r\n if (err.response.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else {\r\n alert(err.response.data);\r\n }\r\n });\r\n\r\n \r\n }\r\n\r\n componentDidMount() {\r\n \r\n let activeTab = this.props.match.params.tab === \"2\" ? '2': '1';\r\n let pageNavigate = this.props.match.params.tab;\r\n this.setState({ \r\n isLoading: true, activeTab, pageNavigate\r\n })\r\n // let storeCount = this.props.match.params.storecount;\r\n // this.setState({ storeCount })\r\n this.loadDashBoard();\r\n this.loadSummary();\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (nextProps.match.params.searchid !== this.props.match.params.searchid) {\r\n this.setState({ \r\n isLoading: true\r\n })\r\n this.props.match.params.storeid = nextProps.match.params.storeid;\r\n this.props.match.params.searchid = nextProps.match.params.searchid;\r\n // let storeCount = nextProps.match.params.storecount;\r\n // this.setState({ storeCount })\r\n this.loadDashBoard();\r\n this.loadSummary();\r\n\r\n // window.location.reload();\r\n }\r\n }\r\n trackModal() {\r\n let UserStoreID = this.props.match.params.storeid;\r\n let SearchId = this.props.match.params.searchid;\r\n const data={\r\n \"UserStoreId\":UserStoreID,\r\n \"SearchId\":SearchId,\r\n \"RegionId\":CONFIG.RegionId\r\n }\r\n axios.post(CONFIG.API_URL + 'unit/competitorslist' ,data)\r\n .then(response => {\r\n \r\n // this.state.isLoading=true;\r\n const trackModalData = response.data.competitor.unitCompData;\r\n\r\n this.setState({ trackModalData, storeModal: true, })\r\n }).catch((err) => {\r\n if (err.response.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }\r\n trackModalClose() {\r\n this.setState({\r\n storeModal: false,\r\n pageCount: 0\r\n })\r\n }\r\n handleChangePageTrack = (event, pageCount) => {\r\n this.setState({ pageCount });\r\n };\r\n handleChangeRowsPerPageTrack = event => {\r\n this.setState({ pageCount: 0, 10: event.target.value });\r\n };\r\n \r\n render() {\r\n document.title = 'StorTrack: Self-storage market pricing data';\r\n const { isLoading, locationInfoData, analysisSummary, activeTab, trackModalData, pageCount, storeCount, centerPoint } = this.state;\r\n const defaultProps = {\r\n helpTitle: 'Current Pricing Analysis',\r\n helpContent: \"

This is a detailed view of the rates for this Unit Type

Offered by x stores

The number of stores in this Market advertising this unit type

\" + `${CONFIG.RegionId === 3 ? \"
Current Lowest Weekly Price
\":\"
Current Lowest Price
\"}` + \"

This is the lowest price currently advertised for this unit type in this Market and the store advertising it. The lowest price shown here is the lowest of the \"+ `${CONFIG.RegionId === 3 ? \"Advertised Online Weekly Rate\" : \"Advertised Online Rate\"}`+\"

\"+`${CONFIG.RegionId === 3 ? \"
Current Average Weekly Price
\":\"
Current Average Price
\"}`+\"

This is the average price for this unit type in this Market. The average rate is the average of all \"+`${CONFIG.RegionId === 3 ? \"Advertised Online Weekly Rates\":\"Advertised Online Rates\"}`+\"

\"+`${CONFIG.RegionId === 3 ? \"
Current Highest Weekly Price
\":\"
Current Highest Price
\"}`+\"

This is the highest price currently advertised for this unit type in this Market and the store advertising it. The highest price shown here is the highest \"+`${CONFIG.RegionId === 3 ? \"Advertised Online Weekly Rate\":\"Advertised Online Rate\"}`+\"

*Your store prices are included in the calculations.

\"\r\n }\r\n // let outputInventory = ;\r\n let cutCur = locationInfoData.countryCurrency ? locationInfoData.countryCurrency : 'N/A';\r\n let BreadcrumbTab = this.state.activeTab === '1' ? 'Current Pricing Analysis' : this.state.activeTab === '2' ? 'Inventory & Availability Analysis' : this.state.activeTab === '3' ? 'Detailed View of Stores' : this.state.activeTab === '4' ? 'Map View' : this.state.activeTab === '5' ? 'Effective Rate Analysis' : 'Current tab';\r\n let clp = analysisSummary.lowestPrice;\r\n let cap = analysisSummary.averagePrice;\r\n let chp = analysisSummary.highestPrice;\r\n if(clp){\r\n var splt_clp = clp.toString().split('.');\r\n let splt_val_clp = splt_clp[1] ? splt_clp[1].length === 1 ? '.'+splt_clp[1]+'0' : splt_clp[1].length === 2 ? '.'+splt_clp[1] : '' : '';\r\n clp = cutCur+ splt_clp[0]+splt_val_clp;\r\n }\r\n if(cap){\r\n var splt_cap = cap.toString().split('.');\r\n let splt_val_cap = splt_cap[1] ? splt_cap[1].length === 1 ? '.'+splt_cap[1]+\"0\" : splt_cap[1].length === 2 ? '.'+splt_cap[1] : '' : '';\r\n cap = cutCur+ splt_cap[0]+splt_val_cap;\r\n }\r\n if(chp){\r\n var splt_chp = chp.toString().split('.');\r\n let splt_val_chp = splt_chp[1] ? splt_chp[1].length === 1 ? '.'+splt_chp[1]+'0' : splt_chp[1].length === 2 ? '.'+splt_chp[1] : '' : '';\r\n chp = cutCur+ splt_chp[0]+splt_val_chp;\r\n }\r\n return (\r\n
\r\n
\r\n {isLoading ?
: ''}\r\n \r\n \r\n\r\n {localStorage.getItem('isMVP_User') === \"false\" ? this.refreshMenu()} color=\"inherit\">My Market : \"\"}\r\n \r\n Go to Market Dashboard\r\n \r\n {this.state.pageNavigate === '3' || this.state.pageNavigate === '2' ?{'Market Alerts'}:''}\r\n ({locationInfoData ? locationInfoData.searchName : 'Market Detail'}) {BreadcrumbTab}\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n

{locationInfoData ? locationInfoData.searchName : 'N/A'}

\r\n {isLoading ? '' : parseInt(storeCount) !== 0 ?\r\n

Currently offered by this.trackModal()} to=\"#\">{storeCount ? parseInt(storeCount) > 1 ? storeCount + ' stores' : storeCount + ' store' : 'N/A'}

\r\n :

Currently offered by no store

}\r\n \r\n {isLoading===false ?\r\n \r\n

{locationInfoData && locationInfoData.storeName && locationInfoData.storeName !== null && locationInfoData.storeName !== '' && locationInfoData.storeName !== undefined ? locationInfoData.storeName : 'Your Store'}

\r\n
24 ? \"pd-btm-35\" : \"pd-btm-20\" : \"pd-btm-20\"}>

{locationInfoData && locationInfoData.storeAddress1 && locationInfoData.storeAddress1 !== null && locationInfoData.storeAddress1 !== '' ? locationInfoData.storeAddress1 +',' : ''} {locationInfoData.storeAddress2 ? locationInfoData.storeAddress2 + ', ' : ''} {locationInfoData && locationInfoData.storeCity ? locationInfoData.storeCity+', ' : locationInfoData.searchType === 1 && (locationInfoData.storeCity === '' || locationInfoData.storeCity === null) && (locationInfoData.storeZipCode === '' || locationInfoData.storeZipCode === null) ? locationInfoData.latitude+', ' +locationInfoData.longitude+', ' : ''}{locationInfoData.storeState ? locationInfoData.storeState : ''} {locationInfoData ? locationInfoData.storeZipCode : 'N/A'}

\r\n

Coverage: {locationInfoData ? locationInfoData.storeZoneCoverage : 'N/A'}

\r\n :''}\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n

{CONFIG.RegionId === 3 ? \"Current Lowest Weekly Price\" : \"Current Lowest Price\"}

\r\n

{analysisSummary ? analysisSummary.lowestPriceStoreName : isLoading===false ? 'N/A':''}

\r\n
{clp ? clp : isLoading===false ? 'N/A':''}
\r\n \r\n \r\n

{CONFIG.RegionId === 3 ? \"Current Average Weekly Price\" : \"Current Average Price\"}

\r\n

\r\n
{cap ? cap : isLoading===false ? 'N/A':''}
\r\n \r\n \r\n

{CONFIG.RegionId === 3 ? \"Current Highest Weekly Price\" : \"Current Highest Price\"}

\r\n

{analysisSummary ? analysisSummary.highestPriceStoreName : isLoading===false ? 'N/A':''}

\r\n
{chp ? chp : isLoading===false ? 'N/A':''}
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n {activeTab === '1' ? : ''}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {activeTab === '5' ? : ''}\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {activeTab === '2' ? : ''}\r\n {/* */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {activeTab === '3' ? : ''}\r\n {/* */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {activeTab === '4' ? \r\n CONFIG.IsMapbox ? \r\n : : ''}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n this.trackModal()} \r\n className=\"store-mainpopup\"\r\n backdrop=\"static\">\r\n {locationInfoData ? locationInfoData.storeName : 'N/A'}\r\n \r\n \r\n \r\n \r\n COMPETITOR NAME\r\n ADDRESS\r\n\r\n \r\n \r\n \r\n {trackModalData ? trackModalData.slice(pageCount * 10, pageCount * 10 + 10).map((trackData) =>\r\n \r\n {trackData.storename}\r\n {trackData.address}\r\n\r\n \r\n ) :\r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n );\r\n }\r\n\r\n}","import React from 'react';\r\nimport { Container, Row, Col} from 'reactstrap';\r\nimport { CONFIG } from '../../utils/config';\r\nimport './ErrorPages.css'\r\nimport UnAuthorized from './../../Assets/Images/stop_hand.png';\r\n\r\nexport default class ErrorPage extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n time: 10\r\n };\r\n }\r\n componentDidMount() {\r\n if(this.props.match.path === '/page_expired'){\r\n window.history.pushState(null, document.title, window.location.href);\r\n window.addEventListener('popstate', function (event){\r\n window.history.pushState(null, document.title, window.location.href);\r\n });\r\n this.intervalID = setInterval(\r\n () => this.tick(),\r\n 1000\r\n );\r\n }\r\n }\r\n componentWillUnmount() {\r\n clearInterval(this.intervalID);\r\n }\r\n tick() {\r\n if(this.state.time > 0){\r\n this.setState({\r\n time: this.state.time - 1\r\n });\r\n }\r\n else{\r\n localStorage.removeItem('accessKey');\r\n localStorage.removeItem('tempNoStoreCount');\r\n localStorage.removeItem('isPaid');\r\n localStorage.removeItem('getNames');\r\n localStorage.removeItem('instructionMsg');\r\n localStorage.removeItem('StId');\r\n localStorage.removeItem('userType');\r\n localStorage.removeItem('userStatus');\r\n localStorage.removeItem('locSearchName');\r\n localStorage.removeItem('userManual');\r\n localStorage.removeItem('refreshMenu');\r\n localStorage.removeItem('IsUpdatePaid');\r\n localStorage.removeItem('displayMessage');\r\n window.top.location.href = CONFIG.STK_SIGNURL;\r\n }\r\n \r\n }\r\n\r\n render(){\r\n return(\r\n
\r\n \r\n \r\n \r\n
\r\n {this.props.match.path === '/page_expired' ? \r\n \r\n

Your session has expired, we will redirect to the home page within

\r\n {this.state.time} seconds...\r\n
\r\n :\r\n this.props.match.path === '/UnauthorizedAccess' ? \r\n \r\n
\r\n \r\n
\r\n
\r\n

\r\n Access is denied\r\n

\r\n

\r\n You do not have permission to view this page using the credentials that you supplied.\r\n

\r\n
\r\n
\r\n If you require any assistance or support please contact us at {CONFIG.Mail_Support} or {CONFIG.Toll_Free} {CONFIG.RegionId === 3 ? \"UK Direct tel:\" +CONFIG.Sales_Support : ''}.\r\n
\r\n You can click on any visible link on top of this page to continue accessing the site.\r\n
\r\n
\r\n :\r\n
\r\n

404 - File or directory not found.

\r\n

The resource you are looking for might have been removed, had its name changed, or is temporarily unavailable.

\r\n
\r\n }\r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n }\r\n\r\n}","import React from 'react';\r\nimport ReactDOM from \"react-dom\";\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Breadcrumbs from '@material-ui/core/Breadcrumbs';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport Table from '@material-ui/core/Table';\r\nimport TableHead from '@material-ui/core/TableHead';\r\nimport TableCell from '@material-ui/core/TableCell';\r\nimport TableRow from '@material-ui/core/TableRow';\r\nimport FormLabel from '@material-ui/core/FormLabel';\r\nimport classnames from 'classnames';\r\nimport Radio from '@material-ui/core/Radio';\r\nimport RadioGroup from '@material-ui/core/RadioGroup';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport { AvForm, AvField } from 'availity-reactstrap-validation';\r\nimport { faTrash } from '@fortawesome/free-solid-svg-icons';\r\nimport { Container, Button, TabContent, TabPane, Nav, NavItem, NavLink, Row, Col, FormGroup, Modal, ModalHeader, ModalFooter, ModalBody, Label } from 'reactstrap';\r\nimport { Table as ReactTable } from 'reactstrap';\r\nimport TableSortLabel from '@material-ui/core/TableSortLabel';\r\nimport Stepper from '@material-ui/core/Stepper';\r\nimport Step from '@material-ui/core/Step';\r\nimport StepLabel from '@material-ui/core/StepLabel';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport CloseIcon from '@material-ui/icons/Close';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport axios from 'axios';\r\nimport { CONFIG } from '../../utils/config';\r\nimport { COMMON } from '../../utils/common';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport Snackbar from '@material-ui/core/Snackbar';\r\nimport moment from 'moment';\r\nimport TablePagination from '@material-ui/core/TablePagination';\r\nimport { TableBody } from '@material-ui/core';\r\nimport TableFooter from '@material-ui/core/TableFooter';\r\nimport FirstPageIcon from '@material-ui/icons/FirstPage';\r\nimport KeyboardArrowLeft from '@material-ui/icons/KeyboardArrowLeft';\r\nimport KeyboardArrowRight from '@material-ui/icons/KeyboardArrowRight';\r\nimport LastPageIcon from '@material-ui/icons/LastPage';\r\nimport { HashLink as Link } from 'react-router-hash-link';\r\nimport { parse } from '@fortawesome/fontawesome-svg-core';\r\nimport { HelpTextPopup } from './../HelpTextPopup/index';\r\n\r\nfunction getSteps() {\r\n return ['Alert Type', 'Unit Type', 'Change Type', 'Alert Name'];\r\n}\r\nexport default class Alert extends React.Component {\r\n constructor(props) {\r\n const steps = getSteps();\r\n super(props);\r\n this.state = {\r\n isLoading: false,\r\n activeTab: '1',\r\n order: 'desc',\r\n orderBy: 'createdDate',\r\n alertModal: false,\r\n activeStep: 0,\r\n dialogcnt: '',\r\n isTab: 0,\r\n alertTypeValue: '',\r\n alertArray: [],\r\n detailModal: false,\r\n snackOpen: false,\r\n snackMSg: '',\r\n homeData: [],\r\n selectedIds: [],\r\n lengthOfIds: [],\r\n alertIds: [],\r\n manageAlertList: [],\r\n userStoreId: 0,\r\n pageCountMDT: 0,\r\n pageCount: 0,\r\n pageCountMA: 0,\r\n Page: 0,\r\n alertPopupValues: [],\r\n helpModal: false,\r\n storeAddress: [],\r\n isActiveValue: false,\r\n userStoreId: parseInt(this.props.match.params.userstoreid),\r\n viewAlertsList: [],\r\n matchedComp: [],\r\n newDate: new Date(),\r\n alertdeleteModal: false,\r\n alertViewModal: false,\r\n alertDeleteId: 0,\r\n alertViewId: 0\r\n }\r\n this.handleRequestSort = this.handleRequestSort.bind(this);\r\n this.stableSort = this.stableSort.bind(this);\r\n this.getSorting = this.getSorting.bind(this);\r\n this.selectCheckBox = this.selectCheckBox.bind(this);\r\n }\r\n // html formatting\r\n alertHtmlChange(data) {\r\n return { __html: data };\r\n }\r\n // html formatting\r\n alertTextChange(data) {\r\n return { __html: data };\r\n }\r\n //modal for showing alert details\r\n openAlertDetails(values) {\r\n this.setState({ isLoading: true });\r\n let alertPopupValues = []\r\n this.setState({ detailModal: true, });\r\n let token = localStorage.getItem('accessKey');\r\n let alertOpenIP = {\r\n \"AlertID\": values.alertID,\r\n \"RegionId\": CONFIG.RegionId\r\n }\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n }\r\n axios.post(CONFIG.API_URL + 'Alert/getalert', alertOpenIP)\r\n .then(response => {\r\n alertPopupValues = response.data.data.viewAlertsInformation;\r\n this.setState({ alertPopupValues, isLoading: false });\r\n })\r\n .catch((err) => {\r\n this.setState({ isLoading: false });\r\n if (err.response.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }\r\n deleteModalClose(){\r\n this.setState({ alertdeleteModal: false });\r\n }\r\n //popup for delete alert \r\n deleteModal(id){\r\n this.setState({ alertdeleteModal: true, alertDeleteId: id });\r\n }\r\n //delete alert \r\n deleteAlert() {\r\n this.setState({ isLoading: true });\r\n let token = localStorage.getItem('accessKey');\r\n let deleteIP = {\r\n \"AlertID\": this.state.alertDeleteId,\r\n \"AlertIDList\": 0,\r\n \"RegionId\": CONFIG.RegionId\r\n }\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n }\r\n axios.post(CONFIG.API_URL + 'Alert/deletealerts', deleteIP)\r\n .then(response => {\r\n if (response.status === 200)\r\n {\r\n let pageCountMA = this.state.pageCountMA;\r\n this.setState({ pageCountMA, alertdeleteModal: false, isLoading: false, snackOpen: true, snackMSg: \"Alert deleted successfully\" }, () => {\r\n this.manageAlertsLoad();\r\n });\r\n }\r\n })\r\n .catch((err) => {\r\n this.setState({ isLoading: false });\r\n if (err.response.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }\r\n \r\n deleteViewClose(){\r\n this.setState({ alertViewModal: false});\r\n }\r\n //popup for deleteView alert \r\n deleteViewModal(id){\r\n this.setState({ alertViewModal: true, alertViewId: id });\r\n }\r\n //delete view alert\r\n deleteViewAlert() {\r\n this.setState({ isLoading: true });\r\n let token = localStorage.getItem('accessKey');\r\n let deleteIP = {\r\n \"Id\": this.state.alertViewId,\r\n \"RegionId\": CONFIG.RegionId\r\n }\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n }\r\n axios.post(CONFIG.API_URL + 'Alert/deleteviewalerts', deleteIP)\r\n .then(response => {\r\n if (response.status === 200){\r\n let pageCountMDT = this.state.pageCountMDT;\r\n this.setState({ pageCountMDT, alertViewModal: false, isLoading: false, snackOpen: true, snackMSg: \"Alert deleted successfully\" }, () => {\r\n this.viewAlertsLoad();\r\n });}\r\n })\r\n .catch((err) => {\r\n this.setState({ isLoading: false });\r\n if (err.response.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }\r\n //modal close\r\n alertUpdateClose() {\r\n this.setState({ alertUpdateModal: false });\r\n }\r\n //alert modal popup open\r\n alertUpdateModal(event, id, Value) {\r\n this.setState({ alertUpdateModal: true, alertIds: id, isActiveValue: Value });\r\n }\r\n //alert update\r\n alertUpdate() {\r\n this.setState({ isLoading: true });\r\n let token = localStorage.getItem('accessKey');\r\n let alertUpdateIp = {\r\n \"AlertID\": this.state.alertIds,\r\n \"IsActive\": this.state.isActiveValue ? 0 : 1,\r\n \"RegionId\": CONFIG.RegionId\r\n }\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n }\r\n axios.post(CONFIG.API_URL + 'Alert/updatealert', alertUpdateIp) //this.state.userStoreId/CONFIG.RegionId)\r\n .then(response => {\r\n let pageCountMA = this.state.pageCountMA;\r\n this.setState({ alertUpdateModal: false, isLoading: false }, () => {\r\n this.manageAlertsLoad();\r\n })\r\n })\r\n .catch((err) => {\r\n this.setState({ isLoading: false });\r\n if (err.response.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }\r\n //select all checkbox\r\n selectCheckBox(event, id) {\r\n let checkBoxLength = this.state.homeData.userStoreAlert;\r\n let selectedIds = this.state.selectedIds;\r\n let lengthOfIds = this.state.lengthOfIds;\r\n let index;\r\n let valueChange;\r\n if (event.target.checked) {\r\n index = selectedIds.indexOf(+id + '|0');\r\n if (index >= 0) {\r\n selectedIds.splice(index, 1)\r\n }\r\n selectedIds.push(+id + '|1');\r\n lengthOfIds.push(+id)\r\n }\r\n else if (!event.target.checked) {\r\n index = selectedIds.indexOf(+id + '|1');\r\n if (index >= 0) {\r\n selectedIds.splice(index, 1)\r\n }\r\n selectedIds.push(+id + '|0');\r\n var matchedId = lengthOfIds.indexOf(+id);\r\n if (matchedId > -1) {\r\n lengthOfIds.splice(index, 1)\r\n }\r\n }\r\n valueChange = this.state.lengthOfIds.length === checkBoxLength.length ? \"1\" : \"0\"\r\n this.state.alertArray.applyRule = valueChange;\r\n this.setState({\r\n selectedIds, lengthOfIds\r\n });\r\n }\r\n //snackbar close\r\n snackHandleclose = (event, reason) => {\r\n if (reason === 'clickaway') {\r\n return;\r\n }\r\n this.setState({ snackOpen: false });\r\n };\r\n //modal for alert details open/close \r\n detailModalClose() {\r\n this.setState(prevState => ({\r\n detailModal: !prevState.detailModal,\r\n }));\r\n }\r\n //Tabs \r\n tabtoggle(tab) {\r\n if (this.state.activeTab !== tab) {\r\n\r\n this.setState({ activeTab: tab });\r\n }\r\n }\r\n handleChangePage = (event, pageCount) => {\r\n this.setState({ pageCount });\r\n };\r\n handleChangePageMTD = (event, pageCountMDT) => {\r\n this.setState({ pageCountMDT });\r\n };\r\n handleChangePageMA = (event, pageCountMA) => {\r\n this.setState({ pageCountMA });\r\n };\r\n handleChangeRowsPerPageMA = event => {\r\n this.setState({ pageCountMA: 0, 10: event.target.value });\r\n };\r\n handleChangeRowsPerPageMTD = event => {\r\n this.setState({ pageCountMDT: 0, 10: event.target.value });\r\n };\r\n handleChangeRowsPerPage = event => {\r\n this.setState({ pageCount: 0, 10: event.target.value });\r\n };\r\n //save alert details\r\n alertSubmit(event, errors, values) {\r\n var datainput = this.state.alertArray;\r\n if (errors.length === 0) {\r\n if (this.state.activeStep === 0) {\r\n if (this.state.alertArray.alertType != undefined) {\r\n this.setState({ activeStep: this.state.activeStep + 1 });\r\n } else {\r\n this.setState({ snackOpen: true, snackMSg: 'Please select either one option ' });\r\n }\r\n } else if (this.state.activeStep === 1) {\r\n this.setState({ activeStep: this.state.activeStep + 1 });\r\n } \r\n else if (this.state.activeStep === 2) {\r\n if (this.state.selectedIds.length > 0 && this.state.alertArray.applyRule != undefined && this.state.lengthOfIds.length > 0 && (this.state.alertArray.dollarValue != \"0\" && this.state.alertArray.percentageValue != \"0\")) {\r\n let matchedComp = [];\r\n let alertArray = this.state.alertArray;\r\n let unitType = this.state.alertArray.unitTypeName;\r\n let alertType = this.state.alertArray.alertType === '1' ? 'Pricing' : 'Inventory';\r\n let date = moment(this.state.newDate).format('DD-MMM-YYYY');\r\n alertArray['alertName'] = unitType + ', ' + alertType+' Change, ' + date;\r\n for (var i = 0; i < this.state.homeData.userStoreAlert.length; i++) {\r\n for (var j = 0; j < this.state.lengthOfIds.length; j++) {\r\n if (this.state.lengthOfIds[j] === this.state.homeData.userStoreAlert[i].storeID) {\r\n matchedComp.push(this.state.homeData.userStoreAlert[i])\r\n }\r\n }\r\n }\r\n this.setState({ activeStep: this.state.activeStep + 1, matchedComp });\r\n }\r\n else if (this.state.alertArray.applyRule === undefined) {\r\n\r\n this.setState({ snackMSg: \"Please select either one rule\", snackOpen: true });\r\n } else if (this.state.lengthOfIds.length === 0) {\r\n\r\n this.setState({ snackMSg: \"Please select atleast one competitor\", snackOpen: true });\r\n } else if (this.state.alertArray.dollarValue === '0') {\r\n this.setState({ snackMSg: \"Please enter valid price\", snackOpen: true });\r\n } else if (this.state.alertArray.percentageValue === '0') {\r\n this.setState({ snackMSg: \"Please enter valid price\", snackOpen: true });\r\n }\r\n let goTo = document.getElementById(\"myDiv\");\r\n if(goTo != null)\r\n {\r\n goTo.scrollIntoView();\r\n }\r\n }\r\n else if (this.state.activeStep === 3) {\r\n this.setState({ isLoading: true });\r\n let token = localStorage.getItem('accessKey');\r\n let alertIp = {\r\n \"RegionId\": CONFIG.RegionId,\r\n \"AlertName\": this.state.alertArray.alertName,//\"Nameo f Alerts\",\r\n \"AlertType\": parseInt(this.state.alertArray.alertType),//Price or Inventory\r\n \"AlertFor\": this.state.alertArray.alertType === \"1\" ? parseInt(this.state.alertArray.priceOption) : 4,//Average, Premium or Value\r\n \"AlertRange\": this.state.alertArray.alertType === \"2\" ? parseInt(this.state.alertArray.inventoryChange) : this.state.alertArray.priceOptionV1 ? parseInt(this.state.alertArray.priceOptionV1) : parseInt(this.state.alertArray.priceOptionV2),//Greter, Less or Equal to | InCre. Decr By | Appears or Dis.Appears\r\n \"UserSearchID\": parseInt(this.state.alertArray.unitTypeSel),// \"Unit type Value i.e. value of 5X5\"\r\n \"AllComps\": parseInt(this.state.alertArray.applyRule),//1 - All or 0-Specific Comps\r\n \"AlertValue\": this.state.alertArray.dollarValue && this.state.alertArray.alertType === \"1\" ? parseFloat(this.state.alertArray.dollarValue) : this.state.alertArray.percentageValue && this.state.alertArray.alertType === \"1\" ? parseFloat(this.state.alertArray.percentageValue) : 0,//Value ranges\r\n \"CompsList\": this.state.alertArray.applyRule === '1' ? \"\" : this.state.selectedIds.toString()//List Comp List or 1234|0,1235|1\r\n }\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n }\r\n axios.post(CONFIG.API_URL + 'alert/addnewalert', alertIp)\r\n .then(res => {\r\n this.setState({ pageCountMA: 0, pageCountMDT: 0, isLoading: false, alertModal: false, snackMSg: \"Alert created successfully\", snackOpen: true, activeStep: 0, alertArray: [] }, () => {\r\n this.manageAlertsLoad();\r\n });\r\n })\r\n .catch((err) => {\r\n this.setState({ isLoading: false });\r\n if (err.response.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else if (err.response.status === 400) {\r\n this.setState({ snackOpen: true, snackMSg: err.response.data.Message });\r\n }\r\n else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }\r\n } else {\r\n let goTop = document.getElementById(\"myDiv\");\r\n if(goTop != null)\r\n {\r\n goTop.scrollIntoView();\r\n }\r\n }\r\n }\r\n //modal back\r\n handleBack() {\r\n this.setState({ activeStep: this.state.activeStep - 1 });\r\n }\r\n //open alert modal\r\n alertOpen() {\r\n this.setState({ isLoading: true });\r\n this.setState(prevState => ({\r\n alertModal: !prevState.alertModal\r\n }));\r\n let userStoreId = parseInt(this.props.match.params.userstoreid);\r\n let token = localStorage.getItem('accessKey');\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n }\r\n axios.get(CONFIG.API_URL + 'Alert/competitors/' + userStoreId + '/' + CONFIG.RegionId) //this.state.userStoreId/CONFIG.RegionId)\r\n .then(response => {\r\n var homeData = response.data.competitorslist;\r\n let alertArray = this.state.alertArray;\r\n let selectedIds = [];\r\n let lengthOfIds = [];\r\n alertArray['applyRule'] = \"1\";\r\n alertArray['alertType'] = \"1\";\r\n let data = homeData.fetchAlertPerc.filter(it => it.rangeFor === 'Price');\r\n let dropDownValues = homeData.userStoreAlert.map(storeAlert => {\r\n selectedIds.push(storeAlert.storeID + '|1');\r\n lengthOfIds.push(storeAlert.storeID);\r\n })\r\n this.setState({ homeData, isLoading: false, alertArray: alertArray, selectedIds, lengthOfIds, isTab: 1 }, () => {\r\n this.manageAlertsLoad();\r\n });\r\n })\r\n .catch((err) => {\r\n this.setState({ isLoading: false });\r\n if (err.response.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }\r\n //closing the alert modal\r\n alertClose() {\r\n this.setState({ alertModal: false, activeStep: 0, alertArray: [], selectedIds: [] });\r\n }\r\n //Table Sorting \r\n handleRequestSort(event, property) {\r\n const { order, orderBy } = this.state;\r\n const isDesc = orderBy === property && order === 'desc';\r\n let sort = isDesc ? 'asc' : 'desc';\r\n this.setState({ order: sort, orderBy: property });\r\n }\r\n //Table Sorting order\r\n desc(a, b, orderBy) {\r\n if (b[orderBy] < a[orderBy]) {\r\n return -1;\r\n }\r\n if (b[orderBy] > a[orderBy]) {\r\n return 1;\r\n }\r\n return 0;\r\n }\r\n //Table Sorting the selected Column\r\n stableSort(array, cmp) {\r\n const stabilizedThis = array.map((el, index) => [el, index]);\r\n stabilizedThis.sort((a, b) => {\r\n const order = cmp(a[0], b[0]);\r\n if (order !== 0) return order;\r\n return a[1] - b[1];\r\n });\r\n return stabilizedThis.map(el => el[0]);\r\n }\r\n //Table Sorting Order Request\r\n getSorting(order, orderBy) {\r\n return order === 'desc' ? (a, b) => this.desc(a, b, orderBy) : (a, b) => -this.desc(a, b, orderBy);\r\n }\r\n //all on change events handled here\r\n onChangeValues(e) {\r\n let alertArray = this.state.alertArray;\r\n if (e.target.name != '' && e.target.name != undefined) {\r\n if (e.target.name == 'alertType') {\r\n alertArray['alertType'] = e.target.value;\r\n this.setState({ isTab: parseInt(e.target.value) });\r\n } else if (e.target.name === 'unitTypeSel') {\r\n alertArray['unitTypeSel'] = e.target.value;\r\n alertArray['unitTypeName'] = this.state.homeData.fetchUnits.filter(it => it.searchID === parseInt(e.target.value)).map((x) => x.searchName)\r\n } else if (e.target.name === 'inventoryChange') {\r\n alertArray['inventoryChange'] = e.target.value;\r\n alertArray['inventoryChangeName'] = this.state.homeData.fetchAlertPerc.filter(it => it.id === parseInt(e.target.value)).map((x) => x.alertRange)\r\n }\r\n else if (e.target.name === 'priceOption') {\r\n alertArray['priceOption'] = e.target.value;\r\n alertArray['priceOptionName'] = this.state.homeData.fetchAlertFor.filter(it => it.id === parseInt(e.target.value)).map((x) => x.alertFor)\r\n }\r\n else if (e.target.name === 'priceOptionV1') {\r\n alertArray['priceOptionV1'] = e.target.value;\r\n alertArray['priceOptionV1Name'] = this.state.homeData.fetchAlertPerc.filter(it => it.id === parseInt(e.target.value)).map((x) => x.alertRange)\r\n alertArray.priceOptionV2 = '';\r\n alertArray.percentageValue = '';\r\n alertArray.priceOptionV2Name = ''\r\n\r\n }\r\n else if (e.target.name === 'dollarValue') {\r\n\r\n alertArray['dollarValue'] = e.target.value;\r\n alertArray.priceOptionV2 = '';\r\n alertArray.percentageValue = '';\r\n alertArray.priceOptionV2Name = ''\r\n\r\n }\r\n else if (e.target.name === 'priceOptionV2') {\r\n alertArray['priceOptionV2'] = e.target.value;\r\n alertArray['priceOptionV2Name'] = this.state.homeData.fetchAlertPerc.filter(it => it.id === parseInt(e.target.value)).map((x) => x.alertRange)\r\n alertArray.priceOptionV1 = '';\r\n alertArray.dollarValue = '';\r\n alertArray.priceOptionV1Name = ''\r\n }\r\n else if (e.target.name === 'percentageValue') {\r\n alertArray['percentageValue'] = e.target.value;\r\n alertArray.priceOptionV1 = '';\r\n alertArray.dollarValue = '';\r\n alertArray.priceOptionV1Name = ''\r\n }\r\n else if (e.target.name === 'inventoryChange') {\r\n alertArray['inventoryChange'] = e.target.value;\r\n }\r\n else if (e.target.name === 'alertName') {\r\n alertArray['alertName'] = e.target.value;\r\n }\r\n else if (e.target.name === 'applyRule') {\r\n alertArray['applyRule'] = e.target.value;\r\n if (e.target.value === '1') {\r\n let selectedIds = [];\r\n let lengthOfIds = [];\r\n if (e.target.checked) {\r\n this.state.homeData.userStoreAlert.map(storeAlert => {\r\n selectedIds.push(storeAlert.storeID + '|1');\r\n lengthOfIds.push(storeAlert.storeID);\r\n })\r\n }\r\n this.setState({ selectedIds, lengthOfIds });\r\n } else {\r\n this.setState({ selectedIds: [], lengthOfIds: [] });\r\n }\r\n }\r\n this.setState({ alertTypeValue: e.target.value, alertArray });\r\n }\r\n }\r\n //load manage alert grid list\r\n manageAlertsLoad() {\r\n this.setState({ isLoading: true });\r\n let alertIds = [];\r\n let token = localStorage.getItem('accessKey');\r\n let userStoreId = parseInt(this.props.match.params.userstoreid);\r\n let manageAlertIp = {\r\n \"userStoreID\": userStoreId,\r\n \"RegionId\": CONFIG.RegionId,\r\n }\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n }\r\n axios.post(CONFIG.API_URL + 'Alert/managealerts', manageAlertIp)\r\n .then(response => {\r\n let pageNav = this.state.pageCountMA;\r\n let manageAlertList = response.data.data.manageAlertsInfo;\r\n manageAlertList.map(data => {\r\n if (data.isActive === true) {\r\n alertIds.push(data.alertID + '|1')\r\n } else {\r\n alertIds.push(data.alertID + '|0')\r\n }\r\n })\r\n if(pageNav === 1){\r\n let checkMaPg = manageAlertList.length < 21 ? 0 : manageAlertList.length < 31 ? 1 : 2 ;\r\n this.setState({pageCountMA : checkMaPg});\r\n }\r\n this.setState({ manageAlertList, userStoreId, alertIds, isLoading: false });\r\n })\r\n .catch((err) => {\r\n this.setState({ isLoading: false });\r\n if (err.response.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }\r\n //load view alert grid list\r\n viewAlertsLoad() {\r\n this.setState({ isLoading: true });\r\n let alertIds = [];\r\n let token = localStorage.getItem('accessKey');\r\n let userStoreId = parseInt(this.props.match.params.userstoreid);\r\n let manageAlertIp = {\r\n \"userStoreID\": userStoreId,\r\n \"RegionId\": CONFIG.RegionId,\r\n }\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n }\r\n axios.post(CONFIG.API_URL + 'Alert/viewalerts', manageAlertIp)\r\n .then(response => {\r\n let pageNav = this.state.pageCountMDT;\r\n let viewAlertsList = response.data.data.viewAlertsInformation\r\n if(pageNav === 1){\r\n let checkPg = viewAlertsList.length < 21 ? 0 : viewAlertsList.length < 31 ? 1 : 2 ;\r\n this.setState({pageCountMDT : checkPg});\r\n }\r\n this.setState({\r\n viewAlertsList, isLoading: false, \r\n });\r\n })\r\n .catch((err) => {\r\n this.setState({ isLoading: false });\r\n if (err.response.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }\r\n //load home data \r\n dashboardLocation() {\r\n this.setState({ isLoading: true });\r\n let alertIds = this.state.alertIds;\r\n let token = localStorage.getItem('accessKey');\r\n let userStoreId = parseInt(this.props.match.params.userstoreid);\r\n let dashboardIp = {\r\n \"userStoreID\": userStoreId,\r\n \"RegionId\": CONFIG.RegionId,\r\n }\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n }\r\n axios.post(CONFIG.API_URL + 'dashboard/dashboardlocation/', dashboardIp)\r\n .then(response => {\r\n let storeAddress = response.data.data.storeDashboard;\r\n this.setState({ storeAddress, isLoading: false });\r\n })\r\n .catch((err) => {\r\n this.setState({ isLoading: false });\r\n if (err.response.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }\r\n componentDidMount() {\r\n this.viewAlertsLoad();\r\n this.manageAlertsLoad();\r\n this.dashboardLocation();\r\n }\r\n render() {\r\n document.title = 'StorTrack: Self-storage market pricing data';\r\n const defaultProps = {\r\n helpTitle: '',\r\n helpContent: \"

Create an alert for price or inventory changes in your market.

View alerts on this page each time you log in – they are also emailed to you if you have opted to receive alerts from Stortrack.

* Alerts are set up by unit type (the units saved to your dashboard).

Price Changes

Select Price Change and select from the alert criteria.

You can choose to get alerts each time a price is higher, lower or equal to a certain amount.

You can also get alerts every time the price decreases or increases by a specified percentage.

Inventory Changes

Select Inventory Change to create an alert for when availability of a unit type increases or decreases.

Stortrack alerts you when prices for a unit type have been removed from or added to a location’s website.

All of these rules can be applied to only specified competitors or across your market.

\"\r\n }\r\n const { isLoading, order, orderBy, dialogcnt, snackOpen, snackMSg, tableGrid, homeData, pageCountMDT, pageCount,pageCountMA, selectedIds, manageAlertList, Page, alertPopupValues, storeAddress, viewAlertsList } = this.state;\r\n const steps = getSteps();\r\n return (\r\n
\r\n {isLoading ?
: ''}\r\n \r\n \r\n \r\n {localStorage.getItem('isMVP_User') === \"false\" ? My Markets : \"\"}\r\n \r\n Go to Market Dashboard\r\n \r\n Market Alerts\r\n \r\n\r\n
\r\n
\r\n \r\n \r\n \r\n

Market Alerts

\r\n\r\n \r\n \r\n
{storeAddress.storeName && storeAddress.storeName !== null && storeAddress.storeName !== '' ? storeAddress.storeName : isLoading === false ? 'Your Store' : ''}
\r\n

{storeAddress.storeAddress1 && storeAddress.storeAddress1 !== null && storeAddress.storeAddress1 !== '' ? storeAddress.storeAddress1 + ',' : isLoading === false ? '' : ''} {storeAddress.storeAddress2 ? storeAddress.storeAddress2 + ',' : ''} {storeAddress.storeCity ? storeAddress.storeCity+', ' : storeAddress.searchType === 1 && (storeAddress.storeCity === '' || storeAddress.storeCity === null) && (storeAddress.storeZipCode === '' || storeAddress.storeZipCode === null) ? storeAddress.latitude+', ' +storeAddress.longitude+', ': isLoading===false ? '':''}{storeAddress.storeState ? storeAddress.storeState + '' : isLoading === false ? '' : ''} {storeAddress.storeZipCode ? storeAddress.storeZipCode + '' : isLoading === false ? '' : ''}

\r\n

{storeAddress.storeZoneCoverage ? storeAddress.storeZoneCoverage : isLoading === false ? 'N/A' : ''}

\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n Set up an Alert\r\n this.alertClose()}\r\n >\r\n \r\n \r\n \r\n {steps.map((label, index) => (\r\n \r\n index ? 'MuiStepIcon-completed-cx' : ''}\r\n completed={false}\r\n >{label}\r\n \r\n ))}\r\n \r\n
\r\n
\r\n \r\n {this.state.activeStep === 0 ?\r\n
\r\n \r\n \r\n \r\n \r\n\r\n \r\n

React faster – be alerted of changes occurring in your market. Know when there’s a change in inventory or pricing, by competitor or market.

\r\n
Set up an Alert to track changes in
\r\n this.onChangeValues(e)}\r\n >\r\n {homeData && homeData.fetchAlertType ? homeData.fetchAlertType.map(course =>\r\n\r\n } label={course.alertType}\r\n />\r\n\r\n ) : ''}\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n :\r\n this.state.activeStep === 1 ?\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n

React faster – be alerted of changes occurring in your market. Know when there’s a change in inventory or pricing, by competitor or market.

\r\n this.onChangeValues(e)}\r\n value={this.state.alertArray.unitTypeSel}\r\n >\r\n \r\n {homeData && homeData.fetchUnits ? homeData.fetchUnits.map(units =>\r\n\r\n \r\n ) : ''}\r\n \r\n \r\n
\r\n \r\n \r\n Go Back\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
:\r\n this.state.activeStep === 2 ? this.state.isTab === 1 ?\r\n \r\n \r\n
\r\n \r\n \r\n this.onChangeValues(e)}\r\n validate={{\r\n required: { value: true, errorMessage: 'Choose a price option' },\r\n }}>\r\n \r\n {homeData && homeData.fetchAlertFor ? homeData.fetchAlertFor.map(alert =>\r\n\r\n \r\n ) : ''}\r\n \r\n \r\n \r\n \r\n this.onChangeValues(e)}\r\n value={this.state.alertArray.priceOptionV1}\r\n\r\n validate={{\r\n required: { value: this.state.alertArray.priceOptionV2 || this.state.alertArray.percentageValue ? false : true, errorMessage: 'Choose an option here' },\r\n }}\r\n className=\"ml-0\">\r\n \r\n {homeData && homeData.fetchAlertPerc ? homeData.fetchAlertPerc.filter(it => it.rangeFor === 'Price').map(alert =>\r\n\r\n \r\n ) : ''}\r\n \r\n this.onChangeValues(e)}\r\n pattern=\"^\\d+(\\.\\d{1,2})?$\"\r\n errorMessage='Please enter a positive number'\r\n value={this.state.alertArray.dollarValue != undefined && this.state.alertArray.dollarValue != '' ? this.state.alertArray.dollarValue : ''}\r\n //disabled={this.state.alertArray.priceOptionV1 === undefined ? true : false}\r\n validate={{\r\n required: { value: this.state.alertArray.priceOptionV2 || this.state.alertArray.percentageValue ? false : true, errorMessage: 'Price value is required' },\r\n }} />\r\n this.onChangeValues(e)}\r\n value={this.state.alertArray.priceOptionV2}\r\n validate={{\r\n required: { value: this.state.alertArray.priceOptionV1 || this.state.alertArray.dollarValue ? false : true, errorMessage: 'Choose an option here' },\r\n }}>\r\n \r\n {homeData && homeData.fetchAlertPerc ? homeData.fetchAlertPerc.filter(it => it.rangeFor === \"Percent\").map(alert =>\r\n\r\n \r\n ) : ''}\r\n \r\n this.onChangeValues(e)}\r\n value={this.state.alertArray.percentageValue !== undefined ? this.state.alertArray.percentageValue : ''}\r\n pattern=\"^\\d+(\\.\\d{1,2})?$\"\r\n errorMessage='Please enter a positive number'\r\n validate={{\r\n required: { value: this.state.alertArray.priceOptionV1 || this.state.alertArray.dollarValue ? false : true, errorMessage: 'Please enter a value here' },\r\n\r\n }} />\r\n \r\n \r\n \r\n \r\n Apply this rule for:\r\n this.onChangeValues(e)}\r\n value={this.state.alertArray.applyRule}\r\n >\r\n } label=\"All stores in this market\" />\r\n } label=\"Some stores in this market\" />\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n Include\r\n \r\n \r\n Store Name\r\n \r\n \r\n Address\r\n \r\n \r\n \r\n \r\n {homeData && homeData.userStoreAlert ? homeData.userStoreAlert.slice(pageCount * 10, pageCount * 10 + 10).map(storeAlert => {\r\n return (\r\n \r\n \r\n e === (storeAlert.storeID + '|1'))}\r\n onChange={event => this.selectCheckBox(event, storeAlert.storeID)}\r\n value={storeAlert.storeID}\r\n />\r\n }\r\n />\r\n \r\n \r\n {storeAlert.compName}\r\n \r\n \r\n {storeAlert.address}\r\n \r\n \r\n );\r\n }) : ''}\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n \r\n Go Back\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n :\r\n \r\n \r\n
\r\n \r\n this.onChangeValues(e)}\r\n value={this.state.alertArray.inventoryChange}\r\n validate={{\r\n required: { value: true, errorMessage: 'Inventory type is required' },\r\n }}\r\n >\r\n \r\n {homeData && homeData.fetchAlertPerc ? homeData.fetchAlertPerc.filter(it => it.rangeFor === \"Inventory\").map(alert =>\r\n\r\n \r\n ) : ''}\r\n \r\n \r\n \r\n\r\n \r\n Apply this rule for:\r\n this.onChangeValues(e)}\r\n value={this.state.alertArray.applyRule}\r\n >\r\n } label=\"All stores in this market\" />\r\n } label=\"Some stores in this market\" />\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n Include\r\n \r\n \r\n Store Name\r\n \r\n \r\n Address\r\n \r\n \r\n \r\n \r\n {homeData && homeData.userStoreAlert ? homeData.userStoreAlert.slice(pageCount * 10, pageCount * 10 + 10).map(storeAlert => {\r\n return (\r\n \r\n \r\n e === (storeAlert.storeID + '|1'))}\r\n onChange={event => this.selectCheckBox(event, storeAlert.storeID)}\r\n value={storeAlert.storeID}\r\n />\r\n }\r\n />\r\n \r\n \r\n {storeAlert.compName}\r\n \r\n \r\n {storeAlert.address}\r\n \r\n \r\n );\r\n }) : ''}\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n Go Back\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n :\r\n this.state.activeStep === 3 ?\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n this.onChangeValues(e)}\r\n value={this.state.alertArray.alertName}\r\n label=\"Alert Name\"\r\n \r\n validate={{\r\n maxLength:{value:250, errorMessage:'Alert Name should be below 250 words' },\r\n required: { value: true, errorMessage: 'Alert Name is required' },\r\n\r\n }} />\r\n
Alert Summary:
\r\n

{this.state.alertArray.alertType === '1' ? 'Pricing' : 'Inventory'}

\r\n

{this.state.alertArray.unitTypeName}

\r\n

{this.state.alertArray.alertType === \"1\" ? this.state.alertArray.priceOptionName : 'Stores ' + this.state.alertArray.inventoryChangeName + ' unit type'} {this.state.alertArray.alertType === \"1\" && this.state.alertArray.dollarValue ? 'rate is ' + this.state.alertArray.priceOptionV1Name + ' ' + storeAddress.countryCurrency + parseFloat(this.state.alertArray.dollarValue).toFixed(2) : ''} {this.state.alertArray.alertType === \"1\" && this.state.alertArray.percentageValue ? 'rate ' + this.state.alertArray.priceOptionV2Name + ' ' + parseFloat(this.state.alertArray.percentageValue).toFixed(2) + '%' : ''}\r\n

\r\n

{this.state.alertArray.applyRule === '1' ? 'All' :\r\n this.state.matchedComp.map(data => {\r\n return (\r\n \r\n

\r\n

{data.compName}

\r\n

{data.address}

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

\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n Go Back\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n :\r\n ''}\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n {viewAlertsList && viewAlertsList.length > 0 ? this.stableSort(viewAlertsList, this.getSorting(order, orderBy)).slice(pageCountMDT * 20, pageCountMDT * 20 + 20).map((data, index) => {\r\n return (\r\n \r\n \r\n {moment(data.createdDate).format('DD-MMM-YYYY')}\r\n \r\n \r\n this.openAlertDetails(data)} > {data.alertName} \r\n \r\n \r\n {data.alertType}\r\n \r\n \r\n {data.unitType}\r\n \r\n \r\n {data.alertOverview}\r\n \r\n \r\n {data.alertType === \"Inventory Availability\" ?\r\n Unit Details :\r\n Unit Details}\r\n \r\n \r\n this.deleteViewAlert(data.id)}\r\n onClick={() => this.deleteViewModal(data.id)} \r\n />\r\n \r\n \r\n );\r\n }) :\r\n No Records Found }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n {manageAlertList && manageAlertList.length > 0 ? this.stableSort(manageAlertList, this.getSorting(order, orderBy)).slice(pageCountMA * 20, pageCountMA * 20 + 20).map((data, index) => {\r\n return (\r\n \r\n \r\n {moment(data.createdDate).format('DD-MMM-YYYY')}\r\n \r\n \r\n this.openAlertDetails(data)} > {data.alertName} \r\n \r\n \r\n {data.alertType}\r\n \r\n \r\n {data.unitType}\r\n \r\n \r\n {data.alertOverview}\r\n \r\n \r\n {data.allComps === 0 ? data.noOfCompetitors : \"All\"}\r\n \r\n \r\n this.alertUpdateModal(event, data.alertID, data.isActive)}\r\n value={data.alertID}\r\n className=\"track-check-gl\" />\r\n }\r\n />\r\n \r\n \r\n this.deleteAlert(data.alertID)} \r\n onClick={() => this.deleteModal(data.alertID)}\r\n />\r\n \r\n \r\n );\r\n }) : No Records Found }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Alert Details\r\n this.detailModalClose()}\r\n >\r\n \r\n \r\n \r\n \r\n {alertPopupValues.map(data => {\r\n return (\r\n \r\n

{data.alertName}

\r\n

{data.alertType}

\r\n

{data.unitType}

\r\n

\r\n

\r\n
);\r\n })}\r\n
\r\n
\r\n
\r\n
\r\n \r\n Alert Update\r\n this.alertUpdateClose()}\r\n >\r\n \r\n \r\n \r\n \r\n

Are you sure you want to {this.state.isActiveValue ? 'deactivate this alert?' : 'activate this alert?'}

\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Alert Delete\r\n this.deleteViewClose()}\r\n >\r\n \r\n \r\n \r\n \r\n

Are you sure you want to delete this alert?

\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Alert Delete\r\n this.deleteModalClose()}\r\n >\r\n \r\n \r\n \r\n \r\n

Are you sure you want to delete this alert?

\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n {snackMSg}}\r\n action={[\r\n \r\n \r\n \r\n ]}\r\n />\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\n//Listing and Sorting Table's Head\r\nfunction EnhancedTableHead(props) {\r\n const { order, orderBy, onRequestSort, tabValue } = props;\r\n const createSortHandler = property => event => {\r\n onRequestSort(event, property);\r\n };\r\n let tableHeadings = [];\r\n if (tabValue === '1') {\r\n tableHeadings = [\r\n { id: 'createdDate', numeric: false, disablePadding: true, label: 'Alert Date' },\r\n { id: 'alertName', numeric: false, disablePadding: true, label: 'Alert Name' },\r\n { id: 'alertType', numeric: false, disablePadding: true, label: 'Alert Type' },\r\n { id: 'unitType', numeric: false, disablePadding: true, label: 'Unit Type' },\r\n { id: 'alertOverview', numeric: false, disablePadding: true, label: 'Alert Overview' },\r\n { id: 'viewDetails', numeric: false, disablePadding: true, label: 'View Details' },\r\n { id: 'dismiss', numeric: false, disablePadding: true, label: 'Dismiss' },\r\n ];\r\n } else {\r\n tableHeadings = [\r\n { id: 'createdDate', numeric: false, disablePadding: true, label: 'Date Created' },\r\n { id: 'alertName', numeric: false, disablePadding: true, label: 'Alert Name' },\r\n { id: 'alertType', numeric: false, disablePadding: true, label: 'Alert Type' },\r\n { id: 'unitType', numeric: false, disablePadding: true, label: 'Unit Type' },\r\n { id: 'alertOverview', numeric: false, disablePadding: true, label: 'Alert Overview' },\r\n { id: 'competitors', numeric: false, disablePadding: true, label: 'Competitors' },\r\n { id: 'active', numeric: false, disablePadding: true, label: 'Active' },\r\n { id: 'delete', numeric: false, disablePadding: true, label: 'Delete' },\r\n ];\r\n }\r\n return (\r\n \r\n \r\n {tableHeadings.map(row => (\r\n \r\n \r\n {row.label}\r\n \r\n \r\n ))}\r\n \r\n \r\n );\r\n}\r\n\r\n// For Pagination\r\nconst actionsStyles = theme => ({\r\n tablepaggination: {\r\n flexShrink: 0,\r\n color: theme.palette.text.secondary,\r\n marginLeft: theme.spacing * 2.5,\r\n },\r\n});\r\n\r\nclass MyMarket extends React.Component {\r\n\r\n handleFirstPageButtonClick = event => {\r\n this.props.onChangePage(event, 0);\r\n };\r\n\r\n handleBackButtonClick = event => {\r\n this.props.onChangePage(event, this.props.page - 1);\r\n };\r\n\r\n handleNextButtonClick = event => {\r\n this.props.onChangePage(event, this.props.page + 1);\r\n };\r\n\r\n handleLastPageButtonClick = event => {\r\n this.props.onChangePage(\r\n event,\r\n Math.max(0, Math.ceil(this.props.count / this.props.rowsPerPage) - 1),\r\n );\r\n };\r\n\r\n\r\n render() {\r\n const { classes, count, page, rowsPerPage, theme } = this.props;\r\n\r\n return (\r\n
\r\n \r\n {theme.direction === 'rtl' ? : }\r\n \r\n \r\n {theme.direction === 'rtl' ? : }\r\n \r\n = Math.ceil(count / rowsPerPage) - 1}\r\n aria-label=\"Next Page\"\r\n >\r\n {theme.direction === 'rtl' ? : }\r\n \r\n = Math.ceil(count / rowsPerPage) - 1}\r\n aria-label=\"Last Page\"\r\n >\r\n {theme.direction === 'rtl' ? : }\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nconst MyMarketWrapped = withStyles(actionsStyles, { withTheme: true })(\r\n MyMarket,\r\n);","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { findDOMNode } from 'react-dom';\r\nimport { DragSource, DropTarget, } from 'react-dnd';\r\nimport flow from 'lodash/flow';\r\n// import { Link } from \"react-router-dom\";\r\nimport { HashLink as Link } from 'react-router-hash-link';\r\nimport { Col, Row, Modal, ModalHeader, ModalBody, Button, Tooltip } from 'reactstrap';\r\nimport { AvForm, AvField, AvCheckboxGroup } from 'availity-reactstrap-validation';\r\nimport { faPlus } from '@fortawesome/free-solid-svg-icons';\r\nimport { faTimes } from '@fortawesome/free-solid-svg-icons';\r\nimport { faArrowRight } from '@fortawesome/free-solid-svg-icons';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport ArrowDown from '../../../Assets/Images/red.png';\r\nimport Arrowup from '../../../Assets/Images/green.png';\r\nimport addnew from '../../../Assets/Images/addnew.png';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport Radio from '@material-ui/core/Radio';\r\nimport ReactHtmlParser from 'react-html-parser';\r\nimport Table from '@material-ui/core/Table';\r\nimport TableHead from '@material-ui/core/TableHead';\r\nimport TableBody from '@material-ui/core/TableBody';\r\nimport TableCell from '@material-ui/core/TableCell';\r\nimport TableFooter from '@material-ui/core/TableFooter';\r\nimport TablePagination from '@material-ui/core/TablePagination';\r\nimport TableRow from '@material-ui/core/TableRow';\r\nimport Snackbar from '@material-ui/core/Snackbar';\r\nimport CloseIcon from '@material-ui/icons/Close';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport FirstPageIcon from '@material-ui/icons/FirstPage';\r\nimport KeyboardArrowLeft from '@material-ui/icons/KeyboardArrowLeft';\r\nimport KeyboardArrowRight from '@material-ui/icons/KeyboardArrowRight';\r\nimport LastPageIcon from '@material-ui/icons/LastPage';\r\nimport editicon from '../../../Assets/Images/edit.png';\r\n\r\nimport { CONFIG } from '../../../utils/config';\r\nimport axios from 'axios';\r\nconst actionsStyles = theme => ({\r\n tablepaggination: {\r\n flexShrink: 0,\r\n color: theme.palette.text.secondary,\r\n marginLeft: theme.spacing * 2.5,\r\n },\r\n});\r\n\r\nclass MyMarket extends React.Component {\r\n\r\n handleFirstPageButtonClick = event => {\r\n this.props.onChangePage(event, 0);\r\n };\r\n\r\n handleBackButtonClick = event => {\r\n this.props.onChangePage(event, this.props.page - 1);\r\n };\r\n\r\n handleNextButtonClick = event => {\r\n this.props.onChangePage(event, this.props.page + 1);\r\n };\r\n\r\n handleLastPageButtonClick = event => {\r\n this.props.onChangePage(\r\n event,\r\n Math.max(0, Math.ceil(this.props.count / this.props.rowsPerPage) - 1),\r\n );\r\n };\r\n\r\n\r\n render() {\r\n const { classes, count, page, rowsPerPage, theme } = this.props;\r\n\r\n return (\r\n
\r\n \r\n {theme.direction === 'rtl' ? : }\r\n \r\n \r\n {theme.direction === 'rtl' ? : }\r\n \r\n = Math.ceil(count / rowsPerPage) - 1}\r\n aria-label=\"Next Page\"\r\n >\r\n {theme.direction === 'rtl' ? : }\r\n \r\n = Math.ceil(count / rowsPerPage) - 1}\r\n aria-label=\"Last Page\"\r\n >\r\n {theme.direction === 'rtl' ? : }\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nconst MyMarketWrapped = withStyles(actionsStyles, { withTheme: true })(\r\n MyMarket,\r\n);\r\n\r\nconst cardSource = {\r\n beginDrag(props) {\r\n return {\r\n id: props.searchid,\r\n index: props.index,\r\n }\r\n },\r\n};\r\n\r\nconst cardTarget = {\r\n hover(props, monitor, component) {\r\n const dragIndex = monitor.getItem().index\r\n const hoverIndex = props.index\r\n\r\n // Don't replace items with themselves\r\n if (dragIndex === hoverIndex) {\r\n return;\r\n }\r\n\r\n // Determine rectangle on screen\r\n const hoverBoundingRect = (findDOMNode(\r\n component,\r\n )).getBoundingClientRect();\r\n\r\n // Get vertical middle\r\n // const hoverMiddleY = (hoverBoundingRect.bottom - hoverBoundingRect.top) / 2;\r\n\r\n // Determine mouse position\r\n const clientOffset = monitor.getClientOffset();\r\n\r\n // Get pixels to the top\r\n //const hoverClientY = (clientOffset).y - hoverBoundingRect.top;\r\n\r\n // Only perform the move when the mouse has crossed half of the items height\r\n // When dragging downwards, only move when the cursor is below 50%\r\n // When dragging upwards, only move when the cursor is above 50%\r\n // Dragging downwards\r\n // if (dragIndex < hoverIndex && hoverClientY < hoverMiddleY) {\r\n // return;\r\n // }\r\n\r\n //should not drag first div.\r\n if (dragIndex === 0 || hoverIndex === 0) { return; }\r\n\r\n // Dragging upwards\r\n // if (dragIndex > hoverIndex && hoverClientY > hoverMiddleY) {\r\n // return;\r\n // }\r\n\r\n // Time to actually perform the action\r\n props.moveCard(dragIndex, hoverIndex);\r\n\r\n // Note: we're mutating the monitor item here!\r\n // Generally it's better to avoid mutations,\r\n // but it's good here for the sake of performance\r\n // to avoid expensive index searches.\r\n monitor.getItem().index = hoverIndex;\r\n },\r\n}\r\n\r\nclass Card extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n isLoading: true,\r\n modal: false,\r\n addmodal: false,\r\n deleteModal: false,\r\n deleteId: '',\r\n spacetype: 'Unit',\r\n ClimateControlled: '-1',\r\n Alarm: '-1',\r\n DoorType: '-1',\r\n DriveUp: '-1',\r\n Elevator: '-1',\r\n Power: '-1',\r\n OutdoorAccess: '-1',\r\n HumidityControlled: '-1',\r\n ad_Size: 'predefined',\r\n userStore: [],\r\n userStoreList: [],\r\n countryCode: '',\r\n parkingminlength: '',\r\n parkingmaxlength: '',\r\n lengthWidthMatches: '',\r\n Car: '',\r\n RV: '',\r\n Large: '',\r\n unitDetail: [],\r\n editisSpecifiedSizes: '',\r\n editSpaceChange: '',\r\n editParkUnits: '',\r\n editParkingisSpecifiedSizes: '',\r\n editparkingmaxlength: '',\r\n editparkingminlength: '',\r\n editCar: '',\r\n editRV: '',\r\n editLarge: '',\r\n emptyParking: '',\r\n emptyWidth: '',\r\n editlengthWidthMatches: 0,\r\n extractMatchchange: 0,\r\n widthLengthchange: 0,\r\n editextacttMatches: 0,\r\n editwlMatchPredefined: 0,\r\n editSearchId: '',\r\n editName: '',\r\n trackModalData: '',\r\n storeModal: false,\r\n pageCountMDT: 0,\r\n pageCount: 0,\r\n resData: '',\r\n snackOpen: false,\r\n snackMSg: '',\r\n hideSpecifiedtext: '',\r\n WidthPlusMinus: '',\r\n LengthPlusMinus: '',\r\n HeightPlusMinus: '',\r\n tooltipOpen:false,\r\n \r\n // storeid:props.location.storeid\r\n };\r\n this.trackModal = this.trackModal.bind(this);\r\n this.trackModalClose = this.trackModalClose.bind(this);\r\n this.snackHandleclose = this.snackHandleclose.bind(this);\r\n this.toggleModal = this.toggleModal.bind(this);\r\n this.handleChange = this.handleChange.bind(this);\r\n this.handleChange1 = this.handleChange1.bind(this);\r\n }\r\n\r\n static propTypes = {\r\n connectDragSource: PropTypes.func.isRequired,\r\n connectDropTarget: PropTypes.func.isRequired,\r\n index: PropTypes.number.isRequired,\r\n isDragging: PropTypes.bool.isRequired,\r\n id: PropTypes.any.isRequired,\r\n name: PropTypes.string.isRequired,\r\n avgPrice: PropTypes.any.isRequired,\r\n priceTrend: PropTypes.any.isRequired,\r\n myStorePrice: PropTypes.any.isRequired,\r\n moveCard: PropTypes.func.isRequired,\r\n currency: PropTypes.any.isRequired,\r\n countryCode: PropTypes.any.isRequired,\r\n storeid: PropTypes.any.isRequired,\r\n StoreName: PropTypes.any.isRequired,\r\n StoreAddress: PropTypes.any.isRequired,\r\n StoreCity: PropTypes.any.isRequired,\r\n StoreState: PropTypes.any.isRequired,\r\n StoreZipcode: PropTypes.any.isRequired,\r\n StoreRadius: PropTypes.any.isRequired,\r\n noOfStores: PropTypes.any.isRequired,\r\n storeCount: PropTypes.any.isRequired,\r\n priceTrends1: PropTypes.any.isRequired,\r\n\r\n }\r\n snackHandleclose = (event, reason) => {\r\n if (reason === 'clickaway') {\r\n return;\r\n }\r\n this.setState({ snackOpen: false });\r\n };\r\n resetEditUnit(id) {\r\n\r\n //this.myFormupdate && this.myFormupdate.reset();\r\n let unitDetail = this.state.unitDetail;\r\n unitDetail = [];\r\n this.setState({\r\n unitDetail\r\n })\r\n this.toggleModal(id);\r\n\r\n }\r\n toggle() {\r\n this.setState({\r\n tooltipOpen: !this.state.tooltipOpen\r\n });\r\n }\r\n\r\n toggleModal(id) {\r\n \r\n this.setState({\r\n isLoading: true\r\n })\r\n this.setState(state => ({ modal: true }))\r\n const editParam = id.split(\"/\");\r\n let Sid = editParam[0];\r\n let countryCode = editParam[1];\r\n let token = localStorage.getItem('accessKey');\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n }\r\n\r\n this.state.countryCode = countryCode;\r\n this.setState({ countryCode: this.state.countryCode });\r\n this.userStoreUnit();\r\n axios.post(CONFIG.API_URL + 'market/unitdetail/' + Sid + '/' + CONFIG.RegionId)\r\n .then(res => {\r\n let resData = res.data.competitor;\r\n let unitDetail = res.data.competitor;\r\n let editSearchId = unitDetail.searchID;\r\n let editlengthWidthMatches = unitDetail.wlMatchSpecific === true ? 1 : 0;\r\n let editextacttMatches = unitDetail.exactMatch === true ? 1 : 0;\r\n let editwlMatchPredefined = unitDetail.wlMatchPredefined === true ? 1 : 0;\r\n let editName = unitDetail.name;\r\n let editisSpecifiedSizes = '';\r\n let editSpaceChange = '';\r\n let editParkUnits = '';\r\n let editParkingisSpecifiedSizes = '';\r\n let editparkingminlength = '';\r\n let editparkingmaxlength = '';\r\n let hideSpecifiedtext = '';\r\n //console.log(this.state.editlengthWidthMatches);\r\n if (unitDetail.isSpecifiedSizes === true) {\r\n editisSpecifiedSizes = 'editSpecific';\r\n hideSpecifiedtext = 2;\r\n }\r\n else if (unitDetail.sqft > 0 || unitDetail.sqftTo > 0) {\r\n editisSpecifiedSizes = 'editSquareFootage';\r\n hideSpecifiedtext = 3;\r\n }\r\n else {\r\n editisSpecifiedSizes = 'editPredefined';\r\n hideSpecifiedtext = 1;\r\n }\r\n if (unitDetail.spaceType === 'Unit') {\r\n editSpaceChange = \"Unit\";\r\n\r\n\r\n }\r\n else {\r\n editSpaceChange = \"Parking\";\r\n\r\n\r\n if (unitDetail.rv === 1) {\r\n editParkUnits = \"2\";\r\n\r\n } else if (unitDetail.car === 1) {\r\n editParkUnits = \"1\";\r\n\r\n } else if (unitDetail.otherVehicle === 1) {\r\n editParkUnits = \"3\";\r\n\r\n } else {\r\n editParkUnits = \"-1\";\r\n\r\n }\r\n if (unitDetail.car === 1 || unitDetail.otherVehicle === 1 || unitDetail.rv === 1 || unitDetail.isSpecifiedSizes===false) {\r\n editParkingisSpecifiedSizes = 'editParkingPredefined';\r\n editparkingminlength = '';\r\n editparkingmaxlength = '';\r\n }\r\n else {\r\n editParkingisSpecifiedSizes = 'editParkingSpecific';\r\n editparkingminlength = unitDetail.parkingminlength;\r\n editparkingmaxlength = unitDetail.parkingmaxlength;\r\n }\r\n }\r\n this.setState({ unitDetail, resData, editSearchId, editName, editlengthWidthMatches, editextacttMatches, editwlMatchPredefined, editisSpecifiedSizes, editSpaceChange, editParkUnits, editParkingisSpecifiedSizes, editparkingminlength, editparkingmaxlength, hideSpecifiedtext });\r\n\r\n })\r\n .catch((err) => {\r\n // console.log(err)\r\n this.setState({ isLoading: false });\r\n if (err.res.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else {\r\n alert(err.res.data);\r\n }\r\n });\r\n }\r\n /*Add Unit Type*/\r\n addtoggleModal(countryCode) {\r\n\r\n //countryCode = countryCode;\r\n this.setState({ isLoading: true })\r\n this.state.countryCode = countryCode;\r\n this.setState({ countryCode: this.state.countryCode });\r\n this.userStoreUnit();\r\n this.setState({ isLoading: false });\r\n this.setState(state => ({ addmodal: !state.addmodal }))\r\n this.state.ad_Size = 'predefined';\r\n let spacetype = \"Unit\";\r\n let fields = \"\";\r\n let LengthPlusMinus = '';\r\n let HeightPlusMinus = '';\r\n let WidthPlusMinus = '';\r\n this.setState({ ad_Size: this.state.ad_Size, spacetype, fields, LengthPlusMinus, HeightPlusMinus, WidthPlusMinus });\r\n\r\n }\r\n userStoreUnit() {\r\n let countryCode = this.state.countryCode;\r\n let token = localStorage.getItem('accessKey');\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n }\r\n axios.post(CONFIG.API_URL + 'market/lookupdataunit/' + countryCode+'/'+CONFIG.RegionId)\r\n .then(res => {\r\n this.setState({ isLoading: false });\r\n let userStore = res.data.userstore;\r\n let userStoreList = res.data.userstore;\r\n this.setState({ userStore })\r\n this.setState({ userStoreList })\r\n //console.log(res);\r\n })\r\n .catch((err) => {\r\n this.setState({ isLoading: false });\r\n if (err.res.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else {\r\n alert(err.response.data);\r\n }\r\n });\r\n\r\n }\r\n\r\n toggleClose = () => this.setState(state => ({ addmodal: false }))\r\n\r\n \r\n editMarketSubmit(event, errors, values) {\r\n\r\n if (errors.length > 0) {\r\n\r\n console.log(errors);\r\n }\r\n else {\r\n var cc = false;\r\n if(values.editcountryCode === \"US\" || values.editcountryCode === \"CA\" || CONFIG.RegionId === 3){\r\n cc = true;\r\n }\r\n if (values.editSpaceType === \"Unit\" && this.state.editisSpecifiedSizes === \"editSpecific\" && values.editWidth === \"\" && cc === false) {\r\n this.setState({ snackOpen: true, snackMSg: \"Please enter the specific size.\" });\r\n }\r\n else if (values.editSpaceType === \"Unit\" && this.state.editisSpecifiedSizes === \"editSpecific\" && values.editWidth === \"\" && cc === true) {\r\n this.setState({ snackOpen: true, snackMSg: \"Please enter the specific size.\" });\r\n }\r\n else if (values.editSpaceType === \"Unit\" && this.state.editisSpecifiedSizes !== \"editSpecific\" && this.state.editisSpecifiedSizes !== \"editPredefined\" && values.editSqFtFrom ===\"\" && values.editSqFtTo ===\"\" && cc === true) {\r\n this.setState({ snackOpen: true, snackMSg: \"Please enter desired Sq.Ft range.\" });\r\n }\r\n else if (values.editSpaceType === \"Unit\" && this.state.editisSpecifiedSizes !== \"editSpecific\" && this.state.editisSpecifiedSizes !== \"editPredefined\" && parseFloat(values.editSqFtFrom) > parseFloat(values.editSqFtTo) && cc === true) {\r\n this.setState({ snackOpen: true, snackMSg: \"'From' value cannot be greater than or equal to 'To' value! Please re-enter Sq.Ft range.\" });\r\n }\r\n else if (this.state.editisSpecifiedSizes === \"editSquareFootage\" && values.editSpaceType === \"Unit\" && values.editSqFtTo === \"\" && values.editSqFtFrom === \"\" && cc === false) {\r\n this.setState({ snackOpen: true, snackMSg: \"Please enter desired m² range\" });\r\n }\r\n else if (this.state.editisSpecifiedSizes === \"editSquareFootage\" && values.editSpaceType === \"Unit\" && values.editSqFtTo == \"0\" && values.editSqFtFrom == \"0\" && cc === true) {\r\n this.setState({ snackOpen: true, snackMSg: \"Please enter 'To' Sq.Ft value.\" });\r\n }\r\n else if (this.state.editisSpecifiedSizes === \"editSquareFootage\" && values.editSpaceType === \"Unit\" && values.editSqFtFrom == \"\" && cc === true) {\r\n this.setState({ snackOpen: true, snackMSg: \"Please enter 'From' Sq.Ft value.\" });\r\n }\r\n else if (this.state.editisSpecifiedSizes === \"editSquareFootage\" && values.editSpaceType === \"Unit\" && values.editSqFtTo == \"\" && cc === true) {\r\n this.setState({ snackOpen: true, snackMSg: \"Please enter 'To' Sq.Ft value.\" });\r\n }\r\n else if (this.state.editisSpecifiedSizes === \"editSquareFootage\" && values.editSpaceType === \"Unit\" && values.editSqFtTo == \"0\" && values.editSqFtFrom == \"0\" && cc === false) {\r\n this.setState({ snackOpen: true, snackMSg: \"Please enter 'To' m² value.\" });\r\n }\r\n else if (this.state.editisSpecifiedSizes === \"editSquareFootage\" && values.editSpaceType === \"Unit\" && values.editSqFtFrom === \"\" && cc === false) {\r\n this.setState({ snackOpen: true, snackMSg: \"Please enter 'From' m² value.\" });\r\n\r\n }\r\n else if (this.state.editisSpecifiedSizes === \"editSquareFootage\" && values.editSpaceType === \"Unit\" && values.editSqFtTo === \"\" && cc === false) {\r\n this.setState({ snackOpen: true, snackMSg: \"Please enter 'To' m² value.\" });\r\n\r\n }\r\n else if (this.state.editisSpecifiedSizes === \"editSquareFootage\" && values.editSpaceType === \"Unit\" && parseFloat(values.editSqFtFrom) < 0 && cc === false) {\r\n this.setState({ snackOpen: true, snackMSg: \"Please enter valid 'From' m² value.\" });\r\n }\r\n else if (this.state.editisSpecifiedSizes === \"editSquareFootage\" && values.editSpaceType === \"Unit\" && parseFloat(values.editSqFtFrom) > parseFloat(values.editSqFtTo) && cc === false) {\r\n this.setState({ snackOpen: true, snackMSg: \"'From' value cannot be greater than or equal to 'To' value! Please re-enter m² range.\" });\r\n }\r\n else if ( values.editSpaceType === \"Parking\" && this.state.editParkingisSpecifiedSizes === \"editParkingSpecific\" && values.editparkingmaxlength ==='' && values.editparkingminlength ==='' && cc === false) {\r\n this.setState({ snackOpen: true, snackMSg: \"Please enter desired m² range\" });\r\n }\r\n else if ( values.editSpaceType === \"Parking\" && this.state.editParkingisSpecifiedSizes === \"editParkingSpecific\" && values.editparkingmaxlength ==='' && cc === false) {\r\n this.setState({ snackOpen: true, snackMSg: \"Please enter 'To' m² range\" });\r\n }\r\n else if ( values.editSpaceType === \"Parking\" && this.state.editParkingisSpecifiedSizes === \"editParkingSpecific\" && values.editparkingminlength ==='' && cc === false) {\r\n this.setState({ snackOpen: true, snackMSg: \"Please enter 'From' m² range\" });\r\n }\r\n else if ( values.editSpaceType === \"Parking\" && values.editparkingmaxlength ==='' && values.editparkingminlength ==='' && this.state.editParkingisSpecifiedSizes === \"editParkingSpecific\" && cc === true) {\r\n this.setState({ snackOpen: true, snackMSg: \"Please enter desired Sq.Ft range.\" });\r\n }\r\n else if ( values.editSpaceType === \"Parking\" && values.editparkingminlength ==='' && this.state.editParkingisSpecifiedSizes === \"editParkingSpecific\" && cc === true) {\r\n this.setState({ snackOpen: true, snackMSg: \"Please enter 'From' Sq.Ft range.\" });\r\n }\r\n else if ( values.editSpaceType === \"Parking\" && values.editparkingmaxlength ==='' && this.state.editParkingisSpecifiedSizes === \"editParkingSpecific\" && cc === true) {\r\n this.setState({ snackOpen: true, snackMSg: \"Please enter 'To' Sq.Ft range.\" });\r\n }\r\n else if ( values.editSpaceType === \"Parking\" && this.state.editParkingisSpecifiedSizes === \"editParkingSpecific\" && values.editparkingmaxlength =='0' && values.editparkingminlength =='0' && cc === false) {\r\n this.setState({ snackOpen: true, snackMSg: \"Please enter 'To' m² range\" });\r\n }\r\n // else if ( values.editSpaceType === \"Parking\" && values.editparkingmaxlength < 0 && values.editparkingminlength < 0 && this.state.editParkingisSpecifiedSizes === \"editParkingSpecific\" && cc === true) {\r\n // this.setState({ snackOpen: true, snackMSg: \"Please enter Valid Sq.Ft range.\" });\r\n // }\r\n else if ( values.editSpaceType === \"Parking\" && values.editparkingmaxlength =='0' && values.editparkingminlength =='0' && this.state.editParkingisSpecifiedSizes === \"editParkingSpecific\" && cc === true) {\r\n this.setState({ snackOpen: true, snackMSg: \"Please enter 'To' Sq.Ft range.\" });\r\n }\r\n else if ( values.editSpaceType === \"Parking\" && this.state.editParkingisSpecifiedSizes === \"editParkingSpecific\" && parseFloat(values.editparkingminlength) < 0 && cc === false) {\r\n this.setState({ snackOpen: true, snackMSg: \"Please enter valid 'From' m² range\" });\r\n }\r\n else if ( values.editSpaceType === \"Parking\" && this.state.editParkingisSpecifiedSizes === \"editParkingSpecific\" && parseFloat(values.editparkingminlength) > parseFloat(values.editparkingmaxlength) && cc === false) {\r\n this.setState({ snackOpen: true, snackMSg: \"'From' value cannot be greater than or equal to 'To' value! Please re-enter m² range.\" });\r\n }\r\n else if ( values.editSpaceType === \"Parking\" && parseFloat(values.editparkingminlength) < 0 && this.state.editParkingisSpecifiedSizes === \"editParkingSpecific\" && cc === true) {\r\n this.setState({ snackOpen: true, snackMSg: \"Please enter valid 'From' Sq.Ft range.\" });\r\n }\r\n else if ( values.editSpaceType === \"Parking\" && parseFloat(values.editparkingminlength) > parseFloat(values.editparkingmaxlength) && this.state.editParkingisSpecifiedSizes === \"editParkingSpecific\" && cc === true) {\r\n this.setState({ snackOpen: true, snackMSg: \"'From' value cannot be greater than or equal to 'To' value! Please re-enter Sq.Ft range.\" });\r\n }\r\n else {\r\n // console.log(values);\r\n //let editad_SizeType = this.state.ad_Size;\r\n //let editunitSize = values.sizes;\r\n let editWidth = '';\r\n let editLength = '';\r\n let editHeight = '';\r\n let editIsSpecifiedSizes = '';\r\n let editCar = '';\r\n let editRV = '';\r\n let editOtherVehicle = '';\r\n let editWidthPlusMinus = '';\r\n let editLengthPlusMinus = '';\r\n let editHeightPlusMinus = '';\r\n let editSqFtFrom = '';\r\n let editSqFtTo = '';\r\n let editClimateControlled = '';\r\n let editHumidityControlled = '';\r\n let editOutdoorAccess = '';\r\n let editAlarm = '';\r\n let editPower = '';\r\n let editDriveUp = '';\r\n let editElevator = '';\r\n let editCovered = '';\r\n let editDoorType = '';\r\n let editLengthWidthMatch = '';\r\n let editextractMatchchanges = '';\r\n let editwidthLengthchanges = '';\r\n let editparkingminlength = '';\r\n let editparkingmaxlength = '';\r\n let editMeasurement = '';\r\n\r\n if (values.editcountryCode === \"US\" || values.editcountryCode === \"CA\" || CONFIG.RegionId === 3 || values.editcountryCode === \"AU\" || values.editcountryCode === \"NZ\") {\r\n\r\n if (this.state.editSpaceChange === 'Unit') {\r\n editCar = -1;\r\n editRV = -1;\r\n editOtherVehicle = -1;\r\n editClimateControlled = values.editClimateControlled ? values.editClimateControlled : this.state.unitDetail.climateControlled;\r\n editHumidityControlled = values.editHumidityControlled ? values.editHumidityControlled : this.state.unitDetail.humidityControlled;\r\n editOutdoorAccess = values.editOutdoorAccess ? values.editOutdoorAccess : this.state.unitDetail.outdoorAccess;\r\n editAlarm = values.editAlarm ? values.editAlarm : this.state.unitDetail.alarm;\r\n editPower = values.editPower ? values.editPower : this.state.unitDetail.power;\r\n editDriveUp = values.editDriveUp ? values.editDriveUp : this.state.unitDetail.driveUp;\r\n editElevator = values.editElevator ? values.editElevator : this.state.unitDetail.elevator;\r\n editCovered = -1;\r\n editDoorType = values.editDoorType ? values.editDoorType : this.state.unitDetail.doorType;\r\n editparkingminlength = -1;\r\n editparkingmaxlength = -1;\r\n // editMeasurement = \"Square Feet\"\r\n editMeasurement = values.editcountryCode === \"AU\" || values.editcountryCode === \"NZ\" ? \"Meters\" : \"Square Feet\";\r\n if (this.state.editisSpecifiedSizes === \"editPredefined\") {\r\n let editsizes = values.editsizes ? values.editsizes : this.state.unitDetail.width + 'x' + this.state.unitDetail.length;\r\n // console.log(editsizes)\r\n const reSize = editsizes.split('x');\r\n editWidth = reSize[0];\r\n editLength = reSize[1];\r\n editHeight = -1;\r\n editWidthPlusMinus = -1;\r\n editLengthPlusMinus = -1;\r\n editHeightPlusMinus = -1;\r\n editSqFtFrom = 0;\r\n editSqFtTo = 0;\r\n editIsSpecifiedSizes = 0;\r\n editLengthWidthMatch = 0;\r\n editextractMatchchanges = this.state.editextacttMatches === 1 ? 1 : 0;\r\n editwidthLengthchanges = this.state.editwlMatchPredefined === 1 ? 1 : 0;\r\n // console.log(editwidthLengthchanges)\r\n }\r\n else if (this.state.editisSpecifiedSizes === \"editSpecific\") {\r\n\r\n editWidth = values.editWidth ? values.editWidth : -1;\r\n editLength = values.editLength ? values.editLength : -1;\r\n editHeight = values.editHeight ? values.editHeight : -1;\r\n editWidthPlusMinus = values.editWidthPlusMinus ? values.editWidthPlusMinus : 0;\r\n editLengthPlusMinus = values.editLengthPlusMinus ? values.editLengthPlusMinus : 0;\r\n editHeightPlusMinus = values.editHeightPlusMinus ? values.editHeightPlusMinus : 0;\r\n editSqFtFrom = 0;\r\n editSqFtTo = 0;\r\n editIsSpecifiedSizes = 1;\r\n editLengthWidthMatch = this.state.editlengthWidthMatches ? this.state.editlengthWidthMatches : 0;\r\n editextractMatchchanges = 0;\r\n editwidthLengthchanges = 0;\r\n }\r\n else {\r\n editWidth = '';\r\n editLength = '';\r\n editHeight = -1;\r\n editWidthPlusMinus = -1;\r\n editLengthPlusMinus = -1;\r\n editHeightPlusMinus = -1;\r\n editSqFtFrom = values.editSqFtFrom ? values.editSqFtFrom : 0;\r\n editSqFtTo = values.editSqFtTo ? values.editSqFtTo : 0;\r\n editIsSpecifiedSizes = 0;\r\n editLengthWidthMatch = 0;\r\n editextractMatchchanges = 0;\r\n editwidthLengthchanges = 0;\r\n }\r\n\r\n }\r\n else {\r\n\r\n editWidth = '';\r\n editLength = '';\r\n editHeight = -1;\r\n editWidthPlusMinus = -1;\r\n editLengthPlusMinus = -1;\r\n editHeightPlusMinus = -1;\r\n editSqFtFrom = 0;\r\n editSqFtTo = 0;\r\n editClimateControlled = -1;\r\n editHumidityControlled = -1;\r\n editOutdoorAccess = -1;\r\n editAlarm = -1;\r\n editDriveUp = -1;\r\n editDoorType = -1;\r\n editPower = -1;\r\n editElevator = -1;\r\n editLengthWidthMatch = 0;\r\n editextractMatchchanges = 0;\r\n editwidthLengthchanges = 0;\r\n // editMeasurement = \"Square Feet\"\r\n editMeasurement = values.editcountryCode === \"AU\" || values.editcountryCode === \"NZ\" ? \"Meters\" : \"Square Feet\";\r\n\r\n if (this.state.editParkingisSpecifiedSizes === \"editParkingPredefined\") {\r\n\r\n editparkingminlength = -1;\r\n editparkingmaxlength = -1;\r\n editIsSpecifiedSizes = 0;\r\n editCovered = values.editCovered ? parseInt(values.editCovered) : -1;\r\n editCar = values.sizes === \"1\" ? 1 : -1;\r\n editRV = values.sizes === \"2\" ? 1 : -1;\r\n editOtherVehicle = values.sizes === \"3\" ? 1 : -1;\r\n editparkingminlength = values.editparkingminlength ? values.editparkingminlength : '-1';\r\n editparkingmaxlength = values.editparkingmaxlength ? values.editparkingmaxlength : '-1';\r\n }\r\n else {\r\n\r\n editIsSpecifiedSizes = 1;\r\n editCar = -1;\r\n editRV = -1;\r\n editOtherVehicle = -1;\r\n editparkingminlength = values.editparkingminlength ? values.editparkingminlength : '-1';\r\n editparkingmaxlength = values.editparkingmaxlength ? values.editparkingmaxlength : '-1';\r\n editCovered = values.editCovered ? parseInt(values.editCovered) : -1;\r\n\r\n }\r\n }\r\n }\r\n else {\r\n if (this.state.editSpaceChange === 'Unit') {\r\n editHeight = -1;\r\n editWidthPlusMinus = -1;\r\n editLengthPlusMinus = -1;\r\n editHeightPlusMinus = -1;\r\n editLengthWidthMatch = 0;\r\n editwidthLengthchanges = 0;\r\n editparkingminlength = '-1';\r\n editparkingmaxlength = '-1';\r\n editCovered = -1;\r\n editPower = parseInt(values.editPower) != -1 ? parseInt(values.editPower) : -1;\r\n editElevator = parseInt(values.editElevator) != -1 ? parseInt(values.editElevator) : -1;\r\n editClimateControlled = -1;\r\n editHumidityControlled = -1;\r\n editOutdoorAccess = -1;\r\n editAlarm = -1;\r\n editDriveUp = -1;\r\n editDoorType = -1;\r\n //editMeasurement = \"Square Meter\";\r\n editMeasurement = CONFIG.RegionId === 3 ? \"Square Feet\" : \"Square Meter\";\r\n editCar = -1;\r\n editRV = -1;\r\n editOtherVehicle = -1;\r\n if (this.state.editisSpecifiedSizes === \"editPredefined\") {\r\n let editsizes = values.editsizes ? values.editsizes : this.state.unitDetail.width + 'x' + this.state.unitDetail.length;\r\n const reSizes = editsizes.split('x');\r\n editWidth = reSizes[0];\r\n editLength = reSizes[1];\r\n editextractMatchchanges = this.state.editextacttMatches;\r\n editIsSpecifiedSizes = 0;\r\n editSqFtFrom = 0;\r\n editSqFtTo = 0;\r\n\r\n }\r\n else {\r\n\r\n editWidth = '';\r\n editLength = '';\r\n editextractMatchchanges = 0;\r\n editSqFtFrom = values.editSqFtFrom ? values.editSqFtFrom : 0;\r\n editSqFtTo = values.editSqFtTo ? values.editSqFtTo : 0;\r\n editIsSpecifiedSizes = 0;\r\n }\r\n }\r\n else {\r\n editWidth = '';\r\n editLength = '';\r\n editextractMatchchanges = 0;\r\n editHeight = -1;\r\n editWidthPlusMinus = -1;\r\n editLengthPlusMinus = -1;\r\n editHeightPlusMinus = -1;\r\n editLengthWidthMatch = 0;\r\n editwidthLengthchanges = 0;\r\n editCovered = values.editCovered ? parseInt(values.editCovered) : -1;\r\n editClimateControlled = -1;\r\n editHumidityControlled = -1;\r\n editOutdoorAccess = -1;\r\n editAlarm = -1;\r\n editDriveUp = -1;\r\n editDoorType = -1;\r\n editPower = -1;\r\n editElevator = -1;\r\n // editMeasurement = \"Square Meter\";\r\n editMeasurement = CONFIG.RegionId === 3 ? \"Square Feet\" : \"Square Meter\";\r\n editSqFtFrom = 0;\r\n editSqFtTo = 0;\r\n if (this.state.editParkingisSpecifiedSizes === \"editParkingPredefined\") {\r\n\r\n editWidth = '';\r\n editLength = '';\r\n editIsSpecifiedSizes = 0;\r\n editCar = values.sizes === \"1\" ? 1 : -1;\r\n editRV = values.sizes === \"2\" ? 1 : -1;\r\n editOtherVehicle = values.sizes === \"3\" ? 1 : -1;\r\n editparkingminlength = values.editparkingminlength ? values.editparkingminlength : '-1';\r\n editparkingmaxlength = values.editparkingmaxlength ? values.editparkingmaxlength : '-1';\r\n }\r\n else {\r\n editWidth = '';\r\n editLength = '';\r\n editparkingminlength = values.editparkingminlength ? values.editparkingminlength : '-1';\r\n editparkingmaxlength = values.editparkingmaxlength ? values.editparkingmaxlength : '-1';\r\n editIsSpecifiedSizes = 1;\r\n editCar = -1;\r\n editRV = -1;\r\n editOtherVehicle = -1;\r\n }\r\n }\r\n }\r\n const data1 = {\r\n \"searchID\": this.state.editSearchId,\r\n \"Name\": values.editName ? values.editName : this.state.unitDetail.name,\r\n \"SpaceType\": this.state.editSpaceChange,\r\n \"Width\": editWidth ? editWidth : '',\r\n \"Length\": editLength ? editLength : '',\r\n \"Height\": editHeight,\r\n \"WidthPlusMinus\": editWidthPlusMinus,\r\n \"LengthPlusMinus\": editLengthPlusMinus,\r\n \"HeightPlusMinus\": editHeightPlusMinus,\r\n \"Alarm\": editAlarm != -1 ? editAlarm : -1,\r\n \"Power\": parseInt(editPower) != -1 ? editPower : -1,\r\n \"Covered\": editCovered,\r\n \"DriveUp\": editDriveUp,\r\n \"Elevator\": parseInt(editElevator) != -1 ? editElevator : -1,\r\n \"Car\": parseInt(editCar),\r\n \"RV\": parseInt(editRV),\r\n \"OtherVehicle\": parseInt(editOtherVehicle),\r\n \"DoorType\": parseInt(editDoorType),\r\n \"ExactMatch\": parseInt(editextractMatchchanges),\r\n \"WLMatchPredefined\": parseInt(editwidthLengthchanges),\r\n \"WLMatchSpecific\": parseInt(editLengthWidthMatch),\r\n \"SqFtFrom\": editSqFtFrom,\r\n \"sqFTTo\": editSqFtTo,\r\n \"IsSpecifiedSizes\": parseInt(editIsSpecifiedSizes),\r\n \"ClimateControlled\": editClimateControlled,\r\n \"HumidityControlled\": editHumidityControlled,\r\n \"OutdoorAccess\": editOutdoorAccess,\r\n \"parkingminlength\": editparkingminlength,\r\n \"parkingmaxlength\": editparkingmaxlength,\r\n \"measurement\": editMeasurement,\r\n \"RegionId\": CONFIG.RegionId\r\n }\r\n\r\n\r\n\r\n let token = localStorage.getItem('accessKey');\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n }\r\n\r\n axios.post(CONFIG.API_URL + 'market/updateunit/', data1)\r\n .then(res => {\r\n\r\n this.setState(state => ({ modal: false }));\r\n var isElement = document.getElementById('r2');\r\n if (isElement == null) {\r\n document.getElementById('r1').click();\r\n }\r\n else {\r\n document.getElementById('r1').click();\r\n document.getElementById('r2').click();\r\n }\r\n this.props.parentMethod();\r\n this.setState({ isLoading: false });\r\n this.setState({ snackOpen: true, snackMSg: \"Unit type updated successfully\" });\r\n })\r\n .catch((err) => {\r\n this.setState({ isLoading: false });\r\n if (err.response.data.StatusCode === 400) {\r\n this.setState({ snackOpen: true, snackMSg: \"Unit Type Name already exists\" });\r\n }\r\n else if (err.res.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else {\r\n\r\n this.setState({ snackOpen: true, snackMSg: err.res.data });\r\n }\r\n });\r\n }\r\n\r\n }\r\n }\r\n\r\n addMarketSubmit(event, errors, values) {\r\n\r\n if (errors.length > 0) {\r\n\r\n console.log(errors);\r\n }\r\n else {\r\n \r\n var cc = false;\r\n if(values.countryCode === \"US\" || values.countryCode === \"CA\" || CONFIG.RegionId === 3){\r\n cc = true;\r\n }\r\n let ad_SizeTypec = this.state.ad_Size;\r\n if (cc === true && ( ad_SizeTypec === 'Specific' && values.Width === '' && values.SpaceType === 'Unit')) {\r\n this.setState({ snackOpen: true, snackMSg: \"Please enter specific size.\" });\r\n }\r\n else if (cc === false && ( ad_SizeTypec === 'Specific' && values.Width === '' && values.SpaceType === 'Unit')) {\r\n this.setState({ snackOpen: true, snackMSg: \"Please enter specific size.\" });\r\n }\r\n else if ( cc === false && (ad_SizeTypec === 'Measurement' && !values.SqFtFrom && !values.SqFtTo && values.SpaceType === 'Unit')) {\r\n this.setState({ snackOpen: true, snackMSg: \"Please enter desired m² range.\" });\r\n }\r\n else if (cc === false && (ad_SizeTypec === 'Measurement' && !values.SqFtFrom && values.SpaceType === 'Unit')) {\r\n this.setState({ snackOpen: true, snackMSg: \"Please enter 'From' m² value.\" });\r\n }\r\n else if (cc === false && (ad_SizeTypec === 'Measurement' && !values.SqFtTo && values.SpaceType === 'Unit')) {\r\n this.setState({ snackOpen: true, snackMSg: \"Please enter 'To' m² value.\" });\r\n }\r\n else if (cc === false && ( ad_SizeTypec === 'Measurement' && values.SqFtFrom === '0' && values.SqFtTo === '0' && values.SpaceType === 'Unit' )) {\r\n this.setState({ snackOpen: true, snackMSg: \"Please enter 'To' m² value.\" });\r\n }\r\n else if (cc === false && (ad_SizeTypec === 'Measurement' && parseFloat(values.SqFtFrom) < 0 && values.SpaceType === 'Unit')) {\r\n this.setState({ snackOpen: true, snackMSg: \"Please enter valid 'From' m² value.\" });\r\n }\r\n else if (cc === false && (ad_SizeTypec === 'Measurement' && parseFloat(values.SqFtFrom) > parseFloat(values.SqFtTo) && values.SpaceType === 'Unit')) {\r\n this.setState({ snackOpen: true, snackMSg: \"From' value cannot be greater than or equal to 'To' value! Please re-enter m² range.\" });\r\n }\r\n else if (cc === true && ( ad_SizeTypec === 'Measurement' && values.SqFtFrom === '' && values.SqFtTo === '' && values.SpaceType === 'Unit' )) {\r\n this.setState({ snackOpen: true, snackMSg: \"Please enter desired Sq.Ft range.\" });\r\n }\r\n else if (cc === true && ( ad_SizeTypec === 'Measurement' && values.SqFtFrom === '' && values.SpaceType === 'Unit' )) {\r\n this.setState({ snackOpen: true, snackMSg: \"Please enter 'From' Sq.Ft value.\" });\r\n }\r\n else if (cc === true && ( ad_SizeTypec === 'Measurement' && values.SqFtTo === '' && values.SpaceType === 'Unit' )) {\r\n this.setState({ snackOpen: true, snackMSg: \"Please enter 'To' Sq.Ft value.\" });\r\n }\r\n else if (cc === true && ( ad_SizeTypec === 'Measurement' && values.SqFtFrom === '0' && values.SqFtTo === '0' && values.SpaceType === 'Unit' )) {\r\n this.setState({ snackOpen: true, snackMSg: \"Please enter 'To' Sq.Ft value.\" });\r\n }\r\n else if (cc === true && (ad_SizeTypec === 'Measurement' && parseFloat(values.SqFtFrom) < 0 && values.SpaceType === 'Unit')) {\r\n this.setState({ snackOpen: true, snackMSg: \"Please enter valid 'From' Sq.Ft value.\" });\r\n }\r\n else if (cc === true && (ad_SizeTypec === 'Measurement' && parseFloat(values.SqFtFrom) > parseFloat(values.SqFtTo) && values.SpaceType === 'Unit')) {\r\n this.setState({ snackOpen: true, snackMSg: \"'From' value cannot be greater than or equal to 'To' value! Please re-enter Sq.Ft range.\" });\r\n }\r\n else if (cc === true && ( ad_SizeTypec === 'Measurement' && values.parkingminlength === '' && values.SpaceType === 'Parking')) {\r\n this.setState({ snackOpen: true, snackMSg: \"Sq. Ft value must be greater than Zero or Enter a valid value in +/- besides it.\" });\r\n }\r\n else if (cc === true && ( ad_SizeTypec === 'Specific' && values.parkingminlength === '' && values.parkingmaxlength === '' && values.SpaceType === 'Parking')) {\r\n this.setState({ snackOpen: true, snackMSg: \"Please enter desired Sq.Ft range.\" });\r\n }\r\n else if (cc === true && ( ad_SizeTypec === 'Specific' && values.parkingminlength === '' && values.SpaceType === 'Parking')) {\r\n this.setState({ snackOpen: true, snackMSg: \"Please enter 'From' Sq.Ft range.\" });\r\n }\r\n else if (cc === true && ( ad_SizeTypec === 'Specific' && values.parkingmaxlength === '' && values.SpaceType === 'Parking')) {\r\n this.setState({ snackOpen: true, snackMSg: \"Please enter 'To' Sq.Ft range.\" });\r\n }\r\n else if (cc === false && ( ad_SizeTypec === 'Specific' && values.parkingminlength === '' && values.parkingmaxlength === '' && values.SpaceType === 'Parking')) {\r\n this.setState({ snackOpen: true, snackMSg: \"Please enter desired m² range.\" });\r\n } \r\n else if (cc === false && ( ad_SizeTypec === 'Specific' && values.parkingminlength === '' && values.SpaceType === 'Parking')) {\r\n this.setState({ snackOpen: true, snackMSg: \"Please enter 'From' m² range.\" });\r\n } \r\n else if (cc === false && ( ad_SizeTypec === 'Specific' && values.parkingmaxlength === '' && values.SpaceType === 'Parking')) {\r\n this.setState({ snackOpen: true, snackMSg: \"Please enter 'To' m² range.\" });\r\n } \r\n else if (cc === true && ( ad_SizeTypec === 'Specific' && values.parkingminlength === '0' && values.parkingmaxlength === '0' && values.SpaceType === 'Parking')) {\r\n this.setState({ snackOpen: true, snackMSg: \"Please enter 'To' Sq.Ft range.\" });\r\n }\r\n else if (cc === false && ( ad_SizeTypec === 'Specific' && values.parkingminlength === '0' && values.parkingmaxlength === '0' && values.SpaceType === 'Parking')) {\r\n this.setState({ snackOpen: true, snackMSg: \"Please enter 'To' m² range.\" });\r\n }\r\n else if (cc === true && ( ad_SizeTypec === 'Specific' && parseFloat(values.parkingminlength) < 0 && values.SpaceType === 'Parking')) {\r\n this.setState({ snackOpen: true, snackMSg:\"Please enter valid 'From' Sq.Ft range.\" });\r\n }\r\n else if (cc === true && ( ad_SizeTypec === 'Specific' && parseFloat(values.parkingminlength) > parseFloat(values.parkingmaxlength) && values.SpaceType === 'Parking')) {\r\n this.setState({ snackOpen: true, snackMSg: \"'From' value cannot be greater than or equal to 'To' value! Please re-enter Sq.Ft range.\" });\r\n }\r\n else if (cc === false && ( ad_SizeTypec === 'Specific' && parseFloat(values.parkingminlength) < 0 && values.SpaceType === 'Parking')) {\r\n this.setState({ snackOpen: true, snackMSg: \"Please enter valid 'From' m² range.\" });\r\n }\r\n else if (cc === false && ( ad_SizeTypec === 'Specific' && parseFloat(values.parkingminlength) > parseFloat(values.parkingmaxlength) && values.SpaceType === 'Parking')) {\r\n this.setState({ snackOpen: true, snackMSg: \"'From' value cannot be greater than or equal to 'To' value! Please re-enter m² range.\" });\r\n }\r\n \r\n else {\r\n let nameExit = values.Name;\r\n let Sid = values.StoreId;\r\n localStorage.setItem('StId', values.StoreId);\r\n let token = localStorage.getItem('accessKey');\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n }\r\n axios.post(CONFIG.API_URL + 'market/unitnamevalidation/' + nameExit + '/' + Sid)\r\n .then(res => {\r\n if (res.data.message === \"Success\") {\r\n\r\n this.setState({ snackOpen: true, snackMSg: \"Unit Type Name already exists\" });\r\n }\r\n else {\r\n\r\n\r\n let spaceState = values.SpaceType;\r\n //let Name =values.Name\r\n let ad_SizeType = this.state.ad_Size;\r\n let unitSize = values.sizes;\r\n let Width = '';\r\n let Length = '';\r\n let Height = '';\r\n let IsSpecifiedSizes = '';\r\n let Car = '';\r\n let RV = '';\r\n let OtherVehicle = '';\r\n let WidthPlusMinus = '';\r\n let LengthPlusMinus = '';\r\n let HeightPlusMinus = '';\r\n let SqFtFrom = '';\r\n let SqFtTo = '';\r\n let ClimateControlled = '';\r\n let HumidityControlled = '';\r\n let OutdoorAccess = '';\r\n let Alarm = '';\r\n let Power = '';\r\n let DriveUp = '';\r\n let Elevator = '';\r\n let Covered = '';\r\n let DoorType = '';\r\n let LengthWidthMatch = '';\r\n let extractMatchchanges = '';\r\n let widthLengthchanges = '';\r\n let parkingminlength = '';\r\n let parkingmaxlength = '';\r\n let Measurement = '';\r\n if (values.countryCode === 'US' || values.countryCode === 'CA' || CONFIG.RegionId === 3 || values.countryCode === 'AU' || values.countryCode === 'NZ') {\r\n if (spaceState === 'Unit') {\r\n Car = -1;\r\n RV = -1;\r\n OtherVehicle = -1;\r\n ClimateControlled = values.ClimateControlled ? parseInt(values.ClimateControlled) : -1;\r\n HumidityControlled = values.HumidityControlled ? parseInt(values.HumidityControlled) : -1;\r\n OutdoorAccess = values.OutdoorAccess ? parseInt(values.OutdoorAccess) : -1;\r\n Alarm = values.Alarm ? parseInt(values.Alarm) : -1;\r\n Power = values.Power ? parseInt(values.Power) : -1;\r\n DriveUp = values.DriveUp ? parseInt(values.DriveUp) : -1;\r\n Elevator = values.Elevator ? parseInt(values.Elevator) : -1;\r\n Covered = -1;\r\n DoorType = values.DoorType ? parseInt(values.DoorType) : -1;\r\n parkingminlength = -1;\r\n parkingmaxlength = -1;\r\n // Measurement = \"Square Feet\"\r\n Measurement = values.countryCode === \"AU\" || values.countryCode === \"NZ\" ? \"Meters\" : \"Square Feet\";\r\n if (ad_SizeType === 'predefined') {\r\n const reSize = unitSize.split('x');\r\n Width = reSize[0] ? reSize[0] : -1;\r\n Length = reSize[1] ? reSize[1] : -1;\r\n Height = -1;\r\n WidthPlusMinus = -1;\r\n LengthPlusMinus = -1;\r\n HeightPlusMinus = -1;\r\n SqFtFrom = 0;\r\n SqFtTo = 0;\r\n IsSpecifiedSizes = 0;\r\n LengthWidthMatch = 0;\r\n extractMatchchanges = this.state.extractMatchchange;\r\n widthLengthchanges = this.state.widthLengthchange;\r\n\r\n }\r\n else if (ad_SizeType === 'Specific') {\r\n Width = values.Width ? values.Width : -1;\r\n Length = values.Length ? values.Length : -1;\r\n Height = values.Height ? values.Height : -1;\r\n WidthPlusMinus = values.WidthPlusMinus ? values.WidthPlusMinus : 0;\r\n LengthPlusMinus = values.LengthPlusMinus ? values.LengthPlusMinus : 0;\r\n HeightPlusMinus = values.HeightPlusMinus ? values.HeightPlusMinus : 0;\r\n SqFtFrom = 0;\r\n SqFtTo = 0;\r\n IsSpecifiedSizes = 1;\r\n LengthWidthMatch = this.state.lengthWidthMatches ? this.state.lengthWidthMatches : 0;\r\n extractMatchchanges = 0;\r\n widthLengthchanges = 0;\r\n }\r\n else {\r\n Width = '';\r\n Length = ''\r\n Height = -1;\r\n WidthPlusMinus = -1;\r\n LengthPlusMinus = -1;\r\n HeightPlusMinus = -1;\r\n SqFtFrom = values.SqFtFrom ? values.SqFtFrom : 0;\r\n SqFtTo = values.SqFtTo ? values.SqFtTo : 0;\r\n IsSpecifiedSizes = 0;\r\n LengthWidthMatch = 0;\r\n extractMatchchanges = 0;\r\n widthLengthchanges = 0;\r\n }\r\n\r\n }\r\n else {\r\n Width = '';\r\n Length = '';\r\n Height = -1;\r\n WidthPlusMinus = -1;\r\n LengthPlusMinus = -1;\r\n HeightPlusMinus = -1;\r\n SqFtFrom = 0;\r\n SqFtTo = 0;\r\n ClimateControlled = -1;\r\n HumidityControlled = -1;\r\n OutdoorAccess = -1;\r\n Alarm = -1;\r\n DriveUp = -1;\r\n DoorType = -1;\r\n Power = -1;\r\n Elevator = -1;\r\n LengthWidthMatch = 0;\r\n extractMatchchanges = 0;\r\n widthLengthchanges = 0;\r\n // Measurement = \"Square Feet\"\r\n Measurement = values.countryCode === \"AU\" || values.countryCode === \"NZ\" ? \"Meters\" : \"Square Feet\";\r\n\r\n if (ad_SizeType === 'predefined') {\r\n\r\n parkingminlength = -1;\r\n parkingmaxlength = -1;\r\n IsSpecifiedSizes = 0;\r\n Covered = values.Covered ? parseInt(values.Covered) : -1;\r\n Car = this.state.Car === 1 ? this.state.Car : -1;\r\n RV = this.state.RV === 1 ? this.state.RV : -1;\r\n OtherVehicle = this.state.Large ? this.state.Large : -1;\r\n parkingminlength = values.parkingminlength ? values.parkingminlength : '-1';\r\n parkingmaxlength = values.parkingmaxlength ? values.parkingmaxlength : '-1';\r\n }\r\n else {\r\n\r\n IsSpecifiedSizes = 1;\r\n Car = 0;\r\n RV = 0;\r\n OtherVehicle = 0;\r\n parkingminlength = values.parkingminlength ? values.parkingminlength : '-1';\r\n parkingmaxlength = values.parkingmaxlength ? values.parkingmaxlength : '-1';\r\n Covered = values.Covered ? parseInt(values.Covered) : -1;\r\n\r\n }\r\n }\r\n }\r\n else {\r\n\r\n if (spaceState === 'Unit') {\r\n Height = -1;\r\n WidthPlusMinus = -1;\r\n LengthPlusMinus = -1;\r\n HeightPlusMinus = -1;\r\n LengthWidthMatch = 0;\r\n widthLengthchanges = 0;\r\n parkingminlength = '-1';\r\n parkingmaxlength = '-1';\r\n Covered = -1;\r\n Power = values.Power ? parseInt(values.Power) : -1;\r\n Elevator = values.Elevator ? parseInt(values.Elevator) : -1;\r\n ClimateControlled = -1;\r\n HumidityControlled = -1;\r\n OutdoorAccess = -1;\r\n Alarm = -1;\r\n DriveUp = -1;\r\n DoorType = -1;\r\n // Measurement = \"Square Meter\";\r\n Measurement = CONFIG.RegionId === 3 ? \"Square Feet\" : \"Square Meter\";\r\n Car = -1;\r\n RV = -1;\r\n OtherVehicle = -1;\r\n if (ad_SizeType === 'predefined') {\r\n const reSizes = unitSize.split('x');\r\n Width = reSizes[0];\r\n Length = reSizes[1];\r\n extractMatchchanges = this.state.extractMatchchange;\r\n IsSpecifiedSizes = 0;\r\n SqFtFrom = '';\r\n SqFtTo = '';\r\n\r\n }\r\n else {\r\n\r\n Width = '';\r\n Length = '';\r\n extractMatchchanges = 0;\r\n SqFtFrom = values.SqFtFrom ? values.SqFtFrom : '';\r\n SqFtTo = values.SqFtTo ? values.SqFtTo : '';\r\n IsSpecifiedSizes = 0;\r\n }\r\n }\r\n else {\r\n Width = '';\r\n Length = '';\r\n extractMatchchanges = 0;\r\n Height = -1;\r\n WidthPlusMinus = -1;\r\n LengthPlusMinus = -1;\r\n HeightPlusMinus = -1;\r\n LengthWidthMatch = 0;\r\n widthLengthchanges = 0;\r\n Covered = values.Covered ? parseInt(values.Covered) : -1;\r\n ClimateControlled = -1;\r\n HumidityControlled = -1;\r\n OutdoorAccess = -1;\r\n Alarm = -1;\r\n DriveUp = -1;\r\n DoorType = -1;\r\n Power = -1;\r\n Elevator = -1;\r\n // Measurement = \"Square Meter\";\r\n Measurement = CONFIG.RegionId === 3 ? \"Square Feet\" : \"Square Meter\";\r\n SqFtFrom = '';\r\n SqFtTo = '';\r\n if (ad_SizeType === 'predefined') {\r\n\r\n Width = '';\r\n Length = '';\r\n IsSpecifiedSizes = 0;\r\n Car = this.state.Car === 1 ? this.state.Car : -1;\r\n RV = this.state.RV === 1 ? this.state.RV : -1;\r\n OtherVehicle = this.state.Large ? this.state.Large : -1;\r\n parkingminlength = values.parkingminlength ? values.parkingminlength : '-1';\r\n parkingmaxlength = values.parkingmaxlength ? values.parkingmaxlength : '-1';\r\n }\r\n else {\r\n Width = '';\r\n Length = '';\r\n parkingminlength = values.parkingminlength ? values.parkingminlength : '-1';\r\n parkingmaxlength = values.parkingmaxlength ? values.parkingmaxlength : '-1';\r\n IsSpecifiedSizes = 1;\r\n Car = -1;\r\n RV = -1;\r\n OtherVehicle = -1;\r\n }\r\n }\r\n }\r\n const data = {\r\n \"StoreId\": parseInt(values.StoreId),\r\n \"Name\": values.Name,\r\n \"SpaceType\": spaceState,\r\n \"Width\": Width ? Width : 0,\r\n \"Length\": Length ? Length : 0,\r\n \"Height\": Height,\r\n \"WidthPlusMinus\": WidthPlusMinus,\r\n \"LengthPlusMinus\": LengthPlusMinus,\r\n \"HeightPlusMinus\": HeightPlusMinus,\r\n \"ClimateControlled\": parseInt(ClimateControlled),\r\n \"HumidityControlled\": parseInt(HumidityControlled),\r\n \"OutdoorAccess\": parseInt(OutdoorAccess),\r\n \"Alarm\": parseInt(Alarm),\r\n \"Power\": parseInt(Power),\r\n \"DriveUp\": parseInt(DriveUp),\r\n \"Elevator\": parseInt(Elevator),\r\n \"Covered\": parseInt(Covered),\r\n \"Car\": Car,\r\n \"RV\": RV,\r\n \"OtherVehicle\": OtherVehicle,\r\n \"DoorType\": parseInt(DoorType),\r\n \"SqFtFrom\": SqFtFrom ? SqFtFrom : 0,\r\n \"SqFtTo\": SqFtTo ? SqFtTo : 0,\r\n \"IsSpecifiedSizes\": IsSpecifiedSizes,\r\n \"parkingminlength\": parkingminlength,\r\n \"parkingmaxlength\": parkingmaxlength,\r\n \"ExactMatch\": extractMatchchanges,\r\n \"WLMatchPredefined\": widthLengthchanges,\r\n \"WLMatchSpecific\": LengthWidthMatch,\r\n \"Measurement\": Measurement,\r\n \"SearchStatus\": 1,\r\n \"RegionId\": CONFIG.RegionId\r\n }\r\n\r\n axios.post(CONFIG.API_URL + 'market/addunit/', data)\r\n .then(res => {\r\n\r\n\r\n this.setState(state => ({ addmodal: !state.addmodal }));\r\n var isElement = document.getElementById('r2');\r\n if (isElement == null) {\r\n document.getElementById('r1').click();\r\n }\r\n else {\r\n document.getElementById('r1').click();\r\n document.getElementById('r2').click();\r\n }\r\n this.props.parentMethod();\r\n this.setState({ isLoading: false });\r\n this.setState({ snackOpen: true, snackMSg: \"Unit type added successfully\" });\r\n // console.log(res);\r\n })\r\n .catch((err) => {\r\n\r\n this.setState({ isLoading: false });\r\n if (err.res.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else {\r\n this.setState({ snackOpen: true, snackMSg: err.res.data });\r\n }\r\n });\r\n }\r\n })\r\n .catch((err) => {\r\n\r\n if (err.res.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else {\r\n this.setState({ snackOpen: true, snackMSg: err.res.data });\r\n }\r\n });\r\n }\r\n }\r\n // this.setState({ errors, values });\r\n\r\n }\r\n\r\n deleteMarket(searchid) {\r\n this.state.deleteId = searchid;\r\n this.delConfirmToggle()\r\n // this.toggleYes()\r\n }\r\n delConfirmToggle() {\r\n this.setState(prevState => ({\r\n deleteModal: !prevState.deleteModal\r\n }));\r\n }\r\n toggleYes() {\r\n let deleteId = this.state.deleteId;\r\n this.setState({ isLoading: true })\r\n let token = localStorage.getItem('accessKey');\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n }\r\n axios.post(CONFIG.API_URL + 'market/deleteunit/' + deleteId+ '/'+ CONFIG.RegionId)\r\n .then(res => {\r\n this.setState(state => ({ deleteModal: !state.deleteModal }));\r\n var isElement = document.getElementById('r2');\r\n if (isElement == null) {\r\n document.getElementById('r1').click();\r\n }\r\n else {\r\n document.getElementById('r1').click();\r\n document.getElementById('r2').click();\r\n }\r\n this.props.parentMethod();\r\n\r\n this.setState({ isLoading: false });\r\n this.setState({ snackOpen: true, snackMSg: \"Unit Type Deleted Successfully\" });\r\n })\r\n .catch((err) => {\r\n this.setState({ isLoading: false });\r\n if (err.res.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else {\r\n this.setState({ snackOpen: true, snackMSg: err.res.data });\r\n }\r\n });\r\n }\r\n editLengthWidthMatchchange = (event) => {\r\n\r\n let editlengthWidthMatches = this.state.editlengthWidthMatches;\r\n if (event.target.checked) {\r\n editlengthWidthMatches = 1\r\n }\r\n else {\r\n editlengthWidthMatches = 0\r\n }\r\n //alert(editlengthWidthMatches);\r\n this.setState({\r\n editlengthWidthMatches\r\n })\r\n\r\n }\r\n editextacttMatches = (event) => {\r\n\r\n let editextacttMatches = this.state.editextacttMatches;\r\n if (event.target.checked) {\r\n editextacttMatches = 1\r\n }\r\n else {\r\n editextacttMatches = 0\r\n }\r\n\r\n this.setState({\r\n editextacttMatches\r\n })\r\n\r\n }\r\n editwlMatchPredefined = (event) => {\r\n\r\n let editwlMatchPredefined = this.state.editwlMatchPredefined;\r\n if (event.target.checked) {\r\n editwlMatchPredefined = 1\r\n }\r\n else {\r\n editwlMatchPredefined = 0\r\n }\r\n\r\n this.setState({\r\n editwlMatchPredefined\r\n })\r\n\r\n }\r\n toggleNo() {\r\n this.setState(state => ({ deleteModal: !state.deleteModal }));\r\n }\r\n editSpaceTypeChange = (event) => { \r\n let editTypeChange = event.target.value;\r\n let editParkingisSpecifiedSizes = this.state.editParkingisSpecifiedSizes;\r\n let editisSpecifiedSizes = this.state.editisSpecifiedSizes;\r\n let editSpaceChange = '';\r\n if (editTypeChange === 'Unit') {\r\n editSpaceChange = \"Unit\";\r\n if (this.state.unitDetail.spaceType === 'Unit') {\r\n editisSpecifiedSizes = this.state.editisSpecifiedSizes;\r\n }\r\n else{\r\n editisSpecifiedSizes = \"editPredefined\"; \r\n }\r\n \r\n } else {\r\n editSpaceChange = \"Parking\";\r\n if (this.state.unitDetail.spaceType === 'Unit') {\r\n editParkingisSpecifiedSizes = \"editParkingPredefined\";\r\n }else{\r\n editParkingisSpecifiedSizes = this.state.editParkingisSpecifiedSizes;\r\n }\r\n }\r\n this.setState({ editSpaceChange,editParkingisSpecifiedSizes,editisSpecifiedSizes });\r\n }\r\n spaceTypeChange = (event) => {\r\n \r\n //let spacetype = this.state.spacetype;\r\n this.state.spacetype = event.target.value;\r\n //let ParkingAdd;\r\n this.setState({ spacetype: this.state.spacetype });\r\n this.state.userStore = [{ unit: \"-1\", unitID: \"-- --\" }, { unit: \"Car\", unitID: \"Car\" },\r\n { unit: \"RV\", unitID: \"RV\" }, { unit: \"Large\", unitID: \"Large\" }]\r\n if (this.state.spacetype == 'Parking') {\r\n this.setState({ userStore: this.state.userStore });\r\n // ParkingAdd = true;\r\n this.state.ad_Size = 'predefined';\r\n\r\n }\r\n else {\r\n // ParkingAdd = false;\r\n this.state.ad_Size = 'predefined';\r\n\r\n this.setState({ userStore: this.state.userStoreList });\r\n //this.userStoreUnit();\r\n }\r\n // this.setState({ parkingAdd })\r\n\r\n };\r\n\r\n sizeChange = (event) => {\r\n \r\n this.state.ad_Size = event.target.value;\r\n \r\n this.setState({ ad_Size: this.state.ad_Size});\r\n if (this.state.ad_Size === 'predefined') {\r\n this.state.ad_Size = 'predefined';\r\n //this.refs.firstName.value = '';\r\n let emptyWidth = '';\r\n \r\n this.setState({ emptyWidth: '',LengthWidthMatchchange:0 });\r\n\r\n }\r\n else if (this.state.ad_Size === 'Specific') {\r\n this.state.ad_Size = 'Specific';\r\n \r\n \r\n this.setState({\r\n extractMatchchange: 0,\r\n widthLengthchange: 0,emptyParking:\"-1\" \r\n })\r\n //this.state.emptyParking = '--';\r\n // this.setState({emptyParking: this.state.emptyParking });\r\n\r\n }\r\n else {\r\n this.state.ad_Size = 'Measurement';\r\n this.setState({\r\n extractMatchchange: 0,\r\n widthLengthchange: 0,LengthWidthMatchchange:0\r\n })\r\n\r\n }\r\n\r\n };\r\n sizeEditChange = (event) => { \r\n let until = this.state.unitDetail.width;\r\n until = '';\r\n // this.state.editisSpecifiedSizes = event.target.value;\r\n let editisSpecifiedSizes = event.target.value;\r\nlet editextacttMatches = this.state.editextacttMatches;\r\nlet editwlMatchPredefined = this.state.editwlMatchPredefined;\r\nlet editlengthWidthMatches = this.state.editlengthWidthMatches;\r\n if (editisSpecifiedSizes === \"editSpecific\") {\r\n\r\n editisSpecifiedSizes = \"editSpecific\"; editextacttMatches =0;editwlMatchPredefined = 0;\r\n editlengthWidthMatches = this.state.unitDetail.wlMatchSpecific === true ? 1 : 0;\r\n } else if (editisSpecifiedSizes === \"editPredefined\") {\r\n editisSpecifiedSizes = \"editPredefined\";editlengthWidthMatches=0;\r\n editextacttMatches = this.state.unitDetail.exactMatch === true ? 1 : 0;\r\n editwlMatchPredefined = this.state.unitDetail.wlMatchPredefined === true ? 1 : 0;\r\n } else {\r\n editisSpecifiedSizes = \"editSquareFootage\";\r\n editextacttMatches =0;editwlMatchPredefined = 0;editlengthWidthMatches=0;\r\n }\r\n this.setState({ editisSpecifiedSizes, until,editextacttMatches,editwlMatchPredefined,editlengthWidthMatches });\r\n //alert(this.state.unitDetail.isSpecifiedSizes);\r\n }\r\n sizeEditParkingChange = (event) => {\r\n let editParkingisSpecifiedSizess = event.target.value;\r\n let editParkingisSpecifiedSizes = '';\r\n if (editParkingisSpecifiedSizess === \"editParkingPredefined\") {\r\n editParkingisSpecifiedSizes = \"editParkingPredefined\";\r\n }\r\n else {\r\n editParkingisSpecifiedSizes = \"editParkingSpecific\";\r\n\r\n }\r\n this.setState({ editParkingisSpecifiedSizes });\r\n }\r\n LengthWidthMatchchange = (event) => {\r\n\r\n if (!event.target.checked) {\r\n this.setState({LengthWidthMatchchange:0\r\n\r\n })\r\n }\r\n else{\r\n this.setState({LengthWidthMatchchange:1})\r\n }\r\n \r\n\r\n }\r\n parkingChange = (event) => {\r\n let parkingchange = event.target.value;\r\n if (parkingchange === 'Car') {\r\n // this.state.parkingmaxlength = '18';\r\n // this.state.parkingminlength = '0';\r\n this.state.Car = 1;\r\n this.state.RV = '';\r\n this.state.Large = '';\r\n }\r\n else if (parkingchange === 'RV') {\r\n // this.state.parkingmaxlength = '1000';\r\n // this.state.parkingminlength = '18';\r\n this.state.RV = 1;\r\n this.state.Large = '';\r\n this.state.Car = '';\r\n }\r\n else if (parkingchange === 'Large') {\r\n // this.state.parkingmaxlength = '1000';\r\n // this.state.parkingminlength = '30';\r\n this.state.RV = '';\r\n this.state.Large = 1;\r\n this.state.Car = '';\r\n }\r\n else {\r\n this.state.parkingmaxlength = '';\r\n this.state.parkingminlength = '';\r\n }\r\n // this.setState({ parkingmaxlength: this.state.parkingmaxlength });\r\n // this.setState({ parkingminlength: this.state.parkingminlength });\r\n\r\n }\r\n editParkingsChange = (event) => {\r\n let parkingChangeMax = event.target.value;\r\n let editCar = '';\r\n let editRV = '';\r\n let editLarge = '';\r\n if (parkingChangeMax === '1') {\r\n // this.state.editparkingmaxlength = '18';\r\n // this.state.editparkingminlength = '0';\r\n editCar = 1;\r\n\r\n }\r\n else if (parkingChangeMax === '2') {\r\n // this.state.editparkingmaxlength = '1000';\r\n // this.state.editparkingminlength = '18';\r\n editRV = 1;\r\n }\r\n else if (parkingChangeMax === '3') {\r\n // this.state.editparkingmaxlength = '1000';\r\n // this.state.editparkingminlength = '30';\r\n editLarge = 1;\r\n }\r\n else {\r\n // this.state.editparkingmaxlength = '';\r\n // this.state.editparkingminlength = '';\r\n }\r\n this.setState({ editCar, editRV, editLarge });\r\n // this.setState({ editparkingminlength: this.state.editparkingminlength });\r\n }\r\n resetAllValues() {\r\n\r\n // this.setState({ checkItOut: false });\r\n // ReactDOM.findDOMNode(this.myFormRef.form).value = \"\";\r\n this.myFormRef && this.myFormRef.reset();\r\n }\r\n closeAddUnit() {\r\n this.setState(state => ({ addmodal: !state.addmodal }))\r\n\r\n }\r\n closeEditUnit() {\r\n this.setState(state => ({ modal: false }))\r\n\r\n }\r\n\r\n resetEditUnits(id) {\r\n\r\n this.toggleModal(id);\r\n // const editParam = id.split(\"/\");\r\n // let Sid = editParam[0];\r\n // let countryCode = editParam[1];\r\n // let token = localStorage.getItem('accessKey');\r\n // if (token) {\r\n // axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n // }\r\n\r\n // this.state.countryCode = countryCode;\r\n // this.setState({ countryCode: this.state.countryCode });\r\n // this.userStoreUnit();\r\n // axios.post(CONFIG.API_URL + 'market/unitdetail/' + Sid)\r\n // .then(res => {\r\n // let resData = res.data.competitor;\r\n // let unitDetail = res.data.competitor;\r\n // // let unitDetail = this.state.unitDetail;\r\n // let editSearchId = unitDetail.searchID;\r\n // let editlengthWidthMatches = unitDetail.wlMatchSpecific === true ? 1 : 0;\r\n // let editextacttMatches = unitDetail.exactMatch === true ? 1 : 0;\r\n // let editwlMatchPredefined = unitDetail.wlMatchPredefined === true ? 1 : 0;\r\n // let editName = unitDetail.name ;\r\n // let editisSpecifiedSizes = '';\r\n // let editParkUnits = '';\r\n // let editParkingisSpecifiedSizes = '';\r\n // let editparkingminlength = '';\r\n // let editparkingmaxlength = '';\r\n // if (unitDetail.isSpecifiedSizes === true) {\r\n // editisSpecifiedSizes= 'editSpecific' ;\r\n // }\r\n // else if (unitDetail.sqft > 0) {\r\n // editisSpecifiedSizes= 'editSquareFootage' ;\r\n\r\n // }\r\n // else {\r\n // editisSpecifiedSizes= 'editPredefined' ;\r\n\r\n // }\r\n // let editSpaceChange = '';\r\n // if (unitDetail.spaceType === 'Unit') {\r\n // editSpaceChange = \"Unit\";\r\n\r\n\r\n // }\r\n // else {\r\n // editSpaceChange = \"Parking\";\r\n // if (unitDetail.rv === 1) {\r\n // editParkUnits = \"2\";\r\n\r\n // } else if (unitDetail.car === 1) {\r\n // editParkUnits = \"1\";\r\n\r\n // } else if (unitDetail.otherVehicle === 1) {\r\n // editParkUnits = \"3\";\r\n\r\n // } else {\r\n // editParkUnits = \"-1\";\r\n\r\n // }\r\n // if (unitDetail.car === 1 || unitDetail.otherVehicle === 1 || unitDetail.rv === 1) {\r\n // editParkingisSpecifiedSizes= 'editParkingPredefined' ;\r\n // editparkingminlength='' ;\r\n // editparkingmaxlength= '' ;\r\n // }\r\n // else {\r\n // editParkingisSpecifiedSizes= 'editParkingSpecific';\r\n // editparkingminlength= unitDetail.parkingminlength ;\r\n // editparkingmaxlength= unitDetail.parkingmaxlength ;\r\n // }\r\n // }\r\n\r\n // this.setState({ unitDetail,resData,editSearchId ,editName,editlengthWidthMatches,editextacttMatches,editwlMatchPredefined,editisSpecifiedSizes,editSpaceChange,editParkUnits,editParkingisSpecifiedSizes,editparkingminlength,editparkingmaxlength })\r\n\r\n // })\r\n // .catch((err) => {\r\n // // console.log(err)\r\n\r\n // if (err.res.status === 401) {\r\n // localStorage.removeItem('accessKey');\r\n // const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n // this.props.history.push(from);\r\n // }\r\n // else {\r\n // alert(err.res.data);\r\n // }\r\n // });\r\n\r\n }\r\n extractMatchChange(event) {\r\n \r\n //let extractMatchchange = event.target.value;\r\n if (!event.target.checked) {\r\n this.setState({ extractMatchchange: 0 });\r\n }\r\n else {\r\n this.setState({ extractMatchchange: 1 });\r\n }\r\n }\r\n widthLengthChange(event) {\r\n //let widthLengthchange = event.target.value;\r\n if (!event.target.checked) {\r\n this.setState({ widthLengthchange: 0 });\r\n }\r\n else {\r\n this.setState({ widthLengthchange: 1 });\r\n }\r\n\r\n\r\n }\r\n trackModal(storeId, searchId) {\r\n const data={\r\n \"UserStoreId\":storeId,\r\n \"SearchId\":searchId,\r\n \"RegionId\":CONFIG.RegionId\r\n }\r\n\r\n axios.post(CONFIG.API_URL + 'unit/competitorslist',data )\r\n .then(response => {\r\n\r\n // this.state.isLoading=true;\r\n const trackModalData = response.data.competitor.unitCompData;\r\n\r\n this.setState({ trackModalData, storeModal: true, })\r\n }).catch((err) => {\r\n // if (err.response.status === 401) {\r\n // localStorage.removeItem('accessKey');\r\n // const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n // this.props.history.push(from);\r\n // }\r\n // else {\r\n // alert(err.response.data);\r\n // }\r\n });\r\n }\r\n trackModalClose() {\r\n this.setState({\r\n storeModal: false,\r\n pageCount: 0\r\n })\r\n }\r\n snackHandleclose = (event, reason) => {\r\n if (reason === 'clickaway') {\r\n return;\r\n }\r\n this.setState({ snackOpen: false });\r\n };\r\n\r\n handleChangePageTrack = (event, pageCount) => {\r\n this.setState({ pageCount });\r\n };\r\n handleChangeRowsPerPageTrack = event => {\r\n this.setState({ pageCount: 0, 10: event.target.value });\r\n };\r\n handleChange(e) {\r\n\r\n let fields = this.state;\r\n let num = e.target.value.replace(/[^\\w\\s]/gi, \"\");\r\n fields[e.target.name] = num;\r\n this.setState({ fields });\r\n }\r\n handleChange1(e) {\r\n\r\n let unitDetail = this.state.unitDetail;\r\n let num = e.target.value.replace(/[^\\w\\s]/gi, \"\");\r\n\r\n if (e.target.name === \"editWidthPlusMinus\") {\r\n unitDetail.widthplusminus = num;\r\n }\r\n else if (e.target.name === \"editLengthPlusMinus\") {\r\n unitDetail.lengthplusminus = num;\r\n }\r\n else {\r\n unitDetail.heightplusminus = num;\r\n }\r\n\r\n this.setState({ unitDetail });\r\n }\r\n render() {\r\n\r\n const {\r\n name, index, avgPrice, priceTrend, myStorePrice, id, currency, storeid, StoreName, StoreAddress, StoreCity, StoreState, StoreZipcode,\r\n isDragging, countryCode, priceTrends1,\r\n connectDragSource, storeCount,\r\n connectDropTarget,\r\n } = this.props;\r\n const { spacetype, hideSpecifiedtext, ad_Size, userStore, unitDetail, editisSpecifiedSizes, trackModalData, pageCount, snackMSg, snackOpen } = this.state;\r\n\r\n // const opacity = isDragging ? 0 : 1;\r\n\r\n const partsOfStr = myStorePrice.split('-');\r\n let myStorePrice1 = partsOfStr[0];\r\n let myStorePrice2 = '';\r\n if (partsOfStr[1] === undefined) {\r\n myStorePrice2 = '';\r\n } else {\r\n myStorePrice2 = partsOfStr[1].trim();\r\n }\r\n var regionID= CONFIG.RegionId;\r\n // const style = spacetype == 'Parking'?{display : 'none'} : {};\r\n\r\n //console.log(userStore);\r\n //console.log(unitDetail, 'unitDetail')\r\n return (\r\n connectDragSource &&\r\n connectDropTarget &&\r\n connectDragSource(\r\n connectDropTarget(\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n
{name.length>15?name.slice(0,15)+'..':name.slice(0,15)}\r\n {/* \"\" */}\r\n \"\"\r\n
\r\n \r\n {name}\r\n \r\n {/* */}\r\n \r\n
\r\n
\r\n {storeCount === 'No' ?

Offered by N/A

:\r\n //

Offered by this.trackModal(storeid, id)}>{storeCount > 1 ? storeCount + ' stores' : storeCount + ' store'}

\r\n

Offered by {storeCount > 1 ? storeCount + ' stores' : storeCount + ' store'}

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

{CONFIG.RegionId === 3 ? \"Avg. Weekly Market Price\" : \"Avg. Market Price\" }

\r\n
\r\n {avgPrice === \"N/A\" ? \"N/A\" : currency + avgPrice}{priceTrend === null ? '' : parseFloat(priceTrend) >= 0 ? \"arrow-up\" : \"arrow-down\"}{priceTrend === null ? N/A : priceTrend >= 0 ? {priceTrend.toFixed(2) + \"%\"} : {priceTrend.toFixed(2) + \"%\"}}{priceTrends1 === \"1\" ? 'Last 5 days' : priceTrends1 === \"2\" ? 'Last 30 days' : priceTrends1 === \"3\" ? 'Last 90 days' : priceTrends1 === \"4\" ? 'Last 6 Months' : 'Last 12 Months'}\r\n
\r\n
\r\n
\r\n
\r\n

{CONFIG.RegionId === 3 ? \"Your Weekly Price\" : \"Your Price\" }

\r\n
{myStorePrice1 === \"0\" ? \"N/A\" : currency + myStorePrice1}{myStorePrice2 === \"\" ? \"\" : \" - \" + myStorePrice2}
\r\n
\r\n
\r\n {/* \r\n \r\n */}\r\n
\r\n
\r\n {/* View Details */}\r\n View Details \r\n
\r\n
\r\n {/*
View Details
*/}\r\n \r\n \r\n {unitDetail.name === undefined ?\"Update \" + '': \"Update \" + unitDetail.name}\r\n
{StoreName} | {StoreAddress + ', ' + StoreCity }{StoreState ? ', ' + StoreState : ''} {StoreZipcode}
\r\n {/*
{\"Coverage: \"}{StoreRadius}
*/}\r\n \r\n \r\n \r\n \r\n \r\n\r\n (this.myFormupdate = c)} className=\"basic-details\">\r\n

Basic Details

\r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n

Size

\r\n\r\n {this.state.editSpaceChange !== \"Parking\" ?\r\n
\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n {userStore ? userStore.map(n => {\r\n return (\r\n \r\n );\r\n }) : ''}\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {(countryCode === 'US') || (countryCode === 'CA') ?\r\n
\r\n : ''}\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n {(countryCode === 'US') || (countryCode === 'CA') || (countryCode === 'AU') || (countryCode === 'NZ')?\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
0 && hideSpecifiedtext === 2) ? unitDetail.width : ''} name=\"editWidth\" type=\"number\" disabled={editisSpecifiedSizes === 'editPredefined' || editisSpecifiedSizes === 'editSquareFootage'} />
(+/- 0 && unitDetail.isSpecifiedSizes !=0) ? unitDetail.widthplusminus : ''} name=\"editWidthPlusMinus\" type=\"number\" disabled={editisSpecifiedSizes === 'editPredefined' || editisSpecifiedSizes === 'editSquareFootage'} onChange={this.handleChange1} />)\r\n
\r\n \r\n \r\n
0 && hideSpecifiedtext === 2) ? unitDetail.length : ''} name=\"editLength\" type=\"number\" disabled={editisSpecifiedSizes === 'editPredefined' || editisSpecifiedSizes === 'editSquareFootage'} />
(+/- 0 && unitDetail.isSpecifiedSizes !=0) ? unitDetail.lengthplusminus : ''} name=\"editLengthPlusMinus\" type=\"number\" disabled={editisSpecifiedSizes === 'editPredefined' || editisSpecifiedSizes === 'editSquareFootage'} onChange={this.handleChange1} />)\r\n
\r\n \r\n \r\n
0) ? unitDetail.height : ''} name=\"editHeight\" type=\"number\" disabled={editisSpecifiedSizes === 'editPredefined' || editisSpecifiedSizes === 'editSquareFootage'} />
(+/- 0) ? unitDetail.heightplusminus : ''} name=\"editHeightPlusMinus\" type=\"number\" disabled={editisSpecifiedSizes === 'editPredefined' || editisSpecifiedSizes === 'editSquareFootage'} onChange={this.handleChange1} />)\r\n
\r\n \r\n
\r\n \r\n {countryCode === 'AU' || countryCode === 'NZ' ?'' :\r\n \r\n \r\n \r\n }\r\n\r\n
\r\n : ''}\r\n\r\n {countryCode === 'AU' || countryCode === 'NZ' ?'' : \r\n \r\n {(countryCode === 'US') || (countryCode === 'CA')|| (regionID === 3) ?\r\n \r\n \r\n \r\n : \r\n \r\n }\r\n \r\n 0 ? unitDetail.sqft.toString() : ''} name=\"editSqFtFrom\" type=\"number\" disabled={editisSpecifiedSizes === 'editPredefined' || editisSpecifiedSizes === 'editSpecific'} />\r\n to\r\n \r\n 0 ? unitDetail.sqftTo : ''} name=\"editSqFtTo\" type=\"number\" disabled={editisSpecifiedSizes === 'editPredefined' || editisSpecifiedSizes === 'editSpecific'} />\r\n \r\n {countryCode === 'US' || countryCode === 'CA' && spacetype === 'Unit' ? '' : regionID === 3 && spacetype === 'Unit'? : }\r\n \r\n }\r\n\r\n

Unit Features

\r\n {(countryCode === 'US') || (countryCode === 'CA')|| (regionID === 3)|| (countryCode === 'AU') || (countryCode === 'NZ')?\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n : ''}\r\n \r\n {(countryCode === 'US') || (countryCode === 'CA')|| (regionID === 3)|| (countryCode === 'AU') || (countryCode === 'NZ') ?\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n : ''}\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {(countryCode === 'US') || (countryCode === 'CA')|| (regionID === 3)|| (countryCode === 'AU') || (countryCode === 'NZ') ?\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n : ''}\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n {(countryCode === 'US') || (countryCode === 'CA')|| (regionID === 3) || (countryCode === 'AU') || (countryCode === 'NZ')?\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n : ''}\r\n
\r\n : ''}\r\n {this.state.editSpaceChange !== \"Unit\" ?\r\n
\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
0 ? this.state.editparkingminlength.toString() : ''} type=\"number\" disabled={this.state.editParkingisSpecifiedSizes === \"editParkingPredefined\"} />
0 ? this.state.editparkingmaxlength : ''} disabled={this.state.editParkingisSpecifiedSizes === \"editParkingPredefined\"} />\r\n
\r\n \r\n
\r\n \r\n
\r\n

Unit Features

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n : ''}\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n\r\n\r\n\r\n
\r\n\r\n
\r\n\r\n \r\n Are you sure you want to delete?\r\n \r\n \r\n \r\n \r\n\r\n \r\n
\r\n this.trackModal()} \r\n className=\"store-mainpopup\"\r\n backdrop=\"static\">\r\n {StoreName}\r\n \r\n \r\n \r\n \r\n COMPETITOR NAME\r\n ADDRESS\r\n\r\n \r\n \r\n \r\n {trackModalData ? trackModalData.slice(pageCount * 10, pageCount * 10 + 10).map((trackData) =>\r\n \r\n {trackData.storename}\r\n {trackData.address}\r\n\r\n \r\n ) :\r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n {snackMSg}}\r\n action={[\r\n \r\n \r\n \r\n ]}\r\n />\r\n
),\r\n )\r\n );\r\n }\r\n}\r\n\r\nexport default flow(\r\n DragSource(\r\n 'card',\r\n cardSource,\r\n (connect, monitor) => ({\r\n connectDragSource: connect.dragSource(),\r\n isDragging: monitor.isDragging(),\r\n }),\r\n ),\r\n DropTarget('card', cardTarget, (connect) => ({\r\n connectDropTarget: connect.dropTarget(),\r\n }))\r\n)(Card);","import React, { Component } from 'react';\r\nimport { Col, Row, Button } from 'reactstrap';\r\nimport HTML5Backend from 'react-dnd-html5-backend';\r\nimport { DragDropContext } from 'react-dnd';\r\n//import {MarketDashboardPdfHeader} from './../MarketDashboardPdfHeader/index';\r\nimport { AvForm, AvField } from 'availity-reactstrap-validation';\r\nimport Breadcrumbs from '@material-ui/core/Breadcrumbs';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport { HashLink as Link } from 'react-router-hash-link';\r\nimport './MarketDashboardPdf.css';\r\nimport Card from './Card';\r\nimport { CONFIG } from './../../../utils/config';\r\nimport axios from 'axios';\r\nimport { HelpTextPopup } from '../../HelpTextPopup/index';\r\nimport Logo from '../../../Assets/Images/logo.jpg';\r\nimport { arrayOf } from 'prop-types';\r\n//import ReactToPrint from 'react-to-print';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faFilePdf } from '@fortawesome/free-solid-svg-icons';\r\nclass MarketDashboardPdf extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n storeid: this.props.storeid,\r\n cards: [],\r\n storedata: [],\r\n isLoading: false,\r\n storeInformation: [],\r\n countryCode: '',\r\n storeAddress: '',\r\n priceTrends: this.props.priceTrend.toString(),\r\n priceTrendsAvg: this.props.priceTrend.toString(),\r\n accessKey: this.props.accessKey\r\n }\r\n this.handler = this.handler.bind(this);\r\n this.refreshMenu = this.refreshMenu.bind(this);\r\n localStorage.setItem('StId', this.props.storeid);\r\n }\r\n refreshMenu() {\r\n localStorage.setItem('refreshMenu', \"show-menu\");\r\n var isElement = document.getElementById('r2');\r\n if (isElement == null) {\r\n document.getElementById('r1').click();\r\n }\r\n else {\r\n document.getElementById('r1').click();\r\n document.getElementById('r2').click();\r\n }\r\n }\r\n async UNSAFE_componentWillMount() {\r\n const data = {\r\n \"SecretKey\": this.props.accessKey,\r\n \"RegionId\": CONFIG.RegionId\r\n }\r\n\r\n const response = await axios.post(CONFIG.API_URL + 'account/secretlogin', data);\r\n if (response.status === 200) {\r\n this.state.accessKey = response.data.token;\r\n this.MarketDashboard();\r\n } else {\r\n alert(response.status.Message);\r\n }\r\n }\r\n MarketDashboard(priceTrendss) {\r\n\r\n this.setState({\r\n isLoading: true\r\n })\r\n // priceTrendss = this.props.priceTrend ;\r\n const userstoreid = this.state.storeid ? this.state.storeid : this.props.storeid;\r\n let priceTrends1 = '';\r\n if (priceTrendss) {\r\n priceTrends1 = priceTrendss;\r\n }\r\n else {\r\n priceTrends1 = this.state.priceTrends;\r\n\r\n }\r\n let token = this.state.accessKey;\r\n // console.log(token);\r\n\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n }\r\n const data1 = {\r\n \"UserStoreID\": parseInt(this.state.storeid),\r\n \"RegionId\": CONFIG.RegionId\r\n }\r\n axios.post(CONFIG.API_URL + 'dashboard/dashboardlocation/', data1)\r\n .then(res => {\r\n let storeAddress = res.data.data.storeDashboard;\r\n this.setState({ storeAddress });\r\n\r\n })\r\n .catch((err) => {\r\n\r\n\r\n this.setState({ isLoading: false });\r\n if (err.response.status === 401) {\r\n // localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else if (err.response.status === 403) {\r\n const { from } = this.props.location.state || { from: { pathname: \"/UnauthorizedAccess\" } };\r\n this.props.history.push(from);\r\n }\r\n else {\r\n alert(err.response.data);\r\n }\r\n });\r\n if (userstoreid) {\r\n let data = {\r\n \"UserStoreId\": userstoreid,\r\n \"SortId\": priceTrends1,\r\n \"RegionId\": CONFIG.RegionId\r\n }\r\n // axios.post(CONFIG.API_URL + 'market/dashboard/' + userstoreid + '/' + priceTrends1)\r\n axios.post(CONFIG.API_URL + 'market/dashboard/', data)\r\n .then(res => {\r\n\r\n // if(res.data.board.storeInformation !=null){\r\n this.state.countryCode = res.data.board.storeInformation.countryCode;\r\n this.state.storeInformation = res.data.board.storeInformation.countryCurrency;\r\n this.state.cards = res.data.board.units;\r\n const storedata = res.data.board.storeInformation;\r\n // this.state.cards.unshift('Add New')\r\n this.setState({ isLoading: false, storedata });\r\n\r\n /*\r\n }\r\n else\r\n {\r\n alert(\"No store units available\");\r\n const { from } = this.props.location.state || { from: { pathname: \"/my-market/\" } };\r\n this.props.history.push(from);\r\n }*/\r\n })\r\n .catch((err) => {\r\n\r\n this.setState({ isLoading: false });\r\n if (err.response.status === 401) {\r\n // localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else if (err.response.status === 403) {\r\n const { from } = this.props.location.state || { from: { pathname: \"/UnauthorizedAccess\" } };\r\n this.props.history.push(from);\r\n }\r\n else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }\r\n else {\r\n alert(\"User store id is empty\");\r\n }\r\n }\r\n showPriceTrends = (event) => {\r\n let priceTrends = event.target.value;\r\n\r\n this.setState({ priceTrendsAvg: priceTrends, priceTrends: priceTrends }, () => { this.componentDidMount(priceTrends); });\r\n\r\n\r\n }\r\n\r\n moveCard = (dragIndex, hoverIndex) => {\r\n const dragCard = this.state.cards[dragIndex];\r\n this.state.cards.splice(dragIndex, 1);\r\n this.state.cards.splice(hoverIndex, 0, dragCard);\r\n\r\n this.setState(\r\n { cards: this.state.cards });\r\n const userstoreid = this.state.storeid;\r\n let removeCard = this.state.cards;\r\n removeCard.shift();\r\n // this.state.cards.unshift('Add New')\r\n let reorderid = removeCard;\r\n let arr = [];\r\n\r\n reorderid.forEach(function (e) { arr.push(e.searchid) });\r\n\r\n let searchorder = arr.toString();\r\n let token = this.state.accessKey;\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n }\r\n let data = {\r\n \"UserStoreId\": userstoreid,\r\n \"OrderList\": searchorder,\r\n \"RegionId\": CONFIG.RegionId\r\n }\r\n // axios.post(CONFIG.API_URL + 'Market/unitorder/' + userstoreid + '/' + searchorder)\r\n axios.post(CONFIG.API_URL + 'Market/unitorder/', data)\r\n .then(res => {\r\n // console.log(res)\r\n })\r\n .catch((err) => {\r\n\r\n this.setState({ isLoading: false });\r\n if (err.response.status === 401) {\r\n //localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else {\r\n // alert(err.response.data);\r\n }\r\n });\r\n\r\n }\r\n handler() {\r\n this.componentDidMount();\r\n }\r\n render() {\r\n const { cards, storeInformation, isLoading, countryCode, storeid, storedata, storeAddress, priceTrendsAvg } = this.state;\r\n const defaultProps = {\r\n helpTitle: 'Market Overview',\r\n helpContent: \"

By default, this dashboard shows 12 of the most common unit types. Each 'box' gives you a quick snapshot of the rates for this Market. Below is a breakdown of what's in each snapshot:

Offered by x stores

This is the number of stores advertising this unit type in this Market

Average Market Price

This is the market average rate for this unit type. The average rates shown here are calculated using the Advertised Online rates

Trend

The upward/downward arrow shows the direction of the trend for this unit type's rates over the period selected (5 days, 30 days, 90 days)

Your Price

If you have set up your store as your Market, your store's rate(s) will appear here for the unit type. If we have not found a rate for your store, it will be shown as 'N/A'

View Details

To view the detailed pricing insights for the unit type, click on View Details

+Add New

You are not limited to the 12 unit types you see here. Click +Add New to configure your own unit size and features

Edit

Click the pencil icon to make any changes to the features for that unit type

Delete

Click the x to delete this unit type from the dashboard

*Your store prices are included in the calculations.

Refer the below help video for more information.

\"\r\n }\r\n const tr = [...Array(Math.ceil(cards.length / 15))];\r\n const trproductRows = tr.map((row, idx) => cards.slice(idx * 15, idx * 15 + 15));\r\n\r\n var preIndex = 0;\r\n const nameCount = storeAddress.storeName ? storeAddress.storeName.length : 0;\r\n return (\r\n
\r\n
\r\n {/* \r\n Overview\r\n this.refreshMenu()} color=\"inherit\" className=\"link-tag\">My Market\r\n {storeAddress.storeName?storeAddress.storeName:''}\r\n Dashboard\r\n \r\n \r\n
\r\n
\r\n\r\n \r\n \r\n

Market Dashboard

\r\n \r\n {isLoading===false ?\r\n \r\n
{storeAddress.storeName ? storeAddress.storeName : isLoading===false ? 'N/A':''}
\r\n

{storeAddress.storeAddress1 ? storeAddress.storeAddress1 + ',' : isLoading===false ? 'N/A':''} {storeAddress.storeAddress2 ? storeAddress.storeAddress2 + ',' : ''} {storeAddress.storeCity ? storeAddress.storeCity : isLoading===false ? 'N/A':''}{storeAddress.storeState ? ', ' + storeAddress.storeState + '' : isLoading===false ? '':''} {storeAddress.storeZipCode ? storeAddress.storeZipCode + '' : isLoading===false ? 'N/A':''}

\r\n {storeAddress.storeZoneCoverage ? storeAddress.storeZoneCoverage : isLoading===false ? 'N/A':''}\r\n :''}\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n\r\n
*/}\r\n\r\n {/* */}\r\n\r\n
\r\n {isLoading ?
: ''}\r\n \r\n
\r\n
\r\n \r\n
\r\n
{storeAddress.storeName && storeAddress.storeName !== null && storeAddress.storeName !== '' ? nameCount > CONFIG.storeNameMaxLimit ? storeAddress.storeName.substring(0,CONFIG.storeNameMaxLimit-3) + '...' : storeAddress.storeName : isLoading === false ? 'Your Store' : ''}
\r\n
\r\n

\r\n {/* {storeAddress.storeAddress1 && storeAddress.storeAddress1 !== null && storeAddress.storeAddress1 !== '' ? storeAddress.storeAddress1 + ',' : isLoading === false ? '' : ''} {storeAddress.storeCity ? storeAddress.storeCity + ', ' : storeAddress.searchType === 1 && (storeAddress.storeCity === '' || storeAddress.storeCity === null) && (storeAddress.storeZipCode === '' || storeAddress.storeZipCode === null) ? storeAddress.latitude+', ' +storeAddress.longitude+', ' : isLoading === false ? '' : ''} {storeAddress.storeState ? storeAddress.storeState + '' : isLoading === false ? 'N/A' : ''} {storeAddress.storeZipCode && storeAddress.storeZipCode !== '' && storeAddress.storeZipCode !== null ? storeAddress.storeZipCode + '' : isLoading === false ? '' : ''} | {storeAddress.storeZoneCoverage ? storeAddress.storeZoneCoverage : isLoading===false ? 'N/A':''} */}\r\n {storeAddress.storeAddress1 && storeAddress.storeAddress1 !== null && storeAddress.storeAddress1 !== '' ? storeAddress.storeAddress1 + ',' : isLoading === false ? '' : ''} {storeAddress.storeCity ? storeAddress.storeCity + ', ' : storeAddress.searchType === 1 && (storeAddress.storeCity === '' || storeAddress.storeCity === null) && (storeAddress.storeZipCode === '' || storeAddress.storeZipCode === null) ? storeAddress.latitude+', ' +storeAddress.longitude+', ' : isLoading === false ? '' : ''} {storeAddress.storeState ? storeAddress.storeState + '' : isLoading === false ? '' : ''} {storeAddress.storeZipCode && storeAddress.storeZipCode !== '' && storeAddress.storeZipCode !== null ? storeAddress.storeZipCode + '' : isLoading === false ? '' : ''} | {storeAddress.storeZoneCoverage ? storeAddress.storeZoneCoverage : isLoading===false ? 'N/A':''}\r\n

\r\n
\r\n
*N/A: Trend currently unavailable due to insufficient data
\r\n
\r\n {CONFIG.Website_Text_Footer_Pdf} | {CONFIG.Phone_Footer_Pdf} | {CONFIG.Mail_Footer_Pdf} | \"Optimize\r\n
\r\n \r\n {\r\n trproductRows ? trproductRows.map((rows, i) => (\r\n
\r\n {i === 0 ?\r\n
\r\n

Market Dashboard

\r\n

By default, this dashboard shows 12 of the most common unit types. Each 'box' gives you a quick snapshot of the rates for this Market. Below is a breakdown of what's in each snapshot:

\r\n
Offered by x stores
\r\n

This is the number of stores advertising this unit type in this Market

\r\n
{CONFIG.RegionId === 3 ? \"Average Weekly Market Price\" : \"Average Market Price\"}
\r\n

This is the market average rate for this unit type. The average rates shown here are calculated using the Advertised Online rates

\r\n
Trend
\r\n

The upward/downward arrow shows the direction of the trend for this unit type's rates over the period selected (5 days, 30 days, 90 days)

\r\n
{CONFIG.RegionId === 3 ? \"Your Weekly Price\" : \"Your Price\" }
\r\n

If you have set up your store as your Market, your store's rate(s) will appear here for the unit type. If we have not found a rate for your store, it will be shown as 'N/A'

\r\n

*Your store prices are included in the calculations.

\r\n
\r\n : ''}\r\n
\r\n {rows.map((card, index) => (\r\n
\r\n {/* {preIndex = preIndex+1} */}\r\n\r\n {/* {preIndex = preIndex+1} -\r\n {i+index} */}\r\n {/* {preIndex === 0 ? 0 : preIndex + 1} */}\r\n {/* {i+index===0? 0 : preIndex + 1} */}\r\n \r\n
\r\n\r\n\r\n ))}\r\n
\r\n
\r\n
\r\n ))\r\n : ''}\r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n\r\n );\r\n }\r\n}\r\nexport default DragDropContext(HTML5Backend)(MarketDashboardPdf);\r\n","import React, { Component } from 'react';\r\nimport ReactDOM from \"react-dom\";\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport './InventoryAvailabilityPdf.css';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { HelpTextPopup } from '../../HelpTextPopup/index';\r\nimport Table from '@material-ui/core/Table';\r\nimport TableBody from '@material-ui/core/TableBody';\r\nimport TableCell from '@material-ui/core/TableCell';\r\nimport TableHead from '@material-ui/core/TableHead';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faCheck } from '@fortawesome/free-solid-svg-icons';\r\nimport { faTimes } from '@fortawesome/free-solid-svg-icons';\r\nimport TableRow from '@material-ui/core/TableRow';\r\nimport Breadcrumbs from '@material-ui/core/Breadcrumbs';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport TableFooter from '@material-ui/core/TableFooter';\r\n//import TableRowColumn from '@material-ui/core/TableRowColumn'; \r\nimport { Table as ReactTable } from 'reactstrap';\r\nimport TableSortLabel from '@material-ui/core/TableSortLabel';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport TablePagination from '@material-ui/core/TablePagination';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport FirstPageIcon from '@material-ui/icons/FirstPage';\r\nimport KeyboardArrowLeft from '@material-ui/icons/KeyboardArrowLeft';\r\nimport KeyboardArrowRight from '@material-ui/icons/KeyboardArrowRight';\r\nimport LastPageIcon from '@material-ui/icons/LastPage';\r\nimport Logo from '../../../Assets/Images/logo.jpg';\r\nimport * as d3 from \"d3\";\r\nimport { Col, Row, Modal, ModalHeader, ModalBody, ModalFooter, Button } from 'reactstrap';\r\nimport { HashLink as Link } from 'react-router-hash-link';\r\nimport { CONFIG } from '../../../utils/config';\r\nimport axios from 'axios';\r\nimport downarrows from '../../../Assets/Images/down-arrow.png';\r\nimport Chart from \"react-apexcharts\";\r\n\r\nconst actionsStyles = theme => ({\r\n tablepaggination: {\r\n flexShrink: 0,\r\n color: theme.palette.text.secondary,\r\n marginLeft: theme.spacing * 2.5,\r\n },\r\n});\r\n\r\nclass MyMarket extends React.Component {\r\n\r\n handleFirstPageButtonClick = event => {\r\n this.props.onChangePage(event, 0);\r\n };\r\n\r\n handleBackButtonClick = event => {\r\n this.props.onChangePage(event, this.props.page - 1);\r\n };\r\n\r\n handleNextButtonClick = event => {\r\n this.props.onChangePage(event, this.props.page + 1);\r\n };\r\n\r\n handleLastPageButtonClick = event => {\r\n this.props.onChangePage(\r\n event,\r\n Math.max(0, Math.ceil(this.props.count / this.props.rowsPerPage) - 1),\r\n );\r\n };\r\n\r\n\r\n render() {\r\n const { classes, count, page, rowsPerPage, theme } = this.props;\r\n\r\n return (\r\n
\r\n \r\n {theme.direction === 'rtl' ? : }\r\n \r\n \r\n {theme.direction === 'rtl' ? : }\r\n \r\n = Math.ceil(count / rowsPerPage) - 1}\r\n aria-label=\"Next Page\"\r\n >\r\n {theme.direction === 'rtl' ? : }\r\n \r\n = Math.ceil(count / rowsPerPage) - 1}\r\n aria-label=\"Last Page\"\r\n >\r\n {theme.direction === 'rtl' ? : }\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nconst MyMarketWrapped = withStyles(actionsStyles, { withTheme: true })(\r\n MyMarket,\r\n);\r\n\r\n\r\n\r\n\r\n\r\nexport default class InventoryAvailabilityPdf extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n\r\n\r\n overViewInfo: '',\r\n inventoryAvailablityList: [],\r\n storeAddress: '',\r\n isLoading: false,\r\n modal: false,\r\n trackModalData: '',\r\n pageCount: 0,\r\n pageCountMDT: 0,\r\n max: 0,\r\n defaultWidth: 0,\r\n storeNeverOff: [],\r\n order: this.props.order ? this.props.order : 'asc',\r\n orderBy: this.props.orderby,\r\n uniqueUnitType: [],\r\n invStore: [],\r\n uniqueSID: [],\r\n invStores: [],\r\n sname: [],\r\n address: [],\r\n invStoreStatus: false,\r\n accessKey: this.props.accessKey,\r\n\r\n options: {\r\n chart: {\r\n id: 'apexchart-example',\r\n stacked: true,\r\n toolbar: {\r\n show: false\r\n },\r\n animations: {\r\n enabled: false,\r\n },\r\n },\r\n grid: {\r\n show: false\r\n },\r\n plotOptions: {\r\n bar: {\r\n dataLabels: {\r\n position: 'top',\r\n },\r\n columnWidth: '10%',\r\n barHeight: '50%',\r\n },\r\n },\r\n yaxis: {\r\n show: false,\r\n },\r\n xaxis: {\r\n labels: {\r\n show: false,\r\n },\r\n axisBorder: {\r\n show: false\r\n },\r\n axisTicks: {\r\n show: false\r\n }\r\n },\r\n noData: {\r\n text: \"Please wait for the data to be loaded. The data volume is high and this might take a minute for loading the data.\",\r\n verticalAlign: 'top',\r\n style: {\r\n color: \"#5b95f6\",\r\n fontSize: '13px',\r\n fontFamily: \"Helvetica\"\r\n }\r\n },\r\n },\r\n series: [{\r\n name: '',\r\n data: [],\r\n }],\r\n };\r\n\r\n this.toggle = this.toggle.bind(this);\r\n this.handleChangePage = this.handleChangePage.bind(this);\r\n this.handleChangeRowsPerPage = this.handleChangeRowsPerPage.bind(this);\r\n this.handleRequestSort = this.handleRequestSort.bind(this);\r\n this.stableSort = this.stableSort.bind(this);\r\n this.getSorting = this.getSorting.bind(this);\r\n this.desc = this.desc.bind(this);\r\n\r\n }\r\n\r\n handleChangePage = (event, page) => {\r\n this.setState({ page });\r\n };\r\n handleChangeRowsPerPage = event => {\r\n this.setState({ page: 0, rowsPerPage: event.target.value });\r\n };\r\n\r\n toggle() {\r\n\r\n let storeId = parseInt(this.props.userstoreid);\r\n axios.post(CONFIG.API_URL + 'market/competitors/' + storeId + '/' + CONFIG.RegionId)\r\n .then(response => {\r\n const trackModalData = response.data.competitor.competitorsList;\r\n var trackedFilterResult = trackModalData.filter((result) => result.isTracked === true);\r\n // let strOptions = [];\r\n // trackModalData.forEach(function (e) { strOptions.push(e.storeID + (e.isTracked ? '|1' : '|0')) });\r\n this.setState({\r\n trackModalData: trackedFilterResult\r\n });\r\n this.setState(prevState => ({\r\n modal: !prevState.modal\r\n }));\r\n }).catch((err) => {\r\n // if (err.response.status === 401) {\r\n // localStorage.removeItem('accessKey');\r\n // const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n // this.props.history.push(from);\r\n // }\r\n // else {\r\n // alert(err.response.data);\r\n // }\r\n });\r\n\r\n\r\n\r\n }\r\n async UNSAFE_componentWillMount() {\r\n const data = {\r\n \"SecretKey\": this.props.accessKey,\r\n \"RegionId\": CONFIG.RegionId\r\n }\r\n\r\n const response = await axios.post(CONFIG.API_URL + 'account/secretlogin', data);\r\n if (response.status === 200) {\r\n this.state.accessKey = response.data.token;\r\n this.inventoryAvailability();\r\n } else {\r\n alert(response.status.Message);\r\n }\r\n }\r\n\r\n inventoryAvailability() {\r\n this.setState({\r\n isLoading: true\r\n })\r\n let token = this.state.accessKey;\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n }\r\n\r\n const data = {\r\n \"UserStoreID\": parseInt(this.props.userstoreid),\r\n \"RegionId\": CONFIG.RegionId\r\n }\r\n axios.post(CONFIG.API_URL + 'dashboard/inventorybystore', data)\r\n .then(res => {\r\n let invStore = res.data.data;\r\n let uniqueSID = [...new Set(invStore.map(item => item.storeID))];\r\n let uniqueUnitType = [...new Set(invStore.map(item => item.unitType))];\r\n var invStores = [];\r\n\r\n // let orderBy = this.state.orderBy =='storeName'? 'storeName': uniqueUnitType.slice(this.props.orderby, 1+this.props.orderby);\r\n let orderBy = this.state.orderBy == 'storeName' ? 'storeName' : uniqueUnitType[this.props.orderby];\r\n\r\n for (let i = 0; i < uniqueSID.length; i++) {\r\n var fD = invStore.filter(item => item.storeID == uniqueSID[i]);\r\n let sname = [...new Set(fD.map(item => item.storeName))];\r\n let address = [...new Set(fD.map(item => item.storeAddress))];\r\n var key = \"storeName\";\r\n var obj = {};\r\n obj[\"storeName\"] = sname[0];\r\n obj[\"storeAddress\"] = address[0];\r\n obj[\"storeID\"] = fD[0].storeID;\r\n for (let u = 0; u < uniqueUnitType.length; u++) {\r\n var uData = fD.filter(item => item.unitType == uniqueUnitType[u]);\r\n obj[uniqueUnitType[u]] = uData[0].value;\r\n }\r\n invStores.push(obj);\r\n }\r\n if (orderBy == \"storeName\") {\r\n if (this.state.order === 'asc') {\r\n invStores = invStores.sort((a, b) => a.storeName.localeCompare(b.storeName));\r\n }\r\n else {\r\n invStores = invStores.sort((a, b) => b.storeName.localeCompare(a.storeName));\r\n }\r\n } else {\r\n\r\n if (this.state.order === 'asc') {\r\n invStores = invStores.sort((a, b) => (a[orderBy] - b[orderBy]));\r\n }\r\n else {\r\n invStores = invStores.sort((a, b) => (b[orderBy] - a[orderBy]));\r\n }\r\n }\r\n\r\n\r\n this.setState({ uniqueUnitType, orderBy, invStore, uniqueSID, invStoreStatus: true, invStores, isLoading: false });\r\n\r\n })\r\n .catch((err) => {\r\n\r\n this.setState({ isLoading: false });\r\n if (err.response.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else if (err.response.status === 403) {\r\n const { from } = this.props.location.state || { from: { pathname: \"/UnauthorizedAccess\" } };\r\n this.props.history.push(from);\r\n }\r\n else {\r\n alert(err.response.data);\r\n }\r\n });\r\n axios.post(CONFIG.API_URL + 'dashboard/dashboardlocation/', data)\r\n .then(res => {\r\n let storeAddress = res.data.data.storeDashboard;\r\n this.setState({ storeAddress });\r\n\r\n })\r\n .catch((err) => {\r\n\r\n this.setState({ isLoading: false });\r\n if (err.response.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else if (err.response.status === 403) {\r\n const { from } = this.props.location.state || { from: { pathname: \"/UnauthorizedAccess\" } };\r\n this.props.history.push(from);\r\n }\r\n else {\r\n alert(err.response.data);\r\n }\r\n });\r\n\r\n\r\n axios.post(CONFIG.API_URL + 'dashboard/inventoryavailablity', data)\r\n .then(res => {\r\n let overViewInfo = res.data.data.invAvaildashboard;\r\n let inventoryAvailablityList = res.data.data.inventoryAvailablityList;\r\n var storeNeverOff = inventoryAvailablityList.filter(function (m1) {\r\n return m1.storesWithUnitType > 0 && m1.storesWithUnitTypePercent > 0;\r\n });\r\n this.setState({ overViewInfo, storeNeverOff });\r\n this.setState({ inventoryAvailablityList });\r\n this.stackedgraphNew(inventoryAvailablityList);\r\n // if(CONFIG.RegionId === 2){\r\n // this.stackedgraphAus(inventoryAvailablityList);\r\n // }else{\r\n // this.stackedgraph(inventoryAvailablityList);\r\n // }\r\n this.setState({ isLoading: false });\r\n })\r\n .catch((err) => {\r\n\r\n this.setState({ isLoading: false });\r\n if (err.response.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else if (err.response.status === 403) {\r\n const { from } = this.props.location.state || { from: { pathname: \"/UnauthorizedAccess\" } };\r\n this.props.history.push(from);\r\n }\r\n else {\r\n alert(err.response.data);\r\n }\r\n });\r\n\r\n\r\n }\r\n\r\n stackedgraphNew(datavalue) {\r\n let { inventoryAvailablityList } = this.state;\r\n let marketSeries = [];\r\n var resultedRange = inventoryAvailablityList.map(data => (data.storesWithUnitType + data.storesNeverOffered));\r\n let onMarketData = [...new Set(inventoryAvailablityList.filter(function (obj) {\r\n return obj.onMarket > 0;\r\n }).map(item => item.onMarket))];\r\n let offMarketData = [...new Set(inventoryAvailablityList.filter(function (obj) {\r\n return obj.offMarket > 0;\r\n }).map(item => item.offMarket))];\r\n var max = resultedRange.reduce(function (a, b) { return Math.max(a, b); });\r\n max = (onMarketData.length > 0 || offMarketData.length > 0) ? max : 0;\r\n\r\n this.setState({ max });\r\n let dataSeries = inventoryAvailablityList.map(val => { return { x: val.unitType, y: val.onMarket, perc: val.onMarketPercent }; });\r\n let dataSeries2 = inventoryAvailablityList.map(val => { return { x: val.unitType, y: val.offMarket, perc: val.offMarketPercent }; });\r\n marketSeries.push({ name: 'On Market', data: dataSeries }, { name: 'Off Market', data: dataSeries2 });\r\n\r\n // YAXIS VALUES AS DYNAMIC\r\n let max_dataSeries = Math.max.apply(null, dataSeries.map(item => item.y));\r\n let max_dataSeries2 = Math.max.apply(null, dataSeries2.map(item => item.y));\r\n\r\n let max_marketSeries = 0\r\n if(max_dataSeries > max_dataSeries2){\r\n max_marketSeries = max_dataSeries\r\n }else{\r\n max_marketSeries = max_dataSeries2\r\n }\r\n\r\n\r\n if (marketSeries.length > 0 && max !== 0) {\r\n this.setState({\r\n options: {\r\n chart:{\r\n animations: {\r\n enabled: false,\r\n },\r\n },\r\n grid: {\r\n show: false\r\n },\r\n tooltip: { enabled: false },\r\n dataLabels: {\r\n enabled: true,\r\n offsetY:4,\r\n style: {\r\n fontSize: '12px',\r\n colors: [\"#304758\"]\r\n },\r\n formatter: function (val, opts) {\r\n return val === 0 ? '' : val;\r\n },\r\n },\r\n annotations: {\r\n yaxis: [\r\n {\r\n y: max_marketSeries*2,\r\n borderColor: '#68E497',\r\n }\r\n ]\r\n },\r\n plotOptions: {\r\n bar: {\r\n // borderRadius: barBorderRadius,\r\n dataLabels: {\r\n position: 'center',\r\n hideOverflowingLabels: false,\r\n },\r\n columnWidth: '25%',\r\n barHeight: '50%',\r\n },\r\n },\r\n yaxis: {\r\n max: max_marketSeries*2,\r\n labels: {\r\n formatter: function (value) {\r\n let val = value === null || value === undefined ? \"N/A\" : value.toFixed(0);\r\n return val;\r\n },\r\n style: {\r\n colors: '#8C9AA6',\r\n fontSize: '10px'\r\n },\r\n },\r\n axisBorder:{\r\n show: false,\r\n },\r\n axisTicks: {\r\n show: false,\r\n }\r\n },\r\n legend: {\r\n position: 'bottom',\r\n horizontalAlign: 'center',\r\n fontSize: '11px',\r\n fontWeight: 500,\r\n showForNullSeries: false,\r\n showForZeroSeries: true,\r\n markers: {\r\n radius: 13,\r\n },\r\n itemMargin: {\r\n horizontal: 10,\r\n vertical: 20,\r\n },\r\n onItemClick: {\r\n toggleDataSeries: false\r\n },\r\n onItemHover: {\r\n highlightDataSeries: false\r\n },\r\n },\r\n xaxis: {\r\n labels: {\r\n formatter: function (value) {\r\n let val = value === undefined || typeof (value) !== \"string\" ? '' : value;\r\n return val;\r\n },\r\n show: true,\r\n hideOverlappingLabels: false,\r\n trim: true,\r\n rotate: 0,\r\n style: {\r\n colors: '#010101',\r\n fontSize: '10px'\r\n },\r\n },\r\n axisBorder: {\r\n show: true\r\n },\r\n axisTicks: {\r\n show: true\r\n }\r\n },\r\n },\r\n series: marketSeries\r\n })\r\n } else {\r\n this.setState({\r\n options: {\r\n noData: {\r\n text: \"No Records Found.\",\r\n align: 'center',\r\n verticalAlign: 'top',\r\n offsetX: 0,\r\n offsetY: 0,\r\n style: {\r\n color: \"#F60000\",\r\n fontSize: '13px',\r\n fontFamily: \"Helvetica\"\r\n }\r\n },\r\n yaxis: { show: false },\r\n xaxis: {\r\n labels: {\r\n show: false\r\n },\r\n categories: [],\r\n axisBorder: {\r\n show: false\r\n },\r\n axisTicks: {\r\n show: false\r\n }\r\n },\r\n },\r\n series: []\r\n })\r\n }\r\n }\r\n\r\n\r\n handleChangePageTrack = (event, pageCount) => {\r\n this.setState({ pageCount });\r\n };\r\n handleChangeRowsPerPageTrack = event => {\r\n this.setState({ pageCount: 0, 10: event.target.value });\r\n };\r\n\r\n //Table Sorting \r\n handleRequestSort(event, property) {\r\n const { order, orderBy } = this.state;\r\n const isDesc = orderBy === property && order === 'desc';\r\n let sort = isDesc ? 'asc' : 'desc';\r\n this.setState({ order: sort, orderBy: property });\r\n }\r\n\r\n //Table Sorting order\r\n desc(a, b, orderBy) {\r\n if (b[orderBy] < a[orderBy]) {\r\n return -1;\r\n }\r\n if (b[orderBy] > a[orderBy]) {\r\n return 1;\r\n }\r\n return 0;\r\n }\r\n\r\n //Table Sorting the selected Column\r\n stableSort(array, cmp) {\r\n const stabilizedThis = array.map((el, index) => [el, index]);\r\n stabilizedThis.sort((a, b) => {\r\n const order = cmp(a[0], b[0]);\r\n if (order !== 0) return order;\r\n return a[1] - b[1];\r\n });\r\n return stabilizedThis.map(el => el[0]);\r\n }\r\n\r\n //Table Sorting Order Request\r\n getSorting(order, orderBy) {\r\n return order === 'desc' ? (a, b) => this.desc(a, b, orderBy) : (a, b) => -this.desc(a, b, orderBy);\r\n }\r\n\r\n render() {\r\n const { overViewInfo, inventoryAvailablityList, storeNeverOff, page, pageCount, pageCountMDT, storeAddress, isLoading, trackModalData, max, order, orderBy, uniqueUnitType, invStore, uniqueSID, invStores } = this.state;\r\n const defaultProps = {\r\n helpTitle: \"Inventory Availability\",\r\n helpContent: \"

Inventory Availability refers to the number of stores in the Market offering a particular unit type. When a store takes a unit off their website, their inventory availability for that unit type goes down. If a store adds a unit type to their website, their inventory availability goes up.

Here you can see the current Inventory Availability across the entire Market, as well as a breakdown of current Inventory Availability by store type - Your Store, REITs, Multi-store and Single-store operators.

Inventory Availability for the Market

The aggregate number of On-Market/Stores Offering any unit type in this Market

Inventory Availability for Your Store

How many Unit Types Your Store has offered in the past vs. how many of them are currently being offered (or are 'On-Market'). For example, let's say Your Store has offered/advertised 8 different Unit Types but currently has only 6 of them on-market (and by definition 2 are off-market), then 'Your Store' Inventory Availability is 75%, i.e. 6÷8)

Inventory Availability for REITs, Mid-Ops, Single-Ops

This is the same calculation as explained in 'Your Store' above, but calculated for each store group (REIT, Multi and Single operators). For example, if there are 3 REITs in the Market and two are offering 6 of 8 unit types and one of them is offering 5 of 8 unit types, then the aggregate Inventory Availability for REITs is (((6÷8)+(6÷8)+(5÷8))/3) x 100 = 70.8%

*Your store inventory is included in the calculations.

Refer the below help video for more information.

\"\r\n }\r\n const defaultProps1 = {\r\n helpTitle: \"Inventory Supply\",\r\n helpContent: \"

Inventory Availability refers to the number of stores in the Market offering a particular unit type. When a store takes a unit off their website, the inventory availability for that unit type goes down. If a store adds a unit type to their website, the inventory availability for that unit type goes up. Here you will see a breakdown of the number of stores offering vs. the number of stores which have never offered each of the most common unit types.

*Your store inventory is included in the calculations.

\"\r\n }\r\n const defaultProps2 = {\r\n helpTitle: \"Inventory Availability by Unit Type\",\r\n helpContent: \"

This is graph is a deeper analysis of the Inventory Supply you see above. It further analyzes for each unit type, how many out of all the stores in the Market which have advertised this unit type at some point, the number of stores currently offering/advertising this unit type vs. the number of stores (which have advertised it in the past) are currently not offering this unit type.

*Your store inventory is included in the calculations.

\"\r\n }\r\n const defaultProps3 = {\r\n helpTitle: \"Inventory Status\",\r\n helpContent: \"

This table is a continuation of the Inventory Supply graph you see above. It shows, for each unit type, how many out of all the stores in the Market which have advertised this unit type at some point, the number of stores currently offering/advertising this unit type vs. the number of stores (which have advertised it in the past) are currently not offering this unit type.

*Your store inventory is included in the calculations.

\"\r\n }\r\n let uTypeLen = uniqueUnitType.length;\r\n const tr = [...Array(Math.ceil(invStores.length / 17))];\r\n const trproductRows = tr.map((row, idx) => invStores.slice(idx * 17, idx * 17 + 17));\r\n const nameCount = storeAddress.storeName ? storeAddress.storeName.length : 0;\r\n return (\r\n\r\n
\r\n
\r\n
\r\n
{storeAddress.storeName && storeAddress.storeName !== null && storeAddress.storeName !== '' ? nameCount > CONFIG.storeNameMaxLimit ? storeAddress.storeName.substring(0, CONFIG.storeNameMaxLimit - 3) + '...' : storeAddress.storeName : isLoading === false ? 'Your Store' : ''}
\r\n
\r\n
\r\n {/* {storeAddress.storeAddress1 && storeAddress.storeAddress1 !== null && storeAddress.storeAddress1 !== '' ? storeAddress.storeAddress1 + ',' : isLoading === false ? '' : ''} {storeAddress.storeCity ? storeAddress.storeCity + ', ' : storeAddress.searchType === 1 && (storeAddress.storeCity === '' || storeAddress.storeCity === null) && (storeAddress.storeZipCode === '' || storeAddress.storeZipCode === null) ? storeAddress.latitude+', ' +storeAddress.longitude+', ' : isLoading === false ? '' : ''} {storeAddress.storeState && storeAddress.storeState !== '' && storeAddress.storeState !== null ? storeAddress.storeState + '' : isLoading === false ? ' ' : ''} {storeAddress.storeZipCode && storeAddress.storeZipCode !== '' && storeAddress.storeZipCode !== null ? storeAddress.storeZipCode + '' : isLoading === false ? '' : ''} | {storeAddress.storeZoneCoverage ? storeAddress.storeZoneCoverage : isLoading===false ? 'N/A':''} */}\r\n {/* {storeAddress.storeAddress1 && storeAddress.storeAddress1 !== null && storeAddress.storeAddress1 !== '' ? storeAddress.storeAddress1 + \", \" : '' + storeAddress && storeAddress.storeCity ? storeAddress.storeCity + \", \" : storeAddress.searchType === 1 && (storeAddress.storeCity === '' || storeAddress.storeCity === null) && (storeAddress.storeZipCode === '' || storeAddress.storeZipCode === null) ? storeAddress.latitude+', ' +storeAddress.longitude+', ': ''}{storeAddress.storeState + ' ' + storeAddress.storeZipCode} {storeAddress.storeZoneCoverage ? \"| Coverage: \" + storeAddress.storeZoneCoverage : 'N/A'} */}\r\n {storeAddress.storeAddress1 && storeAddress.storeAddress1 !== null && storeAddress.storeAddress1 !== '' ? storeAddress.storeAddress1 + ',' : isLoading === false ? '' : ''} {storeAddress.storeCity ? storeAddress.storeCity + ', ' : storeAddress.searchType === 1 && (storeAddress.storeCity === '' || storeAddress.storeCity === null) && (storeAddress.storeZipCode === '' || storeAddress.storeZipCode === null) ? storeAddress.latitude + ', ' + storeAddress.longitude + ', ' : isLoading === false ? '' : ''} {storeAddress.storeState && storeAddress.storeState !== '' && storeAddress.storeState !== null ? storeAddress.storeState + '' : isLoading === false ? ' ' : ''} {storeAddress.storeZipCode && storeAddress.storeZipCode !== '' && storeAddress.storeZipCode !== null ? storeAddress.storeZipCode + '' : isLoading === false ? '' : ''} | {storeAddress.storeZoneCoverage ? storeAddress.storeZoneCoverage : isLoading === false ? 'N/A' : ''}\r\n
\r\n
\r\n
\r\n
Inventory Availability *Your store inventory is included in the calculations.
\r\n

Inventory Availability refers to the number of stores in the Market offering a particular unit type. When a store takes a unit off their website, their inventory availability for that unit type goes down. If a store adds a unit type to their website, their inventory availability goes up.

\r\n

Here you can see the current Inventory Availability across the entire Market, as well as a breakdown of current Inventory Availability by store type - Your Store, REITs, Multi-store and Single-store operators.

\r\n
Inventory Availability for the Market
\r\n

The aggregate number of On-Market/Stores Offering any unit type in this Market

\r\n
Inventory Availability for Your Store
\r\n

How many Unit Types Your Store has offered in the past vs. how many of them are currently being offered (or are 'On-Market'). For example, let's say Your Store has offered/advertised 8 different Unit Types but currently has only 6 of them on-market (and by definition 2 are off-market), then 'Your Store' Inventory Availability is 75%, i.e. 6÷8)

\r\n
Inventory Availability for REITs, Mid-Ops, Single-Ops
\r\n

This is the same calculation as explained in 'Your Store' above, but calculated for each store group (REIT, Multi and Single operators). For example, if there are 3 REITs in the Market and two are offering 6 of 8 unit types and one of them is offering 5 of 8 unit types, then the aggregate Inventory Availability for REITs is (((6÷8)+(6÷8)+(5÷8))/3) x 100 = 70.8%

\r\n
\r\n
\r\n \r\n \r\n
\r\n
Market
\r\n
{overViewInfo.market ? overViewInfo.market + \"%\" : isLoading === false ? 'N/A' : ''}
\r\n
Current
\r\n
\r\n \r\n \r\n
\r\n
Your Store
\r\n
{overViewInfo.myStore ? overViewInfo.myStore + \"%\" : isLoading === false ? 'N/A' : ''}
\r\n
\r\n \r\n {storeAddress.countryCode == \"US\" ?\r\n \r\n
\r\n
REIT's
\r\n
{overViewInfo.reits ? overViewInfo.reits + \"%\" : isLoading === false ? 'N/A' : ''}
\r\n
\r\n \r\n : ''}\r\n \r\n
\r\n
Multi-Ops
\r\n
{overViewInfo.multiOps ? overViewInfo.multiOps + \"%\" : isLoading === false ? 'N/A' : ''}
\r\n
\r\n \r\n \r\n
\r\n
Single-Ops
\r\n
{overViewInfo.singleOps ? overViewInfo.singleOps + \"%\" : isLoading === false ? 'N/A' : ''}
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n\r\n
\r\n\r\n \r\n
Inventory Supply
\r\n
\r\n

Inventory Availability refers to the number of stores in the Market offering a particular unit type. When a store takes a unit off their website, the inventory availability for that unit type goes down. If a store adds a unit type to their website, the inventory availability for that unit type goes up. Here you will see a breakdown of the number of stores offering vs. the number of stores which have never offered each of the most common unit types.

\r\n
\r\n
\r\n
\r\n\r\n \r\n {storeNeverOff.length > 0 ?\r\n \r\n \r\n \r\n \r\n {inventoryAvailablityList.length > 0 ? inventoryAvailablityList.map(data => {\r\n return (\r\n\r\n {data.unitType}\r\n\r\n );\r\n }) : ''}\r\n \r\n \r\n {inventoryAvailablityList.length > 0 ?\r\n \r\n \r\n {\"Stores With this Unit Type \"}\r\n {inventoryAvailablityList.length > 0 ? inventoryAvailablityList.map(data => {\r\n return (\r\n\r\n {data.storesWithUnitType}({data.storesWithUnitTypePercent}%)\r\n );\r\n }) : ''}\r\n \r\n \r\n {\"Stores Never Offered \"}\r\n {inventoryAvailablityList.length > 0 ? inventoryAvailablityList.map(data => {\r\n return (\r\n\r\n {data.storesNeverOffered}({data.storesNeverOfferedPercent}%)\r\n );\r\n }) : ''}\r\n \r\n\r\n \r\n : {isLoading === false ? 'No Records Found' : ''}}\r\n
\r\n :
{isLoading === false ? 'No Data Available' : ''}
}\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n

Inventory Availability by Unit Type

\r\n
\r\n

This is graph is a deeper analysis of the Inventory Supply you see above. It further analyzes for each unit type, how many out of all the stores in the Market which have advertised this unit type at some point, the number of stores currently offering/advertising this unit type vs. the number of stores (which have advertised it in the past) are currently not offering this unit type.

\r\n
\r\n \r\n
\r\n
\r\n {max === 0 ?
{isLoading === false ? 'No Data Available' : ''}
:\r\n
\r\n \r\n
\r\n\r\n }\r\n
\r\n
\r\n
\r\n
\r\n
Inventory Status
\r\n
\r\n
\r\n \r\n {storeNeverOff.length > 0 ?\r\n \r\n \r\n \r\n \r\n {inventoryAvailablityList.length > 0 ? inventoryAvailablityList.map(data => {\r\n return (\r\n\r\n {data.unitType}\r\n\r\n );\r\n }) : ''}\r\n \r\n \r\n {inventoryAvailablityList.length > 0 ?\r\n \r\n \r\n {\"Off Market \"}\r\n {inventoryAvailablityList.length > 0 ? inventoryAvailablityList.map(data => {\r\n return (\r\n\r\n {data.offMarket}({data.offMarketPercent}%)\r\n );\r\n }) : ''}\r\n \r\n \r\n {\"On Market \"}\r\n {inventoryAvailablityList.length > 0 ? inventoryAvailablityList.map(data => {\r\n return (\r\n\r\n {data.onMarket}({data.onMarketPercent}%)\r\n );\r\n }) : ''}\r\n \r\n\r\n\r\n \r\n : {isLoading === false ? 'No Records Found' : ''}}\r\n
\r\n :
{isLoading === false ? 'No Data Available' : ''}
}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n {trproductRows ? trproductRows.map((rows, i) => (\r\n
\r\n {i === 0 ?
Inventory by Store
: ''}\r\n \r\n \r\n\r\n\r\n {invStores.length > 0 ?\r\n
Currently Advertising this Unit Type\r\n Not Currently Advertising this Unit Type\r\n
\r\n : ''}\r\n
\r\n\r\n
\r\n \r\n \r\n {invStores && invStores.length > 0 ?\r\n \r\n {invStores.length > 0 ? this.stableSort(rows, this.getSorting(order, orderBy)).map((row, i) => {\r\n\r\n return (\r\n\r\n \r\n
{row.storeName}
{row.storeAddress}\r\n\r\n {\r\n\r\n Object.values(row).splice(3, uTypeLen).map((val =>\r\n {val == 1 ? : }\r\n ))\r\n }\r\n\r\n \r\n )\r\n })\r\n :\r\n {isLoading === false ? '' : 'N/A'}\r\n }\r\n\r\n \r\n :\r\n \r\n \r\n {isLoading === false && this.state.invStoreStatus ? 'No Data Available' :
}\r\n \r\n \r\n }\r\n
\r\n
\r\n\r\n\r\n \r\n
\r\n
\r\n
\r\n ))\r\n : ''}\r\n
\r\n
\r\n {CONFIG.Website_Text_Footer_Pdf} | {CONFIG.Phone_Footer_Pdf} | {CONFIG.Mail_Footer_Pdf} | \"Optimize\r\n
\r\n
\r\n
\r\n \r\n {/* */}\r\n {storeAddress.storeName}\r\n \r\n \r\n \r\n \r\n COMPETITOR NAME\r\n ADDRESS\r\n\r\n \r\n \r\n \r\n {trackModalData ? trackModalData.slice(pageCount * 10, pageCount * 10 + 10).map((trackData) =>\r\n \r\n {trackData.storeName}\r\n {trackData.storeAddress}\r\n\r\n \r\n ) :\r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\nInventoryAvailabilityPdf.propTypes = {\r\n // classes: PropTypes.object.isRequired,\r\n};\r\n\r\n//Listing and Sorting Table's Head\r\nfunction EnhancedTableHead(props) {\r\n\r\n const { order, orderBy, onRequestSort, rowHeader } = props;\r\n const createSortHandler = property => event => {\r\n onRequestSort(event, property);\r\n };\r\n\r\n\r\n let headRows = rowHeader.length > 0 ? rowHeader.map((item, i) => {\r\n return {\r\n // id: item.replace(/\\s/g, ''),\r\n id: item,\r\n numeric: false,\r\n disablePadding: true,\r\n label: item,\r\n };\r\n }) : [];\r\n\r\n if (rowHeader.length > 0) {\r\n headRows.unshift({\r\n id: \"storeName\",\r\n numeric: false,\r\n disablePadding: true,\r\n label: \"storeName\"\r\n })\r\n }\r\n\r\n\r\n return (\r\n\r\n \r\n \r\n {headRows.map(row => (\r\n \r\n \r\n {row.label}\r\n \r\n\r\n \r\n ))}\r\n \r\n \r\n );\r\n}","import React, { Component } from 'react';\r\nimport './AllUnitPrizePdf.css';\r\nimport Table from '@material-ui/core/Table';\r\nimport TableBody from '@material-ui/core/TableBody';\r\nimport TableCell from '@material-ui/core/TableCell';\r\nimport TableHead from '@material-ui/core/TableHead';\r\nimport TableRow from '@material-ui/core/TableRow';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport * as d3 from \"d3\";\r\nimport { Col, Row, Dropdown, DropdownToggle, DropdownMenu, DropdownItem } from 'reactstrap';\r\nimport { CONFIG } from '../../../utils/config';\r\nimport axios from 'axios';\r\nimport Snackbar from '@material-ui/core/Snackbar';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport CloseIcon from '@material-ui/icons/Close';\r\nimport { StoreStreetView } from '../../StoreStreetView';\r\nimport Logo from '../../../Assets/Images/logo.jpg';\r\nimport Chart from \"react-apexcharts\";\r\nexport default class AllUnitPrizePdf extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.child = React.createRef();\r\n this.storeImageStreetView = React.createRef();\r\n\r\n this.state = {\r\n options: {\r\n chart: {\r\n type: 'rangeBar',\r\n toolbar: {\r\n show: false\r\n }\r\n },\r\n dataLabels: {\r\n enabled: false\r\n },\r\n grid: {\r\n show: false,\r\n },\r\n fill: {\r\n type: \"solid\",\r\n opacity: 0.6\r\n },\r\n tooltip: {\r\n enabled: false\r\n },\r\n stroke: {\r\n width: 2\r\n },\r\n yaxis: {\r\n show: false,\r\n },\r\n xaxis: {\r\n show: false,\r\n labels: {\r\n show: false,\r\n },\r\n axisBorder: {\r\n show: false\r\n },\r\n axisTicks: {\r\n show: false\r\n },\r\n },\r\n noData: {\r\n text: \"Please wait for the data to be loaded. The data volume is high and this might take a minute for loading the data.\",\r\n verticalAlign: 'top',\r\n style: {\r\n color: \"#5b95f6\",\r\n fontSize: '13px',\r\n fontFamily: \"Helvetica\"\r\n }\r\n },\r\n },\r\n series: [{}],\r\n\r\n pricing: '',\r\n comparisons: '',\r\n storeAddress: '',\r\n market: '',\r\n myStore: '',\r\n compitator: '',\r\n gmyStore: '',\r\n gcompitator: '',\r\n compitatorAll: '',\r\n dropdownOpen: false,\r\n isShowGraph: [],\r\n isRemoveGraph: [],\r\n isShowGraph1: [],\r\n isRemoveGraph1: [],\r\n isSelectStoreId: [],\r\n isSelectPoint: [],\r\n isLoading: false,\r\n yGroupMax: '',\r\n myStoreID: '',\r\n alwaysMyStoreID: '',\r\n snackOpen: false,\r\n snackMSg: '',\r\n dropDownValue: this.props.orderby,\r\n anchorEl: null,\r\n markets1: '',\r\n accessKey: this.props.accessKey,\r\n showRemoveId: this.props.showRemoveId,\r\n showRemoveType: this.props.showRemoveType,\r\n }\r\n this.toggle = this.toggle.bind(this);\r\n this.handleClickOpen = this.handleClickOpen.bind(this);\r\n this.getParams = this.getParams.bind(this);\r\n this.mouseOut = this.mouseOut.bind(this);\r\n this.handlePopoverOpen = this.handlePopoverOpen.bind(this);\r\n }\r\n\r\n handlePopoverOpen(e, str) {\r\n this.setState({\r\n anchorEl: e.currentTarget,\r\n mStr: str\r\n });\r\n }\r\n\r\n mouseOut(str) {\r\n if (this.state.mStr == str) {\r\n this.setState({ anchorEl: null });\r\n }\r\n }\r\n\r\n getParams(storeAddress) {\r\n let storeId = parseInt(this.props.userstoreid);\r\n this.child.current.toggleStoreModal(storeAddress, storeId);\r\n }\r\n\r\n addDefaultSrc(ev) {\r\n if (ev.target.src != null) {\r\n var imageName = require('../../../Assets/Images/no-image.jpg');\r\n ev.target.src = imageName;\r\n ev.target.className = \"noimages Unit-Store-Img cus-h-w-set\";\r\n }\r\n }\r\n\r\n getStoreStreeView(lat, lon, name) {\r\n this.storeImageStreetView.current.toggleStoreModal(lat, lon, name);\r\n }\r\n async UNSAFE_componentWillMount() {\r\n const data = {\r\n \"SecretKey\": this.props.accessKey,\r\n \"RegionId\": CONFIG.RegionId\r\n }\r\n\r\n const response = await axios.post(CONFIG.API_URL + 'account/secretlogin', data);\r\n if (response.status === 200) {\r\n this.state.accessKey = response.data.token;\r\n this.AllUnitPrizePdf();\r\n } else {\r\n alert(response.status.Message);\r\n }\r\n }\r\n AllUnitPrizePdf() {\r\n this.setState({\r\n isLoading: true\r\n })\r\n let isShowGraph = [];\r\n let isRemoveGraph = [];\r\n let isShowGraph1 = [];\r\n let isRemoveGraph1 = [];\r\n\r\n let token = this.state.accessKey;\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n }\r\n\r\n const data = {\r\n \"UserStoreID\": parseInt(this.props.userstoreid),\r\n \"RegionId\": CONFIG.RegionId\r\n }\r\n\r\n axios.post(CONFIG.API_URL + 'dashboard/pricingcomparision', data)\r\n .then(res => {\r\n let pricing = res.data.data.pricings;\r\n let comparisons = res.data.data.comparisons;\r\n\r\n this.setState({ pricing });\r\n this.setState({ comparisons });\r\n\r\n var market = comparisons.filter(function (m) {\r\n return m.storeID == 0;\r\n });\r\n var markets1 = market.filter(function (m1) {\r\n return m1.storeID == 0 && m1.priceFrom > 0 && m1.priceTo > 0;\r\n });\r\n this.setState({ market });\r\n\r\n var myStore = comparisons.filter(function (ms) {\r\n return ms.storeID > 0 && ms.isMyStore == 1;\r\n });\r\n var compitator = comparisons.filter(function (c) {\r\n return c.storeID > 0 && c.isMyStore != 1;\r\n });\r\n\r\n var compitatorAll = comparisons.filter(function (c) {\r\n return c.storeID > 0 && c.isMyStore != 1;\r\n });\r\n let alwaysMyStoreID = myStore.length > 0 ? myStore[0].storeID : 0;\r\n let myStoreID = myStore.length > 0 ? myStore[0].storeID : 0;\r\n myStore.filter((e) => e.isSelected === false).forEach(function (e) { isShowGraph1.push(e.storeID) });\r\n myStore.filter((e) => e.isSelected === true).forEach(function (e) { isRemoveGraph1.push(e.storeID) });\r\n compitatorAll.filter((e) => e.isSelected === false).forEach(function (e) { isShowGraph1.push(e.storeID) });\r\n compitatorAll.filter((e) => e.isSelected === true).forEach(function (e) { isRemoveGraph1.push(e.storeID) });\r\n var gmyStore = myStore.filter(function (ms) {\r\n return ms.isSelected === true;\r\n });\r\n var gcompitator = compitator.filter(function (ms) {\r\n return ms.isSelected === true;\r\n });\r\n this.setState({ myStore, gmyStore: myStore, gcompitator, gcompitator: gcompitator, alwaysMyStoreID, myStoreID });\r\n\r\n this.setState({ compitatorAll });\r\n\r\n isShowGraph = [...new Set(isShowGraph1.map(item => item))];\r\n isRemoveGraph = [...new Set(isRemoveGraph1.map(item => item))];\r\n\r\n if (isShowGraph === undefined) {\r\n isShowGraph = [];\r\n }\r\n if (isRemoveGraph === undefined) {\r\n isRemoveGraph = [];\r\n }\r\n\r\n let dropDownValue = this.state.dropDownValue == 1 ? \"Sort by\" : this.state.dropDownValue == 2 ? \"Store Name\" : \"Proximity\";\r\n this.handleClickOpen('', dropDownValue)\r\n this.setState({ isShowGraph, isRemoveGraph, isShowGraph1, isRemoveGraph1, dropDownValue });\r\n // if (this.state.showRemoveId && this.state.showRemoveType) {\r\n // this.showGraph(this.state.showRemoveId, this.state.showRemoveType, this.props.isRemovelen)\r\n // }\r\n // else {\r\n const data1 = {\r\n \"UserStoreID\": parseInt(this.props.userstoreid),\r\n \"RegionId\": CONFIG.RegionId\r\n }\r\n axios.post(CONFIG.API_URL + 'dashboard/dashboardlocation/', data1)\r\n .then(res => {\r\n let storeAddress = res.data.data.storeDashboard;\r\n this.setState({ storeAddress });\r\n if (market.length > 0 || gmyStore.length > 0 || gcompitator.length > 0) {\r\n if (gmyStore.length > 0) {\r\n this.multiSeriesGraph(gmyStore, gcompitator);\r\n }\r\n else {\r\n let compid = [...new Set(gcompitator.map(item => item.storeID))];\r\n if (compid.length > 1) {\r\n gmyStore = gcompitator.filter(function (m) {\r\n return m.storeID === compid[0];\r\n });\r\n gcompitator = gcompitator.filter(function (m) {\r\n return m.storeID === compid[1];\r\n });\r\n }\r\n this.multiSeriesGraph(gmyStore, gcompitator);\r\n }\r\n }\r\n })\r\n .catch((err) => {\r\n this.setState({ isLoading: false });\r\n if (err.response.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else if (err.response.status === 403) {\r\n const { from } = this.props.location.state || { from: { pathname: \"/UnauthorizedAccess\" } };\r\n this.props.history.push(from);\r\n }\r\n else {\r\n alert(err.response.data);\r\n }\r\n });\r\n\r\n this.setState({ isLoading: false });\r\n })\r\n .catch(err => {\r\n if (err.response.status === 403) {\r\n const { from } = this.props.location.state || { from: { pathname: \"/UnauthorizedAccess\" } };\r\n this.props.history.push(from);\r\n } else {\r\n this.setState({ isLoading: false });\r\n this.setState({ snackOpen: true, snackMSg: err });\r\n }\r\n\r\n });\r\n }\r\n\r\n showGraph(sId, type, isRemLen) {\r\n\r\n let isShowGraph = this.state.isShowGraph;\r\n let isRemoveGraph = this.state.isRemoveGraph;\r\n let index;\r\n let isRemoveGraphprev = '';\r\n //Remove Graph\r\n if (type == 1) {\r\n\r\n // if (sId == this.state.myStoreID) {\r\n // this.setState({ myStoreID: 0 });\r\n // }\r\n if (isRemoveGraph.length <= 2) {\r\n if (isRemLen == 0) {\r\n\r\n\r\n isShowGraph = isShowGraph.concat(isRemoveGraph)\r\n isRemoveGraph = [];\r\n } else {\r\n isShowGraph = isShowGraph.concat(isRemoveGraph)\r\n index = isShowGraph.indexOf(+sId)\r\n isShowGraph.splice(index, 1)\r\n isRemoveGraph = [];\r\n isRemoveGraph = JSON.parse(+sId)\r\n // index = isRemoveGraph.indexOf(+sId)\r\n // isRemoveGraph.splice(index, 1)\r\n //isRemoveGraph.push(isRemoveGraph)\r\n }\r\n this.onlyRemoveGraph(sId, isRemLen);\r\n\r\n }\r\n }\r\n else {// show graph\r\n if (isRemLen == 1) {\r\n isShowGraph = isShowGraph.concat(isRemoveGraph)\r\n isRemoveGraph = [];\r\n } else {\r\n isRemoveGraph = []\r\n var prevIsremv = this.props.isRemoveGraph.split(\",\")\r\n isRemoveGraph = prevIsremv.filter(i => i != sId);\r\n isRemoveGraphprev = this.props.isRemoveGraph.split(\",\").filter(i => i != sId);\r\n isRemoveGraphprev = JSON.parse(isRemoveGraphprev)\r\n isShowGraph = isShowGraph.concat(this.state.isRemoveGraph)\r\n index = isShowGraph.indexOf(+isRemoveGraphprev)\r\n isShowGraph.splice(index, 1)\r\n\r\n\r\n\r\n }\r\n if (0 == this.state.myStoreID) {\r\n this.setState({ myStoreID: sId });\r\n }\r\n if (isRemoveGraph.length < 2) {\r\n index = isShowGraph.indexOf(+sId)\r\n isShowGraph.splice(index, 1)\r\n isRemoveGraph.push(+sId)\r\n this.onlyShowGraph(sId, isRemLen, isRemoveGraphprev);\r\n }\r\n else {\r\n let msg = 'You can only display a maximum of two stores on the chart. Please deselect a store before selecting another store to view.';\r\n this.setState({ snackOpen: true, snackMSg: msg });\r\n }\r\n }\r\n\r\n this.setState({ isShowGraph, isRemoveGraph });\r\n }\r\n\r\n onlyRemoveGraph(sId, isRemLen) {\r\n this.setState({ isLoading: true })\r\n if (isRemLen == 0) {\r\n this.setState({ gcompitator: [], gmyStore: [] });\r\n this.multiSeriesGraph([], []);\r\n }\r\n else {\r\n\r\n if (sId == this.state.myStoreID) {\r\n this.setState({ gmyStore: [] });\r\n this.multiSeriesGraph([], this.state.gcompitator);\r\n // this.setState({ gcompitator: [] });\r\n // this.multiSeriesGraph(this.state.gmyStore, []);\r\n }\r\n else {\r\n this.setState({ gcompitator: [] });\r\n this.multiSeriesGraph(this.state.gmyStore, []);\r\n // this.setState({ gmyStore: [] });\r\n // this.multiSeriesGraph([], this.state.gcompitator);\r\n }\r\n }\r\n this.setState({ isLoading: false })\r\n }\r\n\r\n onlyShowGraph(sId, isRemLen, isRemoveGraphprev) {\r\n this.setState({ isLoading: true })\r\n\r\n var showStore = this.state.comparisons.filter(function (m) {\r\n return m.storeID == sId;\r\n });\r\n\r\n if (isRemLen == 2) {\r\n var showPrevStore = this.state.comparisons.filter(function (m) {\r\n return m.storeID == isRemoveGraphprev;\r\n });\r\n if (this.props.storePlace == 'sc') {\r\n this.multiSeriesGraph(showStore, showPrevStore);\r\n this.setState({ gmyStore: showStore, gcompitator: showPrevStore });\r\n } else {\r\n this.multiSeriesGraph(showPrevStore, showStore);\r\n this.setState({ gcompitator: showStore, gmyStore: showPrevStore });\r\n }\r\n } else {\r\n if (this.props.storePlace == 'sc') {// show store in my store place\r\n this.multiSeriesGraph(showStore, []);\r\n this.setState({ gmyStore: showStore });\r\n }\r\n else {// Show store in competitor place\r\n this.setState({ gmyStore: [], gcompitator: showStore });\r\n this.multiSeriesGraph(showStore, this.state.gmyStore);\r\n\r\n }\r\n }\r\n this.setState({ isLoading: false })\r\n }\r\n\r\n multiSeriesGraph(store, compitator) {\r\n let market = this.state.market;\r\n let storeName = '';\r\n let compitatorname = compitator.length > 0 ? compitator[0].storeName : '';\r\n \r\n if (store.length === 0) {\r\n storeName = \"\";\r\n } else {\r\n if (store[0].storeID === this.state.alwaysMyStoreID) {\r\n storeName = \" Your Store\";\r\n } else {\r\n storeName = store[0].storeName;\r\n }\r\n }\r\n let data_compitator1 = [];\r\n let y_data_compitator1 = [];\r\n let y0_data_compitator1 = [];\r\n var currency = this.state.storeAddress;\r\n let check_Zero = compitator.concat(market,store).map(item => item.priceFrom && item.priceTo).filter(item => item !== 0 && item !== null && item !== '' && item !== undefined ? true : false );\r\n for (var i = 0; i < compitator.length; i++) {\r\n y_data_compitator1.push(compitator[i].priceFrom);\r\n y0_data_compitator1.push(compitator[i].priceTo);\r\n if (compitator[i].priceFrom === 0 && compitator[i].priceTo === 0) {\r\n data_compitator1.push({ x: compitator[i].unitType, y: [compitator[i].priceFrom, compitator[i].priceTo] });\r\n } else if (compitator[i].priceFrom === compitator[i].priceTo) {\r\n data_compitator1.push({ x: compitator[i].unitType, y: [compitator[i].priceFrom, compitator[i].priceTo] });\r\n } else {\r\n data_compitator1.push({ x: compitator[i].unitType, y: [compitator[i].priceFrom, compitator[i].priceTo] });\r\n }\r\n }\r\n\r\n var y_min_compitator1 = Math.min.apply(Math, y_data_compitator1.filter(Number));\r\n var y0_min_compitator1 = Math.min.apply(Math, y0_data_compitator1.filter(Number));\r\n\r\n let leastVal_compitator1;\r\n if (y_min_compitator1 < y0_min_compitator1) {\r\n leastVal_compitator1 = y_min_compitator1\r\n } else {\r\n leastVal_compitator1 = y0_min_compitator1\r\n }\r\n\r\n let data_market1 = [];\r\n let y_data_market1 = [];\r\n let y0_data_market1 = [];\r\n\r\n for (var i = 0; i < market.length; i++) {\r\n y_data_market1.push(market[i].priceFrom)\r\n y0_data_market1.push(market[i].priceTo)\r\n if (market[i].priceFrom === 0 && market[i].priceTo === 0) {\r\n data_market1.push({ x: market[i].unitType, y: [market[i].priceFrom, market[i].priceTo] });\r\n } else if (market[i].priceFrom === market[i].priceTo) {\r\n data_market1.push({ x: market[i].unitType, y: [market[i].priceFrom, market[i].priceTo] });\r\n } else {\r\n data_market1.push({ x: market[i].unitType, y: [market[i].priceFrom, market[i].priceTo] });\r\n }\r\n }\r\n\r\n var y_min_market1 = Math.min.apply(Math, y_data_market1.filter(Number));\r\n var y0_min_marke1 = Math.min.apply(Math, y0_data_market1.filter(Number));\r\n\r\n let leastVal_market1;\r\n if (y_min_market1 < y0_min_marke1) {\r\n leastVal_market1 = y_min_market1\r\n } else {\r\n leastVal_market1 = y0_min_marke1\r\n }\r\n\r\n let data_storeName = [];\r\n let y_data_storeName = [];\r\n let y0_data_storeName = [];\r\n\r\n for (var i = 0; i < store.length; i++) {\r\n y_data_storeName.push(store[i].priceFrom)\r\n y0_data_storeName.push(store[i].priceTo)\r\n if (store[i].priceFrom === 0 && store[i].priceTo === 0) {\r\n data_storeName.push({ x: store[i].unitType, y: [store[i].priceFrom, store[i].priceTo] });\r\n } else if (store[i].priceFrom === store[i].priceTo) {\r\n data_storeName.push({ name: storeName, x: store[i].unitType, y: [store[i].priceFrom, store[i].priceTo] });\r\n } else {\r\n data_storeName.push({ x: store[i].unitType, y: [store[i].priceFrom, store[i].priceTo] });\r\n }\r\n }\r\n\r\n var y_min_storeName = Math.min.apply(Math, y_data_storeName.filter(Number));\r\n var y0_min_storeName = Math.min.apply(Math, y0_data_storeName.filter(Number));\r\n\r\n let leastVal_storeName;\r\n if (y_min_storeName < y0_min_storeName) {\r\n leastVal_storeName = y_min_storeName\r\n } else {\r\n leastVal_storeName = y0_min_storeName\r\n }\r\n\r\n let yAxisMinValue = Math.min(leastVal_storeName, leastVal_market1, leastVal_compitator1);\r\n let allData = [{ name: compitatorname, data: data_compitator1 }, { name: \"Market Average\", data: data_market1 }, { name: storeName , data: data_storeName } ];\r\n\r\n if (check_Zero.length > 0) {\r\n\r\n this.setState({\r\n options: {\r\n chart:{\r\n animations: {\r\n enabled: false,\r\n },\r\n },\r\n legend: {\r\n position: 'bottom',\r\n showForSingleSeries: true,\r\n horizontalAlign: 'center',\r\n fontSize: '11px',\r\n fontWeight: 500,\r\n showForNullSeries: false,\r\n showForZeroSeries: true,\r\n itemMargin: {\r\n horizontal: 10,\r\n vertical: 20,\r\n },\r\n onItemClick: {\r\n toggleDataSeries: false\r\n },\r\n onItemHover: {\r\n highlightDataSeries: false\r\n },\r\n formatter: function (seriesName, opts) {\r\n if (seriesName) return seriesName.charAt(0).toUpperCase() + seriesName.slice(1);;\r\n }\r\n },\r\n yaxis: {\r\n min: yAxisMinValue,\r\n max: function(max){return max+5},\r\n labels: {\r\n formatter: function (value) {\r\n let val = value === null || value === undefined ? '' : currency.countryCurrency + value.toFixed(0);\r\n return val;\r\n },\r\n style: {\r\n colors: '#8C9AA6',\r\n fontSize: '10px'\r\n },\r\n },\r\n axisBorder:{\r\n show: false,\r\n },\r\n axisTicks: {\r\n show: false,\r\n }\r\n },\r\n xaxis: {\r\n labels: {\r\n show: true,\r\n rotate: 0,\r\n hideOverlappingLabels: false,\r\n trim: true,\r\n formatter: function (value) {\r\n let val = value === undefined || typeof (value) !== \"string\" ? '' : value;\r\n return val;\r\n },\r\n style: {\r\n fontSize: '10px'\r\n }\r\n },\r\n axisBorder: {\r\n show: true\r\n },\r\n axisTicks: {\r\n show: true\r\n },\r\n },\r\n\r\n },\r\n series: allData\r\n })\r\n\r\n } else {\r\n this.setState({\r\n options: {\r\n noData: {\r\n text: \"No Records Found.\",\r\n align: 'center',\r\n verticalAlign: 'top',\r\n offsetX: 0,\r\n offsetY: 0,\r\n style: {\r\n color: \"#F60000\",\r\n fontSize: '13px',\r\n fontFamily: \"Helvetica\"\r\n }\r\n },\r\n yaxis: { show: false },\r\n xaxis: {\r\n show: false,\r\n labels: {\r\n show: false\r\n },\r\n categories: [],\r\n axisBorder: {\r\n show: false\r\n },\r\n axisTicks: {\r\n show: false\r\n },\r\n },\r\n },\r\n series: []\r\n })\r\n\r\n }\r\n\r\n\r\n }\r\n\r\n // Text Wrap For Graph X-axis label\r\n // wrap(text, width) {\r\n // text.each(function () {\r\n // var text = d3.select(this),\r\n // words = text.text().split(/\\s+/).reverse(),\r\n // word,\r\n // line = [],\r\n // lineNumber = 0,\r\n // lineHeight = 1.1, // ems\r\n // y = text.attr(\"y\"),\r\n // dy = parseFloat(text.attr(\"dy\")),\r\n // tspan = text.text(null).append(\"tspan\").attr(\"x\", 0).attr(\"y\", y).attr(\"dy\", dy + \"em\")\r\n // while (word = words.pop()) {\r\n // line.push(word)\r\n // tspan.text(line.join(\" \"))\r\n // if (tspan.node().getComputedTextLength() > width) {\r\n // line.pop()\r\n // tspan.text(line.join(\" \"))\r\n // line = [word]\r\n // tspan = text.append(\"tspan\").attr(\"x\", 0).attr(\"y\", y).attr(\"dy\", `${++lineNumber * lineHeight + dy}em`).text(word)\r\n // }\r\n // }\r\n // })\r\n // }\r\n\r\n formData(data) {\r\n\r\n let unique = [...new Set(data.map(item => item.unitType))];\r\n let uniquestore = [...new Set(data.map(item => item.storeID))];\r\n let storeAddress = this.state.storeAddress;\r\n\r\n var FData = [];\r\n for (var t = 0; t < uniquestore.length; t++) {\r\n var tFData = data.filter(a => a.storeID == uniquestore[t]);\r\n switch (unique.length) {\r\n case 12: {\r\n var mData = {\r\n StoreID: uniquestore[t],\r\n Address: tFData[0].address,\r\n StoreName: tFData[0].storeName,\r\n Proximity: tFData[0].proximity.toFixed(2),\r\n StoreImage: tFData[0].storeImage,\r\n Unit1: tFData[0].priceTo === 0 && tFData[0].priceFrom === 0 ? 'N/A' : tFData[0].priceTo === tFData[0].priceFrom ? storeAddress.countryCurrency + tFData[0].priceTo : storeAddress.countryCurrency + tFData[0].priceFrom + \" - \" + tFData[0].priceTo,\r\n Unit2: tFData[1].priceTo === 0 && tFData[1].priceFrom === 0 ? 'N/A' : tFData[1].priceTo === tFData[1].priceFrom ? storeAddress.countryCurrency + tFData[1].priceTo : storeAddress.countryCurrency + tFData[1].priceFrom + \" - \" + tFData[1].priceTo,\r\n Unit3: tFData[2].priceTo === 0 && tFData[2].priceFrom === 0 ? 'N/A' : tFData[2].priceTo === tFData[2].priceFrom ? storeAddress.countryCurrency + tFData[2].priceTo : storeAddress.countryCurrency + tFData[2].priceFrom + \" - \" + tFData[2].priceTo,\r\n Unit4: tFData[3].priceTo === 0 && tFData[3].priceFrom === 0 ? 'N/A' : tFData[3].priceTo === tFData[3].priceFrom ? storeAddress.countryCurrency + tFData[3].priceTo : storeAddress.countryCurrency + tFData[3].priceFrom + \" - \" + tFData[3].priceTo,\r\n Unit5: tFData[4].priceTo === 0 && tFData[4].priceFrom === 0 ? 'N/A' : tFData[4].priceTo === tFData[4].priceFrom ? storeAddress.countryCurrency + tFData[4].priceTo : storeAddress.countryCurrency + tFData[4].priceFrom + \" - \" + tFData[4].priceTo,\r\n Unit6: tFData[5].priceTo === 0 && tFData[5].priceFrom === 0 ? 'N/A' : tFData[5].priceTo === tFData[5].priceFrom ? storeAddress.countryCurrency + tFData[5].priceTo : storeAddress.countryCurrency + tFData[5].priceFrom + \" - \" + tFData[5].priceTo,\r\n Unit7: tFData[6].priceTo === 0 && tFData[6].priceFrom === 0 ? 'N/A' : tFData[6].priceTo === tFData[6].priceFrom ? storeAddress.countryCurrency + tFData[6].priceTo : storeAddress.countryCurrency + tFData[6].priceFrom + \" - \" + tFData[6].priceTo,\r\n Unit8: tFData[7].priceTo === 0 && tFData[7].priceFrom === 0 ? 'N/A' : tFData[7].priceTo === tFData[7].priceFrom ? storeAddress.countryCurrency + tFData[7].priceTo : storeAddress.countryCurrency + tFData[7].priceFrom + \" - \" + tFData[7].priceTo,\r\n Unit9: tFData[8].priceTo === 0 && tFData[8].priceFrom === 0 ? 'N/A' : tFData[8].priceTo === tFData[8].priceFrom ? storeAddress.countryCurrency + tFData[8].priceTo : storeAddress.countryCurrency + tFData[8].priceFrom + \" - \" + tFData[8].priceTo,\r\n Unit10: tFData[9].priceTo === 0 && tFData[9].priceFrom === 0 ? 'N/A' : tFData[9].priceTo === tFData[9].priceFrom ? storeAddress.countryCurrency + tFData[9].priceTo : storeAddress.countryCurrency + tFData[9].priceFrom + \" - \" + tFData[9].priceTo,\r\n Unit11: tFData[10].priceTo === 0 && tFData[10].priceFrom === 0 ? 'N/A' : tFData[10].priceTo === tFData[10].priceFrom ? storeAddress.countryCurrency + tFData[10].priceTo : storeAddress.countryCurrency + tFData[10].priceFrom + \" - \" + tFData[10].priceTo,\r\n Unit12: tFData[11].priceTo === 0 && tFData[11].priceFrom === 0 ? 'N/A' : tFData[11].priceTo === tFData[11].priceFrom ? storeAddress.countryCurrency + tFData[11].priceTo : storeAddress.countryCurrency + tFData[11].priceFrom + \" - \" + tFData[11].priceTo,\r\n IsSelected: tFData[0].isSelected,\r\n Latitude: tFData[0].latitude,\r\n Longitude: tFData[0].longitude\r\n }\r\n FData.push(mData);\r\n break;\r\n }\r\n case 10: {\r\n var mData = {\r\n StoreID: uniquestore[t],\r\n StoreName: tFData[0].storeName,\r\n Address: tFData[0].address,\r\n Proximity: tFData[0].proximity.toFixed(2),\r\n StoreImage: tFData[0].storeImage,\r\n Unit1: tFData[0].priceTo === 0 && tFData[0].priceFrom === 0 ? 'N/A' : tFData[0].priceTo === tFData[0].priceFrom ? storeAddress.countryCurrency + tFData[0].priceTo : storeAddress.countryCurrency + tFData[0].priceFrom + \" - \" + tFData[0].priceTo,\r\n Unit2: tFData[1].priceTo === 0 && tFData[1].priceFrom === 0 ? 'N/A' : tFData[1].priceTo === tFData[1].priceFrom ? storeAddress.countryCurrency + tFData[1].priceTo : storeAddress.countryCurrency + tFData[1].priceFrom + \" - \" + tFData[1].priceTo,\r\n Unit3: tFData[2].priceTo === 0 && tFData[2].priceFrom === 0 ? 'N/A' : tFData[2].priceTo === tFData[2].priceFrom ? storeAddress.countryCurrency + tFData[2].priceTo : storeAddress.countryCurrency + tFData[2].priceFrom + \" - \" + tFData[2].priceTo,\r\n Unit4: tFData[3].priceTo === 0 && tFData[3].priceFrom === 0 ? 'N/A' : tFData[3].priceTo === tFData[3].priceFrom ? storeAddress.countryCurrency + tFData[3].priceTo : storeAddress.countryCurrency + tFData[3].priceFrom + \" - \" + tFData[3].priceTo,\r\n Unit5: tFData[4].priceTo === 0 && tFData[4].priceFrom === 0 ? 'N/A' : tFData[4].priceTo === tFData[4].priceFrom ? storeAddress.countryCurrency + tFData[4].priceTo : storeAddress.countryCurrency + tFData[4].priceFrom + \" - \" + tFData[4].priceTo,\r\n Unit6: tFData[5].priceTo === 0 && tFData[5].priceFrom === 0 ? 'N/A' : tFData[5].priceTo === tFData[5].priceFrom ? storeAddress.countryCurrency + tFData[5].priceTo : storeAddress.countryCurrency + tFData[5].priceFrom + \" - \" + tFData[5].priceTo,\r\n Unit7: tFData[6].priceTo === 0 && tFData[6].priceFrom === 0 ? 'N/A' : tFData[6].priceTo === tFData[6].priceFrom ? storeAddress.countryCurrency + tFData[6].priceTo : storeAddress.countryCurrency + tFData[6].priceFrom + \" - \" + tFData[6].priceTo,\r\n Unit8: tFData[7].priceTo === 0 && tFData[7].priceFrom === 0 ? 'N/A' : tFData[7].priceTo === tFData[7].priceFrom ? storeAddress.countryCurrency + tFData[7].priceTo : storeAddress.countryCurrency + tFData[7].priceFrom + \" - \" + tFData[7].priceTo,\r\n Unit9: tFData[8].priceTo === 0 && tFData[8].priceFrom === 0 ? 'N/A' : tFData[8].priceTo === tFData[8].priceFrom ? storeAddress.countryCurrency + tFData[8].priceTo : storeAddress.countryCurrency + tFData[8].priceFrom + \" - \" + tFData[8].priceTo,\r\n Unit10: tFData[9].priceTo === 0 && tFData[9].priceFrom === 0 ? 'N/A' : tFData[9].priceTo === tFData[9].priceFrom ? storeAddress.countryCurrency + tFData[9].priceTo : storeAddress.countryCurrency + tFData[9].priceFrom + \" - \" + tFData[9].priceTo,\r\n IsSelected: tFData[0].isSelected,\r\n Latitude: tFData[0].latitude,\r\n Longitude: tFData[0].longitude\r\n }\r\n FData.push(mData);\r\n break;\r\n }\r\n case 14: {\r\n var mData = {\r\n StoreID: uniquestore[t],\r\n StoreName: tFData[0].storeName,\r\n Address: tFData[0].address,\r\n Proximity: tFData[0].proximity.toFixed(2),\r\n StoreImage: tFData[0].storeImage,\r\n Unit1: tFData[0].priceTo === 0 && tFData[0].priceFrom === 0 ? 'N/A' : tFData[0].priceTo === tFData[0].priceFrom ? storeAddress.countryCurrency + tFData[0].priceTo : storeAddress.countryCurrency + tFData[0].priceFrom + \" - \" + tFData[0].priceTo,\r\n Unit2: tFData[1].priceTo === 0 && tFData[1].priceFrom === 0 ? 'N/A' : tFData[1].priceTo === tFData[1].priceFrom ? storeAddress.countryCurrency + tFData[1].priceTo : storeAddress.countryCurrency + tFData[1].priceFrom + \" - \" + tFData[1].priceTo,\r\n Unit3: tFData[2].priceTo === 0 && tFData[2].priceFrom === 0 ? 'N/A' : tFData[2].priceTo === tFData[2].priceFrom ? storeAddress.countryCurrency + tFData[2].priceTo : storeAddress.countryCurrency + tFData[2].priceFrom + \" - \" + tFData[2].priceTo,\r\n Unit4: tFData[3].priceTo === 0 && tFData[3].priceFrom === 0 ? 'N/A' : tFData[3].priceTo === tFData[3].priceFrom ? storeAddress.countryCurrency + tFData[3].priceTo : storeAddress.countryCurrency + tFData[3].priceFrom + \" - \" + tFData[3].priceTo,\r\n Unit5: tFData[4].priceTo === 0 && tFData[4].priceFrom === 0 ? 'N/A' : tFData[4].priceTo === tFData[4].priceFrom ? storeAddress.countryCurrency + tFData[4].priceTo : storeAddress.countryCurrency + tFData[4].priceFrom + \" - \" + tFData[4].priceTo,\r\n Unit6: tFData[5].priceTo === 0 && tFData[5].priceFrom === 0 ? 'N/A' : tFData[5].priceTo === tFData[5].priceFrom ? storeAddress.countryCurrency + tFData[5].priceTo : storeAddress.countryCurrency + tFData[5].priceFrom + \" - \" + tFData[5].priceTo,\r\n Unit7: tFData[6].priceTo === 0 && tFData[6].priceFrom === 0 ? 'N/A' : tFData[6].priceTo === tFData[6].priceFrom ? storeAddress.countryCurrency + tFData[6].priceTo : storeAddress.countryCurrency + tFData[6].priceFrom + \" - \" + tFData[6].priceTo,\r\n Unit8: tFData[7].priceTo === 0 && tFData[7].priceFrom === 0 ? 'N/A' : tFData[7].priceTo === tFData[7].priceFrom ? storeAddress.countryCurrency + tFData[7].priceTo : storeAddress.countryCurrency + tFData[7].priceFrom + \" - \" + tFData[7].priceTo,\r\n Unit9: tFData[8].priceTo === 0 && tFData[8].priceFrom === 0 ? 'N/A' : tFData[8].priceTo === tFData[8].priceFrom ? storeAddress.countryCurrency + tFData[8].priceTo : storeAddress.countryCurrency + tFData[8].priceFrom + \" - \" + tFData[8].priceTo,\r\n Unit10: tFData[9].priceTo === 0 && tFData[9].priceFrom === 0 ? 'N/A' : tFData[9].priceTo === tFData[9].priceFrom ? storeAddress.countryCurrency + tFData[9].priceTo : storeAddress.countryCurrency + tFData[9].priceFrom + \" - \" + tFData[9].priceTo,\r\n Unit11: tFData[10].priceTo === 0 && tFData[10].priceFrom === 0 ? 'N/A' : tFData[10].priceTo === tFData[10].priceFrom ? storeAddress.countryCurrency + tFData[10].priceTo : storeAddress.countryCurrency + tFData[10].priceFrom + \" - \" + tFData[10].priceTo,\r\n Unit12: tFData[11].priceTo === 0 && tFData[11].priceFrom === 0 ? 'N/A' : tFData[11].priceTo === tFData[11].priceFrom ? storeAddress.countryCurrency + tFData[11].priceTo : storeAddress.countryCurrency + tFData[11].priceFrom + \" - \" + tFData[11].priceTo,\r\n Unit13: tFData[12].priceTo === 0 && tFData[12].priceFrom === 0 ? 'N/A' : tFData[12].priceTo === tFData[12].priceFrom ? storeAddress.countryCurrency + tFData[12].priceTo : storeAddress.countryCurrency + tFData[12].priceFrom + \" - \" + tFData[12].priceTo,\r\n Unit14: tFData[13].priceTo === 0 && tFData[13].priceFrom === 0 ? 'N/A' : tFData[13].priceTo === tFData[13].priceFrom ? storeAddress.countryCurrency + tFData[13].priceTo : storeAddress.countryCurrency + tFData[13].priceFrom + \" - \" + tFData[13].priceTo,\r\n\r\n IsSelected: tFData[0].isSelected,\r\n Latitude: tFData[0].latitude,\r\n Longitude: tFData[0].longitude\r\n }\r\n FData.push(mData);\r\n break;\r\n }\r\n default: {\r\n var mData = {\r\n StoreID: uniquestore[t],\r\n StoreName: tFData[0].storeName,\r\n Address: tFData[0].address,\r\n Proximity: tFData[0].proximity.toFixed(2),\r\n StoreImage: tFData[0].storeImage,\r\n Unit1: tFData[0].priceTo === 0 && tFData[0].priceFrom === 0 ? 'N/A' : tFData[0].priceTo === tFData[0].priceFrom ? storeAddress.countryCurrency + tFData[0].priceTo : storeAddress.countryCurrency + tFData[0].priceFrom + \" - \" + tFData[0].priceTo,\r\n Unit2: tFData[1].priceTo === 0 && tFData[1].priceFrom === 0 ? 'N/A' : tFData[1].priceTo === tFData[1].priceFrom ? storeAddress.countryCurrency + tFData[1].priceTo : storeAddress.countryCurrency + tFData[1].priceFrom + \" - \" + tFData[1].priceTo,\r\n Unit3: tFData[2].priceTo === 0 && tFData[2].priceFrom === 0 ? 'N/A' : tFData[2].priceTo === tFData[2].priceFrom ? storeAddress.countryCurrency + tFData[2].priceTo : storeAddress.countryCurrency + tFData[2].priceFrom + \" - \" + tFData[2].priceTo,\r\n Unit4: tFData[3].priceTo === 0 && tFData[3].priceFrom === 0 ? 'N/A' : tFData[3].priceTo === tFData[3].priceFrom ? storeAddress.countryCurrency + tFData[3].priceTo : storeAddress.countryCurrency + tFData[3].priceFrom + \" - \" + tFData[3].priceTo,\r\n Unit5: tFData[4].priceTo === 0 && tFData[4].priceFrom === 0 ? 'N/A' : tFData[4].priceTo === tFData[4].priceFrom ? storeAddress.countryCurrency + tFData[4].priceTo : storeAddress.countryCurrency + tFData[4].priceFrom + \" - \" + tFData[4].priceTo,\r\n Unit6: tFData[5].priceTo === 0 && tFData[5].priceFrom === 0 ? 'N/A' : tFData[5].priceTo === tFData[5].priceFrom ? storeAddress.countryCurrency + tFData[5].priceTo : storeAddress.countryCurrency + tFData[5].priceFrom + \" - \" + tFData[5].priceTo,\r\n Unit7: tFData[6].priceTo === 0 && tFData[6].priceFrom === 0 ? 'N/A' : tFData[6].priceTo === tFData[6].priceFrom ? storeAddress.countryCurrency + tFData[6].priceTo : storeAddress.countryCurrency + tFData[6].priceFrom + \" - \" + tFData[6].priceTo,\r\n Unit8: tFData[7].priceTo === 0 && tFData[7].priceFrom === 0 ? 'N/A' : tFData[7].priceTo === tFData[7].priceFrom ? storeAddress.countryCurrency + tFData[7].priceTo : storeAddress.countryCurrency + tFData[7].priceFrom + \" - \" + tFData[7].priceTo,\r\n Unit9: tFData[8].priceTo === 0 && tFData[8].priceFrom === 0 ? 'N/A' : tFData[8].priceTo === tFData[8].priceFrom ? storeAddress.countryCurrency + tFData[8].priceTo : storeAddress.countryCurrency + tFData[8].priceFrom + \" - \" + tFData[8].priceTo,\r\n Unit10: tFData[9].priceTo === 0 && tFData[9].priceFrom === 0 ? 'N/A' : tFData[9].priceTo === tFData[9].priceFrom ? storeAddress.countryCurrency + tFData[9].priceTo : storeAddress.countryCurrency + tFData[9].priceFrom + \" - \" + tFData[9].priceTo,\r\n Unit11: tFData[10].priceTo === 0 && tFData[10].priceFrom === 0 ? 'N/A' : tFData[10].priceTo === tFData[10].priceFrom ? storeAddress.countryCurrency + tFData[10].priceTo : storeAddress.countryCurrency + tFData[10].priceFrom + \" - \" + tFData[10].priceTo,\r\n Unit12: tFData[11].priceTo === 0 && tFData[11].priceFrom === 0 ? 'N/A' : tFData[11].priceTo === tFData[11].priceFrom ? storeAddress.countryCurrency + tFData[11].priceTo : storeAddress.countryCurrency + tFData[11].priceFrom + \" - \" + tFData[11].priceTo,\r\n Unit13: tFData[12].priceTo === 0 && tFData[12].priceFrom === 0 ? 'N/A' : tFData[12].priceTo === tFData[12].priceFrom ? storeAddress.countryCurrency + tFData[12].priceTo : storeAddress.countryCurrency + tFData[12].priceFrom + \" - \" + tFData[12].priceTo,\r\n Unit14: tFData[13].priceTo === 0 && tFData[13].priceFrom === 0 ? 'N/A' : tFData[13].priceTo === tFData[13].priceFrom ? storeAddress.countryCurrency + tFData[13].priceTo : storeAddress.countryCurrency + tFData[13].priceFrom + \" - \" + tFData[13].priceTo,\r\n Unit15: tFData[14].priceTo === 0 && tFData[14].priceFrom === 0 ? 'N/A' : tFData[14].priceTo === tFData[14].priceFrom ? storeAddress.countryCurrency + tFData[14].priceTo : storeAddress.countryCurrency + tFData[14].priceFrom + \" - \" + tFData[14].priceTo,\r\n IsSelected: tFData[0].isSelected,\r\n Latitude: tFData[0].latitude,\r\n Longitude: tFData[0].longitude\r\n }\r\n FData.push(mData);\r\n }\r\n }\r\n }\r\n return FData;\r\n }\r\n\r\n toggle() {\r\n this.setState(prevState => ({\r\n dropdownOpen: !prevState.dropdownOpen\r\n }));\r\n }\r\n\r\n handleClickOpen(e, name) {\r\n let dropDownValue = \"\";\r\n if (name === \"Proximity\") {//descending order--to Address origin of Market\r\n dropDownValue = \"Proximity\";\r\n this.setState(compitatorAll => {\r\n this.state.compitatorAll.sort((a, b) => (a.proximity - b.proximity))\r\n });\r\n } else if (name === \"Store Name\") {//ascending order\r\n dropDownValue = \"Store Name\";\r\n this.setState(compitatorAll => {\r\n this.state.compitatorAll.sort((a, b) => a.storeName !== b.storeName ? a.storeName < b.storeName ? -1 : 1 : 0);\r\n });\r\n }\r\n this.setState({ dropDownValue });\r\n }\r\n\r\n //Snack Close\r\n snackHandleclose = (event, reason) => {\r\n if (reason === 'clickaway') {\r\n return;\r\n }\r\n this.setState({ snackOpen: false });\r\n };\r\n\r\n render() {\r\n const open = Boolean(this.state.anchorEl);\r\n const { pricing, isLoading, storeAddress, isShowGraph, yGroupMax, isRemoveGraph, markets1, comparisons, compitatorAll, myStore, market, snackMSg, snackOpen } = this.state;\r\n const defaultProps = {\r\n helpTitle: \"All Units Pricing\",\r\n helpContent: \"

On this page we provide a side-by-side analysis of the \" + `${CONFIG.RegionId === 3 ? \"weekly\" : ''}` + \" rates for the most common unit types.

Broadest Range

This is the unit type with the largest range of current \" + `${CONFIG.RegionId === 3 ? \"weekly\" : ''}` + \" rates (this includes both Regular/Walk-in and Online/Promotional rates)

Narrowest Range

This is the unit type with the lowest range of current \" + `${CONFIG.RegionId === 3 ? \"weekly\" : ''}` + \" rates (this includes both Regular/Walk-in and Online/Promotional rates)

*Your store prices are included in the calculations.

\"\r\n }\r\n const defaultProps1 = {\r\n helpTitle: \"All Units Pricing Ranges\",\r\n helpContent: \"

This graph is showing a side-by-side analysis of the \" + `${CONFIG.RegionId === 3 ? \"weekly\" : ''}` + \" rates for the most common unit types.

The Market Average (in black) show the range of current \" + `${CONFIG.RegionId === 3 ? \"weekly\" : ''}` + \" rates for this unit type. Hover over the range to view the specific rates.

If Your Store is advertising rates for this unit type, your rates will be shown here (in orange). Hover over the range to view the specific rates.

Compare the \" + `${CONFIG.RegionId === 3 ? \"weekly\" : ''}` + \" rate range for any store/competitor in this Market*

*See 'All Stores' below to select stores/competitors to compare to on this graph

*Your store prices are included in the calculations.

\"\r\n }\r\n const defaultProps2 = {\r\n helpTitle: \"All Stores\",\r\n helpContent: \"
  • This shows all the stores in this Market and their current \" + `${CONFIG.RegionId === 3 ? \"weekly\" : ''}` + \" price ranges for each of the most common unit types.

*Your store prices are included in the calculations.

\"\r\n // helpContent: \"
  • This shows all the stores in this Market and their current price ranges for each of the most common unit types.
  • Click on any to show/remove on the graph above for comparison.

*Your store prices are included in the calculations.

\"\r\n }\r\n var storeName = \"\";\r\n { storeName = storeAddress ? storeAddress.storeName : \"\" }\r\n var count = 0;\r\n var initvalue = '';\r\n const rowsitem = [];\r\n var tData = [];\r\n var pData = [];\r\n var udt = 0;\r\n\r\n if (compitatorAll.length > 0) {\r\n tData = this.formData(compitatorAll);\r\n pData = compitatorAll.filter(a => (a.priceFrom > 0 || a.priceTo > 0));\r\n let unique = [...new Set(compitatorAll.map(item => item.unitType))];\r\n udt = unique.length;\r\n\r\n }\r\n const tr = [...Array(Math.ceil(tData.length / 10))];\r\n const trproductRows = tr.map((row, idx) => tData.slice(idx * 10, idx * 10 + 10));\r\n const nameCount = storeAddress.storeName ? storeAddress.storeName.length : 0;\r\n return (\r\n
\r\n
{storeAddress.storeName && storeAddress.storeName !== null && storeAddress.storeName !== '' && storeAddress.storeName !== undefined ? nameCount > CONFIG.storeNameMaxLimit ? storeAddress.storeName.substring(0, CONFIG.storeNameMaxLimit - 3) + '...' : storeAddress.storeName : isLoading === false ? 'Your Store' : ''}
\r\n {/*

{storeAddress.storeAddress1 && storeAddress.storeAddress1 !== null && storeAddress.storeAddress1 !== '' && storeAddress.storeAddress1 !== undefined ? storeAddress.storeAddress1 + \", \" : '' + storeAddress && storeAddress.storeCity ? storeAddress.storeCity + \", \" : storeAddress.searchType === 1 && (storeAddress.storeCity === '' || storeAddress.storeCity === null) && (storeAddress.storeZipCode === '' || storeAddress.storeZipCode === null) ? storeAddress.latitude+', ' +storeAddress.longitude+', ': ''}{storeAddress.storeState + ' ' + storeAddress.storeZipCode} {storeAddress.storeZoneCoverage ? \"| Coverage: \" + storeAddress.storeZoneCoverage : 'N/A'}

*/}\r\n

{storeAddress.storeAddress1 && storeAddress.storeAddress1 !== null && storeAddress.storeAddress1 !== '' && storeAddress.storeAddress1 !== undefined ? storeAddress.storeAddress1 + \", \" : ''} {storeAddress && storeAddress.storeCity ? storeAddress.storeCity + \", \" : storeAddress.searchType === 1 && (storeAddress.storeCity === '' || storeAddress.storeCity === null) && (storeAddress.storeZipCode === '' || storeAddress.storeZipCode === null) ? storeAddress.latitude + ', ' + storeAddress.longitude + ', ' : ''}{storeAddress.storeState && storeAddress.storeState !== '' && storeAddress.storeState !== null ? storeAddress.storeState + '' : isLoading === false ? ' ' : ''} {storeAddress.storeZipCode && storeAddress.storeZipCode !== '' && storeAddress.storeZipCode !== null ? storeAddress.storeZipCode + '' : isLoading === false ? '' : ''} | {storeAddress.storeZoneCoverage ? storeAddress.storeZoneCoverage : isLoading === false ? 'N/A' : ''}

\r\n
\r\n {CONFIG.Website_Text_Footer_Pdf} | {CONFIG.Phone_Footer_Pdf} | {CONFIG.Mail_Footer_Pdf} | \"Optimize\r\n
\r\n {isLoading ?
: ''}\r\n\r\n\r\n
\r\n\r\n
\r\n
\r\n
All Units Pricing
\r\n\r\n

On this page we provide a side-by-side analysis of the rates for the most common unit types.

\r\n
Broadest Range
\r\n

This is the unit type with the largest range of {CONFIG.RegionId === 3 ? \"current weekly rates\" : \"current rates\"} (this includes both Regular/Walk-in and Online/Promotional rates)

\r\n
Narrowest Range
\r\n

This is the unit type with the lowest range of {CONFIG.RegionId === 3 ? \"current weekly rates\" : \"current rates\"} (this includes both Regular/Walk-in and Online/Promotional rates)

\r\n

*Your store prices are included in the calculations.

\r\n
\r\n {/* {\r\n
    \r\n { this.state.isSelectPoint.map(reptile =>
  1. {reptile}
  2. )}\r\n
\r\n } */}\r\n\r\n
\r\n
\r\n

Broadest Range

\r\n {isLoading ? '' :\r\n \r\n
{pricing.broadestRangeUnit ? pricing.broadestRangeUnit : 'N/A'}
\r\n
{CONFIG.RegionId === 3 ? \"Current Weekly Price Range\" : \"Current Price Range\"}
\r\n
\r\n }\r\n
\r\n
\r\n {/*

{isLoading ? '' : pricing.broadestPriceTo === null ? '' : pricing.broadestPriceTo === pricing.broadestPriceFrom ? storeAddress.countryCurrency + pricing.broadestPriceTo : storeAddress.countryCurrency + pricing.broadestPriceFrom + '-' + pricing.broadestPriceTo}

*/}\r\n

{isLoading ? '' : pricing.broadestPriceTo === null ? '' : pricing.broadestPriceTo === pricing.broadestPriceFrom ? storeAddress.countryCurrency + pricing.broadestPriceTo : storeAddress.countryCurrency + pricing.broadestPriceFrom + '-' + pricing.broadestPriceTo}{pricing.broadestPriceTo === pricing.broadestPriceFrom ? ** : ''}

\r\n
\r\n\r\n
\r\n

Narrowest Range

\r\n {isLoading ? '' :\r\n \r\n
{pricing.narrowestRangeUnit ? pricing.narrowestRangeUnit : 'N/A'}
\r\n
{CONFIG.RegionId === 3 ? \"Current Weekly Price Range\" : \"Current Price Range\"}
\r\n
\r\n }\r\n
\r\n
\r\n {/*

{isLoading ? '' : pricing.narrowestPriceTo === null ? '' : pricing.narrowestPriceTo === pricing.narrowestPriceFrom ? storeAddress.countryCurrency + pricing.narrowestPriceTo : storeAddress.countryCurrency + pricing.narrowestPriceFrom + '-' + pricing.narrowestPriceTo}

*/}\r\n

{isLoading ? '' : pricing.narrowestPriceTo === null ? '' : pricing.narrowestPriceTo === pricing.narrowestPriceFrom ? storeAddress.countryCurrency + pricing.narrowestPriceTo : storeAddress.countryCurrency + pricing.narrowestPriceFrom + '-' + pricing.narrowestPriceTo} {pricing.narrowestPriceTo === pricing.narrowestPriceFrom ? ** : ''}

\r\n
\r\n
\r\n
\r\n
\r\n

\r\n {pricing.broadestPriceTo === pricing.broadestPriceFrom || pricing.narrowestPriceTo === pricing.narrowestPriceFrom ?

**This market has only a single price option and there is no price range.

: ''}\r\n

\r\n
\r\n
\r\n
\r\n

All Units Pricing Ranges

\r\n {CONFIG.RegionId === 3 ?\r\n
\r\n

This graph is showing a side-by-side analysis of the weekly rates for the most common unit types.

\r\n

The Market Average (in black) shows the range of current weekly rates for this unit type. Hover over the range to view the specific rates.

\r\n

If Your Store is advertising rates for this unit type, your rates will be shown here (in orange). Hover over the range to view the specific rates.

\r\n

Compare the weekly rate range for any store/competitor in this Market*

\r\n

*See 'All Stores' below to select stores/competitors to compare to on this graph

\r\n

*Your store prices are included in the calculations.

\r\n

This graph is showing a side-by-side analysis of the rates for the most common unit types.

\r\n
\r\n :\r\n
\r\n

This graph is showing a side-by-side analysis of the rates for the most common unit types.

\r\n {/*

The Market Average (in black) show the range of current rates for this unit type. Hover over the range to view the specific rates.

*/}\r\n

The Market Average (in black) show the range of current rates for this unit type.

\r\n {/*

If Your Store is advertising rates for this unit type, your rates will be shown here (in orange). Hover over the range to view the specific rates.

*/}\r\n

If Your Store is advertising rates for this unit type, your rates will be shown here (in orange).

\r\n

Compare the rate range for any store/competitor in this Market*

\r\n

*See 'All Stores' below to select stores/competitors to compare to on this graph

\r\n

*Your store prices are included in the calculations.

}\r\n
\r\n
\r\n\r\n\r\n \r\n {markets1.length > 0 || myStore.length > 0 || pData.length > 0 ? <>
:
{isLoading === false ? 'No Data Available' : ''}
}\r\n
\r\n
\r\n\r\n \r\n \r\n
\r\n
\r\n

All Stores

\r\n
    \r\n
  • This shows all the stores in this Market and their current price ranges for each of the most common unit types.
  • \r\n {/*
  • Click on any to show/remove on the graph above for comparison.
  • */}\r\n
\r\n

*Your store prices are included in the calculations.

\r\n
\r\n {markets1.length > 0 || myStore.length > 0 || tData.length > 0 ?\r\n
\r\n\r\n \r\n \r\n {this.state.dropDownValue}\r\n \r\n \r\n this.handleClickOpen(e, \"Store Name\")}>Store Name\r\n this.handleClickOpen(e, \"Proximity\")}>Proximity\r\n \r\n \r\n
\r\n : ''}\r\n
\r\n
\r\n
\r\n \r\n
\r\n {snackMSg}}\r\n action={[\r\n \r\n \r\n \r\n ]}\r\n />\r\n\r\n
\r\n {trproductRows ? trproductRows.map((rows, i) => (\r\n
\r\n \r\n \r\n
\r\n {i == 0 ?\r\n
\r\n

All Stores

\r\n
    \r\n
  • This shows all the stores in this Market and their {CONFIG.RegionId === 3 ? \"current weekly price ranges\" : \"current price ranges\"} for each of the most common unit types.
  • \r\n {/*
  • Click on any to show/remove on the graph above for comparison.
  • */}\r\n
\r\n

*Your store prices are included in the calculations.

\r\n
\r\n : ''}\r\n\r\n
\r\n
\r\n\r\n
\r\n \r\n {markets1.length > 0 || myStore.length > 0 || tData.length > 0 ?\r\n \r\n \r\n \r\n\r\n {market.length > 0 ? market.map(data => {\r\n return (\r\n {data.unitType}\r\n );\r\n }) : ''}\r\n {/* More Option */}\r\n \r\n \r\n \r\n \r\n {i == 0 ?\r\n \r\n \r\n {\"Market Range \"}\r\n \r\n \r\n {/* {\"Market Range \"} */}\r\n {market.length > 0 ? market.map(data => {\r\n return (\r\n {data.priceTo === 0 && data.priceFrom === 0 ? 'N/A' : data.priceTo === data.priceFrom ? storeAddress.countryCurrency + data.priceFrom : storeAddress.countryCurrency + data.priceFrom + '-' + data.priceTo}\r\n );\r\n }) : ''}\r\n\r\n \r\n : ''}\r\n\r\n {i == 0 && myStore.length > 0 ?\r\n \r\n \r\n {\"Your Store \"}\r\n \r\n \r\n {/* {\"Your Store \"} */}\r\n {myStore.length > 0 ? myStore.map(data => {\r\n return (\r\n {data.priceTo === 0 && data.priceFrom === 0 ? 'N/A' : data.priceTo === data.priceFrom ? storeAddress.countryCurrency + data.priceFrom : storeAddress.countryCurrency + data.priceFrom + '-' + data.priceTo}\r\n );\r\n }) : ''}\r\n\r\n \r\n \r\n : ''}\r\n {tData.length > 0 ? rows.map(data => {\r\n switch (udt) {\r\n case 12: {\r\n return (\r\n \r\n \r\n \r\n
\r\n {data.StoreImage != '' ?\r\n
\r\n \"No\r\n
: ''}\r\n
\r\n
{data.StoreName}
\r\n
{data.Proximity + ' ' + \"miles\"}
\r\n
{data.Address}
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n {data.Unit1}\r\n {data.Unit2}\r\n {data.Unit3}\r\n {data.Unit4}\r\n {data.Unit5}\r\n {data.Unit6}\r\n {data.Unit7}\r\n {data.Unit8}\r\n {data.Unit9}\r\n {data.Unit10}\r\n {data.Unit11}\r\n {data.Unit12}\r\n \r\n
\r\n );\r\n break;\r\n }\r\n case 10: {\r\n return (\r\n \r\n \r\n \r\n
\r\n {data.StoreImage != '' ?\r\n
\r\n \"No\r\n
: ''}\r\n
\r\n
{data.StoreName}
\r\n
{data.Proximity + ' ' + \"miles\"}
\r\n
{data.Address}
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n {data.Unit1}\r\n {data.Unit2}\r\n {data.Unit3}\r\n {data.Unit4}\r\n {data.Unit5}\r\n {data.Unit6}\r\n {data.Unit7}\r\n {data.Unit8}\r\n {data.Unit9}\r\n {data.Unit10}\r\n \r\n
\r\n );\r\n break;\r\n }\r\n case 14: {\r\n return (\r\n \r\n \r\n \r\n
\r\n {data.StoreImage != '' ?\r\n
\r\n \"No\r\n
: ''}\r\n
\r\n
{data.StoreName}
\r\n
{data.Proximity + ' ' + \"miles\"}
\r\n
{data.Address}
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n {data.Unit1}\r\n {data.Unit2}\r\n {data.Unit3}\r\n {data.Unit4}\r\n {data.Unit5}\r\n {data.Unit6}\r\n {data.Unit7}\r\n {data.Unit8}\r\n {data.Unit9}\r\n {data.Unit10}\r\n {data.Unit11}\r\n {data.Unit12}\r\n {data.Unit13}\r\n {data.Unit14}\r\n \r\n
\r\n );\r\n break;\r\n }\r\n default: {\r\n return (\r\n \r\n \r\n \r\n
\r\n {data.StoreImage != '' ?\r\n
\r\n \r\n
: ''}\r\n
\r\n
{data.StoreName}
\r\n
{data.Proximity + ' ' + \"miles\"}
\r\n
{data.Address}
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n {data.Unit1}\r\n {data.Unit2}\r\n {data.Unit3}\r\n {data.Unit4}\r\n {data.Unit5}\r\n {data.Unit6}\r\n {data.Unit7}\r\n {data.Unit8}\r\n {data.Unit9}\r\n {data.Unit10}\r\n {data.Unit11}\r\n {data.Unit12}\r\n {data.Unit13}\r\n {data.Unit14}\r\n {data.Unit15}\r\n \r\n
\r\n );\r\n\r\n break;\r\n }\r\n }\r\n }) : ''}\r\n
\r\n
\r\n :
{isLoading === false ? 'No Data Available' : ''}
}\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n ))\r\n : ''}\r\n
\r\n
\r\n );\r\n }\r\n}","import React from 'react';\r\nimport './PricingVolatilityPdf.css';\r\nimport * as d3 from \"d3\";\r\nimport { CONFIG, MatchingCountryCode } from '../../../utils/config';\r\nimport axios from 'axios';\r\nimport { HelpTextPopup } from '../../HelpTextPopup/index';\r\nimport Table from '@material-ui/core/Table';\r\nimport TableBody from '@material-ui/core/TableBody';\r\nimport TableCell from '@material-ui/core/TableCell';\r\nimport TableHead from '@material-ui/core/TableHead';\r\nimport TableRow from '@material-ui/core/TableRow';\r\nimport Snackbar from '@material-ui/core/Snackbar';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport CloseIcon from '@material-ui/icons/Close';\r\nimport { AvForm, AvField } from 'availity-reactstrap-validation';\r\nimport Breadcrumbs from '@material-ui/core/Breadcrumbs';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport { Link } from 'react-router-dom';\r\nimport { Row, Col, Button, Modal, ModalHeader, ModalBody, ModalFooter, Table as TableBoots } from 'reactstrap';\r\nimport shows from '../../../Assets/Images/show.png';\r\nimport hiddens from '../../../Assets/Images/unshow.png';\r\nimport downarrows from '../../../Assets/Images/down-arrow.png';\r\nimport { CompetitorStore } from '../../CompetitorStore';\r\nimport TableSortLabel from '@material-ui/core/TableSortLabel';\r\nimport Logo from '../../../Assets/Images/logo.jpg';\r\nimport Chart from \"react-apexcharts\";\r\nimport duplicate from \"../../../Assets/Images/duplicate.png\"\r\nexport default class PricingVolatilityPdf extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.child = React.createRef();\r\n this.state = {\r\n options: {\r\n chart: {\r\n id: 'apexchart-example',\r\n toolbar: {\r\n show: false\r\n }\r\n },\r\n stroke: {\r\n width: 3,\r\n },\r\n markers: {\r\n size: 4,\r\n },\r\n grid: { show: false },\r\n legend: {\r\n show: false,\r\n },\r\n yaxis: {\r\n show: false,\r\n },\r\n xaxis: {\r\n labels: {\r\n show: false,\r\n }\r\n },\r\n noData: {\r\n text: \"Please wait for the data to be loaded. The data volume is high and this might take a minute for loading the data.\",\r\n verticalAlign: 'top',\r\n style: {\r\n color: \"#5b95f6\",\r\n fontSize: '13px',\r\n fontFamily: \"Helvetica\"\r\n }\r\n },\r\n },\r\n series: [],\r\n\r\n snackOpen: false,\r\n snackMSg: '',\r\n marketVolatility: '',\r\n marketStorePrice: '',\r\n isLoading: false,\r\n unitType: '',\r\n priceOption: '',\r\n dashboardBasicInfo: '',\r\n volatilityGrpahData: '',\r\n isDefaultUnit: this.props.unit,\r\n isDefaultPrice: this.props.price,\r\n showGrpahData: '',\r\n isSelectIdPush: [],\r\n isShowGraph: this.props.isShowGraph,\r\n isYourStore: [],\r\n isRemoveGrapg: this.props.isRemoveGraph,\r\n isSelectCount: [],\r\n locationInfoData: [],\r\n isdefaultSelected: this.props.unit,\r\n isdefaultSelectedprice: this.props.price,\r\n isNoGraphData: false,\r\n isCompsName: this.props.isCompsName,\r\n order: this.props.order ? this.props.order : 'asc',\r\n orderBy: this.props.orderby ? this.props.orderby : 'storeName',\r\n isNoData: false,\r\n accessKey: this.props.accessKey,\r\n showRemoveId: this.props.showRemoveId,\r\n showRemoveType: this.props.showRemoveType,\r\n new_filterData : []\r\n };\r\n this.getParams = this.getParams.bind(this);\r\n this.handleRequestSort = this.handleRequestSort.bind(this);\r\n this.stableSort = this.stableSort.bind(this);\r\n this.getSorting = this.getSorting.bind(this);\r\n this.desc = this.desc.bind(this);\r\n }\r\n\r\n getParams(storeAddress) {\r\n let storeId = parseInt(this.props.userstoreid);\r\n this.child.current.toggleStoreModal(storeAddress, storeId);\r\n }\r\n\r\n //Table Sorting \r\n handleRequestSort(event, property) {\r\n const { order, orderBy } = this.state;\r\n const isDesc = orderBy === property && order === 'desc';\r\n let sort = isDesc ? 'asc' : 'desc';\r\n this.setState({ order: sort, orderBy: property });\r\n }\r\n\r\n //Table Sorting order\r\n desc(a, b, orderBy) {\r\n if (b[orderBy] < a[orderBy]) {\r\n return -1;\r\n }\r\n if (b[orderBy] > a[orderBy]) {\r\n return 1;\r\n }\r\n return 0;\r\n }\r\n\r\n //Table Sorting the selected Column\r\n stableSort(array, cmp) {\r\n const stabilizedThis = array.map((el, index) => [el, index]);\r\n stabilizedThis.sort((a, b) => {\r\n const order = cmp(a[0], b[0]);\r\n if (order !== 0) return order;\r\n return a[1] - b[1];\r\n });\r\n return stabilizedThis.map(el => el[0]);\r\n }\r\n\r\n //Table Sorting Order Request\r\n getSorting(order, orderBy) {\r\n return order === 'desc' ? (a, b) => this.desc(a, b, orderBy) : (a, b) => -this.desc(a, b, orderBy);\r\n }\r\n async UNSAFE_componentWillMount() {\r\n const data = {\r\n \"SecretKey\": this.props.accessKey,\r\n \"RegionId\": CONFIG.RegionId\r\n }\r\n\r\n const response = await axios.post(CONFIG.API_URL + 'account/secretlogin', data);\r\n if (response.status === 200) {\r\n this.state.accessKey = response.data.token;\r\n this.pricingVoltality();\r\n } else {\r\n alert(response.status.Message);\r\n }\r\n }\r\n\r\n loadDashBoard() {\r\n let token = this.state.accessKey;\r\n const data = {\r\n \"UserStoreID\": parseInt(this.props.userstoreid),\r\n \"RegionId\": CONFIG.RegionId\r\n }\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n }\r\n axios.post(CONFIG.API_URL + 'dashboard/dashboardlocation', data)\r\n .then(response => {\r\n const locationInfoData = response.data.data.storeDashboard;\r\n var countrycode = response.data.data.storeDashboard.countryCode;\r\n var data1 = {\r\n \"CountryCode\": countrycode,\r\n \"RegionId\": CONFIG.RegionId\r\n }\r\n axios.post(CONFIG.API_URL + 'dashboard/lookupunit', data1)\r\n .then(response => {\r\n let unitType = response.data.prices;\r\n //this.state.isDefaultUnit = unitType[0].unitType;\r\n let isDefaultUnit = unitType.filter((e => e.id == this.props.unit));\r\n this.state.isDefaultUnit = isDefaultUnit[0].unitType\r\n //this.state.isDefaultUnit = this.props.unit;\r\n this.setState({\r\n unitType,\r\n })\r\n });\r\n this.setState({\r\n locationInfoData: locationInfoData\r\n })\r\n const inputParam = {\r\n UserStoreID: parseInt(this.props.userstoreid),\r\n RegionId: CONFIG.RegionId,\r\n Competitors: '',\r\n }\r\n this.PricingVolatility(inputParam)\r\n \r\n }).catch((err) => {\r\n if (err.response.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else if (err.response.status === 403) {\r\n const { from } = this.props.location.state || { from: { pathname: \"/UnauthorizedAccess\" } };\r\n this.props.history.push(from);\r\n }\r\n else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }\r\n\r\n pricingVoltality() {\r\n\r\n this.setState({\r\n isLoading: true\r\n })\r\n\r\n\r\n this.loadDashBoard();\r\n\r\n\r\n axios.post(CONFIG.API_URL + 'dashboard/priceoptions')\r\n .then(response => {\r\n\r\n let priceOption = response.data.price;\r\n this.setState({\r\n priceOption\r\n })\r\n });\r\n\r\n }\r\n PricingVolatility(inputParam) {\r\n let isShowGraph = [];\r\n let isRemoveGrapg = [];\r\n let isCompsName = [];\r\n let isYourStore = [];\r\n let token = this.state.accessKey;\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n }\r\n axios.post(CONFIG.API_URL + 'dashboard/priceoverviewvolatility', inputParam)\r\n .then(response => {\r\n const dashboardBasicInfo = response.data.data.dashboardBasicInfo;\r\n const volatilityGrpahData = response.data.data.volatilityGrpahData;\r\n const marketVolatility = response.data.data.unitVolatilityData;\r\n // Below I have using the filter function to finding the null values of all unit types. If any case all the units return the null values we have define the one boolean value to the state for showing the \"No data found\" in the pricing volatality grid.\r\n var checkNull = marketVolatility.filter((filterData => filterData.volatility !== null));\r\n if (checkNull.length === 0) {\r\n this.setState({ isNoData: true });\r\n }\r\n // End of the filter function code.\r\n const marketStorePrice = response.data.data.allVolatilityData;\r\n const isUnitType = marketVolatility.filter((e => e.volatility === 0));\r\n\r\n const isUnitTypeNotNull = marketVolatility.filter((e => e.volatility));\r\n const isYourStCount = marketStorePrice.filter((e => e.isMyStore));\r\n // const isUnitTypeNull = marketVolatility.filter((e => e.volatility===null));\r\n let marketStorePriceSort = [];\r\n marketStorePrice.filter((e) => e.isMyStore === true).forEach(function (e) { isYourStore.push(e) });\r\n marketStorePrice.filter((e) => e.isMyStore === false).forEach(function (e) { marketStorePriceSort.push(e) });\r\n if (!this.state.showRemoveId && !this.state.showRemoveType) {\r\n marketStorePrice.filter((e) => e.isSelected === 1).forEach(function (e) { isShowGraph.push(e.storeId) });\r\n marketStorePrice.filter((e) => e.isSelected === 1 && e.isMyStore != 1).forEach(function (e) { isCompsName.push(e.storeName) });\r\n\r\n }\r\n marketStorePrice.filter((e) => e.isSelected === 0).forEach(function (e) { isRemoveGrapg.push(e.storeId) });\r\n if (isShowGraph === undefined) {\r\n isShowGraph = [];\r\n }\r\n if (isRemoveGrapg === undefined) {\r\n isRemoveGrapg = [];\r\n }\r\n if (isYourStore === undefined) {\r\n isYourStore = [];\r\n }\r\n\r\n if (this.props.orderby == \"storeName\") {\r\n if (this.props.order === 'asc') {\r\n marketStorePriceSort = marketStorePrice.sort((a, b) => a.storeName.localeCompare(b.storeName));\r\n }\r\n else {\r\n marketStorePriceSort = marketStorePrice.sort((a, b) => b.storeName.localeCompare(a.storeName));\r\n }\r\n } else if (this.props.orderby == \"allPrice\") {\r\n if (this.props.order === 'asc') {\r\n marketStorePriceSort = marketStorePrice.sort((a, b) => (a.allPrice - b.allPrice));\r\n }\r\n else {\r\n marketStorePriceSort = marketStorePrice.sort((a, b) => (b.allPrice - a.allPrice));\r\n }\r\n }\r\n else if (this.props.orderby == \"premium\") {\r\n if (this.props.order === 'asc') {\r\n marketStorePriceSort = marketStorePrice.sort((a, b) => (a.premium - b.premium));\r\n }\r\n else {\r\n marketStorePriceSort = marketStorePrice.sort((a, b) => (b.premium - a.premium));\r\n }\r\n } else if (this.props.orderby == \"value\") {\r\n if (this.props.order === 'asc') {\r\n marketStorePriceSort = marketStorePrice.sort((a, b) => (a.value - b.value));\r\n }\r\n else {\r\n marketStorePriceSort = marketStorePrice.sort((a, b) => (b.value - a.value));\r\n }\r\n }\r\n\r\n this.setState({\r\n marketVolatility, isYourStCount, isUnitType, isYourStore, isUnitTypeNotNull, volatilityGrpahData, isCompsName, marketStorePrice: marketStorePriceSort, dashboardBasicInfo, isShowGraph, isRemoveGrapg, isLoading: false\r\n })\r\n\r\n if (this.state.volatilityGrpahData.length > 0) {\r\n this.setState({\r\n isNoGraphData: false\r\n })\r\n // if((this.props.isShowGraph == \"null\") || (this.props.isRemoveGraph ==\"null\" )){\r\n\r\n //this.initialLoad(volatilityGrpahData.filter(a => a.unitType == this.state.isDefaultUnit && a.priceType == this.state.isDefaultPrice));\r\n\r\n\r\n if (this.state.showRemoveId && this.state.showRemoveType) {\r\n let name = marketStorePrice.filter(a => a.storeId == this.state.showRemoveId)\r\n // volatilityGrpahData.filter(a => a.unitType == this.state.isDefaultUnit && a.priceType == this.state.isDefaultPrice))\r\n this.showGraph(this.state.showRemoveId, this.state.showRemoveType, name[0]['storeName'])\r\n }\r\n else {\r\n this.initialLoad(volatilityGrpahData.filter(a => a.unitType == this.state.isDefaultUnit && a.priceType == this.state.isDefaultPrice));\r\n\r\n }\r\n // }\r\n // else{\r\n // const inputParam = {\r\n // UserStoreID: parseInt(this.props.userstoreid),\r\n // Competitors: this.props.Competitors,\r\n // RegionId: CONFIG.RegionId\r\n // }\r\n\r\n // this.onlyShowGraph(inputParam);\r\n // }\r\n\r\n }\r\n else {\r\n this.setState({\r\n isNoGraphData: true\r\n })\r\n }\r\n\r\n }).catch((err) => {\r\n this.setState({\r\n isLoading: false\r\n })\r\n if (err.response.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }\r\n\r\n apexChartNoData = ({ textMessage, colorCode }) => {\r\n this.setState({\r\n series: [],\r\n options: {\r\n xaxis: {\r\n labels: {\r\n show: false\r\n },\r\n axisBorder: {\r\n show: false\r\n },\r\n axisTicks: {\r\n show: false\r\n }\r\n },\r\n yaxis: {\r\n show: false\r\n },\r\n noData: {\r\n text: textMessage,\r\n style: { color: colorCode }\r\n }\r\n }\r\n });\r\n }\r\n\r\n initialLoad(res) {\r\n const { isCompsName } = this.state;\r\n var data = res;\r\n var przvoldality = res.filter((a) => a.volatility !== null);\r\n let isCompString = typeof (isCompsName) !== 'object' ? isCompsName : isCompsName.toString();\r\n this.setState({new_filterData : []});\r\n if (przvoldality.length > 0) {\r\n this.setState({\r\n isNoGraphData: false,\r\n });\r\n\r\n var tempdata = [];\r\n let marketSeries = [];\r\n let widthArrayData = [];\r\n let dashArrayData = [];\r\n let marketNameList = [];\r\n let colorsCodeList = [];\r\n let markerSize = [];\r\n let newFilter_tempdata = [];\r\n let unique = [...new Set(data.map((item) => item.storeId))];\r\n let MarketName = [\"Your Store\", \"Market Average\", isCompString];\r\n let MarketName2 = [\"Market Average\", isCompString];\r\n let colorsCode = ['#F15D47', '#1B2C42', '#41A3F6'];\r\n let colorsCode2 = ['#1B2C42', '#41A3F6'];\r\n for (var i = 0; i < unique.length; i++) {\r\n var datum = {\r\n name: unique[i],\r\n count: i,\r\n isMyMarket: this.popMyStore(data, unique[i]),\r\n values: this.popData(data, unique[i]),\r\n };\r\n tempdata.push(datum);\r\n }\r\n const toTop = (key, value) => (a, b) => (b[key] === value) - (a[key] === value);\r\n tempdata.sort(toTop('isMyMarket', 1));\r\n tempdata.every(val => {\r\n marketNameList = val.isMyMarket === 1 ? MarketName : MarketName2;\r\n colorsCodeList = val.isMyMarket === 1 ? colorsCode : colorsCode2;\r\n })\r\n for (var k = 0; k < tempdata.length; k++) {\r\n let noValues = tempdata[k].values.every(item => item.totalChangeCount === '' || item.totalChangeCount === undefined);\r\n if (!noValues) {\r\n let dataSeries = tempdata[k].values.map(val => { return { x: val.monthYear, y: val.totalChangeCount, originData: val.totalChangeCount }; });\r\n let dataSeries1 = tempdata[k].values.map(val => { return { x: val.monthYear, y: val.totalChangeCount !== null && val.totalChangeCount !== \"0.00\" ? val.totalChangeCount : 0, originData: val.totalChangeCount !== null && val.totalChangeCount !== \"0.00\" ? val.totalChangeCount : 0 }; });\r\n let containsNull = dataSeries.every(val => val.y !== null);\r\n newFilter_tempdata.push({name :marketNameList[k] , data:dataSeries1 , color:colorsCodeList[k]});\r\n if (tempdata[k].isMyMarket === 1) {\r\n if (!containsNull) {\r\n let noZeroData1 = dataSeries.map(yData => { return { x: yData.x, y: yData.y === null ? 0 : yData.y, originData: yData.originData }; });\r\n marketSeries.push({ name: (marketNameList[k] + \" data\"), data: noZeroData1, color: colorsCodeList[k] });\r\n let noZeroData = dataSeries.map(yData => { return { x: yData.x, y: yData.y === 0 ? null : yData.y, originData: yData.originData }; });\r\n marketSeries.push({ name: marketNameList[k], data: noZeroData, color: colorsCodeList[k] });\r\n markerSize.push(0, 10);\r\n widthArrayData.push(1, 3);\r\n dashArrayData.push(6, 0);\r\n } else {\r\n marketSeries.push({ name: marketNameList[k], data: dataSeries, color: colorsCodeList[k] });\r\n markerSize.push(10);\r\n widthArrayData.push(3);\r\n dashArrayData.push(0);\r\n }\r\n } else {\r\n if (!containsNull) {\r\n let noZeroData1 = dataSeries.map(yData => { return { x: yData.x, y: yData.y === null ? 0 : yData.y, originData: yData.originData }; });\r\n marketSeries.push({ name: (marketNameList[k] + \" data\"), data: noZeroData1, color: colorsCodeList[k] });\r\n let noZeroData = dataSeries.map(yData => { return { x: yData.x, y: yData.y === 0 ? null : yData.y, originData: yData.originData }; });\r\n marketSeries.push({ name: marketNameList[k], data: noZeroData, color: colorsCodeList[k] });\r\n markerSize.push(0, 10);\r\n widthArrayData.push(1, 3);\r\n dashArrayData.push(6, 0);\r\n } else {\r\n marketSeries.push({ name: marketNameList[k], data: dataSeries, color: colorsCodeList[k] });\r\n markerSize.push(10);\r\n widthArrayData.push(3);\r\n dashArrayData.push(0);\r\n }\r\n }\r\n }\r\n }\r\n \r\n //Duplicate Data\r\n let newData = [];\r\n newFilter_tempdata.map(dataItem => dataItem.data.forEach(i => {\r\n if(i.y !== \"\" && i.y !== undefined){\r\n newFilter_tempdata.map(userItem => userItem.data.forEach(j => {\r\n if(j.y !== \"\" && j.y !== undefined){\r\n if((dataItem.name !== userItem.name) && (dataItem.color !== userItem.color)){\r\n if((i.y === j.y) && (i.x === j.x)){\r\n newData.push({name:dataItem.name ,color:dataItem.color});\r\n let new_filterData = newData.reduce((elements , obj , index)=>{ \r\n let existingData = elements.find(element => \r\n element.name === obj.name && element.color === obj.color\r\n );\r\n if(!existingData){\r\n elements.push(obj);\r\n }\r\n return elements;\r\n }, []);\r\n this.setState({new_filterData : new_filterData}); \r\n }\r\n }\r\n }\r\n }));\r\n }\r\n })); \r\n\r\n if (marketSeries.length > 0) {\r\n this.setState({\r\n options: {\r\n chart:{\r\n animations: {\r\n enabled: false,\r\n },\r\n },\r\n tooltip: {\r\n enabled: false\r\n },\r\n stroke: {\r\n width: widthArrayData,\r\n dashArray: dashArrayData,\r\n },\r\n markers: {\r\n size: 4,\r\n },\r\n legend: {\r\n show: true,\r\n showForSingleSeries: true,\r\n position: 'bottom',\r\n horizontalAlign: 'center',\r\n fontSize: '11px',\r\n fontWeight: 500,\r\n showForNullSeries: true,\r\n showForZeroSeries: true,\r\n itemMargin: {\r\n horizontal: 10,\r\n vertical: 20,\r\n },\r\n onItemClick: {\r\n toggleDataSeries: false\r\n },\r\n onItemHover: {\r\n highlightDataSeries: false\r\n },\r\n formatter: function (seriesName, opts) {\r\n if (!seriesName.endsWith('data')) return seriesName;\r\n return null;\r\n },\r\n markers: {\r\n width: markerSize,\r\n height: markerSize,\r\n }\r\n },\r\n yaxis: {\r\n labels: {\r\n formatter: function (value) {\r\n let val = value === null || value === undefined ? \"N/A\" : value.toFixed(0) + \"%\";\r\n return val;\r\n },\r\n style: {\r\n colors: '#8C9AA6',\r\n fontSize: '10px'\r\n },\r\n },\r\n axisBorder:{\r\n show: false,\r\n },\r\n axisTicks: {\r\n show: false,\r\n }\r\n },\r\n xaxis: {\r\n title: {\r\n text: \"--- No Data Available\",\r\n offsetX: 400,\r\n offsetY: 20,\r\n style: {\r\n fontSize: '11px',\r\n fontWeight: 400,\r\n },\r\n },\r\n tooltip: { enabled: false },\r\n labels: {\r\n formatter: function (value) {\r\n let val = value === undefined || typeof (value) !== \"string\" ? '' : value;\r\n return val;\r\n },\r\n show: true,\r\n style: {\r\n colors: '#8C9AA6',\r\n fontSize: '10px'\r\n },\r\n },\r\n axisBorder: {\r\n show: true\r\n },\r\n axisTicks: {\r\n show: true\r\n }\r\n },\r\n },\r\n series: marketSeries\r\n })\r\n };\r\n\r\n }\r\n else {\r\n this.apexChartNoData({\r\n\r\n textMessage: \"No Data Found\",\r\n colorCode: \"#F60000\"\r\n });\r\n }\r\n }\r\n\r\n popData(data, uid) {\r\n var tFData = data.filter(a => a.storeId == uid);\r\n var tData = [];\r\n for (var i = 0; i < tFData.length; i++) {\r\n var CData = {\r\n date: new Date(tFData[i].year, tFData[i].month - 1, 1),\r\n volatility: tFData[i].volatility,\r\n month: tFData[i].month,\r\n isMyMarket: tFData[i].isMyMarket,\r\n totalChangeCount: tFData[i].totalChangeCount,\r\n totalCount: tFData[i].totalCount,\r\n monthYear: tFData[i].monthYear,\r\n }\r\n tData.push(CData);\r\n }\r\n\r\n return tData;\r\n }\r\n\r\n popMyStore(data, uid) {\r\n\r\n var tFData = data.filter(a => (a.storeId == uid && a.isMyMarket == 1));\r\n return (tFData.length > 0 ? 1 : 0);\r\n }\r\n\r\n showGraph(sId, type, name) {\r\n this.setState({\r\n isLoading: true\r\n })\r\n\r\n const isShowGraph = this.state.isShowGraph\r\n const isCount = this.state.isYourStCount;\r\n var isVal = 2;\r\n if (isCount.length === 0) {\r\n isVal = 1;\r\n }\r\n else {\r\n isVal = 2;\r\n }\r\n if (isShowGraph.length <= isVal) {\r\n var isSelectStoreId = [];\r\n var id;\r\n // var isShowData = this.state.marketStorePrice;\r\n //var isShowG = isShowData.filter(a => a.isSelected == \"1\");\r\n // for (const item of isShowG) {\r\n // var id = item.storeId;\r\n // }\r\n // const isShowGraph = this.state.isShowGraph\r\n const isRemoveGrapg = this.state.isRemoveGrapg;\r\n let index;\r\n if (isShowGraph.length <= isVal) {\r\n if (type == \"1\") {\r\n this.state.isCompsName = name;\r\n id = sId;\r\n id = 0;\r\n isSelectStoreId.push(id);\r\n index = isShowGraph.indexOf(+sId)\r\n isShowGraph.splice(index, 1)\r\n isRemoveGrapg.push(+sId)\r\n const inputParam = {\r\n UserStoreID: parseInt(this.props.userstoreid),\r\n Competitors: isSelectStoreId.toString(),\r\n RegionId: CONFIG.RegionId\r\n }\r\n\r\n this.onlyShowGraph(inputParam);\r\n\r\n }\r\n }\r\n if (isShowGraph.length < isVal) {\r\n this.state.isCompsName = [];\r\n if (type == \"0\") {\r\n this.state.isCompsName = name;\r\n if (id == undefined) {\r\n id = 0;\r\n }\r\n isSelectStoreId.push(id);\r\n isSelectStoreId = isSelectStoreId.concat(sId);\r\n index = isRemoveGrapg.indexOf(+sId)\r\n isRemoveGrapg.splice(index, 1)\r\n isShowGraph.push(+sId)\r\n const inputParam = {\r\n UserStoreID: parseInt(this.props.userstoreid),\r\n Competitors: isSelectStoreId.toString(),\r\n RegionId: CONFIG.RegionId\r\n }\r\n this.onlyShowGraph(inputParam);\r\n }\r\n }\r\n else {\r\n this.setState({\r\n isLoading: false\r\n })\r\n this.state.isSelectCount.pop();\r\n this.setState({ snackOpen: true, snackMSg: 'Please remove any of the selected markets to add new ones.' });\r\n }\r\n this.setState({\r\n isRemoveGrapg,\r\n isShowGraph\r\n })\r\n\r\n\r\n }\r\n\r\n }\r\n\r\n //SnackBar Close\r\n snackHandleclose = (event, reason) => {\r\n if (reason === 'clickaway') {\r\n return;\r\n }\r\n this.setState({ snackOpen: false });\r\n };\r\n\r\n\r\n onlyShowGraph(inputParam) {\r\n\r\n let token = this.state.accessKey;\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n }\r\n axios.post(CONFIG.API_URL + 'dashboard/priceoverviewvolatilitygraph', inputParam)\r\n .then(response => {\r\n\r\n\r\n const showGrpahData = response.data.data;\r\n this.state.volatilityGrpahData = response.data.data;\r\n this.setState({\r\n showGrpahData, isLoading: false\r\n })\r\n if (this.state.showGrpahData.length > 0) {\r\n this.initialLoad(showGrpahData.filter(a => a.unitType == this.state.isDefaultUnit && a.priceType == this.state.isDefaultPrice));\r\n }\r\n }).catch((err) => {\r\n\r\n this.setState({\r\n isLoading: false\r\n })\r\n if (err.response.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }\r\n\r\n\r\n onUnitChange(e) {\r\n\r\n this.state.isDefaultUnit = e.target.value;\r\n var res = '';\r\n res = this.state.volatilityGrpahData.filter(a => a.unitType == this.state.isDefaultUnit && a.priceType == this.state.isDefaultPrice);\r\n this.initialLoad(res);\r\n }\r\n onPriceChange(e) {\r\n\r\n this.state.isDefaultPrice = e.target.value;\r\n var res = '';\r\n res = this.state.volatilityGrpahData.filter(a => a.unitType == this.state.isDefaultUnit && a.priceType == this.state.isDefaultPrice);\r\n this.initialLoad(res);\r\n }\r\n\r\n render() {\r\n const { marketVolatility, isYourStore, isUnitType, order, orderBy, isUnitTypeNotNull, marketStorePrice, isCompsName, isNoGraphData, locationInfoData, isRemoveGrapg, isShowGraph, dashboardBasicInfo, isLoading, unitType, priceOption, isNoData, new_filterData } = this.state;\r\n const defaultProps = {\r\n helpTitle: \"Price Volatility\",\r\n helpContent: \"
How aggressive is this store/competitor?
  • Pricing volatility is a major indicator of how aggressive or passive a store or Market is with their pricing.
  • A store which frequently raises and/or lowers their rates, will typically have a higher pricing volatility.
  • Here you are shown the pricing volatility for this Market, Your Store (if available), the REITs in this Market, Multi-store operators and Single-store operators over the last 12 months.
  • Pricing Volatility is calculated by taking the number of times a pricing change occurred over the last 12 months for each store type.
  • *Your store prices are included in the calculations.

    Refer the below help video for more information.

\"\r\n }\r\n const defaultProps1 = {\r\n helpTitle: \"Last 12 Months\",\r\n helpContent: \"
How aggressive is this store/competitor?

Pricing volatility is a major indicator of how aggressive or passive a store or Market is with their pricing. A store which frequently raises and/or lowers their rates, will typically have a higher pricing volatility. Here you are shown the average monthly pricing volatility for Your Store (if available), against the Market average and any of the stores/competitors you select for comparison*, for the unit type and price type selected from the drop down menu.

Pricing Volatility is calculated by taking the number of times a pricing change occurred each month over the last 12 months.

*See Pricing Volatility by Store & Price Option to select a store you want to view on this graph

*Your store prices are included in the calculations.

\"\r\n }\r\n const defaultProps2 = {\r\n helpTitle: \"Market Pricing Volatility Over Last 12 Months\",\r\n helpContent: \"

This shows the pricing volatility over the last 12 months for each of the 11 common unit types (across the entire Market). This helps you understand which unit types in the Market are priced more aggressively.

*Your store prices are included in the calculations.

\"\r\n }\r\n const defaultProps3 = {\r\n helpTitle: \"Pricing Volatility by Store & Price Option\",\r\n helpContent: \"

This shows you all the stores in this Market along with their overall pricing volatility across all the unit types they advertise for the last 12 months. For comparison, we also show you the pricing volatility of the Premium unit rates vs. their Value unit rates.

Click on the link "Show on graph" to view this store's pricing volatility graph above over the last 12 months.

*Your store prices are included in the calculations.

\"\r\n }\r\n const tr = [...Array(Math.ceil(marketStorePrice.length / 18))];\r\n const trproductRows = tr.map((row, idx) => marketStorePrice.slice(idx * 18, idx * 18 + 18));\r\n // console.log(trproductRows, 'array', marketStorePrice);\r\n const nameCount = locationInfoData.storeName ? locationInfoData.storeName.length : 0;\r\n return (\r\n
\r\n
\r\n
{locationInfoData.storeName && locationInfoData.storeName !== null && locationInfoData.storeName !== '' ? nameCount > CONFIG.storeNameMaxLimit ? locationInfoData.storeName.substring(0, CONFIG.storeNameMaxLimit - 3) + '...' : locationInfoData.storeName : isLoading === false ? 'Your Store' : ''}
\r\n
\r\n

{locationInfoData && locationInfoData.storeAddress1 && locationInfoData.storeAddress1 !== null && locationInfoData.storeAddress1 !== '' ? locationInfoData.storeAddress1 + ',' : ''} {locationInfoData && locationInfoData.storeCity ? locationInfoData.storeCity + ', ' : locationInfoData.searchType === 1 && (locationInfoData.storeCity === '' || locationInfoData.storeCity === null) && (locationInfoData.storeZipCode === '' || locationInfoData.storeZipCode === null) ? locationInfoData.latitude + ', ' + locationInfoData.longitude + ', ' : ''} {locationInfoData ? locationInfoData.storeState : 'N/A'} {locationInfoData ? locationInfoData.storeZipCode : 'N/A'} | Coverage: {locationInfoData ? locationInfoData.storeZoneCoverage : 'N/A'}

\r\n
\r\n
\r\n
\r\n {CONFIG.Website_Text_Footer_Pdf} | {CONFIG.Phone_Footer_Pdf} | {CONFIG.Mail_Footer_Pdf} | \"Optimize\r\n
\r\n\r\n\r\n
\r\n\r\n
\r\n

Price Volatility

\r\n
How aggressive is this store/competitor?
\r\n
    \r\n
  • Pricing volatility is a major indicator of how aggressive or passive a store or Market is with their pricing.
  • \r\n
  • A store which frequently raises and/or lowers their rates, will typically have a higher pricing volatility.
  • \r\n
  • Here you are shown the pricing volatility for this Market, Your Store (if available), the REITs in this Market, Multi-store operators and Single-store operators over the last 12 months.
  • \r\n
  • Pricing Volatility is calculated by taking the number of times a pricing change occurred over the last 12 months for each store type.
  • \r\n\r\n
\r\n

*Your store prices are included in the calculations.

\r\n
\r\n
\r\n
\r\n \r\n
Market
{dashboardBasicInfo.market != null ? dashboardBasicInfo.market + '%' : isLoading === false ? 'N/A' : ''}
{dashboardBasicInfo.market != null && dashboardBasicInfo.market ?
Last 12 months
: ''}\r\n
Your Store
{dashboardBasicInfo.myStore != null ? dashboardBasicInfo.myStore + '%' : isLoading === false ? 'N/A' : ''}
\r\n {locationInfoData.countryCode == \"US\" ?\r\n
REIT's
{dashboardBasicInfo.reits != null ? dashboardBasicInfo.reits + '%' : isLoading === false ? 'N/A' : ''}
\r\n : ''}\r\n
Multi-Ops
{dashboardBasicInfo.multiOps != null ? dashboardBasicInfo.multiOps + '%' : isLoading === false ? 'N/A' : ''}
\r\n
Single-Ops
{dashboardBasicInfo.singleOps != null ? dashboardBasicInfo.singleOps + '%' : isLoading === false ? 'N/A' : ''}
\r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n

Last 12 months\r\n {/* */}\r\n

\r\n \r\n this.onUnitChange(e)}>\r\n {/* */}\r\n {unitType ? unitType.map((unit) =>\r\n \r\n ) : ''}\r\n \r\n this.onPriceChange(e)}>\r\n {/* */}\r\n {priceOption ? priceOption.map((price) =>\r\n \r\n ) : ''}\r\n \r\n \r\n
\r\n
\r\n
How aggressive is this store/competitor?
\r\n

Pricing volatility is a major indicator of how aggressive or passive a store or Market is with their pricing. A store which frequently raises and/or lowers their rates, will typically have a higher pricing volatility. Here you are shown the average monthly pricing volatility for Your Store (if available), against the Market average and any of the stores/competitors you select for comparison*, for the unit type and price type selected from the drop down menu.

\r\n

Pricing Volatility is calculated by taking the number of times a pricing change occurred each month over the last 12 months.

*See Pricing Volatility by Store & Price Option to select a store you want to view on this graph

\r\n

*Your store prices are included in the calculations.

\r\n
\r\n\r\n
\r\n\r\n {\r\n new_filterData.length > 0 ?
\r\n \r\n
\r\n {\r\n new_filterData.map((item)=>{\r\n return(\r\n <>\r\n
\r\n {item.name}\r\n \r\n )\r\n })\r\n }\r\n has same value in the series. \r\n
: \"\"\r\n } \r\n\r\n
\r\n
\r\n\r\n
\r\n {isNoGraphData ?
No Data Found
:\r\n \r\n }\r\n
\r\n
\r\n
\r\n
\r\n {isLoading ?
: ''}\r\n \r\n
Current Market Volatility(last 12 months)\r\n {/* */}\r\n
\r\n
\r\n

This shows the pricing volatility over the last 12 months for each of the 11 common unit types (across the entire Market). This helps you understand which unit types in the Market are priced more aggressively.

\r\n

*Your store prices are included in the calculations.

\r\n
\r\n
\r\n\r\n
\r\n
\r\n {marketVolatility.length > 0 ?\r\n \r\n \r\n \r\n {marketVolatility.length > 0 ? marketVolatility.map(data => {\r\n return (\r\n {data.unitType}\r\n );\r\n }) : ''}\r\n \r\n \r\n \r\n \r\n {\r\n (isUnitType.length === 0 || isUnitType.length > 0) && isNoData === false ? marketVolatility.map(data => {\r\n return (\r\n \r\n {data.volatility === null ? 'N/A' : data.volatility + '%'}\r\n \r\n )\r\n }) : isNoData === true ? '' : \r\n }\r\n {/* Below I write code for showing \"No data FOund\" if all the units have return the null values */}\r\n {\r\n isNoData === true ?\r\n \r\n {isLoading === false ? 'No Data Found' : ''}\r\n : ''\r\n }\r\n {/* Above I write code for showing \"No data FOund\" if all the units have return the null values */}\r\n \r\n \r\n
{isLoading === false ? 'No Data Found' : ''}
:

{isLoading === false ? 'No Data Found' : ''}

}\r\n
\r\n
\r\n \r\n
\r\n
\r\n {isLoading ?
: ''}\r\n \r\n {/*
Current Market Volatility by Store & Price Option(last 12 months)
*/}\r\n
\r\n\r\n
\r\n
\r\n {\r\n trproductRows ? trproductRows.map((rows, i) => (\r\n
\r\n {i === 0 ?\r\n
\r\n
Current Market Volatility by Store & Price Option(last 12 months)
\r\n
\r\n
Pricing Volatility by Store & Price Option
\r\n

This shows you all the stores in this Market along with their overall pricing volatility across all the unit types they advertise for the last 12 months. For comparison, we also show you the pricing volatility of the Premium unit rates vs. their Value unit rates.

\r\n

Click on the link "Show on graph" to view this store's pricing volatility graph above over the last 12 months.

\r\n

*Your store prices are included in the calculations.

\r\n
\r\n
\r\n : ''}\r\n\r\n\r\n \r\n \r\n \r\n\r\n\r\n {i === 0 && isYourStore.length > 0 ? isYourStore.map(data => {\r\n return (\r\n \r\n {/* {data.storeName}
{data.address}, {data.city}, {data.state}, {data.zipCode}
*/}\r\n {data.storeName === 'Your Store' ?\r\n {data.storeName === null ? 'N/A' : data.storeName}
{data.address != null ? data.address : ''} {data.city != null ? ', ' + data.city : ''} {CONFIG.RegionId === MatchingCountryCode.UK_RID ? '' : data.state != null ? ', ' + data.state : ''} {data.zipCode != null ? data.zipCode : ''}
: {data.storeName === null ? 'N/A' : data.storeName}
{data.address != null ? data.address : ''} {data.city != null ? ', ' + data.city : ''} {data.state != null && CONFIG.RegionId !== MatchingCountryCode.UK_RID ? ', ' + data.state : ''} {data.zipCode != null ? data.zipCode : ''}
}\r\n {data.storeName === 'Your Store' ?\r\n {data.allPrice === null ? 'N/A' : data.allPrice + '%'} : {data.allPrice === null ? 'N/A' : data.allPrice + '%'}}\r\n {data.storeName === 'Your Store' ?\r\n {data.premium === null ? 'N/A' : data.premium + '%'} : {data.premium === null ? 'N/A' : data.premium + '%'}}\r\n {data.storeName === 'Your Store' ?\r\n {data.value === null ? 'N/A' : data.value + '%'} : {data.value === null ? 'N/A' : data.value + '%'}}\r\n {data.storeName === 'Your Store' ?\r\n \r\n {(data.storeId === isShowGraph.find((e) => e === data.storeId) && data.isMyStore != 1 && data.allPrice != null) ? this.showGraph(data.storeId, 1, data.storeName)} className=\"hides-graph\">\"ShowRemove from graph : ''}\r\n {(data.storeId === isRemoveGrapg.find((e) => e === data.storeId) && data.isMyStore != 1 && data.allPrice != null) ? this.showGraph(data.storeId, 0, data.storeName)} className=\"shows-graph\">\"RemoveShow on graph : ''}\r\n : \r\n {(data.storeId === isShowGraph.find((e) => e === data.storeId) && data.isMyStore != 1 && data.allPrice != null) ? this.showGraph(data.storeId, 1, data.storeName)} className=\"hides-graph\">\"ShowRemove from graph : ''}\r\n {(data.storeId === isRemoveGrapg.find((e) => e === data.storeId) && data.isMyStore != 1 && data.allPrice != null) ? this.showGraph(data.storeId, 0, data.storeName)} className=\"shows-graph\">\"RemoveShow on graph : ''}\r\n }\r\n
\r\n );\r\n })\r\n : ''}\r\n {marketStorePrice.length > 0 ? this.stableSort(rows, this.getSorting(order, orderBy)).map(data => {\r\n if (data.isMyStore !== true) {\r\n return (\r\n \r\n {/* {data.storeName}
{data.address}, {data.city}, {data.state}, {data.zipCode}
*/}\r\n {data.storeName === 'Your Store' ?\r\n {data.storeName === null ? 'N/A' : data.storeName}
{data.address != null ? data.address : ''} {data.city != null ? ', ' + data.city : ''} {CONFIG.RegionId === MatchingCountryCode.UK_RID ? '' : data.state != null ? ', ' + data.state : ''} {data.zipCode != null ? data.zipCode : ''}
: {data.storeName === null ? 'N/A' : data.storeName}
{data.address != null ? data.address : ''} {data.city != null ? ', ' + data.city : ''} {data.state != null && CONFIG.RegionId !== MatchingCountryCode.UK_RID ? ', ' + data.state : ''} {data.zipCode != null ? data.zipCode : ''}
}\r\n {data.storeName === 'Your Store' ?\r\n {data.allPrice === null ? 'N/A' : data.allPrice + '%'} : {data.allPrice === null ? 'N/A' : data.allPrice + '%'}}\r\n {data.storeName === 'Your Store' ?\r\n {data.premium === null ? 'N/A' : data.premium + '%'} : {data.premium === null ? 'N/A' : data.premium + '%'}}\r\n {data.storeName === 'Your Store' ?\r\n {data.value === null ? 'N/A' : data.value + '%'} : {data.value === null ? 'N/A' : data.value + '%'}}\r\n {data.storeName === 'Your Store' ?\r\n \r\n {(data.storeId === isShowGraph.find((e) => e === data.storeId) && data.isMyStore != 1 && data.allPrice != null) ? this.showGraph(data.storeId, 1, data.storeName)} className=\"hides-graph\">\"ShowRemove from graph : ''}\r\n {(data.storeId === isRemoveGrapg.find((e) => e === data.storeId) && data.isMyStore != 1 && data.allPrice != null) ? this.showGraph(data.storeId, 0, data.storeName)} className=\"shows-graph\">\"RemoveShow on graph : ''}\r\n : \r\n {(data.storeId === isShowGraph.find((e) => e === data.storeId) && data.isMyStore != 1 && data.allPrice != null) ? this.showGraph(data.storeId, 1, data.storeName)} className=\"hides-graph\">\"ShowRemove from graph : ''}\r\n {(data.storeId === isRemoveGrapg.find((e) => e === data.storeId) && data.isMyStore != 1 && data.allPrice != null) ? this.showGraph(data.storeId, 0, data.storeName)} className=\"shows-graph\">\"RemoveShow on graph : ''}\r\n }\r\n
\r\n );\r\n }\r\n })\r\n : marketStorePrice.length <= 0 && isYourStore.length <= 0 ?
\r\n : marketStorePrice.length <= 0 ? : ''}\r\n \r\n
{isLoading === false ? 'No Data Found' : ''}
{isLoading === false ? 'No Competitor Data Found' : ''}
\r\n\r\n
\r\n
\r\n ))\r\n : ''}\r\n
\r\n
\r\n \r\n
\r\n {this.state.snackMSg}}\r\n action={[\r\n \r\n \r\n \r\n ]}\r\n />\r\n\r\n\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\n\r\n//Listing and Sorting Table's Head\r\nfunction EnhancedTableHead(props) {\r\n const { order, orderBy, onRequestSort } = props;\r\n const createSortHandler = property => event => {\r\n onRequestSort(event, property);\r\n };\r\n const headRows = [\r\n { id: 'storeName', numeric: false, disablePadding: true, label: 'STORE NAME' },\r\n { id: 'allPrice', numeric: true, disablePadding: false, label: 'ALL PRICE VOLATILITY' },\r\n { id: 'premium', numeric: true, disablePadding: false, label: 'PREMIUM PRICE VOLATILITY' },\r\n { id: 'value', numeric: true, disablePadding: false, label: 'VALUE PRICE VOLATILITY' },\r\n { id: 'moreoptions', numeric: true, disablePadding: false, label: 'MORE OPTIONS' }\r\n ];\r\n\r\n return (\r\n \r\n \r\n {headRows.map(row => (\r\n \r\n \r\n {row.label}\r\n \r\n \r\n ))}\r\n \r\n \r\n );\r\n} ","import React, { Component } from \"react\";\r\nimport \"./CurrentPricingPdf.css\";\r\nimport { Row, Col, Button, Nav, NavItem, NavLink } from \"reactstrap\";\r\nimport { AvForm, AvField } from \"availity-reactstrap-validation\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport { Table as ReactTable } from \"reactstrap\";\r\nimport TableHead from \"@material-ui/core/TableHead\";\r\nimport TableCell from \"@material-ui/core/TableCell\";\r\nimport TableRow from \"@material-ui/core/TableRow\";\r\nimport TableSortLabel from \"@material-ui/core/TableSortLabel\";\r\nimport Snackbar from \"@material-ui/core/Snackbar\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\nimport { HelpTextPopup } from \"../../HelpTextPopup/index\";\r\nimport * as d3 from \"d3\";\r\nimport axios from \"axios\";\r\nimport { CONFIG } from \"../../../utils/config\";\r\nimport addtomap from \"../../../Assets/Images/plus.png\";\r\nimport removefrommap from \"../../../Assets/Images/trash.png\";\r\nimport tableplus from \"../../../Assets/Images/table-plus.png\";\r\nimport tableminus from \"../../../Assets/Images/table-minus.png\";\r\nimport downarrows from \"../../../Assets/Images/down-arrow.png\";\r\nimport Tooltip from \"@material-ui/core/Tooltip\";\r\nimport ShowMoreText from \"react-show-more-text\";\r\nimport moment from \"moment\";\r\nimport Logo from \"../../../Assets/Images/logo.jpg\";\r\nimport Table from \"@material-ui/core/Table\";\r\nimport { TableBody } from \"@material-ui/core\";\r\nimport Chart from \"react-apexcharts\";\r\nimport duplicate from '../../../Assets/Images/duplicate.png'\r\n\r\nexport default class CurrentPricingPdf extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n\r\n advertisedRatesHistoryOptions: {\r\n chart: {\r\n id: 'average-price-history-chart',\r\n type: \"area\",\r\n toolbar: {\r\n show: false,\r\n },\r\n animations: {\r\n enabled: false,\r\n },\r\n },\r\n xaxis: {\r\n\r\n tickPlacement: 'on',\r\n tickAmount: 8,\r\n labels: {\r\n show: false,\r\n datetimeUTC: false,\r\n\r\n style: {\r\n colors: '#8C9AA6',\r\n fontSize: '12px'\r\n },\r\n },\r\n axisBorder: {\r\n show: false\r\n },\r\n axisTicks: {\r\n show: false\r\n }\r\n },\r\n\r\n yaxis: {\r\n show: false,\r\n style: {\r\n colors: '#8C9AA6',\r\n fontSize: '12px'\r\n },\r\n },\r\n\r\n noData: {\r\n text: \"Please wait for the data to be loaded. The data volume is high and this might take a minute for loading the data.\",\r\n verticalAlign: 'top',\r\n style: {\r\n color: \"#5b95f6\",\r\n fontSize: '13px',\r\n fontFamily: \"Helvetica\"\r\n }\r\n },\r\n stroke: {\r\n curve: \"smooth\",\r\n width: 2,\r\n },\r\n legend: {\r\n position: 'bottom',\r\n horizontalAlign: 'center',\r\n fontSize: '11px',\r\n fontWeight: 500,\r\n showForSingleSeries: true,\r\n showForNullSeries: false,\r\n showForZeroSeries: false,\r\n itemMargin: {\r\n horizontal: 10,\r\n vertical: 20,\r\n }\r\n },\r\n dataLabels: {\r\n enabled: false\r\n },\r\n grid: {\r\n show: false\r\n },\r\n tooltip: {\r\n enabled: false\r\n },\r\n },\r\n\r\n advertisedRatesHistorySeries: [],\r\n\r\n options: {\r\n chart: {\r\n id: 'CurrentPricing_PDF',\r\n toolbar: {\r\n show: false,\r\n tools: {\r\n download: false,\r\n }\r\n },\r\n animations: {\r\n enabled: false,\r\n },\r\n },\r\n yaxis: {\r\n show: false\r\n },\r\n xaxis: {\r\n tooltip: { enabled: false },\r\n categories: [],\r\n labels: {\r\n show: false,\r\n style: {\r\n colors: '#8C9AA6',\r\n fontSize: '12px'\r\n },\r\n },\r\n axisBorder: {\r\n show: false\r\n },\r\n axisTicks: {\r\n show: false\r\n }\r\n \r\n },\r\n tooltip: {\r\n enabled: false,\r\n followCursor: false,\r\n onDatasetHover: {\r\n highlightDataSeries: false,\r\n },\r\n },\r\n noData: {\r\n text: \"Please wait for the data to be loaded. The data volume is high and this might take a minute for loading the data.\",\r\n verticalAlign: 'top',\r\n style: {\r\n color: \"#5b95f6\",\r\n fontSize: '13px',\r\n fontFamily: \"Helvetica\"\r\n }\r\n },\r\n },\r\n series: [],\r\n\r\n activeTab: props.isEffectiveRate !== undefined && props.isEffectiveRate === 1 ? 4 : 1,\r\n drpDownSelValue: props.durFilter !== undefined && props.durFilter ? props.durFilter : 12,\r\n isLoading1: false,\r\n order: this.props.order,\r\n orderBy: this.props.orderby,\r\n snackOpen: false,\r\n snackMSg: \"\",\r\n unitDurations: [],\r\n hisactivemenu: this.props.hisactivemenu.toString(),\r\n hisactivedur: this.props.hisactivedur.toString(),\r\n gridactivedur: this.props.gridactivedur.toString(),\r\n uniquestore: \"\",\r\n grapghCatcheck: this.props.grapghCatcheck,\r\n graphOpen: this.props.grapghCatcheck,\r\n // SinglelahMarkets: {},\r\n CoreMarketView: [],\r\n CoreMarketViewtab3: [],\r\n CoreMarketViewtab2: [],\r\n ChartTableData: [],\r\n ChartTableDatatab3: [],\r\n ChartTableDatatab2: [],\r\n GridTableValue: {},\r\n CurrentHistory: [],\r\n AllMarketdata: [],\r\n AllCurrentHistory: [],\r\n MarketViewpricingOptions: [],\r\n MarketViewpricingOptionstab3: [],\r\n MarketViewpricingOptionstab2: [],\r\n isLoading: false,\r\n AvailDataCheck: 0,\r\n AvailDataChecktab3: 0,\r\n AvailDataChecktab2: 0,\r\n stId: this.props.userstoreid,\r\n seId: this.props.searchId,\r\n defaultWidth: 0,\r\n priceLength: 0,\r\n pricecolLength: 0,\r\n priceLengthtab3: 0,\r\n pricecolLengthtab3: 0,\r\n priceLengthtab2: 0,\r\n pricecolLengthtab2: 0,\r\n Tabloading: false,\r\n promo_open: false,\r\n promo_open_id: 0,\r\n accessKey: \"\",\r\n locationInfoData: [],\r\n uniquestores: [],\r\n storeIdCount: [],\r\n countrycurrency: \"\",\r\n analysisSummary: [],\r\n uniCheck: \"\",\r\n promoCountReached: false,\r\n needComparePromos: [],\r\n annexureFilters: [],\r\n storeAdvertising: [],\r\n filterData : [],\r\n };\r\n this.handleRequestSort = this.handleRequestSort.bind(this);\r\n this.stableSort = this.stableSort.bind(this);\r\n this.getSorting = this.getSorting.bind(this);\r\n this.desc = this.desc.bind(this);\r\n this.onSelecCatGrapgh = this.onSelecCatGrapgh.bind(this);\r\n this.DurationsdropDown = this.DurationsdropDown.bind(this);\r\n this.AlignGraphTabData = this.AlignGraphTabData.bind(this);\r\n this.AlignGraphTabDatatab3 = this.AlignGraphTabDatatab3.bind(this);\r\n this.AlignGraphTabDatatab2 = this.AlignGraphTabDatatab2.bind(this);\r\n this.AlignHistoryGraphData = this.AlignHistoryGraphData.bind(this);\r\n //this.GetSummaryMarketData = this.GetSummaryMarketData.bind(this);\r\n this.GetGridtableData = this.GetGridtableData.bind(this);\r\n this.GetGraphTableData = this.GetGraphTableData.bind(this);\r\n this.GetGraphTableDatatab3 = this.GetGraphTableDatatab3.bind(this);\r\n this.GetGraphTableDatatab2 = this.GetGraphTableDatatab2.bind(this);\r\n this.tabtoggle = this.tabtoggle.bind(this);\r\n this.onDurAndPriChange = this.onDurAndPriChange.bind(this);\r\n localStorage.setItem(\"StId\", this.props.userstoreid);\r\n }\r\n\r\n //Duration and Price Type Change\r\n onDurAndPriChange(e) {\r\n const { name, value } = e.target;\r\n let fields = this.state;\r\n fields[name] = value;\r\n if (name === \"gridactivedur\") {\r\n this.setState({ fields, isLoading1: false }, () =>\r\n this.GetGridtableData()\r\n );\r\n } else if (name === \"hisactivedur\") {\r\n this.setState({ fields, isLoading: false });\r\n // this.setState({ fields, isLoading: false }, () =>\r\n // // this.GetcurrentpricinganalysisHistory()\r\n // );\r\n } else {\r\n this.setState({ fields, isLoading1: false }, () =>\r\n this.AlignHistoryGraphData()\r\n );\r\n }\r\n }\r\n\r\n //Tabs\r\n tabtoggle() {\r\n this.GetGraphTableDatatab3();\r\n this.GetGraphTableDatatab2();\r\n }\r\n\r\n //Table Sorting\r\n handleRequestSort(event, property) {\r\n const { order, orderBy } = this.state;\r\n const isDesc = orderBy === property && order === \"desc\";\r\n let sort = isDesc ? \"asc\" : \"desc\";\r\n this.setState({ order: sort, orderBy: property });\r\n }\r\n\r\n //Table Sorting order\r\n desc(a, b, orderBy) {\r\n if (b[orderBy] < a[orderBy]) {\r\n return -1;\r\n }\r\n if (b[orderBy] > a[orderBy]) {\r\n return 1;\r\n }\r\n return 0;\r\n }\r\n\r\n //Table Sorting the selected Column\r\n stableSort(array, cmp) {\r\n const stabilizedThis = array.map((el, index) => [el, index]);\r\n stabilizedThis.sort((a, b) => {\r\n const order = cmp(a[0], b[0]);\r\n if (order !== 0) return order;\r\n return a[1] - b[1];\r\n });\r\n return stabilizedThis.map((el) => el[0]);\r\n }\r\n\r\n //Table Sorting Order Request\r\n getSorting(order, orderBy) {\r\n return order === \"desc\"\r\n ? (a, b) => this.desc(a, b, orderBy)\r\n : (a, b) => -this.desc(a, b, orderBy);\r\n }\r\n\r\n //To open Particular Category's Graph\r\n onSelecCatGrapgh(openActGraph) {\r\n let activeRow =\r\n this.state.grapghCatcheck === openActGraph ? \"\" : openActGraph;\r\n activeRow === \"\"\r\n ? this.setState({ grapghCatcheck: activeRow, graphOpen: activeRow })\r\n : this.setState(\r\n { grapghCatcheck: activeRow, graphOpen: activeRow },\r\n () => {\r\n this.TableViewGraphs();\r\n }\r\n );\r\n }\r\n\r\n //Grid Actions\r\n barhandleChange() {\r\n //loader\r\n this.setState({ isLoading: false });\r\n if (this.state.GridTableValue.dynamdata) {\r\n for (var i = 0; i < this.state.GridTableValue.dynamdata.length; i++) {\r\n if (\r\n this.state.storeIdCount.includes(\r\n this.state.GridTableValue.dynamdata[i].storeID\r\n )\r\n ) {\r\n this.state.GridTableValue.dynamdata[i].isSelected = true; //this.state.MarkScoring[i].isSelected === true ? false : true;\r\n } else if (this.state.storeIdCount.length > 0) {\r\n this.state.GridTableValue.dynamdata[i].isSelected = false;\r\n }\r\n }\r\n\r\n let GridTableValue = this.state.GridTableValue;\r\n this.setState({ GridTableValue });\r\n // this.setState({ GridTableValue }, () => {\r\n // this.GetGraphTableData();\r\n // // this.GetcurrentpricinganalysisHistory();\r\n // });\r\n }\r\n }\r\n\r\n //SnackBar Close\r\n snackHandleclose = (event, reason) => {\r\n if (reason === \"clickaway\") {\r\n return;\r\n }\r\n this.setState({ snackOpen: false });\r\n };\r\n\r\n //Formatted in as per competitor\r\n formData(data) {\r\n let uniquestore = [...new Set(data.map((item) => item.storeID))];\r\n let CurrentActivity = this.state.grapghCatcheck;\r\n let Colorbarcode = [\r\n \"#f69e4f\",\r\n \"#85411b\",\r\n \"#5b95f6\",\r\n \"#f96a5d\",\r\n \"#3ea7a1\",\r\n \"#83ce83\",\r\n \"#fac05f\",\r\n \"#959595\",\r\n ];\r\n var FData = [];\r\n\r\n for (var t = 0; t < uniquestore.length; t++) {\r\n var tFData = data.filter(\r\n (a) =>\r\n a.storeID == uniquestore[t] && a.priceOptionName === CurrentActivity\r\n );\r\n var mData = {};\r\n if (tFData.length > 0) {\r\n let splitpriceVal = tFData[0].price.split(\"-\");\r\n let priceVal = splitpriceVal[1]\r\n ? parseInt(splitpriceVal[0])\r\n : splitpriceVal[0] !== \"0\"\r\n ? parseInt(splitpriceVal[0])\r\n : 0;\r\n let p1 =\r\n CurrentActivity === \"Price Range\"\r\n ? splitpriceVal[1]\r\n ? parseInt(splitpriceVal[1])\r\n : parseInt(splitpriceVal[0])\r\n : 0;\r\n\r\n mData = {\r\n StoreID: uniquestore[t], //this.state.storeIdCount[t],\r\n StoreName: tFData[0].storeName,\r\n price: parseInt(priceVal),\r\n priceOptionName: tFData[0].priceOptionName,\r\n price1: p1,\r\n labelPrice: splitpriceVal[0] === \"0\" ? \"N/A\" : splitpriceVal[0],\r\n labelPrice2:\r\n splitpriceVal[1] !== \"0\" && splitpriceVal[1]\r\n ? splitpriceVal[1]\r\n : splitpriceVal[0] === \"0\"\r\n ? \"N/A\"\r\n : splitpriceVal[0],\r\n Gcolor: Colorbarcode[t],\r\n IsSelected: tFData[0].isSelected,\r\n };\r\n }\r\n\r\n FData.push(mData);\r\n }\r\n return FData;\r\n }\r\n //Graph for Table\r\n TableViewGraphs() {\r\n let { CoreMarketView, grapghCatcheck,ChartTableData } = this.state;\r\n let dataPremium = [];\r\n let dataPremium_labelPrice2 = [];\r\n let dataPremiumName = [];\r\n let colorsCode = ['rgba(0, 0, 0, 0.25)'];\r\n let currency = this.state.countrycurrency\r\n ? this.state.countrycurrency\r\n : \"\";\r\n let filterMarkets = CoreMarketView.filter(fl => fl.storeID > 0);\r\n let uniquestore = [...new Set(filterMarkets.map((item) => item.storeID))];\r\n for (var t = 0; t < uniquestore.length; t++) {\r\n let tFData = filterMarkets.filter((a) => a.storeID == uniquestore[t] && a.priceOptionName === grapghCatcheck);\r\n let noValues = tFData.every(item => item.price === null || item.price === '' || item.price === undefined);\r\n if (!noValues) {\r\n let splitpriceVal = tFData[0].price.split(\"-\");\r\n let labelPrice = splitpriceVal[0] === \"0\" ? \"N/A\" : splitpriceVal[0];\r\n let labelPrice2 = splitpriceVal[1] !== \"0\" && splitpriceVal[1] ? splitpriceVal[1] : splitpriceVal[0] === \"0\" ? \"N/A\" : splitpriceVal[0];\r\n let storeName = tFData[0].storeName ? tFData[0].storeName : null;\r\n dataPremium.push(isNaN(labelPrice) ? null : labelPrice);\r\n dataPremium_labelPrice2.push(isNaN(labelPrice2) ? null : labelPrice2);\r\n dataPremiumName.push(storeName);\r\n }\r\n }\r\n let allViewGrid = [{ name: \"\", data: dataPremium }, { name: \"\", data: dataPremium_labelPrice2 }];\r\n\r\n if (dataPremium.length > 0) {\r\n this.setState({\r\n options: {\r\n chart: {\r\n id: `CurrentPricing_PDF${Math.random()}`,\r\n toolbar: {\r\n show: false\r\n },\r\n animations: {\r\n enabled: false,\r\n },\r\n },\r\n tooltip:{enabled : false},\r\n stroke: {\r\n width: 2,\r\n curve: 'straight'\r\n },\r\n colors: colorsCode,\r\n legend: { show: false },\r\n grid : {\r\n show : false,\r\n padding: {\r\n right: 50,\r\n left: 50\r\n }, \r\n },\r\n yaxis: {\r\n labels: {\r\n formatter: function (value) {\r\n return value === null ? \"N/A\" : currency + value.toFixed(2);\r\n },\r\n style: {\r\n colors: '#8C9AA6',\r\n fontSize: '10px'\r\n },\r\n },\r\n axisBorder:{\r\n show: false,\r\n },\r\n axisTicks: {\r\n show: false,\r\n }\r\n },\r\n xaxis: {\r\n categories: dataPremiumName,\r\n labels: {\r\n formatter: function (value) {\r\n let val = value === undefined || typeof (value) !== \"string\" ? '' : value.toUpperCase();\r\n return (ChartTableData.TableHead.length === 2 || ChartTableData.TableHead.length === 3 ) && val.length > 15 ? val.substring(0, 15) + \"...\" : val ;\r\n },\r\n style: {\r\n fontSize: '10px',\r\n },\r\n hideOverlappingLabels: false,\r\n trim: ChartTableData.TableHead.length === 2 || ChartTableData.TableHead.length === 3 ? false : true,\r\n show: true,\r\n rotate: 0,\r\n },\r\n axisBorder: {\r\n show: true\r\n },\r\n axisTicks: {\r\n show: true\r\n }\r\n },\r\n markers: {\r\n\r\n discrete: [{\r\n seriesIndex: 1,\r\n dataPointIndex: 0,\r\n fillColor: \"#F69E4F\",\r\n strokeColor: \"#FFF\",\r\n size: 6\r\n }, {\r\n seriesIndex: 1,\r\n dataPointIndex: 1,\r\n fillColor: \"#1B2C42\",\r\n strokeColor: \"#FFF\",\r\n size: 6\r\n }, {\r\n seriesIndex: 1,\r\n dataPointIndex: 2,\r\n fillColor: \"#5C95F6\",\r\n strokeColor: \"#FFF\",\r\n size: 6\r\n }, {\r\n seriesIndex: 1,\r\n dataPointIndex: 3,\r\n fillColor: \"#F3695D\",\r\n strokeColor: \"#FFF\",\r\n size: 6\r\n }, {\r\n seriesIndex: 1,\r\n dataPointIndex: 4,\r\n fillColor: \"#3FA7A1\",\r\n strokeColor: \"#FFF\",\r\n size: 6\r\n }, {\r\n seriesIndex: 1,\r\n dataPointIndex: 5,\r\n fillColor: \"#83CE83\",\r\n strokeColor: \"#FFF\",\r\n size: 6\r\n },\r\n {\r\n seriesIndex: 1,\r\n dataPointIndex: 6,\r\n fillColor: \"#FAC05F\",\r\n strokeColor: \"#FFF\",\r\n size: 6\r\n },\r\n {\r\n seriesIndex: 1,\r\n dataPointIndex: 7,\r\n fillColor: \"#959595\",\r\n strokeColor: \"#FFF\",\r\n size: 6\r\n }, {\r\n seriesIndex: 0,\r\n dataPointIndex: 0,\r\n fillColor: \"#F69E4F\",\r\n strokeColor: \"#FFF\",\r\n size: 6\r\n }, {\r\n seriesIndex: 0,\r\n dataPointIndex: 1,\r\n fillColor: \"#1B2C42\",\r\n strokeColor: \"#FFF\",\r\n size: 6\r\n }, {\r\n seriesIndex: 0,\r\n dataPointIndex: 2,\r\n fillColor: \"#5C95F6\",\r\n strokeColor: \"#FFF\",\r\n size: 6\r\n }, {\r\n seriesIndex: 0,\r\n dataPointIndex: 3,\r\n fillColor: \"#F3695D\",\r\n strokeColor: \"#FFF\",\r\n size: 6\r\n }, {\r\n seriesIndex: 0,\r\n dataPointIndex: 4,\r\n fillColor: \"#3FA7A1\",\r\n strokeColor: \"#FFF\",\r\n size: 6\r\n }, {\r\n seriesIndex: 0,\r\n dataPointIndex: 5,\r\n fillColor: \"#83CE83\",\r\n strokeColor: \"#FFF\",\r\n size: 6\r\n },\r\n {\r\n seriesIndex: 0,\r\n dataPointIndex: 6,\r\n fillColor: \"#FAC05F\",\r\n strokeColor: \"#FFF\",\r\n size: 6\r\n },\r\n {\r\n seriesIndex: 0,\r\n dataPointIndex: 7,\r\n fillColor: \"#959595\",\r\n strokeColor: \"#FFF\",\r\n size: 6\r\n },\r\n ]\r\n },\r\n noData: {\r\n text: 'Please enable any one of the below legend to view the graph.',\r\n style: {\r\n color: \"#5b95f6\",\r\n }\r\n },\r\n },\r\n series: allViewGrid\r\n });\r\n } else {\r\n this.setState({\r\n options: {\r\n noData: {\r\n text: \"No Records Found.\",\r\n align: 'center',\r\n verticalAlign: 'top',\r\n offsetX: 0,\r\n offsetY: 0,\r\n style: {\r\n color: \"#F60000\",\r\n fontSize: '13px',\r\n fontFamily: \"Helvetica\"\r\n }\r\n },\r\n yaxis: { show: false },\r\n xaxis: {\r\n labels: {\r\n show: false\r\n },\r\n categories: [],\r\n axisBorder: {\r\n show: false\r\n },\r\n axisTicks: {\r\n show: false\r\n }\r\n },\r\n },\r\n series: []\r\n })\r\n }\r\n }\r\n \r\n //Formatted in as per competitor\r\n HisformData(data, uid) {\r\n var tFData = data.filter((a) => a.storeID === uid);\r\n var tData = [];\r\n\r\n let CurrentActivity = this.state.hisactivemenu === \"2\" ? \"Price Range\" : \"\";\r\n for (var i = 0; i < tFData.length; i++) {\r\n // for price range calculation\r\n let calPrice, price2;\r\n if (CurrentActivity === \"Price Range\") {\r\n let splitpriceVal = tFData[i].price.split(\"-\");\r\n calPrice = parseInt(splitpriceVal[0]);\r\n price2 = splitpriceVal[1]\r\n ? parseInt(splitpriceVal[1])\r\n : parseInt(splitpriceVal[0]);\r\n } else {\r\n calPrice = tFData[i].price;\r\n price2 = 0;\r\n }\r\n // for display label date\r\n let caldate;\r\n caldate = moment(tFData[i].datePrice).toDate();\r\n var CData = {\r\n date: moment(tFData[i].datePrice).toDate(),\r\n StoreName: tFData[i].storeName,\r\n price: parseInt(calPrice),\r\n price2: parseInt(price2),\r\n storeID: tFData[i].storeID,\r\n labeldate: caldate,\r\n labelPrice: tFData[i].price === \"0\" ? \"N/A\" : tFData[i].price,\r\n orderNo: tFData[i].orderNo,\r\n priceOptionName: tFData[i].priceOptionName,\r\n };\r\n tData.push(CData);\r\n }\r\n return tData;\r\n }\r\n\r\n apexChartNoData = ({ textMessage, colorCode }) => {\r\n this.setState({\r\n advertisedRatesHistorySeries: [],\r\n filterData:[],\r\n advertisedRatesHistoryOptions: {\r\n xaxis: {\r\n labels: {\r\n show: false\r\n },\r\n axisBorder: {\r\n show: false\r\n },\r\n axisTicks: {\r\n show: false\r\n }\r\n },\r\n yaxis: {\r\n show: false\r\n },\r\n noData: {\r\n text: textMessage,\r\n style: { color: colorCode }\r\n }\r\n }\r\n });\r\n }\r\n\r\n dropDownData(tFData) {\r\n var { hisactivemenu } = this.state;\r\n let dataSeries1 = [];\r\n let dataSeries2 = [];\r\n let CurrentActivity = hisactivemenu === \"2\" ? \"Price Range\" : \"\";\r\n let priceRange1, priceRange2, datePrice;\r\n let noValues = tFData.every(item => item.price === null || item.price === '' || item.price === undefined);\r\n if (!noValues) {\r\n if (CurrentActivity === \"Price Range\") {\r\n dataSeries1 = tFData.map(val => {\r\n let splitpriceVal = val.price.split(\"-\");\r\n priceRange1 = parseInt(splitpriceVal[0]);\r\n priceRange2 = splitpriceVal[1] ? parseInt(splitpriceVal[1]) : parseInt(splitpriceVal[0]);\r\n datePrice = moment(val.datePrice, 'YYYY-MM-DD').format('DD-MMM-YYYY');\r\n return { '0': { x: datePrice, y: priceRange1 === 0 ? null : priceRange1, fullName: val.price }, '1': { x: datePrice, y: priceRange2 === 0 ? null : priceRange2, fullName: val.price } };\r\n });\r\n } else {\r\n dataSeries2 = tFData.map(val => {\r\n priceRange1 = val.price;\r\n priceRange2 = 0;\r\n datePrice = moment(val.datePrice, 'YYYY-MM-DD').format('DD-MMM-YYYY');\r\n return { x: datePrice, y: priceRange1 === '0' ? null : priceRange1, fullName: val.price };\r\n // return { '0' : { x: datePrice, y: priceRange1 == 0 ? null : priceRange1, fullName : val.price }, '1' : { x: datePrice, y: priceRange2 == 0 ? null : priceRange2, fullName : val.price }};\r\n })\r\n }\r\n return [dataSeries1, dataSeries2];\r\n }\r\n }\r\n\r\n //Graph for History\r\n HistoryGraphView() {\r\n var { CurrentHistory, hisactivemenu, hisactivedur , filterData} = this.state;\r\n let actualData = [];\r\n let markerSize = [];\r\n let filter_actualData = [];\r\n let currency = this.state.countrycurrency\r\n ? this.state.countrycurrency\r\n : \"\";\r\n this.setState({filterData:[]});\r\n let colors = ['#f69e4f', '#1b2c42', '#85411b', '#5b95f6', '#f96a5d', '#3ea7a1', '#83ce83', '#fac05f', '#959595'];\r\n if (CurrentHistory.length > 0) {\r\n let unique = [...new Set(CurrentHistory.map((item) => item.storeID))];\r\n let CurrentActivity = hisactivemenu === \"2\" ? \"Price Range\" : \"\";\r\n for (var i = 0; i < unique.length; i++) {\r\n var tFData = CurrentHistory.filter((a) => a.storeID === unique[i]);\r\n var tFMarketName = CurrentHistory.find((a) => a.storeID === unique[i]);\r\n let dataSeries = this.dropDownData(tFData);\r\n \r\n if (dataSeries[0].length > 0) {\r\n actualData.push({ name: tFMarketName[\"storeName\"], data: dataSeries[0].map(val => { return val[0] }), color: colors[i] }, { name: tFMarketName[\"storeName\"] + \" data\", data: dataSeries[0].map(val => { return val[1] }), color: colors[i] });\r\n filter_actualData.push({name: tFMarketName[\"storeName\"], data: dataSeries[0].map(val => { return val[0] }), color: colors[i]} , { name: tFMarketName[\"storeName\"] , data: dataSeries[0].map(val => { return val[1] }), color: colors[i]});\r\n markerSize.push(10, 0);\r\n } else {\r\n actualData.push({ name: tFMarketName[\"storeName\"], data: dataSeries[1], color: colors[i] });\r\n filter_actualData.push({name: tFMarketName[\"storeName\"], data: dataSeries[1], color: colors[i]});\r\n markerSize.push(10);\r\n }\r\n }\r\n\r\n //Duplicate Data\r\n let newData = [];\r\n filter_actualData.map(dataItem => dataItem.data.forEach(i => {\r\n if(i.y !== null ){\r\n filter_actualData.map(userItem => userItem.data.forEach(j => {\r\n if(j.y !== null){\r\n if((dataItem.name !== userItem.name) && (dataItem.color !== userItem.color)){\r\n if( ( (i.y === j.y) && (i.x === j.x) ) || ( (i.x === j.x) && (i.fullName === j.fullName))){\r\n newData.push({name:dataItem.name ,color:dataItem.color});\r\n let filterData = newData.reduce((elements, obj, index) => {\r\n let existingData = elements.find(element =>\r\n element.name === obj.name && element.color === obj.color\r\n );\r\n if (!existingData) {\r\n elements.push(obj);\r\n }\r\n \r\n return elements;\r\n }, []);\r\n this.setState({filterData:filterData});\r\n }\r\n }\r\n }\r\n }))\r\n }\r\n }));\r\n\r\n this.setState({\r\n advertisedRatesHistorySeries: actualData,\r\n advertisedRatesHistoryOptions: {\r\n chart: {\r\n \r\n toolbar: {\r\n show: false\r\n }\r\n },\r\n yaxis: {\r\n labels: {\r\n formatter: function (value) {\r\n return value === null ? \"N/A\" : currency + value.toFixed(2);\r\n },\r\n style: {\r\n colors: '#8C9AA6',\r\n fontSize: '10px'\r\n },\r\n },\r\n axisBorder:{\r\n show: false,\r\n },\r\n axisTicks: {\r\n show: false,\r\n }\r\n },\r\n xaxis: {\r\n tooltip: {\r\n enabled: false\r\n },\r\n labels: {\r\n show: true,\r\n rotate: 0,\r\n formatter: function(value, timestamp, opts) {\r\n let val = value === undefined || typeof (value) !== \"string\" ? '' : hisactivedur < 4 ? moment(new Date(value)).format('DD-MMM-YYYY'):moment(new Date(value)).format('MMM-YYYY'); \r\n return val;\r\n },\r\n\r\n style: {\r\n fontSize: '10px',\r\n },\r\n },\r\n tickPlacement: 'on',\r\n tickAmount: hisactivedur == 1 ? 4 : hisactivedur == 2 ? 4 : hisactivedur == 3 ? 12 : hisactivedur == 4 ? 5 : 9,\r\n\r\n axisBorder: {\r\n show: true\r\n },\r\n axisTicks: {\r\n show: true\r\n }\r\n },\r\n legend: {\r\n position: 'bottom',\r\n horizontalAlign: 'center',\r\n fontSize: '11px',\r\n fontWeight: 500,\r\n showForNullSeries: false,\r\n showForZeroSeries: true,\r\n showForSingleSeries: true,\r\n formatter: (seriesName, opts) => {\r\n if (seriesName.endsWith('data')) return '';\r\n else return seriesName;\r\n },\r\n markers: {\r\n width: markerSize,\r\n height: markerSize,\r\n },\r\n itemMargin: {\r\n horizontal: 10,\r\n vertical: 20,\r\n },\r\n onItemClick: {\r\n toggleDataSeries: true\r\n },\r\n onItemHover: {\r\n highlightDataSeries: true\r\n },\r\n },\r\n noData: {\r\n align: 'top',\r\n text: 'Please enable any one of the below legend to view the graph.',\r\n verticalAlign: 'top',\r\n style: {\r\n color: \"#5b95f6\",\r\n }\r\n },\r\n },\r\n })\r\n\r\n }\r\n else {\r\n this.apexChartNoData({\r\n textMessage: \"No Data Found\",\r\n colorCode: \"#F60000\"\r\n });\r\n this.setState({ isLoading1: false });\r\n }\r\n }\r\n\r\n\r\n async UNSAFE_componentWillMount() {\r\n const data = {\r\n SecretKey: this.props.accessKey,\r\n RegionId: CONFIG.RegionId,\r\n };\r\n\r\n const response = await axios.post(\r\n CONFIG.API_URL + \"account/secretlogin\",\r\n data\r\n );\r\n if (response.status === 200) {\r\n this.state.accessKey = response.data.token;\r\n this.initialLoad();\r\n this.currentPricingAnalysis();\r\n } else {\r\n alert(response.status.Message);\r\n }\r\n }\r\n currentPricingAnalysis() {\r\n this.setState(\r\n {\r\n isLoading: false,\r\n hisactivedur: this.state.hisactivedur,\r\n hisactivemenu: this.state.hisactivemenu,\r\n },\r\n () => {\r\n this.commonapiCall();\r\n }\r\n );\r\n }\r\n\r\n commonapiCall() {\r\n this.loadDashBoard();\r\n this.DurationsdropDown();\r\n this.GetGraphTableData();\r\n this.GetcurrentpricinganalysisHistory();\r\n this.tabtoggle();\r\n this.GetGridtableData();\r\n this.loadSummary();\r\n }\r\n\r\n\r\n loadSummary() {\r\n let token = this.state.accessKey;\r\n const data = {\r\n UserStoreID: this.state.stId,\r\n SearchID: this.state.seId,\r\n RegionID: CONFIG.RegionId,\r\n };\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = \"Bearer \" + token;\r\n }\r\n axios\r\n .post(CONFIG.API_URL + \"dashboard/currentpricinganalysissummary\", data)\r\n .then((response) => {\r\n // this.state.isLoading=true;\r\n const analysisSummary = response.data.current;\r\n this.setState({\r\n analysisSummary: analysisSummary,\r\n isLoading: false,\r\n });\r\n })\r\n .catch((err) => {\r\n if (err.response.status === 401) {\r\n localStorage.removeItem(\"accessKey\");\r\n const { from } = this.props.location.state || {\r\n from: { pathname: \"/\" },\r\n };\r\n this.props.history.push(from);\r\n } else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }\r\n\r\n loadDashBoard() {\r\n let token = this.state.accessKey;\r\n const data = {\r\n UserStoreID: this.state.stId,\r\n SearchID: this.state.seId,\r\n RegionID: CONFIG.RegionId,\r\n };\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = \"Bearer \" + token;\r\n }\r\n axios\r\n .post(CONFIG.API_URL + \"unit/dashboardSearchlocation\", data)\r\n .then((response) => {\r\n // this.state.isLoading=true;\r\n const locationInfoData = response.data.data.unitDashboard;\r\n let countrycurrency = response.data.data.unitDashboard.countryCurrency;\r\n this.setState({\r\n locationInfoData: locationInfoData,\r\n countrycurrency,\r\n });\r\n })\r\n .catch((err) => {\r\n if (err.response.status === 401) {\r\n localStorage.removeItem(\"accessKey\");\r\n const { from } = this.props.location.state || {\r\n from: { pathname: \"/\" },\r\n };\r\n this.props.history.push(from);\r\n } else if (err.response.status === 403) {\r\n const { from } = this.props.location.state || {\r\n from: { pathname: \"/UnauthorizedAccess\" },\r\n };\r\n this.props.history.push(from);\r\n } else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }\r\n componentWillReceiveProps(nextProps) {\r\n if (nextProps.searchId !== this.state.seId) {\r\n this.setState(\r\n {\r\n hisactivedur: \"2\",\r\n seId: nextProps.searchId,\r\n stId: nextProps.storeId,\r\n },\r\n () => {\r\n this.currentPricingAnalysis();\r\n }\r\n );\r\n }\r\n }\r\n\r\n //Duration For DropDown\r\n DurationsdropDown() {\r\n let token = this.state.accessKey;\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = \"Bearer \" + token;\r\n }\r\n axios\r\n .get(CONFIG.API_URL + \"unit/unitdurations\")\r\n .then((response) => {\r\n let unitDurations = response.data.data.lookupData;\r\n this.setState({\r\n unitDurations,\r\n });\r\n })\r\n .catch((err) => {\r\n if (err.response.status === 401) {\r\n localStorage.removeItem(\"accessKey\");\r\n const { from } = this.props.location.state || {\r\n from: { pathname: \"/\" },\r\n };\r\n this.props.history.push(from);\r\n } else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }\r\n\r\n // Grid Table data\r\n GetGridtableData() {\r\n let token = this.state.accessKey;\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = \"Bearer \" + token;\r\n }\r\n let data = {\r\n UserStoreID: this.state.stId,\r\n SearchId: this.state.seId,\r\n PriceType: 1,//this.state.activeTab,\r\n Competitors:\r\n this.state.uniCheck == \"no\"\r\n ? this.state.uniquestore\r\n : this.state.uniquestores\r\n ? this.state.uniquestores\r\n : 0,\r\n Duration: parseInt(this.state.gridactivedur),\r\n RegionId: CONFIG.RegionId,\r\n };\r\n let effectiveRateIp = {\r\n UserStoreID: this.state.stId,\r\n SearchId: this.state.seId,\r\n EffectiveTimePeriod: this.state.drpDownSelValue,\r\n Competitors: this.state.uniquestore,\r\n Duration: parseInt(this.state.gridactivedur),\r\n RegionId: CONFIG.RegionId,\r\n };\r\n let inputData = this.state.activeTab === 4 ? effectiveRateIp : data;\r\n let hostName = this.state.activeTab === 4 ? \"effectiverateallmarketview\" : \"currentpricinganalysisallmarketviews\";\r\n axios\r\n .post(\r\n CONFIG.API_URL + \"dashboard/\" + hostName,\r\n inputData\r\n )\r\n .then((res) => {\r\n let GridTableValue = this.state.GridTableValue;\r\n let AllMarketdata = res.data.current.currentPricingAnalysisAllMarket;\r\n let storeAdvertising = AllMarketdata.filter(x => x.isNotCurrentlyAdvertised === true)[0];\r\n //To get Only Your Store on All Market View\r\n GridTableValue[\"statdata\"] = AllMarketdata.filter(function (data) {\r\n return data.isMyStore === 1;\r\n });\r\n let amidx = 1;\r\n var sortByMyStoreData = GridTableValue[\"statdata\"];\r\n for (var i in sortByMyStoreData) {\r\n if (sortByMyStoreData[i].promoCount > 60) {\r\n sortByMyStoreData[i].annexure = amidx;\r\n amidx = amidx + 1;\r\n }\r\n }\r\n GridTableValue[\"statdata\"] = sortByMyStoreData;\r\n //To get Stores Expect Your Store on All Market View\r\n GridTableValue[\"dynamdata\"] = AllMarketdata.filter(function (data) {\r\n return data.isMyStore !== 1;\r\n });\r\n\r\n var sortByStoreData = \"\";\r\n\r\n if (this.props.orderby == \"storeName\") {\r\n if (this.props.order === \"asc\") {\r\n var sortByStoreData = GridTableValue[\"dynamdata\"].sort((a, b) =>\r\n a.storeName.localeCompare(b.storeName)\r\n );\r\n } else {\r\n var sortByStoreData = GridTableValue[\"dynamdata\"].sort((a, b) =>\r\n b.storeName.localeCompare(a.storeName)\r\n );\r\n }\r\n } else if (this.props.orderby == \"currentPremium\") {\r\n if (this.props.order === \"asc\") {\r\n var sortByStoreData = GridTableValue[\"dynamdata\"].sort(\r\n (a, b) => a.currentPremium - b.currentPremium\r\n );\r\n } else {\r\n var sortByStoreData = GridTableValue[\"dynamdata\"].sort(\r\n (a, b) => b.currentPremium - a.currentPremium\r\n );\r\n }\r\n } else if (this.props.orderby == \"currentValue\") {\r\n if (this.props.order === \"asc\") {\r\n var sortByStoreData = GridTableValue[\"dynamdata\"].sort(\r\n (a, b) => a.currentValue - b.currentValue\r\n );\r\n } else {\r\n var sortByStoreData = GridTableValue[\"dynamdata\"].sort(\r\n (a, b) => b.currentValue - a.currentValue\r\n );\r\n }\r\n } else if (this.props.orderby == \"premium\") {\r\n if (this.props.order === \"asc\") {\r\n var sortByStoreData = GridTableValue[\"dynamdata\"].sort(\r\n (a, b) => a.premium - b.premium\r\n );\r\n } else {\r\n var sortByStoreData = GridTableValue[\"dynamdata\"].sort(\r\n (a, b) => b.premium - a.premium\r\n );\r\n }\r\n } else if (this.props.orderby == \"value\") {\r\n if (this.props.order === \"asc\") {\r\n var sortByStoreData = GridTableValue[\"dynamdata\"].sort(\r\n (a, b) => a.value - b.value\r\n );\r\n } else {\r\n var sortByStoreData = GridTableValue[\"dynamdata\"].sort(\r\n (a, b) => b.value - a.value\r\n );\r\n }\r\n } else if (this.props.orderby == \"value\") {\r\n if (this.props.order === \"asc\") {\r\n var sortByStoreData = GridTableValue[\"dynamdata\"].sort(\r\n (a, b) => a.value - b.value\r\n );\r\n } else {\r\n var sortByStoreData = GridTableValue[\"dynamdata\"].sort(\r\n (a, b) => b.value - a.value\r\n );\r\n }\r\n } else if (this.props.orderby == \"currentWalkInPremium\") {\r\n if (this.props.order === \"asc\") {\r\n var sortByStoreData = GridTableValue[\"dynamdata\"].sort(\r\n (a, b) => a.currentWalkInPremium - b.currentWalkInPremium\r\n );\r\n } else {\r\n var sortByStoreData = GridTableValue[\"dynamdata\"].sort(\r\n (a, b) => b.currentWalkInPremium - a.currentWalkInPremium\r\n );\r\n }\r\n } else if (this.props.orderby == \"currentWalkInValue\") {\r\n if (this.props.order === \"asc\") {\r\n var sortByStoreData = GridTableValue[\"dynamdata\"].sort(\r\n (a, b) => a.currentWalkInValue - b.currentWalkInValue\r\n );\r\n } else {\r\n var sortByStoreData = GridTableValue[\"dynamdata\"].sort(\r\n (a, b) => b.currentWalkInValue - a.currentWalkInValue\r\n );\r\n }\r\n } else if (this.props.orderby == \"promos\") {\r\n if (this.props.order === \"asc\") {\r\n var sortByStoreData = GridTableValue[\"dynamdata\"].sort((a, b) =>\r\n a.promos.localeCompare(b.promos)\r\n );\r\n } else {\r\n var sortByStoreData = GridTableValue[\"dynamdata\"].sort((a, b) =>\r\n b.promos.localeCompare(a.promos)\r\n );\r\n }\r\n }\r\n\r\n for (var i in sortByStoreData) {\r\n if (sortByStoreData[i].promoCount > 60) {\r\n sortByStoreData[i].annexure = amidx;\r\n amidx = amidx + 1;\r\n }\r\n }\r\n\r\n GridTableValue[\"dynamdata\"] = sortByStoreData;\r\n this.setState(\r\n {\r\n GridTableValue,\r\n AllMarketdata,\r\n needComparePromos: AllMarketdata,\r\n isLoading1: false,\r\n storeAdvertising,\r\n },\r\n () => {\r\n this.barhandleChange();\r\n this.annexureSplit();\r\n }\r\n );\r\n })\r\n .catch((err) => {\r\n if (err.response.status === 401) {\r\n localStorage.removeItem(\"accessKey\");\r\n const { from } = this.props.location.state || {\r\n from: { pathname: \"/\" },\r\n };\r\n this.props.history.push(from);\r\n } else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }\r\n\r\n annexureSplit() {\r\n // for annexure split\r\n let fixedSize = 1200;\r\n let finalResultSet = [];\r\n let tempresult = [];\r\n let annexSum = 0;\r\n let sliceCount = 0;\r\n let fullData = this.state.needComparePromos;\r\n let annexureArrObj = fullData.filter((annex) => annex.annexure !== 0);\r\n annexureArrObj.sort(function (a, b) {\r\n var textA = a.annexure;\r\n var textB = b.annexure;\r\n return textA < textB ? -1 : textA > textB ? 1 : 0;\r\n });\r\n // let annexureArrObj = this.state.needComparePromos.filter((annex) => annex.annexure !== 0);\r\n for (let annex = 0; annex < annexureArrObj.length; annex++) {\r\n let annexure = annexureArrObj[annex];\r\n annexSum += annexure.promoCount;\r\n if (annexSum >= 7000) {\r\n annex = annex - 1;\r\n annexSum = 0;\r\n finalResultSet.push(tempresult);\r\n tempresult = [];\r\n } else {\r\n tempresult.push(annexure);\r\n }\r\n }\r\n if (tempresult.length > 0) finalResultSet.push(tempresult);\r\n this.setState({ annexureFilters: finalResultSet });\r\n }\r\n\r\n //History Graph\r\n GetcurrentpricinganalysisHistory() {\r\n let token = this.state.accessKey;\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = \"Bearer \" + token;\r\n }\r\n\r\n this.setState({\r\n AllCurrentHistory: [],\r\n isLoading: false,\r\n });\r\n\r\n let data = {\r\n UserStoreID: this.state.stId,\r\n SearchId: this.state.seId,\r\n PriceType: this.state.activeTab,\r\n Competitors:\r\n this.state.uniCheck == \"no\"\r\n ? this.state.uniquestore\r\n : this.state.uniquestores\r\n ? this.state.uniquestores\r\n : 0,\r\n Duration: parseInt(this.state.hisactivedur),\r\n RegionId: CONFIG.RegionId,\r\n };\r\n let effectiveRateIp = {\r\n UserStoreID: this.state.stId,\r\n SearchId: this.state.seId,\r\n EffectiveTimePeriod: this.state.drpDownSelValue,\r\n Competitors: this.state.uniquestore,\r\n Duration: parseInt(this.state.hisactivedur),\r\n RegionId: CONFIG.RegionId,\r\n };\r\n let inputData = this.state.activeTab === 4 ? effectiveRateIp : data;\r\n let hostName = this.state.activeTab === 4 ? \"effectiveratehistories\" : \"currentpricinganalysisHistories\";\r\n\r\n axios\r\n .post(CONFIG.API_URL + \"dashboard/\" + hostName, inputData)\r\n .then((response) => {\r\n let AllCurrentHistory = response.data.current;\r\n this.setState({ AllCurrentHistory }, () => {\r\n this.AlignHistoryGraphData();\r\n });\r\n })\r\n .catch((err) => {\r\n if (err.response.status === 401) {\r\n localStorage.removeItem(\"accessKey\");\r\n const { from } = this.props.location.state || {\r\n from: { pathname: \"/\" },\r\n };\r\n this.props.history.push(from);\r\n } else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }\r\n\r\n // Data Format HistoryGraph View\r\n AlignHistoryGraphData() {\r\n const { AllCurrentHistory, hisactivemenu } = this.state;\r\n\r\n //Based Dropdown above the History graph\r\n let CurrentActivity =\r\n hisactivemenu === \"1\"\r\n ? \"Premium\"\r\n : hisactivemenu === \"2\"\r\n ? \"Price Range\"\r\n : \"Value\";\r\n // Get Current priceOptionName\r\n let filterByMenu = AllCurrentHistory.filter(\r\n (a) => a.priceOptionName === CurrentActivity\r\n );\r\n\r\n //Spliting mystore and Non-mystore data to order\r\n let getMystore = filterByMenu.filter((a) => a.isMyMarket === 1);\r\n let getwithoutMystore = filterByMenu.filter((a) => a.isMyMarket === 0);\r\n\r\n let CurrentHistory = getMystore.concat(getwithoutMystore);\r\n this.setState(\r\n { CurrentHistory, isLoading: false, isLoading1: false },\r\n () => {\r\n this.HistoryGraphView();\r\n }\r\n );\r\n }\r\n\r\n //Graph Table data\r\n GetGraphTableData() {\r\n let token = this.state.accessKey;\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = \"Bearer \" + token;\r\n }\r\n let data = {\r\n UserStoreID: this.state.stId,\r\n SearchId: this.state.seId,\r\n PriceType: this.state.activeTab,\r\n Competitors:\r\n this.state.uniCheck == \"no\"\r\n ? this.state.uniquestore\r\n : this.state.uniquestores\r\n ? this.state.uniquestores\r\n : 0,\r\n RegionId: CONFIG.RegionId,\r\n }; \r\n let effectiveRateIp = {\r\n UserStoreID: this.state.stId,\r\n SearchId: this.state.seId,\r\n EffectiveTimePeriod: this.state.drpDownSelValue,\r\n Competitors: this.state.uniquestore,\r\n // Duration: parseInt(this.state.gridactivedur),\r\n RegionId: CONFIG.RegionId,\r\n };\r\n let inputData = this.state.activeTab === 4 ? effectiveRateIp : data;\r\n let hostName = this.state.activeTab === 4 ? \"effectiveratemarketview\" : \"currentpricinganalysiscoremarketview\";\r\n axios\r\n .post(\r\n CONFIG.API_URL + \"dashboard/\" + hostName,\r\n inputData\r\n )\r\n .then((res) => {\r\n let CoreMarketView = res.data.current.currentPricingAnalysisMarket;\r\n let MarketViewpricingOptions = res.data.current.currentPricingAnalysis;\r\n this.setState(\r\n {\r\n CoreMarketView,\r\n MarketViewpricingOptions,\r\n isLoading1: false,\r\n Tabloading: false,\r\n },\r\n () => {\r\n this.AlignGraphTabData();\r\n }\r\n );\r\n })\r\n .catch((err) => {\r\n if (err.response.status === 401) {\r\n localStorage.removeItem(\"accessKey\");\r\n const { from } = this.props.location.state || {\r\n from: { pathname: \"/\" },\r\n };\r\n this.props.history.push(from);\r\n } else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }\r\n //Graph Table data\r\n GetGraphTableDatatab3() {\r\n let token = this.state.accessKey;\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = \"Bearer \" + token;\r\n }\r\n let data = {\r\n UserStoreID: this.state.stId,\r\n SearchId: this.state.seId,\r\n PriceType: \"3\",\r\n Competitors:\r\n this.state.uniCheck == \"no\"\r\n ? this.state.uniquestore\r\n : this.state.uniquestores\r\n ? this.state.uniquestores\r\n : 0,\r\n RegionId: CONFIG.RegionId,\r\n };\r\n let effectiveRateIp = {\r\n UserStoreID: this.state.stId,\r\n SearchId: this.state.seId,\r\n EffectiveTimePeriod: this.state.drpDownSelValue,\r\n Competitors: this.state.uniquestore,\r\n Duration: parseInt(this.state.gridactivedur),\r\n RegionId: CONFIG.RegionId,\r\n };\r\n let inputData = this.state.activeTab === 4 ? effectiveRateIp : data;\r\n //let hostName = this.state.activeTab === 4 ? \"effectiveratemarketview\" : \"currentpricinganalysiscoremarketview\" ;\r\n axios\r\n .post(\r\n CONFIG.API_URL + \"dashboard/currentpricinganalysiscoremarketview\",\r\n data\r\n )\r\n .then((res) => {\r\n let CoreMarketViewtab3 = res.data.current.currentPricingAnalysisMarket;\r\n let MarketViewpricingOptionstab3 =\r\n res.data.current.currentPricingAnalysis;\r\n this.setState(\r\n {\r\n CoreMarketViewtab3,\r\n MarketViewpricingOptionstab3,\r\n isLoading1: false,\r\n Tabloading: false,\r\n },\r\n () => {\r\n this.AlignGraphTabDatatab3();\r\n }\r\n );\r\n })\r\n .catch((err) => {\r\n if (err.response.status === 401) {\r\n localStorage.removeItem(\"accessKey\");\r\n const { from } = this.props.location.state || {\r\n from: { pathname: \"/\" },\r\n };\r\n this.props.history.push(from);\r\n } else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }\r\n GetGraphTableDatatab2() {\r\n let token = this.state.accessKey;\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = \"Bearer \" + token;\r\n }\r\n let data = {\r\n UserStoreID: this.state.stId,\r\n SearchId: this.state.seId,\r\n PriceType: 2,\r\n Competitors:\r\n this.state.uniCheck == \"no\"\r\n ? this.state.uniquestore\r\n : this.state.uniquestores\r\n ? this.state.uniquestores\r\n : 0,\r\n RegionId: CONFIG.RegionId,\r\n };\r\n axios\r\n .post(\r\n CONFIG.API_URL + \"dashboard/currentpricinganalysiscoremarketview\",\r\n data\r\n )\r\n .then((res) => {\r\n let CoreMarketViewtab2 = res.data.current.currentPricingAnalysisMarket;\r\n let MarketViewpricingOptionstab2 =\r\n res.data.current.currentPricingAnalysis;\r\n this.setState(\r\n {\r\n CoreMarketViewtab2,\r\n MarketViewpricingOptionstab2,\r\n isLoading1: false,\r\n Tabloading: false,\r\n },\r\n () => {\r\n this.AlignGraphTabDatatab2();\r\n }\r\n );\r\n })\r\n .catch((err) => {\r\n if (err.response.status === 401) {\r\n localStorage.removeItem(\"accessKey\");\r\n const { from } = this.props.location.state || {\r\n from: { pathname: \"/\" },\r\n };\r\n this.props.history.push(from);\r\n } else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }\r\n\r\n\r\n // Data Format table View\r\n AlignGraphTabData() {\r\n const { CoreMarketView } = this.state;\r\n\r\n let ChartTableData = this.state.ChartTableData;\r\n\r\n //Checking for data availability\r\n let AvailDataCheck = [];\r\n\r\n AvailDataCheck = CoreMarketView.filter(function (data) {\r\n return data.storeID > 0 && data.price != 0;\r\n });\r\n\r\n //For table Row Height controll\r\n let priceLength = this.state.priceLength;\r\n let pricecolLength = this.state.pricecolLength;\r\n\r\n /* Spliting the data in the order of activityType */\r\n ChartTableData[\"lahMarkets\"] = [];\r\n if (AvailDataCheck.length > 0) {\r\n if (this.state.activeTab === 3) {\r\n /* Barchart table's Head data */\r\n ChartTableData[\"TableHead\"] = CoreMarketView.filter(function (data) {\r\n return data.storeID > 0;\r\n });\r\n /* end of Barchart table's Head data */\r\n\r\n /* Barchart table's body data */\r\n ChartTableData[\"TableBody\"] = [];\r\n\r\n //For Premium data\r\n ChartTableData[\"TableBody\"].push({\r\n td1: \"Promotions\",\r\n td2: CoreMarketView.filter(function (data) {\r\n return data.storeID > 0;\r\n }),\r\n });\r\n /* End of Barchart table's body data */\r\n } else {\r\n //For table Row Height controll\r\n // priceLength = d3.max(\r\n // AvailDataCheck.filter(function (data) {\r\n // return data.storeID > 0 && data.priceOptionName === \"Price Range\";\r\n // }),\r\n // (d) => d.price.length\r\n // );\r\n //}), d => (d.price + (d.alternatePriceTag ? '(' + d.alternatePriceTag + ')' : '')).length);\r\n\r\n pricecolLength = CoreMarketView.filter(function (data) {\r\n return data.storeID > 0 && data.priceOptionName === \"Price Range\";\r\n }).length;\r\n // End of For table Row Height controll\r\n\r\n //For Premium data\r\n ChartTableData[\"lahMarkets\"].push({\r\n tr1: CoreMarketView.filter(function (data) {\r\n return data.storeID < 1 && data.priceOptionName === \"Premium\";\r\n }),\r\n tr2: CoreMarketView.filter(function (data) {\r\n return (\r\n data.isMyStore === true && data.priceOptionName === \"Premium\"\r\n );\r\n }),\r\n });\r\n\r\n //For Price Range data\r\n ChartTableData[\"lahMarkets\"].push({\r\n tr1: CoreMarketView.filter(function (data) {\r\n return data.storeID < 1 && data.priceOptionName === \"Price Range\";\r\n }),\r\n tr2: CoreMarketView.filter(function (data) {\r\n return (\r\n data.isMyStore === true && data.priceOptionName === \"Price Range\"\r\n );\r\n }),\r\n });\r\n\r\n //For Value data\r\n ChartTableData[\"lahMarkets\"].push({\r\n tr1: CoreMarketView.filter(function (data) {\r\n return data.storeID < 1 && data.priceOptionName === \"Value\";\r\n }),\r\n tr2: CoreMarketView.filter(function (data) {\r\n return data.isMyStore === true && data.priceOptionName === \"Value\";\r\n }),\r\n });\r\n\r\n /* end of Spliting the data in the order of activityType */\r\n\r\n /* Barchart table's Head data */\r\n ChartTableData[\"TableHead\"] = CoreMarketView.filter(function (data) {\r\n return data.storeID > 0 && data.priceOptionName === \"Premium\";\r\n });\r\n /* end of Barchart table's Head data */\r\n\r\n /* Barchart table's body data */\r\n ChartTableData[\"TableBody\"] = [];\r\n\r\n //For Premium data\r\n ChartTableData[\"TableBody\"].push({\r\n td1: \"Premium\",\r\n td2: CoreMarketView.filter(function (data) {\r\n return data.storeID > 0 && data.priceOptionName === \"Premium\";\r\n }),\r\n });\r\n\r\n //For Price Range data\r\n ChartTableData[\"TableBody\"].push({\r\n td1: \"Price Range\",\r\n td2: CoreMarketView.filter(function (data) {\r\n return data.storeID > 0 && data.priceOptionName === \"Price Range\";\r\n }),\r\n });\r\n\r\n //For Value data\r\n ChartTableData[\"TableBody\"].push({\r\n td1: \"Value\",\r\n td2: CoreMarketView.filter(function (data) {\r\n return data.storeID > 0 && data.priceOptionName === \"Value\";\r\n }),\r\n });\r\n }\r\n }\r\n if (\r\n this.state.graphOpen === \"\" ||\r\n this.state.activeTab === 3 ||\r\n AvailDataCheck.length === 0\r\n ) {\r\n this.setState({\r\n ChartTableData,\r\n AvailDataCheck: AvailDataCheck.length,\r\n pricecolLength,\r\n priceLength,\r\n });\r\n } else {\r\n this.setState(\r\n {\r\n ChartTableData,\r\n AvailDataCheck: AvailDataCheck.length,\r\n pricecolLength,\r\n priceLength,\r\n },\r\n () => {\r\n this.TableViewGraphs();\r\n }\r\n );\r\n }\r\n\r\n /* end of Barchart table's body data */\r\n }\r\n // Data Format table View\r\n AlignGraphTabDatatab2() {\r\n const { CoreMarketViewtab2 } = this.state;\r\n\r\n let ChartTableDatatab2 = this.state.ChartTableDatatab2;\r\n\r\n //Checking for data availability\r\n let AvailDataChecktab2 = [];\r\n\r\n AvailDataChecktab2 = CoreMarketViewtab2.filter(function (data) {\r\n return data.storeID > 0 && data.price != 0;\r\n });\r\n\r\n //For table Row Height controll\r\n let priceLengthtab2 = this.state.priceLengthtab2;\r\n let pricecolLengthtab2 = this.state.pricecolLengthtab2;\r\n\r\n /* Spliting the data in the order of activityType */\r\n ChartTableDatatab2[\"lahMarkets\"] = [];\r\n if (AvailDataChecktab2.length > 0) {\r\n //For table Row Height controll\r\n // priceLengthtab2 = d3.max(\r\n // AvailDataChecktab2.filter(function (data) {\r\n // return data.storeID > 0 && data.priceOptionName === \"Price Range\";\r\n // }),\r\n // (d) => d.price.length\r\n // );\r\n //}), d => (d.price + (d.alternatePriceTag ? '(' + d.alternatePriceTag + ')' : '')).length);\r\n\r\n pricecolLengthtab2 = CoreMarketViewtab2.filter(function (data) {\r\n return data.storeID > 0 && data.priceOptionName === \"Price Range\";\r\n }).length;\r\n // End of For table Row Height controll\r\n\r\n //For Premium data\r\n ChartTableDatatab2[\"lahMarkets\"].push({\r\n tr1: CoreMarketViewtab2.filter(function (data) {\r\n return data.storeID < 1 && data.priceOptionName === \"Premium\";\r\n }),\r\n tr2: CoreMarketViewtab2.filter(function (data) {\r\n return data.isMyStore === true && data.priceOptionName === \"Premium\";\r\n }),\r\n });\r\n\r\n //For Price Range data\r\n ChartTableDatatab2[\"lahMarkets\"].push({\r\n tr1: CoreMarketViewtab2.filter(function (data) {\r\n return data.storeID < 1 && data.priceOptionName === \"Price Range\";\r\n }),\r\n tr2: CoreMarketViewtab2.filter(function (data) {\r\n return (\r\n data.isMyStore === true && data.priceOptionName === \"Price Range\"\r\n );\r\n }),\r\n });\r\n\r\n //For Value data\r\n ChartTableDatatab2[\"lahMarkets\"].push({\r\n tr1: CoreMarketViewtab2.filter(function (data) {\r\n return data.storeID < 1 && data.priceOptionName === \"Value\";\r\n }),\r\n tr2: CoreMarketViewtab2.filter(function (data) {\r\n return data.isMyStore === true && data.priceOptionName === \"Value\";\r\n }),\r\n });\r\n\r\n /* end of Spliting the data in the order of activityType */\r\n\r\n /* Barchart table's Head data */\r\n ChartTableDatatab2[\"TableHead\"] = CoreMarketViewtab2.filter(function (\r\n data\r\n ) {\r\n return data.storeID > 0 && data.priceOptionName === \"Premium\";\r\n });\r\n /* end of Barchart table's Head data */\r\n\r\n /* Barchart table's body data */\r\n ChartTableDatatab2[\"TableBody\"] = [];\r\n\r\n //For Premium data\r\n ChartTableDatatab2[\"TableBody\"].push({\r\n td1: \"Premium\",\r\n td2: CoreMarketViewtab2.filter(function (data) {\r\n return data.storeID > 0 && data.priceOptionName === \"Premium\";\r\n }),\r\n });\r\n\r\n //For Price Range data\r\n ChartTableDatatab2[\"TableBody\"].push({\r\n td1: \"Price Range\",\r\n td2: CoreMarketViewtab2.filter(function (data) {\r\n return data.storeID > 0 && data.priceOptionName === \"Price Range\";\r\n }),\r\n });\r\n\r\n //For Value data\r\n ChartTableDatatab2[\"TableBody\"].push({\r\n td1: \"Value\",\r\n td2: CoreMarketViewtab2.filter(function (data) {\r\n return data.storeID > 0 && data.priceOptionName === \"Value\";\r\n }),\r\n });\r\n }\r\n this.setState(\r\n {\r\n ChartTableDatatab2,\r\n AvailDataChecktab2: AvailDataChecktab2.length,\r\n pricecolLengthtab2,\r\n priceLengthtab2,\r\n },\r\n () => {\r\n this.TableViewGraphs();\r\n }\r\n );\r\n // }\r\n\r\n /* end of Barchart table's body data */\r\n }\r\n // Data Format table View\r\n AlignGraphTabDatatab3() {\r\n const { CoreMarketViewtab3 } = this.state;\r\n\r\n let ChartTableDatatab3 = this.state.ChartTableDatatab3;\r\n\r\n //Checking for data availability\r\n let AvailDataChecktab3 = [];\r\n\r\n AvailDataChecktab3 = CoreMarketViewtab3.filter(function (data) {\r\n return data.storeID > 0 && data.price != 0;\r\n });\r\n\r\n //For table Row Height controll\r\n let priceLengthtab3 = this.state.priceLengthtab3;\r\n let pricecolLengthtab3 = this.state.pricecolLengthtab3;\r\n\r\n /* Spliting the data in the order of activityType */\r\n ChartTableDatatab3[\"lahMarkets\"] = [];\r\n if (AvailDataChecktab3.length > 0) {\r\n /* Barchart table's Head data */\r\n ChartTableDatatab3[\"TableHead\"] = CoreMarketViewtab3.filter(function (\r\n data\r\n ) {\r\n return data.storeID > 0;\r\n });\r\n /* end of Barchart table's Head data */\r\n\r\n /* Barchart table's body data */\r\n ChartTableDatatab3[\"TableBody\"] = [];\r\n\r\n //For Premium data\r\n ChartTableDatatab3[\"TableBody\"].push({\r\n td1: \"Promotions\",\r\n td2: CoreMarketViewtab3.filter(function (data) {\r\n return data.storeID > 0;\r\n }),\r\n });\r\n /* End of Barchart table's body data */\r\n }\r\n this.setState({\r\n ChartTableDatatab3,\r\n AvailDataChecktab3: AvailDataChecktab3.length,\r\n pricecolLengthtab3,\r\n priceLengthtab3,\r\n });\r\n\r\n /* end of Barchart table's body data */\r\n }\r\n //Promotions Pop Up\r\n promohandleOpen(id) {\r\n this.setState({\r\n promo_open: true,\r\n promo_open_id: id,\r\n });\r\n }\r\n\r\n promohandleClose() {\r\n this.setState({\r\n promo_open: false,\r\n promo_open_id: 0,\r\n });\r\n }\r\n //End OF PRomotions Pop Up\r\n\r\n initialLoad() {\r\n let id1, id2, id3, id4, id5, id6, id7;\r\n let storeIdCount = [];\r\n let order = this.props.order;\r\n let orderBy = this.props.orderBy;\r\n if (this.props.id1 == \"no\") {\r\n this.state.uniCheck = \"no\";\r\n id1 = 0;\r\n } else {\r\n id1 = parseInt(this.props.id1 ? this.props.id1 : 0);\r\n }\r\n id2 = parseInt(this.props.id2 ? this.props.id2 : 0);\r\n id3 = parseInt(this.props.id3 ? this.props.id3 : 0);\r\n id4 = parseInt(this.props.id4 ? this.props.id4 : 0);\r\n id5 = parseInt(this.props.id5 ? this.props.id5 : 0);\r\n id6 = parseInt(this.props.id6 ? this.props.id6 : 0);\r\n id7 = parseInt(this.props.id7 ? this.props.id7 : 0);\r\n let storeCount = [id1, id2, id3, id4, id5, id6, id7];\r\n storeCount.map((data) => {\r\n if (data != 0) {\r\n storeIdCount.push(data);\r\n }\r\n });\r\n let uniquestores = storeIdCount.toString();\r\n this.setState({ uniquestores, storeIdCount, orderBy, order });\r\n }\r\n\r\n //price conversion\r\n priceConversion(tot) {\r\n if (tot !== \"\" && tot !== null) {\r\n let checkDigit = tot.toString().split(\".\");\r\n let ret = \"\";\r\n let i = 0;\r\n if (tot.toString().indexOf(\".\") == -1) {\r\n tot = tot;\r\n } else {\r\n if (checkDigit == \"00\") {\r\n tot = checkDigit.trim();\r\n } else {\r\n if (checkDigit.length === 2) {\r\n ret += checkDigit[0] + \".\";\r\n for (i = 0; i < checkDigit.length; i++) {\r\n if (i >= checkDigit[1].length) ret += \"0\";\r\n else ret += checkDigit[1][i];\r\n }\r\n } else if (checkDigit.length === 1) {\r\n ret += checkDigit[0] + \".\";\r\n for (i = 0; i < checkDigit.length; i++) {\r\n ret += \"0\";\r\n }\r\n }\r\n ret = ret.toString();\r\n tot = ret;\r\n }\r\n }\r\n }\r\n return tot;\r\n }\r\n\r\n render() {\r\n const {\r\n analysisSummary,\r\n locationInfoData,\r\n activeTab,\r\n promo_open,\r\n isLoading,\r\n pricecolLength,\r\n order,\r\n orderBy,\r\n grapghCatcheck,\r\n graphOpen,\r\n ChartTableDatatab3,\r\n AvailDataChecktab3,\r\n ChartTableDatatab2,\r\n AvailDataChecktab2,\r\n pricecolLengthtab3,\r\n priceLengthtab3,\r\n pricecolLengthtab2,\r\n priceLengthtab2,\r\n ChartTableData,\r\n /*SinglelahMarkets,*/ GridTableValue,\r\n unitDurations,\r\n MarketViewpricingOptions,\r\n MarketViewpricingOptionstab3,\r\n MarketViewpricingOptionstab2,\r\n snackOpen,\r\n snackMSg,\r\n AvailDataCheck,\r\n needComparePromos,\r\n annexureFilters,\r\n storeAdvertising,\r\n filterData\r\n } = this.state;\r\n let ComActivityType = [\"Premium\", \"Price Range\", \"Value\"];\r\n let Colors = [\r\n \"mystorebarclr\",\r\n \"barclr1\",\r\n \"barclr2\",\r\n \"barclr3\",\r\n \"barclr4\",\r\n \"barclr5\",\r\n \"barclr6\",\r\n \"barclr7\",\r\n ];\r\n let moneySymbol = this.state.countrycurrency\r\n ? this.state.countrycurrency\r\n : \"\";\r\n const GridTableValue1 =\r\n GridTableValue && GridTableValue.dynamdata\r\n ? GridTableValue.dynamdata.length\r\n : 0;\r\n const GridTableValueData = GridTableValue ? GridTableValue.dynamdata : [];\r\n var hlpcnt;\r\n if (activeTab === 1) {\r\n hlpcnt =\r\n \"
\" +\r\n `${CONFIG.RegionId === 3\r\n ? \"Current Advertised Weekly Rates\"\r\n : \"Current Advertised Rates\"\r\n }` +\r\n \"

In this section, the graph enables you to compare rates like-for-like, against your top competitors*. The rates shown on the graph are based on the Online Advertised Rate on the store's website.

The Number of Pricing Options shows you if the selected store* offers more than one price type for this unit type.

  • The highest price advertised by a store is shown as the Premium rate.
  • The lowest price advertised by a store is shown as the Value rate.
  • Any other rates in between are shown as a range
  • If there is only one price for a unit, it is shown as both the Premium and Value rate

Market Low, Market Average and Market High

These rates are based on the online rates advertised by the competitor stores* and the price type chosen (Premium or Value).

*See the All Market View section below to learn how you can change the competitors you can compare against on this graph.

*Your store prices are included in the calculations.

\";\r\n } else if (activeTab === 3) {\r\n hlpcnt =\r\n \"
Promotions

These are unit-specific promotions advertised by the store for the above unit type.

\";\r\n } else {\r\n hlpcnt =\r\n \"
\" +\r\n `${CONFIG.RegionId === 3\r\n ? \"Advertised Walk-in Weekly Rates\"\r\n : \"Advertised Walk-in Rates\"\r\n }` +\r\n \"

These are the walk-in (or 'Standard') rates offered by the store for this unit type.

\";\r\n }\r\n const defaultProps = {\r\n helpTitle: \"Core Market View\",\r\n helpContent:\r\n hlpcnt +\r\n \"

Refer the below help video for more information.

\",\r\n };\r\n const defaultProps1 = {\r\n helpTitle: \"Historical Pricing Analysis\",\r\n helpContent:\r\n \"

View historical rates for this unit type over the last 5 days, 30 days, 90 days, 6 months or 1 year, choose the time range from the drop down menu. You can also view rates by pricing type - Premium, Value or both. See the All Market View section below to learn how you can change the competitors you can compare against on this graph. These rates are based on the Advertised Online Rate.

*Your store prices are included in the calculations.

Refer the below help video for more information.

\",\r\n };\r\n const defaultProps2 = {\r\n helpTitle: \"All Market View\",\r\n helpContent: this.state.activeTab === 4 ?\r\n \"
  • These are all the stores in this Market offering this unit type.
  • Select up to a total of 8 competitor stores listed below to compare against in the Current Effective Rate analysis section or Historical pricing view. You can remove any stores from the graph at any time.

*Your store prices are included in the calculations.

\" :\r\n \"
  • These are all the stores in this Market offering this unit type.
  • Select up to a total of 8 competitor stores listed below to compare against in the Current Pricing analysis section or Historical pricing view. You can remove any stores from the graph at any time.

*Your store prices are included in the calculations.

\",\r\n };\r\n\r\n let cutCur = locationInfoData.countryCurrency\r\n ? locationInfoData.countryCurrency\r\n : \"N/A\";\r\n let clp = analysisSummary.lowestPrice;\r\n let cap = analysisSummary.averagePrice;\r\n let chp = analysisSummary.highestPrice;\r\n if (clp) {\r\n var splt_clp = clp.toString().split(\".\");\r\n let splt_val_clp = splt_clp[1]\r\n ? splt_clp[1].length === 1\r\n ? \".\" + splt_clp[1] + \"0\"\r\n : splt_clp[1].length === 2\r\n ? \".\" + splt_clp[1]\r\n : \"\"\r\n : \"\";\r\n clp = cutCur + splt_clp[0] + splt_val_clp;\r\n }\r\n if (cap) {\r\n var splt_cap = cap.toString().split(\".\");\r\n let splt_val_cap = splt_cap[1]\r\n ? splt_cap[1].length === 1\r\n ? \".\" + splt_cap[1] + \"0\"\r\n : splt_cap[1].length === 2\r\n ? \".\" + splt_cap[1]\r\n : \"\"\r\n : \"\";\r\n cap = cutCur + splt_cap[0] + splt_val_cap;\r\n }\r\n if (chp) {\r\n var splt_chp = chp.toString().split(\".\");\r\n let splt_val_chp = splt_chp[1]\r\n ? splt_chp[1].length === 1\r\n ? \".\" + splt_chp[1] + \"0\"\r\n : splt_chp[1].length === 2\r\n ? \".\" + splt_chp[1]\r\n : \"\"\r\n : \"\";\r\n chp = cutCur + splt_chp[0] + splt_val_chp;\r\n }\r\n var checkIfAnnexureEmptyStat = [];\r\n checkIfAnnexureEmptyStat =\r\n GridTableValue &&\r\n GridTableValue.statdata &&\r\n GridTableValue.statdata.filter(function (data) {\r\n return data.annexure !== 0;\r\n });\r\n var checkIfAnnexureEmpty = [];\r\n checkIfAnnexureEmpty =\r\n GridTableValue &&\r\n GridTableValue.dynamdata &&\r\n GridTableValue.dynamdata.filter(function (data) {\r\n return data.annexure !== 0;\r\n });\r\n // var checkIfAnnexureEmpty = GridTableValue && GridTableValue.dynamdata && GridTableValue.dynamdata.filter(data => data.annexure !== 0);\r\n const tr = [...Array(Math.ceil(GridTableValue1 / 19))];\r\n const trproductRows = tr.map((row, idx) =>\r\n GridTableValueData.slice(idx * 19, idx * 19 + 19)\r\n );\r\n \r\n const nameCount = locationInfoData.storeName\r\n ? locationInfoData.storeName.length\r\n : 0;\r\n let checkPg = null;\r\n return (\r\n
\r\n
\r\n
\r\n {\" \"}\r\n \r\n
\r\n
\r\n {locationInfoData.storeName &&\r\n locationInfoData.storeName !== null &&\r\n locationInfoData.storeName !== \"\"\r\n ? nameCount > CONFIG.storeNameMaxLimit\r\n ? locationInfoData.storeName.substring(\r\n 0,\r\n CONFIG.storeNameMaxLimit - 3\r\n ) + \"...\"\r\n : locationInfoData.storeName\r\n : isLoading === false\r\n ? \"Your Store\"\r\n : \"\"}\r\n
\r\n
\r\n
\r\n

\r\n {locationInfoData.storeAddress1 &&\r\n locationInfoData.storeAddress1 !== null &&\r\n locationInfoData.storeAddress1 !== \"\"\r\n ? locationInfoData.storeAddress1 + \", \"\r\n : \"\" + locationInfoData && locationInfoData.storeCity\r\n ? locationInfoData.storeCity + \", \"\r\n : locationInfoData.searchType === 1 &&\r\n (locationInfoData.storeCity === \"\" ||\r\n locationInfoData.storeCity === null) &&\r\n (locationInfoData.storeZipCode === \"\" ||\r\n locationInfoData.storeZipCode === null)\r\n ? locationInfoData.latitude +\r\n \", \" +\r\n locationInfoData.longitude +\r\n \", \"\r\n : \"\"}\r\n {locationInfoData.storeState\r\n ? locationInfoData.storeState + \" \"\r\n : \"\"}{\" \"}\r\n {locationInfoData.storeZipCode}{\" \"}\r\n {locationInfoData.storeZoneCoverage\r\n ? \"| Coverage: \" + locationInfoData.storeZoneCoverage\r\n : \"N/A\"}\r\n

\r\n
\r\n
\r\n
\r\n \r\n {CONFIG.Website_Text_Footer_Pdf}\r\n {\" \"}\r\n | {CONFIG.Phone_Footer_Pdf} |{\" \"}\r\n \r\n {CONFIG.Mail_Footer_Pdf}\r\n {\" \"}\r\n | \"Optimize\r\n
\r\n {isLoading ? (\r\n
\r\n
\r\n
\r\n ) : (\r\n \"\"\r\n )}\r\n {this.state.isLoading1 ? (\r\n
\r\n
\r\n
\r\n ) : (\r\n \"\"\r\n )}\r\n {this.state.Tabloading ? (\r\n
\r\n
\r\n
\r\n ) : (\r\n \"\"\r\n )}\r\n
\r\n
\r\n \r\n {this.state.activeTab === 4 ?

\r\n {\"(\" + locationInfoData.searchName + \")\"} Effective Rate\r\n Analysis\r\n

:

\r\n {\"(\" + locationInfoData.searchName + \")\"} Current Pricing\r\n Analysis\r\n

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

\r\n {CONFIG.RegionId === 3\r\n ? \"Current Lowest Weekly Price\"\r\n : \"Current Lowest Price\"}\r\n

\r\n
\r\n

\r\n {analysisSummary\r\n ? analysisSummary.lowestPriceStoreName\r\n : isLoading === false\r\n ? \"N/A\"\r\n : \"\"}\r\n

\r\n
\r\n
\r\n
{clp ? clp : isLoading === false ? \"N/A\" : \"\"}
\r\n
\r\n
\r\n
\r\n \r\n {CONFIG.RegionId === 3\r\n ? \"Current Average Weekly Price\"\r\n : \"Current Average Price\"}\r\n \r\n {/*

*/}\r\n
\r\n
{cap ? cap : isLoading === false ? \"N/A\" : \"\"}
\r\n
\r\n
\r\n
\r\n

\r\n {CONFIG.RegionId === 3\r\n ? \"Current Highest Weekly Price\"\r\n : \"Current Highest Price\"}\r\n

\r\n
\r\n

\r\n {analysisSummary\r\n ? analysisSummary.highestPriceStoreName\r\n : isLoading === false\r\n ? \"N/A\"\r\n : \"\"}\r\n

\r\n
\r\n
\r\n
{chp ? chp : isLoading === false ? \"N/A\" : \"\"}
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
Core Market View
\r\n
\r\n {CONFIG.RegionId === 3\r\n ? \"Current Advertised Weekly Rates\"\r\n : \"Current Advertised Rates\"}\r\n
\r\n

\r\n In this section, the graph enables you to compare rates\r\n like-for-like, against your top competitors*. The rates\r\n shown on the graph are based on the Online Advertised Rate\r\n on the store's website.\r\n
\r\n The Number of Pricing Options shows you if the selected\r\n store* offers more than one price type for this unit type.\r\n
\r\n The highest price advertised by a store is shown as the\r\n Premium rate.\r\n
\r\n The lowest price advertised by a store is shown as the\r\n Value rate.\r\n
\r\n Any other rates in between are shown as a range\r\n
\r\n If there is only one price for a unit, it is shown as both\r\n the Premium and Value rate\r\n
\r\n Market Low, Market Average and Market High\r\n
\r\n These rates are based on the online rates advertised by\r\n the competitor stores* and the price type chosen (Premium\r\n or Value).\r\n
\r\n *See the All Market View section below to learn how you\r\n can change the competitors you can compare against on this\r\n graph.\r\n
\r\n *Your store prices are included in the calculations.\r\n

\r\n
\r\n \r\n\r\n {AvailDataCheck > 0 ? (\r\n \r\n \r\n {CONFIG.RegionId === 3 ? (\r\n

\r\n * This rate is calculated from an advertised monthly\r\n rate\r\n

\r\n ) : (\r\n \"\"\r\n )}\r\n
\r\n \r\n \r\n {ChartTableData.TableHead &&\r\n ChartTableData.TableHead.length > 0 ? (\r\n \r\n Store Name\r\n {ChartTableData.TableHead.map(\r\n (th_data, index) => {\r\n let sAddress = th_data.address\r\n ? \", \\n\" + th_data.address\r\n : \"\";\r\n const text = (\r\n
\r\n {th_data.storeName + sAddress}\r\n
\r\n );\r\n let dotline;\r\n let storName;\r\n if (ChartTableData.TableHead.length > 5) {\r\n dotline =\r\n th_data.storeName.length > 18\r\n ? \"..\"\r\n : \"\";\r\n storName =\r\n th_data.storeName.substring(0, 18) +\r\n dotline;\r\n } else if (\r\n ChartTableData.TableHead.length === 4 ||\r\n ChartTableData.TableHead.length === 5\r\n ) {\r\n dotline =\r\n th_data.storeName.length > 40\r\n ? \"..\"\r\n : \"\";\r\n storName =\r\n th_data.storeName.substring(0, 40) +\r\n dotline;\r\n } else {\r\n storName = th_data.storeName;\r\n }\r\n\r\n return (\r\n \r\n \r\n {storName}\r\n \r\n \r\n );\r\n }\r\n )}\r\n \r\n ) : (\r\n \r\n Store Name\r\n \r\n )}\r\n \r\n \r\n {MarketViewpricingOptions &&\r\n MarketViewpricingOptions.length > 0 ? (\r\n \r\n \r\n \r\n No.of Pricing Options\r\n \r\n \r\n {MarketViewpricingOptions.map((po_row) => {\r\n return (\r\n \r\n {po_row.pricingOptions}\r\n \r\n );\r\n })}\r\n \r\n ) : (\r\n \r\n \r\n \r\n No.of Pricing Options\r\n \r\n \r\n \r\n )}\r\n {this.state.Tabloading ? (\r\n \"\"\r\n ) : ChartTableData.TableBody &&\r\n ChartTableData.TableBody.length > 0 ? (\r\n ChartTableData.TableBody.map((row1, index) => {\r\n return (\r\n \r\n \r\n \r\n \r\n {row1.td1}\r\n \r\n {(activeTab === 1 || activeTab === 4) ? (\r\n grapghCatcheck === row1.td1 ? (\r\n \r\n this.onSelecCatGrapgh(row1.td1)\r\n }\r\n size=\"sm\"\r\n >\r\n \"\"\r\n \r\n ) : (\r\n \r\n this.onSelecCatGrapgh(row1.td1)\r\n }\r\n size=\"sm\"\r\n >\r\n \"\"\r\n \r\n )\r\n ) : (\r\n \"\"\r\n )}\r\n \r\n {row1.td2.map((row) => {\r\n // let alterLabel = row.alternatePriceTag ? '('+row.alternatePriceTag+')':'' ;\r\n var tdVal =\r\n row.price !== null &&\r\n row.price !== \"0\"\r\n ? moneySymbol + row.price\r\n : \"N/A\";\r\n var monthlyValues =\r\n row.isMonthly &&\r\n row.isMonthly === 1 &&\r\n CONFIG.RegionId === 3\r\n ? \"*\"\r\n : \"\";\r\n if (activeTab === 3) {\r\n tdVal =\r\n row.promo &&\r\n row.promo !== null &&\r\n row.promo !== \"0\"\r\n ? row.promo\r\n .split(\"*~*\")\r\n .join(\"
\")\r\n : \"No specials\";\r\n }\r\n return (\r\n \r\n \r\n {/* */}\r\n \r\n );\r\n })}\r\n \r\n {/* (O) - Online Price(R) - Regular Price */}\r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n );\r\n })\r\n ) : (\r\n \r\n \r\n {isLoading === false\r\n ? \"There are no competitors available in this market.\"\r\n : \"\"}\r\n \r\n \r\n )}\r\n \r\n
\r\n
\r\n \r\n {activeTab !== 3 ? (\r\n \r\n
\r\n \r\n \r\n \r\n Store Name\r\n Market Low\r\n Market Average\r\n Market High\r\n \r\n \r\n \r\n {this.state.Tabloading ? (\r\n \"\"\r\n ) : ChartTableData.lahMarkets &&\r\n ChartTableData.lahMarkets.length > 0 ? (\r\n ChartTableData.lahMarkets.map(\r\n (tr1data, index) => {\r\n return (\r\n \r\n \r\n {tr1data.tr1.map((td, index) => {\r\n let HclassName =\r\n (activeTab === 1 || activeTab === 4)\r\n ? \"\"\r\n : \"other_price\";\r\n if (\r\n td.priceOptionName ===\r\n \"Price Range\"\r\n ) {\r\n // width lesser than 1367\r\n if (\r\n window.innerWidth < 1367 &&\r\n pricecolLength > 7 &&\r\n this.state.priceLength > 11\r\n ) {\r\n HclassName = \"set-height\";\r\n } else if (\r\n window.innerWidth < 1367 &&\r\n pricecolLength > 6 &&\r\n this.state.priceLength > 14\r\n ) {\r\n HclassName = \"set-height\";\r\n }\r\n\r\n // width equal to 1367\r\n if (\r\n window.innerWidth === 1367 &&\r\n pricecolLength > 7 &&\r\n this.state.priceLength > 12\r\n ) {\r\n HclassName = \"set-height\";\r\n } else if (\r\n window.innerWidth === 1367 &&\r\n pricecolLength > 6 &&\r\n this.state.priceLength > 14\r\n ) {\r\n HclassName = \"set-height\";\r\n }\r\n\r\n // width greater than 1367\r\n if (\r\n window.innerWidth > 1367 &&\r\n pricecolLength > 7 &&\r\n this.state.priceLength > 15\r\n ) {\r\n HclassName = \"set-height\";\r\n } else if (\r\n window.innerWidth > 1367 &&\r\n window.innerWidth < 1438 &&\r\n pricecolLength > 6 &&\r\n this.state.priceLength > 14\r\n ) {\r\n HclassName = \"set-height\";\r\n }\r\n }\r\n return (\r\n \r\n {td.storeName ===\r\n \"MarketLow\" ? (\r\n \r\n \r\n {td.priceOptionName\r\n ? td.priceOptionName\r\n : \"\"}\r\n \r\n \r\n {td.priceOptionName ===\r\n \"Price Range\"\r\n ? \" - \"\r\n : td.price\r\n ? moneySymbol + td.price\r\n : \"N/A\"}\r\n \r\n \r\n ) : td.storeName ===\r\n \"MarketAvg\" ? (\r\n \r\n {td.priceOptionName ===\r\n \"Price Range\"\r\n ? \" - \"\r\n : td.price\r\n ? moneySymbol + td.price\r\n : \"N/A\"}\r\n \r\n ) : td.storeName ===\r\n \"MarketHigh\" ? (\r\n \r\n {td.priceOptionName ===\r\n \"Price Range\"\r\n ? \" - \"\r\n : td.price\r\n ? moneySymbol + td.price\r\n : \"N/A\"}\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n \r\n );\r\n })}\r\n \r\n\r\n {tr1data.tr2.length > 0 &&\r\n (activeTab === 1 || activeTab === 4) ? (\r\n tr1data.tr2.map((rowdata, index) => {\r\n const priceRangeFormatRegex = /^\\d+(\\.\\d{1,2})?-\\d+(\\.\\d{1,2})?$/;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {CONFIG.RegionId === 3\r\n ? \"Your Weekly Price\"\r\n : \"Your Price\"}\r\n \r\n \r\n {rowdata?.price &&\r\n rowdata.price !== \"0\"\r\n ? priceRangeFormatRegex.test(rowdata?.price) ? moneySymbol + rowdata?.price : moneySymbol + this.priceConversion(rowdata?.price) \r\n : \"N/A\"}\r\n \r\n {rowdata.myStorePriceRank ? (\r\n
\r\n {\r\n rowdata.myStorePriceRank\r\n }\r\n
\r\n ) : (\r\n \"\"\r\n )}\r\n
\r\n \r\n \r\n );\r\n })\r\n ) : (\r\n \r\n \r\n \r\n \r\n {CONFIG.RegionId === 3\r\n ? \"Your Weekly Price\"\r\n : \"Your Price\"}\r\n \r\n \r\n N/A\r\n \r\n
\r\n \r\n \r\n )}\r\n \r\n );\r\n }\r\n )\r\n ) : (\r\n \r\n \r\n N/A\r\n \r\n \r\n )}\r\n \r\n \r\n
\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n \r\n ) : (\r\n \r\n \r\n {isLoading === false\r\n ? \"There are no competitors available in this market.\"\r\n : \"\"}\r\n \r\n \r\n )}\r\n\r\n {\r\n AvailDataChecktab3 > 0 ? (\r\n \r\n
\r\n
\r\n \r\n \r\n
Promotions
\r\n

\r\n These are unit-specific promotions advertised by\r\n the store for the above unit type.\r\n

\r\n
\r\n \r\n \r\n {ChartTableDatatab3.TableHead &&\r\n ChartTableDatatab3.TableHead.length > 0 ? (\r\n \r\n Store Name\r\n {ChartTableDatatab3.TableHead.map(\r\n (th_data, index) => {\r\n let sAddress = th_data.address\r\n ? \", \\n\" + th_data.address\r\n : \"\";\r\n const text = (\r\n \r\n {th_data.storeName + sAddress}\r\n
\r\n );\r\n let dotline;\r\n let storName;\r\n if (\r\n ChartTableDatatab3.TableHead\r\n .length > 5\r\n ) {\r\n dotline =\r\n th_data.storeName.length > 18\r\n ? \"..\"\r\n : \"\";\r\n storName =\r\n th_data.storeName.substring(\r\n 0,\r\n 18\r\n ) + dotline;\r\n } else if (\r\n ChartTableDatatab3.TableHead\r\n .length === 4 ||\r\n ChartTableDatatab3.TableHead\r\n .length === 5\r\n ) {\r\n dotline =\r\n th_data.storeName.length > 40\r\n ? \"..\"\r\n : \"\";\r\n storName =\r\n th_data.storeName.substring(\r\n 0,\r\n 40\r\n ) + dotline;\r\n } else {\r\n storName = th_data.storeName;\r\n }\r\n\r\n return (\r\n \r\n \r\n {storName}\r\n \r\n \r\n );\r\n }\r\n )}\r\n \r\n ) : (\r\n \r\n Store Name\r\n \r\n )}\r\n \r\n \r\n {MarketViewpricingOptionstab3 &&\r\n MarketViewpricingOptionstab3.length > 0 ? (\r\n \r\n \r\n \r\n No.of Pricing Options\r\n \r\n \r\n {MarketViewpricingOptionstab3.map(\r\n (po_row) => {\r\n return (\r\n \r\n {po_row.pricingOptions}\r\n \r\n );\r\n }\r\n )}\r\n \r\n ) : (\r\n \r\n \r\n \r\n No.of Pricing Options\r\n \r\n \r\n \r\n )}\r\n {this.state.Tabloading ? (\r\n \"\"\r\n ) : ChartTableDatatab3.TableBody &&\r\n ChartTableDatatab3.TableBody.length > 0 ? (\r\n ChartTableDatatab3.TableBody.map(\r\n (row1, index) => {\r\n return (\r\n \r\n \r\n \r\n \r\n {row1.td1}\r\n \r\n \r\n {row1.td2.map((row) => {\r\n var tdVal =\r\n row.price !== null &&\r\n row.price !== \"0\"\r\n ? moneySymbol + row.price\r\n : \"N/A\";\r\n // if(activeTab === 3 ){\r\n tdVal =\r\n row.promo &&\r\n row.promo !== null &&\r\n row.promo !== \"0\"\r\n ? row.promo\r\n .split(\"*~*\")\r\n .join(\"
\")\r\n : \"No specials\";\r\n // }\r\n var allPromoData =\r\n needComparePromos &&\r\n needComparePromos.length > 0\r\n ? needComparePromos\r\n : [];\r\n var annexText = \"Annexure - \";\r\n var results = allPromoData.filter(\r\n (d) =>\r\n d.storeID === row.storeID\r\n );\r\n var resultFinal =\r\n results && results.length > 0\r\n ? results[0].annexure\r\n : 0;\r\n tdVal =\r\n resultFinal && resultFinal > 0\r\n ? annexText + resultFinal\r\n : tdVal;\r\n return (\r\n \r\n \r\n
\r\n );\r\n })}\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n );\r\n }\r\n )\r\n ) : (\r\n \r\n \r\n {isLoading === false\r\n ? \"There are no competitors available in this market.\"\r\n : \"\"}\r\n \r\n \r\n )}\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n ) : (\r\n \r\n \r\n {isLoading === false\r\n ? \"There are no competitors available in this market.\"\r\n : \"\"}\r\n \r\n \r\n )}\r\n {\r\n AvailDataChecktab2 > 0 ? (\r\n \r\n \r\n
\r\n {CONFIG.RegionId === 3\r\n ? \"Advertised Walk-in Weekly Rates\"\r\n : \"Advertised Walk-in Rates\"}\r\n
\r\n

\r\n These are the walk-in (or 'Standard') rates offered by\r\n the store for this unit type.\r\n

\r\n
\r\n {CONFIG.RegionId === 3 ? (\r\n

\r\n * This rate is calculated from an advertised\r\n monthly rate\r\n

\r\n ) : (\r\n \"\"\r\n )}\r\n \r\n \r\n {ChartTableDatatab2.TableHead &&\r\n ChartTableDatatab2.TableHead.length > 0 ? (\r\n \r\n Store Name\r\n {ChartTableDatatab2.TableHead.map(\r\n (th_data, index) => {\r\n let sAddress = th_data.address\r\n ? \", \\n\" + th_data.address\r\n : \"\";\r\n const text = (\r\n
\r\n {th_data.storeName + sAddress}\r\n
\r\n );\r\n let dotline;\r\n let storName;\r\n if (\r\n ChartTableDatatab2.TableHead.length > 5\r\n ) {\r\n dotline =\r\n th_data.storeName.length > 18\r\n ? \"..\"\r\n : \"\";\r\n storName =\r\n th_data.storeName.substring(0, 18) +\r\n dotline;\r\n } else if (\r\n ChartTableDatatab2.TableHead.length ===\r\n 4 ||\r\n ChartTableDatatab2.TableHead.length ===\r\n 5\r\n ) {\r\n dotline =\r\n th_data.storeName.length > 40\r\n ? \"..\"\r\n : \"\";\r\n storName =\r\n th_data.storeName.substring(0, 40) +\r\n dotline;\r\n } else {\r\n storName = th_data.storeName;\r\n }\r\n\r\n return (\r\n \r\n \r\n {storName}\r\n \r\n \r\n );\r\n }\r\n )}\r\n \r\n ) : (\r\n \r\n Store Name\r\n \r\n )}\r\n \r\n \r\n {MarketViewpricingOptionstab2 &&\r\n MarketViewpricingOptionstab2.length > 0 ? (\r\n \r\n \r\n \r\n No.of Pricing Options\r\n \r\n \r\n {MarketViewpricingOptionstab2.map(\r\n (po_row) => {\r\n return (\r\n \r\n {po_row.pricingOptions}\r\n \r\n );\r\n }\r\n )}\r\n \r\n ) : (\r\n \r\n \r\n \r\n No.of Pricing Options\r\n \r\n \r\n \r\n )}\r\n {this.state.Tabloading ? (\r\n \"\"\r\n ) : ChartTableDatatab2.TableBody &&\r\n ChartTableDatatab2.TableBody.length > 0 ? (\r\n ChartTableDatatab2.TableBody.map(\r\n (row1, index) => {\r\n return (\r\n \r\n \r\n \r\n \r\n {row1.td1}\r\n \r\n \r\n {row1.td2.map((row) => {\r\n var tdVal =\r\n row.price !== null &&\r\n row.price !== \"0\"\r\n ? moneySymbol + row.price\r\n : \"N/A\";\r\n var monthlyValues =\r\n row.isMonthly &&\r\n row.isMonthly === 1 &&\r\n CONFIG.RegionId === 3\r\n ? \"*\"\r\n : \"\";\r\n return (\r\n \r\n \r\n \r\n );\r\n })}\r\n \r\n \r\n );\r\n }\r\n )\r\n ) : (\r\n \r\n \r\n {isLoading === false\r\n ? \"There are no competitors available in this market.\"\r\n : \"\"}\r\n \r\n \r\n )}\r\n \r\n
\r\n
\r\n \r\n\r\n \r\n
\r\n \r\n \r\n \r\n Store Name\r\n Market Low\r\n Market Average\r\n Market High\r\n \r\n \r\n \r\n {this.state.Tabloading ? (\r\n \"\"\r\n ) : ChartTableDatatab2.lahMarkets &&\r\n ChartTableDatatab2.lahMarkets.length > 0 ? (\r\n ChartTableDatatab2.lahMarkets.map(\r\n (tr1data, index) => {\r\n return (\r\n \r\n \r\n {tr1data.tr1.map((td, index) => {\r\n let HclassName = \"other_price\";\r\n if (\r\n td.priceOptionName ===\r\n \"Price Range\"\r\n ) {\r\n // width lesser than 1367\r\n if (\r\n window.innerWidth < 1367 &&\r\n pricecolLength > 7 &&\r\n this.state.priceLength > 11\r\n ) {\r\n HclassName = \"set-height\";\r\n } else if (\r\n window.innerWidth < 1367 &&\r\n pricecolLength > 6 &&\r\n this.state.priceLength > 14\r\n ) {\r\n HclassName = \"set-height\";\r\n }\r\n\r\n // width equal to 1367\r\n if (\r\n window.innerWidth === 1367 &&\r\n pricecolLength > 7 &&\r\n this.state.priceLength > 12\r\n ) {\r\n HclassName = \"set-height\";\r\n } else if (\r\n window.innerWidth === 1367 &&\r\n pricecolLength > 6 &&\r\n this.state.priceLength > 14\r\n ) {\r\n HclassName = \"set-height\";\r\n }\r\n\r\n // width greater than 1367\r\n if (\r\n window.innerWidth > 1367 &&\r\n pricecolLength > 7 &&\r\n this.state.priceLength > 15\r\n ) {\r\n HclassName = \"set-height\";\r\n } else if (\r\n window.innerWidth > 1367 &&\r\n window.innerWidth < 1438 &&\r\n pricecolLength > 6 &&\r\n this.state.priceLength > 14\r\n ) {\r\n HclassName = \"set-height\";\r\n }\r\n }\r\n return (\r\n \r\n {td.storeName ===\r\n \"MarketLow\" ? (\r\n \r\n \r\n {td.priceOptionName\r\n ? td.priceOptionName\r\n : \"\"}\r\n \r\n \r\n {td.priceOptionName ===\r\n \"Price Range\"\r\n ? \" - \"\r\n : td.price\r\n ? moneySymbol + td.price\r\n : \"N/A\"}\r\n \r\n \r\n ) : td.storeName ===\r\n \"MarketAvg\" ? (\r\n \r\n {td.priceOptionName ===\r\n \"Price Range\"\r\n ? \" - \"\r\n : td.price\r\n ? moneySymbol + td.price\r\n : \"N/A\"}\r\n \r\n ) : td.storeName ===\r\n \"MarketHigh\" ? (\r\n \r\n {td.priceOptionName ===\r\n \"Price Range\"\r\n ? \" - \"\r\n : td.price\r\n ? moneySymbol + td.price\r\n : \"N/A\"}\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n \r\n );\r\n })}\r\n \r\n \r\n );\r\n }\r\n )\r\n ) : (\r\n \r\n \r\n N/A\r\n \r\n \r\n )}\r\n \r\n \r\n
\r\n \r\n
\r\n ) : (\r\n \r\n \r\n {isLoading === false\r\n ? \"There are no competitors available in this market.\"\r\n : \"\"}\r\n \r\n \r\n )}\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
{this.state.activeTab === 4 ? \"Current Effective Rates History\" : \"Current Advertised Rates History\"}
\r\n

\r\n View historical rates for this unit type over the last 5\r\n days, 30 days, 90 days, 6 months or 1 year, choose the\r\n time range from the drop down menu. You can also view\r\n rates by pricing type - Premium, Value or both. See the\r\n All Market View section below to learn how you can change\r\n the competitors you can compare against on this graph.\r\n These rates are based on the Advertised Online Rate.\r\n
\r\n *Your store prices are included in the calculations.\r\n

\r\n {/* */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {unitDurations && unitDurations.length > 0 ? (\r\n unitDurations.map((unit) => (\r\n \r\n ))\r\n ) : (\r\n \r\n )}\r\n \r\n \r\n\r\n {\r\n filterData.length > 0 ?
\r\n \r\n
\r\n {\r\n filterData.map((item)=>{\r\n return(\r\n <>\r\n
\r\n {item.name}\r\n \r\n )\r\n })\r\n }\r\n \r\n \r\n has same value in the series. \r\n
\r\n
: \"\"\r\n\r\n }\r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n {/*
*/}\r\n
\r\n {trproductRows\r\n ? trproductRows.map((rows, i) => (\r\n
\r\n \r\n {i == 0 ? (\r\n \r\n
\r\n
\r\n All Market View{\" \"}\r\n \r\n
\r\n \r\n *Your store prices are included in the\r\n calculations.\r\n \r\n
\r\n {storeAdvertising ?
\r\n *This store is not currently advertising a rate for this unit\r\n
: ''}\r\n
\r\n \r\n {this.state.activeTab === 4 ? <>\r\n These are all the stores in this Market offering\r\n this unit type. Select up to a total of 8\r\n competitor stores listed below to compare\r\n against in the Current Effective rate analysis section\r\n or Historical pricing view. You can remove any\r\n stores from the graph at any time.\r\n : <>These are all the stores in this Market offering\r\n this unit type. Select up to a total of 8\r\n competitor stores listed below to compare\r\n against in the Current Pricing analysis section\r\n or Historical pricing view. You can remove any\r\n stores from the graph at any time.}\r\n

\r\n\r\n \r\n \r\n {unitDurations && unitDurations.length > 0 ? (\r\n unitDurations.map((unit) => (\r\n \r\n ))\r\n ) : (\r\n \r\n )}\r\n \r\n \r\n
\r\n
\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n
\r\n \r\n\r\n
\r\n
\r\n
\r\n Selected Competitor Stores\r\n {CONFIG.RegionId === 3 ? \" | \" : \"\"}\r\n
\r\n
\r\n {CONFIG.RegionId === 3 ? (\r\n \r\n {\" \"}\r\n * This rate is calculated from an advertised\r\n monthly rate\r\n

\r\n ) : (\r\n \"\"\r\n )}\r\n
\r\n
\r\n \r\n \r\n {GridTableValue.dynamdata ||\r\n GridTableValue.statdata ? (\r\n \r\n {i === 0 && GridTableValue.statdata ? (\r\n GridTableValue.statdata.map(\r\n (row, index) => {\r\n const labelId = index;\r\n let promocountMax =\r\n row.promoCount &&\r\n row.promoCount !== null &&\r\n row.promoCount > 60\r\n ? \"Annexure -\" + row.annexure\r\n : \"\";\r\n let ys_prom_tions =\r\n row.promos && row.promos !== null\r\n ? row.promos.replace(/~/g, \" \")\r\n : \"No specials\";\r\n return (\r\n \r\n \r\n \r\n {row.storeName}\r\n \r\n \r\n {row.storeAddress}\r\n \r\n \r\n \r\n {row.currentPremium !== null &&\r\n row.currentPremium !== 0\r\n ? moneySymbol +\r\n row.currentPremium\r\n : \"N/A\"}\r\n {row.isMonthly &&\r\n row.isMonthly === 1 &&\r\n CONFIG.RegionId === 3 ? (\r\n *\r\n ) : (\r\n \"\"\r\n )}\r\n {row.currentPremium !== 0 && row.currentPremium !== null &&\r\n row.isNotCurrentlyAdvertised === true ?\r\n * : ''}\r\n \r\n \r\n {row.currentValue !== null &&\r\n row.currentValue !== 0\r\n ? moneySymbol + row.currentValue\r\n : \"N/A\"}\r\n {row.isMonthly &&\r\n row.isMonthly === 1 &&\r\n CONFIG.RegionId === 3 ? (\r\n *\r\n ) : (\r\n \"\"\r\n )}\r\n {row.currentValue !== 0 && row.currentValue !== null &&\r\n row.isNotCurrentlyAdvertised === true ?\r\n * : ''}\r\n \r\n \r\n {row.premium !== null &&\r\n row.premium !== 0\r\n ? moneySymbol + row.premium\r\n : \"N/A\"}\r\n {row.isMonthly &&\r\n row.isMonthly === 1 &&\r\n CONFIG.RegionId === 3 ? (\r\n *\r\n ) : (\r\n \"\"\r\n )}\r\n {row.premium !== 0 && row.premium !== null &&\r\n row.isNotCurrentlyAdvertised === true ?\r\n * : ''}\r\n \r\n \r\n {row.value !== null &&\r\n row.value !== 0\r\n ? moneySymbol + row.value\r\n : \"N/A\"}\r\n {row.isMonthly &&\r\n row.isMonthly === 1 &&\r\n CONFIG.RegionId === 3 ? (\r\n *\r\n ) : (\r\n \"\"\r\n )}\r\n {row.value !== 0 && row.value !== null &&\r\n row.isNotCurrentlyAdvertised === true ?\r\n * : ''}\r\n \r\n \r\n 60\r\n ? { __html: promocountMax }\r\n : { __html: ys_prom_tions }\r\n }\r\n />\r\n \r\n {activeTab !== 4 ? \r\n {row.currentWalkInPremium !==\r\n null &&\r\n row.currentWalkInPremium !== 0\r\n ? moneySymbol +\r\n row.currentWalkInPremium\r\n : \"N/A\"}\r\n {row.isMonthly &&\r\n row.isMonthly === 1 &&\r\n CONFIG.RegionId === 3 ? (\r\n *\r\n ) : (\r\n \"\"\r\n )}\r\n {row.currentWalkInPremium !== 0 && row.currentWalkInPremium !== null &&\r\n row.isNotCurrentlyAdvertised === true ?\r\n * : ''}\r\n : ''}\r\n {activeTab !== 4 ? \r\n {row.currentWalkInValue !==\r\n null &&\r\n row.currentWalkInValue !== 0\r\n ? moneySymbol +\r\n row.currentWalkInValue\r\n : \"N/A\"}\r\n {row.isMonthly &&\r\n row.isMonthly === 1 &&\r\n CONFIG.RegionId === 3 ? (\r\n *\r\n ) : (\r\n \"\"\r\n )}\r\n {row.currentWalkInValue !== 0 && row.currentWalkInValue !== null &&\r\n row.isNotCurrentlyAdvertised === true ?\r\n * : ''}\r\n : ''}\r\n \r\n );\r\n }\r\n )\r\n ) : (\r\n \r\n N/A\r\n \r\n )}\r\n {GridTableValue.dynamdata ? (\r\n this.stableSort(\r\n rows,\r\n this.getSorting(order, orderBy)\r\n ).map((row1, index) => {\r\n const labelId = index;\r\n let promocountMax =\r\n row1.promoCount &&\r\n row1.promoCount !== null &&\r\n row1.promoCount > 60\r\n ? \"Annexure -\" + row1.annexure\r\n : \"\";\r\n let prom_tions =\r\n row1.promos && row1.promos !== null\r\n ? row1.promos.replace(/~/g, \" \")\r\n : \"No specials\";\r\n return (\r\n \r\n \r\n \r\n {row1.storeName}\r\n \r\n \r\n {row1.storeAddress}\r\n \r\n \r\n \r\n {row1.currentPremium !== null &&\r\n row1.currentPremium !== 0\r\n ? moneySymbol +\r\n row1.currentPremium\r\n : \"N/A\"}\r\n {row1.isMonthly &&\r\n row1.isMonthly === 1 &&\r\n CONFIG.RegionId === 3 ? (\r\n *\r\n ) : (\r\n \"\"\r\n )}\r\n {row1.currentPremium !== 0 && row1.currentPremium !== null &&\r\n row1.isNotCurrentlyAdvertised === true ?\r\n * : ''}\r\n \r\n \r\n {row1.currentValue !== null &&\r\n row1.currentValue !== 0\r\n ? moneySymbol + row1.currentValue\r\n : \"N/A\"}\r\n {row1.isMonthly &&\r\n row1.isMonthly === 1 &&\r\n CONFIG.RegionId === 3 ? (\r\n *\r\n ) : (\r\n \"\"\r\n )}\r\n {row1.currentValue !== 0 && row1.currentValue !== null &&\r\n row1.isNotCurrentlyAdvertised === true ?\r\n * : ''}\r\n \r\n \r\n {row1.premium !== null &&\r\n row1.premium !== 0\r\n ? moneySymbol + row1.premium\r\n : \"N/A\"}\r\n {row1.isMonthly &&\r\n row1.isMonthly === 1 &&\r\n CONFIG.RegionId === 3 ? (\r\n *\r\n ) : (\r\n \"\"\r\n )}\r\n {row1.premium !== 0 && row1.premium !== null &&\r\n row1.isNotCurrentlyAdvertised === true ?\r\n * : ''}\r\n \r\n \r\n {row1.value !== null &&\r\n row1.value !== 0\r\n ? moneySymbol + row1.value\r\n : \"N/A\"}\r\n {row1.isMonthly &&\r\n row1.isMonthly === 1 &&\r\n CONFIG.RegionId === 3 ? (\r\n *\r\n ) : (\r\n \"\"\r\n )}\r\n {row1.value !== 0 && row1.value !== null &&\r\n row1.isNotCurrentlyAdvertised === true ?\r\n * : ''}\r\n \r\n \r\n 60\r\n ? { __html: promocountMax }\r\n : { __html: prom_tions }\r\n }\r\n />\r\n \r\n {activeTab !== 4 ? \r\n {row1.currentWalkInPremium !==\r\n null &&\r\n row1.currentWalkInPremium !== 0\r\n ? moneySymbol +\r\n row1.currentWalkInPremium\r\n : \"N/A\"}\r\n {row1.isMonthly &&\r\n row1.isMonthly === 1 &&\r\n CONFIG.RegionId === 3 ? (\r\n *\r\n ) : (\r\n \"\"\r\n )}\r\n {row1.currentWalkInPremium !== 0 && row1.currentWalkInPremium !== null &&\r\n row1.isNotCurrentlyAdvertised === true ?\r\n * : ''}\r\n : ''}\r\n {activeTab !== 4 ? \r\n {row1.currentWalkInValue !== null &&\r\n row1.currentWalkInValue !== 0\r\n ? moneySymbol +\r\n row1.currentWalkInValue\r\n : \"N/A\"}\r\n {row1.isMonthly &&\r\n row1.isMonthly === 1 &&\r\n CONFIG.RegionId === 3 ? (\r\n *\r\n ) : (\r\n \"\"\r\n )}\r\n {row1.currentWalkInValue !== 0 && row1.currentWalkInValue !== null &&\r\n row1.isNotCurrentlyAdvertised === true ?\r\n * : ''}\r\n : ''}\r\n \r\n );\r\n })\r\n ) : (\r\n \r\n N/A\r\n \r\n )}\r\n \r\n ) : (\r\n \r\n \r\n \r\n {isLoading === false\r\n ? \"There are no competitors available in this market.\"\r\n : \"\"}\r\n \r\n \r\n \r\n )}\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n ))\r\n : \"\"}\r\n
\r\n {snackMSg}}\r\n action={[\r\n \r\n \r\n ,\r\n ]}\r\n />\r\n
\r\n
\r\n \r\n {annexureFilters && annexureFilters.length !== 0\r\n ? annexureFilters.map((rows, i) => (\r\n
\r\n {GridTableValue.dynamdata || GridTableValue.statdata ? (\r\n
\r\n {GridTableValue && rows.length !== 0\r\n ? rows.map((row1, annexure) => {\r\n const labelId = annexure;\r\n let prom_tions =\r\n row1.promos && row1.promos !== null\r\n ? row1.promos.replace(/~/g, \" | \")\r\n : \"No specials\";\r\n if (row1.promoCount > 60) {\r\n let promoIndex = row1.annexure + \") : \";\r\n return (\r\n
\r\n

\r\n Annexure({promoIndex}\r\n

\r\n \r\n
\r\n );\r\n }\r\n })\r\n : \"\"}\r\n
\r\n ) : (\r\n \"\"\r\n )}\r\n
\r\n ))\r\n : \"\"}\r\n \r\n \r\n );\r\n }\r\n}\r\n//Listing and Sorting Table's Head\r\nfunction EnhancedTableHead(props) {\r\n const { order, orderBy, onRequestSort, activeTabs } = props;\r\n const createSortHandler = (property) => (event) => {\r\n onRequestSort(event, property);\r\n };\r\n\r\n const headRows = [\r\n { id: \"storeName\", numeric: false, disablePadding: true, label: \"Name\" },\r\n {\r\n id: \"currentPremium\",\r\n numeric: true,\r\n disablePadding: false,\r\n label: \"Current Premium\",\r\n },\r\n {\r\n id: \"currentValue\",\r\n numeric: true,\r\n disablePadding: false,\r\n label: \"Current Value\",\r\n },\r\n {\r\n id: \"premium\",\r\n numeric: true,\r\n disablePadding: false,\r\n label: \"Highest Premium Price Offered\",\r\n },\r\n {\r\n id: \"value\",\r\n numeric: true,\r\n disablePadding: false,\r\n label: \"Lowest Value Price Offered\",\r\n },\r\n { id: \"promos\", numeric: true, disablePadding: false, label: \"Promotion\" },\r\n {\r\n id: \"currentWalkInPremium\",\r\n numeric: true,\r\n disablePadding: false,\r\n label: \"Current Walk-in Premium\",\r\n },\r\n {\r\n id: \"currentWalkInValue\",\r\n numeric: true,\r\n disablePadding: false,\r\n label: \"Current Walk-in Value\",\r\n },\r\n ];\r\n\r\n return (\r\n \r\n \r\n {headRows.map((row) => {\r\n if (activeTabs === 4 ? (row.id !== 'currentWalkInValue' && row.id !== 'currentWalkInPremium') : true) {\r\n return (\r\n \r\n \r\n {row.label}\r\n \r\n \r\n )\r\n }\r\n })}\r\n \r\n \r\n );\r\n}\r\n","import React from 'react';\r\nimport './MarketInventoryAnalysisPdf.css';\r\nimport Chart from \"react-apexcharts\";\r\nimport { CONFIG } from '../../../utils/config';\r\nimport axios from 'axios';\r\nimport { AvForm, AvField } from 'availity-reactstrap-validation';\r\nimport moment from 'moment';\r\nimport { MarketProfile } from '../../MarketProfile';\r\nimport { Row, Table as TableBoots } from 'reactstrap';\r\nimport greenimage from '../../../Assets/Images/green.png';\r\nimport redimages from '../../../Assets/Images/red.png';\r\nimport Logo from '../../../Assets/Images/logo.jpg';\r\nexport default class MarketInventoryAnalysisPdf extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.child = React.createRef();\r\n this.state = {\r\n\r\n options: {\r\n chart: {\r\n id: 'apexchart-example',\r\n toolbar: {\r\n show: false\r\n }\r\n },\r\n grid: { show: false },\r\n xaxis: {\r\n labels: {\r\n show: false,\r\n\r\n },\r\n axisBorder: {\r\n show: false\r\n },\r\n axisTicks: {\r\n show: false\r\n }\r\n },\r\n yaxis: { show: false },\r\n },\r\n series: [{\r\n name: 'Store offered this Unit Type',\r\n data: []\r\n }],\r\n unitInventoryAvailablity: '',\r\n isLoading: false,\r\n unitDurations: '',\r\n unitLevelInventory: '',\r\n isDefaultUnit: this.props.isDefaultUnit.toString(),\r\n storeId: '',\r\n defaultSelected: this.props.isDefaultUnit.toString(),\r\n isModel: false,\r\n date: '',\r\n searchId: '',\r\n isAddedCount: '',\r\n isRemovedCount: '',\r\n isNoGraphData: false,\r\n accessKey: '',\r\n locationInfoData: [],\r\n analysisSummary: [],\r\n };\r\n\r\n // this.props;\r\n this.state.storeId = this.props.userstoreid;\r\n this.state.searchId = this.props.searchId;\r\n this.openPopup = this.openPopup.bind(this);\r\n this.getParams = this.getParams.bind(this);\r\n\r\n }\r\n\r\n getParams(name, sid) {\r\n this.child.current.toggleModal(name, sid);\r\n }\r\n\r\n async UNSAFE_componentWillMount() {\r\n const data = {\r\n \"SecretKey\": this.props.accessKey,\r\n \"RegionId\": CONFIG.RegionId\r\n }\r\n\r\n const response = await axios.post(CONFIG.API_URL + 'account/secretlogin', data);\r\n if (response.status === 200) {\r\n this.state.accessKey = response.data.token;\r\n this.marketInventoryAnalysis();\r\n this.loadDashBoard()\r\n this.loadSummary()\r\n } else {\r\n alert(response.status.Message);\r\n }\r\n }\r\n loadSummary() {\r\n let token = this.state.accessKey;\r\n const data = {\r\n \"UserStoreID\": this.state.storeId,\r\n \"SearchID\": this.state.searchId,\r\n \"RegionID\": CONFIG.RegionId\r\n }\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n }\r\n axios.post(CONFIG.API_URL + 'dashboard/currentpricinganalysissummary', data)\r\n .then(response => {\r\n\r\n // this.state.isLoading=true;\r\n const analysisSummary = response.data.current;\r\n this.setState({\r\n analysisSummary: analysisSummary,\r\n isLoading: false,\r\n })\r\n }).catch((err) => {\r\n if (err.response.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else {\r\n alert(err.response.data);\r\n }\r\n });\r\n\r\n\r\n }\r\n\r\n loadDashBoard() {\r\n let token = this.state.accessKey;\r\n const data = {\r\n \"UserStoreID\": this.state.storeId,\r\n \"SearchID\": this.state.searchId,\r\n \"RegionID\": CONFIG.RegionId\r\n }\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n }\r\n axios.post(CONFIG.API_URL + 'unit/dashboardSearchlocation', data)\r\n .then(response => {\r\n // this.state.isLoading=true;\r\n const locationInfoData = response.data.data.unitDashboard;\r\n\r\n this.setState({\r\n locationInfoData: locationInfoData\r\n })\r\n }).catch((err) => {\r\n if (err.response.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else if (err.response.status === 403) {\r\n const { from } = this.props.location.state || { from: { pathname: \"/UnauthorizedAccess\" } };\r\n this.props.history.push(from);\r\n }\r\n else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }\r\n\r\n marketInventoryAnalysis() {\r\n let token = this.state.accessKey;\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n }\r\n this.setState({\r\n isLoading: true, defaultSelected: this.state.isDefaultUnit, isDefaultUnit: this.state.isDefaultUnit\r\n })\r\n axios.get(CONFIG.API_URL + 'unit/unitdurations')\r\n .then(response => {\r\n\r\n let unitDurations = response.data.data.lookupData;\r\n\r\n this.setState({\r\n unitDurations\r\n })\r\n });\r\n localStorage.setItem('StId', this.state.storeId);\r\n const inputParam = {\r\n UserStoreID: this.state.storeId,\r\n SearchID: this.state.searchId,\r\n Duration: this.state.isDefaultUnit,\r\n RegionID: CONFIG.RegionId\r\n }\r\n\r\n this.commonInitLoad(inputParam);\r\n\r\n\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n // this.myFormRef && this.myFormRef.reset();\r\n\r\n if (nextProps.searchId != this.props.searchId) {\r\n\r\n this.setState({\r\n isLoading: true, defaultSelected: '',\r\n searchId: nextProps.searchId,\r\n storeId: nextProps.storeId\r\n },\r\n () => {\r\n this.marketInventoryAnalysis()\r\n });\r\n // window.location.reload();\r\n // const { from } = { from: { pathname: \"/market-dashboard/${nextProps.storeId}/view-details/${nextProps.searchId}/${nextProps.storeCount}\" } };\r\n // this.props.history.push(from);\r\n }\r\n\r\n }\r\n\r\n\r\n commonInitLoad(inputParam) {\r\n this.setState({\r\n isLoading: true\r\n })\r\n\r\n axios.post(CONFIG.API_URL + 'unit/unitdatahistoryinventory', inputParam)\r\n .then(response => {\r\n\r\n const unitLevelInventory = response.data.data.unitLevelInventory;\r\n const unitInventoryAvailablity = response.data.data.unitInventoryAvailablity;\r\n const isAddedCount = unitInventoryAvailablity.filter(e => e.isAdded === 1);\r\n const isRemovedCount = unitInventoryAvailablity.filter(e => e.isAdded === 0);\r\n // unitInventoryAvailablity.filter((e) => e.isAdded === 1).forEach(function (e) { isAddedCount.push(e.isAdded) });\r\n // unitInventoryAvailablity.filter((e) => e.isAdded === 0).forEach(function (e) { isRemovedCount.push(e.isAdded) });\r\n const date = response.data.data.datePrice.dateDetail;\r\n\r\n this.setState({\r\n unitInventoryAvailablity, unitLevelInventory, date, isAddedCount, isRemovedCount, isLoading: false\r\n })\r\n if (this.state.unitLevelInventory.length > 0) {\r\n this.setState({\r\n isNoGraphData: false\r\n })\r\n this.initialLoad(unitLevelInventory);\r\n }\r\n else {\r\n this.setState({\r\n isNoGraphData: true\r\n })\r\n }\r\n\r\n }).catch((err) => {\r\n\r\n this.setState({\r\n isLoading: false\r\n })\r\n if (err.response.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }\r\n\r\n initialLoad(res) {\r\n var data = res;\r\n let dataSeries = data.map(val => { return { x: val.datePrice, y: isNaN(val.availableCount) ? null : val.availableCount }; });\r\n let uniqueDataSet = [...new Set(data.map(val => { return isNaN(val.availableCount) ? null : val.availableCount }))];\r\n let marketSeries = [({ name: 'Store offered this Unit Type', data: dataSeries })];\r\n let yearRange = this.state.isDefaultUnit;\r\n\r\n if (marketSeries.length > 0) {\r\n this.setState({\r\n isNoGraphData: false,\r\n options: {\r\n stroke: {\r\n width: 2,\r\n },\r\n colors: [\"#1D1E1F\"],\r\n yaxis: {\r\n title: {\r\n text: \"Number of Stores offering this Unit Type\"\r\n },\r\n min:0,\r\n tickAmount: uniqueDataSet.length === 1 || uniqueDataSet.length === 2 ? 1 : 2,\r\n labels: {\r\n formatter: function (value) {\r\n return value === null ? \"N/A\" : value.toFixed(0);\r\n },\r\n style: {\r\n colors: '#8C9AA6',\r\n fontSize: '10px'\r\n }\r\n },\r\n style: {\r\n color: undefined,\r\n fontSize: '10px',\r\n fontFamily: 'Arial',\r\n fontWeight: 500,\r\n cssClass: 'apexcharts-yaxis-title',\r\n },\r\n axisBorder:{\r\n show: false,\r\n },\r\n axisTicks: {\r\n show: false,\r\n }\r\n },\r\n tooltip: {\r\n enabled: false,\r\n },\r\n xaxis: {\r\n type: \"datetime\",\r\n tooltip: { enabled: false },\r\n labels: {\r\n formatter: function(value, timestamp, opts) {\r\n \r\n let val = value === undefined ? '' : yearRange < 4 ? moment(new Date(value)).format('DD-MMM-YYYY') : moment(new Date(value)).format('MMM-YYYY');\r\n return val;\r\n },\r\n showDuplicates: false,\r\n show: true,\r\n rotate: 0,\r\n style: {\r\n colors: '#8C9AA6',\r\n fontSize: '10px'\r\n },\r\n },\r\n axisBorder: {\r\n show: true,\r\n },\r\n axisTicks: {\r\n show: true,\r\n },\r\n tickAmount: yearRange == 1 ? 4 : yearRange == 2 ? 4 : yearRange == 3 ? 12 : yearRange == 4 ? 5 : 9, \r\n },\r\n noData: {\r\n text: 'Please enable any one of the below legend to view the graph.',\r\n style: {\r\n color: \"#5b95f6\",\r\n }\r\n },\r\n },\r\n series: marketSeries\r\n });\r\n var tempdata = [];\r\n var datum = {\r\n name: \"Graph\",\r\n values: this.popData(data),\r\n };\r\n tempdata.push(datum);\r\n } else {\r\n this.setState({\r\n isNoGraphData: true,\r\n options: {\r\n noData: {\r\n text: \"No Records Found.\",\r\n align: 'center',\r\n verticalAlign: 'top',\r\n offsetX: 0,\r\n offsetY: 0,\r\n style: {\r\n color: \"#F60000\",\r\n fontSize: '13px',\r\n fontFamily: \"Helvetica\"\r\n }\r\n },\r\n yaxis: { show: false },\r\n xaxis: {\r\n labels: {\r\n show: false\r\n },\r\n categories: [],\r\n axisBorder: {\r\n show: false\r\n },\r\n axisTicks: {\r\n show: false\r\n }\r\n },\r\n },\r\n series: []\r\n })\r\n }\r\n }\r\n\r\n\r\n popData(data) {\r\n var tFData = data;\r\n var tData = [];\r\n for (var i = 0; i < tFData.length; i++) {\r\n var CData = {\r\n date: new Date(new Date().getFullYear(), new Date().getMonth(), tFData[i].orderNo),\r\n totalStores: tFData[i].totalStores,\r\n availableCount: tFData[i].availableCount,\r\n datePrice: new Date(tFData[i].datePrice),\r\n orderNo: tFData[i].orderNo\r\n }\r\n tData.push(CData);\r\n }\r\n return tData;\r\n }\r\n\r\n\r\n unitInventory(e) {\r\n\r\n this.state.isDefaultUnit = e.target.value;\r\n const inputParam = {\r\n UserStoreID: this.state.storeId,\r\n SearchID: this.state.searchId,\r\n Duration: this.state.isDefaultUnit,\r\n }\r\n\r\n let token = this.state.accessKey;\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n }\r\n this.commonInitLoad(inputParam);\r\n // this.initialLoad(res);\r\n }\r\n openPopup() {\r\n\r\n this.setState(prevState => ({\r\n isModel: !prevState.isModel\r\n }));\r\n }\r\n\r\n render() {\r\n const { isLoading, analysisSummary, locationInfoData, unitDurations, date, isRemovedCount, isNoGraphData, isAddedCount, unitInventoryAvailablity } = this.state;\r\n // console.log('invent');\r\n // console.log(unitInventoryAvailablity);\r\n let cutCur = locationInfoData.countryCurrency ? locationInfoData.countryCurrency : 'N/A';\r\n let clp = analysisSummary.lowestPrice;\r\n let cap = analysisSummary.averagePrice;\r\n let chp = analysisSummary.highestPrice;\r\n if (clp) {\r\n var splt_clp = clp.toString().split('.');\r\n let splt_val_clp = splt_clp[1] ? splt_clp[1].length === 1 ? '.' + splt_clp[1] + '0' : splt_clp[1].length === 2 ? '.' + splt_clp[1] : '' : '';\r\n clp = cutCur + splt_clp[0] + splt_val_clp;\r\n }\r\n if (cap) {\r\n var splt_cap = cap.toString().split('.');\r\n let splt_val_cap = splt_cap[1] ? splt_cap[1].length === 1 ? '.' + splt_cap[1] + \"0\" : splt_cap[1].length === 2 ? '.' + splt_cap[1] : '' : '';\r\n cap = cutCur + splt_cap[0] + splt_val_cap;\r\n }\r\n if (chp) {\r\n var splt_chp = chp.toString().split('.');\r\n let splt_val_chp = splt_chp[1] ? splt_chp[1].length === 1 ? '.' + splt_chp[1] + '0' : splt_chp[1].length === 2 ? '.' + splt_chp[1] : '' : '';\r\n chp = cutCur + splt_chp[0] + splt_val_chp;\r\n }\r\n const defaultProps = {\r\n helpTitle: \"Historical Inventory Analytics\",\r\n helpContent: \"

In Optimize, we define inventory as the number of stores in this Market which advertise a particular unit type. On this graph you will see the number of stores over time (5 days, 30 days, 90 days, 6 months or 1 year) which have advertised this unit type.

Below the graph, under Added in Last 24 Hours, you will see the stores in this Market which have either added this unit type to their website or removed it from their website in the last 24 hours.

Refer the below help video for more information.

\"\r\n }\r\n const nameCount = locationInfoData.storeName ? locationInfoData.storeName.length : 0;\r\n return (\r\n
\r\n
\r\n {/*
{locationInfoData.storeName && locationInfoData.storeName !== null && locationInfoData.storeName !== '' ? nameCount > CONFIG.storeNameMaxLimit ? locationInfoData.storeName.substring(0,CONFIG.storeNameMaxLimit-3) + '...' : locationInfoData.storeName : isLoading === false ? 'Your Store' : ''}

{locationInfoData.storeAddress1 && locationInfoData.storeAddress1 !== null && locationInfoData.storeAddress1 !== '' ? locationInfoData.storeAddress1 + \", \" : '' + locationInfoData && locationInfoData.storeCity ? locationInfoData.storeCity+', ' : locationInfoData.searchType === 1 && (locationInfoData.storeCity === '' || locationInfoData.storeCity === null) && (locationInfoData.storeZipCode === '' || locationInfoData.storeZipCode === null) ? locationInfoData.latitude+', ' +locationInfoData.longitude+', ' : ''}{locationInfoData.storeState + ' ' + locationInfoData.storeZipCode} {locationInfoData.storeZoneCoverage ?\"| Coverage: \" +locationInfoData.storeZoneCoverage : 'N/A'}

*/}\r\n
{locationInfoData.storeName && locationInfoData.storeName !== null && locationInfoData.storeName !== '' ? nameCount > CONFIG.storeNameMaxLimit ? locationInfoData.storeName.substring(0, CONFIG.storeNameMaxLimit - 3) + '...' : locationInfoData.storeName : isLoading === false ? 'Your Store' : ''}

{locationInfoData.storeAddress1 && locationInfoData.storeAddress1 !== null && locationInfoData.storeAddress1 !== '' ? locationInfoData.storeAddress1 + \", \" : '' + locationInfoData && locationInfoData.storeCity ? locationInfoData.storeCity + ', ' : locationInfoData.searchType === 1 && (locationInfoData.storeCity === '' || locationInfoData.storeCity === null) && (locationInfoData.storeZipCode === '' || locationInfoData.storeZipCode === null) ? locationInfoData.latitude + ', ' + locationInfoData.longitude + ', ' : ''}{locationInfoData.storeState ? locationInfoData.storeState + ' ' : ''}{locationInfoData.storeZipCode} {locationInfoData.storeZoneCoverage ? \"| Coverage: \" + locationInfoData.storeZoneCoverage : 'N/A'}

\r\n
\r\n
\r\n
\r\n {CONFIG.Website_Text_Footer_Pdf} | {CONFIG.Phone_Footer_Pdf} | {CONFIG.Mail_Footer_Pdf} | \"Optimize\r\n
\r\n
\r\n
\r\n

{'(' + locationInfoData.searchName + ')'} Inventory & Availability Analysis

\r\n \r\n
\r\n

{CONFIG.RegionId === 3 ? \"Current Lowest Weekly Price\" : \"Current Lowest Price\"}

\r\n

{analysisSummary ? analysisSummary.lowestPriceStoreName : isLoading === false ? 'N/A' : ''}

\r\n
{clp ? clp : isLoading === false ? 'N/A' : ''}
\r\n
\r\n
\r\n

{CONFIG.RegionId === 3 ? \"Current Average Weekly Price\" : \"Current Average Price\"}

\r\n
{cap ? cap : isLoading === false ? 'N/A' : ''}
\r\n
\r\n
\r\n

{CONFIG.RegionId === 3 ? \"Current Highest Weekly Price\" : \"Current Highest Price\"}

\r\n

{analysisSummary ? analysisSummary.highestPriceStoreName : isLoading === false ? 'N/A' : ''}

\r\n
{chp ? chp : isLoading === false ? 'N/A' : ''}
\r\n
\r\n
\r\n
\r\n\r\n

History

\r\n

In Optimize, we define inventory as the number of stores in this Market which advertise a particular unit type. On this graph you will see the number of stores over time (5 days, 30 days, 90 days, 6 months or 1 year) which have advertised this unit type.

\r\n

Below the graph, under Added in Last 24 Hours, you will see the stores in this Market which have either added this unit type to their website or removed it from their website in the last 24 hours.

\r\n {/* */}\r\n (this.myFormRef = c)} className=\"days-count\">\r\n this.unitInventory(e)}>\r\n {unitDurations ? unitDurations.map((unit) =>\r\n \r\n ) : ''}\r\n \r\n\r\n \r\n\r\n
\r\n
\r\n {isNoGraphData ?
No data available for this graph!
: }\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n {/*
ADDED ON DATE: {moment(date).format('L')}
*/}\r\n
Added in last 24 hours
\r\n
\r\n \r\n {isAddedCount.length > 0 ? isAddedCount.map((unit) =>\r\n unit.isAdded == 1 ?\r\n
\r\n \r\n
\r\n : ''\r\n ) :
{isLoading === false ? 'No Stores have Added this Unit Type' : ''}
}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {/*
WITHDRAWN ON DATE: {moment(date).format('L')}
*/}\r\n
Removed in last 24 hours
\r\n
\r\n \r\n {isRemovedCount.length > 0 ? isRemovedCount.map((unit) =>\r\n unit.isAdded == 0 ?\r\n \r\n : ''\r\n ) :
{isLoading === false ? 'No Stores have Removed this Unit Type' : ''}
}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {isLoading ?
: ''}\r\n\r\n
\r\n\r\n
\r\n\r\n\r\n );\r\n }\r\n\r\n\r\n\r\n}","import React from 'react';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Table from '@material-ui/core/Table';\r\nimport TableHead from '@material-ui/core/TableHead';\r\nimport TableBody from '@material-ui/core/TableBody';\r\nimport TableCell from '@material-ui/core/TableCell';\r\nimport TableFooter from '@material-ui/core/TableFooter';\r\nimport TablePagination from '@material-ui/core/TablePagination';\r\nimport TableRow from '@material-ui/core/TableRow';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport FirstPageIcon from '@material-ui/icons/FirstPage';\r\nimport KeyboardArrowLeft from '@material-ui/icons/KeyboardArrowLeft';\r\nimport KeyboardArrowRight from '@material-ui/icons/KeyboardArrowRight';\r\nimport LastPageIcon from '@material-ui/icons/LastPage';\r\nimport Button from '@material-ui/core/Button';\r\nimport Breadcrumbs from '@material-ui/core/Breadcrumbs';\r\nimport {HelpTextPopup} from '../../HelpTextPopup/index';\r\nimport axios from 'axios';\r\nimport { CONFIG } from '../../../utils/config';\r\nimport PropTypes from 'prop-types';\r\nimport TableSortLabel from '@material-ui/core/TableSortLabel';\r\nimport { Col,Row } from 'reactstrap';\r\nimport moment from 'moment';\r\nimport { faCheck } from '@fortawesome/free-solid-svg-icons';\r\nimport { faTimes } from '@fortawesome/free-solid-svg-icons';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport Alarm from '../../../Assets/Images/unit-type-images/Alarm.png';\r\nimport ClimateControlled from '../../../Assets/Images/unit-type-images/ClimateControlled.png';\r\nimport StorageUnit from '../../../Assets/Images/unit-type-images/StorageUnit.png';\r\nimport apartment from '../../../Assets/Images/unit-type-images/apartment.png';\r\nimport artstudio from '../../../Assets/Images/unit-type-images/artstudio.png';\r\nimport box from '../../../Assets/Images/unit-type-images/box.png';\r\nimport celltower from '../../../Assets/Images/unit-type-images/celltower.png';\r\nimport container from '../../../Assets/Images/unit-type-images/container.png';\r\nimport filestorage from '../../../Assets/Images/unit-type-images/filestorage.png';\r\nimport office from '../../../Assets/Images/unit-type-images/office.png';\r\nimport mailbox from '../../../Assets/Images/unit-type-images/mailbox.png';\r\nimport parking from '../../../Assets/Images/unit-type-images/parking.png';\r\nimport unit from '../../../Assets/Images/unit-type-images/unit.png';\r\nimport warehouse from '../../../Assets/Images/unit-type-images/warehouse.png';\r\nimport winestorage from '../../../Assets/Images/unit-type-images/winestorage.png';\r\nimport workshop from '../../../Assets/Images/unit-type-images/workshop.png';\r\nimport DoorType from '../../../Assets/Images/unit-type-images/DoorType.png';\r\nimport DriveUp from '../../../Assets/Images/unit-type-images/DriveUp.png';\r\nimport Elevator from '../../../Assets/Images/unit-type-images/Elevator.png';\r\nimport HumidityControlled from '../../../Assets/Images/unit-type-images/HumidityControlled.png';\r\nimport OutdoorAccess from '../../../Assets/Images/unit-type-images/OutdoorAccess.png';\r\nimport power from '../../../Assets/Images/unit-type-images/power.png';\r\nimport locker from '../../../Assets/Images/unit-type-images/locker.png';\r\nimport { MarketProfile } from '../../MarketProfile';\r\nimport { Link } from 'react-router-dom';\r\nimport { faMapPin, faStar } from '@fortawesome/free-solid-svg-icons';\r\nimport './DetailedStoresViewPdf.css';\r\nimport Logo from '../../../Assets/Images/logo.jpg';\r\nconst actionsStyles = theme => ({\r\n tablepaggination: {\r\n flexShrink: 0,\r\n color: theme.palette.text.secondary,\r\n marginLeft: theme.spacing * 2.5,\r\n },\r\n});\r\n\r\nclass DetailedStoresViewPdf extends React.Component {\r\n\r\n handleFirstPageButtonClick = event => {\r\n this.props.onChangePage(event, 0);\r\n };\r\n\r\n handleBackButtonClick = event => {\r\n this.props.onChangePage(event, this.props.page - 1);\r\n };\r\n\r\n handleNextButtonClick = event => {\r\n this.props.onChangePage(event, this.props.page + 1);\r\n };\r\n\r\n handleLastPageButtonClick = event => {\r\n this.props.onChangePage(\r\n event,\r\n Math.max(0, Math.ceil(this.props.count / this.props.rowsPerPage) - 1),\r\n );\r\n };\r\n\r\n\r\n render() {\r\n const { classes, count, page, rowsPerPage, theme } = this.props;\r\n\r\n return (\r\n
\r\n \r\n {theme.direction === 'rtl' ? : }\r\n \r\n \r\n {theme.direction === 'rtl' ? : }\r\n \r\n = Math.ceil(count / rowsPerPage) - 1}\r\n aria-label=\"Next Page\"\r\n >\r\n {theme.direction === 'rtl' ? : }\r\n \r\n = Math.ceil(count / rowsPerPage) - 1}\r\n aria-label=\"Last Page\"\r\n >\r\n {theme.direction === 'rtl' ? : }\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nconst DetailedStoresViewWrapped = withStyles(actionsStyles, { withTheme: true })(\r\n DetailedStoresViewPdf,\r\n);\r\n\r\n\r\nlet headRows =[];\r\nif(CONFIG.RegionId===3)\r\n{\r\n headRows = [\r\n { id: 'storeName', numeric: false, disablePadding: false, label: 'Store Name / Address' },\r\n { id: 'proximity', numeric: true, disablePadding: false, label: 'Proximity' },\r\n { id: 'size', numeric: true, disablePadding: false, label: 'Unit Size' },\r\n { id: 'floor', numeric: false, disablePadding: false, label: 'Floor' },\r\n { id: 'features', numeric: true, disablePadding: false, label: 'Features' },\r\n { id: 'onlinePrice', numeric: true, disablePadding: false, label: 'Advertised Online Rate' },\r\n // { id: 'onlinePriceVat', numeric: true, disablePadding: false, label: 'VAT' },\r\n { id: 'dtOnlinePriceChanged', numeric: true, disablePadding: false, label: 'Last Changed' },\r\n { id: 'regPrice', numeric: true, disablePadding: false, label: 'Advertised Walk-in Rate' },\r\n // { id: 'regularPriceVat', numeric: true, disablePadding: false, label: 'VAT' },\r\n { id: 'dtPriceChanged', numeric: true, disablePadding: false, label: 'Last Changed' },\r\n { id: 'promo', numeric: false, disablePadding: false, label: 'Advertised Promotion' },\r\n { id: 'dtPromoChanged', numeric: true, disablePadding: false, label: 'Last Changed' }\r\n];\r\n}\r\nelse{\r\n headRows = [\r\n { id: 'storeName', numeric: false, disablePadding: false, label: 'Store Name / Address' },\r\n { id: 'proximity', numeric: true, disablePadding: false, label: 'Proximity' },\r\n { id: 'size', numeric: true, disablePadding: false, label: 'Unit Size' },\r\n { id: 'floor', numeric: false, disablePadding: false, label: 'Floor' },\r\n { id: 'features', numeric: true, disablePadding: false, label: 'Features' },\r\n { id: 'onlinePrice', numeric: true, disablePadding: false, label: 'Advertised Online Rate' },\r\n { id: 'dtOnlinePriceChanged', numeric: true, disablePadding: false, label: 'Last Changed' },\r\n { id: 'regPrice', numeric: true, disablePadding: false, label: 'Advertised Walk-in Rate' },\r\n { id: 'dtPriceChanged', numeric: true, disablePadding: false, label: 'Last Changed' },\r\n { id: 'promo', numeric: false, disablePadding: false, label: 'Advertised Promotion' },\r\n { id: 'dtPromoChanged', numeric: true, disablePadding: false, label: 'Last Changed' }\r\n ];\r\n}\r\nfunction EnhancedTableHead(props) {\r\n const { onSelectAllClick, order, orderBy, order1, orderBy1, order2, orderBy2, numSelected, rowCount, onRequestSort, onProximitysort, onStoreSort } = props;\r\n const createSortHandler = property => event => {\r\n onRequestSort(event, property);\r\n };\r\n const creatProximitysort = property => event => {\r\n\r\n onProximitysort(event, property);\r\n };\r\n const creatstoreSort = property => event => {\r\n onStoreSort(event, property);\r\n };\r\n return (\r\n \r\n \r\n {/* \r\n 0 && numSelected < rowCount}\r\n checked={numSelected === rowCount}\r\n onChange={onSelectAllClick}\r\n inputProps={{ 'aria-label': 'Select all desserts' }}\r\n />\r\n */}\r\n {headRows.map(row => (\r\n \r\n \r\n {row.label}\r\n \r\n \r\n ))}\r\n \r\n \r\n );\r\n}\r\n\r\nEnhancedTableHead.propTypes = {\r\n numSelected: PropTypes.number.isRequired,\r\n onRequestSort: PropTypes.func.isRequired,\r\n onProximitysort: PropTypes.func.isRequired,\r\n onStoreSort: PropTypes.func.isRequired,\r\n onSelectAllClick: PropTypes.func.isRequired,\r\n order: PropTypes.string.isRequired,\r\n orderBy: PropTypes.string.isRequired,\r\n order1: PropTypes.string.isRequired,\r\n orderBy1: PropTypes.string.isRequired,\r\n order2: PropTypes.string.isRequired,\r\n orderBy2: PropTypes.string.isRequired,\r\n rowCount: PropTypes.number.isRequired,\r\n\r\n};\r\nclass CustomDetailedStoresViewPdf extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n page: 0,\r\n pageCount: 0,\r\n rowsPerPage: 10,\r\n detailStoreData: [],\r\n detailStoreDatafilter: [],\r\n order: this.props.order,\r\n orderBy: this.props.orderBy,\r\n order1: this.props.order1,\r\n order2: this.props.order2,\r\n orderBy1: this.props.orderBy1,\r\n orderBy2: 'asc',\r\n orderBy2: this.props.orderBy2,\r\n isLoading: false,\r\n isPopUp: false,\r\n accessKey:'',\r\n locationInfoData: [],\r\n analysisSummary: [],\r\n\r\n };\r\n this.stableSort = this.stableSort.bind(this);\r\n this.getSorting = this.getSorting.bind(this);\r\n this.desc = this.desc.bind(this);\r\n this.handleRequestSort = this.handleRequestSort.bind(this);\r\n this.handleProximitysort = this.handleProximitysort.bind(this);\r\n this.handleStoreSort = this.handleStoreSort.bind(this);\r\n this.getParams = this.getParams.bind(this);\r\n this.child = React.createRef();\r\n }\r\n getParams(name, sid) {\r\n this.state.isPopUp=true;\r\n if (name && sid) {\r\n this.child.current.toggleModal(name, sid);\r\n }\r\n }\r\n async UNSAFE_componentWillMount() {\r\n \r\n const data = {\r\n \"SecretKey\": this.props.accessKey,\r\n \"RegionId\": CONFIG.RegionId\r\n }\r\n \r\n const response = await axios.post(CONFIG.API_URL + 'account/secretlogin', data);\r\n if (response.status === 200) {\r\n this.state.accessKey = response.data.token;\r\n this.detailedStoreView();\r\n this.loadDashBoard();\r\n this.loadSummary();\r\n } else {\r\n alert(response.status.Message);\r\n }\r\n }\r\n loadSummary() {\r\n let token = this.state.accessKey;\r\n const data = {\r\n \"UserStoreID\": this.props.userstoreid,\r\n \"SearchID\": this.props.searchId,\r\n \"RegionID\":CONFIG.RegionId\r\n }\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n }\r\n axios.post(CONFIG.API_URL + 'dashboard/currentpricinganalysissummary', data)\r\n .then(response => {\r\n \r\n // this.state.isLoading=true;\r\n const analysisSummary = response.data.current;\r\n this.setState({\r\n analysisSummary: analysisSummary,\r\n isLoading: false,\r\n })\r\n }).catch((err) => {\r\n if (err.response.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else {\r\n alert(err.response.data);\r\n }\r\n });\r\n\r\n \r\n }\r\n\r\n loadDashBoard() {\r\n let token = this.state.accessKey;\r\n const data = {\r\n \"UserStoreID\": this.props.userstoreid,\r\n \"SearchID\": this.props.searchId,\r\n \"RegionID\":CONFIG.RegionId\r\n }\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n }\r\n axios.post(CONFIG.API_URL + 'unit/dashboardSearchlocation', data)\r\n .then(response => {\r\n // this.state.isLoading=true;\r\n const locationInfoData = response.data.data.unitDashboard;\r\n \r\n this.setState({\r\n locationInfoData: locationInfoData\r\n })\r\n }).catch((err) => {\r\n if (err.response.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else if (err.response.status === 403) {\r\n const { from } = this.props.location.state || { from: { pathname: \"/UnauthorizedAccess\" } };\r\n this.props.history.push(from);\r\n }\r\n else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (this.state.isPopUp === false) {\r\n if (nextProps.searchId != this.props.searchId) {\r\n this.setState({\r\n isLoading: true,\r\n searchId: nextProps.searchId,\r\n storeId: nextProps.storeId\r\n },\r\n () => {\r\n this.detailedStoreView()\r\n });\r\n }\r\n }\r\n else{\r\n this.setState({\r\n isPopUp: false,\r\n });\r\n \r\n }\r\n\r\n\r\n }\r\n desc(a, b, orderBy) {\r\n\r\n if (b[orderBy] < a[orderBy]) {\r\n return -1;\r\n }\r\n if (b[orderBy] > a[orderBy]) {\r\n return 1;\r\n }\r\n return 0;\r\n }\r\n\r\n stableSort(array, cmp) {\r\n\r\n const stabilizedThis = array.map((el, index) => [el, index]);\r\n stabilizedThis.sort((a, b) => {\r\n const order = cmp(a[0], b[0]);\r\n if (order !== 0) return order;\r\n return a[1] - b[1];\r\n });\r\n return stabilizedThis.map(el => el[0]);\r\n }\r\n\r\n getSorting(order, orderBy) {\r\n\r\n return order === 'desc' ? (a, b) => this.desc(a, b, orderBy) : (a, b) => -this.desc(a, b, orderBy);\r\n }\r\n handleChangePage = (event, page) => {\r\n this.setState({ page });\r\n };\r\n\r\n handleChangeRowsPerPage = event => {\r\n this.setState({ page: 0, rowsPerPage: event.target.value });\r\n };\r\n handleRequestSort(event, property) {\r\n const { order, orderBy } = this.state;\r\n const isDesc = orderBy === property && order === 'desc';\r\n this.setState({ isLoading: true });\r\n const detaildata = {\r\n \"UserStoreID\": this.props.userstoreid,\r\n \"SearchID\": this.props.searchId,\r\n \"RegionID\" :CONFIG.RegionId\r\n }\r\n\r\n axios.post(CONFIG.API_URL + 'unit/unitlevelgridview', detaildata)\r\n .then(res => { \r\n let detailStoreData = res.data.data;\r\n var sortData = detailStoreData.sort((a, b) => (b.storeId - a.storeId));\r\n\r\n let uniquestore = [...new Set(sortData.map(item => item.storeId))];\r\n var FData = [];\r\n for (var t = 0; t < uniquestore.length; t++) {\r\n var tempData = sortData.filter(a => a.storeId == uniquestore[t]);\r\n for (var s = 0; s < tempData.length; s++) {\r\n var inlineData = {\r\n rowcount: 1,\r\n competitorName: tempData[s].competitorName,\r\n address: tempData[s].address,\r\n alarm: tempData[s].alarm,\r\n climateControlled: tempData[s].climateControlled,\r\n covered: tempData[s].covered,\r\n doorType: tempData[s].doorType,\r\n driveUp: tempData[s].driveUp,\r\n dtOnlinePriceChanged: tempData[s].dtOnlinePriceChanged,\r\n dtPriceChanged: tempData[s].dtPriceChanged,\r\n dtPromoChanged: tempData[s].dtPromoChanged,\r\n elevator: tempData[s].elevator,\r\n floor: tempData[s].floor,\r\n humidityControlled: tempData[s].humidityControlled,\r\n isUserStore: tempData[s].isUserStore,\r\n lastCheckedDate: tempData[s].lastCheckedDate,\r\n latitude: tempData[s].latitude,\r\n longitude: tempData[s].longitude,\r\n onlinePrice: tempData[s].onlinePrice,\r\n onlinePriceLastChanged: tempData[s].onlinePriceLastChanged,\r\n outdoorAccess: tempData[s].outdoorAccess,\r\n power: tempData[s].power,\r\n promo: tempData[s].promo,\r\n promoLastChanged: tempData[s].promoLastChanged,\r\n proximity: tempData[s].proximity,\r\n rank: tempData[s].rank,\r\n regPrice: tempData[s].regPrice,\r\n regularPrice: tempData[s].regularPrice,\r\n regularPriceLastChanged: tempData[s].regularPriceLastChanged,\r\n size: tempData[s].size,\r\n spaceId: tempData[s].spaceId,\r\n spaceType: tempData[s].spaceType,\r\n spacetype: tempData[s].spacetype,\r\n state: tempData[s].state,\r\n storeId: tempData[s].storeId,\r\n storeName: tempData[s].storeName,\r\n vehicle: tempData[s].vehicle,\r\n regularPriceVat:tempData[s].regularPriceVat,\r\n onlinePriceVat:tempData[s].onlinePriceVat,\r\n isMonthly:tempData[s].isMonthly,\r\n }\r\n\r\n FData.push(inlineData);\r\n }\r\n }\r\n this.setState({\r\n detailStoreData: FData, isLoading: false,\r\n order: isDesc ? 'asc' : 'desc', orderBy: property, order1: '', orderBy1: '', order2: '', orderBy2: ''\r\n });\r\n })\r\n .catch((err) => {\r\n this.setState({ isLoading: false });\r\n if (err.response.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else {\r\n alert(err.response.data);\r\n }\r\n });\r\n\r\n\r\n }\r\n handleProximitysort(event, property) {\r\n\r\n this.setState({ isLoading: true });\r\n const { order1, orderBy1 } = this.state;\r\n const isDesc = orderBy1 === property && order1 === 'desc';\r\n const detaildata = {\r\n \"UserStoreID\": this.props.userstoreid,\r\n \"SearchID\": this.props.searchId,\r\n \"RegionID\" :CONFIG.RegionId\r\n }\r\n\r\n axios.post(CONFIG.API_URL + 'unit/unitlevelgridview', detaildata)\r\n .then(res => {\r\n //let detailStoreData = [];\r\n let tempdetailStoreData = res.data.data;\r\n // var sortData = tempdetailStoreData.sort((a, b) => (b.proximity - a.proximity));\r\n if (order1 === 'desc') {\r\n var sortByStoreData = tempdetailStoreData.sort((a, b) => (a.proximity - b.proximity));\r\n\r\n }\r\n else {\r\n var sortByStoreData = tempdetailStoreData.sort((a, b) => (b.proximity - a.proximity));\r\n }\r\n // let term = order;\r\n // let option = orderBy;\r\n // var sortByStoreData = tempdetailStoreData.sort((a, b) => {\r\n // return (option == 'asc' ? (a[term] >= b[term] ? -1 : 1) :\r\n // (a[term] <= b[term] ? -1 : 1))\r\n // });\r\n\r\n let uniquestore = [...new Set(sortByStoreData.map(item => item.storeId))];\r\n var detailStoreDatafilter = [];\r\n var detailStoreDatafilterLength = 0;\r\n\r\n for (var t = 0; t < uniquestore.length; t++) {\r\n var tempData = sortByStoreData.filter(a => a.storeId == uniquestore[t]);\r\n for (var s = 0; s < tempData.length; s++) {\r\n var inlineData = {\r\n competitorName: tempData[s].competitorName,\r\n address: s === 0 ? tempData[s].address : '',\r\n alarm: tempData[s].alarm,\r\n climateControlled: tempData[s].climateControlled,\r\n covered: tempData[s].covered,\r\n doorType: tempData[s].doorType,\r\n driveUp: tempData[s].driveUp,\r\n dtOnlinePriceChanged: tempData[s].dtOnlinePriceChanged,\r\n dtPriceChanged: tempData[s].dtPriceChanged,\r\n dtPromoChanged: tempData[s].dtPromoChanged,\r\n elevator: tempData[s].elevator,\r\n floor: tempData[s].floor,\r\n humidityControlled: tempData[s].humidityControlled,\r\n isUserStore: tempData[s].isUserStore,\r\n lastCheckedDate: tempData[s].lastCheckedDate,\r\n latitude: tempData[s].latitude,\r\n longitude: tempData[s].longitude,\r\n onlinePrice: tempData[s].onlinePrice,\r\n onlinePriceLastChanged: tempData[s].onlinePriceLastChanged,\r\n outdoorAccess: tempData[s].outdoorAccess,\r\n power: tempData[s].power,\r\n promo: tempData[s].promo,\r\n promoLastChanged: tempData[s].promoLastChanged,\r\n proximity: s === 0 ? tempData[s].proximity : 'empty',\r\n rank: tempData[s].rank,\r\n regPrice: tempData[s].regPrice,\r\n regularPrice: tempData[s].regularPrice,\r\n regularPriceLastChanged: tempData[s].regularPriceLastChanged,\r\n size: tempData[s].size,\r\n spaceId: tempData[s].spaceId,\r\n spaceType: tempData[s].spaceType,\r\n spacetype: tempData[s].spacetype,\r\n state: tempData[s].state,\r\n storeId: tempData[s].storeId,\r\n storeName: s === 0 ? tempData[s].storeName : '',\r\n vehicle: tempData[s].vehicle,\r\n rowcount: s === 0 ? tempData.length : 0,\r\n regularPriceVat:tempData[s].regularPriceVat,\r\n onlinePriceVat:tempData[s].onlinePriceVat,\r\n isMonthly:tempData[s].isMonthly,\r\n \r\n }\r\n\r\n detailStoreDatafilter.push(inlineData);\r\n }\r\n }\r\n this.setState({\r\n detailStoreDatafilter, detailStoreData: [], tempdetailStoreData, isLoading: false,\r\n order1: isDesc ? 'asc' : 'desc', orderBy1: property, order: '', orderBy: '', order2: '', orderBy2: '',\r\n detailStoreDatafilterLength: uniquestore.length\r\n })\r\n\r\n })\r\n .catch((err) => {\r\n this.setState({ isLoading: false });\r\n if (err.response.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }\r\n handleStoreSort(event, property) {\r\n this.setState({ isLoading: true });\r\n const { order2, orderBy2 } = this.state;\r\n const isDesc = orderBy2 === property && order2 === 'desc';\r\n const detaildata = {\r\n \"UserStoreID\": this.props.userstoreid,\r\n \"SearchID\": this.props.searchId,\r\n \"RegionID\" :CONFIG.RegionId\r\n }\r\n\r\n axios.post(CONFIG.API_URL + 'unit/unitlevelgridview', detaildata)\r\n .then(res => {\r\n let tempdetailStoreData = res.data.data;\r\n if (order2 === 'desc') {\r\n var sortByStoreData = tempdetailStoreData.sort((a, b) => a.storeName.localeCompare(b.storeName));\r\n }\r\n else {\r\n var sortByStoreData = tempdetailStoreData.sort((a, b) => b.storeName.localeCompare(a.storeName));\r\n }\r\n let uniquestore = [...new Set(sortByStoreData.map(item => item.storeId))];\r\n var detailStoreDatafilter = [];\r\n var detailStoreDatafilterLength = 0;\r\n\r\n for (var t = 0; t < uniquestore.length; t++) {\r\n var tempData = sortByStoreData.filter(a => a.storeId == uniquestore[t]);\r\n for (var s = 0; s < tempData.length; s++) {\r\n var inlineData = {\r\n competitorName: tempData[s].competitorName,\r\n address: s === 0 ? tempData[s].address : '',\r\n alarm: tempData[s].alarm,\r\n climateControlled: tempData[s].climateControlled,\r\n covered: tempData[s].covered,\r\n doorType: tempData[s].doorType,\r\n driveUp: tempData[s].driveUp,\r\n dtOnlinePriceChanged: tempData[s].dtOnlinePriceChanged,\r\n dtPriceChanged: tempData[s].dtPriceChanged,\r\n dtPromoChanged: tempData[s].dtPromoChanged,\r\n elevator: tempData[s].elevator,\r\n floor: tempData[s].floor,\r\n humidityControlled: tempData[s].humidityControlled,\r\n isUserStore: tempData[s].isUserStore,\r\n lastCheckedDate: tempData[s].lastCheckedDate,\r\n latitude: tempData[s].latitude,\r\n longitude: tempData[s].longitude,\r\n onlinePrice: tempData[s].onlinePrice,\r\n onlinePriceLastChanged: tempData[s].onlinePriceLastChanged,\r\n outdoorAccess: tempData[s].outdoorAccess,\r\n power: tempData[s].power,\r\n promo: tempData[s].promo,\r\n promoLastChanged: tempData[s].promoLastChanged,\r\n proximity: s === 0 ? tempData[s].proximity : 'empty',\r\n rank: tempData[s].rank,\r\n regPrice: tempData[s].regPrice,\r\n regularPrice: tempData[s].regularPrice,\r\n regularPriceLastChanged: tempData[s].regularPriceLastChanged,\r\n size: tempData[s].size,\r\n spaceId: tempData[s].spaceId,\r\n spaceType: tempData[s].spaceType,\r\n spacetype: tempData[s].spacetype,\r\n state: tempData[s].state,\r\n storeId: tempData[s].storeId,\r\n storeName: s === 0 ? tempData[s].storeName : '',\r\n vehicle: tempData[s].vehicle,\r\n rowcount: s === 0 ? tempData.length : 0,\r\n regularPriceVat:tempData[s].regularPriceVat,\r\n onlinePriceVat:tempData[s].onlinePriceVat,\r\n isMonthly:tempData[s].isMonthly,\r\n\r\n }\r\n\r\n detailStoreDatafilter.push(inlineData);\r\n }\r\n }\r\n this.setState({\r\n detailStoreDatafilter, detailStoreData: [], tempdetailStoreData, isLoading: false,\r\n order2: isDesc ? 'asc' : 'desc', orderBy2: property,\r\n order: '', orderBy: '', order1: '', orderBy1: '',\r\n detailStoreDatafilterLength: uniquestore.length\r\n })\r\n\r\n })\r\n .catch((err) => {\r\n this.setState({ isLoading: false });\r\n if (err.response.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else {\r\n alert(err.response.data);\r\n }\r\n });\r\n\r\n\r\n }\r\n\r\n detailedStoreView() {\r\n if(this.state.orderBy1 === \"proximity\"){\r\n let token = this.state.accessKey;\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n }\r\n \r\n this.setState({ isLoading: true });\r\n \r\n const { order1, orderBy1 } = this.state;\r\n const property = 'proximity';\r\n const isDesc = orderBy1 === property && order1 === 'asc';\r\n const detaildata = {\r\n \"UserStoreID\": this.props.userstoreid,\r\n \"SearchID\": this.props.searchId,\r\n \"RegionID\" :CONFIG.RegionId\r\n }\r\n\r\n axios.post(CONFIG.API_URL + 'unit/unitlevelgridview', detaildata)\r\n .then(res => {\r\n //let detailStoreData = [];\r\n let tempdetailStoreData = res.data.data;\r\n // var sortData = tempdetailStoreData.sort((a, b) => (b.proximity - a.proximity));\r\n if (order1 === 'asc' ) {\r\n var sortByStoreData = tempdetailStoreData.sort((a, b) => (a.proximity - b.proximity));\r\n\r\n }\r\n else {\r\n var sortByStoreData = tempdetailStoreData.sort((a, b) => (b.proximity - a.proximity));\r\n }\r\n \r\n \r\n // let term = order;\r\n // let option = orderBy;\r\n // var sortByStoreData = tempdetailStoreData.sort((a, b) => {\r\n // return (option == 'asc' ? (a[term] >= b[term] ? -1 : 1) :\r\n // (a[term] <= b[term] ? -1 : 1))\r\n // });\r\n\r\n let uniquestore = [...new Set(sortByStoreData.map(item => item.storeId))];\r\n var detailStoreDatafilter = [];\r\n var detailStoreDatafilterLength = 0;\r\n\r\n for (var t = 0; t < uniquestore.length; t++) {\r\n var tempData = sortByStoreData.filter(a => a.storeId == uniquestore[t]);\r\n for (var s = 0; s < tempData.length; s++) {\r\n var inlineData = {\r\n competitorName: tempData[s].competitorName,\r\n address: s === 0 ? tempData[s].address : '',\r\n alarm: tempData[s].alarm,\r\n climateControlled: tempData[s].climateControlled,\r\n covered: tempData[s].covered,\r\n doorType: tempData[s].doorType,\r\n driveUp: tempData[s].driveUp,\r\n dtOnlinePriceChanged: tempData[s].dtOnlinePriceChanged,\r\n dtPriceChanged: tempData[s].dtPriceChanged,\r\n dtPromoChanged: tempData[s].dtPromoChanged,\r\n elevator: tempData[s].elevator,\r\n floor: tempData[s].floor,\r\n humidityControlled: tempData[s].humidityControlled,\r\n isUserStore: tempData[s].isUserStore,\r\n lastCheckedDate: tempData[s].lastCheckedDate,\r\n latitude: tempData[s].latitude,\r\n longitude: tempData[s].longitude,\r\n onlinePrice: tempData[s].onlinePrice,\r\n onlinePriceLastChanged: tempData[s].onlinePriceLastChanged,\r\n outdoorAccess: tempData[s].outdoorAccess,\r\n power: tempData[s].power,\r\n promo: tempData[s].promo,\r\n promoLastChanged: tempData[s].promoLastChanged,\r\n proximity: s === 0 ? tempData[s].proximity : 'empty',\r\n rank: tempData[s].rank,\r\n regPrice: tempData[s].regPrice,\r\n regularPrice: tempData[s].regularPrice,\r\n regularPriceLastChanged: tempData[s].regularPriceLastChanged,\r\n size: tempData[s].size,\r\n spaceId: tempData[s].spaceId,\r\n spaceType: tempData[s].spaceType,\r\n spacetype: tempData[s].spacetype,\r\n state: tempData[s].state,\r\n storeId: tempData[s].storeId,\r\n storeName: s === 0 ? tempData[s].storeName : '',\r\n vehicle: tempData[s].vehicle,\r\n rowcount: s === 0 ? tempData.length : 0,\r\n regularPriceVat:tempData[s].regularPriceVat,\r\n onlinePriceVat:tempData[s].onlinePriceVat,\r\n isMonthly:tempData[s].isMonthly,\r\n promoCount: tempData[s].promoCount,\r\n annexure: tempData[s].annexure\r\n }\r\n detailStoreDatafilter.push(inlineData);\r\n }\r\n }\r\n \r\n let amidx = 1;\r\n for (var i in detailStoreDatafilter) {\r\n if (detailStoreDatafilter[i].promoCount > 50 ) {\r\n detailStoreDatafilter[i].annexure = amidx;\r\n amidx=amidx+1;\r\n }\r\n }\r\n\r\n this.setState({\r\n detailStoreDatafilter, detailStoreData: [], tempdetailStoreData, isLoading: false,\r\n order1: isDesc ? 'asc' : 'desc', orderBy1: property, order: '', orderBy: '', order2: '', orderBy2: '',\r\n detailStoreDatafilterLength: uniquestore.length\r\n }, ()=> {this.annexureSplit();})\r\n\r\n })\r\n .catch((err) => {\r\n this.setState({ isLoading: false });\r\n if (err.response.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }else if(this.state.orderBy2 === \"storeName\"){\r\n let token = this.state.accessKey;\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n }\r\n\r\n this.setState({ isLoading: true });\r\n const { order2, orderBy2 } = this.state;\r\n const property = 'storeName';\r\n const isDesc = orderBy2 === property && order2 === 'desc';\r\n const detaildata = {\r\n \"UserStoreID\": this.props.userstoreid,\r\n \"SearchID\": this.props.searchId,\r\n \"RegionID\" :CONFIG.RegionId\r\n }\r\n\r\n axios.post(CONFIG.API_URL + 'unit/unitlevelgridview', detaildata)\r\n .then(res => {\r\n let tempdetailStoreData = res.data.data;\r\n if (order2 === 'asc') {\r\n var sortByStoreData = tempdetailStoreData.sort((a, b) => a.storeName.localeCompare(b.storeName));\r\n }\r\n else {\r\n var sortByStoreData = tempdetailStoreData.sort((a, b) => b.storeName.localeCompare(a.storeName));\r\n }\r\n let uniquestore = [...new Set(sortByStoreData.map(item => item.storeId))];\r\n var detailStoreDatafilter = [];\r\n var detailStoreDatafilterLength = 0;\r\n\r\n for (var t = 0; t < uniquestore.length; t++) {\r\n var tempData = sortByStoreData.filter(a => a.storeId == uniquestore[t]);\r\n for (var s = 0; s < tempData.length; s++) {\r\n var inlineData = {\r\n competitorName: tempData[s].competitorName,\r\n address: s === 0 ? tempData[s].address : '',\r\n alarm: tempData[s].alarm,\r\n climateControlled: tempData[s].climateControlled,\r\n covered: tempData[s].covered,\r\n doorType: tempData[s].doorType,\r\n driveUp: tempData[s].driveUp,\r\n dtOnlinePriceChanged: tempData[s].dtOnlinePriceChanged,\r\n dtPriceChanged: tempData[s].dtPriceChanged,\r\n dtPromoChanged: tempData[s].dtPromoChanged,\r\n elevator: tempData[s].elevator,\r\n floor: tempData[s].floor,\r\n humidityControlled: tempData[s].humidityControlled,\r\n isUserStore: tempData[s].isUserStore,\r\n lastCheckedDate: tempData[s].lastCheckedDate,\r\n latitude: tempData[s].latitude,\r\n longitude: tempData[s].longitude,\r\n onlinePrice: tempData[s].onlinePrice,\r\n onlinePriceLastChanged: tempData[s].onlinePriceLastChanged,\r\n outdoorAccess: tempData[s].outdoorAccess,\r\n power: tempData[s].power,\r\n promo: tempData[s].promo,\r\n promoLastChanged: tempData[s].promoLastChanged,\r\n proximity: s === 0 ? tempData[s].proximity : 'empty',\r\n rank: tempData[s].rank,\r\n regPrice: tempData[s].regPrice,\r\n regularPrice: tempData[s].regularPrice,\r\n regularPriceLastChanged: tempData[s].regularPriceLastChanged,\r\n size: tempData[s].size,\r\n spaceId: tempData[s].spaceId,\r\n spaceType: tempData[s].spaceType,\r\n spacetype: tempData[s].spacetype,\r\n state: tempData[s].state,\r\n storeId: tempData[s].storeId,\r\n storeName: s === 0 ? tempData[s].storeName : '',\r\n vehicle: tempData[s].vehicle,\r\n rowcount: s === 0 ? tempData.length : 0,\r\n regularPriceVat:tempData[s].regularPriceVat,\r\n onlinePriceVat:tempData[s].onlinePriceVat,\r\n isMonthly:tempData[s].isMonthly,\r\n promoCount: tempData[s].promoCount,\r\n annexure: tempData[s].annexure\r\n\r\n }\r\n\r\n detailStoreDatafilter.push(inlineData);\r\n }\r\n }\r\n \r\n let amidx = 1;\r\n for (var i in detailStoreDatafilter) {\r\n if (detailStoreDatafilter[i].promoCount > 50 ) {\r\n detailStoreDatafilter[i].annexure = amidx;\r\n amidx=amidx+1;\r\n }\r\n }\r\n \r\n this.setState({\r\n detailStoreDatafilter, detailStoreData: [], tempdetailStoreData, isLoading: false,\r\n order2: isDesc ? 'asc' : 'desc', orderBy2: property,\r\n order: '', orderBy: '', order1: '', orderBy1: '',\r\n detailStoreDatafilterLength: uniquestore.length\r\n }, ()=> {this.annexureSplit(); })\r\n\r\n })\r\n .catch((err) => {\r\n this.setState({ isLoading: false });\r\n if (err.response.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }else{\r\n let token = this.state.accessKey;\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n }\r\n\r\n this.setState({ isLoading: true });\r\n const { order, orderBy } = this.state;\r\n const property = this.state.orderBy;\r\n const isDesc = orderBy === property && order === 'asc';\r\n \r\n const detaildata = {\r\n \"UserStoreID\": this.props.userstoreid,\r\n \"SearchID\": this.props.searchId,\r\n \"RegionID\" :CONFIG.RegionId\r\n }\r\n\r\n axios.post(CONFIG.API_URL + 'unit/unitlevelgridview', detaildata)\r\n .then(res => { \r\n let detailStoreData = res.data.data;\r\n // var sortData = detailStoreData.sort((a, b) => (b.storeId - a.storeId));\r\n \r\n let uniquestore = [...new Set(detailStoreData.map(item => item.storeId))];\r\n var FData = [];\r\n for (var t = 0; t < uniquestore.length; t++) {\r\n var tempData = detailStoreData.filter(a => a.storeId == uniquestore[t]);\r\n for (var s = 0; s < tempData.length; s++) {\r\n var inlineData = {\r\n rowcount: 1,\r\n competitorName: tempData[s].competitorName,\r\n address: tempData[s].address,\r\n alarm: tempData[s].alarm,\r\n climateControlled: tempData[s].climateControlled,\r\n covered: tempData[s].covered,\r\n doorType: tempData[s].doorType,\r\n driveUp: tempData[s].driveUp,\r\n dtOnlinePriceChanged: tempData[s].dtOnlinePriceChanged,\r\n dtPriceChanged: tempData[s].dtPriceChanged,\r\n dtPromoChanged: tempData[s].dtPromoChanged,\r\n elevator: tempData[s].elevator,\r\n floor: tempData[s].floor,\r\n humidityControlled: tempData[s].humidityControlled,\r\n isUserStore: tempData[s].isUserStore,\r\n lastCheckedDate: tempData[s].lastCheckedDate,\r\n latitude: tempData[s].latitude,\r\n longitude: tempData[s].longitude,\r\n onlinePrice: tempData[s].onlinePrice,\r\n onlinePriceLastChanged: tempData[s].onlinePriceLastChanged,\r\n outdoorAccess: tempData[s].outdoorAccess,\r\n power: tempData[s].power,\r\n promo: tempData[s].promo,\r\n promoLastChanged: tempData[s].promoLastChanged,\r\n proximity: tempData[s].proximity,\r\n rank: tempData[s].rank,\r\n regPrice: tempData[s].regPrice,\r\n regularPrice: tempData[s].regularPrice,\r\n regularPriceLastChanged: tempData[s].regularPriceLastChanged,\r\n size: tempData[s].size,\r\n spaceId: tempData[s].spaceId,\r\n spaceType: tempData[s].spaceType,\r\n spacetype: tempData[s].spacetype,\r\n state: tempData[s].state,\r\n storeId: tempData[s].storeId,\r\n storeName: tempData[s].storeName,\r\n vehicle: tempData[s].vehicle,\r\n regularPriceVat:tempData[s].regularPriceVat,\r\n onlinePriceVat:tempData[s].onlinePriceVat,\r\n isMonthly:tempData[s].isMonthly,\r\n promoCount: tempData[s].promoCount,\r\n annexure: tempData[s].annexure\r\n }\r\n\r\n FData.push(inlineData);\r\n }\r\n }\r\n var sortData ='';\r\n let orderBy2 ='';\r\n if (orderBy == \"onlinePrice\") {\r\n if (order === 'asc') {\r\n var sortData = FData.sort((a, b) => (a.onlinePrice - b.onlinePrice));\r\n }\r\n else {\r\n var sortData = FData.sort((a, b) => (b.onlinePrice - a.onlinePrice));\r\n }\r\n } \r\n else if(orderBy ==\"size\"){\r\n \r\n if (order === 'asc') {\r\n \r\n var sortData = FData.sort((a, b) => a.size.localeCompare(b.size));\r\n }\r\n else {\r\n var sortData = FData.sort((a, b) => b.size.localeCompare(a.size));\r\n }\r\n }\r\n else if(orderBy ==\"floor\"){\r\n \r\n if (order === 'asc') {\r\n \r\n var sortData = FData.sort((a, b) => a.floor.localeCompare(b.floor));\r\n }\r\n else {\r\n var sortData = FData.sort((a, b) => b.floor.localeCompare(a.floor));\r\n }\r\n }\r\n else if(orderBy ==\"dtOnlinePriceChanged\"){\r\n \r\n if (order === 'asc') {\r\n \r\n var sortData = FData.sort((a, b) => a.dtOnlinePriceChanged.localeCompare(b.dtOnlinePriceChanged));\r\n }\r\n else {\r\n var sortData = FData.sort((a, b) => b.dtOnlinePriceChanged.localeCompare(a.dtOnlinePriceChanged));\r\n }\r\n }\r\n else if(orderBy ==\"regPrice\"){\r\n \r\n if (order === 'asc') {\r\n var sortData = FData.sort((a, b) => (a.regPrice - b.regPrice));\r\n }\r\n else {\r\n var sortData = FData.sort((a, b) => (b.regPrice - a.regPrice));\r\n }\r\n }\r\n else if(orderBy ==\"dtPriceChanged\"){\r\n \r\n if (order === 'asc') {\r\n \r\n var sortData = FData.sort((a, b) => a.dtPriceChanged.localeCompare(b.dtPriceChanged));\r\n }\r\n else {\r\n var sortData = FData.sort((a, b) => b.dtPriceChanged.localeCompare(a.dtPriceChanged));\r\n }\r\n }\r\n else if(orderBy ==\"promo\"){\r\n \r\n if (order === 'asc') {\r\n \r\n var sortData = FData.sort((a, b) => a.promo.localeCompare(b.promo));\r\n }\r\n else {\r\n var sortData = FData.sort((a, b) => b.promo.localeCompare(a.promo));\r\n }\r\n }\r\n else if(orderBy ==\"dtPromoChanged\"){\r\n \r\n if (order === 'asc') {\r\n \r\n var sortData = FData.sort((a, b) => a.dtPromoChanged.localeCompare(b.dtPromoChanged));\r\n }\r\n else {\r\n var sortData = FData.sort((a, b) => b.dtPromoChanged.localeCompare(a.dtPromoChanged));\r\n }\r\n }\r\n \r\n let amidx = 1;\r\n for (var i in sortData) {\r\n if (sortData[i].promoCount > 50 ) {\r\n sortData[i].annexure = amidx;\r\n amidx=amidx+1;\r\n }\r\n }\r\n this.setState({ detailStoreData: sortData, isLoading: false, order: isDesc ? 'asc' : 'desc', orderBy: property, order1: '', orderBy1: '', order2: '', orderBy2: ''}, () => {\r\n this.annexureSplit();\r\n });\r\n\r\n\r\n })\r\n .catch((err) => {\r\n this.setState({ isLoading: false });\r\n if (err.response.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }\r\n }\r\n annexureSplit(){\r\n // for annexure split\r\n let fixedSize = 1200;\r\n let finalResultSet = [];\r\n let tempresult = [];\r\n let annexSum = 0;\r\n let sliceCount = 0;\r\n let fullData = this.state.detailStoreData && this.state.detailStoreData.length > 0 ? this.state.detailStoreData : this.state.detailStoreDatafilter && this.state.detailStoreDatafilter.length > 0 ? this.state.detailStoreDatafilter : [];\r\n let annexureArrObj = fullData.filter((annex) => annex.annexure !== 0);\r\n annexureArrObj.sort(function (a, b) {\r\n var textA = a.annexure;\r\n var textB = b.annexure;\r\n return (textA < textB) ? -1 : (textA > textB) ? 1 : 0 ;\r\n });\r\n // let annexureArrObj = this.state.needComparePromos.filter((annex) => annex.annexure !== 0); \r\n for (let annex = 0; annex < annexureArrObj.length; annex++){\t\t \r\n let annexure = annexureArrObj[annex];\t\t\t\r\n annexSum += annexure.promoCount;\r\n if(annexSum >= 2200){\r\n annex = annex -1;\r\n annexSum = 0;\r\n finalResultSet.push(tempresult);\r\n tempresult = [];\r\n }else{\r\n tempresult.push(annexure);\r\n }\r\n }\r\n if(tempresult.length>0)\r\n finalResultSet.push(tempresult);\r\n this.setState({ annexureFilters : finalResultSet});\r\n console.log(finalResultSet, 'check-annexure');\r\n // console.log(finalResultSet);\r\n}\r\n\r\n\r\n render() {\r\n document.title = 'StorTrack: Self-storage market pricing data';\r\n const {analysisSummary, detailStoreData,locationInfoData, isLoading, detailStoreDatafilter, detailStoreDatafilterLength, rowsPerPage, page, pageCount, order, orderBy, order1, orderBy1, order2, orderBy2, annexureFilters } = this.state;\r\n //'HideCompetitor'\r\n const defaultProps = {\r\n helpTitle: \"Detailed View of Stores\",\r\n helpContent: \"

This is a spreadsheet style view of the stores advertising this unit currently. It shows the store, the proximity to your address, the unit size, the floor in which the unit is located (Ground or Upper floor) and any features advertised for this unit type by the store. Additionally, the rates (both Advertised Online Rate and Advertised Walk-in Rate), unit-specific promotions and the last time these were changed on the store's website.

*Your store prices are included in the calculations.

Refer the below help video for more information.

\"\r\n }\r\n const GridTableValue = detailStoreData.length > 0 ? detailStoreData.length : detailStoreDatafilter.length > 0 ? detailStoreDatafilter.length : 0;\r\n const GridTableValueData = detailStoreData.length > 0 ? detailStoreData : detailStoreDatafilter.length > 0 ? detailStoreDatafilter : [];\r\n const tr = [...Array( Math.ceil( GridTableValue / 21) )];\r\n const trproductRows = tr.map( (row, idx) => GridTableValueData.slice(idx * 21, idx * 21 + 21) );\r\n let cutCur = locationInfoData.countryCurrency ? locationInfoData.countryCurrency : 'N/A';\r\n let clp = analysisSummary.lowestPrice;\r\n let cap = analysisSummary.averagePrice;\r\n let chp = analysisSummary.highestPrice;\r\n if(clp){\r\n var splt_clp = clp.toString().split('.');\r\n let splt_val_clp = splt_clp[1] ? splt_clp[1].length === 1 ? '.'+splt_clp[1]+'0' : splt_clp[1].length === 2 ? '.'+splt_clp[1] : '' : '';\r\n clp = cutCur+ splt_clp[0]+splt_val_clp;\r\n }\r\n if(cap){\r\n var splt_cap = cap.toString().split('.');\r\n let splt_val_cap = splt_cap[1] ? splt_cap[1].length === 1 ? '.'+splt_cap[1]+\"0\" : splt_cap[1].length === 2 ? '.'+splt_cap[1] : '' : '';\r\n cap = cutCur+ splt_cap[0]+splt_val_cap;\r\n }\r\n if(chp){\r\n var splt_chp = chp.toString().split('.');\r\n let splt_val_chp = splt_chp[1] ? splt_chp[1].length === 1 ? '.'+splt_chp[1]+'0' : splt_chp[1].length === 2 ? '.'+splt_chp[1] : '' : '';\r\n chp = cutCur+ splt_chp[0]+splt_val_chp;\r\n }\r\n const nameCount = locationInfoData.storeName ? locationInfoData.storeName.length : 0;\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
{locationInfoData.storeName && locationInfoData.storeName !== null && locationInfoData.storeName !== '' ? nameCount > CONFIG.storeNameMaxLimit ? locationInfoData.storeName.substring(0,CONFIG.storeNameMaxLimit-3) + '...' : locationInfoData.storeName : isLoading === false ? 'Your Store' : ''}
\r\n
\r\n

\r\n {/* {locationInfoData.storeAddress1 && locationInfoData.storeAddress1 !== null && locationInfoData.storeAddress1 !== '' ? locationInfoData.storeAddress1 + \", \": '' + locationInfoData && locationInfoData.storeCity ? locationInfoData.storeCity + \", \" : locationInfoData.searchType === 1 && (locationInfoData.storeCity === '' || locationInfoData.storeCity === null) && (locationInfoData.storeZipCode === '' || locationInfoData.storeZipCode === null) ? locationInfoData.latitude+', ' +locationInfoData.longitude+', ': ''}{locationInfoData.storeState + ' ' + locationInfoData.storeZipCode} {locationInfoData.storeZoneCoverage ? \"| Coverage: \"+ locationInfoData.storeZoneCoverage : 'N/A'} */}\r\n {locationInfoData.storeAddress1 && locationInfoData.storeAddress1 !== null && locationInfoData.storeAddress1 !== '' ? locationInfoData.storeAddress1 + \", \": '' + locationInfoData && locationInfoData.storeCity ? locationInfoData.storeCity + \", \" : locationInfoData.searchType === 1 && (locationInfoData.storeCity === '' || locationInfoData.storeCity === null) && (locationInfoData.storeZipCode === '' || locationInfoData.storeZipCode === null) ? locationInfoData.latitude+', ' +locationInfoData.longitude+', ': ''}{locationInfoData.storeState ? locationInfoData.storeState+' ':''}{locationInfoData.storeZipCode} {locationInfoData.storeZoneCoverage ? \"| Coverage: \"+ locationInfoData.storeZoneCoverage : 'N/A'}\r\n

\r\n
\r\n
\r\n
\r\n {CONFIG.Website_Text_Footer_Pdf} | {CONFIG.Phone_Footer_Pdf} | {CONFIG.Mail_Footer_Pdf} | \"Optimize\r\n
\r\n
\r\n {/* You have setup {detailStoreData && detailStoreData.length > 0 ? detailStoreData.length : '0'}. */}\r\n {trproductRows ? trproductRows.map((rows, i) => ( \r\n
\r\n { i === 0 ?
{'(' + locationInfoData.searchName + ')'} Detailed view of Stores
\r\n \r\n
\r\n

{CONFIG.RegionId === 3 ? \"Current Lowest Weekly Price\" : \"Current Lowest Price\"}

\r\n

{analysisSummary ? analysisSummary.lowestPriceStoreName : isLoading===false ? 'N/A':''}

\r\n
{clp ? clp : isLoading===false ? 'N/A':''}
\r\n
\r\n
\r\n

{CONFIG.RegionId === 3 ? \"Current Average Weekly Price\" : \"Current Average Price\"}

\r\n
{cap ? cap : isLoading===false ? 'N/A':''}
\r\n
\r\n
\r\n

{CONFIG.RegionId === 3 ? \"Current Highest Weekly Price\" : \"Current Highest Price\" }

\r\n

{analysisSummary ? analysisSummary.highestPriceStoreName : isLoading===false ? 'N/A':''}

\r\n
{chp ? chp : isLoading===false ? 'N/A':''}
\r\n
\r\n
\r\n
\r\n \r\n

This is a spreadsheet style view of the stores advertising this unit currently. It shows the store, the proximity to your address, the unit size, the floor in which the unit is located (Ground or Upper floor) and any features advertised for this unit type by the store. Additionally, the rates (both Advertised Online Rate and Advertised Walk-in Rate), unit-specific promotions and the last time these were changed on the store's website.\r\n

*Your store prices are included in the calculations.

: ''}\r\n {isLoading ?
: ''}\r\n {CONFIG.RegionId === 3 && i === 0 ?\r\n

* This rate is calculated from an advertised monthly rate

\r\n :''}\r\n \r\n \r\n \r\n {/* \r\n \r\n storeName\r\n \r\n \r\n */}\r\n \r\n {\r\n detailStoreData && detailStoreData.length > 0 ?\r\n this.stableSort(rows, this.getSorting(order, orderBy)).map((category, index) =>\r\n \r\n \r\n \r\n {/* this.getParams(category.storeName, category.storeId)} className=\"storename\">{category.storeName} */}\r\n {category.storeName}
\r\n {category.address}\r\n
\r\n \r\n {category.proximity.toFixed(2)} {(CONFIG.RegionId == 2) || (CONFIG.RegionId == 4) ? ' '+'km':' '+'mi'}\r\n \r\n {category.size}\r\n {category.spaceType.toLowerCase().replace(' ', '') === \"storageunit\" ? : ''}\r\n {category.spaceType.toLowerCase().replace(' ', '') === \"apartment\" ? : ''}\r\n {category.spaceType.toLowerCase().replace(' ', '') === \"artstudio\" ? : ''}\r\n {category.spaceType.toLowerCase().replace(' ', '') === \"box\" ? : ''}\r\n {category.spaceType.toLowerCase().replace(' ', '') === \"celltower\" ? : ''}\r\n {category.spaceType.toLowerCase().replace(' ', '') === \"container\" ? : ''}\r\n {category.spaceType.toLowerCase().replace(' ', '') === \"filestorage\" ? : ''}\r\n {category.spaceType.toLowerCase().replace(' ', '') === \"office\" ? : ''}\r\n {category.spaceType.toLowerCase().replace(' ', '') === \"mailbox\" ? : ''}\r\n {category.spaceType.toLowerCase().replace(' ', '') === \"parking\" ? : ''}\r\n {category.spaceType.toLowerCase().replace(' ', '') === \"unit\" ? : ''}\r\n {category.spaceType.toLowerCase().replace(' ', '') === \"warehouse\" ? : ''}\r\n {category.spaceType.toLowerCase().replace(' ', '') === \"winestorage\" ? : ''}\r\n {category.spaceType.toLowerCase().replace(' ', '') === \"workshop\" ? : ''}\r\n {category.spaceType.toLowerCase().replace(' ', '') === \"locker\" ? : ''}\r\n \r\n {category.floor}\r\n \r\n\r\n {category.alarm === 1 ? : ''}\r\n {category.climateControlled === 1 ? : ''}\r\n {category.doorType > 0 ? : ''}\r\n {category.driveUp === 1 ? : ''}\r\n {category.elevator === 1 ? : ''}\r\n {category.humidityControlled === 1 ? : ''}\r\n {category.outdoorAccess === 1 ? : ''}\r\n {category.power === 1 ? : ''}\r\n {category.onlinePrice >= 1 && locationInfoData.countryCurrency ? {locationInfoData.countryCurrency + category.onlinePrice} : 'N/A'}{(category.isMonthly && category.isMonthly === 1) && (CONFIG.RegionId === 3) ? * :''}\r\n {/* {CONFIG.RegionId ===3?{category.onlinePriceVat ==1?:category.onlinePriceVat ==0?:'--'}:''} */}\r\n {moment(category.dtOnlinePriceChanged).format('DD-MMM-YYYY')}\r\n {category.regPrice >= 1 && locationInfoData.countryCurrency ? {locationInfoData.countryCurrency + category.regPrice} : 'N/A'}{(category.isMonthly && category.isMonthly === 1) && (CONFIG.RegionId === 3) ? * :''}\r\n {/* {CONFIG.RegionId ===3?{category.regularPriceVat ==1?:category.regularPriceVat ==0?:'--'}:''} */}\r\n {moment(category.dtPriceChanged).format('DD-MMM-YYYY')}\r\n {category.promo && category.promoCount > 50 ? 'Annexure -'+category.annexure : category.promo}\r\n {moment(category.dtPromoChanged).format('DD-MMM-YYYY')}\r\n\r\n\r\n\r\n
\r\n )\r\n :\r\n detailStoreDatafilter && detailStoreDatafilter.length > 0 ?\r\n rows.map((category, index) =>\r\n 0 ? 'table-body gropup-data border-tr' : 'no-border'}>\r\n {category.storeName !== '' ? \r\n {/* this.getParams(category.storeName, category.storeId)} className=\"storename\">{category.storeName} */}\r\n {category.storeName}
\r\n {category.address}\r\n
: }\r\n {category.proximity !== 'empty' ? 0 ? 'border-right-cell' : ''}>\r\n {category.proximity.toFixed(2)}{(CONFIG.RegionId == 2) ||(CONFIG.RegionId == 4) ? ' '+'km' :' '+'mi'}\r\n : }\r\n {category.size}\r\n {category.spaceType.toLowerCase().replace(' ', '') === \"storageunit\" ? : ''}\r\n {category.spaceType.toLowerCase().replace(' ', '') === \"apartment\" ? : ''}\r\n {category.spaceType.toLowerCase().replace(' ', '') === \"artstudio\" ? : ''}\r\n {category.spaceType.toLowerCase().replace(' ', '') === \"box\" ? : ''}\r\n {category.spaceType.toLowerCase().replace(' ', '') === \"celltower\" ? : ''}\r\n {category.spaceType.toLowerCase().replace(' ', '') === \"container\" ? : ''}\r\n {category.spaceType.toLowerCase().replace(' ', '') === \"filestorage\" ? : ''}\r\n {category.spaceType.toLowerCase().replace(' ', '') === \"office\" ? : ''}\r\n {category.spaceType.toLowerCase().replace(' ', '') === \"mailbox\" ? : ''}\r\n {category.spaceType.toLowerCase().replace(' ', '') === \"parking\" ? : ''}\r\n {category.spaceType.toLowerCase().replace(' ', '') === \"unit\" ? : ''}\r\n {category.spaceType.toLowerCase().replace(' ', '') === \"warehouse\" ? : ''}\r\n {category.spaceType.toLowerCase().replace(' ', '') === \"winestorage\" ? : ''}\r\n {category.spaceType.toLowerCase().replace(' ', '') === \"workshop\" ? : ''}\r\n {category.spaceType.toLowerCase().replace(' ', '') === \"locker\" ? : ''}\r\n \r\n {category.floor}\r\n \r\n\r\n {category.alarm === 1 ? : ''}\r\n {category.climateControlled === 1 ? : ''}\r\n {category.doorType > 0 ? : ''}\r\n {category.driveUp === 1 ? : ''}\r\n {category.elevator === 1 ? : ''}\r\n {category.humidityControlled === 1 ? : ''}\r\n {category.outdoorAccess === 1 ? : ''}\r\n {category.power === 1 ? : ''}\r\n {category.onlinePrice >= 1 && locationInfoData.countryCurrency ? {locationInfoData.countryCurrency + category.onlinePrice} : 'N/A'}{(category.isMonthly && category.isMonthly === 1) && (CONFIG.RegionId === 3) ? * :''}\r\n {/* {CONFIG.RegionId ===3?{category.onlinePriceVat ==1?:category.onlinePriceVat ==0?:'--'}:''} */}\r\n {moment(category.dtOnlinePriceChanged).format('DD-MMM-YYYY')}\r\n {category.regPrice >= 1 && locationInfoData.countryCurrency ? {locationInfoData.countryCurrency + category.regPrice} : 'N/A'}{(category.isMonthly && category.isMonthly === 1) && (CONFIG.RegionId === 3) ? * :''}\r\n {/* {CONFIG.RegionId ===3?{category.regularPriceVat ==1?:category.regularPriceVat ==0?:'--'}:''} */}\r\n {moment(category.dtPriceChanged).format('DD-MMM-YYYY')}\r\n {category.promo && category.promoCount > 50 ? 'Annexure -'+category.annexure : category.promo}\r\n {moment(category.dtPromoChanged).format('DD-MMM-YYYY')}\r\n\r\n\r\n
\r\n )\r\n :\r\n \r\n {isLoading===false ? 'No data Available.':''}\r\n \r\n }\r\n\r\n
\r\n {/* {\r\n detailStoreData && detailStoreData.length > 0 ?\r\n \r\n \r\n \r\n \r\n \r\n :''} */}\r\n
\r\n
\r\n {/* {CONFIG.RegionId ===3?\r\n
\r\n \r\n Legend:\r\n Price includes VAT\r\n Price excludes VAT \r\n --Unknown if price includes VAT\r\n \r\n
\r\n :\"\"\r\n } */}\r\n
\r\n ))\r\n : '' } \r\n
\r\n
0 ? {display: 'block'} : {display: 'none'}}>\r\n {annexureFilters && annexureFilters.length !== 0 ? annexureFilters.map((rows, i) => (\r\n
\r\n
\r\n {annexureFilters && rows.length != 0 ? rows.map((row1, annexure) => {\r\n return (\r\n
\r\n

Annexure({row1.annexure}) :

\r\n
{row1.promo}
\r\n
\r\n )\r\n })\r\n : ''\r\n }\r\n
\r\n
\r\n ))\r\n : ''}\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nCustomDetailedStoresViewPdf.propTypes = {\r\n // classes: PropTypes.object.isRequired,\r\n};\r\n\r\nexport default CustomDetailedStoresViewPdf;","import React from 'react';\r\nimport ReactDOM from \"react-dom\";\r\nimport { Row, Col } from 'reactstrap';\r\nimport { Table } from 'reactstrap';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faEyeSlash } from '@fortawesome/free-solid-svg-icons';\r\nimport { faStar } from '@fortawesome/free-solid-svg-icons';\r\nimport { faCheck } from '@fortawesome/free-solid-svg-icons';\r\nimport { faTimes } from '@fortawesome/free-solid-svg-icons';\r\nimport Avatar from '@material-ui/core/Avatar';\r\nimport './CompOverviewPdf.css';\r\nimport axios from 'axios';\r\nimport moment from 'moment';\r\nimport { CONFIG } from './../../../utils/config';\r\nimport { MissingCompetitor } from '../../MissingCompetitor';\r\nimport { MarketProfile } from '../../MarketProfile';\r\nimport noImage from './../../../Assets/Images/no-image.jpg';\r\nimport { StoreStreetView } from '../../StoreStreetView';\r\nimport homeIcon from './../../../Assets/Images/home-icon-circle.png';\r\nimport Logo from './../../../Assets/Images/logo.jpg';\r\nimport MapGL, { Layer, Source, Marker, WebMercatorViewport, FlyToInterpolator } from \"react-map-gl\";\r\nimport \"mapbox-gl/dist/mapbox-gl.css\";\r\n\r\nconst params = { v: '3.exp', key: CONFIG.GoogleMapsApiKey };\r\n\r\nconst layerStyle = {\r\n id: \"point\",\r\n type: \"circle\",\r\n paint: {\r\n \"circle-radius\": 5,\r\n \"circle-color\": [\"get\", \"colorCode\"],\r\n },\r\n};\r\n\r\nexport class InfoWindowEx extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.onInfoWindowOpen = this.onInfoWindowOpen.bind(this);\r\n if (!this.containerElement) {\r\n this.containerElement = document.createElement(`div`);\r\n }\r\n }\r\n\r\n onInfoWindowOpen() {\r\n ReactDOM.render(\r\n React.Children.only(this.props.children),\r\n this.containerElement\r\n );\r\n this.infoWindowRef.current.infowindow.setContent(this.containerElement);\r\n }\r\n}\r\n\r\nexport default class CompOverviewPdf extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.infoWindowRef = React.createRef();\r\n this.mapRef = React.createRef();\r\n this.child = React.createRef();\r\n this.compstorechild = React.createRef();\r\n this.storeImageStreetView = React.createRef();\r\n this.state = {\r\n compOverviewData: [],\r\n storeData: [],\r\n locationInfoData: [],\r\n isLoading: false,\r\n dropDownValue: \"Sort by\",\r\n sordOrder: '',\r\n accessKey: '',\r\n viewport: {\r\n // width: \"100%\",\r\n // height: \"100vh\",\r\n longitude: 0,\r\n latitude: 0,\r\n zoom: 10,\r\n },\r\n homeLatLng: { longitude: 0, latitude: 0 }\r\n };\r\n this.getParams = this.getParams.bind(this);\r\n this.getParams1 = this.getParams1.bind(this);\r\n this.addDefaultSrcMap = this.addDefaultSrcMap.bind(this);\r\n }\r\n\r\n getParams(name, sid) {\r\n this.child.current.toggleModal(name, sid);\r\n }\r\n\r\n getStoreStreeView(lat, lon, name) {\r\n this.storeImageStreetView.current.toggleStoreModal(lat, lon, name);\r\n }\r\n\r\n NumberFormat(number) {\r\n return new Intl.NumberFormat().format(number);\r\n }\r\n\r\n loadDashBoard() {\r\n let token = this.state.accessKey;\r\n const data = {\r\n \"UserStoreID\": parseInt(this.props.storeid),\r\n \"RegionId\": CONFIG.RegionId\r\n }\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n }\r\n axios.post(CONFIG.API_URL + 'dashboard/dashboardlocation', data)\r\n .then(response => {\r\n // let zoomValue;\r\n const locationInfoData = response.data.data.storeDashboard;\r\n // const centerPoint = response.data.data.centerPointDetail;\r\n // if (locationInfoData.searchType === 3) {\r\n // zoomValue = 10;\r\n // } else if (locationInfoData.searchType === 2) {\r\n // let zCnt = locationInfoData.storeZoneCoverage != \"\" && locationInfoData.storeZoneCoverage != null ? (locationInfoData.storeZoneCoverage.split(\",\").length - 1) : 1;\r\n // zoomValue = (zCnt > 1) ? 9 : (zCnt > 0) ? 10 : 12;\r\n // } else if (locationInfoData.searchType === 1) {\r\n // let storeZoneCoverage = locationInfoData.storeZoneCoverage.split(' ');\r\n // zoomValue = (storeZoneCoverage[0] === '1' || storeZoneCoverage[0] === '2' || storeZoneCoverage[0] === '3') ? 13 : (storeZoneCoverage[0] === '4' || storeZoneCoverage[0] === '5' || storeZoneCoverage[0] === '6') ? 12 : (storeZoneCoverage[0] === '6' || storeZoneCoverage[0] === '7') ? 11 : (storeZoneCoverage[0] === '8' || storeZoneCoverage[0] === '9' || storeZoneCoverage[0] === '10') ? 10 : 6;\r\n // }\r\n // let lgt = (centerPoint && (centerPoint.length > 0 && centerPoint[0].longitude != null) ? parseFloat(centerPoint[0].longitude) : parseFloat(locationInfoData.longitude));\r\n // let ltd = (centerPoint && (centerPoint.length > 0 && centerPoint[0].latitude != null) ? parseFloat(centerPoint[0].latitude) : parseFloat(locationInfoData.latitude));\r\n let lgt = parseFloat(locationInfoData.longitude);\r\n let ltd = parseFloat(locationInfoData.latitude);\r\n this.setState(prevState => ({\r\n locationInfoData: locationInfoData,\r\n viewport: {\r\n ...prevState.viewport,\r\n longitude: lgt,\r\n latitude: ltd,\r\n // zoom: zoomValue\r\n },\r\n homeLatLng: { longitude: lgt, latitude: ltd }\r\n }), () => this.compOverview());\r\n }).catch((err) => {\r\n if (err.response.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else if (err.response.status === 403) {\r\n const { from } = this.props.location.state || { from: { pathname: \"/UnauthorizedAccess\" } };\r\n this.props.history.push(from);\r\n }\r\n else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }\r\n\r\n getBoundingValues = (points) => {\r\n if (points.length) {\r\n const paddingLength = window.innerHeight / 3;\r\n const applyToArray = (func, array) => func.apply(Math, array);\r\n const pointsLong = points.map((point) => point.geometry.coordinates[0]);\r\n const pointsLat = points.map((point) => point.geometry.coordinates[1]);\r\n if (!pointsLong.includes(this.state.homeLatLng.longitude)) pointsLong.push(this.state.homeLatLng.longitude);\r\n if (!pointsLat.includes(this.state.homeLatLng.latitude)) pointsLat.push(this.state.homeLatLng.latitude);\r\n const cornersLongLat = [\r\n [applyToArray(Math.min, pointsLong), applyToArray(Math.min, pointsLat)],\r\n [applyToArray(Math.max, pointsLong), applyToArray(Math.max, pointsLat)],\r\n ];\r\n const viewport = new WebMercatorViewport({\r\n width: window.innerWidth,\r\n height: window.innerHeight,\r\n }).fitBounds(cornersLongLat, {\r\n padding: { top: paddingLength, bottom: paddingLength, left: paddingLength, right: paddingLength },\r\n });\r\n const { longitude, latitude, zoom } = viewport;\r\n this.setState(prevState => {\r\n return {\r\n viewport: {\r\n ...prevState.viewport,\r\n latitude: latitude,\r\n longitude: longitude,\r\n zoom: zoom,\r\n transitionDuration: 100,\r\n transitionInterpolator: new FlyToInterpolator(),\r\n }\r\n }\r\n });\r\n }\r\n };\r\n\r\n compOverview() {\r\n const data = {\r\n \"UserStoreID\": parseInt(this.props.storeid),\r\n \"RegionId\": CONFIG.RegionId\r\n }\r\n let token = this.state.accessKey;\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n }\r\n axios.post(CONFIG.API_URL + 'dashboard/compsoverviewdata/map', data)\r\n .then(res => {\r\n const compOverviewData = res.data.data;\r\n const storeData = compOverviewData.storeData;\r\n this.setState({ compOverviewData: compOverviewData, storeData: storeData, isLoading: false }, () => this.getBoundingValues(storeData));\r\n })\r\n .catch((err) => {\r\n this.setState({ isLoading: false });\r\n if (err.response.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else if (err.response.status === 403) {\r\n const { from } = this.props.location.state || { from: { pathname: \"/UnauthorizedAccess\" } };\r\n this.props.history.push(from);\r\n }\r\n else if (err.response.status === 400) {\r\n alert(err.response.data.Message);\r\n }\r\n else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }\r\n\r\n addDefaultSrc(ev) {\r\n if (ev.target.src != null) {\r\n var imageName = require('./../../../Assets/Images/no-image.jpg');\r\n ev.target.src = imageName;\r\n ev.target.className = \"noimages Unit-Store-Img\";\r\n }\r\n }\r\n\r\n addDefaultSrcMap(ev) {\r\n if (ev.target.src != null) {\r\n var imageName = require('./../../../Assets/Images/no-image.jpg');\r\n ev.target.src = imageName;\r\n this.setState({ imagePath: noImage });\r\n }\r\n }\r\n async UNSAFE_componentWillMount() {\r\n const data = {\r\n \"SecretKey\": this.props.accessKey,\r\n \"RegionId\": CONFIG.RegionId\r\n }\r\n\r\n const response = await axios.post(CONFIG.API_URL + 'account/secretlogin', data);\r\n if (response.status === 200) {\r\n this.state.accessKey = response.data.token;\r\n this.initialLoad();\r\n } else {\r\n alert(response.status.Message);\r\n }\r\n }\r\n initialLoad() {\r\n let sordOrder = this.props.sortId.toString();\r\n let sortingChange = sordOrder === \"1\" ? \"Proximity\" : sordOrder === \"2\" ? \"Store Name\" : sordOrder === \"3\" ? \"Total Square Footage\" : sordOrder === \"4\" ? \"Year Built\" : \"Sort by\";\r\n this.setState({ isLoading: true, dropDownValue: sortingChange });\r\n this.loadDashBoard();\r\n }\r\n\r\n getParams1(storeAddress) {\r\n let storeId = parseInt(this.props.match.params.userstoreid);\r\n this.compstorechild.current.toggleStoreModal(storeAddress, storeId);\r\n }\r\n\r\n handleViewportChange = (viewport) => {\r\n this.setState({ viewport });\r\n }\r\n\r\n render() {\r\n document.title = 'StorTrack: Self-storage market pricing data';\r\n const { locationInfoData, isLoading, strImageMap } = this.state;\r\n const { compOverviewData, storeData, viewport } = this.state;\r\n const len = storeData.length === 4 ? 2 : 9;\r\n const tr = [...Array(Math.ceil(storeData.length / len))];\r\n const trproductRows = tr.map((row, idx) => storeData.slice(idx * len, idx * len + len));\r\n const nameCount = locationInfoData.storeName ? locationInfoData.storeName.length : 0;\r\n return (\r\n
\r\n {isLoading ?
: ''}\r\n
\r\n \r\n
\r\n
{locationInfoData.storeName && locationInfoData.storeName !== null && locationInfoData.storeName !== '' ? nameCount > CONFIG.storeNameMaxLimit ? locationInfoData.storeName.substring(0, CONFIG.storeNameMaxLimit - 3) + '...' : locationInfoData.storeName : isLoading === false ? 'Your Store' : ''}
\r\n

{locationInfoData && locationInfoData.storeAddress1 && locationInfoData.storeAddress1 !== '' && locationInfoData.storeAddress1 !== null ? locationInfoData.storeAddress1 + ',' : ''} {locationInfoData.storeAddress2 ? locationInfoData.storeAddress2 + ', ' : ''} {locationInfoData && locationInfoData.storeCity ? locationInfoData.storeCity + ', ' : locationInfoData.searchType === 1 && (locationInfoData.storeCity === '' || locationInfoData.storeCity === null) && (locationInfoData.storeZipCode === '' || locationInfoData.storeZipCode === null) ? locationInfoData.latitude + ', ' + locationInfoData.longitude + ', ' : ''}{locationInfoData.storeState ? locationInfoData.storeState : ''} {locationInfoData && locationInfoData.storeZipCode !== null && locationInfoData.storeZipCode !== '' ? locationInfoData.storeZipCode : ''} {locationInfoData.storeZoneCoverage ? \"| Coverage: \" + locationInfoData.storeZoneCoverage : 'N/A'}

\r\n
\r\n
\r\n
\r\n {CONFIG.Website_Text_Footer_Pdf} | {CONFIG.Phone_Footer_Pdf} | {CONFIG.Mail_Footer_Pdf} | \"Optimize\r\n
\r\n
\r\n
\r\n
\r\n

Competitor Overview

\r\n

Learn more about the stores in this Market. What are they advertising? Are they pricing aggressively? How big is their facility? etc.

\r\n

{(this.state.locationInfoData.countryCode === \"DE\" || this.state.locationInfoData.countryCode === \"AT\" || this.state.locationInfoData.countryCode === \"CH\") ? \"Total Square Metre\" : CONFIG.MeasurementLabel} values displayed here are obtained from public sources, including city and county property records. When this information is unavailable, StorTrack uses mapping tools or internal models to estimate the size of the property - such properties have an asterisk (*) next to their {(this.state.locationInfoData.countryCode === \"DE\" || this.state.locationInfoData.countryCode === \"AT\" || this.state.locationInfoData.countryCode === \"CH\") ? \"Total Square Metre\" : CONFIG.MeasurementLabel} value.

\r\n
Store Types
\r\n

At the top of the page you will find a breakdown of the types of stores in this Market

\r\n
Real Estate Investment Trust (REIT) Stores

Any stores operated by the following companies:

\r\n
    \r\n
  • Public Storage
  • \r\n
  • Extra Space
  • \r\n
  • LifeStorage
  • \r\n
  • Cubesmart
  • \r\n
  • National Storage Affiliates
  • \r\n
  • Global Self Storage
\r\n
Multi Store Operators (Multi-Ops)
\r\n

Companies operating more than 2 stores

\r\n
Single Store Operators (Single-Ops)
\r\n

Companies (typically independent operators) managing a single store

\r\n
Competitor Overview
\r\n
    \r\n
  • This grid below shows each store in this Market. Each store 'snapshot' shows the store name, address and proximity to your store. Further, it includes the building's square footage (derived from public sources or in some instances from calculations made by StorTrack's data science team).
  • \r\n
  • You will also find ownership and management information and store age.
  • \r\n
\r\n
How aggressive is this store/competitor?
\r\n
  • Pricing volatility is a major indicator of how aggressive or passive a store or Market is with their pricing. A store which frequently raises or lowers their rates, will typically have a higher pricing volatility. Here you can view the pricing volatility for a store over the last 30 days.
  • \r\n
  • Pricing Volatility is calculated by taking the number of times a pricing change occurred over the last 30 days for that store.
Unit Availability
  • For each store we show 11 of the most common unit types. This is meant to give you a quick snapshot of the unit types each store in this Market is advertising.
  • \r\n
  • The green checkmark means this unit type is currently advertised by this store
  • The red x means this store has not advertised this unit type in the last 12 months
  • The grey icon means this store has advertised this unit type in the last 12 months, but it is not currently advertising it
  • \r\n
\r\n {/*
Street View
\r\n

Hover over the store's image to view a Google Map snapshot of this facility

\r\n
Map View of Stores
\r\n

Click on the map pin point icon on the upper right corner to view a map of all the stores in your Market

*/}\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
No. of Stores
\r\n
\r\n {compOverviewData.overViewInfo ? compOverviewData.overViewInfo.compsCount : isLoading === false ? 'N/A' : ''}\r\n
\r\n
\r\n \r\n {locationInfoData.countryCode == \"US\" ?\r\n \r\n
\r\n
No. of REIT's
\r\n
\r\n {compOverviewData.overViewInfo ? compOverviewData.overViewInfo.reits : isLoading === false ? 'N/A' : ''}\r\n
\r\n
\r\n \r\n : ''}\r\n \r\n
\r\n
No. of Multi-Ops
\r\n
\r\n {compOverviewData.overViewInfo ? compOverviewData.overViewInfo.multiOps : isLoading === false ? 'N/A' : ''}\r\n
\r\n
\r\n \r\n \r\n
\r\n
No. of Single-Ops
\r\n
\r\n {compOverviewData.overViewInfo ? compOverviewData.overViewInfo.singleOps : isLoading === false ? 'N/A' : ''}\r\n
\r\n
\r\n \r\n
\r\n {/* \r\n \r\n

No. of Stores

\r\n
{compOverviewData.overViewInfo ? compOverviewData.overViewInfo.compsCount : isLoading === false ? 'N/A' : ''}
\r\n \r\n {locationInfoData.countryCode == \"US\" ?\r\n \r\n

No. of REIT's

\r\n
{compOverviewData.overViewInfo ? compOverviewData.overViewInfo.reits : isLoading === false ? 'N/A' : ''}
\r\n \r\n : ''}\r\n \r\n

No. of Multi-Ops

\r\n
{compOverviewData.overViewInfo ? compOverviewData.overViewInfo.multiOps : isLoading === false ? 'N/A' : ''}
\r\n \r\n \r\n

No. of Single-Ops

\r\n
{compOverviewData.overViewInfo ? compOverviewData.overViewInfo.singleOps : isLoading === false ? 'N/A' : ''}
\r\n \r\n \r\n
*/}\r\n \r\n
\r\n\r\n
\"No
\r\n
\r\n {trproductRows ? trproductRows.map((rows, i) => (\r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n\r\n \r\n \r\n

* The {(this.state.locationInfoData.countryCode === \"DE\" || this.state.locationInfoData.countryCode === \"AT\" || this.state.locationInfoData.countryCode === \"CH\") ? \"Total Square Metre\" : CONFIG.MeasurementLabel} values are obtained from publicly available sources. In instances where this information is unavailable, our team has used different methods to calculate the size of the property.

\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Pricing available for this unit type Pricing not available for this unit type Pricing previously available, but not currently advertised Your Store
\r\n \r\n \r\n \r\n \r\n {/* {compOverviewData && storeData.length != 0 ? storeData.map((strdata) => */}\r\n {compOverviewData && rows.length != 0 ? rows.map((strdata) =>\r\n \r\n \r\n \r\n ) :\r\n \r\n \r\n \r\n }\r\n \r\n
\r\n \r\n \r\n \r\n \r\n {/* below the link comment for PDF purpose */}\r\n {/* this.getStoreStreeView(strdata.latitude, strdata.longitude, strdata.storeName)} title=\"click here to view street view\"> */}\r\n \r\n {strdata.properties.StoreImage != '' ? \"No : ''}\r\n \r\n \r\n \r\n \r\n {/* below the line comment for PDF does not have href */}\r\n {/*

{strdata.isUserStore == 1 ? : ''} this.getParams(strdata.storeName, strdata.storeID)}>{strdata.storeName} {strdata.proximity != 0 ? {strdata.proximity} {(CONFIG.RegionId == 2) || (CONFIG.RegionId == 4) ? 'kilometre' : 'mile'}{strdata.proximity <= 1 ? '' : 's'} : ''}

*/}\r\n

{strdata.properties.isUserStore == 1 ? : ''} {strdata.properties.storeName} {strdata.properties.proximity != 0 ? {strdata.properties.proximity} {(CONFIG.RegionId == 2) || (CONFIG.RegionId == 4) ? 'kilometre' : 'mile'}{strdata.properties.proximity <= 1 ? '' : 's'} : ''}

\r\n

{strdata.properties.storeAddress}

\r\n \r\n \r\n \r\n
{strdata.properties.squareFootage == \"0\" ? \"N/A\" : this.NumberFormat(strdata.properties.squareFootage) + \" \" + ((this.state.locationInfoData.countryCode === \"DE\" || this.state.locationInfoData.countryCode === \"AT\" || this.state.locationInfoData.countryCode === \"CH\") ? \"sqm\" : CONFIG.MeasurementShortName)}{(strdata.properties.sqFtFlag == 2 && strdata.properties.squareFootage !== \"0\") ? * : ''}
\r\n
{strdata.properties.opened == \"0\" ? \"N/A\" : strdata.properties.opened}
\r\n \r\n {strdata.properties.ownedBy}
\r\n
{strdata.properties.operatedBy}
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
{strdata.properties.priceChangesPercent != null ? {strdata.properties.priceChangesPercent}% : N/A}
\r\n

Last 30 days

\r\n
\r\n {strdata.properties.lastVerified && strdata.properties.lastVerified !== null ? {moment(strdata.properties.lastVerified).format('DD-MMM-YYYY')} : N/A}\r\n
\r\n
\r\n \r\n \r\n \r\n {compOverviewData.unitData ? compOverviewData.unitData.map((untdata) =>\r\n strdata.properties.storeID === untdata.storeID ?\r\n \r\n : ''\r\n ) : ''}\r\n \r\n \r\n
\r\n

{untdata.unitType}

\r\n

{untdata.value === 1 ? : untdata.value === -1 ? : }

\r\n
\r\n
{isLoading === false ? 'There are no competitors available in this market' : ''}
\r\n \r\n
\r\n \r\n {/*
\r\n optimize.stortrack.com | 1-800-969-7424 | info@stortrack.com\r\n
*/}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n ))\r\n : ''}\r\n
\r\n {/*
\r\n \r\n
\r\n
{locationInfoData ? locationInfoData.storeName : isLoading === false ? 'N/A' : ''}
\r\n

{locationInfoData ? locationInfoData.storeAddress1 : 'N/A'}, {locationInfoData.storeAddress2 ? locationInfoData.storeAddress2 + ', ' : ''} {locationInfoData ? locationInfoData.storeCity : 'N/A'}{locationInfoData.storeState ? ', ' + locationInfoData.storeState : ''} {locationInfoData ? locationInfoData.storeZipCode : 'N/A'}

\r\n
\r\n
*/}\r\n \r\n \r\n \r\n
\r\n {\r\n let mapbox = this.mapRef.current.getMap();\r\n mapbox.loadImage(homeIcon, (error, image) => {\r\n if (error) throw error;\r\n mapbox.addImage('homeMarker', image);\r\n });\r\n }}\r\n >\r\n {/* {this.state.homeLatLng.latitude !== 0 && this.state.homeLatLng.longitude !== 0 &&\r\n (\r\n \"icon\"\r\n )} */}\r\n\r\n {/* {this.state.homeLatLng.latitude !== 0 && this.state.homeLatLng.longitude !== 0 && */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n
\r\n \r\n \r\n \r\n
Your Store
\r\n
Competitor
\r\n
\r\n \r\n
\r\n \r\n {/*
\r\n {CONFIG.Website_Text_Footer_Pdf} | {CONFIG.Phone_Footer_Pdf} | {CONFIG.Mail_Footer_Pdf} | \"Optimize\r\n
*/}\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}","import React from 'react';\r\nimport ReactDOM from \"react-dom\";\r\nimport { Row, Col, Dropdown, DropdownToggle, DropdownMenu, DropdownItem, Button, ButtonGroup, ButtonToolbar, TabContent, TabPane, Nav, NavItem, NavLink, Modal, ModalHeader, ModalBody, Tooltip } from 'reactstrap';\r\nimport classnames from 'classnames';\r\nimport { Link } from 'react-router-dom';\r\nimport { Table } from 'reactstrap';\r\nimport { HelpTextPopup } from './../../HelpTextPopup/index';\r\nimport Breadcrumbs from '@material-ui/core/Breadcrumbs';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faList, faEye, faEyeSlash } from '@fortawesome/free-solid-svg-icons';\r\nimport { faMapPin, faStar } from '@fortawesome/free-solid-svg-icons';\r\nimport { faCheck } from '@fortawesome/free-solid-svg-icons';\r\nimport { faTimes } from '@fortawesome/free-solid-svg-icons';\r\nimport ListItemAvatar from '@material-ui/core/ListItemAvatar';\r\nimport bluepin from './../../../Assets/Images/blue-pin.png';\r\nimport Avatar from '@material-ui/core/Avatar';\r\nimport './CompOverviewPdf.css';\r\nimport { Gmaps, Marker, InfoWindow } from 'react-gmaps';\r\nimport axios from 'axios';\r\nimport moment from 'moment';\r\nimport { CONFIG } from './../../../utils/config';\r\nimport { MissingCompetitor } from '../../MissingCompetitor';\r\nimport { MarketProfile } from '../../MarketProfile';\r\nimport { CompetitorStore } from '../../CompetitorStore';\r\nimport noImage from './../../../Assets/Images/no-image.jpg';\r\nimport orangepin from './../../../Assets/Images/orange-pin.png';\r\nimport NumberFormat from 'react-number-format';\r\nimport LocationOn from '@material-ui/icons/LocationOn';\r\nimport { StoreStreetView } from '../../StoreStreetView';\r\nimport orangehome from './../../../Assets/Images/orange-home.png';\r\nimport { config } from '@fortawesome/fontawesome-svg-core';\r\nimport Logo from './../../../Assets/Images/logo.jpg';\r\n\r\nconst params = { v: '3.exp', key: CONFIG.GoogleMapsApiKey };\r\n\r\nexport class InfoWindowEx extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.onInfoWindowOpen = this.onInfoWindowOpen.bind(this);\r\n if (!this.containerElement) {\r\n this.containerElement = document.createElement(`div`);\r\n }\r\n }\r\n\r\n onInfoWindowOpen() {\r\n ReactDOM.render(\r\n React.Children.only(this.props.children),\r\n this.containerElement\r\n );\r\n this.infoWindowRef.current.infowindow.setContent(this.containerElement);\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default class CompOverviewGmapPdf extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.infoWindowRef = React.createRef();\r\n this.toggle = this.toggle.bind(this);\r\n this.handleClickOpen = this.handleClickOpen.bind(this);\r\n //this.tabsChange = this.toggle.bind(this);\r\n this.child = React.createRef();\r\n this.compstorechild = React.createRef();\r\n this.storeImageStreetView = React.createRef();\r\n this.state = {\r\n dropdownOpen: false,\r\n showingInfoWindow: false,\r\n compOverviewData: [],\r\n storeData: [],\r\n activeMarker: {},\r\n locationInfoData: [],\r\n isLoading: false,\r\n activeTab: '1',\r\n dropDownValue: \"Sort by\",\r\n sordOrder: '',\r\n accessKey: '',\r\n zoomValue: 6,\r\n centerPoint: [],\r\n };\r\n\r\n this.getParams = this.getParams.bind(this);\r\n this.getParams1 = this.getParams1.bind(this);\r\n this.addDefaultSrcMap = this.addDefaultSrcMap.bind(this);\r\n this.mapRef = React.createRef();\r\n }\r\n\r\n getParams(name, sid) {\r\n this.child.current.toggleModal(name, sid);\r\n }\r\n\r\n getStoreStreeView(lat, lon, name) {\r\n this.storeImageStreetView.current.toggleStoreModal(lat, lon, name);\r\n }\r\n\r\n onMapCreated = (map) => {\r\n this.mapRef.current = map;\r\n map.setOptions({\r\n disableDefaultUI: true,\r\n mapTypeControl: true\r\n // defaultOptions={ zoomControl: true,fullscreenControl: false,streetViewControl: false, disableDefaultUI: false, mapTypeControl: true, }}\r\n });\r\n }\r\n\r\n tabsChange(tab) {\r\n if (this.state.activeTab !== tab) {\r\n this.setState({\r\n activeTab: tab\r\n });\r\n }\r\n }\r\n\r\n NumberFormat(number) {\r\n return new Intl.NumberFormat().format(number);\r\n }\r\n\r\n onMarkerClick = (storeId, name, address, foot, open, own, operated, lat, lng, price, image) => {\r\n ;\r\n let sam = [];\r\n this.state.compOverviewData.unitData.map(test => {\r\n if (test.storeID === storeId && test.value === 1) {\r\n sam.push(test.unitType)\r\n }\r\n })\r\n var units = sam.join(\", \");\r\n var add = address;\r\n var last = add.lastIndexOf(\",\");\r\n var s1 = add.substring(0, last);\r\n var s2 = add.substring(last + 1);\r\n //setTimeout(() => {\r\n this.setState({ strImageMap: image }, () => {\r\n this.setState({\r\n storeId: storeId,\r\n activeMarker: name,\r\n storeName: name,\r\n lat: lat,\r\n lng: lng,\r\n address: address ? s1 : '',\r\n address1: address ? s2 : '',\r\n squareFootage: foot === \"0\" ? \"N/A\" : this.NumberFormat(foot) + \" \" + CONFIG.MeasurementShortName,\r\n opened: open === \"0\" ? \"N/A\" : open,\r\n ownedBy: own,\r\n operatedBy: operated,\r\n priceChangesPercent: price == null ? \"N/A\" : price + \"% (Last 30 days)\",\r\n imagePath: image,\r\n unitsOffered: units != '' ? units : 'N/A',\r\n showingInfoWindow: true,\r\n });\r\n });\r\n //},500)\r\n };\r\n\r\n toggle() {\r\n this.setState(prevState => ({\r\n dropdownOpen: !prevState.dropdownOpen\r\n }));\r\n }\r\n\r\n onMarkerClose = () => {\r\n this.setState({ showingInfoWindow: false });\r\n }\r\n\r\n handleClickOpen() {\r\n let name = this.state.dropDownValue;\r\n let sortData = [];\r\n if (name === \"Proximity\") {//descending order--to Address origin of Market\r\n\r\n sortData = this.state.storeData.sort((a, b) => (a.proximity - b.proximity));\r\n\r\n } else if (name === \"Year Built\") {//descending order--most recent first\r\n\r\n sortData = this.state.storeData.sort((a, b) => (b.opened - a.opened));\r\n\r\n } else if (name === \"Total Square Footage\") {//descending order--high to low\r\n\r\n sortData = this.state.storeData.sort((a, b) => (b.squareFootage - a.squareFootage));\r\n\r\n } else if (name === \"Store Name\") {//ascending order\r\n\r\n sortData = this.state.storeData.sort((a, b) => a.storeName !== b.storeName ? a.storeName < b.storeName ? -1 : 1 : 0);\r\n\r\n }\r\n this.setState({ storeData: sortData });\r\n // if (name === \"Proximity\") {//descending order--to Address origin of Market\r\n // this.setState(storeData => {\r\n // this.state.storeData.sort((a, b) => (a.proximity - b.proximity))\r\n // });\r\n // } else if (name === \"Year Built\") {//descending order--most recent first\r\n // this.setState(storeData => {\r\n // this.state.storeData.sort((a, b) => (b.opened - a.opened))\r\n // });\r\n // } else if (name === \"Total Square Footage\") {//descending order--high to low\r\n // this.setState(storeData => {\r\n // this.state.storeData.sort((a, b) => (b.squareFootage - a.squareFootage))\r\n // });\r\n // } else if (name === \"Store Name\") {//ascending order\r\n // this.setState(storeData => {\r\n // this.state.storeData.sort((a, b) => a.storeName !== b.storeName ? a.storeName < b.storeName ? -1 : 1 : 0);\r\n // });\r\n // }\r\n }\r\n\r\n loadDashBoard() {\r\n let token = this.state.accessKey;\r\n const data = {\r\n \"UserStoreID\": parseInt(this.props.storeid),\r\n \"RegionId\": CONFIG.RegionId\r\n }\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n }\r\n axios.post(CONFIG.API_URL + 'dashboard/dashboardlocation', data)\r\n .then(response => {\r\n let zoomValue;\r\n const locationInfoData = response.data.data.storeDashboard;\r\n const centerPoint = response.data.data.centerPointDetail;\r\n if (locationInfoData.searchType === 3) {\r\n zoomValue = 9;\r\n } else if (locationInfoData.searchType === 2) {\r\n let zCnt = locationInfoData.storeZoneCoverage != \"\" && locationInfoData.storeZoneCoverage != null ? (locationInfoData.storeZoneCoverage.split(\",\").length - 1) : 1;\r\n zoomValue = (zCnt > 1) ? 9 : (zCnt > 0) ? 10 : 11;\r\n } else if (locationInfoData.searchType === 1) {\r\n let storeZoneCoverage = locationInfoData.storeZoneCoverage.split(' ');\r\n zoomValue = (storeZoneCoverage[0] === '1' || storeZoneCoverage[0] === '2' || storeZoneCoverage[0] === '3') ? 13 : (storeZoneCoverage[0] === '4' || storeZoneCoverage[0] === '5' || storeZoneCoverage[0] === '6') ? 12 : (storeZoneCoverage[0] === '6' || storeZoneCoverage[0] === '7') ? 11 : (storeZoneCoverage[0] === '8' || storeZoneCoverage[0] === '9' || storeZoneCoverage[0] === '10') ? 10 : 6;\r\n }\r\n this.setState({\r\n locationInfoData: locationInfoData, zoomValue, centerPoint\r\n })\r\n }).catch((err) => {\r\n if (err.response.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else if (err.response.status === 403) {\r\n const { from } = this.props.location.state || { from: { pathname: \"/UnauthorizedAccess\" } };\r\n this.props.history.push(from);\r\n }\r\n else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }\r\n\r\n setMapFitBounds = (mapData) => {\r\n let bounds = new window.google.maps.LatLngBounds();\r\n for (let i = 0; i < mapData.length; i++) {\r\n let loc = new window.google.maps.LatLng(mapData[i].latitude, mapData[i].longitude);\r\n bounds.extend(loc);\r\n }\r\n let homeLoc = new window.google.maps.LatLng(this.state.locationInfoData.latitude, this.state.locationInfoData.longitude);\r\n bounds.extend(homeLoc);\r\n this.mapRef.current.fitBounds(bounds);\r\n }\r\n\r\n compOverview() {\r\n const data = {\r\n \"UserStoreID\": parseInt(this.props.storeid),\r\n \"RegionId\": CONFIG.RegionId\r\n }\r\n let token = this.state.accessKey;\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n }\r\n axios.post(CONFIG.API_URL + 'dashboard/compsoverviewdata', data)\r\n .then(res => {\r\n const compOverviewData = res.data.data;\r\n const storeData = compOverviewData.storeData;\r\n this.setState({ compOverviewData: compOverviewData, storeData: storeData, isLoading: false }, () => {\r\n if (storeData.length) this.setMapFitBounds(storeData);\r\n this.handleClickOpen();\r\n });\r\n })\r\n .catch((err) => {\r\n this.setState({ isLoading: false });\r\n if (err.response.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else if (err.response.status === 403) {\r\n const { from } = this.props.location.state || { from: { pathname: \"/UnauthorizedAccess\" } };\r\n this.props.history.push(from);\r\n }\r\n else if (err.response.status === 400) {\r\n alert(err.response.data.Message);\r\n }\r\n else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }\r\n\r\n addDefaultSrc(ev) {\r\n if (ev.target.src != null) {\r\n var imageName = require('./../../../Assets/Images/no-image.jpg');\r\n ev.target.src = imageName;\r\n ev.target.className = \"noimages Unit-Store-Img\";\r\n }\r\n }\r\n\r\n addDefaultSrcMap(ev) {\r\n if (ev.target.src != null) {\r\n var imageName = require('./../../../Assets/Images/no-image.jpg');\r\n ev.target.src = imageName;\r\n this.setState({ imagePath: noImage });\r\n }\r\n }\r\n async UNSAFE_componentWillMount() {\r\n const data = {\r\n \"SecretKey\": this.props.accessKey,\r\n \"RegionId\": CONFIG.RegionId\r\n }\r\n\r\n const response = await axios.post(CONFIG.API_URL + 'account/secretlogin', data);\r\n if (response.status === 200) {\r\n this.state.accessKey = response.data.token;\r\n this.initialLoad();\r\n } else {\r\n alert(response.status.Message);\r\n }\r\n }\r\n initialLoad() {\r\n let sordOrder = this.props.sortId.toString();\r\n let sortingChange = sordOrder === \"1\" ? \"Proximity\" : sordOrder === \"2\" ? \"Store Name\" : sordOrder === \"3\" ? \"Total Square Footage\" : sordOrder === \"4\" ? \"Year Built\" : \"Sort by\";\r\n this.setState({ isLoading: true, dropDownValue: sortingChange });\r\n this.loadDashBoard();\r\n this.compOverview();\r\n }\r\n\r\n getParams1(storeAddress) {\r\n let storeId = parseInt(this.props.match.params.userstoreid);\r\n this.compstorechild.current.toggleStoreModal(storeAddress, storeId);\r\n }\r\n\r\n render() {\r\n document.title = 'StorTrack: Self-storage market pricing data';\r\n const { locationInfoData, isLoading, strImageMap, pageCount } = this.state;\r\n const { compOverviewData, storeData, zoomValue, centerPoint } = this.state;\r\n const infoWindowContent = '' + '
' + this.state.storeName + '

' + this.state.address + ',
' + this.state.address1 + '

' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '
' + CONFIG.MeasurementLabel + '' + this.state.squareFootage + '
Opened' + this.state.opened + '
Owned by' + this.state.ownedBy + '
Operated by' + this.state.operatedBy + '
Price Volatility' + this.state.priceChangesPercent + '
Units Offered' + this.state.unitsOffered + '
'\r\n const defaultProps = {\r\n helpTitle: \"Competitor Overview\",\r\n helpContent: \"

Learn more about the stores in this Market. What are they advertising? Are they pricing aggressively? How big is their facility? etc.

Store Types

At the top of the page you will find a breakdown of the types of stores in this Market

Real Estate Investment Trust (REIT) Stores

Any stores operated by the following companies:

  • Public Storage
  • Extra Space
  • LifeStorage
  • Cubesmart
  • National Storage Affiliates
  • Global Self Storage
Multi Store Operators (Multi-Ops)

Companies operating more than 2 stores

Single Store Operators (Single-Ops)

Companies (typically independent operators) managing a single store

Competitor Overview
  • This grid below shows each store in this Market. Each store 'snapshot' shows the store name, address and proximity to your store. Further, it includes the building's square footage (derived from public sources or in some instances from calculations made by StorTrack's data science team).
  • You will also find ownership and management information and store age.
How aggressive is this store/competitor?
  • Pricing volatility is a major indicator of how aggressive or passive a store or Market is with their pricing. A store which frequently raises or lowers their rates, will typically have a higher pricing volatility. Here you can view the pricing volatility for a store over the last 30 days.
  • Pricing Volatility is calculated by taking the number of times a pricing change occurred over the last 30 days for that store.
Unit Availability
  • For each store we show 11 of the most common unit types. This is meant to give you a quick snapshot of the unit types each store in this Market is advertising.
  • The green checkmark means this unit type is currently advertised by this store
  • The red x means this store has not advertised this unit type in the last 12 months
  • The grey icon means this store has advertised this unit type in the last 12 months, but it is not currently advertising it
Street View

Hover over the store's image to view a Google Map snapshot of this facility

Map View of Stores

Click on the map pin point icon on the upper right corner to view a map of all the stores in your Market

Refer the below help video for more information.

\"\r\n }\r\n const pageBreak = 0;\r\n const len = storeData.length === 4 ? 2 : 9;\r\n const tr = [...Array(Math.ceil(storeData.length / len))];\r\n const trproductRows = tr.map((row, idx) => storeData.slice(idx * len, idx * len + len));\r\n const nameCount = locationInfoData.storeName ? locationInfoData.storeName.length : 0;\r\n return (\r\n
\r\n {isLoading ?
: ''}\r\n
\r\n \r\n
\r\n
{locationInfoData.storeName && locationInfoData.storeName !== null && locationInfoData.storeName !== '' ? nameCount > CONFIG.storeNameMaxLimit ? locationInfoData.storeName.substring(0, CONFIG.storeNameMaxLimit - 3) + '...' : locationInfoData.storeName : isLoading === false ? 'Your Store' : ''}
\r\n

{locationInfoData && locationInfoData.storeAddress1 && locationInfoData.storeAddress1 !== '' && locationInfoData.storeAddress1 !== null ? locationInfoData.storeAddress1 + ',' : ''} {locationInfoData.storeAddress2 ? locationInfoData.storeAddress2 + ', ' : ''} {locationInfoData && locationInfoData.storeCity ? locationInfoData.storeCity + ', ' : locationInfoData.searchType === 1 && (locationInfoData.storeCity === '' || locationInfoData.storeCity === null) && (locationInfoData.storeZipCode === '' || locationInfoData.storeZipCode === null) ? locationInfoData.latitude + ', ' + locationInfoData.longitude + ', ' : ''}{locationInfoData.storeState ? locationInfoData.storeState : ''} {locationInfoData && locationInfoData.storeZipCode !== null && locationInfoData.storeZipCode !== '' ? locationInfoData.storeZipCode : ''} {locationInfoData.storeZoneCoverage ? \"| Coverage: \" + locationInfoData.storeZoneCoverage : 'N/A'}

\r\n
\r\n
\r\n
\r\n {CONFIG.Website_Text_Footer_Pdf} | {CONFIG.Phone_Footer_Pdf} | {CONFIG.Mail_Footer_Pdf} | \"Optimize\r\n
\r\n
\r\n
\r\n
\r\n

Competitor Overview

\r\n

Learn more about the stores in this Market. What are they advertising? Are they pricing aggressively? How big is their facility? etc.

\r\n

{(this.state.locationInfoData.countryCode === \"DE\" || this.state.locationInfoData.countryCode === \"AT\" || this.state.locationInfoData.countryCode === \"CH\") ? \"Total Square Metre\" : CONFIG.MeasurementLabel} values displayed here are obtained from public sources, including city and county property records. When this information is unavailable, StorTrack uses mapping tools or internal models to estimate the size of the property - such properties have an asterisk (*) next to their {(this.state.locationInfoData.countryCode === \"DE\" || this.state.locationInfoData.countryCode === \"AT\" || this.state.locationInfoData.countryCode === \"CH\") ? \"Total Square Metre\" : CONFIG.MeasurementLabel} value.

\r\n
Store Types
\r\n

At the top of the page you will find a breakdown of the types of stores in this Market

\r\n
Real Estate Investment Trust (REIT) Stores

Any stores operated by the following companies:

\r\n
    \r\n
  • Public Storage
  • \r\n
  • Extra Space
  • \r\n
  • LifeStorage
  • \r\n
  • Cubesmart
  • \r\n
  • National Storage Affiliates
  • \r\n
  • Global Self Storage
\r\n
Multi Store Operators (Multi-Ops)
\r\n

Companies operating more than 2 stores

\r\n
Single Store Operators (Single-Ops)
\r\n

Companies (typically independent operators) managing a single store

\r\n
Competitor Overview
\r\n
    \r\n
  • This grid below shows each store in this Market. Each store 'snapshot' shows the store name, address and proximity to your store. Further, it includes the building's square footage (derived from public sources or in some instances from calculations made by StorTrack's data science team).
  • \r\n
  • You will also find ownership and management information and store age.
  • \r\n
\r\n
How aggressive is this store/competitor?
\r\n
  • Pricing volatility is a major indicator of how aggressive or passive a store or Market is with their pricing. A store which frequently raises or lowers their rates, will typically have a higher pricing volatility. Here you can view the pricing volatility for a store over the last 30 days.
  • \r\n
  • Pricing Volatility is calculated by taking the number of times a pricing change occurred over the last 30 days for that store.
Unit Availability
  • For each store we show 11 of the most common unit types. This is meant to give you a quick snapshot of the unit types each store in this Market is advertising.
  • \r\n
  • The green checkmark means this unit type is currently advertised by this store
  • The red x means this store has not advertised this unit type in the last 12 months
  • The grey icon means this store has advertised this unit type in the last 12 months, but it is not currently advertising it
  • \r\n
\r\n {/*
Street View
\r\n

Hover over the store's image to view a Google Map snapshot of this facility

\r\n
Map View of Stores
\r\n

Click on the map pin point icon on the upper right corner to view a map of all the stores in your Market

*/}\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
No. of Stores
\r\n
\r\n {compOverviewData.overViewInfo ? compOverviewData.overViewInfo.compsCount : isLoading === false ? 'N/A' : ''}\r\n
\r\n
\r\n \r\n {locationInfoData.countryCode == \"US\" ?\r\n \r\n
\r\n
No. of REIT's
\r\n
\r\n {compOverviewData.overViewInfo ? compOverviewData.overViewInfo.reits : isLoading === false ? 'N/A' : ''}\r\n
\r\n
\r\n \r\n : ''}\r\n \r\n
\r\n
No. of Multi-Ops
\r\n
\r\n {compOverviewData.overViewInfo ? compOverviewData.overViewInfo.multiOps : isLoading === false ? 'N/A' : ''}\r\n
\r\n
\r\n \r\n \r\n
\r\n
No. of Single-Ops
\r\n
\r\n {compOverviewData.overViewInfo ? compOverviewData.overViewInfo.singleOps : isLoading === false ? 'N/A' : ''}\r\n
\r\n
\r\n \r\n
\r\n {/* \r\n \r\n

No. of Stores

\r\n
{compOverviewData.overViewInfo ? compOverviewData.overViewInfo.compsCount : isLoading === false ? 'N/A' : ''}
\r\n \r\n {locationInfoData.countryCode == \"US\" ?\r\n \r\n

No. of REIT's

\r\n
{compOverviewData.overViewInfo ? compOverviewData.overViewInfo.reits : isLoading === false ? 'N/A' : ''}
\r\n \r\n : ''}\r\n \r\n

No. of Multi-Ops

\r\n
{compOverviewData.overViewInfo ? compOverviewData.overViewInfo.multiOps : isLoading === false ? 'N/A' : ''}
\r\n \r\n \r\n

No. of Single-Ops

\r\n
{compOverviewData.overViewInfo ? compOverviewData.overViewInfo.singleOps : isLoading === false ? 'N/A' : ''}
\r\n \r\n \r\n
*/}\r\n \r\n
\r\n\r\n
\"No
\r\n
\r\n {trproductRows ? trproductRows.map((rows, i) => (\r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n\r\n \r\n \r\n

* The {(this.state.locationInfoData.countryCode === \"DE\" || this.state.locationInfoData.countryCode === \"AT\" || this.state.locationInfoData.countryCode === \"CH\") ? \"Total Square Metre\" : CONFIG.MeasurementLabel} values are obtained from publicly available sources. In instances where this information is unavailable, our team has used different methods to calculate the size of the property.

\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Pricing available for this unit type Pricing not available for this unit type Pricing previously available, but not currently advertised Your Store
\r\n \r\n \r\n \r\n \r\n {/* {compOverviewData && storeData.length != 0 ? storeData.map((strdata) => */}\r\n {compOverviewData && rows.length != 0 ? rows.map((strdata) =>\r\n \r\n \r\n \r\n ) :\r\n \r\n \r\n \r\n }\r\n \r\n
\r\n \r\n \r\n \r\n \r\n {/* below the link comment for PDF purpose */}\r\n {/* this.getStoreStreeView(strdata.latitude, strdata.longitude, strdata.storeName)} title=\"click here to view street view\"> */}\r\n \r\n {strdata.StoreImage != '' ? \"No : ''}\r\n \r\n \r\n \r\n \r\n {/* below the line comment for PDF does not have href */}\r\n {/*

{strdata.isUserStore == 1 ? : ''} this.getParams(strdata.storeName, strdata.storeID)}>{strdata.storeName} {strdata.proximity != 0 ? {strdata.proximity} {(CONFIG.RegionId == 2) || (CONFIG.RegionId == 4) ? 'kilometre' : 'mile'}{strdata.proximity <= 1 ? '' : 's'} : ''}

*/}\r\n

{strdata.isUserStore == 1 ? : ''} {strdata.storeName} {strdata.proximity != 0 ? {strdata.proximity} {(CONFIG.RegionId == 2) || (CONFIG.RegionId == 4) ? 'kilometre' : 'mile'}{strdata.proximity <= 1 ? '' : 's'} : ''}

\r\n

{strdata.storeAddress}

\r\n \r\n \r\n \r\n
{strdata.squareFootage == \"0\" ? \"N/A\" : this.NumberFormat(strdata.squareFootage) + \" \" + ((this.state.locationInfoData.countryCode === \"DE\" || this.state.locationInfoData.countryCode === \"AT\" || this.state.locationInfoData.countryCode === \"CH\") ? \"sqm\" : CONFIG.MeasurementShortName)}{(strdata.sqFtFlag == 2 && strdata.squareFootage !== \"0\") ? * : ''}
\r\n
{strdata.opened == \"0\" ? \"N/A\" : strdata.opened}
\r\n \r\n {strdata.ownedBy}
\r\n
{strdata.operatedBy}
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
{strdata.priceChangesPercent != null ? {strdata.priceChangesPercent}% : N/A}
\r\n

Last 30 days

\r\n
\r\n {strdata.lastVerified && strdata.lastVerified !== null ? {moment(strdata.lastVerified).format('DD-MMM-YYYY')} : N/A}\r\n
\r\n
\r\n \r\n \r\n \r\n {compOverviewData.unitData ? compOverviewData.unitData.map((untdata) =>\r\n strdata.storeID === untdata.storeID ?\r\n \r\n : ''\r\n ) : ''}\r\n \r\n \r\n
\r\n

{untdata.unitType}

\r\n

{untdata.value === 1 ? : untdata.value === -1 ? : }

\r\n
\r\n
{isLoading === false ? 'There are no competitors available in this market' : ''}
\r\n \r\n
\r\n \r\n {/*
\r\n optimize.stortrack.com | 1-800-969-7424 | info@stortrack.com\r\n
*/}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n ))\r\n : ''}\r\n
\r\n {/*
\r\n \r\n
\r\n
{locationInfoData ? locationInfoData.storeName : isLoading === false ? 'N/A' : ''}
\r\n

{locationInfoData ? locationInfoData.storeAddress1 : 'N/A'}, {locationInfoData.storeAddress2 ? locationInfoData.storeAddress2 + ', ' : ''} {locationInfoData ? locationInfoData.storeCity : 'N/A'}{locationInfoData.storeState ? ', ' + locationInfoData.storeState : ''} {locationInfoData ? locationInfoData.storeZipCode : 'N/A'}

\r\n
\r\n
*/}\r\n \r\n \r\n \r\n 0 && centerPoint[0].latitude != null) ? centerPoint[0].latitude : locationInfoData.latitude}\r\n lng={centerPoint && (centerPoint.length > 0 && centerPoint[0].longitude != null) ? centerPoint[0].longitude : locationInfoData.longitude}\r\n zoom={zoomValue}\r\n params={params}\r\n zoomControl={false}\r\n mapTypeControl={false}\r\n onMapCreated={this.onMapCreated}>\r\n \r\n {compOverviewData ? storeData.map((map) =>\r\n this.onMarkerClick(map.storeID, map.storeName, map.storeAddress, map.squareFootage, map.opened, map.ownedBy, map.operatedBy, map.latitude, map.longitude, map.priceChangesPercent, map.storeImagePath)}\r\n />\r\n ) : ''}\r\n {this.state.showingInfoWindow && this.state.activeMarker != '' ?\r\n this.onMarkerClose()}\r\n />\r\n : ''}\r\n \r\n \r\n \r\n \r\n
Your Store
\r\n
Competitor
\r\n
\r\n \r\n
\r\n \r\n {/*
\r\n {CONFIG.Website_Text_Footer_Pdf} | {CONFIG.Phone_Footer_Pdf} | {CONFIG.Mail_Footer_Pdf} | \"Optimize\r\n
*/}\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}","import React, { Component } from 'react';\r\nimport './MarketScorePdf.css';\r\nimport { Row, Col, Button } from 'reactstrap';\r\nimport Chart from \"react-apexcharts\";\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport { Table as ReactTable } from 'reactstrap';\r\nimport Table from '@material-ui/core/Table';\r\nimport TableHead from '@material-ui/core/TableHead';\r\nimport TableBody from '@material-ui/core/TableBody';\r\nimport TableCell from '@material-ui/core/TableCell';\r\nimport TableRow from '@material-ui/core/TableRow';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport Snackbar from '@material-ui/core/Snackbar';\r\nimport FirstPageIcon from '@material-ui/icons/FirstPage';\r\nimport KeyboardArrowLeft from '@material-ui/icons/KeyboardArrowLeft';\r\nimport KeyboardArrowRight from '@material-ui/icons/KeyboardArrowRight';\r\nimport LastPageIcon from '@material-ui/icons/LastPage';\r\nimport TableSortLabel from '@material-ui/core/TableSortLabel';\r\nimport CloseIcon from '@material-ui/icons/Close';\r\nimport axios from 'axios';\r\nimport { CONFIG } from '../../../utils/config';\r\nimport addtomap from '../../../Assets/Images/plus.png';\r\nimport removefrommap from '../../../Assets/Images/trash.png';\r\nimport tableplus from '../../../Assets/Images/table-plus.png';\r\nimport tableminus from '../../../Assets/Images/table-minus.png';\r\nimport Tooltip from '@material-ui/core/Tooltip';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport moment from 'moment';\r\nimport Logo from '../../../Assets/Images/logo.jpg';\r\n\r\nconst actionsStyles = theme => ({\r\n tablepaggination: {\r\n flexShrink: 0,\r\n color: theme.palette.text.secondary,\r\n marginLeft: theme.spacing * 2.5,\r\n },\r\n});\r\n\r\nclass MyMarket extends React.Component {\r\n\r\n handleFirstPageButtonClick = event => {\r\n this.props.onChangePage(event, 0);\r\n };\r\n\r\n handleBackButtonClick = event => {\r\n this.props.onChangePage(event, this.props.page - 1);\r\n };\r\n\r\n handleNextButtonClick = event => {\r\n this.props.onChangePage(event, this.props.page + 1);\r\n };\r\n\r\n handleLastPageButtonClick = event => {\r\n this.props.onChangePage(\r\n event,\r\n Math.max(0, Math.ceil(this.props.count / this.props.rowsPerPage) - 1),\r\n );\r\n };\r\n\r\n\r\n render() {\r\n const { classes, count, page, rowsPerPage, theme } = this.props;\r\n\r\n return (\r\n
\r\n \r\n {theme.direction === 'rtl' ? : }\r\n \r\n \r\n {theme.direction === 'rtl' ? : }\r\n \r\n = Math.ceil(count / rowsPerPage) - 1}\r\n aria-label=\"Next Page\"\r\n >\r\n {theme.direction === 'rtl' ? : }\r\n \r\n = Math.ceil(count / rowsPerPage) - 1}\r\n aria-label=\"Last Page\"\r\n >\r\n {theme.direction === 'rtl' ? : }\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nconst MyMarketWrapped = withStyles(actionsStyles, { withTheme: true })(\r\n MyMarket,\r\n);\r\n\r\nexport default class MarketScorePdf extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.compstorechild = React.createRef();\r\n this.state = {\r\n\r\n options: {\r\n chart: {\r\n id: 'apexchart-example',\r\n toolbar: {\r\n show: false\r\n },\r\n animations: {\r\n enabled: false,\r\n },\r\n },\r\n legend: {\r\n show: false,\r\n },\r\n plotOptions: {\r\n bar: {\r\n distributed: true\r\n }\r\n },\r\n xaxis: {\r\n categories: []\r\n },\r\n yaxis: {\r\n show: false\r\n },\r\n noData: {\r\n text: \"Please wait for the data to be loaded. The data volume is high and this might take a minute for loading the data.\",\r\n verticalAlign: 'top',\r\n style: {\r\n color: \"#5b95f6\",\r\n fontSize: '13px',\r\n fontFamily: \"Helvetica\"\r\n }\r\n },\r\n },\r\n series: [],\r\n isLoading1: true,\r\n order: 'asc',\r\n orderBy: 'storeName',\r\n snackOpen: false,\r\n snackMSg: '',\r\n grapghCatcheck: 'Total',\r\n graphOpen: 'Total',\r\n MarkScoringData: [],\r\n MarkScoring: [],\r\n MarkStoreInfo: {},\r\n Markets: [],\r\n MarketsDesc: {},\r\n ChartTableData: {},\r\n GraphCompId: {},\r\n locationInfoData: {},\r\n pageCount: 0,\r\n trackModalData: '',\r\n storeModal: false,\r\n defaultWidth: 0,\r\n dialogOpen: false,\r\n MarketSCdet: {},\r\n Scorecard: [],\r\n uniquestores: [],\r\n storeIdCount: [],\r\n accessKey: ''\r\n };\r\n this.handleRequestSort = this.handleRequestSort.bind(this);\r\n this.stableSort = this.stableSort.bind(this);\r\n this.getSorting = this.getSorting.bind(this);\r\n this.desc = this.desc.bind(this);\r\n this.onSelecCatGrapgh = this.onSelecCatGrapgh.bind(this);\r\n this.scoringData = this.scoringData.bind(this);\r\n this.drawChart = this.drawChart.bind(this);\r\n this.getParams = this.getParams.bind(this);\r\n this.dialogContentOpen = this.dialogContentOpen.bind(this);\r\n }\r\n\r\n getParams(storeAddress) {\r\n let storeId = parseInt(this.props.match.params.storeid);\r\n this.compstorechild.current.toggleStoreModal(storeAddress, storeId);\r\n }\r\n\r\n //Table Sorting \r\n handleRequestSort(event, property) {\r\n const { order, orderBy } = this.state;\r\n const isDesc = orderBy === property && order === 'desc';\r\n let sort = isDesc ? 'asc' : 'desc';\r\n this.setState({ order: sort, orderBy: property });\r\n }\r\n\r\n //Table Sorting order\r\n desc(a, b, orderBy) {\r\n if (b[orderBy] < a[orderBy]) {\r\n return -1;\r\n }\r\n if (b[orderBy] > a[orderBy]) {\r\n return 1;\r\n }\r\n return 0;\r\n }\r\n\r\n //Table Sorting the selected Column\r\n stableSort(array, cmp) {\r\n const stabilizedThis = array.map((el, index) => [el, index]);\r\n stabilizedThis.sort((a, b) => {\r\n const order = cmp(a[0], b[0]);\r\n if (order !== 0) return order;\r\n return a[1] - b[1];\r\n });\r\n return stabilizedThis.map(el => el[0]);\r\n }\r\n\r\n //Table Sorting Order Request\r\n getSorting(order, orderBy) {\r\n return order === 'desc' ? (a, b) => this.desc(a, b, orderBy) : (a, b) => -this.desc(a, b, orderBy);\r\n }\r\n\r\n //To open Particular Category's Graph \r\n onSelecCatGrapgh(openActGraph) {\r\n let activeRow = this.state.grapghCatcheck === openActGraph ? '' : openActGraph;\r\n activeRow === '' ?\r\n this.setState({ grapghCatcheck: activeRow, graphOpen: activeRow })\r\n :\r\n this.setState({ grapghCatcheck: activeRow, graphOpen: activeRow }, () => {\r\n this.drawChart();\r\n });\r\n }\r\n\r\n async UNSAFE_componentWillMount() {\r\n const data = {\r\n \"SecretKey\": this.props.accessKey,\r\n \"RegionId\": CONFIG.RegionId\r\n }\r\n\r\n const response = await axios.post(CONFIG.API_URL + 'account/secretlogin', data);\r\n if (response.status === 200) {\r\n this.state.accessKey = response.data.token;\r\n this.initialLoad();\r\n } else {\r\n alert(response.status.Message);\r\n }\r\n }\r\n\r\n initialLoad() {\r\n let openValue;\r\n openValue = this.props.graphOpen === '1' ? \"Total\" : this.props.graphOpen === '2' ? \"Website\" : this.props.graphOpen === '3' ? \"Search\" : this.props.graphOpen === '4' ? \"Paid Search\" : this.props.graphOpen === '5' ? \"Social Media\" : this.props.graphOpen === '6' ? \"Contactability\" : \"Total\";\r\n this.setState({ graphOpen: openValue, grapghCatcheck: openValue });\r\n let id1, id2, id3, id4, id5, id6, id7, id8;\r\n let storeIdCount = [];\r\n let order = this.props.order;\r\n let orderBy = this.props.orderBy;\r\n id1 = parseInt(this.props.id1 ? this.props.id1 : 0);\r\n id2 = parseInt(this.props.id2 ? this.props.id2 : 0);\r\n id3 = parseInt(this.props.id3 ? this.props.id3 : 0);\r\n id4 = parseInt(this.props.id4 ? this.props.id4 : 0);\r\n id5 = parseInt(this.props.id5 ? this.props.id5 : 0);\r\n id6 = parseInt(this.props.id6 ? this.props.id6 : 0);\r\n id7 = parseInt(this.props.id8 ? this.props.id8 : 0);\r\n id8 = parseInt(this.props.id7 ? this.props.id7 : 0);\r\n let storeCount = [id1, id2, id3, id4, id5, id6, id7, id8];\r\n storeCount.map(data => {\r\n if (data != 0) {\r\n storeIdCount.push(data);\r\n }\r\n })\r\n let uniquestores = storeIdCount.toString();\r\n this.setState({ uniquestores, storeIdCount, orderBy, order });\r\n let token = this.state.accessKey;//localStorage.getItem('accessKey');\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n }\r\n\r\n // For Current Store Info\r\n const data = {\r\n \"UserStoreID\": parseInt(this.props.userstoreid),\r\n \"RegionId\": CONFIG.RegionId\r\n };\r\n axios.post(CONFIG.API_URL + 'dashboard/dashboardlocation', data)\r\n .then(response => {\r\n const locationInfoData = response.data.data.storeDashboard;\r\n this.setState({ locationInfoData });\r\n }).catch((err) => {\r\n if (err.response.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else if (err.response.status === 403) {\r\n const { from } = this.props.location.state || { from: { pathname: \"/UnauthorizedAccess\" } };\r\n this.props.history.push(from);\r\n }\r\n else {\r\n alert(err.response.data);\r\n }\r\n });\r\n\r\n //For Graph and Table Content\r\n const Storedata = {\r\n \"UserStoreID\": parseInt(this.props.userstoreid),\r\n \"RegionId\": CONFIG.RegionId\r\n };\r\n axios.post(CONFIG.API_URL + 'Dashboard/marketscoring', Storedata)\r\n .then(res => {\r\n let MarkScoring = res.data.data.scorings;\r\n let MarkStoreInfo = res.data.data.storeInformation;\r\n let Markets = res.data.data.markets;\r\n let MarketsDesc = res.data.data.marketDescriptions;\r\n this.setState({\r\n MarkScoring, MarkStoreInfo, Markets, MarketsDesc\r\n });\r\n this.barhandleChange();\r\n })\r\n .catch(err => {\r\n if (err.response.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else if (err.response.status === 403) {\r\n const { from } = this.props.location.state || { from: { pathname: \"/UnauthorizedAccess\" } };\r\n this.props.history.push(from);\r\n }\r\n else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }\r\n componentDidMount() {\r\n }\r\n\r\n\r\n\r\n snackHandleclose = (event, reason) => {\r\n if (reason === 'clickaway') {\r\n return;\r\n }\r\n this.setState({ snackOpen: false });\r\n };\r\n\r\n async barhandleChange() {\r\n\r\n //loader \r\n this.setState({ isLoading1: true });\r\n\r\n for (var i = 0; i < this.state.MarkScoring.length; i++) {\r\n if (this.state.storeIdCount.includes(this.state.MarkScoring[i].storeId)) {\r\n this.state.MarkScoring[i].isSelected = true;//this.state.MarkScoring[i].isSelected === true ? false : true;\r\n\r\n } else if (this.state.storeIdCount.length > 0) {\r\n this.state.MarkScoring[i].isSelected = false;\r\n }\r\n }\r\n let MarkScoring = this.state.MarkScoring;\r\n\r\n let token = this.state.accessKey//localStorage.getItem('accessKey');\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n }\r\n const data = {\r\n \"UserStoreID\": parseInt(this.props.userstoreid),\r\n \"Competitors\": this.state.uniquestores,//uniquestore,\r\n \"RegionId\": CONFIG.RegionId\r\n };\r\n await axios.post(CONFIG.API_URL + 'Dashboard/marketscoringgraph', data)\r\n .then(res => {\r\n this.setState({ Markets: [], MarkScoringData: [], ChartTableData: {} });\r\n let Markets = res.data.data.markets;\r\n this.setState({ Markets, MarkScoring });\r\n this.scoringData();\r\n })\r\n .catch(err => {\r\n if (err.response.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else {\r\n alert(err.response.data);\r\n }\r\n });\r\n\r\n }\r\n\r\n //To Assign the data for particular bar and tables\r\n scoringData() {\r\n const { MarkScoring, MarkStoreInfo, Markets, MarketsDesc } = this.state;\r\n /* Spliting the data in the order of StoreID In Scoring Tabl */\r\n let MarkScoringData = this.state.MarkScoringData;\r\n MarkScoringData.push({\r\n 'statdata': MarkScoring.filter(function (data) {\r\n return data.storeId < 1 || data.isMyMarket === 1;\r\n }), 'dynamdata': MarkScoring.filter(function (data) {\r\n return data.storeId > 0 && data.isMyMarket !== 1;\r\n })\r\n });\r\n /* End of Spliting the data in the order of StoreID In Scoring Table */\r\n\r\n //Checking for data availability\r\n let AvailDataCheck = [];\r\n AvailDataCheck = Markets.filter(function (data) {\r\n return data.storeId > 0;\r\n });\r\n\r\n\r\n let ChartTableData = this.state.ChartTableData;\r\n if (Markets.length > 0 && AvailDataCheck.length > 0) {\r\n\r\n /* Spliting the data in the order of activityType */\r\n ChartTableData['lahMarkets'] = [];\r\n\r\n //For Total data\r\n ChartTableData['lahMarkets'].push({\r\n 'tr1': Markets.filter(function (data) {\r\n return data.storeId < 1 && data.activityType === 'Total';\r\n }), 'tr2': Markets.filter(function (data) {\r\n return data.isMyStore === true && data.activityType === 'Total';\r\n })\r\n });\r\n\r\n //For Website data\r\n ChartTableData['lahMarkets'].push({\r\n 'tr1': Markets.filter(function (data) {\r\n return data.storeId < 1 && data.activityType === 'Website';\r\n }), 'tr2': Markets.filter(function (data) {\r\n return data.isMyStore === true && data.activityType === 'Website';\r\n })\r\n });\r\n\r\n //For Website data\r\n ChartTableData['lahMarkets'].push({\r\n 'tr1': Markets.filter(function (data) {\r\n return data.storeId < 1 && data.activityType === 'Search';\r\n }), 'tr2': Markets.filter(function (data) {\r\n return data.isMyStore === true && data.activityType === 'Search';\r\n })\r\n });\r\n\r\n //For Paid Search data\r\n ChartTableData['lahMarkets'].push({\r\n 'tr1': Markets.filter(function (data) {\r\n return data.storeId < 1 && data.activityType === 'Paid Search';\r\n }), 'tr2': Markets.filter(function (data) {\r\n return data.isMyStore === true && data.activityType === 'Paid Search';\r\n })\r\n });\r\n\r\n //For Social Media data\r\n ChartTableData['lahMarkets'].push({\r\n 'tr1': Markets.filter(function (data) {\r\n return data.storeId < 1 && data.activityType === 'Social Media';\r\n }), 'tr2': Markets.filter(function (data) {\r\n return data.isMyStore === true && data.activityType === 'Social Media';\r\n })\r\n });\r\n\r\n //For Contactability data\r\n ChartTableData['lahMarkets'].push({\r\n 'tr1': Markets.filter(function (data) {\r\n return data.storeId < 1 && data.activityType === 'Contactability';\r\n }), 'tr2': Markets.filter(function (data) {\r\n return data.isMyStore === true && data.activityType === 'Contactability';\r\n })\r\n });\r\n\r\n /* end of Spliting the data in the order of activityType */\r\n\r\n /* Barchart table's Head data */\r\n ChartTableData['TableHead'] = Markets.filter(function (data) {\r\n return data.storeId > 0 && data.activityType === 'Total' || data.storeId < -2 && data.activityType === 'Total';\r\n });\r\n /* end of Barchart table's Head data */\r\n\r\n /* Barchart table's body data */\r\n ChartTableData['TableBody'] = [];\r\n\r\n //For Total data\r\n ChartTableData['TableBody'].push({\r\n 'td1': 'Total', 'td2': Markets.filter(function (data) {\r\n return data.storeId > 0 && data.activityType === 'Total' || data.storeId < -2 && data.activityType === 'Total';\r\n })\r\n });\r\n\r\n //For Website data\r\n ChartTableData['TableBody'].push({\r\n 'td1': 'Website', 'td2': Markets.filter(function (data) {\r\n return data.storeId > 0 && data.activityType === 'Website' || data.storeId < -2 && data.activityType === 'Website';\r\n })\r\n });\r\n\r\n //For Search data\r\n ChartTableData['TableBody'].push({\r\n 'td1': 'Search', 'td2': Markets.filter(function (data) {\r\n return data.storeId > 0 && data.activityType === 'Search' || data.storeId < -2 && data.activityType === 'Search';\r\n })\r\n });\r\n\r\n //For Paid Search data\r\n ChartTableData['TableBody'].push({\r\n 'td1': 'Paid Search', 'td2': Markets.filter(function (data) {\r\n return data.storeId > 0 && data.activityType === 'Paid Search' || data.storeId < -2 && data.activityType === 'Paid Search';\r\n })\r\n });\r\n\r\n //For Social Media data\r\n ChartTableData['TableBody'].push({\r\n 'td1': 'Social Media', 'td2': Markets.filter(function (data) {\r\n return data.storeId > 0 && data.activityType === 'Social Media' || data.storeId < -2 && data.activityType === 'Social Media';\r\n })\r\n });\r\n\r\n //For Contactability data\r\n ChartTableData['TableBody'].push({\r\n 'td1': 'Contactability', 'td2': Markets.filter(function (data) {\r\n return data.storeId > 0 && data.activityType === 'Contactability' || data.storeId < -2 && data.activityType === 'Contactability';\r\n })\r\n });\r\n\r\n /* end of Barchart table's body data */\r\n }\r\n //console.log(ChartTableData);\r\n this.setState({ MarkScoringData, MarkStoreInfo, MarketsDesc, Markets, ChartTableData, isLoading1: false });\r\n this.drawChart();\r\n }\r\n\r\n //Formatted in as per competitor\r\n formData(data) {\r\n let uniquestore = [...new Set(data.map(item => item.storeId))];\r\n let CurrentActivity = this.state.grapghCatcheck;\r\n let Colorbarcode = ['#f69e4f', '#1b2c42', '#5b95f6', '#f96a5d', '#3ea7a1', '#83ce83', '#fac05f', '#959595'];\r\n var FData = [];\r\n for (var t = 0; t < uniquestore.length; t++) {\r\n var tFData = data.filter(a => a.storeId == uniquestore[t] && a.activityType === CurrentActivity);\r\n var mData = {};\r\n if (tFData) {\r\n mData = {\r\n StoreID: uniquestore[t],\r\n StoreName: tFData[0].storeName,\r\n Score: tFData[0].score,\r\n act: tFData[0].activityType,\r\n Gcolor: Colorbarcode[t],\r\n IsSelected: tFData[0].isSelected\r\n }\r\n }\r\n\r\n FData.push(mData);\r\n }\r\n return FData;\r\n }\r\n\r\n //Bar Chart\r\n drawChart() {\r\n let { Markets, grapghCatcheck } = this.state;\r\n let actualData = [];\r\n let colorsData = [];\r\n let storeName = [];\r\n let maxScore = 0;\r\n let colorsCode = ['#f69e4f', '#1b2c42', '#5b95f6', '#f96a5d', '#3ea7a1', '#83ce83', '#fac05f', '#959595'];\r\n let filterMarkets = Markets.filter(fl => fl.storeId > 0 || fl.storeId < -2);\r\n let uniquestore = [...new Set(filterMarkets.map(item => item.storeId))];\r\n for (var t = 0; t < uniquestore.length; t++) {\r\n var tFData = filterMarkets.filter(a => a.storeId === uniquestore[t] && a.activityType === grapghCatcheck);\r\n let noValues = tFData.every(item => item.score === null || item.score === '' || item.score === undefined);\r\n if (!noValues) {\r\n let dataSeries = tFData[0].score;\r\n let storageName = tFData[0].storeName;\r\n // let storageName = tFData[0].storeName.length > 10 ? `${tFData[0].storeName.substring(0, 10)}...` : tFData[0].storeName;\r\n maxScore = tFData[0].totalScore;\r\n actualData.push(dataSeries);\r\n storeName.push(storageName);\r\n colorsData.push(colorsCode[t]);\r\n }\r\n }\r\n\r\n const options = {\r\n colors: colorsData,\r\n chart: {\r\n id: `apexchart-example${Math.random()}`,\r\n animations: {\r\n enabled: false,\r\n }, //when the state updates randam id has to change to render the changes\r\n },\r\n tooltip: { enabled: false },\r\n yaxis: {\r\n min: 0,\r\n max: maxScore,\r\n tickAmount: 5,\r\n labels: {\r\n formatter: function (value) {\r\n return value === 0 ? \"\" : `${value.toFixed(0)}/${maxScore ? maxScore : 0}`;\r\n },\r\n style: {\r\n colors: '#140000',\r\n fontSize: '10px'\r\n },\r\n },\r\n axisBorder:{\r\n show: false,\r\n },\r\n axisTicks: {\r\n show: false,\r\n }\r\n },\r\n plotOptions: {\r\n bar: {\r\n distributed: true,\r\n borderRadius: 5,\r\n dataLabels: {\r\n position: 'top',\r\n },\r\n columnWidth: '25%',\r\n barHeight: '50%',\r\n },\r\n },\r\n dataLabels: {\r\n enabled: true,\r\n offsetY: -20,\r\n style: {\r\n fontSize: '10px',\r\n colors: [\"#304758\"]\r\n },\r\n formatter: function (val, opts) {\r\n return val === 0 ? '' : val;\r\n },\r\n },\r\n grid: { show: false },\r\n xaxis: {\r\n categories: storeName,\r\n labels: {\r\n show: true,\r\n rotate: 0,\r\n hideOverlappingLabels: false,\r\n trim: true,\r\n formatter: function (value) {\r\n let val = value === undefined || typeof (value) !== \"string\" ? '' : value.toUpperCase();\r\n return val;\r\n },\r\n style: {\r\n colors: '#8C9AA6',\r\n fontSize: '10px'\r\n },\r\n }\r\n },\r\n legend: {\r\n show: false,\r\n }\r\n }\r\n\r\n const series = [{\r\n name: '',\r\n data: actualData\r\n }]\r\n\r\n if (actualData.length > 0) {\r\n this.setState({ options, series })\r\n } else {\r\n this.setState({\r\n options: {\r\n chart: {\r\n id: 'apexchart-example'\r\n },\r\n noData: {\r\n text: \"No Data Available.\",\r\n align: 'center',\r\n verticalAlign: 'top',\r\n offsetX: 0,\r\n offsetY: 0,\r\n style: {\r\n color: \"#F60000\",\r\n fontSize: '20px',\r\n fontFamily: \"Helvetica\"\r\n }\r\n },\r\n yaxis: { show: false },\r\n grid: { show: false },\r\n xaxis: {\r\n labels: {\r\n show: false\r\n },\r\n }\r\n },\r\n series: []\r\n })\r\n }\r\n }\r\n\r\n\r\n /* Score Card Dialog box functions */\r\n dialogContentOpen(id, YS_data) {\r\n this.setState({\r\n isLoading1: true\r\n })\r\n let token = this.state.accessKey;//localStorage.getItem('accessKey');\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n }\r\n const data = {\r\n \"StoreId\": parseInt(id),\r\n \"RegionId\": CONFIG.RegionId\r\n };\r\n axios.post(CONFIG.API_URL + 'dashboard/marketscorecard', data)\r\n .then(res => {\r\n //let Scorecard = res.data.scoreCard.marketScoreCardDetails;\r\n let ScorecardDet = res.data.scoreCard.marketScoreCardDetails;\r\n let MarketSCdet = this.state.MarketSCdet;\r\n\r\n if (ScorecardDet.length > 0) {\r\n //to get Market Details\r\n MarketSCdet.id = [...new Set(ScorecardDet.map(item => item.storeId))];\r\n MarketSCdet.StoreName = YS_data === 'YourStore' ? ['Your Store'] : [...new Set(ScorecardDet.map(item => item.storeName))];\r\n MarketSCdet.StoreAddress = [...new Set(ScorecardDet.map(item => item.address))];\r\n MarketSCdet.CheckDate = [...new Set(ScorecardDet.map(item => item.dtCollected))];\r\n MarketSCdet.M_TotScore = [...new Set(ScorecardDet.map(item => item.totalScore))];\r\n\r\n\r\n //For Market Score Card For Map Details \r\n let uniquemscore = [...new Set(ScorecardDet.map(item => item.marketingActivity))];\r\n var Scorecard = [];\r\n for (var t = 0; t < uniquemscore.length; t++) {\r\n var tempData = ScorecardDet.filter(a => a.marketingActivity == uniquemscore[t]);\r\n for (var s = 0; s < tempData.length; s++) {\r\n var inlineData = {\r\n storeId: tempData[s].storeId,\r\n storeName: tempData[s].storeName,\r\n address: tempData[s].address,\r\n marketingActivity: s === 0 ? tempData[s].marketingActivity : 'empty',\r\n name: tempData[s].name,\r\n score: tempData[s].score,\r\n activityScore: tempData[s].activityScore,\r\n activityScoreTotal: tempData[s].activityScoreTotal,\r\n totalScore: tempData[s].totalScore,\r\n dtCollected: tempData[s].dtCollected,\r\n id: tempData[s].id,\r\n rowcount: s === 0 ? tempData.length : 0,\r\n color: t % 2 ? 'odd-m-score' : 'even-m-score'\r\n }\r\n Scorecard.push(inlineData);\r\n }\r\n }\r\n this.setState({ dialogOpen: true, Scorecard, MarketSCdet, isLoading1: false });\r\n }\r\n else {\r\n this.setState({ MarketSCdet, isLoading1: false, snackOpen: true, snackMSg: 'Score Card is not available in this market.' });\r\n }\r\n })\r\n .catch(err => {\r\n this.setState({ isLoading1: false });\r\n if (err.response.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }\r\n\r\n dialogClose() {\r\n this.setState({ dialogOpen: false, MarketSCdet: {}, Scorecard: [] });\r\n }\r\n /* End of Score Card Dialog box functions */\r\n\r\n handleChangePageTrack = (event, pageCount) => {\r\n this.setState({ pageCount });\r\n };\r\n\r\n handleChangeRowsPerPageTrack = event => {\r\n this.setState({ pageCount: 0, 10: event.target.value });\r\n };\r\n\r\n render() {\r\n const { order, orderBy, grapghCatcheck, graphOpen, MarkScoringData, MarkStoreInfo, ChartTableData, MarketsDesc, snackOpen, snackMSg,\r\n locationInfoData, isLoading1, trackModalData, pageCount, Markets, MarketSCdet, Scorecard } = this.state;\r\n let ComActivityType = ['Total', 'Website', 'Search', 'Paid Search', 'Social Media', 'Contactability'];\r\n let Colors = ['mystorebarclr', 'barclr1', 'barclr2', 'barclr3', 'barclr4', 'barclr5', 'barclr6', 'barclr7'];\r\n const defaultProps = {\r\n helpTitle: Marketing Scorecard - an explanation,\r\n helpContent: \"

The StorTrack Marketing Scorecard is a devised scoring mechanism for judging the activity and effectiveness of a Store's local marketing, so as to enable us to create a methodology for comparison and competitive insight.

The Scorecard is created by monitoring 5 different areas of a Store's marketing activities: it's website, it's organic presence on search engines, it's paid placement in search engines, the social media presence of the Store and finally how easy the Store makes it for potential new tenants to contact it. In each of these five categories, StorTrack has created a weighted scoring process that then rolls up to a category score. The category scores are what you see on the Marketing Scorecard page and the method by which we compare Stores side-by-side.

The Scoring Process is detailed in the attached PDF. Please click the link to download the full Scoring methodology. Click here

For any further information on StorTrack's Marketing Scorecard please contact Support directly.

*Your store scoring is included in the calculations.

Refer the below help video for more information.

\"\r\n }\r\n const GridTableValue1 = MarkScoringData.length > 0 ? MarkScoringData[0].dynamdata.length : 0;\r\n const GridTableValueData = MarkScoringData.length > 0 ? MarkScoringData[0].dynamdata : [];\r\n\r\n if (GridTableValue1 > 0) {\r\n const { order, orderBy } = this.state;\r\n if (orderBy !== \"storeName\") {\r\n var sortByStoreData = GridTableValueData;\r\n sortByStoreData.sort(function (a, b) {\r\n // var textA = a.orderBy;\r\n // var textB = b.orderBy;\r\n var textA = orderBy === \"score\" ? a.score : orderBy === \"websiteScore\" ? a.websiteScore : orderBy === \"searchScore\" ? a.searchScore : orderBy === \"paidScore\" ? a.paidScore : orderBy === \"socialMediaScore\" ? a.socialMediaScore : orderBy === \"contactabilityScore\" ? a.contactabilityScore : '';\r\n var textB = orderBy === \"score\" ? b.score : orderBy === \"websiteScore\" ? b.websiteScore : orderBy === \"searchScore\" ? b.searchScore : orderBy === \"paidScore\" ? b.paidScore : orderBy === \"socialMediaScore\" ? b.socialMediaScore : orderBy === \"contactabilityScore\" ? b.contactabilityScore : '';\r\n if (order === 'asc') {\r\n return (textA < textB) ? -1 : (textA > textB) ? 1 : 0;\r\n } else {\r\n return (textA > textB) ? -1 : (textA < textB) ? 1 : 0;\r\n }\r\n });\r\n } else if (orderBy === \"storeName\") {\r\n if (order === 'asc') {\r\n var sortByStoreData = GridTableValueData.sort((a, b) => a.storeName.localeCompare(b.storeName));\r\n }\r\n else {\r\n var sortByStoreData = GridTableValueData.sort((a, b) => b.storeName.localeCompare(a.storeName));\r\n }\r\n }\r\n }\r\n console.log(ChartTableData)\r\n const tr = [...Array(Math.ceil(GridTableValue1 / 17))];\r\n const trproductRows = tr.map((row, idx) => sortByStoreData.slice(idx * 17, idx * 17 + 17));\r\n const nameCount = locationInfoData.storeName ? locationInfoData.storeName.length : 0;\r\n const marketNameCount = MarketsDesc.highestMarketName ? MarketsDesc.highestMarketName.length : 0;\r\n return (\r\n
\r\n {isLoading1 ?
: ''}\r\n {/*
\r\n
\r\n
{locationInfoData ? locationInfoData.storeName : isLoading1 === false ? 'N/A' : ''}
\r\n

{locationInfoData ? locationInfoData.storeAddress1 : 'N/A'}, {locationInfoData.storeAddress2 ? locationInfoData.storeAddress2 + ', ' : ''} {locationInfoData ? locationInfoData.storeCity : 'N/A'}{locationInfoData.storeState ? ', ' + locationInfoData.storeState : ''} {locationInfoData ? locationInfoData.storeZipCode : 'N/A'}

\r\n
\r\n
*/}\r\n
\r\n
\r\n
{locationInfoData && locationInfoData.storeName && locationInfoData.storeName !== null && locationInfoData.storeName !== '' ? nameCount > CONFIG.storeNameMaxLimit ? locationInfoData.storeName.substring(0, CONFIG.storeNameMaxLimit - 3) + '...' : locationInfoData.storeName : isLoading1 === false ? 'Your Store' : ''}
\r\n
\r\n

{locationInfoData && locationInfoData.storeAddress1 && locationInfoData.storeAddress1 !== null && locationInfoData.storeAddress1 !== '' ? locationInfoData.storeAddress1 + ',' : ''} {locationInfoData && locationInfoData.storeCity ? locationInfoData.storeCity + ', ' : locationInfoData.searchType === 1 && (locationInfoData.storeCity === '' || locationInfoData.storeCity === null) && (locationInfoData.storeZipCode === '' || locationInfoData.storeZipCode === null) ? locationInfoData.latitude + ', ' + locationInfoData.longitude + ', ' : ''} {locationInfoData ? locationInfoData.storeState : 'N/A'} {locationInfoData ? locationInfoData.storeZipCode : 'N/A'} {locationInfoData.storeZoneCoverage ? \"| Coverage: \" + locationInfoData.storeZoneCoverage : 'N/A'}

\r\n {/*
\r\n optimize.stortrack.com | 1-800-969-7424 | info@stortrack.com | \"Optimize\r\n
*/}\r\n\r\n \r\n
\r\n
\r\n
Marketing Scorecard
\r\n

The StorTrack Marketing Scorecard is a devised scoring mechanism for judging the activity and effectiveness of a Store's local marketing, so as to enable us to create a methodology for comparison and competitive insight.

\r\n

The Scorecard is created by monitoring 5 different areas of a Store's marketing activities: it's website, it's organic presence on search engines, it's paid placement in search engines, the social media presence of the Store and finally how easy the Store makes it for potential new tenants to contact it. In each of these five categories, StorTrack has created a weighted scoring process that then rolls up to a category score. The category scores are what you see on the Marketing Scorecard page and the method by which we compare Stores side-by-side.

\r\n {/*

The Scoring Process is detailed in the attached PDF. Please click the link to download the full Scoring methodology. Click here

*/}\r\n

For any further information on StorTrack's Marketing Scorecard please contact Support directly.

\r\n

*Your store scoring is included in the calculations.

\r\n
\r\n \r\n\r\n \r\n\r\n
\r\n \r\n
Current Weakest Marketing Area
\r\n {MarkStoreInfo.weakestMarketingArea ?
{MarkStoreInfo.weakestMarketingArea}
: ''}\r\n
{MarkStoreInfo.weakestMarketingAreaScore >= 0 && MarkStoreInfo.weakestMarketingAreaScore !== null ? MarkStoreInfo.weakestMarketingAreaScore + '/' + MarkStoreInfo.weakestMarketingAreaTotalScroe : isLoading1 === false ? 'N/A' : ''} {MarkStoreInfo.strongestMarketingAreaScore ? (Average) : ''}
\r\n \r\n \r\n
Current Strongest Marketing Area
\r\n {MarkStoreInfo.strongestMarketingArea ?
{MarkStoreInfo.strongestMarketingArea}
: ''}\r\n
{MarkStoreInfo.strongestMarketingAreaScore >= 0 && MarkStoreInfo.strongestMarketingAreaScore !== null ? MarkStoreInfo.strongestMarketingAreaScore + '/' + MarkStoreInfo.strongestMarketingAreaTotalScroe : isLoading1 === false ? 'N/A' : ''} {MarkStoreInfo.strongestMarketingAreaScore ? (Average) : ''}
\r\n \r\n
\r\n
\r\n\r\n \r\n\r\n
\r\n \r\n \r\n
\r\n

Marketing Activity Analysis\r\n {/* Go to All Market View to Add/Remove Stores */}\r\n

\r\n
\r\n \r\n {Markets && Markets.length > 0 ?\r\n \r\n \r\n
\r\n \r\n \r\n {ChartTableData.TableHead && ChartTableData.TableHead.length > 0 ?\r\n \r\n \r\n Marketing Activity\r\n {ChartTableData.TableHead.map((th_data, index) => {\r\n let sAddress = th_data.address ? ', \\n' + th_data.address : '';\r\n const text =
{th_data.storeName + sAddress}
\r\n let dotline;\r\n let storName;\r\n if (ChartTableData.TableHead.length > 5) {\r\n dotline = th_data.storeName.length > 18 ? '..' : '';\r\n storName = th_data.storeName.substring(0, 18) + dotline;\r\n }\r\n else if (ChartTableData.TableHead.length === 4 || ChartTableData.TableHead.length === 5) {\r\n dotline = th_data.storeName.length > 40 ? '..' : '';\r\n storName = th_data.storeName.substring(0, 40) + dotline;\r\n }\r\n else {\r\n storName = th_data.storeName;\r\n }\r\n return (\r\n {storName}\r\n );\r\n })}\r\n \r\n \r\n {ChartTableData.TableHead.map((th_sc_data, index) => {\r\n var mystore_chk = th_sc_data.isMyStore === true ? 'YourStore' : '';\r\n return (\r\n \r\n {/* this.dialogContentOpen(th_sc_data.storeId, mystore_chk)}>see scorecard */}\r\n \r\n );\r\n })}\r\n \r\n
\r\n :\r\n \r\n Marketing Activity\r\n \r\n }\r\n \r\n \r\n {ChartTableData.TableBody && ChartTableData.TableBody.length > 0 ? ChartTableData.TableBody.map((row1, index) => {\r\n return (\r\n \r\n \r\n \r\n {row1.td1}\r\n {grapghCatcheck === row1.td1 ?\r\n \r\n :\r\n \r\n }\r\n \r\n {row1.td2.map((row) => {\r\n return (\r\n \r\n {row.score + '/' + row.totalScore}\r\n \r\n );\r\n })}\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n );\r\n })\r\n :\r\n \r\n N/A\r\n \r\n }\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n {/*

{graphOpen ?graphOpen :''}

*/}\r\n \r\n \r\n \r\n Marketing Activity\r\n Market Low\r\n Market Average\r\n Market High\r\n \r\n \r\n \r\n {ChartTableData.lahMarkets && ChartTableData.lahMarkets.length > 0 ? ChartTableData.lahMarkets.map((tr1data, index) => {\r\n return (\r\n \r\n \r\n {tr1data.tr1.map((td, index) => {\r\n if (td.storeId !== -3) {\r\n return (\r\n \r\n\r\n {\r\n\r\n td.storeName === \"Market Low\" ?\r\n \r\n {td.activityType}\r\n {td.score + '/' + td.totalScore}\r\n \r\n :\r\n td.storeName === \"Market Average\" ?\r\n {td.score + '/' + td.totalScore}\r\n :\r\n td.storeName === \"Market High\" ?\r\n {td.score + '/' + td.totalScore}\r\n :\r\n N/A\r\n }\r\n \r\n );\r\n }\r\n })}\r\n \r\n\r\n {tr1data.tr2.length > 0 ? tr1data.tr2.map((rowdata, index) => {\r\n let percentage = Number(((rowdata.score / rowdata.totalScore) * 100).toFixed(2));\r\n return (\r\n \r\n \r\n
\r\n Your Score\r\n {rowdata.score >= 0 ? rowdata.score + '/' + rowdata.totalScore : 'N/A'}\r\n {rowdata.score >= 0 ? {percentage}% : ''}\r\n {rowdata.myStoreRank ?
{rowdata.myStoreRank}
: ''}\r\n
\r\n \r\n \r\n );\r\n })\r\n :\r\n \r\n \r\n
\r\n Your Score\r\n N/A\r\n
\r\n \r\n \r\n }\r\n
\r\n );\r\n })\r\n :\r\n \r\n N/A\r\n \r\n }\r\n \r\n
\r\n
\r\n \r\n
\r\n :\r\n \r\n {isLoading1 === false ? 'There are no competitors available in this market.' : ''}\r\n \r\n\r\n }\r\n
\r\n {/* Below the table adding for display the static data of national and state values when there are no competitors available in this market */}\r\n {trproductRows.length === 0 && isLoading1 === false ?\r\n \r\n \r\n
\r\n
\r\n

All Market View

\r\n
\r\n \r\n \r\n \r\n\r\n {MarkScoringData ?\r\n MarkScoringData.map((msd, index) => {\r\n return (\r\n \r\n \r\n {msd.statdata.map((row1, index) => {\r\n const labelId = index;\r\n return (\r\n \r\n \r\n {row1.storeName}\r\n \r\n {row1.score !== null ? row1.score + '/' + row1.totalScore + '(' + row1.totalPercent + '%)' : 'N/A'}\r\n {row1.websiteScore !== null ? row1.websiteScore + '/' + row1.websiteScoreTotal + '(' + row1.websiteScorePercent + '%)' : 'N/A'}\r\n {row1.searchScore !== null ? row1.searchScore + '/' + row1.searchScoreTotal + '(' + row1.searchScorePercent + '%)' : 'N/A'}\r\n {row1.paidScore !== null ? row1.paidScore + '/' + row1.paidScoreTotal + '(' + row1.paidScorePercent + '%)' : 'N/A'}\r\n {row1.socialMediaScore !== null ? row1.socialMediaScore + '/' + row1.socialMediaScoreTotal + '(' + row1.socialMediaScorePercent + '%)' : 'N/A'}\r\n {row1.contactabilityScore !== null ? row1.contactabilityScore + '/' + row1.contactabilityScoreTotal + '(' + row1.contactabilityScorePercent + '%)' : 'N/A'}\r\n {/* {row1.isMyMarket === 1 ? this.dialogContentOpen(row1.storeId, 'YourStore')}>See Full Scorecard : ''} */}\r\n \r\n \r\n )\r\n })}\r\n \r\n \r\n );\r\n })\r\n :\r\n \r\n \r\n {isLoading1 === false ? 'There are no competitors available in this market.' : ''}\r\n \r\n \r\n }\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
: ''}\r\n {/* Above the table adding for display the static data of national and state values when there are no competitors available in this market */}\r\n {Markets && Markets.length > 0 ?\r\n \r\n \r\n \r\n \r\n \r\n This market is considered\r\n {MarketsDesc.marketScoreValue ? MarketsDesc.marketScoreValue : ''}\r\n {MarketsDesc ? MarketsDesc.marketScore : ''}\r\n \r\n \r\n \r\n \r\n The most competitive Store is\r\n {/* {MarketsDesc.highestMarketName ? MarketsDesc.highestMarketName : ''} */}\r\n {MarketsDesc ? marketNameCount > 34 ? MarketsDesc.highestMarketName.substring(0, 34) + '...' : MarketsDesc.highestMarketName : isLoading1 === false ? 'N/A' : ''}\r\n {MarketsDesc ? MarketsDesc.highestMarket : ''}\r\n \r\n \r\n \r\n \r\n The lowest Marketing Activity area is\r\n {MarketsDesc.lowestMarketActivity ? MarketsDesc.lowestMarketActivity : ''}\r\n {MarketsDesc.lowestMarket ? MarketsDesc.lowestMarket : 'There are no competitors available in this market.'}\r\n \r\n \r\n \r\n \r\n \r\n :\r\n ''}\r\n
\r\n
\r\n
\r\n \r\n {\r\n trproductRows ? trproductRows.map((rows, i) => (\r\n
\r\n
\r\n {i === 0 ?

All Market View

: ''}\r\n
\r\n \r\n \r\n \r\n\r\n {MarkScoringData ?\r\n MarkScoringData.map((msd, index) => {\r\n return (\r\n \r\n {i === 0 ?\r\n \r\n {msd.statdata.map((row1, index) => {\r\n const labelId = index;\r\n return (\r\n \r\n \r\n {row1.storeName}\r\n \r\n {row1.score !== null ? row1.score + '/' + row1.totalScore + '(' + row1.totalPercent + '%)' : 'N/A'}\r\n {row1.websiteScore !== null ? row1.websiteScore + '/' + row1.websiteScoreTotal + '(' + row1.websiteScorePercent + '%)' : 'N/A'}\r\n {row1.searchScore !== null ? row1.searchScore + '/' + row1.searchScoreTotal + '(' + row1.searchScorePercent + '%)' : 'N/A'}\r\n {row1.paidScore !== null ? row1.paidScore + '/' + row1.paidScoreTotal + '(' + row1.paidScorePercent + '%)' : 'N/A'}\r\n {row1.socialMediaScore !== null ? row1.socialMediaScore + '/' + row1.socialMediaScoreTotal + '(' + row1.socialMediaScorePercent + '%)' : 'N/A'}\r\n {row1.contactabilityScore !== null ? row1.contactabilityScore + '/' + row1.contactabilityScoreTotal + '(' + row1.contactabilityScorePercent + '%)' : 'N/A'}\r\n {/* {row1.isMyMarket === 1 ? this.dialogContentOpen(row1.storeId, 'YourStore')}>See Full Scorecard : ''} */}\r\n \r\n \r\n )\r\n })}\r\n \r\n : ''}\r\n \r\n {this.stableSort(rows, this.getSorting(order, orderBy)).map((row, index) => {\r\n const labelId = index;\r\n return (\r\n 0 ? '' : \"disabled_color\"}>\r\n \r\n {row.storeName}\r\n {row.address}\r\n \r\n {row.score !== null ? row.score + '/' + row.totalScore + '(' + row.totalPercent + '%)' : 'N/A'}\r\n {row.websiteScore !== null ? row.websiteScore + '/' + row.websiteScoreTotal + '(' + row.websiteScorePercent + '%)' : 'N/A'}\r\n {row.searchScore !== null ? row.searchScore + '/' + row.searchScoreTotal + '(' + row.searchScorePercent + '%)' : 'N/A'}\r\n {row.paidScore !== null ? row.paidScore + '/' + row.paidScoreTotal + '(' + row.paidScorePercent + '%)' : 'N/A'}\r\n {row.socialMediaScore !== null ? row.socialMediaScore + '/' + row.socialMediaScoreTotal + '(' + row.socialMediaScorePercent + '%)' : 'N/A'}\r\n {row.contactabilityScore !== null ? row.contactabilityScore + '/' + row.contactabilityScoreTotal + '(' + row.contactabilityScorePercent + '%)' : 'N/A'}\r\n {/* this.dialogContentOpen(row.storeId, '')}>See Full Scorecard */}\r\n \r\n {row.storeId > 0 ?\r\n
\r\n {row.score !== null ? row.isSelected === true ?\r\n \r\n :\r\n \r\n : ''}\r\n
\r\n : ''}\r\n
\r\n
\r\n );\r\n })}\r\n
\r\n
\r\n );\r\n })\r\n :\r\n \r\n \r\n {isLoading1 === false ? 'There are no competitors available in this market.' : ''}\r\n \r\n \r\n }\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n ))\r\n : ''}\r\n \r\n\r\n
\r\n
\r\n {CONFIG.Website_Text_Footer_Pdf} | {CONFIG.Phone_Footer_Pdf} | {CONFIG.Mail_Footer_Pdf} | \"Optimize\r\n
\r\n \r\n \r\n \r\n ]}\r\n message={{snackMSg}}\r\n\r\n />\r\n
\r\n \r\n \r\n Marketing Activity Scorecard\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n

\r\n \r\n
Store Details:
\r\n {isLoading1 === false ?\r\n
\r\n {MarketSCdet.StoreName ? MarketSCdet.StoreName.length > 0 ? MarketSCdet.StoreName[0] + ',' : 'N/A' : 'N/A'}
{MarketSCdet.StoreAddress ? MarketSCdet.StoreAddress.length > 0 ? MarketSCdet.StoreAddress[0] : '' : ''}\r\n
: ''}\r\n
\r\n

\r\n \r\n \r\n

Last Checked: {isLoading1 === false ? {MarketSCdet.CheckDate ? MarketSCdet.CheckDate.length > 0 ? moment(MarketSCdet.CheckDate[0]).format('DD-MMM-YYYY') : 'N/A' : 'N/A'} : ''}

\r\n

Total Score: {isLoading1 === false ? {MarketSCdet.M_TotScore ? MarketSCdet.M_TotScore.length > 0 ? MarketSCdet.M_TotScore + '/100' : 'N/A' : 'N/A'} : ''}

\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n MARKETING ACTIVITY\r\n CATEGORY\r\n SCORE\r\n TOTAL\r\n \r\n \r\n \r\n {Scorecard.length > 0 ? Scorecard.map((data, index) => {\r\n return (\r\n \r\n {data.marketingActivity !== 'empty' ?\r\n 0 ? data.rowcount : 0} className={data.rowcount > 0 ? 'border-right-cell font-16-td' : 'font-16-td'}>{data.marketingActivity}\r\n : ''}\r\n {data.name}\r\n {data.score}\r\n {data.marketingActivity !== 'empty' ?\r\n 0 ? data.rowcount : 0} className={data.rowcount > 0 ? 'border-left-cell font-20-td' : 'font-20-td'}>{data.activityScore + '/' + data.activityScoreTotal}\r\n : ''}\r\n \r\n );\r\n })\r\n :\r\n \r\n {isLoading1 === false ? 'No data Available' : ''}\r\n \r\n }\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\n\r\n//Listing and Sorting Table's Head\r\nfunction EnhancedTableHead(props) {\r\n const { order, orderBy, onRequestSort } = props;\r\n const createSortHandler = property => event => {\r\n onRequestSort(event, property);\r\n };\r\n const headRows = [\r\n { id: 'storeName', numeric: false, disablePadding: true, label: 'Name' },\r\n { id: 'score', numeric: true, disablePadding: false, label: 'Total Score' },\r\n { id: 'websiteScore', numeric: true, disablePadding: false, label: 'Website' },\r\n { id: 'searchScore', numeric: true, disablePadding: false, label: 'Search' },\r\n { id: 'paidScore', numeric: true, disablePadding: false, label: 'Paid Search' },\r\n { id: 'socialMediaScore', numeric: true, disablePadding: false, label: 'Social Media' },\r\n { id: 'contactabilityScore', numeric: true, disablePadding: false, label: 'Contact' },\r\n // { id: 'scorecard', numeric: true, disablePadding: false, label: 'Scorecard' },\r\n { id: 'moreoptions', numeric: true, disablePadding: false, label: 'More Options' }\r\n ];\r\n\r\n return (\r\n \r\n \r\n {headRows.map(row => (\r\n \r\n \r\n {row.label}\r\n \r\n \r\n ))}\r\n \r\n \r\n );\r\n} ","import React, { Fragment } from 'react';\r\nimport './MapViewPdf.css';\r\nimport { Row, Col } from 'reactstrap';\r\nimport axios from 'axios';\r\nimport { CONFIG } from './../../../utils/config';\r\nimport homeIcon from './../../../Assets/Images/home-icon-circle.png';\r\nimport Logo from '../../../Assets/Images/logo.jpg';\r\nimport MapGL, { Layer, Source, Marker, FlyToInterpolator, WebMercatorViewport } from \"react-map-gl\";\r\nimport \"mapbox-gl/dist/mapbox-gl.css\";\r\n\r\nconst layerStyle = {\r\n id: \"point\",\r\n type: \"circle\",\r\n paint: {\r\n \"circle-radius\": 5,\r\n \"circle-color\": [\"get\", \"colorCode\"],\r\n },\r\n};\r\n\r\nexport default class MapViewsPdf extends React.Component {\r\n static defaultProps = {\r\n googleMapURL: 'https://maps.googleapis.com/maps/api/js?key=' + CONFIG.GoogleMapsApiKey + '',\r\n }\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n mapData: [],\r\n isLoading: false,\r\n accessKey: '',\r\n locationInfoData: {},\r\n analysisSummary: [],\r\n viewport: {\r\n // width: \"100%\",\r\n // height: \"100vh\",\r\n longitude: 0,\r\n latitude: 0,\r\n zoom: 10,\r\n },\r\n homeLatLng: { longitude: 0, latitude: 0 }\r\n };\r\n this.mapRef = React.createRef();\r\n }\r\n\r\n async UNSAFE_componentWillMount() {\r\n const data = {\r\n \"SecretKey\": this.props.accessKey,\r\n \"RegionId\": CONFIG.RegionId\r\n }\r\n\r\n const response = await axios.post(CONFIG.API_URL + 'account/secretlogin', data);\r\n if (response.status === 200) {\r\n this.setState({ accessKey: response.data.token })\r\n this.state.accessKey = response.data.token;\r\n this.initialLoad()\r\n this.loadSummary()\r\n } else {\r\n alert(response.status.Message);\r\n }\r\n }\r\n loadSummary() {\r\n let token = this.state.accessKey;\r\n const data = {\r\n \"UserStoreID\": parseInt(this.props.usId),\r\n \"SearchID\": parseInt(this.props.pta),\r\n \"RegionID\": CONFIG.RegionId\r\n }\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n }\r\n axios.post(CONFIG.API_URL + 'dashboard/currentpricinganalysissummary', data)\r\n .then(response => {\r\n const analysisSummary = response.data.current;\r\n this.setState({\r\n analysisSummary: analysisSummary,\r\n isLoading: false,\r\n })\r\n }).catch((err) => {\r\n if (err.response.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }\r\n\r\n getBoundingValues = (points) => {\r\n if (points.length) {\r\n const paddingLength = window.innerHeight / 3;\r\n const applyToArray = (func, array) => func.apply(Math, array);\r\n const pointsLong = points.map((point) => point.geometry.coordinates[0]);\r\n const pointsLat = points.map((point) => point.geometry.coordinates[1]);\r\n if (!pointsLong.includes(this.state.homeLatLng.longitude)) pointsLong.push(this.state.homeLatLng.longitude);\r\n if (!pointsLat.includes(this.state.homeLatLng.latitude)) pointsLat.push(this.state.homeLatLng.latitude);\r\n const cornersLongLat = [\r\n [applyToArray(Math.min, pointsLong), applyToArray(Math.min, pointsLat)],\r\n [applyToArray(Math.max, pointsLong), applyToArray(Math.max, pointsLat)],\r\n ];\r\n const viewport = new WebMercatorViewport({\r\n width: window.innerWidth,\r\n height: window.innerHeight,\r\n }).fitBounds(cornersLongLat, {\r\n padding: { top: paddingLength, bottom: paddingLength, left: paddingLength, right: paddingLength },\r\n });\r\n const { longitude, latitude, zoom } = viewport;\r\n this.setState(prevState => {\r\n return {\r\n viewport: {\r\n ...prevState.viewport,\r\n latitude: latitude,\r\n longitude: longitude,\r\n zoom: zoom,\r\n transitionDuration: 100,\r\n transitionInterpolator: new FlyToInterpolator(),\r\n }\r\n }\r\n });\r\n }\r\n };\r\n\r\n mapView() {\r\n localStorage.setItem('StId', this.props.usId);\r\n const data = {\r\n \"UserStoreID\": parseInt(this.props.usId),\r\n \"SearchID\": parseInt(this.props.pta),\r\n \"RegionID\": CONFIG.RegionId,\r\n \"IsMapBox\": CONFIG.IsMapbox\r\n }\r\n let token = this.state.accessKey;\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n }\r\n\r\n axios.post(CONFIG.API_URL + 'unit/unitlevelmapview', data)\r\n .then(res => {\r\n let mapData = res.data.data.unitLevelDatas;\r\n this.setState({ mapData, isLoading: false }, () => this.getBoundingValues(mapData));\r\n })\r\n\r\n .catch((err) => {\r\n this.setState({ isLoading: false });\r\n if (err.response.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }\r\n\r\n loadDashBoard() {\r\n let token = this.state.accessKey;\r\n const data = {\r\n \"UserStoreID\": parseInt(this.props.usId),\r\n \"SearchID\": parseInt(this.props.pta),\r\n \"RegionID\": CONFIG.RegionId\r\n }\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n }\r\n axios.post(CONFIG.API_URL + 'unit/dashboardSearchlocation', data)\r\n .then(response => {\r\n // let zoomValue;\r\n const locationInfoData = response.data.data.unitDashboard;\r\n // const centerPoint = response.data.data.centerPoints;\r\n // if (locationInfoData.searchType === 3) {\r\n // zoomValue = 8;\r\n // } else if (locationInfoData.searchType === 2) {\r\n // let zCnt = locationInfoData.storeZoneCoverage != \"\" && locationInfoData.storeZoneCoverage != null ? (locationInfoData.storeZoneCoverage.split(\",\").length - 1) : 1;\r\n // zoomValue = (zCnt > 1) ? 9 : (zCnt > 0) ? 10 : 11;\r\n // } else if (locationInfoData.searchType === 1) {\r\n // let storeZoneCoverage = locationInfoData.storeZoneCoverage.split(' ');\r\n // zoomValue = (storeZoneCoverage[0] === '1' || storeZoneCoverage[0] === '2' || storeZoneCoverage[0] === '3') ? 13 : (storeZoneCoverage[0] === '4' || storeZoneCoverage[0] === '5' || storeZoneCoverage[0] === '6') ? 12 : (storeZoneCoverage[0] === '7' || storeZoneCoverage[0] === '8' || storeZoneCoverage[0] === '9' || storeZoneCoverage[0] === '10') ? 10 : 6;\r\n // }\r\n let lat = parseFloat(this.props.lat);\r\n let lng = parseFloat(this.props.lng);\r\n // let lat = parseFloat(centerPoint && (centerPoint.length > 0 && centerPoint[0].latitude != null) ? centerPoint[0].latitude : this.props.lat);\r\n // let lng = parseFloat(centerPoint && (centerPoint.length > 0 && centerPoint[0].longitude != null) ? centerPoint[0].longitude : this.props.lng);\r\n\r\n this.setState(prevState => ({\r\n locationInfoData: locationInfoData,\r\n viewport: {\r\n ...prevState.viewport,\r\n longitude: lng,\r\n latitude: lat,\r\n // zoom: zoomValue\r\n },\r\n homeLatLng: { longitude: Number(lng), latitude: Number(lat) }\r\n }), () => this.mapView());\r\n }).catch((err) => {\r\n if (err.response.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else if (err.response.status === 403) {\r\n const { from } = this.props.location.state || { from: { pathname: \"/UnauthorizedAccess\" } };\r\n this.props.history.push(from);\r\n }\r\n else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }\r\n initialLoad() {\r\n this.setState({ isLoading: true });\r\n this.loadDashBoard();\r\n }\r\n\r\n handleViewportChange = (viewport) => {\r\n this.setState({ viewport });\r\n }\r\n\r\n render() {\r\n const { analysisSummary, mapData, locationInfoData, isLoading, viewport, homeLatLng } = this.state;\r\n const defaultProps = {\r\n helpTitle: \"Map View\",\r\n helpContent: \"

The stores advertising this unit are shown on a map. The stores identified in blue are the stores currently advertising rates online, those in black are stores in this Market which currently do not advertised online. Hover over any of the store pinpoints to view some details on that store.

*Your store prices are included in the calculations.

\"\r\n }\r\n let cutCur = locationInfoData.countryCurrency ? locationInfoData.countryCurrency : 'N/A';\r\n let clp = analysisSummary.lowestPrice;\r\n let cap = analysisSummary.averagePrice;\r\n let chp = analysisSummary.highestPrice;\r\n if (clp) {\r\n var splt_clp = clp.toString().split('.');\r\n let splt_val_clp = splt_clp[1] ? splt_clp[1].length === 1 ? '.' + splt_clp[1] + '0' : splt_clp[1].length === 2 ? '.' + splt_clp[1] : '' : '';\r\n clp = cutCur + splt_clp[0] + splt_val_clp;\r\n }\r\n if (cap) {\r\n var splt_cap = cap.toString().split('.');\r\n let splt_val_cap = splt_cap[1] ? splt_cap[1].length === 1 ? '.' + splt_cap[1] + \"0\" : splt_cap[1].length === 2 ? '.' + splt_cap[1] : '' : '';\r\n cap = cutCur + splt_cap[0] + splt_val_cap;\r\n }\r\n if (chp) {\r\n var splt_chp = chp.toString().split('.');\r\n let splt_val_chp = splt_chp[1] ? splt_chp[1].length === 1 ? '.' + splt_chp[1] + '0' : splt_chp[1].length === 2 ? '.' + splt_chp[1] : '' : '';\r\n chp = cutCur + splt_chp[0] + splt_val_chp;\r\n }\r\n const nameCount = locationInfoData.storeName ? locationInfoData.storeName.length : 0;\r\n return (\r\n
\r\n
\r\n {/*
{locationInfoData.storeName && locationInfoData.storeName !== null && locationInfoData.storeName !== '' ? nameCount > CONFIG.storeNameMaxLimit ? locationInfoData.storeName.substring(0, CONFIG.storeNameMaxLimit - 3) + '...' : locationInfoData.storeName : isLoading === false ? 'Your Store' : ''}

{locationInfoData.storeAddress1 && locationInfoData.storeAddress1 !== null && locationInfoData.storeAddress1 !== '' ? locationInfoData.storeAddress1 + \", \" : '' + locationInfoData && locationInfoData.storeCity ? locationInfoData.storeCity + \", \" : locationInfoData.searchType === 1 && (locationInfoData.storeCity === '' || locationInfoData.storeCity === null) && (locationInfoData.storeZipCode === '' || locationInfoData.storeZipCode === null) ? locationInfoData.latitude+', ' +locationInfoData.longitude+', ': ''}{locationInfoData.storeState + ' ' + locationInfoData.storeZipCode} {locationInfoData.storeZoneCoverage ? \"| Coverage: \" + locationInfoData.storeZoneCoverage : 'N/A'}

*/}\r\n
{locationInfoData.storeName && locationInfoData.storeName !== null && locationInfoData.storeName !== '' ? nameCount > CONFIG.storeNameMaxLimit ? locationInfoData.storeName.substring(0, CONFIG.storeNameMaxLimit - 3) + '...' : locationInfoData.storeName : isLoading === false ? 'Your Store' : ''}

{locationInfoData.storeAddress1 && locationInfoData.storeAddress1 !== null && locationInfoData.storeAddress1 !== '' ? locationInfoData.storeAddress1 + \", \" : '' + locationInfoData && locationInfoData.storeCity ? locationInfoData.storeCity + \", \" : locationInfoData.searchType === 1 && (locationInfoData.storeCity === '' || locationInfoData.storeCity === null) && (locationInfoData.storeZipCode === '' || locationInfoData.storeZipCode === null) ? locationInfoData.latitude + ', ' + locationInfoData.longitude + ', ' : ''}{locationInfoData.storeState ? locationInfoData.storeState + ' ' : ''}{locationInfoData.storeZipCode} {locationInfoData.storeZoneCoverage ? \"| Coverage: \" + locationInfoData.storeZoneCoverage : 'N/A'}

\r\n
\r\n
\r\n\r\n\r\n
\r\n

{'(' + locationInfoData.searchName + ')'} Map View

\r\n \r\n
\r\n

{CONFIG.RegionId === 3 ? \"Current Lowest Weekly Price\" : \"Current Lowest Price\"}

\r\n

{analysisSummary ? analysisSummary.lowestPriceStoreName : isLoading === false ? 'N/A' : ''}

\r\n
{clp ? clp : isLoading === false ? 'N/A' : ''}
\r\n
\r\n
\r\n

{CONFIG.RegionId === 3 ? \"Current Average Weekly Price\" : \"Current Average Price\"}

\r\n {/*

*/}\r\n
{cap ? cap : isLoading === false ? 'N/A' : ''}
\r\n
\r\n
\r\n

{CONFIG.RegionId === 3 ? \"Current Highest Weekly Price\" : \"Current Highest Price\"}

\r\n

{analysisSummary ? analysisSummary.highestPriceStoreName : isLoading === false ? 'N/A' : ''}

\r\n
{chp ? chp : isLoading === false ? 'N/A' : ''}
\r\n
\r\n
\r\n
\r\n {isLoading ?
: ''}\r\n
\r\n

\r\n The stores advertising this unit are shown on a map. The stores identified in blue are the stores currently advertising rates online, those in black are stores in this Market which currently do not advertised online. Hover over any of the store pinpoints to view some details on that store.\r\n

*Your store prices are included in the calculations.\r\n

\r\n \r\n \r\n \r\n \r\n
\r\n {\r\n let mapbox = this.mapRef.current.getMap();\r\n mapbox.loadImage(homeIcon, (error, image) => {\r\n if (error) throw error;\r\n mapbox.addImage('homeMarker', image);\r\n });\r\n }}\r\n >\r\n {/* {homeLatLng.latitude !== 0 && homeLatLng.longitude !== 0 &&\r\n (\r\n \"icon\"\r\n )} */}\r\n {/* {homeLatLng.latitude !== 0 && homeLatLng.longitude !== 0 && */}\r\n \r\n \r\n \r\n \r\n {/* */}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
Your Store
\r\n
Competitor
\r\n
Rate Data Unavailable
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n {CONFIG.Website_Text_Footer_Pdf} | {CONFIG.Phone_Footer_Pdf} | {CONFIG.Mail_Footer_Pdf} | \"Optimize\r\n
\r\n
\r\n );\r\n }\r\n}\r\n","import React, { Component, Fragment } from 'react';\r\nimport './MapViewPdf.css';\r\nimport ReactDOM from \"react-dom\";\r\nimport { Row, Col, Button } from 'reactstrap';\r\n//import './MapViews.css';\r\n//import { Gmaps, Marker, InfoWindow } from 'react-gmaps';\r\nimport axios from 'axios';\r\nimport { MarketProfile } from './../../MarketProfile';\r\nimport { CONFIG } from './../../../utils/config';\r\nimport orangepin from './../../../Assets/Images/orange-pin.png';\r\nimport blackpin from './../../../Assets/Images/black-pin.png';\r\nimport bluepin from './../../../Assets/Images/blue-pin.png';\r\nimport orangehome from './../../../Assets/Images/orange-home.png';\r\nimport { HelpTextPopup } from './../../HelpTextPopup/index';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faFilePdf } from '@fortawesome/free-solid-svg-icons';\r\nimport Logo from '../../../Assets/Images/logo.jpg';\r\nimport {\r\n withScriptjs,\r\n withGoogleMap,\r\n GoogleMap,\r\n Marker,\r\n InfoWindow\r\n} from \"react-google-maps\";\r\n//const params = { v: '3.exp', key: 'AIzaSyDaYQZ0es5K-kLgDuZuTqRHKiTDENEMxxQ' };\r\n\r\nexport default class MapViewsGmapPdf extends React.Component {\r\n static defaultProps = {\r\n googleMapURL: 'https://maps.googleapis.com/maps/api/js?key=' + CONFIG.GoogleMapsApiKey + '',\r\n }\r\n constructor(props) {\r\n super(props);\r\n this.child = React.createRef();\r\n this.state = {\r\n mapData: [],\r\n showingInfoWindow: false,\r\n storeId: '',\r\n searchId: '',\r\n test: '',\r\n storeName: '',\r\n storeid: 0,\r\n isLoading: false,\r\n accessKey: '',\r\n locationInfoData: {},\r\n analysisSummary: [],\r\n zoomValue: 6,\r\n centerPoint: [],\r\n\r\n };\r\n this.getParams = this.getParams.bind(this);\r\n this.mapRef = React.createRef();\r\n }\r\n\r\n CMap = withScriptjs(withGoogleMap(props =>\r\n 0 && this.state.centerPoint[0].latitude != null) ? this.state.centerPoint[0].latitude : this.props.lat), lng: parseFloat(this.state.centerPoint && (this.state.centerPoint.length > 0 && this.state.centerPoint[0].longitude != null) ? this.state.centerPoint[0].longitude : this.props.lng) }}\r\n // defaultCenter = {{lat: this.state.locationInfoData ? parseFloat(this.state.locationInfoData.latitude) : 33.64566 , lng: this.state.locationInfoData ? parseFloat(this.state.locationInfoData.longitude) : -86.6836}}\r\n defaultOptions={{ zoomControl: true, fullscreenControl: false, streetViewControl: false, disableDefaultUI: false, mapTypeControl: true, }}\r\n >\r\n {props.children}\r\n \r\n ));\r\n\r\n getParams() {\r\n let strName = this.state.storeName;\r\n let strID = this.state.storeid;\r\n if (strName && strID) {\r\n this.child.current.toggleModal(strName, strID);\r\n }\r\n }\r\n\r\n onMarkerClick = (name, address, id, lat, lng, size) => {\r\n let sam = [], uniqsize = [];\r\n this.state.mapData.map(test => {\r\n if (test.storeId === id) {\r\n sam.push(test.size)\r\n\r\n }\r\n })\r\n const uniqueNames = Array.from(new Set(sam));\r\n console.log(uniqueNames, \"uniqsize\");\r\n var units = uniqueNames.join(\", \");\r\n var add = address;\r\n var last = add.lastIndexOf(\",\");\r\n var s1 = add.substring(0, last);\r\n var s2 = add.substring(last + 1);\r\n var storedata = this.state.FData;\r\n var tFData = storedata.filter(a => a.StoreID == id);\r\n var StandardOnlinePrice = tFData[0].StandardOnlinePrice;\r\n var StandardRegPrice = tFData[0].StandardRegPrice;\r\n //setTimeout(() => {\r\n this.setState({\r\n storeName: name,\r\n lat: lat,\r\n lng: lng,\r\n address: address ? s1 : '',\r\n address1: address ? s2 : '',\r\n regPrice: StandardRegPrice != this.props.curr + 0 ? StandardRegPrice : 'N/A',\r\n onlinePrice: StandardOnlinePrice != this.props.curr + 0 ? StandardOnlinePrice : 'N/A',\r\n size: size ? units : 'N/A',\r\n storeid: id,\r\n showingInfoWindow: true\r\n });\r\n // },500)\r\n }\r\n async UNSAFE_componentWillMount() {\r\n const data = {\r\n \"SecretKey\": this.props.accessKey,\r\n \"RegionId\": CONFIG.RegionId\r\n }\r\n\r\n const response = await axios.post(CONFIG.API_URL + 'account/secretlogin', data);\r\n if (response.status === 200) {\r\n this.setState({ accessKey: response.data.token })\r\n this.state.accessKey = response.data.token;\r\n console.log(this.state.accessKey, 'acceskry');\r\n this.initialLoad()\r\n this.loadSummary()\r\n } else {\r\n alert(response.status.Message);\r\n }\r\n }\r\n loadSummary() {\r\n let token = this.state.accessKey;\r\n const data = {\r\n \"UserStoreID\": parseInt(this.props.usId),\r\n \"SearchID\": parseInt(this.props.pta),\r\n \"RegionID\": CONFIG.RegionId\r\n }\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n }\r\n axios.post(CONFIG.API_URL + 'dashboard/currentpricinganalysissummary', data)\r\n .then(response => {\r\n\r\n // this.state.isLoading=true;\r\n const analysisSummary = response.data.current;\r\n this.setState({\r\n analysisSummary: analysisSummary,\r\n isLoading: false,\r\n })\r\n }).catch((err) => {\r\n if (err.response.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else {\r\n alert(err.response.data);\r\n }\r\n });\r\n\r\n\r\n }\r\n\r\n // componentWillReceiveProps(nextProps) {\r\n // if(nextProps){\r\n // this.state.mapData=[];\r\n // this.setState({\r\n // isLoading: true,\r\n // showingInfoWindow: false,\r\n // bca:nextProps.bca, \r\n // abc:nextProps.abc}, \r\n // ()=> {this.componentDidMount()\r\n // });\r\n // }\r\n\r\n // }\r\n\r\n setMapFitBounds = (mapData) => {\r\n let bounds = new window.google.maps.LatLngBounds();\r\n for (let i = 0; i < mapData.length; i++) {\r\n let loc = new window.google.maps.LatLng(mapData[i].latitude, mapData[i].longitude);\r\n bounds.extend(loc);\r\n }\r\n let homeLoc = new window.google.maps.LatLng(this.state.locationInfoData.latitude, this.state.locationInfoData.longitude);\r\n bounds.extend(homeLoc);\r\n this.mapRef.current.fitBounds(bounds);\r\n }\r\n\r\n mapView() {\r\n // const data=\r\n // {\r\n // \"UserStoreID\":129229,\r\n // \"SearchID\":965256\r\n // }\r\n localStorage.setItem('StId', this.props.usId);\r\n const data = {\r\n \"UserStoreID\": parseInt(this.props.usId),\r\n \"SearchID\": parseInt(this.props.pta),\r\n \"RegionID\": CONFIG.RegionId,\r\n \"IsMapBox\": CONFIG.IsMapbox\r\n }\r\n // const data = {\r\n // UserStoreID: parseInt(this.props.usId),\r\n // SearchID: this.props.pta,\r\n // \"RegionID\" :CONFIG.RegionId\r\n // }\r\n let token = this.state.accessKey;\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n }\r\n\r\n axios.post(CONFIG.API_URL + 'unit/unitlevelmapview', data)\r\n .then(res => {\r\n let mapData = res.data.data.unitLevelDatas;\r\n if (mapData.length) this.setMapFitBounds(mapData);\r\n let uniquestore = [...new Set(mapData.map(item => item.storeId))];\r\n var FData = [];\r\n for (var t = 0; t < uniquestore.length; t++) {\r\n var tFData = mapData.filter(a => a.storeId == uniquestore[t]);\r\n var mData = {\r\n StoreID: uniquestore[t],\r\n StoreAddress: tFData[0].address,\r\n PremiumRegPrice: Math.max.apply(Math, tFData.map(function (o) { return o.regPrice; })),\r\n // StandardRegPrice:(Math.max.apply(Math, tFData.map(function(o) { return o.regPrice; }))+'-'+Math.min.apply(Math, tFData.map(function(o) { return o.regPrice; }))),\r\n StandardRegPrice: Math.max.apply(Math, tFData.map(function (o) { return o.regPrice; })) === Math.min.apply(Math, tFData.map(function (o) { return o.regPrice; })) ? this.props.curr + Math.min.apply(Math, tFData.map(function (o) { return o.regPrice; })) : this.props.curr + (Math.min.apply(Math, tFData.map(function (o) { return o.regPrice; })) + ' - ' + Math.max.apply(Math, tFData.map(function (o) { return o.regPrice; }))),\r\n //old\r\n // StandardRegPrice : Math.max.apply(Math, tFData.map(function(o) { return o.regPrice; })) === Math.min.apply(Math, tFData.map(function(o) { return o.regPrice; })) ? this.props.curr + Math.min.apply(Math, tFData.map(function(o) { return o.regPrice; })) : this.props.curr + (Math.max.apply(Math, tFData.map(function(o) { return o.regPrice; }))+'-'+ this.props.curr + Math.min.apply(Math, tFData.map(function(o) { return o.regPrice; }))),\r\n ValueRegPRice: Math.min.apply(Math, tFData.map(function (o) { return o.regPrice; })),\r\n PremiumOnlinePrice: Math.max.apply(Math, tFData.map(function (o) { return o.onlinePrice; })),\r\n // StandardOnlinePrice:(Math.max.apply(Math, tFData.map(function(o) { return o.onlinePrice; }))+'-'+Math.min.apply(Math, tFData.map(function(o) { return o.onlinePrice; }))),\r\n StandardOnlinePrice: Math.max.apply(Math, tFData.map(function (o) { return o.onlinePrice; })) === Math.min.apply(Math, tFData.map(function (o) { return o.onlinePrice; })) ? this.props.curr + Math.min.apply(Math, tFData.map(function (o) { return o.onlinePrice; })) : this.props.curr + (Math.min.apply(Math, tFData.map(function (o) { return o.onlinePrice; })) + ' - ' + Math.max.apply(Math, tFData.map(function (o) { return o.onlinePrice; }))),\r\n //old\r\n // StandardOnlinePrice: Math.max.apply(Math, tFData.map(function(o) { return o.onlinePrice; })) === Math.min.apply(Math, tFData.map(function(o) { return o.onlinePrice; })) ? this.props.curr+ Math.min.apply(Math, tFData.map(function(o) { return o.onlinePrice; })) : this.props.curr +(Math.max.apply(Math, tFData.map(function(o) { return o.onlinePrice; }))+'-'+this.props.curr + Math.min.apply(Math, tFData.map(function(o) { return o.onlinePrice; }))),\r\n ValueOnlinePRice: Math.min.apply(Math, tFData.map(function (o) { return o.onlinePrice; }))\r\n }\r\n FData.push(mData);\r\n }\r\n //let lat= mapData != '' ? mapData[0].latitude:0;\r\n //let lng= mapData != '' ? mapData[0].longitude:0;\r\n this.setState({ mapData, FData, isLoading: false });\r\n })\r\n\r\n .catch((err) => {\r\n this.setState({ isLoading: false });\r\n if (err.response.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }\r\n\r\n onMarkerClose = () => {\r\n this.setState({ showingInfoWindow: false });\r\n }\r\n loadDashBoard() {\r\n let token = this.state.accessKey;\r\n const data = {\r\n \"UserStoreID\": parseInt(this.props.usId),\r\n \"SearchID\": parseInt(this.props.pta),\r\n \"RegionID\": CONFIG.RegionId\r\n }\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n }\r\n axios.post(CONFIG.API_URL + 'unit/dashboardSearchlocation', data)\r\n .then(response => {\r\n // this.state.isLoading=true;\r\n let zoomValue;\r\n const locationInfoData = response.data.data.unitDashboard;\r\n const centerPoint = response.data.data.centerPoints;\r\n if (locationInfoData.searchType === 3) {\r\n zoomValue = 9;\r\n } else if (locationInfoData.searchType === 2) {\r\n let zCnt = locationInfoData.storeZoneCoverage != \"\" && locationInfoData.storeZoneCoverage != null ? (locationInfoData.storeZoneCoverage.split(\",\").length - 1) : 1;\r\n zoomValue = (zCnt > 1) ? 9 : (zCnt > 0) ? 10 : 11;\r\n } else if (locationInfoData.searchType === 1) {\r\n let storeZoneCoverage = locationInfoData.storeZoneCoverage.split(' ');\r\n zoomValue = (storeZoneCoverage[0] === '1' || storeZoneCoverage[0] === '2' || storeZoneCoverage[0] === '3') ? 12 : (storeZoneCoverage[0] === '4' || storeZoneCoverage[0] === '5' || storeZoneCoverage[0] === '6') ? 11 : (storeZoneCoverage[0] === '7' || storeZoneCoverage[0] === '8' || storeZoneCoverage[0] === '9' || storeZoneCoverage[0] === '10') ? 10 : 6;\r\n }\r\n this.setState({\r\n locationInfoData: locationInfoData, zoomValue, centerPoint\r\n })\r\n }).catch((err) => {\r\n if (err.response.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else if (err.response.status === 403) {\r\n const { from } = this.props.location.state || { from: { pathname: \"/UnauthorizedAccess\" } };\r\n this.props.history.push(from);\r\n }\r\n else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }\r\n initialLoad() {\r\n this.setState({ isLoading: true });\r\n this.loadDashBoard();\r\n this.mapView();\r\n\r\n }\r\n\r\n render() {\r\n const { analysisSummary, mapData, locationInfoData, FData, isLoading, centerPoint, zoomValue } = this.state;\r\n const defaultProps = {\r\n helpTitle: \"Map View\",\r\n helpContent: \"

The stores advertising this unit are shown on a map. The stores identified in blue are the stores currently advertising rates online, those in black are stores in this Market which currently do not advertised online. Hover over any of the store pinpoints to view some details on that store.

*Your store prices are included in the calculations.

\"\r\n }\r\n let cutCur = locationInfoData.countryCurrency ? locationInfoData.countryCurrency : 'N/A';\r\n let clp = analysisSummary.lowestPrice;\r\n let cap = analysisSummary.averagePrice;\r\n let chp = analysisSummary.highestPrice;\r\n if (clp) {\r\n var splt_clp = clp.toString().split('.');\r\n let splt_val_clp = splt_clp[1] ? splt_clp[1].length === 1 ? '.' + splt_clp[1] + '0' : splt_clp[1].length === 2 ? '.' + splt_clp[1] : '' : '';\r\n clp = cutCur + splt_clp[0] + splt_val_clp;\r\n }\r\n if (cap) {\r\n var splt_cap = cap.toString().split('.');\r\n let splt_val_cap = splt_cap[1] ? splt_cap[1].length === 1 ? '.' + splt_cap[1] + \"0\" : splt_cap[1].length === 2 ? '.' + splt_cap[1] : '' : '';\r\n cap = cutCur + splt_cap[0] + splt_val_cap;\r\n }\r\n if (chp) {\r\n var splt_chp = chp.toString().split('.');\r\n let splt_val_chp = splt_chp[1] ? splt_chp[1].length === 1 ? '.' + splt_chp[1] + '0' : splt_chp[1].length === 2 ? '.' + splt_chp[1] : '' : '';\r\n chp = cutCur + splt_chp[0] + splt_val_chp;\r\n }\r\n const nameCount = locationInfoData.storeName ? locationInfoData.storeName.length : 0;\r\n return (\r\n
\r\n
\r\n {/*
{locationInfoData.storeName && locationInfoData.storeName !== null && locationInfoData.storeName !== '' ? nameCount > CONFIG.storeNameMaxLimit ? locationInfoData.storeName.substring(0, CONFIG.storeNameMaxLimit - 3) + '...' : locationInfoData.storeName : isLoading === false ? 'Your Store' : ''}

{locationInfoData.storeAddress1 && locationInfoData.storeAddress1 !== null && locationInfoData.storeAddress1 !== '' ? locationInfoData.storeAddress1 + \", \" : '' + locationInfoData && locationInfoData.storeCity ? locationInfoData.storeCity + \", \" : locationInfoData.searchType === 1 && (locationInfoData.storeCity === '' || locationInfoData.storeCity === null) && (locationInfoData.storeZipCode === '' || locationInfoData.storeZipCode === null) ? locationInfoData.latitude+', ' +locationInfoData.longitude+', ': ''}{locationInfoData.storeState + ' ' + locationInfoData.storeZipCode} {locationInfoData.storeZoneCoverage ? \"| Coverage: \" + locationInfoData.storeZoneCoverage : 'N/A'}

*/}\r\n
{locationInfoData.storeName && locationInfoData.storeName !== null && locationInfoData.storeName !== '' ? nameCount > CONFIG.storeNameMaxLimit ? locationInfoData.storeName.substring(0, CONFIG.storeNameMaxLimit - 3) + '...' : locationInfoData.storeName : isLoading === false ? 'Your Store' : ''}

{locationInfoData.storeAddress1 && locationInfoData.storeAddress1 !== null && locationInfoData.storeAddress1 !== '' ? locationInfoData.storeAddress1 + \", \" : '' + locationInfoData && locationInfoData.storeCity ? locationInfoData.storeCity + \", \" : locationInfoData.searchType === 1 && (locationInfoData.storeCity === '' || locationInfoData.storeCity === null) && (locationInfoData.storeZipCode === '' || locationInfoData.storeZipCode === null) ? locationInfoData.latitude + ', ' + locationInfoData.longitude + ', ' : ''}{locationInfoData.storeState ? locationInfoData.storeState + ' ' : ''}{locationInfoData.storeZipCode} {locationInfoData.storeZoneCoverage ? \"| Coverage: \" + locationInfoData.storeZoneCoverage : 'N/A'}

\r\n
\r\n
\r\n\r\n\r\n
\r\n

{'(' + locationInfoData.searchName + ')'} Map View

\r\n \r\n
\r\n

{CONFIG.RegionId === 3 ? \"Current Lowest Weekly Price\" : \"Current Lowest Price\"}

\r\n

{analysisSummary ? analysisSummary.lowestPriceStoreName : isLoading === false ? 'N/A' : ''}

\r\n
{clp ? clp : isLoading === false ? 'N/A' : ''}
\r\n
\r\n
\r\n

{CONFIG.RegionId === 3 ? \"Current Average Weekly Price\" : \"Current Average Price\"}

\r\n {/*

*/}\r\n
{cap ? cap : isLoading === false ? 'N/A' : ''}
\r\n
\r\n
\r\n

{CONFIG.RegionId === 3 ? \"Current Highest Weekly Price\" : \"Current Highest Price\"}

\r\n

{analysisSummary ? analysisSummary.highestPriceStoreName : isLoading === false ? 'N/A' : ''}

\r\n
{chp ? chp : isLoading === false ? 'N/A' : ''}
\r\n
\r\n
\r\n
\r\n {isLoading ?
: ''}\r\n
\r\n

\r\n The stores advertising this unit are shown on a map. The stores identified in blue are the stores currently advertising rates online, those in black are stores in this Market which currently do not advertised online. Hover over any of the store pinpoints to view some details on that store.\r\n

*Your store prices are included in the calculations.\r\n

\r\n \r\n \r\n \r\n \r\n }\r\n containerElement={
}\r\n mapElement={
}\r\n >\r\n \r\n {mapData ? mapData.map((marker) => {\r\n return (\r\n this.onMarkerClick(marker.storeName, marker.address, marker.storeId, marker.latitude, marker.longitude, marker.size)}\r\n >\r\n {this.state.showingInfoWindow && this.state.storeid === marker.storeId ?\r\n this.onMarkerClose()}\r\n visible={this.state.showingInfoWindow}>\r\n
\r\n
{this.state.storeName}

{this.state.address},
{this.state.address1}

Walk-in Rate:{this.state.regPrice}
Online Rate:{this.state.onlinePrice}
Unit Type:{this.state.size}
\r\n
\r\n \r\n : ''}\r\n \r\n )\r\n\r\n }) : ''\r\n }\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
Your Store
\r\n
Competitor
\r\n
Rate Data Unavailable
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n {CONFIG.Website_Text_Footer_Pdf} | {CONFIG.Phone_Footer_Pdf} | {CONFIG.Mail_Footer_Pdf} | \"Optimize\r\n
\r\n
\r\n );\r\n }\r\n\r\n}","import React, { Component } from \"react\";\r\nimport \"./EffectiveRatesPdf.css\";\r\nimport { Row, Col, Button, Nav, NavItem, NavLink } from \"reactstrap\";\r\nimport { AvForm, AvField } from \"availity-reactstrap-validation\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport { Table as ReactTable } from \"reactstrap\";\r\nimport TableHead from \"@material-ui/core/TableHead\";\r\nimport TableCell from \"@material-ui/core/TableCell\";\r\nimport TableRow from \"@material-ui/core/TableRow\";\r\nimport TableSortLabel from \"@material-ui/core/TableSortLabel\";\r\nimport Snackbar from \"@material-ui/core/Snackbar\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\nimport { HelpTextPopup } from \"../../HelpTextPopup/index\";\r\nimport * as d3 from \"d3\";\r\nimport axios from \"axios\";\r\nimport { CONFIG } from \"../../../utils/config\";\r\nimport addtomap from \"../../../Assets/Images/plus.png\";\r\nimport removefrommap from \"../../../Assets/Images/trash.png\";\r\nimport tableplus from \"../../../Assets/Images/table-plus.png\";\r\nimport tableminus from \"../../../Assets/Images/table-minus.png\";\r\nimport downarrows from \"../../../Assets/Images/down-arrow.png\";\r\nimport Tooltip from \"@material-ui/core/Tooltip\";\r\nimport ShowMoreText from \"react-show-more-text\";\r\nimport moment from \"moment\";\r\nimport Logo from \"../../../Assets/Images/logo.jpg\";\r\nimport Table from \"@material-ui/core/Table\";\r\nimport { TableBody } from \"@material-ui/core\";\r\n\r\nexport default class EffectiveRatesPdf extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n activeTab: 1,\r\n isLoading1: false,\r\n order: this.props.order,\r\n orderBy: this.props.orderby,\r\n snackOpen: false,\r\n snackMSg: \"\",\r\n unitDurations: [],\r\n hisactivemenu: this.props.hisactivemenu.toString(),\r\n hisactivedur: this.props.hisactivedur.toString(),\r\n gridactivedur: this.props.gridactivedur.toString(),\r\n uniquestore: \"\",\r\n grapghCatcheck: this.props.grapghCatcheck,\r\n graphOpen: this.props.grapghCatcheck,\r\n // SinglelahMarkets: {},\r\n CoreMarketView: [],\r\n CoreMarketViewtab3: [],\r\n CoreMarketViewtab2: [],\r\n ChartTableData: [],\r\n ChartTableDatatab3: [],\r\n ChartTableDatatab2: [],\r\n GridTableValue: {},\r\n CurrentHistory: [],\r\n AllMarketdata: [],\r\n AllCurrentHistory: [],\r\n MarketViewpricingOptions: [],\r\n MarketViewpricingOptionstab3: [],\r\n MarketViewpricingOptionstab2: [],\r\n isLoading: false,\r\n AvailDataCheck: 0,\r\n AvailDataChecktab3: 0,\r\n AvailDataChecktab2: 0,\r\n stId: this.props.userstoreid,\r\n seId: this.props.searchId,\r\n defaultWidth: 0,\r\n priceLength: 0,\r\n pricecolLength: 0,\r\n priceLengthtab3: 0,\r\n pricecolLengthtab3: 0,\r\n priceLengthtab2: 0,\r\n pricecolLengthtab2: 0,\r\n Tabloading: false,\r\n promo_open: false,\r\n promo_open_id: 0,\r\n accessKey: \"\",\r\n locationInfoData: [],\r\n uniquestores: [],\r\n storeIdCount: [],\r\n countrycurrency: \"\",\r\n analysisSummary: [],\r\n uniCheck: \"\",\r\n promoCountReached: false,\r\n needComparePromos: [],\r\n annexureFilters: [],\r\n effectiveRateData: null,\r\n drpDownSelValue: this.props.durFilter,\r\n };\r\n this.DurationsdropDown = this.DurationsdropDown.bind(this);\r\n this.GetGraphTableDatatab4 = this.GetGraphTableDatatab4.bind(this);\r\n this.tabtoggle = this.tabtoggle.bind(this);\r\n this.onDurAndPriChange = this.onDurAndPriChange.bind(this);\r\n localStorage.setItem(\"StId\", this.props.userstoreid);\r\n }\r\n\r\n //Duration and Price Type Change\r\n onDurAndPriChange(e) {\r\n const { name, value } = e.target;\r\n let fields = this.state;\r\n fields[name] = value;\r\n if (name === \"gridactivedur\") {\r\n this.setState({ fields, isLoading1: false }, () =>\r\n this.GetGridtableData()\r\n );\r\n } else if (name === \"hisactivedur\") {\r\n this.setState({ fields, isLoading: false }, () =>\r\n this.GetcurrentpricinganalysisHistory()\r\n );\r\n } else {\r\n this.setState({ fields, isLoading1: false }, () =>\r\n this.AlignHistoryGraphData()\r\n );\r\n }\r\n }\r\n\r\n //Tabs\r\n tabtoggle() {\r\n this.GetGraphTableDatatab4();\r\n }\r\n\r\n //SnackBar Close\r\n snackHandleclose = (event, reason) => {\r\n if (reason === \"clickaway\") {\r\n return;\r\n }\r\n this.setState({ snackOpen: false });\r\n };\r\n\r\n async UNSAFE_componentWillMount() {\r\n const data = {\r\n SecretKey: this.props.accessKey,\r\n RegionId: CONFIG.RegionId,\r\n };\r\n\r\n const response = await axios.post(\r\n CONFIG.API_URL + \"account/secretlogin\",\r\n data\r\n );\r\n if (response.status === 200) {\r\n this.state.accessKey = response.data.token;\r\n this.initialLoad();\r\n this.currentPricingAnalysis();\r\n } else {\r\n alert(response.status.Message);\r\n }\r\n }\r\n currentPricingAnalysis() {\r\n this.setState(\r\n {\r\n isLoading: false,\r\n hisactivedur: this.state.hisactivedur,\r\n hisactivemenu: this.state.hisactivemenu,\r\n },\r\n () => {\r\n this.commonapiCall();\r\n }\r\n );\r\n }\r\n\r\n commonapiCall() {\r\n this.loadDashBoard();\r\n this.DurationsdropDown();\r\n this.GetGraphTableDatatab4();\r\n // this.GetGraphTableData();\r\n // this.GetcurrentpricinganalysisHistory();\r\n // this.tabtoggle();\r\n // //this.GetSummaryMarketData();\r\n // this.GetGridtableData();\r\n // this.GetcurrentpricinganalysisHistory();\r\n // this.loadSummary();\r\n }\r\n loadSummary() {\r\n let token = this.state.accessKey;\r\n const data = {\r\n UserStoreID: this.state.stId,\r\n SearchID: this.state.seId,\r\n RegionID: CONFIG.RegionId,\r\n };\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = \"Bearer \" + token;\r\n }\r\n axios\r\n .post(CONFIG.API_URL + \"dashboard/currentpricinganalysissummary\", data)\r\n .then((response) => {\r\n // this.state.isLoading=true;\r\n const analysisSummary = response.data.current;\r\n this.setState({\r\n analysisSummary: analysisSummary,\r\n isLoading: false,\r\n });\r\n })\r\n .catch((err) => {\r\n if (err.response.status === 401) {\r\n localStorage.removeItem(\"accessKey\");\r\n const { from } = this.props.location.state || {\r\n from: { pathname: \"/\" },\r\n };\r\n this.props.history.push(from);\r\n } else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }\r\n\r\n loadDashBoard() {\r\n let token = this.state.accessKey;\r\n const data = {\r\n UserStoreID: this.state.stId,\r\n SearchID: this.state.seId,\r\n RegionID: CONFIG.RegionId,\r\n };\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = \"Bearer \" + token;\r\n }\r\n axios\r\n .post(CONFIG.API_URL + \"unit/dashboardSearchlocation\", data)\r\n .then((response) => {\r\n // this.state.isLoading=true;\r\n const locationInfoData = response.data.data.unitDashboard;\r\n let countrycurrency = response.data.data.unitDashboard.countryCurrency;\r\n this.setState({\r\n locationInfoData: locationInfoData,\r\n countrycurrency,\r\n });\r\n })\r\n .catch((err) => {\r\n if (err.response.status === 401) {\r\n localStorage.removeItem(\"accessKey\");\r\n const { from } = this.props.location.state || {\r\n from: { pathname: \"/\" },\r\n };\r\n this.props.history.push(from);\r\n } else if (err.response.status === 403) {\r\n const { from } = this.props.location.state || {\r\n from: { pathname: \"/UnauthorizedAccess\" },\r\n };\r\n this.props.history.push(from);\r\n } else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }\r\n componentWillReceiveProps(nextProps) {\r\n if (nextProps.searchId !== this.state.seId) {\r\n this.setState(\r\n {\r\n hisactivedur: \"2\",\r\n seId: nextProps.searchId,\r\n stId: nextProps.storeId,\r\n },\r\n () => {\r\n this.currentPricingAnalysis();\r\n }\r\n );\r\n }\r\n }\r\n\r\n //Duration For DropDown\r\n DurationsdropDown() {\r\n let token = this.state.accessKey;\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = \"Bearer \" + token;\r\n }\r\n axios\r\n .get(CONFIG.API_URL + \"unit/unitdurations\")\r\n .then((response) => {\r\n let unitDurations = response.data.data.lookupData;\r\n this.setState({\r\n unitDurations,\r\n });\r\n })\r\n .catch((err) => {\r\n if (err.response.status === 401) {\r\n localStorage.removeItem(\"accessKey\");\r\n const { from } = this.props.location.state || {\r\n from: { pathname: \"/\" },\r\n };\r\n this.props.history.push(from);\r\n } else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }\r\n\r\n //effective rate price\r\n GetGraphTableDatatab4() {\r\n let token = this.state.accessKey;\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = \"Bearer \" + token;\r\n }\r\n let data = {\r\n UserStoreID: this.state.stId,\r\n SearchId: this.state.seId,\r\n PriceType: 4,\r\n Duration: parseInt(this.state.gridactivedur),\r\n Competitors:\r\n this.state.uniCheck == \"no\"\r\n ? this.state.uniquestore\r\n : this.state.uniquestores\r\n ? this.state.uniquestores\r\n : 0,\r\n RegionId: CONFIG.RegionId,\r\n };\r\n axios\r\n .post(\r\n CONFIG.API_URL + \"dashboard/currentpricinganalysiscoremarketview\",\r\n data\r\n )\r\n .then((res) => {\r\n let CoreMarketViewtab4 = res.data.current.currentPricingAnalysisMarket;\r\n let effectiveRateData = [];\r\n CoreMarketViewtab4.map((x) => {\r\n const found = effectiveRateData.some(el => el.storeID === x.storeID);\r\n \r\n return(\r\n effectiveRateData.push({storeID: x.storeID,\r\n address: found ? '' : x.address,\r\n storeName: found ? '' : x.storeName,\r\n priceOptionName: x.priceOptionName,\r\n price: x.price,\r\n isMyStore: x.isMyStore,\r\n alternatePriceTag: x.alternatePriceTag,\r\n proximity: x.proximity,\r\n myStorePriceRank: x.myStorePriceRank,\r\n promo: x.promo,\r\n isMonthly: x.isMonthly,\r\n floorType: x.floorType,\r\n advertisedPrice: x.advertisedPrice,\r\n promotion: x.promotion,\r\n m1: x.m1,\r\n m2: x.m2,\r\n m3: x.m3,\r\n m4: x.m4,\r\n m5: x.m5,\r\n m6: x.m6,\r\n m7: x.m7,\r\n m8: x.m8,\r\n m9: x.m9,\r\n m10: x.m10,\r\n m11: x.m11,\r\n m12: x.m12,})\r\n )\r\n })\r\n this.setState(\r\n {\r\n effectiveRateData: effectiveRateData, //CoreMarketViewtab2, MarketViewpricingOptionstab2,\r\n isLoading1: false,\r\n Tabloading: false,\r\n },\r\n () => {\r\n // this.AlignGraphTabDatatab2();\r\n }\r\n );\r\n })\r\n .catch((err) => {\r\n if (err.response.status === 401) {\r\n localStorage.removeItem(\"accessKey\");\r\n const { from } = this.props.location.state || {\r\n from: { pathname: \"/\" },\r\n };\r\n this.props.history.push(from);\r\n } else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }\r\n\r\n //Promotions Pop Up\r\n promohandleOpen(id) {\r\n this.setState({\r\n promo_open: true,\r\n promo_open_id: id,\r\n });\r\n }\r\n\r\n promohandleClose() {\r\n this.setState({\r\n promo_open: false,\r\n promo_open_id: 0,\r\n });\r\n }\r\n //End OF PRomotions Pop Up\r\n\r\n initialLoad() {\r\n let id1, id2, id3, id4, id5, id6, id7;\r\n let storeIdCount = [];\r\n let order = this.props.order;\r\n let orderBy = this.props.orderBy;\r\n if (this.props.id1 == \"no\") {\r\n this.state.uniCheck = \"no\";\r\n id1 = 0;\r\n } else {\r\n id1 = parseInt(this.props.id1 ? this.props.id1 : 0);\r\n }\r\n id2 = parseInt(this.props.id2 ? this.props.id2 : 0);\r\n id3 = parseInt(this.props.id3 ? this.props.id3 : 0);\r\n id4 = parseInt(this.props.id4 ? this.props.id4 : 0);\r\n id5 = parseInt(this.props.id5 ? this.props.id5 : 0);\r\n id6 = parseInt(this.props.id6 ? this.props.id6 : 0);\r\n id7 = parseInt(this.props.id7 ? this.props.id7 : 0);\r\n let storeCount = [id1, id2, id3, id4, id5, id6, id7];\r\n storeCount.map((data) => {\r\n if (data != 0) {\r\n storeIdCount.push(data);\r\n }\r\n });\r\n let uniquestores = storeIdCount.toString();\r\n this.setState({ uniquestores, storeIdCount, orderBy, order });\r\n }\r\n\r\n //price conversion\r\n priceConversion(tot) {\r\n if (tot !== \"\" && tot !== null) {\r\n let checkDigit = tot.toString().split(\".\");\r\n let ret = \"\";\r\n let i = 0;\r\n if (tot.toString().indexOf(\".\") == -1) {\r\n tot = tot;\r\n } else {\r\n if (checkDigit == \"00\") {\r\n tot = checkDigit.trim();\r\n } else {\r\n if (checkDigit.length === 2) {\r\n ret += checkDigit[0] + \".\";\r\n for (i = 0; i < checkDigit.length; i++) {\r\n if (i >= checkDigit[1].length) ret += \"0\";\r\n else ret += checkDigit[1][i];\r\n }\r\n } else if (checkDigit.length === 1) {\r\n ret += checkDigit[0] + \".\";\r\n for (i = 0; i < checkDigit.length; i++) {\r\n ret += \"0\";\r\n }\r\n }\r\n ret = ret.toString();\r\n tot = ret;\r\n }\r\n }\r\n }\r\n return tot;\r\n }\r\n\r\n render() {\r\n const {\r\n analysisSummary,\r\n locationInfoData,\r\n activeTab,\r\n promo_open,\r\n isLoading,\r\n pricecolLength,\r\n order,\r\n orderBy,\r\n grapghCatcheck,\r\n graphOpen,\r\n ChartTableDatatab3,\r\n AvailDataChecktab3,\r\n ChartTableDatatab2,\r\n AvailDataChecktab2,\r\n pricecolLengthtab3,\r\n priceLengthtab3,\r\n pricecolLengthtab2,\r\n priceLengthtab2,\r\n ChartTableData,\r\n /*SinglelahMarkets,*/ GridTableValue,\r\n unitDurations,\r\n MarketViewpricingOptions,\r\n MarketViewpricingOptionstab3,\r\n MarketViewpricingOptionstab2,\r\n snackOpen,\r\n snackMSg,\r\n AvailDataCheck,\r\n needComparePromos,\r\n annexureFilters,\r\n effectiveRateData,\r\n drpDownSelValue,\r\n } = this.state;\r\n let moneySymbol = this.state.countrycurrency\r\n ? this.state.countrycurrency\r\n : \"\";\r\n const GridTableValue1 =\r\n GridTableValue && GridTableValue.dynamdata\r\n ? GridTableValue.dynamdata.length\r\n : 0;\r\n const GridTableValueData = GridTableValue ? GridTableValue.dynamdata : [];\r\n var hlpcnt;\r\n if (activeTab === 1) {\r\n hlpcnt =\r\n \"
\" +\r\n `${\r\n CONFIG.RegionId === 3\r\n ? \"Current Advertised Weekly Rates\"\r\n : \"Current Advertised Rates\"\r\n }` +\r\n \"

In this section, the graph enables you to compare rates like-for-like, against your top competitors*. The rates shown on the graph are based on the Online Advertised Rate on the store's website.

The Number of Pricing Options shows you if the selected store* offers more than one price type for this unit type.

  • The highest price advertised by a store is shown as the Premium rate.
  • The lowest price advertised by a store is shown as the Value rate.
  • Any other rates in between are shown as a range
  • If there is only one price for a unit, it is shown as both the Premium and Value rate

Market Low, Market Average and Market High

These rates are based on the online rates advertised by the competitor stores* and the price type chosen (Premium or Value).

*See the All Market View section below to learn how you can change the competitors you can compare against on this graph.

*Your store prices are included in the calculations.

\";\r\n } else if (activeTab === 3) {\r\n hlpcnt =\r\n \"
Promotions

These are unit-specific promotions advertised by the store for the above unit type.

\";\r\n } else {\r\n hlpcnt =\r\n \"
\" +\r\n `${\r\n CONFIG.RegionId === 3\r\n ? \"Advertised Walk-in Weekly Rates\"\r\n : \"Advertised Walk-in Rates\"\r\n }` +\r\n \"

These are the walk-in (or 'Standard') rates offered by the store for this unit type.

\";\r\n }\r\n const defaultProps = {\r\n helpTitle: \"Core Market View\",\r\n helpContent:\r\n hlpcnt +\r\n \"

Refer the below help video for more information.

\",\r\n };\r\n const defaultProps1 = {\r\n helpTitle: \"Historical Pricing Analysis\",\r\n helpContent:\r\n \"

View historical rates for this unit type over the last 5 days, 30 days, 90 days, 6 months or 1 year, choose the time range from the drop down menu. You can also view rates by pricing type - Premium, Value or both. See the All Market View section below to learn how you can change the competitors you can compare against on this graph. These rates are based on the Advertised Online Rate.

*Your store prices are included in the calculations.

Refer the below help video for more information.

\",\r\n };\r\n const defaultProps2 = {\r\n helpTitle: \"All Market View\",\r\n helpContent:\r\n \"
  • These are all the stores in this Market offering this unit type.
  • Select up to a total of 8 competitor stores listed below to compare against in the Current Pricing analysis section or Historical pricing view. You can remove any stores from the graph at any time.

*Your store prices are included in the calculations.

\",\r\n };\r\n\r\n let cutCur = locationInfoData.countryCurrency\r\n ? locationInfoData.countryCurrency\r\n : \"N/A\";\r\n let clp = analysisSummary.lowestPrice;\r\n let cap = analysisSummary.averagePrice;\r\n let chp = analysisSummary.highestPrice;\r\n if (clp) {\r\n var splt_clp = clp.toString().split(\".\");\r\n let splt_val_clp = splt_clp[1]\r\n ? splt_clp[1].length === 1\r\n ? \".\" + splt_clp[1] + \"0\"\r\n : splt_clp[1].length === 2\r\n ? \".\" + splt_clp[1]\r\n : \"\"\r\n : \"\";\r\n clp = cutCur + splt_clp[0] + splt_val_clp;\r\n }\r\n if (cap) {\r\n var splt_cap = cap.toString().split(\".\");\r\n let splt_val_cap = splt_cap[1]\r\n ? splt_cap[1].length === 1\r\n ? \".\" + splt_cap[1] + \"0\"\r\n : splt_cap[1].length === 2\r\n ? \".\" + splt_cap[1]\r\n : \"\"\r\n : \"\";\r\n cap = cutCur + splt_cap[0] + splt_val_cap;\r\n }\r\n if (chp) {\r\n var splt_chp = chp.toString().split(\".\");\r\n let splt_val_chp = splt_chp[1]\r\n ? splt_chp[1].length === 1\r\n ? \".\" + splt_chp[1] + \"0\"\r\n : splt_chp[1].length === 2\r\n ? \".\" + splt_chp[1]\r\n : \"\"\r\n : \"\";\r\n chp = cutCur + splt_chp[0] + splt_val_chp;\r\n }\r\n var checkIfAnnexureEmptyStat = [];\r\n checkIfAnnexureEmptyStat =\r\n GridTableValue &&\r\n GridTableValue.statdata &&\r\n GridTableValue.statdata.filter(function (data) {\r\n return data.annexure !== 0;\r\n });\r\n var checkIfAnnexureEmpty = [];\r\n checkIfAnnexureEmpty =\r\n GridTableValue &&\r\n GridTableValue.dynamdata &&\r\n GridTableValue.dynamdata.filter(function (data) {\r\n return data.annexure !== 0;\r\n });\r\n // var checkIfAnnexureEmpty = GridTableValue && GridTableValue.dynamdata && GridTableValue.dynamdata.filter(data => data.annexure !== 0);\r\n let effRateTableValue =\r\n effectiveRateData && effectiveRateData.length > 0\r\n ? effectiveRateData.length\r\n : 0;\r\n const tr = [...Array(Math.ceil(GridTableValue1 / 21))];\r\n let rowsDiv =\r\n drpDownSelValue === 6\r\n ? 27\r\n : drpDownSelValue === 9\r\n ? 20\r\n : drpDownSelValue === 3\r\n ? 30\r\n : 16;\r\n const effRateRow = [...Array(Math.ceil(effRateTableValue / rowsDiv))];\r\n const trproductRows1 = effRateRow.map((row, idx1) =>\r\n effectiveRateData.slice(idx1 * rowsDiv, idx1 * rowsDiv + rowsDiv)\r\n );\r\n // console.log(this.state.gridactivedur, 'gridactivedur');\r\n const nameCount = locationInfoData.storeName\r\n ? locationInfoData.storeName.length\r\n : 0;\r\n let checkPg = null;\r\n return (\r\n
\r\n
\r\n
\r\n {\" \"}\r\n \r\n
\r\n
\r\n {locationInfoData.storeName &&\r\n locationInfoData.storeName !== null &&\r\n locationInfoData.storeName !== \"\"\r\n ? nameCount > CONFIG.storeNameMaxLimit\r\n ? locationInfoData.storeName.substring(\r\n 0,\r\n CONFIG.storeNameMaxLimit - 3\r\n ) + \"...\"\r\n : locationInfoData.storeName\r\n : isLoading === false\r\n ? \"Your Store\"\r\n : \"\"}\r\n
\r\n
\r\n
\r\n

\r\n {locationInfoData.storeAddress1 &&\r\n locationInfoData.storeAddress1 !== null &&\r\n locationInfoData.storeAddress1 !== \"\"\r\n ? locationInfoData.storeAddress1 + \", \"\r\n : \"\" + locationInfoData && locationInfoData.storeCity\r\n ? locationInfoData.storeCity + \", \"\r\n : locationInfoData.searchType === 1 &&\r\n (locationInfoData.storeCity === \"\" ||\r\n locationInfoData.storeCity === null) &&\r\n (locationInfoData.storeZipCode === \"\" ||\r\n locationInfoData.storeZipCode === null)\r\n ? locationInfoData.latitude +\r\n \", \" +\r\n locationInfoData.longitude +\r\n \", \"\r\n : \"\"}\r\n {locationInfoData.storeState\r\n ? locationInfoData.storeState + \" \"\r\n : \"\"}{\" \"}\r\n {locationInfoData.storeZipCode}{\" \"}\r\n {locationInfoData.storeZoneCoverage\r\n ? \"| Coverage: \" + locationInfoData.storeZoneCoverage\r\n : \"N/A\"}\r\n

\r\n
\r\n
\r\n
\r\n \r\n {CONFIG.Website_Text_Footer_Pdf}\r\n {\" \"}\r\n | {CONFIG.Phone_Footer_Pdf} |{\" \"}\r\n \r\n {CONFIG.Mail_Footer_Pdf}\r\n {\" \"}\r\n | \"Optimize\r\n
\r\n {isLoading ? (\r\n
\r\n
\r\n
\r\n ) : (\r\n \"\"\r\n )}\r\n {this.state.isLoading1 ? (\r\n
\r\n
\r\n
\r\n ) : (\r\n \"\"\r\n )}\r\n {this.state.Tabloading ? (\r\n
\r\n
\r\n
\r\n ) : (\r\n \"\"\r\n )}\r\n
\r\n {/*
*/}\r\n {/* \r\n

\r\n {\"(\" + locationInfoData.searchName + \")\"} Effective Rate Analysis\r\n Analysis\r\n

\r\n
*/}\r\n\r\n {/* effective rate start */}\r\n {CONFIG.RegionId === 3 ? (\r\n \"\"\r\n ) : trproductRows1 ? (\r\n trproductRows1.map((rows, i) => {\r\n return (\r\n <>\r\n
\r\n \r\n
\r\n
\r\n {i === 0 ? (\r\n

\r\n Effective Rate Analysis\r\n

\r\n The Effective Rate is the price the consumer\r\n pays after factoring in the promotion. The\r\n calculation is performed over a specific\r\n tenancy length, which can be selected on the\r\n right.\r\n

\r\n

\r\n ) : (\r\n \"\"\r\n )}\r\n {/* {i === 0 ? ( */}\r\n
\r\n {\"(\" + locationInfoData.searchName + \")\"}{\" \"}\r\n Effective Rates Analysis\r\n
\r\n\r\n {/* ) : (\r\n \"\"\r\n )} */}\r\n \r\n \r\n \r\n \r\n \r\n Months\r\n \r\n \r\n \r\n \r\n Store Name\r\n Price Option Name\r\n Floor\r\n Advertised Price\r\n Promotion\r\n 1st \r\n 2nd \r\n 3rd \r\n {drpDownSelValue === 0 ||\r\n drpDownSelValue > 3 ? (\r\n 4th \r\n ) : (\r\n \"\"\r\n )}\r\n {drpDownSelValue === 0 ||\r\n drpDownSelValue > 3 ? (\r\n 5th \r\n ) : (\r\n \"\"\r\n )}\r\n {drpDownSelValue === 0 ||\r\n drpDownSelValue > 3 ? (\r\n 6th \r\n ) : (\r\n \"\"\r\n )}\r\n {drpDownSelValue === 0 ||\r\n drpDownSelValue > 6 ? (\r\n 7th \r\n ) : (\r\n \"\"\r\n )}\r\n {drpDownSelValue === 0 ||\r\n drpDownSelValue > 6 ? (\r\n 8th \r\n ) : (\r\n \"\"\r\n )}\r\n {drpDownSelValue === 0 ||\r\n drpDownSelValue > 6 ? (\r\n 9th \r\n ) : (\r\n \"\"\r\n )}\r\n {drpDownSelValue === 0 ||\r\n drpDownSelValue > 9 ? (\r\n 10th \r\n ) : (\r\n \"\"\r\n )}\r\n {drpDownSelValue === 0 ||\r\n drpDownSelValue > 9 ? (\r\n 11th \r\n ) : (\r\n \"\"\r\n )}\r\n {drpDownSelValue === 0 ||\r\n drpDownSelValue > 9 ? (\r\n 12th \r\n ) : (\r\n \"\"\r\n )}\r\n \r\n Effective Rate\r\n \r\n \r\n \r\n \r\n {rows && rows.length > 0 ? (\r\n rows.map((effData, index) => {\r\n if (trproductRows1.length === i + 1) {\r\n checkPg = rows.length;\r\n }\r\n let m1 =\r\n parseFloat(effData.m1).toFixed(2) !==\r\n \"0.00\"\r\n ? parseFloat(effData.m1)\r\n : 0;\r\n let m2 =\r\n parseFloat(effData.m2).toFixed(2) !==\r\n \"0.00\"\r\n ? parseFloat(effData.m2)\r\n : 0;\r\n let m3 =\r\n parseFloat(effData.m3).toFixed(2) !==\r\n \"0.00\"\r\n ? parseFloat(effData.m3)\r\n : 0;\r\n let m4 =\r\n parseFloat(effData.m4).toFixed(2) !==\r\n \"0.00\"\r\n ? parseFloat(effData.m4)\r\n : 0;\r\n let m5 =\r\n parseFloat(effData.m5).toFixed(2) !==\r\n \"0.00\"\r\n ? parseFloat(effData.m5)\r\n : 0;\r\n let m6 =\r\n parseFloat(effData.m6).toFixed(2) !==\r\n \"0.00\"\r\n ? parseFloat(effData.m6)\r\n : 0;\r\n let m7 =\r\n parseFloat(effData.m7).toFixed(2) !==\r\n \"0.00\"\r\n ? parseFloat(effData.m7)\r\n : 0;\r\n let m8 =\r\n parseFloat(effData.m8).toFixed(2) !==\r\n \"0.00\"\r\n ? parseFloat(effData.m8)\r\n : 0;\r\n let m9 =\r\n parseFloat(effData.m9).toFixed(2) !==\r\n \"0.00\"\r\n ? parseFloat(effData.m9)\r\n : 0;\r\n let m10 =\r\n parseFloat(effData.m10).toFixed(2) !==\r\n \"0.00\"\r\n ? parseFloat(effData.m10)\r\n : 0;\r\n let m11 =\r\n parseFloat(effData.m11).toFixed(2) !==\r\n \"0.00\"\r\n ? parseFloat(effData.m11)\r\n : 0;\r\n let m12 =\r\n parseFloat(effData.m12).toFixed(2) !==\r\n \"0.00\"\r\n ? parseFloat(effData.m12)\r\n : 0;\r\n let avgM3 = (m1 + m2 + m3) / 3;\r\n let avgM6 =\r\n (m1 + m2 + m3 + m4 + m5 + m6) / 6;\r\n let avgM9 =\r\n (m1 +\r\n m2 +\r\n m3 +\r\n m4 +\r\n m5 +\r\n m6 +\r\n m7 +\r\n m8 +\r\n m9) /\r\n 9;\r\n let avgM12 =\r\n (m1 +\r\n m2 +\r\n m3 +\r\n m4 +\r\n m5 +\r\n m6 +\r\n m7 +\r\n m8 +\r\n m9 +\r\n m10 +\r\n m11 +\r\n m12) /\r\n 12;\r\n let priceCal =\r\n drpDownSelValue === 3\r\n ? avgM3\r\n : drpDownSelValue === 6\r\n ? avgM6\r\n : drpDownSelValue === 9\r\n ? avgM9\r\n : avgM12;\r\n let advPrice =\r\n parseFloat(\r\n effData.advertisedPrice\r\n ).toFixed(2) === \"0.00\"\r\n ? effData.advertisedPrice\r\n : this.priceConversion(\r\n effData.advertisedPrice\r\n );\r\n let averagePrice =\r\n parseFloat(priceCal).toFixed(2) === \"0.00\"\r\n ? priceCal\r\n : this.priceConversion(priceCal);\r\n const labelId = index;\r\n let promotions =\r\n effData.promotion &&\r\n effData.promotion !== null\r\n ? effData.promotion.replace(\r\n /~/g,\r\n \"
\"\r\n )\r\n : \"No specials\";\r\n return (\r\n \r\n {effData.storeName !== '' ? \r\n \r\n {effData.storeName}\r\n \r\n \r\n {effData.address}\r\n \r\n : ''}\r\n \r\n {effData.priceOptionName}\r\n \r\n \r\n {effData.floorType}\r\n \r\n \r\n {advPrice !== \"\" && advPrice !== null\r\n ? parseFloat(advPrice).toFixed(\r\n 2\r\n ) === \"0.00\"\r\n ? \"free\"\r\n : moneySymbol +\r\n advPrice\r\n : \"\"}\r\n \r\n \r\n \r\n \r\n \r\n {effData.m1 !== \"\" &&\r\n effData.m1 !== null\r\n ? parseFloat(effData.m1).toFixed(\r\n 2\r\n ) === \"0.00\"\r\n ? \"free\"\r\n : moneySymbol + effData.m1\r\n : \"\"}\r\n \r\n \r\n {effData.m2 !== \"\" &&\r\n effData.m2 !== null\r\n ? parseFloat(effData.m2).toFixed(\r\n 2\r\n ) === \"0.00\"\r\n ? \"free\"\r\n : moneySymbol + effData.m2\r\n : \"\"}\r\n \r\n \r\n {effData.m3 !== \"\" &&\r\n effData.m3 !== null\r\n ? parseFloat(effData.m3).toFixed(\r\n 2\r\n ) === \"0.00\"\r\n ? \"free\"\r\n : moneySymbol + effData.m3\r\n : \"\"}\r\n \r\n {drpDownSelValue === 0 ||\r\n drpDownSelValue > 3 ? (\r\n \r\n {effData.m4 !== \"\" &&\r\n effData.m4 !== null\r\n ? parseFloat(effData.m4).toFixed(\r\n 2\r\n ) === \"0.00\"\r\n ? \"free\"\r\n : moneySymbol + effData.m4\r\n : \"\"}\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n {drpDownSelValue === 0 ||\r\n drpDownSelValue > 3 ? (\r\n \r\n {effData.m5 !== \"\" &&\r\n effData.m5 !== null\r\n ? parseFloat(effData.m5).toFixed(\r\n 2\r\n ) === \"0.00\"\r\n ? \"free\"\r\n : moneySymbol + effData.m5\r\n : \"\"}\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n {drpDownSelValue === 0 ||\r\n drpDownSelValue > 3 ? (\r\n \r\n {effData.m6 !== \"\" &&\r\n effData.m6 !== null\r\n ? parseFloat(effData.m6).toFixed(\r\n 2\r\n ) === \"0.00\"\r\n ? \"free\"\r\n : moneySymbol + effData.m6\r\n : \"\"}\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n {drpDownSelValue === 0 ||\r\n drpDownSelValue > 6 ? (\r\n \r\n {effData.m7 !== \"\" &&\r\n effData.m7 !== null\r\n ? parseFloat(effData.m7).toFixed(\r\n 2\r\n ) === \"0.00\"\r\n ? \"free\"\r\n : moneySymbol + effData.m7\r\n : \"\"}\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n {drpDownSelValue === 0 ||\r\n drpDownSelValue > 6 ? (\r\n \r\n {effData.m8 !== \"\" &&\r\n effData.m8 !== null\r\n ? parseFloat(effData.m8).toFixed(\r\n 2\r\n ) === \"0.00\"\r\n ? \"free\"\r\n : moneySymbol + effData.m8\r\n : \"\"}\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n {drpDownSelValue === 0 ||\r\n drpDownSelValue > 6 ? (\r\n \r\n {effData.m9 !== \"\" &&\r\n effData.m9 !== null\r\n ? parseFloat(effData.m9).toFixed(\r\n 2\r\n ) === \"0.00\"\r\n ? \"free\"\r\n : moneySymbol + effData.m9\r\n : \"\"}\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n {drpDownSelValue === 0 ||\r\n drpDownSelValue > 9 ? (\r\n \r\n {effData.m10 !== \"\" &&\r\n effData.m10 !== null\r\n ? parseFloat(effData.m10).toFixed(\r\n 2\r\n ) === \"0.00\"\r\n ? \"free\"\r\n : moneySymbol + effData.m10\r\n : \"\"}\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n {drpDownSelValue === 0 ||\r\n drpDownSelValue > 9 ? (\r\n \r\n {effData.m11 !== \"\" &&\r\n effData.m11 !== null\r\n ? parseFloat(effData.m11).toFixed(\r\n 2\r\n ) === \"0.00\"\r\n ? \"free\"\r\n : moneySymbol + effData.m11\r\n : \"\"}\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n {drpDownSelValue === 0 ||\r\n drpDownSelValue > 9 ? (\r\n \r\n {effData.m12 !== \"\" &&\r\n effData.m12 !== null\r\n ? parseFloat(effData.m12).toFixed(\r\n 2\r\n ) === \"0.00\"\r\n ? \"free\"\r\n : moneySymbol + effData.m12\r\n : \"\"}\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n \r\n {averagePrice !== \"\" &&\r\n averagePrice !== null\r\n ? parseFloat(averagePrice).toFixed(\r\n 2\r\n ) === \"0.00\"\r\n ? \"free\"\r\n : moneySymbol +\r\n averagePrice\r\n : \"\"}\r\n \r\n \r\n );\r\n })\r\n ) : (\r\n \r\n \r\n {effectiveRateData === null\r\n ? \"\"\r\n : \"No Data Found\"}\r\n \r\n \r\n )}\r\n
\r\n \r\n
\r\n
\r\n
{\" \"}\r\n
\r\n
\r\n \r\n );\r\n })\r\n ) : (\r\n \r\n \r\n {effectiveRateData === null ? \"\" : \"No Data Found\"}\r\n \r\n \r\n )}\r\n\r\n {/* effective rate end */}\r\n\r\n {/*
*/}\r\n\r\n {snackMSg}}\r\n action={[\r\n \r\n \r\n ,\r\n ]}\r\n />\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n","import React from 'react';\r\nimport {MarketDashboardPdf} from './MarketDashboardPdf';\r\nimport {InventoryAvailabilityPdf} from './InventoryAvailabilityPdf';\r\nimport {AllUnitPrizePdf} from './AllUnitPrizePdf';\r\nimport {PricingVolatilityPdf} from './PricingVolatilityPdf';\r\nimport{CurrentPricingPdf} from './CurrentPricingPdf';\r\nimport{MarketInventoryAnalysisPdf} from './MarketInventoryAnalysisPdf';\r\nimport {DetailedStoresViewPdf} from './DetailedStoresViewpdf';\r\nimport {CompOverviewPdf,CompOverviewGmapPdf} from './CompetitorOverviewPdf';\r\nimport {MarketScorePdf} from './MarketScorePdf';\r\nimport {MapViewsPdf, MapViewsGmapPdf} from './MapViewPdf';\r\nimport EffectiveRatesPdf from './EffectiveRatesPdf/EffectiveRatesPdf';\r\nimport {CONFIG} from '../../utils/config';\r\n\r\nclass PdfDownload extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n userStoreId: this.props.match.params.usId ? parseInt(this.props.match.params.usId) : 0,\r\n page: this.props.match.params.ComponentName ? parseInt(this.props.match.params.ComponentName) : 0,\r\n priceTrend: this.props.match.params.pta ? parseInt(this.props.match.params.pta) : 0,\r\n unit:this.props.match.params.unitType ? parseInt(this.props.match.params.unitType) : 0,\r\n price:this.props.match.params.priceType ? parseInt(this.props.match.params.priceType) : 0,\r\n orderby : this.props.match.params.orderBy ? this.props.match.params.orderBy : 'storeName',\r\n order : this.props.match.params.order ? this.props.match.params.order : 'asc',\r\n accessKey :this.props.match.params.accessKey ? this.props.match.params.accessKey : '',\r\n durationFil: this.props.match.params.durTime ? parseInt(this.props.match.params.durTime) : 0, \r\n }\r\n }\r\n render() {\r\n return (\r\n
\r\n {this.props.match.params.ComponentName == 1?\r\n \r\n : this.props.match.params.ComponentName == 2?\r\n CONFIG.IsMapbox ?\r\n \r\n :\r\n \r\n : this.props.match.params.ComponentName == 3?\r\n \r\n : this.props.match.params.ComponentName == 4?\r\n \r\n : this.props.match.params.ComponentName == 5?\r\n \r\n : this.props.match.params.ComponentName == 6?\r\n \r\n \r\n : (this.props.match.params.ComponentName == 8 || this.props.match.params.ComponentName == 13) ?\r\n \r\n : this.props.match.params.ComponentName == 12?\r\n \r\n : this.props.match.params.ComponentName == 9?\r\n \r\n : this.props.match.params.ComponentName == 10?\r\n \r\n : this.props.match.params.ComponentName == 11?\r\n CONFIG.IsMapbox ?\r\n \r\n :\r\n \r\n :''}\r\n
\r\n )\r\n }\r\n}\r\nexport default PdfDownload;","import React from 'react';\r\n//import { Link } from 'react-router-dom';\r\nimport { HashLink as Link } from 'react-router-hash-link';\r\nimport * as d3 from \"d3\";\r\nimport moment from 'moment';\r\nimport ReactHtmlParser from 'react-html-parser';\r\nimport {\r\n Container, Col, Row, Button, Label, Input, FormText,\r\n CardDeck, Card, CardTitle, CardSubtitle, CardFooter, CardBody\r\n} from 'reactstrap';\r\nimport { AvForm, AvField } from 'availity-reactstrap-validation';\r\nimport './AveragePrice.css';\r\nimport freeoval from './../../Assets/Images/oval1.png';\r\nimport singleimg from './../../Assets/Images/oval2.png';\r\nimport multiimg from './../../Assets/Images/oval3.png';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Stepper from '@material-ui/core/Stepper';\r\nimport Step from '@material-ui/core/Step';\r\nimport StepLabel from '@material-ui/core/StepLabel';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport FormGroup from '@material-ui/core/FormGroup';\r\nimport withMobileDialog from '@material-ui/core/withMobileDialog';\r\nimport Divider from '@material-ui/core/Divider';\r\nimport CreditCardInput from 'react-credit-card-input';\r\nimport Snackbar from '@material-ui/core/Snackbar';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport CloseIcon from '@material-ui/icons/Close';\r\nimport NumberFormat from 'react-number-format';\r\nimport axios from 'axios';\r\nimport { CONFIG, MatchingCountryCode } from '../../utils/config';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport { COMMON } from '../../utils/common';\r\n\r\n\r\nfunction getSteps() {\r\n return ['Create Your Account', 'Billing Address', 'Payment Details', 'You are Confirmed!'];\r\n}\r\n\r\nclass Home extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n activeTab: 1,\r\n hisactivedur: 1,\r\n unitDurations: [],\r\n unitTypes: [],\r\n CurrentHistory: [],\r\n AllCurrentHistory: [],\r\n isLoading: false,\r\n defaultWidth: 0,\r\n // isDefaultUnit: 1,\r\n isDefaultUnit: \"All Units\",\r\n isDefaultDateRange: 1,\r\n widgetId: 10, //This is widget id in DB\r\n dataStatus: false,\r\n stateLookup: [],\r\n cityLookup: [],\r\n storeName: '',\r\n coverage: '',\r\n palettecomparision: '',\r\n showLoader: false,\r\n is_onchange: false,\r\n selectedState: '',\r\n selectedCountry: ''\r\n };\r\n // this.emailInput = React.createRef();\r\n this.DurationsdropDown = this.DurationsdropDown.bind(this);\r\n this.onDurAndPriChange = this.onDurAndPriChange.bind(this);\r\n }\r\n\r\n\r\n componentDidMount() {\r\n this.DurationsdropDown();\r\n this.loadStateValues();\r\n this.initialLoad();\r\n }\r\n\r\n\r\n\r\n async onDurAndPriChange(e) {\r\n const { name, value } = e.target;\r\n const AllCurrentHistory = this.state.AllCurrentHistory;\r\n var datas = []\r\n if (name === 'unitTypeChange') {\r\n this.state.isDefaultUnit = value;\r\n datas = AllCurrentHistory.filter(a => a.UnitType === value);\r\n }\r\n\r\n this.HistoryGraphView(datas);\r\n\r\n }\r\n\r\n // Text Wrap For Graph X-axis label\r\n wrap(text, width) {\r\n text.each(function () {\r\n var text = d3.select(this),\r\n words = text.text().split(/\\s+/).reverse(),\r\n word,\r\n line = [],\r\n lineNumber = 0,\r\n lineHeight = 1.1, // ems\r\n y = text.attr(\"y\"),\r\n dy = parseFloat(text.attr(\"dy\")),\r\n tspan = text.text(null).append(\"tspan\").attr(\"x\", 0).attr(\"y\", y).attr(\"dy\", dy + \"em\")\r\n while (word = words.pop()) {\r\n line.push(word)\r\n tspan.text(line.join(\" \"))\r\n if (tspan.node().getComputedTextLength() > width) {\r\n line.pop()\r\n tspan.text(line.join(\" \"))\r\n line = [word]\r\n tspan = text.append(\"tspan\").attr(\"x\", 0).attr(\"y\", y).attr(\"dy\", `${++lineNumber * lineHeight + dy}em`).text(word)\r\n }\r\n }\r\n })\r\n }\r\n\r\n //Formatted in as per competitor\r\n HisformData(data, uid) {\r\n var tFData = data.filter(a => a.MarketID === uid);\r\n var tData = [];\r\n for (var i = 0; i < tFData.length; i++) {\r\n // for price range calculation \r\n var CData = {\r\n date: tFData[i].Date,\r\n Date: moment(tFData[i].Date).toDate(),\r\n MarketName: tFData[i].MarketName,\r\n price: parseFloat(tFData[i].Value),\r\n labeldate: tFData[i].Date,\r\n labelPrice: tFData[i].Value === '0' ? 'N/A' : tFData[i].Value,\r\n }\r\n tData.push(CData);\r\n }\r\n return tData;\r\n }\r\n getYaxismin(minVal) {\r\n var modVal = minVal % 10;\r\n minVal = minVal - modVal;\r\n return minVal;\r\n }\r\n getYaxisMax(maxVal) {\r\n var modVal = maxVal % 10;\r\n var maxVal = (maxVal - modVal) + (modVal + (10 - modVal));\r\n if (maxVal > 200) {\r\n var modVal1 = maxVal % 50;\r\n maxVal = (maxVal - modVal1) + (modVal1 + (50 - modVal1));\r\n }\r\n return maxVal;\r\n }\r\n calcMAxVal(minVal, maxVal) {\r\n var diffVal = maxVal - minVal;\r\n var incRatio = Math.round(diffVal / 5);\r\n var maxMinVal = 0;\r\n var maxCalVal = [];\r\n maxCalVal.push(minVal);\r\n for (let i = 1; maxMinVal < maxVal; i++) {\r\n if (i * incRatio < maxVal) {\r\n var maxRVal = minVal + (i * incRatio);\r\n maxMinVal = maxRVal;\r\n maxCalVal.push(maxRVal);\r\n }\r\n else {\r\n break;\r\n }\r\n }\r\n return maxCalVal;\r\n }\r\n //Graph for History\r\n HistoryGraphView(Hisdata) {\r\n // var Hisdata = graphDatas;\r\n var decimalFormat = d3.format(\"0.2f\");\r\n d3.selectAll(\".mainhisGraphdivs > *\").remove();\r\n d3.select(\".av-wid-legend\").remove();\r\n let MaxPrice;\r\n if (Hisdata.length > 0) {\r\n MaxPrice = d3.max(Hisdata.map(function (d) {\r\n return d.Value != \"\" && d.Value != null ? d.Value : 0;\r\n }));\r\n };\r\n\r\n var height = 200;\r\n if (MaxPrice) {\r\n\r\n Hisdata.map(record => {\r\n record.Value = record.Value !== \"\" || record.Value !== null ? record.Value : ''\r\n });\r\n\r\n // d3.selectAll(\".mainhisGraphdivs > *\").remove();\r\n // d3.select(\".av-wid-legend\").remove();\r\n\r\n var margin = 50;\r\n var width = Hisdata.length > 0 ? (d3.select('.mainhisGraphdivs').node().offsetWidth) - margin : 0;\r\n\r\n\r\n var lineOpacity = \"1\";\r\n\r\n var currency = CONFIG.Currency_Symbol;\r\n const tParser = d3.timeParse(\"%m/%d/%Y\")\r\n\r\n /*Data Formation*/\r\n var tempdata = [];\r\n //To get the Unique store ids\r\n let unique = [...new Set(Hisdata.map(item => item.MarketID))];\r\n let MarketName = [...new Set(Hisdata.map(item => item.MarketName))];\r\n for (var i = 0; i < unique.length; i++) {\r\n if (MarketName[i]) {\r\n var tFData = Hisdata.filter(a => a.MarketID == unique[i]);\r\n var datum = {\r\n name: tFData.length > 0 ? tFData[0].MarketName : '',\r\n storeID: tFData.length > 0 ? tFData[0].MarketID : '',\r\n values: this.HisformData(tFData, unique[i])\r\n }\r\n tempdata.push(datum);\r\n }\r\n }\r\n var tmin = d3.min(Hisdata.map(function (d) {\r\n if (d.Value != 0) {\r\n return Number(d.Value);\r\n }\r\n }));\r\n var tmax = d3.max(Hisdata.map(function (d) { return d.Value ? parseInt(d.Value) : 0 }));\r\n tmin = this.getYaxismin(tmin);\r\n tmax = this.getYaxisMax(tmax);\r\n var arrMax = this.calcMAxVal(tmin, tmax);\r\n d3.select('.mainhisGraphdivs').append('div').attr('class', 'hisGraph1');\r\n\r\n /* Scale */\r\n var xScale = d3.scaleTime()\r\n .domain(d3.extent(tempdata[0].values, function (d) { return tParser(d.date); }))\r\n .range([0, width - 100]);\r\n\r\n var yScale = d3.scaleLinear()\r\n .domain([tmin, tmax])\r\n .range([height - margin, 0]);\r\n\r\n //Colors\r\n var filterColors = ['#4D4D4D', '#5DB975', '#5B95F6'];\r\n\r\n var color = d3.scaleOrdinal(filterColors);\r\n\r\n /* Add SVG */\r\n var svg = d3.selectAll(\".hisGraph1\").append(\"svg\")\r\n .attr(\"width\", (width) + \"px\")\r\n .attr(\"height\", (height + margin) + \"px\")\r\n .append('g')\r\n .attr(\"transform\", `translate(${margin + 20}, ${margin})`);\r\n\r\n\r\n // var line = d3.line()\r\n // .x(d => xScale(tParser(d.date)))\r\n // .y(d => yScale(d.price));\r\n var line = d3.line()\r\n .x(d => xScale(tParser(d.date)))\r\n .y(d => yScale(d.price))\r\n .defined(function (d) { return !isNaN(d.price != null && d.price != 0 ? d.price : \"N/A\"); });\r\n\r\n let lines = svg.append('g')\r\n .attr('class', 'lines');\r\n lines.selectAll('.line-group')\r\n .data(tempdata).enter()\r\n .append('g')\r\n .attr('class', 'line-group')\r\n .append('path')\r\n .attr('class', 'line')\r\n .attr('d', d => line(d.values))\r\n .style('stroke', (d, i) => color(i))\r\n .attr(\"stroke-width\", 1)\r\n .style('opacity', \"1\");\r\n\r\n\r\n /*End of Price Range Graph*/\r\n var focus = svg.append(\"g\")\r\n .attr(\"class\", \"focus\")\r\n .style(\"display\", \"none\");\r\n\r\n focus.append(\"line\")\r\n .attr(\"class\", \"x-hover-line hover-line\")\r\n .attr(\"y1\", 10)\r\n .attr(\"y2\", (height - 24));\r\n\r\n focus.append(\"line\")\r\n .attr(\"class\", \"y-hover-line hover-line\")\r\n .attr(\"x1\", width)\r\n .attr(\"x2\", width);\r\n\r\n focus.append(\"text\")\r\n .attr(\"x\", 15)\r\n .attr(\"dy\", \".31em\");\r\n\r\n svg.append(\"rect\")\r\n .attr(\"transform\", \"translate( 0 , 0 )\")\r\n .attr(\"class\", \"overlay\")\r\n .style('fill', 'none')\r\n .attr(\"width\", width - 100)\r\n .attr(\"height\", height - 30)\r\n .on(\"mouseover\", function () { focus.style(\"display\", null); })\r\n .on(\"mouseout\", function () {\r\n focus.style(\"display\", \"none\");\r\n //Legend value change\r\n d3.selectAll('.his_price').text('[---]');\r\n d3.selectAll('.ld_span').text('- - -');\r\n })\r\n .on(\"mousemove\", mousemove);\r\n\r\n const bisectDate = d3.bisector(d => d.Date).left;\r\n function mousemove() {\r\n\r\n var x0 = xScale.invert(d3.mouse(this)[0]),\r\n i = bisectDate(tempdata[0].values, x0, 1),\r\n d0 = tempdata[0].values[i - 1],\r\n d1 = tempdata[0].values[i],\r\n d2 = x0 - d0.Date > d1.Date - x0 ? d1 : d0,\r\n d = x0 - d0.Date > d1.Date - x0 ? d1.Date : d0.date;\r\n\r\n\r\n //Hover Line \r\n focus.attr(\"transform\", \"translate(\" + xScale(d2.Date) + \", -12 )\");\r\n //ToolTip\r\n var Tooltip_date = moment(d).format('DD-MMM-YYYY');\r\n // div.transition()\r\n // .duration(200)\r\n // .style(\"opacity\", .9);\r\n\r\n //Get Current date stores Values\r\n let Storecount = [];\r\n for (var c = 0; c < tempdata.length; c++) {\r\n let getSCData = tempdata[c].values.filter(data => {\r\n\r\n var Filter_date = moment(data.Date).format('DD-MMM-YYYY');\r\n return Filter_date === Tooltip_date;\r\n });\r\n Storecount.push(getSCData.length > 0 ? getSCData[0] ? getSCData[0] : \"N/A\" : 'N/A');\r\n }\r\n\r\n //Legend value Change\r\n d3.select('.av-wid-legend').selectAll('.key').remove();\r\n d3.select('.av-wid-legend').selectAll('.legend_date').remove();\r\n\r\n //For Date\r\n d3.select('.av-wid-legend').append('div')\r\n .attr('class', 'col-md-12 legend_date')\r\n .style('padding-left', '0')\r\n .style('padding-bottom', '2px')\r\n .style('font-size', '15px')\r\n .style('display', 'inline-block')\r\n .html('Date : ' + Tooltip_date + '');\r\n\r\n //For Store Details\r\n //var div_width = ( width / 3) - 50 ;\r\n let keys = d3.select('.av-wid-legend').selectAll('.key')\r\n .data(Storecount).enter()\r\n .append('div')\r\n .attr('class', 'key col-md-3')\r\n .style('display', 'inline-block')\r\n .style('align-items', 'center');\r\n\r\n keys.append('div')\r\n .attr('class', 'symbol')\r\n .style('display', 'inline-block')\r\n .style('height', '10px')\r\n .style('width', '10px')\r\n .style('margin-right', '5px')\r\n .style('background-color', (d, i) => color(i));\r\n\r\n keys.append('div')\r\n .attr('class', 'name')\r\n .style('display', 'inline-block')\r\n .style('font-size', '11px')\r\n .style('font-weight', '500')\r\n .text(d => `${d.MarketName} `);\r\n\r\n keys.append('div')\r\n .attr('class', 'his_price')\r\n .style('display', 'inline-block')\r\n .style('color', (d, i) => color(i))\r\n .style('margin-left', '10px')\r\n .text(d => !isNaN(d.price) ? '[' + currency + d.price.toFixed(2) + ']' : '[N/A]');\r\n\r\n keys.exit().remove();\r\n\r\n }\r\n\r\n /* Add X Axis into SVG */\r\n var info = tempdata[0].values.map(function (d) { return d.date })\r\n if ((this.state.hisactivedur == 1 && this.props.isLoading === false) || (this.state.hisactivedur == 1 && this.state.isLoading === false)) {\r\n var rDate = new Date(info[0]);\r\n var rday = rDate.getDay();\r\n var dayv = rday == 0 ? d3.timeSunday : rday == 1 ? d3.timeMonday : rday == 2 ? d3.timeTuesday : rday == 3 ? d3.timeWednesday : rday == 4 ? d3.timeThursday : rday == 5 ? d3.timeFriday : rday == 6 ? d3.timeSaturday : d3.timeDay;\r\n // if (this.state.selectedState != '') {\r\n svg.append('g')\r\n .attr('class', 'x-axis')\r\n .attr('transform', `translate(0, ${height - margin + 20})`)\r\n //.call(d3.axisBottom(xScale).tickFormat(d3.timeFormat(\"%d-%b-%Y\")).tickPadding(1).ticks(d3.timeWeek));\r\n //Day wise\r\n .call(d3.axisBottom(xScale).tickFormat(d3.timeFormat(\"%d-%b-%Y\")).ticks(d3.timeDay.every(1)));\r\n // } else {\r\n // svg.append('g')\r\n // .attr('class', 'x-axis')\r\n // .attr('transform', `translate(0, ${height - margin + 20})`)\r\n // .call(d3.axisBottom(xScale).tickFormat(d3.timeFormat(\"%d-%b-%Y\")).tickPadding(1).ticks(d3.timeWeek));\r\n // }\r\n // svg.append('g')\r\n // .attr('class', 'x-axis')\r\n // .attr('transform', `translate(0, ${height - margin + 20})`)\r\n //.call(d3.axisBottom(xScale).tickFormat(d3.timeFormat(\"%d-%b-%Y\")).tickPadding(1).ticks(d3.timeWeek));\r\n //Day wise\r\n // .call(d3.axisBottom(xScale).tickFormat(d3.timeFormat(\"%d-%b-%Y\")).ticks(d3.timeDay.every(1)));\r\n }\r\n else if (this.state.hisactivedur == 6) {\r\n svg.append('g')\r\n .attr('class', 'x-axis')\r\n .attr('transform', `translate(0, ${height - margin + 20})`)\r\n .call(d3.axisBottom(xScale).ticks(d3.timeMonth.utc, 1).tickFormat(d3.timeFormat(\"%b-%y\")));\r\n }\r\n else {\r\n svg.append('g')\r\n .attr('class', 'x-axis')\r\n .attr('transform', `translate(0, ${height - margin + 20})`)\r\n .call(d3.axisBottom(xScale).ticks(d3.timeMonth).tickFormat(d3.timeFormat(\"%b-%y\")));\r\n }\r\n\r\n var yAxis = d3.axisLeft(yScale).tickValues(arrMax).tickFormat(function (d) {\r\n let split_d = d.toString().split('.');\r\n let d1 = split_d[1] ? split_d[1].length > 1 ? d : d + '0' : d + '.00';\r\n return currency + d1.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n });\r\n\r\n svg.append(\"g\")\r\n .attr(\"class\", \"y-axis\")\r\n .call(yAxis)\r\n .append('text')\r\n .attr(\"transform\", \"rotate(-90)\")\r\n .attr(\"x\", - \"70\")\r\n .attr(\"y\", - \"55\")\r\n .attr(\"fill\", \"#6c757d\")\r\n .attr(\"font-weight\", \"500\")\r\n .attr(\"text-anchor\", \"middle\")\r\n .text(\"Average Price\");\r\n\r\n //add horizantal line\r\n svg.selectAll(\".y-axis\")\r\n .selectAll(\".tick line\")\r\n .call(yAxis)\r\n .attr(\"x2\", width - margin);\r\n\r\n\r\n let linesm = svg.append('g')\r\n .attr('class', 'x_lines');\r\n\r\n linesm.append('path')\r\n .attr('class', 'x_line')\r\n .attr('d', 'M0.5,6V0.5H' + (width - margin) + '.5V6')\r\n .attr(\"transform\", `translate(0, ${height - margin + 20} )`)\r\n .style('stroke', '#cbd1d5');\r\n\r\n // To identify the Line belongs to which company and Date\r\n\r\n let legend = d3.select(\".av-market-legend\").append('div')\r\n .attr('class', 'legend av-wid-legend')\r\n .style('margin-top', '10px');\r\n\r\n //For Date\r\n legend.append('div')\r\n .attr('class', 'col-md-12 legend_date')\r\n .style('padding-left', '0')\r\n .style('padding-bottom', '2px')\r\n .style('font-size', '15px')\r\n .style('display', 'inline-block')\r\n .html('Date : - - -');\r\n\r\n //For Store Details\r\n //var div_width =( width / 3) - 50 ;\r\n let keys = legend.selectAll('.key')\r\n .data(tempdata).enter()\r\n .append('div')\r\n .attr('class', 'key col-md-3')//(d, i) => d.name === \"This Market\" ? 'key col-md-3' : 'key col-md-4')\r\n .style('display', 'inline-block')\r\n .style('align-items', 'center');\r\n\r\n keys.append('div')\r\n .attr('class', 'symbol')\r\n .style('display', 'inline-block')\r\n .style('height', '10px')\r\n .style('width', '10px')\r\n .style('margin-right', '5px')\r\n .style('background-color', (d, i) => color(i));\r\n\r\n keys.append('div')\r\n .attr('class', 'name')\r\n .style('display', 'inline-block')\r\n .style('font-size', '11px')\r\n .style('font-weight', '500')\r\n .text(d => `${d.name + ' '} `);\r\n\r\n keys.append('div')\r\n .attr('class', 'his_price')\r\n .style('display', 'inline-block')\r\n .style('margin-left', '10px')\r\n .style('color', (d, i) => color(i))\r\n .text('[---]');\r\n\r\n keys.exit().remove();\r\n // this.props.showLoading({isLoading: false, widgetId: this.state.widgetId});\r\n\r\n } else {\r\n //dispatch the action once the data recived from reducer to hide loader \r\n\r\n if (this.state.dataStatus && (MaxPrice === 0 || Hisdata.length > 0)) {\r\n // this.props.showLoading({isLoading: false, widgetId: this.state.widgetId});\r\n //No data Div\r\n d3.select('.mainhisGraphdivs').append('div')\r\n .style('height', (height) + 'px')\r\n .append('p')\r\n .attr('class', 'loading-text no-data')\r\n .style('padding', '70px')\r\n .style('text-align', 'center')\r\n .text('No data Found');\r\n\r\n }\r\n else {\r\n d3.select('.mainhisGraphdivs').append('div')\r\n .style('height', (height) + 'px')\r\n .append('p')\r\n .attr('class', 'loading-text')\r\n .style('text-align', 'center')\r\n .style('padding', '20px')\r\n .text(' Please wait for the data to be loaded. The data volume is high and this might take a minute for loading the data.');\r\n }\r\n\r\n }\r\n this.setState({ isLoading: false });\r\n\r\n }\r\n\r\n //load initial graph \r\n initialLoad() {\r\n this.setState({ isLoading: true });\r\n // let token = localStorage.getItem('accessKey');\r\n // if (token) {\r\n // axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n // }\r\n let inputData = {\r\n \"RegionID\": CONFIG.RegionId,\r\n \"State\": this.state.selectedState != '' ? this.state.selectedState : '',\r\n \"City\": \"\"\r\n }\r\n axios.post(CONFIG.API_URL + 'home/weeklypricedata', inputData)\r\n .then(response => {\r\n let data = response.data;\r\n let datas = response.data.filter(data => data.UnitType === this.state.isDefaultUnit);\r\n this.GetcurrentpricinganalysisHistory(data);\r\n this.HistoryGraphView(datas);\r\n this.setState({ isLoading: false });\r\n })\r\n .catch(err => {\r\n this.setState({ isLoading: false });\r\n });\r\n }\r\n //load citybased graph\r\n cityBasedData(e) {\r\n this.setState({ isLoading: true });\r\n let citySelected = e.currentTarget.value;\r\n // let token = localStorage.getItem('accessKey');\r\n // if (token) {\r\n // axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n // }\r\n let inputData = {\r\n \"RegionID\": CONFIG.RegionId,\r\n \"State\": this.state.selectedState,\r\n \"City\": citySelected\r\n }\r\n axios.post(CONFIG.API_URL + 'Home/weeklypricedata', inputData)\r\n .then(response => {\r\n let data = response.data;\r\n let datas = response.data.filter(data => data.UnitType === this.state.isDefaultUnit);\r\n this.GetcurrentpricinganalysisHistory(data);\r\n this.setState({ isLoading: false });\r\n })\r\n .catch(err => {\r\n this.setState({ isLoading: false });\r\n });\r\n }\r\n NumberFormat(number) {\r\n return new Intl.NumberFormat().format(number);\r\n }\r\n\r\n //city selection based on state values\r\n citySelection(e) {\r\n this.setState({ isLoading: true });\r\n let selCity = e.currentTarget.value;\r\n let citySelected = selCity.split(\",\");\r\n // let token = localStorage.getItem('accessKey');\r\n let selectedState = citySelected[0];\r\n let selectedCou = citySelected[1];\r\n let selectedCountry = selCity != '' ? selectedCou.replace(/\\s+/g, '') : '';\r\n let data = selCity != '' ? citySelected[0].replace(/\\\"/g, \"\") : '';\r\n if (selectedCountry != '') {\r\n this.setState({ selectedCountry, isDefaultUnit: \"All Units\" }, () => {\r\n this.DurationsdropDown();\r\n });\r\n\r\n } else {\r\n this.setState({ selectedCountry: '', isDefaultUnit: \"All Units\" }, () => {\r\n this.DurationsdropDown();\r\n });\r\n }\r\n // if (token) {\r\n // axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n // }\r\n if (selCity != '') {\r\n axios.get(CONFIG.API_URL + 'home/citydatabystate/' + data + '/' + CONFIG.RegionId)\r\n .then(response => {\r\n console.log(response.data, \"res data\");\r\n let cityLookup = response.data.cityData;\r\n this.setState({ cityLookup, isLoading: false, selectedState }, () => {\r\n this.initialLoad();\r\n });\r\n })\r\n .catch(err => {\r\n this.setState({ isLoading: false });\r\n });\r\n } else {\r\n this.setState({ cityLookup: [], selectedState, isLoading: false }, () => {\r\n this.initialLoad();\r\n });\r\n }\r\n }\r\n\r\n //load state data values\r\n loadStateValues() {\r\n this.setState({ isLoading: true });\r\n axios.get(CONFIG.API_URL + 'Home/lookupdata/' + CONFIG.RegionId +'/'+ 0)\r\n .then(response => {\r\n var statedata = response.data.lookups.statesList;\r\n let stateLookup = statedata.filter(a => a.isterritory != 1);\r\n \r\n this.setState({ stateLookup, isLoading: false });\r\n })\r\n .catch(err => {\r\n this.setState({ isLoading: false });\r\n });\r\n }\r\n //Duration For DropDown\r\n DurationsdropDown() {\r\n let countryCode = this.state.selectedCountry != '' ? this.state.selectedCountry : CONFIG.Country_Code;\r\n this.setState({ isLoading: true });\r\n console.log(countryCode, \"countryCode\");\r\n console.log(this.state.selectedCountry, \"selcountryCode\");\r\n axios.get(CONFIG.API_URL + 'home/lookupdefaultunitsizes/' + countryCode + '/' + CONFIG.RegionId)\r\n .then(response => {\r\n this.setState({\r\n unitTypes: response.data.units,\r\n isLoading: false\r\n });\r\n })\r\n .catch(err => {\r\n this.setState({ isLoading: false });\r\n if (err.response.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/page_expired\" } };\r\n this.props.history.push(from);\r\n }\r\n else if (err.response.status === 400) {\r\n if (err.response.data.Message === \"Authentication failed\") {\r\n const { from } = this.props.location.state || { from: { pathname: \"/UnauthorizedAccess\" } };\r\n this.props.history.push(from);\r\n }\r\n }\r\n else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }\r\n\r\n\r\n //History Graph\r\n GetcurrentpricinganalysisHistory(graphData) {\r\n if (graphData) {\r\n let MarketName = [...new Set(graphData.map(data => data.MarketName))];\r\n let CurrentHistory = graphData.filter(data => data.UnitType === this.state.isDefaultUnit);\r\n this.setState({ AllCurrentHistory: graphData, MarketName, isLoading: false }, () => { this.HistoryGraphView(CurrentHistory) });\r\n }\r\n }\r\n\r\n render() {\r\n document.title = 'StorTrack: Self-storage market pricing data';\r\n var { isLoading1, showLoader, storeName, coverage, unitDurations, unitTypes, hisactivedur, overviewdetails, isDefaultUnit, isLoading, stateLookup, cityLookup, marketoverview } = this.state\r\n //For Widget desc text duration change\r\n let CurTxtDur = hisactivedur === 1 ? 'past 3 months' : hisactivedur === 2 ? 'past 6 months' : hisactivedur === 3 ? 'past 9 months' : hisactivedur === 4 ? 'past 1 Year' : hisactivedur === 5 ? 'past 2 Years' : hisactivedur === 6 ? 'past 3 Years' : '';\r\n\r\n const data = this.state.AllCurrentHistory;\r\n //Removing the existing svg when there is no data\r\n\r\n return (\r\n
\r\n {isLoading1 ?
: ''}\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n

Daily Rate Tracker

\r\n

See how rates in your city have changed over the last 7 days.
StorTrack provides detailed market rate insights to help owners
and operators react to changes faster.

\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n {isLoading ?
: ''}\r\n {/* {this.state.isLoading1 ?
: ''} */}\r\n
\r\n \r\n \r\n
\r\n

Select a State and City to view average rates over the last 7 days

\r\n \r\n {this.props.isLoading ? '' :\r\n \r\n \r\n \r\n \r\n this.citySelection(e)}>\r\n \r\n {stateLookup ? stateLookup.map((state) =>\r\n \r\n ) : ''}\r\n \r\n \r\n \r\n \r\n this.cityBasedData(e)}>\r\n \r\n {cityLookup ? cityLookup.map((city) =>\r\n \r\n ) : ''}\r\n \r\n \r\n \r\n \r\n \r\n\r\n {unitTypes && unitTypes.length > 0 ? unitTypes.map((unit) =>\r\n \r\n ) :\r\n \r\n }\r\n {/* {unitTypes ? unitTypes.map(n => {\r\n return (\r\n \r\n );\r\n }) : ''} */}\r\n \r\n \r\n \r\n }\r\n \r\n {/*

Below are historical graphs showing the average price over the {CurTxtDur} for each of the most common unit types.

*/}\r\n\r\n
\r\n
\r\n \r\n \r\n {/* {data && data.length >0 ? :

Please wait for the data to be loaded. The data volume is high and this might take a minute for loading the data.

} */}\r\n
\r\n
\r\n

Please wait for the data to be loaded.

\r\n
\r\n {data && data.length > 0 ?\r\n
\r\n {/* {this.state.MarketName ? this.state.MarketName.map((market) => {market}) : ''} */}\r\n
:
}\r\n
\r\n
\r\n

This graph shows the average rate for the unit type selected. Move the slider to view the average rates for a specific day. National averages are displayed for comparison.

\r\n
\r\n \r\n \r\n
\r\n

OPTIMIZE offers detailed market and competitor rate information for any market.

\r\n Request a Trial\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withMobileDialog()(Home); ","import React from 'react';\r\nimport { AvForm, AvField } from 'availity-reactstrap-validation';\r\nimport { HashLink as Link } from 'react-router-hash-link';\r\nimport { CONFIG } from '../../utils/config';\r\nimport { SeUserType } from '../../utils/common';\r\nimport axios from 'axios';\r\nimport './MvpLogin.css';\r\nimport { withRouter } from 'react-router-dom';\r\n\r\nexport default class MvpLogin extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n // authToken: this.props.match.params.newToken\r\n SecretKey: this.props.match.params.secureid,\r\n AccessUserStoreId: this.props.match.params.userstoreid\r\n };\r\n }\r\n componentDidMount() { \r\n // var str = this.props.location.pathname;\r\n // if(str !== undefined && str !== \"\"){ \r\n // var tmp = str.split(\"/access/\");\r\n // let tok = tmp[1];\r\n // this.setState({authToken: tok}, () => {this.getUserDetail()});\r\n // }\r\n window.scrollTo(0, 0);\r\n this.getUserDetail();\r\n }\r\n getUserDetail() {\r\n const values = {\r\n \"SecretKey\": this.state.SecretKey,\r\n \"AccessUserStoreId\": parseInt(this.state.AccessUserStoreId),\r\n // headers\r\n }\r\n axios.post(CONFIG.API_URL + 'account/secretlogin', values)\r\n .then(res => {\r\n if (res.status === 200) {\r\n const getTokvalues = res.data;\r\n // this.myFormRef && this.myFormRef.reset();\r\n //console.log(getTokvalues);\r\n this.setState({ getTokvalues });\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + getTokvalues.token;\r\n localStorage.setItem('SecretKey', getTokvalues.secureID);\r\n localStorage.setItem('accessKey', getTokvalues.token);\r\n localStorage.setItem('getNames', getTokvalues.firstName);\r\n localStorage.setItem('isPaid', getTokvalues.isPaid);\r\n localStorage.setItem('tempNoStoreCount', getTokvalues.tempNoOfStores);\r\n localStorage.setItem('instructionMsg', getTokvalues.instructionMsg);\r\n localStorage.setItem('userType', getTokvalues.userType);\r\n localStorage.setItem('userStatus', getTokvalues.status);\r\n localStorage.setItem('curSymb', CONFIG.Currency_Symbol);\r\n localStorage.setItem('userManual', getTokvalues.isManual);\r\n localStorage.setItem('userCdate', getTokvalues.createdDate);\r\n localStorage.setItem('displayMessage', getTokvalues.displayMessage);\r\n // Below the storage for MVP return\r\n localStorage.setItem('mvpUserStoreId', getTokvalues.mvpUserStoreId);\r\n localStorage.setItem('OptStoreId', this.state.AccessUserStoreId);\r\n localStorage.setItem('MVPUserType', getTokvalues.userType);\r\n const { from } = this.props.location.state || { from: { pathname: `/market-dashboard/${this.state.AccessUserStoreId}` } };\r\n this.props.history.push(from);\r\n }\r\n })\r\n .catch((e) => {\r\n // error in e.message\r\n // this.setState({ isLoading: false });\r\n // if (e.response.data.StatusCode === 400) {\r\n // const sighinerror = e.response.data.Message;\r\n // alert(sighinerror);\r\n // }\r\n });\r\n }\r\n render() {\r\n // const { } = this.state;\r\n return (\r\n
\r\n //
\r\n // {/* please wait we will redirect you shortly... */}\r\n //
\r\n );\r\n }\r\n}","import React from 'react';\r\nimport './ActiveReports.css'\r\nimport { Col, Row, Modal, ModalHeader, ModalBody, Button, FormText, Label } from 'reactstrap';\r\nimport { HashLink as Link } from 'react-router-hash-link';\r\nimport { AvForm, AvField } from 'availity-reactstrap-validation';\r\nimport NumberFormat from 'react-number-format';\r\nimport EmailShare from 'react-email-share-link';\r\nimport axios from 'axios';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport { CONFIG } from '../../utils/config';\r\nimport { COMMON } from '../../utils/common';\r\nimport Snackbar from '@material-ui/core/Snackbar';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport CloseIcon from '@material-ui/icons/Close';\r\nimport RefreshIcon from '@material-ui/icons/Refresh';\r\nimport Radio from '@material-ui/core/Radio';\r\n\r\nexport default class ActiveReports extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n modal: false,\r\n isModalCheck: false,\r\n snackOpen: false,\r\n snackMsg: '',\r\n snackClr: 'snack-error',\r\n activityData: [],\r\n isEnabled: this.props.isGreyOut,\r\n isCompStatus: this.props.isCompStatus,\r\n reciepients: [],\r\n isLoading: false,\r\n isFreqAlert: false,\r\n isReportAlert: false,\r\n pdfName: '',\r\n activeId: null,\r\n selFrequency: 0,\r\n subChoice: \"1\",\r\n daysOut: 1,\r\n isDayAlert: false,\r\n activeStatus: null,\r\n formValid: true,\r\n dayOfMonth: \"\",\r\n showDays: \"1\",\r\n frequencyMonth: [],\r\n dayOutMonth: [],\r\n selectedDaysOut: [],\r\n isMyStore: null\r\n };\r\n this.activeReportSubmit = this.activeReportSubmit.bind(this);\r\n // this.snackOpen = this.snackOpen.bind(this);\r\n this.handleChange = this.handleChange.bind(this);\r\n this.handleFreChange = this.handleFreChange.bind(this);\r\n this.handleDayChange = this.handleDayChange.bind(this);\r\n this.snackHandleclose = this.snackHandleclose.bind(this);\r\n }\r\n\r\n activeModalOpen = () => {\r\n this.setState(state => ({ modal: !state.modal }));\r\n this.loadActiveData();\r\n }\r\n\r\n cancelActiveReports = () => this.setState(state => ({ modal: !state.modal }))\r\n\r\n componentDidMount() {\r\n if (typeof window.dataLayer != \"undefined\" && this.props.isActiveOpen) {\r\n window.dataLayer.push({\r\n \"event\": \"show popup\",\r\n 'eventCategory': 'popup',\r\n 'eventAction': 'show',\r\n 'eventLabel': this.state.popupName,\r\n });\r\n }\r\n }\r\n\r\n // below the function for activate and deactivate report\r\n updateStatus = (active, comp, id) => {\r\n let data = {\r\n UserStoreId: id,\r\n ActivityReport: active == null || active == 4 ? 0 : 1,\r\n CompReport: comp == null || comp == 0 ? 0 : 1\r\n }\r\n this.setState({ activeId: data.ActivityReport });\r\n let token = localStorage.getItem('accessKey');\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n }\r\n axios.post(CONFIG.API_URL + 'market/updateactivitycompreport', data)\r\n .then(response => {\r\n //this.setState({ reciepients: []});\r\n this.state.reciepients = [];\r\n if (this.props.isFrom == \"LEFT_NAV\") {\r\n this.props.parentMethod(this.props.storeId);\r\n } else {\r\n this.props.compRefresh();\r\n }\r\n // if (this.state.activeId == 1) {\r\n // document.getElementById('btn-submit-form-active-comp').click();\r\n // } else {\r\n // if (this.props.isFrom == \"LEFT_NAV\") {\r\n // this.props.parentMethod(this.props.storeId);\r\n // } else {\r\n // this.props.compRefresh();\r\n // }\r\n // }\r\n }).catch((err) => {\r\n if (err.response.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }\r\n\r\n activeReportSubmit(event, errors, values) {\r\n let formValid = this.state.formValid;\r\n formValid = this.state.showDays == 3 && this.state.subChoice == 2 ? this.state.activityData.daysOutMonth.dayOfMonth != \"\" && this.state.activityData.daysOutMonth.dayOfMonth != null ? true : false : true;\r\n if (errors.length == 0 && formValid) {\r\n this.setState({ activeStatus: values.daysOut && values.daysOut != '' ? values.daysOut : 0 });\r\n const data = this.state.activityData;\r\n // validate data's\r\n let isFreqLength = this.state.showDays == 2 ? data.frequency.filter(d => d.value == 1) : [0];\r\n let isActivityLength = data.activity.filter(d => d.value == 1);\r\n let isInventoryLength = data.inventoryTrack.filter(d => d.value == 1);\r\n let israteTrendsLength = data.rateTrends.filter(d => d.value == 1);\r\n if ((isFreqLength.length > 0) && (isActivityLength.length > 0 || isInventoryLength.length > 0 || israteTrendsLength.length > 0)) {\r\n this.setState({ isLoading: true });\r\n let reciepients = [values.Recipient1, values.Recipient2, values.Recipient3, values.Recipient4, values.Recipient5];\r\n reciepients = reciepients.filter(item => item);\r\n data[\"info\"] = {\r\n \"UserStoreId\": this.props.storeId,\r\n \"RegionId\": CONFIG.RegionId,\r\n \"Reciepients\": reciepients.toString(),\r\n \"IsMyStore\": this.state.isMyStore == true ? 1 : 0\r\n // \"Reciepients\": [values.Recipient1,values.Recipient2,values.Recipient3,values.Recipient4,values.Recipient5].toString(),// \"opt2@test.com\",\r\n }\r\n let token = localStorage.getItem('accessKey');\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n }\r\n axios.post(CONFIG.API_URL + 'dashboard/updateActivityReport', data)\r\n .then(response => {\r\n this.setState({ modal: false, isLoading: false }, () => {\r\n this.updateStatus(this.state.activeStatus, this.props.isCompStatus, this.props.storeId)\r\n // if (this.props.isFrom == \"LEFT_NAV\") {\r\n // this.props.parentMethod(this.props.storeId);\r\n // } else {\r\n // this.props.compRefresh();\r\n // }\r\n });\r\n this.setState({ snackOpen: true, snackMsg: 'The changes have been saved Successfully', snackClr: 'snack-success' })\r\n })\r\n .catch((err) => {\r\n this.setState({ isLoading: false });\r\n if (err.response.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else {\r\n alert(err.response.data);\r\n }\r\n });\r\n } else {\r\n if (isFreqLength.length == 0 && isActivityLength.length == 0 && isInventoryLength.length == 0 && israteTrendsLength.length == 0) {\r\n this.setState({ isFreqAlert: true, isReportAlert: true });\r\n } else if (isFreqLength.length > 0 && isActivityLength.length == 0 && isInventoryLength.length == 0 && israteTrendsLength.length == 0) {\r\n this.setState({ isFreqAlert: false, isReportAlert: true });\r\n } else if ((isFreqLength.length == 0) && (isActivityLength.length > 0 || isInventoryLength.length > 0 || israteTrendsLength.length > 0)) {\r\n this.setState({ isFreqAlert: true, isReportAlert: false });\r\n } else {\r\n this.setState({ isFreqAlert: false, isReportAlert: false });\r\n }\r\n document.getElementById(\"days\").focus({ preventScroll: false });\r\n }\r\n } else {\r\n if (this.state.subChoice == 2 && this.state.dayOfMonth == \"\") {\r\n this.setState({ formValid: false });\r\n }\r\n }\r\n }\r\n\r\n //load activity report data\r\n loadActiveData() {\r\n this.setState({ isLoading: true });\r\n const data = {\r\n UserStoreId: this.props.storeId,\r\n RegionId: CONFIG.RegionId\r\n }\r\n let token = localStorage.getItem('accessKey');\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n }\r\n axios.post(CONFIG.API_URL + 'dashboard/checkactivityreport', data)\r\n .then(response => {\r\n const activityData = response.data.data;\r\n let radioCheck = (activityData.daysOutMonth.dayOfMonth == 0 || activityData.daysOutMonth.dayOfMonth == '' || activityData.daysOutMonth.dayOfMonth == null) ? false : true;\r\n let selectedDaysOut = activityData.daysOut.filter(days => days.value == 1);\r\n let showDays = selectedDaysOut.length > 0 ? selectedDaysOut[0].id : 0;\r\n let dayOutMonth = activityData.daysOutMonth.daysOut.filter(days => days.value == 1);\r\n let frequencyMonth = activityData.daysOutMonth.frequency.filter(days => days.value == 1);\r\n let reciepients = response.data.data.info.reciepients != null ? response.data.data.info.reciepients.split(',') : [];\r\n let pdfName = response.data.data.info.activityReportSample;\r\n let myStore = response.data.data.info.isMyStore;\r\n this.setState({ activityData, reciepients, pdfName, isLoading: false, frequencyMonth, dayOutMonth, selectedDaysOut, showDays, subChoice: radioCheck ? '2' : '1', isMyStore: myStore == 1 ? true : false });\r\n }).catch((err) => {\r\n this.setState({ isLoading: false });\r\n if (err.response.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else {\r\n alert(err.response.data);\r\n }\r\n });\r\n\r\n }\r\n\r\n snackHandleclose = (event, reason) => {\r\n if (reason === 'clickaway') {\r\n return;\r\n }\r\n this.setState({ snackOpen: false });\r\n };\r\n\r\n // snackOpen() {\r\n // this.setState({ snackOpen: true, snackMsg: 'Activate by checking on My Markets Page' });\r\n // }\r\n handleChange(e, value) {\r\n let index;\r\n let activityData = this.state.activityData;\r\n if (e.target.checked) {\r\n index = activityData[e.target.name].findIndex((obj => obj.id == parseInt(e.target.value)));\r\n if (index >= 0) {\r\n // if(e.target.name == \"frequency\"){\r\n // activityData.daysOutMonth[e.target.name][index].value = 1;\r\n // }else{\r\n activityData[e.target.name][index].value = 1;\r\n // }\r\n\r\n }\r\n }\r\n else if (!e.target.checked) {\r\n index = activityData[e.target.name].findIndex((obj => obj.id == parseInt(e.target.value)));\r\n if (index >= 0) {\r\n // if(e.target.name == \"frequency\"){\r\n // activityData.daysOutMonth[e.target.name][index].value = 0;\r\n // }else{\r\n activityData[e.target.name][index].value = 0;\r\n // }\r\n }\r\n }\r\n this.setState({ activityData });\r\n let data = this.state.activityData;\r\n // validate data's\r\n let isFreqLength = data.frequency.filter(d => d.value == 1);\r\n let isActivityLength = data.activity.filter(d => d.value == 1);\r\n let isInventoryLength = data.inventoryTrack.filter(d => d.value == 1);\r\n let israteTrendsLength = data.rateTrends.filter(d => d.value == 1);\r\n if (isFreqLength.length == 0 && isActivityLength.length == 0 && isInventoryLength.length == 0 && israteTrendsLength.length == 0) {\r\n this.setState({ isFreqAlert: true, isReportAlert: true });\r\n } else if (isFreqLength.length > 0 && isActivityLength.length == 0 && isInventoryLength.length == 0 && israteTrendsLength.length == 0) {\r\n this.setState({ isFreqAlert: false, isReportAlert: true });\r\n } else if ((isFreqLength.length == 0) && (isActivityLength.length > 0 || isInventoryLength.length > 0 || israteTrendsLength.length > 0)) {\r\n this.setState({ isFreqAlert: true, isReportAlert: false });\r\n } else {\r\n this.setState({ isFreqAlert: false, isReportAlert: false });\r\n }\r\n }\r\n\r\n handleDayChange(e, value) {\r\n let index;\r\n let activityData = this.state.activityData;\r\n if (e.target.value != '') {\r\n index = activityData[e.target.name].findIndex((obj => obj.id == parseInt(e.target.value)));\r\n if (index >= 0) {\r\n activityData[e.target.name][index].value = 1;\r\n activityData[e.target.name].forEach((val, i) => {\r\n if (val.id != parseInt(e.target.value))\r\n activityData[e.target.name][i].value = 0;\r\n });\r\n }\r\n this.setState({ showDays: e.target.value, isFreqAlert: false, isDayAlert: false });\r\n }\r\n }\r\n //selectedFrequency onChange event\r\n handleFreChange(e, value) {\r\n let index;\r\n let activityData = this.state.activityData;\r\n let isDayAlert = this.state.isDayAlert;\r\n //Check for No of days below 31\r\n if (e.target.name === \"dayOfMonth\") {\r\n e.target.value = e.target.value.replace(/[^\\w\\s]/gi, \"\");\r\n if (e.target.value.length > 2) {\r\n e.target.value = e.target.value.substring(\r\n 0,\r\n Math.min(e.target.value.length, 2)\r\n );\r\n }\r\n if (parseInt(e.target.value) > 31 || e.target.value == \"0\") {\r\n e.target.value = \"\";\r\n isDayAlert = true;\r\n } else {\r\n isDayAlert = false;\r\n }\r\n // this.setState({isDayAlert});\r\n activityData.daysOutMonth[e.target.name] = e.target.value;\r\n } else {\r\n if (e.target.name === \"dayOutMonth\") {\r\n index = activityData.daysOutMonth[\"daysOut\"].findIndex(\r\n (obj) => obj.id == parseInt(e.target.value)\r\n );\r\n if (index >= 0) {\r\n activityData.daysOutMonth[\"daysOut\"][index].value = 1;\r\n activityData.daysOutMonth[\"daysOut\"].forEach((val, i) => {\r\n if (val.id != parseInt(e.target.value))\r\n activityData.daysOutMonth[\"daysOut\"][i].value = 0;\r\n });\r\n }\r\n } else {\r\n index = activityData.daysOutMonth[e.target.name].findIndex(\r\n (obj) => obj.id == parseInt(e.target.value)\r\n );\r\n if (index >= 0) {\r\n activityData.daysOutMonth[e.target.name][index].value = 1;\r\n activityData.daysOutMonth[e.target.name].forEach((val, i) => {\r\n if (val.id != parseInt(e.target.value))\r\n activityData.daysOutMonth[e.target.name][i].value = 0;\r\n });\r\n }\r\n }\r\n }\r\n this.setState({ formValid: true, isDayAlert });\r\n\r\n }\r\n\r\n //Daysout selection handlechange\r\n selectChoice(choice) {\r\n let selChoice;\r\n let activityData = this.state.activityData;\r\n if (choice == 1) {\r\n selChoice = 1;\r\n activityData.daysOutMonth.dayOfMonth = \"\";\r\n } else {\r\n selChoice = 2;\r\n }\r\n this.setState({ subChoice: selChoice, formValid: true });\r\n }\r\n\r\n render() {\r\n const { modal, isEnabled, snackOpen, activityData, reciepients, snackMsg, isFreqAlert, isReportAlert, snackClr, pdfName, selFrequency, subChoice, daysOut, isDayAlert, showDays, frequencyMonth, dayOutMonth, selectedDaysOut, isMyStore } = this.state;\r\n return (\r\n
\r\n {/* this.snackOpen() : this.activeModalOpen.bind(this)} className=\"go-back-btn list-item-text man-act-repo-menu\">Manage Activity Reports */}\r\n {this.props.isFrom == \"LEFT_NAV\" ?\r\n Manage Activity Reports\r\n : this.props.isGreyOut == 1 ?

Scheduled

:

Set up

}\r\n \r\n Manage Activity Reports\r\n \r\n \r\n \r\n \r\n \r\n \r\n {/*

When do you want to receive this report?
(uncheck to exclude any day)

*/}\r\n {/* {isFreqAlert ?

Please select at least one day from the list below.

: ''} */}\r\n {/* \r\n {activityData.frequency && activityData.frequency.length > 0 ? activityData.frequency.map(data => {\r\n return (\r\n \r\n }\r\n label={data.name}\r\n />)\r\n }) : ''}\r\n */}\r\n
\r\n When do you want to receive this report?\r\n \r\n \r\n Repeat\r\n \r\n \r\n 0 ? selectedDaysOut[0].id : ''}\r\n onChange={this.handleDayChange} >\r\n {/* */}\r\n {activityData.daysOut && activityData.daysOut.length > 0 ? activityData.daysOut.map((daysOut) =>\r\n \r\n ) : ''}\r\n \r\n \r\n \r\n
\r\n {/*

Please note that Activity Reports are typically emailed between
8-9am your local time

*/}\r\n \r\n
\r\n {showDays == 2 ?\r\n Please select which day(s) to receive this report\r\n {activityData && activityData.frequency && activityData.frequency.length > 0 ? activityData.frequency.map(data => {\r\n return (\r\n \r\n }\r\n label={data.name}\r\n />)\r\n }) : ''}\r\n {isFreqAlert ?

Please select at least one day from the list below.

: ''}\r\n
: showDays == 3 ?\r\n \r\n \r\n \r\n Please select which day to receive this report\r\n \r\n \r\n \r\n \r\n this.selectChoice('1')} checked={subChoice == '1' ? 'checked' : ''} />} />\r\n \r\n \r\n 0 ? dayOutMonth[0].id : ''}>\r\n {activityData && activityData.daysOutMonth.daysOut && activityData.daysOutMonth.daysOut.length > 0 ? activityData.daysOutMonth.daysOut.map((state) =>\r\n \r\n ) : ''}\r\n \r\n \r\n \r\n 0 ? frequencyMonth[0].id : ''} onChange={this.handleFreChange} >\r\n {activityData && activityData.daysOutMonth.frequency && activityData.daysOutMonth.frequency.length > 0 ? activityData.daysOutMonth.frequency.map((state) =>\r\n \r\n ) : ''}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n this.selectChoice('2')} />}\r\n />\r\n \r\n \r\n \r\n Day\r\n \r\n \r\n \r\n of every Month\r\n \r\n\r\n \r\n {this.state.formValid ? isDayAlert ?

Please Enter Valid Day Count.

: '' : this.state.subChoice == 2 ?

Day is required

: ''}\r\n
\r\n : ''}

Please note that Activity Reports are typically emailed between
8-9am your local time

\r\n \r\n \r\n

Report Features:(uncheck to exclude any unit size)

\r\n {isReportAlert ?

Please select at least one day from the list below.

: ''}\r\n \r\n
\r\n \r\n \r\n this.setState({ isMyStore: e.target.checked })} \r\n className=\"track-check-gl\"\r\n name=\"info\" \r\n />}\r\n label=\"Include My Store Pricing\"\r\n />\r\n \r\n \r\n \r\n \r\n

Changes in Unit Rates

\r\n \r\n {activityData.activity && activityData.activity.length > 0 ? activityData.activity.map(data => {\r\n return (\r\n \r\n }\r\n label={data.name}\r\n // className=\"move-ch-top track-check-gl\"\r\n />)\r\n }) : ''}\r\n \r\n\r\n \r\n
\r\n \r\n \r\n

Changes in Unit Inventory(added/removed from market)

\r\n \r\n {activityData.inventoryTrack && activityData.inventoryTrack.length > 0 ? activityData.inventoryTrack.map(data => {\r\n return (\r\n \r\n }\r\n label={data.name}\r\n // className=\"move-ch-top track-check-gl\"\r\n />)\r\n }) : ''}\r\n \r\n\r\n \r\n
\r\n \r\n \r\n

Changes in Unit Rate Trends Over Time

\r\n \r\n {activityData.rateTrends && activityData.rateTrends.length > 0 ? activityData.rateTrends.map(data => {\r\n return (\r\n \r\n }\r\n label={data.name}\r\n // className=\"move-ch-top track-check-gl\"\r\n />)\r\n }) : ''}\r\n \r\n\r\n \r\n\r\n
\r\n\r\n \r\n \r\n
\r\n
Never miss a beat!
\r\n

Activity Reports are designed to let you easily and quickly check your competitive market each morning and identify changes that may require some action on your part.

\r\n

You can change your settings or frequency any time.

\r\n

If you have suggestions, questions or comments, let us know..

\r\n \r\n \r\n
\r\n Call: \r\n \r\n\r\n
\r\n
\r\n Email: \r\n \r\n {link => (\r\n {CONFIG.Mail_Support}\r\n )}\r\n \r\n
\r\n \r\n \r\n \r\n View Sample\r\n \r\n \r\n
\r\n
\r\n
\r\n

Recipients Add up to 5 recipients

\r\n {/* */}\r\n ()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/, errorMessage: 'Email Address is Invalid' }\r\n }}\r\n />\r\n ()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/, errorMessage: 'Email Address is Invalid' }\r\n // pattern: { value: /^[a-zA-Z]+@[a-zA-Z0-9-]+\\.[a-zA-Z0-9-.]+$/, errorMessage: 'Email Address is Invalid' }\r\n }}\r\n />\r\n ()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/, errorMessage: 'Email Address is Invalid' }\r\n // pattern: { value: /^[a-zA-Z]+@[a-zA-Z0-9-]+\\.[a-zA-Z0-9-.]+$/, errorMessage: 'Email Address is Invalid' }\r\n }}\r\n />\r\n ()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/, errorMessage: 'Email Address is Invalid' }\r\n // pattern: { value: /^[a-zA-Z]+@[a-zA-Z0-9-]+\\.[a-zA-Z0-9-.]+$/, errorMessage: 'Email Address is Invalid' }\r\n }}\r\n />\r\n ()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/, errorMessage: 'Email Address is Invalid' }\r\n // pattern: { value: /^[a-zA-Z]+@[a-zA-Z0-9-]+\\.[a-zA-Z0-9-.]+$/, errorMessage: 'Email Address is Invalid' }\r\n }}\r\n />\r\n
\r\n \r\n \r\n {/* */}\r\n \r\n {/* */}\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n {snackMsg}}\r\n action={[\r\n \r\n \r\n \r\n ]}\r\n />\r\n
\r\n );\r\n }\r\n}","import React from 'react';\r\nimport './CompReports.css'\r\nimport { Col, Row, Modal, ModalHeader, ModalBody, Button, FormText, Label } from 'reactstrap';\r\nimport { HashLink as Link } from 'react-router-hash-link';\r\nimport { AvForm, AvField } from 'availity-reactstrap-validation';\r\nimport NumberFormat from 'react-number-format';\r\nimport EmailShare from 'react-email-share-link'\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport MuiDialogTitle from '@material-ui/core/DialogTitle';\r\nimport MuiDialogContent from '@material-ui/core/DialogContent';\r\nimport MuiDialogActions from '@material-ui/core/DialogActions';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport CloseIcon from '@material-ui/icons/Close';\r\nimport Snackbar from '@material-ui/core/Snackbar';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport axios from 'axios';\r\nimport { CONFIG, MatchingCountryCode } from '../../utils/config';\r\nimport { COMMON } from '../../utils/common';\r\nimport { Checkbox } from '@material-ui/core';\r\nimport { FormControlLabel, FormGroup } from '@material-ui/core';\r\nimport Radio from '@material-ui/core/Radio';\r\nimport RefreshIcon from '@material-ui/icons/Refresh';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n margin: 0,\r\n padding: theme.spacing(2),\r\n },\r\n closeButton: {\r\n position: 'absolute',\r\n right: theme.spacing(1),\r\n top: theme.spacing(1),\r\n color: theme.palette.grey[500],\r\n },\r\n});\r\n\r\nconst DialogTitle = withStyles(styles)(props => {\r\n const { children, classes, onClose } = props;\r\n return (\r\n \r\n {children}\r\n {onClose ? (\r\n \r\n \r\n \r\n ) : null}\r\n \r\n );\r\n});\r\n\r\nconst DialogContent = withStyles(theme => ({\r\n root: {\r\n padding: theme.spacing(2),\r\n },\r\n}))(MuiDialogContent);\r\n\r\nconst DialogActions = withStyles(theme => ({\r\n root: {\r\n margin: 0,\r\n padding: theme.spacing(1),\r\n },\r\n}))(MuiDialogActions);\r\n\r\nexport default class CompReports extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n modal: false,\r\n snackOpen: false,\r\n snackMsg: '',\r\n snackClr: 'snack-error',\r\n isModalCheck: false,\r\n compData: [],\r\n isEnabled: this.props.isGreyOut,\r\n isActiveStatus: this.props.isActiveStatus,\r\n reciepients: [],\r\n isLoading: false,\r\n isFreqAlert: false,\r\n compImage: '',\r\n isModal: false,\r\n compId: null,\r\n selFrequency: 0,\r\n subChoice: \"1\",\r\n daysOut: 1,\r\n isDayAlert: false,\r\n compStatus: null,\r\n formValid: true,\r\n dayOfMonth: \"\",\r\n showDays: \"1\",\r\n frequencyMonth:[],\r\n dayOutMonth: [],\r\n selectedDaysOut: []\r\n };\r\n this.compReportSubmit = this.compReportSubmit.bind(this);\r\n // this.snackOpen = this.snackOpen.bind(this);\r\n // this.snackHandleclose = this.snackHandleclose.bind(this);\r\n this.handleChange = this.handleChange.bind(this);\r\n this.handleFreChange = this.handleFreChange.bind(this);\r\n this.handleDayChange = this.handleDayChange.bind(this);\r\n this.snackHandleclose = this.snackHandleclose.bind(this);\r\n }\r\n modalOpen = () => this.setState({ isModal: !this.state.isModal })\r\n modalClose = () => this.setState({ isModal: !this.state.isModal })\r\n compModalOpen = () => {\r\n this.setState(state => ({ modal: !state.modal }));\r\n this.loadCompData();\r\n }\r\n\r\n cancelCompReport = () => this.setState(state => ({ modal: !state.modal }))\r\n\r\n componentDidMount() {\r\n if (typeof window.dataLayer != \"undefined\" && this.props.isCompOpen) {\r\n window.dataLayer.push({\r\n \"event\": \"show popup\",\r\n 'eventCategory': 'popup',\r\n 'eventAction': 'show',\r\n 'eventLabel': this.state.popupName,\r\n });\r\n }\r\n }\r\n\r\n //load comp report data\r\n loadCompData() {\r\n this.setState({ isLoading: true })\r\n const data = {\r\n UserStoreId: this.props.storeId,\r\n RegionId: CONFIG.RegionId\r\n }\r\n let token = localStorage.getItem('accessKey');\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n }\r\n axios.post(CONFIG.API_URL + 'dashboard/userstorecompreport', data)\r\n .then(response => {\r\n const compData = response.data.data;\r\n let radioCheck = (compData.daysOutMonth.dayOfMonth == 0 || compData.daysOutMonth.dayOfMonth == '' || compData.daysOutMonth.dayOfMonth == null) ? false : true; \r\n let selectedDaysOut = compData.daysOut.filter(days => days.value == 1);\r\n let showDays = selectedDaysOut.length > 0 ? selectedDaysOut[0].id : 0;\r\n let dayOutMonth = compData.daysOutMonth.daysOut.filter(days => days.value == 1);\r\n let frequencyMonth = compData.daysOutMonth.frequency.filter(days => days.value == 1);\r\n let reciepients = response.data.data.info != null && response.data.data.info.reciepients != null ? response.data.data.info.reciepients.split(',') : [];\r\n let compImage = response.data.data.info.compReportSample;\r\n this.setState({ compData, reciepients, compImage, isLoading: false, frequencyMonth, dayOutMonth ,selectedDaysOut, showDays, subChoice: radioCheck ? '2' : '1' });\r\n })\r\n .catch((err) => {\r\n this.setState({ isLoading: false })\r\n if (err.response.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }\r\n\r\n handleChange(e, value) {\r\n let index;\r\n let compData = this.state.compData;\r\n if (e.target.checked) {\r\n index = compData[e.target.name].findIndex((obj => obj.id == parseInt(e.target.value)));\r\n if (index >= 0) {\r\n // if(e.target.name == \"frequency\"){\r\n // compData.daysOutMonth[e.target.name][index].value = 1;\r\n // }else{\r\n compData[e.target.name][index].value = 1;\r\n // }\r\n \r\n }\r\n }\r\n else if (!e.target.checked) {\r\n index = compData[e.target.name].findIndex((obj => obj.id == parseInt(e.target.value)));\r\n if (index >= 0) {\r\n // if(e.target.name == \"frequency\"){\r\n // compData.daysOutMonth[e.target.name][index].value = 0;\r\n // }else{\r\n compData[e.target.name][index].value = 0;\r\n // }\r\n }\r\n }\r\n this.setState({ compData });\r\n\r\n // Data Validation\r\n let data = this.state.compData\r\n let freq = data.frequency.filter(element => element.value == 1)\r\n if (freq.length == 0) {\r\n this.setState({ isFreqAlert: true })\r\n } else {\r\n this.setState({ isFreqAlert: false })\r\n }\r\n }\r\n\r\n // function for activate and deactivate report\r\n updateStatus = (active, comp, id) => {\r\n let data = {\r\n UserStoreId: id,\r\n ActivityReport: active == null || active == 0 ? 0 : 1,\r\n CompReport: comp == null || comp == 4 ? 0 : 1\r\n }\r\n this.setState({ compId: data.CompReport });\r\n let token = localStorage.getItem('accessKey');\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n }\r\n axios.post(CONFIG.API_URL + 'market/updateactivitycompreport', data)\r\n .then(response => {\r\n // this.setState({ reciepients: []});\r\n this.state.reciepients = [];\r\n if (this.props.isFrom == \"LEFT_NAV\") {\r\n this.props.parentMethod(this.props.storeId);\r\n } else {\r\n this.props.compRefresh();\r\n }\r\n // if (this.state.compId == 1) {\r\n // document.getElementById('btn-submit-form-active-comp').click();\r\n // } else {\r\n // if (this.props.isFrom == \"LEFT_NAV\") {\r\n // this.props.parentMethod(this.props.storeId);\r\n // } else {\r\n // this.props.compRefresh();\r\n // }\r\n // }\r\n }).catch((err) => {\r\n if (err.response.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }\r\n\r\n\r\n compReportSubmit(event, errors, values) {\r\n let formValid = this.state.formValid;\r\n formValid = this.state.showDays == 3 && this.state.subChoice == 2 ? this.state.compData.daysOutMonth.dayOfMonth != \"\" && this.state.compData.daysOutMonth.dayOfMonth != null ? true : false : true;\r\n if (errors.length == 0 && formValid) {\r\n this.setState({ isLoading: true, compStatus: values.daysOut && values.daysOut != '' ? values.daysOut : 0 });\r\n const data = this.state.compData;\r\n //Data Validation\r\n let freq = this.state.showDays == 2 ? data.frequency.filter(element => element.value == 1) : [0];\r\n let reciepients = [values.Recipient1, values.Recipient2, values.Recipient3, values.Recipient4, values.Recipient5];\r\n reciepients = reciepients.filter(item => item);\r\n data[\"info\"] = {\r\n \"UserStoreId\": this.props.storeId,\r\n \"RegionId\": CONFIG.RegionId,\r\n \"Reciepients\": reciepients.toString(),//[values.Recipient1,values.Recipient2,values.Recipient3,values.Recipient4,values.Recipient5].toString()\r\n }\r\n let token = localStorage.getItem('accessKey');\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n }\r\n if (freq.length >= 1 && formValid) {\r\n axios.post(CONFIG.API_URL + 'dashboard/updatecompreport', data)\r\n .then(response => {\r\n this.setState({ modal: false, isLoading: false}, () => {\r\n // if (this.props.isFrom == \"LEFT_NAV\") {\r\n // this.props.parentMethod(this.props.storeId);\r\n // } else {\r\n // this.props.compRefresh();\r\n // }\r\n this.updateStatus(this.props.isActiveStatus, this.state.compStatus, this.props.storeId)\r\n })\r\n this.setState({ snackOpen: true, snackMsg: 'The changes have been saved Successfully', snackClr: 'snack-success' })\r\n })\r\n .catch((err) => {\r\n this.setState({ isLoading: false })\r\n if (err.response.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else {\r\n alert(err.response.data);\r\n }\r\n })\r\n } else {\r\n this.setState({ isFreqAlert: true })\r\n document.getElementById(\"days\").focus({ preventScroll: false });\r\n }\r\n }else{\r\n if(this.state.subChoice == 2 && this.state.dayOfMonth == \"\"){\r\n this.setState({formValid: false});\r\n }\r\n }\r\n }\r\n snackHandleclose = (event, reason) => {\r\n if (reason === 'clickaway') {\r\n return;\r\n }\r\n this.setState({ snackOpen: false });\r\n };\r\n\r\n // snackOpen() {\r\n // this.setState({ snackOpen: true, snackMsg: 'Activate by checking on My Markets Page' });\r\n // }\r\n\r\n //selectedFrequency onChange event\r\n handleFreChange(e, value) {\r\n let index;\r\n let compData = this.state.compData;\r\n let isDayAlert = this.state.isDayAlert;\r\n //Check for No of days below 31\r\n if (e.target.name === \"dayOfMonth\") {\r\n e.target.value = e.target.value.replace(/[^\\w\\s]/gi, \"\");\r\n if (e.target.value.length > 2) {\r\n e.target.value = e.target.value.substring(\r\n 0,\r\n Math.min(e.target.value.length, 2)\r\n );\r\n }\r\n if (parseInt(e.target.value) > 31 || e.target.value == \"0\") {\r\n e.target.value = \"\";\r\n isDayAlert = true;\r\n } else {\r\n isDayAlert = false;\r\n }\r\n // this.setState({isDayAlert});\r\n compData.daysOutMonth[e.target.name] = e.target.value;\r\n } else {\r\n if (e.target.name === \"dayOutMonth\") {\r\n index = compData.daysOutMonth[\"daysOut\"].findIndex(\r\n (obj) => obj.id == parseInt(e.target.value)\r\n );\r\n if (index >= 0) {\r\n compData.daysOutMonth[\"daysOut\"][index].value = 1;\r\n compData.daysOutMonth[\"daysOut\"].forEach((val, i) => {\r\n if (val.id != parseInt(e.target.value))\r\n compData.daysOutMonth[\"daysOut\"][i].value = 0;\r\n });\r\n }\r\n } else {\r\n index = compData.daysOutMonth[e.target.name].findIndex(\r\n (obj) => obj.id == parseInt(e.target.value)\r\n );\r\n if (index >= 0) {\r\n compData.daysOutMonth[e.target.name][index].value = 1;\r\n compData.daysOutMonth[e.target.name].forEach((val, i) => {\r\n if (val.id != parseInt(e.target.value))\r\n compData.daysOutMonth[e.target.name][i].value = 0;\r\n });\r\n }\r\n }\r\n }\r\n this.setState({formValid: true, isDayAlert});\r\n\r\n}\r\n\r\n //Daysout selection handlechange\r\n selectChoice(choice) {\r\n let selChoice;\r\n let compData = this.state.compData;\r\n if (choice == 1) {\r\n selChoice = 1;\r\n compData.daysOutMonth.dayOfMonth = \"\"; \r\n } else {\r\n selChoice = 2;\r\n }\r\n this.setState({ subChoice: selChoice });\r\n }\r\n\r\n handleDayChange(e, value) {\r\n let index;\r\n let compData = this.state.compData;\r\n if(e.target.value !=''){\r\n index = compData[e.target.name].findIndex((obj => obj.id == parseInt(e.target.value)));\r\n if (index >= 0) {\r\n compData[e.target.name][index].value = 1;\r\n compData[e.target.name].forEach((val, i) =>{\r\n if(val.id != parseInt(e.target.value ))\r\n compData[e.target.name][i].value = 0;\r\n }); \r\n }\r\n this.setState({showDays: e.target.value, isFreqAlert: false, isDayAlert: false});\r\n }\r\n }\r\n\r\n\r\n render() {\r\n const { modal, snackOpen, compData, reciepients, snackMsg, isFreqAlert, snackClr, compImage, selFrequency, subChoice, selDaysOut, isDayAlert, showDays, frequencyMonth, dayOutMonth, selectedDaysOut } = this.state;\r\n return (\r\n
\r\n {/* this.snackOpen() : this.compModalOpen.bind(this)} className=\"go-back-btn list-item-text man-act-repo-menu\">Manage Comp Reports */}\r\n {this.props.isFrom == \"LEFT_NAV\" ?\r\n Manage Competitor Reports\r\n : this.props.isGreyOut == 1 ?

Scheduled

:

Set up

}\r\n {/* Manage Comp Reports */}\r\n \r\n Manage Competitor Reports\r\n \r\n \r\n \r\n \r\n \r\n \r\n {/*

When do you want to receive this report?
(uncheck to exclude any day)

*/}\r\n {/* {isFreqAlert ?

Please select at least one day from the list below.

: ''} */}\r\n {/* \r\n {compData.frequency && compData.frequency.length > 0 ? compData.frequency.map(data => {\r\n return(\r\n \r\n } \r\n label={data.name} \r\n />\r\n \r\n )\r\n }) \r\n : ''\r\n }\r\n */}\r\n
\r\n When do you want to receive this report?\r\n \r\n \r\n Repeat\r\n \r\n \r\n 0 ? selectedDaysOut[0].id : ''} onChange={this.handleDayChange} >\r\n {/* */}\r\n {compData.daysOut && compData.daysOut.length > 0 ? compData.daysOut.map((daysOut) =>\r\n \r\n ) : ''}\r\n \r\n \r\n \r\n
\r\n {/*

Please note that Comp Reports are typically emailed between 8-9am your local time

*/}\r\n \r\n
\r\n {showDays == 2 ?\r\n Please select which day(s) to receive this report\r\n {compData && compData.frequency && compData.frequency.length > 0 ? compData.frequency.map(data => {\r\n return (\r\n \r\n }\r\n label={data.name}\r\n />)\r\n }) : ''}\r\n \r\n {isFreqAlert ?

Please select at least one day from the list below.

: ''}\r\n \r\n
: showDays == 3 ?\r\n \r\n \r\n \r\n Please select which day to receive this report\r\n \r\n \r\n \r\n \r\n this.selectChoice('1')} checked={subChoice == '1' ? 'checked' : ''} />} />\r\n \r\n \r\n 0 ? dayOutMonth[0].id : ''}>\r\n {compData && compData.daysOutMonth.daysOut && compData.daysOutMonth.daysOut.length > 0 ? compData.daysOutMonth.daysOut.map((state) =>\r\n \r\n ) : ''}\r\n \r\n \r\n \r\n 0 ? frequencyMonth[0].id : ''} >\r\n {compData && compData.daysOutMonth.frequency && compData.daysOutMonth.frequency.length > 0 ? compData.daysOutMonth.frequency.map((state) =>\r\n \r\n ) : ''}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n this.selectChoice('2')} />}\r\n />\r\n \r\n \r\n \r\n Day\r\n \r\n \r\n \r\n of every Month\r\n \r\n \r\n \r\n {this.state.formValid ? isDayAlert ?

Please Enter Valid Day Count.

: '' : this.state.subChoice == 2 ?

Day is required

: ''}\r\n
\r\n : ''}

Please note that Competitor Reports are typically emailed between 8-9am your local time

\r\n
\r\n

Recipients Add up to 5 recipients

\r\n ()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/, errorMessage: 'Email Address is Invalid' }\r\n // pattern: { value: /^[a-zA-Z]+@[a-zA-Z0-9-]+\\.[a-zA-Z0-9-.]+$/, errorMessage: 'Email Address is Invalid' }\r\n }}\r\n />\r\n ()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/, errorMessage: 'Email Address is Invalid' }\r\n // pattern: { value: /^[a-zA-Z]+@[a-zA-Z0-9-]+\\.[a-zA-Z0-9-.]+$/, errorMessage: 'Email Address is Invalid' }\r\n }}\r\n />\r\n ()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/, errorMessage: 'Email Address is Invalid' }\r\n // pattern: { value: /^[a-zA-Z]+@[a-zA-Z0-9-]+\\.[a-zA-Z0-9-.]+$/, errorMessage: 'Email Address is Invalid' }\r\n }}\r\n />\r\n ()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/, errorMessage: 'Email Address is Invalid' }\r\n // pattern: { value: /^[a-zA-Z]+@[a-zA-Z0-9-]+\\.[a-zA-Z0-9-.]+$/, errorMessage: 'Email Address is Invalid' }\r\n }}\r\n />\r\n ()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/, errorMessage: 'Email Address is Invalid' }\r\n // pattern: { value: /^[a-zA-Z]+@[a-zA-Z0-9-]+\\.[a-zA-Z0-9-.]+$/, errorMessage: 'Email Address is Invalid' }\r\n }}\r\n />\r\n
\r\n \r\n \r\n {/* */}\r\n \r\n {/* */}\r\n \r\n
\r\n
\r\n\r\n \r\n \r\n
\r\n
Competitor Reports direct to your inbox
\r\n

Competitor Reports give you a full market competition analysis in an easy-to-ready spreadsheet, delivered into your inbox daily

\r\n

You can set the frequency so you receive an updated Competitor report on the days you wish.

\r\n

If you have suggestions, questions or comments, let us know..

\r\n \r\n \r\n
\r\n Call: \r\n \r\n
\r\n
\r\n Email: \r\n \r\n {link => (\r\n {CONFIG.Mail_Support}\r\n )}\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n {/*
\r\n
*/}\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n {snackMsg}}\r\n action={[\r\n \r\n \r\n \r\n ]}\r\n />\r\n
\r\n );\r\n }\r\n}","import React from 'react';\r\nimport \"./ActivityReportPdf.css\";\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faArrowUp, faArrowDown } from '@fortawesome/free-solid-svg-icons';\r\nimport { CONFIG } from '../../utils/config';\r\nimport Logo from '../../Assets/Images/opt-logo.png';\r\nimport Logo1 from '../../Assets/Images/stortrack-logo.png';\r\nimport Linkedin from '../../Assets/Images/email-linkedin.png';\r\nimport Facebook from '../../Assets/Images/email-fb.png';\r\nimport Twitter from '../../Assets/Images/email-twitter.png';\r\n// import Down from '../../Assets/Images/red-arrow.png';\r\n// import Up from '../../Assets/Images/green-arrow.png';\r\nimport axios from 'axios';\r\n\r\nclass ActivityReportPdf extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n const month = [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"]\r\n const today = new Date();\r\n this.state = {\r\n userStoreId: this.props.match.params.usId ? parseInt(this.props.match.params.usId) : 0,\r\n date: month[today.getMonth()] + \" \" + today.getDate() + \", \" + today.getFullYear(),\r\n activityReports: [],\r\n inventoryAvailablities: [],\r\n rateTrends: [],\r\n basicInfo: {},\r\n accessKey: this.props.match.params.accessKey ? this.props.match.params.accessKey : '',\r\n token: ''\r\n }\r\n }\r\n async componentDidMount() {\r\n // const data = {\r\n // UserName: 'santhosh@aggregateintelligence.com',\r\n // Password: '365media'\r\n // // \"SecretKey\": this.props.accessKey,\r\n // // \"RegionId\": CONFIG.RegionId\r\n // }\r\n\r\n // const response = await axios.post(CONFIG.API_URL + 'account/securelogin', data);\r\n // if (response.status === 200) {\r\n // this.state.accessKey = response.data.token;\r\n // this.getData();\r\n // } else {\r\n // alert(response.status.Message);\r\n // }\r\n\r\n }\r\n async UNSAFE_componentWillMount() {\r\n const data = {\r\n \"SecretKey\": this.state.accessKey,\r\n \"RegionId\": CONFIG.RegionId\r\n }\r\n\r\n const response = await axios.post(CONFIG.API_URL + 'account/secretlogin', data);\r\n if (response.status === 200) {\r\n this.state.token = response.data.token;\r\n this.getData();\r\n } else {\r\n alert(response.status.Message);\r\n }\r\n }\r\n\r\n getData() {\r\n let token = this.state.token;\r\n const data = {\r\n \"UserStoreID\": parseInt(this.state.userStoreId),\r\n \"RegionId\": CONFIG.RegionId\r\n }\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n }\r\n axios.post(CONFIG.API_URL + 'dashboard/downloadactivityreportdata', data)\r\n .then(response => {\r\n this.setState({\r\n basicInfo: response.data.info || {},\r\n activityReports: response.data.data.activityReports || [],\r\n inventoryAvailablities: response.data.data.inventoryAvailablities || [],\r\n rateTrends: response.data.data.rateTrends || []\r\n })\r\n }).catch((err) => {\r\n if (err.response.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else if (err.response.status === 403) {\r\n const { from } = this.props.location.state || { from: { pathname: \"/UnauthorizedAccess\" } };\r\n this.props.history.push(from);\r\n }\r\n else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }\r\n\r\n render() {\r\n const { activityReports, inventoryAvailablities, rateTrends, basicInfo } = this.state;\r\n return (\r\n
\r\n
\r\n
\r\n

Today's Market Activity Report

\r\n

Optimize your rates with quick and accurate market insights in your inbox!

\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n {activityReports && activityReports.length > 0 ? \r\n
\r\n
\r\n

For {this.state.date}

\r\n

This is your daily Optimize Market Activity Report based on a {basicInfo.zoneCoverage != null ? basicInfo.zoneCoverage : 'N/A'} of:
{basicInfo.storeName != null ? basicInfo.storeName : 'N/A'} at
{basicInfo.address != null ? basicInfo.address : 'N/A'}

\r\n

Today's Rate Activity

\r\n

These are the changes in your market's average rate between yesterday and today.

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {basicInfo.isMyStore && basicInfo.isMyStore == 1 ? : ''}\r\n \r\n \r\n \r\n {\r\n activityReports && activityReports.length > 0 ? activityReports.map((val, i) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {basicInfo.isMyStore && basicInfo.isMyStore == 1 ? : ''}\r\n \r\n \r\n \r\n );\r\n }\r\n ) : \r\n }\r\n \r\n
Unit TypeRate ChangesMarket Av YesterdayMarket Av TodayMy Store PriceChangeNotables
{val.unitType != null && val.unitType != undefined ? val.unitType :
-
}
{val.rateActivityReport != null && val.rateActivityReport != undefined ? val.rateActivityReport :
-
}
{val.marketAvYesterday != null && val.marketAvYesterday != undefined ? val.marketAvYesterday :
-
}
{val.marketAvgToday != null && val.marketAvgToday != undefined ? val.marketAvgToday :
-
}
{val.myStorePrice != null && val.myStorePrice != undefined ? val.myStorePrice :
-
}
{val.change == null && val.change == undefined ?
-
: val.change == 0 ? val.change + \"%\" : val.change < 0 ? <>{val.change + \"%\"} : <>{val.change + \"%\"}}
{val.notables != null && val.notables != undefined ? val.notables :
-
}
No Data Found
\r\n
\r\n
\r\n
\r\n
: ''}\r\n {inventoryAvailablities && inventoryAvailablities.length > 0 ? \r\n
\r\n

Today's Inventory Activity

\r\n

This is showing how many of each unit type are advertised in this market today compared to yesterday.

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n inventoryAvailablities && inventoryAvailablities.length > 0 ? inventoryAvailablities.map((val, i) =>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n : \r\n }\r\n \r\n
Unit TypeInventory ChangeYesterdayTodayNotables
{val.unitType != null && val.unitType != undefined ? val.unitType :
-
}
{val.inventoryChange != null && val.inventoryChange != undefined ? val.inventoryChange :
-
}
{val.yesterday != null && val.yesterday != undefined ? val.yesterday :
-
}
{val.today != null && val.today != undefined ? val.today :
-
}
{val.notables != null && val.notables != undefined ? val.notables :
-
}
No Data Found
\r\n

If you have any questions please do not hesitate to contact us. To modify the settings of this Activity Report, simply log-in to your Optimize account, go the Market Dashboard and select Manage Activity Reports in the left navigation bar.

\r\n
\r\n
\r\n
: ''}\r\n {rateTrends && rateTrends.length > 0 ? \r\n
\r\n

Today's Rate Trend Analysis

\r\n

This is an analysis on how the rates for each unit have trended over the past year.

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n rateTrends && rateTrends.length > 0 ? rateTrends.map((val, i) =>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n : \r\n }\r\n \r\n
Unit Type5 day Trend30 day Trend90 day Trend365 day Trend
{val.unitType != null && val.unitType != undefined ? val.unitType :
-
}
{val.day5 == null && val.day5 == undefined ?
-
: val.day5 == 0 ? val.day5 + \"%\" : val.day5 < 0 ? <>{val.day5 + \"%\"} : <>{val.day5 + \"%\"}}
{val.day30 == null && val.day30 == undefined ?
-
: val.day30 == 0 ? val.day30 + \"%\" : val.day30 < 0 ? <>{val.day30 + \"%\"} : <>{val.day30 + \"%\"}}
{val.day90 == null && val.day90 == undefined ?
-
: val.day90 == 0 ? val.day90 + \"%\" : val.day90 < 0 ? <>{val.day90 + \"%\"} : <>{val.day90 + \"%\"}}
{val.day365 == null && val.day365 == undefined ?
-
: val.day365 == 0 ? val.day365 + \"%\" : val.day365 < 0 ? <>{val.day365 + \"%\"} : <>{val.day365 + \"%\"}}
No Data Found
\r\n

If you have any questions please do not hesitate to contact us. To modify the settings of this Activity Report, simply log-in to your Optimize account, go the Market Dashboard and select Manage Activity Reports in the left navigation bar.

\r\n
\r\n
: ''}\r\n
\r\n )\r\n }\r\n}\r\n\r\nexport default ActivityReportPdf;","import React, { Component } from 'react';\r\nimport { Link } from \"react-router-dom\";\r\nimport './Footer.css';\r\nimport { Container, Row, Col } from 'reactstrap';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport CloseIcon from '@material-ui/icons/Close';\r\nimport stlogo from './../../Assets/Images/st-logo.png';\r\nimport { CONFIG } from '../../utils/config';\r\nclass Footer extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n terms: false,\r\n privacy: false\r\n };\r\n }\r\n // Terms and Conditions Dialog\r\n handleTermsOpen = () => {\r\n this.setState({\r\n terms: true,\r\n });\r\n };\r\n\r\n handleTermsClose = () => {\r\n this.setState({ terms: false });\r\n };\r\n\r\n handlePrivacyOpen = () => {\r\n this.setState({\r\n privacy: true,\r\n });\r\n };\r\n\r\n handlePrivacyClose = () => {\r\n this.setState({ privacy: false });\r\n };\r\n\r\n render() {\r\n return (\r\n
\r\n
\r\n \r\n {CONFIG.RegionId == 2 ?\r\n \r\n \r\n
StorTrack
\r\n

StorTrack is a part of Aggregate Intelligence, Inc. - the world’s foremost data intelligence company.

\r\n
    \r\n
  • Global HQ
  • \r\n
  • 26400 Lahser Rd. Suite 210
    Southfield, MI 48033
  • \r\n
  • {CONFIG.Mail_Info}
  • \r\n
  • US Direct: {CONFIG.Toll_Free}
  • \r\n
  • UK Direct: 020 3048 3123
  • \r\n
\r\n \r\n \r\n
Sitemap
\r\n \r\n \r\n \r\n
Connect with Us
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
: CONFIG.RegionId == 4 ?\r\n \r\n \r\n
StorTrack
\r\n

StorTrack is a part of Aggregate Intelligence, Inc. - the world’s foremost data intelligence company.

\r\n
    \r\n
  • Global HQ
  • \r\n
  • 26400 Lahser Rd. Suite 210
    Southfield, MI 48033
  • \r\n
  • {CONFIG.Mail_Info}
  • \r\n
  • US Direct: {CONFIG.Toll_Free}
  • \r\n
  • UK Direct: 020 3048 3123
  • \r\n
\r\n \r\n \r\n
Sitemap
\r\n \r\n \r\n \r\n
Connect with Us
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
:\r\n \r\n {\r\n CONFIG.RegionId == 3 ?\r\n \r\n
StorTrack
\r\n

StorTrack is a part of Aggregate Intelligence, Inc. - the world’s foremost data intelligence company.

\r\n
    \r\n
  • Global HQ
  • \r\n
  • 26400 Lahser Rd. Suite 210
    Southfield, MI 48033
  • \r\n
  • {CONFIG.Mail_Info}
  • \r\n
  • {CONFIG.Toll_Free} | UK Direct: {CONFIG.Sales_Support}
  • \r\n
\r\n :\r\n \r\n \"footer\r\n

A product division of Aggregate Intelligence, Inc

\r\n
    \r\n
  • 26400 Lahser Rd. Suite 210
    Southfield, MI 48033
  • \r\n
  • {CONFIG.Mail_Info}
  • \r\n
  • {CONFIG.Toll_Free}​
  • \r\n
\r\n \r\n }\r\n\r\n \r\n
Sitemap
\r\n \r\n \r\n \r\n
Connect with Us
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
}\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n

Copyright © 2020 Aggregate Intelligence, Inc. All Rights Reserved

\r\n \r\n \r\n
\r\n Privacy Policy |\r\n Terms of use\r\n
\r\n
\r\n
\r\n \r\n \r\n Terms of Service\r\n \r\n \r\n \r\n \r\n \r\n Effective and Last Updated: April 1, 2024\r\n \r\n This website is owned and operated by Aggregate Intelligence, Inc. (the producer of the StorTrack services) referred hereto as ‘StorTrack’. This webpage contains the Terms of Service governing your access to and use of StorTrack (the “Site”). When used in this Agreement, \"Service\" means those premium content areas of the Site which you may have been authorized to access. \r\n By submitting your completed Registration Form, and using any part of the service, you are representing that you are 18 years old or older, and that you agree to be bound by all of the terms in this Subscription Agreement. You may print and keep a copy of this Agreement. Aggregate Intelligence, Inc. may change the terms in this Subscription Agreement. When the terms are changed, we will notify you by e-mail and/or online postings. The changes will also appear in this document, which you can access at any time by selecting \"Terms of Service\" in the footer section of the site’s home page. After notification that a change in this Subscription Agreement has been posted, you agree to be bound by all of the changes.\r\n The “Effective Date” of this Agreement is the date that the person placing the order accepts the Terms by clicking ‘Accept Terms of Subscription’ during the subscription account set-up process on the Site.\r\n If you are entering into this Agreement on behalf of a company or other legal entity, you represent that you have the authority to bind such entity to this Agreement in which case the term “Client” shall refer to such entity. If you do not have such authority, or if you do not agree to the terms of this Agreement, do not accept this Agreement or use the Services. If you receive free access or a trial account for evaluation you are deemed a “Client” under this Agreement and are subject to its terms\r\n You may not use or access the Services if you are a direct competitor of StorTrack or if you are accessing or using the Services for the benefit of a direct competitor of StorTrack.\r\n \r\n PRIVACY OF INFORMATION\r\n \r\n By clicking the \"I Accept\" button, you also are agreeing that Aggregate Intelligence, Inc. may use information you provide as part of the subscription process and usage information, and provide aggregate statistical information about subscribers to advertisers, potential advertisers, and content licensors. Aggregate Intelligence, Inc. also may use the information to inform you about other products and services, unless you notify Aggregate Intelligence, Inc. that you do not wish to receive this information. Aggregate Intelligence, Inc. also may deliver additional messages about the Service to you by e-mail.\r\n As a general policy, Aggregate Intelligence, Inc. does not disclose to third parties any specific personal identifying information about you, such as your name, address, phone number, or e-mail address (\"Personal Identifying Information\"). Aggregate Intelligence, Inc. will not disclose any of your Personal Identifying Information to a third party without first notifying you and giving you an opportunity to elect not to have your Personal Identifying Information disclosed. Also, please consult our Privacy Policy .\r\n \r\n ENTERPRISE CUSTOMERS\r\n \r\n If Aggregate Intelligence, Inc. and you or your employer have manually signed a paper version of a contract governing your use of the Service, or if you or your employer subscribe to the Service pursuant to an Enterprise Subscription Agreement, the terms in that manually signed, paper document or Enterprise Subscription Agreement are not amended by, and supersede, terms in this Subscription Agreement.\r\n \r\n FEES AND PAYMENTS\r\n \r\n You can always find the current Subscription Fees and charges posted with the product information. Your subscription will continue for the term specified and will renew automatically until terminated by Aggregate Intelligence, Inc. or until you notify Aggregate Intelligence, Inc. by electronic mail of your decision to terminate your subscription or cancel the subscription from the “My Account” section after Signing In. Your default payment method will be charged for the total amount for any subscription package selected during the Checkout process. All fees and charges are non-refundable.\r\n All fees and charges incurred in connection with your username and/or password will be billed to the default payment method you designate during the registration process for the Service or the electronic information service, which provides you access to the Service. If there are any annual, or similar periodic fees for your Service subscription, these fees will be billed automatically to your default payment method at the start of the period, and at the start of each renewal period, unless you terminate your subscription before the relevant period begins. If there is a problem charging your selected payment method, we may charge any other valid payment method associated with your account. You are responsible for maintaining the confidentiality of your account and password and for restricting access to your account, and you agree to accept responsibility for all activities that occur under your account or password. If you want to update your payment method, or if you believe someone has accessed the Service using your user name or password without your authorization, you must contact Aggregate Intelligence, Inc. Customer Service at the telephone numbers posted on the website or fill out the form available on the “Contact Us” page. You may also update your payment method from the “My Account” section after Signing In. You also are responsible for any fees or charges incurred to access the Service through an Internet access provider or other third-party service. YOU, AND NOT AGGREGATE INTELLIGENCE, INC., ARE RESPONSIBLE FOR PAYING ANY AMOUNTS BILLED TO YOUR PAYMENT METHOD BY A THIRD PARTY, WHICH WERE NOT AUTHORIZED BY YOU.\r\n If Aggregate Intelligence, Inc. and you or your employer has manually signed a paper version of a contract governing your use of the Service, or if you or your employer subscribe to the Service pursuant to an Enterprise Subscription Agreement, some or all of these \"Fees and Payments\" terms may not apply to you. Please contact your employer for details.\r\n \r\n COPYRIGHT AND LIMITATIONS ON USE\r\n \r\n The content available as part of the Service, other than content accessible through the Product area, is defined as \"Licensed Information\". The Licensed Information is the property of Aggregate Intelligence, Inc. or its licensors and is protected by copyright and other intellectual property laws. Licensed Information received through the Service may be displayed, reformatted and printed for your personal, non-commercial use only. You agree not to reproduce, transmit, distribute, display, sell, location, archive or publish any Licensed Information to anyone, including but not limited to others in the same company or organization, without the express prior consent of Aggregate Intelligence, Inc. with these two exceptions:\r\n 1) You may, on an occasional and irregular basis, disseminate an insubstantial portion of content retrieved from the Service, for a non-commercial purpose, without charge, and in non-electronic form, to a limited number of individuals, provided you include all copyright and other proprietary notices with such portion of the content in the same form in which the notices appear in the Service, and the phrase \"Used with permission from Aggregate Intelligence, Inc. \" To request consent for other matters, please send an e-mail to support@stortrack.com\r\n 2) Except where indicated otherwise you may e-mail your Service search results to a single e-mail address and a single individual within your company or organization The content accessible through hyperlinks within company capsules in the database is not made available to you through any contractual arrangement between Aggregate Intelligence, Inc. and third parties, but instead is made available from publicly available sources on the World Wide Web. FOR THIS REASON, AGGREGATE INTELLIGENCE, INC. DOES NOT GRANT YOU ANY RIGHT OR LICENSE WHATSOEVER WITH RESPECT TO CONTENT ACCESSIBLE THROUGH THE GUIDE. You are solely responsible for determining the extent to which the content accessible through the application may be used or distributed. Aggregate Intelligence, Inc. reserves the right to monitor the Subscriber's use of all premium content, services, and tools to ensure the Subscriber's compliance with the Terms and Conditions. If it is determined that the Subscriber is not in compliance with these Terms and Conditions, Aggregate Intelligence, Inc. reserves the right to take such action as is deemed necessary, including, but not limited to, suspension or termination of the Subscriber's account. The Subscriber acknowledges that such monitoring of use may include determining whether or not the Service is accessed under the account from IP addresses, monitoring the log files to determine if any computer programs are being run in order to access data from the site, as well as noting excessive use from Subscription accounts. Only one individual may access the Service at the same time using the same user name or password, unless agreed otherwise by Aggregate Intelligence, Inc.\r\n Aggregate Intelligence, Inc. and its content licensors do not give investment advice, or advocate the purchase or sale of any security or investment.\r\n \r\n DISCLAIMER OF WARRANTIES AND LIABILITY\r\n \r\n DUE TO THE NUMBER OF SOURCES FROM WHICH CONTENT ON THE SERVICE IS OBTAINED, AND THE INHERENT HAZARDS OF ELECTRONIC DISTRIBUTION, THERE MAY BE DELAYS, OMISSIONS OR INACCURACIES IN SUCH CONTENT AND THE SERVICE. AGGREGATE INTELLIGENCE, INC. AND ITS AFFILIATES, AGENTS AND LICENSORS CANNOT AND DO NOT WARRANT THE ACCURACY, COMPLETENESS, CURRENTNESS, NONINFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE OF THE CONTENT AVAILABLE THROUGH THE SERVICE OR THE SERVICE ITSELF. AGGREGATE INTELLIGENCE, INC. AND ITS AFFILIATES, AGENTS OR LICENSORS SHALL NOT BE LIABLE TO YOU OR ANYONE ELSE FOR ANY LOSS OR DAMAGE, OTHER THAN DEATH OR PERSONAL INJURY RESULTING DIRECTLY FROM USE OF THE SERVICE, CAUSED IN WHOLE OR PART BY CONTINGENCIES BEYOND THEIR CONTROL OR NEGLIGENCE IN PROCURING, COMPILING, INTERPRETING, REPORTING OR DELIVERING THE SERVICE AND ANY CONTENT THROUGH THE SERVICE. IN NO EVENT WILL AGGREGATE INTELLIGENCE, INC., ITS AFFILIATES, AGENTS OR LICENSORS BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DECISION MADE OR ACTION TAKEN BY YOU IN RELIANCE ON SUCH CONTENT. AGGREGATE INTELLIGENCE, INC. AND ITS AFFILIATES, AGENTS AND LICENSORS SHALL NOT BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DAMAGES OTHER THAN DIRECT DAMAGES (INCLUDING, WITHOUT LIMITATION, CONSEQUENTIAL, SPECIAL, INCIDENTAL, INDIRECT, OR SIMILAR DAMAGES) EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. YOU AGREE THAT THE LIABILITY OF AGGREGATE INTELLIGENCE, INC., ITS AFFILIATES, AGENTS AND LICENSORS, IF ANY, ARISING OUT OF ANY KIND OF LEGAL CLAIM (WHETHER IN CONTRACT, TORT OR OTHERWISE) IN ANY WAY CONNECTED WITH THE SERVICE OR THE CONTENT IN THE SERVICE SHALL NOT EXCEED THE AMOUNT YOU PAID TO AGGREGATE INTELLIGENCE, INC. FOR THE USE OF THE SERVICE IN THE 12 MONTHS IMMEDIATELY PRECEDING THE EVENT GIVING RISE TO SUCH CLAIM.\r\n \r\n ADDITIONAL LEGAL TERMS AND CONDITIONS\r\n \r\n You are responsible for all statements made and acts or omissions that occur while your password is being used. You may not use the Service for any unlawful purpose. Aggregate Intelligence, Inc. may refuse to grant you a user name that impersonates someone else, is protected by trademark or other proprietary right law, or is vulgar or otherwise offensive, as determined by Aggregate Intelligence, Inc.\r\n Aggregate Intelligence, Inc. may discontinue or change the Service, certain Licensed Information, or certain content within the Service or its availability to you, at any time, and you may always terminate your subscription at any time. This Agreement is personal to you, and you may not assign your rights or obligations to anyone. If any provision in this Agreement is invalid or unenforceable under applicable law, the remaining provisions will continue in full force and effect. This Agreement, your rights and obligations, and all actions contemplated by this Agreement shall be governed by the laws of the State of Michigan USA, as if the Agreement was a contract wholly entered into and wholly performed within the State of Michigan. This Agreement will not be governed by the United Nations Convention on Contracts for the International Sale of Goods.\r\n \r\n\r\n \r\n\r\n\r\n \r\n \r\n Privacy of information\r\n \r\n \r\n \r\n \r\n \r\n Effective and Last Updated: April 1, 2024\r\n \r\n This website is owned and operated by Aggregate Intelligence, Inc. (the producer of the StorTrack services) referred hereto as ‘StorTrack’. We are committed to protecting the privacy of our visitors while they interact with the content, products and services on this site (the “Site”). This Privacy Policy applies to the Site only. It does not apply to other websites to which we may link. Because we gather certain types of information about our users, we want you to understand what information we collect about you, how we collect it, and how that information is used. You agree that your use of the Site signifies your assent to this Privacy Policy. If you do not agree with this Privacy Policy, please do not use the Site.\r\n \r\n \r\n 1) Information Collected \r\n We collect two types of information from you: i) information that you voluntarily provide to us (e.g. through a voluntary registration process, sign-ups or emails); and ii) information that is derived through automated tracking mechanisms.\r\n \r\n • Voluntary Information for Services and Features \r\n We collect personally identifiable information when you choose to use certain other features of the Site, including: i) making purchases, ii) consenting to receive email, and others. When you choose to use these additional features, we require you to provide your “Contact Information” in addition to other personal information that may be required to complete a transaction such as your phone number, billing and shipping addresses and credit card information.\r\n • Cookies \r\n Our site uses “cookies” and other tracking technologies. Cookies enable us to serve secure pages to our users without asking them to sign in repeatedly. Most browsers allow you to control cookies, including whether or not to accept them and how to remove them. If a user’s system is idle for a defined time, the cookie will expire, forcing the user to sign in again to continue their session. This prevents unauthorized access to the user’s information while they are away from their computer.\r\n \r\n 2) How We Use Your Information
\r\n
\r\n We only use your personal information for the original purposes it was given. Your personal information will not be sold or otherwise transferred to unaffiliated third parties without your approval at the time of collection.\r\n We will not disclose, use, give or sell any personal information to third parties for any purposes other than to our suppliers and other third parties who need to know in order to deliver services on behalf of the Site unless required to do so by law. Further, we reserve the right to contact you regarding matters relevant to the underlying service provided and/or the information collected.\r\n We may permit certain trusted third parties to track usage, analyze data such as the source address that a page request is coming from, your IP address or domain name, the date and time of the page request, the referring Web site (if any) and other parameters in the URL. This is collected in order to better understand our Web site usage, and enhance the performance of services to maintain and operate the Site and certain features on the Site. We may use third parties to host the Site; operate various features available on the Site; send emails; analyze data; provide search results and links and assist in fulfilling your orders.\r\n We may transfer personally identifiable information as an asset in connection with a proposed or actual merger or sale (including any transfers made as part of an insolvency or bankruptcy proceeding) involving all or part of our business or as part of a corporate reorganization, stock sale or other change in control.\r\n We may disclose Contact Information in special cases where we have reason to believe that disclosing this information is necessary to identify, contact or bring legal action against someone who may be violating our terms and conditions of use or may be causing injury or interference with our rights, property, our customers or anyone who could be harmed by such activities.\r\n You will receive notice when your personally identifiable information might be provided to any third party for any reason other than as set forth in this Privacy Policy, and you will have an opportunity to request that we not share such information.\r\n We use non-identifying and aggregate information to better design our website and for business and administrative purposes. We may also use or share with third parties for any purpose aggregated data that contains no personally identifiable information.\r\n \r\n \r\n 3) How We Protect Your Information \r\n \r\n We are committed to protecting the information we receive from you. We take appropriate security measures to protect your information against unauthorized access to or unauthorized alteration, disclosure or destruction of data. To prevent unauthorized access, maintain data accuracy, and ensure the correct use of information, we maintain appropriate physical, electronic, and managerial procedures to safeguard and secure the information and data stored on our system. While no computer system is completely secure, we believe the measures we have implemented reduce the likelihood of security problems to a level appropriate to the type of data involved.\r\n \r\n \r\n 4) Email Choice/Opt-out \r\n \r\n If Any user who receives an email from the Site and wishes to prevent such communications in the future, can do so by following the instructions in the emails. In addition, you may send an email to support@stortrack.com. We will make commercially reasonable efforts to implement your opt-out requests promptly.\r\n \r\n \r\n 5) Disclaimer to Security \r\n \r\n By consenting to the Terms of Use of the Site and hence the Privacy Policy, you consent that no data transmission over the Internet is completely secure. We cannot guarantee or warrant the security of any information you provide to us and you transmit such information to us at your own risk.\r\n \r\n \r\n 6) Notification of Changes \r\n We reserve the right to change this Privacy Policy from time to time at our sole discretion. If at some point in the future, there is a change to our Privacy Policy, unless we obtain your express consent, such change will only apply to information collected after the revised Privacy Policy took effect. Your continued use of the Site indicates your assent to the Privacy Policy as posted.\r\n \r\n \r\n 7) CONTACT INFORMATION:\r\n\r\n If you have any questions or concerns regarding this Privacy Policy please contact:
\r\n Aggregate Intelligence, Inc.
\r\n 26400 Lahser Rd. Suite 210
\r\n Southfield, MI 48033
\r\n support@aggregateintelligence.com \r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default Footer;","import React, { Component, Fragment } from 'react';\r\nimport './Header.css';\r\nimport phone from './../../Assets/Images/phone_icon.png';\r\nimport uscountry from './../../Assets/Images/LinkUSLogo.png';\r\nimport ukcountry from './../../Assets/Images/uk-country.png';\r\nimport auscountry from './../../Assets/Images/aus.png';\r\nimport nzcountry from './../../Assets/Images/nz-flag.png';\r\nimport login from './../../Assets/Images/login-in.png';\r\nimport logout from './../../Assets/Images/signout.png';\r\nimport stlogo from './../../Assets/Images/st-logo.png';\r\nimport triangle from './../../Assets/Images/flat-triangle.svg';\r\nimport { HashLink as Link } from 'react-router-hash-link';\r\nimport { AvForm, AvField } from 'availity-reactstrap-validation';\r\n\r\nimport {\r\n Collapse,\r\n Navbar,\r\n NavbarToggler,\r\n Nav,\r\n NavItem,\r\n Dropdown,\r\n Button,\r\n DropdownToggle,\r\n DropdownMenu,\r\n DropdownItem,\r\n Modal, ModalHeader,\r\n} from 'reactstrap';\r\nimport { withRouter } from 'react-router-dom';\r\n\r\nimport { CONFIG } from '../../utils/config';\r\nimport axios from 'axios';\r\nclass Header extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.toggle = this.toggle.bind(this);\r\n this.toggle1 = this.toggle1.bind(this);\r\n this.togglealert = this.togglealert.bind(this);\r\n\r\n this.onMouseEnter = this.onMouseEnter.bind(this);\r\n this.onMouseLeave = this.onMouseLeave.bind(this);\r\n this.onMouseEnter2 = this.onMouseEnter2.bind(this);\r\n this.onMouseLeave2 = this.onMouseLeave2.bind(this);\r\n this.onMouseEnter3 = this.onMouseEnter3.bind(this);\r\n this.onMouseLeave3 = this.onMouseLeave3.bind(this);\r\n this.state = {\r\n collapse: false, collapsesignin: false, collapseforgetpwd: false, collapse1: false, isOpen: false, isScrolling: false, dropdownOpen: false,\r\n dropdownOpen2: false, dropdownOpen3: false, modal: false, sighinerror: '', curSymb: ''\r\n };\r\n }\r\n togglesignin() {\r\n this.setState(state => ({ collapsesignin: !state.collapsesignin }));\r\n this.myFormRef && this.myFormRef.reset();\r\n const sighinerror = '';\r\n this.setState({ sighinerror });\r\n\r\n\r\n }\r\n toggleforgetpwd() {\r\n this.setState(state => ({ collapseforgetpwd: !state.collapseforgetpwd }));\r\n this.setState(state => ({ collapsesignin: !state.collapsesignin }));\r\n this.form && this.form.reset();\r\n const sighinsucess = '';\r\n this.setState({ sighinsucess });\r\n\r\n }\r\n toggleforgetcancel() {\r\n this.setState(state => ({ collapseforgetpwd: !state.collapseforgetpwd }));\r\n }\r\n toggle() {\r\n this.setState(state => ({ collapse: !state.collapse }));\r\n }\r\n toggle1() {\r\n this.setState(state => ({ collapse1: !state.collapse1 }));\r\n }\r\n onMouseEnter() {\r\n this.setState({ dropdownOpen: true });\r\n }\r\n onMouseLeave() {\r\n this.setState({ dropdownOpen: false });\r\n }\r\n onMouseEnter2() {\r\n this.setState({ dropdownOpen2: true });\r\n }\r\n onMouseLeave2() {\r\n this.setState({ dropdownOpen2: false });\r\n }\r\n onMouseLeave3() {\r\n this.setState({ dropdownOpen3: false });\r\n }\r\n onMouseEnter3() {\r\n this.setState({ dropdownOpen3: true });\r\n }\r\n togglealert() {\r\n this.setState(prevState => ({\r\n modal: !prevState.modal\r\n }));\r\n }\r\n componentDidMount() {\r\n window.scrollTo(0, 0);\r\n this.setState({\r\n curSymb: CONFIG.Currency_Symbol\r\n })\r\n }\r\n handleSubmit(event, errors, values) {\r\n this.setState({ sighinerror: '' });\r\n if (errors.length > 0) {\r\n\r\n console.log(errors);\r\n }\r\n else {\r\n this.setState({ isLoading: true });\r\n axios.post(CONFIG.API_URL + 'account/securelogin', values)\r\n\r\n .then(res => {\r\n\r\n if (res.status === 200) {\r\n const getTokvalues = res.data;\r\n this.myFormRef && this.myFormRef.reset();\r\n this.setState({ getTokvalues });\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + getTokvalues.token;\r\n localStorage.setItem('accessKey', getTokvalues.token);\r\n localStorage.setItem('getNames', getTokvalues.firstName);\r\n localStorage.setItem('isPaid', getTokvalues.isPaid);\r\n localStorage.setItem('tempNoStoreCount', getTokvalues.tempNoOfStores);\r\n localStorage.setItem('instructionMsg', getTokvalues.instructionMsg);\r\n localStorage.setItem('userType', getTokvalues.userType);\r\n localStorage.setItem('userStatus', getTokvalues.status);\r\n localStorage.setItem('curSymb', CONFIG.Currency_Symbol);\r\n localStorage.setItem('userManual', getTokvalues.isManual);\r\n localStorage.setItem('userCdate', getTokvalues.createdDate);\r\n localStorage.setItem('displayMessage', getTokvalues.displayMessage);\r\n\r\n if (getTokvalues.isPaid === 0) {\r\n const { from } = this.props.location.state || { from: { pathname: \"/my-account/\" } };\r\n this.props.history.push(from);\r\n }\r\n else {\r\n const { from } = this.props.location.state || { from: { pathname: \"/my-market/\" } };\r\n this.props.history.push(from);\r\n }\r\n\r\n }\r\n\r\n })\r\n .catch(err => {\r\n this.setState({ isLoading: false });\r\n if (err.response.data.StatusCode === 400) {\r\n this.myFormRef && this.myFormRef.reset();\r\n const sighinerror = err.response.data.Message;\r\n this.setState({ sighinerror });\r\n }\r\n\r\n });\r\n\r\n }\r\n this.setState({ errors, values });\r\n\r\n }\r\n handleforgetSubmit(event, errors, values) {\r\n // const sighinsucess ='';\r\n if (errors.length > 0) {\r\n\r\n console.log(errors);\r\n }\r\n else {\r\n this.setState({ isLoading: true });\r\n const data = {\r\n Username: values.Username,\r\n \"RegionId\": CONFIG.RegionId\r\n }\r\n axios.post(CONFIG.API_URL + 'account/ForgotPassword', data)\r\n .then(res => {\r\n\r\n const issuccss = res.data;\r\n this.setState({ isLoading: false });\r\n if (issuccss === \"success\") {\r\n this.setState({ sighinsucess: [\"The password reset link has been sent to your email.\"] });\r\n this.togglealert();\r\n this.form && this.form.reset();\r\n }\r\n\r\n })\r\n .catch((err) => {\r\n this.setState({ isLoading: false });\r\n this.form && this.form.reset();\r\n const sighinsucess = err.response.data;\r\n this.setState({ sighinsucess });\r\n this.togglealert();\r\n });\r\n\r\n }\r\n }\r\n\r\n valueChanged() {\r\n this.setState({ sighinerror: '' });\r\n }\r\n\r\n resetAllValues() {\r\n\r\n this.myFormRef && this.myFormRef.reset();\r\n this.setState({ sighinerror: '' });\r\n\r\n }\r\n // var myWindow;\r\n openWin() {\r\n window.open(\"http://192.96.215.12:8080/webchat/start.jsp?workgroup=stortrack@workgroup.192.96.215.12&location=https://www.stortrack.co.uk/Openchat.aspx\", \"\", \"width=400, height=300\");\r\n }\r\n\r\n render() {\r\n const { sighinerror, sighinsucess } = this.state;\r\n return (\r\n \r\n
\r\n
\r\n
\r\n \r\n {CONFIG.RegionId == 1 || CONFIG.RegionId == 3 ?\r\n \r\n \"Phone\"\r\n Sales/Support: {CONFIG.Sales_Support}\r\n \r\n : ''}\r\n\r\n {CONFIG.RegionId == 2 || CONFIG.RegionId == 4 ?\r\n \r\n \r\n Sales/Support: info@stortrack.com\r\n \r\n : ''}\r\n \r\n\r\n {/* \"Chat\"/ */}\r\n\r\n
\r\n\r\n
    \r\n {CONFIG.RegionId === 1 ?\r\n \r\n
  • \"AUS
  • \r\n
  • \"Uk
  • \r\n
  • \"NZ
  • \r\n
    :\r\n CONFIG.RegionId === 2 ?\r\n \r\n
  • \"USA
  • \r\n
  • \"NZ
  • \r\n
    :\r\n CONFIG.RegionId === 3 ?\r\n \r\n
  • \"USA
  • \r\n
    :\r\n CONFIG.RegionId === 4 ?\r\n \r\n
  • \"USA
  • \r\n
  • \"AUS
  • \r\n
    : ''\r\n }\r\n\r\n
  • \r\n
  • \r\n
  • \r\n
  • \r\n Sign In \"Login\"\"Logout\"\r\n
  • \r\n
\r\n
\r\n {/* sign-in form */}\r\n \r\n
\r\n Sign in\r\n
\r\n
\r\n (this.myFormRef = c)}>\r\n \r\n \r\n {sighinerror}\r\n
\r\n Reset\r\n \r\n Forgot Password?\r\n
\r\n\r\n
\r\n
\r\n
\r\n {/* forgot password form */}\r\n \r\n\r\n
\r\n Forgot Password\r\n
\r\n

Provide your email address and we will send
you a link to update your password.

\r\n
\r\n (this.form = cl)} >\r\n \r\n
\r\n Cancel\r\n \r\n
\r\n
\r\n \r\n {sighinsucess}\r\n {/* \r\n \r\n */}\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \"StorTrack\"\r\n \r\n \r\n {CONFIG.RegionId == 2 ?\r\n : CONFIG.RegionId == 4 ?\r\n :\r\n \r\n }\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n );\r\n }\r\n}\r\nexport default withRouter(Header);","import React, { Component } from 'react';\r\nimport { Header, Footer } from './../../Core/index';\r\n\r\nclass DefaultLayout extends Component {\r\n render() {\r\n return (\r\n
\r\n
\r\n {this.props.children}\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default DefaultLayout;","import React from \"react\";\r\nimport { Button, Modal, ModalHeader, ModalBody, ModalFooter } from \"reactstrap\";\r\nimport { CONFIG } from \"./../utils/config\";\r\nimport Alert_Icon from \"./favicon_new.ico\";\r\n\r\nexport class IdleTimeOutModal extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n count: 60,\r\n };\r\n this.showNotification = this.showNotification.bind(this);\r\n }\r\n\r\n showNotification() {\r\n if (this.props.showModal == true) {\r\n var notification;\r\n var options = {\r\n body: \"You will be logged out of the system due to inactivity. Do you want to stay logged in?\",\r\n icon: CONFIG.OPTZ_URL + \"logo_st.png?auto=compress&cs=tinysrgb&dpr=1&w=500\",\r\n dir: \"ltr\",\r\n };\r\n notification = new Notification(\"Inactivity Warning\", options);\r\n }\r\n }\r\n closeNotification() {\r\n var notification;\r\n notification.close();\r\n }\r\n\r\n componentDidMount() {\r\n document.getElementById(\"favicon\").href = Alert_Icon;\r\n this.myInterval = setInterval(() => {\r\n const { count } = this.state;\r\n if (count > 0) {\r\n this.setState(({ count }) => ({ count: count - 1 }));\r\n }\r\n if(count == 60){\r\n this.showNotification();\r\n }\r\n if (count === 0) {\r\n clearInterval(this.myInterval);\r\n this.props.handleLogout();\r\n }\r\n }, 1000);\r\n }\r\n componentWillUnmount() {\r\n clearInterval(this.myInterval);\r\n }\r\n render() {\r\n const { showModal, handleClose, handleLogout, isFrom } = this.props;\r\n return (\r\n
\r\n \r\n \r\n {isFrom == 1 ? \"Logout Warning\" : \"Inactivity Warning\"}{\" \"}\r\n \r\n \r\n {isFrom == 1\r\n ? \"You will be logged out of the system in \" +\r\n this.state.count +\r\n \" Seconds. Do you want to stay logged in?\"\r\n : \"You will be logged out of the system due to inactivity in \" +\r\n this.state.count +\r\n \" Seconds. Do you want to stay logged in?\"}\r\n \r\n \r\n \r\n Log Out\r\n \r\n \r\n Stay on Page\r\n \r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\n","import React from 'react';\r\nimport { Link, Redirect } from \"react-router-dom\";\r\nimport PropTypes from 'prop-types';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport Divider from '@material-ui/core/Divider';\r\nimport Drawer from '@material-ui/core/Drawer';\r\nimport Hidden from '@material-ui/core/Hidden';\r\nimport List from '@material-ui/core/List';\r\nimport ListItem from '@material-ui/core/ListItem';\r\nimport ListItemIcon from '@material-ui/core/ListItemIcon';\r\nimport ListItemText from '@material-ui/core/ListItemText';\r\nimport Collapse from '@material-ui/core/Collapse';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport MenuIcon from '@material-ui/icons/Menu';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport StarBorder from '@material-ui/icons/StarBorder';\r\nimport Toolbar from '@material-ui/core/Toolbar';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faUser, faMinusSquare, faPlusSquare, faCaretSquareLeft, faBell, faEnvelopeOpenText, faFileExcel } from '@fortawesome/free-solid-svg-icons';\r\nimport { faColumns } from '@fortawesome/free-solid-svg-icons';\r\nimport { faArrowsAlt } from '@fortawesome/free-solid-svg-icons';\r\nimport { faPoll } from '@fortawesome/free-solid-svg-icons';\r\nimport { faPlus } from '@fortawesome/free-solid-svg-icons';\r\nimport { faMinus } from '@fortawesome/free-solid-svg-icons';\r\nimport { faSignOutAlt } from '@fortawesome/free-solid-svg-icons';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Logo from './../../Assets/Images/logo.jpg';\r\nimport { AddMarketcmpopup, MissingCompetitor, ActiveReports, CompReports, AddMarketcmpopupGmap } from './../../Views';\r\nimport './MarketLayout.css';\r\nimport axios from 'axios';\r\nimport { CONFIG } from '../../utils/config';\r\nimport { COMMON } from '../../utils/common';\r\nimport { IdleTimeOutModal } from '../../Modal/IdleModal';\r\nconst drawerWidth = 290;\r\n\r\nconst styles = theme => ({\r\n root: {\r\n display: 'flex',\r\n },\r\n drawer: {\r\n [theme.breakpoints.up('sm')]: {\r\n width: drawerWidth,\r\n flexShrink: 0,\r\n },\r\n zIndex: 99,\r\n },\r\n appBar: {\r\n marginLeft: drawerWidth,\r\n [theme.breakpoints.up('sm')]: {\r\n width: `calc(100% - ${drawerWidth}px)`,\r\n },\r\n },\r\n menuButton: {\r\n marginRight: 20,\r\n [theme.breakpoints.up('sm')]: {\r\n display: 'none',\r\n },\r\n },\r\n toolbar: theme.mixins.toolbar,\r\n drawerPaper: {\r\n width: drawerWidth,\r\n },\r\n content: {\r\n flexGrow: 1,\r\n padding: theme.spacing * 3,\r\n },\r\n marketlayout: {\r\n background: '#F9F9FA',\r\n padding: '5px 17px',\r\n minHeight: 'calc(100vh - 0px)',\r\n },\r\n removepadding: {\r\n padding: '0px',\r\n },\r\n myroot: {\r\n width: '100%',\r\n maxWidth: 290,\r\n backgroundColor: theme.palette.background.paper,\r\n },\r\n nested: {\r\n paddingLeft: theme.spacing * 4,\r\n paddingTop: '10px',\r\n paddingBottom: '10px',\r\n },\r\n card: {\r\n boxShadow: 'none',\r\n },\r\n});\r\n\r\nclass MarketLayout extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n mobileOpen: false,\r\n leftMenuData: [],\r\n dashNavData: [],\r\n one: true,\r\n two: false,\r\n three: true,\r\n storeId: '',\r\n showModal: false,\r\n countlen: null,\r\n localUserStoreId: null,\r\n countryCode: '',\r\n userName: '',\r\n // activeClassName: null,\r\n localActiveClassSearchName: localStorage.getItem('locSearchName'),\r\n filterMarketData: [],\r\n // logginStatus: true\r\n // isNavigationBlocked: false,\r\n userTypeCheck: parseInt(localStorage.getItem('MVPUserType')),\r\n isMVPUser: null,\r\n reportCompActive:{},\r\n // isModal: false\r\n };\r\n // this.events = [\r\n // \"load\",\r\n // \"mousemove\",\r\n // \"mousedown\",\r\n // \"click\",\r\n // \"scroll\",\r\n // \"keypress\"\r\n // ];\r\n this.storeIdReq = this.storeIdReq.bind(this);\r\n this.handleClick = this.handleClick.bind(this);\r\n this.divRef = React.createRef();\r\n this.child = React.createRef();\r\n this.handleClickOpen = this.handleClickOpen.bind(this);\r\n this.refreshHandler1 = this.refreshHandler1.bind(this);\r\n this.activeClass = this.activeClass.bind(this);\r\n this.refreshMenu = this.refreshMenu.bind(this);\r\n // this.warn = this.warn.bind(this);\r\n // this.logout = this.logout.bind(this);\r\n // this.resetTimeout = this.resetTimeout.bind(this);\r\n\r\n // for (var i in this.events) {\r\n // window.addEventListener(this.events[i], this.resetTimeout);\r\n // }\r\n\r\n // this.setTimeout();\r\n }\r\n //below the code for session timeout\r\n // clearTimeout() {\r\n // if (this.warnTimeout) clearTimeout(this.warnTimeout);\r\n\r\n // if (this.logoutTimeout) clearTimeout(this.logoutTimeout);\r\n // }\r\n\r\n // setTimeout() {\r\n // this.warnTimeout = setTimeout(this.warn, 8 * 1000);\r\n\r\n // this.logoutTimeout = setTimeout(this.logout, 10 * 1000);\r\n // }\r\n\r\n // resetTimeout() {\r\n // this.clearTimeout();\r\n // this.setTimeout();\r\n // }\r\n\r\n // warn() {\r\n // alert(\"You will be logged out automatically in 1 minute.\");\r\n // }\r\n\r\n // logout() {\r\n // // localStorage.removeItem('accessKey');\r\n // // const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n // // this.props.history.push(from);\r\n // // Send a logout request to the API\r\n // console.log(\"Sending a logout request to the API...\");\r\n // this.setState({ logginStatus: false });\r\n // return \r\n // // const { from } = this.props.children.props.location.pathname || { from: { pathname: \"/\" } };\r\n // // this.props.children.props.location.pathname.push(from);\r\n\r\n // // // this.destroy(); // Cleanup\r\n // }\r\n\r\n // destroy() {\r\n // this.clearTimeout();\r\n\r\n // for (var i in this.events) {\r\n // window.removeEventListener(this.events[i], this.resetTimeout);\r\n // }\r\n // }\r\n\r\n onShowModal = () => {\r\n this.setState({ showModal: true })\r\n }\r\n\r\n activeClass() {\r\n this.setState({\r\n // activeClassName: id,\r\n localActiveClassSearchName: localStorage.getItem('locSearchName')\r\n });\r\n }\r\n\r\n handleClick = (index) => {\r\n if (index === 'one') {\r\n this.setState(state => ({ one: !state.one }));\r\n }\r\n if (index === 'two') {\r\n this.setState(state => ({ two: !state.two }));\r\n }\r\n if (index === 'three') {\r\n this.setState(state => ({ three: !state.three }));\r\n }\r\n };\r\n\r\n handleClickOpen(e, id) {\r\n this.child.current.ModalClickOpen(id);\r\n }\r\n\r\n handleDrawerToggle = () => {\r\n this.setState(state => ({ mobileOpen: !state.mobileOpen }));\r\n };\r\n\r\n\r\n async storeIdReq(id) {\r\n // localStorage.removeItem('StId');\r\n // localStorage.setItem('StId', id);\r\n // this.state.storeId = id;\r\n this.state.storeId = id ? id : this.state.storeId;\r\n const data = {\r\n UserStoreId: this.state.storeId,\r\n localUserStoreId: this.state.storeId,\r\n RegionId: CONFIG.RegionId\r\n }\r\n let token = localStorage.getItem('accessKey');\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n }\r\n await axios.post(CONFIG.API_URL + 'account/dashboardnavigation', data)\r\n .then((res) => {\r\n const reportCompActive = res.data.report;\r\n const dashNavData = res.data.data;\r\n const cCode = res.data.data.length > 0 ? res.data.data[0].countryCode : \"\";\r\n this.setState({\r\n dashNavData,\r\n localUserStoreId: this.state.storeId,\r\n countryCode: cCode, reportCompActive\r\n });\r\n this.activeClass();\r\n })\r\n .catch((err) => {\r\n if (err.response.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else {\r\n alert(err.response.data);\r\n }\r\n }); \r\n }\r\n async componentDidMount() {\r\n let token = localStorage.getItem('accessKey');\r\n // let userName = localStorage.getItem('getNames');\r\n let isPaid = localStorage.getItem('isPaid');\r\n let tempNoStoreCount = localStorage.getItem('tempNoStoreCount');\r\n let localUserStoreId = localStorage.getItem('StId');\r\n let refreshMenu = localStorage.getItem('refreshMenu');\r\n let userName = localStorage.getItem('getNames');\r\n \r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n }\r\n // axios.post(CONFIG.API_URL + 'account/marketnavigation' + CONFIG.Region_Id)\r\n const response = await axios.post(CONFIG.API_URL + 'account/marketnavigation/' + CONFIG.RegionId)\r\n if(response.status === 200){\r\n\r\n const leftMenuData = response.data\r\n var filteredData = leftMenuData.filter(resultSet => resultSet.isCoverage === 1 );\r\n let countlen = leftMenuData.length;\r\n // let localActiveClassSearchName = localStorage.getItem('locSearchName');\r\n this.setState({\r\n leftMenuData, refreshMenu, userName, isPaid, tempNoStoreCount, countlen, localUserStoreId, filterMarketData: filteredData//, localActiveClassSearchName\r\n });\r\n\r\n }\r\n if (localUserStoreId != null) {\r\n this.storeIdReq(localUserStoreId);\r\n }\r\n this.isMvpUser();\r\n }\r\n \r\n \r\n isMvpUser(){\r\n let userVerify = parseInt(this.state.userTypeCheck);\r\n let mvpTypes = COMMON.MVPUSER;\r\n let validate = mvpTypes.filter(data => data === userVerify ? true : false)\r\n console.log(validate.length);\r\n if(validate.length === 0){\r\n this.setState({isMVPUser: false});\r\n localStorage.setItem('isMVP_User', 'false');\r\n }else{\r\n this.setState({isMVPUser: true});\r\n localStorage.setItem('isMVP_User', 'true');\r\n }\r\n }\r\n\r\n // to update storeid and call the storeIdReq method\r\n componentWillReceiveProps(nextProps){\r\n let localUserStoreId = localStorage.getItem('StId'); \r\n if(nextProps.children.props.match.params.storeid && nextProps.children.props.match.path === '/market-dashboard/:storeid/' && nextProps.children.props.match.params.storeid !== localUserStoreId ) {\r\n this.storeIdReq(parseInt(nextProps.children.props.match.params.storeid));\r\n }\r\n }\r\n\r\n signOut() {\r\n localStorage.removeItem('accessKey');\r\n localStorage.removeItem('tempNoStoreCount');\r\n localStorage.removeItem('isPaid');\r\n localStorage.removeItem('getNames');\r\n localStorage.removeItem('instructionMsg');\r\n localStorage.removeItem('StId');\r\n localStorage.removeItem('userType');\r\n localStorage.removeItem('userStatus');\r\n localStorage.removeItem('locSearchName');\r\n localStorage.removeItem('userManual');\r\n localStorage.removeItem('refreshMenu');\r\n localStorage.removeItem('IsUpdatePaid');\r\n localStorage.removeItem('displayMessage');\r\n // this.state.isNavigationBlocked = true;\r\n // this.props.history.replaceState({ pathname: `/logins/null` })\r\n\r\n // this.props.children.props.history.push({ pathname: `/` });\r\n // window.top.location.href = CONFIG.STK_URL+\"index.html\";\r\n window.top.location.href =\"/page_expired\";\r\n \r\n }\r\n addClass() {\r\n this.divRef.current.classList.add('main-div')\r\n }\r\n removeClass() {\r\n this.divRef.current.classList.remove('main-div')\r\n }\r\n refreshHandler1() {\r\n this.componentDidMount();\r\n }\r\n refreshMenu() {\r\n localStorage.setItem('refreshMenu', \"show-menu\");\r\n this.componentDidMount();\r\n }\r\n\r\n handleClose = () => {\r\n this.setState({isModal: false})\r\n }\r\n handleLogout = () => {\r\n localStorage.clear();\r\n this.setState({isModal: false});\r\n window.top.location.href =\"/page_expired\";\r\n //window.top.location.href = CONFIG.STK_SIGNURL;\r\n }\r\n\r\n // IdealModel = () => {\r\n // this.setState({isModal : !this.state.isModal})\r\n // }\r\n\r\n render() {\r\n const { leftMenuData, dashNavData, userName, refreshMenu, isPaid, StrId, tempNoStoreCount, countlen, localUserStoreId, localActiveClassSearchName, filterMarketData, userTypeCheck, isMVPUser, reportCompActive } = this.state;\r\n\r\n const { classes, theme } = this.props;\r\n const drawer = (\r\n
\r\n
\r\n \r\n {localStorage.getItem('isMVP_User') === 'true' ?\r\n \r\n \"stortrack\"\r\n :\r\n this.refreshMenu()}>\r\n \"stortrack\"\r\n }\r\n \r\n \r\n \r\n
\r\n
Welcome
\r\n {userName ? userName : 'User'}\r\n
\r\n
\r\n
\r\n \r\n
\r\n {/* {isMVPUser === true ?\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n : ''} */}\r\n {isMVPUser === false ?\r\n \r\n this.refreshMenu()}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n : ''}\r\n\r\n {this.props.children.props.location.pathname == \"/my-account/\" || this.props.children.props.location.pathname == \"/my-market/\" || this.props.children.props.location.pathname == \"/subscription-details/\" || this.props.children.props.location.pathname == \"/billing-history\" || this.props.children.props.location.pathname == \"/UnauthorizedAccess\" && isMVPUser === false ?\r\n
\r\n\r\n {isPaid === '1' || localStorage.getItem('IsUpdatePaid') == \"1\" ?\r\n \r\n {/* */}\r\n {/* \r\n \r\n \r\n \r\n \r\n */}\r\n \r\n \r\n this.handleClick('one')}\r\n className=\"set-padding\">\r\n \r\n \r\n \r\n \r\n {this.state.one ? : }\r\n\r\n \r\n \r\n\r\n \r\n \r\n {filterMarketData.map((leftNaV) => {\r\n return (\r\n { this.addClass() }} >\r\n {/* */}\r\n this.storeIdReq(leftNaV.userStoreID)} >\r\n\r\n \r\n \r\n \r\n );\r\n })}\r\n \r\n \r\n \r\n {tempNoStoreCount !== countlen && tempNoStoreCount > countlen ?\r\n \r\n this.handleClickOpen(e, 0)} className=\"set-padding\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n : ''}\r\n \r\n : ''}\r\n
\r\n :\r\n
\r\n {isPaid === '1' ?\r\n \r\n {isMVPUser === false ?\r\n : ''}\r\n {isMVPUser === false ?\r\n \r\n { this.removeClass() }}>\r\n \r\n \r\n \r\n \r\n \r\n : ''}\r\n \r\n this.handleClick('two')}\r\n className=\"market-icon set-padding-left\">\r\n \r\n \r\n \r\n \r\n {this.state.two ? : }\r\n \r\n \r\n \r\n \r\n {dashNavData && dashNavData.map((dashNav) => {\r\n return (\r\n \r\n \r\n\r\n \r\n \r\n \r\n );\r\n })}\r\n \r\n \r\n \r\n : ''}\r\n \r\n this.handleClick('three')}\r\n className=\"market-icon set-padding-left\">\r\n \r\n \r\n \r\n \r\n {this.state.three ? : }\r\n \r\n \r\n \r\n \r\n \r\n {/* \r\n \r\n */}\r\n \r\n \r\n \r\n \r\n \r\n {/* \r\n \r\n */}\r\n \r\n \r\n \r\n \r\n \r\n {/* \r\n \r\n */}\r\n \r\n \r\n \r\n {this.state.countryCode === \"US\" || this.state.countryCode === \"CA\" || CONFIG.RegionId === 3 ?\r\n \r\n \r\n {/* \r\n \r\n */}\r\n {/**/}\r\n Marketing Scorecard}\r\n />\r\n \r\n \r\n : ''}\r\n \r\n \r\n \r\n {/* \r\n \r\n */}\r\n \r\n \r\n \r\n \r\n \r\n {/* \r\n \r\n */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n }\r\n
\r\n \r\n {this.props.children.props.location.pathname == \"/my-account/\" || this.props.children.props.location.pathname == \"/my-market/\" || this.props.children.props.location.pathname == \"/subscription-details/\" || this.props.children.props.location.pathname == \"/billing-history\" || this.props.children.props.location.pathname == \"/UnauthorizedAccess\" && isMVPUser === false ? '' :\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* {reportCompActive.competitorStoreID != null && reportCompActive.competitorStoreID != 0 ? */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* : ''} */}\r\n \r\n
\r\n }\r\n \r\n {isPaid === '1' || localStorage.getItem('IsUpdatePaid') == \"1\" ?\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n :\"\"}\r\n {isPaid === '1' || localStorage.getItem('IsUpdatePaid') == \"1\" ?:\"\"}\r\n {isMVPUser === false ?\r\n \r\n {/* */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n : ''}\r\n \r\n
\r\n );\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n {this.props.children}\r\n
\r\n {CONFIG.IsMapbox ?\r\n \r\n :\r\n }\r\n { this.state.isModal ? : ''}\r\n
\r\n );\r\n }\r\n}\r\n\r\nMarketLayout.propTypes = {\r\n classes: PropTypes.object.isRequired,\r\n // Injected by the documentation to work in an iframe.\r\n // You won't need it on your project.\r\n container: PropTypes.object,\r\n theme: PropTypes.object.isRequired,\r\n};\r\nexport default withStyles(styles, { withTheme: true })(MarketLayout);","import React, { Component } from 'react';\r\nimport { Header, Footer } from './../../Core/index';\r\nclass LoginLayout extends Component {\r\n render() {\r\n return (\r\n
\r\n \r\n {this.props.children}\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default LoginLayout;","import React, { Component } from 'react';\r\n\r\nclass PdfLayout extends Component {\r\n render() {\r\n return (\r\n
\r\n {this.props.children}\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default PdfLayout;","import React from 'react';\r\nimport { Route, Redirect } from 'react-router-dom';\r\nimport { DefaultLayout, MarketLayout, LoginLayout,PdfLayout } from './../Layouts';\r\nimport { COMMON } from './../utils/common';\r\n\r\nconst authGuard = {\r\n authenticate() {\r\n let token = localStorage.getItem('accessKey');\r\n if (token) {\r\n return true;\r\n } else {\r\n return false\r\n }\r\n },\r\n\r\n};\r\n// Below the code for verify it is a MVP user\r\nconst userType= {\r\n verifyUser() {\r\n let userVerify = parseInt(localStorage.getItem('MVPUserType'));\r\n let mvpTypes = COMMON.MVPUSER;\r\n let validate = mvpTypes.filter(data => data === userVerify ? true : false)\r\n if(validate.length === 0){\r\n return false;\r\n }else{\r\n return true;\r\n }\r\n // let user = parseInt(localStorage.getItem('MVPUserType'));\r\n // if(user === COMMON.MVPUSER.TYPE1 || user === COMMON.MVPUSER.TYPE2 || user === COMMON.MVPUSER.TYPE3){\r\n // return true;\r\n // } else {\r\n // return false;\r\n // }\r\n }\r\n}\r\n\r\nexport const DefaultLayoutRoute = ({ component: Component, ...rest }) => {\r\n localStorage.setItem('isLayoutFrom', 'DEFAULT_LAYOUT');\r\n return (\r\n (\r\n \r\n \r\n \r\n )} />\r\n )\r\n};\r\n\r\nexport const PdfLayoutRoute = ({ component: Component, ...rest }) => {\r\n localStorage.setItem('isLayoutFrom', 'PDF_LAYOUT');\r\n return (\r\n (\r\n \r\n \r\n \r\n )} />\r\n )\r\n};\r\nexport const MarketLayoutRoute = ({ component: Component, ...rest }) => {\r\n localStorage.setItem('isLayoutFrom', 'ADMIN_LAYOUT');\r\n return (\r\n (\r\n (authGuard.authenticate() && !userType.verifyUser()) || (authGuard.authenticate() && userType.verifyUser() && (rest.path === \"/market-dashboard/:storeid/\" || rest.path === \"/UnauthorizedAccess\" || rest.path === \"/market-dashboard/:storeid/view-details/:searchid/:tab?\" || rest.path === \"/market-level-data/competitor-overview/:userstoreid/\" || rest.path ===\"/market-level-data/pricing-volatility/:userstoreid/\" || rest.path === \"/market-level-data/inventory-analytics/:userstoreid/\" || rest.path === \"/marketing-score/:storeid\" || rest.path === \"/market-level-data/all-units-pricing/:userstoreid/\" || rest.path === \"/market-level-data/alert/:userstoreid/\" )) ?\r\n \r\n \r\n \r\n : userType.verifyUser() && ( rest.path !== \"/market-dashboard/:storeid/\" || rest.path !== \"/market-dashboard/:storeid/view-details/:searchid/:tab?\" || rest.path !== \"/market-level-data/competitor-overview/:userstoreid/\" || rest.path !==\"market-level-data/pricing-volatility/:userstoreid/\" || rest.path !== \"/market-level-data/inventory-analytics/:userstoreid/\" || rest.path !== \"/marketing-score/:storeid\" || rest.path !== \"/market-level-data/all-units-pricing/:userstoreid/\" || rest.path !== \"/market-level-data/alert/:userstoreid/\") ? \r\n \r\n : \r\n )} />\r\n )\r\n};\r\n\r\n// export const MarketLayoutRoute = ({ component: Component, ...rest }) => {\r\n// return (\r\n// (\r\n// authGuard.authenticate() ? (\r\n// \r\n// \r\n// \r\n// ) :\r\n// \r\n// )} />\r\n// )\r\n// };\r\n\r\nexport const LoginLayoutRoute = ({ component: Component, ...rest }) => {\r\n localStorage.setItem('isLayoutFrom', 'LOGIN_LAYOUT');\r\n return (\r\n (\r\n \r\n \r\n \r\n )} />\r\n )\r\n};","import React from 'react';\r\nimport ReactDOM from \"react-dom\";\r\nimport { Row, Col, Dropdown, DropdownToggle, DropdownMenu, DropdownItem, Button, ButtonGroup, ButtonToolbar, TabContent, TabPane, Nav, NavItem, NavLink, Card, CardTitle, CardText } from 'reactstrap';\r\nimport classnames from 'classnames';\r\nimport { Link } from 'react-router-dom';\r\nimport Table from '@material-ui/core/Table';\r\nimport TableBody from '@material-ui/core/TableBody';\r\nimport TableCell from '@material-ui/core/TableCell';\r\nimport TableRow from '@material-ui/core/TableRow';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport Tab from '@material-ui/core/Tab';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faList, faEye } from '@fortawesome/free-solid-svg-icons';\r\nimport { faMapPin } from '@fortawesome/free-solid-svg-icons';\r\nimport { faCheck } from '@fortawesome/free-solid-svg-icons';\r\nimport { faTimes } from '@fortawesome/free-solid-svg-icons';\r\nimport ListItemAvatar from '@material-ui/core/ListItemAvatar';\r\nimport Avatar from '@material-ui/core/Avatar';\r\nimport AvatarImage from './../../Assets/Images/oval1.png';\r\nimport './developmentListing.css';\r\nimport { Gmaps, Marker, InfoWindow } from 'react-gmaps';\r\nimport axios from 'axios';\r\nimport { CONFIG } from '../../utils/config';\r\nconst params = { v: '3.exp', key: 'AIzaSyDaYQZ0es5K-kLgDuZuTqRHKiTDENEMxxQ' };\r\nexport class InfoWindowEx extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.infoWindowRef = React.createRef();\r\n this.onInfoWindowOpen = this.onInfoWindowOpen.bind(this);\r\n if (!this.containerElement) {\r\n this.containerElement = document.createElement(`div`);\r\n }\r\n }\r\n\r\n onInfoWindowOpen() {\r\n ReactDOM.render(\r\n React.Children.only(this.props.children),\r\n this.containerElement\r\n );\r\n this.infoWindowRef.current.infowindow.setContent(this.containerElement);\r\n }\r\n render() {\r\n return (\r\n \r\n );\r\n }\r\n}\r\n\r\n\r\nexport default class developmentListing extends React.Component {\r\n constructor() {\r\n super();\r\n this.toggle = this.toggle.bind(this);\r\n //this.tabsChange = this.toggle.bind(this);\r\n this.state = {\r\n dropdownOpen: false,\r\n showingInfoWindow: false,\r\n listingData: [],\r\n storeData: [],\r\n activeMarker: {},\r\n locationInfoData: [],\r\n activeTab: '2'\r\n };\r\n }\r\n onMapCreated(map) {\r\n map.setOptions({\r\n disableDefaultUI: true\r\n });\r\n }\r\n\r\n tabsChange(tab) {\r\n if (this.state.activeTab !== tab) {\r\n this.setState({\r\n activeTab: tab\r\n });\r\n }\r\n }\r\n\r\n onMarkerClick = (storeId, name, address, foot, open, own, operated, lat, lng, price) => {\r\n this.setState({\r\n storeId: storeId,\r\n activeMarker: name,\r\n storeName: name,\r\n lat: lat,\r\n lng: lng,\r\n address: address,\r\n squareFootage: foot,\r\n opened: open,\r\n ownedBy: own,\r\n operatedBy: operated,\r\n priceChangesPercent: price,\r\n showingInfoWindow: true\r\n });\r\n\r\n };\r\n toggle() {\r\n this.setState(prevState => ({\r\n dropdownOpen: !prevState.dropdownOpen\r\n }));\r\n }\r\n\r\n developListingMap() {\r\n this.setState({\r\n isLoading: true\r\n })\r\n const data = {\r\n \"UserStoreID\": parseInt(this.props.match.params.userstoreid)\r\n }\r\n // const data = {\"UserStoreID\":\"20498\",\"WebRegion\":\"1\"};\r\n let token = localStorage.getItem('accessKey');\r\n if (token) {\r\n axios.defaults.headers.common[\"Authorization\"] = 'Bearer ' + token;\r\n }\r\n axios.post(CONFIG.API_URL + 'dashboard/developmentlisting', data)\r\n .then(res => {\r\n const listingData = res.data.data;\r\n console.log('test comp');\r\n console.log(listingData);\r\n this.setState({ listingData: listingData});\r\n })\r\n .catch((err) => {\r\n this.setState({ isLoading: false });\r\n if (err.response.status === 401) {\r\n localStorage.removeItem('accessKey');\r\n const { from } = this.props.location.state || { from: { pathname: \"/\" } };\r\n this.props.history.push(from);\r\n }\r\n else {\r\n alert(err.response.data);\r\n }\r\n });\r\n }\r\n \r\n componentDidMount() \r\n {\r\n this.developListingMap();\r\n }\r\n \r\n render() {\r\n document.title = 'StorTrack: Self-storage market pricing data';\r\n const { locationInfoData } = this.state;\r\n console.log('propstest');\r\n const { listingData } = this.state;\r\n const infoWindowContent = '' + '
' + this.state.storeName + '

' + this.state.address + '

' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '
'+CONFIG.MeasurementLabel+'' + this.state.squareFootage + '
Opened' + this.state.opened + '
Owned by' + this.state.ownedBy + '
Operated by' + this.state.operatedBy + '
Price Volitality' + this.state.priceChangesPercent + '
';\r\n return (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n

Competitor Overview

\r\n

Analyzing Stores

\r\n \r\n \r\n

\r\n

\r\n

Coverage:

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n

No. of Stores

\r\n
\r\n \r\n \r\n

No. of REIT's

\r\n
\r\n \r\n \r\n

No. of Multi-Ops

\r\n
\r\n \r\n \r\n

No. of Single-Ops

\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n Are there any stores missing?\r\n \r\n \r\n \r\n \r\n \r\n Sort by\r\n \r\n \r\n Foo Action\r\n Bar Action\r\n Quo Action\r\n \r\n \r\n \r\n \r\n {/* List view grid */}\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* {listingData ? storeData.map((map) => */}\r\n this.onMarkerClick(map.storeID, map.storeName, map.storeAddress, map.squareFootage, map.opened, map.ownedBy, map.operatedBy, map.latitude, map.longitude, map.priceChangesPercent)}\r\n />\r\n {/* ) : ''} */}\r\n {/* {this.state.showingInfoWindow && this.state.activeMarker != '' ?\r\n \r\n : ''} */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n\r\n}","import React, { Component } from 'react';\r\nimport { BrowserRouter, Switch, Route } from 'react-router-dom';\r\nimport { MyMarket, MapViews, Home,Login,Authendication, AllUnitPrize,InventoryAvailability,MarketSaturation, MyAccount, SubscriptionDetails,MarketDashboardHeader, Requesttrial, BillingHistory, MissingCompetitor, MarketDashboard, CompOverview, CompOverviewGmap, MarketScore,PricingVolatility, ViewDetails, MarketInventoryAnalysis, ErrorPage, Alert, PdfDownload, AveragePrice, MvpLogin, ActiveReports, CompReports, ActivityReportPdf} from '../Views';\r\nimport { DefaultLayoutRoute, MarketLayoutRoute, LoginLayoutRoute,PdfLayoutRoute } from './RouterLayout';\r\nimport { developmentListing } from '../Views/DevelopmentListing';\r\nimport { CONFIG } from \"../utils/config\";\r\n// import { ActivityReportPdf } from '../Views/PdfDownload/ActivityReportPdf';\r\n\r\n\r\nclass RouteComp extends Component {\r\n render() {\r\n let token = localStorage.getItem('accessKey');\r\n return (\r\n \r\n \r\n {/* Default router - Home Page */}\r\n {/* */}\r\n\r\n {/* Home Page */}\r\n \r\n \r\n \r\n \r\n {/* Session Out Page */}\r\n \r\n \r\n \r\n \r\n {/* My Market Page */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* */}\r\n \r\n \r\n \r\n {/* */}\r\n \r\n \r\n \r\n \r\n {/*Marketing Scoring*/}\r\n \r\n {/* */}\r\n {/* Market dashboard view details */}\r\n {/* */}\r\n \r\n \r\n \r\n \r\n {/* */}\r\n \r\n {/* */}\r\n {/* */}\r\n {/* MVP login */}\r\n \r\n {/* 404 Error */}\r\n { token ? \r\n \r\n :\r\n \r\n }\r\n \r\n \r\n );\r\n }\r\n}\r\nexport default RouteComp;","import React, { Component } from \"react\";\r\nimport \"./App.css\";\r\nimport RouteComp from \"./Router/Router\";\r\nimport IdleTimer from \"react-idle-timer\";\r\nimport { IdleTimeOutModal } from \"./Modal/IdleModal\";\r\nimport { CONFIG } from \"./utils/config\";\r\nimport PropTypes from \"prop-types\";\r\nimport Fav_Icon from './Modal/favicon_old.ico';\r\nclass App extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n timeout: 1000 * CONFIG.TimeOut_Sec * 1,\r\n showModal: false,\r\n userLoggedIn: false,\r\n isTimedOut: false,\r\n };\r\n\r\n this.idleTimer = null;\r\n this.onAction = this._onAction.bind(this);\r\n this.onActive = this._onActive.bind(this);\r\n this.onIdle = this._onIdle.bind(this);\r\n this.handleClose = this.handleClose.bind(this);\r\n this.handleLogout = this.handleLogout.bind(this);\r\n }\r\n\r\n _onAction(e) {\r\n// this.setState({ isTimedOut: false });\r\n this.setState(this.state.showModal === true ? { isTimedOut: true } : {isTimedOut: false });\r\n }\r\n\r\n _onActive(e) {\r\n //this.setState({ isTimedOut: false });\r\n this.setState(this.state.showModal === true ? { isTimedOut: true } : {isTimedOut: false });\r\n }\r\n\r\n _onIdle(e) {\r\n // if (\r\n // !localStorage.getItem(\"accessKey\") ||\r\n // document.location.origin + \"/\" === document.location.href\r\n // ) {\r\n // } else {\r\n // if(localStorage.getItem(\"accessKey\")){\r\n // this.idleTimer.reset();\r\n // this.setState({ isTimedOut: true, showModal: true });\r\n // }\r\n // }\r\n if (localStorage.getItem('accessKey') && localStorage.getItem('isLayoutFrom') == 'ADMIN_LAYOUT'){\r\n this.idleTimer.reset();\r\n this.setState({ isTimedOut: true, showModal: true });\r\n }\r\n }\r\n\r\n handleClose() {\r\n document.getElementById(\"favicon\").href = Fav_Icon;\r\n this.setState({ showModal: false });\r\n }\r\n\r\n handleLogout() {\r\n localStorage.clear();\r\n this.setState({ showModal: false });\r\n window.top.location.href =\"/page_expired\";\r\n // window.top.location.href = CONFIG.STK_SIGNURL;\r\n }\r\n render() {\r\n return (\r\n
\r\n {\r\n this.idleTimer = ref;\r\n }}\r\n element={document}\r\n onActive={this.onActive}\r\n onIdle={this.onIdle}\r\n onAction={this.onAction}\r\n debounce={250}\r\n timeout={this.state.timeout}\r\n />\r\n \r\n {this.state.isTimedOut ? (\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n
\r\n );\r\n }\r\n}\r\n\r\nApp.propTypes = {\r\n match: PropTypes.any.isRequired,\r\n history: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default App;\r\n","// This optional code is used to register a service worker.\r\n// register() is not called by default.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on subsequent visits to a page, after all the\r\n// existing tabs open on the page have been closed, since previously cached\r\n// resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model and instructions on how to\r\n// opt-in, read https://bit.ly/CRA-PWA\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === 'localhost' ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === '[::1]' ||\r\n // 127.0.0.1/8 is considered localhost for IPv4.\r\n window.location.hostname.match(\r\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n )\r\n);\r\n\r\nexport function register(config) {\r\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Let's check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl, config);\r\n\r\n // Add some additional logging to localhost, pointing developers to the\r\n // service worker/PWA documentation.\r\n navigator.serviceWorker.ready.then(() => {\r\n console.log(\r\n 'This web app is being served cache-first by a service ' +\r\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\r\n );\r\n });\r\n } else {\r\n // Is not localhost. Just register service worker\r\n registerValidSW(swUrl, config);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW(swUrl, config) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then(registration => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n if (installingWorker == null) {\r\n return;\r\n }\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the updated precached content has been fetched,\r\n // but the previous service worker will still serve the older\r\n // content until all client tabs are closed.\r\n console.log(\r\n 'New content is available and will be used when all ' +\r\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\r\n );\r\n\r\n // Execute callback\r\n if (config && config.onUpdate) {\r\n config.onUpdate(registration);\r\n }\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log('Content is cached for offline use.');\r\n\r\n // Execute callback\r\n if (config && config.onSuccess) {\r\n config.onSuccess(registration);\r\n }\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch(error => {\r\n console.error('Error during service worker registration:', error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl, config) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl)\r\n .then(response => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n const contentType = response.headers.get('content-type');\r\n if (\r\n response.status === 404 ||\r\n (contentType != null && contentType.indexOf('javascript') === -1)\r\n ) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl, config);\r\n }\r\n })\r\n .catch(() => {\r\n console.log(\r\n 'No internet connection found. App is running in offline mode.'\r\n );\r\n });\r\n}\r\n\r\nexport function unregister() {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister();\r\n });\r\n }\r\n}\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport './index.css';\r\nimport '../src/Assets/Css/icons.css';\r\nimport '../src/Assets/Css/shortcodes.css';\r\nimport App from './App';\r\nimport * as serviceWorker from './serviceWorker';\r\nimport 'bootstrap/dist/css/bootstrap.min.css';\r\n/* polyfills.js */\r\n\r\nimport 'react-app-polyfill/ie11';\r\nimport 'core-js/features/array/find';\r\nimport 'core-js/features/array/includes';\r\nimport 'core-js/features/number/is-nan';\r\nimport 'react-app-polyfill/ie9';\r\nimport 'react-app-polyfill/stable';\r\n\r\n/* index.js */\r\n\r\n// import './polyfills'\r\n\r\nReactDOM.render(, document.getElementById('root'));\r\n\r\n// If you want your app to work offline and load faster, you can change\r\n// unregister() to register() below. Note this comes with some pitfalls.\r\n// Learn more about service workers: https://bit.ly/CRA-PWA\r\nserviceWorker.unregister();\r\n","module.exports = __webpack_public_path__ + \"static/media/red.565934db.png\";","module.exports = __webpack_public_path__ + \"static/media/table-plus.3e581981.png\";","module.exports = __webpack_public_path__ + \"static/media/table-minus.277062d9.png\";","module.exports = __webpack_public_path__ + \"static/media/plus.571e0435.png\";","module.exports = __webpack_public_path__ + \"static/media/trash.e315b04c.png\";","module.exports = __webpack_public_path__ + \"static/media/green.03c2e591.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAOCAYAAAAmL5yKAAAACXBIWXMAAC4jAAAuIwF4pT92AAAW+2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNy4yLWMwMDAgNzkuMWI2NWE3OSwgMjAyMi8wNi8xMy0xNzo0NjoxNCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1sbnM6aWxsdXN0cmF0b3I9Imh0dHA6Ly9ucy5hZG9iZS5jb20vaWxsdXN0cmF0b3IvMS4wLyIgeG1sbnM6eG1wVFBnPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvdC9wZy8iIHhtbG5zOnN0RGltPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvRGltZW5zaW9ucyMiIHhtbG5zOnhtcEc9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9nLyIgeG1sbnM6cGRmPSJodHRwOi8vbnMuYWRvYmUuY29tL3BkZi8xLjMvIiB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIiB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHhtcDpNZXRhZGF0YURhdGU9IjIwMjItMTEtMTVUMTY6MjI6MDMrMDU6MzAiIHhtcDpNb2RpZnlEYXRlPSIyMDIyLTExLTE1VDE2OjIyOjAzKzA1OjMwIiB4bXA6Q3JlYXRlRGF0ZT0iMjAyMC0wMy0yNlQxMjoyODoyNiswMTowMCIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBJbGx1c3RyYXRvciBDUzYgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NGIzYmMxYTEtNzUxOS0wYzQ4LWJhMTctODc2YmYzZWUwOTU5IiB4bXBNTTpEb2N1bWVudElEPSJhZG9iZTpkb2NpZDpwaG90b3Nob3A6ZjQyODRhY2EtZjAyOC1mOTQzLWE1MzgtZjg5NDQyMGIzZTQzIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InV1aWQ6NUQyMDg5MjQ5M0JGREIxMTkxNEE4NTkwRDMxNTA4QzgiIHhtcE1NOlJlbmRpdGlvbkNsYXNzPSJwcm9vZjpwZGYiIGlsbHVzdHJhdG9yOlN0YXJ0dXBQcm9maWxlPSJQcmludCIgaWxsdXN0cmF0b3I6VHlwZT0iRG9jdW1lbnQiIGlsbHVzdHJhdG9yOkNyZWF0b3JTdWJUb29sPSJBSVJvYmluIiB4bXBUUGc6SGFzVmlzaWJsZU92ZXJwcmludD0iRmFsc2UiIHhtcFRQZzpIYXNWaXNpYmxlVHJhbnNwYXJlbmN5PSJGYWxzZSIgeG1wVFBnOk5QYWdlcz0iMSIgcGRmOlByb2R1Y2VyPSJBZG9iZSBQREYgbGlicmFyeSAxMC4wMSIgcGhvdG9zaG9wOkxlZ2FjeUlQVENEaWdlc3Q9IkFBQzYyMjkzRDhCRkRFNDIwMEQ2Qjg5OTgwRDQ5RjQ0IiBwaG90b3Nob3A6Q29sb3JNb2RlPSIzIiB0aWZmOkltYWdlV2lkdGg9IjYwMDAiIHRpZmY6SW1hZ2VMZW5ndGg9IjYwMDAiIHRpZmY6UGhvdG9tZXRyaWNJbnRlcnByZXRhdGlvbj0iMiIgdGlmZjpPcmllbnRhdGlvbj0iMSIgdGlmZjpTYW1wbGVzUGVyUGl4ZWw9IjMiIHRpZmY6WFJlc29sdXRpb249IjMwMDAwMDAvMTAwMDAiIHRpZmY6WVJlc29sdXRpb249IjMwMDAwMDAvMTAwMDAiIHRpZmY6UmVzb2x1dGlvblVuaXQ9IjIiIGV4aWY6RXhpZlZlcnNpb249IjAyMzEiIGV4aWY6Q29sb3JTcGFjZT0iMSIgZXhpZjpQaXhlbFhEaW1lbnNpb249IjYwMDAiIGV4aWY6UGl4ZWxZRGltZW5zaW9uPSI2MDAwIj4gPGRjOnRpdGxlPiA8cmRmOkFsdD4gPHJkZjpsaSB4bWw6bGFuZz0ieC1kZWZhdWx0Ij5hbGVydCBpY29uIG9uIHdoaXRlIGJhY2tncm91bmQ8L3JkZjpsaT4gPC9yZGY6QWx0PiA8L2RjOnRpdGxlPiA8ZGM6ZGVzY3JpcHRpb24+IDxyZGY6QWx0PiA8cmRmOmxpIHhtbDpsYW5nPSJ4LWRlZmF1bHQiPmFsZXJ0IGljb24gb24gd2hpdGUgYmFja2dyb3VuZDwvcmRmOmxpPiA8L3JkZjpBbHQ+IDwvZGM6ZGVzY3JpcHRpb24+IDxkYzpzdWJqZWN0PiA8cmRmOkJhZz4gPHJkZjpsaT5pY29uPC9yZGY6bGk+IDxyZGY6bGk+ZXJyb3I8L3JkZjpsaT4gPHJkZjpsaT53YXJuaW5nPC9yZGY6bGk+IDxyZGY6bGk+YWxlcnQ8L3JkZjpsaT4gPHJkZjpsaT50cmlhbmdsZTwvcmRmOmxpPiA8cmRmOmxpPmNhdXRpb248L3JkZjpsaT4gPHJkZjpsaT5leGNsYW1hdGlvbjwvcmRmOmxpPiA8cmRmOmxpPm1hcms8L3JkZjpsaT4gPHJkZjpsaT5zeW1ib2w8L3JkZjpsaT4gPHJkZjpsaT5zaWduczwvcmRmOmxpPiA8cmRmOmxpPnZlY3RvcjwvcmRmOmxpPiA8cmRmOmxpPnJlZDwvcmRmOmxpPiA8cmRmOmxpPmF0dGVudGlvbjwvcmRmOmxpPiA8cmRmOmxpPmhhemFyZDwvcmRmOmxpPiA8cmRmOmxpPmRhbmdlcjwvcmRmOmxpPiA8cmRmOmxpPmRlc2lnbjwvcmRmOmxpPiA8cmRmOmxpPmJ1dHRvbnM8L3JkZjpsaT4gPHJkZjpsaT5wb2ludDwvcmRmOmxpPiA8cmRmOmxpPndoaXRlPC9yZGY6bGk+IDwvcmRmOkJhZz4gPC9kYzpzdWJqZWN0PiA8ZGM6Y3JlYXRvcj4gPHJkZjpTZXE+IDxyZGY6bGk+VmVjdG9yU3RvY2suY29tLzMwMzY1OTgyPC9yZGY6bGk+IDwvcmRmOlNlcT4gPC9kYzpjcmVhdG9yPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDowNzY1NDgzZi00OTRmLTI5NDctODQ4Ni1lZDEwNTI3N2E5NTQiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NUFEQUM4QzQ5RjIxNjgxMTgwODNCOTM3MTBFMkMwMTgiIHN0UmVmOm9yaWdpbmFsRG9jdW1lbnRJRD0idXVpZDo1RDIwODkyNDkzQkZEQjExOTE0QTg1OTBEMzE1MDhDOCIgc3RSZWY6cmVuZGl0aW9uQ2xhc3M9InByb29mOnBkZiIvPiA8eG1wTU06SGlzdG9yeT4gPHJkZjpTZXE+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJzYXZlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDpjMmUwYzU5My0wM2M2LTRmYTQtODkxMC1kMTkyOTc4Y2MwMWYiIHN0RXZ0OndoZW49IjIwMjAtMDItMTJUMTg6MjY6NTMrMDE6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIElsbHVzdHJhdG9yIENDIDIwMTUuMyAoTWFjaW50b3NoKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6NUFEQUM4QzQ5RjIxNjgxMTgwODNCOTM3MTBFMkMwMTgiIHN0RXZ0OndoZW49IjIwMjAtMDMtMjZUMTI6Mjg6MjMrMDE6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIElsbHVzdHJhdG9yIENTNiAoTWFjaW50b3NoKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY29udmVydGVkIiBzdEV2dDpwYXJhbWV0ZXJzPSJmcm9tIGFwcGxpY2F0aW9uL3BkZiB0byBhcHBsaWNhdGlvbi92bmQuYWRvYmUucGhvdG9zaG9wIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJkZXJpdmVkIiBzdEV2dDpwYXJhbWV0ZXJzPSJjb252ZXJ0ZWQgZnJvbSBhcHBsaWNhdGlvbi92bmQuYWRvYmUucGhvdG9zaG9wIHRvIGltYWdlL2pwZWciLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOmRlMDA3ZmI2LTVmMTctNGMyNS05NDdiLTE5MTMwYmFlMDQxMSIgc3RFdnQ6d2hlbj0iMjAyMC0wMy0yN1QwOTo1MjowNyswMTowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIDIxLjEgKE1hY2ludG9zaCkiIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjA3NjU0ODNmLTQ5NGYtMjk0Ny04NDg2LWVkMTA1Mjc3YTk1NCIgc3RFdnQ6d2hlbj0iMjAyMi0xMS0xNVQxNjoxMjo0NiswNTozMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIDIzLjUgKFdpbmRvd3MpIiBzdEV2dDpjaGFuZ2VkPSIvIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJjb252ZXJ0ZWQiIHN0RXZ0OnBhcmFtZXRlcnM9ImZyb20gaW1hZ2UvanBlZyB0byBpbWFnZS9wbmciLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249ImRlcml2ZWQiIHN0RXZ0OnBhcmFtZXRlcnM9ImNvbnZlcnRlZCBmcm9tIGltYWdlL2pwZWcgdG8gaW1hZ2UvcG5nIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJzYXZlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDo1NDUxNmUyOS00MTcxLTUyNDItYTc0OS05ZTFkNDU5YTEyNGUiIHN0RXZ0OndoZW49IjIwMjItMTEtMTVUMTY6MTI6NDYrMDU6MzAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCAyMy41IChXaW5kb3dzKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6NGIzYmMxYTEtNzUxOS0wYzQ4LWJhMTctODc2YmYzZWUwOTU5IiBzdEV2dDp3aGVuPSIyMDIyLTExLTE1VDE2OjIyOjAzKzA1OjMwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgMjMuNSAoV2luZG93cykiIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4gPC9yZGY6U2VxPiA8L3htcE1NOkhpc3Rvcnk+IDx4bXBUUGc6TWF4UGFnZVNpemUgc3REaW06dz0iMjk5Ljk5OTk0OCIgc3REaW06aD0iMjk5Ljk5OTk0OCIgc3REaW06dW5pdD0iTWlsbGltZXRlcnMiLz4gPHhtcFRQZzpQbGF0ZU5hbWVzPiA8cmRmOlNlcT4gPHJkZjpsaT5DeWFuPC9yZGY6bGk+IDxyZGY6bGk+TWFnZW50YTwvcmRmOmxpPiA8cmRmOmxpPlllbGxvdzwvcmRmOmxpPiA8cmRmOmxpPkJsYWNrPC9yZGY6bGk+IDwvcmRmOlNlcT4gPC94bXBUUGc6UGxhdGVOYW1lcz4gPHhtcFRQZzpTd2F0Y2hHcm91cHM+IDxyZGY6U2VxPiA8cmRmOmxpPiA8cmRmOkRlc2NyaXB0aW9uIHhtcEc6Z3JvdXBOYW1lPSJEZWZhdWx0IFN3YXRjaCBHcm91cCIgeG1wRzpncm91cFR5cGU9IjAiPiA8eG1wRzpDb2xvcmFudHM+IDxyZGY6U2VxPiA8cmRmOmxpIHhtcEc6c3dhdGNoTmFtZT0iUj0yNDIgRz0wIEI9MCIgeG1wRzp0eXBlPSJQUk9DRVNTIiB4bXBHOnRpbnQ9IjEwMC4wMDAwMDAiIHhtcEc6bW9kZT0iUkdCIiB4bXBHOnJlZD0iMjQyIiB4bXBHOmdyZWVuPSIwIiB4bXBHOmJsdWU9IjAiLz4gPHJkZjpsaSB4bXBHOnN3YXRjaE5hbWU9IlI9MjU1IEc9MjU1IEI9MjU1IiB4bXBHOnR5cGU9IlBST0NFU1MiIHhtcEc6dGludD0iMTAwLjAwMDAwMCIgeG1wRzptb2RlPSJSR0IiIHhtcEc6cmVkPSIyNTUiIHhtcEc6Z3JlZW49IjI1NSIgeG1wRzpibHVlPSIyNTUiLz4gPHJkZjpsaSB4bXBHOnN3YXRjaE5hbWU9IlI9NDYgRz00NSBCPTQ0IiB4bXBHOnR5cGU9IlBST0NFU1MiIHhtcEc6dGludD0iMTAwLjAwMDAwMCIgeG1wRzptb2RlPSJSR0IiIHhtcEc6cmVkPSI0NSIgeG1wRzpncmVlbj0iNDUiIHhtcEc6Ymx1ZT0iNDMiLz4gPC9yZGY6U2VxPiA8L3htcEc6Q29sb3JhbnRzPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6bGk+IDwvcmRmOlNlcT4gPC94bXBUUGc6U3dhdGNoR3JvdXBzPiA8dGlmZjpCaXRzUGVyU2FtcGxlPiA8cmRmOlNlcT4gPHJkZjpsaT44PC9yZGY6bGk+IDxyZGY6bGk+ODwvcmRmOmxpPiA8cmRmOmxpPjg8L3JkZjpsaT4gPC9yZGY6U2VxPiA8L3RpZmY6Qml0c1BlclNhbXBsZT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7X2OhtAAACf0lEQVQokVWTS2tTYRCGn/nOSXOSc9r04q0oXuoFoRcvxQuuvCy8IFhFiujCpSDiD9A/4A/wd7hwa1cKuhNUtELbtI3YpElsck5j25zkfONCG8zAs5jhnRkG3pHowQO6QgRttyCOL8ibmRcKhotXnpFOv8VNgWqX3HVb3QV6UtjCkqPfvz7Vg4fmjeNaPrx7IqNj7+Xg0TZx3CU3GEMHEfA8iJvPtH+wJfX6HqrlvRrkttiMn+Nl/uocp4PR5hYdkjZaKo5rtTpJX9+CrVTO2HLlDNls3pbLp/Rn4bRubaCNqIOsX7329y7jILl+9NPHl2ptmo2N/WLMMiJWW60RCYJFtTaRsfHHGoZgLYjgOnuGwXXR9XXanz9NSTvZZ1Kpgi2Xz5vLlx8hJklmZmYlNzCvNh62s9/uOKMTryQIoN3GkM1Aby+47m7C2pTxg2+2tjapcdxnwyjQKPS1Ffu69mvS6Q1mJVqfEjc1LH05xPcxNGOIYyiVrplMFm02+ymVLghAVN+lUbRTAF0tnbWbmzvEDxJdLd6guQXNJobGb1hcHEsW5m/iZfJa/HlFAQXEdX0xxt/OdWXlElkvb5cWr9uF+QmNQlxtRGktFu+S6lnid+MwYXhMthvKlYeIJAACaBQd0TA6arx0nmp1Wl1nzthy6WyyVj0uvcEaPwr3OoYEyPhftcf7Lv8btVC4TzaoJ2FtROu/zhmt1adlcKih1cotTZKeLldnsyEZL+oaqtbR1eJtyQ1saC2almho6DW53Irm8ycFqkAKsECixhwQAGuXAQcwQKywWw6NfKTR2OXieXO6tHxC4AMisr0IULG28u/Bwq666hyF5XEGB778AXD1SeBhjkFzAAAAAElFTkSuQmCC\"","module.exports = __webpack_public_path__ + \"static/media/black-pin.f5774af9.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAYAAAA71pVKAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2hpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYxIDY0LjE0MDk0OSwgMjAxMC8xMi8wNy0xMDo1NzowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo4MTI1RDA4OEJBMjI2ODExODc5NkU2OEE3NTZFMUM5OSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1MEJBMjRCRDBFMkYxMUUzQTJDMEU1QTA2RjhGQzE3RSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1MEJBMjRCQzBFMkYxMUUzQTJDMEU1QTA2RjhGQzE3RSIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M2IChNYWNpbnRvc2gpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NzE2NjlGQkUwOTIwNjgxMTgyMkFGQjAyQzQ5MjNENUIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6ODEyNUQwODhCQTIyNjgxMTg3OTZFNjhBNzU2RTFDOTkiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7iXe8nAAAA0UlEQVR42mL8//8/AyMjIwM6aGxq5QJS24H4cn1ddQ66PFgfNs1AjQFAag4QC0OFTgJxMNCQp8iambDYKASk1iJpBAFzID6KrhZDMxCE4BCXBxrMRkizOQNuYERIsy4ezTaENKvi0WyPUzPQT1ZASgCPZkd8Nq9kwA+4gRZMg3FYoDaCDDkCxDIMhEEmUP1jIN0Os7kCiC0ZiAdtcJuB4AIQH8SiiAeIfwLxb2wmMOJJ2+VAqgPKFQQmzQ/oaZsFj9NmA7EXEF9D14hiM7kAIMAAI1Q/OeMAZJcAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAYAAAA71pVKAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2hpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYxIDY0LjE0MDk0OSwgMjAxMC8xMi8wNy0xMDo1NzowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo4MTI1RDA4OEJBMjI2ODExODc5NkU2OEE3NTZFMUM5OSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1MDk0RTNGRTBFMkYxMUUzQTJDMEU1QTA2RjhGQzE3RSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1MDk0RTNGRDBFMkYxMUUzQTJDMEU1QTA2RjhGQzE3RSIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M2IChNYWNpbnRvc2gpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NzE2NjlGQkUwOTIwNjgxMTgyMkFGQjAyQzQ5MjNENUIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6ODEyNUQwODhCQTIyNjgxMTg3OTZFNjhBNzU2RTFDOTkiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7S8rBrAAABqElEQVR42nyTSyiEURTHjVdmNrJBYWGnRISyQB4rFjQLm1koo7w2FrKwIEUoKVIWXhuSslMiQlOIZCM0NiQpQkiRt9/R/ytJvvp1zr33nHPP/d/7uUL++FJyB72YQyiABSgNbjWN/o4LV3AY5oOAT82vwgjEQBnU/rWJS8lZmHrYhXWK7DPnwd+DXMbXjFPx8yERlpkLhKpIENZUwE2gj8VHFbLECvxI8MEpbHy3zUKEqsXCDjTDFUz/6LDIisItJEAyeXe2cxNks8MAdlFdeNW2o0c5XJoOxHVgo2DYOXOn2tlUe0lQBW/wJC0O4BWeoQWqXSSOSfUcOIMLtWpKF6ub8x9HMPVXrIizcx6mDmpo64VxNP4EmL0HP/P3is3AtDo7F0nFRmiDOFUvk3j9sARz1hlFushJw283wR4VZPcYUPKsjhAiOw/xcERioY7REEqlbV2DdTAOM3AC70o20Y5hEvogEzx2/84j8egdW4sXLAzBA366nm039lrr+c6zdgSL05W4ZS2xF0p0hX7N24Oye4+g4I3rn7/KfhJTdgoqCe75HfclwAB0SZlg1dIRGQAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAANCAYAAACgu+4kAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2hpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYxIDY0LjE0MDk0OSwgMjAxMC8xMi8wNy0xMDo1NzowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo4MTI1RDA4OEJBMjI2ODExODc5NkU2OEE3NTZFMUM5OSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCNjA2ODAyQjFBMDAxMUUzQjA2RUQwRTZBNTA3MzNBQiIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCNjA2ODAyQTFBMDAxMUUzQjA2RUQwRTZBNTA3MzNBQiIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M2IChNYWNpbnRvc2gpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QkU5RkUwRDgyRDIwNjgxMTgwODM4NUVFOUNFQjI5NEEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6ODEyNUQwODhCQTIyNjgxMTg3OTZFNjhBNzU2RTFDOTkiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz5mg7xkAAAAxklEQVR42mI8tHX2fwbygSMLiKy8KMlw+QMHSTrb9Z8z6Ar8YAAbYKomziD1V4AkA4Q43wNJqAHSwtwMnCz8JBnA+RWo9S8DxIANx+8BvfCMJANk9L8wCAlADcj20WP4xiVOkgGyj3cxMHx7ATFg6pZLZATiB2AgQl0QYKnEYMciQpIB0l8/A8MAGohP335lePqXlSQD9Dj/MDAwQ13w7O0XhrvfSUtB32WABnAyINKBMoleEPr6BOiFL9SJRkcK8sIFgAADACvJPrid6Hz6AAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAYAAAA71pVKAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2hpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYxIDY0LjE0MDk0OSwgMjAxMC8xMi8wNy0xMDo1NzowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo4MTI1RDA4OEJBMjI2ODExODc5NkU2OEE3NTZFMUM5OSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1MEJBMjRCOTBFMkYxMUUzQTJDMEU1QTA2RjhGQzE3RSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1MEJBMjRCODBFMkYxMUUzQTJDMEU1QTA2RjhGQzE3RSIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M2IChNYWNpbnRvc2gpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NzE2NjlGQkUwOTIwNjgxMTgyMkFGQjAyQzQ5MjNENUIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6ODEyNUQwODhCQTIyNjgxMTg3OTZFNjhBNzU2RTFDOTkiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz5/ycdJAAABXklEQVR42mL8//8/AyMjIwMy+BipxQOkWBhQwX/+5dc+IgswImsGahIGUoeAWIsBO3gJxG5AQy4xYDE9k8XEmY0zo/U20EQmVHv///+1dcHXn+tnVAJ5kTAxZOde/vvs3vn/uMCvH0+Aar4AMSdIPROSRg1GDi4tJgkFTQZcgJVdmllZ5wuQ5QV3NlAjF5DqYODk+fZr+6LrDPjA//+yQLIWqOcEzM81DEzM/swyKk9+LO02ZUDyCjpgVjN4zsjBrf3/x9e5MGdrsfunXuSqnC3D5hiC02YmWdV33A1LJTnzes8DuRpwP/+9e4mf4fevF38fXhfA6eIPb7j///z++O/Ns+zweP4Upb0ByPZnIA08ZGKgAMACbAUQKwCxPhAfBOIDONRrAHE4NKVNgCcSYNDPBeL/QFyHyyagXABUzUmURAIEJ4D4HxCfxOPSy0AMSiTHsCVPNkL+RFYDEGAAAAegUd7r3qEAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAPCAYAAADUFP50AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2hpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYxIDY0LjE0MDk0OSwgMjAxMC8xMi8wNy0xMDo1NzowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo4MTI1RDA4OEJBMjI2ODExODc5NkU2OEE3NTZFMUM5OSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1MERFRjMwODBFMkYxMUUzQTJDMEU1QTA2RjhGQzE3RSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1MERFRjMwNzBFMkYxMUUzQTJDMEU1QTA2RjhGQzE3RSIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M2IChNYWNpbnRvc2gpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NzE2NjlGQkUwOTIwNjgxMTgyMkFGQjAyQzQ5MjNENUIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6ODEyNUQwODhCQTIyNjgxMTg3OTZFNjhBNzU2RTFDOTkiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7YWyLMAAAA8ElEQVR42mL8//8/AzmAEZnTOcc1sjxl93I0MW4gNR9JqAyo5gETkgJHILUMSFujGc4KxKFIWAAkyATVBLK5HaqwgxinwmwMAGJzKNsGaJA3QY1ARcxAuhVNvBUozkTIxkAg1kQT1wdiD3wamV39lPWA9FMgtkASnwjED4BySkA6G4hNkOT4gOJyTMCgXQHkTEAzcAJQfDOQfgXEGWhyUUD8Ga8/gJrPAak9aMJ3gXgRExEhX4HGrwUa+JugRqCis0BqDZR7AYhXIscjIVADxH+BuBpo0D9kjV+BeDUS/opm600gFQSkt8ETObm5AyDAAHhNRiXReuldAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAYAAAA71pVKAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2hpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYxIDY0LjE0MDk0OSwgMjAxMC8xMi8wNy0xMDo1NzowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo4MTI1RDA4OEJBMjI2ODExODc5NkU2OEE3NTZFMUM5OSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1MDk0RTQwMjBFMkYxMUUzQTJDMEU1QTA2RjhGQzE3RSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1MDk0RTQwMTBFMkYxMUUzQTJDMEU1QTA2RjhGQzE3RSIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M2IChNYWNpbnRvc2gpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NzE2NjlGQkUwOTIwNjgxMTgyMkFGQjAyQzQ5MjNENUIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6ODEyNUQwODhCQTIyNjgxMTg3OTZFNjhBNzU2RTFDOTkiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7BNunYAAABfklEQVR42mJgQAfr3hcCMRMDEQCbojAgPgg1yA2I9YjTvO69EJA0cRZlseHd9KECyN4DxPuA4iXE2LwPiFkaNTkYfCVZyxiCBP8B+deAuBtowCoMzRoWE5mhtkYBSX1VHiYGa2EWBgtBZkGgmDxQDGQAg4c4ayjfpg+70W1mgbLrQcSLH/8Zum//ZFj0+BeIKwLEhiAGH1BVrQaHC9DAeXDNN07k/4Syv4OIz3/+M5Rd+c5w5v3fv0CuJkgfSJyViZGhSIWdwUKIJQFogBfM2fJQzaFA/AHK/gPEJWC/QoGZIDMDUD/DPCNORiA9FyTGiCWepYEB9RRIO0NDGwzuuPExKHNDwtf64BeGY+/+aIJsZkfRDNIIAWXIwo+/g8ON4T8Qv/8NIhkCWaBOxAa0UMw88RUUfQzXP/8FY1BYMOJMe+vePwaSMnhSZya+NHwUjxzID4vwac4A4m845NqBYfMNt+YgQVC0KQHxESD+AsSg9PAEiJOBcjUgJQABBgC8YHHeHgeARwAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAYAAAA71pVKAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2hpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYxIDY0LjE0MDk0OSwgMjAxMC8xMi8wNy0xMDo1NzowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo4MTI1RDA4OEJBMjI2ODExODc5NkU2OEE3NTZFMUM5OSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1MERFRjMwQzBFMkYxMUUzQTJDMEU1QTA2RjhGQzE3RSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1MERFRjMwQjBFMkYxMUUzQTJDMEU1QTA2RjhGQzE3RSIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M2IChNYWNpbnRvc2gpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NzE2NjlGQkUwOTIwNjgxMTgyMkFGQjAyQzQ5MjNENUIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6ODEyNUQwODhCQTIyNjgxMTg3OTZFNjhBNzU2RTFDOTkiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6hZY0vAAAA5UlEQVR42mJgIAKwZljKYxNnIkIjC5C6jM0AJiIs7gNiXiBegS7BSMBWkOHfgJgdKqT+e8bxW8Ta3IqkEQQW4nQ20CYLIF6MJBSMZpgK1DVYbZ4E0wBUpAdSjCYvgmwgE5Kt4kDKBIg5gexUIJ2Hwyt+2GyejBSAIHYcjgCNABruhq7ZDokNCiRWHDaD4t0WrhlokiuQEmcgHugA9QgxAwkeIGcliZqlgFiLBco4AcQcQKwM9ecNIH4OxM+AWBWILYD4JTS1zQMmlDfYUtRcIH6CJpYHxP+AeApG8vz//z8DuQAgwAAMpyz2vUgOkgAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAARCAYAAAACCvahAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2hpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYxIDY0LjE0MDk0OSwgMjAxMC8xMi8wNy0xMDo1NzowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo4MTI1RDA4OEJBMjI2ODExODc5NkU2OEE3NTZFMUM5OSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1RUMzRkM3MzE5RjExMUUzQjgwNEREMkRBMUMwNDdCNiIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1RUMzRkM3MjE5RjExMUUzQjgwNEREMkRBMUMwNDdCNiIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M2IChNYWNpbnRvc2gpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QkU5RkUwRDgyRDIwNjgxMTgwODM4NUVFOUNFQjI5NEEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6ODEyNUQwODhCQTIyNjgxMTg3OTZFNjhBNzU2RTFDOTkiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7DmkMWAAABRElEQVR42mL8//8/AyMjI0NaWhoDOhB4dpgPSJ0C4gcfpGw9kOVmzpzJwMSAH7QBsToQ/8cmyYJLF9BWKyCVBcQ/gTgPSZwDSDED8VcWJEFWILUUiI2BuAqI64GYEYgbgU6+jaTxLBALA7EEss1JQBwKZa+A0leBuBtJTTUQa0ENQPGzHBbXywBxDNRWXSBVAcR/gTgN3c9/sGjmB+L5QI1RQFoMqr4L6I1z6Jrt8YS6K5R+A8TNMEFkZ4szEAYiQLwd6BIZdM3vGYgDNkCcCddc5qMJijdRBuLBIWSbNYFYhQhNd0EhDQywnciarwHxDAIaF4LiGKhxNkqAdW25/g9I/YaK/UDScAaUB0D+BGpKAOJfGGkb6GcLIJUDTccgtjsoAJFtwZcxZkPTcQtQw0UgfZGYUIP5+T/UiZ0khDgDQIABAFNNUbLHWCaIAAAAAElFTkSuQmCC\"","module.exports = __webpack_public_path__ + \"static/media/down-arrow.33056c0a.png\";","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/edit.6c09cc20.png\";","module.exports = __webpack_public_path__ + \"static/media/StorageUnit.1e37408f.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEwAACxMBAJqcGAAAAOBJREFUOI290z0KwkAQBeA3i5dIGq9g6jSCrWBiUnoEg60/hUmhB9Ar2KmoYCuk8SBpzCHUHauFNW4kBPRVO+zs42uWUEh/NPHEk7cQolG8AwBI+WAS4X69PAHAxxJJtJhosV8tY9P7IJrEADsAzAUqh8vVWLA5nt/mhonMzInfcb8ItIIiWS1UFhTJaqGyQB3Ug78IiGgeDsczJhHWEjBzAiIA7NQSNG2rDQDZLU9rCbJbnqr59wJVOPC6RoHQBTrb77ixrtDnpm21laJU8C26gIJo2iOWu9LvWxIJ3MEIXlU9oJBY/3M2AAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEwAACxMBAJqcGAAAAPVJREFUOI2d0j8vBEEcxvFPZIWChoYorjvxEjbhHVx5Ep3Eu1DchRM1hUbjBdALL0GlpNEIJ6K/xJ9Yxc7KWrt3e/ckk5l5ZuY7T34z0EcyYetHOMEhNo2nCxzDVqDlNY0WloYAErSnKhYP0MDZqBhVgCSkGKkqQAd32A7zfeyNA/jCNd7Qw3fw/0HKADGuMC+txWchwR9IERCjiyPc4D1AMpVCsmeMcYm54K+UpMuDErQjNIN5HqK2hhzMdB/6JryY/Cs/Vd2wJq38hvSLf2C5RrJfneI2jCM8Sp+zlhYwwE7O28UrZuoA1vGA2Zy3iGesFjf/AB36SPYGrrfEAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEwAACxMBAJqcGAAAARpJREFUOI290k0rxFEYBfCfSXnbyetKioXs2RF7FJPIVin5CLKQ+AaspKwUZiVbCxKfQCIWNiQr5aWYsfg/o4kZw8app27nOefe+9x7KI4UxnAcNRpcWdRiDpd4xy4ysb7ALGqKGZuxhAc8YRUdBf1OrEXvHotoyjcH8YIcNtDwww0bsRnaZ/TBRBDXeMM2eoqYe7ET41yFJ134MB2YQjtOcYjhqEOcoA2TMdIn8jcoxAD2g89iD/1fNDmkK0vMehCVibHGS+jK/m02qiR+FY5/26DuD75PbQq3klDcYBktPxhbsRLaJ9zlGw1YCOIF6+iSBGcL3ZKUvsaB86gvdkI1ZnAuef3HqCzOMI2q38xYgREcSVI4FNw3fADVL0TNWmOQuAAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEwAACxMBAJqcGAAAAShJREFUOI2N0U0rhAEUBeDH+JZiJ5KNFFZKZqlEomQjSdnb2chKYjGp2Yh/YOEj/0BKkigrP0GKjaUFCjMW76WZaeI9det07rndr1oJ1lGPe+kwjnlcwxy+QmxA9o/CbDSaRAGzcIX9MOyUTNGCbeTRGtpTaHCIC3jDQojPWA6+hWJELrQVPAZfwksmDDUhFlAb/Ktk9B9eE34lNS5xEDyPh+BN2MAmmquscIxzcYgCplCHoTB0YBAD6AxtODzTUTPzM8UaRpVjGy8R+YrcGFbL9qhAJla5i04j6FF+l19jNUygG2c4RZfk96lxJLn2AHqDn6QtbsNrFH1GFPGO9kpztRUWJG/LSV7ZJHllIxbTTHBT0b10itv/ivvwgb0qud3I9aeZIjW+AZXPRgAZoFCUAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABLUlEQVR4nO2SwYoUQRBEX1bXTINTsKDHPShs+xlePHnxO/0mYVB38aorONM91VWZ4WFQdlhPIngxIC5JkLwMEv7L9m/eaiiFNI74POOHw9nfD7TDTPdGVWcNZ5XT5IB+LUhyZ3//leHZU/bf7tleX/PheGR88ZxP68J4c8NtbzyZJu56o0wTn7tTppcA5Hx1xVBPKIRqxU8LsSy0pdJDNDotgibHpUcnJLVG1Iq8Q+hsCZPzMC50gf5T2TYbUozYkCHZ2WbIBuxhWRhcTP4SQYpawYxcCqkUhrIjlR15tyMPmS2ZTUpsLZNteESR5Y7C/5jC3r96rbQdsZSQd+JU8WUmjjPttLKqs0Zn1fkPXH5J8O72I1/CwQwk1AP1TvRGhHCCUNARofhNC/9aPwA8S91S08aWzwAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEwAACxMBAJqcGAAAAT1JREFUOI3FkTFrFFEUhb9zZzZhOyFdZHX2TWVjGZBNI8I2Qmxs/Aep8jvSamllJVguVoOQbvwJA0kzC4si2InBB7u8myK7MGwIzBaSU757zse598FDSwBlWb5092N3L3cKSz8UQngFfAP+dGYDYB/47O7pnvwTSUd5Sum9pI9t255uJqPR6DDLskvgmZldbwXjarV6NxgMpiml57mZZUDTdSwWi59FUbyV9MLdt2uf5Xl+sn6POVADE+BD1zifzyug2u4dQgju/kZS5e7RgNrdJ/fseUfuPpM0BR4B0dy9lvS4KIqnfQDD4bBKKeXAayBa27ZXKaXfknq1aJrmr6QLbteOBiDpe1/A2j8DrAvYHLKXlsvlV8BZ/wKSanc/H4/Hn/pCgH9mFjOAEMKvGOMBsLcDoDGzLzv4/5NuABz6ce+5IibmAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEwAACxMBAJqcGAAAAMdJREFUOI2l0z1uwkAUBODPwUcITYSo0qdJY1HQ5AgpLHFBCk5BlUg5QkpQInwEYpuCvwXtGqNMsTt6bzTa0XubOeML3+J4xmuid8K8o7dINR5uud7Cvw3ygI9QJnRPKYMs4FMMMUGNweH+wAbLlMEbHoNagcY+XoPPjgRVdhBlHaIuNNDiPSFYuBzvS8BLtPdOob4u5DHVFQrxJRsfyT0RZgEv0fZ5wdh5P+qAF/SL0OAvUe9lsBL/TPnx+LHftBh+sU30Kqx3DiAl2zBCoesAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEwAACxMBAJqcGAAAASlJREFUOI3Vj71KA1EQRr/vJrHRPICFWihiRKvFXAvhrqBVdstURkkV9B2iPoY/YLo8wa5tyIUg7rYWgq2oEGwFqztWC6sE3HR6ypk5Bwb491D74Z2Dm1dCO43ohD4pL2WIPBFqQLrH++Ftv4hc320cUfhMwYICgNRGXSeqtu03DorIEK6kw+gUAFS2KBKpm+CQTi2nw/gsm6n8QWqjroPamBTRJmyBXE1sdJ6ffwusN5szFCyKcD8f0SZsAbJHYMnzOpWJAc/rVObGnz1ALhIbt52o2pYJjrUJTwRYS2zchsh1ufp2k4+oTC5VX3uEXCY2HmXvEPIOyji1URcAEhuPfkaoTdgXiqPgKpN/Q5tgB2QHghK1HwxEOEu4hyJyhkBtkvIxjfNH+QLw/H6/I3hSiwAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEwAACxMBAJqcGAAAAK1JREFUOI3F0z8OAUEcxfHPijiCCygkOoVS5Spu4AQKhVsoKZ2AAyAShYRCTadAJP4VttoY1iq8ajLz3jfvN5mJcMBSNlVgkjEM89wPYZAP7LdQwx0nz5Y9HJPGUIM6IgzjcBOjV/5QA1igH68H2KKKaZoGSe1xQSF5kAZQRBc7zL4BtHHFGiU0cE6a3t1BG50YEtS7BrdP4U+AVAqNMMYmLeS/fyHyfN+rjPnyA3u3INICilpxAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAG6SURBVDhPjZI9jwFRFIavj4QxUykkRHxkxdL4C3aQiE7YVdBgUStFicpiacSPsNGQrEYn0RlsodAhJBJRaXdfc2dQ7e5TvDnvvffcc86dId8yuVwuEom8iMRiMRpQwuFwsVikxy4Ju93O7/eTv0gmk+fzmRwOh3g8bjQaXS7XowgN3G73vQUmk6lQKJDVajWZTARBWCwWMxEEVzufz2X7NZsJOElwPcMwOp2O4zgoy7Icx95bIFtGr9cTDCr1+A80Gg3BIyBSKBR06RdwBqUIXhDG4/HQvqfTKfpG9/cWjMdjg8GgVqulCqFQaLvdor1oNIqVZxlYkE6nT6eTw/GgVCqlBK/Xi6VPkcFgMBwOodT2+/3RaITXN5vNl85pQiAQWC6XuIxeTItAARZTqdRms7Hb7SqVSkrgef54PHa73V6v9yGCgFooqmHXYrFcKtChfT4fvmA2m81kXkXNQK9BPp9fr9dWq/U2AxL2+31DpNVqUW02m43GO7TT6WAGm812S3h64vEL1mq1N5F6vV6tVqGIEbTbbexiaJwkiURCq9UGg0E8a7lcLpVK0EqlgoAqLDJR3+l0siz7A6f+JHaZg/yIAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEwAACxMBAJqcGAAAAPhJREFUOI2l0s8qhFEYx/HPjDf/UorYKBeglFyAvZ0VN6AsGMrSVShFysJaYUpRVnZCuQlLKxubodfmvONpnBlT86tTz/v7fc95n6dzGFBDPbIxHGAFL/jKQfUumzdwiUc8pXq9n46W0cR2R3cFdnGNpdzGWZzgEFPBr6VVaRpHOMZMZe7hAgvpeyv8/RY3qR7GZqoXcYUdab6oc4ym+hXPqZ7AWQfbLNDKzZS0j7JH3ip6hPDwT17Ga5zMACN+x4lqs/GA0wy4irWMX7FlHOE9A37iO+O32XhAIwPeZ7zIlt2ect+q4Q4fwZvHm7/XV8dcyiqND9qAH7o5J7aYpNL6AAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEwAACxMBAJqcGAAAALdJREFUOI210jGOQVEUxvFf0IlSRiPRTohVSGYRSrU92IDWDswuRDHFVAqNWAIbUBCe4inkvst7j/iSW5z75fzvl3MPWQ2xRi3iZVSJ3DXQL9L8CFBKMUD1HXgd/0gwfgUwuTUnOKOd1xDGbAXeVx6gyFdVgofO0oTRBDHNcLo705Cep8OzughgLo0NR/yWBazwgyUG2NybhfYdC3zjLzQ+ssqlVA3qHprYYycd4AUjdNHBVjpMcAUumB2koB7e8gAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEwAACxMBAJqcGAAAAKJJREFUOI290D8LQWEYhvFfMSsfRwablJRBfBVZnIHZJ7FZbVIGFpMvwKAM/hSLY3nVsZ3zDu566n2G636uXv6UMiY4oBdTMEOKYazBBU/Uw15FUqTgHAyuaGOLeV64gUco+M4bzbzwPXN9gyU6MXAtr3I03McKuxi46/eTUtyKaC+wRiuAKY55YRijEt51vHAqUpBNEgymMfAAe4xQijUolA+wgTGgH3yXpQAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEwAACxMBAJqcGAAAAKlJREFUOI2t0sEKAWEUxfEfTXkAkeIFZCM75UUsvIqFl0HZeQdR9jZWslDyBJgsmNIYZhhndTv33P/9vroFyWphiAAhLhhh8yb/MjxH5cmrPrxmFsA0NhyphnHcLCYEAxwT/ANKWQDnD68LswC+UuGp3mGBMk5v8lGvh0a8Ofli8Swqcn8hDTBAPw+gg/anQJACWLmf8c+ALa55AOuU/n8PaY9lxrku6nADU20YLatCuXYAAAAASUVORK5CYII=\"","module.exports = __webpack_public_path__ + \"static/media/logo.b83f7927.jpg\";","module.exports = __webpack_public_path__ + \"static/media/st-logo.0a17fe93.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAACdAAAAnQGPcuduAAAFyWlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgOS4xLWMwMDEgNzkuYThkNDc1MywgMjAyMy8wMy8yMy0wODo1NjozNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDI0LjYgKFdpbmRvd3MpIiB4bXA6Q3JlYXRlRGF0ZT0iMjAyNC0wNC0wM1QxNTo0NToyOSswNTozMCIgeG1wOk1vZGlmeURhdGU9IjIwMjQtMDQtMDNUMTU6NDU6NTMrMDU6MzAiIHhtcDpNZXRhZGF0YURhdGU9IjIwMjQtMDQtMDNUMTU6NDU6NTMrMDU6MzAiIGRjOmZvcm1hdD0iaW1hZ2UvcG5nIiBwaG90b3Nob3A6Q29sb3JNb2RlPSIzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjEwZGZhZmZhLWIyNDktNzk0Yy1iNTZhLTk3OTJhZWY3Yzg5ZiIgeG1wTU06RG9jdW1lbnRJRD0iYWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOmZkZDM5ODA1LTBiODItOWI0Yi1hZTExLWM1Nzc0YzAwZTUyMSIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjAwNjIzYTNkLTQ2ZjAtMTA0MC1hNTViLTAxMzA3ZDg0ZDNjMiI+IDx4bXBNTTpIaXN0b3J5PiA8cmRmOlNlcT4gPHJkZjpsaSBzdEV2dDphY3Rpb249ImNyZWF0ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6MDA2MjNhM2QtNDZmMC0xMDQwLWE1NWItMDEzMDdkODRkM2MyIiBzdEV2dDp3aGVuPSIyMDI0LTA0LTAzVDE1OjQ1OjI5KzA1OjMwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgMjQuNiAoV2luZG93cykiLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjEwZGZhZmZhLWIyNDktNzk0Yy1iNTZhLTk3OTJhZWY3Yzg5ZiIgc3RFdnQ6d2hlbj0iMjAyNC0wNC0wM1QxNTo0NTo1MyswNTozMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIDI0LjYgKFdpbmRvd3MpIiBzdEV2dDpjaGFuZ2VkPSIvIi8+IDwvcmRmOlNlcT4gPC94bXBNTTpIaXN0b3J5PiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pmyt9BUAAAEXSURBVEiJ7dUxS8NgEMbxX4rgVlAsTmJndXMTBTctOLqqX0Bw011c3ERQZwcHwcVBWnEU/QB+AUEHN5UODgrG4Y1QJbZJaBfpAyFceO7+5O69JIrjWC9V6mn1PiCLBlqD5tpClpwNTGELz2mG8vFlOiCDIuxiEDNYxGO7hLwtirGZ3Cdwg8luAmAfK/jAGK4x100AnKCGJoZwheU0Y9oMxjGSAfKKdexhGKdJfNQOUMOFMMy8KuEQ92i0Puypfr9BHVVUMuZXcYBRfAotarQa0mbwkFydNC30u4J3rApz+KG8i/ateZyjjDfhBNXTjEUASzgTtvkliW//MhcBbCfFn4RPxV07c5FTtCMs2myn4hD1f5n/H/AFefIxEH1IkBMAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAACdAAAAnQGPcuduAAAFyWlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgOS4xLWMwMDEgNzkuYThkNDc1MywgMjAyMy8wMy8yMy0wODo1NjozNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDI0LjYgKFdpbmRvd3MpIiB4bXA6Q3JlYXRlRGF0ZT0iMjAyNC0wNC0wM1QxNTo0NToyOSswNTozMCIgeG1wOk1vZGlmeURhdGU9IjIwMjQtMDQtMDNUMTU6NDk6MzgrMDU6MzAiIHhtcDpNZXRhZGF0YURhdGU9IjIwMjQtMDQtMDNUMTU6NDk6MzgrMDU6MzAiIGRjOmZvcm1hdD0iaW1hZ2UvcG5nIiBwaG90b3Nob3A6Q29sb3JNb2RlPSIzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjczZTYyNDk0LWE5YTUtN2E0NS05OTUxLWEwN2Q0NjQxNmZjYSIgeG1wTU06RG9jdW1lbnRJRD0iYWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOmI1MGRhMDdhLTBiYTItYWM0Yy05ODA1LTkyNmVjODQ1MGNmZSIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjFjZTNhZmUxLTE4NTktN2M0Ni1hZDk4LTdiNjNhYTZmZjBjOSI+IDx4bXBNTTpIaXN0b3J5PiA8cmRmOlNlcT4gPHJkZjpsaSBzdEV2dDphY3Rpb249ImNyZWF0ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6MWNlM2FmZTEtMTg1OS03YzQ2LWFkOTgtN2I2M2FhNmZmMGM5IiBzdEV2dDp3aGVuPSIyMDI0LTA0LTAzVDE1OjQ1OjI5KzA1OjMwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgMjQuNiAoV2luZG93cykiLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjczZTYyNDk0LWE5YTUtN2E0NS05OTUxLWEwN2Q0NjQxNmZjYSIgc3RFdnQ6d2hlbj0iMjAyNC0wNC0wM1QxNTo0OTozOCswNTozMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIDI0LjYgKFdpbmRvd3MpIiBzdEV2dDpjaGFuZ2VkPSIvIi8+IDwvcmRmOlNlcT4gPC94bXBNTTpIaXN0b3J5PiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PuQIwAkAAADlSURBVEiJ7ZU9CsJAEIVfPIIoVv5gqWBjJwiCjYKVCBZeQfQqNmJh63nsvICFhUXAQlALPwsXTBGSTdiAoAPbvZkP3pthPUBZVi7T6X9AVoClpK2kvJUaSPI84Ma7DkA5ricpQMACeBrIEWi6BgiYAQ8D8YGua4CAPnAxkBswCdN5IZdclVSwDLwhaWUCf0qaS9pEhTwM+Ju2BsGZmd9BmEUVSUXL/pqktaSSLC1K8trA2dhyB6Yut6gX2KCryc7Zmo74XLMPdKL0aQB7M/wEtOL0aQBjYAfUbfRhW+S0vvI/+DHAC+ZRDKRtl8kEAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAMAAADXqc3KAAAAA3NCSVQICAjb4U/gAAAACXBIWXMAAACmAAAApgHdff84AAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAOpQTFRF/////Wlx7Fts/l1nZ06SXUqUQUebQkibRkydR02dR02eSE6fSU+fTFGgTFKgTFKhT1WiUFajUVajUlikU1ijU1ikU1mkVFikVFmlVlumV0qUV1ymWF6nWV6nWl+nWmCoXWKpXmOpX2SpX2WqYWarYmasZGmsZGmtZWqtZmuuaG2uaW2vam6va2+wa3CwbXKxbnOycnazcna0c3e0dnq1d3y2eHy3eX63e3+4fIC4fYG5f4O6jGSZkmeZnHKf09Dg1brM1per1qS32IKX2mh/20pi8oyW9fDw99XX+Lq++aqv+5CW/XB4/0tV2uI3+gAAAAZ0Uk5TAPT7+/3+wPO8cAAAAJxJREFUGBm9wdkagUAABtA/kexky07GzmRJsu9K9P6v48pnLsxt58APwfJXKCD+CFBoZC2vo7NMvX95MhDXFmRFjNawUzq7DMQqRmPTsOq0nb69GVD0rJW31HlV6x1tBhLdMdUpHRDSvHsMyAVT3RY3uUkzeXIYUEbhpWRK01SNXF8MHHZf+8eLAYcDHgdsDrw54HLgyQFB/EuADz6nCVWp7jbl3AAAAABJRU5ErkJggg==\"","module.exports = __webpack_public_path__ + \"static/media/oval1.6bbc844c.png\";","module.exports = __webpack_public_path__ + \"static/media/addnew.da2ff88a.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOxAAADsQBlSsOGwAAA8pJREFUOE+NVUtoXFUY/u69cx+ZVyajqdQxjVbM2BoQLBHEWIxNKphuXNSFIChIRdvoogst2RRmYSUUQ4wgXUhBF4LG0moLrtxoSw1dNKWK0Enz1KZpZjJ3Ms/78jtnJqGLifS73Dvn3nPO93//4/yjBAQeAK7vIqSGmm/boyWhXSsiV8lhvbaOQrWA7PptzNydQWb/ScTMWHNVa0jCW7ksZrlpzp5HoVLA7cI8lovLuFO6I4mlTUXB+cNTeObhPc2traEsFRaD1398A7pioFCz4QUuTM2ErunSRU3VoPCquhWcHT5LwjTHdbG1wbAJJYCh61ArbhULhUU532El0BnulG5ZIUsSCjKhUIhkGBH4QLXu8XbgOEDdCeS4XKkj8HyoBAwq0hQNPi8R/E04nkM1VZBOzleCEgpOHirV6JqBsrcGh99C9EYhjxDFZwM+TevSxRBqbg0lp4RUPIVXugfg+yKGwInpUQxdOoTp1WvI1dbw/IX9OP7HJ6i4JRpkBXCZJBTR2HA20P/Yixg/MIbV8j2q0DA+eBqvPfkqHJ++cdXos6M4N3gOfZ19SEUewcWhn5B5LoOYHocnPLtfoalZuLx0Gb2dvfjm0Nc43vchE+Qh8/unJGckaf3M32dw7MoxXM9dx0LxX3xw5SjGb34Ou24z3ppUKCuVvyQ0YFPlU1/twcJIFsv2Mo7+8hFLZwUJs10qGO4aRiqWwu7YbiTNJEb2jiAVTiGsh+EyIQJbCgVEQnZGd8rxjsgODD5+QLorkiLQeP4/tmIoEpG0krj6zm/47ub3ePvCu3h/33t4q/dNOSfycmnxIib+nMBscRYrlRVM/jWJqfkplJ0ykyJYmi4L1LwahlKDmP7nGj7+9QQiRhRjV0/j6Y40QsxgwPVH0keQTvYgFoojalj48oVJJIwOxI04Kk6Vyli32Xw2ePnbg9gV75KnwmcF10kuxqKYLca2TrdFOKKJGGzPxql9p9CTSKP/534MPDqAsb7PYKphRCyeKkE4QMLu9m6ZVXEqBJmAqE3xrtAd13PxxcEJ9CSfgOrzIKgGS+0es2syoVF5COJhk3PMjnBXkKm87m9RqqJKcnH8xHwbImjXO2hIIUEdYe0h9oAIjTFxPrNMj9Q23cKu9i5JkK/mcbe8iiLblzhyws1NhSLmqs4wUbxlaLx1sBewIShyHG4zOEfj3BDcyjfb1/oc+5+NObavpQ22r41G+xJxFaTnD//AbrNXGt8OLRusULhWZYOtNhqsMDazegOZl04iakabq1rjgf8CPN/bStb2AP4DJCLLdmW3KuoAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAMAAADXqc3KAAAAA3NCSVQICAjb4U/gAAAACXBIWXMAAACmAAAApgHdff84AAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAQVQTFRF////QUebQUebRkyeT1OhurPPyJ+25Z2r4p6u8o+YQUebQkibQ0mcREqcRUqdRUudRkydR0yeSE6fSU+fSlCgTFGgTVOhUlejU1ikVVulWF2mWF6nWmCoW2CoX2SqYWaraG2ua3CwbWyrb3OyeX23f3uygIS6iIy/i4/AjI/AlZXCmpvGm57InaDJno64oKLKoZW+op3Fo6bMr7HSso+yv8HawLPNzJ61z7HF07TH1tfl2J6w2MHQ26Gy36y63+Dq4eLr4rK/5eXt6Jyo6Onv6qey67nB7Z2n8KCo9qqw95+l96+0+JOa+KGn+KOp+Kiu+pWa+4qR+5OZ+5Sa/ICH/WZv/l5nX4groAAAAAp0Uk5TAMng4eL09vj7/YtltGkAAADQSURBVBgZvcFpOwJRGIDhd6YsPWGMkSFDyZJ93/e1wkEv1f//Kc65kOXS1+5buqGvJ+2nMpmUn+7t9795UrqpzIWq4XztqsgPQrD7vK968LIV8CGLI8aY+luz+Vo3xuBM741gScNptRoOTm5xGEvieOXxXPX0aTOO+TS4No7kDx/WI9Vo+f4kD0MDWNHOBHJ3lhCqhiRHVdjeAHJYwi9TCbA6CggdCFYwWQj4Q7AKF5cztEU4grVwfVvmS/F4DEtwyku0ZWdxhA7E8//lSRe8A3sPIUBaDkRgAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAMAAADXqc3KAAAAA3NCSVQICAjb4U/gAAAACXBIWXMAAACmAAAApgHdff84AAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAANtQTFRF////QUebQUebRkyeT1OhurPPyJ+25Z2r4p6u8o+YQUebQ0mcRUudRkudR0yeSE2eSU+fTU+dUlejWF2mWmCoXVefYlyiZlyhaG2ubWyreX23emahf3uyhm+kh2ugh2uhlZXCl3OjmpvGno64oZW+op3Fqn2ksn2hso+yun6ewLPNw3uYyYKczHmTzJ61z7HF07TH2J6w2MHQ26Gy36y64rK/6Jyo6qey67nB7Z2n8KCo9qqw95+l96+0+JOa+KGn+KOp+Kiu+pWa+4qR+5OZ+5Sa/ICH/WZv/l5nb/nxTQAAAAp0Uk5TAMng4eL09vj7/YtltGkAAAC1SURBVCiRY2CgA2BnZWFi5uRkZmJh42BCAEYGSTMLKT5nZz4ZK1MJLiTAwMWj4aDl7KznqMrDhSJhZ2fn5Oru7uIEZKBIuIGAhweYAosICkIkhISUbE2cnY3sVYSEwCKamhAJYX0bZQFnZwEFa0NhsIicHJcgN1DC3FiEC+QqLhEDSy4uflGgFK+2GshVKEBdlxdIKspjSEjLIvyBA2BKiIvjkNDRwSEhJkbADkYmrICRHlEOAELbG9c9axp/AAAAAElFTkSuQmCC\"","module.exports = __webpack_public_path__ + \"static/media/oval2.78d6607a.png\";","module.exports = __webpack_public_path__ + \"static/media/oval3.0b9b09a4.png\";","module.exports = __webpack_public_path__ + \"static/media/sample-activity-report-us.bd858d10.pdf\";","module.exports = __webpack_public_path__ + \"static/media/no-image.3b631ae5.jpg\";","module.exports = __webpack_public_path__ + \"static/media/csv-download.e2c62f90.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAPCAYAAADtc08vAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYxIDY0LjE0MDk0OSwgMjAxMC8xMi8wNy0xMDo1NzowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNS4xIFdpbmRvd3MiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NDBCNkM3QkMyMDU3MTFFMzgwQjFFOEEyNjZFOEE1OUUiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NDBCNkM3QkQyMDU3MTFFMzgwQjFFOEEyNjZFOEE1OUUiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo0MEI2QzdCQTIwNTcxMUUzODBCMUU4QTI2NkU4QTU5RSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo0MEI2QzdCQjIwNTcxMUUzODBCMUU4QTI2NkU4QTU5RSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Prja0uAAAAFySURBVHjapJMhTMNQEIb/komH2xLEBIIJBLihQCIQCw4kioDD4lYLihkCKBIUkCBwG24TJGwJhJIgKrsEEipIWkGyE0uOe6+DdU1bBE3atHd/v//6v1eLmfGfo5As2E8O+wSoZGcY1Y6Wq1YmYL/ncuPVzbYTSDggPl9dsVIBrTdPXBSKUqUMQPP9Y6I0FX8IiKD++GAaUjpgt9PlUADIch8durd+1+YJwOmLy82+jK9U/gQmSIUH34fdcwzE0stYum4Zd6XHEwgKGRjdFx2N+ry9YZkQbfIi57VNoNsEHtsCmk7MPgAWlqBqW6BuG6HvjVdhryDunUugLBjnFug/SycBGApAjDBbBO6vQJXqGED6qokXjSim5MtGKbVPXzQHwFcAmq+aqaN9oISqSuZlknsdpg4snrzZmXqVKIy0Rq+DkBD1GRzXeVArcnBW559a2mk0hzu/mvFGmluMUi5X8v8erZmJaeL04OYk1z1N8y3AAKF52/mUKYShAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABYElEQVQ4jdWQPUhCcRTFz/uwkkyhsmgzKIIn9Ie2KIJycoggDPpYCnIIGlvb3Jqaw6HpSbUVOIQtQRESGPFeIQVCg9EHSTxRnv/7/k1KWNBrqwN3OefyO9wL/HtJlVR4H4D2w54NYMU7b+SaA5WIYm6abjwjS7HMmQ9A/iASeKr7MhHBzZx7JjfGOp1TzUcPs8dvy78GEHFEex2s9TstQcVOTqefFwFA5ZzcXADOCZtXNlQJqBBkEmI3eli0VCK3AI5SlX+2VADbDUCNgMydHwAQGXiHR/kKqFklONcnkPxByEOjABBSVqfaJ2okvKlcQH3tmVNLrWGYt/fVwa7Ki82FZXNhlWuKdaTMWI/pvbaF4T6Z5y9QLHNLdHSbjQbGWFLXdaHrumCMJb87gzF2mc1mRSKREIyxdQCQ6qGmaSEhxA4ASJIUN02z0AzQNG1cCLEFoCDLctwwDMvVA/+2PgAiZc60wdRgMQAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/opt-logo.9b9bdde4.png\";","module.exports = __webpack_public_path__ + \"static/media/stortrack-logo.20e00f52.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAACXBIWXMAAC4jAAAuIwF4pT92AAAGaGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDAgNzkuMTYwNDUxLCAyMDE3LzA1LzA2LTAxOjA4OjIxICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOCAoTWFjaW50b3NoKSIgeG1wOkNyZWF0ZURhdGU9IjIwMTgtMDUtMDRUMTI6MDQ6NDQtMDQ6MDAiIHhtcDpNb2RpZnlEYXRlPSIyMDE4LTA1LTA3VDEyOjU1OjE2LTA0OjAwIiB4bXA6TWV0YWRhdGFEYXRlPSIyMDE4LTA1LTA3VDEyOjU1OjE2LTA0OjAwIiBkYzpmb3JtYXQ9ImltYWdlL3BuZyIgcGhvdG9zaG9wOkNvbG9yTW9kZT0iMyIgcGhvdG9zaG9wOklDQ1Byb2ZpbGU9InNSR0IgSUVDNjE5NjYtMi4xIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjk4MTY2NGU1LTcwZTUtNDlmOC05OTg4LTBlZDFkNWUxZWM2MSIgeG1wTU06RG9jdW1lbnRJRD0iYWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjlmZjhlMDYyLWZlMTMtY2M0Yy1iOWRlLWZlMTg5MzE2NzhjNyIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOmUzZTZjOWRmLWYwMWMtNGEyYy1iN2MxLTdmYjEyMDA3ZDM4MiI+IDx4bXBNTTpIaXN0b3J5PiA8cmRmOlNlcT4gPHJkZjpsaSBzdEV2dDphY3Rpb249ImNyZWF0ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6ZTNlNmM5ZGYtZjAxYy00YTJjLWI3YzEtN2ZiMTIwMDdkMzgyIiBzdEV2dDp3aGVuPSIyMDE4LTA1LTA0VDEyOjA0OjQ0LTA0OjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOCAoTWFjaW50b3NoKSIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY29udmVydGVkIiBzdEV2dDpwYXJhbWV0ZXJzPSJmcm9tIGFwcGxpY2F0aW9uL3ZuZC5hZG9iZS5waG90b3Nob3AgdG8gaW1hZ2UvcG5nIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJzYXZlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDo5ODE2NjRlNS03MGU1LTQ5ZjgtOTk4OC0wZWQxZDVlMWVjNjEiIHN0RXZ0OndoZW49IjIwMTgtMDUtMDdUMTI6NTU6MTYtMDQ6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE4IChNYWNpbnRvc2gpIiBzdEV2dDpjaGFuZ2VkPSIvIi8+IDwvcmRmOlNlcT4gPC94bXBNTTpIaXN0b3J5PiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PhgRMzoAAAScSURBVHic7ZvLThtXGMd/sWwpRuJiQloREsulUaK0USBdNIssMAtvvBqeAPsNmiegPEH7BjhPwKy88QJYZJFFFVJR0aQqcZ0Q58LFjiVjySy6mGN7xp6bx+OZCea3AWbOOXzf/9zPfOcKHiHnC4tAAlhUPV4QP1+qnu0CRSmd2vXALK4Mq2DhsAQsAUmHxWwDO4A8LEFcFUDOFxJABlhFqW03KQJPgZyUThXdKtQVAYTjayjOe0EOWHdDiIEEkPOFKeA3vHO8mxwDChFymlHOF34B3uCf84j//ULY4oi+W4Co9U2cD2zDYhtYkdKpSj+Z+hJAjOybuD/AuUURRYRduxlsdwE5X5CALYLrPCi2bQlbbWGrBcj5QgbYcGSSf2SldCpnlchSAKHmpgsG+cGKlE7JZglMBRB9fguYcs0kb6kAy2ZjgqEAYrR/g03nZ6ZjzFyLUa83ODo5pX521pelQ6QCfGc0O4RNMm5iw/nJiXF+/mmBsehVzfO9/df8WyzZtnKITKH4sqz3UncWEAuLpJ3S9ZwHuH/vDjPTMZs2Dp2k0WKpRwDVut6SmemYrvMtbt28Yc88b1gT3VqDXgtYw6VBz0wcH5hC2bdo0Aig2s66QrN57lZRbpERPrbpbgG2mn6Laq1m6uSHj5/7Kc4rND62BXBS+83mOXv7r3XflT9+pnT4vn/zho+mFainwYyT0kqH76nWatyam2VyYpxm85wPwXW+RQb4FbQCrDotrfqlRvVLbTCTvGUVIUAINCe2o0JC+NweAyTfTPEPCTpdYMlJCWPRKPGbs4bv6/WGZixo7ReMODo+5ejkFFCW2LPfXu8pr/zpk1vT6xJ0BEg6KWEsepW7t+cN3x+dnGoFuBYzTQ8H1M8aPHzwg+Ey+n7zDgf/lfj7nwMnJqtJAoRafSEIhMNhko8fme4hIpEwd2/Pk3z8iEjEbC9njZwvLIYI0OAXn7th26nJiXGL1mSLRAjttzpf6bdGv0/EmZwYH+RfLjr+LhAU5hPxgfIHUoBm81ycKjUs085+c90yjRlhOp+oA0HpsMze/qv2VPfwwY/E54yn2kgkzFg06vQIbiFQLaB+1uDFn39p5vm9/VeW+QY5dwihDU7wlbc6G6hWdxgSLwPVAvzgUgCUmJxRZTeE8kV1VCmGvIrGCiJSOrXbGgO2/TTEJ7ahMwju+GeHb+xARwDZPzt8QwYhgBgHiv7Z4jntSFT1OuCpP7b4QttXtQA57+3wjVzrl7YAItgw15v2wqEJte0+glmnjy9E1VqNZ8//MHzfPNee3pbelTk6Nt7YGO3/374rc2yyIbJzbqBiXf1HT4iMnC9s4G/05zDJSelUVv1AbzP0BCWu5qJRoav2QUcAEUzUk/ACoBtUbRYltkXw4oGdsi2lU/aDpAQrXIyuUETxRRdDAURXWObrFqGCRQS56YmQWC5mzdIEnKzVdt/ySEzE2n6NImSt4oShj/sCImh6g+DHDVew6TxcXpi4vDLj+NaYiL11Lap0ACooi5zfnWQe9NpcAm/vC3aTA570W+tqLi9ODmyKipG9OqvHSF6eNiOo1+f/B9NYlqadDveFAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAACXBIWXMAAC4jAAAuIwF4pT92AAAGaGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDAgNzkuMTYwNDUxLCAyMDE3LzA1LzA2LTAxOjA4OjIxICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOCAoTWFjaW50b3NoKSIgeG1wOkNyZWF0ZURhdGU9IjIwMTgtMDUtMDRUMTI6MDQ6NDItMDQ6MDAiIHhtcDpNb2RpZnlEYXRlPSIyMDE4LTA1LTA3VDEyOjU1OjE0LTA0OjAwIiB4bXA6TWV0YWRhdGFEYXRlPSIyMDE4LTA1LTA3VDEyOjU1OjE0LTA0OjAwIiBkYzpmb3JtYXQ9ImltYWdlL3BuZyIgcGhvdG9zaG9wOkNvbG9yTW9kZT0iMyIgcGhvdG9zaG9wOklDQ1Byb2ZpbGU9InNSR0IgSUVDNjE5NjYtMi4xIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOmE0NTk2ZjExLTFlZTQtNGFjMS1hMTgwLWQxZDQyMGZkMTI0MiIgeG1wTU06RG9jdW1lbnRJRD0iYWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjRlYzZiMWQ5LWJhMGQtYjM0Mi04NmI4LTQ4ZmQ0ZjFiNzY2NCIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOmUzOTNhYzhhLTc1MTQtNGM2NC04YjQzLWQwYjBhMzc1YWNkZSI+IDx4bXBNTTpIaXN0b3J5PiA8cmRmOlNlcT4gPHJkZjpsaSBzdEV2dDphY3Rpb249ImNyZWF0ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6ZTM5M2FjOGEtNzUxNC00YzY0LThiNDMtZDBiMGEzNzVhY2RlIiBzdEV2dDp3aGVuPSIyMDE4LTA1LTA0VDEyOjA0OjQyLTA0OjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOCAoTWFjaW50b3NoKSIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY29udmVydGVkIiBzdEV2dDpwYXJhbWV0ZXJzPSJmcm9tIGFwcGxpY2F0aW9uL3ZuZC5hZG9iZS5waG90b3Nob3AgdG8gaW1hZ2UvcG5nIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJzYXZlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDphNDU5NmYxMS0xZWU0LTRhYzEtYTE4MC1kMWQ0MjBmZDEyNDIiIHN0RXZ0OndoZW49IjIwMTgtMDUtMDdUMTI6NTU6MTQtMDQ6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE4IChNYWNpbnRvc2gpIiBzdEV2dDpjaGFuZ2VkPSIvIi8+IDwvcmRmOlNlcT4gPC94bXBNTTpIaXN0b3J5PiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pk9DWesAAAO3SURBVHic7ZvPThNBHMc/NDSxTRA0GiNEUjxoMEZAEz14AA699LS8QXkC7BMYnkB5AvsG7KmXHigHDx4MxWjUmGhDgl4EFkkKyXLwsNM/2+5ut2VnZ8vyuUB2Z2d+v+/O/HY685sRQkIvleeBDDDfdnlO/N1tu1YFalouWw3BLEZkVSwc1oBFYGnAairANqDLEiRQAfRSOQOsYTmeCbJuoAbowIaWy9aCqjQQAYTjr4F8EPX5oAisByHEhQRQ4HgnRS4oxMAC6KXyKyznJwatIyAMLBHeDvJw3wLopfIEsMnggU0WFWBFy2WNfh7qSwAR2bdQ/9bdMIDlfr4YCb8F9VI5T7SdB8u2LWGrL3z1AFHhu4FMUseqlssWexXqKcCQOt+gpwieAgzBmO+FQY+Y4CqAiPa/GF7nGxjAjNvXwSsIbjL8zoPlw6bbTcceICY5b+TYY2f8+hi3bt4gmRztulevn7G3/zuopgpOk6UuAcT0dgfJb//unds8nn1IOnXNtczfwyPef/gYVJMGsNA5bXYaAtKnt9NTkzx/OufpvAQmsHyzYRNAvP28TCvSqRQLTx7JbMKLvPCxSWcP6FIoaO5n7sluohc2H5sChPH2wQp6irH1gvbQuxZG6+lUyvP+3v4fPn/9jmmeyzRjDSiAfQhoMltsYJqm67366Rk7n77Idh7afE2AbcVWOua5u3P109MwTADICJ+bPUALq+UIoUFLgEV1dihjEVoCLKmzQxlLACNiLOzIauXx7APbp298bMxx3g9gmuccn5zYrh0cHvHtx09Z5i2MIjn4NX7s+CGZHO0qe3B4JMOsBpkE9r26yHH876R3ocGZ970oqor66ZnU+iMvgOQeQILWFnXkkO08MOccjgOkc0Hj5YtnrkEx4AUQXySwJyfEjd3IxwDZXAmAlZMTV6oJrNSTuFJLhJWNFUW0XLbaiAEVlYYoogKtILitzg5lbENLAF2dHcrQQQgg4kBNnS2h08xEbZ8H6EpMUYPe+KddgI3w7VBG09emAGLXtKjAmLAptu8Qd06F18O1RQk2H20CxKAXFP3kB6xjJRNcNgwcenjoKTLTU5Ok086JEQGnxHTiL0WmgV4qb3F5NkwqWi677HTDaz1ghcsxFAwsXxxxFUDk1S0z3CIYWImShlsBzxUhMV0sBGpSuBR6/dyPfbK0rzVBUdEqwzEcDHw6D1cHJvpbFRYVzxDNFaQKVlJ0tZ+Hrg5NXaTlWB+baye2Byc7ie3RWSdieXjai6gen/8P6qg791w8yaoAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAACXBIWXMAAC4jAAAuIwF4pT92AAAGaGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDAgNzkuMTYwNDUxLCAyMDE3LzA1LzA2LTAxOjA4OjIxICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOCAoTWFjaW50b3NoKSIgeG1wOkNyZWF0ZURhdGU9IjIwMTgtMDUtMDRUMTI6MDQ6NDQtMDQ6MDAiIHhtcDpNb2RpZnlEYXRlPSIyMDE4LTA1LTA3VDEyOjU1OjE4LTA0OjAwIiB4bXA6TWV0YWRhdGFEYXRlPSIyMDE4LTA1LTA3VDEyOjU1OjE4LTA0OjAwIiBkYzpmb3JtYXQ9ImltYWdlL3BuZyIgcGhvdG9zaG9wOkNvbG9yTW9kZT0iMyIgcGhvdG9zaG9wOklDQ1Byb2ZpbGU9InNSR0IgSUVDNjE5NjYtMi4xIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjQ0MzE4NjNkLWVjY2YtNGZiYS1hNTVhLTJmMTljZjA0M2JlZSIgeG1wTU06RG9jdW1lbnRJRD0iYWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjRjZjYyNzMxLTM5YjctZDg0YS05ODczLTA1ZmNiNGEyODQwOSIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjE4ZGQwYzAwLWU2ZmItNDk4Mi1hZjhmLTk4Yzg3OTZhOGE5NSI+IDx4bXBNTTpIaXN0b3J5PiA8cmRmOlNlcT4gPHJkZjpsaSBzdEV2dDphY3Rpb249ImNyZWF0ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6MThkZDBjMDAtZTZmYi00OTgyLWFmOGYtOThjODc5NmE4YTk1IiBzdEV2dDp3aGVuPSIyMDE4LTA1LTA0VDEyOjA0OjQ0LTA0OjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOCAoTWFjaW50b3NoKSIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY29udmVydGVkIiBzdEV2dDpwYXJhbWV0ZXJzPSJmcm9tIGFwcGxpY2F0aW9uL3ZuZC5hZG9iZS5waG90b3Nob3AgdG8gaW1hZ2UvcG5nIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJzYXZlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDo0NDMxODYzZC1lY2NmLTRmYmEtYTU1YS0yZjE5Y2YwNDNiZWUiIHN0RXZ0OndoZW49IjIwMTgtMDUtMDdUMTI6NTU6MTgtMDQ6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE4IChNYWNpbnRvc2gpIiBzdEV2dDpjaGFuZ2VkPSIvIi8+IDwvcmRmOlNlcT4gPC94bXBNTTpIaXN0b3J5PiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pk+c7loAAAWlSURBVHic7ZvdbhNHFIC/RDsSjkTBJiF1UiyTpKQ0KJAiwUUqYaT6or6peQKSNyhPQHkC+gaYJ4ivfOOLBKm5IFJIQmn5K4nl1nFDfuyQilRaS+2Fx2btrNfe8dhxAt+N7fXOmXPOnJmdnTnTRZuIJ5JXgCBwxXL5svxcsVxbBlLRSHi5DWrR1SrB0uAocAMIKYqZAx4B8VY5RKsD4olkEJgCblNsbZ2kgIdALBoJp3QJ1eIAafhdisa3gxhwT4cjmnJAPJE8DdynfYZXE6NJR3SrFownkj8Caxye8ci6l6QuSriOANnqM6gPbK1iDrgVjYTzbgq5coAc2WfQP8DpIkXRCcuNFmi4C8QTySgwS+caD0XdZqWuDdFQBMQTySnggZJKh8d0NBKO1buprgOkN2c0KHQY3IpGwnGnGxwdIPv8LHBam0rtJQ/cdBoTajpAjvZrHF3jS+SB87WeDk6D4AxH33go2lCzC9s6QE4sQi1R53AI1ZosHegCcl6/xPFofSt5bLqCXQTc5fgZD0Wb7ldfrIgA2fpr7dHn0DhvfXmqjoC77dXlUKiwsRwBndL6Qhj4z56lp+dE+drWdo6tnZzOaspRYFguTjUjscfjQQiD3Xd7yjICgwNcungBIYyK66MjsLWT49nzV2X5/v4+zg0OsL2T400q7baqKeAnqHTAbVXFSwqNjgwxv7Co5ISJ8TECg/6a//f6vIQmr7O1k+PUyZMIYWCaBZZ+/U1F3dtIB3RDxYqtMp/39yGEweS1q5z67KSrsv7+PkfjrfT6vOUIWXiyUo48lwSlzeVBMOpWQjXCKCohhEFo8jqBwYGGy166OOq6PtMsMDE+xuS1qwhDuC6PtLnkgBsqEqwIUanExPjXTIyP1W2dXp+XHs8Jx3vs6zMQhsH8wiLv9/ddl0faXHJASEWCFTslAoN+wje+dYyG3jNepfpMs6A83khCAF2yLyypSikxHAxw6eKFmv+bZoF0Zp0/M9kKpb/6cojRkSHX9S09/Z10Zl1JVwsTBpqWuNKZdUZHhmqGvBAGw8EAw8EApllgd2+P7Z0cZ3xqEaAY9tUEu6ncq1PGNAs8e/6qoXuFMOj1eRkdGaJX2QH/KpWr4orr50ctfvj+O0yzwPv9f5UGNbdoigD1jZFqtnZyCGG0xXid0+JuPmxRN8XfG5s6xDREM9PtKi5ri4B0Zh3TLOgS58i25ghYqXtXAzQxL3ddT1ZftK1oiwCA7MYm848XdY3Q9nW81dvVtDoAwCwUyG68bVl3ePl6Vas8g2JOjlaGgwHdIgFIZ7LaHn+S5W6KO6ra2H23p3v1BihNtF7qFpvqAognkv/plCqEwbVvLivP8uxYeLKic/ADIBoJd5XGgDmdgk2zwPzjRZ49f6VlQHyTSms3HmlzyQGPdEuHouLJuV8afkewI53JNlXegUfwwQHxVtTQ4/EwMT7m+JrsRDqTZelpy+YWcahcFl9D8dW4x+MpvwMIYXDG56XX53W9Nmjl5R+rvND8yLOQikbC56FyVfghihsjgS/8SosadlQvf7eIh6UvVgfEUHTAi9erpP/KMhQ8R2BwQGWVluzGJqupdEseoTbESl+q9wYfoCHvz9/fV7cb7L7bY3fvH7blro/mCY4TsWgkPF36Ud1U99DggOzG5oHHVo/HA+hbyGiCe9YfFe8Ccr8s1opa3+/vd4LxBxKt7V6G7lBMJjhu5KlqfbBxgMygOHDjMcA2qdopS2yW45MnNBeNhG/a/eG0HnCL49EVUhRtsaWmA2RXuMnRdkKeOhnkjitCMsNy2umeDme6XuZ43SUxmWt7FJ0wXS9PGFycF5BJ0w/o/BS6PA0aD58OTHw6MqN8akzm3nZCVmme4iTnZ5XCzR6bC9Le84LVxIA7blvdyqeDk02rYuGjPTprx0d5eNqJTj0+/z+YmRMEhVDPHwAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAUCAMAAACOLiwjAAAARVBMVEU0NDRPT08YGBgqKio1NTUhIiRbW1tHcEw8PDxeXV4tLS07OzsiIyNFRUUuLi4jIyVLTEs7OzsiIiIyMjJjY2NQUFEeHh4+rYaeAAAAFnRSTlPLKP7IxNUeAJBd0KHhLdrZhLnyqYFFq+mB4AAAAGNJREFUGNPFx8kBwjAMBMDVgTGS74Ttv1Q+6YH5DUqFwwyO7KhKNrNGqgOkxn1vkg1+xgh3jHEmcIlI711kTaC+H5/Xn3KVx5rwA/e1tnubAKkmJZVsSCUhJZVqkIyIKy1if3/g5AejHQDb3AAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAMAAADXqc3KAAAAA3NCSVQICAjb4U/gAAAACXBIWXMAAACmAAAApgHdff84AAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAT5QTFRF////yYmjy4iiyoWez4KbQUebTFGgWFym1cnZ2b3Nz8/h0M7gw8TcxcDX2rTE36a16YuZ6omX6MDKQUebQkibQkicSU+fSlCgTFKhWV6naW2vcHSyeHy3io2/kJPDqavPqqrOrK/RrabJrq3OsqjIx8neysLWysPYzc7h0MXY0cTW3t3o3t7p4+Ps5MTP57XA58zV6cDJ6+nu6+vw7urt7u7x8MPJ8MbM8u7w8vL0873D88HG9cXK9d3g9eDi9eLk9sLG9trd9t7f9uTl987R99bY+Lq++Lu++MrN+aWq+aqu+aqv+a6y+bK2+bS4+ba6+pOZ+p2i+p+k+p+l+qWq+qaq+11n+4eN+4qR+5CW+5OZ/HZ+/Hh//HuC/H6F/H+G/Whw/Whx/Wlx/Wpy/Wx0/W11/W52/XB4/XR8/0tV1V+/bAAAABN0Uk5TAIiJjI/g4uPv8fT09fX29/f3/BKYwjEAAADnSURBVCiRY2CgA2Dm4GFnBQE2obAwITYwk51XkJGBP8ndWFZEWFhYwiMz00MCyBCRNUv24mIQV4mId1aVREhIqkXG2CqKMwgLS+sn+5rKiUIkROWsEnx1pIWFgRLCYkoBMU4aUiAJKa3wOHt5MaAggwQIyBim+1mCJBxS3HRlwEIMHnDgnZnpjeAxZOIAuCVwGgWxXNc/1QZkuUVQtAHUcpBz5e1iIzQhztVwSfFUADsX6EFtn0RrhAdNAtP1QB4UV3TMiFJHDhJV1/RgZXEG7pBkc/RANApN42NgEuDFDHYeThZ6RDkAuANSnk/1EPUAAAAASUVORK5CYII=\"","module.exports = __webpack_public_path__ + \"static/media/login-in.3336b823.png\";","module.exports = __webpack_public_path__ + \"static/media/signout.36469781.png\";","module.exports = __webpack_public_path__ + \"static/media/flat-triangle.76f7bdf7.svg\";","module.exports = __webpack_public_path__ + \"static/media/favicon_new.8cfbc382.ico\";","module.exports = __webpack_public_path__ + \"static/media/favicon_old.8c4aea43.ico\";","module.exports = __webpack_public_path__ + \"static/media/show.0656055e.png\";","module.exports = __webpack_public_path__ + \"static/media/unshow.086611c4.png\";"],"sourceRoot":""}