{"version":3,"sources":["config/env.ts","constants/styles.tsx","utils/format.tsx","context/DetailsFlowContext.tsx","components/Layout/images/rumbleon-black-logo.svg","utils/validate.tsx","context/SellFlowContext.tsx","context/GeolocationContext.tsx","components/Home/TermsofUse.tsx","context/Global.tsx","context/AuthPopupContext.tsx","context/ModalContext.tsx","assets/images/maintenance_page_2x.png","assets/images/maintenance_page_mobile.png","components/ScrollToTop/ScrollToTop.tsx","constants/index.tsx","serviceWorker.ts","Modals/FinanceNonTCIStateModal.tsx","Modals/AcceptOfferSuccessModal.tsx","Modals/components/RequestInfoForm.tsx","Modals/RequestInfoModal.tsx","components/Home/RumbleOnFinance.tsx","Modals/AcceptFinanceOptInLanguage.tsx","Modals/AcceptTOU.tsx","components/ApolloWrapper/ApolloWrapper.tsx","components/CreatePassword/SetPasswordForm.tsx","components/Layout/components/CookieeConsent.tsx","components/Layout/components/Banner.tsx","components/Layout/images/facebook-f-brands.svg","components/Layout/images/instagram-brands.svg","components/Layout/components/MobileFooter.tsx","components/Layout/images/pinterest-brands.svg","components/Layout/images/rumbleon-logo-white.svg","components/Layout/images/twitter-brands.svg","components/Layout/images/youtube-brands.svg","components/Layout/components/Footer.tsx","components/Layout/components/MainMenu.tsx","components/Layout/components/MobileTopLeftMenu.tsx","components/Layout/components/TopRightMenu.tsx","components/Layout/Layout.tsx","components/Maintainance/maintainance.tsx","App.tsx","index.tsx","context/CashOfferContext.tsx"],"names":["ENGINE_API_KEY","REACT_APP_GRAPHQL_ENDPOINT","REACT_APP_S3_LINK","REACT_APP_SECURED_S3_LINK","REACT_APP_SECURED_S3_KEY","REACT_S3_ROTATE","REACT_DEALER_S3_LINK","REACT_APP_CLS_API_ENDPOINT","REACT_APP_ES_APP","REACT_DEALER_ES_APP","TCI_URL","REACT_APP_GTM_ID","REACT_APP_ES_CREDENTIALS","REACT_APP_ES_LINK","REACT_DEALER_ES_LINK","REACT_APP_RMBL_BASE","INVENTORY_API_ENDPOINT","REACT_ES_BASIC_AUTH","REACT_APP_CW_CASH_OFFER","REACT_APP_DEALER_DETAIL","REACT_APP_STRIPE_KEY","REACT_APP_SEGMENT_KEY","SCHEMA_PATH","GOOGLE_RECAPTCHA_KEY","ACCEPT_OFFER_SF_URL","DEALER_PORTAL_URL","AUTH_API_ENDPOINT","VINLESS_ES_URL","REACT_MARINEVINLESS_ES_APP","REACT_MARINEVINLESS_ES_LINK","CAREERS_JOB","CAREERS_KEY","window","location","hostname","environmentVariableList","colors","bgGrey","darkBlack","darkCharcoal","lightCharcoal","iconGray","textGrey","blue","lightGrey","superLightGray","shadow","greenShade","lightGreen","errorRed","purple","orangeTint","breakpoints","minMedia","map","bp","maxMedia","formatNumber","value","Intl","NumberFormat","format","formatCurrency","style","currency","minimumFractionDigits","formatPhoneNumber","phone","match","length","slice","replace","formatDate","parsedDate","Date","a","moment","b","expiredDateH","diff","expiredDateD","expiredDateM","expiredDateY","Math","abs","fromNow","tokenFormatter","token","base64","split","jsonPayload","decodeURIComponent","atob","c","charCodeAt","toString","join","JSON","parse","formatMileage","shuffleArray","array","newArray","i","j","floor","random","DetailsFlowStateContext","React","undefined","DetailsFlowDispatchContext","localDetailsFlowState","localStorage","getItem","error","console","DetailsFlowContextReducer","state","action","type","args","DetailsFlowContextProvider","children","dispatch","setItem","stringify","Provider","useDetailsFlowState","context","Error","useDetailsFlowDispatch","module","exports","hasValidCharactersLength","hasOneLowercaseCharacter","test","hasOneUppercaseCharacter","hasOneNumeric","isLengthExceededForName","hasExclamationCharacter","indexOf","nameStartsLetter","validateName","message","result","validLength","splCharCheck","startsWithLetter","validateFirstAndLastNamePattern","validatePassword","oneLowerCase","oneUpperCase","oneNumeric","validatePasswordPattern","SellFlowStateContext","SellFlowDispatchContext","localSellFlowState","SellFlowContextReducer","SellFlowContextProvider","useSellFlowState","useSellFlowDispatch","GeolocationContext","createContext","SET_LOCATION","initialState","userLocation","GeolocationReducer","payload","GeolocationContextProvider","useReducer","useGeolocationContext","useContext","legalCss","css","TermsofUse","name","content","property","align","justify","xs","span","sm","md","lg","href","target","rel","id","GlobalFlowStateContext","GlobalFlowDispatchContext","localGlobalFlowState","GlobalFlowContextReducer","GlobalFlowContextProvider","useEffect","useGlobalFlowState","useGlobalFlowDispatch","cookies","Cookies","AuthPopupStateContext","loginVisible","signupVisible","IsLegacyUser","isLoggedIn","isModerator","UserNotificationPreferences","emailToVerify","AuthPopupDispatchContext","isRoleExists","roleName","decodedToken","jwtDecode","ROLE_KEY","Role","Array","isArray","includes","localAuthState","AuthPopupReducer","set","sameSite","jwtToken","Token","roles","MODERATOR","UserTypeId","userId","UserId","Uuid","Email","FirstName","LastName","Zip","City","State","Mobile","Email2","AuthPopupContextProvider","useAuthPopupState","useAuthPopupDispatch","ModalFlowStateContext","ModalFlowDispatchContext","localModalFlowState","ModalFlowContextReducer","ModalFlowContextProvider","useModalFlowState","useModalFlowDispatch","ScrollToTop","pathname","useLocation","scrollTo","mid","splitDealership","arr","dealershipObjects","log","item","lat","_source","latitude","lon","longitude","address","address1","stateName","logoURL","dealerLogoImgUrl","dealerAliases","alias","finalDealerObject","dealerWebsite","url","accountName","accountId","creditUrl","zip","website","push","splitDealershipFromData","titleStatusList","titleStatus","titleStatusId","SAFEX_ADMIN","ERROR_MESSAGE","default","badZip","cashofferbeingAppraised","beingAppraised","limitExceeded","fetchFailed","requestFailed","badVin","Boolean","FinanceNonTCIStateModal","showFinanceNonTCIStateModal","closestDealers","closable","visible","onCancel","footer","dealership","key","DealerId","src","DealerLogo","width","height","DealerName","DealerPortalUrl","AcceptOfferSuccessModal","showAcceptOfferSuccessModal","SEND_BUY_LEAD","create","form","detailState","vin","make","model","listingYear","price","listingId","mileage","MESSAGE","Number","useMutation","buyLeadMutationResult","data","onSubmit","e","preventDefault","validateFields","values","firstName","lastName","email","variables","UserUuid","Phone","Message","ListingId","LeadTypeId","ActivityTypeId","Vin","Year","Make","Model","Mileage","sendLead","success","showRequestInfoModal","notification","placement","resetFields","alt","gutter","Item","label","getFieldDecorator","initialValue","rules","required","size","showIcon","htmlType","onClick","RequestInfoModal","RumbleOnFinance","className","textAlign","ACCEPT_FINANCE_OPT_IN_LANGUAGE_MUTATION","AcceptFinanceOptInLanguage","authDispatch","showAcceptFinanceOptInModal","acceptFinanceOptInLanguage","loading","block","HasAcceptedV4TnC","ACCEPT_TOU_MUTATION","AcceptTOU","showAcceptTOUModal","ApolloWrapper","client","cache","InMemoryCache","link","createHttpLink","uri","authMiddleWare","ApolloLink","operation","forward","parsedToken","expTime","exp","currTime","getTime","setContext","headers","authorization","ApolloClient","concat","apolloClient","UPDATE_CASHOFFER_USER","history","useHistory","onCompleted","updateCashOfferUser","goBack","description","onError","_","updatePassword","updatePasswordResult","confirmPasswordDirty","setConfirmPasswordDirty","params","search","urlParams","uuid","spinning","colon","hideRequiredMark","updateInput","Password","password","input","validator","callback","validationResult","force","visibilityToggle","placeholder","getFieldValue","onBlur","USER_CONSENT_COOKIE_EXPIRE_DATE","CookieConsent","cookieConsentIsTrue","setCookieConsentIsTrue","consentIsTrue","get","expires","DynamicBanner","useState","modalShown","setmodalShown","setloading","banner","setBanner","bannerData","setBannerData","modelData","setModelData","playing","isBannerVisible","fetch","method","Accept","response","json","Success","Filterdata","BannerList","filter","Portal","Type","res","FilterdataModel","backgroundColor","InfoType","toLowerCase","DisplayText","shape","icon","centered","maskClosable","destroyOnClose","title","ImageUrl","VideoUrl","autoPlay","controls","_extends","Object","assign","bind","arguments","source","prototype","hasOwnProperty","call","apply","this","_objectWithoutProperties","excluded","sourceKeys","keys","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","createElement","fill","d","_ref","svgRef","props","focusable","role","viewBox","ref","ForwardRef","forwardRef","MobileFooter","SubMenu","useCashOfferContext","ItemTypeId","decodeData","queryString","parseUrl","query","utm_source","to","dealerBrandType","refresh","background","mode","STOCK_MARKET_VALUE","Footer","count","setCount","stockQueryResult","useQuery","skip","stock","getstockflow","aria-label","parseFloat","toFixed","changepercent","change","MainMenu","selectedKeys","setSelectedKeys","setModalVisble","handleClose","MobileTopLeftMenu","modalVisible","ghost","Logo","borderRadius","top","TopRightMenu","Header","Content","AppLayout","dealerBranded","require","Helmet","MaintenancePage","MaintenancePageBg","MaintenancePageMobileBg","AsyncHomePage","lazy","AsyncCashOfferPage","AsyncDealerOfferPage","AsyncBuyPage","AsyncSellerViewPage","AsyncSellInfo","AsyncResetPasswordPage","AsyncLogInPopUp","AsyncSignupPopup","AsyncMyGarage","AsyncLogin","AsyncAcceptOffer","AsyncAcceptOfferRideNow","AsyncThankYouInStoreAcceptance","AsyncDealerSearch","AsyncThankYouVinlessAcceptanceAsync","AsyncRenewOffer","AsyncLiveAuction","AsyncTCIFinancing","AsyncFinancing","AsyncDetailContainer","AsyncLegacyAuthRedirect","AsyncTradeInLeadPage","AsyncPrivacy","AsyncFaq","AsyncTermsofUse","AsyncAboutUs","AsyncContactUs","AsyncCareers","globalStyle","App","AuthPopupContext","Global","SellFlowContext","DetailsFlowContext","CashOfferContext","styles","fallback","path","exact","component","render","CreatePassword","MaintainanceAsync","visibilityHeight","TagManager","initialize","gtmId","container","document","getElementById","ReactDOM","clientId","navigator","serviceWorker","ready","then","registration","unregister","SET_CURRENT_STEP","SET_DECODE_DATA","SET_COENTRY","SET_APPRAISAL_REF","SET_FORM_DATA","SET_SELECTED_TRIM_OR_MODEL_LIST","SET_ATTACHMENTS","SET_PROMO_CODE","SET_LOADING","SET_DECODE_REQUEST","SET_CREATE_REQUEST","SET_UPDATE_REQUEST","SET_ASSIGN_REQUEST","SET_GUEST_SIGNUP_REQUEST","SET_GUEST_INFO","SET_ERROR","SET_COLOR_LIST","RESET_ERROR","RESET_STATE","SET_DEALER_BRAND","currentStep","completedSteps","appraisalRefNo","formData","selectedTrimOrModelList","attachments","promoCode","decodeRequest","createRequest","updateRequest","assignRequest","guestSignUpRequest","guestSignupInfo","bothInfo","colorList","CashOfferReducer","CashOfferContextProvider","reducer","initState","lastState","useRef","getState","useCallback","current","useEnhancedReducer"],"mappings":"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","file":"static/js/main.b61c22c5.chunk.js","sourcesContent":["let ENGINE_API_KEY = \"service:JoeDevGeeeee-2839:3vtgQng6FUHL6WIfT0szDQ\";\r\nlet REACT_APP_GRAPHQL_ENDPOINT = \"https://v4graphql.rumbleon.com/dev\";\r\nlet REACT_APP_S3_LINK = \"https://devsellimg.rumbleon.com\";\r\nlet REACT_APP_SECURED_S3_LINK = \"https://dev-doc-sf-ron-s3.s3.amazonaws.com\";\r\nlet REACT_APP_SECURED_S3_KEY = \"AKIAUZM55CJFVVPXAGHK\"\r\nlet REACT_S3_ROTATE = \"https://s3.amazonaws.com/bikeimages-ron-dev-s3\";\r\nlet REACT_DEALER_S3_LINK = \"https://devdlrimg.rumbleon.com\";\r\nlet REACT_APP_CLS_API_ENDPOINT = \"https://v4devclsapi.rumbleon.com\";\r\nlet REACT_APP_ES_APP = \"v4devlisting\";\r\nlet REACT_DEALER_ES_APP = \"v4devdealership\";\r\nlet TCI_URL =\r\n \"https://cp-demo.decisionlender.solutions/cp/#/rumb040/bike/newapp?\";\r\nlet REACT_APP_GTM_ID = \"GTM-NLTX2F8\";\r\nlet REACT_APP_ES_CREDENTIALS = \"dev-qa-ro:dX4FZJwcVF\";\r\nlet REACT_APP_ES_LINK = \"https://v4devesproxy.rumbleon.com\";\r\nlet REACT_DEALER_ES_LINK =\r\n \"https://f083d17c0b344911a8d6deeca1ef4659.us-east-1.aws.found.io:9243\";\r\nlet REACT_APP_RMBL_BASE = \"https://v4devconsumerweb.rumbleon.com\";\r\nlet INVENTORY_API_ENDPOINT = \"https://v4devinventory.rumbleon.com\";\r\nlet REACT_ES_BASIC_AUTH = \"Basic ZGV2LXFhLXJvOmRYNEZaSndjVkY=\";\r\nlet REACT_APP_CW_CASH_OFFER = \"https://v4devcashoffer.rumbleon.com\";\r\nlet REACT_APP_DEALER_DETAIL = \"https://v4devorg.rumbleon.com\"; //@todo: update\r\nlet REACT_APP_STRIPE_KEY = \"pk_test_bZ8UlmeKkUzngIMF0WDLXx5L\";\r\nlet REACT_APP_SEGMENT_KEY = \"WxPVwF17NiKb5j9knGDWED6TnKpNGOSZ\";\r\nlet SCHEMA_PATH = \"https://v4graphql.rumbleon.com/dev\";\r\nlet GOOGLE_RECAPTCHA_KEY = \"6LfKAKYZAAAAAMROukZEPWDklu1bSjxVimITbVAP\";\r\nlet ACCEPT_OFFER_SF_URL = \"http://dev-rumbleon.cs41.force.com\";\r\nlet DEALER_PORTAL_URL = \"https://v4devdealer.rumbleon.com/\";\r\nlet AUTH_API_ENDPOINT = \"https://v4devaccounts.rumbleon.com\";\r\nlet VINLESS_ES_URL =\r\n \"https://f083d17c0b344911a8d6deeca1ef4659.us-east-1.aws.found.io:9243\";\r\nlet REACT_MARINEVINLESS_ES_APP = \"v4pprodnadaymmmarine\";\r\nlet REACT_MARINEVINLESS_ES_LINK =\r\n \"https://b9bff4f64d8c49488791b9c344a8d05f.us-east-1.aws.found.io:9243\";\r\nlet CAREERS_JOB = \"https://v4pprodcareersapi.rumbleon.com/api/Careers/GetJobs\";\r\nlet CAREERS_KEY = \"Basic ZGV2LXFhLXJ3OkNrOXE5dTNKekc=\";\r\nif (window.location.hostname === \"localhost\") {\r\n // ENGINE_API_KEY = \"service:JoeDevGeeeee-2839:3vtgQng6FUHL6WIfT0szDQ\";\r\n // REACT_APP_GRAPHQL_ENDPOINT = \"https://v4graphql.rumbleon.com/dev\";\r\n // REACT_APP_S3_LINK = \"https://devsellimg.rumbleon.com\";\r\n // REACT_S3_ROTATE = \"https://s3.amazonaws.com/bikeimages-ron-dev-s3\";\r\n // REACT_DEALER_S3_LINK = \"https://devdlrimg.rumbleon.com\";\r\n // REACT_APP_CLS_API_ENDPOINT = \"https://v4devclsapi.rumbleon.com\";\r\n // REACT_APP_ES_APP = \"v4devlisting\";\r\n // REACT_DEALER_ES_APP = \"v4devdealership\";\r\n // TCI_URL =\r\n // \"https://cp-demo.decisionlender.solutions/cp/#/rumb040/bike/newapp?\";\r\n // REACT_APP_GTM_ID = \"GTM-NLTX2F8\";\r\n // REACT_APP_ES_CREDENTIALS = \"dev-qa-ro:dX4FZJwcVF\";\r\n // REACT_ES_BASIC_AUTH = \"Basic ZGV2LXFhLXJvOmRYNEZaSndjVkY=\";\r\n // REACT_APP_ES_LINK = \"https://v4devesproxy.rumbleon.com\";\r\n // REACT_DEALER_ES_LINK =\r\n // \"https://f083d17c0b344911a8d6deeca1ef4659.us-east-1.aws.found.io:9243\";\r\n // REACT_APP_RMBL_BASE = \"https://v4devconsumerweb.rumbleon.com\";\r\n // INVENTORY_API_ENDPOINT = \"https://v4devinventory.rumbleon.com\";\r\n // REACT_APP_CW_CASH_OFFER = \"https://v4devcashoffer.rumbleon.com\";\r\n // REACT_APP_DEALER_DETAIL = \"https://v4devorg.rumbleon.com\"; //@todo: update\r\n // REACT_APP_STRIPE_KEY = \"pk_test_bZ8UlmeKkUzngIMF0WDLXx5L\";\r\n // REACT_APP_SEGMENT_KEY = \"WxPVwF17NiKb5j9knGDWED6TnKpNGOSZ\";\r\n // SCHEMA_PATH = \"https://v4graphql.rumbleon.com/dev\";\r\n // GOOGLE_RECAPTCHA_KEY = \"6LfKAKYZAAAAAMROukZEPWDklu1bSjxVimITbVAP\";\r\n // ACCEPT_OFFER_SF_URL = \"http://dev-rumbleon.cs41.force.com\";\r\n // DEALER_PORTAL_URL = \"https://v4devdealer.rumbleon.com/\";\r\n // AUTH_API_ENDPOINT = \"https://v4devaccounts.rumbleon.com\";\r\n\r\n // ENGINE_API_KEY = \"service:CLS-QA:K_l1Qdtm9K5OiZzOQocydA\";\r\n // REACT_APP_GRAPHQL_ENDPOINT =\r\n // \"https://afead39mof.execute-api.us-east-1.amazonaws.com/qa\";\r\n // REACT_APP_S3_LINK = \"https://qasellimg.rumbleon.com\";\r\n // REACT_DEALER_S3_LINK = \"https://qadlrimg.rumbleon.com\";\r\n // REACT_APP_CLS_API_ENDPOINT = \"https://v4qaclsapi.rumbleon.com\";\r\n // REACT_APP_ES_APP = \"v4qalisting\";\r\n // REACT_DEALER_ES_APP = \"v4qadealership\";\r\n // REACT_APP_GTM_ID = \"GTM-NLTX2F8\";\r\n // REACT_APP_ES_CREDENTIALS = \"dev-qa-ro:dX4FZJwcVF\";\r\n // REACT_APP_ES_LINK = \"https://v4qaesproxy.rumbleon.com\";\r\n // REACT_APP_RMBL_BASE = \"https://v4qaconsumerweb.rumbleon.com\";\r\n // REACT_APP_CW_CASH_OFFER = \"https://v4qacashoffer.rumbleon.com\";\r\n // //REACT_APP_DEALER_DETAIL //@todo: update\r\n // REACT_APP_STRIPE_KEY = \"pk_test_bZ8UlmeKkUzngIMF0WDLXx5L\";\r\n // REACT_APP_SEGMENT_KEY = \"WxPVwF17NiKb5j9knGDWED6TnKpNGOSZ\";\r\n // SCHEMA_PATH = \"https://afead39mof.execute-api.us-east-1.amazonaws.com/qa\";\r\n // GOOGLE_RECAPTCHA_KEY = \"6LfKAKYZAAAAAMROukZEPWDklu1bSjxVimITbVAP\";\r\n // ACCEPT_OFFER_SF_URL = \"https://rithomdev-rumbleon.cs25.force.com\";\r\n\r\n // ENGINE_API_KEY = \"service:CLS-PPROD:zcQOVja2uoZxs4Jd3ZmjHQ\";\r\n // REACT_APP_GRAPHQL_ENDPOINT =\r\n // \"https://38xu3d4ix6.execute-api.us-east-1.amazonaws.com/pprod\";\r\n // REACT_APP_S3_LINK = \"https://sellimg.rumbleon.com\";\r\n // REACT_S3_ROTATE = \"https://s3.amazonaws.com/rumbleon-sell-images\";\r\n // REACT_DEALER_S3_LINK = \"https://dlrimg.rumbleon.com\";\r\n // REACT_APP_CLS_API_ENDPOINT = \"https://v4pprodclsapi.rumbleon.com\";\r\n // REACT_APP_ES_APP = \"v4pplisting\";\r\n // REACT_DEALER_ES_APP = \"v4ppdealership\";\r\n // REACT_APP_GTM_ID = \"GTM-NLTX2F8\";\r\n // REACT_APP_ES_CREDENTIALS = \"pp-p-ro:sa2SMv7q53\";\r\n // REACT_APP_ES_LINK =\r\n // \"https://dffc02afc6ba4a4b8ff3dafb6e86a20d.us-east-1.aws.found.io:9243\";\r\n // REACT_DEALER_ES_LINK =\r\n // \"https://dffc02afc6ba4a4b8ff3dafb6e86a20d.us-east-1.aws.found.io:9243\";\r\n // REACT_APP_RMBL_BASE = \"https://v4pprodconsumerweb.rumbleon.com\";\r\n // REACT_APP_CW_CASH_OFFER = \"https://v4pprodcashoffer.rumbleon.com\";\r\n // REACT_APP_DEALER_DETAIL = \"https://v4pprodorg.rumbleon.com\"; //@todo: update\r\n // REACT_APP_STRIPE_KEY = \"pk_test_bZ8UlmeKkUzngIMF0WDLXx5L\";\r\n // REACT_APP_SEGMENT_KEY = \"WxPVwF17NiKb5j9knGDWED6TnKpNGOSZ\";\r\n // SCHEMA_PATH = \"https://38xu3d4ix6.execute-api.us-east-1.amazonaws.com/pprod\";\r\n // GOOGLE_RECAPTCHA_KEY = \"6LfKAKYZAAAAAMROukZEPWDklu1bSjxVimITbVAP\";\r\n // ACCEPT_OFFER_SF_URL = \"https://pprodron-rumbleon.cs40.force.com\";\r\n // DEALER_PORTAL_URL = \"https://v4pproddealer.rumbleon.com\";\r\n\r\n // ENGINE_API_KEY = \"service:CLS-PROD:wz0Hjcagrfb_aEQRm6bqPQ\";\r\n // REACT_APP_GRAPHQL_ENDPOINT =\r\n // \"https://lr4xueuy09.execute-api.us-east-1.amazonaws.com/production/\";\r\n // REACT_APP_S3_LINK = \"https://sellimg.rumbleon.com\";\r\n // REACT_S3_ROTATE = \"https://s3.amazonaws.com/rumbleon-sell-images\";\r\n // REACT_DEALER_S3_LINK = \"https://dlrimg.rumbleon.com\";\r\n // REACT_APP_CLS_API_ENDPOINT = \"https://clsapi.rumbleon.com\";\r\n // REACT_APP_ES_APP = \"v4prodlisting\";\r\n // REACT_DEALER_ES_APP = \"v4proddealership\";\r\n // REACT_APP_GTM_ID = \"GTM-NLTX2F8\";\r\n // REACT_APP_ES_CREDENTIALS = \"pp-p-ro:sa2SMv7q53\";\r\n // REACT_APP_ES_LINK = \"https://prodesproxy.rumbleon.com\";\r\n // REACT_DEALER_ES_LINK =\r\n // \"https://dffc02afc6ba4a4b8ff3dafb6e86a20d.us-east-1.aws.found.io:9243\";\r\n // REACT_APP_RMBL_BASE = \"https://www.rumbleon.com\";\r\n // INVENTORY_API_ENDPOINT = \"https://inventory.rumbleon.com\";\r\n // REACT_APP_CW_CASH_OFFER = \"https://cashoffer.rumbleon.com\";\r\n // REACT_APP_DEALER_DETAIL = \"https://org.rumbleon.com\";\r\n // REACT_APP_STRIPE_KEY = \"sk_live_pIYw9bnADfs141pksMRpT2Ez\";\r\n // REACT_APP_SEGMENT_KEY = \"KbQHjkSQfITWUPPH853oOUAIw6xXpu9W\";\r\n // SCHEMA_PATH =\r\n // \"https://lr4xueuy09.execute-api.us-east-1.amazonaws.com/production/\";\r\n // GOOGLE_RECAPTCHA_KEY = \"6LfKAKYZAAAAAMROukZEPWDklu1bSjxVimITbVAP\";\r\n // ACCEPT_OFFER_SF_URL = \"https://rumbleon.secure.force.com/\";\r\n // DEALER_PORTAL_URL = \"https://dealer.rumbleon.com\";\r\n\r\n // ENGINE_API_KEY = \"service:CLS-PROD:wz0Hjcagrfb_aEQRm6bqPQ\";\r\n // REACT_APP_GRAPHQL_ENDPOINT =\r\n // \"https://lr4xueuy09.execute-api.us-east-1.amazonaws.com/production/\";\r\n // REACT_APP_S3_LINK = \"https://sellimg.rumbleon.com\";\r\n // REACT_S3_ROTATE = \"https://s3.amazonaws.com/rumbleon-sell-images\";\r\n // REACT_DEALER_S3_LINK = \"https://dlrimg.rumbleon.com\";\r\n // REACT_APP_CLS_API_ENDPOINT = \"https://clsapi.rumbleon.com\";\r\n // REACT_APP_ES_APP = \"v4prodlisting\";\r\n // REACT_DEALER_ES_APP = \"v4proddealership\";\r\n // REACT_APP_GTM_ID = \"GTM-NLTX2F8\";\r\n // REACT_APP_ES_CREDENTIALS = \"pp-p-ro:sa2SMv7q53\";\r\n // REACT_APP_ES_LINK = \"https://prodesproxy.rumbleon.com\";\r\n // REACT_DEALER_ES_LINK =\r\n // \"https://dffc02afc6ba4a4b8ff3dafb6e86a20d.us-east-1.aws.found.io:9243\";\r\n // REACT_APP_RMBL_BASE = \"https://www.rumbleon.com\";\r\n // INVENTORY_API_ENDPOINT = \"https://inventory.rumbleon.com\";\r\n // REACT_APP_CW_CASH_OFFER = \"https://cashoffer.rumbleon.com\";\r\n // REACT_APP_DEALER_DETAIL = \"https://org.rumbleon.com\";\r\n // REACT_APP_STRIPE_KEY = \"sk_live_pIYw9bnADfs141pksMRpT2Ez\";\r\n // REACT_APP_SEGMENT_KEY = \"KbQHjkSQfITWUPPH853oOUAIw6xXpu9W\";\r\n // SCHEMA_PATH =\r\n // \"https://lr4xueuy09.execute-api.us-east-1.amazonaws.com/production/\";\r\n // GOOGLE_RECAPTCHA_KEY = \"6LfKAKYZAAAAAMROukZEPWDklu1bSjxVimITbVAP\";\r\n // ACCEPT_OFFER_SF_URL = \"https://rumbleon.secure.force.com/\";\r\n // DEALER_PORTAL_URL = \"https://dealer.rumbleon.com\";\r\n\r\n // ENGINE_API_KEY = \"service:CLS-PPROD:zcQOVja2uoZxs4Jd3ZmjHQ\";\r\n // REACT_APP_GRAPHQL_ENDPOINT = \"https://v4graphql.rumbleon.com/pprod\";\r\n // REACT_APP_S3_LINK = \"https://sellimg.rumbleon.com\";\r\n // REACT_S3_ROTATE = \"https://s3.amazonaws.com/rumbleon-sell-images\";\r\n // REACT_DEALER_S3_LINK = \"https://dlrimg.rumbleon.com\";\r\n // REACT_APP_CLS_API_ENDPOINT = \"https://v4pprodclsapi.rumbleon.com\";\r\n // REACT_APP_ES_APP = \"v4pplisting\";\r\n // REACT_DEALER_ES_APP = \"v4ppdealership\";\r\n // REACT_APP_GTM_ID = \"GTM-NLTX2F8\";\r\n // REACT_APP_ES_CREDENTIALS = \"pp-p-ro:sa2SMv7q53\";\r\n // REACT_ES_BASIC_AUTH = \"Basic cHAtcC1ybzpzYTJTTXY3cTUz\";\r\n // REACT_APP_ES_LINK = \"https://v4pprodesproxy.rumbleon.com\";\r\n // REACT_DEALER_ES_LINK =\r\n // \"https://dffc02afc6ba4a4b8ff3dafb6e86a20d.us-east-1.aws.found.io:9243\";\r\n // REACT_APP_RMBL_BASE = \"https://v4pprodconsumerweb.rumbleon.com\";\r\n // INVENTORY_API_ENDPOINT = \"https://v4pprodinventory.rumbleon.com\";\r\n // REACT_APP_CW_CASH_OFFER = \"https://v4pprodcashoffer.rumbleon.com\";\r\n // REACT_APP_DEALER_DETAIL = \"https://v4pprodorg.rumbleon.com\"; //@todo: update\r\n // REACT_APP_STRIPE_KEY = \"pk_test_bZ8UlmeKkUzngIMF0WDLXx5L\";\r\n // REACT_APP_SEGMENT_KEY = \"WxPVwF17NiKb5j9knGDWED6TnKpNGOSZ\";\r\n // SCHEMA_PATH = \"https://v4graphql.rumbleon.com/pprod\";\r\n // GOOGLE_RECAPTCHA_KEY = \"6LfKAKYZAAAAAMROukZEPWDklu1bSjxVimITbVAP\";\r\n // ACCEPT_OFFER_SF_URL = \"http://dlr-rumbleon.cs50.force.com\";\r\n // DEALER_PORTAL_URL = \"https://v4pproddealer.rumbleon.com\";\r\n // AUTH_API_ENDPOINT = \"https://v4pprodaccounts.rumbleon.com\";\r\n\r\n // ENGINE_API_KEY = \"service:CLS-PPROD:zcQOVja2uoZxs4Jd3ZmjHQ\";\r\n // REACT_APP_GRAPHQL_ENDPOINT = \"https://v4graphql.rumbleon.com/pprod\";\r\n // REACT_APP_S3_LINK = \"https://sellimg.rumbleon.com\";\r\n // REACT_S3_ROTATE = \"https://s3.amazonaws.com/rumbleon-sell-images\";\r\n // REACT_DEALER_S3_LINK = \"https://dlrimg.rumbleon.com\";\r\n // REACT_APP_CLS_API_ENDPOINT = \"https://v4pprodclsapi.rumbleon.com\";\r\n // REACT_APP_ES_APP = \"v4pplisting\";\r\n // REACT_DEALER_ES_APP = \"v4ppdealership\";\r\n // TCI_URL =\r\n // \"https://cp-demo.decisionlender.solutions/cp/#/rumb040/bike/newapp?\";\r\n // REACT_APP_GTM_ID = \"GTM-NLTX2F8\";\r\n // REACT_APP_ES_CREDENTIALS = \"pp-p-ro:sa2SMv7q53\";\r\n // REACT_ES_BASIC_AUTH = \"Basic cHAtcC1ybzpzYTJTTXY3cTUz\";\r\n // REACT_APP_ES_LINK = \"https://v4pprodesproxy.rumbleon.com\";\r\n // REACT_DEALER_ES_LINK =\r\n // \"https://dffc02afc6ba4a4b8ff3dafb6e86a20d.us-east-1.aws.found.io:9243\";\r\n // REACT_APP_RMBL_BASE = \"https://v4pprodconsumerweb.rumbleon.com\";\r\n // INVENTORY_API_ENDPOINT = \"https://v4pprodinventory.rumbleon.com\";\r\n // REACT_APP_CW_CASH_OFFER = \"https://v4pprodcashoffer.rumbleon.com\";\r\n // REACT_APP_DEALER_DETAIL = \"https://v4pprodorg.rumbleon.com\"; //@todo: update\r\n // REACT_APP_STRIPE_KEY = \"pk_test_bZ8UlmeKkUzngIMF0WDLXx5L\";\r\n // REACT_APP_SEGMENT_KEY = \"WxPVwF17NiKb5j9knGDWED6TnKpNGOSZ\";\r\n // SCHEMA_PATH = \"https://v4graphql.rumbleon.com/pprod\";\r\n // GOOGLE_RECAPTCHA_KEY = \"6LfKAKYZAAAAAMROukZEPWDklu1bSjxVimITbVAP\";\r\n // ACCEPT_OFFER_SF_URL = \"http://dlr-rumbleon.cs50.force.com\";\r\n // DEALER_PORTAL_URL = \"https://v4pproddealer.rumbleon.com\";\r\n // AUTH_API_ENDPOINT = \"https://v4pprodaccounts.rumbleon.com\";\r\n\r\n // ENGINE_API_KEY = \"service:CLS-PPROD:zcQOVja2uoZxs4Jd3ZmjHQ\";\r\n // REACT_APP_GRAPHQL_ENDPOINT =\r\n // \"https://v4graphql.rumbleon.com/demo-enviornment\";\r\n // REACT_APP_S3_LINK = \"https://sellimg.rumbleon.com\";\r\n // REACT_S3_ROTATE = \"https://s3.amazonaws.com/rumbleon-sell-images\";\r\n // REACT_DEALER_S3_LINK = \"https://dlrimg.rumbleon.com\";\r\n // REACT_APP_CLS_API_ENDPOINT = \"https://democlsapi.rumbleon.com\";\r\n // REACT_APP_ES_APP = \"demolisting\";\r\n // REACT_DEALER_ES_APP = \"demodealership\";\r\n // TCI_URL =\r\n // \"https://cp-demo.decisionlender.solutions/cp/#/rumb040/bike/newapp?\";\r\n // REACT_APP_GTM_ID = \"GTM-NLTX2F8\";\r\n // REACT_APP_ES_CREDENTIALS = \"pp-p-ro:sa2SMv7q53\";\r\n // REACT_ES_BASIC_AUTH = \"Basic cHAtcC1ybzpzYTJTTXY3cTUz\";\r\n // REACT_APP_ES_LINK = \"https://demoesproxy.rumbleon.com\";\r\n // REACT_DEALER_ES_LINK =\r\n // \"https://dffc02afc6ba4a4b8ff3dafb6e86a20d.us-east-1.aws.found.io:9243\";\r\n // REACT_APP_RMBL_BASE = \"https://democonsumerweb.rumbleon.com\";\r\n // INVENTORY_API_ENDPOINT = \"https://demoinventory.rumbleon.com\";\r\n // REACT_APP_CW_CASH_OFFER = \"https://democashoffer.rumbleon.com\";\r\n // REACT_APP_DEALER_DETAIL = \"https://demoorg.rumbleon.com\";\r\n // REACT_APP_STRIPE_KEY = \"pk_test_bZ8UlmeKkUzngIMF0WDLXx5L\";\r\n // REACT_APP_SEGMENT_KEY = \"WxPVwF17NiKb5j9knGDWED6TnKpNGOSZ\";\r\n // SCHEMA_PATH = \"https://v4graphql.rumbleon.com/production\";\r\n // GOOGLE_RECAPTCHA_KEY = \"6LfKAKYZAAAAAMROukZEPWDklu1bSjxVimITbVAP\";\r\n // ACCEPT_OFFER_SF_URL = \"http://demo-rumbleon.cs22.force.com\";\r\n // DEALER_PORTAL_URL = \"https://demodealer.rumbleon.com\";\r\n // AUTH_API_ENDPOINT = \"https://demoaccounts.rumbleon.com\";\r\n\r\n ENGINE_API_KEY = \"service:CLS-PPROD:zcQOVja2uoZxs4Jd3ZmjHQ\";\r\n REACT_APP_GRAPHQL_ENDPOINT = \"https://v4graphql.rumbleon.com/pprod\";\r\n REACT_APP_S3_LINK = \"https://sellimg.rumbleon.com\";\r\n REACT_APP_SECURED_S3_LINK = \"https://prod-doc-sf-ron-s3.s3.amazonaws.com\";\r\n REACT_APP_SECURED_S3_KEY = \"AKIAUZM55CJFVVPXAGHK\"\r\n REACT_S3_ROTATE = \"https://s3.amazonaws.com/rumbleon-sell-images\";\r\n REACT_DEALER_S3_LINK = \"https://dlrimg.rumbleon.com\";\r\n REACT_APP_CLS_API_ENDPOINT = \"https://v4pprodclsapi.rumbleon.com\";\r\n REACT_APP_ES_APP = \"v4pplisting\";\r\n REACT_DEALER_ES_APP = \"v4ppdealership\";\r\n TCI_URL =\r\n \"https://cp-demo.decisionlender.solutions/cp/#/rumb040/bike/newapp?\";\r\n REACT_APP_GTM_ID = \"GTM-NLTX2F8\";\r\n REACT_APP_ES_CREDENTIALS = \"cweb-pprod-ro:nw$bR!2cs879mo\";\r\n REACT_ES_BASIC_AUTH = \"Basic Y3dlYi1wcHJvZC1ybzpudyRiUiEyY3M4Nzltbw==\";\r\n REACT_APP_ES_LINK = \"https://v4pprodesproxy.rumbleon.com\";\r\n REACT_DEALER_ES_LINK =\r\n \"https://dffc02afc6ba4a4b8ff3dafb6e86a20d.us-east-1.aws.found.io:9243\";\r\n REACT_APP_RMBL_BASE = \"https://v4pprodconsumerweb.rumbleon.com\";\r\n INVENTORY_API_ENDPOINT = \"https://v4pprodinventory.rumbleon.com\";\r\n REACT_APP_CW_CASH_OFFER = \"https://v4pprodcashoffer.rumbleon.com\";\r\n REACT_APP_DEALER_DETAIL = \"https://v4pprodorg.rumbleon.com\"; //@todo: update\r\n REACT_APP_STRIPE_KEY = \"pk_test_bZ8UlmeKkUzngIMF0WDLXx5L\";\r\n REACT_APP_SEGMENT_KEY = \"WxPVwF17NiKb5j9knGDWED6TnKpNGOSZ\";\r\n SCHEMA_PATH = \"https://v4graphql.rumbleon.com/pprod\";\r\n GOOGLE_RECAPTCHA_KEY = \"6LfKAKYZAAAAAMROukZEPWDklu1bSjxVimITbVAP\";\r\n ACCEPT_OFFER_SF_URL =\r\n \"https://rumbleon--preprod.sandbox.my.salesforce-sites.com\";\r\n DEALER_PORTAL_URL = \"https://v4pproddealer.rumbleon.com\";\r\n AUTH_API_ENDPOINT = \"https://v4pprodaccounts.rumbleon.com\";\r\n VINLESS_ES_URL =\r\n \"https://f083d17c0b344911a8d6deeca1ef4659.us-east-1.aws.found.io:9243\";\r\n REACT_MARINEVINLESS_ES_APP = \"v4pprodnadaymmmarine\";\r\n REACT_MARINEVINLESS_ES_LINK =\r\n \"https://b9bff4f64d8c49488791b9c344a8d05f.us-east-1.aws.found.io:9243\";\r\n CAREERS_JOB = \"https://v4pprodcareersapi.rumbleon.com/api/Careers/GetJobs\";\r\n CAREERS_KEY = \"Basic ZGV2LXFhLXJ3OkNrOXE5dTNKekc=\";\r\n}\r\n// Demo\r\nif (window.location.hostname === \"democonsumerweb.rumbleon.com\") {\r\n ENGINE_API_KEY = \"service:CLS-PPROD:zcQOVja2uoZxs4Jd3ZmjHQ\";\r\n REACT_APP_GRAPHQL_ENDPOINT =\r\n \"https://v4graphql.rumbleon.com/demo-enviornment\";\r\n REACT_APP_S3_LINK = \"https://sellimg.rumbleon.com\";\r\n REACT_S3_ROTATE = \"https://s3.amazonaws.com/rumbleon-sell-images\";\r\n REACT_DEALER_S3_LINK = \"https://dlrimg.rumbleon.com\";\r\n REACT_APP_CLS_API_ENDPOINT = \"https://democlsapi.rumbleon.com\";\r\n REACT_APP_ES_APP = \"demolisting\";\r\n REACT_DEALER_ES_APP = \"demodealership\";\r\n TCI_URL =\r\n \"https://cp-demo.decisionlender.solutions/cp/#/rumb040/bike/newapp?\";\r\n REACT_APP_GTM_ID = \"GTM-NLTX2F8\";\r\n REACT_APP_ES_CREDENTIALS = \"demo-is-ro:Ck9q9u3JzG\";\r\n REACT_ES_BASIC_AUTH = \"Basic cHAtcC1ybzpzYTJTTXY3cTUz\";\r\n REACT_APP_ES_LINK = \"https://demoesproxy.rumbleon.com\";\r\n REACT_DEALER_ES_LINK =\r\n \"https://dffc02afc6ba4a4b8ff3dafb6e86a20d.us-east-1.aws.found.io:9243\";\r\n REACT_APP_RMBL_BASE = \"https://democonsumerweb.rumbleon.com\";\r\n INVENTORY_API_ENDPOINT = \"https://demoinventory.rumbleon.com\";\r\n REACT_APP_CW_CASH_OFFER = \"https://democashoffer.rumbleon.com\";\r\n REACT_APP_DEALER_DETAIL = \"https://demoorg.rumbleon.com\";\r\n REACT_APP_STRIPE_KEY = \"pk_test_bZ8UlmeKkUzngIMF0WDLXx5L\";\r\n REACT_APP_SEGMENT_KEY = \"WxPVwF17NiKb5j9knGDWED6TnKpNGOSZ\";\r\n SCHEMA_PATH = \"https://v4graphql.rumbleon.com/production\";\r\n GOOGLE_RECAPTCHA_KEY = \"6LfKAKYZAAAAAMROukZEPWDklu1bSjxVimITbVAP\";\r\n ACCEPT_OFFER_SF_URL =\r\n \"https://rumbleon--demo.sandbox.my.salesforce-sites.com/\";\r\n DEALER_PORTAL_URL = \"https://demodealer.rumbleon.com\";\r\n AUTH_API_ENDPOINT = \"https://demoaccounts.rumbleon.com\";\r\n VINLESS_ES_URL =\r\n \"https://f083d17c0b344911a8d6deeca1ef4659.us-east-1.aws.found.io:9243\";\r\n // REACT_MARINEVINLESS_ES_APP = \"devnadaymmmarine\";\r\n // REACT_MARINEVINLESS_ES_LINK =\r\n // \"https://f083d17c0b344911a8d6deeca1ef4659.us-east-1.aws.found.io:9243\";\r\n}\r\n// QA\r\nif (window.location.hostname === \"qa-v5consumerweb.rumbleon.com\") {\r\n ENGINE_API_KEY = \"service:CLS-QA:K_l1Qdtm9K5OiZzOQocydA\";\r\n REACT_APP_GRAPHQL_ENDPOINT = \"https://v4graphql.rumbleon.com/qa\";\r\n REACT_APP_S3_LINK = \"https://qasellimg.rumbleon.com\";\r\n REACT_APP_SECURED_S3_LINK = \"https://prod-doc-sf-ron-s3.s3.amazonaws.com\";\r\n REACT_APP_SECURED_S3_KEY = \"AKIAUZM55CJFVVPXAGHK\";\r\n REACT_S3_ROTATE = \"https://s3.amazonaws.com/bikeimages-ron-dev-s3\";\r\n REACT_DEALER_S3_LINK = \"https://qadlrimg.rumbleon.com\";\r\n REACT_APP_CLS_API_ENDPOINT = \"https://v4qaclsapi.rumbleon.com\";\r\n REACT_APP_ES_APP = \"v4qalisting\";\r\n REACT_DEALER_ES_APP = \"v4qadealership\";\r\n TCI_URL =\r\n \"https://cp-demo.decisionlender.solutions/cp/#/rumb040/bike/newapp?\";\r\n REACT_APP_GTM_ID = \"GTM-NLTX2F8\";\r\n REACT_APP_ES_CREDENTIALS = \"dev-qa-ro:dX4FZJwcVF\";\r\n REACT_APP_ES_LINK = \"https://v4qaesproxy.rumbleon.com\";\r\n REACT_ES_BASIC_AUTH = \"Basic ZGV2LXFhLXJvOmRYNEZaSndjVkY=\";\r\n REACT_DEALER_ES_LINK =\r\n \"https://f083d17c0b344911a8d6deeca1ef4659.us-east-1.aws.found.io:9243\";\r\n REACT_APP_RMBL_BASE = \"https://v4qaconsumerweb.rumbleon.com\";\r\n REACT_APP_CW_CASH_OFFER = \"https://v4qacashoffer.rumbleon.com\";\r\n INVENTORY_API_ENDPOINT = \"https://v4qainventory.rumbleon.com\";\r\n REACT_APP_DEALER_DETAIL = \"https://v4qaorg.rumbleon.com\"; //@todo: update\r\n REACT_APP_STRIPE_KEY = \"pk_test_bZ8UlmeKkUzngIMF0WDLXx5L\";\r\n REACT_APP_SEGMENT_KEY = \"WxPVwF17NiKb5j9knGDWED6TnKpNGOSZ\";\r\n SCHEMA_PATH = \"https://v4graphql.rumbleon.com/qa\";\r\n GOOGLE_RECAPTCHA_KEY = \"6LfKAKYZAAAAAMROukZEPWDklu1bSjxVimITbVAP\";\r\n ACCEPT_OFFER_SF_URL = \"https://rithomdev-rumbleon.cs25.force.com\";\r\n DEALER_PORTAL_URL = \"https://v4qadealer.rumbleon.com/\";\r\n AUTH_API_ENDPOINT = \"https://v4qaaccounts.rumbleon.com\";\r\n VINLESS_ES_URL =\r\n \"https://f083d17c0b344911a8d6deeca1ef4659.us-east-1.aws.found.io:9243\";\r\n CAREERS_JOB = \"https://v4qacareersapi.rumbleon.com/api/Careers/GetJobs\";\r\n CAREERS_KEY = \"Basic ZGV2LXFhLXJ3OkNrOXE5dTNKekc=\";\r\n // REACT_MARINEVINLESS_ES_APP = \"v4pprodnadaymmmarine\";\r\n // REACT_MARINEVINLESS_ES_LINK =\r\n // \"https://b9bff4f64d8c49488791b9c344a8d05f.us-east-1.aws.found.io:9243\";\r\n}\r\n// PPROD\r\nif (\r\n // window.location.hostname === \"pprod-v5consumerweb.rumbleon.com\" ||\r\n window.location.hostname === \"pprod-v5consumerweb.rumbleon.com\" ||\r\n window.location.hostname === \"http://ppvirginiaconsumerweb.rumbleon.com\" ||\r\n window.location.hostname === \"http://ppohioconsumerweb.rumbleon.com\"\r\n) {\r\n ENGINE_API_KEY = \"service:CLS-PPROD:zcQOVja2uoZxs4Jd3ZmjHQ\";\r\n REACT_APP_GRAPHQL_ENDPOINT = \"https://v4graphql.rumbleon.com/pprod\";\r\n REACT_APP_S3_LINK = \"https://sellimg.rumbleon.com\";\r\n REACT_APP_SECURED_S3_LINK = \"https://prod-doc-sf-ron-s3.s3.amazonaws.com\";\r\n REACT_APP_SECURED_S3_KEY = \"AKIAUZM55CJFVVPXAGHK\";\r\n REACT_S3_ROTATE = \"https://s3.amazonaws.com/rumbleon-sell-images\";\r\n REACT_DEALER_S3_LINK = \"https://dlrimg.rumbleon.com\";\r\n REACT_APP_CLS_API_ENDPOINT = \"https://v4pprodclsapi.rumbleon.com\";\r\n REACT_APP_ES_APP = \"v4pplisting\";\r\n REACT_DEALER_ES_APP = \"v4ppdealership\";\r\n TCI_URL =\r\n \"https://cp-demo.decisionlender.solutions/cp/#/rumb040/bike/newapp?\";\r\n REACT_APP_GTM_ID = \"GTM-NLTX2F8\";\r\n REACT_APP_ES_CREDENTIALS = \"cweb-pprod-ro:nw$bR!2cs879mo\";\r\n REACT_ES_BASIC_AUTH = \"Basic Y3dlYi1wcHJvZC1ybzpudyRiUiEyY3M4Nzltbw==\";\r\n REACT_APP_ES_LINK = \"https://v4pprodesproxy.rumbleon.com\";\r\n REACT_DEALER_ES_LINK =\r\n \"https://dffc02afc6ba4a4b8ff3dafb6e86a20d.us-east-1.aws.found.io:9243\";\r\n REACT_APP_RMBL_BASE = \"https://v4pprodconsumerweb.rumbleon.com\";\r\n INVENTORY_API_ENDPOINT = \"https://v4pprodinventory.rumbleon.com\";\r\n REACT_APP_CW_CASH_OFFER = \"https://v4pprodcashoffer.rumbleon.com\";\r\n REACT_APP_DEALER_DETAIL = \"https://v4pprodorg.rumbleon.com\"; //@todo: update\r\n REACT_APP_STRIPE_KEY = \"pk_test_bZ8UlmeKkUzngIMF0WDLXx5L\";\r\n REACT_APP_SEGMENT_KEY = \"WxPVwF17NiKb5j9knGDWED6TnKpNGOSZ\";\r\n SCHEMA_PATH = \"https://v4graphql.rumbleon.com/pprod\";\r\n GOOGLE_RECAPTCHA_KEY = \"6LfKAKYZAAAAAMROukZEPWDklu1bSjxVimITbVAP\";\r\n ACCEPT_OFFER_SF_URL =\r\n \"https://rumbleon--preprod.sandbox.my.salesforce-sites.com\";\r\n DEALER_PORTAL_URL = \"https://v4pproddealer.rumbleon.com\";\r\n AUTH_API_ENDPOINT = \"https://v4pprodaccounts.rumbleon.com\";\r\n VINLESS_ES_URL =\r\n \"https://f083d17c0b344911a8d6deeca1ef4659.us-east-1.aws.found.io:9243\";\r\n REACT_MARINEVINLESS_ES_APP = \"v4pprodnadaymmmarine\";\r\n REACT_MARINEVINLESS_ES_LINK =\r\n \"https://b9bff4f64d8c49488791b9c344a8d05f.us-east-1.aws.found.io:9243\";\r\n CAREERS_JOB = \"https://v4pprodcareersapi.rumbleon.com/api/Careers/GetJobs\";\r\n CAREERS_KEY = \"Basic ZGV2LXFhLXJ3OkNrOXE5dTNKekc=\";\r\n}\r\n//DEMO\r\nif (window.location.hostname === \"dev-v5consumerweb.rumbleon.com\") {\r\n ENGINE_API_KEY = \"service:JoeDevGeeeee-2839:3vtgQng6FUHL6WIfT0szDQ\";\r\n REACT_APP_GRAPHQL_ENDPOINT = \"https://v4graphql.rumbleon.com/dev\";\r\n REACT_APP_S3_LINK = \"https://devsellimg.rumbleon.com\";\r\n REACT_APP_SECURED_S3_LINK = \"https://dev-doc-sf-ron-s3.s3.amazonaws.com\";\r\n REACT_APP_SECURED_S3_KEY = \"AKIAUZM55CJFVVPXAGHK\";\r\n REACT_S3_ROTATE = \"https://s3.amazonaws.com/bikeimages-ron-dev-s3\";\r\n REACT_DEALER_S3_LINK = \"https://devdlrimg.rumbleon.com\";\r\n REACT_APP_CLS_API_ENDPOINT = \"https://v4devclsapi.rumbleon.com\";\r\n REACT_APP_ES_APP = \"v4devlisting\";\r\n REACT_DEALER_ES_APP = \"v4devdealership\";\r\n TCI_URL =\r\n \"https://cp-demo.decisionlender.solutions/cp/#/rumb040/bike/newapp?\";\r\n REACT_APP_GTM_ID = \"GTM-NLTX2F8\";\r\n REACT_APP_ES_CREDENTIALS = \"dev-qa-ro:dX4FZJwcVF\";\r\n REACT_APP_ES_LINK = \"https://v4devesproxy.rumbleon.com\";\r\n REACT_DEALER_ES_LINK =\r\n \"https://f083d17c0b344911a8d6deeca1ef4659.us-east-1.aws.found.io:9243\";\r\n REACT_APP_RMBL_BASE = \"https://v4devconsumerweb.rumbleon.com\";\r\n INVENTORY_API_ENDPOINT = \"https://v4devinventory.rumbleon.com\";\r\n REACT_ES_BASIC_AUTH = \"Basic ZGV2LXFhLXJvOmRYNEZaSndjVkY=\";\r\n REACT_APP_CW_CASH_OFFER = \"https://v4devcashoffer.rumbleon.com\";\r\n REACT_APP_DEALER_DETAIL = \"https://v4devorg.rumbleon.com\"; //@todo: update\r\n REACT_APP_STRIPE_KEY = \"pk_test_bZ8UlmeKkUzngIMF0WDLXx5L\";\r\n REACT_APP_SEGMENT_KEY = \"WxPVwF17NiKb5j9knGDWED6TnKpNGOSZ\";\r\n SCHEMA_PATH = \"https://v4graphql.rumbleon.com/dev\";\r\n GOOGLE_RECAPTCHA_KEY = \"6LfKAKYZAAAAAMROukZEPWDklu1bSjxVimITbVAP\";\r\n ACCEPT_OFFER_SF_URL = \"http://dev-rumbleon.cs41.force.com\";\r\n DEALER_PORTAL_URL = \"https://v4devdealer.rumbleon.com/\";\r\n AUTH_API_ENDPOINT = \"https://v4devaccounts.rumbleon.com\";\r\n VINLESS_ES_URL =\r\n \"https://f083d17c0b344911a8d6deeca1ef4659.us-east-1.aws.found.io:9243\";\r\n REACT_MARINEVINLESS_ES_APP = \"v4pprodnadaymmmarine\";\r\n REACT_MARINEVINLESS_ES_LINK =\r\n \"https://b9bff4f64d8c49488791b9c344a8d05f.us-east-1.aws.found.io:9243\";\r\n CAREERS_JOB = \"https://v4pprodcareersapi.rumbleon.com/api/Careers/GetJobs\";\r\n CAREERS_KEY = \"Basic ZGV2LXFhLXJ3OkNrOXE5dTNKekc=\";\r\n // REACT_MARINEVINLESS_ES_APP = \"devnadaymmmarine\";\r\n // REACT_MARINEVINLESS_ES_LINK =\r\n // \"https://f083d17c0b344911a8d6deeca1ef4659.us-east-1.aws.found.io:9243\";\r\n}\r\n// PROD\r\nif (\r\n window.location.hostname === \"www.rumbleon.com\" ||\r\n window.location.hostname === \"virginiaconsumerweb.rumbleon.com\" ||\r\n window.location.hostname === \"ohioconsumerweb.rumbleon.com\"\r\n) {\r\n ENGINE_API_KEY = \"service:CLS-PROD:wz0Hjcagrfb_aEQRm6bqPQ\";\r\n REACT_APP_GRAPHQL_ENDPOINT = \"https://v4graphql.rumbleon.com/production\";\r\n REACT_APP_S3_LINK = \"https://sellimg.rumbleon.com\";\r\n REACT_APP_SECURED_S3_LINK = \"https://prod-doc-sf-ron-s3.s3.amazonaws.com\";\r\n REACT_APP_SECURED_S3_KEY = \"AKIAUZM55CJFVVPXAGHK\";\r\n REACT_S3_ROTATE = \"https://s3.amazonaws.com/rumbleon-sell-images\";\r\n REACT_DEALER_S3_LINK = \"https://dlrimg.rumbleon.com\";\r\n REACT_APP_CLS_API_ENDPOINT = \"https://clsapi.rumbleon.com\";\r\n REACT_APP_ES_APP = \"v4prodlisting\";\r\n REACT_DEALER_ES_APP = \"v4proddealership\";\r\n TCI_URL = \"https://cp.decisionlender.solutions/cp/#/rumb040/bike/newapp?\";\r\n REACT_APP_GTM_ID = \"GTM-NLTX2F8\";\r\n REACT_APP_ES_CREDENTIALS = \"cweb-prod-ro:nw$bR!2cs879\";\r\n REACT_ES_BASIC_AUTH = \"Basic Y3dlYi1wcm9kLXJvOm53JGJSITJjczg3OQ==\";\r\n REACT_APP_ES_LINK = \"https://prodesproxy.rumbleon.com\";\r\n REACT_DEALER_ES_LINK =\r\n \"https://dffc02afc6ba4a4b8ff3dafb6e86a20d.us-east-1.aws.found.io:9243\";\r\n REACT_APP_RMBL_BASE = \"https://www.rumbleon.com\";\r\n INVENTORY_API_ENDPOINT = \"https://inventory.rumbleon.com\";\r\n REACT_APP_CW_CASH_OFFER = \"https://cashoffer.rumbleon.com\";\r\n REACT_APP_DEALER_DETAIL = \"https://org.rumbleon.com\";\r\n REACT_APP_STRIPE_KEY = \"sk_live_pIYw9bnADfs141pksMRpT2Ez\";\r\n REACT_APP_SEGMENT_KEY = \"KbQHjkSQfITWUPPH853oOUAIw6xXpu9W\";\r\n SCHEMA_PATH = \"https://v4graphql.rumbleon.com/production\";\r\n GOOGLE_RECAPTCHA_KEY = \"6LfKAKYZAAAAAMROukZEPWDklu1bSjxVimITbVAP\";\r\n ACCEPT_OFFER_SF_URL = \"https://rumbleon.secure.force.com/\";\r\n DEALER_PORTAL_URL = \"https://dealer.rumbleon.com\";\r\n AUTH_API_ENDPOINT = \"https://accounts.rumbleon.com\";\r\n VINLESS_ES_URL =\r\n \"https://f083d17c0b344911a8d6deeca1ef4659.us-east-1.aws.found.io:9243\";\r\n REACT_MARINEVINLESS_ES_APP = \"v4prodnadaymmmarine\";\r\n REACT_MARINEVINLESS_ES_LINK =\r\n \"https://b9bff4f64d8c49488791b9c344a8d05f.us-east-1.aws.found.io:9243\";\r\n CAREERS_JOB = \"https://careersapi.rumbleon.com/api/Careers/GetJobs\";\r\n CAREERS_KEY = \"Basic ZGV2LXFhLXJ3OkNrOXE5dTNKekc=\";\r\n}\r\nif (window.location.hostname === \"prod.rumbleon.com\") {\r\n ENGINE_API_KEY = \"service:CLS-PROD:wz0Hjcagrfb_aEQRm6bqPQ\";\r\n REACT_APP_GRAPHQL_ENDPOINT = \"https://v4graphql.rumbleon.com/production\";\r\n REACT_APP_S3_LINK = \"https://sellimg.rumbleon.com\";\r\n REACT_APP_SECURED_S3_LINK = \"https://prod-doc-sf-ron-s3.s3.amazonaws.com\";\r\n REACT_APP_SECURED_S3_KEY = \"AKIAUZM55CJFVVPXAGHK\";\r\n REACT_S3_ROTATE = \"https://s3.amazonaws.com/rumbleon-sell-images\";\r\n REACT_DEALER_S3_LINK = \"https://dlrimg.rumbleon.com\";\r\n REACT_APP_CLS_API_ENDPOINT = \"https://clsapi.rumbleon.com\";\r\n REACT_APP_ES_APP = \"v4prodlisting\";\r\n REACT_DEALER_ES_APP = \"v4proddealership\";\r\n TCI_URL = \"https://cp.decisionlender.solutions/cp/#/rumb040/bike/newapp?\";\r\n REACT_APP_GTM_ID = \"GTM-NLTX2F8\";\r\n REACT_APP_ES_CREDENTIALS = \"cweb-prod-ro:nw$bR!2cs879\";\r\n REACT_ES_BASIC_AUTH = \"Basic Y3dlYi1wcm9kLXJvOm53JGJSITJjczg3OQ==\";\r\n REACT_APP_ES_LINK = \"https://prodesproxy.rumbleon.com\";\r\n REACT_DEALER_ES_LINK =\r\n \"https://dffc02afc6ba4a4b8ff3dafb6e86a20d.us-east-1.aws.found.io:9243\";\r\n REACT_APP_RMBL_BASE = \"https://www.rumbleon.com\";\r\n INVENTORY_API_ENDPOINT = \"https://inventory.rumbleon.com\";\r\n REACT_APP_CW_CASH_OFFER = \"https://cashoffer.rumbleon.com\";\r\n REACT_APP_DEALER_DETAIL = \"https://org.rumbleon.com\";\r\n REACT_APP_STRIPE_KEY = \"sk_live_pIYw9bnADfs141pksMRpT2Ez\";\r\n REACT_APP_SEGMENT_KEY = \"KbQHjkSQfITWUPPH853oOUAIw6xXpu9W\";\r\n SCHEMA_PATH = \"https://v4graphql.rumbleon.com/production\";\r\n GOOGLE_RECAPTCHA_KEY = \"6LfKAKYZAAAAAMROukZEPWDklu1bSjxVimITbVAP\";\r\n ACCEPT_OFFER_SF_URL = \"https://rumbleon.secure.force.com/\";\r\n DEALER_PORTAL_URL = \"https://dealer.rumbleon.com\";\r\n VINLESS_ES_URL =\r\n \"https://f083d17c0b344911a8d6deeca1ef4659.us-east-1.aws.found.io:9243\";\r\n REACT_MARINEVINLESS_ES_APP = \"v4prodnadaymmmarine\";\r\n REACT_MARINEVINLESS_ES_LINK =\r\n \"https://b9bff4f64d8c49488791b9c344a8d05f.us-east-1.aws.found.io:9243\";\r\n AUTH_API_ENDPOINT = \"https://accounts.rumbleon.com\";\r\n CAREERS_JOB = \"https://careersapi.rumbleon.com/api/Careers/GetJobs\";\r\n CAREERS_KEY = \"Basic ZGV2LXFhLXJ3OkNrOXE5dTNKekc=\";\r\n}\r\n\r\nexport const environmentVariableList = {\r\n ENGINE_API_KEY,\r\n REACT_APP_GRAPHQL_ENDPOINT,\r\n REACT_APP_S3_LINK,\r\n REACT_APP_SECURED_S3_LINK,\r\n REACT_APP_SECURED_S3_KEY,\r\n REACT_DEALER_S3_LINK,\r\n REACT_APP_CLS_API_ENDPOINT,\r\n REACT_APP_ES_APP,\r\n REACT_DEALER_ES_APP,\r\n TCI_URL,\r\n REACT_APP_GTM_ID,\r\n REACT_APP_ES_CREDENTIALS,\r\n REACT_APP_ES_LINK,\r\n REACT_ES_BASIC_AUTH,\r\n REACT_DEALER_ES_LINK,\r\n REACT_APP_RMBL_BASE,\r\n REACT_APP_CW_CASH_OFFER,\r\n INVENTORY_API_ENDPOINT,\r\n REACT_APP_DEALER_DETAIL,\r\n REACT_APP_STRIPE_KEY,\r\n REACT_APP_SEGMENT_KEY,\r\n SCHEMA_PATH,\r\n GOOGLE_RECAPTCHA_KEY,\r\n ACCEPT_OFFER_SF_URL,\r\n DEALER_PORTAL_URL,\r\n REACT_S3_ROTATE,\r\n AUTH_API_ENDPOINT,\r\n VINLESS_ES_URL,\r\n REACT_MARINEVINLESS_ES_APP,\r\n REACT_MARINEVINLESS_ES_LINK,\r\n CAREERS_JOB,\r\n CAREERS_KEY,\r\n};\r\n","export const colors = {\r\n bgGrey: \"#fafafa\",\r\n darkBlack: \"#2b2b2b\", //button\r\n darkCharcoal: \"#2B2B2B\", //h1\r\n lightCharcoal: \"#4C4C4C\", //h3\r\n iconGray: \"#757575\",\r\n textGrey: \"#4c4c4c\",\r\n blue: \"#1B51CF\", //icon\r\n lightGrey: \"#0000001F\",\r\n superLightGray: \"#EEEEEE\",\r\n shadow: \"0 2px 8px rgba(0, 0, 0, 0.15)\",\r\n greenShade: \"#5C903F\",\r\n lightGreen: \"#85ce06\",\r\n errorRed: \"#99100C\",\r\n purple: \"#873BD4\",\r\n orangeTint: \"#DB7012\",\r\n};\r\n\r\nexport const breakpoints = [576, 768, 992, 1200, 1600];\r\n\r\nexport const minMedia = breakpoints.map((bp) => `@media (min-width: ${bp}px)`);\r\n\r\nexport const maxMedia = breakpoints.map((bp) => `@media (max-width: ${bp}px)`);\r\n","import moment from \"moment\";\r\n\r\nexport const formatNumber = (value: number) =>\r\n new Intl.NumberFormat(\"en-US\").format(value);\r\n\r\nexport const formatCurrency = (value: number) =>\r\n new Intl.NumberFormat(\"en-US\", {\r\n style: \"currency\",\r\n currency: \"USD\",\r\n minimumFractionDigits: 0,\r\n }).format(value);\r\n\r\nexport const formatDateTime = (value: string) => {\r\n const parsedDate = new Date(value);\r\n return parsedDate.toLocaleDateString(\"en-US\");\r\n};\r\n\r\nexport const formatPhoneNumber = (phone: string) => {\r\n //Filter only numbers from the input\r\n const removeCode =\r\n (phone.length > 10 && phone[0] === \"+\" && phone.slice(2)) || phone;\r\n let cleaned = (\"\" + removeCode).replace(/\\D/g, \"\");\r\n\r\n //Check if the input is of correct length\r\n let match = cleaned.match(/^(\\d{3})(\\d{3})(\\d{4})$/);\r\n\r\n if (match) {\r\n return \"(\" + match[1] + \") \" + match[2] + \"-\" + match[3];\r\n }\r\n\r\n return null;\r\n};\r\n\r\nexport const formatDate = (value: string) => {\r\n const parsedDate = new Date(value);\r\n const a = moment();\r\n const b = moment(parsedDate);\r\n const expiredDateH = b.diff(a, \"hours\");\r\n const expiredDateD = b.diff(a, \"days\");\r\n const expiredDateM = b.diff(a, \"months\");\r\n const expiredDateY = b.diff(a, \"years\");\r\n const expiredDate = b.diff(a, \"hours\");\r\n // return parsedDate.toLocaleDateString(\"en-US\");\r\n return expiredDate < 0\r\n ? expiredDateH < -24\r\n ? expiredDateD < -30\r\n ? expiredDateM < -1 && expiredDateM < -12\r\n ? expiredDateY > -1\r\n ? `expired ${Math.abs(expiredDateY)} years ago`\r\n : `expired ${Math.abs(expiredDateY)} year ago`\r\n : expiredDateM === -1\r\n ? `expired ${Math.abs(expiredDateM)} month ago`\r\n : `expired ${Math.abs(expiredDateM)} months ago`\r\n : expiredDateD === -1\r\n ? `expired ${Math.abs(expiredDateD)} day ago`\r\n : `expired ${Math.abs(expiredDateD)} days ago`\r\n : expiredDateH === -1\r\n ? ` expired ${Math.abs(expiredDateH)} hour ago`\r\n : ` expired ${Math.abs(expiredDateH)} hours ago`\r\n : `expires ${moment(b).fromNow()}`;\r\n};\r\n// `${Math.abs(expiredDateD)} hours ago`\r\n// `${Math.abs(expiredDateH)} hours ago`\r\n\r\nexport const statusFormatter = (value: number) => {\r\n switch (value) {\r\n case 1:\r\n return \"Incomplete\";\r\n case 2:\r\n return \"In Review\";\r\n case 3:\r\n return \"Approved\";\r\n case 4:\r\n return \"Sold\";\r\n case 5:\r\n return \"Denied\";\r\n case 6:\r\n return \"Deleted\";\r\n case 7:\r\n return \"Removed\";\r\n case 8:\r\n return \"Accepted\";\r\n case 9:\r\n return \"Published\";\r\n case 10:\r\n return \"Expired\";\r\n case 11:\r\n return \"In Review\";\r\n case 12:\r\n return \"Edited\";\r\n default:\r\n return \"\";\r\n }\r\n};\r\n\r\nexport const tokenFormatter = (token: string) => {\r\n const base64Url = token.split(\".\")[1];\r\n const base64 = base64Url.replace(/-/g, \"+\").replace(/_/g, \"/\");\r\n const jsonPayload = decodeURIComponent(\r\n atob(base64)\r\n .split(\"\")\r\n .map((c) => \"%\" + (\"00\" + c.charCodeAt(0).toString(16)).slice(-2))\r\n .join(\"\")\r\n );\r\n\r\n return JSON.parse(jsonPayload);\r\n};\r\n\r\nexport const formatMileage = (value: number) =>\r\n value.toString().replace(/(\\d)(?=(\\d{3})+(?!\\d))/g, \"$1,\");\r\n\r\nexport function shuffleArray(array: Array): Array {\r\n const newArray = array.slice();\r\n for (let i = newArray.length - 1; i > 0; i -= 1) {\r\n const j = Math.floor(Math.random() * (i + 1));\r\n [newArray[i], newArray[j]] = [newArray[j], newArray[i]];\r\n }\r\n return newArray;\r\n}\r\n","/* eslint-disable */\r\n\r\nimport * as React from \"react\";\r\n\r\nimport { VehicleDetailAttachments } from \"../generated/graphql\";\r\n\r\ntype State = {\r\n listingId?: number | string;\r\n vin?: string;\r\n listingYear?: number;\r\n make?: string;\r\n model?: string;\r\n trim?: string | null;\r\n itemTypeId?: number;\r\n interiorColor?: string | null;\r\n zip?: string | null;\r\n mileage?: number | null;\r\n price?: number | null;\r\n attachments?: Array;\r\n thumbnailAttachmentId?: number;\r\n};\r\n\r\ntype Action =\r\n | { type: \"ADD_DETAILS\"; args: State }\r\n | { type: \"SET_THUMB_ATTACHMENT\"; args: State }\r\n | { type: \"RESET_DETAILS\" };\r\n\r\ntype Dispatch = (action: Action) => void;\r\ntype DetailsFlowContextProps = {\r\n children: React.ReactNode;\r\n};\r\n\r\nconst DetailsFlowStateContext = React.createContext(\r\n undefined\r\n);\r\n\r\nconst DetailsFlowDispatchContext = React.createContext(\r\n undefined\r\n);\r\nconst localStorageKey = \"DETAILS_FLOW_LOCAl_STORAGE_KEY\";\r\n\r\nlet localDetailsFlowState = {};\r\ntry {\r\n localDetailsFlowState = JSON.parse(\r\n localStorage.getItem(localStorageKey) || \"{}\"\r\n );\r\n} catch (error) {\r\n console.error(\"Parse local state failed\");\r\n}\r\nconst DetailsFlowContextReducer = (state: State, action: Action) => {\r\n switch (action.type) {\r\n case \"ADD_DETAILS\":\r\n return {\r\n ...state,\r\n ...action.args,\r\n };\r\n case \"SET_THUMB_ATTACHMENT\":\r\n return {\r\n ...state,\r\n ...action.args,\r\n };\r\n case \"RESET_DETAILS\":\r\n return {};\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nconst DetailsFlowContextProvider = ({ children }: DetailsFlowContextProps) => {\r\n const [state, dispatch] = React.useReducer(\r\n DetailsFlowContextReducer,\r\n localDetailsFlowState\r\n );\r\n React.useEffect(() => {\r\n // save flow info to local storage\r\n localStorage.setItem(localStorageKey, JSON.stringify(state));\r\n }, [state]);\r\n return (\r\n \r\n \r\n {children}\r\n \r\n \r\n );\r\n};\r\n\r\nconst useDetailsFlowState = () => {\r\n const context = React.useContext(DetailsFlowStateContext);\r\n if (context === undefined) {\r\n throw new Error(\r\n \"useSellFlowState must be used within a SellFlowContextProvider\"\r\n );\r\n }\r\n return context;\r\n};\r\n\r\nconst useDetailsFlowDispatch = () => {\r\n const context = React.useContext(DetailsFlowDispatchContext);\r\n if (context === undefined) {\r\n throw new Error(\r\n \"useSellFlowDispatch must be used within a SellFlowContextProvider\"\r\n );\r\n }\r\n return context;\r\n};\r\n\r\nexport {\r\n DetailsFlowContextProvider,\r\n useDetailsFlowState,\r\n useDetailsFlowDispatch,\r\n};\r\n","module.exports = __webpack_public_path__ + \"static/media/rumbleon-black-logo.819f8967.svg\";","const hasValidCharactersLength = (value: string) => value.length >= 6;\r\n\r\nconst hasOneLowercaseCharacter = (value: string) => {\r\n const regex = /^(?=.*[a-z]).+$/;\r\n return regex.test(value);\r\n};\r\n\r\nconst hasOneUppercaseCharacter = (value: string) => {\r\n const regex = /^(?=.*[A-Z]).+$/;\r\n\r\n return regex.test(value);\r\n};\r\n\r\nconst hasOneNumeric = (value: string) => {\r\n const regex = /^(?=.*\\d).+$/;\r\n\r\n return regex.test(value);\r\n};\r\n\r\nconst validatePasswordPattern = (value: string) => {\r\n return {\r\n validLength: hasValidCharactersLength(value),\r\n oneLowerCase: hasOneLowercaseCharacter(value),\r\n oneUpperCase: hasOneUppercaseCharacter(value),\r\n oneNumeric: hasOneNumeric(value),\r\n };\r\n};\r\n\r\n\r\nconst isLengthExceededForName = (value: string) => value.length > 50;\r\n\r\nconst hasExclamationCharacter = (value: string) => {\r\n \r\n return value.indexOf('!') > 0 || value.indexOf('[') > 0 || value.indexOf(']') > 0 || value.indexOf('`') > 0;\r\n};\r\n\r\nconst nameStartsLetter = (value: string) => {\r\n const regex = /^[A-Za-z]/;\r\n\r\n return regex.test(value);\r\n};\r\nconst validateFirstAndLastNamePattern = (value: string) => {\r\n return {\r\n validLength: isLengthExceededForName(value),\r\n splCharCheck: hasExclamationCharacter(value),\r\n startsWithLetter : nameStartsLetter(value)\r\n };\r\n};\r\n\r\nexport const validateName = (value: string) => {\r\n\r\n let message = \"\";\r\n if (value !== undefined) {\r\n const result = validateFirstAndLastNamePattern(value);\r\n if (result.validLength) {\r\n message = \"Names cannot contain more than 50 characters\";\r\n }\r\n if (!result.startsWithLetter) {\r\n message.length > 0\r\n ? (message += \", Names must begin with a letter of the alphabet\")\r\n : (message += \"Names must begin with a letter of the alphabet\");\r\n }\r\n if (result.splCharCheck) {\r\n message.length > 0\r\n ? (message += \", Special characters !, [, ], and ` are not allowed in names\")\r\n : (message += \"Special characters !, [ , ], and ` are not allowed in names\");\r\n }\r\n}\r\n return message;\r\n}\r\n\r\nexport const validatePassword = (value: string) => {\r\n let message = \"\";\r\n\r\n if (value !== undefined) {\r\n const result = validatePasswordPattern(value);\r\n\r\n if (!result.validLength) {\r\n message += \"six characters\";\r\n }\r\n if (!result.oneLowerCase) {\r\n message.length > 0\r\n ? (message += \", one lowercase character\")\r\n : (message += \"one lowercase character\");\r\n }\r\n if (!result.oneUpperCase) {\r\n message.length > 0\r\n ? (message += \", one uppercase character\")\r\n : (message += \"one uppercase character\");\r\n }\r\n if (!result.oneNumeric) {\r\n message.length > 0\r\n ? (message += \", one numeric character\")\r\n : (message += \"one numeric character\");\r\n }\r\n if (message.length > 0) {\r\n message += \".\";\r\n }\r\n }\r\n\r\n return message;\r\n};\r\n","/* eslint-disable */\r\n\r\nimport * as React from \"react\";\r\n\r\nimport {\r\n VehicleAttachmentInput,\r\n VehicleOptionInput,\r\n} from \"../generated/graphql\";\r\n\r\ntype State = {\r\n listingId?: number | string;\r\n Vin?: string;\r\n listingYear?: number;\r\n category?: string;\r\n make?: string;\r\n model?: string;\r\n inputMake?: string;\r\n inputModel?: string;\r\n isother?: boolean;\r\n trim?: string | null;\r\n itemTypeId?: number;\r\n isMileageUnknown?: boolean;\r\n zip?: string | null;\r\n mileage?: number | null;\r\n primaryColorId?: number | null;\r\n secondaryColorId?: number | null;\r\n engineSize?: string | null;\r\n engineType?: string | null;\r\n bodyStyle?: string | null;\r\n driveTrain?: string | null;\r\n transmission?: string | null;\r\n transmissionTypeId?: number | null;\r\n titledInState?: string | null;\r\n titleStatusId?: number | null;\r\n hasABS?: boolean | null;\r\n hasBeenSmokedIn?: boolean | null;\r\n hasWarranty?: boolean | null;\r\n hasDamage?: boolean | null;\r\n damageDescription?: string | null;\r\n hasBeenOperated?: boolean | null;\r\n overallConditionId?: number | null;\r\n physicalConditionId?: number | null;\r\n mechanicalConditionId?: number | null;\r\n tireConditionId?: number | null;\r\n price?: number | null;\r\n categoryId?: number | null;\r\n listingDescription?: string | null;\r\n listingOptions?: string | null;\r\n listingAbout?: string | null;\r\n priceMSRP?: number | null;\r\n pricePPMV?: number | null;\r\n priceNADA?: number | null;\r\n priceFMV?: number | null;\r\n priceRanking?: number | null;\r\n hasOutstandingLoan?: boolean | null;\r\n sourceTypeId?: number | null;\r\n loanBank?: string | null;\r\n loanAmount?: number | null;\r\n willSwap?: boolean | null;\r\n address1?: string | null;\r\n address2?: string | null;\r\n city?: string | null;\r\n state?: string | null;\r\n country?: string | null;\r\n bookDate?: string | null;\r\n bookData?: string | null;\r\n manualVINEntry?: boolean | null;\r\n // manualInputVINEntry?: boolean | null;\r\n attachments?: VehicleAttachmentInput[] | null;\r\n options?: VehicleOptionInput[] | null;\r\n id?: string | null; // this is the trim id from vin decode\r\n decoder?: string | null; // kbb, nada etc from vindecode\r\n fuelType?: string | null;\r\n highwayMileage?: number | null;\r\n cityMileage?: number | null;\r\n isFromConsumerWeb?: boolean | null;\r\n currentSteps?: string | \"1\";\r\n runDescription?: string | null;\r\n doesYourCarRun?: boolean | null;\r\n};\r\n\r\ntype Action =\r\n | { type: \"CREATE_LISTING\"; args: State }\r\n | { type: \"UPDATE_LISTING\"; args: State }\r\n | { type: \"RESET_LISTING\" };\r\n\r\ntype Dispatch = (action: Action) => void;\r\ntype SellFlowContextProviderProps = {\r\n children: React.ReactNode;\r\n};\r\n\r\nconst SellFlowStateContext = React.createContext(undefined);\r\n\r\nconst SellFlowDispatchContext = React.createContext(\r\n undefined\r\n);\r\nconst localStorageKey = \"SELL_FLOW_LOCAL_STORAGE_KEY\";\r\n\r\nlet localSellFlowState = {};\r\ntry {\r\n localSellFlowState = JSON.parse(\r\n localStorage.getItem(localStorageKey) || \"{}\"\r\n );\r\n} catch (error) {\r\n console.error(\"Parse local state failed\");\r\n}\r\nconst SellFlowContextReducer = (state: State, action: Action) => {\r\n switch (action.type) {\r\n case \"CREATE_LISTING\":\r\n return {\r\n ...state,\r\n ...action.args,\r\n };\r\n case \"UPDATE_LISTING\":\r\n return {\r\n ...state,\r\n ...action.args,\r\n };\r\n case \"RESET_LISTING\":\r\n return {};\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nconst SellFlowContextProvider = ({\r\n children,\r\n}: SellFlowContextProviderProps) => {\r\n const [state, dispatch] = React.useReducer(\r\n SellFlowContextReducer,\r\n localSellFlowState\r\n );\r\n React.useEffect(() => {\r\n // save sell flow info to local storage\r\n localStorage.setItem(localStorageKey, JSON.stringify(state));\r\n }, [state]);\r\n return (\r\n \r\n \r\n {children}\r\n \r\n \r\n );\r\n};\r\n\r\nconst useSellFlowState = () => {\r\n const context = React.useContext(SellFlowStateContext);\r\n if (context === undefined) {\r\n throw new Error(\r\n \"useSellFlowState must be used within a SellFlowContextProvider\"\r\n );\r\n }\r\n return context;\r\n};\r\n\r\nconst useSellFlowDispatch = () => {\r\n const context = React.useContext(SellFlowDispatchContext);\r\n if (context === undefined) {\r\n throw new Error(\r\n \"useSellFlowDispatch must be used within a SellFlowContextProvider\"\r\n );\r\n }\r\n return context;\r\n};\r\n\r\nexport { SellFlowContextProvider, useSellFlowState, useSellFlowDispatch };\r\n","//@ts-nocheck\r\nimport React, { FC, createContext, useContext, useReducer } from \"react\";\r\n\r\ntype GeolocationState = {\r\n location: number[];\r\n};\r\n\r\ntype GeolocationAction = {\r\n type: typeof SET_LOCATION;\r\n payload: number[];\r\n};\r\n\r\nconst GeolocationContext = createContext<\r\n Partial<{\r\n state: GeolocationState;\r\n dispatch: (action: GeolocationAction) => void;\r\n }>\r\n>({});\r\n\r\nexport const SET_LOCATION = \"SET_LOCATION\",\r\n SET_COORDINATES = \"SET_COORDINATES\";\r\n\r\n//[lon, lat]\r\nconst initialState: GeolocationState = {\r\n userLocation: [], //user current location\r\n location: [], //address entered\r\n};\r\n\r\nconst GeolocationReducer = (\r\n state: GeolocationState,\r\n action: GeolocationAction\r\n) => {\r\n switch (action.type) {\r\n case SET_LOCATION:\r\n return {\r\n ...state,\r\n location: action.payload,\r\n };\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport const GeolocationContextProvider: FC = ({ children }) => {\r\n const [state, dispatch] = useReducer(GeolocationReducer, initialState);\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport const useGeolocationContext = () => {\r\n const context = useContext(GeolocationContext);\r\n if (context === undefined) {\r\n throw new Error(\"useGeolocationContext is undefined\");\r\n }\r\n return context;\r\n};\r\n","import * as React from \"react\";\r\n\r\nimport { Col, Row } from \"antd\";\r\n\r\nimport { Helmet } from \"react-helmet\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { colors } from \"../../constants/styles\";\r\nimport { css } from \"@emotion/core\";\r\n\r\nexport const legalCss = css`\r\n padding: 5rem 0;\r\n\r\n h1 {\r\n text-align: center;\r\n font-size: 35px;\r\n line-height: 37px;\r\n font-family: interstate, sans-serif;\r\n font-weight: 800;\r\n padding-bottom: 1rem;\r\n }\r\n\r\n h3 {\r\n font-family: aktiv-grotesk !important;\r\n font-size: 18px;\r\n font-weight: bold;\r\n }\r\n\r\n p {\r\n font-family: aktiv-grotesk !important;\r\n font-size: 18px;\r\n font-weight: 400;\r\n }\r\n\r\n ul {\r\n list-style-position: initial;\r\n padding-left: 20px;\r\n li {\r\n font-family: aktiv-grotesk !important;\r\n font-size: 18px;\r\n }\r\n }\r\n\r\n a {\r\n color: ${colors.blue};\r\n }\r\n`;\r\n\r\nexport const TermsofUse = () => {\r\n return (\r\n <>\r\n \r\n RumbleOn | Terms of Use\r\n \r\n \r\n \r\n \r\n \r\n \r\n

RumbleOn Terms of Use

\r\n

Last Revision: August 18, 2021

\r\n

\r\n Please read these Terms of Use (“Terms”) carefully. These Terms are\r\n between you (“user(s)”, “you” or “your”) and RumbleOn, Inc.,\r\n including all of its wholly owned subsidiaries, such as RumbleOn\r\n Finance, LLC and RumbleOn Dealers Inc, et al (“RumbleOn”, “we” or\r\n “our”) and cover your use of the content, services, features and\r\n tools (collectively the “Services”, as further defined below)\r\n accessed directly or indirectly through any RumbleOn website or\r\n mobile website, including without limitation{\" \"}\r\n \r\n www.rumbleon.com\r\n \r\n ,{\" \"}\r\n \r\n www.wholesaleinc.com\r\n \r\n ,{\" \"}\r\n \r\n www.gotspeed.com\r\n {\" \"}\r\n and any other site maintained by RumbleOn (collectively, “Sites”),\r\n and any web-based or mobile applications (the “Apps”) that reference\r\n or link to these Terms.\r\n

\r\n

\r\n You accept and agree to be bound by these Terms and our{\" \"}\r\n Privacy Policy (“Privacy Policy”) by\r\n accessing or using one or all of the Services. The Services are\r\n available only to people who are at least eighteen (18) years old\r\n and possess the legal capacity to form a binding agreement with\r\n RumbleOn. IF YOU DO NOT HAVE SUCH LEGAL CAPACITY, OR IF YOU DO NOT\r\n AGREE TO ABIDE BY OR BE BOUND BY THESE TERMS AND PRIVACY POLICY,\r\n PLEASE DO NOT ACCESS, USE OR REGISTER TO USE ANY OF OUR SERVICES.\r\n

\r\n

\r\n \r\n Please note that Section 19 contains an arbitration clause and\r\n class action waiver. You agree to resolve all disputes through\r\n binding arbitration, and you waive any right to have a judge or\r\n jury decide those disputes. You also waive your right to\r\n participate in class actions, class arbitrations, and\r\n representative actions.\r\n \r\n

\r\n

\r\n 1. The Services\r\n

\r\n

\r\n The Services are currently designed for users who are interested in\r\n buying or selling their vehicles. The Services are mainly targeted\r\n to U.S. residents however, the Services are available to non-U.S.\r\n residents as well. The Services are currently provided free of\r\n charge, however RumbleOn reserves the right to charge fees with\r\n respect to some or all of the Services in the future.\r\n

\r\n

\r\n The Services governed by these Terms allow (or may allow you in the\r\n future) to:\r\n

\r\n

\r\n Buy a Vehicle and additional services associated with the\r\n purchase, such as certain warranties, by (a) searching our inventory\r\n of vehicles; (b) holding the vehicle of your choice; (c) using\r\n trade-in services; (d) estimating your monthly payment (e) applying\r\n for online vehicle financing; or (f) arranging for an open or closed\r\n transport of the selected vehicle within the continental United\r\n States only (please note that if you are not a U.S. resident, you\r\n shall be solely responsible for the execution and payment of\r\n import/export approvals and applicable taxes). In certain instance\r\n we may be prevented from offering certain services to you if you\r\n live in a particular area or we are subject to restrictions in our\r\n business with; for example, California Emission Laws prevent us from\r\n selling any vehicle with less than 7,500 miles to any current\r\n California resident.\r\n

\r\n

\r\n Sell Your Vehicle by using our Appraisal Tool. To use the\r\n Appraisal Tool, you may need to submit (a) photos of your vehicle,\r\n (b) your vehicle’s VIN number, (c) your vehicle’s mileage, (d)\r\n description of the vehicle and any other information we may require\r\n from time to time. The submitted information regarding your vehicle\r\n is then uploaded to our internal systems, and if we are interested\r\n in purchasing your vehicle, we will send an email outlining the\r\n terms of our offer, one of which allows you to use the value of the\r\n cash offer towards the purchase of another vehicle (trade-in) from\r\n us.\r\n

\r\n

\r\n Submit Your Content. One or all of the Services may include\r\n “Interactive Areas” on which users may connect with each other and\r\n share information, recommendations and reviews. Any content\r\n submitted by users to the Interactive Areas (including without\r\n limitation, such recommendations, reviews, user’s full name, vehicle\r\n photos or other user proprietary materials, whether or not via the\r\n Interactive Areas) shall be called “Submissions”.\r\n

\r\n\r\n

\r\n Each Service includes our proprietary content or licensed content of\r\n others, and may include additional resources such as FAQ and\r\n support, contact information, videos, text, files, logos, button\r\n icons, images, data compilations, links, other specialized content,\r\n technical data, documentation, know-how, specifications materials,\r\n designs, data, the “look and feel” of the Service, algorithms,\r\n source and object code, interface, GUI, interactive features,\r\n related graphics, illustrations, drawings, animations and other\r\n features obtained from or through the Service (collectively, the\r\n “Content”).\r\n

\r\n

\r\n \r\n THE USE OF THE SERVICES MAY ENABLE USERS TO FACILITATE A\r\n CONNECTION WITH THIRD PARTIES THAT ARE NOT OWNED BY OR AFFILIATED\r\n WITH RumbleOn (INCLUDING WITHOUT LIMITATION, THIRD PARTY SERVICE\r\n PROVIDERS OR OTHER USERS WHO MAY BE INTERESTED IN PURCHASING\r\n VEHICLES). RUMBLEON DOES NOT OWN, SELL, CONTROL, MANAGE, OPERATE,\r\n ENDORSE, SPONSOR, AND IS NOT INVOLVED IN ANY MANNER WHATSOEVER\r\n WITH SUCH THIRD PARTIES. RumbleOn’S SERVICES OFFER AN APPRAISAL\r\n TOOL, ASSESSING THE VALUE OF CERTAIN VEHICLES BASED ON CERTAIN\r\n CRITERIA. RumbleOn MAKES NO REPRESENTATIONS REGARDING THE\r\n APPRAISAL TOOL AND/OR ITS ACCURACY. TO THE EXTENT LEGALLY\r\n PERMISSIBLE, THE SERVICES AND THE CONTENT AVAILABLE THEREIN ARE\r\n PROVIDED ON AN “AS IS” BASIS. RumbleOn DISCLAIMS ALL WARRANTIES OF\r\n ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, BUT NOT LIMITED TO\r\n IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR\r\n PURPOSE, TITLE, AND NON-INFRINGEMENT AS TO THE SERVICES AND THE\r\n CONTENT OR THE SUBMISSIONS. YOU EXPRESSLY AGREE THAT USE OF THE\r\n SITE AND THE CONTENT OR THE SUBMISSIONS IS AT YOUR SOLE RISK.\r\n RumbleOn AND OUR THIRD-PARTY SERVICE PROVIDERS DO NOT REPRESENT OR\r\n WARRANT THAT THE CONTENT OR SUBMISSIONS ARE ACCURATE, COMPLETE,\r\n RELIABLE, CURRENT, OR ERROR-FREE. RumbleOn WILL NOT BE LIABLE FOR\r\n ANY DAMAGE OR LOSS, COST OR EXPENSE INCURRED TO USERS OR ANY THIRD\r\n PARTY AS A RESULT OF OR IN CONNECTION WITH THE USE OF THE\r\n SERVICES, THE CONTENT OR THE SUBMISSIONS.\r\n \r\n

\r\n

\r\n 2. Limitations of Usage\r\n

\r\n

\r\n Except to the extent you were authorized in writing by RumbleOn, you\r\n may use the Services solely for personal, non-commercial uses (other\r\n than for the purpose of selling or purchasing a vehicle). You shall\r\n not use the Services to advertise or promote any product, service or\r\n business. Without limiting the foregoing, you may not use the\r\n Services to submit or upload any Submissions or details:\r\n

\r\n
    \r\n
  • \r\n If you are not the legal owner of your vehicle or if you do not\r\n have the legal right to sell such vehicle;\r\n
  • \r\n
  • If the vehicle is not registered in your name;
  • \r\n
  • \r\n That are fabricated, false, misleading, offensive or\r\n inappropriate;\r\n
  • \r\n
  • If the purpose of doing so is to compete with RumbleOn;
  • \r\n
  • That are illegal, deceitful or inaccurate; or
  • \r\n
  • \r\n That are for, on behalf of, or at the request of another person,\r\n if such other person would violate any of the above or below\r\n restrictions by uploading such Submissions.\r\n
  • \r\n
\r\n

Additionally, you may not:

\r\n
    \r\n
  • \r\n Register for multiple Accounts or use the Account of another\r\n person;\r\n
  • \r\n
  • Use the Services or open an account if you are under 18;
  • \r\n
  • \r\n Impersonate any person or entity, falsely state or otherwise\r\n misrepresent yourself or your affiliation with any person or\r\n entity, or express or imply that RumbleOn endorses you, your\r\n vehicle or your business in any manner;\r\n
  • \r\n
  • \r\n Use the Services in any way or for any purpose that is immoral,\r\n unauthorized or against any local, state, federal or any other\r\n applicable laws of the United States to which you may be subject\r\n (including without limitation, encouraging harmful practices,\r\n violence, self-harm, suicide, anorexia, bulimia or the\r\n solicitation of minors);\r\n
  • \r\n
  • \r\n Upload or submit any content that is racist, sexist, inflammatory,\r\n defamatory, hateful, harassing, threatening, abusive, profane,\r\n obscene, vulgar or sexually explicit, false, misleading,\r\n fraudulent, invasive of RumbleOn’s or another’s privacy or\r\n publicity rights, infringing of RumbleOn’s or another’s\r\n intellectual property rights, contains any trade secrets or other\r\n confidential information, or is otherwise offensive or\r\n objectionable;\r\n
  • \r\n
  • \r\n Use the Services in any way or for any purpose that harms or\r\n endangers RumbleOn or its affiliates, agents, resellers,\r\n licensors, subsidiaries, officers, directors, shareholders,\r\n employees, sub-contractors, distributors, service providers and/or\r\n suppliers (collectively, the “RumbleOn Representatives”);\r\n
  • \r\n
  • \r\n Submit any data containing unsolicited promotion, advertising,\r\n contests or raffles;\r\n
  • \r\n
  • \r\n Attempt to interfere with or disrupt the ability to access the\r\n Services, the operation of the Services or the servers or networks\r\n that host them;\r\n
  • \r\n
  • \r\n Remove or disassociate from the Content or the Services any\r\n restrictions and signs indicating proprietary rights of RumbleOn\r\n or its licensors, including but not limited to any proprietary\r\n notices contained in such materials (such as ©, ™, or ®); Bypass\r\n any measures RumbleOn may use to prevent or restrict access to the\r\n Services;\r\n
  • \r\n
  • \r\n Bypass any measures RumbleOn may use to prevent or restrict access\r\n to the Services;\r\n
  • \r\n
  • \r\n Use any data mining, robots, or other data collection methods in\r\n connection with the Services (including the creation of\r\n databases);\r\n
  • \r\n
  • \r\n Make available in connection with the Services any virus, worm,\r\n Trojan horse, spyware, bug, malware, or any other harmful content;\r\n
  • \r\n
  • \r\n Use the Services for any purpose for which they are not intended;\r\n or\r\n
  • \r\n
  • \r\n Infringe or violate any of the provisions of these Terms or the\r\n Privacy Policy.\r\n
  • \r\n
\r\n\r\n

\r\n PLEASE BE AWARE THAT YOUR BREACH OF THE TERMS OR PRIVACY POLICY MAY\r\n ALSO EXPOSE YOU TO CIVIL OR CRIMINAL LIABILITY.\r\n

\r\n

\r\n 3. Your Account\r\n

\r\n

\r\n In order to enjoy the full scope of the Services, you are required\r\n to register and open an account (the “Account”), by (i) providing\r\n RumbleOn with certain details or (ii) using an existing social\r\n network account (e.g., Facebook, Google, or Twitter) (for further\r\n information, see the Privacy Policy). You must provide RumbleOn with\r\n accurate and complete information when opening an Account and keep\r\n it updated at all times. You may not open more than one Account. You\r\n are responsible for the activities that occur under your Account and\r\n for maintaining the confidentiality of your password and log-in\r\n details.\r\n

\r\n

\r\n The Account is yours and you shall not allow anyone else to use it\r\n without RumbleOn’s prior written approval. You must immediately\r\n notify RumbleOn of any unauthorized use of your Account or breach of\r\n its security. RumbleOn will not be responsible for any damage which\r\n is caused to you or others if you do not act in accordance with\r\n these Terms or the Privacy Policy.\r\n

\r\n

\r\n If you wish to cancel the Account, you may email RumbleOn at{\" \"}\r\n notices@rumbleon.com and\r\n we will cancel it within a reasonable period of time. Once the\r\n Account is cancelled, its information may be deleted or unavailable\r\n and RumbleOn will not be responsible for any loss in this respect.\r\n

\r\n\r\n

\r\n Any of RumbleOn’s users (including unregistered users) may contact\r\n RumbleOn by submitting their request on the{\" \"}\r\n Contact Us page form, which may require\r\n their name and e-mail address.\r\n

\r\n\r\n

\r\n 4. Information Sharing\r\n

\r\n

\r\n RumbleOn collects, stores, and safeguards information, some of which\r\n could be considered Personally Identifiable Information (“PII”) per\r\n US privacy law. To learn more about how we protect your information,\r\n please refer to our RumbleOn Privacy Policy.\r\n RumbleOn may share PII data with RumbleOn Finance, other third-party\r\n lenders, and vehicle dealers only when you submit a request for\r\n pre-qualification for financing or when you request information for\r\n a dealer’s vehicle that is featured on a RumbleOn Site or mobile\r\n app. You can opt-out of data sharing at any time at the{\" \"}\r\n Do Not Sell My Personal Info page on\r\n the RumbleOn Site or mobile app.\r\n

\r\n\r\n

\r\n RumbleOn may also release PII when it’s release is required to\r\n comply with the law, enforce our site policies, or protect ours or\r\n others’ rights, property or safety.\r\n

\r\n

\r\n Non-Personally Identifiable Information may be provided to other\r\n parties for marketing, advertising, or other uses.\r\n

\r\n

\r\n 5. Payment Services\r\n

\r\n

\r\n RumbleOn uses online payment services which are rendered by\r\n independent contractors. Any credit card details which users provide\r\n RumbleOn with respect to the Services (e.g. for the purchase of\r\n vehicles) are transferred to these online payment services\r\n (including without limitation, PayPal, Venmo, Stripe, or others).\r\n The user is solely responsible for using these online payment\r\n services and is also required to abide to the terms specified by the\r\n applicable online payment service provider. The service provider’s\r\n terms of use and privacy policy, not RumbleOn’s Terms and Privacy\r\n Policy, govern your use of the online payment services.\r\n

\r\n

\r\n 6. Typographical Errors\r\n

\r\n\r\n

\r\n RumbleOn and its third-party service providers are not responsible\r\n for typographical errors or omissions relating to pricing, text,\r\n photography or any other information included in the Services. In\r\n the event that any RumbleOn product is mistakenly listed at an\r\n incorrect price, RumbleOn reserves the right to refuse or cancel any\r\n orders placed for products listed at the incorrect price. RumbleOn\r\n reserves the right to refuse or cancel such orders whether or not\r\n the order has been confirmed and payment was made. If your order is\r\n cancelled, RumbleOn shall issue a refund in the form of the original\r\n payment.\r\n

\r\n

\r\n 7. Intellectual Property\r\n

\r\n

\r\n All of the intellectual property rights (including without\r\n limitation, inventions, patents and patent applications, trademarks,\r\n trademark applications, trade names, service marks, copyrightable\r\n materials, domain names and trade secrets, whether or not registered\r\n or capable of being registered) in or to the Services and the\r\n Content (other than the Submissions) (“Intellectual Property”) are\r\n owned by RumbleOn and/or licensed to it and are protected by\r\n applicable copyright and other intellectual property laws and\r\n international conventions and treaties.\r\n

\r\n

\r\n Certain automotive content displayed within this website (or\r\n application, or mobile application) may be used pursuant to licenses\r\n or other such arrangements with others and is protected under the\r\n United States and international copyright law. Any unauthorized use,\r\n reproduction, distribution, recording or modification of this\r\n content is strictly prohibited. The intellectual property rights in\r\n or to the Submissions (including the photos of your vehicle) must be\r\n owned by you or licensed to you and not conflict with any third\r\n party’s rights or any applicable laws. Users must receive all\r\n consents and authorizations required by law regarding the use of\r\n their respective Submissions (including without limitation, under\r\n applicable privacy laws or regulations). YOU AGREE THAT ALL\r\n INFORMATION UPLOADED OR SUBMITTED BY YOU (EXCLUDING PERSONALLY\r\n IDENTIFIABLE INFORMATION AND FINANCIAL INFORMATION) IS\r\n NONCONFIDENTIAL AND MAY BECOME PUBLICLY AVAILABLE ON OR THROUGH THE\r\n RumbleOn SERVICES.\r\n

\r\n

\r\n You are granted a personal, non-exclusive, non-commercial,\r\n non-transferable, non-sublicensable and fully revocable limited\r\n license to use our Content and Services in accordance with the Terms\r\n and Privacy Policy. All rights not expressly granted to you under\r\n the Terms or the Privacy Policy are reserved by RumbleOn and/or its\r\n licensors. Among other restricted actions, for example: (i) you may\r\n not modify, reproduce, republish, frame, download, transmit,\r\n distribute, rent, lease, loan, sell, assign, license, sublicense,\r\n reverse engineer, publicly display or create derivative works based\r\n on the Content or Services without RumbleOn’s prior written consent,\r\n (ii) you are not allowed to use the RumbleOn trademarks or\r\n third-party trademarks appearing on or through the Services without\r\n our prior written consent.\r\n

\r\n

\r\n You grant RumbleOn a perpetual, non-exclusive, royalty-free,\r\n worldwide license to publicly display, communicate, distribute,\r\n host, publicly perform, publish, reproduce, make modifications or\r\n derivative works, store and to use any of your Submissions{\" \"}\r\n in connection with the RumbleOn Services, in any media\r\n formats and through any media channels known today and developed in\r\n the future for the purpose of operating, marketing, promoting and\r\n improving the Services. You also grant RumbleOn permission to\r\n attribute you in connection with your Submissions. You hereby waive\r\n any rights of privacy or publicity in this respect.{\" \"}\r\n \r\n For clarity, you are not transferring ownership of any marks you\r\n own, and you may request that RumbleOn no longer use any marks you\r\n own in the event you terminate your use of the Services.\r\n \r\n

\r\n

\r\n THE UPLOADING OF SUBMISSIONS IS AT YOUR SOLE RISK AND\r\n RESPONSIBILITY. RumbleOn WILL NOT BE LIABLE FOR ANY RESULT\r\n (INCLUDING LOSS, DAMAGE, COST) ARISING FROM, OR CONNECTED TO, THE\r\n SUBMISSIONS (INCLUDING THEIR USE BY OTHER USERS).\r\n

\r\n

\r\n Even though RumbleOn has no obligation to screen, edit, delete or\r\n monitor Submissions, it reserves the right to do so at its sole\r\n discretion and without giving any prior notice, including in the\r\n following cases: (i) in order to conform with legal requirements or\r\n respond to any legal adjudication or process; (ii) in order to\r\n safeguard the Services or ensure your compliance with these Terms or\r\n our Privacy Policy; and/or (iii) in order to protect and secure the\r\n interests, rights and property of the RumbleOn Representatives. In\r\n addition, RumbleOn may limit the size and storage spaces available\r\n for Submissions.\r\n

\r\n

\r\n \r\n 8. Notice and Takedown - Digital Millennium Copyright Act\r\n Compliance\r\n \r\n

\r\n\r\n

\r\n If you believe that any content displayed on any of the Services (i)\r\n is inappropriate, offensive, violent, sexually inappropriate; or\r\n (ii) infringes your copyrighted work, you may send us a notice to{\" \"}\r\n notices@rumbleon.com.\r\n

\r\n\r\n

\r\n According to the U.S. Digital Millennium Copyright Act, 17 U.S.C.\r\n Sec. 512(c)(3), notices relating to copyright infringement must\r\n include the following information: (a) a description of your\r\n copyrighted work; (b) proof that you are the owner of the\r\n copyrighted work; (c) a description of the material that you believe\r\n to be infringing your copyrighted work and that should be removed or\r\n blocked; (d) your contact details; and (e) a statement that the\r\n information you provided is accurate, and that you are the copyright\r\n owner or authorized to act on behalf of the owner of an exclusive\r\n right that is allegedly infringed.\r\n

\r\n

\r\n Once we receive the notice, we may take actions at our discretion,\r\n including the removal of the alleged infringing or offensive\r\n material.\r\n

\r\n

\r\n \r\n 9. Linking to our Service(s) and Links to Third Party Websites or\r\n Services\r\n \r\n

\r\n

\r\n You are free to establish a link to any of our Services on your\r\n rightfully owned properties so long as the link does not state or\r\n imply any connection or approval of RumbleOn to your website,\r\n products or services or portray RumbleOn in a false or offensive\r\n manner.\r\n

\r\n

\r\n One or all of the RumbleOn Services may contain links to\r\n non-RumbleOn websites or services for your convenience only; they\r\n are not under our control and we do not endorse or assume any\r\n responsibility for their content, information or functionality. Your\r\n access or use of any non-RumbleOn websites or services or reliance\r\n upon their content is at your own risk and such linked sites or\r\n services are not governed by these Terms or our Privacy Policy.\r\n

\r\n

\r\n You agree that RumbleOn is not responsible or liable, directly or\r\n indirectly, for any damage or loss of any kind caused or alleged to\r\n be caused, by or in connection with your use of or reliance upon any\r\n information, services, content, products or other materials\r\n available on or through such linked sites or resources, or any\r\n damage or loss relating to your interaction or dealings with third\r\n parties. RumbleOn reserves the right to terminate any link at any\r\n time at its sole discretion.\r\n

\r\n

\r\n 10. Disclaimer of Warranties\r\n

\r\n

\r\n TO THE EXTENT LEGALLY PERMISSIBLE, ANY AND ALL OF THE SERVICES AND\r\n THE CONTENT ARE PROVIDED ON AN “AS-IS” BASIS. RumbleOn DISCLAIMS ALL\r\n WARRANTIES OF ANY KIND, INCLUDING BUT NOT LIMITED TO WARRANTIES OF\r\n TITLE OR NON-INFRINGEMENT OR IMPLIED WARRANTIES OF USE,\r\n MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE AND THOSE\r\n ARISING FROM A COURSE OF DEALING OR USAGE OF TRADE.\r\n

\r\n

\r\n IN ADDITION, IN NO EVENT SHALL RumbleOn OR A RumbleOn REPRESENTATIVE\r\n BE LIABLE TO YOU OR TO ANY THIRD PARTY FOR ANY DECISION MADE OR\r\n ACTION TAKEN BY YOU OR ANY OTHER PARTY IN CONNECTION WITH THE\r\n SERVICES.\r\n

\r\n

\r\n RumbleOn and RumbleOn REPRESENTATIVES DISCLAIM ALL WARRANTIES AND\r\n CONDITIONS REGARDING THE USE OF ANY AND ALL SERVICES, INCLUDING BUT\r\n NOT LIMITED TO THE OPERATION, ACCURACY, RELIABILITY, COMPLETENESS,\r\n QUALITY OR SUITABILITY OF THE INFORMATION OR CONTENT DISPLAYED ON OR\r\n THROUGH THEM.\r\n

\r\n

\r\n RumbleOn and RumbleOn REPRESENTATIVES ARE NOT RESPONSIBLE FOR ANY\r\n CONSEQUENCES TO YOU OR OTHERS THAT MAY RESULT FROM TECHNICAL\r\n PROBLEMS OR ERRORS.\r\n

\r\n

\r\n INASMUCH AS SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSIONS OR\r\n LIMITATIONS SET FORTH HEREIN, THE FULL EXTENT OF THE ABOVE\r\n EXCLUSIONS AND LIMITATIONS MAY NOT APPLY.\r\n

\r\n\r\n

\r\n 11. Limitation of Liability\r\n

\r\n

\r\n To the extent permitted by law, in no event will RumbleOn or the\r\n RumbleOn Representatives be liable to you or to any third party for:\r\n (1) indirect, consequential, special, incidental, exemplary, or\r\n punitive damages, under any legal theory (including, without\r\n limitation, by tort, negligence, contract, or other), arising from\r\n or connected to the Services, Terms, Content, or Privacy Policy; (2)\r\n any costs of procuring any substitute goods, technology, or\r\n services; or (3) any damages whatsoever that in the aggregate exceed\r\n the greater of (a) the amount actually paid by you (if any) to\r\n RumbleOn for use of the applicable Services in the immediately\r\n previous twelve (12) month period or (b) US $100.00.\r\n

\r\n

\r\n Some jurisdictions do not allow the exclusions or limitations set\r\n forth above, in which case, the full extent of the above exclusions\r\n and limitations may not apply.\r\n

\r\n

\r\n 12. Indemnification\r\n

\r\n

\r\n You agree to defend, indemnify and hold harmless RumbleOn and\r\n RumbleOn Representatives from and against any actual or threatened\r\n claim, loss, liability, proceeding, third-party discovery demand,\r\n investigation, damages, costs, and expenses, including reasonable\r\n attorney’s fees, arising out of or in connection with: (i) your use\r\n or misuse of the Content or Services; (ii) your conduct in\r\n connection with the Services or with other third parties via the\r\n Services; (iii) your Submissions; (iv) your violation of these Terms\r\n or Privacy Policy; (v) your violation of any third-party rights,\r\n including, without limitation, any intellectual property right or\r\n privacy right of such third party; and (vi) any damage, of any sort,\r\n you may cause to any third party with relation to the Submissions,\r\n Content, or Services.\r\n

\r\n

\r\n RumbleOn reserves the right to assume the exclusive defense and\r\n control of any matter which is subject to indemnification by you,\r\n which will not excuse your indemnity obligations and in which event\r\n you will fully cooperate with RumbleOn in asserting any available\r\n defense. You agree not to settle any matter subject to an\r\n indemnification by you without first obtaining RumbleOn’s prior\r\n express written approval.\r\n

\r\n

\r\n You shall and do hereby waive California Civil Code §1542 or any\r\n other similar law of any jurisdiction, which says in substance: “A\r\n general release does not extend to claims that the creditor does not\r\n know or suspect to exist in his or her favor at the time of\r\n executing the release, which if known by him or her, must have\r\n materially affected his or her settlement with the debtor”.\r\n

\r\n

\r\n 13. Advertisements\r\n

\r\n

\r\n RumbleOn may accept advertisements from third party advertisers or\r\n others. RumbleOn makes no warranties or representations concerning\r\n such advertisements. You understand and agree that you are not\r\n entitled to any compensation or remuneration with respect to these\r\n advertisements.\r\n

\r\n

\r\n 14. Children’s Restricted Use\r\n

\r\n

\r\n RumbleOn reserves the right to request proof of age at any stage so\r\n that it can verify that minors or children under the age of eighteen\r\n (18) are not using any of the Services. If RumbleOn becomes aware\r\n that a person under the age of eighteen is using any of the\r\n Services, it will prohibit and block such person from accessing or\r\n using the Services.\r\n

\r\n

\r\n 15. Notification of Terms of Use Revisions\r\n

\r\n

\r\n RumbleOn reserves the right to make changes to its Terms of Use at\r\n any time and for any reason, so please re-visit this page\r\n frequently. The Terms of Use versions are differentiated by the\r\n “Last Revision” date indicated at the top of the Terms of Use\r\n document. If RumbleOn makes material changes to the Terms of Use,\r\n then RumbleOn will notify you by providing a link to the updated\r\n Terms of Use in a special “clickwrap” login modal placed on the\r\n RumbleOn Site. This special clickwrap login modal is designed\r\n specifically to direct the User to view and accept the updated Terms\r\n of Use in order to complete login successfully and regain access to\r\n the Site. The special clickwrap login modal will only appear once if\r\n the User accepts the updated Terms of Use, until the next time the\r\n Terms of use is updated. The updated Terms of Use will become\r\n effective immediately upon acceptance, as indicated by the User in\r\n the special clickwrap login modal. If any of the Services or\r\n portions of the Terms of Use must be amended in order to comply with\r\n any legal requirements, the amendments may take effect immediately\r\n or as required by law and without any prior notice.\r\n

\r\n

\r\n 16. RumbleOn Services Discontinuance\r\n

\r\n

\r\n RumbleOn reserves the right to stop, temporarily or permanently, the\r\n operation of any and all Services without notice, at any time. All\r\n information (ours or yours) made available on the applicable Service\r\n may be removed or deleted and you are required to make your own copy\r\n of any information you submit to RumbleOn. RumbleOn will not be\r\n liable to you or to any third party for any changes, suspension, or\r\n discontinuance of the Service(s) or any malfunctions that may occur\r\n in connection thereto.\r\n

\r\n

\r\n 17. Suspension: Termination\r\n

\r\n

\r\n If you do not comply with the Terms and Privacy Policy, RumbleOn may\r\n suspend or terminate your Account. If, for any reason, you no longer\r\n consent to these Terms or Privacy Policy, please stop using the\r\n Services (and, to the extent you are a registered user, please\r\n cancel your Account as stated in Section 3 above) and this will be\r\n your sole remedy in such circumstances.\r\n

\r\n

Upon termination, by you or us:

\r\n
    \r\n
  • \r\n You will cease any further use of the Site, Services and any\r\n information that was made available to you prior to the\r\n termination;\r\n
  • \r\n
  • \r\n All rights granted to you under the Terms and Privacy Policy will\r\n automatically terminate;\r\n
  • \r\n
  • \r\n Certain data (e.g. Content, Submissions, etc.) may be deleted and\r\n you will have no right or claim in this respect; and\r\n
  • \r\n
\r\n

\r\n The provisions of these Terms that by their nature must survive the\r\n termination shall so survive. Without limiting the generality of the\r\n forgoing, the Intellectual Property, Disclaimer of Liability,\r\n Limitation of Liability, Indemnification, Jurisdiction and “General”\r\n sections will survive the termination of these Terms.\r\n

\r\n\r\n

\r\n 18. General\r\n

\r\n

\r\n (a) These Terms constitute the entire agreement between you and\r\n RumbleOn regarding your use of any and all of the Services as\r\n detailed herein, and supersedes any prior agreements between you and\r\n us relating to such use; (b) These Terms do not, and shall not be\r\n construed to create any relationship, partnership, joint venture,\r\n employer-employee, agency, or franchisor-franchisee relationship\r\n between you and RumbleOn; (c) Any heading, caption or section title\r\n contained in these Terms or our Privacy Policy is inserted only as a\r\n matter of convenience; (d) The failure of either party to exercise\r\n or enforce any right or provision of these Terms or any prior\r\n version of these Terms shall not constitute a waiver of such right\r\n or provision in that or any other instance; (e) If any provision of\r\n these Terms shall be deemed unlawful, void or for any reason\r\n unenforceable, then that provision shall be amended as possible to\r\n comply with the applicable law. This shall not affect the validity\r\n and enforceability of any remaining provisions; (f) We may assign\r\n any right or obligation under the Terms or Privacy Policy without\r\n restriction, but you may do so only after receiving our express\r\n written consent; (g) Any amendment to the Terms and Privacy Policy\r\n must be done in writing and signed by us and you; (h) All\r\n correspondence between you and RumbleOn shall be in English.\r\n

\r\n

\r\n YOU ACKNOWLEDGE AND AGREE THAT ANY CAUSE OF ACTION THAT YOU MAY HAVE\r\n ARISING OUT OF OR RELATED TO THE SERVICES OR CONTENT MUST COMMENCE\r\n WITHIN ONE (1) YEAR AFTER THE CAUSE OF ACTION ACCRUES. OTHERWISE,\r\n SUCH CAUSE OF ACTION IS PERMANENTLY BARRED.\r\n

\r\n

\r\n 19. Arbitration\r\n

\r\n

\r\n In the event that you and RumbleOn are unable to resolve any dispute\r\n or claim with one another, you and RumbleOn each agree to resolve\r\n any and all disputes and claims through binding individual\r\n arbitration, unless you expressly reject this arbitration provision\r\n in writing and within 30 days in accordance with the last paragraph\r\n of this section 19 below. “Disputes and claims” shall be broadly\r\n construed to include past, current, and/or future claims that relate\r\n in any way to these Terms, your use of the Services, and/or rights\r\n of privacy and/or publicity. However, to the extent you have in any\r\n manner violated or threatened to violate our intellectual property\r\n rights, we may seek injunctive or other appropriate relief in any\r\n state or federal court in the State of Texas.\r\n

\r\n

\r\n You and RumbleOn each waive the right to a trial by jury or to\r\n participate in a class action. Any arbitration under this provision\r\n will take place on an individual basis — class arbitrations and\r\n class actions are not permitted. You also agree not to participate\r\n in claims against RumbleOn brought in a private attorney general or\r\n representative capacity, or consolidated claims involving another\r\n person’s account. However, either party may bring an individual\r\n action in small claims court. If, however, you or we transfer or\r\n appeal the small claim to a different court, we reserve our right to\r\n elect arbitration.\r\n

\r\n\r\n

\r\n Arbitration is more informal than a lawsuit in court. Arbitration\r\n uses a neutral arbitrator instead of a judge or jury, allows for\r\n more limited discovery, and is subject to limited review by courts.\r\n Arbitrators can award the same damages and relief that a court can\r\n award, including attorneys’ fees where permitted by law.\r\n

\r\n

\r\n A party seeking arbitration must first send to the other, by\r\n certified mail, a written notice of dispute (“Notice”). The Notice\r\n to RumbleOn should be addressed to RumbleOn, Inc., Attn: General\r\n Counsel, 901 W. Walnut Hill Lane, Suite 350-C Irving TX. 75038. The\r\n Notice must: (i) describe the nature and basis of the claim or\r\n dispute; and (ii) set forth the specific relief sought (“Demand”).\r\n If you and RumbleOn cannot resolve the Demand within 30 days after\r\n the Notice is received, you or RumbleOn may commence an arbitration\r\n proceeding. During the arbitration, the amount of any settlement\r\n offer made by RumbleOn or you shall not be disclosed to the\r\n arbitrator until after the arbitrator determines the amount, if any,\r\n that you or RumbleOn is entitled to.\r\n

\r\n

\r\n The arbitration shall be administered by (i) JAMS, pursuant to its\r\n Comprehensive Arbitration Rules and Procedures and in accordance\r\n with its expedited procedures contained in those rules, or (ii)\r\n American Arbitration Association in accordance with its Consumer\r\n Arbitration Rules. If you initiate the arbitration, you may choose\r\n one of the above administrators. If RumbleOn initiates arbitration,\r\n we will give you 20 days to choose the administrator. If you do not\r\n choose the administrator within that time frame, we will choose one.\r\n If the administrator a party chooses is unable or unwilling or\r\n ceases to serve as the administrator, then you or RumbleOn may\r\n choose the other administrator. If neither administrator is able or\r\n willing to serve as the administrator, the parties will mutually\r\n select an administrator, which must be a lawyer or retired judge\r\n with at least 15 years of legal experience.\r\n

\r\n

\r\n Any arbitration hearing that you attend must take place at a\r\n location reasonably convenient to your residence.\r\n

\r\n

\r\n You and RumbleOn will bear the administrator and arbitrator fees\r\n that each party is normally required to pay under the rules and law\r\n applicable to the proceeding. Each party will bear the expense of\r\n its own attorneys, experts, and witnesses, except where applicable\r\n law and/or the Agreement allows a party to recover attorney’s fees\r\n from the other party.\r\n

\r\n\r\n

\r\n The Federal Arbitration Act (“FAA”) governs this arbitration\r\n agreement. The arbitrator shall apply applicable substantive law\r\n consistent with the FAA and applicable statutes of limitations and\r\n claims of privilege. The arbitrator shall not apply federal or state\r\n rules of civil procedure or evidence. The arbitrator will not have\r\n authority to award damages, remedies, or awards that conflict with\r\n these Terms, unless otherwise provided by applicable law. Either\r\n party may make a timely request for a brief written explanation of\r\n the basis for the arbitration award. Judgment on the arbitrator’s\r\n award may be entered in any court with jurisdiction. Otherwise, the\r\n award and the arbitration proceeding shall be kept confidential. The\r\n arbitrator's decision is final and binding, except for any right of\r\n appeal provided by the FAA. Either party can appeal the award to a\r\n three-arbitrator panel administered by the administrator. The costs\r\n of such appeal will be borne by the appealing party, unless\r\n applicable law or the administrator’s rules provide otherwise.\r\n

\r\n

\r\n This arbitration provision survives the termination of your\r\n relationship with RumbleOn and/or your use of the Services. In the\r\n event of a conflict between this arbitration provision and the\r\n applicable arbitration rules or other provisions of the Terms, or\r\n any other agreement between us, this arbitration provision will\r\n govern any Dispute or Claim between you and RumbleOn, as defined in\r\n these Terms. If a court or arbitrator deems any part of this\r\n arbitration provision invalid or unenforceable under any law or\r\n statute consistent with the FAA, the remaining parts of this\r\n arbitration provision shall be enforceable despite such invalidity;\r\n however, if the prohibition of class relief and proceedings is found\r\n to be unenforceable or void in any proceeding, then this entire\r\n arbitration provision (except for this sentence) shall be null and\r\n void with respect to such proceeding, subject to the right to appeal\r\n such limitation or voiding.\r\n

\r\n

\r\n In order to reject this provision, RumbleOn must receive a signed\r\n writing (“Rejection Notice”) from you within 30 days of the date\r\n that you first accept these Terms (unless a longer period is\r\n required by applicable law). The Rejection Notice must include your\r\n (i) name, (ii) account number or username, (iii) mailing address,\r\n and (iv) a statement that you do not wish to resolve disputes with\r\n RumbleOn through arbitration, and must be mailed to RumbleOn, Inc.,\r\n Attn: General Counsel, 901 W. Walnut Hill Lane, Suite 350-C Irving\r\n TX. 75038 via certified mail, return receipt requested. Rejecting\r\n the arbitration provision will not affect any other aspect of these\r\n Terms, nor will it affect any other existing or future arbitration\r\n agreement between you and RumbleOn.\r\n

\r\n

\r\n 20. Jurisdiction\r\n

\r\n\r\n

\r\n Any claim relating to these Terms, the Privacy Policy, any of the\r\n Services or Content will be governed by and interpreted in\r\n accordance with the laws of the State of Texas, U.S.A without\r\n reference to its conflict-of-laws principles and the United Nations\r\n Convention Relating to a Uniform Law on the International Sale of\r\n Goods may not be applied. Any dispute arising out of or related to\r\n any of the Services will be brought in, and you hereby consent to\r\n exclusive jurisdiction and venue in, the District Court of Dallas,\r\n Texas, U.S.A. You agree to waive all defenses of lack of personal\r\n jurisdiction and forum non-convenience and agree that process may be\r\n served in a manner authorized by applicable law or court rule.\r\n Notwithstanding the foregoing, we may seek injunctive relief in any\r\n court of competent jurisdiction.\r\n

\r\n\r\n

\r\n 21. SMS Text Messages\r\n

\r\n\r\n

\r\n By opting in to text messages from RumbleOn, Inc. and its\r\n affiliates, agents and assigns (collectively “RumbleOn”) (the “Text\r\n Service”), you accept these Terms & Conditions and agree to resolve\r\n disputes with RumbleOn through binding arbitration and you waive any\r\n right to participate in class actions, all as detailed in the\r\n “Arbitration” section below. Opting In You acknowledge and agree\r\n that you opted in to the Text Service by providing your cellular\r\n number and thereby providing consent to receive such messages. By\r\n opting in: · You authorize RumbleOn to send text messages to the\r\n cell phone number associated with your Opt-in (i.e., the number from\r\n which you sent the Opt-in request, the number listed on the Opt-In\r\n form or instructions, the number for which you otherwise provided\r\n consent, or the number on file for the account associated with your\r\n Opt-In), including through the use of an automatic telephone dialing\r\n system. You also authorize RumbleOn to include marketing content in\r\n any such messages. You do not have to opt-in or agree to opt-in as a\r\n condition of any purchase. · You confirm that you are the subscriber\r\n to the relevant phone number or that you are the customary user of\r\n that number and that you are authorized to opt-in to receive these\r\n messages. · You consent to the use of an electronic record and\r\n electronic signature to document your opt-in. You are signing your\r\n Opt-In to the Text Service. · To withdraw that consent, or to update\r\n our records with your contact information, please call (214)\r\n 617-3142. To view and retain an electronic copy of these Terms of\r\n Use or the rest of your Opt-In, you will need (i) a device (such as\r\n a computer or cell phone) with internet access, and (ii) either a\r\n printer or storage space on such device. For an email copy, you’ll\r\n also need an email account you can access from the device, along\r\n with a browser or other software that can display the emails. These\r\n Terms of Use still will apply if you withdraw the consent mentioned\r\n above or opt out of the Text Service. Frequency Unless otherwise\r\n noted, we may send multiple, recurring messages and/or terminate the\r\n Text Service or your participation in it at any time with or without\r\n notice, including, for example, before you have received any or all\r\n messages that you otherwise would have received. Cost Message and\r\n data rates may apply depending on your service plan, which may\r\n include fees from your carrier to send and/or receive text messages.\r\n If you click on a link within a text message, data charges may\r\n apply. How to Opt-Out Text STOP to stop receiving text messages. We\r\n may send you a final text message confirming that we received your\r\n request. How to Receive Help or Support For help regarding text\r\n messages, text HELP at any time. Privacy Policy You consent to the\r\n handling of your information as described in our Privacy Policy.\r\n Confidentiality Although we try to protect information you send us,\r\n we cannot guarantee that information sent using Short Message\r\n Service (SMS) is completely confidential. There are certain aspects\r\n of SMS usage and your device we cannot control. Therefore,\r\n transmission of information to you and to us over SMS must be\r\n undertaken at your own risk.\r\n

\r\n\r\n

\r\n 22. Have Questions?\r\n

\r\n

\r\n If you have any questions (or comments) concerning these Terms or\r\n Privacy Policy, please send us an e-mail to the following address{\" \"}\r\n notices@rumbleon.com and\r\n we will make an effort to reply within a reasonable timeframe.\r\n

\r\n\r\n

© 2021 RumbleOn, Inc., All Rights Reserved

\r\n \r\n
\r\n \r\n );\r\n};\r\n\r\nexport default TermsofUse;\r\n","import { ClosestDealersResult, Maybe } from \"../generated/graphql\";\r\n\r\nimport React from \"react\";\r\n\r\ntype State = {\r\n center?: {\r\n lat: any;\r\n lng: any;\r\n };\r\n};\r\n\r\ntype Action = { type: \"SET_CENTER\"; args: State };\r\n\r\ntype Dispatch = (action: Action) => void;\r\ntype GlobalFlowContextProps = {\r\n children: React.ReactNode;\r\n};\r\n\r\nconst GlobalFlowStateContext = React.createContext(\r\n undefined\r\n);\r\n\r\nconst GlobalFlowDispatchContext = React.createContext(\r\n undefined\r\n);\r\nconst localStorageKey = \"GLOBAL_LOCAl_STORAGE_KEY\";\r\n\r\nlet localGlobalFlowState = {};\r\ntry {\r\n localGlobalFlowState = JSON.parse(\r\n localStorage.getItem(localStorageKey) || \"{}\"\r\n );\r\n} catch (error) {\r\n console.error(\"Parse local state failed\");\r\n}\r\nconst GlobalFlowContextReducer = (state: State, action: Action) => {\r\n switch (action.type) {\r\n case \"SET_CENTER\":\r\n return {\r\n ...state,\r\n ...action.args,\r\n };\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nconst GlobalFlowContextProvider = ({ children }: GlobalFlowContextProps) => {\r\n const [state, dispatch] = React.useReducer(\r\n GlobalFlowContextReducer,\r\n localGlobalFlowState\r\n );\r\n React.useEffect(() => {\r\n // save flow info to local storage\r\n localStorage.setItem(localStorageKey, JSON.stringify(state));\r\n }, [state]);\r\n return (\r\n \r\n \r\n {children}\r\n \r\n \r\n );\r\n};\r\n\r\nconst useGlobalFlowState = () => {\r\n const context = React.useContext(GlobalFlowStateContext);\r\n if (context === undefined) {\r\n throw new Error(\r\n \"useGlobalFlowState must be used within a GlobalFlowContextProvider\"\r\n );\r\n }\r\n return context;\r\n};\r\n\r\nconst useGlobalFlowDispatch = () => {\r\n const context = React.useContext(GlobalFlowDispatchContext);\r\n if (context === undefined) {\r\n throw new Error(\r\n \"useGlobalFlowDispatch must be used within a GlobalFlowContextProvider\"\r\n );\r\n }\r\n return context;\r\n};\r\n\r\nexport { GlobalFlowContextProvider, useGlobalFlowState, useGlobalFlowDispatch };\r\n","/* eslint-disable */\r\n\r\nimport * as React from \"react\";\r\n\r\nimport { LoginResult, UpdateProfileResult } from \"../generated/graphql\";\r\nimport { ROLE_KEY, roles } from \"../constants\";\r\n\r\nimport Cookies from \"universal-cookie\";\r\nimport jwtDecode from \"jwt-decode\";\r\n\r\nconst cookies = new Cookies();\r\n\r\nexport const UPDATE_SMS_PREF = \"UPDATE_SMS_PREF\";\r\n\r\ntype Action =\r\n | { type: \"POST_LOGIN_SUCCESS\"; args: any }\r\n | { type: \"LOG_OUT\" }\r\n | { type: \"SOFT_LOGOUT\" }\r\n | { type: \"RESET_AUTH\" }\r\n | { type: \"SHOW_LOGIN\" }\r\n | { type: \"SHOW_LOGIN_AND_VERIFY_EMAIL\"; args: string }\r\n | { type: \"REMOVE_EMAIL_TO_VERIFY\" }\r\n | { type: \"SHOW_SIGNUP\" }\r\n | { type: \"HIDE_AUTH_POPUP\" }\r\n | { type: \"POST_UPDATE_SUCCESS\"; args: any }\r\n | { type: typeof UPDATE_SMS_PREF; args: string };\r\n\r\ntype Dispatch = (action: Action) => void;\r\ntype State = {\r\n loginVisible: boolean;\r\n signupVisible: boolean;\r\n isLoggedIn?: boolean;\r\n Cookies?: string;\r\n jwtToken?: string;\r\n userId?: string;\r\n isModerator: boolean;\r\n Uuid?: string;\r\n IsLegacyUser?: boolean;\r\n Email?: string;\r\n DisplayName?: string;\r\n FirstName?: string;\r\n LastName?: string;\r\n City?: any;\r\n Zip?: any;\r\n State?: any;\r\n Mobile?: any;\r\n Email2?: string;\r\n UserTypeId?: number;\r\n blockedThreads?: string[];\r\n UserNotificationPreferences?: string;\r\n emailToVerify?: string;\r\n};\r\ntype AuthPopupProviderProps = {\r\n children: React.ReactNode;\r\n};\r\n\r\nconst AuthPopupStateContext = React.createContext({\r\n loginVisible: false,\r\n signupVisible: false,\r\n IsLegacyUser: false,\r\n isLoggedIn: false,\r\n isModerator: false,\r\n UserNotificationPreferences: \"1\",\r\n emailToVerify: \"\",\r\n});\r\n\r\nconst AuthPopupDispatchContext = React.createContext(\r\n undefined\r\n);\r\n\r\nconst isRoleExists = (token: string, roleName: string) => {\r\n const decodedToken = jwtDecode(token) as any;\r\n return (\r\n ROLE_KEY in decodedToken &&\r\n (decodedToken.Role === roleName ||\r\n (Array.isArray(decodedToken.Role) &&\r\n decodedToken.Role.includes(roleName)))\r\n );\r\n};\r\n\r\nconst localStorageKey = \"AUTH_LOCAL_STORAGE_KEY\";\r\nlet localAuthState = {\r\n loginVisible: false,\r\n signupVisible: false,\r\n isLoggedIn: false,\r\n isModerator: false,\r\n};\r\ntry {\r\n localAuthState = JSON.parse(localStorage.getItem(localStorageKey) || \"{}\");\r\n} catch (error) {\r\n console.error(\"Parse local state failed\");\r\n}\r\nconst AuthPopupReducer = (state: State, action: Action) => {\r\n switch (action.type) {\r\n case \"SHOW_LOGIN\":\r\n return {\r\n ...state,\r\n loginVisible: true,\r\n signupVisible: false,\r\n };\r\n case \"SHOW_LOGIN_AND_VERIFY_EMAIL\":\r\n return {\r\n ...state,\r\n loginVisible: true,\r\n signupVisible: false,\r\n emailToVerify: action.args,\r\n };\r\n case \"REMOVE_EMAIL_TO_VERIFY\":\r\n return {\r\n ...state,\r\n emailToVerify: \"\",\r\n };\r\n case \"SHOW_SIGNUP\":\r\n return {\r\n ...state,\r\n loginVisible: false,\r\n signupVisible: true,\r\n };\r\n case \"HIDE_AUTH_POPUP\":\r\n return {\r\n ...state,\r\n loginVisible: false,\r\n signupVisible: false,\r\n };\r\n case \"POST_LOGIN_SUCCESS\": {\r\n cookies.set(\r\n \"idsrv.session\",\r\n action.args.Cookies && action.args.Cookies[0],\r\n {\r\n sameSite: \"none\",\r\n }\r\n );\r\n cookies.set(\r\n \".AspNetCore.Identity.Application\",\r\n action.args.Cookies && action.args.Cookies[1],\r\n {\r\n sameSite: \"none\",\r\n }\r\n );\r\n return {\r\n ...state,\r\n signupVisible: false,\r\n loginVisible: false,\r\n isLoggedIn: true,\r\n jwtToken: action.args.Token,\r\n isModerator:\r\n isRoleExists(action.args.Token, roles.MODERATOR) ||\r\n action.args.UserTypeId === 3 ||\r\n false,\r\n userId: action.args.UserId,\r\n Uuid: action.args.Uuid,\r\n IsLegacyUser: action.args.IsLegacyUser,\r\n Email: action.args.Email,\r\n FirstName: action.args.FirstName,\r\n LastName: action.args.LastName,\r\n Zip: action.args.Zip,\r\n City: action.args.City,\r\n State: action.args.State,\r\n Mobile: action.args.Mobile,\r\n Email2: action.args.Email2 || \"\",\r\n UserTypeId: action.args.UserTypeId || 1,\r\n UserNotificationPreferences:\r\n action.args.UserNotificationPreferences || \"1\",\r\n };\r\n }\r\n case \"LOG_OUT\":\r\n return {\r\n signupVisible: false,\r\n loginVisible: false,\r\n isLoggedIn: false,\r\n isModerator: false,\r\n };\r\n case \"SOFT_LOGOUT\":\r\n return {\r\n signupVisible: false,\r\n isLoggedIn: false,\r\n loginVisible: true,\r\n isModerator: false,\r\n };\r\n case \"POST_UPDATE_SUCCESS\":\r\n return {\r\n ...state,\r\n FirstName: action.args.FirstName,\r\n LastName: action.args.LastName,\r\n IsLegacyUser: action.args.IsLegacyUser,\r\n UserNotificationPreferences: action.args.UserNotificationPreferences,\r\n Zip: action.args.Zip,\r\n City: action.args.City,\r\n State: action.args.State,\r\n Mobile: action.args.Mobile,\r\n Email2: action.args.Email2 || \"\",\r\n Uuid: action.args.Uuid,\r\n Email: action.args.Email,\r\n };\r\n case \"RESET_AUTH\":\r\n return {\r\n ...state,\r\n FirstName: \"\",\r\n LastName: \"\",\r\n Zip: \"\",\r\n City: \"\",\r\n State: \"\",\r\n Mobile: \"\",\r\n Email2: \"\",\r\n Uuid: \"\",\r\n Email: \"\",\r\n isLoggedIn: false,\r\n emailToVerify: \"\",\r\n };\r\n case UPDATE_SMS_PREF:\r\n return {\r\n ...state,\r\n UserNotificationPreferences: action.args,\r\n };\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nconst AuthPopupContextProvider = ({ children }: AuthPopupProviderProps) => {\r\n const [state, dispatch] = React.useReducer(AuthPopupReducer, localAuthState);\r\n React.useEffect(() => {\r\n localStorage.setItem(\r\n localStorageKey,\r\n JSON.stringify({\r\n ...state,\r\n loginVisible: false,\r\n signupVisible: false,\r\n })\r\n );\r\n });\r\n return (\r\n \r\n \r\n {children}\r\n \r\n \r\n );\r\n};\r\nconst useAuthPopupState = () => {\r\n const context = React.useContext(AuthPopupStateContext);\r\n if (context === undefined) {\r\n throw new Error(\r\n \"useAuthPopupContext must be used within a AuthPopupContextProvider\"\r\n );\r\n }\r\n return context;\r\n};\r\n\r\nconst useAuthPopupDispatch = () => {\r\n const context = React.useContext(AuthPopupDispatchContext);\r\n if (context === undefined) {\r\n throw new Error(\r\n \"useAuthPopupDispatch must be used within a AuthPopupContextProvider\"\r\n );\r\n }\r\n return context;\r\n};\r\n\r\nexport { AuthPopupContextProvider, useAuthPopupState, useAuthPopupDispatch };\r\n","import { ClosestDealersResult, Maybe } from \"../generated/graphql\";\r\n\r\nimport React from \"react\";\r\n\r\ntype State = {\r\n showFinancePrequalModal?: boolean;\r\n showFinanceNonTCIStateModal?: boolean;\r\n showAcceptOfferSuccessModal?: boolean;\r\n showCashOfferVideoModal?: boolean;\r\n showRequestInfoModal?: boolean;\r\n showShareModal?: boolean;\r\n closestDealers?: Maybe[] | undefined;\r\n selectedESPage?: number;\r\n selectedDealershipESPage?: number;\r\n showAcceptTOUModal?: boolean;\r\n showAcceptFinanceOptInModal?: boolean;\r\n showFindYourVINModal?: boolean;\r\n enablenextButton?: boolean;\r\n};\r\n\r\ntype Action =\r\n | { type: \"SHOW_FINANCE_MODAL\"; args: State | false }\r\n | { type: \"HIDE_FINANCE_MODAL\"; args: State | false }\r\n | { type: \"SHOW_FINANCE_NON_TCISTATE_MODAL\"; args: State | false }\r\n | { type: \"HIDE_FINANCE_NON_TCISTATE_MODAL\"; args: State | false }\r\n | { type: \"SHOW_ACCEPT_OFFER_SUCCESS_MODAL\"; args: State | false }\r\n | { type: \"HIDE_ACCEPT_OFFER_SUCCESS_MODAL\"; args: State | false }\r\n | { type: \"SHOW_REQUEST_INFO_MODAL\"; args: State | false }\r\n | { type: \"HIDE_REQUEST_INFO_MODAL\"; args: State | false }\r\n | { type: \"SHOW_SHARE_MODAL\"; args: State | false }\r\n | { type: \"HIDE_SHARE_MODAL\"; args: State | false }\r\n | { type: \"SET_ES_PAGE\"; args: State }\r\n | { type: \"RESET_ES_PAGE\"; args: State }\r\n | { type: \"SET_DEALERSHIP_PAGE\"; args: State }\r\n | { type: \"RESET_DEALERSHIP_PAGE\"; args: State }\r\n | { type: \"SHOW_ACCEPT_TOU\"; args: State | false }\r\n | { type: \"HIDE_ACCEPT_TOU\"; args: State | false }\r\n | { type: \"SHOW_ACCEPT_FINANCE_OPT_IN_LANGUAGE\"; args: State | false }\r\n | { type: \"HIDE_ACCEPT_FINANCE_OPT_IN_LANGUAGE\"; args: State | false }\r\n | { type: \"SHOW_CASH_OFFER_VIDEO_MODAL\"; args: State | false }\r\n | { type: \"HIDE_CASH_OFFER_VIDEO_MODAL\"; args: State | false }\r\n | { type: \"ENABLE_NEXT_BUTTON\"; args: State | false }\r\n | { type: \"SHOW_FIND_YOUR_VIN_MODAL\"; args: State | false };\r\n\r\ntype Dispatch = (action: Action) => void;\r\ntype ModalFlowContextProps = {\r\n children: React.ReactNode;\r\n};\r\n\r\nconst ModalFlowStateContext = React.createContext(undefined);\r\n\r\nconst ModalFlowDispatchContext = React.createContext(\r\n undefined\r\n);\r\nconst localStorageKey = \"MODAL_FLOW_LOCAl_STORAGE_KEY\";\r\n\r\nlet localModalFlowState = {};\r\ntry {\r\n localModalFlowState = JSON.parse(\r\n localStorage.getItem(localStorageKey) || \"{}\"\r\n );\r\n} catch (error) {\r\n console.error(\"Parse local state failed\");\r\n}\r\nconst ModalFlowContextReducer = (state: State, action: Action) => {\r\n switch (action.type) {\r\n case \"ENABLE_NEXT_BUTTON\":\r\n return {\r\n ...state,\r\n ...action.args,\r\n };\r\n case \"SHOW_FINANCE_MODAL\":\r\n return {\r\n ...state,\r\n ...action.args,\r\n };\r\n case \"HIDE_FINANCE_MODAL\":\r\n return {\r\n ...state,\r\n ...action.args,\r\n };\r\n case \"SHOW_FINANCE_NON_TCISTATE_MODAL\":\r\n return {\r\n ...state,\r\n ...action.args,\r\n };\r\n case \"HIDE_FINANCE_NON_TCISTATE_MODAL\":\r\n return {\r\n ...state,\r\n ...action.args,\r\n };\r\n case \"SHOW_REQUEST_INFO_MODAL\":\r\n return {\r\n ...state,\r\n ...action.args,\r\n };\r\n case \"HIDE_REQUEST_INFO_MODAL\":\r\n return {\r\n ...state,\r\n ...action.args,\r\n };\r\n case \"SHOW_ACCEPT_OFFER_SUCCESS_MODAL\":\r\n return {\r\n ...state,\r\n ...action.args,\r\n };\r\n case \"HIDE_ACCEPT_OFFER_SUCCESS_MODAL\":\r\n return {\r\n ...state,\r\n ...action.args,\r\n };\r\n case \"SHOW_SHARE_MODAL\":\r\n return {\r\n ...state,\r\n ...action.args,\r\n };\r\n case \"HIDE_SHARE_MODAL\":\r\n return {\r\n ...state,\r\n ...action.args,\r\n };\r\n case \"SET_ES_PAGE\":\r\n return {\r\n ...state,\r\n ...action.args,\r\n };\r\n case \"SHOW_ACCEPT_TOU\":\r\n return {\r\n ...state,\r\n ...action.args,\r\n };\r\n case \"HIDE_ACCEPT_TOU\":\r\n return {\r\n ...state,\r\n ...action.args,\r\n };\r\n case \"SHOW_ACCEPT_FINANCE_OPT_IN_LANGUAGE\":\r\n return {\r\n ...state,\r\n ...action.args,\r\n };\r\n case \"HIDE_ACCEPT_FINANCE_OPT_IN_LANGUAGE\":\r\n return {\r\n ...state,\r\n ...action.args,\r\n };\r\n case \"SHOW_CASH_OFFER_VIDEO_MODAL\":\r\n return {\r\n ...state,\r\n ...action.args,\r\n };\r\n case \"HIDE_CASH_OFFER_VIDEO_MODAL\":\r\n return {\r\n ...state,\r\n ...action.args,\r\n };\r\n case \"SHOW_FIND_YOUR_VIN_MODAL\":\r\n return {\r\n ...state,\r\n ...action.args,\r\n };\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nconst ModalFlowContextProvider = ({ children }: ModalFlowContextProps) => {\r\n const [state, dispatch] = React.useReducer(\r\n ModalFlowContextReducer,\r\n localModalFlowState\r\n );\r\n React.useEffect(() => {\r\n // save flow info to local storage\r\n localStorage.setItem(localStorageKey, JSON.stringify(state));\r\n }, [state]);\r\n return (\r\n \r\n \r\n {children}\r\n \r\n \r\n );\r\n};\r\n\r\nconst useModalFlowState = () => {\r\n const context = React.useContext(ModalFlowStateContext);\r\n if (context === undefined) {\r\n throw new Error(\r\n \"useModalFlowState must be used within a ModalFlowContextProvider\"\r\n );\r\n }\r\n return context;\r\n};\r\n\r\nconst useModalFlowDispatch = () => {\r\n const context = React.useContext(ModalFlowDispatchContext);\r\n if (context === undefined) {\r\n throw new Error(\r\n \"useModalFlowDispatch must be used within a ModalFlowContextProvider\"\r\n );\r\n }\r\n return context;\r\n};\r\n\r\nexport { ModalFlowContextProvider, useModalFlowState, useModalFlowDispatch };\r\n","module.exports = __webpack_public_path__ + \"static/media/maintenance_page_2x.30747459.png\";","module.exports = __webpack_public_path__ + \"static/media/maintenance_page_mobile.360d6046.png\";","import { useEffect } from \"react\";\r\nimport { useLocation } from \"react-router-dom\";\r\n\r\nexport default function ScrollToTop() {\r\n const { pathname } = useLocation();\r\n\r\n useEffect(() => {\r\n if (\r\n !pathname.includes(\"/sell/vehicles\") ||\r\n !pathname.includes(\"/how-to/sell-your-vehicle\")\r\n ) {\r\n window.scrollTo(0, 0);\r\n }\r\n }, [pathname]);\r\n\r\n return null;\r\n}\r\n","export const breakpoints = {\r\n sm: \"580px\",\r\n md: \"875px\",\r\n mid: \"1488px\",\r\n lg: \"1800px\",\r\n};\r\n\r\nexport const splitDealership = (arr: any) => {\r\n const dealershipObjects: any = [];\r\n console.log(arr, \"arr\");\r\n arr.map((item: any) => {\r\n const lat = item._source.latitude;\r\n const lon = item._source.longitude;\r\n const address = item._source.address1;\r\n const stateName = item._source.stateName;\r\n const logoURL = item._source.dealerLogoImgUrl;\r\n const phone = item._source.phone;\r\n JSON.parse(item?._source.dealerAliases).map((alias: any) => {\r\n const finalDealerObject = {\r\n ...alias,\r\n dealerWebsite: alias.url,\r\n accountName: alias.name,\r\n accountId: item._source.accountId,\r\n creditUrl: item._source.creditUrl ? item._source.creditUrl : \"\",\r\n address1: address,\r\n location: { lat, lon },\r\n phone: phone,\r\n zip: item._source.zip,\r\n stateName: stateName,\r\n dealerLogoImgUrl: logoURL,\r\n website: item._source.website,\r\n latitude: lat,\r\n longitude: lon,\r\n };\r\n dealershipObjects.push(finalDealerObject);\r\n });\r\n });\r\n\r\n return dealershipObjects;\r\n};\r\n\r\nexport const splitDealershipFromData = (arr: any) => {\r\n const dealershipObjects: any = [];\r\n console.log(arr, \"arr\");\r\n arr.map((item: any) => {\r\n const lat = item.latitude;\r\n const lon = item.longitude;\r\n const address = item.address1;\r\n const stateName = item.stateName;\r\n const logoURL = item.dealerLogoImgUrl;\r\n const phone = item.phone;\r\n JSON.parse(item?.dealerAliases).map((alias: any) => {\r\n const finalDealerObject = {\r\n ...alias,\r\n dealerWebsite: alias.url,\r\n accountName: alias.name,\r\n accountId: item.accountId,\r\n creditUrl: item.creditUrl ? item.creditUrl : \"\",\r\n address1: address,\r\n location: { lat, lon },\r\n phone: phone,\r\n zip: item.zip,\r\n stateName: stateName,\r\n dealerLogoImgUrl: logoURL,\r\n website: item.website,\r\n latitude: lat,\r\n longitude: lon,\r\n };\r\n dealershipObjects.push(finalDealerObject);\r\n });\r\n });\r\n\r\n return dealershipObjects;\r\n};\r\n\r\nexport const colorList = [\r\n {\r\n colorId: 1,\r\n colorName: \"Black\",\r\n },\r\n {\r\n colorId: 2,\r\n colorName: \"Blue\",\r\n },\r\n {\r\n colorId: 3,\r\n colorName: \"Red\",\r\n },\r\n {\r\n colorId: 4,\r\n colorName: \"Brown\",\r\n },\r\n {\r\n colorId: 5,\r\n colorName: \"White\",\r\n },\r\n {\r\n colorId: 6,\r\n colorName: \"Gray\",\r\n },\r\n {\r\n colorId: 7,\r\n colorName: \"Silver\",\r\n },\r\n {\r\n colorId: 8,\r\n colorName: \"Green\",\r\n },\r\n {\r\n colorId: 9,\r\n colorName: \"Orange\",\r\n },\r\n {\r\n colorId: 10,\r\n colorName: \"Yellow\",\r\n },\r\n {\r\n colorId: 11,\r\n colorName: \"Gold\",\r\n },\r\n {\r\n colorId: 12,\r\n colorName: \"Purple\",\r\n },\r\n {\r\n colorId: 13,\r\n colorName: \"Maroon\",\r\n },\r\n {\r\n colorId: 14,\r\n colorName: \"Teal\",\r\n },\r\n {\r\n colorId: 15,\r\n colorName: \"Beige\",\r\n },\r\n {\r\n colorId: 16,\r\n colorName: \"Tan\",\r\n },\r\n {\r\n colorId: 17,\r\n colorName: \"Copper\",\r\n },\r\n];\r\n\r\nexport const titleStatusList = [\r\n {\r\n titleStatus: \"Clean\",\r\n titleStatusId: 1,\r\n },\r\n {\r\n titleStatus: \"Junk\",\r\n titleStatusId: 2,\r\n },\r\n {\r\n titleStatus: \"Total Loss\",\r\n titleStatusId: 3,\r\n },\r\n {\r\n titleStatus: \"Lemon\",\r\n titleStatusId: 4,\r\n },\r\n {\r\n titleStatus: \"Grey Market\",\r\n titleStatusId: 5,\r\n },\r\n {\r\n titleStatus: \"Flooded\",\r\n titleStatusId: 6,\r\n },\r\n {\r\n titleStatus: \"Reconstructed\",\r\n titleStatusId: 7,\r\n },\r\n {\r\n titleStatus: \"Non-Actual Miles\",\r\n titleStatusId: 8,\r\n },\r\n {\r\n titleStatus: \"Salvage\",\r\n titleStatusId: 9,\r\n },\r\n {\r\n titleStatus: \"Other\",\r\n titleStatusId: 10,\r\n },\r\n];\r\n\r\nexport const listingStatusList = [\r\n {\r\n id: 1,\r\n title: \"Incomplete\",\r\n },\r\n {\r\n id: 2,\r\n title: \"In Review\",\r\n },\r\n {\r\n id: 3,\r\n title: \"Approved\",\r\n },\r\n {\r\n id: 4,\r\n title: \"Sold\",\r\n },\r\n {\r\n id: 5,\r\n title: \"Denied\",\r\n },\r\n {\r\n id: 6,\r\n title: \"Deleted\",\r\n },\r\n {\r\n id: 7,\r\n title: \"Deleted\",\r\n },\r\n {\r\n id: 8,\r\n title: \"Cash Offer Accepted\",\r\n },\r\n {\r\n id: 9,\r\n title: \"Published\",\r\n },\r\n {\r\n id: 10,\r\n title: \"Expired\",\r\n },\r\n {\r\n id: 11,\r\n title: \"Denied\",\r\n },\r\n {\r\n id: 12,\r\n title: \"In Review\",\r\n },\r\n];\r\n\r\nexport const roles = {\r\n MODERATOR: \"Moderator\",\r\n SAFEX_ADMIN: \"SafeXchange Admin\",\r\n};\r\n\r\nexport const ROLE_KEY = \"Role\";\r\n\r\nexport const ERROR_MESSAGE = {\r\n default: \"Something went wrong, please try again.\",\r\n badZip: \"The zip code you entered is invalid.\",\r\n cashofferbeingAppraised:\r\n \"A vehicle with this VIN is already in our appraisal process. Feel free to reach us at (573) 298-4851 for any questions.\",\r\n beingAppraised:\r\n \"A vehicle with this VIN is already in our appraisal process.\",\r\n limitExceeded: \"Please wait 5 seconds before trying again.\",\r\n fetchFailed: \"Failed to fetch\",\r\n requestFailed: \"Unable to send request. Please try again.\",\r\n badVin: \"THE LETTERS I, O, AND Q ARE NOT ACCEPTED.\",\r\n};\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\ntype Config = {\r\n onSuccess?: (registration: ServiceWorkerRegistration) => void;\r\n onUpdate?: (registration: ServiceWorkerRegistration) => void;\r\n};\r\n\r\nexport function register(config?: 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(\r\n (process as { env: { [key: string]: string } }).env.PUBLIC_URL,\r\n window.location.href\r\n );\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: string, config?: 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: string, config?: 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 { Col, Modal, Row } from \"antd\";\r\nimport {\r\n useModalFlowDispatch,\r\n useModalFlowState,\r\n} from \"../context/ModalContext\";\r\n\r\nimport React from \"react\";\r\nimport { css } from \"@emotion/core\";\r\n\r\nconst FinanceNonTCIStateModal: React.FC = () => {\r\n const dispatch = useModalFlowDispatch();\r\n const state = useModalFlowState();\r\n console.log(state);\r\n\r\n const handleClose = () => {\r\n console.log(state);\r\n dispatch({\r\n type: \"HIDE_FINANCE_NON_TCISTATE_MODAL\",\r\n args: {\r\n showFinanceNonTCIStateModal: false,\r\n },\r\n });\r\n };\r\n\r\n const { showFinanceNonTCIStateModal, closestDealers = [] } = state;\r\n return (\r\n
\r\n \r\n
\r\n \r\n

\r\n Oops, The state you selected is not qualified for our Finance\r\n

\r\n

\r\n But you can still check out these closest Dealers for Finance\r\n

\r\n
\r\n\r\n \r\n {closestDealers.map((dealership) => {\r\n return (\r\n \r\n \r\n

{dealership?.DealerName}

\r\n Visit Website\r\n \r\n );\r\n })}\r\n\r\n {/* Dealer 2\r\n\r\n Dealer 3 */}\r\n \r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default FinanceNonTCIStateModal;\r\n","import {\r\n useModalFlowDispatch,\r\n useModalFlowState,\r\n} from \"../context/ModalContext\";\r\n\r\nimport { Modal } from \"antd\";\r\nimport React from \"react\";\r\n\r\nconst AcceptOfferSuccessModal: React.FC = () => {\r\n const dispatch = useModalFlowDispatch();\r\n const state = useModalFlowState();\r\n const { showAcceptOfferSuccessModal } = state;\r\n return (\r\n
\r\n \r\n dispatch({\r\n type: \"HIDE_ACCEPT_OFFER_SUCCESS_MODAL\",\r\n args: {\r\n showAcceptOfferSuccessModal: false,\r\n },\r\n })\r\n }\r\n >\r\n

\r\n Thank you for Accepting your Offer, You will be contacted by\r\n Phone/Email you provided.\r\n

\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default AcceptOfferSuccessModal;\r\n","import { Alert, Button, Col, Form, Input, Row, notification } from \"antd\";\r\n\r\nimport { FormComponentProps } from \"antd/lib/form\";\r\nimport { Mutation } from \"../../generated/graphql\";\r\nimport React from \"react\";\r\nimport TextArea from \"antd/lib/input/TextArea\";\r\nimport { css } from \"@emotion/core\";\r\nimport { formatCurrency } from \"../../utils/format\";\r\nimport { loader } from \"graphql.macro\";\r\nimport { useAuthPopupState } from \"../../context/AuthPopupContext\";\r\nimport { useDetailsFlowState } from \"../../context/DetailsFlowContext\";\r\nimport { useModalFlowDispatch } from \"../../context/ModalContext\";\r\nimport { useMutation } from \"react-apollo\";\r\n\r\nconst SEND_BUY_LEAD = loader(\"../graphql/buyLead.graphql\");\r\n\r\ninterface Props extends FormComponentProps {}\r\n\r\nconst RequestInfoForm: React.FC = ({ form }) => {\r\n const dispatch = useModalFlowDispatch();\r\n const state = useAuthPopupState();\r\n const detailState = useDetailsFlowState();\r\n const { Uuid, FirstName, LastName, Email, Mobile } = state;\r\n\r\n const {\r\n vin,\r\n make,\r\n model,\r\n listingYear,\r\n price,\r\n listingId,\r\n mileage,\r\n } = detailState;\r\n const MESSAGE = `I am interested in your ${listingYear} ${make} ${model} listed for ${formatCurrency(\r\n Number(price)\r\n )} for TradeIn.`;\r\n\r\n const [buyLeadMutationResult, { data: buyLeadResponse, error }] = useMutation<\r\n Mutation\r\n >(SEND_BUY_LEAD);\r\n\r\n const handleRequest = (e: React.FormEvent) => {\r\n e.preventDefault();\r\n form.validateFields(async (error, values) => {\r\n console.log(values);\r\n if (!error) {\r\n const { firstName, lastName, email, phone, message } = values;\r\n try {\r\n const { data } = await buyLeadMutationResult({\r\n variables: {\r\n UserUuid: Uuid || null,\r\n FirstName: firstName,\r\n LastName: lastName,\r\n Email: email,\r\n Phone: phone,\r\n Message: message,\r\n ListingId: Number(listingId),\r\n LeadTypeId: 4,\r\n ActivityTypeId: 1,\r\n Vin: vin,\r\n Year: listingYear?.toString(),\r\n Make: make,\r\n Model: model,\r\n Mileage: mileage?.toString(),\r\n },\r\n });\r\n\r\n console.log(data);\r\n if (data?.sendLead?.success === true) {\r\n dispatch({\r\n type: \"HIDE_REQUEST_INFO_MODAL\",\r\n args: {\r\n showRequestInfoModal: false,\r\n },\r\n });\r\n\r\n notification.success({\r\n message: \"We have sent your message to the Dealer\",\r\n placement: \"bottomLeft\",\r\n });\r\n }\r\n } catch (error) {\r\n // notification.error({ message: \"Could not send your message\" });\r\n } finally {\r\n form.resetFields();\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

Send a message about Trade-In on this vehicle

\r\n
\r\n \r\n \r\n \r\n {form.getFieldDecorator(\"firstName\", {\r\n initialValue: FirstName,\r\n rules: [\r\n {\r\n required: false,\r\n },\r\n ],\r\n })(\r\n \r\n )}\r\n \r\n \r\n\r\n \r\n \r\n {form.getFieldDecorator(\"lastName\", {\r\n initialValue: LastName,\r\n rules: [\r\n {\r\n required: false,\r\n },\r\n ],\r\n })(\r\n \r\n )}\r\n \r\n \r\n\r\n \r\n \r\n {form.getFieldDecorator(\"email\", {\r\n initialValue: Email,\r\n rules: [\r\n {\r\n type: \"email\",\r\n required: false,\r\n },\r\n ],\r\n })(\r\n \r\n )}\r\n \r\n \r\n\r\n \r\n \r\n {form.getFieldDecorator(\"phone\", {\r\n initialValue: Mobile,\r\n rules: [\r\n {\r\n required: false,\r\n },\r\n ],\r\n })(\r\n \r\n )}\r\n \r\n \r\n\r\n \r\n \r\n {form.getFieldDecorator(\"message\", {\r\n initialValue: MESSAGE,\r\n rules: [\r\n {\r\n required: false,\r\n },\r\n ],\r\n })(\r\n \r\n )}\r\n \r\n \r\n\r\n {error && (\r\n \r\n \r\n \r\n )}\r\n\r\n \r\n \r\n Request Information\r\n \r\n \r\n {\r\n dispatch({\r\n type: \"HIDE_REQUEST_INFO_MODAL\",\r\n args: {\r\n showRequestInfoModal: false,\r\n },\r\n });\r\n }}\r\n >\r\n Do not sell my personal info.\r\n \r\n \r\n
\r\n \r\n );\r\n};\r\n\r\nexport default Form.create()(RequestInfoForm);\r\n","import {\r\n useModalFlowDispatch,\r\n useModalFlowState,\r\n} from \"../context/ModalContext\";\r\n\r\nimport { Modal } from \"antd\";\r\nimport React from \"react\";\r\nimport ReactInfoForm from \"./components/RequestInfoForm\";\r\nimport { css } from \"@emotion/core\";\r\n\r\nconst RequestInfoModal: React.FC = () => {\r\n const dispatch = useModalFlowDispatch();\r\n const state = useModalFlowState();\r\n return (\r\n
\r\n \r\n dispatch({\r\n type: \"HIDE_REQUEST_INFO_MODAL\",\r\n args: {\r\n showRequestInfoModal: false,\r\n },\r\n })\r\n }\r\n >\r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default RequestInfoModal;\r\n","import \"./RumbleOnFinance.css\";\r\n\r\nimport * as React from \"react\";\r\n\r\nimport { Col, Row } from \"antd\";\r\n\r\nimport { Helmet } from \"react-helmet\";\r\n\r\nexport const RumbleOnFinance: React.FC = () => {\r\n return (\r\n
\r\n {/* \r\n RumbleOn | RumbleOn Finance\r\n \r\n \r\n \r\n \r\n */}\r\n
\r\n

Opt-In Language

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

RumbleOn Finance, LLC

\r\n

What you need to know with pre-qualification requests.

\r\n

\r\n We must first get your permission before sharing your personal\r\n financial information with outside, unaffiliated companies. By\r\n opting in, you are aware and consent to RumbleOn, Inc. and\r\n RumbleOn Finance, LLC to share your information with\r\n participating preferred dealer partners. and RumbleOn Finance,\r\n LLC.”) If you so consent (i.e. “opt-in’) to sharing your\r\n personal information, the information that may share with the\r\n preferred dealer partners may include [your full name, address,\r\n phone number(s), email]\r\n

\r\n

\r\n If you so consent (i.e. “opt-in’) to sharing your personal\r\n information, you are aware and allow RumbleOn, Inc and RumbleOn\r\n Finance, LLC to share your information with participating\r\n preferred dealer partners for the preferred dealer partners to\r\n market to you, and such marketing may include the preferred\r\n dealer partners’ own marketing or other marketing unrelated to\r\n RumbleOn, Inc.\r\n

\r\n

\r\n If you do not opt-in, we will not share your information with\r\n participating preferred dealer partners. We may, however,\r\n provide to you information regarding dealers nearest to you for\r\n you to visit with or without a contract purchase pre-approval\r\n certificate. Contract purchase pre-approval(s) from us are valid\r\n for the purchase of one personal use vehicle only and are valid\r\n for 30 days from the date issued, provided you are approved when\r\n completing your application with a dealer and request that\r\n RumbleOn Finance purchase the contract for a particular vehicle\r\n at one of the preferred dealer partners listed at RumbleOn.com.\r\n Dealers offering contract purchase pre-approval through RumbleOn\r\n Finance, LLC will display a link/button that offers contract\r\n purchase pre-approval. Otherwise, a dealer may not be offering\r\n contract purchase through RumbleOn Finance, LLC.\r\n

\r\n

\r\n The terms of our contract purchase pre-approval are estimates\r\n and not final and subject to change when your request for\r\n financing is completed at a participating dealer. There is no\r\n guarantee that RumbleOn will purchase a contract from a\r\n participating dealer once the dealer submits your credit\r\n application for purchase by RumbleOn Finance.\r\n

\r\n

\r\n © 2020 RumbleOn, Inc., All Rights Reserved – RumbleOn Terms\r\n of Use August 3, 2020\r\n

\r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default RumbleOnFinance;\r\n","import { Button, Col, Modal, Row, notification } from \"antd\";\r\nimport {\r\n useAuthPopupDispatch,\r\n useAuthPopupState,\r\n} from \"../context/AuthPopupContext\";\r\nimport {\r\n useModalFlowDispatch,\r\n useModalFlowState,\r\n} from \"../context/ModalContext\";\r\n\r\nimport { Mutation } from \"../generated/graphql\";\r\nimport React from \"react\";\r\nimport RumbleOnFinance from \"../components/Home/RumbleOnFinance\";\r\nimport { css } from \"@emotion/core\";\r\nimport { loader } from \"graphql.macro\";\r\nimport { useMutation } from \"react-apollo\";\r\n\r\nconst ACCEPT_FINANCE_OPT_IN_LANGUAGE_MUTATION = loader(\r\n \"./graphql/updateFinanceOptInLangugeForLegacyUsers.graphql\"\r\n);\r\n\r\nconst AcceptFinanceOptInLanguage: React.FC = () => {\r\n const authDispatch = useAuthPopupDispatch();\r\n const dispatch = useModalFlowDispatch();\r\n const { Uuid } = useAuthPopupState();\r\n const state = useModalFlowState();\r\n const { showAcceptFinanceOptInModal } = state;\r\n\r\n const [acceptFinanceOptInLanguage, { loading }] = useMutation(\r\n ACCEPT_FINANCE_OPT_IN_LANGUAGE_MUTATION\r\n );\r\n\r\n const handleAccept = () => {\r\n try {\r\n acceptFinanceOptInLanguage({\r\n variables: {\r\n UserUuid: Uuid,\r\n HasAcceptedV4TnC: true,\r\n },\r\n });\r\n\r\n dispatch({\r\n type: \"HIDE_ACCEPT_TOU\",\r\n args: {\r\n showAcceptFinanceOptInModal: false,\r\n },\r\n });\r\n } catch (error) {\r\n authDispatch({ type: \"LOG_OUT\" });\r\n notification.error({\r\n message:\r\n \"You have been logged out. In order to use this site, you must accept our Terms of Use and Privacy Policy\",\r\n });\r\n }\r\n };\r\n\r\n const handleDecline = () => {\r\n notification.error({\r\n message:\r\n \"You have been logged out. In order to use this site, you must accept our Terms of Use and Privacy Policy\",\r\n });\r\n authDispatch({ type: \"LOG_OUT\" });\r\n dispatch({\r\n type: \"HIDE_ACCEPT_TOU\",\r\n args: {\r\n showAcceptFinanceOptInModal: false,\r\n },\r\n });\r\n };\r\n\r\n return (\r\n
\r\n \r\n dispatch({\r\n type: \"HIDE_ACCEPT_OFFER_SUCCESS_MODAL\",\r\n args: {\r\n showAcceptFinanceOptInModal: 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 \r\n \r\n \r\n Decline\r\n \r\n \r\n\r\n \r\n \r\n Accept\r\n \r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default AcceptFinanceOptInLanguage;\r\n","import { Button, Col, Modal, Row, notification } from \"antd\";\r\nimport {\r\n useAuthPopupDispatch,\r\n useAuthPopupState,\r\n} from \"../context/AuthPopupContext\";\r\nimport {\r\n useModalFlowDispatch,\r\n useModalFlowState,\r\n} from \"../context/ModalContext\";\r\n\r\nimport { Mutation } from \"../generated/graphql\";\r\nimport React from \"react\";\r\nimport TermsOfUse from \"../components/Home/TermsofUse\";\r\nimport { css } from \"@emotion/core\";\r\nimport { loader } from \"graphql.macro\";\r\nimport { useMutation } from \"react-apollo\";\r\n\r\nconst ACCEPT_TOU_MUTATION = loader(\"./graphql/updateTOUForLegacyUsers.graphql\");\r\n\r\nconst AcceptTOU: React.FC = () => {\r\n const authDispatch = useAuthPopupDispatch();\r\n const dispatch = useModalFlowDispatch();\r\n const { Uuid } = useAuthPopupState();\r\n const state = useModalFlowState();\r\n const { showAcceptTOUModal } = state;\r\n\r\n const [acceptTOU, { loading }] = useMutation(ACCEPT_TOU_MUTATION);\r\n\r\n const handleAccept = () => {\r\n try {\r\n // acceptTOU({\r\n // variables: {\r\n // UserUuid: Uuid,\r\n // HasAcceptedV4TnC: true,\r\n // },\r\n // });\r\n\r\n dispatch({\r\n type: \"HIDE_ACCEPT_TOU\",\r\n args: {\r\n showAcceptTOUModal: false,\r\n },\r\n });\r\n\r\n dispatch({\r\n type: \"SHOW_ACCEPT_FINANCE_OPT_IN_LANGUAGE\",\r\n args: {\r\n showAcceptFinanceOptInModal: true,\r\n },\r\n });\r\n } catch (error) {\r\n authDispatch({ type: \"LOG_OUT\" });\r\n notification.error({\r\n message:\r\n \"You have been logged out. In order to use this site, you must accept our Terms of Use and Privacy Policy\",\r\n });\r\n }\r\n };\r\n\r\n const handleDecline = () => {\r\n notification.error({\r\n message:\r\n \"You have been logged out. In order to use this site, you must accept our Terms of Use and Privacy Policy\",\r\n });\r\n authDispatch({ type: \"LOG_OUT\" });\r\n dispatch({\r\n type: \"HIDE_ACCEPT_TOU\",\r\n args: {\r\n showAcceptTOUModal: false,\r\n },\r\n });\r\n };\r\n\r\n return (\r\n
\r\n \r\n dispatch({\r\n type: \"HIDE_ACCEPT_OFFER_SUCCESS_MODAL\",\r\n args: {\r\n showAcceptTOUModal: 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 \r\n \r\n \r\n Decline\r\n \r\n \r\n\r\n \r\n \r\n Accept\r\n \r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default AcceptTOU;\r\n","import * as React from \"react\";\r\n\r\nimport { ApolloClient, InMemoryCache } from \"apollo-boost\";\r\nimport { ApolloLink, concat } from \"apollo-link\";\r\nimport {\r\n useAuthPopupDispatch,\r\n useAuthPopupState,\r\n} from \"../../context/AuthPopupContext\";\r\n\r\nimport { ApolloProvider } from \"react-apollo\";\r\nimport { createHttpLink } from \"apollo-link-http\";\r\nimport { environmentVariableList } from \"../../config/env\";\r\nimport { tokenFormatter } from \"../../utils/format\";\r\n\r\ninterface Props {\r\n children: React.ReactChildren | React.ReactElement;\r\n}\r\n\r\nconst ApolloWrapper: React.FC = ({ children }) => {\r\n const dispatch = useAuthPopupDispatch();\r\n const { jwtToken, isLoggedIn } = useAuthPopupState();\r\n const apolloClient = () => {\r\n const cache = new InMemoryCache();\r\n const link = createHttpLink({\r\n uri: environmentVariableList.REACT_APP_GRAPHQL_ENDPOINT,\r\n });\r\n const authMiddleWare = new ApolloLink((operation, forward) => {\r\n if (jwtToken && isLoggedIn) {\r\n const parsedToken = tokenFormatter(jwtToken);\r\n const expTime = new Date(parsedToken.exp * 1000);\r\n const currTime = new Date();\r\n if (expTime.getTime() < currTime.getTime()) {\r\n // remove token if expired\r\n dispatch({\r\n type: \"SOFT_LOGOUT\",\r\n });\r\n } else {\r\n operation.setContext({\r\n headers: {\r\n authorization: `Bearer ${jwtToken}`,\r\n },\r\n });\r\n }\r\n }\r\n return forward(operation);\r\n });\r\n const client = new ApolloClient({\r\n cache,\r\n link: concat(authMiddleWare, link),\r\n });\r\n return client;\r\n };\r\n return {children};\r\n};\r\n\r\nexport default ApolloWrapper;\r\n","import * as React from \"react\";\r\n\r\nimport { Button, Form, Input, Spin, notification } from \"antd\";\r\nimport { Mutation, UpdateCashOfferUserInput } from \"../../generated/graphql\";\r\n\r\nimport { FormComponentProps } from \"antd/lib/form\";\r\nimport { css } from \"@emotion/core\";\r\nimport { loader } from \"graphql.macro\";\r\nimport urlParams from \"query-string\";\r\nimport { useAuthPopupDispatch } from \"../../context/AuthPopupContext\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { useMutation } from \"@apollo/react-hooks\";\r\nimport { validatePassword } from \"../../utils/validate\";\r\n\r\nconst UPDATE_CASHOFFER_USER = loader(\"./updateCashOfferUserMutation.graphql\");\r\n\r\ninterface Props extends FormComponentProps {}\r\n\r\nconst ResetPasswordPage: React.FC = ({ form }) => {\r\n const history = useHistory();\r\n const authDispatch = useAuthPopupDispatch();\r\n const [updatePassword, updatePasswordResult] = useMutation(\r\n UPDATE_CASHOFFER_USER,\r\n {\r\n onCompleted: (data) => {\r\n if (data && data.updateCashOfferUser) {\r\n if (\r\n history.location.state &&\r\n history.location.state.goBack &&\r\n history.location.state.goBack === true\r\n ) {\r\n history.goBack();\r\n } else {\r\n history.push(\"/buy\");\r\n authDispatch({ type: \"SHOW_LOGIN\" });\r\n }\r\n\r\n notification[\"success\"]({\r\n message: \"Password update successfully\",\r\n description: \"Please login with your new password\",\r\n });\r\n } else {\r\n notification[\"error\"]({\r\n message: \"Error\",\r\n description:\r\n \"We are not able to complete this, please try again later\",\r\n });\r\n }\r\n },\r\n onError: (_) => {\r\n notification[\"error\"]({\r\n message: \"Error\",\r\n description:\r\n \"We are not able to complete this, please try again later\",\r\n });\r\n },\r\n }\r\n );\r\n\r\n const [confirmPasswordDirty, setConfirmPasswordDirty] = React.useState<\r\n boolean\r\n >(false);\r\n\r\n const params = window.location.search;\r\n console.log(params, urlParams.parse(params).uuid);\r\n const UserUuid = urlParams.parse(params).uuid as string;\r\n\r\n const handleSubmit = (e: React.FormEvent) => {\r\n e.preventDefault();\r\n form.validateFields((error, values) => {\r\n if (!error) {\r\n const updateInput: UpdateCashOfferUserInput = {\r\n Password: values.password,\r\n UserUuid: UserUuid,\r\n };\r\n updatePassword({\r\n variables: {\r\n input: updateInput,\r\n },\r\n });\r\n }\r\n });\r\n };\r\n const handlePasswordConfirmBlur = (e: React.FocusEvent) => {\r\n const value = e.target.value;\r\n setConfirmPasswordDirty(confirmPasswordDirty || !!value);\r\n };\r\n const confirmToNextPassword = (_: any, value: any, callback: any): void => {\r\n const validationResult = validatePassword(value);\r\n if (value && validationResult.length > 0) {\r\n callback(`Must contain at least ${validationResult}`);\r\n }\r\n if (value && confirmPasswordDirty) {\r\n form.validateFields([\"passwordConfirm\"], {\r\n force: true,\r\n });\r\n }\r\n callback();\r\n };\r\n const confirmToFirstPassword = (_: any, value: any, callback: any): void => {\r\n if (value && value !== form.getFieldValue(\"password\")) {\r\n callback(\"Please confirm you enter the same password\");\r\n } else {\r\n callback();\r\n }\r\n };\r\n\r\n if (!UserUuid || UserUuid.length < 3) {\r\n return (\r\n \r\n \r\n

Oops, this seems our fault

\r\n

Looks like you have landed on a wrong page

\r\n

\r\n Check your inbox for the right email for creating your password.\r\n

\r\n \r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n div {\r\n width: 100% !important;\r\n }\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n padding: 30px;\r\n\r\n @media (max-width: 786px) {\r\n width: 100% !important;\r\n }\r\n `}\r\n >\r\n

Please enter your new password

\r\n \r\n \r\n \r\n {form.getFieldDecorator(\"password\", {\r\n rules: [\r\n {\r\n required: true,\r\n message: \"Please enter your password\",\r\n },\r\n {\r\n validator: confirmToNextPassword,\r\n },\r\n ],\r\n })(\r\n \r\n )}\r\n \r\n \r\n {form.getFieldDecorator(\"passwordConfirm\", {\r\n rules: [\r\n {\r\n required: true,\r\n message: \"Please enter your password\",\r\n },\r\n {\r\n validator: confirmToFirstPassword,\r\n },\r\n ],\r\n })(\r\n \r\n )}\r\n \r\n \r\n Submit\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default Form.create({ name: \"reset-password-form\" })(\r\n ResetPasswordPage\r\n);\r\n","import * as React from \"react\";\r\n\r\nimport Cookies from \"js-cookie\";\r\nimport { css } from \"@emotion/core\";\r\n\r\nconst USER_CONSENT_COOKIE_KEY = \"cookie_consent_is_true\";\r\nconst USER_CONSENT_COOKIE_EXPIRE_DATE =\r\n new Date().getTime() + 365 * 24 * 60 * 60;\r\nconst CookieConsent: React.FC = () => {\r\n const [cookieConsentIsTrue, setCookieConsentIsTrue] = React.useState(true);\r\n const onClick = (e: any) => {\r\n e.preventDefault();\r\n console.log(\"here to set cookies\", \"true\");\r\n if (!cookieConsentIsTrue) {\r\n console.log(\"here to set cookies\", \"true\");\r\n Cookies.set(USER_CONSENT_COOKIE_KEY, \"true\", {\r\n expires: USER_CONSENT_COOKIE_EXPIRE_DATE,\r\n });\r\n setCookieConsentIsTrue(true);\r\n }\r\n };\r\n\r\n React.useEffect(() => {\r\n const consentIsTrue = Cookies.get(USER_CONSENT_COOKIE_KEY) === \"true\";\r\n setCookieConsentIsTrue(consentIsTrue);\r\n }, []);\r\n return (\r\n <>\r\n {!cookieConsentIsTrue && (\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default CookieConsent;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { environmentVariableList } from '../../../config/env';\r\nimport { Button, Icon, Modal, Spin } from 'antd';\r\nimport Cafe from \"../../../assets/images/CareersImgs/Cafe.png\";\r\nimport ReactPlayer from \"react-player\";\r\nimport { css } from '@emotion/core';\r\n\r\n\r\nexport const DynamicBanner = () => {\r\n const [modalShown, setmodalShown] = useState(false);\r\n const closeModal = () => {\r\n setBanner(false)\r\n };\r\n const [loading, setloading] = useState(false)\r\n const [banner, setBanner] = useState(false)\r\n const [bannerData, setBannerData] = useState(null)\r\n const [modelData, setModelData] = useState(null)\r\n const [playing, setPlaying] = useState(true);\r\n const toggle = () => setmodalShown(!modalShown);\r\n\r\n const isBannerVisible = async () => {\r\n setloading(true)\r\n try {\r\n const response = await fetch(\r\n `${environmentVariableList.REACT_APP_DEALER_DETAIL}/api/Banners/GetBanner`,\r\n {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n Accept: 'application/json',\r\n },\r\n }\r\n );\r\n // console.log(response);\r\n const data = await response.json();\r\n if (data.Success === true) {\r\n const Filterdata: any = data.BannerList.filter((item: any) => item.Portal === \"RumbleOn\" && item.Type === \"Banner\")\r\n if (Filterdata.length > 0) {\r\n const res = Filterdata[0];\r\n setBannerData(res);\r\n setBanner(true)\r\n }\r\n const FilterdataModel: any = data.BannerList.filter((item: any) =>\r\n item.Portal === \"RumbleOn\" && item.Type === \"Modal\")\r\n if (FilterdataModel.length > 0) {\r\n const res = FilterdataModel[0];\r\n setModelData(res);\r\n setmodalShown(true)\r\n }\r\n } else {\r\n setBanner(false)\r\n setmodalShown(false)\r\n }\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n finally {\r\n setloading(false)\r\n }\r\n }\r\n useEffect(() => {\r\n isBannerVisible();\r\n }, []);\r\n console.log(\"BannerData::\", bannerData)\r\n return (<>\r\n {banner &&\r\n \r\n
\r\n
\r\n
\r\n \r\n

\r\n Attention\r\n

\r\n
\r\n

\r\n {bannerData.DisplayText}\r\n

\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n }\r\n {modalShown &&\r\n toggle()}\r\n title={\"Great News\"}\r\n css={css` \r\n width:600px !important;\r\n \r\n `}>\r\n\r\n {loading ? (\r\n
\r\n \r\n
\r\n ) : (\r\n <>\r\n {modelData.ImageUrl !== \"\" &&\r\n modelData.ImageUrl !== undefined &&\r\n modelData.ImageUrl !== null &&\r\n }\r\n {modelData.ImageUrl === null &&\r\n modelData.VideoUrl !== \"\" &&\r\n modelData.VideoUrl !== undefined &&\r\n modelData.VideoUrl !== null &&\r\n }\r\n )}\r\n \r\n }\r\n \r\n\r\n );\r\n};","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 =\n/*#__PURE__*/\n\n/*#__PURE__*/\nReact.createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M279.14 288l14.22-92.66h-88.91v-60.13c0-25.35 12.42-50.06 52.24-50.06h40.42V6.26S260.43 0 225.36 0c-73.22 0-121.08 44.38-121.08 124.72v70.62H22.89V288h81.39v224h100.17V288z\"\n});\n\nvar SvgFacebookFBrands = function SvgFacebookFBrands(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n \"aria-hidden\": \"true\",\n focusable: \"false\",\n \"data-prefix\": \"fab\",\n \"data-icon\": \"facebook-f\",\n className: \"svg-inline--fa fa-facebook-f fa-w-10\",\n role: \"img\",\n viewBox: \"0 0 320 512\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgFacebookFBrands, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/facebook-f-brands.53757d93.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 =\n/*#__PURE__*/\n\n/*#__PURE__*/\nReact.createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M224.1 141c-63.6 0-114.9 51.3-114.9 114.9s51.3 114.9 114.9 114.9S339 319.5 339 255.9 287.7 141 224.1 141zm0 189.6c-41.1 0-74.7-33.5-74.7-74.7s33.5-74.7 74.7-74.7 74.7 33.5 74.7 74.7-33.6 74.7-74.7 74.7zm146.4-194.3c0 14.9-12 26.8-26.8 26.8-14.9 0-26.8-12-26.8-26.8s12-26.8 26.8-26.8 26.8 12 26.8 26.8zm76.1 27.2c-1.7-35.9-9.9-67.7-36.2-93.9-26.2-26.2-58-34.4-93.9-36.2-37-2.1-147.9-2.1-184.9 0-35.8 1.7-67.6 9.9-93.9 36.1s-34.4 58-36.2 93.9c-2.1 37-2.1 147.9 0 184.9 1.7 35.9 9.9 67.7 36.2 93.9s58 34.4 93.9 36.2c37 2.1 147.9 2.1 184.9 0 35.9-1.7 67.7-9.9 93.9-36.2 26.2-26.2 34.4-58 36.2-93.9 2.1-37 2.1-147.8 0-184.8zM398.8 388c-7.8 19.6-22.9 34.7-42.6 42.6-29.5 11.7-99.5 9-132.1 9s-102.7 2.6-132.1-9c-19.6-7.8-34.7-22.9-42.6-42.6-11.7-29.5-9-99.5-9-132.1s-2.6-102.7 9-132.1c7.8-19.6 22.9-34.7 42.6-42.6 29.5-11.7 99.5-9 132.1-9s102.7-2.6 132.1 9c19.6 7.8 34.7 22.9 42.6 42.6 11.7 29.5 9 99.5 9 132.1s2.7 102.7-9 132.1z\"\n});\n\nvar SvgInstagramBrands = function SvgInstagramBrands(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n \"aria-hidden\": \"true\",\n focusable: \"false\",\n \"data-prefix\": \"fab\",\n \"data-icon\": \"instagram\",\n className: \"svg-inline--fa fa-instagram fa-w-14\",\n role: \"img\",\n viewBox: \"0 0 448 512\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgInstagramBrands, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/instagram-brands.e75317fa.svg\";\nexport { ForwardRef as ReactComponent };","import * as React from \"react\";\r\n\r\nimport { Col, Menu, Row } from \"antd\";\r\n\r\nimport { Link } from \"react-router-dom\";\r\n// import { breakpoints } from \"../../../constants\";\r\nimport { css } from \"@emotion/core\";\r\nimport { environmentVariableList } from \"../../../config/env\";\r\nimport queryString from \"query-string\";\r\nimport { useCashOfferContext } from \"../../../context/CashOfferContext\";\r\n\r\nconst MobileFooter: React.FC = () => {\r\n const { SubMenu } = Menu;\r\n const handleClick = (e: any) => {\r\n console.log(\"click \", e);\r\n };\r\n const { state } = useCashOfferContext();\r\n const ItemTypeId = state?.decodeData?.ItemTypeId;\r\n const dealerBrand = queryString.parseUrl(window.location.search).query\r\n ?.utm_source;\r\n return (\r\n \r\n \r\n \r\n \r\n Buy\r\n \r\n \r\n \r\n Cash Offer\r\n \r\n \r\n \r\n \r\n {/* \r\n {\" \"}\r\n List\r\n */}\r\n {/* \r\n Finance\r\n */}\r\n \r\n Find a Store\r\n \r\n \r\n \r\n {/* \r\n Find a Dealer\r\n \r\n \r\n \r\n Dealer Portal\r\n \r\n */}\r\n \r\n \r\n
\r\n a,\r\n .ant-menu-item-selected > a:hover {\r\n color: white;\r\n }\r\n .ant-menu-submenu-selected {\r\n color: white;\r\n }\r\n .ant-menu-vertical .ant-menu-item::after,\r\n .ant-menu-vertical-left .ant-menu-item::after,\r\n .ant-menu-vertical-right .ant-menu-item::after,\r\n .ant-menu-inline .ant-menu-item::after {\r\n border: none;\r\n }\r\n i.ant-menu-submenu-arrow {\r\n position: absolute;\r\n right: 0 !important;\r\n }\r\n .ant-menu-submenu-vertical\r\n > .ant-menu-submenu-title\r\n .ant-menu-submenu-arrow::before,\r\n .ant-menu-submenu-vertical-left\r\n > .ant-menu-submenu-title\r\n .ant-menu-submenu-arrow::before,\r\n .ant-menu-submenu-vertical-right\r\n > .ant-menu-submenu-title\r\n .ant-menu-submenu-arrow::before,\r\n .ant-menu-submenu-inline\r\n > .ant-menu-submenu-title\r\n .ant-menu-submenu-arrow::before,\r\n .ant-menu-submenu-vertical\r\n > .ant-menu-submenu-title\r\n .ant-menu-submenu-arrow::after,\r\n .ant-menu-submenu-vertical-left\r\n > .ant-menu-submenu-title\r\n .ant-menu-submenu-arrow::after,\r\n .ant-menu-submenu-vertical-right\r\n > .ant-menu-submenu-title\r\n .ant-menu-submenu-arrow::after,\r\n .ant-menu-submenu-inline\r\n > .ant-menu-submenu-title\r\n .ant-menu-submenu-arrow::after {\r\n position: absolute;\r\n width: 6px;\r\n height: 1.5px;\r\n background: #fff;\r\n background-image: linear-gradient(\r\n to right,\r\n rgba(0, 0, 0, 0),\r\n rgba(0, 0, 0, 0)\r\n );\r\n background-image: none;\r\n border-radius: 0 !important;\r\n font-size: 22px !important;\r\n }\r\n .ant-menu-submenu-title {\r\n padding-left: 0 !important;\r\n :active {\r\n color: white;\r\n }\r\n }\r\n .ant-menu-submenu > .ant-menu {\r\n background: #2b2b2b;\r\n color: white !important;\r\n }\r\n a {\r\n color: white;\r\n font-family: aktiv-grotesk, arial, Helvetica, sans-serif !important;\r\n }\r\n li.ant-menu-item {\r\n padding-left: 15px !important;\r\n margin: 0 !important;\r\n font-family: aktiv-grotesk, arial, Helvetica, sans-serif !important;\r\n font-weight: bold;\r\n }\r\n .ant-menu-submenu-title {\r\n font-family: aktiv-grotesk, arial, Helvetica, sans-serif !important;\r\n font-weight: bold;\r\n font-size: 16px;\r\n }\r\n .ant-menu-item > a:hover {\r\n color: white !important;\r\n }\r\n `}\r\n // theme={\"dark\"}\r\n onClick={handleClick}\r\n style={{ width: \"100%\", background: \"#2B2B2B\" }}\r\n mode=\"inline\"\r\n // onSelect={selected}\r\n >\r\n \r\n {/* \r\n Selling a Motorcycle\r\n \r\n \r\n Selling an ATV\r\n */}\r\n \r\n About Us\r\n \r\n {/* \r\n \r\n FAQ\r\n \r\n */}\r\n \r\n Contact Us\r\n \r\n \r\n FAQ\r\n \r\n {/* @todo get link */}\r\n {/* \r\n \r\n Get RumbleOn Swag\r\n \r\n */}\r\n \r\n \r\n Careers\r\n \r\n \r\n \r\n \r\n Investors\r\n \r\n \r\n \r\n \r\n Blog\r\n \r\n \r\n \r\n \r\n Events\r\n \r\n \r\n \r\n \r\n
\r\n \r\n );\r\n};\r\n\r\nexport default MobileFooter;\r\n","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 =\n/*#__PURE__*/\n\n/*#__PURE__*/\nReact.createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M496 256c0 137-111 248-248 248-25.6 0-50.2-3.9-73.4-11.1 10.1-16.5 25.2-43.5 30.8-65 3-11.6 15.4-59 15.4-59 8.1 15.4 31.7 28.5 56.8 28.5 74.8 0 128.7-68.8 128.7-154.3 0-81.9-66.9-143.2-152.9-143.2-107 0-163.9 71.8-163.9 150.1 0 36.4 19.4 81.7 50.3 96.1 4.7 2.2 7.2 1.2 8.3-3.3.8-3.4 5-20.3 6.9-28.1.6-2.5.3-4.7-1.7-7.1-10.1-12.5-18.3-35.3-18.3-56.6 0-54.7 41.4-107.6 112-107.6 60.9 0 103.6 41.5 103.6 100.9 0 67.1-33.9 113.6-78 113.6-24.3 0-42.6-20.1-36.7-44.8 7-29.5 20.5-61.3 20.5-82.6 0-19-10.2-34.9-31.4-34.9-24.9 0-44.9 25.7-44.9 60.2 0 22 7.4 36.8 7.4 36.8s-24.5 103.8-29 123.2c-5 21.4-3 51.6-.9 71.2C65.4 450.9 0 361.1 0 256 0 119 111 8 248 8s248 111 248 248z\"\n});\n\nvar SvgPinterestBrands = function SvgPinterestBrands(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n \"aria-hidden\": \"true\",\n focusable: \"false\",\n \"data-prefix\": \"fab\",\n \"data-icon\": \"pinterest\",\n className: \"svg-inline--fa fa-pinterest fa-w-16\",\n role: \"img\",\n viewBox: \"0 0 496 512\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgPinterestBrands, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/pinterest-brands.74f3c20a.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 =\n/*#__PURE__*/\n\n/*#__PURE__*/\nReact.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \".cls-1{fill:#fff}\"));\n\nvar _ref3 =\n/*#__PURE__*/\n\n/*#__PURE__*/\nReact.createElement(\"g\", {\n id: \"Layer_2\",\n \"data-name\": \"Layer 2\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Layer_1-2\",\n \"data-name\": \"Layer 1\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-1\",\n d: \"M237 1.87v63.38a9.48 9.48 0 01-9.47 9.53h-30.94a9.58 9.58 0 01-9.59-9.53V1.87A1.83 1.83 0 00185.18 0h-21.31A1.87 1.87 0 00162 1.87v67.7A30.44 30.44 0 00192.46 100h39.46A30.12 30.12 0 00262 69.57V1.87A2 2 0 00260 0h-21.07A1.93 1.93 0 00237 1.87zm210-.01v96.28a1.86 1.86 0 01-1.86 1.86h-21.3a1.84 1.84 0 01-1.84-1.86V40.32l-24.13 42.59a2.64 2.64 0 01-2.3 1.34H378.5a2.63 2.63 0 01-2.29-1.34L352 40.32v57.82a1.84 1.84 0 01-1.84 1.86h-21.3a1.86 1.86 0 01-1.86-1.86V1.86A1.86 1.86 0 01328.86 0h26.62L387 54.18 418.6 0h26.54A1.86 1.86 0 01447 1.86zm225 0v96.25a1.89 1.89 0 001.89 1.89h77.25a1.86 1.86 0 001.86-1.86V76.86a1.86 1.86 0 00-1.86-1.86H697V1.86A1.73 1.73 0 00695.3 0h-21.44A1.86 1.86 0 00672 1.86zM843 25v15h36a1.86 1.86 0 011.86 1.86v16.28A1.86 1.86 0 01879 60h-36v15h49.47a3.86 3.86 0 013.7 2.77L901.93 98a1.59 1.59 0 01-1.52 2h-80.55a1.86 1.86 0 01-1.86-1.86V1.86A1.86 1.86 0 01819.86 0h80.55a1.59 1.59 0 011.52 2l-5.75 20.2a3.87 3.87 0 01-3.7 2.76z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1074 0h-39a32.9 32.9 0 00-33 32.81v34.38a32.9 32.9 0 0033 32.81h39a32.9 32.9 0 0033-32.81V32.81A32.9 32.9 0 001074 0zm8 62.45A12.59 12.59 0 011069.38 75h-29.76A12.59 12.59 0 011027 62.45v-24.9A12.59 12.59 0 011039.62 25h29.76A12.59 12.59 0 011082 37.55zM1268 0h-21.22a2 2 0 00-2 2v59.72L1197.07 1a2.66 2.66 0 00-1.83-1H1174a2 2 0 00-2 2v96a2 2 0 002 2h21.22a2 2 0 002-2V38.57L1244.66 99a2.67 2.67 0 002.1 1H1268a2 2 0 002-2V2a2 2 0 00-2-2z\",\n fill: \"#85ce06\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-1\",\n d: \"M76 71.18a37.48 37.48 0 0021-33.83C96.92 16.58 79.57 0 58.8 0H2A2 2 0 00.08 2.55l6.06 21A2 2 0 008.06 25h51c6.9 0 12.84 5.4 13 12.3A12.5 12.5 0 0159.5 50H2a2 2 0 00-2 2v46a2 2 0 002 2h23V75h26l14.75 23.75A2.63 2.63 0 0068 100h24.34a1.53 1.53 0 001.27-2.37zm520.93-21.71a5.13 5.13 0 00.68-.6 28.93 28.93 0 008.3-18.76C606.77 13.57 592.32 0 575.79 0h-61.93A1.86 1.86 0 00512 1.86v96.28a1.86 1.86 0 001.86 1.86h64.58a28.43 28.43 0 0020.22-8.36 28.83 28.83 0 00-1.73-42.17zM574.35 75H537V60h37.35a7.5 7.5 0 010 15zm0-35H537V25h37.35a7.5 7.5 0 010 15z\"\n})));\n\nvar SvgRumbleonLogoWhite = function SvgRumbleonLogoWhite(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 1270 100\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3);\n};\n\nvar ForwardRef = React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgRumbleonLogoWhite, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/rumbleon-logo-white.0c2b9412.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 =\n/*#__PURE__*/\n\n/*#__PURE__*/\nReact.createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z\"\n});\n\nvar SvgTwitterBrands = function SvgTwitterBrands(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n \"aria-hidden\": \"true\",\n focusable: \"false\",\n \"data-prefix\": \"fab\",\n \"data-icon\": \"twitter\",\n className: \"svg-inline--fa fa-twitter fa-w-16\",\n role: \"img\",\n viewBox: \"0 0 512 512\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgTwitterBrands, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/twitter-brands.6620c8ae.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 =\n/*#__PURE__*/\n\n/*#__PURE__*/\nReact.createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M549.655 124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781 64 288 64 288 64S117.22 64 74.629 75.486c-23.497 6.322-42.003 24.947-48.284 48.597-11.412 42.867-11.412 132.305-11.412 132.305s0 89.438 11.412 132.305c6.281 23.65 24.787 41.5 48.284 47.821C117.22 448 288 448 288 448s170.78 0 213.371-11.486c23.497-6.321 42.003-24.171 48.284-47.821 11.412-42.867 11.412-132.305 11.412-132.305s0-89.438-11.412-132.305zm-317.51 213.508V175.185l142.739 81.205-142.739 81.201z\"\n});\n\nvar SvgYoutubeBrands = function SvgYoutubeBrands(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n \"aria-hidden\": \"true\",\n focusable: \"false\",\n \"data-prefix\": \"fab\",\n \"data-icon\": \"youtube\",\n className: \"svg-inline--fa fa-youtube fa-w-18\",\n role: \"img\",\n viewBox: \"0 0 576 512\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgYoutubeBrands, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/youtube-brands.c80ca203.svg\";\nexport { ForwardRef as ReactComponent };","import * as React from \"react\";\r\n\r\nimport { Col, Row } from \"antd\";\r\n\r\nimport { ReactComponent as FacebookIcon } from \"../images/facebook-f-brands.svg\";\r\nimport { ReactComponent as InstagramIcon } from \"../images/instagram-brands.svg\";\r\nimport { Link } from \"react-router-dom\";\r\nimport MobileFooter from \"./MobileFooter\";\r\nimport { ReactComponent as PinterestIcon } from \"../images/pinterest-brands.svg\";\r\nimport { Query } from \"../../../generated/graphql\";\r\nimport { ReactComponent as RumbleOnLogo } from \"../images/rumbleon-logo-white.svg\";\r\nimport { ReactComponent as TwitterIcon } from \"../images/twitter-brands.svg\";\r\nimport { ReactComponent as YoutubeIcon } from \"../images/youtube-brands.svg\";\r\nimport { breakpoints } from \"../../../constants\";\r\nimport { css } from \"@emotion/core\";\r\nimport { environmentVariableList } from \"../../../config/env\";\r\nimport { loader } from \"graphql.macro\";\r\nimport { useQuery } from \"@apollo/react-hooks\";\r\n\r\nconst STOCK_MARKET_VALUE = loader(\"./stockMarketValues.graphql\");\r\n\r\nconst Footer: React.FC = () => {\r\n const [count, setCount] = React.useState();\r\n const stockQueryResult = useQuery(STOCK_MARKET_VALUE, {\r\n skip: count > 0,\r\n });\r\n const stock = stockQueryResult.data && stockQueryResult.data.getstockflow;\r\n React.useEffect(() => {\r\n const result =\r\n (stockQueryResult.data && stockQueryResult.data.getstockflow) || 0;\r\n if (result !== 0) {\r\n setCount(result);\r\n }\r\n }, [stockQueryResult]);\r\n return (\r\n
\r\n \r\n {/* image */}\r\n \r\n \r\n \r\n \r\n \r\n {/* socialmedia */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Buy\r\n \r\n \r\n Cash Offer\r\n \r\n {/* \r\n List\r\n */}\r\n {/* \r\n Finance\r\n */}\r\n \r\n \r\n Find a Store\r\n \r\n \r\n {/* \r\n Find a Dealer\r\n */}\r\n {/* \r\n \r\n Dealer Portal\r\n \r\n @find the correct link\r\n */}\r\n \r\n \r\n About RumbleOn\r\n \r\n \r\n \r\n About Us\r\n \r\n \r\n Contact Us\r\n \r\n \r\n FAQ\r\n \r\n {/* \r\n \r\n FAQ\r\n \r\n */}\r\n \r\n \r\n Careers\r\n \r\n \r\n \r\n \r\n Investors\r\n \r\n \r\n \r\n \r\n Blog\r\n \r\n \r\n \r\n \r\n Events\r\n \r\n \r\n \r\n\r\n {/* \r\n \r\n \r\n Selling an ATV\r\n \r\n \r\n\r\n \r\n \r\n Motorcycle\r\n \r\n \r\n\r\n \r\n \r\n Get RumbleOn Swag\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n */}\r\n {/* \r\n RumbleOn Finance\r\n */}\r\n {/* \r\n \r\n Get Pre-qualified\r\n \r\n \r\n \r\n RumbleOn Finance\r\n \r\n \r\n */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n */}\r\n \r\n \r\n {stock && (\r\n
\r\n \r\n

NASD: RMBL

\r\n \r\n RumbleOn, Inc. - Class B\r\n

\r\n \r\n ${Number.parseFloat(stock.price).toFixed(2)}\r\n \r\n {Number.parseFloat(stock.changepercent).toFixed(2)}%{\" \"}\r\n {Number.parseFloat(stock.change).toFixed(2)}\r\n \r\n

\r\n \r\n \r\n DELAYED BY 20 MINUTES\r\n

\r\n
\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n {/* \r\n \r\n \r\n \r\n \r\n \r\n \r\n */}\r\n \r\n {stock && (\r\n \r\n

NASD: RMBL

\r\n \r\n RumbleOn, Inc. - Class B\r\n

\r\n \r\n ${Number.parseFloat(stock.price).toFixed(2)}\r\n \r\n {Number.parseFloat(stock.changepercent).toFixed(2)}%{\" \"}\r\n {Number.parseFloat(stock.change).toFixed(2)}\r\n \r\n

\r\n \r\n )}\r\n \r\n DELAYED BY 20 MINUTES\r\n

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

© 2020 RumbleOn Inc. All rights reserved.

\r\n \r\n By using this service, you accept our\r\n \r\n Terms of Use\r\n {\" \"}\r\n and\r\n \r\n Privacy Policy\r\n \r\n

\r\n \r\n Do not sell my personal info.\r\n \r\n
\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default Footer;\r\n","import * as React from \"react\";\r\n\r\nimport { Icon, Menu } from \"antd\";\r\nimport { Link, useLocation } from \"react-router-dom\";\r\n\r\nimport AboutV5 from \"./AboutV5\";\r\nimport { breakpoints } from \"../../../constants\";\r\nimport { css } from \"@emotion/core\";\r\nimport queryString from \"query-string\";\r\nimport { useAuthPopupState } from \"../../../context/AuthPopupContext\";\r\nimport { useCashOfferContext } from \"../../../context/CashOfferContext\";\r\n\r\nconst { SubMenu } = Menu;\r\n\r\nconst MainMenu: React.FC = () => {\r\n const [selectedKeys, setSelectedKeys] = React.useState([]);\r\n const [modalVisible, setModalVisble] = React.useState(false);\r\n let location = useLocation();\r\n const { isLoggedIn } = useAuthPopupState();\r\n\r\n const { state } = useCashOfferContext();\r\n const ItemTypeId = state?.decodeData?.ItemTypeId;\r\n const dealerBrand = queryString.parseUrl(window.location.search).query\r\n ?.utm_source;\r\n const handleClose = () => {\r\n setModalVisble(false);\r\n };\r\n\r\n React.useEffect(() => {\r\n const { pathname } = location;\r\n if (pathname.includes(\"/buy\")) {\r\n setSelectedKeys([\"buy\"]);\r\n } else if (pathname.includes(\"/sell\")) {\r\n setSelectedKeys([\"sell\"]);\r\n } else if (pathname.includes(\"/list\")) {\r\n setSelectedKeys([\"listing\"]);\r\n } else if (pathname.includes(\"/finance\")) {\r\n setSelectedKeys([\"finance\"]);\r\n } else if (pathname.includes(\"/dealerships\")) {\r\n setSelectedKeys([\"dealerships\"]);\r\n } else {\r\n setSelectedKeys([]);\r\n }\r\n }, [location.pathname]);\r\n\r\n return (\r\n a {\r\n color: #2b2b2b !important;\r\n font-family: aktiv-grotesk, arial, Helvetica, sans-serif !important;\r\n font-weight: 400;\r\n font-size: 18px;\r\n }\r\n line-height: 25px !important;\r\n .ant-menu-item {\r\n border: none !important;\r\n background: white !important;\r\n text-align: center;\r\n }\r\n .ant-menu-item-selected > a {\r\n border-bottom: 2px solid #1b51cf !important;\r\n font-weight: bold !important;\r\n }\r\n .ant-menu-submenu {\r\n color: #2b2b2b !important;\r\n font-family: aktiv-grotesk, arial, Helvetica, sans-serif !important;\r\n font-weight: 400;\r\n font-size: 18px !important;\r\n margin: 0 !important;\r\n top: 3px !important;\r\n bottom: 0 !important;\r\n }\r\n @media (max-width: ${breakpoints.md}) {\r\n display: none;\r\n }\r\n `}\r\n selectedKeys={selectedKeys}\r\n >\r\n \r\n Buy\r\n \r\n \r\n \r\n Cash Offer\r\n \r\n \r\n {!isLoggedIn && (\r\n \r\n Dealer\r\n \r\n )}\r\n {/* \r\n List\r\n */}\r\n {/* \r\n Get Pre-qualified\r\n */}\r\n\r\n \r\n \r\n Find a Store\r\n \r\n \r\n\r\n \r\n About{\" \"}\r\n \r\n \r\n }\r\n >\r\n \r\n \r\n About Us\r\n \r\n \r\n\r\n \r\n \r\n Contact Us\r\n \r\n \r\n\r\n \r\n \r\n Careers\r\n \r\n \r\n\r\n \r\n \r\n Investors\r\n \r\n \r\n\r\n \r\n \r\n Blog\r\n \r\n \r\n\r\n \r\n FAQ\r\n \r\n\r\n \r\n \r\n Events\r\n \r\n \r\n \r\n\r\n {/* \r\n {\r\n window.open(\r\n \"https://www.ridenowauctions.com\",\r\n \"_blank\"\r\n )\r\n }} >Live Auction\r\n */}\r\n \r\n );\r\n};\r\n\r\nexport default MainMenu;\r\n","import * as React from \"react\";\r\n\r\nimport { Button, Col, Menu, Modal, Row } from \"antd\";\r\nimport { Link, useHistory } from \"react-router-dom\";\r\nimport {\r\n useAuthPopupDispatch,\r\n useAuthPopupState,\r\n} from \"../../../context/AuthPopupContext\";\r\n\r\nimport Logo from \"../../Layout/images/rumbleon-black-logo.svg\";\r\nimport { colors } from \"../../../constants/styles\";\r\nimport { css } from \"@emotion/core\";\r\nimport { environmentVariableList } from \"../../../config/env\";\r\nimport { useCashOfferContext } from \"../../../context/CashOfferContext\";\r\n\r\nconst MobileTopLeftMenu: React.FC = () => {\r\n const history = useHistory();\r\n const dispatch = useAuthPopupDispatch();\r\n const { isLoggedIn } = useAuthPopupState();\r\n const [modalVisible, setModalVisble] = React.useState(false);\r\n const { state } = useCashOfferContext();\r\n const ItemTypeId = state?.decodeData?.ItemTypeId;\r\n\r\n const handleClose = () => {\r\n setModalVisble(false);\r\n };\r\n\r\n const handleLogout = () => {\r\n setModalVisble(false);\r\n dispatch({\r\n type: \"LOG_OUT\",\r\n });\r\n history.push(\"/\");\r\n };\r\n const handleLogin = () => {\r\n setModalVisble(false);\r\n dispatch({\r\n type: \"SHOW_LOGIN\",\r\n });\r\n };\r\n\r\n const handleCreateAccount = () => {\r\n setModalVisble(false);\r\n dispatch({\r\n type: \"SHOW_SIGNUP\",\r\n });\r\n };\r\n\r\n const toggleCollapsed = () => {\r\n if (modalVisible === false) {\r\n setModalVisble(true);\r\n } else {\r\n setModalVisble(false);\r\n }\r\n };\r\n\r\n const { SubMenu } = Menu;\r\n return (\r\n <>\r\n \r\n \r\n }\r\n css={css`\r\n .ant-menu {\r\n border: none;\r\n }\r\n .ant-menu-item,\r\n .ant-menu-submenu-title {\r\n padding: 0 !important;\r\n font-family: interstate;\r\n font-weight: bold;\r\n color: inherit;\r\n }\r\n\r\n .ant-menu:not(.ant-menu-horizontal) .ant-menu-item-selected {\r\n background-color: transparent;\r\n &:after {\r\n border-right: none;\r\n }\r\n }\r\n `}\r\n style={{\r\n borderRadius: \"3px\",\r\n top: \"5%\",\r\n width: \"100%\",\r\n }}\r\n >\r\n \r\n \r\n \r\n {isLoggedIn && (\r\n \r\n \r\n My Garage\r\n \r\n \r\n )}\r\n \r\n \r\n Home\r\n \r\n \r\n \r\n \r\n Buy\r\n \r\n \r\n \r\n \r\n Cash offer\r\n \r\n \r\n {!isLoggedIn && (\r\n \r\n \r\n Dealer\r\n \r\n \r\n )}\r\n \r\n \r\n Find a Store\r\n \r\n \r\n {/* \r\n \r\n List\r\n \r\n */}\r\n {/* \r\n \r\n Get Pre-qualified\r\n \r\n */}\r\n {/* \r\n \r\n Find a Dealer\r\n \r\n \r\n \r\n {\r\n window.open(\r\n \"https://www.ridenowauctions.com\",\r\n \"_blank\"\r\n )\r\n }} >Live Auction\r\n */}\r\n {/* @todo find the right link */}\r\n {/* \r\n \r\n Dealer Portal\r\n \r\n */}\r\n \r\n \r\n \r\n About Us\r\n \r\n \r\n\r\n \r\n \r\n Contact Us\r\n \r\n \r\n \r\n FAQ\r\n \r\n\r\n \r\n \r\n Careers\r\n \r\n \r\n \r\n \r\n Investors\r\n \r\n \r\n \r\n \r\n Blog\r\n \r\n \r\n \r\n \r\n Events\r\n \r\n \r\n \r\n \r\n \r\n \r\n {isLoggedIn ? (\r\n \r\n LOG OUT\r\n \r\n ) : (\r\n \r\n \r\n \r\n \r\n \r\n \r\n CREATE ACCOUNT\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 MobileTopLeftMenu;\r\n","import * as React from \"react\";\r\n\r\nimport { Button, Menu } from \"antd\";\r\nimport { Link, useHistory } from \"react-router-dom\";\r\nimport {\r\n useAuthPopupDispatch,\r\n useAuthPopupState,\r\n} from \"../../../context/AuthPopupContext\";\r\n\r\nimport { breakpoints } from \"../../../constants\";\r\nimport { css } from \"@emotion/core\";\r\n\r\n\r\n\r\nconst TopRightMenu: React.FC = () => {\r\n const dispatch = useAuthPopupDispatch();\r\n const { isLoggedIn } = useAuthPopupState();\r\n const history = useHistory();\r\n return (\r\n \r\n {/* Desktop */}\r\n \r\n {isLoggedIn && (\r\n \r\n My Garage\r\n \r\n )}\r\n\r\n {isLoggedIn && (\r\n \r\n {\r\n history.push(\"/\");\r\n dispatch({\r\n type: \"LOG_OUT\",\r\n });\r\n }}\r\n >\r\n Log Out\r\n \r\n \r\n )}\r\n {!isLoggedIn && (\r\n \r\n dispatch({\r\n type: \"SHOW_LOGIN\",\r\n })\r\n }\r\n >\r\n Log in\r\n \r\n )}\r\n {!isLoggedIn && (\r\n \r\n dispatch({\r\n type: \"SHOW_SIGNUP\",\r\n })\r\n }\r\n >\r\n Create Account\r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default TopRightMenu;\r\n","import \"./Layout.css\";\r\n\r\nimport * as React from \"react\";\r\n\r\nimport { Alert, Col, Icon, Layout, Menu, Row } from \"antd\";\r\n\r\nimport CookieConsent from \"./components/CookieeConsent\";\r\nimport { DynamicBanner } from \"./components/Banner\";\r\nimport Footer from \"./components/Footer\";\r\nimport { Helmet } from \"react-helmet\";\r\nimport { Link } from \"react-router-dom\";\r\nimport MainMenu from \"./components/MainMenu\";\r\nimport MobileTopLeftMenu from \"./components/MobileTopLeftMenu\";\r\nimport TopRightMenu from \"./components/TopRightMenu\";\r\nimport { breakpoints } from \"../../constants\";\r\nimport { css } from \"@emotion/core\";\r\nimport { environmentVariableList } from \"../../config/env\";\r\nimport queryString from \"query-string\";\r\n\r\nconst { Header, Content } = Layout;\r\nconst { SubMenu } = Menu;\r\ninterface Props {\r\n children: React.ReactNode;\r\n}\r\n\r\nconst AppLayout: React.FC = ({ children }) => {\r\n const dealerBranded = queryString.parseUrl(window.location.search).query\r\n ?.utm_source;\r\n\r\n return (\r\n \r\n {dealerBranded !== \"jdpower\" &&\r\n dealerBranded !== \"lawtiger\" &&\r\n dealerBranded !== \"cycletrader\" && (\r\n <>\r\n \r\n // \r\n\r\n /*{ \r\n Find a Dealer \r\n }*/\r\n /*{ \r\n \r\n Dealer Portal\r\n \r\n \r\n \r\n About\r\n \r\n \r\n }\r\n > {*/\r\n /*{ \r\n \r\n FAQ\r\n \r\n }*/\r\n /*{ \r\n Selling a Motorcycle\r\n \r\n \r\n Selling an ATV\r\n */\r\n /* \r\n About Us\r\n */\r\n /* \r\n \r\n About RumbleOn Finance\r\n \r\n */\r\n /* \r\n \r\n RumbleOn Loan Payment\r\n \r\n */\r\n /* \r\n \r\n Get RumbleOn Swag\r\n \r\n */\r\n /* \r\n Contact Us\r\n \r\n \r\n FAQ\r\n \r\n \r\n \r\n Careers\r\n \r\n \r\n \r\n \r\n Investors\r\n \r\n \r\n \r\n \r\n Blog\r\n \r\n \r\n \r\n \r\n Events\r\n \r\n \r\n \r\n \r\n */\r\n css={css`\r\n background: white;\r\n display: flex;\r\n z-index: 1;\r\n // border-bottom: 0.5px solid lightgray;\r\n box-shadow: 0px 1px 2px lightgray;\r\n padding: 5px !important;\r\n justify-content: space-between;\r\n align-items: center;\r\n @media (max-width: 1103px) {\r\n display: none;\r\n }\r\n `}\r\n >\r\n {/*
*/}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {/*
*/}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n\r\n {/* Uncomment if need a banner for messages */}\r\n {/* \r\n \r\n \r\n \r\n */}\r\n\r\n \r\n {\" \"}\r\n \r\n {children}\r\n \r\n {/* */}\r\n {dealerBranded !== \"jdpower\" &&\r\n dealerBranded !== \"lawtiger\" &&\r\n dealerBranded !== \"cycletrader\" &&