{"version":3,"sources":["framework/context/ApiContext.tsx","framework/context/ApiProvider.tsx","framework/hooks/useSnackbarNotify.tsx","framework/context/LoaderContext.tsx","framework/context/LoaderProvider.tsx","framework/context/LocalizationProvider.tsx","framework/hooks/useLocalStorage.tsx","framework/hooks/useTrigger.tsx","framework/dialogs/DialogsContext.tsx","framework/dialogs/DialogsProvider.tsx","keys.tsx","framework/localization/enFrameworkStrings.tsx","framework/localization/apiErrors/enApiErrorStrings.tsx","localization/enStrings.tsx","framework/localization/frFrameworkStrings.tsx","framework/localization/apiErrors/frApiErrorStrings.tsx","localization/frStrings.tsx","framework/localization/nlFrameworkStrings.tsx","framework/localization/apiErrors/nlApiErrorStrings.tsx","localization/localizationRecord.tsx","localization/nlStrings.tsx","localization/SpecificLocalizationContext.tsx","localization/useLocalization.tsx","shared/records/createTimeUnitRecord.tsx","shared/records/RecordContext.tsx","shared/records/RecordProvider.tsx","theme.tsx","routes.tsx","framework/hooks/useApiErrorHandling.tsx","framework/hooks/useApi.tsx","framework/hooks/useApiEffect.tsx","gen/DefaultAxiosInstance.tsx","framework/xhr/FrameworkDefaultAxiosInstance.tsx","framework/Try.tsx","gen/ApiClient.ts","framework/forms/common/ErrorTextWithIcon.tsx","framework/forms/common/FormHelperTextX.tsx","framework/forms/common/FormErrorHelper.tsx","framework/forms/common/FormControlX.tsx","framework/utils/nameOf.tsx","app/countries/NlCountries.tsx","app/countries/FormSelectCountryField.tsx","framework/hooks/useStateBool.tsx","framework/forms/common/ClearEndAdornment.tsx","framework/forms/FormTextField.tsx","framework/utils/makeANumber.tsx","framework/utils/mapNaNAsZero.tsx","framework/forms/utils/handleFormResponse.tsx","framework/forms/utils/findFieldErrorMinStep.tsx","framework/hooks/useFormSubmit.tsx","shared/icons/ArrowLeftIcon.tsx","shared/buttons/BackButton.tsx","framework/components/buttons/LoaderButton.tsx","shared/icons/ArrowRightIcon.tsx","shared/buttons/FormSubmitButton.tsx","shared/components/FormGridContainer.tsx","shared/components/IconAndH3.tsx","shared/icons/InfoCircleIcon.tsx","shared/icons/LocationCircleIcon.tsx","shared/components/FormGridItem.tsx","shared/useIsMobile.tsx","app/logo/130.svg","app/logo/Logo130.tsx","shared/components/FullScreenIfMobileDialog.tsx","app/RestartDialog.tsx","framework/hooks/useLazyEffect.tsx","framework/dialogs/useDialogsContext.tsx","app/request/Header.tsx","app/trucks/TrucksCacheContext.tsx","framework/utils/formatCurrency.tsx","framework/utils/date/DefaultDateAndTimeFormat.tsx","framework/utils/date/DefaultDateFormat.tsx","framework/utils/date/formatDateX.tsx","shared/formatTimeModel.tsx","framework/utils/date/formatDate.tsx","app/request/SideBar.tsx","app/request/Page.tsx","app/request/1_load/Load.tsx","shared/icons/DateIcon.tsx","framework/utils/date/mapToIsoOnlyDate.tsx","framework/forms/common/StaticDatePickerPopover.tsx","framework/forms/FormDatePicker.tsx","framework/hooks/useAnchorElement.tsx","framework/forms/FormTimePicker.tsx","shared/icons/DateCircleIcon.tsx","shared/icons/TimeCircleIcon.tsx","app/request/2_loadTime/LoadTime.tsx","app/request/3_cargoMode/CargoMode.tsx","framework/components/NumberFormatX.tsx","app/logo/200.svg","framework/forms/FormNumberField.tsx","framework/utils/matchNullOrEmptyToUndefined.tsx","app/request/4_cargo/Cargo.tsx","shared/icons/TruckCircleIcon.tsx","shared/icons/CheckCircleIcon.tsx","app/request/4_cargo/TruckCard.tsx","app/request/4_cargo/Truck.tsx","framework/forms/utils/setFormValue.tsx","app/request/5_unload/Unload.tsx","shared/icons/PriceCircleIcon.tsx","app/request/6_contact/IncorrectAddressesDialog.tsx","app/request/6_contact/SavedForLaterDialog.tsx","app/request/6_contact/Contact.tsx","app/logo/Logo200.tsx","app/request/7_confirmation/Confirmation.tsx","app/request/Request.tsx","app/request/utils/pathToStep.tsx","app/StartDialog.tsx","app/Start.tsx","app/AppSwitch.tsx","framework/utils/clearCacheAndReloadApplication.tsx","app/MustUpdateWall.tsx","app/AppUpdateWall.tsx","build.tsx","app/loader/Loader.tsx","app/SnackbarWrapper.tsx","framework/context/CacheProvider.tsx","app/trucks/TrucksCacheProvider.tsx","app/App.tsx","reportWebVitals.ts","index.tsx"],"names":["ApiContext","React","createContext","undefined","ApiProvider","children","strings","onRedirect","notify","enqueueSnackbar","useSnackbar","message","type","preventDuplicate","variant","useSnackbarNotify","Provider","value","redirect","LoaderContext","LoaderProvider","loader","useState","loadIds","setLoadIds","showLoader","setShowLoader","isLoading","useMemo","length","useEffect","timer","cancelled","setTimeout","clearTimeout","load","uid","uuid","prev","clear","id","filter","t","count","className","LocalizationProvider","map","context","key","initialState","item","window","localStorage","getItem","JSON","parse","error","console","log","storedValue","setStoredValue","valueToStore","Function","setItem","stringify","removeItem","useLocalStorage","localStorageKey","fallbackValue","language","setLanguage","setStrings","useTrigger","trigger","setTrigger","useCallback","prevValue","DialogsContext","DialogsProvider","hitTrigger","isOpen","setIsOpen","queueRef","useRef","processQueue","current","open","element","reload","push","content","confirm","popped","pop","cancel","isStacked","stackCount","Fragment","languageKey","enFrameworkStrings","error401","error403","error500","errorUnmapped","statusCode","errorUnknown","errorNoNetwork","actions","addWhat","what","toString","toLowerCase","allAfter","allBefore","amount","busyUploadingDocument","changeColumns","changeSettings","clearFilter","close","createNew","day","dayOrDays","days","delete","details","dropDocumentHere","exportAllResultsCountInXlsxFormat","format","exportFilteredResultsCountInFormat","exportVerb","formRequired","field","from","hour","hourOrHours","hours","invalidDateFormat","lastMonth","lastQuarter","lastWeek","lastYear","minute","minuteOrMinutes","minutes","month","monthOrMonths","months","moreInformation","new","next","noAccessToThisFunction","none","notApplicableAbbreviation","previous","releaseLeftMouseButtonToUploadFile","restrictions","searchVerb","second","secondOrSeconds","seconds","select","selectAll","selectAllBelow","selectColumns","selectColumnsToShowBelow","selectFromComputer","selectMinMax","selectNone","selectPriceRange","showLess","start","thisFileExtensionIsNotSupported","thisMonth","thisQuarter","thisWeek","thisYear","to","today","unit","update","uploadADocument","viewMore","week","weekOrWeeks","weeks","year","yearOrYears","years","yesterday","youCanAlsoDragAFileToHere","enStrings","address","areYouSureYouWantToStartOverQuestion","back","backToLotPage","calculateNewTransport","checkAddresses","city","companyName","confirmRequest","contactData","country","date","dateAndTime","description","dimensions","doYouHaveDimensionsQuestion","edit","emailAddress","errorCalculatingPriceCaption","errorCalculatingPriceTitle","euroPallet","euroPallets","extraInfoDescription","firstName","getStarted","heightBracketsCm","info","inVat","lastName","lengthBracketsCm","lengthWidthHeightShort","max","no","noInfoYet","number","optional","pallets","personOnSite","phoneNumber","price","priceCaption","savedForLater","savedForLaterCaption","saveForLater","selectADate","selectedVehicle","selectTypeVehicle","startOver","street","thanksForYourRequest","thanksForYourRequestToEmailCaption","email","time","typeVehicle","unload","until","vatNumber","weigthBracketsKg","welcomeCaption","welcomeText","widthBracketsCm","yes","yourTenderNumberIsWhat","yourTransport","yourTransportWillCostApproximatelyWhat","zip","frFrameworkStrings","frStrings","nlFrameworkStrings","localizationRecord","nl","en","fr","SpecificLocalizationContext","useLocalization","useContext","RecordContext","RecordProvider","timeUnitRecord","Seconds","singular","plural","unknown","Minutes","Hours","Days","Weeks","Months","Years","createTimeUnitRecord","paletteTheme","createTheme","palette","primary","main","contrastText","secondary","success","text","theme","components","MuiLinearProgress","styleOverrides","root","height","backgroundColor","bar","borderRadius","MuiButton","textTransform","padding","sizeMedium","fontSize","lineHeight","fontWeight","sizeSmall","MuiOutlinedInput","input","paddingTop","paddingBottom","typography","fontFamily","h2","letterSpacing","color","h3","h4","subtitle1","subtitle2","body1","button","cursor","StartRoute","RequestRoute","useApiErrorHandling","redirectCallback","onNotifyCallback","matchError","errorToType","needRedirect","status","response","useApi","setLoad","clearLoad","val","apiContext","useApiEffect","f","args","setLoading","clearLoading","handleError","data","setData","loadX","a","name","loadId","r","isFailure","result","DefaultAxiosInstance","config","instance","apiUrl","Axios","create","baseURL","defaults","headers","common","FrameworkDefaultAxiosInstance","json","Try","isSuccess","this","meta_build","url_","replace","options_","method","url","request","then","requestsCommand_setLoad","body","Error","encodeURIComponent","content_","requestsCommand_setLoadTime","requestsCommand_setCargo","requestsCommand_setTruck","requestsCommand_setUnload","requestsCommand_saveForLater","requestsCommand_confirm","requestsQuery_single","trucksQuery_all","trucksQuery_concurrencyToken","LanguageOptions","ErrorTextWithIcon","style","useTheme","marginRight","FormHelperTextX","FormHelperText","marginLeft","whiteSpace","FormErrorHelper","meta","withDate","helperText","showError","touched","initialError","component","indexOf","FormControlX","label","enter","leave","required","rest","FormControl","onMouseEnter","onMouseLeave","marginTop","display","marginBottom","Typography","nameOf","NlCountries","code","FormSelectCountryField","props","useField","helpers","Autocomplete","options","autoHighlight","getOptionLabel","option","renderOption","Box","sx","mr","flexShrink","loading","width","src","srcSet","alt","find","onChange","_","setTouched","setValue","autoSelect","renderInput","params","TextField","inputProps","autoComplete","InputProps","useStateBoolean","initial","ClearEndAdornment","isHovered","disabled","externalClear","defaultValue","InputAdornment","position","Fade","in","onClick","FormTextField","multiline","rows","OutlinedInput","placeholder","endAdornment","makeANumber","isNaN","mapNaNAsZero","Number","handleFormResponse","stepsRecord","setStep","hasError","errors","forEach","setFieldError","property","errorProperties","record","keys","Object","minStep","reduce","acc","findFieldErrorMinStep","e","useFormSubmit","callback","setIsLoading","setInternalLoading","cbSetIsLoading","ArrowLeftIcon","viewBox","SvgIcon","d","fill","BackButton","Button","size","startIcon","LoaderButton","progressSize","CircularProgress","ArrowRightIcon","FormNextSubmitButton","isSubmitting","useFormikContext","endIcon","submitForm","FormGridContainer","Grid","container","direction","justifyContent","alignItems","columnSpacing","IconAndH3","icon","title","InfoCircleIcon","cx","cy","LocationCircleIcon","FormGridItem","xs","sm","useIsMobile","useMediaQuery","breakpoints","down","_extends","assign","bind","target","i","arguments","source","prototype","hasOwnProperty","call","apply","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","Svg130","_ref","svgRef","titleId","xmlns","xmlnsXlink","ref","stroke","fillRule","fillOpacity","strokeWidth","strokeLinecap","strokeLinejoin","strokeOpacity","strokeMiterlimit","transform","ForwardRef","Logo130","FullScreenIfMobileDialog","isMobile","Dialog","fullScreen","DialogContent","maxWidth","RestartDialog","textAlign","useLazyEffect","cb","dep","initializeRef","useDialogsContext","thisPos","setThisPos","setIsStacked","dialog","Header","step","progress","useHistory","margin","Select","SelectDisplayProps","MenuItem","toUpperCase","minWidth","minHeight","LinearProgress","TrucksCacheContext","formatCurrency","maximumFractionDigits","currencyDisplay","formatter","Intl","NumberFormat","currency","DefaultDateAndTimeFormat","DefaultDateFormat","formatDateX","formatDateFns","Date","formatTimeModel","dt","x","formatDate","afterDate","beforeDate","SideBar","onGotoStep","init","fTruck","hasSelectedOrAssignedTruckId","selectedOrAssignedTruckId","hasLoadModel","formattedLoadModel","hasLoadTimeModel","loadTime","hasCargoModel","formattedCargoModel","hasTruckModel","hasUnloadModel","formattedUnloadModel","hasPrice","hasContactModel","formattedContactModel","Page","footer","overflow","overflowY","boxShadow","paddingLeft","paddingRight","EmptyValues","extraInfo","Load","onNext","submit","schema","mustValidateNumber","yup","nullable","defined","createSchema","hasLoadModelFromVavato","handleSubmit","values","validateOnMount","initialValues","loadModel","validationSchema","onSubmit","DateIcon","mapToIsoOnlyDate","isValid","formatISO","representation","StaticDatePickerPopover","anchor","openTo","views","Popover","anchorEl","onClose","anchorOrigin","vertical","horizontal","transformOrigin","keepMounted","StaticDatePicker","displayStaticWrapperAs","inputFormat","FormDatePicker","disableFuture","disablePast","initialValue","setAnchorEl","state","setState","event","currentTarget","useAnchorElement","openSelectDate","closeSelectDate","Boolean","DatePicker","clearable","rProps","onBlur","startAdornment","borderBottomLeftRadius","borderTopLeftRadius","FormTimePicker","TimePicker","newValue","DateCircleIcon","clipPath","TimeCircleIcon","LoadTime","onPrevious","after","before","CargoMode","NumberFormatX","inputRef","other","getInputRef","onValueChange","thousandSeparator","mask","allowedDecimalSeparators","isNumericString","allowNegative","decimalScale","fixedDecimalScale","isAllowed","prefix","suffix","_path","_path2","_path3","_line","_path4","_path5","_path6","_path7","_path8","_path9","_path10","_path11","_path12","_path13","_path14","_path15","_path16","FormNumberField","isFocused","focus","blur","onFocus","inputComponent","heightInCm","lengthInCm","weightInKg","widthInCm","itemToModel","cargoModel","vavatoDescription","Cargo","TruckCircleIcon","CheckCircleIcon","selectedStyle","border","TruckCard","isSelected","tStyle","Card","CardMedia","top","right","base64Image","CardContent","volume","toFixed","countEuroPallets","maxLoad","LabelValue","truckId","pictureAttachmentId","truckModel","Truck","trucks","Inner","spacing","truck","setFieldValue","scrollIntoView","onSelectTruck","Unload","hasUnloadModelFromVavato","unloadModel","PriceCircleIcon","IncorrectAddressesDialog","role","SavedForLaterDialog","Contact","isSavingForLater","hasRateWarnings","onSaveForLater","contactModel","Svg200","x1","y1","x2","y2","Logo200","Confirmation","dangerouslySetInnerHTML","__html","easyTransOrderId","isFromVavato","vavatoUrl","location","href","Request","useParams","useRouteMatch","path","pathname","useLocation","endsWith","pathToStep","hasDimensions","setHasDimensions","isConfirmed","hasCargoModelFromVavato","onCargoMode","exact","render","StartDialog","Start","dummyRecord","AppSwitch","search","clearCacheAndReloadApplication","MustUpdateWall","AppUpdateWall","serverBuild","isOutdated","setIsOutdated","Loader","Backdrop","zIndex","SnackbarWrapper","notistackRef","createRef","maxSnack","action","IconButton","closeSnackbar","getContrastText","CacheProvider","concurrencyF","loadF","concurrencyToken","check","TrucksCacheProvider","App","CssBaseline","ThemeProvider","Consumer","dateAdapter","DateAdapter","locale","frBE","nlBE","reportWebVitals","onPerfEntry","getCLS","getFID","getFCP","getLCP","getTTFB","ReactDOM","StrictMode","document","getElementById"],"mappings":"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","file":"static/js/main.236ee2f1.chunk.js","sourcesContent":["import React from 'react';\r\nimport { IApiErrorStrings } from '../localization/apiErrors/IApiErrorString';\r\nimport { NotificationType } from './NotificationType';\r\n\r\nexport interface IApiContext {\r\n strings: IApiErrorStrings;\r\n notify: (message: string, type: NotificationType) => void;\r\n redirect: () => void;\r\n}\r\n\r\nexport const ApiContext = React.createContext(undefined as any);\r\n","\r\nimport React from 'react';\r\nimport { useSnackbarNotify } from '../hooks/useSnackbarNotify';\r\nimport { ApiContext } from './ApiContext';\r\nimport { IApiErrorStrings } from '../localization/apiErrors/IApiErrorString';\r\n\r\ninterface IProps {\r\n children: any;\r\n strings: IApiErrorStrings;\r\n onRedirect: () => void;\r\n}\r\n\r\nexport const ApiProvider = ({ children, strings, onRedirect }: IProps) => {\r\n const notify = useSnackbarNotify();\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n}","import { useSnackbar, VariantType } from \"notistack\";\r\n\r\nexport function useSnackbarNotify(): (message: string, type?: VariantType) => void {\r\n const { enqueueSnackbar } = useSnackbar();\r\n return (message: string, type?: VariantType) => enqueueSnackbar(message, { preventDuplicate: true, variant: type ?? 'success' });\r\n}","import React from 'react';\r\n\r\nexport interface ILoaderContext {\r\n load: () => string;\r\n clear: (id: string | undefined) => void;\r\n count: number;\r\n}\r\n\r\nexport const LoaderContext = React.createContext(undefined as any);\r\n\r\n\r\n","import React, { useEffect, useMemo, useState } from 'react';\r\nimport { v1 as uuid } from 'uuid';\r\nimport { LoaderContext } from './LoaderContext';\r\n\r\ninterface ILoaderProviderProps {\r\n children: any;\r\n loader: JSX.Element;\r\n}\r\n\r\nexport const LoaderProvider = ({ children, loader }: ILoaderProviderProps) => {\r\n const [loadIds, setLoadIds] = useState([]);\r\n const [showLoader, setShowLoader] = useState(false);\r\n const isLoading = useMemo(() => loadIds.length > 0, [loadIds]);\r\n\r\n useEffect(() => {\r\n let timer: NodeJS.Timeout;\r\n let cancelled = false;\r\n\r\n if (isLoading && cancelled === false) {\r\n timer = setTimeout(() => {\r\n setShowLoader(true);\r\n }, 1000);\r\n }\r\n return () => {\r\n clearTimeout(timer);\r\n cancelled = true;\r\n setShowLoader(false);\r\n }\r\n }, [isLoading]);\r\n\r\n return (\r\n {\r\n const uid = uuid();\r\n // loadIds.current.push(uid);\r\n setLoadIds(prev => [...prev, uid]);\r\n // hitTrigger();\r\n return uid;\r\n },\r\n clear: (id: string | undefined) => {\r\n // loadIds.current = loadIds.current.filter(t => t !== id);\r\n // hitTrigger();\r\n setLoadIds(prev => prev.filter(t => t !== id));\r\n },\r\n count: loadIds.length\r\n }}>\r\n
\r\n {showLoader === true && loader}\r\n {children}\r\n
\r\n \r\n );\r\n}\r\n","import React, { useEffect, useState } from 'react';\r\nimport { IApiErrorStrings } from '../localization/apiErrors/IApiErrorString';\r\nimport { useLocalStorage } from '../hooks/useLocalStorage';\r\n\r\n// documentation: \r\n// https://github.com/stefalda/react-localization#readme\r\n\r\n// export type LanguageOptions = 'en' | 'nl' | 'fr';\r\n\r\nexport interface ILocalizationProps {\r\n strings: TStrings;\r\n setLanguage: (lang: TLanguageOption) => void;\r\n language: TLanguageOption;\r\n}\r\n\r\ninterface IProps {\r\n map: Record;\r\n children: any;\r\n context: React.Context>;\r\n localStorageKey: string;\r\n fallbackValue: TLanguageOption;\r\n}\r\n\r\nexport const LocalizationProvider = ({ children, map, context, localStorageKey, fallbackValue }: IProps) => {\r\n const [language, setLanguage] = useLocalStorage(localStorageKey, fallbackValue);\r\n const [strings, setStrings] = useState(map[language]);\r\n\r\n useEffect(() => {\r\n setStrings(map[language]);\r\n }, [language, map]);\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n}\r\n","import React, { useState } from \"react\";\r\n\r\nexport function useLocalStorage(key: string, intitialState: S | (() => S)): [S, React.Dispatch>];\r\nexport function useLocalStorage(key: string): [S | undefined, React.Dispatch>];\r\n\r\n//Implement the function\r\nexport function useLocalStorage(key: string, initialState?: S | (() => S)): [S, React.Dispatch>] { \r\n // State to store our value\r\n // Pass initial state function to useState so logic is only executed once\r\n const [storedValue, setStoredValue] = useState(() => {\r\n try {\r\n // Get from local storage by key\r\n const item = window.localStorage.getItem(key);\r\n // Parse stored json or if none return initialValue\r\n return item ? JSON.parse(item) : initialState;\r\n // return item ? (typeof item === \"string\" ? item : JSON.parse(item)) : initialState;\r\n } catch (error) {\r\n // If error also return initialValue\r\n console.log(error);\r\n return initialState;\r\n }\r\n });\r\n\r\n // Return a wrapped version of useState's setter function that ...\r\n // ... persists the new value to localStorage.\r\n const setValue = (value: S | ((prevState: S) => S)) => {\r\n try {\r\n // Allow value to be a function so we have same API as useState\r\n const valueToStore = value instanceof Function ? value(storedValue) : value;\r\n // Save state\r\n setStoredValue(valueToStore);\r\n // Save to local storage \r\n if (valueToStore !== undefined && valueToStore !== null) {\r\n window.localStorage.setItem(key, JSON.stringify(valueToStore));\r\n } else {\r\n window.localStorage.removeItem(key);\r\n }\r\n } catch (error) {\r\n // A more advanced implementation would handle the error case\r\n console.log(error);\r\n }\r\n };\r\n\r\n return [storedValue, setValue];\r\n} ","import { useState, useCallback } from 'react';\r\n\r\nexport type Trigger = 0 | 1;\r\n \r\nexport function useTrigger(): [Trigger, () => void] {\r\n const [trigger, setTrigger] = useState(0);\r\n return [trigger, useCallback(() => setTrigger(prevValue => prevValue === 0 ? 1 : 0), [])];\r\n}","import { Trigger } from 'framework/hooks/useTrigger';\r\nimport React from 'react';\r\n\r\ninterface IContext {\r\n isOpen: boolean;\r\n open: (element: JSX.Element, reload?: () => void) => void;\r\n confirm: () => void;\r\n cancel: () => void;\r\n trigger: Trigger;\r\n isStacked: boolean;\r\n stackCount: number;\r\n}\r\n\r\nexport const DialogsContext = React.createContext(undefined as any);\r\n","import { useTrigger } from 'framework/hooks/useTrigger';\r\nimport React, { useState } from 'react';\r\nimport { v1 as uuid } from 'uuid';\r\nimport { DialogsContext } from './DialogsContext';\r\n\r\ninterface IDialog {\r\n uid: string;\r\n content: JSX.Element;\r\n reload?: () => void;\r\n}\r\n\r\nexport const DialogsProvider = ({ children }: any) => {\r\n const [trigger, hitTrigger] = useTrigger();\r\n const [isOpen, setIsOpen] = useState(false);\r\n const queueRef = React.useRef([]);\r\n\r\n const onOpen = (element: JSX.Element, reload?: () => void) => {\r\n const uid = uuid();\r\n queueRef.current.push({ uid: uid, content: element, reload: reload });\r\n processQueue();\r\n }\r\n\r\n const processQueue = () => {\r\n hitTrigger(); // needs to do this in order to rerender!\r\n if (queueRef.current.length > 0) {\r\n setIsOpen(true);\r\n } else {\r\n setIsOpen(false);\r\n }\r\n }\r\n\r\n const onConfirm = () => {\r\n const popped = queueRef.current.pop();\r\n if (popped && popped.reload) {\r\n popped.reload();\r\n }\r\n processQueue();\r\n }\r\n\r\n const onCancel = () => {\r\n queueRef.current.pop();\r\n processQueue();\r\n }\r\n\r\n return (\r\n 0,\r\n open: onOpen,\r\n trigger: trigger,\r\n confirm: onConfirm,\r\n cancel: onCancel,\r\n isStacked: queueRef.current.length > 1,\r\n stackCount: queueRef.current.length,\r\n }}>\r\n <>\r\n {isOpen && queueRef.current.length > 0 && queueRef.current.map(t =>\r\n \r\n {t.content}\r\n )}\r\n {children}\r\n \r\n \r\n );\r\n};\r\n","export const languageKey = 'topspeed-calculator-language-key';\r\nexport const languageHeaderKey = 'x-language';\r\nexport const ReturnUrlPrefix = '?returnUrl=';\r\nexport const apiUrl = process.env.NODE_ENV === `development` ? 'https://localhost:44328' : ''; //will be served from same domain!\r\n","import { enApiErrorStrings } from 'framework/localization/apiErrors/enApiErrorStrings';\r\nimport { IFrameworkStrings } from './IFrameworkStrings';\r\n\r\nexport const enFrameworkStrings: IFrameworkStrings = {\r\n ...enApiErrorStrings,\r\n actions: `Actions`,\r\n addWhat: (what: string | number) => `Add ${what.toString().toLowerCase()}`,\r\n allAfter: `All after`,\r\n allBefore: `All before`,\r\n amount: `Amount`,\r\n busyUploadingDocument: `Busy uploading document`,\r\n cancel: `Cancel`,\r\n changeColumns: `Change columns`,\r\n changeSettings: `Change settings`,\r\n clearFilter: `Clear filter`,\r\n close: `Close`,\r\n createNew: `Create new`,\r\n day: `Day`,\r\n dayOrDays: `Day(s)`,\r\n days: `Days`,\r\n delete: `Delete`,\r\n details: `Details`,\r\n dropDocumentHere: `Drop document here`,\r\n exportAllResultsCountInXlsxFormat: (count: string | number, format: string | number) => `Export all results (${count.toString().toLowerCase()}) in ${format.toString().toLowerCase()} format`,\r\n exportFilteredResultsCountInFormat: (count: string | number, format: string | number) => `Export ${count.toString().toLowerCase()} filtered results in ${format.toString().toLowerCase()} format`,\r\n exportVerb: `Export`,\r\n filter: `Filter`,\r\n formRequired: (field: string | number) => `${field} is a required field`,\r\n from: `From`,\r\n hour: `Hour`,\r\n hourOrHours: `Hour(s)`,\r\n hours: `Hours`,\r\n invalidDateFormat: `Invalid date format`,\r\n lastMonth: `Last month`,\r\n lastQuarter: `Last quarter`,\r\n lastWeek: `Last week`,\r\n lastYear: `Last year`,\r\n minute: `Minute`,\r\n minuteOrMinutes: `Minute(s)`,\r\n minutes: `Minutes`,\r\n month: `Month`,\r\n monthOrMonths: `Month(s)`,\r\n months: `Months`,\r\n moreInformation: `More information`,\r\n new: `New`,\r\n next: `Next`,\r\n noAccessToThisFunction: `You have insufficient rights to execute this function`,\r\n none: `None`,\r\n notApplicableAbbreviation: `n/a`,\r\n previous: `Previous`,\r\n releaseLeftMouseButtonToUploadFile: `Release left mouse button to upload file`,\r\n reload: `Reload`,\r\n restrictions: `Restrictions`,\r\n searchVerb: `Search`,\r\n second: `Second`,\r\n secondOrSeconds: `Second(s)`,\r\n seconds: `Seconds`,\r\n select: `Select`,\r\n selectAll: `Select all`,\r\n selectAllBelow: `Select all below`,\r\n selectColumns: `Select columns`,\r\n selectColumnsToShowBelow: `Select showable columns below`,\r\n selectFromComputer: `Select from computer`,\r\n selectMinMax: `Select min/max`,\r\n selectNone: `Select none`,\r\n selectPriceRange: `Select a price range between min/max`,\r\n showLess: `Show less`,\r\n start: `Start`,\r\n thisFileExtensionIsNotSupported: `This file extension is not supported`,\r\n thisMonth: `This month`,\r\n thisQuarter: `This quarter`,\r\n thisWeek: `This week`,\r\n thisYear: `This year`,\r\n to: `To`,\r\n today: `Today`,\r\n unit: `Unit`,\r\n update: `Update`,\r\n uploadADocument: `Upload a document`,\r\n viewMore: `View more`,\r\n week: `Week`,\r\n weekOrWeeks: `Week(s)`,\r\n weeks: `Weeks`,\r\n year: `Year`,\r\n yearOrYears: `Year(s)`,\r\n years: `Years`,\r\n yesterday: `Yesterday`,\r\n youCanAlsoDragAFileToHere: `You can also drag a file here`,\r\n}\r\n","import { IApiErrorStrings } from \"./IApiErrorString\";\r\n\r\nexport const enApiErrorStrings: IApiErrorStrings = {\r\n error401: 'You are not (correctly) logged in, please log in and try again.\\n[Status code 401]',\r\n error403: 'You are not authorized to perform this operation.\\n[Status code 403]',\r\n error500: 'An unknown error has occurred.\\nPlease try again!\\n[Status code 500]',\r\n errorUnmapped: (statusCode: string) => `An unknown error has occurred.\\nPlease try again!\\n[Status code ${statusCode}]`,\r\n errorUnknown: 'An unknown error has occurred.\\nPlease try again!',\r\n errorNoNetwork: 'No connection to the server could be established.\\nCheck your network connection.',\r\n}","import { enFrameworkStrings } from 'framework/localization/enFrameworkStrings';\r\nimport { IStrings } from './IStrings';\r\n\r\nexport const enStrings: IStrings = {\r\n ...enFrameworkStrings,\r\n address: `Address`,\r\n areYouSureYouWantToStartOverQuestion: `Are you sure you want to start again?`,\r\n back: `Back`,\r\n backToLotPage: `Back to auction`,\r\n calculateNewTransport: `Calculate a new transport`,\r\n checkAddresses: `Check addresses`,\r\n city: `Township`,\r\n companyName: `Company Name`,\r\n confirmRequest: `Confirm request`,\r\n contactData: `Contact details`,\r\n content: `Contents`,\r\n country: `Country`,\r\n date: `Date`,\r\n dateAndTime: `Date Time`,\r\n description: `Description`,\r\n dimensions: `Dimensions`,\r\n doYouHaveDimensionsQuestion: `Do you have dimensions to transport well?`,\r\n edit: `To adjust`,\r\n emailAddress: `E-mail address`,\r\n errorCalculatingPriceCaption: `It is not possible to calculate the price for your transport.\\nCheck if the load and unload address are correctly registered.`,\r\n errorCalculatingPriceTitle: `Calculate error Price`,\r\n euroPallet: `Europallet`,\r\n euroPallets: `Europallets`,\r\n extraInfoDescription: `Extra info (bus number, floor, ...)`,\r\n firstName: `First Name`,\r\n from: `By`,\r\n getStarted: `Go starts`,\r\n heightBracketsCm: `Height (cm)`,\r\n info: `Info`,\r\n inVat: `in. VAT`,\r\n lastName: `Last name`,\r\n lengthBracketsCm: `Length (cm)`,\r\n lengthWidthHeightShort: `L x W x H`,\r\n load: `Load`,\r\n max: `Max`,\r\n next: `Further`,\r\n no: `new`,\r\n noInfoYet: `There is no info yet`,\r\n number: `Number`,\r\n optional: `Optional`,\r\n pallets: `Pallets`,\r\n personOnSite: `Name of Person on the spot`,\r\n phoneNumber: `phone number`,\r\n price: `Price`,\r\n priceCaption: `This is just an indicative price!\\nFill your contact details at the bottomand we will contact you.`,\r\n savedForLater: `Saved for later!`,\r\n savedForLaterCaption: `We sent you an e-mail with a link to return to this page.`,\r\n saveForLater: `Save for later`,\r\n selectADate: `Select a date`,\r\n selectedVehicle: `Selected vehicle`,\r\n selectTypeVehicle: `Select a type of vehicle`,\r\n startOver: `Start over`,\r\n street: `Street`,\r\n thanksForYourRequest: `Thank you, we have received your request well!`,\r\n thanksForYourRequestToEmailCaption: (email: string | number) => `We sent your request to ${email}.\\nContact us via info@top-speed.be if you want to continue this application.`,\r\n time: `Time`,\r\n typeVehicle: `Vehicle type`,\r\n unload: `Unload`,\r\n until: `Until`,\r\n vatNumber: `VAT number`,\r\n weigthBracketsKg: `Weight (kg)`,\r\n welcomeCaption: `Calculate the price of your transport with our calculator quickly. Please note: this price is indicative and not binding. Once you have completed and sent all information, we will contact us as soon as possible.`,\r\n welcomeText: `Welcome to the Calculator of Top Speed!`,\r\n widthBracketsCm: `Width (cm)`,\r\n yes: `Yes`,\r\n yourTenderNumberIsWhat: (what: string | number) => `Your quotation summer is ${what.toString().toLowerCase()}`,\r\n yourTransport: `Your transportation`,\r\n yourTransportWillCostApproximatelyWhat: (what: string | number) => `Your transport will cost around ${what.toString().toLowerCase()} (in. VAT).`,\r\n zip: `Postal Code`,\r\n}\r\n","import { frApiErrorStrings } from './apiErrors/frApiErrorStrings';\r\nimport { IFrameworkStrings } from './IFrameworkStrings';\r\n\r\nexport const frFrameworkStrings: IFrameworkStrings = {\r\n ...frApiErrorStrings,\r\n actions: `Actions`,\r\n addWhat: (what: string | number) => `Ajouter ${what.toString().toLowerCase()}`,\r\n allAfter: `Tout après`,\r\n allBefore: `Tout avant`,\r\n amount: `Nombre`,\r\n busyUploadingDocument: `Document en cours de téléchargement`,\r\n cancel: `Annuler`,\r\n changeColumns: `Changer colonnes`,\r\n changeSettings: `Changer paramètres`,\r\n clearFilter: `Supprimer filtre`,\r\n close: `Fermer`,\r\n createNew: `Créer nouveau`,\r\n day: `Jour`,\r\n dayOrDays: `Jour(s)`,\r\n days: `Jours`,\r\n delete: `Supprimer`,\r\n details: `Détails`,\r\n dropDocumentHere: `Déposer document ici`,\r\n exportAllResultsCountInXlsxFormat: (count: string | number, format: string | number) => `Exporter tous les résultats (${count.toString().toLowerCase()}) en format ${format.toString().toLowerCase()}`,\r\n exportFilteredResultsCountInFormat: (count: string | number, format: string | number) => `Exporter ${count.toString().toLowerCase()} résultats filtrés en format ${format.toString().toLowerCase()}`,\r\n exportVerb: `Exporter`,\r\n filter: `Filtre`,\r\n formRequired: (field: string | number) => `${field} est un champ obligatoire`,\r\n from: `De`,\r\n hour: `Heure`,\r\n hourOrHours: `Heure(s)`,\r\n hours: `Heures`,\r\n invalidDateFormat: `Format de date incorrect`,\r\n lastMonth: `Le mois dernier`,\r\n lastQuarter: `Dernier trimestre`,\r\n lastWeek: `Semaine dernière`,\r\n lastYear: `Année dernière`,\r\n minute: `Minute`,\r\n minuteOrMinutes: `Minute(s)`,\r\n minutes: `Minutes`,\r\n month: `Mois`,\r\n monthOrMonths: `Mois`,\r\n months: `Mois`,\r\n moreInformation: `Plus d'information`,\r\n new: `Nouveau`,\r\n next: `Suivant`,\r\n noAccessToThisFunction: `Vous n'avez pas les droits suffisants pour exécuter cette fonction`,\r\n none: `Aucun`,\r\n notApplicableAbbreviation: `n/a`,\r\n previous: `Précédent`,\r\n releaseLeftMouseButtonToUploadFile: `Relâchez le bouton gauche de la souris pour télécharger le fichier`,\r\n reload: `Recharger`,\r\n restrictions: `Restrictions`,\r\n searchVerb: `Rechercher`,\r\n second: `Seconde`,\r\n secondOrSeconds: `Seconde(s)`,\r\n seconds: `Secondes`,\r\n select: `Sélectionner`,\r\n selectAll: `Sélectionner tout`,\r\n selectAllBelow: `Sélectionner tout ci-dessous`,\r\n selectColumns: `Sélectionner colonnes`,\r\n selectColumnsToShowBelow: `Sélectionner les colonnes à afficher ci-dessous`,\r\n selectFromComputer: `Sélectionner à partir de l'ordinateur`,\r\n selectMinMax: `Sélectionner min/max`,\r\n selectNone: `Ne sélectionner rien`,\r\n selectPriceRange: `Sélectionnez un prix entre min/max`,\r\n showLess: `Afficher moins`,\r\n start: `Début`,\r\n thisFileExtensionIsNotSupported: `Ce format de fichier n'est pas pris en charge`,\r\n thisMonth: `Ce mois-ci`,\r\n thisQuarter: `Ce trimestre`,\r\n thisWeek: `Cette semaine`,\r\n thisYear: `Cette année`,\r\n to: `Jusqu'à`,\r\n today: `Aujourd'hui`,\r\n unit: `Unité`,\r\n update: `Mettre à jour`,\r\n uploadADocument: `Télécharger un document`,\r\n viewMore: `Voir plus`,\r\n week: `Semaine`,\r\n weekOrWeeks: `Semaine(s)`,\r\n weeks: `Semaines`,\r\n year: `Année`,\r\n yearOrYears: `Année(s)`,\r\n years: `Années`,\r\n yesterday: `Hier`,\r\n youCanAlsoDragAFileToHere: `Vous pouvez également faire glisser un fichier ici`,\r\n}\r\n","import { IApiErrorStrings } from \"./IApiErrorString\";\r\n\r\nexport const frApiErrorStrings: IApiErrorStrings = {\r\n error401: `Vous n'êtes pas (correctement) connecté, veuillez vous connecter et réessayer.\\n[Code d'état 401]`,\r\n error403: `Vous n'êtes pas autorisé à effectuer cette opération.\\n[Code d'état 403]`,\r\n error500: `Une erreur inconnue s'est produite.\\nVeuillez réessayer!\\n[Code d'état 500]`,\r\n errorUnmapped: (statusCode: string) => `Une erreur inconnue s'est produite.\\nVeuillez réessayer!\\n[Code d'état ${statusCode}]`,\r\n errorUnknown: `Une erreur inconnue s'est produite.\\nVeuillez réessayer!`,\r\n errorNoNetwork: `Aucune connexion au serveur n'a pu être établie.\\nVérifiez votre connexion réseau.`,\r\n}","import { frFrameworkStrings } from 'framework/localization/frFrameworkStrings';\r\nimport { IStrings } from './IStrings';\r\n\r\nexport const frStrings: IStrings = {\r\n ...frFrameworkStrings,\r\n address: `Adresse`,\r\n areYouSureYouWantToStartOverQuestion: `Êtes-vous sûr de vouloir recommencer?`,\r\n back: `Arrière`,\r\n backToLotPage: `Retour aux enchères`,\r\n calculateNewTransport: `Calculer un nouveau transport`,\r\n checkAddresses: `Vérifiez les adresses`,\r\n city: `commune`,\r\n companyName: `Nom de la compagnie`,\r\n confirmRequest: `Confirmer la requête`,\r\n contactData: `Détails du contact`,\r\n content: `Contenu`,\r\n country: `Pays`,\r\n date: `Date`,\r\n dateAndTime: `Heure`,\r\n description: `description`,\r\n dimensions: `Dimensions`,\r\n doYouHaveDimensionsQuestion: `Avez-vous des dimensions pour bien transporter?`,\r\n edit: `Ajuster`,\r\n emailAddress: `Adresse e-mail`,\r\n errorCalculatingPriceCaption: `Il n'est pas possible de calculer le prix de votre transport.\\nControllez si l'adresse de chargement et de fermeture est correctement enregistrée.`,\r\n errorCalculatingPriceTitle: `Calculer le prix d'erreur`,\r\n euroPallet: `Euro`,\r\n euroPallets: `Euro-opérations`,\r\n extraInfoDescription: `Info supplémentaire (numéro de bus, étage, ...)`,\r\n firstName: `Prénom`,\r\n from: `Par`,\r\n getStarted: `Aller commence`,\r\n heightBracketsCm: `Hauteur (cm)`,\r\n info: `Info`,\r\n inVat: `TVA incl.`,\r\n lastName: `nom de famille`,\r\n lengthBracketsCm: `Longueur (cm)`,\r\n lengthWidthHeightShort: `L x w x h`,\r\n load: `Charge`,\r\n max: `Max`,\r\n next: `Plus loin`,\r\n no: `non`,\r\n noInfoYet: `Il n'y a pas encore d'informations`,\r\n number: `Nombre`,\r\n optional: `Optionnel`,\r\n pallets: `Palettes`,\r\n personOnSite: `Nom de la personne sur place`,\r\n phoneNumber: `numéro de téléphone`,\r\n price: `Prix`,\r\n priceCaption: `Ceci est juste un prix indicatif!\\nRemplis au bas de vos coordonnées et nous vous contacterons.`,\r\n savedForLater: `Gardé pour plus tard!`,\r\n savedForLaterCaption: `Nous vous avons envoyé un e-mail avec un lien pour revenir à cette page.`,\r\n saveForLater: `Garder pour plus tard`,\r\n selectADate: `Sélectionnez une date`,\r\n selectedVehicle: `Véhicule sélectionné`,\r\n selectTypeVehicle: `Sélectionnez un type de véhicule`,\r\n startOver: `Recommencer`,\r\n street: `Rue`,\r\n thanksForYourRequest: `Merci, nous avons bien reçu votre demande!`,\r\n thanksForYourRequestToEmailCaption: (email: string | number) => `Nous avons envoyé votre demande à ${email}.\\nContactez nous via info@top-speed.be si vous souhaitez continuer cette application.`,\r\n time: `Temps`,\r\n typeVehicle: `Type de véhicule`,\r\n unload: `Décharger`,\r\n until: `Jusqu'à`,\r\n vatNumber: `numéro de TVA`,\r\n weigthBracketsKg: `poids (kg)`,\r\n welcomeCaption: `Calculez le prix de votre transport avec notre calculatrice rapidement. Veuillez noter que ce prix est indicatif et non contraignant. Une fois que vous avez terminé et envoyé toutes les informations, nous nous contacterons dès que possible.`,\r\n welcomeText: `Bienvenue dans la calculatrice de la vitesse maximale!`,\r\n widthBracketsCm: `Largeur (cm)`,\r\n yes: `Oui`,\r\n yourTenderNumberIsWhat: (what: string | number) => `Votre citation été est ${what.toString().toLowerCase()}`,\r\n yourTransport: `Votre transport`,\r\n yourTransportWillCostApproximatelyWhat: (what: string | number) => `Votre transport coûtera environ ${what.toString().toLowerCase()} (TVA incl.).`,\r\n zip: `Code postal`,\r\n}\r\n","import { nlApiErrorStrings } from './apiErrors/nlApiErrorStrings';\r\nimport { IFrameworkStrings } from './IFrameworkStrings';\r\n\r\nexport const nlFrameworkStrings: IFrameworkStrings = {\r\n ...nlApiErrorStrings,\r\n actions: `Acties`,\r\n addWhat: (what: string | number) => `${what} toevoegen`,\r\n allAfter: `Alles ná`,\r\n allBefore: `Alles vóór`,\r\n amount: `Aantal`,\r\n busyUploadingDocument: `Bezig met document opladen`,\r\n cancel: `Annuleer`,\r\n changeColumns: `Wijzig kolommen`,\r\n changeSettings: `Wijzig instellingen`,\r\n clearFilter: `Verwijder filter`,\r\n close: `Sluiten`,\r\n createNew: `Creëer nieuw`,\r\n day: `Dag`,\r\n dayOrDays: `Dag(en)`,\r\n days: `Dagen`,\r\n delete: `Verwijder`,\r\n details: `Details`,\r\n dropDocumentHere: `Los document hier`,\r\n exportAllResultsCountInXlsxFormat: (count: string | number, format: string | number) => `Exporteer alle resultaten (${count.toString().toLowerCase()}) in ${format.toString().toLowerCase()} formaat`,\r\n exportFilteredResultsCountInFormat: (count: string | number, format: string | number) => `Exporteer ${count.toString().toLowerCase()} gefilterde resultaten in ${format.toString().toLowerCase()} formaat`,\r\n exportVerb: `Exporteer`,\r\n filter: `Filter`,\r\n formRequired: (field: string | number) => `${field} is een verplicht veld`,\r\n from: `Van`,\r\n hour: `Uur`,\r\n hourOrHours: `U(u)r(en)`,\r\n hours: `Uren`,\r\n invalidDateFormat: `Incorrect datum formaat`,\r\n lastMonth: `Vorige maand`,\r\n lastQuarter: `Laatste kwartaal`,\r\n lastWeek: `Vorige week`,\r\n lastYear: `Vorig jaar`,\r\n minute: `Minuut`,\r\n minuteOrMinutes: `Minu(u)t(en)`,\r\n minutes: `Minuten`,\r\n month: `Maand`,\r\n monthOrMonths: `Maand(en)`,\r\n months: `Maanden`,\r\n moreInformation: `Meer informatie`,\r\n new: `Nieuw`,\r\n next: `Volgende`,\r\n noAccessToThisFunction: `Je hebt onvoldoende rechten om deze functie uit te voeren`,\r\n none: `Geen`,\r\n notApplicableAbbreviation: `nvt`,\r\n previous: `Vorige`,\r\n releaseLeftMouseButtonToUploadFile: `Los linkermuisknop om bestand up te loaden`,\r\n reload: `Herlaad`,\r\n restrictions: `Restricties`,\r\n searchVerb: `Zoeken`,\r\n second: `Seconde`,\r\n secondOrSeconds: `Second(en)`,\r\n seconds: `Seconden`,\r\n select: `Selecteer`,\r\n selectAll: `Selecteer alles`,\r\n selectAllBelow: `Selecteer alles hieronder`,\r\n selectColumns: `Selecteer kolommen`,\r\n selectColumnsToShowBelow: `Selecteer de te tonen kolommen hieronder`,\r\n selectFromComputer: `Selecteer van computer`,\r\n selectMinMax: `Selecteer min/max`,\r\n selectNone: `Selecteer niets`,\r\n selectPriceRange: `Selecteer prijs tussen min/max`,\r\n showLess: `Toon minder`,\r\n start: `Start`,\r\n thisFileExtensionIsNotSupported: `Dit bestandsformaat wordt niet ondersteund`,\r\n thisMonth: `Deze maand`,\r\n thisQuarter: `Dit kwartaal`,\r\n thisWeek: `Deze week`,\r\n thisYear: `Dit jaar`,\r\n to: `Tot`,\r\n today: `Vandaag`,\r\n unit: `Eenheid`,\r\n update: `Update`,\r\n uploadADocument: `Upload een document`,\r\n viewMore: `Bekijk meer`,\r\n week: `Week`,\r\n weekOrWeeks: `We(e)k(en)`,\r\n weeks: `Weken`,\r\n year: `Jaar`,\r\n yearOrYears: `Ja(a)r(en)`,\r\n years: `Jaren`,\r\n yesterday: `Gisteren`,\r\n youCanAlsoDragAFileToHere: `Je kan ook een bestand hierheen slepen`,\r\n}\r\n","import { IApiErrorStrings } from \"./IApiErrorString\";\r\n\r\nexport const nlApiErrorStrings: IApiErrorStrings = {\r\n error401: 'Je bent niet (correct) aangemeld, gelieve in te loggen en probeer opnieuw.\\n[Status code 401]',\r\n error403: 'Je bent niet gemachtigd om deze operatie uit te voeren.\\n[Status code 403]',\r\n error500: 'Een ongekende fout is opgetreden.\\nProbeer opnieuw!\\n[Status code 500]',\r\n errorUnmapped: (statusCode: string) => `Een ongekende fout is opgetreden.\\nProbeer opnieuw!\\n[Status code ${statusCode}]`,\r\n errorUnknown: 'Een ongekende fout is opgetreden.\\nProbeer opnieuw!',\r\n errorNoNetwork: 'Geen verbinding met de server.\\nControleer je netwerkverbinding.',\r\n}","import { enStrings } from \"./enStrings\";\r\nimport { frStrings } from \"./frStrings\";\r\nimport { IStrings } from \"./IStrings\";\r\nimport { nlStrings } from \"./nlStrings\";\r\nimport { LanguageOption } from \"gen/ApiClient\";\r\n\r\nexport const localizationRecord: Record = {\r\n nl: nlStrings,\r\n en: enStrings,\r\n fr: frStrings,\r\n}\r\n\r\n","import { nlFrameworkStrings } from 'framework/localization/nlFrameworkStrings';\r\nimport { IStrings } from './IStrings';\r\n\r\nexport const nlStrings: IStrings = {\r\n ...nlFrameworkStrings,\r\n address: `Adres`,\r\n areYouSureYouWantToStartOverQuestion: `Ben je zeker dat je opnieuw wilt beginnen?`,\r\n back: `Terug`,\r\n backToLotPage: `Terug naar lot pagina`,\r\n calculateNewTransport: `Bereken een nieuw transport`,\r\n checkAddresses: `Controleer adressen`,\r\n city: `Gemeente`,\r\n companyName: `Bedrijfsnaam`,\r\n confirmRequest: `Bevestig aanvraag`,\r\n contactData: `Contactgegevens`,\r\n content: `Inhoud`,\r\n country: `Land`,\r\n date: `Datum`,\r\n dateAndTime: `Datum & Tijd`,\r\n description: `Omschrijving`,\r\n dimensions: `Afmetingen`,\r\n doYouHaveDimensionsQuestion: `Heb je afmetingen van het te vervoeren goed?`,\r\n edit: `Aanpassen`,\r\n emailAddress: `E-mailadres`,\r\n errorCalculatingPriceCaption: `Het is niet mogelijk de prijs voor je transport te berekenen.\\nControleer of het laad- en losadres correct is geregistreerd.`,\r\n errorCalculatingPriceTitle: `Fout berekenen prijs`,\r\n euroPallet: `Europallet`,\r\n euroPallets: `Europallets`,\r\n extraInfoDescription: `Extra info (busnummer, verdieping, …)`,\r\n firstName: `Voornaam`,\r\n from: `Van`,\r\n getStarted: `Ga van start`,\r\n heightBracketsCm: `Hoogte (cm)`,\r\n info: `Info`,\r\n inVat: `incl. BTW`,\r\n lastName: `Achternaam`,\r\n lengthBracketsCm: `Lengte (cm)`,\r\n lengthWidthHeightShort: `L X B X H`,\r\n load: `Laden`,\r\n max: `Max`,\r\n next: `Verder`,\r\n no: `Nee`,\r\n noInfoYet: `Er is nog geen info`,\r\n number: `Nummer`,\r\n optional: `Optioneel`,\r\n pallets: `Pallets`,\r\n personOnSite: `Naam van persoon ter plaatse`,\r\n phoneNumber: `Telefoonnummer`,\r\n price: `Prijs`,\r\n priceCaption: `Dit is slechts een indicatieve prijs!\\nVul onderaan je contactgegevens in en we nemen asap contact met je op.`,\r\n savedForLater: `Bewaard voor later!`,\r\n savedForLaterCaption: `We hebben je een e-mail gestuurd met daarin een link om terug te keren naar deze pagina.`,\r\n saveForLater: `Bewaar voor later`,\r\n selectADate: `Selecteer een datum`,\r\n selectedVehicle: `Geselecteerd voertuig`,\r\n selectTypeVehicle: `Selecteer een type voertuig`,\r\n startOver: `Opnieuw beginnen`,\r\n street: `Straat`,\r\n thanksForYourRequest: `Bedankt, we hebben jouw aanvraag goed ontvangen!`,\r\n thanksForYourRequestToEmailCaption: (email: string | number) => `We hebben jouw aanvraag naar ${email} gestuurd.\\nContacteer ons via info@top-speed.be als je verder wilt gaan met deze aanvraag.`,\r\n time: `Tijd`,\r\n typeVehicle: `Type voertuig`,\r\n unload: `Lossen`,\r\n until: `Tot`,\r\n vatNumber: `BTW-nummer`,\r\n weigthBracketsKg: `Gewicht (kg)`,\r\n welcomeCaption: `Bereken snel de prijs van je transport met onze calculator. Let op: deze prijs is indicatief en niet bindend. Eens je alle info hebt ingevuld en verzonden, nemen we zo snel mogelijk contact op.`,\r\n welcomeText: `Welkom op de calculator van Top-Speed!`,\r\n widthBracketsCm: `Breedte (cm)`,\r\n yes: `Ja`,\r\n yourTenderNumberIsWhat: (what: string | number) => `Jouw offertenummer is ${what.toString().toLowerCase()}`,\r\n yourTransport: `Jouw transport`,\r\n yourTransportWillCostApproximatelyWhat: (what: string | number) => `Je transport zal rond de ${what.toString().toLowerCase()} (incl. BTW) kosten.`,\r\n zip: `Postcode`,\r\n}\r\n","import React from 'react';\r\nimport { ILocalizationProps } from 'framework/context/LocalizationProvider';\r\nimport { IStrings } from './IStrings';\r\nimport { LanguageOption } from 'gen/ApiClient';\r\n\r\nexport const SpecificLocalizationContext = React.createContext>(undefined as any);","import { IStrings } from \"./IStrings\";\r\nimport { useContext } from \"react\";\r\nimport { SpecificLocalizationContext } from \"./SpecificLocalizationContext\";\r\n\r\nexport function useLocalization(): IStrings {\r\n return useContext(SpecificLocalizationContext).strings;\r\n}","import { IFrameworkStrings } from \"framework/localization/IFrameworkStrings\"\r\nimport { TimeUnit } from \"framework/forms/TimeUnit\"\r\nimport { ITimeUnitTranslation } from \"../timeUnit/ITimeUnitTranslation\"\r\n\r\nexport const createTimeUnitRecord = (strings: IFrameworkStrings): Record => {\r\n return {\r\n Seconds: { singular: strings.second, plural: strings.seconds, unknown: strings.secondOrSeconds },\r\n Minutes: { singular: strings.minute, plural: strings.minutes, unknown: strings.minuteOrMinutes },\r\n Hours: { singular: strings.hour, plural: strings.hours, unknown: strings.hourOrHours },\r\n Days: { singular: strings.day, plural: strings.days, unknown: strings.dayOrDays },\r\n Weeks: { singular: strings.week, plural: strings.weeks, unknown: strings.weekOrWeeks },\r\n Months: { singular: strings.month, plural: strings.months, unknown: strings.monthOrMonths },\r\n Years: { singular: strings.year, plural: strings.years, unknown: strings.yearOrYears },\r\n }\r\n}","import React from 'react';\r\nimport { TimeUnit } from 'framework/forms/TimeUnit';\r\nimport { ITimeUnitTranslation } from '../timeUnit/ITimeUnitTranslation';\r\n\r\ninterface IRecordContext {\r\n timeUnitRecord: Record;\r\n}\r\n\r\nexport const RecordContext = React.createContext(undefined as any);\r\n","import React, { useMemo } from 'react';\r\nimport { useLocalization } from 'localization/useLocalization';\r\nimport { createTimeUnitRecord } from './createTimeUnitRecord';\r\nimport { RecordContext } from './RecordContext';\r\n\r\nexport const RecordProvider = ({ children }: any) => {\r\n const strings = useLocalization();\r\n const timeUnitRecord = useMemo(() => createTimeUnitRecord(strings), [strings]);\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n","import { createTheme, Theme } from \"@mui/material\";\r\n\r\nconst paletteTheme = createTheme({\r\n palette: {\r\n primary: {\r\n main: '#0C186C',\r\n contrastText: '#fff',\r\n }, \r\n secondary: {\r\n main: '#D12000',\r\n contrastText: '#FFFFFF'\r\n },\r\n info: {\r\n main: '#EAEAEA'\r\n },\r\n error: {\r\n main: '#F22525',\r\n }, \r\n success: {\r\n main: '#00D181'\r\n },\r\n text: {\r\n primary: '#353535',\r\n secondary: '#9A9A9A',\r\n },\r\n },\r\n})\r\n\r\nexport const theme: Theme = createTheme(paletteTheme, {\r\n components: {\r\n MuiLinearProgress: {\r\n styleOverrides: {\r\n root: {\r\n height: 8,\r\n backgroundColor: 'rgba(0, 209, 129, 0.15)'\r\n }, \r\n bar: {\r\n borderRadius: '0px 100px 100px 0px',\r\n }\r\n },\r\n },\r\n MuiButton: {\r\n styleOverrides: {\r\n root: {\r\n textTransform: 'none',\r\n padding: 16,\r\n }, \r\n sizeMedium: {\r\n fontSize: '18px',\r\n lineHeight: '18px',\r\n fontWeight: 700,\r\n\r\n }, \r\n sizeSmall: {\r\n fontSize: '16px',\r\n lineHeight: '100%',\r\n fontWeight: 300,\r\n }\r\n }\r\n },\r\n MuiOutlinedInput: {\r\n styleOverrides: {\r\n root: {\r\n // height: '48px',\r\n }, \r\n input: {\r\n paddingTop: '12.5px',\r\n paddingBottom: '12.5px'\r\n }\r\n }\r\n },\r\n },\r\n typography: {\r\n fontFamily: \"'Hind', sans-serif\",\r\n h2: {\r\n fontFamily: \"'Hind', sans-serif\",\r\n fontWeight: 700,\r\n fontSize: '28px',\r\n lineHeight: '28px',\r\n letterSpacing: 0,\r\n color: paletteTheme.palette.primary.main,\r\n },\r\n h3: { \r\n fontFamily: \"'Hind', sans-serif\",\r\n fontWeight: 700,\r\n fontSize: '22px',\r\n lineHeight: '22px',\r\n letterSpacing: 0,\r\n color: paletteTheme.palette.primary.main,\r\n },\r\n h4: {\r\n fontFamily: \"'Hind', sans-serif\",\r\n fontWeight: 700,\r\n fontSize: '18px',\r\n lineHeight: '100%',\r\n letterSpacing: 0,\r\n color: paletteTheme.palette.primary.main,\r\n },\r\n subtitle1: {\r\n fontFamily: \"'Hind', sans-serif\",\r\n fontWeight: 700,\r\n fontSize: '16px',\r\n lineHeight: '16px',\r\n letterSpacing: 0,\r\n color: paletteTheme.palette.primary.main,\r\n }, \r\n subtitle2: {\r\n fontFamily: \"'Hind', sans-serif\",\r\n fontWeight: 300,\r\n fontSize: '16px',\r\n lineHeight: '16px',\r\n letterSpacing: 0,\r\n },\r\n body1: {\r\n fontFamily: \"'Hind', sans-serif\",\r\n fontWeight: 300,\r\n fontSize: '16px',\r\n lineHeight: '16px',\r\n letterSpacing: 0,\r\n },\r\n button: {\r\n fontFamily: \"'Hind', sans-serif\",\r\n fontWeight: 300,\r\n fontSize: '14px',\r\n lineHeight: '14px',\r\n letterSpacing: 0,\r\n textTransform: 'none',\r\n color: paletteTheme.palette.text.secondary,\r\n cursor: 'pointer'\r\n }\r\n }, \r\n});","export const StartRoute = '/start';\r\nexport const RequestRoute = '/:id';\r\nexport const calcRequestRoute = (id: string) => RequestRoute.replace(':id', id);","\r\nimport { useCallback } from 'react';\r\nimport { IApiErrorStrings } from '../localization/apiErrors/IApiErrorString';\r\nimport { NotificationType } from '../context/NotificationType';\r\n\r\nexport function useApiErrorHandling(strings: IApiErrorStrings, redirect: () => void, notify: (message: string, type: NotificationType) => void): (error: any) => void {\r\n // eslint-disable-next-line\r\n const redirectCallback = useCallback(redirect, []);\r\n // eslint-disable-next-line\r\n const onNotifyCallback = useCallback(notify, []);\r\n \r\n return useCallback((error: any) => {\r\n if (error) {\r\n onNotifyCallback(matchError(error, strings), errorToType(error));\r\n if (needRedirect(error)) {\r\n redirectCallback();\r\n }\r\n }\r\n }, [onNotifyCallback, redirectCallback, strings]);\r\n}\r\n\r\nconst needRedirect = (error: any): boolean => {\r\n const status = error?.response?.status ?? undefined;\r\n return status && status === 401;\r\n}\r\n\r\nconst errorToType = (error: any): NotificationType => {\r\n const status = error?.response?.status ?? undefined;\r\n return status && (status === 401 || status === 403) \r\n ? 'warning'\r\n : 'error';\r\n}\r\n\r\nconst matchError = (error: any, strings: IApiErrorStrings): string => {\r\n const status = error?.response?.status ?? undefined;\r\n if (error === undefined) {\r\n return '';\r\n } else if (status) {\r\n switch (status) {\r\n case 401:\r\n return strings.error401;\r\n case 403:\r\n return strings.error403;\r\n case 500:\r\n return strings.error500;\r\n default:\r\n return strings.errorUnmapped(status);\r\n }\r\n } else if (error.toString() === 'Error: Network Error') {\r\n return strings.errorNoNetwork;\r\n } else {\r\n return strings.errorUnknown;\r\n }\r\n}","\r\nimport React, { useCallback, useContext } from 'react';\r\nimport { ApiContext } from '../context/ApiContext';\r\nimport { LoaderContext } from '../context/LoaderContext';\r\nimport { useApiErrorHandling } from './useApiErrorHandling';\r\n\r\nexport const useApi = (): [() => string, (val: string) => void, React.Dispatch>] => {\r\n const { load, clear } = useContext(LoaderContext);\r\n const setLoad = useCallback(() => load()\r\n // eslint-disable-next-line\r\n , []);\r\n const clearLoad = useCallback((val: string) => clear(val)\r\n // eslint-disable-next-line\r\n , []);\r\n const apiContext = useContext(ApiContext);\r\n\r\n return [setLoad, clearLoad, useApiErrorHandling(apiContext.strings, apiContext.redirect, apiContext.notify)];\r\n}","import { useEffect, useState } from \"react\";\r\nimport { Try } from \"../Try\";\r\nimport { useApi } from \"./useApi\";\r\nimport { useTrigger } from \"./useTrigger\";\r\n\r\nexport function useApiEffect(f: () => Promise>): [TResult | undefined, () => void];\r\nexport function useApiEffect(f: (args: TArgs) => Promise>, args: TArgs): [TResult | undefined, () => void];\r\nexport function useApiEffect(f: (...args: TArgs) => Promise>, ...args: TArgs): [TResult | undefined, () => void];\r\n\r\nexport function useApiEffect(f: (...args: TArgs) => Promise>, ...args: TArgs): [TResult | undefined, () => void] {\r\n const [setLoading, clearLoading, handleError] = useApi();\r\n const [data, setData] = useState();\r\n const [trigger, reload] = useTrigger();\r\n\r\n useEffect(() => {\r\n let cancelled = false;\r\n const loadX = async () => {\r\n console.log(`load useApiEffect ${f.name}`);\r\n const loadId = setLoading();\r\n const r = await f(...args);\r\n if (r.isFailure) {\r\n handleError(r.error);\r\n } else {\r\n setData(r.result);\r\n }\r\n clearLoading(loadId);\r\n }\r\n if (cancelled === false) {\r\n loadX();\r\n }\r\n return () => {\r\n cancelled = true;\r\n }\r\n // missing deps handleError -> is a function\r\n // eslint-disable-next-line \r\n }, [trigger, f, ...args]);\r\n\r\n return [data, reload];\r\n}","import { AxiosInstance, AxiosRequestConfig } from \"axios\";\r\nimport { apiUrl, languageHeaderKey, languageKey } from \"../keys\";\r\nimport { FrameworkDefaultAxiosInstance } from \"framework/xhr/FrameworkDefaultAxiosInstance\";\r\n\r\nexport const DefaultAxiosInstance = (config?: AxiosRequestConfig): AxiosInstance => {\r\n const instance = FrameworkDefaultAxiosInstance(apiUrl, config);\r\n // only in debug\r\n if (process.env.NODE_ENV === 'development') {\r\n instance.interceptors.request.use(config => {\r\n config.withCredentials = true;\r\n return config;\r\n })\r\n }\r\n const json = window.localStorage.getItem(languageKey);\r\n if (json && instance.defaults.headers) {\r\n instance.defaults.headers.common[languageHeaderKey] = JSON.parse(json);\r\n }\r\n return instance;\r\n}\r\n\r\n","import Axios, { AxiosInstance, AxiosRequestConfig } from \"axios\";\r\n\r\nexport const FrameworkDefaultAxiosInstance = (apiUrl: string, config?: AxiosRequestConfig): AxiosInstance => {\r\n const instance = Axios.create({ baseURL: apiUrl, ...config });\r\n instance.defaults.headers!.common['X-Requested-With'] = 'XMLHttpRequest';\r\n return instance;\r\n}\r\n\r\n// for upload or download progress monitoring\r\n// const config: AxiosRequestConfig = {\r\n// onUploadProgress: (e) => {\r\n// const percentCompleted = Math.round((e.loaded * 100) / e.total);\r\n// }\r\n// }\r\n\r\n// async transformOptions(options_: AxiosRequestConfig): Promise {\r\n// const token = getToken(this.getTokenName());\r\n// if (options_.url && options_.url.indexOf('/export') > -1) {\r\n// options_ = {...options_, responseType: 'blob'};\r\n// }\r\n// return token ? addAuthHeader(options_, token) : options_;\r\n// }\r\n\r\n// export const addAuthHeader = (options_: AxiosRequestConfig, token: string): AxiosRequestConfig => {\r\n// options_.headers.Authorization = `Bearer ${token}`; \r\n// return options_;\r\n// }","export class Try {\r\n readonly result: T;\r\n readonly error: any | undefined;\r\n readonly isFailure: boolean;\r\n readonly isSuccess: boolean;\r\n\r\n constructor(result: T, error?: any) {\r\n this.result = result;\r\n this.error = error;\r\n if (error) {\r\n this.isFailure = true;\r\n this.isSuccess = false;\r\n } else {\r\n this.isFailure = false;\r\n this.isSuccess = true;\r\n }\r\n }\r\n}","/* tslint:disable */\r\n/* eslint-disable */\r\n// \r\n// Generated using custom tool!\r\n// \r\n\r\nimport axios, { AxiosInstance, AxiosRequestConfig, AxiosResponse } from 'axios';\r\nimport { DefaultAxiosInstance } from './DefaultAxiosInstance';\r\nimport { Try } from '../framework/Try';\r\nimport { INamedProperty } from './INamedProperty';\r\n\r\nexport async function meta_build(instance: AxiosInstance = DefaultAxiosInstance()): Promise> {\r\n try {\r\n\r\n let url_ = \"/api/meta/build\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\r\n method: \"GET\",\r\n url: url_,\r\n headers: {\r\n \"Accept\": \"text/plain\"\r\n }\r\n };\r\n\r\n const r = await instance.request(options_).then((response) => response.data);\r\n return new Try(r)\r\n } catch (error) {\r\n return new Try(undefined as any, error);\r\n }\r\n}\r\n\r\n\r\nexport async function meta_ping(instance: AxiosInstance = DefaultAxiosInstance()): Promise> {\r\n try {\r\n\r\n let url_ = \"/api/meta/ping\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\r\n method: \"GET\",\r\n url: url_,\r\n headers: {\r\n }\r\n };\r\n\r\n const r = await instance.request(options_).then((response) => response.data);\r\n return new Try(r)\r\n } catch (error) {\r\n return new Try(undefined as any, error);\r\n }\r\n}\r\n\r\n\r\nexport async function meta_url(instance: AxiosInstance = DefaultAxiosInstance()): Promise> {\r\n try {\r\n\r\n let url_ = \"/api/meta/url\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\r\n method: \"GET\",\r\n url: url_,\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n }\r\n };\r\n\r\n const r = await instance.request(options_).then((response) => response.data);\r\n return new Try(r)\r\n } catch (error) {\r\n return new Try(undefined as any, error);\r\n }\r\n}\r\n\r\n\r\nexport async function requestsCommand_new(instance: AxiosInstance = DefaultAxiosInstance()): Promise> {\r\n try {\r\n\r\n let url_ = \"/api/RequestsCommand/new\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\r\n method: \"POST\",\r\n url: url_,\r\n headers: {\r\n \"Accept\": \"text/plain\"\r\n }\r\n };\r\n\r\n const r = await instance.request(options_).then((response) => response.data);\r\n return new Try(r)\r\n } catch (error) {\r\n return new Try(undefined as any, error);\r\n }\r\n}\r\n\r\n\r\nexport async function requestsCommand_setLoad(id: string, body: IContactWithAddressModel, instance: AxiosInstance = DefaultAxiosInstance()): Promise>> {\r\n try {\r\n\r\n let url_ = \"/api/RequestsCommand/{id}/load\";\r\n if (id === undefined || id === null)\r\n throw new Error(\"The parameter 'id' must be defined.\");\r\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id)); \r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(body);\r\n\r\n let options_ = {\r\n data: content_,\r\n method: \"PUT\",\r\n url: url_,\r\n headers: {\r\n \"Content-Type\": \"application/json-patch+json\", \r\n \"Accept\": \"text/plain\"\r\n }\r\n };\r\n\r\n const r = await instance.request(options_).then((response) => response.data);\r\n return new Try(r)\r\n } catch (error) {\r\n return new Try(undefined as any, error);\r\n }\r\n}\r\n\r\n\r\nexport async function requestsCommand_setLoadTime(id: string, body: ITimeModel, instance: AxiosInstance = DefaultAxiosInstance()): Promise>> {\r\n try {\r\n\r\n let url_ = \"/api/RequestsCommand/{id}/load/time\";\r\n if (id === undefined || id === null)\r\n throw new Error(\"The parameter 'id' must be defined.\");\r\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id)); \r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(body);\r\n\r\n let options_ = {\r\n data: content_,\r\n method: \"PUT\",\r\n url: url_,\r\n headers: {\r\n \"Content-Type\": \"application/json-patch+json\", \r\n \"Accept\": \"text/plain\"\r\n }\r\n };\r\n\r\n const r = await instance.request(options_).then((response) => response.data);\r\n return new Try(r)\r\n } catch (error) {\r\n return new Try(undefined as any, error);\r\n }\r\n}\r\n\r\n\r\nexport async function requestsCommand_setCargo(id: string, body: ICargoModel, instance: AxiosInstance = DefaultAxiosInstance()): Promise>> {\r\n try {\r\n\r\n let url_ = \"/api/RequestsCommand/{id}/cargo\";\r\n if (id === undefined || id === null)\r\n throw new Error(\"The parameter 'id' must be defined.\");\r\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id)); \r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(body);\r\n\r\n let options_ = {\r\n data: content_,\r\n method: \"PUT\",\r\n url: url_,\r\n headers: {\r\n \"Content-Type\": \"application/json-patch+json\", \r\n \"Accept\": \"text/plain\"\r\n }\r\n };\r\n\r\n const r = await instance.request(options_).then((response) => response.data);\r\n return new Try(r)\r\n } catch (error) {\r\n return new Try(undefined as any, error);\r\n }\r\n}\r\n\r\n\r\nexport async function requestsCommand_setTruck(id: string, body: ITruckModel, instance: AxiosInstance = DefaultAxiosInstance()): Promise>> {\r\n try {\r\n\r\n let url_ = \"/api/RequestsCommand/{id}/truck\";\r\n if (id === undefined || id === null)\r\n throw new Error(\"The parameter 'id' must be defined.\");\r\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id)); \r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(body);\r\n\r\n let options_ = {\r\n data: content_,\r\n method: \"PUT\",\r\n url: url_,\r\n headers: {\r\n \"Content-Type\": \"application/json-patch+json\", \r\n \"Accept\": \"text/plain\"\r\n }\r\n };\r\n\r\n const r = await instance.request(options_).then((response) => response.data);\r\n return new Try(r)\r\n } catch (error) {\r\n return new Try(undefined as any, error);\r\n }\r\n}\r\n\r\n\r\nexport async function requestsCommand_setUnload(id: string, body: IContactWithAddressModel, instance: AxiosInstance = DefaultAxiosInstance()): Promise>> {\r\n try {\r\n\r\n let url_ = \"/api/RequestsCommand/{id}/unload\";\r\n if (id === undefined || id === null)\r\n throw new Error(\"The parameter 'id' must be defined.\");\r\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id)); \r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(body);\r\n\r\n let options_ = {\r\n data: content_,\r\n method: \"PUT\",\r\n url: url_,\r\n headers: {\r\n \"Content-Type\": \"application/json-patch+json\", \r\n \"Accept\": \"text/plain\"\r\n }\r\n };\r\n\r\n const r = await instance.request(options_).then((response) => response.data);\r\n return new Try(r)\r\n } catch (error) {\r\n return new Try(undefined as any, error);\r\n }\r\n}\r\n\r\n\r\nexport async function requestsCommand_saveForLater(id: string, body: IContactModel, instance: AxiosInstance = DefaultAxiosInstance()): Promise>> {\r\n try {\r\n\r\n let url_ = \"/api/RequestsCommand/{id}/saveForLater\";\r\n if (id === undefined || id === null)\r\n throw new Error(\"The parameter 'id' must be defined.\");\r\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id)); \r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(body);\r\n\r\n let options_ = {\r\n data: content_,\r\n method: \"PUT\",\r\n url: url_,\r\n headers: {\r\n \"Content-Type\": \"application/json-patch+json\", \r\n \"Accept\": \"text/plain\"\r\n }\r\n };\r\n\r\n const r = await instance.request(options_).then((response) => response.data);\r\n return new Try(r)\r\n } catch (error) {\r\n return new Try(undefined as any, error);\r\n }\r\n}\r\n\r\n\r\nexport async function requestsCommand_confirm(id: string, body: IContactModel, instance: AxiosInstance = DefaultAxiosInstance()): Promise>> {\r\n try {\r\n\r\n let url_ = \"/api/RequestsCommand/{id}/confirm\";\r\n if (id === undefined || id === null)\r\n throw new Error(\"The parameter 'id' must be defined.\");\r\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id)); \r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(body);\r\n\r\n let options_ = {\r\n data: content_,\r\n method: \"PUT\",\r\n url: url_,\r\n headers: {\r\n \"Content-Type\": \"application/json-patch+json\", \r\n \"Accept\": \"text/plain\"\r\n }\r\n };\r\n\r\n const r = await instance.request(options_).then((response) => response.data);\r\n return new Try(r)\r\n } catch (error) {\r\n return new Try(undefined as any, error);\r\n }\r\n}\r\n\r\n\r\nexport async function requestsQuery_single(id: string, instance: AxiosInstance = DefaultAxiosInstance()): Promise> {\r\n try {\r\n\r\n let url_ = \"/api/RequestsQuery/{id}\";\r\n if (id === undefined || id === null)\r\n throw new Error(\"The parameter 'id' must be defined.\");\r\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id)); \r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\r\n method: \"GET\",\r\n url: url_,\r\n headers: {\r\n \"Accept\": \"text/plain\"\r\n }\r\n };\r\n\r\n const r = await instance.request(options_).then((response) => response.data);\r\n return new Try(r)\r\n } catch (error) {\r\n return new Try(undefined as any, error);\r\n }\r\n}\r\n\r\n\r\nexport async function trucksQuery_all(instance: AxiosInstance = DefaultAxiosInstance()): Promise>> {\r\n try {\r\n\r\n let url_ = \"/api/TrucksQuery/all\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\r\n method: \"GET\",\r\n url: url_,\r\n headers: {\r\n \"Accept\": \"text/plain\"\r\n }\r\n };\r\n\r\n const r = await instance.request(options_).then((response) => response.data);\r\n return new Try(r)\r\n } catch (error) {\r\n return new Try(undefined as any, error);\r\n }\r\n}\r\n\r\n\r\nexport async function trucksQuery_concurrencyToken(instance: AxiosInstance = DefaultAxiosInstance()): Promise> {\r\n try {\r\n\r\n let url_ = \"/api/TrucksQuery/concurrencyToken\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\r\n method: \"GET\",\r\n url: url_,\r\n headers: {\r\n \"Accept\": \"text/plain\"\r\n }\r\n };\r\n\r\n const r = await instance.request(options_).then((response) => response.data);\r\n return new Try(r)\r\n } catch (error) {\r\n return new Try(undefined as any, error);\r\n }\r\n}\r\n\r\n\r\nexport async function vavatoRequestsCommand_new(body: IVavatoModel, instance: AxiosInstance = DefaultAxiosInstance()): Promise> {\r\n try {\r\n\r\n let url_ = \"/api/new\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(body);\r\n\r\n let options_ = {\r\n data: content_,\r\n method: \"POST\",\r\n url: url_,\r\n headers: {\r\n \"Content-Type\": \"application/json-patch+json\", \r\n \"Accept\": \"text/plain\"\r\n }\r\n };\r\n\r\n const r = await instance.request(options_).then((response) => response.data);\r\n return new Try(r)\r\n } catch (error) {\r\n return new Try(undefined as any, error);\r\n }\r\n}\r\n\r\n\r\nexport async function vavatoRequestsCommand_newNested(body: IVavatoNestedModel, instance: AxiosInstance = DefaultAxiosInstance()): Promise> {\r\n try {\r\n\r\n let url_ = \"/api/new/nested\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(body);\r\n\r\n let options_ = {\r\n data: content_,\r\n method: \"POST\",\r\n url: url_,\r\n headers: {\r\n \"Content-Type\": \"application/json-patch+json\", \r\n \"Accept\": \"text/plain\"\r\n }\r\n };\r\n\r\n const r = await instance.request(options_).then((response) => response.data);\r\n return new Try(r)\r\n } catch (error) {\r\n return new Try(undefined as any, error);\r\n }\r\n}\r\n\r\n\r\nexport interface IContactWithAddressModel {\r\n personOnSite: string | undefined;\r\n companyName: string | undefined;\r\n phoneNumber: string | undefined;\r\n street: string | undefined;\r\n zip: string | undefined;\r\n city: string | undefined;\r\n country: string | undefined;\r\n number: string | undefined;\r\n extraInfo: string | undefined;\r\n}\r\n\r\nexport interface ITimeModel {\r\n date: Date;\r\n afterDate: Date | undefined;\r\n beforeDate: Date | undefined;\r\n}\r\n\r\nexport interface ICargoModel {\r\n lengthInCm: number;\r\n widthInCm: number;\r\n heightInCm: number;\r\n description: string | undefined;\r\n weightInKg: number;\r\n}\r\n\r\nexport interface ITruckModel {\r\n truckId: number;\r\n description: string | undefined;\r\n pictureAttachmentId: string | undefined;\r\n}\r\n\r\nexport interface IContactModel {\r\n firstName: string | undefined;\r\n lastName: string | undefined;\r\n email: string | undefined;\r\n phoneNumber: string | undefined;\r\n vatNumber: string | undefined;\r\n}\r\n\r\nexport interface IEasyTransResponseSummary {\r\n id: number;\r\n hasRateWarnings: boolean;\r\n priceInVat: number | undefined;\r\n}\r\n\r\nexport interface IRequest {\r\n id: string;\r\n created: Date;\r\n lastUpdated: Date;\r\n loadModel: IContactWithAddressModel;\r\n loadTime: ITimeModel;\r\n cargoModel: ICargoModel;\r\n truckModel: ITruckModel;\r\n unloadModel: IContactWithAddressModel;\r\n unloadTime: ITimeModel;\r\n contactModel: IContactModel;\r\n easyTransResponse: IEasyTransResponseSummary;\r\n isSavedForLater: boolean;\r\n assignedTruckId: number | undefined;\r\n isConfirmed: boolean;\r\n vavatoUrl: string | undefined;\r\n vavatoDescription: string | undefined;\r\n hasCargoModelFromVavato: boolean;\r\n hasLoadModelFromVavato: boolean;\r\n hasUnloadModelFromVavato: boolean;\r\n isFromVavato: boolean;\r\n hasRateWarnings: boolean;\r\n price: number | undefined;\r\n easyTransOrderId: number | undefined;\r\n hasEasyTransResponse: boolean;\r\n hasPrice: boolean;\r\n selectedOrAssignedTruckId: number | undefined;\r\n hasLoadModel: boolean;\r\n hasLoadTimeModel: boolean;\r\n hasCargoModel: boolean;\r\n hasUnloadModel: boolean;\r\n hasContactModel: boolean;\r\n hasTruckModel: boolean;\r\n hasSelectedOrAssignedTruckId: boolean;\r\n canCalculateOrderAndPrice: boolean;\r\n formattedLoadModel: string | undefined;\r\n formattedLoadTimeModel: string | undefined;\r\n formattedCargoModel: string | undefined;\r\n formattedUnloadModel: string | undefined;\r\n formattedContactModel: string | undefined;\r\n description: string | undefined;\r\n}\r\n\r\nexport interface ITruckDto {\r\n id: number;\r\n name: string | undefined;\r\n length: number;\r\n width: number;\r\n height: number;\r\n countEuroPallets: number;\r\n maxLoad: number;\r\n base64Image: string | undefined;\r\n volume: number;\r\n lengthInCm: number;\r\n widthInCm: number;\r\n heightInCm: number;\r\n display: string | undefined;\r\n}\r\n\r\nexport interface IVavatoModel {\r\n url: string | undefined;\r\n loadPersonOnSite: string | undefined;\r\n loadCompanyName: string | undefined;\r\n loadPhoneNumber: string | undefined;\r\n loadStreet: string | undefined;\r\n loadZip: string | undefined;\r\n loadCity: string | undefined;\r\n loadCountry: string | undefined;\r\n loadHouseNumber: string | undefined;\r\n loadExtraInfo: string | undefined;\r\n date: Date;\r\n afterDate: Date | undefined;\r\n beforeDate: Date | undefined;\r\n lengthInCm: number;\r\n widthInCm: number;\r\n heightInCm: number;\r\n weightInKg: number;\r\n description: string | undefined;\r\n unloadPersonOnSite: string | undefined;\r\n unloadCompanyName: string | undefined;\r\n unloadPhoneNumber: string | undefined;\r\n unloadStreet: string | undefined;\r\n unloadZip: string | undefined;\r\n unloadCity: string | undefined;\r\n unloadCountry: string | undefined;\r\n unloadHouseNumber: string | undefined;\r\n unloadExtraInfo: string | undefined;\r\n contactEmail: string | undefined;\r\n contactFirstName: string | undefined;\r\n contactLastName: string | undefined;\r\n contactPhoneNumber: string | undefined;\r\n contactVatNumber: string | undefined;\r\n}\r\n\r\nexport interface IVavatoCargoModel {\r\n lengthInCm: number;\r\n widthInCm: number;\r\n heightInCm: number;\r\n weightInKg: number;\r\n}\r\n\r\nexport interface IVavatoNestedModel {\r\n url: string | undefined;\r\n description: string | undefined;\r\n load: IContactWithAddressModel;\r\n loadTime: ITimeModel;\r\n unload: IContactWithAddressModel;\r\n cargo: IVavatoCargoModel;\r\n contact: IContactModel;\r\n}\r\n\r\n\r\nexport interface IQueryResult {\r\n values: T[];\r\n unfilteredCount: number;\r\n filteredCount: number;\r\n pageIndex: number;\r\n pageSize: number;\r\n concurrencyToken: number;\r\n zeroBasedPageIndex: number;\r\n totalPages: number;\r\n currentFrom: number;\r\n currentTo: number;\r\n hasPreviousPage: boolean;\r\n hasNextPage: boolean;\r\n}\r\n\r\n\r\nexport interface IQueryResultWithMetadata {\r\n values: T[];\r\n unfilteredCount: number;\r\n filteredCount: number;\r\n pageIndex: number;\r\n pageSize: number;\r\n concurrencyToken: number;\r\n zeroBasedPageIndex: number;\r\n totalPages: number;\r\n currentFrom: number;\r\n currentTo: number;\r\n hasPreviousPage: boolean;\r\n hasNextPage: boolean;\r\n metadata: TMetadata;\r\n}\r\n\r\n\r\nexport interface IObjectWithIdAndIdentifier {\r\n id: T;\r\n identifier: string;\r\n}\r\n\r\n\r\nexport interface IConcurrencyData {\r\n value: T;\r\n concurrencyToken: number;\r\n}\r\n\r\n\r\nexport interface ICreateResponse {\r\n objectId: string;\r\n errors: IValidationError[];\r\n hasError: boolean;\r\n isSuccess: boolean;\r\n}\r\n\r\n\r\nexport interface IUpdateResponse {\r\n errors: IValidationError[];\r\n hasError: boolean;\r\n isSuccess: boolean;\r\n}\r\n\r\n\r\nexport interface IValidationError {\r\n property: string;\r\n error: string;\r\n zeroBasedIndex: number | undefined;\r\n}\r\n\r\n\r\nexport interface IExportParams {\r\n mustApplyFilter: boolean;\r\n fileName: string;\r\n headers: INamedProperty[];\r\n format: string;\r\n}\r\n\r\n\r\nexport interface ISortParams {\r\n property: keyof T;\r\n direction: 'asc' | 'desc'\r\n}\r\n\r\nexport type IFileResponse = { }\r\n\r\nexport type IBlob = { }\r\n\r\n\r\nexport type LanguageOption = 'nl' | 'en' | 'fr';\r\nexport const LanguageOptions: LanguageOption[] = ['nl', 'en', 'fr'];","import ErrorIcon from '@mui/icons-material/Error';\r\nimport React from 'react';\r\nimport { useTheme } from '@mui/material';\r\n\r\ninterface IProps {\r\n error: string | undefined;\r\n style?: React.CSSProperties;\r\n}\r\n\r\nexport const ErrorTextWithIcon = ({ error, style }: IProps) => {\r\n const theme = useTheme();\r\n \r\n return (\r\n
\r\n \r\n {error}\r\n
\r\n );\r\n}","import { FormHelperText } from '@mui/material';\r\nimport React from 'react';\r\n\r\ninterface IProps {\r\n children: any;\r\n}\r\n\r\nexport const FormHelperTextX = ({ children }: IProps) => {\r\n return (\r\n {children}\r\n );\r\n}","import { FormHelperText } from '@mui/material';\r\nimport React, { useMemo } from 'react';\r\nimport { useLocalization } from 'localization/useLocalization';\r\nimport { theme } from '../../../theme';\r\nimport { ErrorTextWithIcon } from './ErrorTextWithIcon';\r\nimport { FormHelperTextX } from './FormHelperTextX';\r\n\r\nexport interface IMeta {\r\n error?: string | undefined;\r\n touched: boolean;\r\n initialError?: string | undefined;\r\n}\r\n\r\ninterface IProps {\r\n meta: IMeta;\r\n withDate?: boolean;\r\n helperText?: JSX.Element | string;\r\n}\r\n\r\nexport const FormErrorHelper = ({ meta, withDate = false, helperText }: IProps) => {\r\n const strings = useLocalization();\r\n const showError = useMemo(() => ((meta.error && meta.touched) || meta.initialError) ? true : false, [meta.error, meta.touched, meta.initialError]);\r\n\r\n return (\r\n <>\r\n {showError &&\r\n \r\n -1 && withDate) ? strings.invalidDateFormat : meta.error} />\r\n }\r\n {showError === false && helperText && \r\n {helperText}\r\n }\r\n \r\n );\r\n}","import { FormControl, Typography } from '@mui/material';\r\nimport { useLocalization } from 'localization/useLocalization';\r\nimport React from 'react';\r\nimport { FormErrorHelper, IMeta } from './FormErrorHelper';\r\nimport { IFormProps } from './IFormProps';\r\n\r\ninterface IProps extends IFormProps {\r\n children: any;\r\n meta: IMeta;\r\n enter?: () => void;\r\n leave?: () => void;\r\n}\r\n\r\nexport const FormControlX = ({ label, children, meta, enter, leave, helperText, required = false, style, ...rest }: IProps) => {\r\n const strings = useLocalization();\r\n return (\r\n \r\n
\r\n {label}\r\n {required === false && {strings.optional}}\r\n
\r\n {children}\r\n \r\n \r\n );\r\n}","export const nameOf = (key: keyof T): string => key.toString();","import { ICountry } from \"./ICountry\";\r\n\r\nexport const NlCountries: ICountry[] = [\r\n { code: 'AU', label: 'Australië' },\r\n { code: 'BE', label: 'België' },\r\n { code: 'BR', label: 'Brazilië' },\r\n { code: 'BG', label: 'Bulgarije' },\r\n { code: 'CA', label: 'Canada' },\r\n { code: 'CN', label: 'China' },\r\n { code: 'CY', label: 'Cyprus' },\r\n { code: 'DK', label: 'Denemarken' },\r\n { code: 'DE', label: 'Duitsland' },\r\n { code: 'EE', label: 'Estland' },\r\n { code: 'FI', label: 'Finland' },\r\n { code: 'FR', label: 'Frankrijk' },\r\n { code: 'GE', label: 'Georgië' },\r\n { code: 'GH', label: 'Ghana' },\r\n { code: 'GR', label: 'Griekenland' },\r\n { code: 'HU', label: 'Hongarije' },\r\n { code: 'IE', label: 'Ierland' },\r\n { code: 'IS', label: 'IJsland' },\r\n { code: 'IL', label: 'Israël' },\r\n { code: 'IT', label: 'Italië' },\r\n { code: 'JO', label: 'Jordanië' },\r\n { code: 'HR', label: 'Kroatië' },\r\n { code: 'LV', label: 'Letland' },\r\n { code: 'LI', label: 'Liechtenstein' },\r\n { code: 'LT', label: 'Litouwen' },\r\n { code: 'LU', label: 'Luxemburg' },\r\n { code: 'MT', label: 'Malta' },\r\n { code: 'MX', label: 'Mexico' },\r\n { code: 'MC', label: 'Monaco' },\r\n { code: 'NL', label: 'Nederland' },\r\n { code: 'NO', label: 'Noorwegen' },\r\n { code: 'UA', label: 'Oekraïne' },\r\n { code: 'AT', label: 'Oostenrijk' },\r\n { code: 'PL', label: 'Polen' },\r\n { code: 'PT', label: 'Portugal' },\r\n { code: 'RO', label: 'Roemenië' },\r\n { code: 'RU', label: 'Rusland' },\r\n { code: 'RS', label: 'Servië' },\r\n { code: 'SI', label: 'Slovenië' },\r\n { code: 'SK', label: 'Slowakije' },\r\n { code: 'ES', label: 'Spanje' },\r\n { code: 'CZ', label: 'Tsjechië' },\r\n { code: 'TN', label: 'Tunesië' },\r\n { code: 'TR', label: 'Turkije' },\r\n { code: 'GB', label: 'Verenigd Koninkrijk' },\r\n { code: 'AE', label: 'Verenigde Arabische Emiraten' },\r\n { code: 'US', label: 'Verenigde Staten' },\r\n { code: 'ZA', label: 'Zuid-Afrika' },\r\n { code: 'SE', label: 'Zweden' },\r\n { code: 'CH', label: 'Zwitserland' },\r\n];","import { Autocomplete, TextField } from '@mui/material';\r\nimport { Box } from '@mui/system';\r\nimport { useField } from 'formik';\r\nimport { FormControlX } from 'framework/forms/common/FormControlX';\r\nimport { IFormProps } from 'framework/forms/common/IFormProps';\r\nimport { nameOf } from 'framework/utils/nameOf';\r\nimport React from 'react';\r\nimport { ICountry } from './ICountry';\r\nimport { NlCountries } from './NlCountries';\r\n\r\ninterface IProps extends IFormProps {\r\n\r\n}\r\n\r\nexport const FormSelectCountryField = ({ ...props }: IProps) => {\r\n const [field, meta, helpers] = useField(nameOf(props.name));\r\n\r\n const onChange = (value: ICountry | null) => {\r\n helpers.setTouched(true);\r\n if (value === null || value === undefined) {\r\n helpers.setValue('');\r\n } else {\r\n helpers.setValue(value.code);\r\n }\r\n }\r\n\r\n return (\r\n \r\n option.label}\r\n renderOption={(props, option) => (\r\n img': { mr: 2, flexShrink: 0 } }} {...props}>\r\n \r\n {option.label} ({option.code})\r\n \r\n )}\r\n value={NlCountries.find(t => t.code === field.value)}\r\n onChange={(_, value) => onChange(value)}\r\n autoSelect\r\n renderInput={(params) => (\r\n \r\n )}\r\n />\r\n \r\n );\r\n}","import { useState } from \"react\";\r\n\r\nexport function useStateBoolean(initial: boolean): [boolean, () => void, () => void] {\r\n const [value, setValue] = useState(initial); \r\n return [value, () => setValue(true), () => setValue(false)]\r\n}","import { Fade, InputAdornment } from '@mui/material';\r\nimport CancelIcon from '@mui/icons-material/Cancel';\r\nimport { FieldHelperProps, FieldInputProps } from 'formik';\r\nimport React from 'react';\r\n\r\ninterface IProps {\r\n isHovered: boolean;\r\n field: FieldInputProps\r\n disabled: boolean;\r\n helpers: FieldHelperProps;\r\n clear?: () => void;\r\n defaultValue: TProperty;\r\n}\r\n\r\nexport const ClearEndAdornment = ({ isHovered, field, helpers, disabled, clear: externalClear, defaultValue }: IProps) => {\r\n const clear = () => {\r\n helpers.setTouched(true);\r\n helpers.setValue(defaultValue);\r\n if (externalClear) {\r\n externalClear();\r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n clear()} />\r\n \r\n \r\n );\r\n}","import { OutlinedInput } from '@mui/material';\r\nimport { useField } from 'formik';\r\nimport React from 'react';\r\nimport { useStateBoolean } from '../hooks/useStateBool';\r\nimport { nameOf } from '../utils/nameOf';\r\nimport { ClearEndAdornment } from './common/ClearEndAdornment';\r\nimport { FormControlX } from './common/FormControlX';\r\nimport { IFormProps } from './common/IFormProps';\r\n\r\ninterface IFormTextFieldProps extends IFormProps {\r\n placeholder?: string,\r\n multiline?: boolean,\r\n rows?: number,\r\n}\r\n\r\nexport const FormTextField = ({ multiline = false, rows, ...props }: IFormTextFieldProps) => {\r\n const [field, meta, helpers] = useField(nameOf(props.name));\r\n const [isHovered, enter, leave] = useStateBoolean(false);\r\n\r\n return (\r\n \r\n }\r\n />\r\n \r\n );\r\n}","import { mapNaNAsZero } from \"./mapNaNAsZero\";\r\n\r\nexport const makeANumber = (input: string | undefined): number => input === undefined ? 0 : mapNaNAsZero(Number(input.toString().replace(\",\", \".\")));","export const mapNaNAsZero = (input: number): number => isNaN(input) ? 0 : input;","import { FormikHelpers } from \"formik\";\r\nimport { ICreateResponse, IUpdateResponse } from \"gen/ApiClient\";\r\nimport { Try } from \"../../Try\";\r\nimport { findFieldErrorMinStep } from \"./findFieldErrorMinStep\";\r\nimport { ICommonValidation } from \"./ICommonValidation\";\r\n\r\nexport function handleFormResponse>(r: Try, helpers: FormikHelpers): boolean;\r\nexport function handleFormResponse>(r: Try, helpers: FormikHelpers, stepsRecord: Record, setStep: React.Dispatch>): boolean;\r\n\r\nexport function handleFormResponse>(r: Try> | Try> | Try, helpers: FormikHelpers, stepsRecord?: Record, setStep?: React.Dispatch>): boolean {\r\n if (r.isSuccess) {\r\n if (r.result.hasError) { \r\n r.result.errors.forEach(t => helpers.setFieldError(t.property, t.error));\r\n if (stepsRecord && setStep) {\r\n setStep(findFieldErrorMinStep(r.result.errors.map(e => e.property), stepsRecord))\r\n }\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n } else {\r\n return false;\r\n }\r\n}\r\n\r\n// export function handleFormResponse(r: Try> | Try> | Try, helpers: FormikHelpers): boolean;\r\n// export function handleFormResponse(r: Try> | Try> | Try, helpers: FormikHelpers, stepsRecord: Record, setStep: React.Dispatch>): boolean;\r\n\r\n// export function handleFormResponse(r: Try> | Try> | Try, helpers: FormikHelpers, stepsRecord?: Record, setStep?: React.Dispatch>): boolean {\r\n// if (r.isSuccess) {\r\n// if (r.result.hasError) {\r\n// r.result.errors.forEach(t => helpers.setFieldError(t.property, t.error));\r\n// if (stepsRecord && setStep) {\r\n// setStep(findFieldErrorMinStep(r.result.errors.map(e => e.property), stepsRecord))\r\n// }\r\n// return false;\r\n// } else {\r\n// return true;\r\n// }\r\n// } else {\r\n// return false;\r\n// }\r\n// }","import { nameOf } from \"../../utils/nameOf\";\r\nimport { makeANumber } from \"../../utils/makeANumber\";\r\n\r\nexport const findFieldErrorMinStep = (errorProperties: string[], record: Record): number => {\r\n const keys = Object.keys(record);\r\n let minStep = -1;\r\n for (const key in keys) {\r\n const props = record[key];\r\n const any = props.length > 0 && props.map(t => errorProperties.indexOf(nameOf(t)) > -1).reduce((acc, current) => acc === true ? acc : current);\r\n if (any && (minStep > makeANumber(key) || minStep === -1)) {\r\n minStep = makeANumber(key);\r\n }\r\n }\r\n return minStep;\r\n}","import { useCallback, useContext, useState } from \"react\";\r\nimport { ApiContext } from \"../context/ApiContext\";\r\nimport { Try } from \"../Try\";\r\nimport { useApiErrorHandling } from \"./useApiErrorHandling\";\r\n\r\nexport function useFormSubmit(callback: (...args: TArgs) => Promise>, setIsLoading?: React.Dispatch>): [(...args: TArgs) => Promise>, boolean, React.Dispatch>];\r\nexport function useFormSubmit(callback: (...args: TArgs) => Promise>): [(...args: TArgs) => Promise>, boolean, React.Dispatch>];\r\n\r\nexport function useFormSubmit(callback: (...args: TArgs) => Promise>, setIsLoading?: React.Dispatch>): \r\n[(...args: TArgs) => Promise>, boolean, React.Dispatch>] {\r\n\r\n const [isLoading, setInternalLoading] = useState(false);\r\n const apiContext = useContext(ApiContext);\r\n const handleError = useApiErrorHandling(apiContext.strings, apiContext.redirect, apiContext.notify);\r\n // eslint-disable-next-line\r\n const cbSetIsLoading = useCallback(setIsLoading ?? setInternalLoading, [setIsLoading]);\r\n\r\n return [useCallback(async (...args: TArgs) => {\r\n cbSetIsLoading(true);\r\n const r = await callback(...args);\r\n if (r.isFailure) {\r\n handleError(r.error);\r\n }\r\n cbSetIsLoading(false);\r\n return r;\r\n // missing deps handleError -> is a function\r\n // eslint-disable-next-line\r\n }, [callback, cbSetIsLoading]), isLoading, cbSetIsLoading];\r\n}","import { SvgIcon, SvgIconProps } from '@mui/material';\r\nimport React from 'react';\r\n\r\nexport const ArrowLeftIcon = ({ viewBox = \"0 0 12 17\", ...props }: SvgIconProps) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n","import { Button, ButtonProps } from \"@mui/material\";\r\nimport { useLocalization } from \"localization/useLocalization\";\r\nimport { ArrowLeftIcon } from \"shared/icons/ArrowLeftIcon\";\r\n\r\nexport const BackButton = (props: ButtonProps) => {\r\n const strings = useLocalization();\r\n\r\n return (\r\n \r\n );\r\n}","import { Button, ButtonProps, CircularProgress } from \"@mui/material\";\r\nimport React from 'react';\r\n\r\nexport interface ILoaderButtonProps extends ButtonProps {\r\n isLoading: boolean;\r\n}\r\n\r\nexport const LoaderButton = ({ isLoading, children, size, disabled = false, ...rest }: ILoaderButtonProps) => {\r\n const progressSize = size === 'small' ? 12 : size === 'large' ? 18 : 15;\r\n return : rest.startIcon}\r\n // endIcon={isLoading && rest.endIcon ? : rest.endIcon}\r\n >\r\n {children}\r\n \r\n}","import { SvgIcon, SvgIconProps } from '@mui/material';\r\nimport React from 'react';\r\n\r\nexport const ArrowRightIcon = ({ viewBox = \"0 0 12 18\", ...props }: SvgIconProps) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n","import { ButtonProps } from \"@mui/material\";\r\nimport { useFormikContext } from \"formik\";\r\nimport { LoaderButton } from \"framework/components/buttons/LoaderButton\";\r\nimport { useLocalization } from \"localization/useLocalization\";\r\nimport { ArrowRightIcon } from \"shared/icons/ArrowRightIcon\";\r\n\r\ninterface IProps extends ButtonProps {\r\n isSubmitting: boolean;\r\n}\r\n\r\nexport const FormNextSubmitButton = ({ isSubmitting, ...rest }: IProps) => {\r\n const strings = useLocalization();\r\n const props = useFormikContext();\r\n return (\r\n }\r\n type=\"submit\"\r\n onClick={() => props.submitForm()}\r\n isLoading={isSubmitting}\r\n {...rest}>\r\n {strings.next}\r\n \r\n );\r\n}","import { Grid, GridProps } from '@mui/material';\r\nimport React from 'react';\r\n\r\nexport const FormGridContainer = (props: GridProps) => {\r\n return (\r\n \r\n );\r\n}","import { Typography } from '@mui/material';\r\nimport React from 'react';\r\n\r\ninterface IProps {\r\n icon: React.ReactNode;\r\n title: string;\r\n style?: React.CSSProperties;\r\n}\r\n\r\nexport const IconAndH3 = ({ icon, title, style }: IProps) => {\r\n return (\r\n
\r\n {icon}\r\n {title}\r\n
\r\n );\r\n}","import { SvgIcon, SvgIconProps } from '@mui/material';\r\nimport React from 'react';\r\n\r\nexport const InfoCircleIcon = ({ viewBox = \"0 0 26 26\", ...props }: SvgIconProps) => {\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","import { SvgIcon, SvgIconProps } from '@mui/material';\r\nimport React from 'react';\r\n\r\nexport const LocationCircleIcon = ({ viewBox = \"0 0 26 26\", ...props }: SvgIconProps) => {\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","import { Grid, GridProps } from '@mui/material';\r\nimport React from 'react';\r\n\r\nexport const FormGridItem = (props: GridProps) => {\r\n return (\r\n \r\n );\r\n}","import { useMediaQuery, useTheme } from \"@mui/material\";\r\n\r\nexport const useIsMobile = () => {\r\n const theme = useTheme();\r\n return useMediaQuery(theme.breakpoints.down('sm'));\r\n}","var _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nfunction Svg130(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n width: \"130px\",\n height: \"24px\",\n viewBox: \"0 0 129 24\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"g\", {\n id: \"surface1\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n style: {\n stroke: \"none\",\n fillRule: \"nonzero\",\n fill: \"rgb(4.705882%,9.411765%,42.352941%)\",\n fillOpacity: 1\n },\n d: \"M 10.578125 3.28125 L 6.816406 3.324219 L 6.941406 14.78125 L 4.273438 14.8125 L 4.152344 3.355469 L 0.410156 3.398438 L 0.386719 1.304688 L 10.554688 1.191406 Z M 10.578125 3.28125 \"\n }), /*#__PURE__*/React.createElement(\"path\", {\n style: {\n stroke: \"none\",\n fillRule: \"nonzero\",\n fill: \"rgb(4.705882%,9.411765%,42.352941%)\",\n fillOpacity: 1\n },\n d: \"M 10.65625 9.609375 C 10.644531 8.109375 11.039062 6.875 11.847656 5.90625 C 12.65625 4.941406 13.789062 4.449219 15.246094 4.429688 C 16.703125 4.414062 17.855469 4.878906 18.695312 5.828125 C 19.535156 6.773438 19.960938 8 19.976562 9.507812 L 19.976562 9.703125 C 19.992188 11.214844 19.59375 12.453125 18.777344 13.414062 C 17.964844 14.375 16.828125 14.867188 15.375 14.882812 C 13.917969 14.898438 12.769531 14.433594 11.933594 13.492188 C 11.097656 12.550781 10.671875 11.320312 10.65625 9.804688 Z M 13.3125 9.773438 C 13.320312 10.6875 13.492188 11.421875 13.820312 11.976562 C 14.148438 12.527344 14.660156 12.800781 15.351562 12.789062 C 16.039062 12.78125 16.539062 12.496094 16.855469 11.929688 C 17.164062 11.367188 17.320312 10.632812 17.308594 9.722656 L 17.308594 9.53125 C 17.296875 8.640625 17.128906 7.914062 16.804688 7.355469 C 16.476562 6.792969 15.964844 6.519531 15.269531 6.527344 C 14.582031 6.53125 14.082031 6.820312 13.769531 7.394531 C 13.457031 7.964844 13.304688 8.691406 13.3125 9.578125 Z M 13.3125 9.773438 \"\n }), /*#__PURE__*/React.createElement(\"path\", {\n style: {\n stroke: \"none\",\n fillRule: \"nonzero\",\n fill: \"rgb(4.705882%,9.411765%,42.352941%)\",\n fillOpacity: 1\n },\n d: \"M 30.53125 9.761719 C 30.546875 11.246094 30.222656 12.449219 29.558594 13.367188 C 28.890625 14.28125 27.953125 14.742188 26.742188 14.753906 C 26.265625 14.769531 25.792969 14.675781 25.359375 14.476562 C 24.953125 14.28125 24.59375 13.984375 24.320312 13.621094 L 24.371094 18.449219 L 21.714844 18.480469 L 21.566406 4.539062 L 23.964844 4.511719 L 24.132812 5.703125 C 24.398438 5.28125 24.753906 4.925781 25.175781 4.671875 C 25.613281 4.421875 26.109375 4.292969 26.609375 4.296875 C 27.832031 4.285156 28.789062 4.761719 29.472656 5.726562 C 30.15625 6.691406 30.507812 7.96875 30.527344 9.558594 Z M 27.863281 9.589844 C 27.851562 8.636719 27.6875 7.867188 27.371094 7.28125 C 27.242188 7.011719 27.039062 6.785156 26.785156 6.628906 C 26.53125 6.472656 26.234375 6.398438 25.941406 6.414062 C 25.582031 6.40625 25.226562 6.496094 24.914062 6.675781 C 24.632812 6.851562 24.402344 7.101562 24.253906 7.402344 L 24.300781 11.820312 C 24.457031 12.09375 24.691406 12.320312 24.972656 12.464844 C 25.300781 12.617188 25.660156 12.691406 26.023438 12.675781 C 26.667969 12.667969 27.136719 12.40625 27.433594 11.886719 C 27.726562 11.367188 27.867188 10.664062 27.859375 9.785156 Z M 27.863281 9.589844 \"\n }), /*#__PURE__*/React.createElement(\"path\", {\n style: {\n fill: \"none\",\n strokeWidth: 3,\n strokeLinecap: \"butt\",\n strokeLinejoin: \"miter\",\n stroke: \"rgb(4.705882%,9.411765%,42.352941%)\",\n strokeOpacity: 1,\n strokeMiterlimit: 4\n },\n d: \"M 51.332364 13.387207 L 61.337209 13.387207 \",\n transform: \"matrix(0.645,0,0,0.648649,0,0)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n style: {\n stroke: \"none\",\n fillRule: \"nonzero\",\n fill: \"rgb(81.960784%,12.54902%,0%)\",\n fillOpacity: 1\n },\n d: \"M 128.476562 7.488281 C 123.707031 0.589844 96.164062 0.457031 96.164062 0.457031 L 96.164062 5.320312 C 115.957031 4.976562 124.089844 8.9375 126.808594 11.953125 C 126.152344 14.089844 125.855469 16.035156 127.316406 15.230469 C 130.195312 13.628906 128.476562 7.488281 128.476562 7.488281 Z M 128.476562 7.488281 \"\n }), /*#__PURE__*/React.createElement(\"path\", {\n style: {\n stroke: \"none\",\n fillRule: \"nonzero\",\n fill: \"rgb(4.705882%,9.411765%,42.352941%)\",\n fillOpacity: 1\n },\n d: \"M 126.277344 11.261719 C 123.964844 15.625 106.703125 16.421875 106.703125 16.421875 L 106.703125 14.0625 L 95.597656 18.957031 L 106.703125 23.792969 L 106.703125 21.15625 L 106.820312 21.222656 C 122.695312 20.363281 128.128906 14.5 128.128906 14.5 C 128.707031 10.671875 126.277344 11.261719 126.277344 11.261719 Z M 126.277344 11.261719 \"\n }), /*#__PURE__*/React.createElement(\"path\", {\n style: {\n stroke: \"none\",\n fillRule: \"nonzero\",\n fill: \"rgb(91.764706%,91.764706%,91.764706%)\",\n fillOpacity: 1\n },\n d: \"M 107.074219 3.457031 C 105.875 3.351562 104.621094 3.261719 103.347656 3.191406 L 103.386719 2.425781 C 104.671875 2.5 105.933594 2.589844 107.136719 2.695312 Z M 101.480469 3.097656 C 100.25 3.042969 98.988281 3.003906 97.746094 2.980469 L 97.757812 2.214844 C 99.011719 2.242188 100.273438 2.277344 101.511719 2.332031 Z M 101.480469 3.097656 \"\n }), /*#__PURE__*/React.createElement(\"path\", {\n style: {\n stroke: \"none\",\n fillRule: \"nonzero\",\n fill: \"rgb(91.764706%,91.764706%,91.764706%)\",\n fillOpacity: 1\n },\n d: \"M 123.355469 6.980469 C 122.246094 6.441406 121.09375 5.996094 119.914062 5.648438 L 120.128906 4.914062 C 121.347656 5.273438 122.539062 5.734375 123.6875 6.289062 Z M 118.121094 5.152344 C 117.007812 4.875 115.78125 4.617188 114.476562 4.390625 L 114.601562 3.636719 C 115.925781 3.867188 117.167969 4.128906 118.308594 4.410156 Z M 112.632812 4.09375 C 111.464844 3.921875 110.21875 3.765625 108.929688 3.632812 L 109.003906 2.871094 C 110.308594 3.007812 111.566406 3.164062 112.742188 3.335938 Z M 112.632812 4.09375 \"\n }), /*#__PURE__*/React.createElement(\"path\", {\n style: {\n stroke: \"none\",\n fillRule: \"nonzero\",\n fill: \"rgb(91.764706%,91.764706%,91.764706%)\",\n fillOpacity: 1\n },\n d: \"M 126.53125 9.449219 C 126.085938 8.84375 125.546875 8.320312 124.929688 7.902344 L 125.363281 7.277344 C 126.050781 7.742188 126.652344 8.328125 127.144531 9.003906 Z M 126.53125 9.449219 \"\n }), /*#__PURE__*/React.createElement(\"path\", {\n style: {\n stroke: \"none\",\n fillRule: \"nonzero\",\n fill: \"rgb(4.705882%,9.411765%,42.352941%)\",\n fillOpacity: 1\n },\n d: \"M 49.742188 11.574219 C 49.746094 11.335938 49.699219 11.097656 49.605469 10.882812 C 49.507812 10.664062 49.367188 10.472656 49.1875 10.320312 C 48.824219 10.007812 48.1875 9.714844 47.277344 9.441406 C 45.691406 8.992188 44.492188 8.449219 43.675781 7.816406 C 42.859375 7.183594 42.449219 6.3125 42.441406 5.199219 C 42.433594 4.089844 42.890625 3.179688 43.8125 2.46875 C 44.734375 1.753906 45.917969 1.394531 47.359375 1.382812 C 48.820312 1.371094 50.011719 1.757812 50.941406 2.542969 C 51.867188 3.324219 52.316406 4.296875 52.296875 5.460938 L 52.277344 5.515625 L 49.695312 5.53125 C 49.703125 5.246094 49.652344 4.964844 49.542969 4.703125 C 49.433594 4.441406 49.269531 4.207031 49.066406 4.015625 C 48.652344 3.628906 48.074219 3.441406 47.332031 3.449219 C 46.621094 3.449219 46.070312 3.613281 45.683594 3.945312 C 45.5 4.089844 45.351562 4.28125 45.25 4.496094 C 45.152344 4.710938 45.101562 4.949219 45.109375 5.1875 C 45.109375 5.414062 45.171875 5.640625 45.28125 5.835938 C 45.394531 6.03125 45.550781 6.199219 45.742188 6.316406 C 46.164062 6.605469 46.882812 6.910156 47.910156 7.234375 C 49.378906 7.636719 50.492188 8.175781 51.253906 8.851562 C 52.011719 9.527344 52.394531 10.421875 52.40625 11.539062 C 52.425781 12.074219 52.316406 12.605469 52.085938 13.085938 C 51.851562 13.5625 51.507812 13.976562 51.082031 14.289062 C 50.183594 14.964844 49 15.308594 47.53125 15.316406 C 46.183594 15.359375 44.859375 14.972656 43.734375 14.207031 C 42.652344 13.460938 42.121094 12.398438 42.140625 11.027344 L 42.160156 10.96875 L 44.75 10.945312 C 44.75 11.753906 45.003906 12.34375 45.492188 12.714844 C 45.976562 13.085938 46.652344 13.265625 47.511719 13.261719 C 48.234375 13.261719 48.789062 13.105469 49.167969 12.792969 C 49.351562 12.652344 49.5 12.464844 49.601562 12.253906 C 49.699219 12.042969 49.746094 11.808594 49.742188 11.574219 Z M 49.742188 11.574219 \"\n }), /*#__PURE__*/React.createElement(\"path\", {\n style: {\n stroke: \"none\",\n fillRule: \"nonzero\",\n fill: \"rgb(4.705882%,9.411765%,42.352941%)\",\n fillOpacity: 1\n },\n d: \"M 63.105469 10.246094 C 63.117188 11.734375 62.789062 12.9375 62.117188 13.851562 C 61.449219 14.765625 60.511719 15.226562 59.300781 15.226562 C 58.824219 15.238281 58.351562 15.140625 57.917969 14.941406 C 57.511719 14.746094 57.15625 14.453125 56.878906 14.085938 L 56.917969 18.914062 L 54.261719 18.9375 L 54.152344 4.996094 L 56.554688 4.976562 L 56.722656 6.167969 C 56.988281 5.746094 57.347656 5.394531 57.769531 5.136719 C 58.207031 4.886719 58.703125 4.757812 59.203125 4.769531 C 60.425781 4.757812 61.378906 5.238281 62.066406 6.207031 C 62.753906 7.175781 63.101562 8.453125 63.109375 10.042969 Z M 60.4375 10.058594 C 60.429688 9.109375 60.269531 8.339844 59.953125 7.75 C 59.824219 7.480469 59.621094 7.25 59.367188 7.097656 C 59.113281 6.941406 58.820312 6.863281 58.523438 6.878906 C 58.167969 6.871094 57.8125 6.960938 57.5 7.136719 C 57.214844 7.308594 56.980469 7.558594 56.828125 7.859375 L 56.863281 12.277344 C 57.019531 12.554688 57.253906 12.78125 57.535156 12.925781 C 57.863281 13.082031 58.222656 13.15625 58.582031 13.140625 C 59.226562 13.140625 59.699219 12.878906 59.996094 12.355469 C 60.292969 11.839844 60.441406 11.136719 60.429688 10.253906 Z M 60.4375 10.058594 \"\n }), /*#__PURE__*/React.createElement(\"path\", {\n style: {\n stroke: \"none\",\n fillRule: \"nonzero\",\n fill: \"rgb(4.705882%,9.411765%,42.352941%)\",\n fillOpacity: 1\n },\n d: \"M 69.15625 15.144531 C 67.734375 15.160156 66.59375 14.699219 65.730469 13.773438 C 64.871094 12.84375 64.4375 11.664062 64.425781 10.234375 L 64.425781 9.875 C 64.414062 8.378906 64.808594 7.144531 65.605469 6.167969 C 66.402344 5.195312 67.484375 4.707031 68.839844 4.699219 C 70.171875 4.691406 71.210938 5.089844 71.953125 5.902344 C 72.695312 6.714844 73.070312 7.820312 73.082031 9.214844 L 73.09375 10.695312 L 67.199219 10.742188 L 67.183594 10.800781 C 67.210938 11.402344 67.445312 11.976562 67.847656 12.425781 C 68.050781 12.640625 68.296875 12.804688 68.570312 12.914062 C 68.84375 13.023438 69.132812 13.070312 69.425781 13.054688 C 69.921875 13.0625 70.417969 12.996094 70.894531 12.859375 C 71.335938 12.710938 71.765625 12.515625 72.167969 12.277344 L 72.902344 13.945312 C 72.433594 14.324219 71.898438 14.617188 71.328125 14.800781 C 70.628906 15.035156 69.894531 15.152344 69.15625 15.144531 Z M 68.855469 6.792969 C 68.628906 6.785156 68.40625 6.835938 68.203125 6.9375 C 68 7.039062 67.824219 7.191406 67.691406 7.378906 C 67.386719 7.828125 67.207031 8.351562 67.171875 8.898438 L 67.203125 8.945312 L 70.46875 8.921875 L 70.46875 8.679688 C 70.488281 8.1875 70.34375 7.703125 70.058594 7.308594 C 69.792969 6.960938 69.390625 6.789062 68.855469 6.796875 Z M 68.855469 6.792969 \"\n }), /*#__PURE__*/React.createElement(\"path\", {\n style: {\n stroke: \"none\",\n fillRule: \"nonzero\",\n fill: \"rgb(4.705882%,9.411765%,42.352941%)\",\n fillOpacity: 1\n },\n d: \"M 79.054688 15.070312 C 77.628906 15.082031 76.488281 14.625 75.628906 13.695312 C 74.769531 12.769531 74.335938 11.59375 74.324219 10.167969 L 74.324219 9.792969 C 74.3125 8.300781 74.703125 7.066406 75.5 6.089844 C 76.300781 5.113281 77.378906 4.625 78.734375 4.621094 C 80.066406 4.613281 81.105469 5.011719 81.847656 5.824219 C 82.59375 6.636719 82.96875 7.738281 82.980469 9.136719 L 82.988281 10.617188 L 77.097656 10.664062 L 77.078125 10.71875 C 77.109375 11.324219 77.34375 11.898438 77.742188 12.34375 C 77.945312 12.558594 78.195312 12.726562 78.464844 12.832031 C 78.738281 12.941406 79.03125 12.988281 79.324219 12.972656 C 79.820312 12.980469 80.3125 12.917969 80.789062 12.78125 C 81.234375 12.632812 81.660156 12.4375 82.0625 12.199219 L 82.800781 13.871094 C 82.332031 14.25 81.796875 14.542969 81.226562 14.730469 C 80.523438 14.960938 79.792969 15.074219 79.054688 15.070312 Z M 78.75 6.714844 C 78.527344 6.710938 78.300781 6.757812 78.097656 6.863281 C 77.894531 6.964844 77.71875 7.113281 77.589844 7.300781 C 77.285156 7.75 77.105469 8.277344 77.070312 8.824219 L 77.097656 8.871094 L 80.367188 8.84375 L 80.367188 8.601562 C 80.386719 8.109375 80.242188 7.625 79.960938 7.226562 C 79.6875 6.882812 79.285156 6.710938 78.75 6.714844 Z M 78.75 6.714844 \"\n }), /*#__PURE__*/React.createElement(\"path\", {\n style: {\n stroke: \"none\",\n fillRule: \"nonzero\",\n fill: \"rgb(4.705882%,9.411765%,42.352941%)\",\n fillOpacity: 1\n },\n d: \"M 84.125 9.882812 C 84.113281 8.296875 84.441406 7.011719 85.105469 6.03125 C 85.769531 5.050781 86.714844 4.554688 87.933594 4.546875 C 88.398438 4.539062 88.859375 4.644531 89.269531 4.863281 C 89.679688 5.089844 90.039062 5.402344 90.320312 5.785156 L 90.277344 0.265625 L 92.953125 0.242188 L 93.0625 14.761719 L 90.773438 14.78125 L 90.542969 13.554688 C 90.269531 13.996094 89.894531 14.363281 89.453125 14.628906 C 89.007812 14.882812 88.507812 15.011719 87.996094 15.003906 C 86.789062 15.015625 85.84375 14.570312 85.164062 13.671875 C 84.484375 12.769531 84.140625 11.574219 84.125 10.085938 Z M 86.78125 10.054688 C 86.789062 10.941406 86.941406 11.636719 87.238281 12.144531 C 87.53125 12.652344 88.007812 12.902344 88.667969 12.898438 C 89.019531 12.902344 89.367188 12.816406 89.675781 12.648438 C 89.964844 12.484375 90.207031 12.242188 90.375 11.949219 L 90.335938 7.632812 C 90.164062 7.332031 89.925781 7.078125 89.632812 6.894531 C 89.332031 6.714844 88.988281 6.625 88.640625 6.636719 C 88.34375 6.625 88.050781 6.707031 87.796875 6.867188 C 87.542969 7.027344 87.339844 7.261719 87.21875 7.535156 C 86.921875 8.132812 86.777344 8.90625 86.785156 9.863281 Z M 86.78125 10.054688 \"\n }), /*#__PURE__*/React.createElement(\"path\", {\n style: {\n stroke: \"none\",\n fillRule: \"nonzero\",\n fill: \"rgb(91.764706%,91.764706%,91.764706%)\",\n fillOpacity: 1\n },\n d: \"M 108.101562 18.804688 C 106.65625 18.78125 105.769531 18.699219 105.730469 18.695312 L 105.800781 17.933594 C 105.800781 17.933594 106.699219 18.015625 108.113281 18.039062 Z M 108.101562 18.804688 \"\n }), /*#__PURE__*/React.createElement(\"path\", {\n style: {\n stroke: \"none\",\n fillRule: \"nonzero\",\n fill: \"rgb(91.764706%,91.764706%,91.764706%)\",\n fillOpacity: 1\n },\n d: \"M 110.753906 18.773438 L 110.726562 18.007812 C 112.464844 17.941406 114.203125 17.761719 115.921875 17.46875 L 116.046875 18.222656 C 114.296875 18.519531 112.527344 18.703125 110.753906 18.773438 Z M 118.652344 17.664062 L 118.46875 16.921875 C 120.148438 16.503906 121.773438 15.882812 123.3125 15.078125 L 123.664062 15.753906 C 122.074219 16.585938 120.390625 17.230469 118.652344 17.664062 Z M 118.652344 17.664062 \"\n }), /*#__PURE__*/React.createElement(\"path\", {\n style: {\n stroke: \"none\",\n fillRule: \"nonzero\",\n fill: \"rgb(91.764706%,91.764706%,91.764706%)\",\n fillOpacity: 1\n },\n d: \"M 125.054688 14.914062 L 124.640625 14.277344 C 125.277344 13.851562 125.875 13.371094 126.429688 12.839844 L 126.945312 13.394531 C 126.359375 13.957031 125.726562 14.464844 125.054688 14.914062 Z M 125.054688 14.914062 \"\n })));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(Svg130);\nexport default __webpack_public_path__ + \"static/media/130.b4cf5439.svg\";\nexport { ForwardRef as ReactComponent };","import React from 'react';\r\nimport { ReactComponent } from './130.svg';\r\n\r\ninterface IProps {\r\n className?: string,\r\n style?: React.CSSProperties,\r\n}\r\n\r\nexport const Logo130 = ({ className, style }: IProps) => {\r\n return (\r\n \r\n );\r\n}","import { Dialog, DialogContent, DialogProps } from \"@mui/material\";\r\nimport { useIsMobile } from \"shared/useIsMobile\";\r\n\r\ninterface IProps extends DialogProps {\r\n children: any;\r\n}\r\n\r\nexport const FullScreenIfMobileDialog = ({ children, ...props }: IProps) => {\r\n const isMobile = useIsMobile();\r\n\r\n return (\r\n \r\n \r\n {children}\r\n \r\n \r\n );\r\n}","import { Button, DialogProps, Typography } from \"@mui/material\";\r\nimport { useLocalization } from \"localization/useLocalization\";\r\nimport { FullScreenIfMobileDialog } from \"shared/components/FullScreenIfMobileDialog\";\r\n\r\ninterface IProps extends DialogProps {\r\n confirm: () => void;\r\n cancel: () => void;\r\n}\r\n\r\nexport const RestartDialog = ({ confirm, cancel, ...rest }: IProps) => {\r\n const strings = useLocalization();\r\n return (\r\n \r\n {strings.startOver}\r\n
{strings.areYouSureYouWantToStartOverQuestion}
\r\n
\r\n \r\n \r\n
\r\n \r\n );\r\n}","import React from 'react';\r\n\r\nexport const useLazyEffect: typeof React.useEffect = (cb, dep) => {\r\n const initializeRef = React.useRef(false);\r\n\r\n React.useEffect((...args) => {\r\n if (initializeRef.current) {\r\n cb(...args)\r\n } else {\r\n initializeRef.current = true\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, dep)\r\n}","import { useLazyEffect } from \"framework/hooks/useLazyEffect\";\r\nimport { useContext, useEffect, useState } from \"react\";\r\nimport { DialogsContext } from \"./DialogsContext\";\r\n\r\nexport function useDialogsContext(reload?: () => void): { open: (dialog: JSX.Element) => void, confirm: () => void, cancel: () => void, isStacked: boolean} {\r\n const { open, confirm, cancel, stackCount } = useContext(DialogsContext);\r\n const [thisPos, setThisPos] = useState(stackCount);\r\n const [isStacked, setIsStacked] = useState(false);\r\n\r\n useEffect(() => {\r\n setThisPos(stackCount);\r\n // eslint-disable-next-line\r\n }, []);\r\n\r\n const onOpen = (dialog: JSX.Element) => {\r\n open(dialog, reload);\r\n }\r\n\r\n useLazyEffect(() => {\r\n setIsStacked(stackCount > thisPos);\r\n }, [stackCount, thisPos])\r\n\r\n return { open: onOpen, confirm, cancel, isStacked };\r\n}\r\n","// import { RefreshIcon } from 'shared/icons/RefreshIcon';\r\nimport RefreshIcon from '@mui/icons-material/Refresh';\r\nimport { Button, LinearProgress, MenuItem, Typography } from '@mui/material';\r\nimport Select from '@mui/material/Select';\r\nimport { Box } from '@mui/system';\r\nimport { Logo130 } from 'app/logo/Logo130';\r\nimport { RestartDialog } from 'app/RestartDialog';\r\nimport { useDialogsContext } from 'framework/dialogs/useDialogsContext';\r\nimport { IRequest, LanguageOptions } from 'gen/ApiClient';\r\nimport { SpecificLocalizationContext } from 'localization/SpecificLocalizationContext';\r\nimport { useLocalization } from 'localization/useLocalization';\r\nimport { useContext, useMemo } from 'react';\r\nimport { useHistory } from 'react-router';\r\nimport { StartRoute } from 'routes';\r\nimport { ArrowRightIcon } from 'shared/icons/ArrowRightIcon';\r\nimport { useIsMobile } from 'shared/useIsMobile';\r\n\r\ninterface IProps {\r\n item: IRequest;\r\n step: number;\r\n}\r\n\r\nexport const Header = ({ item, step }: IProps) => {\r\n const { open, confirm, cancel } = useDialogsContext();\r\n const strings = useLocalization();\r\n const progress = useMemo(() => (step / 6) * 100, [step]);\r\n const { push } = useHistory();\r\n const isMobile = useIsMobile();\r\n const { language, setLanguage } = useContext(SpecificLocalizationContext);\r\n\r\n const onRestart = () => {\r\n open( {\r\n confirm();\r\n push(StartRoute);\r\n }}\r\n cancel={cancel} />);\r\n }\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \r\n {strings.load}\r\n \r\n {strings.dateAndTime}\r\n \r\n {strings.dimensions}\r\n \r\n {strings.unload}\r\n \r\n {strings.price}\r\n \r\n
\r\n \r\n {LanguageOptions.map(t => setLanguage(t)}>{t.toUpperCase()})}\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n );\r\n}","import { ICacheContext } from 'framework/context/ICacheContext';\r\nimport { ITruckDto } from 'gen/ApiClient';\r\nimport React from 'react';\r\n\r\nexport const TrucksCacheContext = React.createContext>(undefined as any);","export const formatCurrency = (val: number, maximumFractionDigits: number = 2, currencyDisplay: 'symbol' | 'code' | 'name' = 'symbol') => {\r\n const formatter = new Intl.NumberFormat('nl-BE', { style: 'currency', currency: 'EUR', currencyDisplay: currencyDisplay, maximumFractionDigits: maximumFractionDigits });\r\n return formatter.format(val);\r\n}","export const DefaultDateAndTimeFormat = 'dd/MM/yyyy HH:mm';","export const DefaultDateFormat = 'dd/MM/yyyy';","import { format as formatDateFns } from \"date-fns\";\r\nimport { FormatDateXType } from \"./FormatDateXType\";\r\n\r\nexport function formatDateX(date: Date | undefined | null | string | number, format: FormatDateXType = 'dd/MM/yyyy'): string {\r\n if (date === undefined || date === null) {\r\n return '';\r\n } else {\r\n return formatDateFns(date instanceof Date ? date: new Date(date), format);\r\n }\r\n}","import { formatDate } from \"framework/utils/date/formatDate\";\r\nimport { formatDateX } from \"framework/utils/date/formatDateX\";\r\nimport { ITimeModel } from \"gen/ApiClient\";\r\nimport { IStrings } from \"localization/IStrings\";\r\n\r\nexport const formatTimeModel = (dt: ITimeModel, strings: IStrings): string => {\r\n const x = formatDate(dt.date);\r\n if (dt.afterDate && dt.beforeDate) {\r\n return `${x}\\n${strings.from.toLowerCase()} ${formatDateX(dt.afterDate, 'HH:mm')} ${strings.until.toLowerCase()} ${formatDateX(dt.beforeDate, 'HH:mm')}`;\r\n } else if (dt.afterDate) {\r\n return `${x}\\n${strings.from.toLowerCase()} ${formatDateX(dt.afterDate, 'HH:mm')}`;\r\n } else if (dt.beforeDate) {\r\n return `${x}\\n${strings.until.toLowerCase()} ${formatDateX(dt.beforeDate, 'HH:mm')}`;\r\n } else {\r\n return x;\r\n }\r\n}\r\n\r\n","import { format as formatDateFns } from \"date-fns\";\r\nimport { DefaultDateAndTimeFormat } from \"./DefaultDateAndTimeFormat\";\r\nimport { DefaultDateFormat } from \"./DefaultDateFormat\";\r\n\r\nexport function formatDate(date: Date | undefined | null, options: 'only-date' | 'date-and-time' = 'only-date'): string {\r\n if (date === undefined || date === null) {\r\n return '';\r\n } else if (date instanceof Date) {\r\n return formatDateFns(date, options === 'only-date' ? DefaultDateFormat : DefaultDateAndTimeFormat);\r\n } else {\r\n return formatDateFns(new Date(date), options === 'only-date' ? DefaultDateFormat : DefaultDateAndTimeFormat);\r\n }\r\n}","import { Typography } from \"@mui/material\";\r\nimport { TrucksCacheContext } from \"app/trucks/TrucksCacheContext\";\r\nimport { formatCurrency } from \"framework/utils/formatCurrency\";\r\nimport { IRequest } from \"gen/ApiClient\";\r\nimport { useLocalization } from \"localization/useLocalization\";\r\nimport { useContext, useEffect, useMemo } from \"react\";\r\nimport { formatTimeModel } from \"shared/formatTimeModel\";\r\n\r\ninterface IProps {\r\n item: IRequest;\r\n onGotoStep: (step: number) => void;\r\n}\r\n\r\nexport const SideBar = ({ item, onGotoStep }: IProps) => {\r\n const strings = useLocalization();\r\n const { data, init } = useContext(TrucksCacheContext);\r\n const fTruck = useMemo(() => (item.hasSelectedOrAssignedTruckId && data !== undefined) ? data.find(t => t.id === item.selectedOrAssignedTruckId) : undefined, [data, item]);\r\n\r\n useEffect(() => {\r\n init();\r\n }, [init]);\r\n\r\n return (\r\n
\r\n {strings.yourTransport}\r\n {item.hasLoadModel === false &&\r\n
{strings.noInfoYet}
\r\n }\r\n {item.hasLoadModel &&\r\n <>\r\n
\r\n {strings.load}\r\n onGotoStep(1)}>{strings.edit}\r\n
\r\n
{item.formattedLoadModel}
\r\n \r\n }\r\n {item.hasLoadTimeModel &&\r\n <>\r\n
\r\n {strings.dateAndTime}\r\n onGotoStep(2)}>{strings.edit}\r\n
\r\n
{formatTimeModel(item.loadTime, strings)}
\r\n \r\n }\r\n {item.hasCargoModel &&\r\n <>\r\n
\r\n {strings.dimensions}\r\n onGotoStep(4)}>{strings.edit}\r\n
\r\n
{item.formattedCargoModel}
\r\n {fTruck &&\r\n <>\r\n
\r\n {strings.typeVehicle}\r\n
\r\n
{fTruck.display}
\r\n \r\n }\r\n \r\n }\r\n {item.hasCargoModel === false && item.hasTruckModel &&\r\n <>\r\n
\r\n {strings.selectedVehicle}\r\n onGotoStep(4)}>{strings.edit}\r\n
\r\n {fTruck &&
{fTruck.display}
}\r\n \r\n }\r\n {item.hasUnloadModel &&\r\n <>\r\n
\r\n {strings.unload}\r\n {item.hasSelectedOrAssignedTruckId && onGotoStep(5)}>{strings.edit}} \r\n
\r\n
{item.formattedUnloadModel}
\r\n \r\n }\r\n {item.hasPrice &&\r\n <>\r\n
\r\n {`${strings.price} (${strings.inVat})`}\r\n
\r\n
{formatCurrency(item.price!)}
\r\n \r\n }\r\n {item.hasContactModel &&\r\n <>\r\n
\r\n {strings.contactData}\r\n
\r\n
{item.formattedContactModel}
\r\n \r\n }\r\n
\r\n
\r\n );\r\n}","import { Box } from '@mui/system';\r\nimport { IRequest } from 'gen/ApiClient';\r\nimport { useIsMobile } from 'shared/useIsMobile';\r\nimport { Header } from './Header';\r\nimport { SideBar } from './SideBar';\r\n\r\ninterface IProps {\r\n item: IRequest;\r\n step: number;\r\n children: any;\r\n footer: JSX.Element;\r\n onGotoStep: (step: number) => void;\r\n}\r\n\r\nexport const Page = ({ item, step, children, footer, onGotoStep }: IProps) => {\r\n const isMobile = useIsMobile();\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \r\n {children}\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n {footer}\r\n
\r\n
\r\n );\r\n}","import { Typography } from '@mui/material';\r\nimport { FormSelectCountryField } from 'app/countries/FormSelectCountryField';\r\nimport { Form, Formik, FormikHelpers } from 'formik';\r\nimport { FormTextField } from 'framework/forms/FormTextField';\r\nimport { handleFormResponse } from 'framework/forms/utils/handleFormResponse';\r\nimport { useFormSubmit } from 'framework/hooks/useFormSubmit';\r\nimport { IContactWithAddressModel, IRequest, requestsCommand_setLoad } from 'gen/ApiClient';\r\nimport { IStrings } from 'localization/IStrings';\r\nimport { useLocalization } from 'localization/useLocalization';\r\nimport React, { useMemo } from 'react';\r\nimport { BackButton } from 'shared/buttons/BackButton';\r\nimport { FormNextSubmitButton } from 'shared/buttons/FormSubmitButton';\r\nimport { FormGridContainer } from 'shared/components/FormGridContainer';\r\nimport { IconAndH3 } from 'shared/components/IconAndH3';\r\nimport { InfoCircleIcon } from 'shared/icons/InfoCircleIcon';\r\nimport { LocationCircleIcon } from 'shared/icons/LocationCircleIcon';\r\nimport * as yup from 'yup';\r\nimport { FormGridItem } from '../../../shared/components/FormGridItem';\r\nimport { Page } from '../Page';\r\n\r\nconst createSchema = (strings: IStrings, mustValidateNumber: boolean): yup.SchemaOf => {\r\n return yup.object>({\r\n personOnSite: yup.string().required(strings.formRequired(strings.personOnSite)),\r\n country: yup.string().required(strings.formRequired(strings.country)),\r\n city: yup.string().required(strings.formRequired(strings.city)),\r\n street: yup.string().required(strings.formRequired(strings.street)),\r\n zip: yup.string().required(strings.formRequired(strings.zip)),\r\n number: mustValidateNumber ? yup.string().required(strings.formRequired(strings.number)) : yup.string().nullable(),\r\n extraInfo: yup.string().nullable(),\r\n phoneNumber: yup.string().nullable(),\r\n companyName: yup.string().nullable(),\r\n }).defined();\r\n}\r\n\r\nconst EmptyValues: IContactWithAddressModel = {\r\n city: '',\r\n companyName: '',\r\n country: 'BE',\r\n extraInfo: '',\r\n number: '',\r\n personOnSite: '',\r\n phoneNumber: '',\r\n street: '',\r\n zip: ''\r\n}\r\n\r\ninterface IProps {\r\n item: IRequest;\r\n step: number;\r\n onNext: () => void;\r\n onGotoStep: (step: number) => void;\r\n}\r\n\r\nexport const Load = ({ item, step, onNext, onGotoStep }: IProps) => {\r\n const strings = useLocalization();\r\n const [submit, isSubmitting] = useFormSubmit(requestsCommand_setLoad);\r\n const schema = useMemo>(() => createSchema(strings, item.hasLoadModelFromVavato === false), [strings, item]);\r\n\r\n const handleSubmit = async (values: IContactWithAddressModel, helpers: FormikHelpers) => {\r\n const r = await submit(item.id, values);\r\n if (handleFormResponse(r, helpers)) {\r\n onNext();\r\n }\r\n }\r\n\r\n return (\r\n \r\n validateOnMount\r\n initialValues={item.loadModel ?? EmptyValues}\r\n validationSchema={schema}\r\n onSubmit={handleSubmit}>\r\n {(props) => (\r\n
\r\n \r\n \r\n \r\n \r\n }>\r\n
\r\n {strings.load}\r\n }\r\n title={strings.info} />\r\n \r\n \r\n \r\n name=\"personOnSite\"\r\n label={strings.personOnSite}\r\n required />\r\n \r\n \r\n \r\n name=\"phoneNumber\"\r\n label={strings.phoneNumber} />\r\n \r\n \r\n \r\n name=\"companyName\"\r\n label={strings.companyName} />\r\n \r\n \r\n }\r\n title={strings.address} />\r\n \r\n \r\n
\r\n \r\n name=\"street\"\r\n label={strings.street}\r\n required\r\n style={{ width: '70% ' }} />\r\n \r\n name=\"number\"\r\n label={strings.number}\r\n required\r\n style={{ width: '30%', marginLeft: 16 }} />\r\n
\r\n
\r\n \r\n
\r\n \r\n name=\"zip\"\r\n label={strings.zip}\r\n required\r\n style={{ marginRight: 16, width: '30%' }} />\r\n \r\n name=\"city\"\r\n label={strings.city}\r\n required\r\n style={{ width: '70%' }} />\r\n
\r\n
\r\n \r\n \r\n name=\"country\"\r\n label={strings.country}\r\n required />\r\n \r\n \r\n \r\n name=\"extraInfo\"\r\n label={strings.extraInfoDescription} />\r\n \r\n
\r\n
\r\n \r\n \r\n )}\r\n \r\n );\r\n}","import { SvgIcon, SvgIconProps } from '@mui/material';\r\nimport React from 'react';\r\n\r\nexport const DateIcon = ({ viewBox = \"0 0 24 25\", ...props }: SvgIconProps) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n","import { formatISO, isValid } from \"date-fns\";\r\n\r\nexport const mapToIsoOnlyDate = (date: Date | null | undefined): Date | null => {\r\n return isValid(date) && date ? formatISO(date, { representation: 'date' }) as any : null;\r\n}\r\n","import { Popover, TextField } from '@mui/material';\r\nimport StaticDatePicker from '@mui/lab/StaticDatePicker';\r\nimport React from 'react';\r\nimport { mapToIsoOnlyDate } from '../../utils/date/mapToIsoOnlyDate';\r\nimport { DefaultDateFormat } from '../../utils/date/DefaultDateFormat';\r\nimport { DatePickerView } from '@mui/lab/DatePicker/shared';\r\n\r\ninterface IProps {\r\n anchor: HTMLElement | null;\r\n close: () => void;\r\n value: Date | undefined | null;\r\n setValue: (date: Date | null) => void;\r\n openTo?: DatePickerView;\r\n views?: DatePickerView[];\r\n}\r\n\r\nexport const StaticDatePickerPopover = ({ anchor, close, value, setValue, openTo = \"day\", views = [\"year\", \"month\", \"day\"] }: IProps) => {\r\n return (\r\n \r\n {\r\n setValue(mapToIsoOnlyDate(date))\r\n close();\r\n }}\r\n inputFormat={DefaultDateFormat}\r\n renderInput={(props) => } />\r\n \r\n );\r\n}","import CancelIcon from '@mui/icons-material/Cancel';\r\nimport DatePicker from '@mui/lab/DatePicker';\r\nimport { DatePickerView } from '@mui/lab/DatePicker/shared';\r\nimport { Fade, InputAdornment, TextField, Typography } from '@mui/material';\r\nimport { useField } from 'formik';\r\nimport { useLocalization } from 'localization/useLocalization';\r\nimport React from 'react';\r\nimport { DateIcon } from 'shared/icons/DateIcon';\r\nimport { useAnchorElement } from '../hooks/useAnchorElement';\r\nimport { useStateBoolean } from '../hooks/useStateBool';\r\nimport { DefaultDateFormat } from '../utils/date/DefaultDateFormat';\r\nimport { mapToIsoOnlyDate } from '../utils/date/mapToIsoOnlyDate';\r\nimport { nameOf } from '../utils/nameOf';\r\nimport { FormErrorHelper } from './common/FormErrorHelper';\r\nimport { IFormProps } from './common/IFormProps';\r\nimport { StaticDatePickerPopover } from './common/StaticDatePickerPopover';\r\n\r\ninterface IProps extends IFormProps {\r\n disableFuture?: boolean;\r\n disablePast?: boolean;\r\n openTo?: DatePickerView;\r\n views?: DatePickerView[];\r\n format?: string;\r\n}\r\n\r\nexport const FormDatePicker = ({ style, disableFuture = false, disablePast = false, disabled = false, required = false, helperText, openTo = \"day\", views = [\"year\", \"month\", \"day\"], format = DefaultDateFormat, ...props }: IProps) => {\r\n const strings = useLocalization();\r\n const [field, meta, helpers] = useField(nameOf(props.name));\r\n const [anchor, openSelectDate, closeSelectDate] = useAnchorElement();\r\n const [isHovered, enter, leave] = useStateBoolean(false);\r\n\r\n return (\r\n
\r\n {Boolean(anchor) &&\r\n \r\n }\r\n helpers.setValue(mapToIsoOnlyDate(date))}\r\n inputFormat={format}\r\n openTo={openTo}\r\n views={views}\r\n renderInput={rProps =>\r\n
\r\n
\r\n {props.label}\r\n {required === false && {strings.optional}}\r\n
\r\n helpers.setTouched(true, true)}\r\n inputProps={{\r\n ...rProps.inputProps,\r\n style: { ...rProps.inputProps!.style, width: 'calc(100% - 80px)', paddingLeft: '10px' }\r\n }}\r\n InputProps={{\r\n startAdornment:\r\n
\r\n \r\n
,\r\n // \r\n // \r\n // ,\r\n //
\r\n // \r\n //
,\r\n endAdornment:\r\n \r\n \r\n helpers.setValue(null)} />\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 { useState } from \"react\";\r\n\r\n// export function useAnchorElement(): [];\r\n\r\n\r\n// export function useAnchorElement(): [null | HTMLElement, (event: React.MouseEvent) => void, () => void] {\r\n// const [anchorEl, setAnchorEl] = useState(null);\r\n\r\n// const handleClick = (event: React.MouseEvent) => {\r\n// setAnchorEl(event.currentTarget);\r\n// };\r\n// const handleClose = () => {\r\n// setAnchorEl(null);\r\n// };\r\n// return [anchorEl, handleClick, handleClose];\r\n// }\r\n\r\nexport function useAnchorElement(): [null | HTMLElement, (event: React.MouseEvent) => void, () => void, undefined];\r\nexport function useAnchorElement(initialValue: S): [null | HTMLElement, (event: React.MouseEvent, value: S) => void, () => void, S];\r\n\r\nexport function useAnchorElement(initialValue?: S): [null | HTMLElement, (event: React.MouseEvent, value: S) => void, () => void, S | undefined] {\r\n const [anchorEl, setAnchorEl] = useState(null);\r\n const [state, setState] = useState(initialValue);\r\n\r\n const handleClick = (event: React.MouseEvent, value: S) => {\r\n setState(value);\r\n setAnchorEl(event.currentTarget);\r\n };\r\n const handleClose = () => {\r\n setAnchorEl(null);\r\n setState(undefined);\r\n };\r\n return [anchorEl, handleClick, handleClose, state];\r\n}","import { TimePicker } from '@mui/lab';\r\nimport { TextField } from '@mui/material';\r\nimport { useField } from 'formik';\r\nimport React from 'react';\r\nimport { nameOf } from '../utils/nameOf';\r\nimport { FormControlX } from './common/FormControlX';\r\nimport { IFormProps } from './common/IFormProps';\r\n\r\ninterface IProps extends IFormProps {\r\n\r\n}\r\n\r\nexport const FormTimePicker = ({ ...props }: IProps) => {\r\n const [field, meta, helpers] = useField(nameOf(props.name));\r\n\r\n return (\r\n \r\n helpers.setValue(newValue)}\r\n renderInput={(params) => }\r\n />\r\n \r\n );\r\n}","import { SvgIcon, SvgIconProps } from '@mui/material';\r\nimport React from 'react';\r\n\r\nexport const DateCircleIcon = ({ viewBox = \"0 0 26 26\", ...props }: SvgIconProps) => {\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","import { SvgIcon, SvgIconProps } from '@mui/material';\r\nimport React from 'react';\r\n\r\nexport const TimeCircleIcon = ({ viewBox = \"0 0 26 26\", ...props }: SvgIconProps) => {\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","import { Typography } from '@mui/material';\r\nimport { Form, Formik, FormikHelpers } from 'formik';\r\nimport { FormDatePicker } from 'framework/forms/FormDatePicker';\r\nimport { FormTimePicker } from 'framework/forms/FormTimePicker';\r\nimport { handleFormResponse } from 'framework/forms/utils/handleFormResponse';\r\nimport { useFormSubmit } from 'framework/hooks/useFormSubmit';\r\nimport { IRequest, ITimeModel, requestsCommand_setLoadTime } from 'gen/ApiClient';\r\nimport { IStrings } from 'localization/IStrings';\r\nimport { useLocalization } from 'localization/useLocalization';\r\nimport React from 'react';\r\nimport { BackButton } from 'shared/buttons/BackButton';\r\nimport { FormNextSubmitButton } from 'shared/buttons/FormSubmitButton';\r\nimport { FormGridContainer } from 'shared/components/FormGridContainer';\r\nimport { IconAndH3 } from 'shared/components/IconAndH3';\r\nimport { DateCircleIcon } from 'shared/icons/DateCircleIcon';\r\nimport { TimeCircleIcon } from 'shared/icons/TimeCircleIcon';\r\nimport * as yup from 'yup';\r\nimport { FormGridItem } from '../../../shared/components/FormGridItem';\r\nimport { Page } from '../Page';\r\n\r\nconst createSchema = (strings: IStrings): yup.SchemaOf => {\r\n return yup.object>({\r\n date: yup.date().required(strings.formRequired(strings.date)),\r\n afterDate: yup.date().nullable(),\r\n beforeDate: yup.date().nullable(),\r\n }).defined() as any;\r\n}\r\n\r\ninterface IProps {\r\n item: IRequest;\r\n step: number;\r\n onNext: () => void;\r\n onPrevious: () => void;\r\n onGotoStep: (step: number) => void;\r\n}\r\n\r\nexport const LoadTime = ({ item, step, onNext, onPrevious, onGotoStep }: IProps) => {\r\n const strings = useLocalization();\r\n const [submit, isSubmitting] = useFormSubmit(requestsCommand_setLoadTime);\r\n\r\n const handleSubmit = async (values: ITimeModel, helpers: FormikHelpers) => {\r\n console.log(values);\r\n const r = await submit(item.id, values);\r\n if (handleFormResponse(r, helpers)) {\r\n onNext();\r\n }\r\n }\r\n\r\n return (\r\n \r\n validateOnMount\r\n initialValues={item.loadTime ?? { date: new Date(), after: null, before: null }}\r\n validationSchema={createSchema(strings)}\r\n onSubmit={handleSubmit}>\r\n {(props) => (\r\n
\r\n \r\n \r\n \r\n \r\n }>\r\n
\r\n {strings.dateAndTime}\r\n }\r\n title={strings.date} />\r\n \r\n \r\n \r\n name=\"date\"\r\n label={strings.selectADate}\r\n required />\r\n \r\n \r\n }\r\n title={strings.time} />\r\n \r\n \r\n \r\n name=\"afterDate\"\r\n label={strings.from} />\r\n \r\n \r\n \r\n name=\"beforeDate\"\r\n label={strings.until} />\r\n \r\n \r\n
\r\n \r\n \r\n )}\r\n \r\n );\r\n}","import { Button, Typography } from '@mui/material';\r\nimport { IRequest } from 'gen/ApiClient';\r\nimport { useLocalization } from 'localization/useLocalization';\r\nimport React from 'react';\r\nimport { BackButton } from 'shared/buttons/BackButton';\r\nimport { Page } from '../Page';\r\n\r\n\r\ninterface IProps {\r\n item: IRequest;\r\n step: number;\r\n confirm: (hasDimensions: boolean) => void;\r\n onPrevious: () => void;\r\n onGotoStep: (step: number) => void;\r\n}\r\n\r\nexport const CargoMode = ({ item, step, confirm, onPrevious, onGotoStep }: IProps) => {\r\n const strings = useLocalization();\r\n\r\n return (\r\n \r\n \r\n \r\n }>\r\n
\r\n {strings.doYouHaveDimensionsQuestion}\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n );\r\n}","import React from 'react';\r\nimport NumberFormat from 'react-number-format';\r\nimport { NumberFormatProps } from './NumberFormatProps';\r\n\r\ninterface NumberFormatCustomProps extends NumberFormatProps {\r\n inputRef: (instance: NumberFormat | null) => void;\r\n onChange: (event: { target: { name: string; value: string } }) => void;\r\n name: string;\r\n}\r\n\r\nexport function NumberFormatX(props: NumberFormatCustomProps) {\r\n const { inputRef, onChange, ...other } = props;\r\n\r\n return (\r\n {\r\n onChange({\r\n target: {\r\n name: props.name,\r\n value: values.value,\r\n },\r\n });\r\n }}\r\n thousandSeparator=\" \"\r\n mask=\"_\"\r\n allowedDecimalSeparators={['.', ',']}\r\n isNumericString\r\n allowNegative={props.allowNegative}\r\n decimalScale={props.decimalScale ?? 2}\r\n fixedDecimalScale={props.fixedDecimalScale ?? true}\r\n isAllowed={props.isAllowed}\r\n // isAllowed={(values) => {\r\n // const { floatValue } = values;\r\n // return floatValue === undefined || floatValue <= 100;\r\n // }}\r\n prefix={props.prefix ?? ''}\r\n suffix={props.suffix ?? ''}\r\n // format={limit}\r\n // max={'100'}\r\n // min={0}\r\n />\r\n );\r\n}\r\n\r\n","var _path, _path2, _path3, _line, _path4, _path5, _path6, _path7, _path8, _path9, _path10, _path11, _path12, _path13, _path14, _path15, _path16;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nfunction Svg200(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 200,\n height: 37,\n viewBox: \"0 0 200 37\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16.4 5.06093L10.5704 5.1271L10.761 22.7885L6.62832 22.8335L6.43774 5.1721L0.63428 5.23826L0.600342 2.00929L16.366 1.83461L16.4 5.06093Z\",\n fill: \"#0C186C\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16.52 14.8167C16.5008 12.5035 17.1169 10.6005 18.3683 9.10774C19.6197 7.615 21.3758 6.85628 23.6366 6.83158C25.8991 6.80688 27.6813 7.52413 28.9832 8.98335C30.285 10.4426 30.9473 12.3341 30.9699 14.6579V14.9569C30.996 17.2913 30.3773 19.1996 29.1137 20.6818C27.8502 22.1639 26.0923 22.9173 23.8402 22.942C21.5777 22.9685 19.7981 22.2548 18.5014 20.8009C17.2048 19.3469 16.5452 17.4528 16.5226 15.1184L16.52 14.8167ZM20.6422 15.0655C20.6544 16.477 20.9154 17.6089 21.4254 18.4612C21.9353 19.3134 22.7272 19.7316 23.8011 19.7157C24.8662 19.7051 25.6424 19.264 26.1297 18.3924C26.6127 17.5269 26.8503 16.3915 26.8346 14.9887V14.6949C26.819 13.3222 26.5579 12.2035 26.0514 11.3389C25.545 10.4743 24.7531 10.0482 23.6757 10.0606C22.6071 10.0711 21.8309 10.5167 21.347 11.3971C20.8632 12.2776 20.6265 13.4007 20.637 14.7664L20.6422 15.0655Z\",\n fill: \"#0C186C\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M47.3334 15.0469C47.3595 17.3407 46.8565 19.1934 45.8244 20.605C44.7924 22.0166 43.3374 22.7303 41.4594 22.7462C40.7233 22.7698 39.9914 22.6241 39.3187 22.3201C38.6844 22.016 38.1311 21.5622 37.7053 20.9967L37.7837 28.4419L33.6667 28.4895L33.4343 6.99568L37.1545 6.95598L37.4156 8.79014C37.8261 8.14056 38.3803 7.59686 39.0342 7.20212C39.7118 6.81508 40.4781 6.61606 41.2558 6.62514C43.1529 6.60397 44.6322 7.33798 45.6939 8.82719C46.7556 10.3164 47.3003 12.2864 47.3282 14.7373L47.3334 15.0469ZM43.1981 14.7823C43.1825 13.316 42.9292 12.1312 42.4384 11.2277C42.2382 10.8083 41.921 10.4576 41.5261 10.2191C41.1312 9.98054 40.676 9.8647 40.2168 9.88587C39.6605 9.8762 39.1118 10.0169 38.6269 10.2935C38.188 10.5604 37.8323 10.9475 37.6009 11.4104L37.674 18.2203C37.9203 18.6471 38.2829 18.9926 38.7183 19.2155C39.2269 19.4542 39.7847 19.5659 40.3447 19.541C41.3454 19.5304 42.0738 19.1246 42.5298 18.3235C42.9858 17.5225 43.2077 16.4426 43.1955 15.084L43.1981 14.7823Z\",\n fill: \"#0C186C\"\n })), _line || (_line = /*#__PURE__*/React.createElement(\"line\", {\n x1: 51.3345,\n y1: 13.3869,\n x2: 61.3345,\n y2: 13.3869,\n stroke: \"#0C186C\",\n strokeWidth: 3\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M199.188 11.5427C191.792 0.908264 149.09 0.704468 149.09 0.704468V8.20256C179.778 7.67322 192.39 13.7765 196.604 18.4268C195.583 21.7245 195.124 24.718 197.387 23.482C201.856 21.0126 199.188 11.5427 199.188 11.5427Z\",\n fill: \"#D12000\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M195.781 17.3601C192.194 24.088 165.43 25.3161 165.43 25.3161V21.6795L148.215 29.2226L165.43 36.6784V32.6131L165.61 32.7189C190.223 31.3956 198.65 22.3545 198.65 22.3545C199.548 16.4523 195.781 17.3601 195.781 17.3601Z\",\n fill: \"#0C186C\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M166.007 5.32824C164.148 5.16679 162.203 5.02917 160.23 4.91801L160.292 3.74022C162.282 3.85403 164.237 3.99166 166.106 4.15311L166.007 5.32824ZM157.335 4.77508C155.424 4.69039 153.473 4.63216 151.542 4.59775L151.562 3.41733C153.505 3.45438 155.463 3.51261 157.384 3.5973L157.335 4.77508Z\",\n fill: \"#EAEAEA\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M191.249 10.7593C189.528 9.92953 187.744 9.24266 185.913 8.70544L186.245 7.57794C188.137 8.13094 189.982 8.83906 191.761 9.6953L191.249 10.7593ZM183.133 7.94584C181.407 7.51707 179.506 7.12007 177.481 6.76806L177.679 5.6088C179.728 5.96346 181.658 6.36576 183.422 6.79982L183.133 7.94584ZM174.627 6.31282C172.815 6.04815 170.884 5.8073 168.884 5.60086L169.001 4.42838C171.019 4.63746 172.969 4.87831 174.794 5.14563L174.627 6.31282Z\",\n fill: \"#EAEAEA\"\n })), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M196.17 14.5652C195.484 13.6325 194.644 12.8266 193.688 12.1832L194.359 11.2172C195.425 11.9367 196.361 12.8374 197.126 13.8797L196.17 14.5652Z\",\n fill: \"#EAEAEA\"\n })), _path9 || (_path9 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M77.1171 17.8418C77.1273 17.4756 77.0555 17.1117 76.9072 16.7775C76.7589 16.4434 76.5379 16.1476 76.2608 15.9124C75.6952 15.4307 74.7075 14.979 73.2977 14.5573C70.842 13.8603 68.9814 13.024 67.7161 12.0482C66.4509 11.0725 65.813 9.72883 65.8025 8.0173C65.7904 6.30754 66.4987 4.90302 67.9276 3.80376C69.3565 2.7045 71.1901 2.14693 73.4282 2.13105C75.6908 2.11517 77.54 2.71067 78.9759 3.91757C80.4117 5.12446 81.1122 6.62426 81.0774 8.41695L81.0513 8.50429L77.044 8.52812C77.0579 8.09037 76.978 7.65477 76.8099 7.25132C76.6418 6.84787 76.3895 6.48615 76.0702 6.19108C75.4297 5.59646 74.5343 5.30444 73.3839 5.31502C72.2787 5.31502 71.4268 5.56999 70.828 6.07992C70.5416 6.30668 70.3115 6.59841 70.1565 6.93167C70.0014 7.26493 69.9256 7.63042 69.9352 7.99878C69.939 8.34938 70.0315 8.69313 70.2038 8.99712C70.3761 9.30112 70.6225 9.55519 70.9194 9.73501C71.5703 10.1814 72.6894 10.6534 74.2767 11.151C76.5567 11.7738 78.2849 12.6058 79.4615 13.6468C80.638 14.6879 81.2341 16.0694 81.2497 17.7916C81.2809 18.6148 81.1094 19.4331 80.7508 20.1724C80.3921 20.9117 79.8575 21.5488 79.1952 22.0263C77.8028 23.0708 75.9693 23.6002 73.6945 23.6143C71.6046 23.6789 69.5467 23.0812 67.8075 21.9045C66.1297 20.7506 65.3057 19.1149 65.3352 16.9975L65.364 16.9076L69.3817 16.8758C69.3817 18.1224 69.7733 19.0276 70.5278 19.6019C71.2823 20.1762 72.3292 20.4541 73.6606 20.4435C74.7832 20.4435 75.6395 20.2027 76.2295 19.721C76.5151 19.5028 76.7448 19.2182 76.8993 18.8911C77.0538 18.5641 77.1285 18.2043 77.1171 17.8418Z\",\n fill: \"#0C186C\"\n })), _path10 || (_path10 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M97.8353 15.7959C97.8544 18.0897 97.3454 19.9424 96.3081 21.354C95.2708 22.7656 93.814 23.4714 91.9378 23.4714C91.2011 23.4927 90.4691 23.3443 89.7971 23.0373C89.1637 22.7329 88.6114 22.2791 88.1864 21.714L88.2438 29.1618L84.1268 29.1962L83.9597 7.70234L87.6825 7.67323L87.9436 9.50739C88.3553 8.85788 88.9103 8.31425 89.5648 7.91937C90.2437 7.53406 91.0111 7.33774 91.789 7.35033C93.6844 7.33445 95.1637 8.07376 96.2271 9.56826C97.2905 11.0628 97.8301 13.0337 97.8457 15.481L97.8353 15.7959ZM93.7026 15.5075C93.6905 14.0447 93.4398 12.859 92.9508 11.9503C92.7516 11.5307 92.4356 11.1795 92.0417 10.94C91.6477 10.7006 91.1932 10.5835 90.7343 10.6031C90.1806 10.592 89.6338 10.7299 89.1497 11.0028C88.7052 11.2673 88.3433 11.6535 88.1054 12.117L88.1576 18.9296C88.4042 19.3568 88.7667 19.7031 89.2019 19.9274C89.7095 20.1671 90.2662 20.2805 90.8257 20.2583C91.8265 20.2583 92.5574 19.8551 93.0187 19.0487C93.4781 18.2547 93.7053 17.1696 93.6922 15.8092L93.7026 15.5075Z\",\n fill: \"#0C186C\"\n })), _path11 || (_path11 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M107.22 23.3496C105.014 23.369 103.244 22.6632 101.91 21.2323C100.577 19.8013 99.9028 17.9839 99.8872 15.7801V15.2216C99.868 12.9155 100.477 11.0116 101.715 9.51004C102.952 8.00848 104.624 7.25417 106.73 7.24711C108.796 7.23123 110.404 7.84879 111.554 9.0998C112.705 10.3508 113.289 12.0535 113.308 14.2079L113.324 16.4894L104.187 16.5635L104.158 16.6482C104.204 17.5797 104.569 18.4659 105.189 19.1546C105.505 19.485 105.887 19.7425 106.31 19.9097C106.732 20.0769 107.185 20.1497 107.638 20.1233C108.407 20.1352 109.174 20.0344 109.915 19.8242C110.601 19.5954 111.263 19.2947 111.888 18.927L113.024 21.4969C112.298 22.0861 111.472 22.5347 110.586 22.8203C109.5 23.1802 108.363 23.359 107.22 23.3496ZM106.753 10.4708C106.403 10.4606 106.055 10.5375 105.741 10.6948C105.426 10.8521 105.154 11.0851 104.949 11.3733C104.476 12.0665 104.198 12.8771 104.145 13.7183L104.189 13.7897L109.252 13.7553V13.3822C109.283 12.6238 109.059 11.8772 108.617 11.2648C108.207 10.7302 107.583 10.4681 106.753 10.4761V10.4708Z\",\n fill: \"#0C186C\"\n })), _path12 || (_path12 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M122.566 23.2332C120.357 23.2508 118.587 22.545 117.256 21.1158C115.924 19.6866 115.249 17.8727 115.23 15.6742V15.0999C115.211 12.7955 115.82 10.8916 117.057 9.38829C118.295 7.88496 119.966 7.13065 122.07 7.12536C124.134 7.10948 125.743 7.72704 126.897 8.97805C128.051 10.2291 128.635 11.9318 128.649 14.0862L128.667 16.3676L119.53 16.4391L119.501 16.5264C119.549 17.4576 119.913 18.3432 120.532 19.0329C120.848 19.3621 121.231 19.6186 121.653 19.7853C122.076 19.9519 122.528 20.0248 122.981 19.9989C123.75 20.0128 124.517 19.9129 125.257 19.7025C125.944 19.4741 126.606 19.1734 127.231 18.8052L128.372 21.3831C127.645 21.9714 126.817 22.4199 125.931 22.7065C124.845 23.0646 123.708 23.2424 122.566 23.2332ZM122.096 10.3543C121.745 10.3443 121.398 10.4213 121.083 10.5786C120.769 10.7359 120.497 10.9688 120.292 11.2569C119.82 11.9504 119.543 12.7609 119.491 13.6018L119.532 13.6733L124.6 13.6336V13.2604C124.631 12.5026 124.408 11.7564 123.968 11.143C123.547 10.6084 122.923 10.3464 122.093 10.3543H122.096Z\",\n fill: \"#0C186C\"\n })), _path13 || (_path13 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M130.427 15.2375C130.407 12.7902 130.914 10.8104 131.946 9.2983C132.978 7.78615 134.441 7.0239 136.334 7.01155C137.054 6.99556 137.765 7.16206 138.405 7.4959C139.041 7.84481 139.595 8.32976 140.029 8.91718L139.963 0.410689L144.112 0.376282L144.284 22.7594L140.731 22.7885L140.378 20.8961C139.95 21.5767 139.37 22.1452 138.684 22.5556C137.996 22.9439 137.219 23.1428 136.431 23.1326C134.555 23.1485 133.09 22.463 132.037 21.0761C130.984 19.6892 130.448 17.8463 130.429 15.5472L130.427 15.2375ZM134.546 15.5022C134.559 16.8679 134.792 17.9424 135.251 18.7232C135.71 19.504 136.449 19.8904 137.467 19.8824C138.013 19.8924 138.552 19.7612 139.034 19.5013C139.483 19.2454 139.857 18.8715 140.115 18.4188L140.057 11.7677C139.792 11.3024 139.417 10.9113 138.966 10.6296C138.5 10.3535 137.967 10.2159 137.428 10.2326C136.966 10.2157 136.51 10.3385 136.117 10.5855C135.724 10.8325 135.413 11.1924 135.222 11.6195C134.763 12.537 134.539 13.7315 134.551 15.2031L134.546 15.5022Z\",\n fill: \"#0C186C\"\n })), _path14 || (_path14 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M167.597 28.9897C165.357 28.9527 163.981 28.8256 163.924 28.8204L164.031 27.6452C164.031 27.6452 165.425 27.7749 167.615 27.812L167.597 28.9897Z\",\n fill: \"#EAEAEA\"\n })), _path15 || (_path15 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M171.714 28.9395L171.667 27.7617C174.367 27.6587 177.058 27.3821 179.723 26.9333L179.917 28.0952C177.203 28.5533 174.463 28.8353 171.714 28.9395ZM183.96 27.2323L183.673 26.089C186.278 25.4417 188.799 24.4868 191.184 23.2438L191.727 24.2866C189.261 25.5724 186.654 26.5611 183.96 27.2323Z\",\n fill: \"#EAEAEA\"\n })), _path16 || (_path16 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M193.886 22.9923L193.244 22.0104C194.228 21.3547 195.155 20.6144 196.014 19.7977L196.813 20.6526C195.906 21.5169 194.927 22.2997 193.886 22.9923Z\",\n fill: \"#EAEAEA\"\n })));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(Svg200);\nexport default __webpack_public_path__ + \"static/media/200.3b404772.svg\";\nexport { ForwardRef as ReactComponent };","import { InputAdornment, OutlinedInput } from '@mui/material';\r\nimport { useField } from 'formik';\r\nimport React from 'react';\r\nimport { NumberFormatProps } from '../components/NumberFormatProps';\r\nimport { NumberFormatX } from '../components/NumberFormatX';\r\nimport { useStateBoolean } from '../hooks/useStateBool';\r\nimport { matchNullOrEmptyToUndefined } from '../utils/matchNullOrEmptyToUndefined';\r\nimport { nameOf } from '../utils/nameOf';\r\nimport { ClearEndAdornment } from './common/ClearEndAdornment';\r\nimport { FormControlX } from './common/FormControlX';\r\nimport { IFormProps } from './common/IFormProps';\r\n\r\ninterface IProps extends IFormProps, NumberFormatProps {\r\n startAdornment?: JSX.Element;\r\n endAdornment?: JSX.Element;\r\n}\r\n\r\nexport const FormNumberField = ({ startAdornment, endAdornment, ...props }: IProps) => {\r\n const [field, meta, helpers] = useField(nameOf(props.name));\r\n const [isHovered, enter, leave] = useStateBoolean(false);\r\n const [isFocused, focus, blur] = useStateBoolean(false);\r\n\r\n return (\r\n \r\n {\r\n helpers.setTouched(true);\r\n helpers.setValue(matchNullOrEmptyToUndefined(e.target.value) as any);\r\n }}\r\n onFocus={focus}\r\n onBlur={blur}\r\n startAdornment={(isFocused || field.value !== undefined) && startAdornment && {startAdornment}}\r\n endAdornment={\r\n <>\r\n {endAdornment && isHovered && endAdornment}\r\n \r\n \r\n }\r\n inputComponent={NumberFormatX as any}\r\n inputProps={props} />\r\n \r\n );\r\n}\r\n\r\n","export function matchNullOrEmptyToUndefined(val: any): T | undefined {\r\n if (val === undefined || val === null || val === '') {\r\n return undefined;\r\n } else {\r\n return val as T;\r\n }\r\n}","import { Typography } from '@mui/material';\r\nimport { Form, Formik, FormikHelpers } from 'formik';\r\nimport { FormNumberField } from 'framework/forms/FormNumberField';\r\nimport { FormTextField } from 'framework/forms/FormTextField';\r\nimport { handleFormResponse } from 'framework/forms/utils/handleFormResponse';\r\nimport { useFormSubmit } from 'framework/hooks/useFormSubmit';\r\nimport { ICargoModel, IRequest, requestsCommand_setCargo } from 'gen/ApiClient';\r\nimport { IStrings } from 'localization/IStrings';\r\nimport { useLocalization } from 'localization/useLocalization';\r\nimport React from 'react';\r\nimport { BackButton } from 'shared/buttons/BackButton';\r\nimport { FormNextSubmitButton } from 'shared/buttons/FormSubmitButton';\r\nimport { FormGridContainer } from 'shared/components/FormGridContainer';\r\nimport { IconAndH3 } from 'shared/components/IconAndH3';\r\nimport { InfoCircleIcon } from 'shared/icons/InfoCircleIcon';\r\nimport * as yup from 'yup';\r\nimport { FormGridItem } from '../../../shared/components/FormGridItem';\r\nimport { Page } from '../Page';\r\n\r\nconst createSchema = (strings: IStrings): yup.SchemaOf => {\r\n return yup.object>({\r\n description: yup.string().required(),\r\n lengthInCm: yup.number().required(),\r\n widthInCm: yup.number().required(),\r\n heightInCm: yup.number().required(),\r\n weightInKg: yup.number().required(),\r\n }).defined();\r\n}\r\n\r\nconst EmptyValues: ICargoModel = {\r\n description: '',\r\n heightInCm: undefined as any,\r\n lengthInCm: undefined as any,\r\n weightInKg: undefined as any,\r\n widthInCm: undefined as any,\r\n}\r\n\r\nconst itemToModel = (item: IRequest): ICargoModel => {\r\n if (item.cargoModel) {\r\n return item.cargoModel;\r\n } else {\r\n return ({ ...EmptyValues, description: item.vavatoDescription ?? ''});\r\n }\r\n} \r\n\r\ninterface IProps {\r\n item: IRequest;\r\n step: number;\r\n onNext: () => void;\r\n onPrevious: () => void;\r\n onGotoStep: (step: number) => void;\r\n}\r\n\r\nexport const Cargo = ({ item, step, onNext, onPrevious, onGotoStep }: IProps) => {\r\n const strings = useLocalization();\r\n const [submit, isSubmitting] = useFormSubmit(requestsCommand_setCargo);\r\n\r\n const handleSubmit = async (values: ICargoModel, helpers: FormikHelpers) => {\r\n const r = await submit(item.id, values);\r\n if (handleFormResponse(r, helpers)) {\r\n onNext();\r\n }\r\n }\r\n\r\n return (\r\n \r\n validateOnMount\r\n initialValues={itemToModel(item)}\r\n validationSchema={createSchema(strings)}\r\n onSubmit={handleSubmit}>\r\n
\r\n \r\n \r\n \r\n \r\n }>\r\n
\r\n {strings.dimensions}\r\n }\r\n title={strings.details} />\r\n \r\n \r\n \r\n name=\"lengthInCm\"\r\n label={strings.lengthBracketsCm}\r\n suffix=\" cm\"\r\n required />\r\n \r\n \r\n \r\n name=\"widthInCm\"\r\n label={strings.widthBracketsCm}\r\n suffix=\" cm\"\r\n required />\r\n \r\n \r\n \r\n name=\"heightInCm\"\r\n label={strings.heightBracketsCm}\r\n suffix=\" cm\"\r\n required />\r\n \r\n \r\n \r\n name=\"weightInKg\"\r\n label={strings.weigthBracketsKg}\r\n suffix=\" kg\"\r\n required />\r\n \r\n \r\n \r\n name=\"description\"\r\n label={strings.description}\r\n multiline\r\n rows={4}\r\n required />\r\n \r\n \r\n
\r\n \r\n \r\n \r\n );\r\n}","import { SvgIcon, SvgIconProps } from '@mui/material';\r\nimport React from 'react';\r\n\r\nexport const TruckCircleIcon = ({ viewBox = \"0 0 26 26\", ...props }: SvgIconProps) => {\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","import { SvgIcon, SvgIconProps } from '@mui/material';\r\nimport React from 'react';\r\n\r\nexport const CheckCircleIcon = ({ viewBox = \"0 0 26 26\", ...props }: SvgIconProps) => {\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","import { Card, CardContent, CardMedia } from \"@mui/material\";\r\nimport { ITruckDto } from \"gen/ApiClient\";\r\nimport { useLocalization } from \"localization/useLocalization\";\r\nimport { useMemo } from \"react\";\r\nimport { CheckCircleIcon } from \"shared/icons/CheckCircleIcon\";\r\n\r\nconst selectedStyle: React.CSSProperties = {\r\n border: '4px solid #00D181',\r\n // boxShadow: '0px 0px 12px 4px rgba(53, 53, 53, 0.1)',\r\n}\r\n\r\ninterface IProps {\r\n item: ITruckDto;\r\n isSelected: boolean;\r\n onClick: () => void;\r\n}\r\n\r\nexport const TruckCard = ({ item, isSelected, onClick }: IProps) => {\r\n const strings = useLocalization();\r\n const tStyle = useMemo(() => isSelected ? selectedStyle : {}, [isSelected]);\r\n\r\n return (\r\n \r\n \r\n {isSelected && }\r\n {item.name}\r\n \r\n \r\n
{item.name}
\r\n \r\n \r\n 1 ? strings.euroPallets : strings.euroPallet}`} />\r\n \r\n
\r\n \r\n );\r\n}\r\n\r\nconst LabelValue = ({ label, value }: { label: string, value: string }) => {\r\n return (\r\n
{`${label}: `}{value}
\r\n );\r\n}","import { Grid, Typography } from '@mui/material';\r\nimport { TrucksCacheContext } from 'app/trucks/TrucksCacheContext';\r\nimport { Form, Formik, FormikHelpers, useFormikContext } from 'formik';\r\nimport { FormTextField } from 'framework/forms/FormTextField';\r\nimport { handleFormResponse } from 'framework/forms/utils/handleFormResponse';\r\nimport { setFormValue } from 'framework/forms/utils/setFormValue';\r\nimport { useFormSubmit } from 'framework/hooks/useFormSubmit';\r\nimport { IRequest, ITruckDto, ITruckModel, requestsCommand_setTruck } from 'gen/ApiClient';\r\nimport { IStrings } from 'localization/IStrings';\r\nimport { useLocalization } from 'localization/useLocalization';\r\nimport React, { useContext, useEffect, useRef } from 'react';\r\nimport { BackButton } from 'shared/buttons/BackButton';\r\nimport { FormNextSubmitButton } from 'shared/buttons/FormSubmitButton';\r\nimport { FormGridContainer } from 'shared/components/FormGridContainer';\r\nimport { IconAndH3 } from 'shared/components/IconAndH3';\r\nimport { TruckCircleIcon } from 'shared/icons/TruckCircleIcon';\r\nimport * as yup from 'yup';\r\nimport { FormGridItem } from '../../../shared/components/FormGridItem';\r\nimport { Page } from '../Page';\r\nimport { TruckCard } from './TruckCard';\r\n\r\nconst createSchema = (strings: IStrings): yup.SchemaOf => {\r\n return yup.object>({\r\n description: yup.string().required(strings.formRequired(strings.description)),\r\n truckId: yup.string().required(strings.formRequired(strings.typeVehicle)),\r\n pictureAttachmentId: yup.string().nullable(),\r\n }).defined();\r\n}\r\n\r\nconst EmptyValues: ITruckModel = {\r\n description: '',\r\n truckId: undefined as any,\r\n pictureAttachmentId: undefined as any,\r\n}\r\n\r\nconst itemToModel = (item: IRequest): ITruckModel => {\r\n if (item.truckModel) {\r\n return item.truckModel;\r\n } else {\r\n return ({ ...EmptyValues, description: item.vavatoDescription ?? ''});\r\n }\r\n}\r\n\r\ninterface IProps {\r\n item: IRequest;\r\n step: number;\r\n onNext: () => void;\r\n onPrevious: () => void;\r\n onGotoStep: (step: number) => void;\r\n}\r\n\r\nexport const Truck = ({ item, step, onNext, onPrevious, onGotoStep }: IProps) => {\r\n const strings = useLocalization();\r\n const [submit, isSubmitting] = useFormSubmit(requestsCommand_setTruck);\r\n const { data, init } = useContext(TrucksCacheContext);\r\n\r\n useEffect(() => {\r\n init();\r\n }, [init]);\r\n\r\n const handleSubmit = async (values: ITruckModel, helpers: FormikHelpers) => {\r\n const r = await submit(item.id, values);\r\n if (handleFormResponse(r, helpers)) {\r\n onNext();\r\n }\r\n }\r\n\r\n return (\r\n \r\n validateOnMount\r\n initialValues={itemToModel(item)}\r\n validationSchema={createSchema(strings)}\r\n onSubmit={handleSubmit}>\r\n \r\n \r\n );\r\n}\r\n\r\ninterface IInnerProps extends IProps {\r\n isSubmitting: boolean;\r\n trucks: ITruckDto[];\r\n}\r\n\r\nconst Inner = ({ item, step, onPrevious, isSubmitting, trucks, onGotoStep }: IInnerProps) => {\r\n const props = useFormikContext();\r\n const strings = useLocalization();\r\n const ref = useRef(null);\r\n\r\n const onSelectTruck = (truck: ITruckDto) => {\r\n setFormValue('truckId', truck.id, props);\r\n ref.current?.scrollIntoView();\r\n }\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n }>\r\n
\r\n {strings.dimensions}\r\n }\r\n title={strings.selectTypeVehicle}\r\n style={{ marginBottom: 18 }} />\r\n \r\n {trucks.map(t =>\r\n \r\n onSelectTruck(t)} />\r\n \r\n )}\r\n \r\n
\r\n \r\n \r\n \r\n name=\"description\"\r\n label={strings.description}\r\n multiline\r\n rows={4}\r\n required />\r\n \r\n \r\n
\r\n \r\n \r\n )\r\n}","import { FormikHelpers } from \"formik\";\r\n\r\nexport const setFormValue = (key: keyof T, value: any, helpers: FormikHelpers) => {\r\n helpers.setFieldValue(key as string, value);\r\n}","import { Typography } from '@mui/material';\r\nimport { FormSelectCountryField } from 'app/countries/FormSelectCountryField';\r\nimport { Form, Formik, FormikHelpers } from 'formik';\r\nimport { FormTextField } from 'framework/forms/FormTextField';\r\nimport { handleFormResponse } from 'framework/forms/utils/handleFormResponse';\r\nimport { useFormSubmit } from 'framework/hooks/useFormSubmit';\r\nimport { IContactWithAddressModel, IRequest, requestsCommand_setUnload } from 'gen/ApiClient';\r\nimport { IStrings } from 'localization/IStrings';\r\nimport { useLocalization } from 'localization/useLocalization';\r\nimport React, { useMemo } from 'react';\r\nimport { BackButton } from 'shared/buttons/BackButton';\r\nimport { FormNextSubmitButton } from 'shared/buttons/FormSubmitButton';\r\nimport { FormGridContainer } from 'shared/components/FormGridContainer';\r\nimport { IconAndH3 } from 'shared/components/IconAndH3';\r\nimport { InfoCircleIcon } from 'shared/icons/InfoCircleIcon';\r\nimport { LocationCircleIcon } from 'shared/icons/LocationCircleIcon';\r\nimport * as yup from 'yup';\r\nimport { FormGridItem } from '../../../shared/components/FormGridItem';\r\nimport { Page } from '../Page';\r\n\r\nconst createSchema = (strings: IStrings, mustValidateNumber: boolean): yup.SchemaOf => {\r\n return yup.object>({\r\n personOnSite: yup.string().required(strings.formRequired(strings.personOnSite)),\r\n country: yup.string().required(strings.formRequired(strings.country)),\r\n city: yup.string().required(strings.formRequired(strings.city)),\r\n street: yup.string().required(strings.formRequired(strings.street)),\r\n zip: yup.string().required(strings.formRequired(strings.zip)),\r\n number: mustValidateNumber ? yup.string().required(strings.formRequired(strings.number)) : yup.string().nullable(),\r\n extraInfo: yup.string().nullable(),\r\n phoneNumber: yup.string().nullable(),\r\n companyName: yup.string().nullable(),\r\n }).defined();\r\n}\r\n\r\nconst EmptyValues: IContactWithAddressModel = {\r\n city: '',\r\n companyName: '',\r\n country: 'BE',\r\n extraInfo: '',\r\n number: '',\r\n personOnSite: '',\r\n phoneNumber: '',\r\n street: '',\r\n zip: ''\r\n}\r\n\r\ninterface IProps {\r\n item: IRequest;\r\n step: number;\r\n onNext: () => void;\r\n onPrevious: () => void;\r\n onGotoStep: (step: number) => void;\r\n}\r\n\r\nexport const Unload = ({ item, step, onNext, onPrevious, onGotoStep }: IProps) => {\r\n const strings = useLocalization();\r\n const [submit, isSubmitting] = useFormSubmit(requestsCommand_setUnload);\r\n const schema = useMemo>(() => createSchema(strings, item.hasUnloadModelFromVavato === false), [strings, item]);\r\n\r\n const handleSubmit = async (values: IContactWithAddressModel, helpers: FormikHelpers) => {\r\n const r = await submit(item.id, values);\r\n if (handleFormResponse(r, helpers)) {\r\n onNext();\r\n }\r\n }\r\n\r\n return (\r\n \r\n validateOnMount\r\n initialValues={item.unloadModel ?? EmptyValues}\r\n validationSchema={schema}\r\n onSubmit={handleSubmit}>\r\n
\r\n \r\n \r\n \r\n \r\n }>\r\n
\r\n {strings.unload}\r\n }\r\n title={strings.info} />\r\n \r\n \r\n \r\n name=\"personOnSite\"\r\n label={strings.personOnSite}\r\n required />\r\n \r\n \r\n \r\n name=\"phoneNumber\"\r\n label={strings.phoneNumber} />\r\n \r\n \r\n \r\n name=\"companyName\"\r\n label={strings.companyName} />\r\n \r\n \r\n }\r\n title={strings.address} />\r\n \r\n \r\n
\r\n \r\n name=\"street\"\r\n label={strings.street}\r\n required\r\n style={{ width: '70% ' }} />\r\n \r\n name=\"number\"\r\n label={strings.number}\r\n required\r\n style={{ width: '30%', marginLeft: 16 }} />\r\n
\r\n
\r\n \r\n
\r\n \r\n name=\"zip\"\r\n label={strings.zip}\r\n required\r\n style={{ width: '30%', marginRight: 16 }} />\r\n \r\n name=\"city\"\r\n label={strings.city}\r\n required\r\n style={{ width: '70%' }} />\r\n
\r\n
\r\n \r\n \r\n name=\"country\"\r\n label={strings.country}\r\n required />\r\n \r\n \r\n \r\n name=\"extraInfo\"\r\n label={strings.extraInfoDescription} />\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n );\r\n}","import { SvgIcon, SvgIconProps } from '@mui/material';\r\nimport React from 'react';\r\n\r\nexport const PriceCircleIcon = ({ viewBox = \"0 0 26 26\", ...props }: SvgIconProps) => {\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","import { Button, DialogProps, Typography } from \"@mui/material\";\r\nimport { useLocalization } from \"localization/useLocalization\";\r\nimport { FullScreenIfMobileDialog } from \"shared/components/FullScreenIfMobileDialog\";\r\n\r\ninterface IProps extends DialogProps {\r\n close: () => void;\r\n}\r\n\r\nexport const IncorrectAddressesDialog = ({ close, ...rest }: IProps) => {\r\n const strings = useLocalization();\r\n\r\n return (\r\n \r\n 😞\r\n {strings.errorCalculatingPriceTitle}\r\n
{strings.errorCalculatingPriceCaption}
\r\n \r\n \r\n );\r\n}","import { Button, DialogProps, Typography } from \"@mui/material\";\r\nimport { useLocalization } from \"localization/useLocalization\";\r\nimport { FullScreenIfMobileDialog } from \"shared/components/FullScreenIfMobileDialog\";\r\n\r\ninterface IProps extends DialogProps {\r\n close: () => void;\r\n}\r\n\r\nexport const SavedForLaterDialog = ({ close, ...rest }: IProps) => {\r\n const strings = useLocalization();\r\n return (\r\n \r\n 🙌\r\n {strings.savedForLater}\r\n
{strings.savedForLaterCaption}
\r\n \r\n \r\n );\r\n}","import { Button, Typography } from '@mui/material';\r\nimport { Form, Formik, FormikHelpers } from 'formik';\r\nimport { LoaderButton } from 'framework/components/buttons/LoaderButton';\r\nimport { useDialogsContext } from 'framework/dialogs/useDialogsContext';\r\nimport { FormTextField } from 'framework/forms/FormTextField';\r\nimport { handleFormResponse } from 'framework/forms/utils/handleFormResponse';\r\nimport { useFormSubmit } from 'framework/hooks/useFormSubmit';\r\nimport { formatCurrency } from 'framework/utils/formatCurrency';\r\nimport { IContactModel, IRequest, requestsCommand_confirm, requestsCommand_saveForLater } from 'gen/ApiClient';\r\nimport { IStrings } from 'localization/IStrings';\r\nimport { useLocalization } from 'localization/useLocalization';\r\nimport React, { useEffect } from 'react';\r\nimport { BackButton } from 'shared/buttons/BackButton';\r\nimport { FormGridContainer } from 'shared/components/FormGridContainer';\r\nimport { IconAndH3 } from 'shared/components/IconAndH3';\r\nimport { LocationCircleIcon } from 'shared/icons/LocationCircleIcon';\r\nimport { PriceCircleIcon } from 'shared/icons/PriceCircleIcon';\r\nimport * as yup from 'yup';\r\nimport { FormGridItem } from '../../../shared/components/FormGridItem';\r\nimport { Page } from '../Page';\r\nimport { IncorrectAddressesDialog } from './IncorrectAddressesDialog';\r\nimport { SavedForLaterDialog } from './SavedForLaterDialog';\r\n\r\nconst createSchema = (strings: IStrings): yup.SchemaOf => {\r\n return yup.object>({\r\n firstName: yup.string().required(strings.formRequired(strings.firstName)),\r\n lastName: yup.string().required(strings.formRequired(strings.lastName)),\r\n email: yup.string().required(strings.formRequired(strings.emailAddress)),\r\n phoneNumber: yup.string().required(strings.formRequired(strings.phoneNumber)),\r\n vatNumber: yup.string().nullable(),\r\n }).defined();\r\n}\r\n\r\nconst EmptyValues: IContactModel = {\r\n firstName: '',\r\n lastName: '',\r\n email: '',\r\n phoneNumber: '',\r\n vatNumber: ''\r\n}\r\n\r\ninterface IProps {\r\n item: IRequest;\r\n step: number;\r\n onNext: () => void;\r\n onPrevious: () => void;\r\n onGotoStep: (step: number) => void;\r\n reload: () => void;\r\n}\r\n\r\nexport const Contact = ({ item, step, onNext, onPrevious, onGotoStep, reload }: IProps) => {\r\n const strings = useLocalization();\r\n const [submit, isSubmitting] = useFormSubmit(requestsCommand_confirm);\r\n const [saveForLater, isSavingForLater] = useFormSubmit(requestsCommand_saveForLater);\r\n const { open, cancel } = useDialogsContext();\r\n\r\n useEffect(() => {\r\n if (item.hasRateWarnings) {\r\n open( { cancel(); onGotoStep(1); }} />)\r\n }\r\n // eslint-disable-next-line\r\n }, [item]);\r\n\r\n const handleSubmit = async (values: IContactModel, helpers: FormikHelpers) => {\r\n const r = await submit(item.id, values);\r\n if (handleFormResponse(r, helpers)) {\r\n onNext();\r\n }\r\n }\r\n\r\n const onSaveForLater = async (values: IContactModel, helpers: FormikHelpers) => {\r\n const r = await saveForLater(item.id, values);\r\n if (r.isSuccess) {\r\n open()\r\n }\r\n }\r\n\r\n return (\r\n \r\n validateOnMount\r\n initialValues={item.contactModel ?? EmptyValues}\r\n validationSchema={createSchema(strings)}\r\n onSubmit={handleSubmit}>\r\n {(props) => (\r\n
\r\n \r\n \r\n
\r\n
\r\n onSaveForLater(props.values, props)}\r\n style={{ marginRight: 16 }}>\r\n {strings.saveForLater}\r\n \r\n {item.hasPrice &&\r\n \r\n {strings.confirmRequest}\r\n \r\n }\r\n
\r\n \r\n }>\r\n
\r\n {strings.price}\r\n {(item.hasPrice && item.hasRateWarnings === false)\r\n ? <>\r\n }\r\n title={strings.yourTransportWillCostApproximatelyWhat(formatCurrency(item.price ?? 0))} />\r\n
{strings.priceCaption}
\r\n \r\n : <>\r\n }\r\n title={strings.errorCalculatingPriceTitle} />\r\n
{strings.errorCalculatingPriceCaption}
\r\n \r\n }\r\n }\r\n title={strings.contactData} />\r\n \r\n \r\n \r\n name=\"firstName\"\r\n label={strings.firstName}\r\n required />\r\n \r\n \r\n \r\n name=\"lastName\"\r\n label={strings.lastName}\r\n required />\r\n \r\n \r\n \r\n name=\"email\"\r\n label={strings.emailAddress}\r\n required />\r\n \r\n \r\n \r\n name=\"phoneNumber\"\r\n label={strings.phoneNumber}\r\n required />\r\n \r\n \r\n \r\n name=\"vatNumber\"\r\n label={strings.vatNumber} />\r\n \r\n \r\n
\r\n \r\n \r\n )}\r\n \r\n );\r\n}","import React from 'react';\r\nimport { ReactComponent } from './200.svg';\r\n\r\ninterface IProps {\r\n className?: string,\r\n style?: React.CSSProperties,\r\n}\r\n\r\nexport const Logo200 = ({ className, style, }: IProps) => {\r\n return (\r\n \r\n );\r\n}","import { Button, Typography } from \"@mui/material\";\r\nimport { Logo200 } from \"app/logo/Logo200\";\r\nimport { IRequest } from \"gen/ApiClient\";\r\nimport { useLocalization } from \"localization/useLocalization\";\r\nimport { useHistory } from \"react-router\";\r\nimport { StartRoute } from \"routes\";\r\n\r\ninterface IProps {\r\n item: IRequest;\r\n}\r\n\r\nexport const Confirmation = ({ item }: IProps) => {\r\n const strings = useLocalization();\r\n const { push } = useHistory();\r\n\r\n const onGoBackToLot = () => {\r\n if (item.vavatoUrl) {\r\n window.location.href = item.vavatoUrl;\r\n }\r\n }\r\n\r\n return (\r\n
\r\n
\r\n
\r\n
🎉
\r\n {strings.thanksForYourRequest}\r\n
\r\n
\r\n \r\n {item.isFromVavato &&\r\n \r\n }\r\n
\r\n
\r\n
\r\n );\r\n}","import { useApiEffect } from 'framework/hooks/useApiEffect';\r\nimport { IRouteParamsWithId } from 'framework/router/IRouteParamsWithId';\r\nimport { requestsQuery_single } from 'gen/ApiClient';\r\nimport React, { useEffect, useMemo, useState } from 'react';\r\nimport { Redirect, Route, Switch, useHistory, useLocation, useParams } from 'react-router';\r\nimport { useRouteMatch } from 'react-router-dom';\r\nimport { Load } from './1_load/Load';\r\nimport { LoadTime } from './2_loadTime/LoadTime';\r\nimport { CargoMode } from './3_cargoMode/CargoMode';\r\nimport { Cargo } from './4_cargo/Cargo';\r\nimport { Truck } from './4_cargo/Truck';\r\nimport { Unload } from './5_unload/Unload';\r\nimport { Contact } from './6_contact/Contact';\r\nimport { Confirmation } from './7_confirmation/Confirmation';\r\nimport { pathToStep } from './utils/pathToStep';\r\n\r\nexport const Request = () => {\r\n const { id } = useParams();\r\n const [item, reload] = useApiEffect(requestsQuery_single, id);\r\n const { url, path } = useRouteMatch();\r\n const { pathname } = useLocation();\r\n const step = useMemo(() => pathToStep(pathname), [pathname]);\r\n const { push, replace } = useHistory();\r\n const [hasDimensions, setHasDimensions] = useState(true);\r\n\r\n useEffect(() => {\r\n if (item?.isConfirmed === true && step !== 7) {\r\n push(`${url}/7`);\r\n }\r\n // eslint-disable-next-line\r\n }, [item?.isConfirmed, step, url]);\r\n\r\n useEffect(() => {\r\n if (item?.hasCargoModelFromVavato === true && step === 3) {\r\n setHasDimensions(true);\r\n replace(`${url}/4`);\r\n }\r\n // eslint-disable-next-line\r\n }, [item, step, url, replace]);\r\n\r\n // useEffect(() => {\r\n // if (item) {\r\n // if (item.hasCargoModel && hasDimensions === false) {\r\n // setHasDimensions(true);\r\n // } else if (item.hasTruckModel && hasDimensions === true) {\r\n // setHasDimensions(false);\r\n // }\r\n // }\r\n // }, [item, hasDimensions]);\r\n\r\n const onGotoStep = (step: number) => {\r\n reload();\r\n push(`${url}/${step}`);\r\n }\r\n\r\n const onNext = () => {\r\n onGotoStep(step + 1);\r\n }\r\n\r\n const onCargoMode = (hasDimensions: boolean) => {\r\n setHasDimensions(hasDimensions);\r\n onNext();\r\n }\r\n\r\n const onPrevious = () => {\r\n reload();\r\n if (step === 4 && item?.hasCargoModelFromVavato) {\r\n onGotoStep(2);\r\n } else {\r\n onGotoStep(step - 1);\r\n }\r\n }\r\n\r\n if (item === undefined) {\r\n return
\r\n }\r\n\r\n return (\r\n \r\n } />\r\n } />\r\n } />\r\n hasDimensions\r\n ? \r\n : \r\n } />\r\n } />\r\n } />\r\n } />\r\n \r\n \r\n );\r\n}","export const pathToStep = (path: string): number => {\r\n if (path.endsWith('/1')) {\r\n return 1;\r\n } else if (path.endsWith('/2')) {\r\n return 2;\r\n } else if (path.endsWith('/3')) {\r\n return 3;\r\n } else if (path.endsWith('/4')) {\r\n return 4;\r\n } else if (path.endsWith('/5')) {\r\n return 5;\r\n } else if (path.endsWith('/6')) {\r\n return 6;\r\n } else {\r\n return -1;\r\n }\r\n}","import { Button, DialogProps, Typography } from \"@mui/material\";\r\nimport { useLocalization } from \"localization/useLocalization\";\r\nimport { FullScreenIfMobileDialog } from \"shared/components/FullScreenIfMobileDialog\";\r\n\r\ninterface IProps extends DialogProps {\r\n close: () => void;\r\n}\r\n\r\nexport const StartDialog = ({ close, ...rest }: IProps) => {\r\n const strings = useLocalization();\r\n return (\r\n \r\n 👋\r\n {strings.welcomeText}\r\n
{strings.welcomeCaption}
\r\n \r\n \r\n );\r\n}","import { useDialogsContext } from 'framework/dialogs/useDialogsContext';\r\nimport { useEffect } from 'react';\r\nimport { useHistory } from 'react-router';\r\nimport { calcRequestRoute } from 'routes';\r\nimport { v1 as uuid } from 'uuid';\r\nimport { StartDialog } from './StartDialog';\r\n\r\nexport const Start = () => {\r\n const { replace } = useHistory();\r\n const { open, cancel } = useDialogsContext();\r\n\r\n useEffect(() => {\r\n open();\r\n replace(calcRequestRoute(uuid()));\r\n // eslint-disable-next-line\r\n }, []); \r\n\r\n return (
)\r\n}","import { LanguageOption } from 'gen/ApiClient';\r\nimport { SpecificLocalizationContext } from 'localization/SpecificLocalizationContext';\r\nimport { useContext, useEffect } from 'react';\r\nimport { Redirect, Route, Switch, useHistory, useLocation } from 'react-router-dom';\r\nimport { RequestRoute, StartRoute } from 'routes';\r\nimport { Request } from './request/Request';\r\nimport { Start } from './Start';\r\n\r\nconst dummyRecord: Record = {\r\n en: 'en',\r\n fr: 'fr',\r\n nl: 'nl'\r\n}\r\n\r\nexport const AppSwitch = () => {\r\n const { replace } = useHistory();\r\n const location = useLocation();\r\n const { setLanguage } = useContext(SpecificLocalizationContext);\r\n\r\n useEffect(() => {\r\n console.log(location);\r\n\r\n if (location.search) {\r\n const language = dummyRecord[location.search.replace(\"?\", '') as LanguageOption];\r\n if (language) {\r\n setLanguage(language);\r\n }\r\n replace(location.pathname === '/' ? StartRoute : location.pathname);\r\n }\r\n // replace(StartRoute);\r\n // eslint-disable-next-line\r\n }, [location]);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","export const clearCacheAndReloadApplication = () => {\r\n // caches ? caches.keys().then((keys) => keys.forEach(t => caches.delete(t))) : {};\r\n window.location.reload();\r\n}","import { Button, Typography } from '@mui/material';\r\nimport { clearCacheAndReloadApplication } from 'framework/utils/clearCacheAndReloadApplication';\r\nimport { useLocalization } from 'localization/useLocalization';\r\nimport React from 'react';\r\nimport { Logo200 } from './logo/Logo200';\r\n\r\nexport const MustUpdateWall = () => {\r\n const strings = useLocalization();\r\n return (\r\n
\r\n \r\n {`Click to continue`}\r\n \r\n
\r\n );\r\n}\r\n\r\n","import React, { useState, useEffect } from 'react';\r\nimport { useApiEffect } from 'framework/hooks/useApiEffect';\r\nimport { meta_build } from 'gen/ApiClient';\r\nimport { build } from '../build';\r\nimport { MustUpdateWall } from './MustUpdateWall';\r\n\r\nexport const AppUpdateWall: React.FC = ({ children }: any) => {\r\n const [serverBuild] = useApiEffect(meta_build);\r\n const [isOutdated, setIsOutdated] = useState(false);\r\n \r\n useEffect(() => {\r\n if (serverBuild && (serverBuild > build)) {\r\n setIsOutdated(true);\r\n }\r\n }, [serverBuild])\r\n \r\n if (isOutdated) {\r\n return \r\n } else {\r\n return children;\r\n }\r\n }","export const build: number = 29;\r\n","import { Backdrop, CircularProgress } from '@mui/material';\r\nimport { Box } from '@mui/system';\r\n\r\nexport const Loader = () => {\r\n return (\r\n \r\n \r\n \r\n \r\n {/* \"loading...\" */}\r\n \r\n );\r\n}","import { IconButton, useTheme } from '@mui/material';\r\nimport { SnackbarProvider } from 'notistack';\r\nimport React from 'react';\r\nimport CloseIcon from '@mui/icons-material/Close';\r\n\r\n//https://iamhosseindhv.com/notistack/demos#action-for-all-snackbars\r\nexport const SnackbarWrapper = ({ children }: any) => {\r\n const notistackRef = React.createRef();\r\n const theme = useTheme();\r\n\r\n return (\r\n (\r\n {\r\n notistackRef.current.closeSnackbar(key);\r\n }}>\r\n \r\n \r\n )}\r\n anchorOrigin={{ vertical: 'bottom', horizontal: 'right' }}>\r\n {children}\r\n \r\n )\r\n}","import React, { useCallback, useState } from 'react';\r\nimport { useApi } from '../hooks/useApi';\r\nimport { useLazyEffect } from '../hooks/useLazyEffect';\r\nimport { Try } from '../Try';\r\nimport { IConcurrencyData } from '../types/IConcurrencyData';\r\nimport { ICacheContext } from './ICacheContext';\r\n\r\ninterface IProps {\r\n children: any;\r\n concurrencyF: () => Promise>;\r\n loadF: () => Promise>>;\r\n context: React.Context>;\r\n language?: string;\r\n}\r\n\r\nexport const CacheProvider = ({ children, concurrencyF, loadF, context, language }: IProps) => {\r\n const [data, setData] = useState();\r\n const [setLoad, clearLoad, handleError] = useApi();\r\n const concurrencyToken = React.useRef(-1);\r\n\r\n useLazyEffect(() => {\r\n if (language !== undefined) {\r\n concurrencyToken.current = -1;\r\n check();\r\n }\r\n // eslint-disable-next-line\r\n }, [language]);\r\n\r\n const load = useCallback(async () => {\r\n console.log(`(requested) load on CacheProvider ${loadF.name}`);\r\n const loadId = setLoad();\r\n const r = await loadF();\r\n if (r.isSuccess) {\r\n setData(r.result.value);\r\n concurrencyToken.current = r.result.concurrencyToken;\r\n } else {\r\n handleError(r.error);\r\n }\r\n clearLoad(loadId);\r\n return new Try(r.isSuccess ? r.result.value : undefined as any, r.isFailure ? r.error : undefined);\r\n // eslint-disable-next-line\r\n }, []);\r\n\r\n\r\n const check = useCallback(async () => {\r\n // console.log(`executing check on ${loadF.name}`);\r\n const loadId = setLoad();\r\n const r = await concurrencyF();\r\n clearLoad(loadId);\r\n if (r.isFailure) {\r\n handleError(r.error);\r\n } else if (r.result > concurrencyToken.current || concurrencyToken.current === -1) {\r\n // data is updated\r\n await load();\r\n }\r\n // eslint-disable-next-line\r\n }, []);\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n}","import { CacheProvider } from \"framework/context/CacheProvider\";\r\nimport { ITruckDto, trucksQuery_all, trucksQuery_concurrencyToken } from \"gen/ApiClient\";\r\nimport React from \"react\";\r\nimport { TrucksCacheContext } from \"./TrucksCacheContext\";\r\n\r\ninterface IProps {\r\n children: any;\r\n}\r\n\r\nexport const TrucksCacheProvider = ({ children }: IProps) => {\r\n return (\r\n \r\n concurrencyF={trucksQuery_concurrencyToken}\r\n loadF={trucksQuery_all}\r\n context={TrucksCacheContext}>\r\n {children}\r\n \r\n )\r\n}","import DateAdapter from '@mui/lab/AdapterDateFns';\r\nimport MuiLocalizationProvider from '@mui/lab/LocalizationProvider';\r\nimport { CssBaseline, ThemeProvider } from '@mui/material';\r\nimport frBE from 'date-fns/locale/fr';\r\nimport nlBE from 'date-fns/locale/nl-BE';\r\nimport { ApiProvider } from 'framework/context/ApiProvider';\r\nimport { LoaderProvider } from 'framework/context/LoaderProvider';\r\nimport { LocalizationProvider } from 'framework/context/LocalizationProvider';\r\nimport { DialogsProvider } from 'framework/dialogs/DialogsProvider';\r\nimport { LanguageOption } from 'gen/ApiClient';\r\nimport { languageKey } from 'keys';\r\nimport { IStrings } from 'localization/IStrings';\r\nimport { localizationRecord } from 'localization/localizationRecord';\r\nimport { SpecificLocalizationContext } from 'localization/SpecificLocalizationContext';\r\nimport { BrowserRouter } from 'react-router-dom';\r\nimport { RecordProvider } from 'shared/records/RecordProvider';\r\nimport { theme } from '../theme';\r\nimport { AppSwitch } from './AppSwitch';\r\nimport { AppUpdateWall } from './AppUpdateWall';\r\nimport { Loader } from './loader/Loader';\r\nimport { SnackbarWrapper } from './SnackbarWrapper';\r\nimport { TrucksCacheProvider } from './trucks/TrucksCacheProvider';\r\n\r\nconst App = () => {\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n }>\r\n map={localizationRecord} context={SpecificLocalizationContext} localStorageKey={languageKey} fallbackValue=\"nl\">\r\n \r\n {({ strings, language }) => (\r\n \r\n \r\n { }} >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default App;","import { ReportHandler } from 'web-vitals';\r\n\r\nconst reportWebVitals = (onPerfEntry?: ReportHandler) => {\r\n if (onPerfEntry && onPerfEntry instanceof Function) {\r\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\r\n getCLS(onPerfEntry);\r\n getFID(onPerfEntry);\r\n getFCP(onPerfEntry);\r\n getLCP(onPerfEntry);\r\n getTTFB(onPerfEntry);\r\n });\r\n }\r\n};\r\n\r\nexport default reportWebVitals;\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport './index.scss';\r\nimport App from './app/App';\r\nimport reportWebVitals from './reportWebVitals';\r\n\r\nReactDOM.render(\r\n \r\n \r\n ,\r\n document.getElementById('root')\r\n);\r\n\r\n// If you want to start measuring performance in your app, pass a function\r\n// to log results (for example: reportWebVitals(console.log))\r\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\r\nreportWebVitals();\r\n"],"sourceRoot":""}