{"version":3,"sources":["logo.png","components/api-authorization/ApiAuthorizationConstants.js","components/api-authorization/AuthorizeService.js","components/NavMenu.js","components/api-authorization/LoginMenu.js","components/Layout.js","components/Home.js","components/FetchData.js","components/Counter.js","components/api-authorization/Login.js","components/api-authorization/AuthorizeRoute.js","components/api-authorization/Logout.js","components/api-authorization/ApiAuthorizationRoutes.js","components/PaymentSystem/VehicleIdPart.js","components/PaymentSystem/ContainerIdPart.js","components/PaymentSystem/ChoosePaymentItemsSection.js","Constants.js","components/PaymentSystem/EnterAchDetailsSection.js","components/PaymentSystem/EnterCreditCardDetailsSection.js","components/PaymentSystem/ChoosePaymentMethodSection.js","components/PaymentSystem/PaymentPage.js","components/PaymentSystem/PaymentSubmissionSuccess.js","components/BookingRequest/RequestorInfoCard.js","components/BookingRequest/PickupAddress.js","components/BookingRequest/FreightTypeChoice.js","components/BookingRequest/staticVehicleLists.js","components/BookingRequest/DocumentInputRow.js","components/BookingRequest/DocumentUploadModal.js","components/BookingRequest/VehicleDetails.js","components/BookingRequest/VehicleDetailsCard.js","components/BookingRequest/CommodityDetails.js","components/BookingRequest/ContainerDetails.js","components/BookingRequest/ContainerDetailsCard.js","components/BookingRequest/PayerDetails.js","components/BookingRequest/FirstTimeShipperDetails.js","components/BookingRequest/BookingRequest.js","components/BookingRequest/ConsigneeDetails.js","components/BookingRequest/BookingQuote.js","components/BookingRequest/SubmissionSuccess.js","components/BookingRequest/SubmissionError.js","components/NotFound.js","App.js","index.js"],"names":["module","exports","QueryParameterNames","LogoutActions","LoginActions","prefix","ApplicationPaths","DefaultLoginRedirectPath","ApiAuthorizationClientConfigurationUrl","ApiAuthorizationPrefix","Login","LoginFailed","LoginCallback","Register","Profile","LogOut","LoggedOut","LogOutCallback","IdentityRegisterPath","IdentityManagePath","authService","_callbacks","_nextSubscriptionId","_user","_isAuthenticated","_popUpDisabled","this","getUser","user","profile","ensureUserManagerInitialized","userManager","access_token","state","signinSilent","createArguments","silentUser","updateState","success","console","log","Error","signinPopup","popUpUser","message","error","signinRedirect","redirect","url","signinCallback","signoutPopup","undefined","signoutRedirect","signoutCallback","response","data","notifySubscribers","callback","push","subscription","subscriptionId","subscriptionIndex","map","element","index","found","filter","length","splice","i","useReplaceToNavigate","status","AuthenticationResultStatus","Fail","Success","Redirect","fetch","ok","json","settings","automaticSilentRenew","includeIdTokenInSilentRenew","userStore","WebStorageStateStore","UserManager","events","addUserSignedOut","a","removeUser","NavMenu","Component","props","toggleNavbar","bind","collapsed","setState","Navbar","className","Container","NavbarBrand","displayName","name","Layout","children","Home","FetchData","forecasts","loading","populateWeatherData","contents","renderForecastsTable","id","getAccessToken","token","headers","aria-labelledby","forecast","key","date","temperatureC","temperatureF","summary","Counter","currentCount","incrementCounter","aria-live","onClick","action","login","getReturnUrl","processLoginCallback","URLSearchParams","window","location","search","get","redirectToProfile","redirectToRegister","returnUrl","signIn","result","navigateToReturnUrl","href","completeSignIn","fromQuery","startsWith","origin","redirectToApiAuthorizationPath","encodeURI","apiAuthorizationPath","redirectUrl","replace","Logout","isReady","authenticated","history","local","logout","processLogoutCallback","populateAuthenticationState","isAuthenticated","signOut","completeSignOut","loginAction","logoutAction","VehicleIdPart","required","type","defaultValue","vin","onChange","evt","onUpdate","target","value","updateVin","maxLength","bookingNum","updateBookingNum","ContainerIdPart","ladingNum","updateLadingNum","ChoosePaymentItemsSection","useState","vehicleIdInputList","UpdateVehicleIdList","containerIdInputList","UpdateContainerIdList","useEffect","vehicleList","containerList","paymentItemType","onVehicleUpdate","onContainerUpdate","updateVehicleData","vList","updateContainerData","cList","e","stopPropagation","maxVehicles","AddVehicleIdInput","RemoveLastVehicle","numVehicles","values","maxContainers","AddContainerIdInput","RemoveLastContainer","Constants","InlandAndOceanFreightDescription","OceanFreightOnlyDescription","InlandAndOceanFreightQuoteDescription","OceanFreightOnlyQuoteDescription","firstTimeShipperEntity_IndividualShipper","firstTimeShipperEntity_NVOCC","firstTimeShipperEntity_FreightForwarder","category_One_NonRunnerFee","category_One_ForkliftFee","category_Two_NonRunnerFee","category_Two_ForkliftFee","category_Three_NonRunnerFee","category_Three_ForkliftFee","SelectYourService","SelectYourServiceQuote","creditCardFeePercentText","creditCardFeeFraction","unitedStatesList","worldCountriesList","errorsList","1","2","3","4","5","6","7","8","99","roRoPricingMatrix","EnterCreditCardDetailsSection","cardPassesLuhnCheck","updateLuhnCheck","cardHasExpired","updateCardHasExpired","cardExpiryDate","updateCardExpiryDate","month","year","Number","Date","getFullYear","getMonth","onCreditCardNumChange","stringLength","cardNumberValue","replaceAll","test","nCheck","nDigit","bEven","n","cDigit","charAt","parseInt","luhnCheck","lastIndexOf","substr","lastCharacter","newValue","concat","substring","currentYear","years","Array","keys","htmlFor","style","autoComplete","placeholder","val","readOnly","minLength","onKeyDown","onBlur","hidden","prev","min","max","ChoosePaymentMethodSection","paymentAmount","paymentType","billingAddress","creditCardDetails","achDetails","paymentDetails","updatePaymentDetails","updateBillingAddress","updatedAddressInfo","updateCreditCardDetails","updatedCreditCardDetails","onAddressUpdate","onCreditCardDetailsUpdate","paymentCard","updatePaymentCard","step","aria-describedby","amount","details","updatePaymentAmount","checked","updatePaymentMethod","PaymentPage","vehicleDetails","updateVehicleDetails","containerDetails","updateContainerDetails","formSubmitting","updateFormSubmitting","submitButtonText","updateSubmitButtonText","paymentItemTypeSelected","updatePaymentItemTypeSelected","updatePaymentItemType","paymentMethod","setPaymentMethod","creditCardExpired","getErrors","errorList","m","method","onSubmit","rel","src","logo","alt","width","height","backgroundImage","item","toFixed","slice","disabled","minHeight","open","PaymentSubmissionSuccess","textAlign","role","RequestorInfoCard","PickupAddressCard","data-pickup_details","asp-validation-for","aria-disabled","FreightTypeChoice","onOriginPortChange","document","getElementById","onDestinationPortChange","multiple","selected","onChoiceChange","staticVehicleLists","vehicleMakeList","DocumentInputRow","uploadedFile","updateFileUploaded","docTypeInput","updateDocTypeInput","documentInput","inputFor","documentInputId","documentType","docTypeInputTemplate","split","pop","onFileAdded","DocumentUploadModal","atLeastOnefileAdded","updateIfOneFileUploaded","documentInputList","updateDocumentList","fileUploadedText","data-toggle","data-target","tabIndex","aria-hidden","data-dismiss","aria-label","addDocument","VehicleDetails","documentsUploaded","vehicleModelList","specifyDifferentAddress","handleChange","fetchDataForVIN","fetchModelsForMake","handleSpecificChanges","updateSpecifyAddress","node","ReactDOM","findDOMNode","scrollIntoView","behavior","block","inline","event","VIN","keyValuePairs","then","onUpdateMultiple","innerData","dataList","make","nameSplitArray","removeButton","yearOptionsList","VINinput","makeInput","modelInput","yearInput","conditionInput","valueInput","fromAuction","memberInput","lotInput","conditionToolTip","differentAddressSpecifiedInput","pickupStreetAddressInput","pickupCityInput","pickupStateInput","pickupZipcode","modelListName","toString","totalVehicles","onRemoveVehicle","auctionSection","auctionDetails","differentPickupAddress","list","aria-expanded","defaultVehicleInputData","VehicleDetailsCard","vehicleInputData","addVehicle","newInput","JSON","parse","stringify","removeVehicle","vehicleDetailsList","CommodityDetails","nameInput","weightInput","class","asp-for","onRemoveContainer","defaultCommodityInputData","ContainerDetails","onUpdateVehicle","onUpdateCommodity","commodityInputData","addVehicleToContainer","removeVehicleFromContainer","addCommodityToContainer","maxCommodities","removeCommodityFromContainer","vehicleInputPrefix","commodityInputPrefix","sizeInput","addlInfoInput","rows","commodityDetailsList","containerInfo","ContainerDetailsCard","addContainer","removeContainer","removeBtn","PayerDetails","currentPayer","changePayer","currentPayerSentence","updatesentence","changeWhoPayerIs","FirstTimeShipperDetails","isNvoccOrOff","updateNvoccOrOff","passportInput","EinInput","passportOrEin","updatePassportOrEin","defaultChecked","BookingRequest","updateOriginPort","port","selectedOriginPort","updateDestinationPort","selectedDestinationPort","estimatedPriceCollector","atom","default","updatePowerOfAttorneySigned","powerOfAttorneyAgreed","setFormSubmitting","fileUploadsMayTakeTimeText","changeTransportType","transportType","transportTypeSelected","changeFreightType","freightType","freightTypeSelected","setPayerSelected","payerSelected","updateFirstTimeShipper","isFirstTimeShipper","firstTimeShipper","transportTypeChoice","firstTimeShipperChoice","firstTimeShipperInput","requestorInfo","pickupAddress","freightTypeChoice","freightTypeDetails","payerInfo","consigneeDetails","submitButton","printableFormsInfo","priceBreakdown","roroCentralUsPrice","roroEastUsPrice","encType","estimatedPrice","BookingQuote","for","quantityAndAddlnfoQuery","SubmissionSuccess","SubmissionError","NotFound","App","path","component","rootElement","render","basename","modified_inputs","Set","addEventListener","dataset","textContent","trim","has","add","delete","clear","size","returnValue"],"mappings":"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","file":"static/js/main.07b0e554.chunk.js","sourcesContent":["module.exports = __webpack_public_path__ + \"static/media/logo.3fe0d1f4.png\";","export const ApplicationName = 'Angelic_Shipping_React';\r\n\r\nexport const QueryParameterNames = {\r\n ReturnUrl: 'returnUrl',\r\n Message: 'message'\r\n};\r\n\r\nexport const LogoutActions = {\r\n LogoutCallback: 'logout-callback',\r\n Logout: 'logout',\r\n LoggedOut: 'logged-out'\r\n};\r\n\r\nexport const LoginActions = {\r\n Login: 'login',\r\n LoginCallback: 'login-callback',\r\n LoginFailed: 'login-failed',\r\n Profile: 'profile',\r\n Register: 'register'\r\n};\r\n\r\nconst prefix = '/authentication';\r\n\r\nexport const ApplicationPaths = {\r\n DefaultLoginRedirectPath: '/',\r\n ApiAuthorizationClientConfigurationUrl: `/_configuration/${ApplicationName}`,\r\n ApiAuthorizationPrefix: prefix,\r\n Login: `${prefix}/${LoginActions.Login}`,\r\n LoginFailed: `${prefix}/${LoginActions.LoginFailed}`,\r\n LoginCallback: `${prefix}/${LoginActions.LoginCallback}`,\r\n Register: `${prefix}/${LoginActions.Register}`,\r\n Profile: `${prefix}/${LoginActions.Profile}`,\r\n LogOut: `${prefix}/${LogoutActions.Logout}`,\r\n LoggedOut: `${prefix}/${LogoutActions.LoggedOut}`,\r\n LogOutCallback: `${prefix}/${LogoutActions.LogoutCallback}`,\r\n IdentityRegisterPath: '/Identity/Account/Register',\r\n IdentityManagePath: '/Identity/Account/Manage'\r\n};\r\n","import { UserManager, WebStorageStateStore } from 'oidc-client';\r\nimport { ApplicationPaths, ApplicationName } from './ApiAuthorizationConstants';\r\n\r\nexport class AuthorizeService {\r\n _callbacks = [];\r\n _nextSubscriptionId = 0;\r\n _user = null;\r\n _isAuthenticated = false;\r\n\r\n // By default pop ups are disabled because they don't work properly on Edge.\r\n // If you want to enable pop up authentication simply set this flag to false.\r\n _popUpDisabled = true;\r\n\r\n async isAuthenticated() {\r\n const user = await this.getUser();\r\n return !!user;\r\n }\r\n\r\n async getUser() {\r\n if (this._user && this._user.profile) {\r\n return this._user.profile;\r\n }\r\n\r\n await this.ensureUserManagerInitialized();\r\n const user = await this.userManager.getUser();\r\n return user && user.profile;\r\n }\r\n\r\n async getAccessToken() {\r\n await this.ensureUserManagerInitialized();\r\n const user = await this.userManager.getUser();\r\n return user && user.access_token;\r\n }\r\n\r\n // We try to authenticate the user in three different ways:\r\n // 1) We try to see if we can authenticate the user silently. This happens\r\n // when the user is already logged in on the IdP and is done using a hidden iframe\r\n // on the client.\r\n // 2) We try to authenticate the user using a PopUp Window. This might fail if there is a\r\n // Pop-Up blocker or the user has disabled PopUps.\r\n // 3) If the two methods above fail, we redirect the browser to the IdP to perform a traditional\r\n // redirect flow.\r\n async signIn(state) {\r\n await this.ensureUserManagerInitialized();\r\n try {\r\n const silentUser = await this.userManager.signinSilent(this.createArguments());\r\n this.updateState(silentUser);\r\n return this.success(state);\r\n } catch (silentError) {\r\n // User might not be authenticated, fallback to popup authentication\r\n console.log(\"Silent authentication error: \", silentError);\r\n\r\n try {\r\n if (this._popUpDisabled) {\r\n throw new Error('Popup disabled. Change \\'AuthorizeService.js:AuthorizeService._popupDisabled\\' to false to enable it.')\r\n }\r\n\r\n const popUpUser = await this.userManager.signinPopup(this.createArguments());\r\n this.updateState(popUpUser);\r\n return this.success(state);\r\n } catch (popUpError) {\r\n if (popUpError.message === \"Popup window closed\") {\r\n // The user explicitly cancelled the login action by closing an opened popup.\r\n return this.error(\"The user closed the window.\");\r\n } else if (!this._popUpDisabled) {\r\n console.log(\"Popup authentication error: \", popUpError);\r\n }\r\n\r\n // PopUps might be blocked by the user, fallback to redirect\r\n try {\r\n await this.userManager.signinRedirect(this.createArguments(state));\r\n return this.redirect();\r\n } catch (redirectError) {\r\n console.log(\"Redirect authentication error: \", redirectError);\r\n return this.error(redirectError);\r\n }\r\n }\r\n }\r\n }\r\n\r\n async completeSignIn(url) {\r\n try {\r\n await this.ensureUserManagerInitialized();\r\n const user = await this.userManager.signinCallback(url);\r\n this.updateState(user);\r\n return this.success(user && user.state);\r\n } catch (error) {\r\n console.log('There was an error signing in: ', error);\r\n return this.error('There was an error signing in.');\r\n }\r\n }\r\n\r\n // We try to sign out the user in two different ways:\r\n // 1) We try to do a sign-out using a PopUp Window. This might fail if there is a\r\n // Pop-Up blocker or the user has disabled PopUps.\r\n // 2) If the method above fails, we redirect the browser to the IdP to perform a traditional\r\n // post logout redirect flow.\r\n async signOut(state) {\r\n await this.ensureUserManagerInitialized();\r\n try {\r\n if (this._popUpDisabled) {\r\n throw new Error('Popup disabled. Change \\'AuthorizeService.js:AuthorizeService._popupDisabled\\' to false to enable it.')\r\n }\r\n\r\n await this.userManager.signoutPopup(this.createArguments());\r\n this.updateState(undefined);\r\n return this.success(state);\r\n } catch (popupSignOutError) {\r\n console.log(\"Popup signout error: \", popupSignOutError);\r\n try {\r\n await this.userManager.signoutRedirect(this.createArguments(state));\r\n return this.redirect();\r\n } catch (redirectSignOutError) {\r\n console.log(\"Redirect signout error: \", redirectSignOutError);\r\n return this.error(redirectSignOutError);\r\n }\r\n }\r\n }\r\n\r\n async completeSignOut(url) {\r\n await this.ensureUserManagerInitialized();\r\n try {\r\n const response = await this.userManager.signoutCallback(url);\r\n this.updateState(null);\r\n return this.success(response && response.data);\r\n } catch (error) {\r\n console.log(`There was an error trying to log out '${error}'.`);\r\n return this.error(error);\r\n }\r\n }\r\n\r\n updateState(user) {\r\n this._user = user;\r\n this._isAuthenticated = !!this._user;\r\n this.notifySubscribers();\r\n }\r\n\r\n subscribe(callback) {\r\n this._callbacks.push({ callback, subscription: this._nextSubscriptionId++ });\r\n return this._nextSubscriptionId - 1;\r\n }\r\n\r\n unsubscribe(subscriptionId) {\r\n const subscriptionIndex = this._callbacks\r\n .map((element, index) => element.subscription === subscriptionId ? { found: true, index } : { found: false })\r\n .filter(element => element.found === true);\r\n if (subscriptionIndex.length !== 1) {\r\n throw new Error(`Found an invalid number of subscriptions ${subscriptionIndex.length}`);\r\n }\r\n\r\n this._callbacks.splice(subscriptionIndex[0].index, 1);\r\n }\r\n\r\n notifySubscribers() {\r\n for (let i = 0; i < this._callbacks.length; i++) {\r\n const callback = this._callbacks[i].callback;\r\n callback();\r\n }\r\n }\r\n\r\n createArguments(state) {\r\n return { useReplaceToNavigate: true, data: state };\r\n }\r\n\r\n error(message) {\r\n return { status: AuthenticationResultStatus.Fail, message };\r\n }\r\n\r\n success(state) {\r\n return { status: AuthenticationResultStatus.Success, state };\r\n }\r\n\r\n redirect() {\r\n return { status: AuthenticationResultStatus.Redirect };\r\n }\r\n\r\n async ensureUserManagerInitialized() {\r\n if (this.userManager !== undefined) {\r\n return;\r\n }\r\n\r\n let response = await fetch(ApplicationPaths.ApiAuthorizationClientConfigurationUrl);\r\n if (!response.ok) {\r\n throw new Error(`Could not load settings for '${ApplicationName}'`);\r\n }\r\n\r\n let settings = await response.json();\r\n settings.automaticSilentRenew = true;\r\n settings.includeIdTokenInSilentRenew = true;\r\n settings.userStore = new WebStorageStateStore({\r\n prefix: ApplicationName\r\n });\r\n\r\n this.userManager = new UserManager(settings);\r\n\r\n this.userManager.events.addUserSignedOut(async () => {\r\n await this.userManager.removeUser();\r\n this.updateState(undefined);\r\n });\r\n }\r\n\r\n static get instance() { return authService }\r\n}\r\n\r\nconst authService = new AuthorizeService();\r\n\r\nexport default authService;\r\n\r\nexport const AuthenticationResultStatus = {\r\n Redirect: 'redirect',\r\n Success: 'success',\r\n Fail: 'fail'\r\n};\r\n","import React, { Component } from 'react';\r\nimport { Collapse, Container, Navbar, NavbarBrand, NavbarToggler, NavItem, NavLink } from 'reactstrap';\r\nimport { Link } from 'react-router-dom';\r\nimport { LoginMenu } from './api-authorization/LoginMenu';\r\nimport './NavMenu.css';\r\n\r\nexport class NavMenu extends Component {\r\n static displayName = NavMenu.name;\r\n\r\n constructor (props) {\r\n super(props);\r\n\r\n this.toggleNavbar = this.toggleNavbar.bind(this);\r\n this.state = {\r\n collapsed: true\r\n };\r\n }\r\n\r\n toggleNavbar () {\r\n this.setState({\r\n collapsed: !this.state.collapsed\r\n });\r\n }\r\n\r\n render () {\r\n return (\r\n
\r\n {/* \r\n */}\r\n \r\n \r\n \r\n \r\n Form submission\r\n {/* */}\r\n \r\n {/* \r\n \r\n
    \r\n \r\n Home\r\n \r\n \r\n About\r\n \r\n \r\n Services\r\n \r\n \r\n Booking Request\r\n \r\n \r\n Contact Us\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n */}
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n","import React, { Component, Fragment } from 'react';\r\nimport { NavItem, NavLink } from 'reactstrap';\r\nimport { Link } from 'react-router-dom';\r\nimport authService from './AuthorizeService';\r\nimport { ApplicationPaths } from './ApiAuthorizationConstants';\r\n\r\nexport class LoginMenu extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n isAuthenticated: false,\r\n userName: null\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this._subscription = authService.subscribe(() => this.populateState());\r\n this.populateState();\r\n }\r\n\r\n componentWillUnmount() {\r\n authService.unsubscribe(this._subscription);\r\n }\r\n\r\n async populateState() {\r\n const [isAuthenticated, user] = await Promise.all([authService.isAuthenticated(), authService.getUser()])\r\n this.setState({\r\n isAuthenticated,\r\n userName: user && user.name\r\n });\r\n }\r\n\r\n render() {\r\n const { isAuthenticated, userName } = this.state;\r\n if (!isAuthenticated) {\r\n const registerPath = `${ApplicationPaths.Register}`;\r\n const loginPath = `${ApplicationPaths.Login}`;\r\n return this.anonymousView(registerPath, loginPath);\r\n } else {\r\n const profilePath = `${ApplicationPaths.Profile}`;\r\n const logoutPath = { pathname: `${ApplicationPaths.LogOut}`, state: { local: true } };\r\n return this.authenticatedView(userName, profilePath, logoutPath);\r\n }\r\n }\r\n\r\n authenticatedView(userName, profilePath, logoutPath) {\r\n return (\r\n \r\n Hello {userName}\r\n \r\n \r\n Logout\r\n \r\n );\r\n\r\n }\r\n\r\n anonymousView(registerPath, loginPath) {\r\n return (\r\n \r\n Register\r\n \r\n \r\n Login\r\n \r\n );\r\n }\r\n}\r\n","import React, { Component } from 'react';\r\nimport { Container } from 'reactstrap';\r\nimport { NavMenu } from './NavMenu';\r\n\r\nexport class Layout extends Component {\r\n static displayName = Layout.name;\r\n\r\n render () {\r\n return (\r\n
\r\n {/* */}\r\n \r\n {this.props.children}\r\n \r\n
\r\n );\r\n }\r\n}\r\n","import React, { Component } from 'react';\r\n\r\nexport class Home extends Component {\r\n static displayName = Home.name;\r\n\r\n render () {\r\n return (\r\n null\r\n );\r\n }\r\n}\r\n","import React, { Component } from 'react';\r\nimport authService from './api-authorization/AuthorizeService'\r\n\r\nexport class FetchData extends Component {\r\n static displayName = FetchData.name;\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = { forecasts: [], loading: true };\r\n }\r\n\r\n componentDidMount() {\r\n this.populateWeatherData();\r\n }\r\n\r\n static renderForecastsTable(forecasts) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {forecasts.map(forecast =>\r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n
DateTemp. (C)Temp. (F)Summary
{forecast.date}{forecast.temperatureC}{forecast.temperatureF}{forecast.summary}
\r\n );\r\n }\r\n\r\n render() {\r\n let contents = this.state.loading\r\n ?

Loading...

\r\n : FetchData.renderForecastsTable(this.state.forecasts);\r\n\r\n return (\r\n
\r\n

Weather forecast

\r\n

This component demonstrates fetching data from the server.

\r\n {contents}\r\n
\r\n );\r\n }\r\n\r\n async populateWeatherData() {\r\n const token = await authService.getAccessToken();\r\n const response = await fetch('weatherforecast', {\r\n headers: !token ? {} : { 'Authorization': `Bearer ${token}` }\r\n });\r\n const data = await response.json();\r\n this.setState({ forecasts: data, loading: false });\r\n }\r\n}\r\n","import React, { Component } from 'react';\r\n\r\nexport class Counter extends Component {\r\n static displayName = Counter.name;\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = { currentCount: 0 };\r\n this.incrementCounter = this.incrementCounter.bind(this);\r\n }\r\n\r\n incrementCounter() {\r\n this.setState({\r\n currentCount: this.state.currentCount + 1\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n

Counter

\r\n\r\n

This is a simple example of a React component.

\r\n\r\n

Current count: {this.state.currentCount}

\r\n\r\n \r\n
\r\n );\r\n }\r\n}\r\n","import React from 'react'\r\nimport { Component } from 'react';\r\nimport authService from './AuthorizeService';\r\nimport { AuthenticationResultStatus } from './AuthorizeService';\r\nimport { LoginActions, QueryParameterNames, ApplicationPaths } from './ApiAuthorizationConstants';\r\n\r\n// The main responsibility of this component is to handle the user's login process.\r\n// This is the starting point for the login process. Any component that needs to authenticate\r\n// a user can simply perform a redirect to this component with a returnUrl query parameter and\r\n// let the component perform the login and return back to the return url.\r\nexport class Login extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n message: undefined\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n const action = this.props.action;\r\n switch (action) {\r\n case LoginActions.Login:\r\n this.login(this.getReturnUrl());\r\n break;\r\n case LoginActions.LoginCallback:\r\n this.processLoginCallback();\r\n break;\r\n case LoginActions.LoginFailed:\r\n const params = new URLSearchParams(window.location.search);\r\n const error = params.get(QueryParameterNames.Message);\r\n this.setState({ message: error });\r\n break;\r\n case LoginActions.Profile:\r\n this.redirectToProfile();\r\n break;\r\n case LoginActions.Register:\r\n this.redirectToRegister();\r\n break;\r\n default:\r\n throw new Error(`Invalid action '${action}'`);\r\n }\r\n }\r\n\r\n render() {\r\n const action = this.props.action;\r\n const { message } = this.state;\r\n\r\n if (!!message) {\r\n return
{message}
\r\n } else {\r\n switch (action) {\r\n case LoginActions.Login:\r\n return (
Processing login
);\r\n case LoginActions.LoginCallback:\r\n return (
Processing login callback
);\r\n case LoginActions.Profile:\r\n case LoginActions.Register:\r\n return (
);\r\n default:\r\n throw new Error(`Invalid action '${action}'`);\r\n }\r\n }\r\n }\r\n\r\n async login(returnUrl) {\r\n const state = { returnUrl };\r\n const result = await authService.signIn(state);\r\n switch (result.status) {\r\n case AuthenticationResultStatus.Redirect:\r\n break;\r\n case AuthenticationResultStatus.Success:\r\n await this.navigateToReturnUrl(returnUrl);\r\n break;\r\n case AuthenticationResultStatus.Fail:\r\n this.setState({ message: result.message });\r\n break;\r\n default:\r\n throw new Error(`Invalid status result ${result.status}.`);\r\n }\r\n }\r\n\r\n async processLoginCallback() {\r\n const url = window.location.href;\r\n const result = await authService.completeSignIn(url);\r\n switch (result.status) {\r\n case AuthenticationResultStatus.Redirect:\r\n // There should not be any redirects as the only time completeSignIn finishes\r\n // is when we are doing a redirect sign in flow.\r\n throw new Error('Should not redirect.');\r\n case AuthenticationResultStatus.Success:\r\n await this.navigateToReturnUrl(this.getReturnUrl(result.state));\r\n break;\r\n case AuthenticationResultStatus.Fail:\r\n this.setState({ message: result.message });\r\n break;\r\n default:\r\n throw new Error(`Invalid authentication result status '${result.status}'.`);\r\n }\r\n }\r\n\r\n getReturnUrl(state) {\r\n const params = new URLSearchParams(window.location.search);\r\n const fromQuery = params.get(QueryParameterNames.ReturnUrl);\r\n if (fromQuery && !fromQuery.startsWith(`${window.location.origin}/`)) {\r\n // This is an extra check to prevent open redirects.\r\n throw new Error(\"Invalid return url. The return url needs to have the same origin as the current page.\")\r\n }\r\n return (state && state.returnUrl) || fromQuery || `${window.location.origin}/`;\r\n }\r\n\r\n redirectToRegister() {\r\n this.redirectToApiAuthorizationPath(`${ApplicationPaths.IdentityRegisterPath}?${QueryParameterNames.ReturnUrl}=${encodeURI(ApplicationPaths.Login)}`);\r\n }\r\n\r\n redirectToProfile() {\r\n this.redirectToApiAuthorizationPath(ApplicationPaths.IdentityManagePath);\r\n }\r\n\r\n redirectToApiAuthorizationPath(apiAuthorizationPath) {\r\n const redirectUrl = `${window.location.origin}${apiAuthorizationPath}`;\r\n // It's important that we do a replace here so that when the user hits the back arrow on the\r\n // browser he gets sent back to where it was on the app instead of to an endpoint on this\r\n // component.\r\n window.location.replace(redirectUrl);\r\n }\r\n\r\n navigateToReturnUrl(returnUrl) {\r\n // It's important that we do a replace here so that we remove the callback uri with the\r\n // fragment containing the tokens from the browser history.\r\n window.location.replace(returnUrl);\r\n }\r\n}\r\n","import React from 'react'\r\nimport { Component } from 'react'\r\nimport { Route, Redirect } from 'react-router-dom'\r\nimport { ApplicationPaths, QueryParameterNames } from './ApiAuthorizationConstants'\r\nimport authService from './AuthorizeService'\r\n\r\nexport default class AuthorizeRoute extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n ready: false,\r\n authenticated: false\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this._subscription = authService.subscribe(() => this.authenticationChanged());\r\n this.populateAuthenticationState();\r\n }\r\n\r\n componentWillUnmount() {\r\n authService.unsubscribe(this._subscription);\r\n }\r\n\r\n render() {\r\n const { ready, authenticated } = this.state;\r\n var link = document.createElement(\"a\");\r\n link.href = this.props.path;\r\n const returnUrl = `${link.protocol}//${link.host}${link.pathname}${link.search}${link.hash}`;\r\n const redirectUrl = `${ApplicationPaths.Login}?${QueryParameterNames.ReturnUrl}=${encodeURI(returnUrl)}`\r\n if (!ready) {\r\n return
;\r\n } else {\r\n const { component: Component, ...rest } = this.props;\r\n return {\r\n if (authenticated) {\r\n return \r\n } else {\r\n return \r\n }\r\n }} />\r\n }\r\n }\r\n\r\n async populateAuthenticationState() {\r\n const authenticated = await authService.isAuthenticated();\r\n this.setState({ ready: true, authenticated });\r\n }\r\n\r\n async authenticationChanged() {\r\n this.setState({ ready: false, authenticated: false });\r\n await this.populateAuthenticationState();\r\n }\r\n}\r\n","import React from 'react'\r\nimport { Component } from 'react';\r\nimport authService from './AuthorizeService';\r\nimport { AuthenticationResultStatus } from './AuthorizeService';\r\nimport { QueryParameterNames, LogoutActions, ApplicationPaths } from './ApiAuthorizationConstants';\r\n\r\n// The main responsibility of this component is to handle the user's logout process.\r\n// This is the starting point for the logout process, which is usually initiated when a\r\n// user clicks on the logout button on the LoginMenu component.\r\nexport class Logout extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n message: undefined,\r\n isReady: false,\r\n authenticated: false\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n const action = this.props.action;\r\n switch (action) {\r\n case LogoutActions.Logout:\r\n if (!!window.history.state.state.local) {\r\n this.logout(this.getReturnUrl());\r\n } else {\r\n // This prevents regular links to /authentication/logout from triggering a logout\r\n this.setState({ isReady: true, message: \"The logout was not initiated from within the page.\" });\r\n }\r\n break;\r\n case LogoutActions.LogoutCallback:\r\n this.processLogoutCallback();\r\n break;\r\n case LogoutActions.LoggedOut:\r\n this.setState({ isReady: true, message: \"You successfully logged out!\" });\r\n break;\r\n default:\r\n throw new Error(`Invalid action '${action}'`);\r\n }\r\n\r\n this.populateAuthenticationState();\r\n }\r\n\r\n render() {\r\n const { isReady, message } = this.state;\r\n if (!isReady) {\r\n return
\r\n }\r\n if (!!message) {\r\n return (
{message}
);\r\n } else {\r\n const action = this.props.action;\r\n switch (action) {\r\n case LogoutActions.Logout:\r\n return (
Processing logout
);\r\n case LogoutActions.LogoutCallback:\r\n return (
Processing logout callback
);\r\n case LogoutActions.LoggedOut:\r\n return (
{message}
);\r\n default:\r\n throw new Error(`Invalid action '${action}'`);\r\n }\r\n }\r\n }\r\n\r\n async logout(returnUrl) {\r\n const state = { returnUrl };\r\n const isauthenticated = await authService.isAuthenticated();\r\n if (isauthenticated) {\r\n const result = await authService.signOut(state);\r\n switch (result.status) {\r\n case AuthenticationResultStatus.Redirect:\r\n break;\r\n case AuthenticationResultStatus.Success:\r\n await this.navigateToReturnUrl(returnUrl);\r\n break;\r\n case AuthenticationResultStatus.Fail:\r\n this.setState({ message: result.message });\r\n break;\r\n default:\r\n throw new Error(\"Invalid authentication result status.\");\r\n }\r\n } else {\r\n this.setState({ message: \"You successfully logged out!\" });\r\n }\r\n }\r\n\r\n async processLogoutCallback() {\r\n const url = window.location.href;\r\n const result = await authService.completeSignOut(url);\r\n switch (result.status) {\r\n case AuthenticationResultStatus.Redirect:\r\n // There should not be any redirects as the only time completeAuthentication finishes\r\n // is when we are doing a redirect sign in flow.\r\n throw new Error('Should not redirect.');\r\n case AuthenticationResultStatus.Success:\r\n await this.navigateToReturnUrl(this.getReturnUrl(result.state));\r\n break;\r\n case AuthenticationResultStatus.Fail:\r\n this.setState({ message: result.message });\r\n break;\r\n default:\r\n throw new Error(\"Invalid authentication result status.\");\r\n }\r\n }\r\n\r\n async populateAuthenticationState() {\r\n const authenticated = await authService.isAuthenticated();\r\n this.setState({ isReady: true, authenticated });\r\n }\r\n\r\n getReturnUrl(state) {\r\n const params = new URLSearchParams(window.location.search);\r\n const fromQuery = params.get(QueryParameterNames.ReturnUrl);\r\n if (fromQuery && !fromQuery.startsWith(`${window.location.origin}/`)) {\r\n // This is an extra check to prevent open redirects.\r\n throw new Error(\"Invalid return url. The return url needs to have the same origin as the current page.\")\r\n }\r\n return (state && state.returnUrl) ||\r\n fromQuery ||\r\n `${window.location.origin}${ApplicationPaths.LoggedOut}`;\r\n }\r\n\r\n navigateToReturnUrl(returnUrl) {\r\n return window.location.replace(returnUrl);\r\n }\r\n}\r\n","import React, { Component, Fragment } from 'react';\r\nimport { Route } from 'react-router';\r\nimport { Login } from './Login'\r\nimport { Logout } from './Logout'\r\nimport { ApplicationPaths, LoginActions, LogoutActions } from './ApiAuthorizationConstants';\r\n\r\nexport default class ApiAuthorizationRoutes extends Component {\r\n\r\n render () {\r\n return(\r\n \r\n loginAction(LoginActions.Login)} />\r\n loginAction(LoginActions.LoginFailed)} />\r\n loginAction(LoginActions.LoginCallback)} />\r\n loginAction(LoginActions.Profile)} />\r\n loginAction(LoginActions.Register)} />\r\n logoutAction(LogoutActions.Logout)} />\r\n logoutAction(LogoutActions.LogoutCallback)} />\r\n logoutAction(LogoutActions.LoggedOut)} />\r\n );\r\n }\r\n}\r\n\r\nfunction loginAction(name){\r\n return ();\r\n}\r\n\r\nfunction logoutAction(name) {\r\n return ();\r\n}\r\n","import React, {useState} from 'react';\r\n\r\nconst VehicleIdPart = (props) => {\r\n\r\n const updateVin = (evt) =>{\r\n props.onUpdate(props.id, \"vin\", evt.target.value);\r\n };\r\n const updateBookingNum = (evt) =>{\r\n props.onUpdate(props.id, \"bookingNum\", evt.target.value);\r\n };\r\n\r\n return (\r\n
\r\n
\r\n \r\n updateVin(evt)}\r\n maxLength={50}/> \r\n
\r\n
\r\n \r\n updateBookingNum(evt)}\r\n maxLength={100}/>\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport { VehicleIdPart }","import React, {useState} from 'react';\r\n\r\nconst ContainerIdPart = (props) => {\r\n\r\n const updateLadingNum = (evt) =>{\r\n props.onUpdate(props.id, \"ladingNum\", evt.target.value);\r\n };\r\n const updateBookingNum = (evt) =>{\r\n props.onUpdate(props.id, \"bookingNum\", evt.target.value);\r\n };\r\n\r\n return (\r\n
\r\n
\r\n \r\n updateBookingNum(evt)}\r\n maxLength={50}\r\n />\r\n
\r\n
\r\n \r\n updateLadingNum(evt)}\r\n maxLength={50}/>\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport { ContainerIdPart }","import React, {useState, useEffect} from 'react';\r\nimport { VehicleIdPart } from './VehicleIdPart'\r\nimport { ContainerIdPart } from './ContainerIdPart'\r\n\r\n// Contains what the paying party is paying for. \r\n// https://goshakkk.name/array-form-inputs/\r\nconst ChoosePaymentItemsSection = (props) => {\r\n \r\n const [vehicleIdInputList, UpdateVehicleIdList] = useState([{vin: \"\", bookingNum: \"\"}]);\r\n const [containerIdInputList, UpdateContainerIdList] = useState([{bookingNum: \"\", ladingNum: \"\"}]);\r\n \r\n useEffect(() => {\r\n var vehicleList = [];\r\n var containerList = [];\r\n if(props.paymentItemType === \"vehicle\" || props.paymentItemType === \"both\"){\r\n vehicleList = vehicleIdInputList;\r\n }\r\n if(props.paymentItemType === \"container\" || props.paymentItemType === \"both\"){\r\n containerList = containerIdInputList;\r\n }\r\n \r\n props.onVehicleUpdate(vehicleList);\r\n props.onContainerUpdate(containerList);\r\n }, [props.paymentItemType]);\r\n\r\n\r\n\r\n const AddVehicleIdInput = () => { \r\n var vList = [...vehicleIdInputList];\r\n if(vList.length < props.maxVehicles){\r\n vList.push({vin: \"\", bookingNum: \"\"});\r\n }\r\n UpdateVehicleIdList(vList);\r\n props.onVehicleUpdate(vList);\r\n } \r\n const RemoveLastVehicle = () => {\r\n var vList = [...vehicleIdInputList];\r\n if(vList.length > 0){\r\n vList = vList.splice(0,vList.length-1)\r\n }\r\n UpdateVehicleIdList(vList);\r\n props.onVehicleUpdate(vList);\r\n } \r\n const updateVehicleData = (id, key, value) => {\r\n var vList = [...vehicleIdInputList];\r\n if(id >= 0 && id < vList.length){\r\n vList[id][key] = value;\r\n }\r\n UpdateVehicleIdList(vList); \r\n props.onVehicleUpdate(vList);\r\n }\r\n\r\n const AddContainerIdInput = () => { \r\n var cList = [...containerIdInputList];\r\n if(cList.length < props.maxContainers){\r\n cList.push({bookingNum: \"\", ladingNum: \"\"});\r\n }\r\n UpdateContainerIdList(cList);\r\n props.onContainerUpdate(cList);\r\n }\r\n const RemoveLastContainer = () => {\r\n var cList = [...containerIdInputList];\r\n if(cList.length > 0){\r\n cList = cList.splice(0,cList.length-1)\r\n }\r\n UpdateContainerIdList(cList); \r\n props.onContainerUpdate(cList);\r\n } \r\n const updateContainerData = (id, key, value) => {\r\n var cList = [...containerIdInputList];\r\n if(id >= 0 && id < cList.length){\r\n cList[id][key] = value;\r\n }\r\n UpdateContainerIdList(cList); \r\n props.onContainerUpdate(cList); \r\n }\r\n\r\n var lineBreakBetweenVehicleAndContainer;\r\n if(vehicleIdInputList.length > 0 && containerIdInputList.length > 0){\r\n lineBreakBetweenVehicleAndContainer =
\r\n
\r\n
\r\n }\r\n return ( \r\n
\r\n
\r\n Please add all of the freight that you are paying for below:\r\n
\r\n\r\n {(props.paymentItemType === \"vehicle\" || props.paymentItemType === \"both\")\r\n && \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n {vehicleIdInputList.length > 0 && {vehicleIdInputList.length} Vehicle(s)}\r\n
\r\n
\r\n {vehicleIdInputList.map((values, index) => \r\n
\r\n
\r\n
\r\n
Vehicle {index+1}\r\n
\r\n
\r\n \r\n
\r\n
\r\n )}\r\n
\r\n
\r\n }\r\n\r\n {(props.paymentItemType === \"container\" || props.paymentItemType === \"both\")\r\n && \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n {containerIdInputList.length > 0 && {containerIdInputList.length} Container(s)}\r\n
\r\n {containerIdInputList.map((values, index) => \r\n
\r\n
\r\n
\r\n
Container {index+1}\r\n
\r\n
\r\n \r\n
\r\n
\r\n )} \r\n
\r\n
\r\n }\r\n
\r\n );\r\n}\r\n\r\nexport { ChoosePaymentItemsSection }","export class Constants{\r\n //#region Booking request page\r\n static InlandAndOceanFreightDescription = \"Inland and ocean freight booking (We move your freight to port, and book your vessel)\";\r\n static OceanFreightOnlyDescription = \"Ocean freight only booking. (We only book your freight for ocean travel)\"; \r\n \r\n static InlandAndOceanFreightQuoteDescription = \"Quote for \" + this.InlandAndOceanFreightDescription;\r\n static OceanFreightOnlyQuoteDescription = \"Quote for \" + this.OceanFreightOnlyDescription;\r\n\r\n //#region First time shipper details\r\n static firstTimeShipperEntity_IndividualShipper = \"Individual Shipper\";\r\n static firstTimeShipperEntity_NVOCC = \"NVOCC business\";\r\n static firstTimeShipperEntity_FreightForwarder = \"Freight forwarder business\";\r\n //#endregion\r\n //#endregion\r\n\r\n // USD, Grimaldi and Sallaum\r\n static category_One_NonRunnerFee = 300.00;\r\n static category_One_ForkliftFee = 500.00;\r\n static category_Two_NonRunnerFee = 300.00;\r\n static category_Two_ForkliftFee = 500.00;\r\n static category_Three_NonRunnerFee = 500.00;\r\n static category_Three_ForkliftFee = \"unknown\";\r\n \r\n //#endregion\r\n\r\n static SelectYourService = \"Please select your service\";\r\n static SelectYourServiceQuote = \"Please select the service to get a quote for\";\r\n static creditCardFeePercentText = \"2.56%\";\r\n static creditCardFeeFraction = 0.0256;\r\n\r\n static unitedStatesList = [ \"Alabama\",\"Alaska\",\"Arizona\",\"Arkansas\",\"California\",\"Colorado\",\"Connecticut\",\"Delaware\",\"Florida\",\"Georgia\",\"Hawaii\",\"Idaho\",\"Illinois\",\"Indiana\",\"Iowa\",\"Kansas\",\"Kentucky\",\"Louisiana\",\"Maine\",\"Maryland\",\"Massachusetts\",\"Michigan\",\"Minnesota\",\"Mississippi\",\"Missouri\",\"Montana\",\"Nebraska\",\"Nevada\",\"New Hampshire\",\"New Jersey\",\"New Mexico\",\"New York\",\"North Carolina\",\"North Dakota\",\"Ohio\",\"Oklahoma\",\"Oregon\",\"Pennsylvania\",\"Rhode Island\",\"South Carolina\",\"South Dakota\",\"Tennessee\",\"Texas\",\"Utah\",\"Vermont\",\"Virginia\",\"Washington\",\"West Virginia\",\"Wisconsin\",\"Wyoming\"];\r\n static worldCountriesList = [ \"Afghanistan\", \"Albania\", \"Algeria\", \"Andorra\", \"Angola\", \"Antigua and Barbuda\", \"Argentina\", \"Armenia\", \"Australia\", \"Austria\", \"Azerbaijan\", \"The Bahamas\", \"Bahrain\", \"Bangladesh\", \"Barbados\", \"Belarus\", \"Belgium\", \"Belize\", \"Benin\", \"Bhutan\", \"Bolivia\", \"Bosnia and Herzegovina\", \"Botswana\", \"Brazil\", \"Brunei\", \"Bulgaria\", \"Burkina Faso\", \"Burundi\", \"Cambodia\", \"Cameroon\", \"Canada\", \"Cape Verde\", \"Central African Republic\", \"Chad\", \"Chile\", \"China\", \"Colombia\", \"Comoros\", \"Congo, Republic of the\", \"Congo, Democratic Republic of the\", \"Costa Rica\", \"Cote d'Ivoire\", \"Croatia\", \"Cuba\", \"Cyprus\", \"Czech Republic\", \"Denmark\", \"Djibouti\", \"Dominica\", \"Dominican Republic\", \"East Timor (Timor-Leste)\", \"Ecuador\", \"Egypt\", \"El Salvador\", \"Equatorial Guinea\", \"Eritrea\", \"Estonia\", \"Ethiopia\", \"Fiji\", \"Finland\", \"France\", \"Gabon\", \"The Gambia\", \"Georgia\", \"Germany\", \"Ghana\", \"Greece\", \"Grenada\", \"Guatemala\", \"Guinea\", \"Guinea-Bissau\", \"Guyana\", \"Haiti\", \"Honduras\", \"Hungary\", \"Iceland\", \"India\", \"Indonesia\", \"Iran\", \"Iraq\", \"Ireland\", \"Israel\", \"Italy\", \"Jamaica\", \"Japan\", \"Jordan\", \"Kazakhstan\", \"Kenya\", \"Kiribati\", \"Korea, North\", \"Korea, South\", \"Kosovo\", \"Kuwait\", \"Kyrgyzstan\", \"Laos\", \"Latvia\", \"Lebanon\", \"Lesotho\", \"Liberia\", \"Libya\", \"Liechtenstein\", \"Lithuania\", \"Luxembourg\", \"Macedonia\", \"Madagascar\", \"Malawi\", \"Malaysia\", \"Maldives\", \"Mali\", \"Malta\", \"Marshall Islands\", \"Mauritania\", \"Mauritius\", \"Mexico\", \"Micronesia, Federated States of\", \"Moldova\", \"Monaco\", \"Mongolia\", \"Montenegro\", \"Morocco\", \"Mozambique\", \"Myanmar (Burma)\", \"Namibia\", \"Nauru\", \"Nepal\", \"Netherlands\", \"New Zealand\", \"Nicaragua\", \"Niger\", \"Nigeria\", \"Norway\", \"Oman\", \"Pakistan\", \"Palau\", \"Panama\", \"Papua New Guinea\", \"Paraguay\", \"Peru\", \"Philippines\", \"Poland\", \"Portugal\", \"Qatar\", \"Romania\", \"Russia\", \"Rwanda\", \"Saint Kitts and Nevis\", \"Saint Lucia\", \"Saint Vincent and the Grenadines\", \"Samoa\", \"San Marino\", \"Sao Tome and Principe\", \"Saudi Arabia\", \"Senegal\", \"Serbia\", \"Seychelles\", \"Sierra Leone\", \"Singapore\", \"Slovakia\", \"Slovenia\", \"Solomon Islands\", \"Somalia\", \"South Africa\", \"South Sudan\", \"Spain\", \"Sri Lanka\", \"Sudan\", \"Suriname\", \"Swaziland\", \"Sweden\", \"Switzerland\", \"Syria\", \"Taiwan\", \"Tajikistan\", \"Tanzania\", \"Thailand\", \"Togo\", \"Tonga\", \"Trinidad and Tobago\", \"Tunisia\", \"Turkey\", \"Turkmenistan\", \"Tuvalu\", \"Uganda\", \"Ukraine\", \"United Arab Emirates\", \"United Kingdom\", \"United States of America\", \"Uruguay\", \"Uzbekistan\", \"Vanuatu\", \"Vatican City (Holy See)\", \"Venezuela\", \"Vietnam\", \"Yemen\", \"Zambia\", \"Zimbabwe\"];\r\n //#region Payment page constants\r\n static errorsList = {\r\n 1: \"Card code verification failed. Please verify your CVC/CVV number\", \r\n 2: \"The expiry date you entered has already passed. If you input an incorrect expiry date, please try again\",\r\n 3: \"The Billing address entered does not match the address on file at the issuing bank/ institution. Please verify the street address and zip code and try again\",\r\n 4: \"The Billing address can only be located in the United States\",\r\n 5: \"The Billing address' state did not match any US State\",\r\n 6: \"The card number provided is invalid\",\r\n 7: \"An invalid expiry date was provided. Please correct the expiry date and submit\",\r\n 8: \"The transaction has been declined\",\r\n 99: \"An unexpected error occurred, please try again. If this problem persists, please contact us\",\r\n\r\n };\r\n\r\n // 9/22/2020: Upon discussing with Peter, I understood that Grimaldi and Sallaum lines offer the same pricing\r\n // for RoRo etc. so we will use one matrix for both Sallaum and Grimaldi. If we do indentify any differences, we will\r\n // update accordingly.\r\n static roRoPricingMatrix = [\r\n [\"Baltimore, Maryland\",\"Abidjan, Côte d'Ivoire\",\"1150\"],\r\n [\"Baltimore, Maryland\",\"Banjul, The Gambia\",\"1800\"],\r\n [\"Baltimore, Maryland\",\"Bata, Equatorial Guinea\",\"1830\"],\r\n [\"Baltimore, Maryland\",\"Conakry, Guinea\",\"1300\"],\r\n [\"Baltimore, Maryland\",\"Dakar, Senegal\",\"1150\"],\r\n [\"Baltimore, Maryland\",\"Douala, Cameroon\",\"1800\"],\r\n [\"Baltimore, Maryland\",\"Freetown, Sierra Leone\",\"1800\"],\r\n [\"Baltimore, Maryland\",\"Lagos, Nigeria\",\"985\"],\r\n [\"Baltimore, Maryland\",\"Libreville, Gabon\",\"1800\"],\r\n [\"Baltimore, Maryland\",\"Luanda, Angola\",\"2000\"],\r\n [\"Baltimore, Maryland\",\"Malabo, Equatorial Guinea\",\"1830\"],\r\n [\"Baltimore, Maryland\",\"Monrovia, Liberia\",\"1800\"],\r\n [\"Baltimore, Maryland\",\"Nouakchott, Mauritania\",\"1800\"],\r\n [\"Baltimore, Maryland\",\"Pointe Noire, Congo\",\"1800\"],\r\n [\"Baltimore, Maryland\",\"TAKORADI\",\"1800\"],\r\n [\"Jacksonville, Florida\",\"Abidjan, Côte d'Ivoire\",\"1150\"],\r\n [\"Jacksonville, Florida\",\"Banjul, The Gambia\",\"1800\"],\r\n [\"Jacksonville, Florida\",\"Bata, Equatorial Guinea\",\"1830\"],\r\n [\"Jacksonville, Florida\",\"Conakry, Guinea\",\"1300\"],\r\n [\"Jacksonville, Florida\",\"Dakar, Senegal\",\"1150\"],\r\n [\"Jacksonville, Florida\",\"Douala, Cameroon\",\"1800\"],\r\n [\"Jacksonville, Florida\",\"Freetown, Sierra Leone\",\"1800\"],\r\n [\"Jacksonville, Florida\",\"Lagos, Nigeria\",\"985\"],\r\n [\"Jacksonville, Florida\",\"Libreville, Gabon\",\"1800\"],\r\n [\"Jacksonville, Florida\",\"Luanda, Angola\",\"2000\"],\r\n [\"Jacksonville, Florida\",\"Malabo, Equatorial Guinea\",\"1830\"],\r\n [\"Jacksonville, Florida\",\"Monrovia, Liberia\",\"1800\"],\r\n [\"Jacksonville, Florida\",\"Nouakchott, Mauritania\",\"1800\"],\r\n [\"Jacksonville, Florida\",\"Pointe Noire, Congo\",\"1800\"],\r\n [\"Jacksonville, Florida\",\"TAKORADI\",\"1800\"],\r\n [\"Providence, Rhode Island\",\"Abidjan, Côte d'Ivoire\",\"985\"],\r\n [\"Providence, Rhode Island\",\"Banjul, The Gambia\",\"1800\"],\r\n [\"Providence, Rhode Island\",\"Bata, Equatorial Guinea\",\"1830\"],\r\n [\"Providence, Rhode Island\",\"Conakry, Guinea\",\"1300\"],\r\n [\"Providence, Rhode Island\",\"Dakar, Senegal\",\"1150\"],\r\n [\"Providence, Rhode Island\",\"Douala, Cameroon\",\"1800\"],\r\n [\"Providence, Rhode Island\",\"Freetown, Sierra Leone\",\"1800\"],\r\n [\"Providence, Rhode Island\",\"Lagos, Nigeria\",\"985\"],\r\n [\"Providence, Rhode Island\",\"Libreville, Gabon\",\"1800\"],\r\n [\"Providence, Rhode Island\",\"Luanda, Angola\",\"2000\"],\r\n [\"Providence, Rhode Island\",\"Malabo, Equatorial Guinea\",\"1830\"],\r\n [\"Providence, Rhode Island\",\"Monrovia, Liberia\",\"1800\"],\r\n [\"Providence, Rhode Island\",\"Nouakchott, Mauritania\",\"1800\"],\r\n [\"Providence, Rhode Island\",\"Pointe Noire, Congo\",\"1800\"],\r\n [\"Providence, Rhode Island\",\"TAKORADI\",\"1800\"],\r\n [\"Savannah, Georgia\",\"Abidjan, Côte d'Ivoire\",\"1150\"],\r\n [\"Savannah, Georgia\",\"Banjul, The Gambia\",\"1800\"],\r\n [\"Savannah, Georgia\",\"Bata, Equatorial Guinea\",\"1830\"],\r\n [\"Savannah, Georgia\",\"Conakry, Guinea\",\"1300\"],\r\n [\"Savannah, Georgia\",\"Dakar, Senegal\",\"1150\"],\r\n [\"Savannah, Georgia\",\"Douala, Cameroon\",\"1800\"],\r\n [\"Savannah, Georgia\",\"Freetown, Sierra Leone\",\"1800\"],\r\n [\"Savannah, Georgia\",\"Lagos, Nigeria\",\"985\"],\r\n [\"Savannah, Georgia\",\"Libreville, Gabon\",\"1800\"],\r\n [\"Savannah, Georgia\",\"Luanda, Angola\",\"1945\"],\r\n [\"Savannah, Georgia\",\"Malabo, Equatorial Guinea\",\"1830\"],\r\n [\"Savannah, Georgia\",\"Monrovia, Liberia\",\"1800\"],\r\n [\"Savannah, Georgia\",\"Nouakchott, Mauritania\",\"1800\"],\r\n [\"Savannah, Georgia\",\"Pointe Noire, Congo\",\"1800\"],\r\n [\"Savannah, Georgia\",\"TAKORADI\",\"1800\"],\r\n [\"Freeport, Texas\",\"Abidjan, Côte d'Ivoire\",\"1270\"],\r\n [\"Freeport, Texas\",\"Banjul, The Gambia\",\"1920\"],\r\n [\"Freeport, Texas\",\"Bata, Equatorial Guinea\",\"1950\"],\r\n [\"Freeport, Texas\",\"Conakry, Guinea\",\"1420\"],\r\n [\"Freeport, Texas\",\"Dakar, Senegal\",\"1270\"],\r\n [\"Freeport, Texas\",\"Douala, Cameroon\",\"1920\"],\r\n [\"Freeport, Texas\",\"Freetown, Sierra Leone\",\"1820\"],\r\n [\"Freeport, Texas\",\"Lagos, Nigeria\",\"1105\"],\r\n [\"Freeport, Texas\",\"Libreville, Gabon\",\"1920\"],\r\n [\"Freeport, Texas\",\"Luanda, Angola\",\"2065\"],\r\n [\"Freeport, Texas\",\"Malabo, Equatorial Guinea\",\"1950\"],\r\n [\"Freeport, Texas\",\"Monrovia, Liberia\",\"1920\"],\r\n [\"Freeport, Texas\",\"Nouakchott, Mauritania\",\"1820\"],\r\n [\"Freeport, Texas\",\"Pointe Noire, Congo\",\"1920\"],\r\n [\"Freeport, Texas\",\"TAKORADI\",\"1920\"]\r\n ];\r\n}","import React from 'react';\r\nimport { Constants } from '../../Constants';\r\n\r\nconst EnterAchDetailsSection = (props) =>{\r\n return (\r\n
\r\n
\r\n
\r\n {/* Max and min lenghts and other validation elements specified at https://api.authorize.net/xml/v1/schema/AnetApiSchema.xsd \r\n Check the asp.net core backend for details about mapping, validation is duplicated on the backend */}\r\n

Billing Address

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

ACH details

\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n )\r\n}\r\nexport { EnterAchDetailsSection }; ","import React, { useState, useEffect } from 'react';\r\nimport { Constants } from '../../Constants';\r\n\r\nconst EnterCreditCardDetailsSection = (props) =>{\r\n const [cardPassesLuhnCheck,updateLuhnCheck] = useState(true);\r\n const [cardHasExpired,updateCardHasExpired] = useState(false);\r\n const [cardExpiryDate,updateCardExpiryDate] = useState({\"month\": null,\"year\": null});\r\n\r\n const checkIfCardHasExpiredBasedOnUserInput = () => {\r\n if(cardExpiryDate.month === null || cardExpiryDate.year === null){\r\n return false;\r\n }\r\n if(Number(cardExpiryDate.year) <= (new Date()).getFullYear()){\r\n if(Number(cardExpiryDate.month) < (new Date()).getMonth()){\r\n return (true);\r\n }\r\n }\r\n return (false);\r\n }\r\n\r\n useEffect(() => {\r\n updateCardHasExpired(checkIfCardHasExpiredBasedOnUserInput());\r\n },[cardExpiryDate]);\r\n\r\n const luhnCheck = value => {\r\n // let arr = (num + '')\r\n // .split('')\r\n // .reverse()\r\n // .map(x => parseInt(x));\r\n // let lastDigit = arr.splice(0, 1)[0];\r\n // let sum = arr.reduce((acc, val, i) => (i % 2 !== 0 ? acc + val : acc + ((val * 2) % 9) || 9), 0);\r\n // sum += lastDigit;\r\n\t\t// return sum % 10 === 0;\r\n\t\t// accept only digits, dashes or spaces\r\n\t\t//https://gist.github.com/DiegoSalazar/4075533\r\n\t\tif (/[^0-9-\\s]+/.test(value)) return false;\r\n\r\n\t\t// The Luhn Algorithm. It's so pretty.\r\n\t\tvar nCheck = 0, nDigit = 0, bEven = false;\r\n\t\tvalue = value.replace(/\\D/g, \"\");\r\n\t\r\n\t\tfor (var n = value.length - 1; n >= 0; n--) {\r\n\t\t\tvar cDigit = value.charAt(n),\r\n\t\t\t\tnDigit = parseInt(cDigit, 10);\r\n\t\r\n\t\t\tif (bEven) {\r\n\t\t\t\tif ((nDigit *= 2) > 9) nDigit -= 9;\r\n\t\t\t}\r\n\t\r\n\t\t\tnCheck += nDigit;\r\n\t\t\tbEven = !bEven;\r\n\t\t}\r\n\t\r\n\t\treturn (nCheck % 10) == 0;\r\n };\r\n\r\n \r\n \r\n const onCreditCardNumChange = evt => {\r\n var stringLength = evt.target.value.length;\r\n if(stringLength === 19){ \r\n var cardNumberValue = evt.target.value.replaceAll('-','');\r\n cardNumberValue = cardNumberValue.replaceAll(' ','');\r\n updateLuhnCheck(luhnCheck(cardNumberValue));\r\n }else{\r\n updateLuhnCheck(true);\r\n }\r\n var index = evt.target.value.lastIndexOf('-');\r\n var test = evt.target.value.substr(index + 1);\r\n if (test.length === 4){\r\n if(evt.key === \"Backspace\" || evt.key === \"Delete\" || evt.target.value.length === 19){\r\n\r\n }else{\r\n evt.target.value = evt.target.value + \"-\";\r\n }\r\n }else if(test.length === 5){\r\n if(evt.target.value[stringLength - 1] != \"-\"){\r\n var lastCharacter = evt.target.value[stringLength-1];\r\n var newValue = evt.target.value;\r\n newValue = newValue.concat(lastCharacter);\r\n // newValue[newValue.length - 1] = \"-\"; strings are immutable\r\n newValue = newValue.substring(0, stringLength - 1) + '-' + newValue.substring(stringLength);\r\n evt.target.value = newValue; \r\n }\r\n }\r\n };\r\n \r\n var currentYear = new Date().getFullYear();\r\n //https://stackoverflow.com/questions/2500588/maximum-year-in-expiry-date-of-credit-card\r\n var years = [...Array(75).keys()];\r\n return (\r\n
\r\n
\r\n
\r\n {/* Max and min lenghts and other validation elements specified at https://api.authorize.net/xml/v1/schema/AnetApiSchema.xsd \r\n Check the asp.net core backend for details about mapping, validation is duplicated on the backend */}\r\n

Billing Address

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n {/* 4417 1234 5678 9113 \r\n 4111-1111-1111-1111\r\n */}\r\n
\r\n

Card details

\r\n \r\n \r\n \r\n onCreditCardNumChange(evt)}\r\n onBlur={(evt) => onCreditCardNumChange(evt)}\r\n />\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n {cardHasExpired &&
Card has expired
}\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n )\r\n}\r\nexport { EnterCreditCardDetailsSection }; ","import React, {useState} from 'react';\r\nimport { EnterAchDetailsSection } from './EnterAchDetailsSection';\r\nimport { EnterCreditCardDetailsSection } from './EnterCreditCardDetailsSection';\r\nimport { Constants } from '../../Constants';\r\n\r\n// Contains what the paying party is paying for. \r\n// NOTE: This isn't doing the proper \"lifting state up\" thing, primarily because\r\n// its not as necessary here for now, we needn't pass in values via props\r\n// Rather, the user add inputs here, and the parent only needs to know these values \r\n// to populate the confirmation page\r\nconst ChoosePaymentMethodSection = (props) => { \r\n const [paymentDetails, updatePaymentDetails]\r\n = useState({paymentAmount:\"\", \r\n paymentType:\"creditCardPayment\",\r\n billingAddress: \"\",\r\n creditCardDetails: \"\",\r\n achDetails: \"\", \r\n });\r\n\r\n const updatePaymentAmount = (amount) => {\r\n var details = {...paymentDetails};\r\n details.paymentAmount = amount;\r\n updatePaymentDetails(details);\r\n props.onChange(details);\r\n }\r\n const updatePaymentMethod = (type) => {\r\n var details = {...paymentDetails};\r\n details.paymentType = type;\r\n updatePaymentDetails(details);\r\n props.onChange(details);\r\n }\r\n const updateBillingAddress = (updatedAddressInfo) => {\r\n props.onChange(updatedAddressInfo);\r\n }\r\n const updateCreditCardDetails = (updatedCreditCardDetails) => {\r\n props.onChange(updatedCreditCardDetails);\r\n }\r\n const updateAchDetails = (updatedAchDetails) => {\r\n props.onChange(updatedAchDetails);\r\n }\r\n const [paymentCard, updatePaymentCard] = useState();\r\n\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n Payment amount\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n $\r\n
\r\n updatePaymentAmount(e.target.value)}/>\r\n
\r\n
\r\n
\r\n {/* Please select your payment method
*/}\r\n\t\t\t\t{/* 06/16/2021: Credit card fee removed */}\r\n\t\t\t\t{/* 11/03/2021: Credit card fee re-added */}\r\n\t\t\t\tPlease note that there is a {Constants.creditCardFeePercentText} transaction fee for credit card.\r\n Only U.S. credit cards are accepted. \r\n {/*
\r\n {\r\n updatePaymentCard();\r\n updatePaymentMethod(\"achPayment\");\r\n }}/>\r\n\r\n \r\n
*/}\r\n\r\n
\r\n {\r\n updatePaymentCard();\r\n updatePaymentMethod(\"creditCardPayment\");\r\n }}/>\r\n \r\n \r\n
\r\n
\r\n
\r\n {paymentCard}\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport { ChoosePaymentMethodSection }","import React, { useState, useEffect, useReducer } from \"react\";\r\nimport { ChoosePaymentItemsSection } from \"./ChoosePaymentItemsSection\";\r\nimport { ChoosePaymentMethodSection } from \"./ChoosePaymentMethodSection\";\r\nimport { EnterCreditCardDetailsSection } from \"./EnterCreditCardDetailsSection\";\r\nimport logo from \"../../logo.png\"; // Tell Webpack this JS file uses this image\r\nimport { Constants } from \"../../Constants\";\r\n\r\nconst PaymentPage = (props) => {\r\n const [vehicleDetails, updateVehicleDetails] = useState([]); // [{vin:\"\",bookingNum:\"\"}]\r\n const [containerDetails, updateContainerDetails] = useState([]); // [{ladingNum:\"\", bookingNum:\"\"}]\r\n const [formSubmitting, updateFormSubmitting] = useState(false);\r\n const [submitButtonText, updateSubmitButtonText] = useState(\"Submit\");\r\n const [paymentItemTypeSelected, updatePaymentItemTypeSelected] =\r\n useState(false);\r\n const [paymentItemType, updatePaymentItemType] = useState(null);\r\n const [paymentMethod, setPaymentMethod] = useState(null);\r\n const [paymentDetails, updatePaymentDetails] = useState({\r\n paymentAmount: 0.0,\r\n creditCardExpired: false,\r\n });\r\n\r\n const updatePaymentFromSection = (details) => updatePaymentDetails(details);\r\n\r\n const setFormSubmitting = () => {\r\n updateFormSubmitting(true);\r\n updateSubmitButtonText(\"Please wait...\");\r\n };\r\n\r\n const customLineBreak = () => (\r\n
\r\n
\r\n
\r\n
\r\n \r\n );\r\n\r\n const getErrors = () => {\r\n var errorList = [];\r\n var parts = window.location.href.replace(\r\n /[?&]+([^=&]+)=([^&]*)/gi,\r\n function (m, key, value) {\r\n if (key === \"error\") {\r\n errorList.push(value);\r\n }\r\n }\r\n );\r\n return errorList;\r\n };\r\n\r\n if (!paymentMethod) {\r\n return (\r\n
\r\n
\r\n {getErrors().map((error, index) => (\r\n
\r\n {Constants.errorsList[error]}\r\n
\r\n ))}\r\n
\t\t\r\n
\r\n\t\t\tNeed help? You can review our video guide to filling out this form by clicking here\r\n\t\t
\r\n
\r\n
\r\n
\r\n \r\n Payment\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n Select payment method\r\n
\r\n
\r\n
\r\n {\r\n setPaymentMethod(\"creditCard\");\r\n }}\r\n >\r\n Credit Card\r\n \r\n
\r\n
\r\n
\r\n {\r\n // setPaymentMethod(\"ach\");\r\n window.open(\r\n \"https://heartlandpaymentservices.net/WebPayments/AngelicSolutionsSpotInc/bills\"\r\n );\r\n }}\r\n >\r\n ACH (Electronic Check)\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n if (paymentMethod === \"creditCard\") {\r\n return (\r\n setFormSubmitting()}\r\n >\r\n
\r\n
\r\n {getErrors().map((error, index) => (\r\n
\r\n {Constants.errorsList[error]}\r\n
\r\n ))}\r\n
\r\n\t\t
\r\n\t\t\tNeed help? You can review our video guide to filling out this form by clicking here\r\n\t\t
\r\n
\r\n
\r\n
\r\n \r\n Payment\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n Select payment items\r\n
\r\n
\r\n
\r\n
\r\n {\r\n updatePaymentItemType(\"vehicle\");\r\n updatePaymentItemTypeSelected(true);\r\n }}\r\n />\r\n \r\n Vehicles\r\n \r\n
\r\n
\r\n {\r\n updatePaymentItemType(\"container\");\r\n updatePaymentItemTypeSelected(true);\r\n }}\r\n />\r\n \r\n Container\r\n \r\n
\r\n
\r\n {\r\n updatePaymentItemType(\"both\");\r\n updatePaymentItemTypeSelected(true);\r\n }}\r\n />\r\n \r\n Vehicles and containers\r\n \r\n
\r\n
\r\n
\r\n
\r\n {paymentItemTypeSelected && (\r\n
\r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n {/* Payment details */}\r\n
\r\n
\r\n
\r\n
\r\n Payment summary\r\n
\r\n
\r\n
\r\n {vehicleDetails.length === 0 &&\r\n containerDetails.length === 0 && (\r\n Please add at least one vehicle or container\r\n )}\r\n
\r\n
\r\n
\r\n
\r\n {/* We're Truncating the third decimal, we're bearing the extra cost */}\r\n
\r\n {Number(paymentDetails.paymentAmount) != 0 &&
Amount to be paid: ${Number(paymentDetails.paymentAmount).toFixed(2)}
}\r\n {paymentDetails.paymentType == \"creditCardPayment\" &&
Credit card fee: $\r\n {(Number(paymentDetails.paymentAmount)*Constants.creditCardFeeFraction).toFixed(3)\r\n .slice(0,-1)}
}\r\n Total payment:\r\n
\r\n ${Number(paymentDetails.paymentAmount).toFixed(2)}\r\n
\r\n
\r\n
\r\n
\r\n \r\n )}\r\n \r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n \r\n {submitButtonText}\r\n \r\n
\r\n
\r\n Please note: Payments must cover the cost of\r\n every added Vehicle and/or container exactly, please verify the\r\n payment amount with your invoice before submission. We cannot\r\n release your shipment overseas if we do not receive the full\r\n payment owed\r\n
\r\n
\r\n
\r\n
\r\n \r\n );\r\n }\r\n};\r\n\r\nexport { PaymentPage };\r\n\r\n// const getNotificationAlertFromId = (id) => {\r\n// switch (id){\r\n// case \"1\":\r\n// return {\"message\":\"Payment submission successfull\",\"type\":\"alert-success\"};\r\n// case \"2\":\r\n// return {\"message\":\"Address validation failed. Please make sure the billing address you entered matches the address your bank has on file for you card\",\"type\":\"alert-danger\"};\r\n// case \"3\":\r\n// return {\"message\":\"CCV/CVV validation failed. Please make sure the CCV number you entered matches the CCV number on your card\",\"type\":\"alert-danger\"};\r\n// case \"4\":\r\n// return {\"message\":\"The transaction was declined as the bank reported insufficient funds/credit to complete the transaction\",\"type\":\"alert-danger\"};\r\n// case \"5\":\r\n// return {\"message\":\"The transaction was declined\",\"type\":\"alert-danger\"};\r\n// default:\r\n// return {\"message\": \"Invalid Id\"};\r\n// }\r\n// }\r\n\r\n// const notificationAlert = (props) =>\r\n//

\r\n// {props.message}\r\n// \r\n//

\r\n\r\n// var notifications =[];\r\n// useEffect(() => {\r\n// var IDs = [];\r\n// window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) {\r\n// if(key === \"notificationID\"){\r\n// IDs.push(value);\r\n// }\r\n// });\r\n// notifications = IDs.map((id,index) => {\r\n// var returnValue = getNotificationAlertFromId(id);\r\n// if(!(returnValue.message === \"Invalid Id\")){\r\n// return \r\n// }\r\n// });\r\n// });\r\n/*\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
*/\r\n","import React from \"react\";\r\n\r\nexport const PaymentSubmissionSuccess = () => (\r\n
\r\n

\r\n Your payment has been successfully submitted.\r\n

\r\n
\r\n
\r\n Please check the email address you provided for a copy of the receipt.\r\n
\r\n
\r\n
\r\n);\r\n","import React, {Component} from 'react';\r\n\r\nexport class RequestorInfoCard extends Component{\r\n constructor(props) {\r\n super(props);\r\n }\r\n\r\n render(){\r\n return(\r\n
\r\n
\r\n
Your details
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n ) \r\n }\r\n \r\n}","import React, {Component} from 'react';\r\n\r\nexport class PickupAddressCard extends Component{\r\n constructor(props) {\r\n super(props);\r\n }\r\n\r\n render(){\r\n return(\r\n
\r\n
\r\n
Pickup Address
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n If one of more cars have a different pickup address, specify them when filling out the vehicle information later on in this form \r\n
\r\n
\r\n
\r\n
\r\n )\r\n\r\n };\r\n\r\n}","import React, {Component} from \"react\"\r\nimport ReactDOM from \"react-dom\";\r\n\r\nexport class FreightTypeChoice extends Component{\r\n\r\n constructor(props){\r\n super(props);\r\n }\r\n componentDidMount(){\r\n this.props.onOriginPortChange(document.getElementById(\"Loading-Port-Select\").value);\r\n this.props.onDestinationPortChange(document.getElementById(\"Destination-Port-Select\").value);\r\n }\r\n render(){\r\n return(\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n this.props.onChoiceChange(\"vehicle\")}/>\r\n \r\n
\r\n
\r\n this.props.onChoiceChange(\"container\")}/>\r\n \r\n
\r\n
\r\n\r\n
\r\n )\r\n }\r\n\r\n}","import React from 'react';\r\n\r\nexport default class staticVehicleLists{\r\n//https://stackoverflow.com/questions/5650457/html-select-form-with-option-to-enter-custom-value \r\n static vehicleMakeList = (id) => {\r\n return(\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n \r\n}","import React, { Component, useState } from \"react\";\r\n\r\nexport const DocumentInputRow = (props) => {\r\n const [uploadedFile, updateFileUploaded] = useState(null);\r\n const [docTypeInput, updateDocTypeInput] = useState(null);\r\n\r\n var documentInput = props.inputFor + \"[\" + props.id + \"].documents\";\r\n var documentInputId = \"Document\" + props.id + \"_\" + props.length;\r\n var documentType = props.inputFor + \"[\" + props.id + \"].documentTypes\";\r\n\r\n const docTypeInputTemplate = () => {\r\n return(\r\n
\r\n \r\n \r\n
\r\n )\r\n }\r\n\r\n return(\r\n
\r\n
\r\n {docTypeInput} \r\n
\r\n
\r\n
\r\n
\r\n {\r\n updateFileUploaded(evt.target.value.split(\"\\\\\").pop());\r\n updateDocTypeInput(docTypeInputTemplate);\r\n props.onFileAdded()\r\n }}/>\r\n \r\n
\r\n
\r\n
\r\n {uploadedFile}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n\r\n}","import React, { Component, useState } from \"react\";\r\nimport { DocumentInputRow } from \"./DocumentInputRow\";\r\n\r\nexport const DocumentUploadModal = (props) => {\r\n\r\n var id = props.id;\r\n var inputFor = props.inputFor;\r\n\r\n const atLeastOnefileAdded = () => {\r\n updateIfOneFileUploaded(\"File(s) attatched\");\r\n }\r\n\r\n const [documentInputList, updateDocumentList] = useState([]);\r\n const [fileUploadedText, updateIfOneFileUploaded] = useState(\"No files added\");\r\n\r\n \r\n \r\n const addDocument = () => {\r\n var length = documentInputList.length;\r\n if(documentInputList.length < 10){\r\n updateDocumentList(prev => prev.concat());\r\n }\r\n }\r\n const removeDocument = () => {\r\n if(documentInputList.length > 0){\r\n updateDocumentList(prev => prev.slice(0,documentInputList.length-1)); \r\n }\r\n }\r\n return(\r\n
\r\n {/* Modal launch button */}\r\n \r\n
\r\n {fileUploadedText}\r\n
\r\n {/* Modal */}\r\n
\r\n
\r\n
\r\n
\r\n
Upload Title and other documents
\r\n \r\n
\r\n
\r\n {documentInputList}\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n\r\n\r\n}","import React, {Component} from 'react';\r\nimport ReactDOM from \"react-dom\";\r\nimport staticVehicleLists from\"./staticVehicleLists\";\r\nimport { DocumentUploadModal } from \"./DocumentUploadModal\";\r\n\r\nexport class VehicleDetails extends Component{\r\n constructor(props){\r\n super(props);\r\n this.state = {\r\n documentsUploaded: false,\r\n vehicleModelList: null,\r\n specifyDifferentAddress: false,\r\n };\r\n this.handleChange = this.handleChange.bind(this);\r\n this.fetchDataForVIN = this.fetchDataForVIN.bind(this);\r\n this.fetchModelsForMake = this.fetchModelsForMake.bind(this);\r\n this.handleSpecificChanges = this.handleSpecificChanges.bind(this);\r\n this.updateSpecifyAddress = this.updateSpecifyAddress.bind(this);\r\n }\r\n\r\n static defaultVehicleInputData = {\"VIN\":\"\", \"Make\":\"\", \"Model\":\"\",\"Year\": 1970,\"Condition\":\"\",\"Value\":0,\r\n \"fromAuction\":true, \"memberNumber\":\"\", \"lotNumber\":\"\", \"title\":\"\", \r\n \"differentAddressSpecified\": \"false\", \"pickupStreetAddress\": \"\",\r\n \"pickupStreetAddress\": \"\",\"pickupCity\": \"\", \"pickupState\": \"\",\r\n \"pickupZipcode\": \"\"\r\n };\r\n \r\n componentDidMount(){\r\n const node = ReactDOM.findDOMNode(this);\r\n if(this.props.id != 0){\r\n node.scrollIntoView({behavior: \"smooth\", block: \"nearest\", inline: \"start\"});\r\n }\r\n }\r\n\r\n updateSpecifyAddress(value){\r\n this.setState({specifyDifferentAddress : value});\r\n }\r\n\r\n fetchDataForVIN(event){\r\n var VIN = event.target.value;\r\n \r\n if(VIN.length != 17){\r\n return;\r\n }\r\n var keyValuePairs = {keys: [\"Make\",\"Model\",\"Year\"], values: []};\r\n fetch('https://vpic.nhtsa.dot.gov/api/vehicles/DecodeVin/' + VIN + '?format=json')\r\n .then(response => response.json())\r\n .then(data => {\r\n keyValuePairs.values[0] = data[\"Results\"][\"6\"][\"Value\"];\r\n keyValuePairs.values[1] = data[\"Results\"][\"8\"][\"Value\"];\r\n keyValuePairs.values[2] = data[\"Results\"][\"9\"][\"Value\"];\r\n \r\n this.props.onUpdateMultiple(this.props.id, keyValuePairs);\r\n });\r\n }\r\n\r\n fetchModelsForMake(event){\r\n var make = event.target.value;\r\n \r\n if(make.length == 0){\r\n return;\r\n }\r\n var innerData,dataList;\r\n fetch('https://vpic.nhtsa.dot.gov/api/vehicles/GetModelsForMake/' + make + '?format=json')\r\n .then(response => response.json())\r\n .then(data => {\r\n innerData = data[\"Results\"].map((result,index) => );\r\n dataList = {innerData}; \r\n this.setState({vehicleModelList: dataList});\r\n });\r\n }\r\n \r\n handleChange(event){\r\n var nameSplitArray = event.target.name.split(\".\");\r\n \r\n var key = nameSplitArray[nameSplitArray.length-1];\r\n var value=event.target.value;\r\n \r\n this.props.onUpdate(this.props.id, key, value);\r\n }\r\n\r\n handleSpecificChanges(values){\r\n }\r\n\r\n\r\n // TODO: Implement autocollapse of vehicle with a display that includes a summary of the entered details\r\n // TODO: Implement AJAX to populate the options found in lists. Hardcoding this currently for efficency sake\r\n render(){\r\n var inputFor = this.props.inputFor;\r\n var VINinput = inputFor + \"[\" + this.props.id + \"].VIN\";\r\n var makeInput = inputFor + \"[\" + this.props.id + \"].Make\";\r\n var modelInput = inputFor + \"[\" + this.props.id + \"].Model\";\r\n var yearInput = inputFor + \"[\" + this.props.id + \"].Year\";\r\n var conditionInput = inputFor + \"[\" + this.props.id + \"].Condition\";\r\n var valueInput = inputFor + \"[\" + this.props.id + \"].Value\";\r\n var fromAuction = inputFor + \"[\" + this.props.id + \"].fromAuction\";\r\n var memberInput = inputFor + \"[\" + this.props.id + \"].memberNumber\";\r\n var lotInput = inputFor + \"[\" + this.props.id + \"].lotNumber\";\r\n var conditionToolTip = inputFor + \"[\" + this.props.id + \"].conditionToolTip\";\r\n\r\n var differentAddressSpecifiedInput = inputFor + \"[\" + this.props.id + \"].differentAddressSpecified\";\r\n var pickupStreetAddressInput = inputFor + \"[\" + this.props.id + \"].pickupStreetAddress\";\r\n var pickupCityInput = inputFor + \"[\" + this.props.id + \"].pickupCity\";\r\n var pickupStateInput = inputFor + \"[\" + this.props.id + \"].pickupState\";\r\n var pickupZipcode = inputFor + \"[\" + this.props.id + \"].pickupZipcode\";\r\n\r\n var modelListName = \"modelList\" + this.props.id;\r\n var removeButton,yearOptionsList,documentUploadConf;\r\n \r\n var years = [];\r\n for(var i = 1970; i <= new Date().getFullYear(); i++){\r\n years.push(i.toString());\r\n }\r\n yearOptionsList = years.map((year,index) => )\r\n // If inputting RORO vehicles, don't display remove button when only\r\n // one vehicle card is displayed\r\n if(inputFor === \"vehicleInfo\"){\r\n if(this.props.totalVehicles != 1){\r\n removeButton = \r\n \r\n }\r\n }\r\n // If inputting in any other context, all vehicles can be removed\r\n else{\r\n removeButton = \r\n \r\n }\r\n \r\n var auctionDetails = \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n var auctionSection;\r\n \r\n if(this.props.value[\"fromAuction\"] === \"true\" || this.props.value[\"fromAuction\"] === true){ \r\n auctionSection = \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n {auctionDetails}\r\n
\r\n }\r\n else{\r\n auctionSection = \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n }\r\n\r\n //#region Different pickup address details:\r\n var differentPickupAddress = \r\n
\r\n
\r\n
Pickup Address
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n if(this.state.documentsUploaded){\r\n documentUploadConf =
Documents uploaded
;\r\n }else{\r\n documentUploadConf =
Upload title and other documents
;\r\n }\r\n return(\r\n // Individual vehicle details\r\n
\r\n
\r\n Vehicle #{parseInt(this.props.id,10) + 1}\r\n
\r\n
\r\n {removeButton}\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n {staticVehicleLists.vehicleMakeList(\"makeList\")}\r\n
\r\n
\r\n \r\n \r\n {this.state.vehicleModelList}\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n Info\r\n
\r\n
\r\n
    \r\n
  • Choose Non-Running if the vehicle does not start, but can be moved/rolled on its own set of wheels.
  • \r\n
  • Choose Needs forklift trailer if the vehicle does not start, and cannot be moved/rolled on its own wheels.
  • \r\n
  • If you are unsure, choose Running.
  • \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n Is this vehicle being picked up at an auction? \r\n {auctionSection}\r\n
\r\n \r\n
\r\n Specify different pickup address?\r\n
\r\n {this.updateSpecifyAddress(true); this.handleChange(evt) }}/>\r\n \r\n
\r\n
\r\n { this.updateSpecifyAddress(false); this.handleChange(evt) } }/>\r\n \r\n
\r\n
\r\n {(this.props.value[\"differentAddressSpecified\"] === \"true\")\r\n && \r\n differentPickupAddress\r\n }\r\n
\r\n
\r\n
\r\n )\r\n }\r\n\r\n \r\n}","import React, { Component } from 'react';\r\nimport { VehicleDetails } from './VehicleDetails';\r\nimport ReactDOM from \"react-dom\";\r\n\r\nexport class VehicleDetailsCard extends Component{\r\n\r\n constructor(props){\r\n super(props);\r\n var newInput = JSON.parse(JSON.stringify(VehicleDetails.defaultVehicleInputData));\r\n this.state = { \r\n vehicleInputData: [newInput]\r\n };\r\n //TODO: Need to rerender children with the appropriate state, and hold all of the data needed\r\n // to repopulate the input fields because there doesn't seem to be an easy way for data\r\n // to be shared horizontally\r\n // Doing this now, before we need to use Redux.\r\n\r\n this.addVehicle = this.addVehicle.bind(this);\r\n this.removeVehicle = this.removeVehicle.bind(this);\r\n this.onUpdate = this.onUpdate.bind(this);\r\n this.onUpdateMultiple = this.onUpdateMultiple.bind(this);\r\n }\r\n\r\n componentDidMount(){\r\n /*const node = ReactDOM.findDOMNode(this);\r\n node.scrollIntoView({behavior: \"smooth\", block: \"nearest\", inline: \"start\"});*/\r\n }\r\n\r\n onUpdateMultiple = (id, keyValuePairs) => {\r\n var vehicleInputData = this.state.vehicleInputData;\r\n keyValuePairs[\"keys\"].map((key,index) => vehicleInputData[id][key] = keyValuePairs[\"values\"][index]);\r\n this.setState({vehicleInputData: vehicleInputData});\r\n }\r\n onUpdate = (id,key,value) =>{\r\n var vehicleInputData = this.state.vehicleInputData;\r\n vehicleInputData[id][key] = value;\r\n this.setState({vehicleInputData: vehicleInputData});\r\n }\r\n\r\n addVehicle = () =>\r\n {\r\n var vehicleInputData = this.state.vehicleInputData;\r\n if(vehicleInputData.length < parseInt(this.props.maxVehicles, 10))\r\n {\r\n var newInput = JSON.parse(JSON.stringify(VehicleDetails.defaultVehicleInputData));\r\n vehicleInputData.push(newInput);\r\n }\r\n this.setState({vehicleInputData: vehicleInputData});\r\n }\r\n\r\n removeVehicle = (index) =>\r\n {\r\n var vehicleInputData = this.state.vehicleInputData;\r\n var numVehicles = vehicleInputData.length;\r\n if(index < numVehicles && index >= 0)\r\n {\r\n vehicleInputData.splice(index,1);\r\n }\r\n this.setState({vehicleInputData: vehicleInputData});\r\n }\r\n\r\n render(){\r\n var id = 0;\r\n var numVehicles = this.state.vehicleInputData.length;\r\n var vehicleDetailsList = this.state.vehicleInputData.map((element) => \r\n
\r\n
\r\n \r\n
\r\n
\r\n );\r\n return(\r\n
\r\n
\r\n
Vehicle Details
\r\n
\r\n \r\n
\r\n Total Vehicles: {this.state.vehicleInputData.length}\r\n
\r\n
\r\n \r\n
\r\n \r\n {vehicleDetailsList}\r\n\r\n
\r\n
\r\n
\r\n )\r\n }\r\n}","import React, {Component} from 'react';\r\n\r\nexport class CommodityDetails extends Component{\r\n static defaultCommodityInputData = {\"commodityName\":\"\", \"value\":0,\"weight\":0.00};\r\n constructor(props){\r\n super(props);\r\n \r\n this.handleChange = this.handleChange.bind(this);\r\n }\r\n\r\n handleChange(event){\r\n var nameSplitArray = event.target.name.split(\".\");\r\n \r\n var key = nameSplitArray[nameSplitArray.length-1];\r\n var value=event.target.value;\r\n this.props.onUpdate(this.props.id, key, value);\r\n }\r\n\r\n //TODO: Implement autocollapse of vehicle with a display that includes a summary of the entered details\r\n render(){\r\n var inputFor = this.props.inputFor;\r\n var nameInput = inputFor + \"[\" + this.props.id + \"].commodityName\";\r\n var valueInput = inputFor + \"[\" + this.props.id + \"].value\";\r\n var weightInput = inputFor + \"[\" + this.props.id + \"].weight\";\r\n\r\n return(\r\n // Individual vehicle details\r\n
\r\n
\r\n \r\n Commodity #{parseInt(this.props.id,10) + 1}\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n )\r\n }\r\n}","import React, {Component} from 'react';\r\nimport {VehicleDetails} from './VehicleDetails';\r\nimport {CommodityDetails} from './CommodityDetails';\r\n\r\n//TODO: Either at least one commodity or one vehicle has to be listed\r\nexport class ContainerDetails extends Component{\r\n\r\n constructor(props){\r\n super(props); \r\n this.state = { \r\n \r\n vehicleInputData: [],\r\n commodityInputData: [],\r\n vehicleInputPrefix: \"containerInfo[\" + this.props.id + \"].vehicleInfo\",\r\n commodityInputPrefix: \"containerInfo[\" + this.props.id + \"].commodityInfo\",\r\n \r\n }\r\n this.addVehicleToContainer = this.addVehicleToContainer.bind(this);\r\n this.removeVehicleFromContainer = this.removeVehicleFromContainer.bind(this);\r\n this.onUpdateVehicle = this.onUpdateVehicle.bind(this);\r\n }\r\n \r\n onUpdateVehicle = (id,key,value) =>{\r\n var vehicleInputData = this.state.vehicleInputData;\r\n vehicleInputData[id][key] = value;\r\n this.setState({vehicleInputData: vehicleInputData});\r\n }\r\n onUpdateCommodity = (id,key,value) =>{\r\n var commodityInputData = this.state.commodityInputData;\r\n commodityInputData[id][key] = value;\r\n this.setState({commodityInputData: commodityInputData});\r\n }\r\n\r\n addVehicleToContainer = () =>\r\n {\r\n var vehicleInputData = this.state.vehicleInputData;\r\n if(vehicleInputData.length < parseInt(this.props.maxVehicles, 10))\r\n { \r\n var newInput = JSON.parse(JSON.stringify(VehicleDetails.defaultVehicleInputData));\r\n vehicleInputData.push(newInput);\r\n }\r\n this.setState({vehicleInputData: vehicleInputData});\r\n } \r\n removeVehicleFromContainer = (index) =>\r\n {\r\n var vehicleInputData = this.state.vehicleInputData;\r\n var numVehicles = vehicleInputData.length;\r\n if(index < numVehicles && index >= 0)\r\n {\r\n vehicleInputData.splice(index,1);\r\n }\r\n this.setState({vehicleInputData: vehicleInputData});\r\n }\r\n \r\n addCommodityToContainer = () =>\r\n {\r\n var commodityInputData = this.state.commodityInputData;\r\n if(commodityInputData.length < parseInt(this.props.maxCommodities, 10))\r\n {\r\n // bge caredul when assigning an object to a component. Changes to the object\r\n // will be reflected across all components that have a REFERENCE to the object,\r\n // By default, assignment copies a reference to the original object rather than creating \r\n // a copy.\r\n //https://scotch.io/bar-talk/copying-objects-in-javascript \r\n var newInput = JSON.parse(JSON.stringify(CommodityDetails.defaultCommodityInputData));\r\n commodityInputData.push(newInput);\r\n }\r\n this.setState({commodityInputData: commodityInputData});\r\n } \r\n removeCommodityFromContainer = (index) =>\r\n {\r\n var commodityInputData = this.state.commodityInputData;\r\n var numCommodities = commodityInputData.length;\r\n if(index < numCommodities && index >= 0)\r\n {\r\n commodityInputData.splice(index,1);\r\n }\r\n this.setState({commodityInputData: commodityInputData});\r\n }\r\n\r\n containerInfo(props) {\r\n var sizeInput = \"containerInfo[\" + props.id + \"].sizes\";\r\n var addlInfoInput = \"containerInfo[\" + props.id + \"].additionalInformation\";\r\n return ( \r\n
\r\n
Container {parseInt(props.id,10) + 1}
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n );\r\n }\r\n\r\n // TODO: Implement autocollapse of vehicle with a display that includes a summary of the entered details\r\n // TODO: Implement AJAX to populate the options found in lists. Hardcoding this currently for efficency sake\r\n render(){\r\n var id = 0;\r\n var vehicleDetailsList = this.state.vehicleInputData.map((element) => \r\n
\r\n
\r\n \r\n
\r\n
\r\n );\r\n id = 0;\r\n var commodityDetailsList = this.state.commodityInputData.map((element) =>\r\n \r\n );\r\n return(\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n Commodity Details (maximum {this.props.maxCommodities} per container)
\r\n Use this for items such as food, hardware etc. Use \"Add vehicles\" option below to add vehicles
\r\n Total: {this.state.commodityInputData.length}\r\n
\r\n
\r\n \r\n
\r\n
\r\n {commodityDetailsList}\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n Vehicle Details (maximum {this.props.maxVehicles} per container)
\r\n Total: {this.state.vehicleInputData.length}\r\n
\r\n
\r\n \r\n
\r\n
\r\n {vehicleDetailsList}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n )\r\n }\r\n}","import React, { Component } from 'react';\r\nimport { ContainerDetails } from './ContainerDetails';\r\nimport ReactDOM from \"react-dom\";\r\n\r\nexport class ContainerDetailsCard extends Component{\r\n\r\n constructor(props){\r\n super(props);\r\n this.state = {\r\n containerList: []\r\n };\r\n\r\n this.addContainer = this.addContainer.bind(this);\r\n this.removeContainer = this.removeContainer.bind(this);\r\n }\r\n\r\n // componentDidMount(){\r\n // const node = ReactDOM.findDOMNode(this);\r\n // node.scrollIntoView({behavior: \"smooth\", block: \"nearest\", inline: \"start\"});\r\n // }\r\n\r\n addContainer = () => \r\n {\r\n var containerList = this.state.containerList;\r\n if(containerList.length < parseInt(this.props.maxContainers, 10))\r\n {\r\n containerList.push();\r\n }\r\n this.setState({containerList: containerList});\r\n }\r\n removeContainer = () => \r\n {\r\n var containerList = this.state.containerList;\r\n if(containerList.length > 0)\r\n {\r\n containerList = containerList.slice(0,containerList.length-1);\r\n }\r\n this.setState({containerList: containerList});\r\n }\r\n\r\n render(){\r\n var removeBtn;\r\n if(this.state.containerList.length > 1){\r\n removeBtn = \r\n \r\n }\r\n return(\r\n
\r\n
\r\n\r\n
\r\n Total Containers: {this.state.containerList.length}\r\n
\r\n\r\n
\r\n \r\n {removeBtn}\r\n
\r\n {this.state.containerList.map(element => element)} \r\n
\r\n
\r\n )\r\n }\r\n\r\n}","import React, { useState, useEffect } from 'react';\r\nimport ReactDOM from 'react-dom';\r\n\r\nexport const PayerDetails = (props) => {\r\n const [currentPayer, changePayer] = useState(null);\r\n const [currentPayerSentence, updatesentence] = useState(null); \r\n\r\n function displayThirdPartyInfo(){\r\n if(currentPayer == \"other\"){\r\n return (\r\n
\r\n
\r\n
Payer details
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n )\r\n }\r\n return null;\r\n }\r\n \r\n return(\r\n
\r\n
\r\n
\r\n
\r\n Please select the payer for this freight\r\n
\r\n
\r\n {currentPayerSentence}\r\n
\r\n
\r\n
\r\n
\r\n {\r\n props.changeWhoPayerIs(\"self\"); \r\n changePayer(\"self\");\r\n updatesentence(You are paying for this freight)\r\n }}/>\r\n \r\n
\r\n\r\n
\r\n { \r\n props.changeWhoPayerIs(\"consignee\"); \r\n changePayer(\"consignee\");\r\n updatesentence(The consignee is paying for this freight);\r\n }}/>\r\n \r\n \r\n
\r\n\r\n
\r\n {\r\n props.changeWhoPayerIs(\"other\");\r\n changePayer(\"other\"); \r\n updatesentence(A third party is paying for this freight);\r\n }}/>\r\n \r\n \r\n
\r\n
\r\n {displayThirdPartyInfo()}\r\n
\r\n
\r\n );\r\n}","import React, { useState } from \"react\";\r\nimport { Constants } from \"../../Constants\";\r\n\r\nexport const FirstTimeShipperDetails = (props) => {\r\n const [userHasAcceptedPoaTerms, updateUserChoiceOfPoa] = useState(false);\r\n const [isNvoccOrOff, updateNvoccOrOff] = useState(false);\r\n\r\n const passportInput = () => \r\n
\r\n \r\n \r\n \r\n \r\n
;\r\n\r\n const EinInput = () =>\r\n
\r\n \r\n \r\n
; \r\n\r\n const [passportOrEin, updatePassportOrEin] = useState(EinInput);\r\n\r\n return(\r\n
\r\n
\r\n
\r\n First time shippers need to provide a valid residence address and grant us Power of attorney to handle goods during transportation\r\n
\r\n
\r\n
\r\n
Your Address
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n I am a\r\n \r\n updateNvoccOrOff(false) }/>\r\n \r\n \r\n
\r\n updateNvoccOrOff(true) }/>\r\n \r\n
\r\n
\r\n updateNvoccOrOff(true) }/>\r\n \r\n
\r\n {isNvoccOrOff &&
\r\n \r\n \r\n
}\r\n
\r\n
\r\n Please provide one\r\n \r\n updatePassportOrEin(EinInput) }/>\r\n \r\n \r\n
\r\n updatePassportOrEin(passportInput) }/>\r\n \r\n
\r\n
\r\n
\r\n {passportOrEin}\r\n
\r\n
\r\n {/*
\r\n Carefully read, fill out, and send us the following Power of attorney document. This document permits us to handle your cargo during the shipping process\r\n \r\n Power of attorney\r\n \r\n
*/}\r\n
\r\n
\r\n
Export Power of Attorney
\r\n
{/*style={{\"overflow\":\"scroll\"}}*/}\r\n To: U.S. Customs & Border Protection
\r\n Re: Exportation of Cargo from the United States
\r\n I, the customer, hereby authorize Angelic Solution Spot, Inc. (A.S.S) & their employees:\r\n
    \r\n
  • To act as my forwarding agent for the export control and customs purposes.
  • \r\n
  • To prepare, sign, declare or swear to any Shipper’s Export Declaration required by law or regulations in connection with the exportation of any commodity shipped by me, the customer.
  • \r\n
  • To do all the things necessary to ensure compliance with all requirements pursuant to section\r\n  19 CFR Part 192 \r\n  of the U.S. Customs regulations:
  • \r\n
\r\n Angelic Solution Spot Inc. 9244 E Hampton Drive, Capitol Heights, MD 20743 FMC # 027284N
Tel: (240) 563-1951 Fax: 240-455-6328 www.angelicshipping.com
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n props.onChange(evt.target.value)}/>\r\n \r\n *We retain your residence, FMC license #, and other details along with your signature for our records\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n\r\n}","import React, { Component } from \"react\";\r\nimport { RequestorInfoCard } from \"./RequestorInfoCard\";\r\nimport { PickupAddressCard } from \"./PickupAddress\";\r\nimport { FreightTypeChoice} from './FreightTypeChoice';\r\nimport { VehicleDetailsCard } from \"./VehicleDetailsCard\";\r\nimport { ContainerDetailsCard } from \"./ContainerDetailsCard\";\r\nimport { ConsigneeDetails } from \"./ConsigneeDetails\";\r\nimport { PayerDetails } from \"./PayerDetails\";\r\nimport { PriceEstimateCard } from \"./PriceEstimateCard\";\r\nimport { Constants } from \"../../Constants\";\r\nimport { FirstTimeShipperDetails } from \"./FirstTimeShipperDetails\";\r\nimport { RecoilRoot, atom, selector, useRecoilState, useRecoilValue,} from 'recoil';\r\n\r\nexport class BookingRequest extends Component{\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n transportType: null, // inlandAndOceanFreight, oceanFreightOnly\r\n freightType: null, // vehicle, container\r\n transportTypeSelected: false,\r\n freightTypeSelected: false,\r\n payerSelected: false,\r\n\r\n formSubmitting: false,\r\n submitButtonText: \"Submit Booking Request\",\r\n fileUploadsMayTakeTimeText: null,\r\n firstTimeShipper: false,\r\n powerOfAttorneyAgreed: false,\r\n \r\n selectedOriginPort: null, \r\n selectedDestinationPort: null, \r\n }; \r\n // This binding is necessary to make `this` work in the callback\r\n this.changeTransportType = this.changeTransportType.bind(this);\r\n this.changeFreightType = this.changeFreightType.bind(this);\r\n this.setPayerSelected = this.setPayerSelected.bind(this);\r\n this.updateFirstTimeShipper = this.updateFirstTimeShipper.bind(this);\r\n this.updatePowerOfAttorneySigned = this.updatePowerOfAttorneySigned.bind(this);\r\n\r\n this.setFormSubmitting = this.setFormSubmitting.bind(this);\r\n this.updateOriginPort = this.updateOriginPort.bind(this);\r\n this.updateDestinationPort = this.updateDestinationPort.bind(this);\r\n }\r\n updateOriginPort = (port) => {\r\n this.setState({selectedOriginPort: port});\r\n }\r\n updateDestinationPort = (port) => {\r\n this.setState({selectedDestinationPort: port});\r\n }\r\n estimatedPriceCollector = atom({\r\n key: 'estimatedPriceCollector', // unique ID (with respect to other atoms/selectors)\r\n default: {\"serviceType\":\"\", \"port\":\"\"}, // default value (aka initial value)\r\n });\r\n\r\n updatePowerOfAttorneySigned = (value) => this.setState({powerOfAttorneyAgreed : value});\r\n\r\n setFormSubmitting = (value) => {\r\n if(value){\r\n this.setState({submitButtonText: \"Please wait...\",\r\n formSubmitting: value});\r\n this.setState({fileUploadsMayTakeTimeText: *Submission may take longer if many documents are being uploaded});\r\n }else{\r\n this.setState({formSubmitting: value});\r\n }\r\n };\r\n changeTransportType = (e) => {this.setState({transportType: e, transportTypeSelected: true}); };\r\n changeFreightType = (e) => {\r\n this.setState({freightType: e, freightTypeSelected: true}); \r\n }; \r\n setPayerSelected = (e) => {\r\n this.setState({payerSelected: true}); \r\n };\r\n updateFirstTimeShipper = (isFirstTimeShipper) => {\r\n this.setState({firstTimeShipper: isFirstTimeShipper}); \r\n };\r\n \r\n transportTypeChoice =\r\n
\r\n
\r\n {Constants.SelectYourService}\r\n
\r\n this.changeTransportType(\"inlandAndOceanFreight\")}/>\r\n \r\n
\r\n
\r\n this.changeTransportType(\"oceanFreightOnly\")}/>\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n firstTimeShipperChoice = \r\n
\r\n Is this your first time shipping with us?\r\n
\r\n this.updateFirstTimeShipper(true) }/>\r\n \r\n
\r\n
\r\n this.updateFirstTimeShipper(false)}/>\r\n \r\n \r\n
\r\n
\r\n\r\n render(){\r\n // All JSX elements initially set to null.\r\n var firstTimeShipperInput, requestorInfo, pickupAddress, freightTypeChoice, freightTypeDetails,\r\n payerInfo, consigneeDetails, submitButton; \r\n \r\n if(this.state.firstTimeShipper){\r\n firstTimeShipperInput = ;\r\n }\r\n\r\n // The following logic assigns the appropriate elements with props to them\r\n if(this.state.transportTypeSelected){\r\n if(this.state.transportType === \"inlandAndOceanFreight\"){\r\n pickupAddress = \r\n }\r\n requestorInfo = \r\n freightTypeChoice = \r\n }\r\n \r\n if(this.state.freightTypeSelected){\r\n if(this.state.freightType === \"vehicle\"){\r\n freightTypeDetails = ;\r\n }else{\r\n freightTypeDetails = ;\r\n }\r\n payerInfo = ;\r\n }\r\n\r\n if(this.state.payerSelected){\r\n consigneeDetails = ConsigneeDetails();\r\n }\r\n\r\n if(this.state.freightTypeSelected && this.state.transportTypeSelected\r\n && this.state.payerSelected)\r\n {\r\n submitButton = \r\n
\r\n
\r\n \r\n {this.state.fileUploadsMayTakeTimeText}\r\n
\r\n
\r\n Please note: Orders will be processed in the order that they are received.
\r\n Vehicle titles or high heavy equipment bill of sales must be re-assigned to the Shipper’s name except for Foreign Shippers (no U.S. address) where they must be re-assigned to the U.S. supplier’s name.\r\n
\r\n \r\n
\r\n \r\n }\r\n\r\n var printableFormsInfo =
\r\n
\r\n Making a booking request with Angelic via this online form is fast and simple. We make sure to collect all the information needed for your booking in one spot.
\r\n If you would like to download, print and email the forms instead, you can find the printable version \r\n here \r\n \r\n \r\n
\r\n
\r\n var estimatedPrice;\r\n if(this.state.freightTypeSelected){ \r\n var priceBreakdown = [];\r\n var totalPrice = 0.0;\r\n priceBreakdown.push(Estimated price breakdown:);\r\n if(this.state.freightType === \"vehicle\"){\r\n if(this.state.selectedOriginPort === \"Freeport, Texas\"){\r\n priceBreakdown.push(
RoRo service from {this.state.selectedOriginPort} port: ${Constants.roroCentralUsPrice}
);\r\n totalPrice += Constants.roroCentralUsPrice;\r\n }else{\r\n priceBreakdown.push(
RoRo service from {this.state.selectedOriginPort} port: ${Constants.roroEastUsPrice}
);\r\n totalPrice += Constants.roroEastUsPrice;\r\n }\r\n }\r\n else if(this.state.freightType === \"container\"){\r\n priceBreakdown.push(
Container pricing is variable and will be provided once we receive your request
);\r\n } \r\n if(this.state.transportType === \"inlandAndOceanFreight\"){\r\n priceBreakdown.push(Additional charges for shipping freight to port will apply)\r\n }\r\n // estimatedPrice = \r\n // \r\n }\r\n\r\n return( \r\n \r\n
\r\n
this.setFormSubmitting(true)}>\r\n
\r\n {printableFormsInfo}\r\n\t\t\t\t\t\t\tNeed help? You can review our video guide to filling out this form by clicking here\r\n\t\t\t\t\t\t\t
\r\n {this.firstTimeShipperChoice}\r\n {firstTimeShipperInput}\r\n {this.transportTypeChoice}\r\n {requestorInfo}\r\n {pickupAddress}\r\n {freightTypeChoice} \r\n {estimatedPrice}\r\n {freightTypeDetails}\r\n {payerInfo}\r\n {consigneeDetails}\r\n {submitButton}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}","import React from 'react';\r\nimport { Constants } from '../../Constants';\r\n\r\nexport function ConsigneeDetails(){\r\n return (\r\n
\r\n

\r\n
\r\n Finally, please provide the consignee's details:
\r\n Consignee is the person or Company receiving the cargo at the port of destination. \r\n Consignee's address cannot be a P.O. box\r\n
\r\n
\r\n
\r\n
Consignee details
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Consignee Address
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n}","import React, { Component } from \"react\";\r\nimport { RequestorInfoCard } from \"./RequestorInfoCard\";\r\nimport { PickupAddressCard } from \"./PickupAddress\";\r\nimport { FreightTypeChoice} from './FreightTypeChoice';\r\nimport { Constants } from '../../Constants'\r\n\r\nexport class BookingQuote extends Component{\r\n constructor(props) {\r\n super(props); \r\n this.state = {\r\n transportType: null,\r\n freightType: null,\r\n\r\n transportTypeSelected: false,\r\n freightTypeSelected: false,\r\n\r\n\t\t\tformSubmitting: false,\r\n submitButtonText: \"Get quote\",\r\n }; \r\n var inlandAndOceanFreight = \"inlandAndOceanFreight\";\r\n var oceanFreightOnly = \"oceanFreightOnly\";\r\n // This binding is necessary to make `this` work in the callback\r\n this.changeTransportType = this.changeTransportType.bind(this);\r\n this.changeFreightType = this.changeFreightType.bind(this);\r\n\r\n this.setFormSubmitting = this.setFormSubmitting.bind(this);\r\n\t\t\r\n this.updateOriginPort = this.updateOriginPort.bind(this);\r\n this.updateDestinationPort = this.updateDestinationPort.bind(this);\r\n }\r\n\r\n changeTransportType = (e) => {this.setState({transportType: e, transportTypeSelected: true}); };\r\n\r\n changeFreightType = (e) => {this.setState({freightType: e, freightTypeSelected: true}); };\r\n \r\n\tupdateOriginPort = (port) => {\r\n this.setState({selectedOriginPort: port});\r\n }\r\n updateDestinationPort = (port) => {\r\n this.setState({selectedDestinationPort: port});\r\n }\r\n\r\n\tsetFormSubmitting = (value) => {\r\n if(value){\r\n this.setState({submitButtonText: \"Please wait...\",\r\n formSubmitting: value});\r\n }else{\r\n this.setState({formSubmitting: value});\r\n }\r\n };\r\n\r\n transportTypeChoice() {\r\n return(\r\n
\r\n
\r\n {Constants.SelectYourServiceQuote}\r\n
\r\n this.changeTransportType(\"inlandAndOceanFreight\")}/>\r\n\r\n \r\n
\r\n\r\n
\r\n this.changeTransportType(\"oceanFreightOnly\")}/>\r\n \r\n \r\n
\r\n
\r\n
\r\n )\r\n }\r\n\r\n render(){\r\n // All JSX elements initially set to null.\r\n var requestorInfo, pickupAddress, freightTypeChoice, submitButton, quantityAndAddlnfoQuery; \r\n \r\n // The following logic assigns the appropriate elements with props to them\r\n if(this.state.transportTypeSelected){\r\n requestorInfo = \r\n if(this.state.transportType === \"inlandAndOceanFreight\"){\r\n pickupAddress = \r\n }\r\n freightTypeChoice = \r\n }\r\n if(this.state.freightTypeSelected){\r\n quantityAndAddlnfoQuery = \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n }\r\n\r\n if(this.state.freightTypeSelected && this.state.transportTypeSelected){\r\n submitButton = \r\n
\r\n
\r\n \r\n
\r\n }\r\n\r\n return(\r\n
\r\n
this.setFormSubmitting(true)}>\r\n
\r\n\t\t\t\t\t\tNeed help? You can review our video guide to filling out this form by clicking here\r\n {this.transportTypeChoice()}\r\n {requestorInfo}\r\n {pickupAddress}\r\n {freightTypeChoice}\r\n {quantityAndAddlnfoQuery}\r\n {submitButton}\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}","import React from \"react\";\r\n\r\nconst SubmissionSuccess = () => (\r\n
\r\n

\r\n Your request has been submitted.\r\n

\r\n
\r\n
\r\n We appreciate your feedback on whether the form was understandable \r\n and efficient to complete. If you have comments, \r\n \r\n please leave them here\r\n \r\n
\r\n
\r\n
\r\n);\r\n\r\nexport { SubmissionSuccess };","import React from \"react\";\r\n\r\nconst SubmissionError = () => (\r\n

\r\n There was an error processing your request.\r\n

\r\n);\r\n\r\nexport { SubmissionError };","import React from \"react\";\r\n\r\nconst NotFound = () => (\r\n

\r\n Sorry! The resource you are looking for has not been found\r\n

\r\n);\r\n\r\nexport { NotFound };","import React, { Component } from 'react';\r\nimport { Route, Switch } from \"react-router\";\r\nimport { Layout } from './components/Layout';\r\nimport { Home } from './components/Home';\r\nimport { FetchData } from './components/FetchData';\r\nimport { Counter } from './components/Counter';\r\nimport AuthorizeRoute from './components/api-authorization/AuthorizeRoute';\r\nimport ApiAuthorizationRoutes from './components/api-authorization/ApiAuthorizationRoutes';\r\nimport { ApplicationPaths } from './components/api-authorization/ApiAuthorizationConstants';\r\nimport { PaymentPage } from './components/PaymentSystem/PaymentPage';\r\nimport { PaymentSubmissionSuccess } from './components/PaymentSystem/PaymentSubmissionSuccess';\r\nimport { BookingRequest } from './components/BookingRequest/BookingRequest';\r\nimport { BookingQuote } from './components/BookingRequest/BookingQuote';\r\nimport { SubmissionSuccess } from './components/BookingRequest/SubmissionSuccess';\r\nimport { SubmissionError } from './components/BookingRequest/SubmissionError';\r\nimport { NotFound } from \"./components/NotFound\";\r\n\r\nimport './custom.css'\r\n\r\nexport default class App extends Component {\r\n static displayName = App.name;\r\n\r\n render () {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { BrowserRouter } from 'react-router-dom';\r\nimport App from './App';\r\n//import registerServiceWorker from './registerServiceWorker';\r\n\r\nconst baseUrl = \"ClientApp\"\r\nconst rootElement = document.getElementById('root');\r\n\r\nReactDOM.render(\r\n \r\n \r\n ,\r\n rootElement);\r\n\r\n// Uncomment the line above that imports the registerServiceWorker function\r\n// and the line below to register the generated service worker.\r\n// By default create-react-app includes a service worker to improve the\r\n// performance of the application by caching static assets. This service\r\n// worker can interfere with the Identity UI, so it is\r\n// disabled by default when Identity is being used.\r\n//\r\n//registerServiceWorker();\r\n// https://stackoverflow.com/questions/7317273/warn-user-before-leaving-web-page-with-unsaved-changes#answer-48238659\r\n(() => {\r\nconst modified_inputs = new Set;\r\nconst defaultValue = \"defaultValue\";\r\n// store default values\r\nwindow.addEventListener(\"beforeinput\", (evt) => {\r\n const target = evt.target;\r\n if (!(defaultValue in target || defaultValue in target.dataset)) {\r\n target.dataset[defaultValue] = (\"\" + (target.value || target.textContent)).trim();\r\n }\r\n});\r\n// detect input modifications\r\nwindow.addEventListener(\"input\", (evt) => {\r\n const target = evt.target;\r\n let original;\r\n if (defaultValue in target) {\r\n original = target[defaultValue];\r\n } else {\r\n original = target.dataset[defaultValue];\r\n }\r\n if (original !== (\"\" + (target.value || target.textContent)).trim()) {\r\n if (!modified_inputs.has(target)) {\r\n modified_inputs.add(target);\r\n }\r\n } else if (modified_inputs.has(target)) {\r\n modified_inputs.delete(target);\r\n }\r\n});\r\n// clear modified inputs upon form submission\r\nwindow.addEventListener(\"submit\", () => {\r\n modified_inputs.clear();\r\n // to prevent the warning from happening, it is advisable\r\n // that you clear your form controls back to their default\r\n // state with form.reset() after submission\r\n});\r\n// warn before closing if any inputs are modified\r\nwindow.addEventListener(\"beforeunload\", (evt) => {\r\n if (modified_inputs.size) {\r\n const unsaved_changes_warning = \"Changes you made may not be saved.\";\r\n evt.returnValue = unsaved_changes_warning;\r\n return unsaved_changes_warning;\r\n }\r\n});\r\n})();\r\n\r\n"],"sourceRoot":""}